0

現在、ANTLR と JAVA で Javascript コンパイラを構築しています。AST の生成には ANTLR のツリー文法を使用します。(これが、ノードを生成するために手動で定義された抽象クラスを使用した異種アプローチよりもスマートかどうかはまだ疑問ですが、それは別のトピックです)。

私の問題は、入力を解析したときに、var x = 5 ;としましょう。これは内部的に次のように表されます。VARDECLがルート、xが左の子、5が右の子です。toStringTree()コマンドを使用してこのツリーを出力するオプションがあり、(VARDECL x 5) を出力します。この表現は、大規模なプログラムでは理解するのが非常に難しくなるため、これを使用するサードパーティ ツールが存在するかどうか疑問に思っていました。入力としてのテキストツリー表現と、ツリーの素敵なグラフィカルモデルを出力できますか? (または、それも実装する必要がありますか)

よろしくスネ。

4

1 に答える 1

0

Graphviz ' DOT言語を使用して AST のグラフィカル ツリーを作成する方法については、この以前の Q&Aをご覧ください。

独自の JavaScript 文法を作成する場合に備えて、ANTLR wiki の文法のリストを参照してください。使用できる ECMA/JS 文法が多数あります。

最後に、カスタム ツリー ノードを使用してツリー文法で言語 (この場合は式) を評価する方法を示す回答を投稿したこの以前の Q&Aをご覧ください。もちろん、言語はより複雑 (割り当て、関数、スコープなど) であるため、さらに多くの異なるノードが存在することになりますが、その例から始めることもできます。

于 2011-06-01T14:47:31.443 に答える