Java ANTLR打印树
我正在寻找ANTLR语法,它们可以以可读的格式打印树。当我试图打印Java.g时(http://openjdk.java.net/projects/compiler-grammar/antlrworks/Java.g)结果很不方便。但我发现有一种语法(包括java项目)很好。这个语法是来自Marton Papp的Pascal语法(http://www.antlr.org/grammar/1279217060704/pascal3.zip) 比如:Java ANTLR打印树,java,antlr,grammar,abstract-syntax-tree,Java,Antlr,Grammar,Abstract Syntax Tree,我正在寻找ANTLR语法,它们可以以可读的格式打印树。当我试图打印Java.g时(http://openjdk.java.net/projects/compiler-grammar/antlrworks/Java.g)结果很不方便。但我发现有一种语法(包括java项目)很好。这个语法是来自Marton Papp的Pascal语法(http://www.antlr.org/grammar/1279217060704/pascal3.zip) 比如: VARDECL text="Var"
VARDECL text="Var"
VARLIST text=""
VAR text="a"
VAR text="b"
VARTYPE text="Integer"
它是用于Pascal(pascal3.zip)的
你见过这样的东西吗:C,Java,C#,VB。也许,你会在其他语言中看到它
- 所需的目标语言(解析器和Lexer)仅为Java
如果您想知道如何让解析器语法输出AST而不是简单的解析树,请参阅前面的问答:@BartKiers,您是对的。这正是我所说的Java语法。所以我的问题是:我找到了fortran解析器,它似乎适合以下条件:(它是用Java编写的)。有人能为所提到的语言提供语法建议吗?这些语言构建了真正有用的AST(包含程序结构)?您的教程“如何输出使用antlr构建的AST?”非常棒。我认为我可以为Java.g实现这样的修改。但是,也许,在这种情况下,我做双重工作。如果我只需要一个语法,也许可以做到,但对于:C,Java,C#,VB。我想知道,是否没有语法可以打印这些语言的AST。问题是:也许有人在万维网上看到了它?@МааааФааааа,也许有一些AST生成C和CŠ语法,我不知道。然而,我非常确定VB没有ANTLR语法,如果有,我怀疑它在解析VB源文件方面做得不好。VB的语法很糟糕!