Вы находитесь на странице: 1из 11

Guia-Instalacion-Antlr4

View on GitHub

Guia-Instalacin-Antlr4- v4 Espaol
Esta gua te mostrar como instalar Antlr4 un potente generador de parser para todas las plataformas.
Es la nueva versin de ANTLR una mejora de las versiones antiguas es el hecho de poder escribir gramticas mas
naturales y estandarizadas como lo realiza yacc! Mira prefacio del libro de ANTLR v4 como una gua ms detallada.

Descripcin
ANTLR es realmente dos cosas: una herramienta que traduce su gramtica a un parser/lexer en Java (u otro lenguaje de
programacin) y las rutinas necesarias para los analizadores / lexers generados. Incluso si est utilizando el
complemento ANTLR Intellij o ANTLRWorks para ejecutar la herramienta ANTLR, el cdigo generado seguir necesitando
la biblioteca con las rutinas.

Instalacin
Antes de comenzar con la instalacin es necesario descargar lo siguiente:
Java JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
antlr-4.5.3-complete.jar http://www.antlr.org/download.html

UNIX
1. Instalar Java JDK (versin 1.6 o superior)
2. Descargar $ cd /Users/tu_Usuario/Library $ curl -O http://www.antlr.org/download/antlr-4.6-complete.jar O descrgalo desde el
navegador desde: http://www.antlr.org/download.html y ponlo en algun lugar racional como
/Users/tu_Usuario/Library .
3. Agrega antlr-4.6-complete.jar a tu CLASSPATH : $ export CLASSPATH=".:/Users/Library/antlr-4.6-complete.jar:$CLASSPATH"
4. Crear alias para ANTLR, y para TestRig . $ alias antlr4='java -Xmx500M -cp "/usr/local/lib/antlr-4.5.3-complete.jar:$CLASSPATH"
org.antlr.v4.Tool' $ alias grun='java org.antlr.v4.gui.TestRig'

WINDOWS
1. Instalar Java SE Development Kit 8u121(version 1.6 o superior) desde
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Considerar que el destino de ubicacin(Drive) debe ser el mismo que el del sistema operativo.

converted by Web2PDFConvert.com
2. Descargar antlr-4.6-complete.jar (o cualquier version) de http://www.antlr.org/download/ Guardar en el directorio
para librerias de terceros, como: C:\Javalib
3. Aadir antlr-4.6-complete.jar al PATH, de la siguiente manera:
Ir a Cuentas de Usuario> Cambiar las variables de entorno.

Crear o aadir una variable PATH para antlr C:\Javalib\antlr-4.6.complete.jar y para el jdk C:\Program

Files\jdk.1.8.0_111\bin
4. Crear atajos para los comandos de las herramientas ATNRL y TestRig, usandos archivos batch o comandos doskey:
Archivo batch con el siguiente contenido (en el mismo direcorio agregado de PATH) antlr4.bat java
org.antlr.v4.Tool %* Archivo batch con el siguiente contenido (en el mismo direcorio agregado de PATH) grun.bat
java org.antlr.v4.gui.TestRig %*

converted by Web2PDFConvert.com
O, usando comandos doskey: doskey antlr4=java org.antlr.v4.Tool $* doskey grun =java org.antlr.v4.gui.TestRig $*

Probando la instalacin en WINDOWS con un Ejemplo


En el directorio CLASSPATH C:\Javalib ejecutar el comando : * Siempre para empezar el uso, en la terminal de comandos
(CMD) , realizar un set del PATH antlr: SET CLASSPATH=.;C:\Javalib\antlr-4.6-complete.jar;%CLASSPATH% * Ejectuar la siguiente
instruccin para verificar la instalacin $ C:\Javalib>antlr4 ANTLR Parser Generator Version 4.6 -o specify output directory where
all output is generated -lib specify location of .tokens files ...

* En la misma carpeta CLASSPATH colocar la siguiente gramtica dentro de un archivo Hello.g4 :

// Define a grammar called Hello


grammar Hello;
r : 'hello' ID ; // match keyword hello followed by an identifier
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines

Para ejectuar la herramienta ANTLR en la consola (CMD):

$ cd /Javalib
$ SET CLASSPATH=.;C:\Javalib\antlr-4.6-complete.jar;%CLASSPATH%
$ antlr4 Hello.g4
$ javac Hello*.java

Ahora para la prueba:

converted by Web2PDFConvert.com
$ grun Hello r -tree
hello parrt
^Z
(r hello parrt)
// ^Z significa en Windows una salida(CTRL+Z > ENTER)). La opcin -tree imprime el rbol de parseo en notacin LISP.
$ grun Hello r -gui
hello parrt
^Z

Esto genera una ventana que muestra la regla r unida a la palabra clave hello seguida del identificador parrt .

converted by Web2PDFConvert.com
Probando la instalacin UNIX
La primera forma es poniendo el comando org.antlr.v4.Tool directamente:

$ java org.antlr.v4.Tool
ANTLR Parser Generator Version 4.6
-o specify output directory where all output is generated
-lib specify location of .tokens files
...

o usa la opcin -jar en java:

$ java -jar /Users/Library/antlr-4.6-complete.jar


ANTLR Parser Generator Version 4.6
-o specify output directory where all output is generated
-lib specify location of .tokens files
...

Un primer ejemplo UNIX gramtica JSON


En un directorio temporal, colocar la siguiente gramtica dentro de un archivo llamado JSON.g4:

converted by Web2PDFConvert.com
/** Taken from "The Definitive ANTLR 4 Reference" by Terence Parr */

// Derived from http://json.org


grammar JSON;

json
: value
;

obj
: '{' pair (',' pair)* '}'
| '{' '}'
;

pair
: STRING ':' value
;

array
: '[' value (',' value)* ']'
| '[' ']'
;

value
: STRING
| NUMBER
| obj
| array
| 'true'
| 'false'
| 'null'
;

STRING
: '"' (ESC | ~ ["\\])* '"'
;
fragment ESC
: '\\' (["\\/bfnrt] | UNICODE)
;
fragment UNICODE
: 'u' HEX HEX HEX HEX
;
fragment HEX
: [0-9a-fA-F]
;
NUMBER
: '-'? INT '.' [0-9] + EXP? | '-'? INT EXP | '-'? INT
;
fragment INT
: '0' | [1-9] [0-9]*
;
// no leading zeros
fragment EXP
: [Ee] [+\-]? INT
;
// \- since - means "range" inside [...]
WS
: [ \t\n\r] + -> skip
;

converted by Web2PDFConvert.com
Ahora corre la herramienta ANTLR:

$ cd /tmp
$ antlr4 JSON.g4
$ javac JSON*.java

Ahora lo probaremos:

converted by Web2PDFConvert.com
$ grun JSON json -tree
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
^D
(r hello parrt)
(That ^D means EOF on unix; it's ^Z in Windows.) The -tree option prints the parse tree in LISP notation.
It's nicer to look at parse trees visually.
$ grun JSON json r -gui
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
^D

converted by Web2PDFConvert.com
Esto genera una ventana que muestra la regla JSON y sus valores, se puede observar el rbol de parseo para el JSON
ingresado con todos los identificadores correspondientes.

converted by Web2PDFConvert.com
Conclusiones y recomendaciones
En este trabajo, presentamos ANTLR, el generador de parser de PCCTS. En primer lugar, ANTLR es una herramienta
prctica, programable-amistosa con muchas caractersticas convenientes. ANTLR integra la especificacin del
anlisis lxico y sintctico, soporta la notacin ampliada de BNF, puede construir automticamente sintaxis de
rboles abstractos, informa y recupera de errores de sintaxis automticamente, y proporciona flexibilidad
semntica significativa. ANTLR genera analizadores de descensos recursivos rpidos, compactos y legibles en C o C
++ que son fciles de integrar con otras aplicaciones.
ANTLR utiliza una nueva estrategia de anlisis que permite desarrollar gramticas naturales y fciles de leer para
lenguajes difciles como C ++. Los predicados permiten la semntica arbitraria y la informacin sintctica para
dirigir el anlisis.
ANTLR es un software gratuito de dominio pblico.

Libro con cdigo fuente


El libro posee muchos ejemplos que podran ser tiles. Puedes descargarlos gratis de:
http://pragprog.com/titles/tpantlr2/source_code
Tambin, en este repositorio de github hay una larga coleccin de gramticas para la versin 4:
https://github.com/antlr/grammars-v4

converted by Web2PDFConvert.com
Autores de la Gua
Andrs Asimbaya github-ANDRES2527
Patricio Prez github-elludenf

Guia-Instalacion-Antlr4 is maintained by ANDRES2527.


This page was generated by GitHub Pages.

converted by Web2PDFConvert.com

Вам также может понравиться