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
