Skip to content

Creación del AST

Objetivo

En el capítulo anterior, el analizador sintáctico se limitaba a indicar si el programa de entrada estaba formado por estructuras sintácticamente válidas (definiciones de variables, asignaciones, etc.), pero dichas estructuras no se conservaban en memoria. Sin embargo, el resto de las fases del compilador necesitan saber cuáles son estas estructuras para poder validarlas y generar código.

Por tanto, el objetivo de esta fase es, dado un programa sintácticamente válido, crear en memoria el árbol correspondiente que lo represente y que permita al resto de las fases acceder de manera directa a todas sus estructuras. Es decir, representar el mismo programa que se encuentra en el fichero de entrada, pero de una forma más fácil de acceder.

En el capítulo anterior, se vio como Antlr podía mostrar el árbol concreto de la entrada. Sin embargo, no es este árbol el que sale del sintáctico. Debido a los inconvenientes que este plantea, se crea en su lugar otro tipo de árbol: el árbol sintáctico abstracto (AST).