U ponedjeljak, 20. srpnja, objavljeno je izdanje re2c, brzog generatora leksičkog analizatora.
Velike promjene:
-
Dodana podrška za Go jezik
(omogućeno s opcijom --lang go za re2c ili kao samostalan re2go program).
Dokumentacija za C i Go generirana je iz istog teksta, ali s različitim
primjeri kodova. Podsustav za generiranje koda u re2c potpuno je redizajniran, što
trebalo bi olakšati podršku za nove jezike u budućnosti. -
Dodan alternativni sustav izrade na CMakeu (hvala ligfx!).
Dugo se pokušava prevesti re2c u CMake, ali prije ligfxa nitko
ponudio cjelovito rješenje.
Stari sustav izrade na Autotoolsu nastavlja biti podržan i korišten,
i u doglednoj budućnosti nema planova za njegovo napuštanje (djelomično da ne stvara
problemi za razvojne programere distribucije, dijelom zbog starog sustava izrade
stabilniji i koncizniji od novog).
Oba sustava se jednako kontinuirano testiraju pomoću Travis CI. -
Dodana je mogućnost postavljanja koda sučelja u konfiguracijama prilikom korištenja
generički API (generički API). Prije je većina API-ja morala biti navedena u obrascu
funkcije ili makronaredbe funkcija. Sada se mogu postaviti u proizvoljnom obliku
nizovi s imenovanim parametrima predloška u obliku @@{name} ili samo @@ (ako
postoji samo jedan parametar i nema dvosmislenosti). API stil se može konfigurirati
re2c:api:style (vrijednost funkcije određuje funkcionalni stil, dok je vrijednost slobodnog oblika proizvoljna). -
Poboljšan rad opcije -c, --start-conditions, koja vam omogućuje kombiniranje nekoliko
međusobno povezani lekseri u jednom re2c bloku. Sada možete koristiti
obične blokove u rangu s onima uvjetovanim i postaviti nekoliko nepovezanih uvjeta
blokova u jednoj datoteci.
Poboljšane opcije -r, --reuse (ponovno korištenje koda iz jednog bloka
u drugim blokovima) u kombinaciji s opcijama -c, --start-conditions i -f, --storable-state
(lekser sa stanjem koji se može prekinuti na proizvoljnom mjestu
a izvođenje nastaviti kasnije). -
Ispravljena je pogreška u novododanom algoritmu za rukovanje krajem ulaznih podataka
(EOF pravilo), što je u rijetkim slučajevima dovelo do netočne obrade
pravila preklapanja. -
Pojednostavljeni postupak pokretanja sustava. Prethodno je sustav izgradnje već pokušao dinamički pronaći
izgrađen re2c koji bi se mogao koristiti za obnovu samog sebe.
To je dovelo do netočnih ovisnosti (jer je graf ovisnosti ispao
dinamičan, što većina sustava za izgradnju ne voli).
Sada, kako bi se ponovno izgradili lekseri, potrebno je eksplicitno
konfigurirajte sustav izgradnje i postavite varijablu RE2C_FOR_BUILD.
Hvala svima koji su pridonijeli ovom izdanju!
Izvor: linux.org.ru