Question

il peut y avoir deux productions dont nous pouvons faire la réduction. Après avoir la priorité et les associations, au besoin, il y aura une poignée est only.so cette affirmation vraie ??

Était-ce utile?

La solution

Ceci est partiellement vrai, une réduction / réduire les conflits est généralement résolu en spécifiant la priorité ou en laissant le générateur d'analyseur qui choisissent d'appliquer la règle avant l'autre.

Cela signifie que le conflit est résolu, mais pas que l'analyseur va se comporter exactement comme prévu. Il convient d'étudier ce qui est à l'origine du conflit et pense que si un refactoring de la grammaire est nécessaire pour exprimer ce que vous essayez d'analyser ou si le choix automatique / priorité suffit.

Autres conseils

Si vous avez une grammaire qui a des règles ambiguës, vous obtenez des interprétations multiples. Vous ne devez pas insister pour que le grammaire supprime l'ambiguïté; vous pouvez simplement d'accord que quelque chose est ambigu et l'analyse syntaxique de multiples façons:

fruit flies like an arrow.

Le résultat de l'analyse syntaxique est plusieurs interprétations.

Maintenant, pour le langage un être utile à un lecteur, soit il doit être satisfait de l'ambiguïté, ou vous avez besoin de lui donner un moyen de le résoudre. (Dans l'exemple, j'ai décidé de vous que vous êtes heureux de l'ambiguïté, parce que je ne vous ai pas donné un moyen de le résoudre!). Ou, on peut donner au lecteur quelque chose avec parsess ambiguë, une façon de choisir quel sens parse faire, et il rejette les Parsis inappropriés.

Je peux le faire pour le cas ci-dessus en vous disant que je veux dire « fruit => melon d'eau ».

ordinateurs ne sont pas grammaires différentes, mais la plupart des programmeurs ne veulent pas de code ambigu. Donc, en général, les concepteurs langauge comme pour définir sans ambiguïté grammaires. Dans la pratique, ils ne réussissent pas et vous obtenez des règles linguistiques drôles comme « Si cela pouvait être interprété de façon ambiguë, puis l'interpréter ce chemin. ».

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top