190 likes | 342 Views
Traductores EDT con ANTLR. Introducción. Los siguientes pasos facilitarán el seguimiento de la animación: P rimero se mostrará la expresión aritmética que se va a analizar. Posteriormente se desarrollará dicha cadena en forma de árbol.
E N D
Introducción Los siguientes pasos facilitarán el seguimiento de la animación: • Primero se mostrará la expresión aritmética que se va a analizar. • Posteriormente se desarrollará dicha cadena en forma de árbol. • A continuación se podrá observar como se va desarrollando el árbol paso a paso y como los atributos heredados y sintetizados se van transfiriendo por el árbol hasta llegar a la solución final.
Cadena de prueba • La expresiónaritméticaquevamosusarparaanalizar el comportamiento de nuestrotraductor es: (1+5*5)+(3*2);
Árbol completo • El árbol que representa dicha expresión es el que se muestra a continuación, en las siguientes diapositivas se explicará su funcionamiento:
Animación EDT • Se obtiene el paréntesis izquierdo
Animación EDT • Se deriva ‘f’ obteniéndose el primer número de la expresión, que será un atributo sintetizado que recogerán ‘f’ y posteriormente ‘t’, una vez llegado aquí necesitamos mas datos para continuar.
Animación DDS • ‘e’ deriva en ‘t e1’ para obtener el símbolo ‘+’.
Animación EDT • Se pasa como atributo sintetizado el valor del nuevo número obtenido a f.valor. No podemos continuar ya que necesitamos nuevos datos para hacerlo.
Animación EDT • Se deriva ‘t1’ para obtener el símbolo ‘*’.
Animación EDT • El valor del nuevo número es recogido por ‘f’ y pasado a ‘t1’ como atributo sintetizado. ‘t1’ realiza la multiplicación con el valor heredado de ‘f’ y el sintetizado de ‘f’. Después, ‘e1’ mediante el atributo heredado de ‘t’ y el sintetizado de ‘t’ realiza la suma. Todo esta operación es recogido por ‘e’ como atributo sintetizado.
Animación EDT • Se obtiene el paréntesis derecho.
Animación EDT • ‘e’ deriva en ‘e1’ para obtener el símbolo ‘+’.
Animación EDT • Se obtiene el paréntesis derecho.
Animación EDT • ‘f’ recoge el valor del nuevo número como atributo sintetizado, no se puede continuar ya que se necesitan nuevos datos.
Animación EDT • ‘t1’ deriva en el símbolo ‘*’.
Animación EDT • ‘t1’ realiza la operación de multiplicación mediante el atributo heredado de ‘f’ y el sintetizado de ‘f’ que será el valor del nuevo número obtenido. El resultado llegará a ‘e’ como atributo sintetizado.
Animación EDT • Se obtiene el paréntesis derecho.
Animación EDT • ‘e1’ realiza la operación de suma utilizando el valor del atributo heredado de ‘t’ y el sintetizado de ‘t’.
Animación EDT • Para terminar ‘e’ recogerá el valor de la operación de suma como atributo sintetizado y se lo pasará a ‘a’ dando por finalizado el análisis de la expresión.