Acciones semánticas de un analizador sintácticoDefinición de un analizador sintáctico: es la fase del analizador que se encarga de chequear el texto de entrada en base a una gramática dada. Y en caso de que el programa de entrada sea válido, suministra el árbol sintáctico que lo reconoce.
1.1 Arboles de expresiones
Los árboles de expresiones representan el código de nivel del lenguaje en forma
de datos. Los datos se almacenan en una estructura con forma de árbol. Cada
nodo del árbol de expresión representa una expresión, por ejemplo, una llamada al
método o una operación binaria, como x < y.
Construcción de un árbol de expresión
Algoritmo
Mientras carácter diferente de nulo
Leer carácter de la lista
Si es paréntesis pasar al siguiente carácter
Crear un nodo nuevo que contenga ese carácter
Operando
Si el árbol está vacío hacer raíz a nuevo, si no recorrer el árbol por la
derecha hasta llegar a un nodo con hojas, si la hoja izquierda, no está
etiquetada colocar operando, si no colocarlo en la hoja derecha.
Operador
Si la raíz es un operando, insertar nuevo en ese nodo, y convertir el
operando en el hijo izquierdo, si no si hay un paréntesis abierto insertar
nuevo en la última hoja derecha y colocar operando como hijo izquierdo.
Si el carácter anterior es paréntesis izquierdo si el siguiente carácter es
paréntesis derecho si solo hay un operador en el árbol nuevo se convierte
en raíz, si no se inserta en el último nodo derecho, y el nodo se convierte
en hijo izquierdo.
Si no se cumple ninguna de las condiciones anteriores si la raíz es de igual
prioridad o menor prioridad convertir la raíz en el hijo izq. de nuevo si no la
prioridad del nodo raíz es mayor al de nuevo insertar nuevo como hijo
derecho y colocar el nodo reemplazado como hijo izquierdo.
informacion
No hay comentarios.:
Publicar un comentario