libclang
C API具有以下功能:
CXSourceLocation clang_getLocation(
CXTranslationUnit tu,
CXFile file,
unsigned line,
unsigned column
)
我找不到C ++ API的等价物。有许多getLocation
个函数,但没有一个函数接受这组参数。
我最终试图在给定的源位置获取DeclRef
(如果存在)。
答案 0 :(得分:1)
为文件找到SourceLocation
:line:column triplet可以通过SourceManager
稍微笨拙地完成,如下所示:
SourceManager& srcmgr = astctx.getSourceManager();
FileManager& filemgr = srcmgr.getFileManager();
const FileEntry* file_entry_ptr = filemgr.getFile(filename);
SourceLocation loc = srcmgr.translateFileLineCol(file_entry_ptr, line, column);
我仍然不知道如何在那时找到Stmt
。