aboutsummaryrefslogtreecommitdiffstats
path: root/src/shared/cplusplus/Symbols.h
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2011-05-09 13:52:03 +0200
committerErik Verbruggen <erik.verbruggen@nokia.com>2011-05-09 14:00:32 +0200
commit908d73f0d004cc5af5b846eacf94a2f97dec349d (patch)
treeb92554e2b9ba693a13d9814145dbfbc7275b6c2a /src/shared/cplusplus/Symbols.h
parent49814d9ea5dbcfc14cee09dc221a43c2ab9bbc65 (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.h25
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: