【发布时间】:2012-01-29 16:32:31
【问题描述】:
我正在使用 clang 3.0 库对 C/C++ 代码进行一些分析,我需要获取变量声明的位置,我尝试了以下代码:
clang::VarDecl * vd = ...;
clang::SourceManager & srcMgr = ...;
clang::SourceRange loc = vd->getSourceRange();
clang::PresumedLoc locStart = srcMgr.getPresumedLoc(loc.getBegin());
clang::PresumedLoc locEnd = srcMgr.getPresumedLoc(loc.getEnd());
但是 locStart 和 locEnd 指向声明变量的开始(和结束)(带有类型,可能还有初始化器)。例如:
const char * ptr = 0;
^ ^ ^ ^
locStart 将指向第一个指针(^),而 locEnd 将指向最后一个指针。如何获取第二个和第三个指针的位置(只有名称,没有类型和初始化器)?
【问题讨论】: