MĂ« 2 gusht, tĂ« premten, u publikua versioni i ri i re2c â njĂ« gjenerues i lirĂ« pĂ«r analizatorĂ« leksikĂ« pĂ«r gjuhĂ«t C dhe C++. KujtojmĂ« se re2c Ă«shtĂ« shkruar nĂ« vitin 1993 nga Peter Bambulis si njĂ« gjenerues eksperimental i analizatorĂ«ve leksikĂ« shumĂ« tĂ« shpejtĂ«, i cili Ă«shtĂ« ndryshe nga gjeneruesit e tjerĂ« pĂ«r shpejtĂ«sinĂ« e kodit tĂ« gjeneruar dhe ndĂ«rfaqen e pazakontĂ« fleksibile tĂ« pĂ«rdoruesit, e cila lejon integrimin e lehtĂ« dhe efektiv tĂ« analizatorĂ«ve nĂ« njĂ« bazĂ« tĂ« kodit ekzistuese. QĂ« nga atĂ«herĂ«, projekti Ă«shtĂ« zhvilluar nga comuniteti dhe vazhdon tĂ« mbetet njĂ« platformĂ« pĂ«r eksperimentim dhe kĂ«rkime nĂ« fushĂ«n e gramatikave formale dhe automatĂ«ve tĂ« fundĂ«m.
Kryesorët novatorë në versionin 1.2:
Një mënyrë e re (e thjeshtuar) për të kontrolluar për fundin e të dhënave hyrëse
(angl. «EOF rule»).
Për këtë, është shtuar konfigurimi re2c:eof,
duke lejuar zgjedhjen e simbolit terminal,
dhe një rregull të veçantë $, i cili aktivizohet nëse leksari
arrin me sukses fundin e të dhënave të hyrjes.
Historikisht, re2c ofron disa mënyra për të kontrolluar
fundin e të dhënave të hyrjes, që variojnë në shkallë, efikasitet dhe thjeshtësi
në aplikimin e tyre. Mënyra e re synon të thjeshtësojë shkruan e kodit, ndërkohë
që të mbetet efikase dhe e përdorshme gjerësisht. Mënyrat e vjetra
ende funksionojnë dhe mund të jenë të preferuara në raste të veçanta.Shtuar mundësinë e përfshirjes së skedarëve të jashtëm me anë të direktivës
/*!include:re2c "file.re" */, гЎД file.re
është emri i skedarit të përfshirë. Re2c kërkon skedarët në drejtorinë e skedarit të përfshirë,
si dhe në listën e rrugëve të caktuara me opsionin -I.
Skedarët e përfshirë mund të përfshijnë skedarë të tjerë.
Re2c ofron skedarë «standard» në drejtorinë include/
tĂ« projektit â supozohet se aty do tĂ« akumulohen definita tĂ« dobishme
të shprehjeve të rregullta, diçka si biblioteka standarde.
Derisa, për kërkesat e përdoruesve, është shtuar një skedar me definita të kategorive Unicode.Shtuar mundësinë për të gjeneruar skedarë titujsh me përmbajtje të rastësishme
pĂ«rmbajtje me ndihmĂ«n e opsioneve -t âtype-header (ose pĂ«rkatĂ«se
konfiguracione) dhe direktivat e reja /*!header:re2c:on*/ dhe
/*!header:re2c:off*/. ĐŃĐŸ ĐŒĐŸĐ¶Đ”Ń Đ±ŃŃŃ ĐżĐŸĐ»Đ”Đ·ĐœĐŸ ĐČ ŃĐ»ŃŃаŃŃ ,
re2c duhet të gjenerojë definita për variabla, struktura dhe makros që
përdoren në njësi të tjera të përkthimit.Re2c tani kupton UTF8-literalët dhe klasat e simboleve në shprehjet e rregullta.
PĂ«r default, re2c analizohen shprehje tĂ« tilla si "âx ây" si.
sekuencë e karaktereve 1-bit ASCII e2 88 80 78 20 e2 88 83 79
(kodet hex), dhe përdoruesit janë të detyruar të mbulojnë simbolet Unicode manualisht:
"u2200x u2203y". Kjo është shumë e pakëndshme dhe e papritur për shumë
përdorues (siç dëshmojnë raportet e vazhdueshme për gabime). Prandaj tani
re2c ofron opsionin âinput-encoding ,
i cili lejon ndryshimin e sjelljes dhe analizĂ«n e "âx ây" si
2200 78 20 2203 79.Re2c tani lejon pĂ«rdorimin e blloqeve standarde re2c nĂ« modin -r âreuse.
Kjo është e dobishme nëse skedari i hyrjes përmban shumë blloqe, dhe vetëm një pjesë e tyre
ka nevojë për ripërdorim.Tanime është e mundur të caktoni formatin e paralajmërimeve dhe mesazheve të gabimeve
me opsionin e ri âlocation-format . Formati GNU paraqitet
si filename:line:column:, ndërsa formati MSVC si filename(line,column).
Ky opsion mund të jetë i dobishëm për adhuruesit e IDE.
Gjithashtu Ă«shtĂ« shtuar opsioni âverbose, i cili tregon njĂ« mesazh tĂ« shkurtĂ«r suksesi nĂ« rast suksesit.Rekuperuar Ă«shtĂ« pĂ«rmirĂ«suar modu âkompatibilitetiâ me flex â janĂ« rregulluar disa gabime tĂ« analizĂ«s dhe
prioriteti i gabuar i operatorëve në raste të rralla janë rregulluar.
Historikisht opsioni -F âflex-support lejon tĂ« shkruash kod
e kombinuar në stilin flex dhe në stilin re2c, e cila disi e komplikon analizën sintaksore.
Mjeti i kompatibilitetit me flex përdoret rrallë në kodin e ri,
por re2c e vazhdon ta mbështesë atë për të siguruar kompatibilitet mbrapsht.Operatori i zbritjes së klasave simbolike / tani aplikohet
deri në shpalosjen e kodimit, duke lejuar që të përdoret në më shumë raste,
nëse përdoret kodimi me gjatësi variabël simboli (p.sh., UTF8).Skedari dalës tani krijohet në mënyrë atomike: re2c fillimisht krijon një skedar përkohësisht
dhe shkruan rezultatin në të, pastaj rinominon skedarin përkohësisht në skedarin dalës
me një operacion.Dokumentacioni është shkruar dhe rishkruar; veçanërisht, janë shtuar kapituj të rinj
dhe për metodat e verifikimit në fund të të dhënave hyrëse..
Dokumentacioni i ri është mbledhur në një formë
manuali përmbledhës të një faqeje
me shembuj (të njëjtat burime fillestare paraqiten në manpage dhe në dokumentacionin online).
Janë bërë përpjekje të dobëta për të përmirësuar lexueshmërinë e faqes në celular.Nga pikëpamja e zhvilluesve, re2c ka fituar një nënsistem më të plotë.
debugimit. Koodi i debugimit tani është i çaktivizuar në ndërtimet e lëshimit dhe
mund tĂ« aktivizohet me mundĂ«sinĂ« configure âenable-debug.
Ky lĂ«shim Ă«shtĂ« vonuar pĂ«r njĂ« kohĂ« tĂ« gjatĂ« â pothuajse njĂ« vit.
Shumica e kohës, si gjithmonë, u shpenzua në zhvillimin e bazës teorike dhe në shkrimin
artikullit "Ekstraktimi Efikas i Nsubmatch nga NFA".
Algoritmet e përshkruar në artikull janë realizuar në bibliotekën eksperimentale libre2c
(ndërtimi i bibliotekës dhe benchmark-ëve është aktivizuar si parazgjedhje dhe përfshihet me opsionin configure
--enable-libs). Biblioteka nuk është menduar si një konkurrent për projektet ekzistuese
të tilla si RE2, por si një platformë kërkimore për zhvillimin e algoritmeve të reja
(të cilat më pas mund të përdoren në re2c ose në projekte të tjera).
Gjithashtu, kjo është e përshtatshme për testimin, benchmark-ët dhe krijimin e lidhjeve me gjuhë të tjera.
Faleminderit nga zhvilluesit e re2c të gjithë atyre që ndihmuan që ky lëshim të realizohej,
dhe tërë komunitetit për idetë, raportet për gabimet, patch-et, frymën luftarake etj. ;]
Burimi: linux.org.ru
