我正在寻找可以以可读格式打印树的 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。也许,您在其他一些语言中看到过它?
- (解析器和词法分析器)所需的目标语言仅为 Java。
最佳答案
您可以很容易地自己更改 Java 语法(假设您了解一点 ANTLR)。词法分析器和解析器语法的编写是最难的部分,在本例中,我们已经为您完成了。
如果你想知道如何让解析器语法输出 AST 而不是简单的解析树,请查看之前的问答:How to output the AST built using ANTLR?
关于java - ANTLR打印树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8139230/