0

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

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

问候孙。

4

1 回答 1

0

查看之前的问答,如何使用GraphvizDOT语言创建 AST 的图形树。

万一您正在编写自己的 JavaScript 语法,请查看ANTLR wiki 上的语法列表:您可以使用许多可用的 ECMA/JS 语法。

最后,您可能想看看之前的问答,我在其中发布了一个答案,展示了如何使用自定义树节点使用树语法评估语言(在本例中为表达式)。当然,由于语言更复杂(赋值、函数、范围等),您将拥有更多不同的节点,但您可以从该示例开始。

于 2011-06-01T14:47:31.443 回答