2011-06-01 125 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,我發佈了一個答案,該答案顯示瞭如何使用自定義樹節點評估語言(在本例中爲表達式)和樹語法。當然,你會有更多不同的節點,因爲語言比較複雜(分配,功能,範圍等),但是你可以從這個例子開始。