Infijo a postfijo Expr -> Expr + Término Expr -> Expr - Término .... Término -> 9 Expr.t := Expr.t & Término.t & “+” Expr.t := Expr.t & Término.t & “-” Expr.t := Término.t Término.t := “0” Término.t := “1” Término.t := “2” .... Término.t := “9”
Infijo a postfijo Expr -> Expr1 + Término .... Término -> 9 Expr.t := Expr1.t & Término.t & “+” Expr.t := Expr1.t & Término.t & “-” Expr.t := Término.t Término.t := “0” Término.t := “1” Término.t := “2” .... Término.t := “9”
Ejercicio Evalúe la expresión: 2+5-4 Construya el árbol de análisis sintáctico Transforme a postfijo con las reglas semánticas dadas Modifique las reglas semánticas para que los números se separen por coma
Arbol sintáctico (2+5-4) Expr Expr - Término Expr + Término 4 Término
Transformación Expr Expr - Término Expr + Término Término 4 Término 5 Expr.t = Expr.t & Término.t & “-” Expr.t = “2 5 + 4 -” Expr Expr.t = Expr.t & Término.t & “+” Expr.t = “2 5 +” Expr - Término Término.t = “4” Expr + Término Término 4 Expr.t = “2” Término.t = “5” Término 5 Término.t = “2” 2
Infijo a postfijo con comas Expr -> Expr1 + Término Expr -> Expr1 - Término Expr -> Término Término -> 0 Término -> 1 Término -> 2 .... Término -> 9 Expr.t := Expr1.t & Expr1.c & Término.t & “+” Expr.c := “” Expr.t := Expr1.t & Expr1.c & Término.t & “-” Expr.t := Término.t Expr.c := “,” Término.t := “0” Término.t := “1” Término.t := “2” .... Término.t := “9”
Transformación con comas Expr.t = Expr.t & Expr.c & Término.t & “-” Expr.t = “2 , 5 + 4 -” Expr.c = “” Expr Expr.t = Expr.t & Expr.c & Término.t & “+” Expr.t = “2 , 5 +” Expr.c = “” Expr - Término Término.t = “4” Expr + Término Término 4 Expr.t = “2” Expr.c = “,” Término.t = “5” Término 5 Término.t = “2” 2
Transformación con comas Expr Expr.t = “7” Expr.c = “,” Término Término.t = “7” 7