2011-06-01 138 views
0

我目前在ANTLR和JAVA中构建了一个Javascript编译器。 我使用ANTLR的树语法来生成AST。 (仍然怀疑这是否比用手工定义的Abstract类生成节点的异构方法更聪明,但这是另一个话题)。ANTLR的树语法AST图形视图

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

Regards Sune。

回答

0

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

为了防止您编写自己的JavaScript语法,请查看list of grammars on ANTLR wiki:您可以使用许多ECMA/JS语法。

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