我正在开发 eclipse CDT 插件的扩展,它必须解析 c++ 代码并找到所有
- 枚举(名称)
- 枚举器(名称)
- 枚举器值(数字)
假设 .cpp 文件包含以下文本
enum SomeEnum
{
One = 0,
Two = 1,
Three = 2,
Four = 3,
maxNum
};
插件应输出以下内容:
- 枚举 - SomeEnum
- 枚举数 -一、二、三、四、maxNum
- 值 - 0、1、2、3、
ASTVisitor 继承类的访问者方法是这样查找枚举的
public int visit(IASTDeclaration declaration) {
if (declaration instanceof IASTSimpleDeclaration) {
IASTDeclSpecifier specifier = ((IASTSimpleDeclaration)declaration).getDeclSpecifier();
if (specifier instanceof IASTEnumerationSpecifier) {
IASTEnumerationSpecifier enumSpecifier = (IASTEnumerationSpecifier)specifier;
IBinding binding = enumSpecifier.getName().resolveBinding();
System.out.println(enumSpecifier.getName());
}
}
return PROCESS_CONTINUE;
}
问题:如何遍历枚举数及其对应的找到枚举值?