re2c 2.0

Július 20-án, hétfőn megjelent a re2c – a gyors lexikai elemzők generátora.
Főbb változások:

  • Hozzáadva a Go nyelv támogatása
    (a re2c esetén —lang go opcióval, vagy külön programként re2go formájában).
    A C és Go dokumentáció ugyanabból a szövegből generálódik, de eltérő
    példakódokkal. A re2c kódgeneráló alrendszere teljesen át lett dolgozva, ami
    megkönnyíti az új nyelvek támogatását a jövőben.

  • Kiegészítő CMake build rendszer került hozzáadásra (köszönet ligfx!).


    A re2c CMake-ra való átültetési kísérletei már régóta folynak, de ligfx előtt senki sem
    ajánlott teljes megoldást.
    A régi Autotools build rendszert továbbra is támogatják és használják,
    és a közeli jövőben nincsenek tervek annak elhagyására (részben, hogy ne okozzon
    problémát a disztribútoroknak, részben pedig azért, mert a régi build rendszer
    stabilabb és tömörebb, mint az új).
    Mindkét rendszer folyamatosan tesztelve van a Travis CI segítségével.
  • Lehetőség van interfészkód megadására az konfigurációkban a
    generic API használata mellett. Korábban a legtöbb API-t funkciók vagy funkcionális makrók formájában kellett megadni.
    Most már szabad szövegként, névvel ellátott sablonparaméterek formájában is megadhatók, mint például @@{name} vagy egyszerűen @@ (ha
    csak egy paraméter van, és nincs kétértelműség). Az API stílusát a re2c:api:style konfiguráció határozza meg (a functions érték funkcionális stílust ad meg, míg a free-form a szabad formát).
    Javult az -c, —start-conditions opció működése, amely lehetővé teszi több
    kapcsolódó lexers egy re2c-blokkban történő összekapcsolását. Mostantól használhatók a

  • hagyományos blokkok a feltételesekkel együtt, és több egymástól független feltételes
    blokk is létrehozható egy fájlban.
    Javult az -r, —reuse (kód újrafelhasználás egy blokkban
    más blokkokban) működése az -c, —start-conditions és -f, —storable-state opciókkal kombinálva
    (lexer mentett állapottal, amely akármelyik ponton megszakítható
    és később folytatható).
    Javították a közelmúltban hozzáadott EOF (End of File) feldolgozó algoritmus hibáját,
    amely ritka esetekben helytelen feldolgozási eredményhez vezetett

  • átfedő szabályok esetén.
    Egyszerűsödött a bootstrapping folyamata. Korábban a build rendszer megpróbálta dinamikusan megtalálni az már
    összeállított re2c-t, amely felhasználható lett volna önmagának az újraépítésére.

  • Egyszerűsödött a bootstrap folyamat. Korábban a build rendszer dinamikusan próbálta megkeresni a már
    összeállított re2c-t, amelyet saját magának az újbóli összeállításához használhatott.
    Ez hibás függőségekhez vezetett (mivel a függőségi gráf dinamikus lett, amit a legtöbb építési rendszer nem szeret).
    dinamikus, amiért a legtöbb build rendszer nem kedveli őt).
    Mostantól a lexer-ek újraépítéséhez kifejezetten konfigurálni kell az építési rendszert és be kell állítani az RE2C_FOR_BUILD változót.
    Köszönet mindenkinek, aki részt vett ennek a kiadásnak az előkészítésében!

🥇re2c 2.0 | ProHoster

Forrás: linux.org.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster