From d65da606a664707f1aecefc60d4fbd6ffd3967f9 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Wed, 13 Aug 2014 22:40:38 +0200
Subject: [PATCH] prototype set parsing

---
 alib2data/src/FromXMLParser.cpp               |  2 +-
 alib2data/src/FromXMLParsers.cpp              |  7 ++-
 .../{FromXMLParsers.h => FromXMLParsers.hpp}  | 35 +++++++++++--
 .../src/alphabet/SymbolFromStringLexer.cpp    |  7 +++
 .../src/alphabet/SymbolFromStringLexer.h      |  7 +++
 .../src/alphabet/SymbolFromStringParser.cpp   |  7 +++
 .../src/alphabet/SymbolFromXMLParser.cpp      |  2 +-
 .../src/automaton/AutomatonFromXMLParser.cpp  |  2 +-
 .../FSM/FiniteAutomatonFromStringLexer.cpp    |  7 +++
 .../FSM/FiniteAutomatonFromStringLexer.h      |  7 +++
 .../FSM/FiniteAutomatonFromStringParser.cpp   |  7 +++
 .../FSM/FiniteAutomatonFromStringParser.h     |  7 +++
 .../src/container/ContainerFromXMLParser.cpp  | 21 ++++++++
 .../src/container/ContainerFromXMLParser.h    | 52 +++++++++++++++++++
 alib2data/src/factory/AutomatonFactory.cpp    |  2 +-
 alib2data/src/factory/ExceptionFactory.cpp    |  2 +-
 alib2data/src/factory/GrammarFactory.cpp      |  2 +-
 alib2data/src/factory/LabelFactory.cpp        |  2 +-
 alib2data/src/factory/RegExpFactory.cpp       |  2 +-
 alib2data/src/factory/StringFactory.cpp       |  2 +-
 alib2data/src/factory/SymbolFactory.cpp       |  2 +-
 .../src/grammar/GrammarFromXMLParser.cpp      |  2 +-
 alib2data/src/label/LabelFromStringLexer.cpp  |  7 +++
 alib2data/src/label/LabelFromStringLexer.h    |  7 +++
 alib2data/src/label/LabelFromStringParser.cpp |  7 +++
 .../src/regexp/RegExpFromStringLexer.cpp      |  7 +++
 alib2data/src/regexp/RegExpFromStringLexer.h  |  7 +++
 .../src/regexp/RegExpFromStringParser.cpp     |  7 +++
 alib2data/src/regexp/RegExpFromXMLParser.cpp  |  2 +-
 .../src/string/StringFromStringLexer.cpp      |  7 +++
 alib2data/src/string/StringFromStringLexer.h  |  7 +++
 .../src/string/StringFromStringParser.cpp     |  7 +++
 alib2data/src/string/StringFromXMLParser.cpp  |  2 +-
 33 files changed, 235 insertions(+), 18 deletions(-)
 rename alib2data/src/{FromXMLParsers.h => FromXMLParsers.hpp} (58%)
 create mode 100644 alib2data/src/container/ContainerFromXMLParser.cpp
 create mode 100644 alib2data/src/container/ContainerFromXMLParser.h

diff --git a/alib2data/src/FromXMLParser.cpp b/alib2data/src/FromXMLParser.cpp
index 1eafd5d8c4..7997a1bdaa 100644
--- a/alib2data/src/FromXMLParser.cpp
+++ b/alib2data/src/FromXMLParser.cpp
@@ -6,7 +6,7 @@
  */
 
 #include "FromXMLParser.hpp"
-#include "FromXMLParsers.h"
+#include "FromXMLParsers.hpp"
 
 namespace alib {
 
diff --git a/alib2data/src/FromXMLParsers.cpp b/alib2data/src/FromXMLParsers.cpp
index a2c8885320..68ff419390 100644
--- a/alib2data/src/FromXMLParsers.cpp
+++ b/alib2data/src/FromXMLParsers.cpp
@@ -5,7 +5,7 @@
  * Author: Jan Travnicek
  */
 
-#include "FromXMLParsers.h"
+#include "FromXMLParsers.hpp"
 
 namespace alib {
 
@@ -16,5 +16,10 @@ const string::StringFromXMLParser FromXMLParsers::stringParser;
 const automaton::AutomatonFromXMLParser FromXMLParsers::automatonParser;
 const grammar::GrammarFromXMLParser FromXMLParsers::grammarParser;
 const exception::ExceptionFromXMLParser FromXMLParsers::exceptionParser;
+const container::ContainerFromXMLParser FromXMLParsers::containerParser;
+
+automaton::DFA api<automaton::DFA>::parse(std::list<sax::Token>& input) {
+	return FromXMLParsers::automatonParser.parseDFA(input);
+}
 
 } /* namespace alib */
diff --git a/alib2data/src/FromXMLParsers.h b/alib2data/src/FromXMLParsers.hpp
similarity index 58%
rename from alib2data/src/FromXMLParsers.h
rename to alib2data/src/FromXMLParsers.hpp
index 7ee07c91c8..120d1c5337 100644
--- a/alib2data/src/FromXMLParsers.h
+++ b/alib2data/src/FromXMLParsers.hpp
@@ -1,12 +1,12 @@
 /*
- * FromXMLParsers.h
+ * FromXMLParsers.hpp
  *
  * Created on: Apr 1, 2013
  * Author: Jan Travnicek
  */
 
-#ifndef FROM_XML_PARSERS_H_
-#define FROM_XML_PARSERS_H_
+#ifndef FROM_XML_PARSERS_HPP_
+#define FROM_XML_PARSERS_HPP_
 
 #include "label/LabelFromXMLParser.h"
 #include "alphabet/SymbolFromXMLParser.h"
@@ -18,6 +18,27 @@
 
 namespace alib {
 
+template<typename T>
+struct api {
+	static T parse(std::list<sax::Token>& input);
+};
+
+template<typename T>
+struct api<std::set<T>> {
+	static std::set<T> parse(std::list<sax::Token>& input);
+};
+
+template<>
+struct api<automaton::DFA> {
+	static automaton::DFA parse(std::list<sax::Token>& input);
+};
+
+}
+
+#include "container/ContainerFromXMLParser.h"
+
+namespace alib {
+
 /**
  * Basic exception from which are derived all other exceptions.
  * Contains reason why the exception occured.
@@ -31,9 +52,15 @@ public:
 	static const automaton::AutomatonFromXMLParser automatonParser;
 	static const grammar::GrammarFromXMLParser grammarParser;
 	static const exception::ExceptionFromXMLParser exceptionParser;
+	static const container::ContainerFromXMLParser containerParser;
 
 };
 
+template<typename T>
+std::set<T> api<std::set<T>>::parse(std::list<sax::Token>& input) {
+	return FromXMLParsers::containerParser.parseSet<T>(input);
+}
+
 } /* namespace alib */
 
-#endif /* FROM_XML_PARSERS_H_ */
+#endif /* FROM_XML_PARSERS_HPP_ */
diff --git a/alib2data/src/alphabet/SymbolFromStringLexer.cpp b/alib2data/src/alphabet/SymbolFromStringLexer.cpp
index 75e228ded4..0e0ce6626e 100644
--- a/alib2data/src/alphabet/SymbolFromStringLexer.cpp
+++ b/alib2data/src/alphabet/SymbolFromStringLexer.cpp
@@ -1,3 +1,10 @@
+/*
+ * SymbolFromStringLexer.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #include "SymbolFromStringLexer.h"
 #include "../label/LabelFromStringLexer.h"
 
diff --git a/alib2data/src/alphabet/SymbolFromStringLexer.h b/alib2data/src/alphabet/SymbolFromStringLexer.h
index d5d572c2cd..354611946c 100644
--- a/alib2data/src/alphabet/SymbolFromStringLexer.h
+++ b/alib2data/src/alphabet/SymbolFromStringLexer.h
@@ -1,3 +1,10 @@
+/*
+ * SymbolFromStringLexer.h
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #ifndef SYMBOL_FROM_STRING_LEXER_H_
 #define SYMBOL_FROM_STRING_LEXER_H_
 
diff --git a/alib2data/src/alphabet/SymbolFromStringParser.cpp b/alib2data/src/alphabet/SymbolFromStringParser.cpp
index 83b11f7165..36c1b733fd 100644
--- a/alib2data/src/alphabet/SymbolFromStringParser.cpp
+++ b/alib2data/src/alphabet/SymbolFromStringParser.cpp
@@ -1,3 +1,10 @@
+/*
+ * SymbolFromStringParser.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #include "SymbolFromStringParser.h"
 #include "../exception/AlibException.h"
 #include "BlankSymbol.h"
diff --git a/alib2data/src/alphabet/SymbolFromXMLParser.cpp b/alib2data/src/alphabet/SymbolFromXMLParser.cpp
index fd42a9b2d4..d132f82cbc 100644
--- a/alib2data/src/alphabet/SymbolFromXMLParser.cpp
+++ b/alib2data/src/alphabet/SymbolFromXMLParser.cpp
@@ -10,7 +10,7 @@
 #include "../sax/ParserException.h"
 #include "../label/Label.h"
 
-#include "../FromXMLParsers.h"
+#include "../FromXMLParsers.hpp"
 
 namespace alphabet {
 
diff --git a/alib2data/src/automaton/AutomatonFromXMLParser.cpp b/alib2data/src/automaton/AutomatonFromXMLParser.cpp
index 1733f7e722..abf8ae5795 100644
--- a/alib2data/src/automaton/AutomatonFromXMLParser.cpp
+++ b/alib2data/src/automaton/AutomatonFromXMLParser.cpp
@@ -13,7 +13,7 @@
 #include "../label/Label.h"
 #include "../alphabet/LabeledSymbol.h"
 
-#include "../FromXMLParsers.h"
+#include "../FromXMLParsers.hpp"
 
 namespace automaton {
 
diff --git a/alib2data/src/automaton/FSM/FiniteAutomatonFromStringLexer.cpp b/alib2data/src/automaton/FSM/FiniteAutomatonFromStringLexer.cpp
index c273758644..44a6a11866 100644
--- a/alib2data/src/automaton/FSM/FiniteAutomatonFromStringLexer.cpp
+++ b/alib2data/src/automaton/FSM/FiniteAutomatonFromStringLexer.cpp
@@ -1,3 +1,10 @@
+/*
+ * FiniteAutomatonFromStringLexer.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #include "FiniteAutomatonFromStringLexer.h"
 
 namespace automaton {
diff --git a/alib2data/src/automaton/FSM/FiniteAutomatonFromStringLexer.h b/alib2data/src/automaton/FSM/FiniteAutomatonFromStringLexer.h
index 1683ee5c15..f96c7fd07c 100644
--- a/alib2data/src/automaton/FSM/FiniteAutomatonFromStringLexer.h
+++ b/alib2data/src/automaton/FSM/FiniteAutomatonFromStringLexer.h
@@ -1,3 +1,10 @@
+/*
+ * FiniteAutomatonFromStringLexer.h
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #ifndef FINITE_AUTOMATON_FROM_STRING_LEXER_H_
 #define FINITE_AUTOMATON_FROM_STRING_LEXER_H_
 
diff --git a/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.cpp b/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.cpp
index d3b7ea50f1..2d40eaac7c 100644
--- a/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.cpp
+++ b/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.cpp
@@ -1,3 +1,10 @@
+/*
+ * FiniteAutomatonFromStringParser.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #include "FiniteAutomatonFromStringParser.h"
 
 #include "../../exception/AlibException.h"
diff --git a/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.h b/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.h
index 5cb5702005..e48865f455 100644
--- a/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.h
+++ b/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.h
@@ -1,3 +1,10 @@
+/*
+ * FiniteAutomatonFromStringParser.h
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #ifndef FINITE_AUTOMATON_FROM_STRING_PARSER_H_
 #define FINITE_AUTOMATON_FROM_STRING_PARSER_H_
 
diff --git a/alib2data/src/container/ContainerFromXMLParser.cpp b/alib2data/src/container/ContainerFromXMLParser.cpp
new file mode 100644
index 0000000000..5d188c437c
--- /dev/null
+++ b/alib2data/src/container/ContainerFromXMLParser.cpp
@@ -0,0 +1,21 @@
+/*
+ * ContainerFromXMLParser.cpp
+ *
+ *  Created on: Oct 12, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "ContainerFromXMLParser.h"
+
+namespace container {
+
+bool ContainerFromXMLParser::first(std::list<sax::Token>& input) const {
+	if(isToken(input, sax::Token::TokenType::START_ELEMENT, "set")) {
+		return true;
+	} else {
+		return false;
+	}
+}
+
+} /* namespace automaton */
+
diff --git a/alib2data/src/container/ContainerFromXMLParser.h b/alib2data/src/container/ContainerFromXMLParser.h
new file mode 100644
index 0000000000..24d06345b7
--- /dev/null
+++ b/alib2data/src/container/ContainerFromXMLParser.h
@@ -0,0 +1,52 @@
+/*
+ * ContainerFromXMLParser.h
+ *
+ *  Created on: Oct 12, 2013
+ *      Author: Jan Travnicek
+ */
+
+#ifndef CONTAINER_FROM_XML_PARSER_H_
+#define CONTAINER_FROM_XML_PARSER_H_
+
+#include "../sax/FromXMLParserHelper.h"
+#include "../FromXMLParser.hpp"
+
+#include <set>
+
+namespace container {
+
+/**
+ * Parser used to get general FSM or EpsilonNFA, NFA, DFA from XML parsed into list of Tokens.
+ */
+class ContainerFromXMLParser : public sax::FromXMLParserHelper {
+public:
+	bool first(std::list<sax::Token>& input) const;
+
+	template<typename T>
+	std::set<T> parseSet(std::list<sax::Token>& input) const;
+};
+
+}
+
+#include "../FromXMLParsers.hpp"
+
+namespace container {
+
+template<typename T>
+std::set<T> ContainerFromXMLParser::parseSet(std::list<sax::Token>& input) const {
+	popToken(input, sax::Token::TokenType::START_ELEMENT, "set");
+
+	std::set<T> set;
+
+	while(isTokenType(input, sax::Token::TokenType::START_ELEMENT)) {
+		set.insert(alib::api<T>::parse(input));
+	}
+
+	popToken(input, sax::Token::TokenType::END_ELEMENT, "set");
+	return set;
+}
+
+} /* namespace container */
+
+#endif /* CONTAINER_FROM_XML_PARSER_H_ */
+
diff --git a/alib2data/src/factory/AutomatonFactory.cpp b/alib2data/src/factory/AutomatonFactory.cpp
index 725900046a..530190925e 100644
--- a/alib2data/src/factory/AutomatonFactory.cpp
+++ b/alib2data/src/factory/AutomatonFactory.cpp
@@ -9,7 +9,7 @@
 
 #include "../sax/SaxParseInterface.h"
 #include "../sax/SaxComposeInterface.h"
-#include "../FromXMLParsers.h"
+#include "../FromXMLParsers.hpp"
 #include "../ToXMLComposers.h"
 
 namespace automaton {
diff --git a/alib2data/src/factory/ExceptionFactory.cpp b/alib2data/src/factory/ExceptionFactory.cpp
index c72f09762b..ae3ac3db14 100644
--- a/alib2data/src/factory/ExceptionFactory.cpp
+++ b/alib2data/src/factory/ExceptionFactory.cpp
@@ -9,7 +9,7 @@
 
 #include "../sax/SaxParseInterface.h"
 #include "../sax/SaxComposeInterface.h"
-#include "../FromXMLParsers.h"
+#include "../FromXMLParsers.hpp"
 #include "../ToXMLComposers.h"
 
 namespace exception {
diff --git a/alib2data/src/factory/GrammarFactory.cpp b/alib2data/src/factory/GrammarFactory.cpp
index ee75ddfc76..ce48b14b20 100644
--- a/alib2data/src/factory/GrammarFactory.cpp
+++ b/alib2data/src/factory/GrammarFactory.cpp
@@ -9,7 +9,7 @@
 
 #include "../sax/SaxParseInterface.h"
 #include "../sax/SaxComposeInterface.h"
-#include "../FromXMLParsers.h"
+#include "../FromXMLParsers.hpp"
 #include "../ToXMLComposers.h"
 
 namespace grammar {
diff --git a/alib2data/src/factory/LabelFactory.cpp b/alib2data/src/factory/LabelFactory.cpp
index 3ba4f012c1..3fc7d6f0d6 100644
--- a/alib2data/src/factory/LabelFactory.cpp
+++ b/alib2data/src/factory/LabelFactory.cpp
@@ -9,7 +9,7 @@
 
 #include "../sax/SaxParseInterface.h"
 #include "../sax/SaxComposeInterface.h"
-#include "../FromXMLParsers.h"
+#include "../FromXMLParsers.hpp"
 #include "../ToXMLComposers.h"
 
 namespace label {
diff --git a/alib2data/src/factory/RegExpFactory.cpp b/alib2data/src/factory/RegExpFactory.cpp
index f47d09f0b7..a0b685c640 100644
--- a/alib2data/src/factory/RegExpFactory.cpp
+++ b/alib2data/src/factory/RegExpFactory.cpp
@@ -9,7 +9,7 @@
 
 #include "../sax/SaxParseInterface.h"
 #include "../sax/SaxComposeInterface.h"
-#include "../FromXMLParsers.h"
+#include "../FromXMLParsers.hpp"
 #include "../ToXMLComposers.h"
 
 namespace regexp {
diff --git a/alib2data/src/factory/StringFactory.cpp b/alib2data/src/factory/StringFactory.cpp
index 97fdc3949d..800d56a656 100644
--- a/alib2data/src/factory/StringFactory.cpp
+++ b/alib2data/src/factory/StringFactory.cpp
@@ -9,7 +9,7 @@
 
 #include "../sax/SaxParseInterface.h"
 #include "../sax/SaxComposeInterface.h"
-#include "../FromXMLParsers.h"
+#include "../FromXMLParsers.hpp"
 #include "../ToXMLComposers.h"
 
 namespace string {
diff --git a/alib2data/src/factory/SymbolFactory.cpp b/alib2data/src/factory/SymbolFactory.cpp
index ddfe3732b9..42076528cc 100644
--- a/alib2data/src/factory/SymbolFactory.cpp
+++ b/alib2data/src/factory/SymbolFactory.cpp
@@ -9,7 +9,7 @@
 
 #include "../sax/SaxParseInterface.h"
 #include "../sax/SaxComposeInterface.h"
-#include "../FromXMLParsers.h"
+#include "../FromXMLParsers.hpp"
 #include "../ToXMLComposers.h"
 
 namespace alphabet {
diff --git a/alib2data/src/grammar/GrammarFromXMLParser.cpp b/alib2data/src/grammar/GrammarFromXMLParser.cpp
index 547cd3d624..60f3c66e34 100644
--- a/alib2data/src/grammar/GrammarFromXMLParser.cpp
+++ b/alib2data/src/grammar/GrammarFromXMLParser.cpp
@@ -10,7 +10,7 @@
 #include "../sax/ParserException.h"
 #include "../alphabet/LabeledSymbol.h"
 
-#include "../FromXMLParsers.h"
+#include "../FromXMLParsers.hpp"
 
 namespace grammar {
 
diff --git a/alib2data/src/label/LabelFromStringLexer.cpp b/alib2data/src/label/LabelFromStringLexer.cpp
index d7e87c2b6f..e053157bdf 100644
--- a/alib2data/src/label/LabelFromStringLexer.cpp
+++ b/alib2data/src/label/LabelFromStringLexer.cpp
@@ -1,3 +1,10 @@
+/*
+ * LabelFromStringLexer.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #include "LabelFromStringLexer.h"
 
 namespace label {
diff --git a/alib2data/src/label/LabelFromStringLexer.h b/alib2data/src/label/LabelFromStringLexer.h
index 82956cc025..bd816cc2b8 100644
--- a/alib2data/src/label/LabelFromStringLexer.h
+++ b/alib2data/src/label/LabelFromStringLexer.h
@@ -1,3 +1,10 @@
+/*
+ * LabelFromStringLexer.h
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #ifndef LABEL_FROM_STRING_LEXER_H_
 #define LABEL_FROM_STRING_LEXER_H_
 
diff --git a/alib2data/src/label/LabelFromStringParser.cpp b/alib2data/src/label/LabelFromStringParser.cpp
index 9eead1afd8..d2ff97db7c 100644
--- a/alib2data/src/label/LabelFromStringParser.cpp
+++ b/alib2data/src/label/LabelFromStringParser.cpp
@@ -1,3 +1,10 @@
+/*
+ * LabelFromStringParser.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #include "LabelFromStringParser.h"
 #include "../exception/AlibException.h"
 #include "StringLabel.h"
diff --git a/alib2data/src/regexp/RegExpFromStringLexer.cpp b/alib2data/src/regexp/RegExpFromStringLexer.cpp
index edb6b431c4..d81587737b 100644
--- a/alib2data/src/regexp/RegExpFromStringLexer.cpp
+++ b/alib2data/src/regexp/RegExpFromStringLexer.cpp
@@ -1,3 +1,10 @@
+/*
+ * RegExpFromStringLexer.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #include "RegExpFromStringLexer.h"
 
 namespace regexp {
diff --git a/alib2data/src/regexp/RegExpFromStringLexer.h b/alib2data/src/regexp/RegExpFromStringLexer.h
index 411f95ac8c..b2d14f1b39 100644
--- a/alib2data/src/regexp/RegExpFromStringLexer.h
+++ b/alib2data/src/regexp/RegExpFromStringLexer.h
@@ -1,3 +1,10 @@
+/*
+ * RegExpFromStringLexer.h
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #ifndef REG_EXP_FROM_STRING_LEXER_H_
 #define REG_EXP_FROM_STRING_LEXER_H_
 
diff --git a/alib2data/src/regexp/RegExpFromStringParser.cpp b/alib2data/src/regexp/RegExpFromStringParser.cpp
index ddf3bab87b..4a553e9313 100644
--- a/alib2data/src/regexp/RegExpFromStringParser.cpp
+++ b/alib2data/src/regexp/RegExpFromStringParser.cpp
@@ -1,3 +1,10 @@
+/*
+ * RegExpFromStringParser.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #include "RegExpFromStringParser.h"
 #include "../sax/ParserException.h"
 #include "../exception/AlibException.h"
diff --git a/alib2data/src/regexp/RegExpFromXMLParser.cpp b/alib2data/src/regexp/RegExpFromXMLParser.cpp
index cfb0641132..ba81c4e38a 100644
--- a/alib2data/src/regexp/RegExpFromXMLParser.cpp
+++ b/alib2data/src/regexp/RegExpFromXMLParser.cpp
@@ -9,7 +9,7 @@
 #include "../sax/ParserException.h"
 #include "../label/StringLabel.h"
 
-#include "../FromXMLParsers.h"
+#include "../FromXMLParsers.hpp"
 
 namespace regexp {
 
diff --git a/alib2data/src/string/StringFromStringLexer.cpp b/alib2data/src/string/StringFromStringLexer.cpp
index 0d20e3673c..6cc91cda15 100644
--- a/alib2data/src/string/StringFromStringLexer.cpp
+++ b/alib2data/src/string/StringFromStringLexer.cpp
@@ -1,3 +1,10 @@
+/*
+ * StringFromStringLexer.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #include "StringFromStringLexer.h"
 
 namespace string {
diff --git a/alib2data/src/string/StringFromStringLexer.h b/alib2data/src/string/StringFromStringLexer.h
index ef501e38bd..a3973e4fd4 100644
--- a/alib2data/src/string/StringFromStringLexer.h
+++ b/alib2data/src/string/StringFromStringLexer.h
@@ -1,3 +1,10 @@
+/*
+ * StringFromStringLexer.h
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #ifndef STRING_FROM_STRING_LEXER_H_
 #define STRING_FROM_STRING_LEXER_H_
 
diff --git a/alib2data/src/string/StringFromStringParser.cpp b/alib2data/src/string/StringFromStringParser.cpp
index 5906a3608f..208e7f3a47 100644
--- a/alib2data/src/string/StringFromStringParser.cpp
+++ b/alib2data/src/string/StringFromStringParser.cpp
@@ -1,3 +1,10 @@
+/*
+ * StringFromStringParser.cpp
+ *
+ *  Created on: Nov 23, 2013
+ *      Author: Jan Travnicek
+ */
+
 #include "StringFromStringParser.h"
 #include "../exception/AlibException.h"
 #include "Epsilon.h"
diff --git a/alib2data/src/string/StringFromXMLParser.cpp b/alib2data/src/string/StringFromXMLParser.cpp
index 529c4e37b2..7ecbcb6eef 100644
--- a/alib2data/src/string/StringFromXMLParser.cpp
+++ b/alib2data/src/string/StringFromXMLParser.cpp
@@ -11,7 +11,7 @@
 #include "LinearString.h"
 #include "CyclicString.h"
 
-#include "../FromXMLParsers.h"
+#include "../FromXMLParsers.hpp"
 
 namespace string {
 
-- 
GitLab