diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-29 22:52:29 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-29 22:52:29 +0100 |
commit | 90b2e9507e9d720452792b863b422221fe96d948 (patch) | |
tree | 407a271de4730d087de4132eab3921c44c65e400 /src/plugins/xml/XmlParser.cpp | |
parent | de0891c69166f6988e0b13137f9bf2b7b67449f2 (diff) |
Unified signature of resolve functions, passing the "owner" to the callback functions in ParserScope::resolve
Diffstat (limited to 'src/plugins/xml/XmlParser.cpp')
-rw-r--r-- | src/plugins/xml/XmlParser.cpp | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src/plugins/xml/XmlParser.cpp b/src/plugins/xml/XmlParser.cpp index 6e0fea0..5e30fec 100644 --- a/src/plugins/xml/XmlParser.cpp +++ b/src/plugins/xml/XmlParser.cpp @@ -167,13 +167,13 @@ public: // Try to resolve the parent type and set it as parent structure if (!parent.empty()) { - scope().resolve<StructType>(parent, logger(), - [structType](Handle<StructType> parent, - Logger &logger) mutable { - structType->setParentStructure( - parent, logger); - }, - structType); + scope().resolve<StructType>( + parent, structType, logger(), + [](Handle<Node> parent, Handle<Node> structType, + Logger &logger) { + structType.cast<StructType>()->setParentStructure( + parent.cast<StructType>(), logger); + }); } // Descend into the struct type @@ -212,11 +212,10 @@ public: // Try to resolve the type scope().resolve<Type>( - type, logger(), - [attribute](Handle<Type> type, Logger &logger) mutable { - attribute->setType(type, logger); - }, - attribute); + type, attribute, logger(), + [](Handle<Node> type, Handle<Node> attribute, Logger &logger) { + attribute.cast<Attribute>()->setType(type.cast<Type>(), logger); + }); } void end() override {} @@ -244,11 +243,10 @@ public: // Try to resolve the type scope().resolve<Type>( - type, logger(), - [constant](Handle<Type> type, Logger &logger) mutable { - constant->setType(type, logger); - }, - constant); + type, constant, logger(), + [](Handle<Node> type, Handle<Node> constant, Logger &logger) { + constant.cast<Constant>()->setType(type.cast<Type>(), logger); + }); } void end() override {} |