Esmaspäeval, 20. juulil ilmus re2c — kiirete leksikaalanalüsaatorite generaator.
Peamised muudatused:
Lisatud Go keele tugi
(kasutatakse kas valikuga —lang go re2c või eraldi programmi re2go kaudu).
C ja Go dokumentatsioon genereeritakse samast tekstist, kuid erinevate
koodinäidistega. re2c-s on täielikult ümber kujundatud koodigeneraatori alamsüsteem, mis
peaks tulevikus uute keelte toetamist lihtsustama.-
Re2c üleviimise katsed CMake'le on juba ammu tehtud, kuid enne ligfx-i ei ole keegi
esitanud terviklikku lahendust.
Muutumatute Autotööstuse kogumissüsteem jätkab toetust ja kasutamist,
ja lähitulevikus pole plaanis sellest loobuda (osaliselt, et mitte luua
probleeme jaotuste arendajatele, osaliselt seetõttu, et vana kogumissüsteem
on stabiilsem ja kompaktsem kui uus).
Kumbki süsteem testitakse pidevalt Travis CI abil. Lisatud on võimalus määrata liidese kood konfiguratsioonides, kasutades
üldist APU-d (generic API). Varem pidid enamus APU-sid määrama kujul
funktsioonide või funktsionaalsete makrode määramine. Nüüd saab neid määrata suvaliste
stringidena, millel on nimega malliparameetrid kujul @@{name} või lihtsalt @@ (kui
parameeter on ainus ja ei teki mitmetähenduslikkust). API stiili määrab konfiguratsioon
re2c:api:style (väärtus functions määrab funktsionaalse stiili ja free-form – suvalise).Parandatud on -c, --start-conditions valiku toimimist, mis võimaldab mitme
omavahel seotud leksiku kasutamist ühes re2c-blokis. Nüüd saab kasutada
tavalisi blokke koos tingimuslikega ja määrata mitu omavahel mitte seotud tingimuslikku
blokka ühes failis.
Parandatud on -r, --reuse (koodi korduv kasutamine ühest blokist
teistes blokkides) toimimist koos valikutega -c, --start-conditions ja -f, --storable-state
(leksik, mille olekut saab salvestada, mida saab katkestada suvalises kohas
ja jätkata hiljem).Parandatud on viga hiljuti lisatud sisendi lõpu töötlemise algoritmis
(EOF reegel), mis harvadel juhtudel viis vale töötlemiseni
ületavad reeglid.Bootstrap-protsess on lihtsustunud. Varem püüdis koostesüsteem dünaamiliselt leida juba
kokku pandud re2c, mida saaks kasutada ennast uuesti kogumiseks.
See põhjustas vale sõltuvusi (kuna sõltuvuste graafik sai
dünaamiliseks, mida enamik kogumissüsteeme ei soovi).
Nüüd on lexereid uuesti kogumiseks vaja selgelt
kogumissüsteem konfigureerida ja määrata RE2C_FOR_BUILD muutuja.
Aitäh kõigile, kes aitasid selle versiooni ettevalmistamisel!
Allikas: linux.org.ru
