re2c 2.0

Esmaspäeval, 20. juulil, ilmus re2c – kiirete leksikaalanalüsaatorite generaator.
Peamised muudatused:

  • Lisatud tugi Go keelele
    (sisse lülitatakse kas -lang go valikuga re2c-s või eraldi programmiga re2go).
    C ja Go dokumentatsioon genereeritakse ühe ja sama teksti põhjal, kuid erinevate
    koodinäidete järgi. re2c koodigeneraatori alamsüsteem on täielikult ümber kujundatud, mis
    peaks tulevikus uute keelte toetamist kergemaks tegema.

  • Lisatud alternatiivne CMake keskkonna kogumise süsteem (tänud ligfx!).


    CMake'i tõlkimise katseid on tehtud juba pikka aega, kuid seni polnud keegi
    pakkunud täielikku lahendust.
    Vana Autotools keskkonna kogumise süsteem jätkab toetamist ja kasutamist,
    ja lähitulevikus pole plaanis sellest loobuda (osaliselt, et mitte tekitada
    probleeme jaotuste arendajatele, osaliselt seetõttu, et vana kogumise süsteem on
    stabiilsem ja lakoonilisem kui uus).
    Mõlemat süsteemi testitakse pidevalt Travis CI abil.
  • Lisatud võimalus määrata liidese kood konfigureerimisel, kasutades
    üldist API (generic API). Varem tuli enamus API-sid määrata funktsioonide
    või funktsionaalsete makrode kujul. Nüüd saab neid määrata suvaliste
    stringidena nimega malliparameetritega kujul @@{name} või lihtsalt @@ (kui
    parameeter on üks ja ei teki ebaselgust). API stiil määratakse konfiguratsiooni
    re2c:api:style (väärtus functions määrab funktsionaalse stiili, free-form aga suvalise).

  • Parandatud on -c, —start-conditions valiku töö, mis võimaldab ühendada mitu
    omavahel seotud leksereid ühes re2c plokis. Nüüd saab kasutada
    tavalisi plokke koos tingimuslike plokkidega ja määrata mitmeid omavahel mitteseotud
    tingimuslikke plokke ühes failis.
    Parandatud on -r, —reuse (koodi korduv kasutamine ühest plokist
    teistes plokkides) töö koos -c, —start-conditions ja -f, —storable-state
    (leksere, millel on salvestatav olek, mida saab katkestada igas kohas
    ja hiljem jätkata).

  • Parandatud on viga hiljuti lisatud sisendi lõppemise töötlemise algoritmis
    (EOF rule), mis põhjustas harvadel juhtudel vale töötlemise
    ülekatte reeglitega.

  • Lihtsustatud on buutstrapimise protsess. Varem püüdis kogumise süsteem dünaamiliselt leida
    juba kokku pandud re2c-d, mida saaks kasutada iseenda uuesti kokku panemiseks.
    See tõi kaasa vale sõltuvused (kuna sõltuvuste graaf muutus
    dinamiiliseks, mida enamus kompilatsioonisüsteeme ei armasta).
    Nüüd, et lexereid uuesti kompileerida, tuleb selgelt
    konfigureerida kompilatsioonisüsteem ja seada RE2C_FOR_BUILD muutuja.

Aitäh kõigile, kes osalesid selle versiooni ettevalmistamisel!

Allikas: linux.org.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster