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