Të premten, më 2 gusht, u publikua re2c, një gjenerues falas i analizuesve leksikorë për gjuhët C dhe C++. Si kujtesë, re2c u shkrua në 1993 nga Peter Bamboulis si një gjenerator eksperimental i analizuesve shumë të shpejtë leksikorë, i dalluar nga gjeneratorët e tjerë nga shpejtësia e kodit të gjeneruar dhe një ndërfaqe përdoruesi jashtëzakonisht fleksibël që lejon analizuesit të futen lehtësisht dhe me efikasitet në një baza ekzistuese e kodit. Që atëherë, projekti është zhvilluar nga komuniteti dhe vazhdon të jetë një platformë për eksperimente dhe kërkime në fushën e gramatikave formale dhe makinave me gjendje të fundme.
Risitë kryesore në versionin 1.2:
U shtua një mënyrë e re (e thjeshtuar) për të kontrolluar përfundimin e të dhënave hyrëse
(Anglisht "Rregulli EOF").
Për këtë, është shtuar konfigurimi re2c:eof,
ju lejon të zgjidhni karakterin e terminalit,
dhe një rregull i veçantë $ që ndizet nëse lexeri
arriti me sukses në fund të të dhënave hyrëse.
Historikisht, re2c ofron një zgjedhje të disa metodave të verifikimit për
fundi i inputeve ndryshon në kufizim, efikasitet dhe thjeshtësi
aplikacionet. Metoda e re është krijuar për të thjeshtuar shkrimin e kodit, ndërsa
duke mbetur efektiv dhe gjerësisht i zbatueshëm. Mënyra të vjetra
ende funksionon dhe mund të preferohet në disa raste.
U shtua aftësia për të përfshirë skedarë të jashtëm duke përdorur një direktivë
/*!include:re2c "file.re" */ ku file.re
ky është emri i skedarit të përfshirjes. Re2c kërkon skedarë në drejtorinë përfshirë skedarët,
si dhe në listën e shtigjeve të specifikuara duke përdorur opsionin -I.
Skedarët e përfshirë mund të përfshijnë skedarë të tjerë.
Re2c ofron skedarë "standard" në direktorinë e përfshirjes/
projekti - pritet që aty të grumbullohen përkufizime të dobishme
shprehje të rregullta, diçka si biblioteka standarde.
Deri më tani, me kërkesë të punëtorëve, është shtuar një dosje me përkufizimet e kategorive të Unicode.
U shtua aftësia për të gjeneruar skedarë të kokës me arbitrare
përmbajtje duke përdorur opsionet -t --type-header (ose të përshtatshme
konfigurimet) dhe direktivat e reja /*!header:re2c:on*/ dhe
/*!header:re2c:off*/. Kjo mund të jetë e dobishme në rastet kur
kur re2c duhet të gjenerojë përkufizime të variablave, strukturave dhe makrove,
përdoret në njësi të tjera përkthimi.
Re2c tani kupton fjalë për fjalë UTF8 dhe klasat e karaktereve në shprehje të rregullta.
Si parazgjedhje, re2c analizon shprehjet si "∀x ∃y" si.
sekuenca e karaktereve ASCII 1-bit e2 88 80 78 20 e2 88 83 79
(kodet hex), dhe përdoruesit duhet t'i shpëtojnë karaktereve të Unicode manualisht:
"u2200x u2203y". Kjo është shumë e papërshtatshme dhe e papritur për shumë njerëz
përdoruesit (siç dëshmohet nga raportet e vazhdueshme të gabimeve). Pra tani
re2c ofron një opsion ---input-encoding ,
e cila ju lejon të ndryshoni sjelljen dhe të analizoni "∀x ∃y" si
2200 78 20 2203 79.
Re2c tani lejon përdorimin e blloqeve të rregullta re2c në modalitetin -r --ripërdorim.
Kjo është e përshtatshme nëse skedari hyrës përmban shumë blloqe dhe vetëm disa prej tyre
duhet të ripërdoret.
Tani mund të vendosni formatin e paralajmërimeve dhe mesazheve të gabimit
duke përdorur opsionin e ri --location-format . Shfaqet formati GNU
si emri i skedarit: rreshti: kolona: dhe formati MSVC si emri i skedarit (linja, kolona).
Kjo veçori mund të jetë e dobishme për adhuruesit e IDE.
Është shtuar gjithashtu një opsion --verbose, i cili printon një mesazh të shkurtër fitoreje nëse është i suksesshëm.
Mënyra e "përputhshmërisë" me flex është përmirësuar - disa gabime analizimi janë rregulluar dhe
përparësi e gabuar e operatorit në raste të rralla.
Historikisht, opsioni -F --flex-support ju lejoi të shkruani kodin
e përzier në stilin flex dhe stilin re2c, gjë që e bën analizimin pak të vështirë.
Modaliteti i përputhshmërisë Flex përdoret rrallë në kodin e ri,
por re2c vazhdon ta mbështesë atë për pajtueshmërinë prapa.
Operatori i zbritjes së klasës së karaktereve / tani zbatohet
përpara se të zgjerohet kodimi, i cili lejon që ai të përdoret në një numër më të madh rastesh,
nëse përdoret një kodim me gjatësi të ndryshueshme karakteresh (për shembull UTF8).
Skedari i daljes tani krijohet në mënyrë atomike: re2c krijon së pari një skedar të përkohshëm
dhe shkruan rezultatin në të, dhe më pas riemëron skedarin e përkohshëm në dalje
një operacion.
Nga këndvështrimi i zhvilluesve, re2c ka fituar një nënsistem më të plotë
korrigjimi Kodi i korrigjimit tani është i çaktivizuar në versionet e lëshimit dhe
mund të aktivizohet duke përdorur opsionin configure --enable-debug.
Ky publikim zgjati shumë - pothuajse një vit të tërë.
Pjesa më e madhe e kohës, si gjithmonë, u shpenzua për zhvillimin e një kuadri teorik dhe shkrim
Artikull "Nxjerrja efikase e nënndeshjes POSIX në NFA".
Algoritmet e përshkruara në artikull janë zbatuar në bibliotekën eksperimentale libre2c
(ndërtimi i bibliotekës dhe standardeve është i çaktivizuar si parazgjedhje dhe aktivizohet nga opsioni i konfigurimit
--enable-libs). Biblioteka nuk është konceptuar si konkurrente e ekzistueses
projekte si RE2, por si një platformë kërkimore për zhvillimin e të rejave
algoritme (të cilat më pas mund të përdoren në re2c ose në projekte të tjera).
Është gjithashtu i përshtatshëm nga pikëpamja e testimit, standardeve dhe krijimit të lidhjeve me gjuhë të tjera.
Faleminderit nga zhvilluesit e re2c për të gjithë ata që ndihmuan të realizohej ky version,
dhe komunitetit në përgjithësi për ide, raporte të gabimeve, arnime, moral, etj. ;]