Gramática ambigua
– Para una cadena terminal hay más de un árbol sintáctico
Ejemplo:
(recursión a izquierda y derecha para un mismo símbolo no-term.) Dos árboles sintácticos para la cadena x + y * z :
x
Evitar la doble recursividad:
– Introduciendo nuevos símbolos no-terminales (dejando * y + al mismo nivel)
– misma prioridad para * y + , y asociatividad a izquierdas
– Introduciendo nuevos símbolos no-terminales (dejando * y + a distinto
nivel)
– Prioridad de * respecto de +, y asociatividad a izquierdas para ambas operaciones.
Fuente: Apuntes de Informática VII de la FCA de la UNAM