Pregunta

Puede haber dos producciones de las que podemos hacer la reducción. Después de dar precedencia y asociaciones según sea necesario habrá un mango only.so es cierta esta afirmación ??

¿Fue útil?

Solución

Esto es cierto en parte, una reducción / reducción de conflictos por lo general se resuelve mediante la especificación de precedencia o dejando que el constructor analizador elegir qué regla se aplique antes que el otro.

Esto significa que el conflicto se resuelve, pero no que el analizador se va a comportar exactamente como se pretende. Es conveniente estudiar qué está causando el conflicto y pensar si se necesita una refactorización de la gramática para expresar lo que está tratando de analizar o si la opción / precedencia automática es suficiente.

Otros consejos

Si usted tiene una gramática que tiene reglas ambiguas, se obtiene múltiples interpretaciones. Usted no tiene que insistir en que el gramática elimina la ambigüedad; puede simplemente acepta que algo es ambiguo y analizarlo múltiples maneras:

fruit flies like an arrow.

El resultado del análisis sintáctico es múltiples interpretaciones.

Ahora, para un tipo de lenguaje que sea utilidad a un lector, ya sea que tiene que ser feliz con la ambigüedad, o lo que necesita para darle una forma de resolverlo. (En el ejemplo, he decidido para usted que está satisfecho de la ambigüedad, porque no le he dado una manera de resolverlo!). O bien, se puede proporcionar al lector de algo con parsess ambigua, una manera de elegir el sentido de análisis maquillaje, y rechaza los análisis sintácticos inapropiados.

Me puede hacer que para el caso anterior diciéndole que me refiero "fruto => sandía".

gramáticas

informáticos no son diferentes, pero la mayoría de los programadores no quieren código ambiguo. Así que, en general, los diseñadores de langauge como para definir gramáticas no ambiguas. En la práctica, no tienen éxito y se obtiene reglas del lenguaje divertidos como: "Si esto podría ser interpretado de manera ambigua, entonces se interpreta que este manera.".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top