Július 20-án, hétfőn megjelent a re2c, egy gyors lexikális elemző generátor.
Nagy változások:
-
Támogatás hozzáadva a Go nyelvhez
(vagy a --lang go opcióval engedélyezhető a re2c-hez, vagy önálló re2go programként).
A C és Go dokumentációja ugyanabból a szövegből jön létre, de eltérő
kódpéldák. A re2c kódgeneráló alrendszerét teljesen újratervezték, ami
megkönnyíti az új nyelvek támogatását a jövőben. -
Alternatív build rendszer hozzáadva a CMake-hez (köszönjük ligfx!).
Régóta próbálták lefordítani a re2c-t CMake-re, de a ligfx előtt senki sem
teljes megoldást kínált.
Az Autotools régi build rendszere továbbra is támogatott és használatos,
és a belátható jövőben nem tervezik felhagyni vele (részben azért, hogy ne hozzon létre
problémák a terjesztési fejlesztők számára, részben a régi build rendszer miatt
stabilabb és tömörebb, mint az új).
Mindkét rendszert egyformán folyamatosan tesztelik a Travis CI segítségével. -
Hozzáadtuk az interfész kód beállításának lehetőségét a konfigurációkban használat közben
általános API (általános API). Korábban a legtöbb API-t meg kellett adni az űrlapon
függvények vagy függvénymakrók. Most beállíthatók tetszőleges formában
karakterláncok elnevezett sablonparaméterekkel @@{név} vagy csak @@ (ha
csak egy paraméter van, és nincs kétértelműség). Az API stílus konfigurálható
re2c:api:style (a függvények értéke a funkcionális stílust adja meg, míg a szabad formájú érték tetszőleges). -
A -c, --start-conditions opció továbbfejlesztett működése, amely lehetővé teszi több kombinálását
összekapcsolt lexerek egy re2c blokkban. Most már használhatja
közönséges blokkokat a feltételes blokkokkal egyenrangú, és több, egymással nem összefüggő feltételt állít be
blokkok egy fájlban.
Továbbfejlesztett -r, --reuse opciók (egy blokkból származó kód újrafelhasználása
más blokkokban) a -c, --start-conditions és -f, --storable-state opciókkal kombinálva
(egy állapotjelző lexer, amely tetszőleges helyen megszakítható
és később folytassa a végrehajtást). -
Javítva egy hiba az újonnan hozzáadott, a bemeneti adatok végének kezelésére szolgáló algoritmusban
(EOF szabály), ami ritka esetekben hibás feldolgozáshoz vezetett
egymást átfedő szabályok. -
Egyszerűsített bootstrap folyamat. Korábban a build rendszer már dinamikusan próbált keresni
épített re2c-t, amivel újjá lehetett építeni magát.
Ez helytelen függőségekhez vezetett (mivel a függőségi gráf kiderült
dinamikus, amit a legtöbb build rendszer nem szeret).
Most a lexerek újjáépítéséhez kifejezetten szükséges
konfigurálja a build rendszert, és állítsa be a RE2C_FOR_BUILD változót.
Köszönjük mindenkinek, aki hozzájárult ehhez a kiadáshoz!
Forrás: linux.org.ru