diff options
author | Erik Verbruggen <erik.verbruggen@nokia.com> | 2011-05-09 13:52:03 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@nokia.com> | 2011-05-09 14:00:32 +0200 |
commit | 908d73f0d004cc5af5b846eacf94a2f97dec349d (patch) | |
tree | b92554e2b9ba693a13d9814145dbfbc7275b6c2a /src/shared/cplusplus/Symbols.h | |
parent | 49814d9ea5dbcfc14cee09dc221a43c2ab9bbc65 (diff) |
Added the Enumerator class as a special Declaration.
Reviewed-by: Roberto Raggi
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: |