java - ANTLR打印树

标签 java antlr grammar abstract-syntax-tree

我正在寻找可以以可读格式打印树的 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/

相关文章:

java - Elasticsearch集群问题

java - 有没有办法让 bean 成为线程作用域?

antlr - 使用 ANTLR4 设计灵活语言应用程序的一般策略

java - (Antlr)如何运行此输入并在终端中获取输出?

c - 编写读取 CFG 并删除左递归的解析器的建议

c++ - boost::spirit::qi - 使用语法结构中的实例成员

grammar - 重新定义语法中的ws

java - 内存与性能,哪个最好?

java - 使用 Eclipse (Helios) 从 JAX-WS 2.0 实现生成 Web 服务

antlr - 如何构建 ANTLR Works 风格的解析树?