Professional Documents
Culture Documents
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
university-logo
Antlr
Primera prueba, Como denir una gramtica para que acepte lo mismo aadiendo los corchetes?
university-logo
Antlr
Queremos estudiar un lenguaje de programacin. Donde est la informacin? Que diferencia hay entre elegir una gramtica u otra?
university-logo
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
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