diff --git a/alib2/src/alphabet/SymbolFromXMLParser.cpp b/alib2/src/alphabet/SymbolFromXMLParser.cpp index 1c66d9f1d747f66ed9d4844d6b91b14e2418f726..5b59ae6893a9a77f704232c8e104761e408a76f4 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 b41909c0518bf9ff2fdd414b365e24a9a2fc064d..17089602eb17830e75efe10d736fd5f177ac6049 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.