summaryrefslogtreecommitdiff
path: root/cpp/include/Slice/Parser.h
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2012-10-17 12:38:03 -0700
committerMark Spruiell <mes@zeroc.com>2012-10-17 12:38:03 -0700
commitf087326373250c76fa3b7b8e68cede0cb9af01ff (patch)
treee801ec18aba93a74b373388fc947617643da0008 /cpp/include/Slice/Parser.h
parentFix related to ICE-4847 (diff)
downloadice-f087326373250c76fa3b7b8e68cede0cb9af01ff.tar.bz2
ice-f087326373250c76fa3b7b8e68cede0cb9af01ff.tar.xz
ice-f087326373250c76fa3b7b8e68cede0cb9af01ff.zip
ICE-4619 - custom enumerator values
Diffstat (limited to 'cpp/include/Slice/Parser.h')
-rw-r--r--cpp/include/Slice/Parser.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/cpp/include/Slice/Parser.h b/cpp/include/Slice/Parser.h
index 40e30b27ce4..3c24cdcf520 100644
--- a/cpp/include/Slice/Parser.h
+++ b/cpp/include/Slice/Parser.h
@@ -432,6 +432,7 @@ public:
const StringList&, bool, NodeType = Real);
EnumPtr createEnum(const std::string&, bool, NodeType = Real);
EnumeratorPtr createEnumerator(const std::string&);
+ EnumeratorPtr createEnumerator(const std::string&, int);
ConstPtr createConst(const std::string, const TypePtr&, const StringList&, const SyntaxTreeBasePtr&,
const std::string&, const std::string&, NodeType = Real);
TypeList lookupType(const std::string&, bool = true);
@@ -482,6 +483,7 @@ protected:
bool checkInterfaceAndLocal(const std::string&, bool, bool, bool, bool, bool);
bool checkGlobalMetaData(const StringList&, const StringList&);
bool validateConstant(const std::string&, const TypePtr&, const SyntaxTreeBasePtr&, const std::string&, bool);
+ EnumeratorPtr validateEnumerator(const std::string&);
ContainedList _contents;
std::map<std::string, ContainedPtr, CICompare> _introducedMap;
@@ -838,6 +840,9 @@ public:
virtual void destroy();
EnumeratorList getEnumerators();
void setEnumerators(const EnumeratorList&);
+ bool explicitValue() const;
+ int minValue() const;
+ int maxValue() const;
virtual ContainedType containedType() const;
virtual bool uses(const ContainedPtr&) const;
virtual bool usesClasses() const;
@@ -853,6 +858,9 @@ protected:
friend class Container;
EnumeratorList _enumerators;
+ bool _explicitValue;
+ IceUtil::Int64 _minValue;
+ IceUtil::Int64 _maxValue;
};
// ----------------------------------------------------------------------
@@ -868,13 +876,19 @@ public:
virtual ContainedType containedType() const;
virtual std::string kindOf() const;
+ bool explicitValue() const;
+ int value() const;
+
protected:
Enumerator(const ContainerPtr&, const std::string&);
+ Enumerator(const ContainerPtr&, const std::string&, int);
friend class Container;
friend class Enum;
EnumPtr _type;
+ bool _explicitValue;
+ int _value;
};
// ----------------------------------------------------------------------