jjzjj

RecursiveASTVisitor

全部标签

c++ - VisitDecl 与 TraverseDecl(Clang RecursiveASTVisitor)

我已阅读此链接,但仍不完全理解TraverseDecl和VisitDecl(及其用例)之间的区别http://clang.llvm.org/doxygen/classclang_1_1RecursiveASTVisitor.html在编写我的RecursiveASTVisitor时我应该覆盖哪个方法? 最佳答案 TraverseDecl告诉前端库的ASTConsumer从AST递归访问声明。然后调用VisitDecl,您可以在其中提取相关信息。点击这两个链接以获取更多详细信息和一个简单的检查器示例:http://clang.llvm

c++ - 如何使用 clang::TreeTransform?

我正在尝试找出clang::TreeTransform的集成点。目标是在代码生成之前转换AST。提前致谢。 最佳答案 一种方法是使用ASTFrontEndAction,然后重新定义方法CreateASTConsumer以创建SemaConsumer(而不是ASTConsumer)。然后在handleTopLevelDecl方法中通过将Sema传递给RecursiveASTVisitor创建一个RecursiveASTVisitor,这对于TreeTransform是必需的。然后RecursiveASTVisitor的Visit方法可

c++ - 如何在 libclang c++ 中使用 RecursiveASTVisitor 提取注释并匹配声明?

我正在编写一个实用程序,它应该解析C++(和C)头文件,提取结构、枚举、字段等,并根据提取的信息生成其他语言的代码。为此,我决定使用libclang。我正在使用RecursiveASTVisitor,似乎我能够提取我需要的所有信息,除了注释。我希望在读取每个声明(字段、结构、类、枚举)正上方的注释,并在我生成其他语言的代码时添加其文本。问题是我看到的所有使用注释的示例都使用CxCursor和clang的C接口(interface),我不知道如何在我的代码中获取CxCursor上下文。那么-如何在仍然使用RecursiveASTVisitor的同时提取评论?