Resumen
En este tema se han visto los siguientes conceptos:
- Para crear una gramática, lo más sencillo y eficaz es usar siempre las construcciones: secuencia, listas y composición.
- A la hora de implementar un analizador sintáctico descendente, como el que genera ANTLR, presentan problemas las gramáticas que tengan alguna de las siguientes características:
- Reglas con el misma antecedente y símbolos directores comunes.
- Recursividad a izquierda.
- Gramáticas Ambiguas.
- ANTLR trata estas situaciones de distintas formas:
- Distingue entre reglas con símbolos directores comunes leyendo tantos tokens de la entrada como sea necesario.
- Realiza la transformación de las reglas con recursividad a izquierda directa.
- Trata las gramáticas ambiguas generando aquel árbol que resulte de escoger la primera regla en caso de ambiguedad.