Question

Je vais avoir du mal à envelopper ma tête autour de ce besoin de changement et de l'aide à réduire la compréhension et de réduire réduire les conflits. J'ai une grammaire que je ne peux pas l'air de comprendre pourquoi il est problématique. Je pourrais joindre la grammaire, mais je veux savoir comment cela fonctionne vraiment.

Première question, quel type d'analyseur ne crée MGrammer? Si je comprends bien, le décalage de réduire et de réduire réduire les conflits dépend du type d'analyseur.

Deuxième question, ce qui signifie un conflit et réduire permettent de réduire ce qui signifie un changement de réduire les conflits?

Je connais les bases de l'analyse lexicale et la grammaire formelle, mais il a été un moment que je travaillais avec la conception de la langue de sorte que toute aide est très approprié ici.

Mise à jour:

Je travaille avec une langue importante des espaces et je me demande sur les possibilités de le faire en MGrammar, aurai-je besoin Sosie de la tête pour résoudre les ambiguïtés?

Était-ce utile?

La solution

Exemple simple:

if cond
    if cond2
        cmd
    else
        cmd2

Question: D'où vient le appartenir à else? Pour l'œil humain, l'indentation dit « à la deuxième if » mais cela ne veut rien dire à un ordinateur (sauf si vous utilisez Python ;)). Ceci est un / réduire les conflits .

Une solution élégante consiste à traiter le <=> comme un opérateur de gauche liaison de la priorité la plus élevée (ce qui le rend « accrocher » le plus proche <=>).

réduire / réduire les conflits est une ambiguïté. Je n'ai pas un bon exemple à portée de main, mais cela signifie qu'il ya des chemins dans la grammaire où un jeton pourrait faire en sorte que deux règles pour réduire en même temps et il n'y a pas d'informations supplémentaires pour décider quelle règle devrait avoir la priorité.

[EDIT] Les bisons docs ont un pour réduire / réduire .

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