diff options
author | Michi Henning <michi@zeroc.com> | 2007-12-20 13:10:13 +1000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2007-12-20 13:10:13 +1000 |
commit | 4af75dd83279303101a04c4332b9bb0ffc48ab30 (patch) | |
tree | e4dc480b5c12d037c42a45a0cf50a5337dc168c2 /cpp/src/Slice/Parser.cpp | |
parent | Bug 2619 -- Removed VbUtil.cpp. (diff) | |
download | ice-4af75dd83279303101a04c4332b9bb0ffc48ab30.tar.bz2 ice-4af75dd83279303101a04c4332b9bb0ffc48ab30.tar.xz ice-4af75dd83279303101a04c4332b9bb0ffc48ab30.zip |
Bug 2477.
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rw-r--r-- | cpp/src/Slice/Parser.cpp | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp index e58f65d9ec6..e285263110e 100644 --- a/cpp/src/Slice/Parser.cpp +++ b/cpp/src/Slice/Parser.cpp @@ -1022,7 +1022,8 @@ Slice::Container::createEnumerator(const string& name) ConstPtr Slice::Container::createConst(const string name, const TypePtr& constType, const StringList& metaData, - const SyntaxTreeBasePtr& literalType, const string& value, NodeType nt) + const SyntaxTreeBasePtr& literalType, const string& value, const string& literal, + NodeType nt) { checkPrefix(name); @@ -1083,7 +1084,7 @@ Slice::Container::createConst(const string name, const TypePtr& constType, const return 0; } - ConstPtr p = new Const(this, name, constType, metaData, value); + ConstPtr p = new Const(this, name, constType, metaData, value, literal); _contents.push_back(p); return p; } @@ -1448,6 +1449,21 @@ Slice::Container::enums() const return result; } +ConstList +Slice::Container::consts() const +{ + ConstList result; + for(ContainedList::const_iterator p = _contents.begin(); p != _contents.end(); ++p) + { + ConstPtr q = ConstPtr::dynamicCast(*p); + if(q) + { + result.push_back(q); + } + } + return result; +} + ContainedList Slice::Container::contents() const { @@ -4092,6 +4108,12 @@ Slice::Const::value() const return _value; } +string +Slice::Const::literal() const +{ + return _literal; +} + Contained::ContainedType Slice::Const::containedType() const { @@ -4315,12 +4337,13 @@ Slice::Const::isInRange(const string& name, const TypePtr& constType, const stri } Slice::Const::Const(const ContainerPtr& container, const string& name, const TypePtr& type, - const StringList& typeMetaData, const string& value) : + const StringList& typeMetaData, const string& value, const string& literal) : SyntaxTreeBase(container->unit()), Contained(container, name), _type(type), _typeMetaData(typeMetaData), - _value(value) + _value(value), + _literal(literal) { } |