You are on page 1of 10

Antlr y las Gramticas Libres de Contexto

La Estructura de un Lenguaje

Universidad de Cantabria

university-logo

Antlr

ANTLR

ANTLR es un generador de lenguajes, a partir de la especicacin de un lenguaje a partir de una gramtica podemos: Reconocer si un programa (o palabra) cumple una especicacin. Traducir el programa (o palabra) a otro lenguaje. Realizar alguna serie de ordenes.

university-logo

Antlr

ANTLR

A veces nos interesara denir el lenguaje de una forma ms laxa. Admitimos palabras/programas que en principio no tengan mucho sentido porque: Es ms fcil denir la gramtica. La estructura que dene expresa la estructura que buscamos.

university-logo

Antlr

ANTLR

Para introducir una gramtica en ANTLR, se debe utilizar la notacin EBNF. ATENCIN, DIFERENTES FORMAS DE DECIR LA GRAMTICA NO FUNCIONAN IGUAL.

university-logo

Antlr

Ejemplo de utilizacin de ANTLR

Denamos una gramtica para el lenguaje de los parntesis. grammar prueba;

principal : ( principal )|;

university-logo

Antlr

Ejemplo de utilizacin de ANTLR

Primera prueba, Como denir una gramtica para que acepte lo mismo aadiendo los corchetes?

university-logo

Antlr

Encontrando una Grmatica

Queremos estudiar un lenguaje de programacin. Donde est la informacin? Que diferencia hay entre elegir una gramtica u otra?

university-logo

Antlr

Ejemplo de utilizacin de ANTLR

grammar prueba;

principal : SI principal1 (CONTRA principal)?|ALGO; principal1 : SI principal1|ALGO; SI : sib; CONTRA : en_otro_caso; ALGO : algo; WS : (\n|\t|\r| )+{skip();};

university-logo

Antlr

Ejemplo de utilizacin de ANTLR

grammar suma; start : expresion; expresion : NUMERO OPERADOR expresion| NUMERO; NUMERO : 0..9+; OPERADOR: +; ESPACIOS: (\n|\r|\t){skip();};

university-logo

Antlr

Ejercicios
Comprobar con varios inputs que la gramtica acepta lo que se piensa. Aadir a la gramtica las expresiones con el signo menos. Cuando se aade la multiplicacin, se debe de hacer como con la suma o la resta? Encontrar una gramatica para el palndromo con tres letras a,b,c. Encontrar una gramtica que genere todas las palabras formadas por letras a y b cuyos prejos tengan al menos ms aes que bes. Encontrar una gramtica que acepte solo los numeros binarios con el mismo nmero de ceros que unos.

university-logo

Antlr

You might also like