我尝试使用libclangpython绑定来解析我的c++源文件。我无法获取宏的值或展开宏。
这是我的c++代码示例#define FOO 6001
#define EXPAND_MACR \
int \
foo = 61
int main()
{
EXPAND_MACR;
cout << foo;
return 0;
}
这是我的python脚本
^{pr2}$
这是我从clang那里得到的信息:Found FOO Type CursorKind.MACRO_DEFINITION DATA Extent , end > [line=4, col=9]
Found EXPAND_MACR Type CursorKind.MACRO_DEFINITION DATA Extent , end > [line=6, col=9]
Found EXPAND_MACR Type CursorKind.MACRO_INSTANTIATION DATA Extent , end > [line=12, col=2]
如果您观察我的python脚本,节点数据发出DATA
我可以读取clang返回的范围数据,然后从开始到结束位置解析文件以获得值。我想知道,有没有更好的方法来获取宏值?
我想直接获得macro的值(示例中6001)(不使用Extent)。我怎么能得到那个?
另外,对于展开,MACR想要得到int foo = 61
我已经看过这些帖子:Link-1&;Link-2。
如有任何帮助,我们将不胜感激