diff options
author | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2015-02-06 16:52:51 +0100 |
---|---|---|
committer | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2015-02-06 16:52:51 +0100 |
commit | 7fb170a87a4551a048487361b7aaf29963dc7b99 (patch) | |
tree | b2f532ec8e6aa54f475c0e48b3ef5d39b6ee3b6c /src/plugins | |
parent | 3ceb415e4f81b50b8e46351e9e586794ebf08644 (diff) | |
parent | b211c02c53f3ed38c7d124d6a74f22ee17df7063 (diff) |
Merge branch 'master' of somweyr.de:ousia
Conflicts:
application/src/plugins/xml/XmlParser.cpp
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/xml/XmlParser.cpp | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/plugins/xml/XmlParser.cpp b/src/plugins/xml/XmlParser.cpp index 6a2b160..7b4b1b3 100644 --- a/src/plugins/xml/XmlParser.cpp +++ b/src/plugins/xml/XmlParser.cpp @@ -77,8 +77,7 @@ public: class DocumentField : public Node { public: - DocumentField(Manager &mgr, std::string name, Handle<Node> parent, - Handle<FieldDescriptor> descriptor) + DocumentField(Manager &mgr, std::string name, Handle<Node> parent) : Node(mgr, name, parent) { } @@ -93,7 +92,7 @@ class DocumentChildHandler : public Handler { public: using Handler::Handler; - void preamble(Hanlde<Node> parentNode, std::string &fieldName, + void preamble(Handle<Node> parentNode, std::string &fieldName, DocumentEntity *&parent, bool &inField) { // check if the parent in the structure tree was an explicit field @@ -691,8 +690,8 @@ public: // StructuredClass as child to it. scope().resolve<Descriptor>( parentNameNode->getName(), strct, logger(), - [&type, &name, &optional](Handle<Node> parent, Handle<Node> strct, - Logger &logger) { + [type, name, optional](Handle<Node> parent, Handle<Node> strct, + Logger &logger) { if (parent != nullptr) { Rooted<FieldDescriptor> field = parent.cast<Descriptor>()->createFieldDescriptor( @@ -727,9 +726,9 @@ public: // resolve the parent, get the referenced field and add the declared // StructuredClass as child to it. scope().resolve<Descriptor>(parentNameNode->getName(), strct, logger(), - [&name, &loc](Handle<Node> parent, - Handle<Node> strct, - Logger &logger) { + [name, loc](Handle<Node> parent, + Handle<Node> strct, + Logger &logger) { if (parent != nullptr) { auto res = parent.cast<Descriptor>()->resolve( RttiTypes::FieldDescriptor, name); @@ -861,9 +860,16 @@ static const ParserState Document = .parent(&None) .createdNodeType(&RttiTypes::Document) .elementHandler(DocumentHandler::create) - .childHandler(DocumentChildHandler::create) .arguments({Argument::String("name", "")}); +static const ParserState DocumentChild = + ParserStateBuilder() + .parent(&Document) + .createdNodeTypes({&RttiTypes::StructureNode, + &RttiTypes::AnnotationEntity, + &RttiTypes::DocumentField}) + .elementHandler(DocumentChildHandler::create); + /* Domain states */ static const ParserState Domain = ParserStateBuilder() .parents({&None, &Document}) @@ -1017,6 +1023,7 @@ static const ParserState Include = static const std::multimap<std::string, const ParserState *> XmlStates{ {"document", &Document}, + {"*", &DocumentChild}, {"domain", &Domain}, {"struct", &DomainStruct}, {"annotation", &DomainAnnotation}, |