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>.
|