Pirmadienį, liepos 20 d., buvo išleistas greito leksinio analizatoriaus generatorius re2c.
Pagrindiniai pakeitimai:
-
Pridėtas Go kalbos palaikymas
(įjungta naudojant re2c parinktį --lang go arba kaip atskirą re2go programą).
C ir Go dokumentacija yra sukurta iš to paties teksto, bet su skirtingais
kodo pavyzdžiai. Re2c kodo generavimo posistemis buvo visiškai pertvarkytas, o tai
turėtų palengvinti naujų kalbų palaikymą ateityje. -
Pridėta alternatyvi kūrimo sistema CMake (ačiū ligfx!).
Re2c versti į CMake buvo bandoma jau seniai, bet iki ligfx niekas
pasiūlė pilną sprendimą.
Senoji „Autotools“ kūrimo sistema toliau palaikoma ir naudojama,
ir artimiausiu metu neplanuojama jo atsisakyti (iš dalies tam, kad nesukurtų
problemų platinimo kūrėjams, iš dalies dėl senos kūrimo sistemos
stabilesnis ir glaustesnis nei naujasis).
Abi sistemos vienodai nuolat testuojamos naudojant Travis CI. -
Pridėta galimybė naudoti sąsajos kodą konfigūracijose
bendroji API (bendra API). Anksčiau dauguma API turėjo būti nurodytos formoje
funkcijos arba funkcijų makrokomandos. Dabar juos galima nustatyti savavališkai
eilutės su pavadintais šablono parametrais, tokiais kaip @@{vardas} arba tiesiog @@ (jei
yra tik vienas parametras ir nėra dviprasmybių). API stilių galima konfigūruoti
re2c:api:style (funkcijos reikšmė nurodo funkcinį stilių, o laisvos formos reikšmė yra savavališka). -
Patobulintas parinkties -c, --start-conditions veikimas, leidžiantis sujungti keletą
tarpusavyje sujungti lekseriai viename re2c bloke. Dabar galite naudoti
įprastus blokus, lygius su sąlyginiais, ir nustatyti keletą nesusijusių sąlyginių
blokai viename faile.
Patobulintos -r, --reuse parinktys (pakartotinis kodo naudojimas iš vieno bloko
kituose blokuose) kartu su -c, --start-conditions ir -f, --storable-state parinktimis
(būseną rodantis lekseris, kurį galima nutraukti savavališkoje vietoje
ir tęsti vykdymą vėliau). -
Ištaisyta naujai pridėto algoritmo, skirto apdoroti įvesties duomenų pabaigą, klaida
(EOF taisyklė), kuri retais atvejais lėmė neteisingą apdorojimą
sutampančios taisyklės. -
Supaprastintas įkrovos procesas. Anksčiau kūrimo sistema jau bandė dinamiškai rasti
pastatytas re2c, kuris galėtų būti naudojamas atstatyti save.
Tai lėmė neteisingas priklausomybes (nes paaiškėjo, kad priklausomybės grafikas
dinamiškas, ko nemėgsta dauguma statybinių sistemų).
Dabar, norint atstatyti lekserius, to reikia aiškiai
sukonfigūruokite kūrimo sistemą ir nustatykite kintamąjį RE2C_FOR_BUILD.
Ačiū visiems prisidėjusiems prie šio leidinio!
Šaltinis: linux.org.ru