2013-09-01 8 views
20

私はClangを保持しようとしています。だから、私は与えられたプログラムを解析した後にClangによって生成されたASTを見たいと思います。 ASTを.dotまたは.viz形式でダンプすることは可能ですか?そこに何かツールがありますか?clang ASTを表示するには?

答えて

35

GraphvizのdottyでASTを表示することをサポートしています。生成された一時的な.dotファイル(名前が表示されます)をつかんでグラフのソースを取得できます。

clang -cc1 -ast-view your_file.c 
あなたはまたしてコマンドラインに印刷することができ

clang -cc1 -ast-dump your_file.c 

か:

clang -cc1 -ast-print your_file.c 

または3.3で:

clang -cc1 -ast-dump-xml your_file.c 

が、後に指摘したように、このwas removedルークコメントのKubanekとして。

+8

XMLプリンタはサポートされなくなりました。参照:http://llvm.org/viewvc/llvm-project?view=revision&revision=127141 –

+2

'-ast-view'はコンパイル時のサポートが必要なようですが、これはUbuntu 14.04ではデフォルトではオンになっていません:-(' -ast -dump'はうまく動作しますが、 '-ast-print'は何をするのでしょうか?後で空白行をつけてコード自体を出力するだけです –

5

-cc1を呼び出し、will have problem with includesを呼び出し、C++を認識する方法。

フル機能の解析のために

は、使用しない:

clang -Xclang -ast-dump file.cpp 
+0

これは私がいつも忘れているスイッチです。 ^^ – Cameron

関連する問題