diff options
Diffstat (limited to 'src/shared/cplusplus/Symbols.h')
-rw-r--r-- | src/shared/cplusplus/Symbols.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/shared/cplusplus/Symbols.h b/src/shared/cplusplus/Symbols.h index 9fecc69d91..452d2622ce 100644 --- a/src/shared/cplusplus/Symbols.h +++ b/src/shared/cplusplus/Symbols.h @@ -141,6 +141,12 @@ public: virtual Declaration *asDeclaration() { return this; } + virtual EnumeratorDeclaration *asEnumeratorDeclarator() + { return 0; } + + virtual const EnumeratorDeclaration *asEnumeratorDeclarator() const + { return 0; } + protected: virtual void visitSymbol0(SymbolVisitor *visitor); @@ -148,6 +154,25 @@ private: FullySpecifiedType _type; }; +class CPLUSPLUS_EXPORT EnumeratorDeclaration: public Declaration +{ +public: + EnumeratorDeclaration(TranslationUnit *translationUnit, unsigned sourceLocation, const Name *name); + virtual ~EnumeratorDeclaration(); + + const StringLiteral *constantValue() const; + void setConstantValue(const StringLiteral *constantValue); + + virtual EnumeratorDeclaration *asEnumeratorDeclarator() + { return this; } + + virtual const EnumeratorDeclaration *asEnumeratorDeclarator() const + { return this; } + +private: + const StringLiteral *_constantValue; +}; + class CPLUSPLUS_EXPORT Argument: public Symbol { public: |