Cela fait quelques années que j'ai suivi mon cours de langue et j'ai donc oublié les subtilités des BNF et des EBNF et je n'ai pas de manuel à côté de moi. Plus précisément, j'ai oublié comment convertir un EBNF en BNF. De quoi peu je me souviens, je sais que l'un des principaux points est de convertir { term }
en <term> | <many-terms>
. Mais je ne me souviens pas des autres règles. J'ai essayé de rechercher ceci en ligne mais je peux seulement trouver des liens vers des questions de devoirs, ou un petit commentaire au sujet de convertir des termes avec des accolades. Je ne trouve pas de liste exhaustive de règles définissant la traduction.Convertir EBNF en BNF
Répondre
S'il vous plaît voir le lien ci-dessous, il contient des instructions pour chaque production qui doit être converti:
http://lampwww.epfl.ch/teaching/archive/compilation-ssc/2000/part4/parsing/node3.html
pour la construction de parseurs (en particulier, de haut en bas) une grammaire BNF est souvent mieux, que EBNF. Mais il est facile de convertir une grammaire EBNF à BNF:
Convertir chaque répétition
{ E }
à un nouveau non-terminalX
et ajouterX = ε | X E.
Convertir toutes les options
[ E ]
à un nouveau non-terminalX
et ajouterX = ε | E.
(Nous pouvons convertir
X = A [ E ] B.
-X = A E B | A B.
)Convertir chaque groupe
(E)
à un nouveau non-terminalX
et ajouterX = E.
On peut même faire disparaître des alternatives en ayant plusieurs productions avec le même non terminal.
X = E | E'.
devientX = E. X = E'.
- 1. Conversion EBNF en BNF
- 2. ANTLR, comment convertir les données BNF, EBNF en ANTLR?
- 3. Java EBNF?
- 4. Est-il plus facile d'écrire un analyseur récursif-descendant en utilisant un EBNF ou un BNF?
- 5. BNF/EBNF pour Turbo Pascal (de préférence 5.5 ou plus tard, à cause de la POO)?
- 6. Utiliser les langues existantes dans BNF avec TinyPG?
- 7. (E) Analyse BNF en XML
- 8. python: remplacer regex avec BNF ou pyparsing
- 9. Question sur la notation EBNF et JSON
- 10. Utilisation de BNF dans DecimalFormat
- 11. Interface EBNF vers fluide
- 12. repérer une BNF ambiguë
- 13. Interprétation SQL's BNF
- 14. grammaire BNF Dérivation
- 15. grammaire BNF correspondant
- 16. Définition d'une langue dans EBNF
- 17. EBNF à parser Scala Combinator
- 18. Quel analyseur: EBNF, Custom, Parser Combinator (et leurs dérivés)?
- 19. grammaire BNF et l'opérateur associativité
- 20. Scala Parser Combinators astuces pour bnf récursif?
- 21. Syntaxe (probablement BNF) spec de VBA?
- 22. BNF pour gérer la séquence d'échappement
- 23. Grammaire BNF pour la séquence d'instructions
- 24. Implémentation d'un traducteur XML utilisant le langage EBNF XML
- 25. Pourquoi y aurait-il deux opérandes dans une phrase EBNF?
- 26. Parsing un bloc de code avec l'expression EBNF
- 27. EBNF pour les équations mathématiques et les inégalités
- 28. Quand les parenthèses sont-elles utilisées dans EBNF?
- 29. BNF: l'entrée va à un mauvais non-terminal
- 30. Existe-t-il un outil de traduction pour traduire EBNF en boost :: spirit?
Parfait! C'est exactement ce dont j'ai besoin. Quelqu'un que je n'ai jamais trouvé ce lien! –
Je reçois un 404 sur ce lien maintenant ... une idée s'il y a une version mise à jour quelque part? – Steve
Hélas, pas du haut de ma tête. J'espère que la page reviendra. –