【发布时间】:2013-12-21 14:10:02
【问题描述】:
我正在开发 CLang 3.5。我正在尝试获取有关在 C++ 项目中声明的变量的信息。
如何在clang::VarDecl、clang::FieldDecl 或clang::ParmVarDecl 对象中获取变量的数据类型或限定类名称?我试图在此处提供的clang::VarDecl 的文档中找到一个可以返回变量的数据类型或类名的函数。
http://clang.llvm.org/doxygen/classclang_1_1VarDecl.html
我还尝试查看 $LLVM/tools/clang/tools/clang-check/ClangCheck.cpp 的代码,因为在传递 cmd arg --ast-dump 时,它显示了有关每个 AST 节点的所有信息,包括声明的所有变量。我想知道如何访问所有这些信息。
我正在使用ASTMatchers 来查找我的变量声明,它们是:
fieldDecl().bind("field")
parmVarDecl().bind("param")
varDecl().bind("var")
谁能告诉我如何获取所有已删除变量的数据类型?
【问题讨论】:
-
我应该添加更多细节吗?如果我要问一些非常明显的问题,请提供一些相关教程的链接。或者至少告诉我,如果我想了解解析和访问 CLang 源代码中的 AST,从哪个类开始。
-
尝试查看 llvm/tools/clang/unittests/AST 并查看处理遍历 AST 的代码。我个人觉得这个链接很有帮助:clang.llvm.org/docs/LibASTMatchersTutorial.html
标签: c++ clang libclang libtooling