re2c 2.0

V ponedeljek, 20. julija, je izšla različica re2c – generatorja hitrih leksikalnih analizatorjev.
Glavne spremembe:

  • Dodana podpora za programski jezik Go
    (vklopi se z opcijo —lang go za re2c ali kot ločen program re2go).
    Dokumentacija za C in Go se generira iz istega besedila, a z različnimi
    primeri kode. Podges je bil povsem prenovljen sistem za generacijo kode v re2c, kar
    bi moralo poenostaviti podporo novim jezikom v prihodnosti.

  • Dodana je alternativa za gradnjo s CMake (hvala ligfx!).


    Poskusi, da bi re2c prenesli na CMake, so se dogajali že dolgo, toda do ligfx še
    ni bilo ničesar, kar bi ponudilo celovito rešitev.
    Stari sistem gradnje na Autotools se še naprej podpira in uporablja,
    in v bližnji prihodnosti ni načrtov, da bi se te opustilo (delno, da ne bi povzročali
    težav razvijalcem distribucij, delno pa zato, ker je stari sistem gradnje
    stabilnejši in bolj pregleden od novega).
    Oba sistema sta enako neprekinjeno testirana s pomočjo Travis CI.
  • Dodana je možnost določanja vmesniškega kode v konfiguracijah z uporabo
    generičnega API (generic API). Prej je bilo večino API-jev treba določiti v obliki
    funkcij ali funkcionalnih makrov. Zdaj jih je mogoče določiti v obliki poljubnih
    nizov z imenovanimi predlogami parametrov, kot sta @@{name} ali preprosto @@ (če
    je parameter eden in ni zmede). Stil API-jev določa konfiguracija
    re2c:api:style (vrednost functions določa funkcionalni slog, medtem ko free-form – poljubni).

  • Izboljšano delovanje opcije -c, —start-conditions, ki omogoča združevanje več
    povezanih leksikalnih analizatorjev v enem re2c-bloku. Zdaj lahko uporabite
    običajne bloke skupaj s pogojnimi in določate več nepovezanih pogojnih
    blokov v enem dokumentu.
    Izboljšano delovanje opcije -r, —reuse (ponovno uporabo kode iz enega bloka
    v drugih blokih) v kombinaciji z opcijami -c, —start-conditions in -f, —storable-state
    (leksikalni analizator s shranjenim stanjem, ki ga je mogoče prekiniti na poljubnem mestu
    in nadaljevati kasneje).

  • Odpravljena je napaka v nedavno dodanem algoritmu za obdelavo konca vhodnih podatkov
    (EOF rule), ki je v redkih primerih vodila do napačne obdelave
    prekrivajočih se pravil.

  • Poenostavljen je postopek zagon programske kode. Pred tem je sistem gradnje poskušal dinamično najti že
    zgrajen re2c, ki bi ga bilo mogoče uporabiti za ponovno gradnjo samega sebe.
    To je vodilo do napačnih odvisnosti (ker je graf odvisnosti postal
    dinamičen, česar večina sistemov za sestavljanje ne mara).
    Zdaj je potrebno izrecno
    konfigurirati sistem za sestavljanje in nastaviti spremenljivko RE2C_FOR_BUILD.

Hvala vsem, ki so sodelovali pri pripravi te različice!

Izvor: linux.org.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster