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