summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/Parser.cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2006-03-29 17:30:19 +0000
committerDwayne Boone <dwayne@zeroc.com>2006-03-29 17:30:19 +0000
commitdc15f759734848a12e9cf55110c2f34dd510f91d (patch)
tree54d16f67b41576f98d40933cd6f235868970f520 /cpp/src/Slice/Parser.cpp
parentInclude fixes (diff)
downloadice-dc15f759734848a12e9cf55110c2f34dd510f91d.tar.bz2
ice-dc15f759734848a12e9cf55110c2f34dd510f91d.tar.xz
ice-dc15f759734848a12e9cf55110c2f34dd510f91d.zip
Added support for wstring slice metadata
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rw-r--r--cpp/src/Slice/Parser.cpp55
1 files changed, 43 insertions, 12 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp
index 260e6a8ffe7..5b54e2a0c38 100644
--- a/cpp/src/Slice/Parser.cpp
+++ b/cpp/src/Slice/Parser.cpp
@@ -765,7 +765,7 @@ Slice::Container::createStruct(const string& name, bool local)
}
SequencePtr
-Slice::Container::createSequence(const string& name, const TypePtr& type, bool local)
+Slice::Container::createSequence(const string& name, const TypePtr& type, const StringList& metaData, bool local)
{
checkPrefix(name);
@@ -819,13 +819,14 @@ Slice::Container::createSequence(const string& name, const TypePtr& type, bool l
_unit->error(msg);
}
- SequencePtr p = new Sequence(this, name, type, local);
+ SequencePtr p = new Sequence(this, name, type, metaData, local);
_contents.push_back(p);
return p;
}
DictionaryPtr
-Slice::Container::createDictionary(const string& name, const TypePtr& keyType, const TypePtr& valueType, bool local)
+Slice::Container::createDictionary(const string& name, const TypePtr& keyType, const StringList& keyMetaData,
+ const TypePtr& valueType, const StringList& valueMetaData, bool local)
{
checkPrefix(name);
@@ -890,7 +891,7 @@ Slice::Container::createDictionary(const string& name, const TypePtr& keyType, c
}
}
- DictionaryPtr p = new Dictionary(this, name, keyType, valueType, local);
+ DictionaryPtr p = new Dictionary(this, name, keyType, keyMetaData, valueType, valueMetaData, local);
_contents.push_back(p);
return p;
}
@@ -974,7 +975,7 @@ Slice::Container::createEnumerator(const string& name)
}
ConstPtr
-Slice::Container::createConst(const string name, const TypePtr& constType,
+Slice::Container::createConst(const string name, const TypePtr& constType, const StringList& metaData,
const SyntaxTreeBasePtr& literalType, const string& value)
{
checkPrefix(name);
@@ -1033,7 +1034,7 @@ Slice::Container::createConst(const string name, const TypePtr& constType,
return 0;
}
- ConstPtr p = new Const(this, name, constType, value);
+ ConstPtr p = new Const(this, name, constType, metaData, value);
_contents.push_back(p);
return p;
}
@@ -3591,6 +3592,12 @@ Slice::Sequence::type() const
return _type;
}
+StringList
+Slice::Sequence::typeMetaData() const
+{
+ return _typeMetaData;
+}
+
Contained::ContainedType
Slice::Sequence::containedType() const
{
@@ -3650,12 +3657,14 @@ Slice::Sequence::recDependencies(set<ConstructedPtr>& dependencies)
}
}
-Slice::Sequence::Sequence(const ContainerPtr& container, const string& name, const TypePtr& type, bool local) :
+Slice::Sequence::Sequence(const ContainerPtr& container, const string& name, const TypePtr& type,
+ const StringList& typeMetaData, bool local) :
SyntaxTreeBase(container->unit()),
Type(container->unit()),
Contained(container, name),
Constructed(container, name, local),
- _type(type)
+ _type(type),
+ _typeMetaData(typeMetaData)
{
}
@@ -3675,6 +3684,18 @@ Slice::Dictionary::valueType() const
return _valueType;
}
+StringList
+Slice::Dictionary::keyMetaData() const
+{
+ return _keyMetaData;
+}
+
+StringList
+Slice::Dictionary::valueMetaData() const
+{
+ return _valueMetaData;
+}
+
Contained::ContainedType
Slice::Dictionary::containedType() const
{
@@ -3821,13 +3842,16 @@ Slice::Dictionary::legalKeyType(const TypePtr& type)
}
Slice::Dictionary::Dictionary(const ContainerPtr& container, const string& name, const TypePtr& keyType,
- const TypePtr& valueType, bool local) :
+ const StringList& keyMetaData, const TypePtr& valueType,
+ const StringList& valueMetaData, bool local) :
SyntaxTreeBase(container->unit()),
Type(container->unit()),
Contained(container, name),
Constructed(container, name, local),
_keyType(keyType),
- _valueType(valueType)
+ _valueType(valueType),
+ _keyMetaData(keyMetaData),
+ _valueMetaData(valueMetaData)
{
}
@@ -3967,6 +3991,12 @@ Slice::Const::type() const
return _type;
}
+StringList
+Slice::Const::typeMetaData() const
+{
+ return _typeMetaData;
+}
+
string
Slice::Const::value() const
{
@@ -4195,11 +4225,12 @@ Slice::Const::isInRange(const string& name, const TypePtr& constType, const stri
return true; // Everything else is either in range or doesn't need checking.
}
-Slice::Const::Const(const ContainerPtr& container, const string& name,
- const TypePtr& type, const string& value) :
+Slice::Const::Const(const ContainerPtr& container, const string& name, const TypePtr& type,
+ const StringList& typeMetaData, const string& value) :
SyntaxTreeBase(container->unit()),
Contained(container, name),
_type(type),
+ _typeMetaData(typeMetaData),
_value(value)
{
}