From fa3a6c8d3a0ee2346cbbf655715ce151d876f0a3 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Fri, 5 Sep 2014 14:45:09 +0200
Subject: [PATCH] fix unbounded regexp parser

---
 aconversions2/src/ConversionHandler.cpp      |  2 +-
 aconversions2/src/aconversion.cpp            |  1 +
 alib2data/src/regexp/RegExpFromXMLParser.cpp | 18 ------------------
 3 files changed, 2 insertions(+), 19 deletions(-)

diff --git a/aconversions2/src/ConversionHandler.cpp b/aconversions2/src/ConversionHandler.cpp
index 15e4ca19f7..151baa083d 100644
--- a/aconversions2/src/ConversionHandler.cpp
+++ b/aconversions2/src/ConversionHandler.cpp
@@ -363,7 +363,7 @@ ConversionHandler::TFormalism ConversionHandler::parseFormalismFromTokens( void
 {
 	std::string xmlMark = m_tokens.front( ).getData( );
 
-	if( xmlMark == "automaton" || xmlMark == "nfa" )
+	if( xmlMark == "automaton" || xmlMark == "NFA" )
 		return FINITE_AUTOMATON;
 
 	if( xmlMark == "regexp" || xmlMark == "unboundedRegexp" )
diff --git a/aconversions2/src/aconversion.cpp b/aconversions2/src/aconversion.cpp
index cdbd16ccab..83fffdcb4a 100644
--- a/aconversions2/src/aconversion.cpp
+++ b/aconversions2/src/aconversion.cpp
@@ -131,6 +131,7 @@ int main(int argc, char* argv[])
 	}
 	catch( const exception::AlibException & exception ) {
 		alib::DataFactory::toStdout(exception);
+		std::cout << exception << std::endl;
 		return 1;
 	} catch (...) {
 		return 127;
diff --git a/alib2data/src/regexp/RegExpFromXMLParser.cpp b/alib2data/src/regexp/RegExpFromXMLParser.cpp
index f5b2072212..7c5922632d 100644
--- a/alib2data/src/regexp/RegExpFromXMLParser.cpp
+++ b/alib2data/src/regexp/RegExpFromXMLParser.cpp
@@ -99,17 +99,8 @@ UnboundedRegExpElement* RegExpFromXMLParser::parseUnboundedRegExpElement(std::li
 UnboundedRegExpAlternation* RegExpFromXMLParser::parseUnboundedRegExpAlternation(std::list<sax::Token>& input) const {
 	popToken(input, sax::Token::TokenType::START_ELEMENT, "alternation");
 
-	UnboundedRegExpElement* element1 = parseUnboundedRegExpElement(input);
-	UnboundedRegExpElement* element2 = parseUnboundedRegExpElement(input);
-	
 	UnboundedRegExpAlternation* alternation = new UnboundedRegExpAlternation();
 
-	alternation->appendElement(std::move(*element1));
-	alternation->appendElement(std::move(*element2));
-
-	delete element1;
-	delete element2;
-	
 	while (isTokenType(input, sax::Token::TokenType::START_ELEMENT)) {
 		UnboundedRegExpElement* element = parseUnboundedRegExpElement(input);
 		alternation->appendElement(std::move(*element));
@@ -123,17 +114,8 @@ UnboundedRegExpAlternation* RegExpFromXMLParser::parseUnboundedRegExpAlternation
 UnboundedRegExpConcatenation* RegExpFromXMLParser::parseUnboundedRegExpConcatenation(std::list<sax::Token>& input) const {
 	popToken(input, sax::Token::TokenType::START_ELEMENT, "concatenation");
 
-	UnboundedRegExpElement* element1 = parseUnboundedRegExpElement(input);
-	UnboundedRegExpElement* element2 = parseUnboundedRegExpElement(input);
-	
 	UnboundedRegExpConcatenation* concatenation = new UnboundedRegExpConcatenation();
 
-	concatenation->appendElement(std::move(*element1));
-	concatenation->appendElement(std::move(*element2));
-
-	delete element1;
-	delete element2;
-	
 	while (isTokenType(input, sax::Token::TokenType::START_ELEMENT)) {
 		UnboundedRegExpElement* element = parseUnboundedRegExpElement(input);
 		concatenation->appendElement(std::move(*element));
-- 
GitLab