From 73f092f3aaf5c2bc33ebf1aee8a05c2b0fea8cd3 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Thu, 12 Jun 2014 10:07:42 +0200 Subject: [PATCH] reuse label parser in symbol parser --- alib2/src/alphabet/SymbolFromXMLParser.cpp | 16 +++------------- alib2/src/alphabet/SymbolFromXMLParser.h | 2 -- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/alib2/src/alphabet/SymbolFromXMLParser.cpp b/alib2/src/alphabet/SymbolFromXMLParser.cpp index 1c66d9f1d7..5b59ae6893 100644 --- a/alib2/src/alphabet/SymbolFromXMLParser.cpp +++ b/alib2/src/alphabet/SymbolFromXMLParser.cpp @@ -9,16 +9,16 @@ #include "../sax/ParserException.h" #include "BlankSymbol.h" #include "LabeledSymbol.h" -#include "../label/StringLabel.h" #include "../label/Label.h" -#include "../alphabet/LabeledSymbol.h" + +#include "../FromXMLParsers.h" namespace alphabet { Symbol SymbolFromXMLParser::parse(std::list<sax::Token>& input) const { if(isToken(input, sax::Token::START_ELEMENT, "LabeledSymbol")) { popToken(input, sax::Token::START_ELEMENT, "LabeledSymbol"); - label::Label data = parseContent(input); + label::Label data = alib::FromXMLParsers::labelParser.parse(input); popToken(input, sax::Token::END_ELEMENT, "LabeledSymbol"); return Symbol(LabeledSymbol(data)); } else if(isToken(input, sax::Token::START_ELEMENT, "BlankSymbol")) { @@ -30,14 +30,4 @@ Symbol SymbolFromXMLParser::parse(std::list<sax::Token>& input) const { } } -label::Label SymbolFromXMLParser::parseContent(std::list<sax::Token>& input) const { - if (isTokenType(input, sax::Token::CHARACTER)) { - label::Label data(label::StringLabel(input.front().getData())); - input.pop_front(); - return data; - } else { - throw sax::ParserException(sax::Token("", sax::Token::CHARACTER), input.front()); - } -} - } /* namespace string */ diff --git a/alib2/src/alphabet/SymbolFromXMLParser.h b/alib2/src/alphabet/SymbolFromXMLParser.h index b41909c051..17089602eb 100644 --- a/alib2/src/alphabet/SymbolFromXMLParser.h +++ b/alib2/src/alphabet/SymbolFromXMLParser.h @@ -20,8 +20,6 @@ namespace alphabet { * Parser used to get String from XML parsed into list of tokens. */ class SymbolFromXMLParser : public sax::FromXMLParser { - label::Label parseContent(std::list<sax::Token>& input) const; - public: /** * Parses the XML and returns regular expression. The input is destroyed in the process. -- GitLab