2012-02-02 39 views
2

我对clang感兴趣的是解析C/C++代码并能够定位方法和函数。libclang:获取方法位置的集合

是否可以使用clang来解析C++源代码文件并获取类和方法的集合以及它们的位置?

回答

5

你可以写一个铿锵插件,它为你做到这一点。

看一看this article。它基本上描述了如何构建自己的插件并使用ASTConsumer遍历AST。就像它在文章中写的一样,从现有的插件示例PrintFunctionNames开始。针对每个函数声明调用方法HandleTopLevelDecl(DeclGroupRef DG)。除了ND->getNameAsString()之外,您可以在此方法中调用ND->getLocation()。也有看API documentation和更多信息这两个问题:

How to get location of variable name in clang::VarDecl

Handle C++ functions with clang API to insert code