Universidad de Costa Rica
|
|
|
|
|
Modifique el programa de la tarea anterior para que calcule el árbol sintáctico del programa. Una vez que ya tenga ese árbol, muestre en un renglón aparte cada nodo del árbol, bien indentado, de acuerdo a su nivel de anidamiento.
Por ejemplo, si la entrada que recibe su analizador sintáctico es el programa Armstrong.pas, la salida que se obtendría sería similar a ésta:
programa
PROGRAM("program")
ID("Armstrong")
declaraciones_constantes
CONST("const")
lista_cosnstantes
ID("N")
"="
ENTERO("3000")
";"
declaraciones
VAR("VAR")
lista_identificadores
ID("número")
","
ID("suma")
","
ID("dígito")
","
ID("temp")
":"
tipo
tipo_estándar
INTEGER("INTEGER");
";"
etc...
Para cada nodo del árbol de análisis sintáctico se usa un renglón aparte. Si el nodo es un nodo hoja (token), entre paréntesis aparece el lexema que corresponde al nodo. Los hijos aparecen indentados 2 espacios, bajo el padre.
Entregue su tarea por correo electrónico, como lo hizo anteriormente.
|
Adolfo Di Mare <adolfo@di-mare.com>.
|
|
|