re2c 2.0

El dilluns 20 de juliol es va llançar el llançament de re2c, un generador ràpid d'analitzadors lèxics.
Principals canvis:

  • S'ha afegit suport per a l'idioma Go
    (habilitat amb l'opció --lang go per a re2c, o com a programa re2go autònom).
    La documentació de C i Go es genera a partir del mateix text, però amb diferent
    exemples de codi. El subsistema de generació de codi a re2c ha estat completament redissenyat, cosa que
    hauria de facilitar el suport de nous idiomes en el futur.

  • S'ha afegit un sistema de construcció alternatiu a CMake (gràcies ligfx!).
    Els intents de traduir re2c a CMake s'han fet durant molt de temps, però abans de ligfx ningú
    va oferir una solució completa.
    L'antic sistema de construcció d'Autotools continua sent compatible i utilitzant-se,
    i en un futur previsible no hi ha plans per abandonar-lo (en part per no crear
    problemes per als desenvolupadors de distribució, en part a causa de l'antic sistema de construcció
    més estable i concisa que la nova).
    Tots dos sistemes es posen a prova de manera contínua amb Travis CI.

  • S'ha afegit la possibilitat d'establir el codi de la interfície en configuracions quan s'utilitza
    API genèrica (API genèrica). Anteriorment, la majoria de les API s'havien d'especificar al formulari
    funcions o macros de funcions. Ara es poden configurar en forma d'arbitrària
    cadenes amb paràmetres de plantilla amb nom de la forma @@{nom} o només @@ (si
    només hi ha un paràmetre i no hi ha ambigüitat). L'estil de l'API es pot configurar
    re2c:api:style (el valor de les funcions especifica l'estil funcional, mentre que el valor de forma lliure és arbitrari).

  • Funcionament millorat de l'opció -c, --start-conditions, que permet combinar-ne diverses
    Lexers interconnectats en un bloc re2c. Ara pots utilitzar
    blocs ordinaris al mateix nivell que els condicionals i establir diversos condicionals no relacionats
    blocs en un sol fitxer.
    Opcions -r, --reuse millorades (reutilització del codi d'un bloc
    en altres blocs) en combinació amb les opcions -c, --start-conditions i -f, --storable-state
    (un lexer amb estat que es pot interrompre en una ubicació arbitrària
    i continuar amb l'execució més tard).

  • S'ha corregit un error a l'algorisme afegit recentment per gestionar el final de les dades d'entrada
    (regla EOF), que en casos excepcionals va provocar un tractament incorrecte
    regles superposades.

  • Procés d'arrencada simplificat. Anteriorment, el sistema de compilació ja intentava trobar dinàmicament
    re2c construït que es podria utilitzar per reconstruir-se.
    Això va provocar dependències incorrectes (perquè el gràfic de dependències va resultar
    dinàmic, que a la majoria dels sistemes de construcció no els agrada).
    Ara, per reconstruir lexers, es requereix explícitament
    configureu el sistema de compilació i configureu la variable RE2C_FOR_BUILD.

Gràcies a tots els que heu contribuït a aquest llançament!

Font: linux.org.ru

Afegeix comentari