diff --git a/alib2/src/string/StringFromXMLParser.cpp b/alib2/src/string/StringFromXMLParser.cpp index 325f71b9fca45f268c7ea195453d21baa7e65780..5f41dce449f012ecf317fb78fed1bfdefe4992f1 100644 --- a/alib2/src/string/StringFromXMLParser.cpp +++ b/alib2/src/string/StringFromXMLParser.cpp @@ -72,8 +72,16 @@ String StringFromXMLParser::parseValue(std::list<sax::Token>& input) const { } } +bool StringFromXMLParser::first(std::list<sax::Token>& input) const { + if(isToken(input, sax::Token::TokenType::START_ELEMENT, "string")) { + return true; + } else { + return false; + } +} + String* StringFromXMLParser::parsePointer(std::list<sax::Token>& input) const { - if(isToken(input, sax::Token::TokenType::START_ELEMENT, "Epsilon") || isToken(input, sax::Token::TokenType::START_ELEMENT, "LinearString") || isToken(input, sax::Token::TokenType::START_ELEMENT, "CyclicString")) { + if(first(input)) { return new String(parse(input)); } else { return NULL; diff --git a/alib2/src/string/StringFromXMLParser.h b/alib2/src/string/StringFromXMLParser.h index 9ed0008fa4500e6de2bc5f637649650779cbd801..2da6ded4e50877e858e64616838f60103821cd89 100644 --- a/alib2/src/string/StringFromXMLParser.h +++ b/alib2/src/string/StringFromXMLParser.h @@ -28,8 +28,10 @@ class StringFromXMLParser : public sax::FromXMLParser { String parse(std::list<sax::Token>& input) const; String parse(std::list<sax::Token>& input, const std::set<FEATURES>& features) const; - String* parsePointer(std::list<sax::Token>& input) const; public: + bool first(std::list<sax::Token>& input) const; + String* parsePointer(std::list<sax::Token>& input) const; + /** * Parses the XML and returns regular expression. The input is destroyed in the process. * @param input XML represented as list of tokens