Lemon es un generador de analizador , mantenido como parte del proyecto SQLite , que genera un analizador LR anticipado ( 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 usado como plantilla para la salida. El análisis léxico se realiza de forma externa.
Desarrollador (es) | D. Richard Hipp |
---|---|
Escrito en | C |
Sistema operativo | Multiplataforma |
Tipo | Generador de analizador |
Licencia | Dominio publico |
Sitio web | www |
Lemon es similar a los programas Bison y Yacc , pero es incompatible con ambos. El formato de entrada de gramática es diferente, para ayudar a prevenir errores comunes de codificación. Otras características distintivas incluyen un entrante , flujos seguros de salida del analizador , y el concepto de los destructores no terminales que intentan hacer que sea más fácil para evitar pérdidas de memoria .
SQLite usa Lemon con un tokenizador codificado a mano 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 expresión 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 sintáctico se aumentan con macros m4 .
Notas
- ^ Brlcad; Carlmoore; Buscador de estrellas (30 de noviembre de 2017). "BRL-CAD: El generador de analizador de limón" . 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 .
- ^ Boerger, Marcus (24 de junio de 2014). "Léame" . SourceForge . Slashdot Media . 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 .CS1 maint: URL no apta ( enlace )
- ^ "Nueva sintaxis de expresiones" . OpenFOAM . OpenCFD. 2019-12-23 . Consultado el 13 de enero de 2020 .
- ^ "wmake fuentes" . OpenFOAM . OpenCFD. 2019-09-27 . Consultado el 13 de enero de 2020 .
- ^ "README" . OpenFOAM . OpenCFD. 2019-09-27 . Consultado el 13 de enero de 2020 .
Referencias
- "El generador de analizador de limón" . Consultado el 21 de mayo de 2020 .
- "Arquitectura de SQLite" . 2008-11-01 . Consultado el 21 de mayo de 2020 .
enlaces externos
- Página web oficial
- Calculadora con Lemon y Lex en C ++ Ejemplo
- Comprensión del analizador generado por Lemon
- Limón, incluido con Re2c y Perplex
- Lemon Grove: Lemon junto con proyectos hermanos, bifurcaciones y activos