From 3312941951aeef4cc2df910542441f3e4f782a02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Pecka?= <peckato1@fit.cvut.cz> Date: Sat, 19 Apr 2014 20:48:42 +0200 Subject: [PATCH] aconversion: Interfaces change Replace Abstract<whatever> classes with proper* interfaces. (*) C++ does not have proper interfaces ;) --- .../src/aconversion/ConversionHandler.cpp | 22 ++++++------ .../src/fa2re/AbstractFAtoREConverter.cpp | 14 -------- .../src/fa2re/AbstractFAtoREConverter.h | 31 ---------------- aconversions/src/fa2re/BrzozowskiAlgebraic.h | 6 ++-- aconversions/src/fa2re/StateElimination.h | 5 +-- .../src/fa2rg/AbstractFAtoRGConverter.cpp | 22 ------------ .../src/fa2rg/AbstractFAtoRGConverter.h | 31 ---------------- .../fa2rg/fa2lrg/AbstractFAtoLRGConverter.cpp | 11 ------ .../fa2rg/fa2lrg/AbstractFAtoLRGConverter.h | 29 --------------- .../src/fa2rg/fa2lrg/FAtoLRGConverter.h | 6 ++-- .../fa2rg/fa2rrg/AbstractFAtoRRGConverter.cpp | 11 ------ .../fa2rg/fa2rrg/AbstractFAtoRRGConverter.h | 30 ---------------- .../src/fa2rg/fa2rrg/FAtoRRGConverter.h | 6 ++-- .../{abstract => interface}/Conversion.cpp | 0 .../src/{abstract => interface}/Conversion.h | 0 aconversions/src/interface/IConversionFSM.cpp | 18 ++++++++++ aconversions/src/interface/IConversionFSM.h | 35 ++++++++++++++++++ aconversions/src/interface/IConversionLRG.cpp | 18 ++++++++++ aconversions/src/interface/IConversionLRG.h | 35 ++++++++++++++++++ aconversions/src/interface/IConversionRE.cpp | 18 ++++++++++ aconversions/src/interface/IConversionRE.h | 35 ++++++++++++++++++ aconversions/src/interface/IConversionRRG.cpp | 18 ++++++++++ aconversions/src/interface/IConversionRRG.h | 35 ++++++++++++++++++ .../src/re2fa/AbstractREtoFAConverter.cpp | 13 ------- .../src/re2fa/AbstractREtoFAConverter.h | 31 ---------------- aconversions/src/re2fa/Brzozowski.h | 5 +-- aconversions/src/re2fa/Glushkov.h | 4 +-- aconversions/src/re2fa/Thompson.h | 7 ++-- .../src/re2rg/AbstractREtoRGConverter.cpp | 20 ----------- .../src/re2rg/AbstractREtoRGConverter.h | 30 ---------------- .../re2rg/re2rrg/AbstractREtoRRGConverter.cpp | 20 ----------- .../re2rg/re2rrg/AbstractREtoRRGConverter.h | 36 ------------------- .../re2rg/re2rrg/BrzozowskiDerivationRRG.h | 5 +-- aconversions/src/re2rg/re2rrg/GlushkovRRG.h | 4 +-- .../src/rg2fa/AbstractRGtoFAConverter.cpp | 11 ------ .../src/rg2fa/AbstractRGtoFAConverter.h | 28 --------------- .../src/rg2fa/lrg2fa/LRGtoFAConverter.h | 4 +-- .../src/rg2fa/rrg2fa/RRGtoFAConverter.h | 4 +-- .../src/rg2re/AbstractRGtoREConverter.cpp | 18 ---------- .../src/rg2re/AbstractRGtoREConverter.h | 34 ------------------ aconversions/src/rg2re/lrg2re/LRGAlgebraic.h | 4 +-- aconversions/src/rg2re/rrg2re/RRGAlgebraic.h | 4 +-- .../lrg2rrg/AbstractLRGtoRRGConverter.cpp | 20 ----------- .../rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.h | 35 ------------------ .../rg2rg/lrg2rrg/LeftToRightRegularGrammar.h | 7 ++-- .../rrg2lrg/AbstractRRGtoLRGConverter.cpp | 20 ----------- .../rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.h | 35 ------------------ .../rg2rg/rrg2lrg/RightToLeftRegularGrammar.h | 7 ++-- 48 files changed, 271 insertions(+), 571 deletions(-) delete mode 100644 aconversions/src/fa2re/AbstractFAtoREConverter.cpp delete mode 100644 aconversions/src/fa2re/AbstractFAtoREConverter.h delete mode 100644 aconversions/src/fa2rg/AbstractFAtoRGConverter.cpp delete mode 100644 aconversions/src/fa2rg/AbstractFAtoRGConverter.h delete mode 100644 aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.cpp delete mode 100644 aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.h delete mode 100644 aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.cpp delete mode 100644 aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.h rename aconversions/src/{abstract => interface}/Conversion.cpp (100%) rename aconversions/src/{abstract => interface}/Conversion.h (100%) create mode 100644 aconversions/src/interface/IConversionFSM.cpp create mode 100644 aconversions/src/interface/IConversionFSM.h create mode 100644 aconversions/src/interface/IConversionLRG.cpp create mode 100644 aconversions/src/interface/IConversionLRG.h create mode 100644 aconversions/src/interface/IConversionRE.cpp create mode 100644 aconversions/src/interface/IConversionRE.h create mode 100644 aconversions/src/interface/IConversionRRG.cpp create mode 100644 aconversions/src/interface/IConversionRRG.h delete mode 100644 aconversions/src/re2fa/AbstractREtoFAConverter.cpp delete mode 100644 aconversions/src/re2fa/AbstractREtoFAConverter.h delete mode 100644 aconversions/src/re2rg/AbstractREtoRGConverter.cpp delete mode 100644 aconversions/src/re2rg/AbstractREtoRGConverter.h delete mode 100644 aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.cpp delete mode 100644 aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.h delete mode 100644 aconversions/src/rg2fa/AbstractRGtoFAConverter.cpp delete mode 100644 aconversions/src/rg2fa/AbstractRGtoFAConverter.h delete mode 100644 aconversions/src/rg2re/AbstractRGtoREConverter.cpp delete mode 100644 aconversions/src/rg2re/AbstractRGtoREConverter.h delete mode 100644 aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.cpp delete mode 100644 aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.h delete mode 100644 aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.cpp delete mode 100644 aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.h diff --git a/aconversions/src/aconversion/ConversionHandler.cpp b/aconversions/src/aconversion/ConversionHandler.cpp index 7230d808b1..dc1a5aed19 100644 --- a/aconversions/src/aconversion/ConversionHandler.cpp +++ b/aconversions/src/aconversion/ConversionHandler.cpp @@ -83,7 +83,7 @@ void ConversionHandler::convertFSMtoRE( void ) { const FSM fsm = AutomatonFactory::buildFSM( AutomatonParser::parse( m_tokens ) ); - AbstractFAtoREConverter* conv; + IConversionRE* conv; switch( m_algorithm ) { @@ -115,7 +115,7 @@ void ConversionHandler::convertFSMtoRRG( void ) { const FSM fsm = AutomatonFactory::buildFSM( AutomatonParser::parse( m_tokens ) ); - AbstractFAtoRRGConverter* conv; + IConversionRRG* conv; switch( m_algorithm ) { @@ -132,7 +132,7 @@ void ConversionHandler::convertFSMtoLRG( void ) { const FSM fsm = AutomatonFactory::buildFSM( AutomatonParser::parse( m_tokens ) ); - AbstractFAtoLRGConverter* conv; + IConversionLRG* conv; switch( m_algorithm ) { @@ -150,7 +150,7 @@ void ConversionHandler::convertFSMtoLRG( void ) void ConversionHandler::convertREtoFSM( void ) { const RegExp regexp = RegExpParser::parse( m_tokens ); - AbstractREtoFAConverter* conv; + IConversionFSM* conv; switch( m_algorithm ) { @@ -183,7 +183,7 @@ void ConversionHandler::convertREtoRG( void ) void ConversionHandler::convertREtoRRG( void ) { const RegExp regexp = RegExpParser::parse( m_tokens ); - AbstractREtoRRGConverter* conv; + IConversionRRG* conv; switch( m_algorithm ) { @@ -247,7 +247,7 @@ void ConversionHandler::convertLRGtoFSM( void ) { const LeftRegularGrammar lrg = GrammarFactory::buildLeftRegularGrammar( GrammarParser::parse( m_tokens ) ); - AbstractRGtoFAConverter* conv; + IConversionFSM* conv; switch( m_algorithm ) { @@ -264,7 +264,7 @@ void ConversionHandler::convertRRGtoFSM( void ) { const RightRegularGrammar rrg = GrammarFactory::buildRightRegularGrammar( GrammarParser::parse( m_tokens ) ); - AbstractRGtoFAConverter* conv; + IConversionFSM* conv; switch( m_algorithm ) { @@ -281,7 +281,7 @@ void ConversionHandler::convertLRGtoRE( void ) { const LeftRegularGrammar lrg = GrammarFactory::buildLeftRegularGrammar( GrammarParser::parse( m_tokens ) ); - AbstractRGtoREConverter* conv; + IConversionRE* conv; switch( m_algorithm ) { @@ -299,7 +299,7 @@ void ConversionHandler::convertRRGtoRE( void ) { const RightRegularGrammar rrg = GrammarFactory::buildRightRegularGrammar( GrammarParser::parse( m_tokens ) ); - AbstractRGtoREConverter* conv; + IConversionRE* conv; switch( m_algorithm ) { @@ -317,7 +317,7 @@ void ConversionHandler::convertLRGtoRRG( void ) { const LeftRegularGrammar lrg = GrammarFactory::buildLeftRegularGrammar( GrammarParser::parse( m_tokens ) ); - AbstractLRGtoRRGConverter* conv; + IConversionRRG* conv; switch( m_algorithm ) { @@ -334,7 +334,7 @@ void ConversionHandler::convertRRGtoLRG( void ) { const RightRegularGrammar rrg = GrammarFactory::buildRightRegularGrammar( GrammarParser::parse( m_tokens ) ); - AbstractRRGtoLRGConverter* conv; + IConversionLRG* conv; switch( m_algorithm ) { diff --git a/aconversions/src/fa2re/AbstractFAtoREConverter.cpp b/aconversions/src/fa2re/AbstractFAtoREConverter.cpp deleted file mode 100644 index 7d056806ed..0000000000 --- a/aconversions/src/fa2re/AbstractFAtoREConverter.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "AbstractFAtoREConverter.h" - -using namespace automaton; -using namespace regexp; - -namespace conversions -{ - -AbstractFAtoREConverter::~AbstractFAtoREConverter( void ) -{ - -} - -} /* namespace conversions */ diff --git a/aconversions/src/fa2re/AbstractFAtoREConverter.h b/aconversions/src/fa2re/AbstractFAtoREConverter.h deleted file mode 100644 index dbc2377256..0000000000 --- a/aconversions/src/fa2re/AbstractFAtoREConverter.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef __ABSTRACTFATORECONVERTER_H__ -#define __ABSTRACTFATORECONVERTER_H__ - -#include <automaton/FSM/FSM.h> -#include <regexp/RegExp.h> -#include <AlibException.h> - -#include "../include/macros.h" -#include "../abstract/Conversion.h" - -namespace conversions -{ - -/** - * Interface for finite automaton to regular expression conversion. - */ -class AbstractFAtoREConverter : public Conversion -{ -public: - /** - * @return regular expression equivalent to source automata. - */ - virtual regexp::RegExp convert( void ) = 0; - - virtual ~AbstractFAtoREConverter( void ); - -}; - -} /* namespace conversions */ - -#endif /* __ABSTRACTFATORECONVERTER_H__ */ diff --git a/aconversions/src/fa2re/BrzozowskiAlgebraic.h b/aconversions/src/fa2re/BrzozowskiAlgebraic.h index dbfee0b4bc..3256ac36aa 100644 --- a/aconversions/src/fa2re/BrzozowskiAlgebraic.h +++ b/aconversions/src/fa2re/BrzozowskiAlgebraic.h @@ -13,8 +13,10 @@ #include <queue> #include <regexp/RegExpElements.h> +#include <automaton/FSM/FSM.h> -#include "AbstractFAtoREConverter.h" +#include "../include/macros.h" +#include "../interface/IConversionRE.h" #include "../shared/equations/RightRegularEquationSolver.h" namespace conversions @@ -27,7 +29,7 @@ namespace conversions * Converts FA to RE using Brzozowski's algebraic method using right regular equations. * Source : Melichar 2.122 */ -class BrzozowskiAlgebraic: public AbstractFAtoREConverter +class BrzozowskiAlgebraic: public IConversionRE { public: /** diff --git a/aconversions/src/fa2re/StateElimination.h b/aconversions/src/fa2re/StateElimination.h index 6c02f2eb0b..95d8b300c5 100644 --- a/aconversions/src/fa2re/StateElimination.h +++ b/aconversions/src/fa2re/StateElimination.h @@ -14,7 +14,8 @@ #include <regexp/RegExp.h> #include <regexp/RegExpElements.h> -#include "AbstractFAtoREConverter.h" +#include "../interface/IConversionRE.h" +#include "../include/macros.h" #include "RegExpOptimize.h" @@ -25,7 +26,7 @@ namespace conversions * Converts FSM to RE using State Elimination algorithm. * Source: Melichar 2.118 */ -class StateElimination: public AbstractFAtoREConverter +class StateElimination: public IConversionRE { public: /** diff --git a/aconversions/src/fa2rg/AbstractFAtoRGConverter.cpp b/aconversions/src/fa2rg/AbstractFAtoRGConverter.cpp deleted file mode 100644 index 499919b351..0000000000 --- a/aconversions/src/fa2rg/AbstractFAtoRGConverter.cpp +++ /dev/null @@ -1,22 +0,0 @@ -/* - * AbstractFAtoRGConverter.cpp - * - * Created on: 27. 2. 2014 - * Author: tomas - */ - -#include "AbstractFAtoRGConverter.h" - -using namespace alib; -using namespace automaton; -using namespace grammar; - -namespace conversions -{ - -AbstractFAtoRGConverter::~AbstractFAtoRGConverter( void ) -{ - -} - -} /* namespace conversions */ diff --git a/aconversions/src/fa2rg/AbstractFAtoRGConverter.h b/aconversions/src/fa2rg/AbstractFAtoRGConverter.h deleted file mode 100644 index 76af14f1c6..0000000000 --- a/aconversions/src/fa2rg/AbstractFAtoRGConverter.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * AbstractFAtoRGConverter.h - * - * Created on: 27. 2. 2014 - * Author: tomas - */ - -#ifndef ABSTRACTFATORGCONVERTER_H_ -#define ABSTRACTFATORGCONVERTER_H_ - -#include <automaton/FSM/FSM.h> -#include <grammar/Regular/RegularGrammar.h> -#include <AlibException.h> - -#include "../abstract/Conversion.h" - -namespace conversions -{ - -/** - * Abstract finite automata to regular grammar conversion. - */ -class AbstractFAtoRGConverter : public Conversion -{ -public: - ~AbstractFAtoRGConverter( void ); -}; - -} /* namespace conversions */ - -#endif /* ABSTRACTFATORGCONVERTER_H_ */ diff --git a/aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.cpp b/aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.cpp deleted file mode 100644 index e6b531f79a..0000000000 --- a/aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "AbstractFAtoLRGConverter.h" - -namespace conversions -{ - -AbstractFAtoLRGConverter::~AbstractFAtoLRGConverter( void ) -{ - -} - -} /* namespace conversions */ diff --git a/aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.h b/aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.h deleted file mode 100644 index 38b61b7a99..0000000000 --- a/aconversions/src/fa2rg/fa2lrg/AbstractFAtoLRGConverter.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __ABSTRACTFATOLRGCONVERTER_H__ -#define __ABSTRACTFATOLRGCONVERTER_H__ - -#include <automaton/FSM/FSM.h> -#include <grammar/Regular/LeftRegularGrammar.h> -#include <AlibException.h> - -#include "../../include/macros.h" -#include "../AbstractFAtoRGConverter.h" - -namespace conversions -{ - -/** - * Abstract finite automata to right regular grammar. - */ -class AbstractFAtoLRGConverter : public AbstractFAtoRGConverter -{ -public: - /** - * @return left regular grammar equivalent to source automata. - */ - virtual grammar::LeftRegularGrammar convert( void ) = 0; - virtual ~AbstractFAtoLRGConverter( void ); -}; - -} /* namespace conversions */ - -#endif /* __ABSTRACTFATOLRGCONVERTER_H__ */ diff --git a/aconversions/src/fa2rg/fa2lrg/FAtoLRGConverter.h b/aconversions/src/fa2rg/fa2lrg/FAtoLRGConverter.h index 4bc20c401d..ad0d456a8c 100644 --- a/aconversions/src/fa2rg/fa2lrg/FAtoLRGConverter.h +++ b/aconversions/src/fa2rg/fa2lrg/FAtoLRGConverter.h @@ -5,8 +5,10 @@ #include <grammar/Regular/LeftRegularGrammar.h> #include <automaton/FSM/FSM.h> +#include <AlibException.h> -#include "AbstractFAtoLRGConverter.h" +#include "../../interface/IConversionLRG.h" +#include "../../include/macros.h" namespace conversions { @@ -15,7 +17,7 @@ namespace conversions * Finite automata to right regular grammar converter. * Source: My own :) */ -class FAtoLRGConverter: public AbstractFAtoLRGConverter +class FAtoLRGConverter: public IConversionLRG { public: /** diff --git a/aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.cpp b/aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.cpp deleted file mode 100644 index 1af46b4f82..0000000000 --- a/aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "AbstractFAtoRRGConverter.h" - -namespace conversions -{ - -AbstractFAtoRRGConverter::~AbstractFAtoRRGConverter( void ) -{ - -} - -} /* namespace conversions */ diff --git a/aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.h b/aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.h deleted file mode 100644 index 6df8f25e87..0000000000 --- a/aconversions/src/fa2rg/fa2rrg/AbstractFAtoRRGConverter.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __ABSTRACTFATORRGCONVERTER_H__ -#define __ABSTRACTFATORRGCONVERTER_H__ - -#include <automaton/FSM/FSM.h> -#include <grammar/Regular/RightRegularGrammar.h> -#include <AlibException.h> - -#include "../../include/macros.h" -#include "../AbstractFAtoRGConverter.h" - -namespace conversions -{ - -/** - * Abstract finite automata to right regular grammar. - */ -class AbstractFAtoRRGConverter : public AbstractFAtoRGConverter -{ -public: - /** - * @return right regular grammar equivalent to source automata. - */ - virtual grammar::RightRegularGrammar convert( void ) = 0; - - virtual ~AbstractFAtoRRGConverter( void ); -}; - -} /* namespace conversions */ - -#endif /* __ABSTRACTFATORRGCONVERTER_H__ */ diff --git a/aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.h b/aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.h index dc759f8488..2a23de835e 100644 --- a/aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.h +++ b/aconversions/src/fa2rg/fa2rrg/FAtoRRGConverter.h @@ -5,8 +5,10 @@ #include <grammar/Regular/RightRegularGrammar.h> #include <automaton/FSM/FSM.h> +#include <AlibException.h> -#include "AbstractFAtoRRGConverter.h" +#include "../../interface/IConversionRRG.h" +#include "../../include/macros.h" namespace conversions { @@ -15,7 +17,7 @@ namespace conversions * Finite automata to right regular grammar converter. * Source: Melichar 2.104 */ -class FAtoRRGConverter : public AbstractFAtoRRGConverter +class FAtoRRGConverter : public IConversionRRG { public: /** diff --git a/aconversions/src/abstract/Conversion.cpp b/aconversions/src/interface/Conversion.cpp similarity index 100% rename from aconversions/src/abstract/Conversion.cpp rename to aconversions/src/interface/Conversion.cpp diff --git a/aconversions/src/abstract/Conversion.h b/aconversions/src/interface/Conversion.h similarity index 100% rename from aconversions/src/abstract/Conversion.h rename to aconversions/src/interface/Conversion.h diff --git a/aconversions/src/interface/IConversionFSM.cpp b/aconversions/src/interface/IConversionFSM.cpp new file mode 100644 index 0000000000..261d682732 --- /dev/null +++ b/aconversions/src/interface/IConversionFSM.cpp @@ -0,0 +1,18 @@ +/* + * IConversionFSM.cpp + * + * Created on: 19. 4. 2014 + * Author: tomas + */ + +#include "IConversionFSM.h" + +namespace conversions +{ + +IConversionFSM::~IConversionFSM( void ) +{ + +} + +} /* namespace conversions */ diff --git a/aconversions/src/interface/IConversionFSM.h b/aconversions/src/interface/IConversionFSM.h new file mode 100644 index 0000000000..62ac23c404 --- /dev/null +++ b/aconversions/src/interface/IConversionFSM.h @@ -0,0 +1,35 @@ +/* + * IConversionFSM.h + * + * Created on: 19. 4. 2014 + * Author: tomas + */ + +#ifndef __ICONVERSIONFSM_H__ +#define __ICONVERSIONFSM_H__ + +#include "Conversion.h" + +#include <automaton/FSM/FSM.h> + +namespace conversions +{ + +/** + * Interface for conversion to finite automaton. + */ +class IConversionFSM : public Conversion +{ +public: + /** + * @return fsm equivalent to input. + */ + virtual automaton::FSM convert( void ) = 0; + + virtual ~IConversionFSM( void ); + +}; + +} /* namespace conversions */ + +#endif /* __ICONVERSIONFSM_H__ */ diff --git a/aconversions/src/interface/IConversionLRG.cpp b/aconversions/src/interface/IConversionLRG.cpp new file mode 100644 index 0000000000..47f03aec88 --- /dev/null +++ b/aconversions/src/interface/IConversionLRG.cpp @@ -0,0 +1,18 @@ +/* + * IConversionLRG.cpp + * + * Created on: 19. 4. 2014 + * Author: tomas + */ + +#include "IConversionLRG.h" + +namespace conversions +{ + +IConversionLRG::~IConversionLRG( void ) +{ + +} + +} /* namespace conversions */ diff --git a/aconversions/src/interface/IConversionLRG.h b/aconversions/src/interface/IConversionLRG.h new file mode 100644 index 0000000000..f3e56bbe87 --- /dev/null +++ b/aconversions/src/interface/IConversionLRG.h @@ -0,0 +1,35 @@ +/* + * IConversionLRG.h + * + * Created on: 19. 4. 2014 + * Author: tomas + */ + +#ifndef __ICONVERSIONLRG_H__ +#define __ICONVERSIONLRG_H__ + +#include "Conversion.h" + +#include <grammar/Regular/LeftRegularGrammar.h> + +namespace conversions +{ + +/** + * Interface for conversion to left regular grammar. + */ +class IConversionLRG : public Conversion +{ +public: + /** + * @return rrg equivalent to input. + */ + virtual grammar::LeftRegularGrammar convert( void ) = 0; + + virtual ~IConversionLRG( void ); + +}; + +} /* namespace conversions */ + +#endif /* __ICONVERSIONLRG_H__ */ diff --git a/aconversions/src/interface/IConversionRE.cpp b/aconversions/src/interface/IConversionRE.cpp new file mode 100644 index 0000000000..03c3c4c1ec --- /dev/null +++ b/aconversions/src/interface/IConversionRE.cpp @@ -0,0 +1,18 @@ +/* + * IConversionRE.cpp + * + * Created on: 19. 4. 2014 + * Author: tomas + */ + +#include "IConversionRE.h" + +namespace conversions +{ + +IConversionRE::~IConversionRE( void ) +{ + +} + +} /* namespace conversions */ diff --git a/aconversions/src/interface/IConversionRE.h b/aconversions/src/interface/IConversionRE.h new file mode 100644 index 0000000000..70658fa3f5 --- /dev/null +++ b/aconversions/src/interface/IConversionRE.h @@ -0,0 +1,35 @@ +/* + * IConversionRE.h + * + * Created on: 19. 4. 2014 + * Author: tomas + */ + +#ifndef __ICONVERSIONRE_H__ +#define __ICONVERSIONRE_H__ + +#include "Conversion.h" + +#include <regexp/RegExp.h> + +namespace conversions +{ + +/** + * Interface for conversion to regexp. + */ +class IConversionRE : public Conversion +{ +public: + /** + * @return regexp equivalent to input. + */ + virtual regexp::RegExp convert( void ) = 0; + + virtual ~IConversionRE( void ); + +}; + +} /* namespace conversions */ + +#endif /* __ICONVERSIONRE_H__ */ diff --git a/aconversions/src/interface/IConversionRRG.cpp b/aconversions/src/interface/IConversionRRG.cpp new file mode 100644 index 0000000000..b358409101 --- /dev/null +++ b/aconversions/src/interface/IConversionRRG.cpp @@ -0,0 +1,18 @@ +/* + * IConversionRRG.cpp + * + * Created on: 19. 4. 2014 + * Author: tomas + */ + +#include "IConversionRRG.h" + +namespace conversions +{ + +IConversionRRG::~IConversionRRG( void ) +{ + +} + +} /* namespace conversions */ diff --git a/aconversions/src/interface/IConversionRRG.h b/aconversions/src/interface/IConversionRRG.h new file mode 100644 index 0000000000..40a5382747 --- /dev/null +++ b/aconversions/src/interface/IConversionRRG.h @@ -0,0 +1,35 @@ +/* + * IConversionRRG.h + * + * Created on: 19. 4. 2014 + * Author: tomas + */ + +#ifndef __ICONVERSIONRRG_H__ +#define __ICONVERSIONRRG_H__ + +#include "Conversion.h" + +#include <grammar/Regular/RightRegularGrammar.h> + +namespace conversions +{ + +/** + * Interface for conversion to right regular grammar. + */ +class IConversionRRG : public Conversion +{ +public: + /** + * @return rrg equivalent to input. + */ + virtual grammar::RightRegularGrammar convert( void ) = 0; + + virtual ~IConversionRRG( void ); + +}; + +} /* namespace conversions */ + +#endif /* __ICONVERSIONRRG_H__ */ diff --git a/aconversions/src/re2fa/AbstractREtoFAConverter.cpp b/aconversions/src/re2fa/AbstractREtoFAConverter.cpp deleted file mode 100644 index c99bff419f..0000000000 --- a/aconversions/src/re2fa/AbstractREtoFAConverter.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include "AbstractREtoFAConverter.h" - -using namespace regexp; - -namespace conversions -{ - -AbstractREtoFAConverter::~AbstractREtoFAConverter(void) -{ - -} - -} /* namespace conversions */ diff --git a/aconversions/src/re2fa/AbstractREtoFAConverter.h b/aconversions/src/re2fa/AbstractREtoFAConverter.h deleted file mode 100644 index cfea004445..0000000000 --- a/aconversions/src/re2fa/AbstractREtoFAConverter.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef __ABSTRACTRETOFACONVERTER_H__ -#define __ABSTRACTRETOFACONVERTER_H__ - -#include <regexp/RegExp.h> -#include <automaton/FSM/FSM.h> - -#include <AlibException.h> - -#include "../include/macros.h" -#include "../abstract/Conversion.h" - -namespace conversions -{ - -/** - * Interface for regular expression to finite automata conversion. - */ -class AbstractREtoFAConverter : public Conversion -{ -public: - /** - * @return FSM equivalent to original regular expression. - */ - virtual automaton::FSM convert( void ) = 0; - - virtual ~AbstractREtoFAConverter( void ); -}; - -} /* namespace conversions */ - -#endif /* __ABSTRACTRETOFACONVERTER_H__ */ diff --git a/aconversions/src/re2fa/Brzozowski.h b/aconversions/src/re2fa/Brzozowski.h index e145355cd7..c2264b88a5 100644 --- a/aconversions/src/re2fa/Brzozowski.h +++ b/aconversions/src/re2fa/Brzozowski.h @@ -16,8 +16,9 @@ #include <automaton/State.h> #include <AlibException.h> -#include "AbstractREtoFAConverter.h" +#include "../interface/IConversionFSM.h" #include "../shared/Hexavigesimal.h" +#include "../include/macros.h" #include "RegExpDerivation.h" #include "RegExpOptimize.h" @@ -29,7 +30,7 @@ namespace conversions * Converts regular expression to finite automata using Brzozowski algorithm (derivations of regular expressions). * Source: Melichar 2.110 */ -class Brzozowski : public AbstractREtoFAConverter +class Brzozowski : public IConversionFSM { public: /** diff --git a/aconversions/src/re2fa/Glushkov.h b/aconversions/src/re2fa/Glushkov.h index 59faa884b4..b6fa54e939 100644 --- a/aconversions/src/re2fa/Glushkov.h +++ b/aconversions/src/re2fa/Glushkov.h @@ -15,7 +15,7 @@ #include <regexp/RegExp.h> #include <regexp/RegExpElements.h> -#include "AbstractREtoFAConverter.h" +#include "../interface/IConversionFSM.h" #include "../shared/glushkov/GlushkovTraversal.h" namespace conversions @@ -25,7 +25,7 @@ namespace conversions * Converts regular expression to finite automata using Glushkov's NFA construction algorithm. * Source: Melichar 2.107 */ -class Glushkov : public AbstractREtoFAConverter +class Glushkov : public IConversionFSM { public: /** diff --git a/aconversions/src/re2fa/Thompson.h b/aconversions/src/re2fa/Thompson.h index 3e1455415f..d4633afe2c 100644 --- a/aconversions/src/re2fa/Thompson.h +++ b/aconversions/src/re2fa/Thompson.h @@ -11,11 +11,14 @@ #include <set> #include <vector> +#include <AlibException.h> #include <automaton/FSM/FSM.h> #include <regexp/RegExp.h> #include <regexp/RegExpElements.h> -#include "AbstractREtoFAConverter.h" +#include "../interface/IConversionFSM.h" +#include "../include/macros.h" + namespace conversions { @@ -28,7 +31,7 @@ namespace conversions * http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.21.7450&rep=rep1&type=ps * Melichar 2.112 */ -class Thompson : public AbstractREtoFAConverter +class Thompson : public IConversionFSM { public: /** diff --git a/aconversions/src/re2rg/AbstractREtoRGConverter.cpp b/aconversions/src/re2rg/AbstractREtoRGConverter.cpp deleted file mode 100644 index 1d5cff0f83..0000000000 --- a/aconversions/src/re2rg/AbstractREtoRGConverter.cpp +++ /dev/null @@ -1,20 +0,0 @@ -/* - * AbstractREtoRGConverter.cpp - * - * Created on: 5. 3. 2014 - * Author: tomas - */ - -#include "AbstractREtoRGConverter.h" - -using namespace regexp; - -namespace conversions -{ - -AbstractREtoRGConverter::~AbstractREtoRGConverter( void ) -{ - -} - -} /* namespace conversions */ diff --git a/aconversions/src/re2rg/AbstractREtoRGConverter.h b/aconversions/src/re2rg/AbstractREtoRGConverter.h deleted file mode 100644 index b18bb97152..0000000000 --- a/aconversions/src/re2rg/AbstractREtoRGConverter.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * AbstractREtoRGConverter.h - * - * Created on: 5. 3. 2014 - * Author: tomas - */ - -#ifndef ABSTRACTRETORGCONVERTER_H_ -#define ABSTRACTRETORGCONVERTER_H_ - -#include <regexp/RegExp.h> - -#include "../include/macros.h" -#include "../abstract/Conversion.h" - -namespace conversions -{ - -/** - * Interface for regular expression to regular grammar conversion. - */ -class AbstractREtoRGConverter : public Conversion -{ -public: - virtual ~AbstractREtoRGConverter( void ); -}; - -} /* namespace conversions */ - -#endif /* ABSTRACTRETORGCONVERTER_H_ */ diff --git a/aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.cpp b/aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.cpp deleted file mode 100644 index 2012a5a800..0000000000 --- a/aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.cpp +++ /dev/null @@ -1,20 +0,0 @@ -/* - * AbstractREtoRRGConverter.cpp - * - * Created on: 5. 3. 2014 - * Author: tomas - */ - -#include "AbstractREtoRRGConverter.h" - -using namespace regexp; - -namespace conversions -{ - -AbstractREtoRRGConverter::~AbstractREtoRRGConverter( void ) -{ - -} - -} /* namespace conversions */ diff --git a/aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.h b/aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.h deleted file mode 100644 index 36cd9224f2..0000000000 --- a/aconversions/src/re2rg/re2rrg/AbstractREtoRRGConverter.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * AbstractREtoRRGConverter.h - * - * Created on: 5. 3. 2014 - * Author: tomas - */ - -#ifndef ABSTRACTRETORRGCONVERTER_H_ -#define ABSTRACTRETORRGCONVERTER_H_ - -#include <regexp/RegExp.h> -#include <grammar/Regular/RightRegularGrammar.h> - -#include "../../include/macros.h" -#include "../AbstractREtoRGConverter.h" - -namespace conversions -{ - -/** - * Interface for regular epxression to right regular grammar conversion. - */ -class AbstractREtoRRGConverter: public AbstractREtoRGConverter -{ -public: - virtual ~AbstractREtoRRGConverter( void ); - - /** - * @return right regular grammar equivalent to source regexp. - */ - virtual grammar::RightRegularGrammar convert( void ) = 0; -}; - -} /* namespace conversions */ - -#endif /* ABSTRACTRETORRGCONVERTER_H_ */ diff --git a/aconversions/src/re2rg/re2rrg/BrzozowskiDerivationRRG.h b/aconversions/src/re2rg/re2rrg/BrzozowskiDerivationRRG.h index 83f1218b68..28be812b35 100644 --- a/aconversions/src/re2rg/re2rrg/BrzozowskiDerivationRRG.h +++ b/aconversions/src/re2rg/re2rrg/BrzozowskiDerivationRRG.h @@ -16,7 +16,8 @@ #include <grammar/Regular/RightRegularGrammar.h> #include <regexp/RegExp.h> -#include "AbstractREtoRRGConverter.h" +#include "../../include/macros.h" +#include "../../interface/IConversionRRG.h" #include "../../shared/Hexavigesimal.h" #include "RegExpOptimize.h" @@ -29,7 +30,7 @@ namespace conversions * Converts reg. expression to right regular grammar using brzozowski derivation algorithm. * Source: Melichar 2.137 */ -class BrzozowskiDerivationRRG : public AbstractREtoRRGConverter +class BrzozowskiDerivationRRG : public IConversionRRG { public: /** diff --git a/aconversions/src/re2rg/re2rrg/GlushkovRRG.h b/aconversions/src/re2rg/re2rrg/GlushkovRRG.h index e7e10807c7..fa9b747470 100644 --- a/aconversions/src/re2rg/re2rrg/GlushkovRRG.h +++ b/aconversions/src/re2rg/re2rrg/GlushkovRRG.h @@ -13,8 +13,8 @@ #include <grammar/Regular/RightRegularGrammar.h> #include <regexp/RegExp.h> +#include "../../interface/IConversionRRG.h" #include "../../shared/glushkov/GlushkovTraversal.h" -#include "AbstractREtoRRGConverter.h" namespace conversions { @@ -23,7 +23,7 @@ namespace conversions * Converts regular expression to right regular grammar using Glushkov algorithm. * Source: None yet. */ -class GlushkovRRG : public AbstractREtoRRGConverter +class GlushkovRRG : public IConversionRRG { public: /** diff --git a/aconversions/src/rg2fa/AbstractRGtoFAConverter.cpp b/aconversions/src/rg2fa/AbstractRGtoFAConverter.cpp deleted file mode 100644 index 4dce814a34..0000000000 --- a/aconversions/src/rg2fa/AbstractRGtoFAConverter.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "AbstractRGtoFAConverter.h" - -namespace conversions -{ - -AbstractRGtoFAConverter::~AbstractRGtoFAConverter( void ) -{ - -} - -} /* namespace conversions */ diff --git a/aconversions/src/rg2fa/AbstractRGtoFAConverter.h b/aconversions/src/rg2fa/AbstractRGtoFAConverter.h deleted file mode 100644 index 6a93df1afd..0000000000 --- a/aconversions/src/rg2fa/AbstractRGtoFAConverter.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __ABSTRACTRGTOFACONVERTER_H__ -#define __ABSTRACTRGTOFACONVERTER_H__ - -#include <automaton/FSM/FSM.h> -#include <AlibException.h> - -#include "../include/macros.h" -#include "../abstract/Conversion.h" - -namespace conversions -{ - -/** - * Interface for regular grammar to finite automaton conversion. - */ -class AbstractRGtoFAConverter : public Conversion -{ -public: - /** - * @return FSM equivalent to source grammar. - */ - virtual automaton::FSM convert( void ) = 0; - virtual ~AbstractRGtoFAConverter( void ); -}; - -} /* namespace conversions */ - -#endif /* __ABSTRACTRGTOFACONVERTER_H__ */ diff --git a/aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.h b/aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.h index 19f42c8905..e468dd82e6 100644 --- a/aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.h +++ b/aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.h @@ -4,7 +4,7 @@ #include <grammar/Regular/LeftRegularGrammar.h> #include <automaton/FSM/FSM.h> -#include "../AbstractRGtoFAConverter.h" +#include "../../interface/IConversionFSM.h" namespace conversions { @@ -13,7 +13,7 @@ namespace conversions * Converts left regular grammar to finite automata. * Source: Melichar 2.102. */ -class LRGtoFAConverter : public AbstractRGtoFAConverter +class LRGtoFAConverter : public IConversionFSM { public: /** diff --git a/aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.h b/aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.h index 854790c761..c18a0d398f 100644 --- a/aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.h +++ b/aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.h @@ -4,7 +4,7 @@ #include <grammar/Regular/RightRegularGrammar.h> #include <automaton/FSM/FSM.h> -#include "../AbstractRGtoFAConverter.h" +#include "../../interface/IConversionFSM.h" namespace conversions { @@ -13,7 +13,7 @@ namespace conversions * Converts left regular grammar to finite automata. * Source: Melichar 2.98 */ -class RRGtoFAConverter : public AbstractRGtoFAConverter +class RRGtoFAConverter : public IConversionFSM { public: /** diff --git a/aconversions/src/rg2re/AbstractRGtoREConverter.cpp b/aconversions/src/rg2re/AbstractRGtoREConverter.cpp deleted file mode 100644 index d6df0214fa..0000000000 --- a/aconversions/src/rg2re/AbstractRGtoREConverter.cpp +++ /dev/null @@ -1,18 +0,0 @@ -/* - * AbstractRGtoREConverter.cpp - * - * Created on: 4. 3. 2014 - * Author: tomas - */ - -#include "AbstractRGtoREConverter.h" - -namespace conversions -{ - -AbstractRGtoREConverter::~AbstractRGtoREConverter( void ) -{ - -} - -} /* namespace conversions */ diff --git a/aconversions/src/rg2re/AbstractRGtoREConverter.h b/aconversions/src/rg2re/AbstractRGtoREConverter.h deleted file mode 100644 index bfc2ea1310..0000000000 --- a/aconversions/src/rg2re/AbstractRGtoREConverter.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * AbstractRGtoREConverter.h - * - * Created on: 4. 3. 2014 - * Author: tomas - */ - -#ifndef ABSTRACTRGTORECONVERTER_H_ -#define ABSTRACTRGTORECONVERTER_H_ - -#include <regexp/RegExp.h> - -#include "../abstract/Conversion.h" - -namespace conversions -{ - -/** - * Interface for regular grammar to regular expression conversion. - */ -class AbstractRGtoREConverter : public Conversion -{ -public: - /** - * @return regexp equivalent to source regular grammar. - */ - virtual regexp::RegExp convert( void ) = 0; - - virtual ~AbstractRGtoREConverter( void ); -}; - -} /* namespace conversions */ - -#endif /* ABSTRACTRGTORECONVERTER_H_ */ diff --git a/aconversions/src/rg2re/lrg2re/LRGAlgebraic.h b/aconversions/src/rg2re/lrg2re/LRGAlgebraic.h index 53e0625151..dcd36c4425 100644 --- a/aconversions/src/rg2re/lrg2re/LRGAlgebraic.h +++ b/aconversions/src/rg2re/lrg2re/LRGAlgebraic.h @@ -12,12 +12,12 @@ #include <regexp/RegExp.h> #include "../../shared/equations/LeftRegularEquationSolver.h" -#include "../AbstractRGtoREConverter.h" +#include "../../interface/IConversionRE.h" namespace conversions { -class LRGAlgebraic: public AbstractRGtoREConverter +class LRGAlgebraic: public IConversionRE { public: /** diff --git a/aconversions/src/rg2re/rrg2re/RRGAlgebraic.h b/aconversions/src/rg2re/rrg2re/RRGAlgebraic.h index cb40fea3e4..3b6f663a46 100644 --- a/aconversions/src/rg2re/rrg2re/RRGAlgebraic.h +++ b/aconversions/src/rg2re/rrg2re/RRGAlgebraic.h @@ -12,12 +12,12 @@ #include <regexp/RegExp.h> #include "../../shared/equations/RightRegularEquationSolver.h" -#include "../AbstractRGtoREConverter.h" +#include "../../interface/IConversionRE.h" namespace conversions { -class RRGAlgebraic: public AbstractRGtoREConverter +class RRGAlgebraic: public IConversionRE { public: /** diff --git a/aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.cpp b/aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.cpp deleted file mode 100644 index 212a0b1e22..0000000000 --- a/aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.cpp +++ /dev/null @@ -1,20 +0,0 @@ -/* - * AbstractLRGtoRRGConverter.cpp - * - * Created on: 8. 3. 2014 - * Author: tomas - */ - -#include "AbstractLRGtoRRGConverter.h" - -using namespace grammar; - -namespace conversions -{ - -AbstractLRGtoRRGConverter::~AbstractLRGtoRRGConverter( void ) -{ - -} - -} /* namespace conversions */ diff --git a/aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.h b/aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.h deleted file mode 100644 index bcbbe93676..0000000000 --- a/aconversions/src/rg2rg/lrg2rrg/AbstractLRGtoRRGConverter.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * AbstractLRGtoRRGConverter.h - * - * Created on: 8. 3. 2014 - * Author: tomas - */ - -#ifndef ABSTRACTLRGTORRGCONVERTER_H_ -#define ABSTRACTLRGTORRGCONVERTER_H_ - -#include <grammar/Regular/LeftRegularGrammar.h> -#include <grammar/Regular/RightRegularGrammar.h> - -#include "../../abstract/Conversion.h" - -namespace conversions -{ - -/** - * Abstract left regular grammar to right regular grammar converter. - */ -class AbstractLRGtoRRGConverter : public Conversion -{ -public: - virtual ~AbstractLRGtoRRGConverter( void ); - - /** - * @return right regular grammar which is equivalent to source left regular grammar. - */ - virtual grammar::RightRegularGrammar convert( void ) = 0; -}; - -} /* namespace conversions */ - -#endif /* ABSTRACTLRGTORRGCONVERTER_H_ */ diff --git a/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.h b/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.h index 8e65008481..0ba1f9f0ec 100644 --- a/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.h +++ b/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.h @@ -8,12 +8,15 @@ #ifndef LEFTTORIGHTREGULARGRAMMAR_H_ #define LEFTTORIGHTREGULARGRAMMAR_H_ -#include "AbstractLRGtoRRGConverter.h" +#include <grammar/Regular/LeftRegularGrammar.h> +#include <grammar/Regular/RightRegularGrammar.h> + +#include "../../interface/IConversionRRG.h" namespace conversions { -class LeftToRightRegularGrammar: public AbstractLRGtoRRGConverter +class LeftToRightRegularGrammar: public IConversionRRG { public: /** diff --git a/aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.cpp b/aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.cpp deleted file mode 100644 index c904f0c912..0000000000 --- a/aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.cpp +++ /dev/null @@ -1,20 +0,0 @@ -/* - * AbstractRRGtoLRGConverter.cpp - * - * Created on: 8. 3. 2014 - * Author: tomas - */ - -#include "AbstractRRGtoLRGConverter.h" - -using namespace grammar; - -namespace conversions -{ - -AbstractRRGtoLRGConverter::~AbstractRRGtoLRGConverter( void ) -{ - -} - -} /* namespace conversions */ diff --git a/aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.h b/aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.h deleted file mode 100644 index ce556b3086..0000000000 --- a/aconversions/src/rg2rg/rrg2lrg/AbstractRRGtoLRGConverter.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * AbstractRRGtoLRGConverter.h - * - * Created on: 8. 3. 2014 - * Author: tomas - */ - -#ifndef ABSTRACTRRGTOLRGCONVERTER_H_ -#define ABSTRACTRRGTOLRGCONVERTER_H_ - -#include "../../abstract/Conversion.h" - -#include <grammar/Regular/LeftRegularGrammar.h> -#include <grammar/Regular/RightRegularGrammar.h> - -namespace conversions -{ - -/** - * Abstract right regular grammar to left regular grammar converter. - */ -class AbstractRRGtoLRGConverter: public Conversion -{ -public: - virtual ~AbstractRRGtoLRGConverter( void ); - - /** - * @return left regular grammar which is equivalent to source right regular grammar. - */ - virtual grammar::LeftRegularGrammar convert( void ) = 0; -}; - -} /* namespace conversions */ - -#endif /* ABSTRACTRRGTOLRGCONVERTER_H_ */ diff --git a/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.h b/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.h index 23a94c318b..12ba44eff4 100644 --- a/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.h +++ b/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.h @@ -8,7 +8,10 @@ #ifndef RIGHTTOLEFTREGULARGRAMMAR_H_ #define RIGHTTOLEFTREGULARGRAMMAR_H_ -#include "AbstractRRGtoLRGConverter.h" +#include <grammar/Regular/LeftRegularGrammar.h> +#include <grammar/Regular/RightRegularGrammar.h> + +#include "../../interface/IConversionLRG.h" namespace conversions { @@ -16,7 +19,7 @@ namespace conversions /** * Converts right regular grammar to left regular grammar. */ -class RightToLeftRegularGrammar: public AbstractRRGtoLRGConverter +class RightToLeftRegularGrammar: public IConversionLRG { public: /** -- GitLab