From aed00fee172e91d799e6495313bf51323dcccb8c Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Tue, 3 Jun 2014 23:04:10 +0200
Subject: [PATCH] fix ordering of regexps

---
 alib2/src/regexp/RegExp.cpp        |  3 ++-
 alib2/src/regexp/RegExpElement.cpp | 12 ++++++------
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/alib2/src/regexp/RegExp.cpp b/alib2/src/regexp/RegExp.cpp
index fdf2120775..03a7d26fb5 100644
--- a/alib2/src/regexp/RegExp.cpp
+++ b/alib2/src/regexp/RegExp.cpp
@@ -135,9 +135,10 @@ std::ostream& operator <<(std::ostream& out, const RegExp& regExp) {
 }
 
 bool RegExp::operator<(const RegExp& other) const {
-	if(*this == other) return false;
 	if(*(this->regExp) < *(other.regExp)) {
 	  return true;
+	} else if(*(this->regExp) > *(other.regExp)) {
+	  return false;
 	} else {
 	  return this->alphabet < other.alphabet;
 	}
diff --git a/alib2/src/regexp/RegExpElement.cpp b/alib2/src/regexp/RegExpElement.cpp
index ba1181b651..bb653bce5b 100644
--- a/alib2/src/regexp/RegExpElement.cpp
+++ b/alib2/src/regexp/RegExpElement.cpp
@@ -34,27 +34,27 @@ bool RegExpElement::operator!=(const RegExpElement& other) const {
 
 
 bool RegExpElement::operator<(const Concatenation& other) const {
-	return typeid(this).before(typeid(other));
+	return typeid(*this).before(typeid(other));
 }
 
 bool RegExpElement::operator<(const Alternation& other) const {
-	return typeid(this).before(typeid(other));
+	return typeid(*this).before(typeid(other));
 }
 
 bool RegExpElement::operator<(const Iteration& other) const {
-	return typeid(this).before(typeid(other));
+	return typeid(*this).before(typeid(other));
 }
 
 bool RegExpElement::operator<(const RegExpSymbol& other) const {
-	return typeid(this).before(typeid(other));
+	return typeid(*this).before(typeid(other));
 }
 
 bool RegExpElement::operator<(const RegExpEpsilon& other) const {
-	return typeid(this).before(typeid(other));
+	return typeid(*this).before(typeid(other));
 }
 
 bool RegExpElement::operator<(const RegExpEmpty& other) const {
-	return typeid(this).before(typeid(other));
+	return typeid(*this).before(typeid(other));
 }
 
 
-- 
GitLab