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