ANTLR树 - 语法AST图形视图

时间:2011-06-01 11:49:28

标签: user-interface antlr abstract-syntax-tree tree-grammar

我目前正在ANTLR和JAVA中构建一个Javascript编译器。 我使用ANTLR的树语法来生成AST。 (仍然怀疑这是否比使用手动定义的抽象类生成节点的异构方法更智能,但这是另一个主题。)

我的问题是,当我解析了一些输入时,我们可以说, var x = 5 ;这在内部表示为; VARDECL 为root, x 为left child, 5 为right child。 我现在可以选择打印这个树,使用 toStringTree()命令输出(VARDECL x 5) - 这个表示在较大的程序中很难理解,所以我想知道是否存在第三方工具,它将此文本树表示作为输入,并可以输出树的漂亮图形模型? (或者我也必须实现它)

关心Sune。

1 个答案:

答案 0 :(得分:0)

结帐this previous Q&A如何使用Graphviz'DOT语言创建AST的图形树。

如果您正在编写自己的JavaScript语法,请查看list of grammars on ANTLR wiki:您可以使用许多可用的ECMA / JS语法。

最后,您可能需要查看this previous Q&A,其中我发布了一个答案,其中显示了如何使用自定义树节点使用树语法评估语言(在本例中为表达式)。当然,您将拥有更多不同的节点,因为语言更复杂(分配,功能,范围等),但您可以从该示例开始。