Esmaspäeval, 20. juulil, ilmus re2c – kiirete leksikaalanalüsaatorite generaator.
Peamised muudatused:
Lisatud tugi Go keelele
(sisse lülitatakse kas -lang go valikuga re2c-s või eraldi programmiga re2go).
C ja Go dokumentatsioon genereeritakse ühe ja sama teksti põhjal, kuid erinevate
koodinäidete järgi. re2c koodigeneraatori alamsüsteem on täielikult ümber kujundatud, mis
peaks tulevikus uute keelte toetamist kergemaks tegema.-
CMake'i tõlkimise katseid on tehtud juba pikka aega, kuid seni polnud keegi
pakkunud täielikku lahendust.
Vana Autotools keskkonna kogumise süsteem jätkab toetamist ja kasutamist,
ja lähitulevikus pole plaanis sellest loobuda (osaliselt, et mitte tekitada
probleeme jaotuste arendajatele, osaliselt seetõttu, et vana kogumise süsteem on
stabiilsem ja lakoonilisem kui uus).
Mõlemat süsteemi testitakse pidevalt Travis CI abil. Lisatud võimalus määrata liidese kood konfigureerimisel, kasutades
üldist API (generic API). Varem tuli enamus API-sid määrata funktsioonide
või funktsionaalsete makrode kujul. Nüüd saab neid määrata suvaliste
stringidena nimega malliparameetritega kujul @@{name} või lihtsalt @@ (kui
parameeter on üks ja ei teki ebaselgust). API stiil määratakse konfiguratsiooni
re2c:api:style (väärtus functions määrab funktsionaalse stiili, free-form aga suvalise).Parandatud on -c, —start-conditions valiku töö, mis võimaldab ühendada mitu
omavahel seotud leksereid ühes re2c plokis. Nüüd saab kasutada
tavalisi plokke koos tingimuslike plokkidega ja määrata mitmeid omavahel mitteseotud
tingimuslikke plokke ühes failis.
Parandatud on -r, —reuse (koodi korduv kasutamine ühest plokist
teistes plokkides) töö koos -c, —start-conditions ja -f, —storable-state
(leksere, millel on salvestatav olek, mida saab katkestada igas kohas
ja hiljem jätkata).Parandatud on viga hiljuti lisatud sisendi lõppemise töötlemise algoritmis
(EOF rule), mis põhjustas harvadel juhtudel vale töötlemise
ülekatte reeglitega.Lihtsustatud on buutstrapimise protsess. Varem püüdis kogumise süsteem dünaamiliselt leida
juba kokku pandud re2c-d, mida saaks kasutada iseenda uuesti kokku panemiseks.
See tõi kaasa vale sõltuvused (kuna sõltuvuste graaf muutus
dinamiiliseks, mida enamus kompilatsioonisüsteeme ei armasta).
Nüüd, et lexereid uuesti kompileerida, tuleb selgelt
konfigureerida kompilatsioonisüsteem ja seada RE2C_FOR_BUILD muutuja.
Aitäh kõigile, kes osalesid selle versiooni ettevalmistamisel!
Allikas: linux.org.ru
