ANTLR Tutorial
Empezando con ANTLR
Buscar..
Observaciones
ANTLR (otra herramienta para el reconocimiento de idiomas) es un potente generador de analizadores para leer, procesar, ejecutar o traducir texto binario o texto estructurado. Es ampliamente utilizado para construir lenguajes, herramientas y marcos. Desde una gramática, ANTLR genera un analizador que puede construir y caminar árboles de análisis.
- Sitio web oficial de antlr (siempre apunta a la última versión)
Versiones de Antlr
Antlr se divide en dos grandes partes, la gramática (archivos de gramática) y los archivos de código generados, que se derivan de la gramática basada en el idioma de destino. Las versiones de antlr están en el formato de V1.V2.V3:
- V1: el cambio en V1 significa que se introdujo una nueva sintaxis de características en los archivos de gramática
- V2: el cambio en V2 significa que se introdujeron nuevas características o correcciones importantes en los archivos generados (por ejemplo, adición de nuevas funciones)
- V3: significa correcciones de errores o mejoras menores
Bibliotecas en tiempo de ejecución y objetivos de generación de código
La herramienta Antlr está escrita en Java, sin embargo, es capaz de generar analizadores y lexers en varios idiomas. Para ejecutar el analizador y el lexer también necesitará tener la biblioteca de ejecución de antlr junto con el analizador y el código del lexer. El idioma de destino admitido (y las bibliotecas de tiempo de ejecución) son los siguientes:
Java
DO#
Python (2 y 3)
JavaScript
Versiones
Versión | Fecha de lanzamiento |
---|---|
2.0 | 1997-05-01 |
3.0 | 2011-01-19 |
4.0 | 2013-01-21 |
4.1 | 2013-07-01 |
4.2 | 2014-02-05 |
4.2.1 | 2014-03-25 |
4.2.2 | 2014-04-07 |
4.3 | 2014-06-19 |
4.4 | 2014-07-16 |
4.5 | 2015-01-23 |
4.5.1 | 2016-07-16 |
4.5.2 | 2016-01-30 |
4.5.3 | 2016-03-31 |
4.6 | 2016-12-15 |
4.7 | 2017-03-30 |
Hola Mundo
Una simple gramática de hola mundo se puede encontrar aquí :
// define a grammar called Hello
grammar Hello;
r : 'hello' ID;
ID : [a-z]+ ;
WS : [ \t\r\n]+ -> skip ;
Para compilar este ejemplo .g4, puede ejecutar el siguiente comando desde su terminal / línea de comandos de sistemas operativos:
Java -jar antlr-4.5.3-complete.jar Hello.g4
//OR if you have setup an alias or use the recommended batch file
antlr4 Hello.g4
La creación de este ejemplo debería generar el siguiente resultado en el directorio de archivos Hello.g4:
- Hello.tokens
- HelloBaseListener.java
- HelloLexer.java
- HelloLexer.tokens
- HelloListener.java
- HelloParser.java
Cuando utilice estos archivos en su propio proyecto, asegúrese de incluir el archivo jar ANTLR. Para compilar todos estos archivos utilizando Java, en el mismo directorio operativo o por ruta, ejecute el siguiente comando:
javac *.java