re2c 2.0

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.

  • Lisatud alternatiivne CMake'i kogumissüsteem (aitäh ligfx!).


    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

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster