Gibt es irgendwelche Werkzeuge, um ANTLR-Grammatiksyntax zu und von anderen BNF-Syntaxen umzuwandeln? Es gibt verschiedene Formen von Backus-Naur-Form (BNF, EBNF, ABNF, W3C-BNF, XBNF ...) mit Spezifikation, z.B. siehe diese Liste . Die ANTLR-Grammatiksyntax scheint nur durch Beispiele beschrieben zu sein. Ich weiß, dass ANTLR-Grammatikdateien mehr enthalten als die Spezifikation einer kontextfreien Syntax, aber Sie sollten in der Lage sein, mindestens die gemeinsame Teilmenge zu konvertieren - hat jemand schon automatisch fertig?
Jakob schrieb:
Die Syntax der ANTLR-Grammatik scheint nur durch Beispiele beschrieben zu werden.
ANTLR (v3) ist "in seinen eigenen Worten" (wie Terence Parr selbst es ausdrückt) in diese Grammatik geschrieben:
Jakob schrieb:
aber Sie sollten mindestens die gemeinsame Teilmenge konvertieren können - hat jemand schon automatisch fertig?
Nicht, dass ich davon weiß. Und wenn es existiert, habe ich noch nie gesehen, dass dieses Tool auf der ANTLR-Mailingliste diskutiert wird, die ich regelmäßig lese.
Beachten Sie auch, dass viele BNF-Varianten linksrekursive -Regeln zulassen, etwas, das ein LL-Parsergenerator wie ANTLR ist kann nicht damit umgehen. Die linken rekursiven Regeln können natürlich durch das Tool neu berechnet werden, aber das könnte ziemlich schwierig sein und wird wahrscheinlich zu einer weit weniger "lesbaren" Grammatik führen, als man es manuell tun könnte.
Was die Konvertierung von ANTLR-Grammatiken in BNF-ähnliche Form betrifft, wäre es einfacher, wenn auch nur mit den einfachsten Grammatiken. Sobald verschiedene Arten von Prädikaten in eine ANTLR-Grammatik eingegeben werden, kann die Konvertierung wieder schwierig werden.
Tags und Links antlr context-free-grammar bnf