J'ai un devoir de corriger un BNF ambigu, mais je suis complètement perdu. Je sais que ce n'est pas une vraie question de programmation, et je vais la supprimer avec plaisir si ce n'est pas une question appropriée pour ces conseils. Y a-t-il de bons sites où je pourrais en apprendre plus sur les BNF? Celui auquel j'ai affaire semble plutôt simple, mais je ne trouve pas d'exemples ou de bonnes explications concernant BNF. J'ai eu de l'expérience en repérant des arbres d'analyse ambigus et d'autres sortes de grammaires, mais je suis complètement perdu sur celui-ci. Puisqu'il s'agit d'une tâche d'école, je ne suis pas sûr que je devrais publier la BNF en question, mais si quelqu'un connaît un bon site que je pourrais examiner pour peut-être mieux comprendre comment attaquer ma question. Je ne sais vraiment pas par où commencer.repérer une BNF ambiguë
4
A
Répondre
1
Certains BNF décrivant une grammaire sans contexte décrivent également une machine d'état (dans ce cas un Pushdown automata). La meilleure façon de le faire est probablement par l'inspection de la machine d'état. Pour commencer, vous pouvez regarder ce qu'est un conflict dans parsers that make use of such automata.
0
S'il y a deux ou plusieurs des mêmes non-terminales du côté droit d'une phrase, c'est ambigu. Par exemple: < expr> -> < expr> + < expr> | < facto>. Le côté droit expr peut être exporté de différentes manières dans l'arbre, ce qui permet de tracer des arbres différents et c'est ambigu.
Questions connexes
- 1. éviter une exception match ambiguë
- 2. XmlSerializer.Serialize ambiguë
- 3. Référence ambiguë
- 4. grammaire BNF Dérivation
- 5. Conversion EBNF en BNF
- 6. grammaire BNF correspondant
- 7. Interprétation SQL's BNF
- 8. Convertir EBNF en BNF
- 9. Analyser une entrée ambiguë avec Antlr
- 10. ANTLR grammaire ambiguë?
- 11. grammaire BNF et l'opérateur associativité
- 12. (E) Analyse BNF en XML
- 13. Utilisation de BNF dans DecimalFormat
- 14. Expression.Call et "Correspondance ambiguë trouvée"
- 15. .Net 4.0 System.Web.Security.MembershipProvider Référence ambiguë?
- 16. Exception ambiguë utilisant la réflexion
- 17. Ok, pouvez-vous repérer une erreur de syntaxe ici?
- 18. Comment pouvons-nous repérer une valeur XElement qui est CData?
- 19. Syntaxe (probablement BNF) spec de VBA?
- 20. Grammaire BNF pour la séquence d'instructions
- 21. python: remplacer regex avec BNF ou pyparsing
- 22. C# Instruction MySql. Repérer mon erreur!
- 23. Repérer où les paquets sont bloqués/déposés
- 24. Scala Parser Combinators astuces pour bnf récursif?
- 25. BNF pour gérer la séquence d'échappement
- 26. Pouvez-vous repérer ce bug d'affichage html?
- 27. ReferenceError: Erreur # 1008 classe est ambiguë
- 28. Déclaration de fonction ambiguë en Javascript
- 29. constructeurs de copie ambiguë vc 2008
- 30. Classe ambiguë Espace de nom Problème
Merci! Je vais regarder ces pages. Aussi, pourriez-vous m'expliquer comment fonctionnent les littéraux dans BNF? Il semble qu'ils ne font vraiment rien. – PFranchise
Je ne suis pas sûr de comprendre. BNF se compose simplement de symboles terminaux et non terminaux. Je crois que le fait d'avoir des chaînes littérales dans les grammaires est simplement la conséquence que personne n'est très précis sur ce qui constitue un symbole. Si c'est ce que vous voulez dire, alors la façon dont ils travaillent est qu'ils ne le font pas. Ils ont tendance à être très fragiles. – Gian