ANTLREmpezando con ANTLR


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.

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:

  1. Hello.tokens
  2. HelloBaseListener.java
  3. HelloLexer.java
  4. HelloLexer.tokens
  5. HelloListener.java
  6. 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