Eclipse plugin EclipseCDT插件开发:如何获取具有声明的类名

Eclipse plugin EclipseCDT插件开发:如何获取具有声明的类名,eclipse-plugin,eclipse-cdt,Eclipse Plugin,Eclipse Cdt,我正在开发一个基于CDTAPI的eclipse插件 假设我已经遵循C++代码< /p> class EventEnum { public: enum e { E_CompleteDisconnectSuccess = 1, E_CreateBtAdapterNoSuccess = 2, E_CreateBtAdapterSuccess = 3, }; }; 使用下面的ASTVisito

我正在开发一个基于CDTAPI的eclipse插件

<>假设我已经遵循C++代码< /p>
   class EventEnum
   {
   public:
      enum e { 
         E_CompleteDisconnectSuccess = 1, 
         E_CreateBtAdapterNoSuccess = 2, 
         E_CreateBtAdapterSuccess = 3, 
      };
   };
使用下面的
ASTVisitor
visitor方法,我可以找到枚举声明

public int visit(IASTDeclaration declaration) {
    if (declaration instanceof IASTSimpleDeclaration) {

        IASTDeclSpecifier specifier = ((IASTSimpleDeclaration)declaration).getDeclSpecifier();

        if (specifier instanceof IASTEnumerationSpecifier) {
            IASTEnumerationSpecifier enumSpecifier = (IASTEnumerationSpecifier)specifier;
            // Get the current enumeration name
            String enumerationName = enumSpecifier.getName().toString();

            System.out.println("Found enum : " + enumerationName);
        }
    }
    return PROCESS_CONTINUE;
}

问题:如何获取包含找到的枚举声明的类名,在我的情况下,它将是
EventEnum

我自己找到了答案,可能对某些人有用,所以我把它贴在这里

if (enumSpecifier.getParent() instanceof CPPASTSimpleDeclaration)
{
    if (enumSpecifier.getParent().getParent() instanceof CPPASTCompositeTypeSpecifier)
    {
        CPPASTCompositeTypeSpecifier firstLevelClass = (CPPASTCompositeTypeSpecifier)enumSpecifier.getParent().getParent();
        return firstLevelClass.getName().toString();
    }
}