简体   繁体   English

ANTLR打印树

[英]ANTLR print tree

I'm looking for ANTLR grammars which are ready for printing tree in readable format. 我正在寻找可用于以可读格式打印树的ANTLR语法。 When I try to print Java.g (http://openjdk.java.net/projects/compiler-grammar/antlrworks/Java.g) the results were inconvenient. 当我尝试打印Java.g(http://openjdk.java.net/projects/compiler-grammar/antlrworks/Java.g)时,结果不方便。 But I find one grammar(including java project), which prints AST good. 但是我发现一个语法(包括Java项目),可以很好地打印AST。 This grammar is Pascal grammar from Marton Papp (http://www.antlr.org/grammar/1279217060704/pascal3.zip). 该语法是来自Marton Papp(http://www.antlr.org/grammar/1279217060704/pascal3.zip)的Pascal语法。

Something like: 就像是:

VARDECL text="Var"
       VARLIST text=""
       VAR text="a" 
       VAR text="b" 
       VARTYPE text="Integer"

it is for Pascal(pascal3.zip). 它用于Pascal(pascal3.zip)。

Do you ever see such things for: C, Java, C#, VB. 您是否见过这样的东西:C,Java,C#,VB。 Maybe, you see it for some other languages? 也许,您在其他语言中看到了吗?

  • The required target language (of Parser and Lexer) is only Java. 所需的目标语言(解析器和Lexer的)仅是Java。

You can change the Java grammar yourself quite easily (assuming you know a little ANTLR). 您可以很容易地自己更改Java语法(假设您了解一点ANTLR)。 The writing of the lexer and parser grammar is the hardest part, which, in this case, has already been done for you. 词法分析器和解析器语法的编写是最难的部分,在这种情况下,这已经为您完成了。

If you want to know how to let a parser grammar output an AST instead of a simple parse tree, look at this previous Q&A: How to output the AST built using ANTLR? 如果您想知道如何让解析器语法输出AST而不是简单的解析树,请查看此先前的问答: 如何输出使用ANTLR构建的AST?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM