我无法使用 libclang 解析 C++ 中命名空间函数的主体。
我在命名空间中有一个类,如下所示:
namespace outer {
namespace inner {
class MyClass {
public:
short myMethod(){
return NTOHS(10);
}
short anotherMethod();
};
short MyClass::anotherMethod(){
return NTOHS(11);
}
short myFunction(){
return NTOHS(12);
}
}
}
使用 libclang 的 python 包装器,我可以通过递归找到每个节点:
def find_node(node):
print node # Just print stuff about the node (spelling, location, etc.)
for child in node.get_children():
find_node(child)
我能够检测到 NTOHS 的使用情况myMethod
并myFunction
打印有关这些节点的信息,但无法在MyClass::anotherMethod
.
这里的 NTOHS 只是用于将网络转换为主机顺序的 linux/unix 命令。
如何使用 libclang 检测命名空间函数中的 NTOHS?