Skip to content
Snippets Groups Projects
Commit ec10b4ea authored by Jan Trávníček's avatar Jan Trávníček
Browse files

fix parsing prefix ranked notation

parent 42f24ecc
No related branches found
No related tags found
No related merge requests found
...@@ -1142,7 +1142,7 @@ tree::PrefixRankedNotation xmlApi<tree::PrefixRankedNotation>::parse(std::deque< ...@@ -1142,7 +1142,7 @@ tree::PrefixRankedNotation xmlApi<tree::PrefixRankedNotation>::parse(std::deque<
} }
   
bool xmlApi<tree::PrefixRankedNotation>::first(const std::deque<sax::Token>& input) { bool xmlApi<tree::PrefixRankedNotation>::first(const std::deque<sax::Token>& input) {
return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, Names::TREE_RANKED_TREE); return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, Names::TREE_PREFIX_RANKED_NOTATION);
} }
   
void xmlApi<tree::PrefixRankedNotation>::compose(std::deque<sax::Token>& output, const tree::PrefixRankedNotation& data) { void xmlApi<tree::PrefixRankedNotation>::compose(std::deque<sax::Token>& output, const tree::PrefixRankedNotation& data) {
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
namespace tree { namespace tree {
   
Tree TreeFromXMLParser::parseTree(std::deque<sax::Token> &input) const { Tree TreeFromXMLParser::parseTree(std::deque<sax::Token> &input) const {
return parseTree(input, std::set<FEATURES>({FEATURES::RANKED_TREE, FEATURES::UNRANKED_TREE})); return parseTree(input, std::set<FEATURES>({FEATURES::RANKED_TREE, FEATURES::UNRANKED_TREE, FEATURES::PREFIX_RANKED_NOTATION}));
} }
   
Tree TreeFromXMLParser::parseTree(std::deque<sax::Token>& input, const std::set<FEATURES>& features) const { Tree TreeFromXMLParser::parseTree(std::deque<sax::Token>& input, const std::set<FEATURES>& features) const {
...@@ -24,8 +24,11 @@ Tree TreeFromXMLParser::parseTree(std::deque<sax::Token>& input, const std::set< ...@@ -24,8 +24,11 @@ Tree TreeFromXMLParser::parseTree(std::deque<sax::Token>& input, const std::set<
} else if(alib::xmlApi<UnrankedTree>::first(input)) { } else if(alib::xmlApi<UnrankedTree>::first(input)) {
if(!features.count(FEATURES::UNRANKED_TREE)) throw exception::AlibException(); if(!features.count(FEATURES::UNRANKED_TREE)) throw exception::AlibException();
return Tree(parseUnrankedTree(input)); return Tree(parseUnrankedTree(input));
} else if(alib::xmlApi<PrefixRankedNotation>::first(input)) {
if(!features.count(FEATURES::PREFIX_RANKED_NOTATION)) throw exception::AlibException();
return Tree(parsePrefixRankedNotation(input));
} else } else
throw sax::ParserException(sax::Token("Tree / RankedTree / UnrankedTree", sax::Token::TokenType::START_ELEMENT), input.front()); throw sax::ParserException(sax::Token("Tree / RankedTree / PrefixRankedNotation / UnrankedTree", sax::Token::TokenType::START_ELEMENT), input.front());
} }
   
RankedTree TreeFromXMLParser::parseRankedTree(std::deque<sax::Token>& input) const { RankedTree TreeFromXMLParser::parseRankedTree(std::deque<sax::Token>& input) const {
...@@ -118,7 +121,7 @@ UnrankedNode * TreeFromXMLParser::parseUnrankedNode(std::deque<sax::Token> &inpu ...@@ -118,7 +121,7 @@ UnrankedNode * TreeFromXMLParser::parseUnrankedNode(std::deque<sax::Token> &inpu
} }
   
bool TreeFromXMLParser::first(const std::deque<sax::Token>& input) const { bool TreeFromXMLParser::first(const std::deque<sax::Token>& input) const {
if (alib::xmlApi<RankedTree>::first(input) || alib::xmlApi<UnrankedTree>::first(input)) { if (alib::xmlApi<RankedTree>::first(input) || alib::xmlApi<PrefixRankedNotation>::first(input) || alib::xmlApi<UnrankedTree>::first(input)) {
return true; return true;
} else { } else {
return false; return false;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment