diff --git a/alib2data/src/tree/common/TreeFromXMLParser.cpp b/alib2data/src/tree/common/TreeFromXMLParser.cpp index 2ac9545702d7ac7204dad650269c0283df1c7acf..e48ff9337676a0ee2435442fe671cd4110ff3ff2 100644 --- a/alib2data/src/tree/common/TreeFromXMLParser.cpp +++ b/alib2data/src/tree/common/TreeFromXMLParser.cpp @@ -12,99 +12,109 @@ namespace tree { -alphabet::Symbol TreeFromXMLParser::parseBar(std::deque<sax::Token>::iterator& input) { - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, "bar"); - alphabet::Symbol bar(alib::xmlApi<alphabet::Symbol>::parse(input)); - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::END_ELEMENT, "bar"); +alphabet::Symbol TreeFromXMLParser::parseBar ( std::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "bar" ); + alphabet::Symbol bar ( alib::xmlApi < alphabet::Symbol >::parse ( input ) ); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, "bar" ); + return bar; } -alphabet::Symbol TreeFromXMLParser::parseVariablesBar(std::deque<sax::Token>::iterator& input) { - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, "variablesBar"); - alphabet::Symbol variablesBar(alib::xmlApi<alphabet::Symbol>::parse(input)); - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::END_ELEMENT, "variablesBar"); +alphabet::Symbol TreeFromXMLParser::parseVariablesBar ( std::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "variablesBar" ); + alphabet::Symbol variablesBar ( alib::xmlApi < alphabet::Symbol >::parse ( input ) ); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, "variablesBar" ); + return variablesBar; } -alphabet::Symbol TreeFromXMLParser::parseSubtreeWildcardSymbol(std::deque<sax::Token>::iterator& input) { - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, "subtreeWildcard"); - alphabet::Symbol subtreeWildcard(alib::xmlApi<alphabet::Symbol>::parse(input)); - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::END_ELEMENT, "subtreeWildcard"); +alphabet::Symbol TreeFromXMLParser::parseSubtreeWildcardSymbol ( std::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "subtreeWildcard" ); + alphabet::Symbol subtreeWildcard ( alib::xmlApi < alphabet::Symbol >::parse ( input ) ); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, "subtreeWildcard" ); + return subtreeWildcard; } -alphabet::RankedSymbol TreeFromXMLParser::parseSubtreeWildcardRankedSymbol(std::deque<sax::Token>::iterator& input) { - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, "subtreeWildcard"); - alphabet::RankedSymbol subtreeWildcard(alib::xmlApi<alphabet::RankedSymbol>::parse(input)); - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::END_ELEMENT, "subtreeWildcard"); +alphabet::RankedSymbol TreeFromXMLParser::parseSubtreeWildcardRankedSymbol ( std::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "subtreeWildcard" ); + alphabet::RankedSymbol subtreeWildcard ( alib::xmlApi < alphabet::RankedSymbol >::parse ( input ) ); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, "subtreeWildcard" ); + return subtreeWildcard; } -std::set<alphabet::RankedSymbol> TreeFromXMLParser::parseRankedAlphabet(std::deque<sax::Token>::iterator& input) { - std::set<alphabet::RankedSymbol> rankedSymbols; - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, "rankedAlphabet"); - while (sax::FromXMLParserHelper::isTokenType(input, sax::Token::TokenType::START_ELEMENT)) { - rankedSymbols.insert(alib::xmlApi<alphabet::RankedSymbol>::parse(input)); - } - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::END_ELEMENT, "rankedAlphabet"); +std::set < alphabet::RankedSymbol > TreeFromXMLParser::parseRankedAlphabet ( std::deque < sax::Token >::iterator & input ) { + std::set < alphabet::RankedSymbol > rankedSymbols; + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "rankedAlphabet" ); + + while ( sax::FromXMLParserHelper::isTokenType ( input, sax::Token::TokenType::START_ELEMENT ) ) + rankedSymbols.insert ( alib::xmlApi < alphabet::RankedSymbol >::parse ( input ) ); + + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, "rankedAlphabet" ); return rankedSymbols; } -std::set<alphabet::Symbol> TreeFromXMLParser::parseUnrankedAlphabet(std::deque<sax::Token>::iterator& input) { - std::set<alphabet::Symbol> symbols; - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, "alphabet"); - while (sax::FromXMLParserHelper::isTokenType(input, sax::Token::TokenType::START_ELEMENT)) { - symbols.insert(alib::xmlApi<alphabet::Symbol>::parse(input)); - } - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::END_ELEMENT, "alphabet"); +std::set < alphabet::Symbol > TreeFromXMLParser::parseUnrankedAlphabet ( std::deque < sax::Token >::iterator & input ) { + std::set < alphabet::Symbol > symbols; + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "alphabet" ); + + while ( sax::FromXMLParserHelper::isTokenType ( input, sax::Token::TokenType::START_ELEMENT ) ) + symbols.insert ( alib::xmlApi < alphabet::Symbol >::parse ( input ) ); + + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, "alphabet" ); return symbols; } -std::vector<alphabet::RankedSymbol> TreeFromXMLParser::parseRankedContent(std::deque<sax::Token>::iterator& input) { - std::vector<alphabet::RankedSymbol> data; - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, "content"); - while (sax::FromXMLParserHelper::isTokenType(input, sax::Token::TokenType::START_ELEMENT)) { - data.push_back(alib::xmlApi<alphabet::RankedSymbol>::parse(input)); - } - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::END_ELEMENT, "content"); +std::vector < alphabet::RankedSymbol > TreeFromXMLParser::parseRankedContent ( std::deque < sax::Token >::iterator & input ) { + std::vector < alphabet::RankedSymbol > data; + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "content" ); + + while ( sax::FromXMLParserHelper::isTokenType ( input, sax::Token::TokenType::START_ELEMENT ) ) + data.push_back ( alib::xmlApi < alphabet::RankedSymbol >::parse ( input ) ); + + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, "content" ); return data; } -std::vector<alphabet::Symbol> TreeFromXMLParser::parseUnrankedContent(std::deque<sax::Token>::iterator& input) { - std::vector<alphabet::Symbol> data; - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, "content"); - while (sax::FromXMLParserHelper::isTokenType(input, sax::Token::TokenType::START_ELEMENT)) { - data.push_back(alib::xmlApi<alphabet::Symbol>::parse(input)); - } - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::END_ELEMENT, "content"); +std::vector < alphabet::Symbol > TreeFromXMLParser::parseUnrankedContent ( std::deque < sax::Token >::iterator & input ) { + std::vector < alphabet::Symbol > data; + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "content" ); + + while ( sax::FromXMLParserHelper::isTokenType ( input, sax::Token::TokenType::START_ELEMENT ) ) + data.push_back ( alib::xmlApi < alphabet::Symbol >::parse ( input ) ); + + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, "content" ); return data; } -RankedNode * TreeFromXMLParser::parseRankedNode(std::deque<sax::Token>::iterator& input) { - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, "rankedNode"); - alphabet::RankedSymbol symbol = alib::xmlApi<alphabet::RankedSymbol>::parse(input); - int rank = symbol.getRank().getData(); - std::vector<RankedNode *> children; - children.reserve(rank); - while (sax::FromXMLParserHelper::isTokenType(input, sax::Token::TokenType::START_ELEMENT)) { - children.push_back(parseRankedNode(input)); - } - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::END_ELEMENT, "rankedNode"); - - return new RankedNode(symbol, children); +RankedNode * TreeFromXMLParser::parseRankedNode ( std::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "rankedNode" ); + alphabet::RankedSymbol symbol = alib::xmlApi < alphabet::RankedSymbol >::parse ( input ); + int rank = symbol.getRank ( ).getData ( ); + std::vector < RankedNode * > children; + + children.reserve ( rank ); + + while ( sax::FromXMLParserHelper::isTokenType ( input, sax::Token::TokenType::START_ELEMENT ) ) + children.push_back ( parseRankedNode ( input ) ); + + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, "rankedNode" ); + + return new RankedNode ( symbol, children ); } -UnrankedNode * TreeFromXMLParser::parseUnrankedNode(std::deque<sax::Token>::iterator& input) { - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, "unrankedNode"); - alphabet::Symbol symbol = alib::xmlApi<alphabet::Symbol>::parse(input); - std::vector<UnrankedNode *> children; - while (sax::FromXMLParserHelper::isTokenType(input, sax::Token::TokenType::START_ELEMENT)) { - children.push_back(parseUnrankedNode(input)); - } - sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::END_ELEMENT, "unrankedNode"); +UnrankedNode * TreeFromXMLParser::parseUnrankedNode ( std::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "unrankedNode" ); + alphabet::Symbol symbol = alib::xmlApi < alphabet::Symbol >::parse ( input ); + std::vector < UnrankedNode * > children; + + while ( sax::FromXMLParserHelper::isTokenType ( input, sax::Token::TokenType::START_ELEMENT ) ) + children.push_back ( parseUnrankedNode ( input ) ); - return new UnrankedNode(symbol, children); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, "unrankedNode" ); + + return new UnrankedNode ( symbol, children ); } } /* namespace tree */ - diff --git a/alib2data/src/tree/common/TreeFromXMLParser.h b/alib2data/src/tree/common/TreeFromXMLParser.h index 111ecf19959ea9585d80cfbbfad51a2982e08828..25dd3449a1cace58fe31eba0d9f2fdf38f4ebf08 100644 --- a/alib2data/src/tree/common/TreeFromXMLParser.h +++ b/alib2data/src/tree/common/TreeFromXMLParser.h @@ -24,21 +24,20 @@ namespace tree { */ class TreeFromXMLParser { public: - static RankedNode * parseRankedNode(std::deque<sax::Token>::iterator& input); - static UnrankedNode * parseUnrankedNode(std::deque<sax::Token>::iterator& input); - static std::vector<alphabet::RankedSymbol> parseRankedContent(std::deque<sax::Token>::iterator& input); - static std::vector<alphabet::Symbol> parseUnrankedContent(std::deque<sax::Token>::iterator& input); - static std::set<alphabet::RankedSymbol> parseRankedAlphabet(std::deque<sax::Token>::iterator& input); - static std::set<alphabet::Symbol> parseUnrankedAlphabet(std::deque<sax::Token>::iterator& input); - - static alphabet::Symbol parseBar(std::deque<sax::Token>::iterator& input); - static alphabet::Symbol parseVariablesBar(std::deque<sax::Token>::iterator& input); - - static alphabet::Symbol parseSubtreeWildcardSymbol(std::deque<sax::Token>::iterator& input); - static alphabet::RankedSymbol parseSubtreeWildcardRankedSymbol(std::deque<sax::Token>::iterator& input); + static RankedNode * parseRankedNode ( std::deque < sax::Token >::iterator & input ); + static UnrankedNode * parseUnrankedNode ( std::deque < sax::Token >::iterator & input ); + static std::vector < alphabet::RankedSymbol > parseRankedContent ( std::deque < sax::Token >::iterator & input ); + static std::vector < alphabet::Symbol > parseUnrankedContent ( std::deque < sax::Token >::iterator & input ); + static std::set < alphabet::RankedSymbol > parseRankedAlphabet ( std::deque < sax::Token >::iterator & input ); + static std::set < alphabet::Symbol > parseUnrankedAlphabet ( std::deque < sax::Token >::iterator & input ); + + static alphabet::Symbol parseBar ( std::deque < sax::Token >::iterator & input ); + static alphabet::Symbol parseVariablesBar ( std::deque < sax::Token >::iterator & input ); + + static alphabet::Symbol parseSubtreeWildcardSymbol ( std::deque < sax::Token >::iterator & input ); + static alphabet::RankedSymbol parseSubtreeWildcardRankedSymbol ( std::deque < sax::Token >::iterator & input ); }; } /* namespace tree */ #endif /* TREE_FROM_XML_PARSER_H_ */ -