2016-06-14 14 views

答えて

2

TraverseDeclは、フロントエンドライブラリのASTConsumerに、ASTからの宣言を再帰的に呼び出すように指示します。次に、関連情報を抽出できるVisitDeclが呼び出されます。

は詳細かつ簡単なチェッカー例えばこれら二つのリンク従ってください:

http://clang.llvm.org/docs/RAVFrontendAction.html

How to traverse clang AST manually ?

+0

をしかしASTVisitor内TraverseDeclまたはVisitDeclを使用する任意の違いはあります。この例では、TraverseDeclはASTVisitorのASTConsumerおよびVisitDecl内で使用されます。ただし、他のstackoverflowリンクには、ASTVisitor自体の内部にTraverseDeclがあります。 –

+0

[RecursiveASTVisiter](http://clang.llvm.org/doxygen/classclang_1_1RecursiveASTVisitor.html) リンクの詳細な説明を見ると、traverseDeclはvisitDeclより上の階層に来ることがわかります。だから、もしそれが私に任せれば、私は[Clang Plugin](http://clang.llvm.org/docs/RAVFrontendAction.html)の例を継承し、その階層を維持し、理解しやすくなります。 –

+0

これは、ASTConsumer内のTraverseとASTVisitor内のVisitsを使用することを意味しますか? Mhmm。 –

関連する問題