La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

(1+5*5)+(3*2); El análisis semántico en ANTLR se hace de forma descendente, por ello se va desarrollando el árbol completo desde el inicio para su explicación.

Presentaciones similares


Presentación del tema: "(1+5*5)+(3*2); El análisis semántico en ANTLR se hace de forma descendente, por ello se va desarrollando el árbol completo desde el inicio para su explicación."— Transcripción de la presentación:

1 (1+5*5)+(3*2); El análisis semántico en ANTLR se hace de forma descendente, por ello se va desarrollando el árbol completo desde el inicio para su explicación. Las acciones semánticas se ejecutan una vez se procesan los terminales o no terminales inmediatamente anteriores en la gramática a dichas acciones. Los atributos heredados se pasan hacia los niveles inferiores del árbol, mientras que los sintetizados se pasan hacia los niveles superiores. En la animación se indicarán estos sucesos adecuadamente para su comprensión. NOTA – en la animación los no terminales D y U corresponden con los no terminales E1 y T1 respectivamente en la gramática.

2 Al procesar el no terminal F se pasa al antecedente T como atributo sintetizado el atributo “res” de F (que contiene el valor numérico asociado). A continuación se procesa el no terminal U al que se le pasa como atributo heredado el que subió de F a T para que sea utilizado si es necesario en los calculos de las derivaciones sucesivas antes de terminar de procesar el antecedente T.

3 El no terminal U deriva en lambda por lo que se devuelve hacia arriba como atributo sintetizado el valor que se le pasó como atributo heredado.

4 Al terminar de procesar el no terminal T se devuelve como atributo sintetizado a su antecedente E. A continuación se pasa a procesar el no terminal D al que se le pasa el resultado subido a E desde T como atributo heredado.

5 La entrada del no terminal D tiene el valor que se le pasa como atributo heredado venido del resultado del procesamiento del no terminal T. Este se utilizará para calcular la operación “+” una vez se procese el nuevo no terminal T. Para procesarlo se sigue el proceso explicado anteriormente donde se pasa como atributo sintetizado a T el resultado de F y se pasa como atributo heredado a U el valor que sube de F a T.

6 La entrada del no terminal D tiene el valor que se le pasa como atributo heredado del resultado del procesamiento del no terminal T. Se utilizará para calcular la operación “+” una vez se procese el nuevo no terminal T. Al procesar el no terminal T que deriva de U se devuelve como atributo sintetizado su valor. A continuación se utiliza para calcular la operación “*” con el valor de la entrada de F que llego como atributo heredado de T dando como resultado 25.

7 El no terminal U deriva en lambda por lo que se devuelve como atributo sintetizado el que le llego como atributo heredado sin modificar. Este valor va ascendiendo como atributo sintetizado de los distintos no terminales que van finalizando su procesamiento hasta llegar al no terminal D.

8 Al llegar a D el atributo “res” del no terminal T (al terminar su procesamiento) se calcula la suma con la entrada que llegó a D desde su antecedente E, con resultado 26. Este valor se pasa como atributo heredado al no terminal D inferior para continuar el procesamiento del antecedente D.

9 Al ir finalizando los procesamientos de los no terminales lo valores del cálculo se van pasando hacia los antecedentes como atributos sintetizados. El proceso continua con el mismo esquema hasta que el antecedente A se procesa por completo, momento en el cual se mostrará por pantalla el resultado.

10 El resultado de la expresión (3
El resultado de la expresión (3*2) se calcula en los niveles más bajos del árbol ascendiendo a continuación como atributo sintetizado al finalizar los procesamientos de los no terminales.

11 Finalmente el resultado de la expresión llega a la raiz donde se mostrará el resultado por pantalla.


Descargar ppt "(1+5*5)+(3*2); El análisis semántico en ANTLR se hace de forma descendente, por ello se va desarrollando el árbol completo desde el inicio para su explicación."

Presentaciones similares


Anuncios Google