re2c 2.0

Maanantaina 20. heinäkuuta julkaistiin re2c, nopea leksikaalinen analysaattorigeneraattori.
Suurimmat muutokset:

  • Lisätty Go-kielituki
    (ota käyttöön joko --lang go -vaihtoehdolla re2c:lle tai erillisenä re2go-ohjelmana).
    C:n ja Go:n dokumentaatio luodaan samasta tekstistä, mutta eri tekstillä
    koodiesimerkkejä. Re2c:n koodin luontialijärjestelmä on suunniteltu kokonaan uudelleen, mikä
    pitäisi helpottaa uusien kielten tukemista tulevaisuudessa.

  • Lisätty vaihtoehtoinen rakennusjärjestelmä CMakelle (kiitos ligfx!).
    Re2c:tä on yritetty kääntää CMakeksi jo pitkään, mutta ennen ligfx:ää ei kukaan
    tarjosi täydellisen ratkaisun.
    Autotoolsin vanhaa rakennusjärjestelmää tuetaan ja käytetään edelleen,
    ja lähitulevaisuudessa ei ole suunnitelmia luopua siitä (osittain jotta ei luoda
    ongelmia jakelun kehittäjille, osittain vanhan koontijärjestelmän vuoksi
    vakaampi ja ytimekkäämpi kuin uusi).
    Molempia järjestelmiä testataan jatkuvasti Travis CI:n avulla.

  • Lisätty mahdollisuus asettaa käyttöliittymäkoodi kokoonpanoihin käytettäessä
    yleinen API. Aikaisemmin useimmat API:t piti määrittää lomakkeessa
    funktioita tai funktiomakroja. Nyt ne voidaan määrittää mielivaltaisena
    rivit nimetyillä malliparametreilla, kuten @@{nimi} tai vain @@ (jos
    on vain yksi parametri, eikä siinä ole epäselvyyttä). API-tyyli määritellään kokoonpanossa
    re2c:api:style (funktion arvo määrittää toiminnallisen tyylin ja vapaamuotoinen määrittelee mielivaltaisen tyylin).

  • Valinnan -c, --start-conditions toimintaa on parannettu, jolloin voit yhdistää useita
    toisiinsa yhdistetyt lekserit yhdessä re2c-lohkossa. Nyt voit käyttää
    säännölliset lohkot ehdollisten lohkojen kanssa ja määritä useita toisiinsa liittymättömiä ehdollisia
    lohkoja yhdessä tiedostossa.
    Parannettu -r, --reuse -vaihtoehdon toiminta (koodin uudelleenkäyttö yhdestä lohkosta
    muissa lohkoissa) yhdessä vaihtoehtojen -c, --start-conditions ja -f, --storable-state kanssa
    (tilallinen lexer, joka voidaan keskeyttää milloin tahansa
    ja jatka suorittamista myöhemmin).

  • Korjattu äskettäin lisätyn syötteen loppu-algoritmin virhe
    (EOF-sääntö), joka harvoissa tapauksissa johti virheelliseen käsittelyyn
    päällekkäisiä sääntöjä.

  • Bootstrap-prosessia on yksinkertaistettu. Aiemmin rakennusjärjestelmä yritti löytää jo dynaamisesti
    re2c-versio, jota voitaisiin käyttää itsensä rakentamiseen.
    Tämä johti vääriin riippuvuuksiin (koska riippuvuuskaavio oli
    dynaaminen, josta useimmat rakennusjärjestelmät eivät pidä).
    Nyt, jotta voit rakentaa lekserit uudelleen, sinun on tehtävä se erikseen
    määritä koontijärjestelmä ja aseta RE2C_FOR_BUILD-muuttuja.

Kiitos kaikille tämän julkaisun valmisteluun osallistuneille!

Lähde: linux.org.ru

Lisää kommentti