Lemon es un generador de analizadores sintácticos , mantenido como parte del proyecto SQLite , que genera un analizador LR de anticipación ( analizador LALR ) en el lenguaje de programación C a partir de una gramática de entrada libre de contexto . El generador es bastante simple, implementado en un archivo fuente C con otro archivo utilizado como plantilla para la salida. El análisis léxico se realiza externamente.
Lemon es similar a los programas Bison y Yacc , pero es incompatible con ambos. El formato de entrada de la gramática es diferente, para ayudar a prevenir errores de codificación comunes. Otras características distintivas incluyen un analizador de salida reentrante y seguro para subprocesos , y el concepto de destructores no terminales que intentan facilitar la prevención de fugas de memoria .
SQLite usa Lemon con un tokenizador codificado manualmente para analizar cadenas SQL .
Lemon, junto con re2c y un contenedor de re2c llamado Perplex, se utilizan [1] [2] [3] en BRL-CAD como alternativas independientes de la plataforma y fácilmente compilables a Flex y Bison. Esta combinación también se utiliza con STEPcode. [4]
La evaluación de expresiones de OpenFOAM [5] utiliza una combinación de ragel y una versión de lemon que ha sido mínimamente modificada [6] para facilitar la integración de C++ sin afectar la integración de C. [7] Las gramáticas del analizador se amplían con macros m4 .
Notas
- ^ Brlcad; Carlmoore; Starseeker (30 de noviembre de 2017). "BRL-CAD: El generador de analizadores Lemon". SourceForge . Slashdot Media . Consultado el 21 de septiembre de 2019 .
- ^ Bumbulis, Peter (23 de agosto de 2011). "Léame". SourceForge . Slashdot Media . Consultado el 21 de septiembre de 2019 .
- ^ Börger, Marcus (24 de junio de 2014). "Léame". FuenteForge . Medios de barra diagonal . Consultado el 21 de septiembre de 2019 .
- ^ "Léame". STEPcode . GitHub. 2015. Archivado desde el original el 10 de abril de 2018 . Consultado el 21 de septiembre de 2019 .
{{cite web}}: CS1 maint: URL no apta ( enlace ) - ^ "Nueva sintaxis de expresiones". OpenFOAM . OpenCFD. 2019-12-23 . Consultado el 2020-01-13 .
- ^ "fuentes de wmake". OpenFOAM . OpenCFD. 2019-09-27 . Consultado el 2020-01-13 .
- ^ "README". OpenFOAM . OpenCFD. 2019-09-27 . Consultado el 2020-01-13 .
Referencias
- "El generador de análisis sintáctico Lemon" . Consultado el 21 de mayo de 2020 .
- "Arquitectura de SQLite". 2008-11-01 . Consultado el 2020-05-21 .
Enlaces externos
- Sitio web oficial
- Ejemplo de calculadora con Lemon y Lex en C++
- Entendiendo el analizador generado por Lemon
- Limón, combinado con Re2c y Perplex
- Lemon Grove: Lemon junto con proyectos hermanos, bifurcaciones y activos