From 2ec68340d2812e4c5701fd504f495a248f964b96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Pecka?= <peckato1@fit.cvut.cz> Date: Tue, 16 Sep 2014 22:32:00 +0200 Subject: [PATCH] algo: conversions: Rename classes. 1st part --- aconversions2/src/ConversionHandler.cpp | 26 ++++++------ ...{BrzozowskiAlgebraic.cpp => Algebraic.cpp} | 10 ++--- .../{BrzozowskiAlgebraic.h => Algebraic.h} | 10 ++--- ...rzozowski.cpp => BrzozowskiDerivation.cpp} | 16 +++---- .../{Brzozowski.h => BrzozowskiDerivation.h} | 18 ++++---- .../re2fa/{Glushkov.cpp => GlushkovNFA.cpp} | 19 ++++----- .../re2fa/{Glushkov.h => GlushkovNFA.h} | 15 ++++--- ...vationRRG.cpp => BrzozowskiDerivation.cpp} | 14 +++---- ...DerivationRRG.h => BrzozowskiDerivation.h} | 16 +++---- .../{GlushkovRRG.cpp => GlushkovNFA.cpp} | 18 ++++---- .../re2rrg/{GlushkovRRG.h => GlushkovNFA.h} | 12 +++--- .../{RGtoREAlgebraic.cpp => Algebraic.cpp} | 42 +++++++++---------- .../rg2re/{RGtoREAlgebraic.h => Algebraic.h} | 12 +++--- .../test-src/conversions/re2fa/re2faTest.cpp | 20 ++++----- 14 files changed, 123 insertions(+), 125 deletions(-) rename alib2algo/src/conversions/fa2re/{BrzozowskiAlgebraic.cpp => Algebraic.cpp} (91%) rename alib2algo/src/conversions/fa2re/{BrzozowskiAlgebraic.h => Algebraic.h} (85%) rename alib2algo/src/conversions/re2fa/{Brzozowski.cpp => BrzozowskiDerivation.cpp} (88%) rename alib2algo/src/conversions/re2fa/{Brzozowski.h => BrzozowskiDerivation.h} (64%) rename alib2algo/src/conversions/re2fa/{Glushkov.cpp => GlushkovNFA.cpp} (85%) rename alib2algo/src/conversions/re2fa/{Glushkov.h => GlushkovNFA.h} (85%) rename alib2algo/src/conversions/re2rg/re2rrg/{BrzozowskiDerivationRRG.cpp => BrzozowskiDerivation.cpp} (89%) rename alib2algo/src/conversions/re2rg/re2rrg/{BrzozowskiDerivationRRG.h => BrzozowskiDerivation.h} (69%) rename alib2algo/src/conversions/re2rg/re2rrg/{GlushkovRRG.cpp => GlushkovNFA.cpp} (86%) rename alib2algo/src/conversions/re2rg/re2rrg/{GlushkovRRG.h => GlushkovNFA.h} (81%) rename alib2algo/src/conversions/rg2re/{RGtoREAlgebraic.cpp => Algebraic.cpp} (72%) rename alib2algo/src/conversions/rg2re/{RGtoREAlgebraic.h => Algebraic.h} (86%) diff --git a/aconversions2/src/ConversionHandler.cpp b/aconversions2/src/ConversionHandler.cpp index 43ab1cc0b5..2b6e790d95 100644 --- a/aconversions2/src/ConversionHandler.cpp +++ b/aconversions2/src/ConversionHandler.cpp @@ -9,21 +9,21 @@ #include "conversions/fa2re/unbounded/StateEliminationUnbounded.h" #include "conversions/fa2re/formal/StateEliminationFormal.h" -#include "conversions/fa2re/BrzozowskiAlgebraic.h" +#include "conversions/fa2re/Algebraic.h" -#include "conversions/re2fa/Glushkov.h" +#include "conversions/re2fa/GlushkovNFA.h" #include "conversions/re2fa/Thompson.h" -#include "conversions/re2fa/Brzozowski.h" +#include "conversions/re2fa/BrzozowskiDerivation.h" #include "conversions/fa2rg/fa2lrg/FAtoLRGConverter.h" #include "conversions/fa2rg/fa2rrg/FAtoRRGConverter.h" #include "conversions/rg2fa/RGtoFA.h" -#include "conversions/rg2re/RGtoREAlgebraic.h" +#include "conversions/rg2re/Algebraic.h" -#include "conversions/re2rg/re2rrg/GlushkovRRG.h" -#include "conversions/re2rg/re2rrg/BrzozowskiDerivationRRG.h" +#include "conversions/re2rg/re2rrg/GlushkovNFA.h" +#include "conversions/re2rg/re2rrg/BrzozowskiDerivation.h" #include "conversions/rg2rg/lrg2rrg/LeftToRightRegularGrammar.h" #include "conversions/rg2rg/rrg2lrg/RightToLeftRegularGrammar.h" @@ -138,11 +138,11 @@ void ConversionHandler::convertFSMtoREU( void ) std::string xmlMark = m_tokens.front( ).getData( ); if( xmlMark == "NFA") { const automaton::NFA fsm = alib::DataFactory::fromTokens<automaton::NFA>( m_tokens ); - regexp::UnboundedRegExp re = conversions::fa2re::BrzozowskiAlgebraic::convert( fsm ); + regexp::UnboundedRegExp re = conversions::fa2re::Algebraic::convert( fsm ); alib::DataFactory::toStdout(re); } else if( xmlMark == "DFA") { const automaton::DFA fsm = alib::DataFactory::fromTokens<automaton::DFA>( m_tokens ); - regexp::UnboundedRegExp re = conversions::fa2re::BrzozowskiAlgebraic::convert( fsm ); + regexp::UnboundedRegExp re = conversions::fa2re::Algebraic::convert( fsm ); alib::DataFactory::toStdout(re); } else { throw exception::AlibException("Unrecognised formalism"); @@ -204,7 +204,7 @@ void ConversionHandler::convertREtoFSM( void ) switch( m_algorithm ) { case BRZOZOWSKI_DERIVATION: { - conversions::re2fa::Brzozowski conv; + conversions::re2fa::BrzozowskiDerivation conv; alib::DataFactory::toStdout(conv.convert(regexp)); break; } @@ -215,7 +215,7 @@ void ConversionHandler::convertREtoFSM( void ) } case GLUSHKOV_NFA: default: { - conversions::re2fa::Glushkov conv; + conversions::re2fa::GlushkovNFA conv; alib::DataFactory::toStdout(conv.convert(regexp)); break; } @@ -239,12 +239,12 @@ void ConversionHandler::convertREtoRRG( void ) switch(m_algorithm) { case BRZOZOWSKI_DERIVATION: { - conversions::re2rg::BrzozowskiDerivationRRG conv; + conversions::re2rg::BrzozowskiDerivation conv; alib::DataFactory::toStdout(conv.convert(regexp)); break; } default: { - alib::DataFactory::toStdout(conversions::re2rg::GlushkovRRG::convert(regexp)); + alib::DataFactory::toStdout(conversions::re2rg::GlushkovNFA::convert(regexp)); break; } } @@ -280,7 +280,7 @@ void ConversionHandler::convertRGtoRE( void ) { case BRZOZOWSKI_ALGEBRAIC: default: - alib::DataFactory::toStdout(conversions::rg2re::RGtoREAlgebraic::convert(grammar)); + alib::DataFactory::toStdout(conversions::rg2re::Algebraic::convert(grammar)); break; } } diff --git a/alib2algo/src/conversions/fa2re/BrzozowskiAlgebraic.cpp b/alib2algo/src/conversions/fa2re/Algebraic.cpp similarity index 91% rename from alib2algo/src/conversions/fa2re/BrzozowskiAlgebraic.cpp rename to alib2algo/src/conversions/fa2re/Algebraic.cpp index 19093a3ed8..16f1492fb3 100644 --- a/alib2algo/src/conversions/fa2re/BrzozowskiAlgebraic.cpp +++ b/alib2algo/src/conversions/fa2re/Algebraic.cpp @@ -1,11 +1,11 @@ /* - * BrzozowskiAlgebraic.cpp + * Algebraic.cpp * * Created on: 11. 2. 2014 * Author: Tomas Pecka */ -#include "BrzozowskiAlgebraic.h" +#include "Algebraic.h" #include "alphabet/Symbol.h" #include "automaton/FSM/DFA.h" #include "automaton/FSM/NFA.h" @@ -17,7 +17,7 @@ namespace conversions namespace fa2re { template<> -regexp::UnboundedRegExp BrzozowskiAlgebraic::convert( const automaton::EpsilonNFA & automaton ) { +regexp::UnboundedRegExp Algebraic::convert( const automaton::EpsilonNFA & automaton ) { equations::RightRegularEquationSolver solver; // initialize equations @@ -53,7 +53,7 @@ regexp::UnboundedRegExp BrzozowskiAlgebraic::convert( const automaton::EpsilonNF } template<> -regexp::UnboundedRegExp BrzozowskiAlgebraic::convert( const automaton::NFA & automaton ) { +regexp::UnboundedRegExp Algebraic::convert( const automaton::NFA & automaton ) { equations::RightRegularEquationSolver solver; // initialize equations @@ -83,7 +83,7 @@ regexp::UnboundedRegExp BrzozowskiAlgebraic::convert( const automaton::NFA & aut } template<> -regexp::UnboundedRegExp BrzozowskiAlgebraic::convert( const automaton::DFA & automaton ) { +regexp::UnboundedRegExp Algebraic::convert( const automaton::DFA & automaton ) { equations::RightRegularEquationSolver solver; // initialize equations diff --git a/alib2algo/src/conversions/fa2re/BrzozowskiAlgebraic.h b/alib2algo/src/conversions/fa2re/Algebraic.h similarity index 85% rename from alib2algo/src/conversions/fa2re/BrzozowskiAlgebraic.h rename to alib2algo/src/conversions/fa2re/Algebraic.h index bc6f21919c..55dbaca7de 100644 --- a/alib2algo/src/conversions/fa2re/BrzozowskiAlgebraic.h +++ b/alib2algo/src/conversions/fa2re/Algebraic.h @@ -1,12 +1,12 @@ /* - * BrzozowskiAlgebraic.h + * Algebraic.h * * Created on: 11. 2. 2014 * Author: Tomas Pecka */ -#ifndef BRZOZOWSKIALGEBRAIC_H_ -#define BRZOZOWSKIALGEBRAIC_H_ +#ifndef FA2RE_ALGEBRAIC_H_ +#define FA2RE_ALGEBRAIC_H_ #include <deque> #include <map> @@ -30,7 +30,7 @@ namespace fa2re * Converts FA to RE using Brzozowski's algebraic method using right regular equations. * Source : Melichar 2.122 */ -class BrzozowskiAlgebraic +class Algebraic { public: /** @@ -45,4 +45,4 @@ public: } /* namespace conversions */ -#endif /* BRZOZOWSKIALGEBRAIC_H_ */ +#endif /* FA2RE_ALGEBRAIC_H_ */ diff --git a/alib2algo/src/conversions/re2fa/Brzozowski.cpp b/alib2algo/src/conversions/re2fa/BrzozowskiDerivation.cpp similarity index 88% rename from alib2algo/src/conversions/re2fa/Brzozowski.cpp rename to alib2algo/src/conversions/re2fa/BrzozowskiDerivation.cpp index b64f806399..961418bfa9 100644 --- a/alib2algo/src/conversions/re2fa/Brzozowski.cpp +++ b/alib2algo/src/conversions/re2fa/BrzozowskiDerivation.cpp @@ -1,11 +1,11 @@ /* - * Brzozowski.cpp + * BrzozowskiDerivation.cpp * * Created on: 11. 1. 2014 - * Author: tomas + * Author: Tomas Pecka */ -#include "Brzozowski.h" +#include "BrzozowskiDerivation.h" #include <set> #include <deque> @@ -25,24 +25,24 @@ namespace conversions namespace re2fa { -Brzozowski::Brzozowski(void){} -Brzozowski::~Brzozowski(void){} +BrzozowskiDerivation::BrzozowskiDerivation(void){} +BrzozowskiDerivation::~BrzozowskiDerivation(void){} -void Brzozowski::Visit(void* userData, const regexp::FormalRegExp& regexp) +void BrzozowskiDerivation::Visit(void* userData, const regexp::FormalRegExp& regexp) { std::pair<std::set<alphabet::Symbol>, bool>& out = *(std::pair<std::set<alphabet::Symbol>, bool>*) userData; out.first = regexp.getAlphabet(); out.second = regexp.containsEmptyString(); } -void Brzozowski::Visit(void* userData, const regexp::UnboundedRegExp& regexp) +void BrzozowskiDerivation::Visit(void* userData, const regexp::UnboundedRegExp& regexp) { std::pair<std::set<alphabet::Symbol>, bool>& out = *(std::pair<std::set<alphabet::Symbol>, bool>*) userData; out.first = regexp.getAlphabet(); out.second = regexp.containsEmptyString(); } -automaton::DFA Brzozowski::convert(const regexp::RegExp& regexp) +automaton::DFA BrzozowskiDerivation::convert(const regexp::RegExp& regexp) { // 1. regexp::RegExpOptimize opt; diff --git a/alib2algo/src/conversions/re2fa/Brzozowski.h b/alib2algo/src/conversions/re2fa/BrzozowskiDerivation.h similarity index 64% rename from alib2algo/src/conversions/re2fa/Brzozowski.h rename to alib2algo/src/conversions/re2fa/BrzozowskiDerivation.h index 0d7e0d197c..4344d29578 100644 --- a/alib2algo/src/conversions/re2fa/Brzozowski.h +++ b/alib2algo/src/conversions/re2fa/BrzozowskiDerivation.h @@ -1,12 +1,12 @@ /* - * Brzozowski.h + * BrzozowskiDerivation.h * * Created on: 11. 1. 2014 - * Author: tomas + * Author: Tomas Pecka */ -#ifndef BRZOZOWSKI_H_ -#define BRZOZOWSKI_H_ +#ifndef RE2FA_BRZOZOWSKIDERIVATION_H_ +#define RE2FA_BRZOZOWSKIDERIVATION_H_ #include <regexp/RegExp.h> #include <regexp/formal/FormalRegExp.h> @@ -20,14 +20,14 @@ namespace re2fa { /** - * Converts regular expression to finite automaton using Brzozowski algorithm (derivations of regular expressions). + * Converts regular expression to finite automaton using BrzozowskiDerivation algorithm (derivations of regular expressions). * Source: Melichar 2.110 */ -class Brzozowski : public regexp::VisitableRegExpBase::visitor_type +class BrzozowskiDerivation : public regexp::VisitableRegExpBase::visitor_type { public: - Brzozowski(void); - ~Brzozowski(void); + BrzozowskiDerivation(void); + ~BrzozowskiDerivation(void); /** * Performs conversion. @@ -44,4 +44,4 @@ private: } /* namespace conversions */ -#endif /* BRZOZOWSKI_H_ */ +#endif /* RE2FA_BRZOZOWSKIDERIVATION_H_ */ diff --git a/alib2algo/src/conversions/re2fa/Glushkov.cpp b/alib2algo/src/conversions/re2fa/GlushkovNFA.cpp similarity index 85% rename from alib2algo/src/conversions/re2fa/Glushkov.cpp rename to alib2algo/src/conversions/re2fa/GlushkovNFA.cpp index d19623afe1..076a7fa305 100644 --- a/alib2algo/src/conversions/re2fa/Glushkov.cpp +++ b/alib2algo/src/conversions/re2fa/GlushkovNFA.cpp @@ -1,38 +1,37 @@ /* - * Glushkov.cpp + * GlushkovNFA.cpp * * Created on: 11. 1. 2014 * Author: Tomas Pecka */ -#include "Glushkov.h" +#include "GlushkovNFA.h" #include "label/Label.h" #include "label/StringLabel.h" #include "label/CharacterLabel.h" #include "label/IntegerLabel.h" #include "label/LabelPairLabel.h" -namespace conversions -{ +namespace conversions{ namespace re2fa { -automaton::NFA Glushkov::convert(const regexp::RegExp& regexp) { +automaton::NFA GlushkovNFA::convert(const regexp::RegExp& regexp) { automaton::NFA out; regexp.getData().Accept((void*) &out, *this); return out; } -void Glushkov::Visit(void* userData, const regexp::FormalRegExp& regexp) { +void GlushkovNFA::Visit(void* userData, const regexp::FormalRegExp& regexp) { automaton::NFA& out = *(automaton::NFA*) userData; out = this->convert(regexp); } -void Glushkov::Visit(void* userData, const regexp::UnboundedRegExp& regexp) { +void GlushkovNFA::Visit(void* userData, const regexp::UnboundedRegExp& regexp) { automaton::NFA& out = *(automaton::NFA*) userData; out = this->convert(regexp); } -automaton::NFA Glushkov::convert( const regexp::UnboundedRegExp & re ) { +automaton::NFA GlushkovNFA::convert( const regexp::UnboundedRegExp & re ) { automaton::NFA automaton; // step 1 @@ -87,10 +86,10 @@ automaton::NFA Glushkov::convert( const regexp::UnboundedRegExp & re ) { return automaton; } -automaton::NFA Glushkov::convert( const regexp::FormalRegExp & re ) { +automaton::NFA GlushkovNFA::convert( const regexp::FormalRegExp & re ) { throw exception::AlibException("Unimplemented"); } -} /* namespace conversions */ +} /* namespace fa2re */ } /* namespace conversions */ diff --git a/alib2algo/src/conversions/re2fa/Glushkov.h b/alib2algo/src/conversions/re2fa/GlushkovNFA.h similarity index 85% rename from alib2algo/src/conversions/re2fa/Glushkov.h rename to alib2algo/src/conversions/re2fa/GlushkovNFA.h index ff94eeec3e..fa42209388 100644 --- a/alib2algo/src/conversions/re2fa/Glushkov.h +++ b/alib2algo/src/conversions/re2fa/GlushkovNFA.h @@ -1,12 +1,12 @@ /* - * Glushkov.h + * GlushkovNFA.h * * Created on: 11. 1. 2014 * Author: Tomas Pecka */ -#ifndef GLUSHKOV_H_ -#define GLUSHKOV_H_ +#ifndef FA2RE_GLUSHKOVNFA_H_ +#define FA2RE_GLUSHKOVNFA_H_ #include <map> @@ -23,8 +23,7 @@ #include <automaton/FSM/NFA.h> -namespace conversions -{ +namespace conversions { namespace re2fa { @@ -32,7 +31,7 @@ namespace re2fa { * Converts regular expression to finite automaton using Glushkov's NFA construction algorithm. * Source: Melichar 2.107 */ -class Glushkov : public regexp::VisitableRegExpBase::visitor_type { +class GlushkovNFA : public regexp::VisitableRegExpBase::visitor_type { public: /** * Performs conversion. @@ -56,8 +55,8 @@ private: }; -} /* namespace conversions */ +} /* namespace re2fa */ } /* namespace conversions */ -#endif /* GLUSHKOV_H_ */ +#endif /* FA2RE_GLUSHKOV_H_ */ diff --git a/alib2algo/src/conversions/re2rg/re2rrg/BrzozowskiDerivationRRG.cpp b/alib2algo/src/conversions/re2rg/re2rrg/BrzozowskiDerivation.cpp similarity index 89% rename from alib2algo/src/conversions/re2rg/re2rrg/BrzozowskiDerivationRRG.cpp rename to alib2algo/src/conversions/re2rg/re2rrg/BrzozowskiDerivation.cpp index 8fbd0ab7ba..ac979b534a 100644 --- a/alib2algo/src/conversions/re2rg/re2rrg/BrzozowskiDerivationRRG.cpp +++ b/alib2algo/src/conversions/re2rg/re2rrg/BrzozowskiDerivation.cpp @@ -1,11 +1,11 @@ /* - * BrzozowskiDerivationRRG.cpp + * BrzozowskiDerivation.cpp * * Created on: 6. 3. 2014 * Author: tomas */ -#include "BrzozowskiDerivationRRG.h" +#include "BrzozowskiDerivation.h" #include <set> #include <deque> @@ -24,24 +24,24 @@ namespace conversions namespace re2rg { -BrzozowskiDerivationRRG::BrzozowskiDerivationRRG(void){} -BrzozowskiDerivationRRG::~BrzozowskiDerivationRRG(void){} +BrzozowskiDerivation::BrzozowskiDerivation(void){} +BrzozowskiDerivation::~BrzozowskiDerivation(void){} -void BrzozowskiDerivationRRG::Visit(void* userData, const regexp::FormalRegExp& regexp) +void BrzozowskiDerivation::Visit(void* userData, const regexp::FormalRegExp& regexp) { std::pair<std::set<alphabet::Symbol>, bool>& out = *(std::pair<std::set<alphabet::Symbol>, bool>*) userData; out.first = regexp.getAlphabet(); out.second = regexp.containsEmptyString(); } -void BrzozowskiDerivationRRG::Visit(void* userData, const regexp::UnboundedRegExp& regexp) +void BrzozowskiDerivation::Visit(void* userData, const regexp::UnboundedRegExp& regexp) { std::pair<std::set<alphabet::Symbol>, bool>& out = *(std::pair<std::set<alphabet::Symbol>, bool>*) userData; out.first = regexp.getAlphabet(); out.second = regexp.containsEmptyString(); } -grammar::RightRG BrzozowskiDerivationRRG::convert(const regexp::RegExp& regexp) +grammar::RightRG BrzozowskiDerivation::convert(const regexp::RegExp& regexp) { // 1. regexp::RegExpOptimize opt; diff --git a/alib2algo/src/conversions/re2rg/re2rrg/BrzozowskiDerivationRRG.h b/alib2algo/src/conversions/re2rg/re2rrg/BrzozowskiDerivation.h similarity index 69% rename from alib2algo/src/conversions/re2rg/re2rrg/BrzozowskiDerivationRRG.h rename to alib2algo/src/conversions/re2rg/re2rrg/BrzozowskiDerivation.h index 2a3d0df53e..0f6f57897f 100644 --- a/alib2algo/src/conversions/re2rg/re2rrg/BrzozowskiDerivationRRG.h +++ b/alib2algo/src/conversions/re2rg/re2rrg/BrzozowskiDerivation.h @@ -1,12 +1,12 @@ /* - * BrzozowskiDerivationRRG.h + * BrzozowskiDerivation.h * * Created on: 6. 3. 2014 - * Author: tomas + * Author: Tomas Pecka */ -#ifndef BRZOZOWSKIDERIVATIONRRG_H_ -#define BRZOZOWSKIDERIVATIONRRG_H_ +#ifndef RE2RG_BRZOZOWSKIDERIVATION_H_ +#define RE2RG_BRZOZOWSKIDERIVATION_H_ #include <grammar/Regular/RightRG.h> #include <regexp/RegExp.h> @@ -23,11 +23,11 @@ namespace re2rg * Converts reg. expression to right regular grammar using brzozowski derivation algorithm. * Source: Melichar 2.137 */ -class BrzozowskiDerivationRRG : public regexp::VisitableRegExpBase::visitor_type +class BrzozowskiDerivation : public regexp::VisitableRegExpBase::visitor_type { public: - BrzozowskiDerivationRRG(void); - ~BrzozowskiDerivationRRG(void); + BrzozowskiDerivation(void); + ~BrzozowskiDerivation(void); /** * Performs conversion. @@ -44,4 +44,4 @@ private: } /* namespace conversions */ -#endif /* BRZOZOWSKIDERIVATIONRRG_H_ */ +#endif /* RE2RG_BRZOZOWSKIDERIVATION_H_ */ diff --git a/alib2algo/src/conversions/re2rg/re2rrg/GlushkovRRG.cpp b/alib2algo/src/conversions/re2rg/re2rrg/GlushkovNFA.cpp similarity index 86% rename from alib2algo/src/conversions/re2rg/re2rrg/GlushkovRRG.cpp rename to alib2algo/src/conversions/re2rg/re2rrg/GlushkovNFA.cpp index ee659b54ad..7fa60cb636 100644 --- a/alib2algo/src/conversions/re2rg/re2rrg/GlushkovRRG.cpp +++ b/alib2algo/src/conversions/re2rg/re2rrg/GlushkovNFA.cpp @@ -1,11 +1,11 @@ /* - * GlushkovRRG.cpp + * Glushkov.cpp * * Created on: 11. 1. 2014 * Author: Tomas Pecka */ -#include "GlushkovRRG.h" +#include "GlushkovNFA.h" #include <algorithm> @@ -26,16 +26,16 @@ namespace conversions namespace re2rg { -grammar::Grammar GlushkovRRG::convert(const regexp::RegExp& regexp) +grammar::Grammar GlushkovNFA::convert(const regexp::RegExp& regexp) { grammar::Grammar* out = NULL; - regexp.getData().Accept((void*) &out, GlushkovRRG::GLUSHKOV_RRG); + regexp.getData().Accept((void*) &out, GlushkovNFA::GLUSHKOV_NFA); grammar::Grammar res = std::move(*out); delete out; return res; } -grammar::RightRG GlushkovRRG::convert(const regexp::UnboundedRegExp& regexp) +grammar::RightRG GlushkovNFA::convert(const regexp::UnboundedRegExp& regexp) { alphabet::Symbol S(alphabet::LabeledSymbol(label::Label(label::StringLabel("S")))); grammar::RightRG grammar(S); @@ -96,22 +96,22 @@ grammar::RightRG GlushkovRRG::convert(const regexp::UnboundedRegExp& regexp) } -void GlushkovRRG::Visit(void* userData, const regexp::FormalRegExp& regexp) const +void GlushkovNFA::Visit(void* userData, const regexp::FormalRegExp& regexp) const { /* grammar::Grammar* & out = *((grammar::Grammar**) userData); out = new grammar::Grammar(this->convert(regexp)); */ - throw exception::AlibException("GlushkovRRG: Converting FormalRegExp NYI"); // TODO + throw exception::AlibException("Glushkov: Converting FormalRegExp NYI"); // TODO } -void GlushkovRRG::Visit(void* userData, const regexp::UnboundedRegExp& regexp) const +void GlushkovNFA::Visit(void* userData, const regexp::UnboundedRegExp& regexp) const { grammar::Grammar* & out = *((grammar::Grammar**) userData); out = new grammar::Grammar(this->convert(regexp)); } -const GlushkovRRG GlushkovRRG::GLUSHKOV_RRG; +const GlushkovNFA GlushkovNFA::GLUSHKOV_NFA; } /* namespace re2rg */ diff --git a/alib2algo/src/conversions/re2rg/re2rrg/GlushkovRRG.h b/alib2algo/src/conversions/re2rg/re2rrg/GlushkovNFA.h similarity index 81% rename from alib2algo/src/conversions/re2rg/re2rrg/GlushkovRRG.h rename to alib2algo/src/conversions/re2rg/re2rrg/GlushkovNFA.h index 66ef9b7a6f..9d75324ebd 100644 --- a/alib2algo/src/conversions/re2rg/re2rrg/GlushkovRRG.h +++ b/alib2algo/src/conversions/re2rg/re2rrg/GlushkovNFA.h @@ -1,12 +1,12 @@ /* - * GlushkovRRG.h + * Glushkov.h * * Created on: 11. 1. 2014 * Author: Tomas Pecka */ -#ifndef GLUSHKOVRRG_H_ -#define GLUSHKOVRRG_H_ +#ifndef RE2RG_GLUSHKOVNFA_H_ +#define RE2RG_GLUSHKOVNFA_H_ #include <grammar/Grammar.h> #include <grammar/Regular/RightRG.h> @@ -25,7 +25,7 @@ namespace re2rg * Converts regular expression to right regular grammar using Glushkov algorithm. * Source: None yet. */ -class GlushkovRRG : public regexp::VisitableRegExpBase::const_visitor_type +class GlushkovNFA : public regexp::VisitableRegExpBase::const_visitor_type { public: /** @@ -41,11 +41,11 @@ private: void Visit(void*, const regexp::FormalRegExp& regexp) const; void Visit(void*, const regexp::UnboundedRegExp& regexp) const; - static const GlushkovRRG GLUSHKOV_RRG; + static const GlushkovNFA GLUSHKOV_NFA; }; } /* namespace re2rg */ } /* namespace conversions */ -#endif /* GLUSHKOVRRG_H_ */ +#endif /* RE2RG_GLUSHKOVNFA_H_ */ diff --git a/alib2algo/src/conversions/rg2re/RGtoREAlgebraic.cpp b/alib2algo/src/conversions/rg2re/Algebraic.cpp similarity index 72% rename from alib2algo/src/conversions/rg2re/RGtoREAlgebraic.cpp rename to alib2algo/src/conversions/rg2re/Algebraic.cpp index ea82475d2f..36bca86b61 100644 --- a/alib2algo/src/conversions/rg2re/RGtoREAlgebraic.cpp +++ b/alib2algo/src/conversions/rg2re/Algebraic.cpp @@ -1,11 +1,11 @@ /* - * RGtoREAlgebraic.cpp + * Algebraic.cpp * * Created on: 4. 3. 2014 * Author: Tomas Pecka */ -#include "RGtoREAlgebraic.h" +#include "Algebraic.h" #include "../../equations/LeftRegularEquationSolver.h" #include "../../equations/RightRegularEquationSolver.h" @@ -18,16 +18,16 @@ namespace conversions namespace rg2re { -regexp::RegExp RGtoREAlgebraic::convert(const grammar::Grammar& grammar) +regexp::RegExp Algebraic::convert(const grammar::Grammar& grammar) { regexp::RegExp* out = NULL; - grammar.getData().Accept((void*) &out, RGtoREAlgebraic::RG_TO_RE_ALGEBRAIC); + grammar.getData().Accept((void*) &out, Algebraic::RG_TO_RE_ALGEBRAIC); regexp::RegExp res = std::move(*out); delete out; return res; } -regexp::RegExp RGtoREAlgebraic::convert(const grammar::LeftRG& grammar) +regexp::RegExp Algebraic::convert(const grammar::LeftRG& grammar) { equations::LeftRegularEquationSolver solver; @@ -57,7 +57,7 @@ regexp::RegExp RGtoREAlgebraic::convert(const grammar::LeftRG& grammar) return regexp::RegExp{solver.solve(grammar.getInitialSymbol())}; } -regexp::RegExp RGtoREAlgebraic::convert(const grammar::RightRG& grammar) +regexp::RegExp Algebraic::convert(const grammar::RightRG& grammar) { equations::RightRegularEquationSolver solver; @@ -88,79 +88,79 @@ regexp::RegExp RGtoREAlgebraic::convert(const grammar::RightRG& grammar) return regexp::RegExp{solver.solve(grammar.getInitialSymbol())}; } -void RGtoREAlgebraic::Visit(void*, const grammar::UnknownGrammar&) const +void Algebraic::Visit(void*, const grammar::UnknownGrammar&) const { throw exception::AlibException("Unsupported grammar type UnknownGrammar"); } -void RGtoREAlgebraic::Visit(void*, const grammar::ContextPreservingUnrestrictedGrammar&) const +void Algebraic::Visit(void*, const grammar::ContextPreservingUnrestrictedGrammar&) const { throw exception::AlibException("Unsupported grammar type ContextPreservingUnrestrictedGrammar"); } -void RGtoREAlgebraic::Visit(void*, const grammar::UnrestrictedGrammar&) const +void Algebraic::Visit(void*, const grammar::UnrestrictedGrammar&) const { throw exception::AlibException("Unsupported grammar type UnrestrictedGrammar"); } -void RGtoREAlgebraic::Visit(void*, const grammar::CSG&) const +void Algebraic::Visit(void*, const grammar::CSG&) const { throw exception::AlibException("Unsupported grammar type CSG"); } -void RGtoREAlgebraic::Visit(void*, const grammar::NonContractingGrammar&) const +void Algebraic::Visit(void*, const grammar::NonContractingGrammar&) const { throw exception::AlibException("Unsupported grammar type NonContractingGrammar"); } -void RGtoREAlgebraic::Visit(void*, const grammar::CNF&) const +void Algebraic::Visit(void*, const grammar::CNF&) const { throw exception::AlibException("Unsupported grammar type CNF"); } -void RGtoREAlgebraic::Visit(void*, const grammar::CFG&) const +void Algebraic::Visit(void*, const grammar::CFG&) const { throw exception::AlibException("Unsupported grammar type CFG"); } -void RGtoREAlgebraic::Visit(void*, const grammar::EpsilonFreeCFG&) const +void Algebraic::Visit(void*, const grammar::EpsilonFreeCFG&) const { throw exception::AlibException("Unsupported grammar type EpsilonFreeCFG"); } -void RGtoREAlgebraic::Visit(void*, const grammar::GNF&) const +void Algebraic::Visit(void*, const grammar::GNF&) const { throw exception::AlibException("Unsupported grammar type GNF"); } -void RGtoREAlgebraic::Visit(void*, const grammar::LG&) const +void Algebraic::Visit(void*, const grammar::LG&) const { throw exception::AlibException("Unsupported grammar type LG"); } -void RGtoREAlgebraic::Visit(void* userData, const grammar::RightRG& grammar) const +void Algebraic::Visit(void* userData, const grammar::RightRG& grammar) const { regexp::RegExp* & out = *((regexp::RegExp**) userData); out = new regexp::RegExp(this->convert(grammar)); } -void RGtoREAlgebraic::Visit(void* userData, const grammar::LeftRG& grammar) const +void Algebraic::Visit(void* userData, const grammar::LeftRG& grammar) const { regexp::RegExp* & out = *((regexp::RegExp**) userData); out = new regexp::RegExp(this->convert(grammar)); } -void RGtoREAlgebraic::Visit(void*, const grammar::RightLG&) const +void Algebraic::Visit(void*, const grammar::RightLG&) const { throw exception::AlibException("Unsupported grammar type RightLG"); } -void RGtoREAlgebraic::Visit(void*, const grammar::LeftLG&) const +void Algebraic::Visit(void*, const grammar::LeftLG&) const { throw exception::AlibException("Unsupported grammar type LeftLG"); } -const RGtoREAlgebraic RGtoREAlgebraic::RG_TO_RE_ALGEBRAIC; +const Algebraic Algebraic::RG_TO_RE_ALGEBRAIC; } /* namespace rg2re */ diff --git a/alib2algo/src/conversions/rg2re/RGtoREAlgebraic.h b/alib2algo/src/conversions/rg2re/Algebraic.h similarity index 86% rename from alib2algo/src/conversions/rg2re/RGtoREAlgebraic.h rename to alib2algo/src/conversions/rg2re/Algebraic.h index ebe15dd73f..83cd032797 100644 --- a/alib2algo/src/conversions/rg2re/RGtoREAlgebraic.h +++ b/alib2algo/src/conversions/rg2re/Algebraic.h @@ -1,12 +1,12 @@ /* - * RGtoREAlgebraic.h + * Algebraic.h * * Created on: 4. 3. 2014 * Author: Tomas Pecka */ -#ifndef RGTOREALGEBRAIC_H_ -#define RGTOREALGEBRAIC_H_ +#ifndef RG2RE_ALGEBRAIC_H_ +#define RG2RE_ALGEBRAIC_H_ #include <grammar/Grammar.h> #include <grammar/Regular/RightRG.h> @@ -20,7 +20,7 @@ namespace conversions namespace rg2re { -class RGtoREAlgebraic : public grammar::VisitableGrammarBase::const_visitor_type +class Algebraic : public grammar::VisitableGrammarBase::const_visitor_type { public: /** @@ -52,11 +52,11 @@ protected: void Visit(void*, const grammar::RightLG& grammar) const; void Visit(void*, const grammar::LeftLG& grammar) const; - static const RGtoREAlgebraic RG_TO_RE_ALGEBRAIC; + static const Algebraic RG_TO_RE_ALGEBRAIC; }; } /* namespace rg2re */ } /* namespace conversions */ -#endif /* RGTOREALGEBRAIC_H_ */ +#endif /* RG2RE_ALGEBRAIC_H_ */ diff --git a/alib2algo/test-src/conversions/re2fa/re2faTest.cpp b/alib2algo/test-src/conversions/re2fa/re2faTest.cpp index 67a85f2881..66743585bb 100644 --- a/alib2algo/test-src/conversions/re2fa/re2faTest.cpp +++ b/alib2algo/test-src/conversions/re2fa/re2faTest.cpp @@ -1,10 +1,10 @@ #include <list> #include "re2faTest.h" -#include "conversions/re2fa/Brzozowski.h" -#include "conversions/re2fa/Glushkov.h" +#include "conversions/re2fa/BrzozowskiDerivation.h" +#include "conversions/re2fa/GlushkovNFA.h" #include "conversions/re2fa/Thompson.h" -#include "conversions/fa2re/BrzozowskiAlgebraic.h" +#include "conversions/fa2re/Algebraic.h" #include "determinize/nfa/NFADeterminizer.h" #include "minimize/dfa/MinimizeDFA.h" #include "epsilon/fsm/FSMEpsilonRemover.h" @@ -32,7 +32,7 @@ void re2faTest::testThompson() { conversions::re2fa::Thompson thompson1; automaton::EpsilonNFA enfa1 = thompson1.convert(regexp1); - regexp::RegExp regexp2( conversions::fa2re::BrzozowskiAlgebraic::convert(enfa1) ); + regexp::RegExp regexp2( conversions::fa2re::Algebraic::convert(enfa1) ); conversions::re2fa::Thompson thompson2; automaton::EpsilonNFA enfa2 = thompson2.convert(regexp2); @@ -56,12 +56,12 @@ void re2faTest::testGlushkov() { regexp::RegExpFromStringParser parser(inputs); regexp::UnboundedRegExp regexp1( static_cast<const regexp::UnboundedRegExp &>( parser.parseValue().getData() ) ); - conversions::re2fa::Glushkov glushkov1; + conversions::re2fa::GlushkovNFA glushkov1; automaton::NFA nfa1 = glushkov1.convert(regexp1); - regexp::UnboundedRegExp regexp2( static_cast<const regexp::UnboundedRegExp &>( conversions::fa2re::BrzozowskiAlgebraic::convert(nfa1) ) ); + regexp::UnboundedRegExp regexp2( static_cast<const regexp::UnboundedRegExp &>( conversions::fa2re::Algebraic::convert(nfa1) ) ); - conversions::re2fa::Glushkov glushkov2; + conversions::re2fa::GlushkovNFA glushkov2; automaton::NFA nfa2 = glushkov2.convert(regexp2); automaton::DFA dfa1 = determinize::NFADeterminizer::determinize(nfa1); @@ -80,12 +80,12 @@ void re2faTest::testBrzozowski() { regexp::RegExpFromStringParser parser(inputs); regexp::RegExp regexp1( parser.parseValue() ); - conversions::re2fa::Brzozowski brzozowski1; + conversions::re2fa::BrzozowskiDerivation brzozowski1; automaton::DFA dfa1 = brzozowski1.convert(regexp1); - regexp::RegExp regexp2( conversions::fa2re::BrzozowskiAlgebraic::convert(dfa1) ); + regexp::RegExp regexp2( conversions::fa2re::Algebraic::convert(dfa1) ); - conversions::re2fa::Brzozowski brzozowski2; + conversions::re2fa::BrzozowskiDerivation brzozowski2; automaton::DFA dfa2 = brzozowski2.convert(regexp2); automaton::DFA mdfa1 = minimize::MinimizeDFA::minimize(dfa1); -- GitLab