diff --git a/aconversions/src/re2fa/Brzozowski.cpp b/aconversions/src/re2fa/Brzozowski.cpp index 1ba137b7ff542b05b630cc17790e4a6589947bb5..ef5d6e34ccb034898271cd02537d18aca5c00e66 100644 --- a/aconversions/src/re2fa/Brzozowski.cpp +++ b/aconversions/src/re2fa/Brzozowski.cpp @@ -36,7 +36,7 @@ FSM Brzozowski::convert( void ) for( const auto & symbol : alphabet ) { - list<RegExpElement*> dString( 1, new RegExpSymbol( symbol.getSymbol( ) ) ); + list<RegExpElement*> dString( 1, new RegExpSymbol( symbol.getSymbol( ). getSymbol( ) ) ); RegExp derived = deriv.derivation( dString ); derived.setRegExp ( opt.optimize( derived.getRegExp( ) ) ); diff --git a/alib/src/regexp/RegExpPrinter.cpp b/alib/src/regexp/RegExpPrinter.cpp index 223ab546911f2e457c2a9f3558d7cc2da972c8b3..bd8371e3c70528854ab28b381dbf2318151077d6 100644 --- a/alib/src/regexp/RegExpPrinter.cpp +++ b/alib/src/regexp/RegExpPrinter.cpp @@ -83,7 +83,7 @@ void RegExpPrinter::printIteration(Iteration* iteration, ostream& out, string pr void RegExpPrinter::printSymbol(RegExpSymbol* symbol, ostream& out, string prefix) { out << prefix << "<symbol>"; - out << symbol->getSymbol(); + out << symbol->getSymbol().getSymbol(); out << "</symbol>\n"; } diff --git a/alib/src/regexp/RegExpSymbol.cpp b/alib/src/regexp/RegExpSymbol.cpp index 1ecb2bcf901c5a45582414d6af11b56003c92833..6c017bba1bc404c7afce72227478abf72b5d023a 100644 --- a/alib/src/regexp/RegExpSymbol.cpp +++ b/alib/src/regexp/RegExpSymbol.cpp @@ -10,15 +10,15 @@ namespace regexp { RegExpSymbol::RegExpSymbol() : - Symbol("") { + symbol("") { } RegExpSymbol::RegExpSymbol(const string& symbol) : - Symbol(symbol) { + symbol(symbol) { } RegExpElement* RegExpSymbol::clone() const { - return new RegExpSymbol(this->symbol); + return new RegExpSymbol(this->symbol.getSymbol()); } bool RegExpSymbol::operator<(const RegExpElement& other) const { @@ -70,5 +70,9 @@ bool RegExpSymbol::containsEmptyString() const { return false; } +const Symbol& RegExpSymbol::getSymbol() const { + return this->symbol; +} + } /* namespace regexp */ diff --git a/alib/src/regexp/RegExpSymbol.h b/alib/src/regexp/RegExpSymbol.h index 1b7b4982b145d8c4ee89870ee2f0210e91074157..6ea3028565bb4f5806f4a66007d441dfbd04d07d 100644 --- a/alib/src/regexp/RegExpSymbol.h +++ b/alib/src/regexp/RegExpSymbol.h @@ -20,7 +20,8 @@ using namespace alphabet; /** * Represents symbol in the regular expression. Contains name of the symbol. */ -class RegExpSymbol: public RegExpElement, public Symbol { +class RegExpSymbol: public RegExpElement { + Symbol symbol; public: RegExpSymbol(); RegExpSymbol(const string& symbol); @@ -48,6 +49,8 @@ public: * @copydoc RegExpElement::containsEmptyString() const */ bool containsEmptyString() const; + + const Symbol& getSymbol() const; }; } /* namespace regexp */ diff --git a/libaderivation/src/RegExpDerivation.cpp b/libaderivation/src/RegExpDerivation.cpp index d78f6f7101a5efe898a4d464c2828596915d6fcd..5c0c8314f455fa85e25be563d8e2df53a5098805 100644 --- a/libaderivation/src/RegExpDerivation.cpp +++ b/libaderivation/src/RegExpDerivation.cpp @@ -106,7 +106,7 @@ RegExpElement * RegExpDerivation::derivation( Iteration * element, const RegExpS RegExpElement * RegExpDerivation::derivation( RegExpSymbol * element, const RegExpSymbol & dSymbol ) const { - if( dSymbol == element->getSymbol( ) ) + if( dSymbol == element->getSymbol( ).getSymbol( ) ) return new RegExpEpsilon( ); else return new RegExpEmpty( ); diff --git a/libaregexptree/src/RegExpAlphabet.cpp b/libaregexptree/src/RegExpAlphabet.cpp index d39a7183fa6682d5c21a19f82b1acff33c21b5ce..e2e7c44dc54750a2dc828628ec95093869ffeb46 100644 --- a/libaregexptree/src/RegExpAlphabet.cpp +++ b/libaregexptree/src/RegExpAlphabet.cpp @@ -10,7 +10,7 @@ set<RegExpSymbol> RegExpAlphabet::getSymbols( const RegExp & re ) set<RegExpSymbol> alphabet; for( const auto & symbol : getSymbolsListInOrder( re ) ) - alphabet.insert( RegExpSymbol( symbol->getSymbol( ) ) ); + alphabet.insert( RegExpSymbol( symbol->getSymbol( ).getSymbol( ) ) ); return alphabet; }