re2c 2.0

O luns 20 de xullo lanzouse re2c, un xerador de analizadores léxicos rápidos.
Principais cambios:

  • Engadiuse compatibilidade con idiomas Go
    (activado pola opción --lang go para re2c ou como un programa re2go separado).
    A documentación para C e Go xérase a partir do mesmo texto, pero con diferente
    exemplos de código. O subsistema de xeración de código en re2c foi completamente redeseñado, o que
    debería facilitar o apoio ás novas linguas no futuro.

  • Engadiuse un sistema de compilación alternativo para CMake (grazas ligfx!).
    Os intentos de traducir re2c a CMake fixéronse durante moito tempo, pero antes de ligfx ninguén
    ofrecía una solución completa.
    O sistema de compilación antigo en Autotools segue sendo compatible e usándose,
    e nun futuro previsible non hai plans para abandonalo (en parte para non crear
    problemas para os desenvolvedores de distribución, en parte debido ao antigo sistema de compilación
    máis estable e máis concisa que a nova).
    Ambos sistemas son probados continuamente usando Travis CI.

  • Engadida a posibilidade de establecer o código de interface nas configuracións ao usar
    API xenérica. Anteriormente, a maioría das API tiñan que especificarse no formulario
    funcións ou macros de funcións. Agora pódense especificar en forma de arbitrario
    liñas con parámetros de modelo nomeados como @@{nome} ou só @@ (se
    só hai un parámetro e non hai ambigüidade). O estilo da API é especificado pola configuración
    re2c:api:style (o valor das funcións especifica un estilo funcional e free-form especifica un estilo arbitrario).

  • Mellorouse o funcionamento da opción -c, --start-conditions, o que lle permite combinar varias
    Lexers interconectados nun bloque re2c. Agora podes usar
    bloques regulares xunto cos condicionais e especifique varios condicionais non relacionados
    bloques nun ficheiro.
    Funcionamento mellorado da opción -r, --reuse (reutilización de código dun bloque
    noutros bloques) en combinación coas opcións -c, --start-conditions e -f, --storable-state
    (un lexer con estado que se pode interromper en calquera punto
    e continuar coa execución máis tarde).

  • Corrixiuse un erro no algoritmo de fin de entrada engadido recentemente
    (regra EOF), que en casos raros levou a un procesamento incorrecto
    regras superpostas.

  • Simplificouse o proceso de arranque. Anteriormente, o sistema de compilación xa intentou atopar de forma dinámica
    unha compilación re2c que podería usarse para reconstruírse.
    Isto deu lugar a dependencias incorrectas (xa que o gráfico de dependencias era
    dinámica, que á maioría dos sistemas de compilación non gusta).
    Agora, para reconstruír lexers, cómpre facelo de forma explícita
    configure o sistema de compilación e configure a variable RE2C_FOR_BUILD.

Grazas a todos os que participaron na preparación deste lanzamento!

Fonte: linux.org.ru

Engadir un comentario