我正在寻找能够以可读格式打印树的ANTLR语法。当我尝试打印Java.g(http://openjdk.java.net/projects/compiler-grammar/antlrworks/Java.g)时,结果很不方便。但我发现一个语法(包括java项目),它打印AST好。这个语法是Marton Papp的Pascal语法(http://www.antlr.org/grammar/1279217060704/pascal3.zip)。
类似的东西:
VARDECL text="Var"
VARLIST text=""
VAR text="a"
VAR text="b"
VARTYPE text="Integer"
适用于Pascal(pascal3.zip)。
你有没有看到过这样的东西:C,Java,C#,VB。也许,你看到其他一些语言吗?
答案 0 :(得分:1)
您可以非常轻松地更改Java语法(假设您知道一点ANTLR)。词法分析器和解析器语法的编写是最难的部分,在这种情况下,已经为你完成了。
如果您想知道如何让解析器语法输出AST而不是简单的解析树,请查看之前的Q& A:How to output the AST built using ANTLR?