4
我讀過這個鏈接,但仍不能完全理解什麼是http://clang.llvm.org/doxygen/classclang_1_1RecursiveASTVisitor.htmlVisitDecl與
哪種方法寫的時候,我應該重寫TraverseDecl和VisitDecl(及其使用情況)之間的區別TraverseDecl(鐺RecursiveASTVisitor)我的RecursiveASTVisitor?
我讀過這個鏈接,但仍不能完全理解什麼是http://clang.llvm.org/doxygen/classclang_1_1RecursiveASTVisitor.htmlVisitDecl與
哪種方法寫的時候,我應該重寫TraverseDecl和VisitDecl(及其使用情況)之間的區別TraverseDecl(鐺RecursiveASTVisitor)我的RecursiveASTVisitor?
TraverseDecl指示前端庫的ASTConsumer從AST遞歸訪問聲明。然後調用VisitDecl,您可以從中提取相關信息。
按照有關詳細信息,這兩個環節,一個簡單的檢查例如:
是否有到的ASTVisitor內使用TraverseDecl或VisitDecl雖然任何區別。在該示例中,TraverseDecl在ASTVisitor中的ASTConsumer和VisitDecl中使用。但是,另一個stackoverflow鏈接在ASTVisitor本身中具有TraverseDecl。 –
[RecursiveASTVisiter](http://clang.llvm.org/doxygen/classclang_1_1RecursiveASTVisitor.html) 如果您查看鏈接中的詳細描述:您可以看到,traverseDecl將比visitDecl更高。因此,如果它取決於我,我會遵循[Clang Plugin](http://clang.llvm.org/docs/RAVFrontendAction.html)示例,因爲它維護該層次結構並且更容易理解。 –
那意味着在ASTVisitor中的ASTConsumer和Visits內使用Traverse? MHMM。 –