Eclipse plugin 唯一标识函数定义节点
在CDT AST中是否有唯一标识函数定义节点的方法Eclipse plugin 唯一标识函数定义节点,eclipse-plugin,eclipse-cdt,Eclipse Plugin,Eclipse Cdt,在CDT AST中是否有唯一标识函数定义节点的方法 void g() { ... } void f() { g(); } 我需要将f和g的函数定义节点存储在某种结构中,然后,当我来到g的函数调用节点时,我需要检查该节点是否对应于g的函数定义节点 现在我通过存储函数名来实现这一点。 问题是我无法正确处理以下情况: void f() {} class F { void f() {} }; 我建议如下: 通过IASTName.resolveBinding() 绑定将是ICP
void g() { ... }
void f() {
g();
}
我需要将f
和g
的函数定义节点存储在某种结构中,然后,当我来到g
的函数调用节点时,我需要检查该节点是否对应于g
的函数定义节点
现在我通过存储函数名来实现这一点。
问题是我无法正确处理以下情况:
void f() {}
class F {
void f() {}
};
我建议如下:
- 通过
IASTName.resolveBinding()
- 绑定将是
的一个实例,它扩展了ICPPFunction
。(我假设这是C++代码,当你提到<代码>类< /代码>)ICPPBinding
- 使用
作为函数的唯一标识符。在您的示例中,这两个函数将具有不同的限定名,ICPPBinding.getQualifiedName()
与f
f::f
f
s会发生什么情况?@AlexeyRomanov:在同一AST中是否可以有两个不同的匿名名称空间?或者你说的是在一个项目中跨不同的AST唯一标识实体(这是一个不同的问题陈述)?我假设同一个文件中的两个名称空间{…}
块创建了不同的匿名名称空间,看起来我错了。