re2c 2.0

V pondelok 20. júla bol vydaný re2c – generátor rýchlych lexikálnych analyzátorov.
Hlavné zmeny:

  • Pridaná podpora jazyka Go
    (zapína sa buď pomocou voľby —lang go pre re2c, alebo ako samostatný program re2go).
    Dokumentácia pre C a Go sa generuje z toho istého textu, ale s rôznymi
    príkladmi kódu. Úplne bola prepracovaná podsústava generovania kódu v re2c, čo
    by malo zjednodušiť podporu nových jazykov v budúcnosti.

  • Pridaný alternatívny systém zostavovania na CMake (ďakujeme ligfx!).


    Pokusy o prevod re2c na CMake sa robili už dávno, ale pred ligfx nikto
    neponúkol komplexné riešenie.
    Starý systém zostavovania na Autotools naďalej podporuje a používa,
    a v blízkej budúcnosti nie sú plány na jeho opustenie (čiastočne aby sa nevytvárali
    problémy vývojárom distribúcií, čiastočne preto, lebo starý systém zostavovania
    je stabilnejší a prehľadnejší než nový).
    Obe systémy sú rovnocenne neustále testované pomocou Travis CI.
  • Pridaná možnosť zadať rozhranie kódu v konfiguráciách pri použití
    generického API (generic API). Predtým sa väčšina API musela zadávať v podobe
    funkcií alebo funkcionálnych makier. Teraz ich možno zadávať v podobe ľubovoľných
    reťazcov s pomenovanými šablónovými parametrami vo forme @@{name} alebo len @@ (ak
    parametrom je jeden a nevzniká nejednoznačnosť). Štýl API sa určuje konfiguráciou
    re2c:api:style (hodnota functions určuje funkcionálny štýl, a free-form – ľubovoľný).

  • Vylepšená práca s voľbou -c, —start-conditions, ktorá umožňuje kombinovať niekoľko
    vzájomne prepojených lexérov v jednom re2c-bloku. Teraz je možné používať
    bežné bloky na rovnakej úrovni ako podmienkové a zadávať niekoľko nesúvisiacich podmienkových
    blokov v jednom súbore.
    Vylepšená práca s voľbou -r, —reuse (opätovné použitie kódu z jedného bloku
    v iných blokoch) spolu s voľbami -c, —start-conditions a -f, —storable-state
    (lexér so zachovávaným stavom, ktorý možno prerušiť v ľubovoľnom mieste
    a pokračovať v ňom neskôr).

  • Opravená chyba v nedávno pridanom algoritmoch spracovania konca vstupných dát
    (EOF rule), ktorá v zriedkavých prípadoch viedla k nesprávnemu spracovaniu
    prekrytých pravidiel.

  • Zjednodušený proces bootstrappingu. Predtým sa systém zostavovania snažil dynamicky nájsť už
    súčasne zostavený re2c, ktorý by mohol byť použitý pre prebuildovanie seba samého.
    To malo za následok nesprávne závislosti (pretože graf závislostí bol
    dynamický, čo väčšina systémov na zostavenie nemá rada).
    Teraz je potrebné explicitne nakonfigurovať systém zostavenia a nastaviť premennú RE2C_FOR_BUILD na prebudovanie lexerov.
    Ďakujem všetkým, ktorí sa podieľali na príprave tohto vydania!

🥇re2c 2.0 | ProHoster

Zdroj: linux.org.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster