re2c 2.0

Pirmdien, 20. jūlijā, tika izlaists re2c, ātrs leksiskā analizatora ģenerators.
Galvenās izmaiņas:

  • Pievienots Go valodas atbalsts
    (iespējo vai nu ar --lang go opciju re2c, vai kā atsevišķu re2go programmu).
    C un Go dokumentācija tiek ģenerēta no viena un tā paša teksta, bet ar atšķirīgu
    kodu piemēri. Kodu ģenerēšanas apakšsistēma programmā re2c ir pilnībā pārveidota, kas
    vajadzētu atvieglot jaunu valodu atbalstu nākotnē.

  • Pievienota alternatīva CMake veidošanas sistēma (paldies ligfx!).
    Mēģinājumi tulkot re2c uz CMake ir veikti jau sen, bet pirms ligfx neviens
    piedāvāja pilnīgu risinājumu.
    Autotools vecā būvēšanas sistēma joprojām tiek atbalstīta un izmantota,
    un pārskatāmā nākotnē nav plānots no tā atteikties (daļēji, lai neradītu
    problēmas izplatīšanas izstrādātājiem, daļēji tāpēc, ka vecā būvēšanas sistēma
    stabilāks un kodolīgāks par jauno).
    Abas sistēmas tiek nepārtraukti pārbaudītas, izmantojot Travis CI.

  • Pievienota iespēja iestatīt interfeisa kodu konfigurācijās lietošanas laikā
    vispārīga API. Iepriekš lielākā daļa API bija jānorāda veidlapā
    funkcijas vai funkciju makro. Tagad tos var norādīt patvaļīgi
    rindas ar nosauktiem veidnes parametriem, piemēram, @@{name} vai vienkārši @@ (ja
    ir tikai viens parametrs un nav nekādu neskaidrību). API stilu nosaka konfigurācija
    re2c:api:style (funkciju vērtība norāda funkcionālo stilu, un brīvā forma norāda patvaļīgu stilu).

  • Opcijas -c, --start-conditions darbība ir uzlabota, ļaujot apvienot vairākas
    savstarpēji savienoti lekseri vienā re2c blokā. Tagad jūs varat izmantot
    parastos blokus kopā ar nosacījuma blokiem un norādiet vairākus nesaistītus nosacījumus
    bloki vienā failā.
    Uzlabota opcijas -r, --reuse darbība (atkārtota koda izmantošana no viena bloka
    citos blokos) kombinācijā ar opcijām -c, --start-conditions un -f, --storable-state
    (stāvoklis, ko var pārtraukt jebkurā brīdī
    un turpināt izpildi vēlāk).

  • Novērsta kļūda nesen pievienotajā ievades beigu algoritmā
    (EOF noteikums), kas retos gadījumos izraisīja nepareizu apstrādi
    noteikumi, kas pārklājas.

  • Bootstrap process ir vienkāršots. Iepriekš būvēšanas sistēma jau mēģināja dinamiski atrast
    re2c būvējums, ko varētu izmantot, lai atjaunotu sevi.
    Tā rezultātā radās nepareizas atkarības (jo atkarības grafiks bija
    dinamisks, kas nepatīk lielākajai daļai būvēšanas sistēmu).
    Tagad, lai atjaunotu lekserus, jums tas ir skaidri jādara
    konfigurējiet būvēšanas sistēmu un iestatiet mainīgo RE2C_FOR_BUILD.

Paldies visiem, kas piedalījās šī izdevuma sagatavošanā!

Avots: linux.org.ru

Pievieno komentāru