From d0d543488d72167765dcdd0fec5f520a6cfc4490 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Pecka?= <peckato1@fit.cvut.cz>
Date: Sun, 16 Mar 2014 15:41:29 +0100
Subject: [PATCH] Abstract classes everywhere!

---
 .../src/rg2fa/AbstractRGtoFAConverter.cpp     | 18 +----------
 .../src/rg2fa/AbstractRGtoFAConverter.h       |  7 +----
 .../rg2fa/lrg2fa/AbstractLRGtoFAConverter.cpp | 25 +++++++++++++++
 .../rg2fa/lrg2fa/AbstractLRGtoFAConverter.h   | 31 +++++++++++++++++++
 .../rg2fa/{ => lrg2fa}/LRGtoFAConverter.cpp   |  9 ++++--
 .../src/rg2fa/{ => lrg2fa}/LRGtoFAConverter.h |  7 ++---
 .../rg2fa/rrg2fa/AbstractRRGtoFAConverter.cpp | 25 +++++++++++++++
 .../rg2fa/rrg2fa/AbstractRRGtoFAConverter.h   | 30 ++++++++++++++++++
 .../rg2fa/{ => rrg2fa}/RRGtoFAConverter.cpp   |  9 ++++--
 .../src/rg2fa/{ => rrg2fa}/RRGtoFAConverter.h |  7 ++---
 .../src/rg2re/AbstractRGtoREConverter.cpp     |  4 +--
 .../src/rg2re/AbstractRGtoREConverter.h       |  4 +--
 .../rg2re/lrg2re/AbstractLRGtoREConverter.cpp | 25 +++++++++++++++
 .../rg2re/lrg2re/AbstractLRGtoREConverter.h   | 30 ++++++++++++++++++
 .../src/rg2re/{ => lrg2re}/LRGAlgebraic.cpp   |  2 +-
 .../src/rg2re/{ => lrg2re}/LRGAlgebraic.h     |  9 ++----
 .../rg2re/rrg2re/AbstractRRGtoREConverter.cpp | 25 +++++++++++++++
 .../rg2re/rrg2re/AbstractRRGtoREConverter.h   | 31 +++++++++++++++++++
 .../src/rg2re/{ => rrg2re}/RRGAlgebraic.cpp   |  2 +-
 .../src/rg2re/{ => rrg2re}/RRGAlgebraic.h     |  9 ++----
 20 files changed, 250 insertions(+), 59 deletions(-)
 create mode 100644 aconversions/src/rg2fa/lrg2fa/AbstractLRGtoFAConverter.cpp
 create mode 100644 aconversions/src/rg2fa/lrg2fa/AbstractLRGtoFAConverter.h
 rename aconversions/src/rg2fa/{ => lrg2fa}/LRGtoFAConverter.cpp (84%)
 rename aconversions/src/rg2fa/{ => lrg2fa}/LRGtoFAConverter.h (63%)
 create mode 100644 aconversions/src/rg2fa/rrg2fa/AbstractRRGtoFAConverter.cpp
 create mode 100644 aconversions/src/rg2fa/rrg2fa/AbstractRRGtoFAConverter.h
 rename aconversions/src/rg2fa/{ => rrg2fa}/RRGtoFAConverter.cpp (84%)
 rename aconversions/src/rg2fa/{ => rrg2fa}/RRGtoFAConverter.h (63%)
 create mode 100644 aconversions/src/rg2re/lrg2re/AbstractLRGtoREConverter.cpp
 create mode 100644 aconversions/src/rg2re/lrg2re/AbstractLRGtoREConverter.h
 rename aconversions/src/rg2re/{ => lrg2re}/LRGAlgebraic.cpp (97%)
 rename aconversions/src/rg2re/{ => lrg2re}/LRGAlgebraic.h (64%)
 create mode 100644 aconversions/src/rg2re/rrg2re/AbstractRRGtoREConverter.cpp
 create mode 100644 aconversions/src/rg2re/rrg2re/AbstractRRGtoREConverter.h
 rename aconversions/src/rg2re/{ => rrg2re}/RRGAlgebraic.cpp (97%)
 rename aconversions/src/rg2re/{ => rrg2re}/RRGAlgebraic.h (64%)

diff --git a/aconversions/src/rg2fa/AbstractRGtoFAConverter.cpp b/aconversions/src/rg2fa/AbstractRGtoFAConverter.cpp
index a6b56bdd8a..c7439b614e 100644
--- a/aconversions/src/rg2fa/AbstractRGtoFAConverter.cpp
+++ b/aconversions/src/rg2fa/AbstractRGtoFAConverter.cpp
@@ -1,13 +1,9 @@
 #include "AbstractRGtoFAConverter.h"
 
-using namespace alphabet;
-using namespace automaton;
-using namespace grammar;
-
 namespace conversions
 {
 
-AbstractRGtoFAConverter::AbstractRGtoFAConverter( const RegularGrammar& grammar ) : m_grammar( grammar )
+AbstractRGtoFAConverter::AbstractRGtoFAConverter( void )
 {
 
 }
@@ -17,16 +13,4 @@ AbstractRGtoFAConverter::~AbstractRGtoFAConverter( void )
 
 }
 
-void AbstractRGtoFAConverter::createInputAlphabet( void )
-{
-    for( set<Symbol>::const_iterator i = m_grammar.getTerminalSymbols().begin(); i != m_grammar.getTerminalSymbols().end(); i++ )
-        m_automaton . addInputSymbol( *i );
-}
-
-void AbstractRGtoFAConverter::createStates( void )
-{
-    for( set<Symbol>::const_iterator i = m_grammar.getNonTerminalSymbols().begin(); i != m_grammar.getNonTerminalSymbols().end(); i++ )
-        m_automaton . addState( State( i-> getSymbol() ) );
-}
-
 } /* namespace conversions */
diff --git a/aconversions/src/rg2fa/AbstractRGtoFAConverter.h b/aconversions/src/rg2fa/AbstractRGtoFAConverter.h
index 8555e31f75..226fff1e31 100644
--- a/aconversions/src/rg2fa/AbstractRGtoFAConverter.h
+++ b/aconversions/src/rg2fa/AbstractRGtoFAConverter.h
@@ -2,8 +2,6 @@
 #define __ABSTRACTRGTOFACONVERTER_H__
 
 #include <automaton/FSM/FSM.h>
-#include <grammar/Regular/RegularGrammar.h>
-
 #include <AlibException.h>
 
 #include "../include/macros.h"
@@ -19,11 +17,8 @@ public:
     virtual ~AbstractRGtoFAConverter( void );
 
 protected:
-    AbstractRGtoFAConverter( const grammar::RegularGrammar& grammar );
-    void createStates( void );
-    void createInputAlphabet( void );
+    AbstractRGtoFAConverter( void );
 
-    const grammar::RegularGrammar& m_grammar;
     automaton::FSM m_automaton;
 };
 
diff --git a/aconversions/src/rg2fa/lrg2fa/AbstractLRGtoFAConverter.cpp b/aconversions/src/rg2fa/lrg2fa/AbstractLRGtoFAConverter.cpp
new file mode 100644
index 0000000000..3fe26c9770
--- /dev/null
+++ b/aconversions/src/rg2fa/lrg2fa/AbstractLRGtoFAConverter.cpp
@@ -0,0 +1,25 @@
+/*
+ * AbstractLRGtoFAConverter.cpp
+ *
+ *  Created on: 16. 3. 2014
+ *      Author: tomas
+ */
+
+#include "AbstractLRGtoFAConverter.h"
+
+using namespace grammar;
+
+namespace conversions
+{
+
+AbstractLRGtoFAConverter::AbstractLRGtoFAConverter( const LeftRegularGrammar & lrg ) : m_grammar( lrg )
+{
+
+}
+
+AbstractLRGtoFAConverter::~AbstractLRGtoFAConverter( void )
+{
+
+}
+
+} /* namespace conversions */
diff --git a/aconversions/src/rg2fa/lrg2fa/AbstractLRGtoFAConverter.h b/aconversions/src/rg2fa/lrg2fa/AbstractLRGtoFAConverter.h
new file mode 100644
index 0000000000..4960994ad8
--- /dev/null
+++ b/aconversions/src/rg2fa/lrg2fa/AbstractLRGtoFAConverter.h
@@ -0,0 +1,31 @@
+/*
+ * AbstractLRGtoFAConverter.h
+ *
+ *  Created on: 16. 3. 2014
+ *      Author: tomas
+ */
+
+#ifndef ABSTRACTLRGTOFACONVERTER_H_
+#define ABSTRACTLRGTOFACONVERTER_H_
+
+#include <grammar/Regular/LeftRegularGrammar.h>
+
+#include "../AbstractRGtoFAConverter.h"
+
+namespace conversions
+{
+
+class AbstractLRGtoFAConverter: public AbstractRGtoFAConverter
+{
+public:
+    ~AbstractLRGtoFAConverter( void );
+
+protected:
+    AbstractLRGtoFAConverter( const grammar::LeftRegularGrammar & lrg );
+    const grammar::LeftRegularGrammar & m_grammar;
+
+};
+
+} /* namespace conversions */
+
+#endif /* ABSTRACTLRGTOFACONVERTER_H_ */
diff --git a/aconversions/src/rg2fa/LRGtoFAConverter.cpp b/aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.cpp
similarity index 84%
rename from aconversions/src/rg2fa/LRGtoFAConverter.cpp
rename to aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.cpp
index fdea21b7a2..53d0c68b11 100644
--- a/aconversions/src/rg2fa/LRGtoFAConverter.cpp
+++ b/aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.cpp
@@ -7,7 +7,7 @@ using namespace grammar;
 namespace conversions
 {
 
-LRGtoFAConverter::LRGtoFAConverter( const LeftRegularGrammar & grammar ) : AbstractRGtoFAConverter( grammar )
+LRGtoFAConverter::LRGtoFAConverter( const LeftRegularGrammar & grammar ) : AbstractLRGtoFAConverter( grammar )
 {
     //TODO: if is not LRG throw Exception
 }
@@ -19,8 +19,11 @@ LRGtoFAConverter::~LRGtoFAConverter( void )
 
 FSM LRGtoFAConverter::convert( void )
 {
-    createInputAlphabet( );
-    createStates( );
+    for( const auto & symbol : m_grammar.getTerminalSymbols( ) )
+        m_automaton.addInputSymbol( symbol );
+
+    for( const auto & symbol : m_grammar.getNonTerminalSymbols( ) )
+        m_automaton.addState( State( symbol.getSymbol( ) ) );
 
     const State & startState = m_automaton.createUniqueState( "q0", true );
 
diff --git a/aconversions/src/rg2fa/LRGtoFAConverter.h b/aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.h
similarity index 63%
rename from aconversions/src/rg2fa/LRGtoFAConverter.h
rename to aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.h
index f0f9a39b9e..f36e9df918 100644
--- a/aconversions/src/rg2fa/LRGtoFAConverter.h
+++ b/aconversions/src/rg2fa/lrg2fa/LRGtoFAConverter.h
@@ -1,15 +1,12 @@
 #ifndef __LRGTOFACONVERTER_H__
 #define __LRGTOFACONVERTER_H__
 
-#include <automaton/FSM/FSM.h>
-#include <grammar/Regular/LeftRegularGrammar.h>
-
-#include "AbstractRGtoFAConverter.h"
+#include "AbstractLRGtoFAConverter.h"
 
 namespace conversions
 {
 
-class LRGtoFAConverter : public AbstractRGtoFAConverter
+class LRGtoFAConverter : public AbstractLRGtoFAConverter
 {
 public:
     LRGtoFAConverter( const grammar::LeftRegularGrammar & grammar );
diff --git a/aconversions/src/rg2fa/rrg2fa/AbstractRRGtoFAConverter.cpp b/aconversions/src/rg2fa/rrg2fa/AbstractRRGtoFAConverter.cpp
new file mode 100644
index 0000000000..c67474eb50
--- /dev/null
+++ b/aconversions/src/rg2fa/rrg2fa/AbstractRRGtoFAConverter.cpp
@@ -0,0 +1,25 @@
+/*
+ * AbstractRRGtoFAConverter.cpp
+ *
+ *  Created on: 16. 3. 2014
+ *      Author: tomas
+ */
+
+#include "AbstractRRGtoFAConverter.h"
+
+using namespace grammar;
+
+namespace conversions
+{
+
+AbstractRRGtoFAConverter::AbstractRRGtoFAConverter( const RightRegularGrammar & rrg ) : m_grammar( rrg )
+{
+
+}
+
+AbstractRRGtoFAConverter::~AbstractRRGtoFAConverter()
+{
+
+}
+
+} /* namespace conversions */
diff --git a/aconversions/src/rg2fa/rrg2fa/AbstractRRGtoFAConverter.h b/aconversions/src/rg2fa/rrg2fa/AbstractRRGtoFAConverter.h
new file mode 100644
index 0000000000..c1bf9528da
--- /dev/null
+++ b/aconversions/src/rg2fa/rrg2fa/AbstractRRGtoFAConverter.h
@@ -0,0 +1,30 @@
+/*
+ * AbstractRRGtoFAConverter.h
+ *
+ *  Created on: 16. 3. 2014
+ *      Author: tomas
+ */
+
+#ifndef ABSTRACTRRGTOFACONVERTER_H_
+#define ABSTRACTRRGTOFACONVERTER_H_
+
+#include <grammar/Regular/RightRegularGrammar.h>
+
+#include "../AbstractRGtoFAConverter.h"
+
+namespace conversions
+{
+
+class AbstractRRGtoFAConverter: public conversions::AbstractRGtoFAConverter
+{
+public:
+    virtual ~AbstractRRGtoFAConverter( void );
+
+protected:
+    AbstractRRGtoFAConverter( const grammar::RightRegularGrammar & rrg );
+    const grammar::RightRegularGrammar & m_grammar;
+};
+
+} /* namespace conversions */
+
+#endif /* ABSTRACTRRGTOFACONVERTER_H_ */
diff --git a/aconversions/src/rg2fa/RRGtoFAConverter.cpp b/aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.cpp
similarity index 84%
rename from aconversions/src/rg2fa/RRGtoFAConverter.cpp
rename to aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.cpp
index ffe18ba402..9788b5f3e7 100644
--- a/aconversions/src/rg2fa/RRGtoFAConverter.cpp
+++ b/aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.cpp
@@ -7,7 +7,7 @@ using namespace grammar;
 namespace conversions
 {
 
-RRGtoFAConverter::RRGtoFAConverter( const RightRegularGrammar & grammar ) : AbstractRGtoFAConverter( grammar )
+RRGtoFAConverter::RRGtoFAConverter( const RightRegularGrammar & grammar ) : AbstractRRGtoFAConverter( grammar )
 {
     //TODO: if is not RRG throw Exception
 }
@@ -20,8 +20,11 @@ RRGtoFAConverter::~RRGtoFAConverter( void )
 
 FSM RRGtoFAConverter::convert( void )
 {
-    createInputAlphabet( );
-    createStates( );
+    for( const auto & symbol : m_grammar.getTerminalSymbols( ) )
+        m_automaton.addInputSymbol( symbol );
+
+    for( const auto & symbol : m_grammar.getNonTerminalSymbols( ) )
+        m_automaton.addState( State( symbol.getSymbol( ) ) );
 
     const State & AState = m_automaton.createUniqueState( "A", true );
 
diff --git a/aconversions/src/rg2fa/RRGtoFAConverter.h b/aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.h
similarity index 63%
rename from aconversions/src/rg2fa/RRGtoFAConverter.h
rename to aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.h
index f8230cbe83..32d5117e13 100644
--- a/aconversions/src/rg2fa/RRGtoFAConverter.h
+++ b/aconversions/src/rg2fa/rrg2fa/RRGtoFAConverter.h
@@ -1,15 +1,12 @@
 #ifndef __RRGTOFACONVERTER_H__
 #define __RRGTOFACONVERTER_H__
 
-#include <grammar/Regular/RightRegularGrammar.h>
-#include <automaton/FSM/FSM.h>
-
-#include "AbstractRGtoFAConverter.h"
+#include "AbstractRRGtoFAConverter.h"
 
 namespace conversions
 {
 
-class RRGtoFAConverter : public AbstractRGtoFAConverter
+class RRGtoFAConverter : public AbstractRRGtoFAConverter
 {
 public:
     RRGtoFAConverter( const grammar::RightRegularGrammar & grammar );
diff --git a/aconversions/src/rg2re/AbstractRGtoREConverter.cpp b/aconversions/src/rg2re/AbstractRGtoREConverter.cpp
index 95fb644460..60bae347d1 100644
--- a/aconversions/src/rg2re/AbstractRGtoREConverter.cpp
+++ b/aconversions/src/rg2re/AbstractRGtoREConverter.cpp
@@ -7,12 +7,10 @@
 
 #include "AbstractRGtoREConverter.h"
 
-using namespace grammar;
-
 namespace conversions
 {
 
-AbstractRGtoREConverter::AbstractRGtoREConverter( const RegularGrammar & grammar ) : m_grammar( grammar )
+AbstractRGtoREConverter::AbstractRGtoREConverter( void )
 {
 
 }
diff --git a/aconversions/src/rg2re/AbstractRGtoREConverter.h b/aconversions/src/rg2re/AbstractRGtoREConverter.h
index 7eda2748b1..a333f37ae2 100644
--- a/aconversions/src/rg2re/AbstractRGtoREConverter.h
+++ b/aconversions/src/rg2re/AbstractRGtoREConverter.h
@@ -8,7 +8,6 @@
 #ifndef ABSTRACTRGTORECONVERTER_H_
 #define ABSTRACTRGTORECONVERTER_H_
 
-#include <grammar/Regular/RegularGrammar.h>
 #include <regexp/RegExp.h>
 
 #include "../abstract/Conversion.h"
@@ -23,9 +22,8 @@ public:
     virtual ~AbstractRGtoREConverter( void );
 
 protected:
-    AbstractRGtoREConverter( const grammar::RegularGrammar& grammar );
+    AbstractRGtoREConverter( void );
 
-    const grammar::RegularGrammar& m_grammar;
     regexp::RegExp m_re;
 };
 
diff --git a/aconversions/src/rg2re/lrg2re/AbstractLRGtoREConverter.cpp b/aconversions/src/rg2re/lrg2re/AbstractLRGtoREConverter.cpp
new file mode 100644
index 0000000000..10e34c2d20
--- /dev/null
+++ b/aconversions/src/rg2re/lrg2re/AbstractLRGtoREConverter.cpp
@@ -0,0 +1,25 @@
+/*
+ * AbstractLRGtoREConverter.cpp
+ *
+ *  Created on: 16. 3. 2014
+ *      Author: tomas
+ */
+
+#include "AbstractLRGtoREConverter.h"
+
+using namespace grammar;
+
+namespace conversions
+{
+
+AbstractLRGtoREConverter::AbstractLRGtoREConverter( const LeftRegularGrammar & lrg ) : m_grammar( lrg )
+{
+
+}
+
+AbstractLRGtoREConverter::~AbstractLRGtoREConverter( void )
+{
+
+}
+
+} /* namespace conversions */
diff --git a/aconversions/src/rg2re/lrg2re/AbstractLRGtoREConverter.h b/aconversions/src/rg2re/lrg2re/AbstractLRGtoREConverter.h
new file mode 100644
index 0000000000..67c2620ae2
--- /dev/null
+++ b/aconversions/src/rg2re/lrg2re/AbstractLRGtoREConverter.h
@@ -0,0 +1,30 @@
+/*
+ * AbstractLRGtoREConverter.h
+ *
+ *  Created on: 16. 3. 2014
+ *      Author: tomas
+ */
+
+#ifndef ABSTRACTLRGTORECONVERTER_H_
+#define ABSTRACTLRGTORECONVERTER_H_
+
+#include <grammar/Regular/LeftRegularGrammar.h>
+
+#include "../AbstractRGtoREConverter.h"
+
+namespace conversions
+{
+
+class AbstractLRGtoREConverter: public AbstractRGtoREConverter
+{
+public:
+    virtual ~AbstractLRGtoREConverter( void );
+
+protected:
+    AbstractLRGtoREConverter( const grammar::LeftRegularGrammar & lrg );
+    const grammar::LeftRegularGrammar & m_grammar;
+};
+
+} /* namespace conversions */
+
+#endif /* ABSTRACTLRGTORECONVERTER_H_ */
diff --git a/aconversions/src/rg2re/LRGAlgebraic.cpp b/aconversions/src/rg2re/lrg2re/LRGAlgebraic.cpp
similarity index 97%
rename from aconversions/src/rg2re/LRGAlgebraic.cpp
rename to aconversions/src/rg2re/lrg2re/LRGAlgebraic.cpp
index 909a47320a..deb33731f0 100644
--- a/aconversions/src/rg2re/LRGAlgebraic.cpp
+++ b/aconversions/src/rg2re/lrg2re/LRGAlgebraic.cpp
@@ -14,7 +14,7 @@ using namespace regexp;
 namespace conversions
 {
 
-LRGAlgebraic::LRGAlgebraic( const LeftRegularGrammar & rg ) : AbstractRGtoREConverter( rg )
+LRGAlgebraic::LRGAlgebraic( const LeftRegularGrammar & rg ) : AbstractLRGtoREConverter( rg )
 {
 
 }
diff --git a/aconversions/src/rg2re/LRGAlgebraic.h b/aconversions/src/rg2re/lrg2re/LRGAlgebraic.h
similarity index 64%
rename from aconversions/src/rg2re/LRGAlgebraic.h
rename to aconversions/src/rg2re/lrg2re/LRGAlgebraic.h
index e1cec275f6..e0abf34ada 100644
--- a/aconversions/src/rg2re/LRGAlgebraic.h
+++ b/aconversions/src/rg2re/lrg2re/LRGAlgebraic.h
@@ -8,16 +8,13 @@
 #ifndef LRGALGEBRAIC_H_
 #define LRGALGEBRAIC_H_
 
-#include <grammar/Regular/LeftRegularGrammar.h>
-#include <regexp/RegExp.h>
-
-#include "../shared/equations/LeftRegularEquationSolver.h"
-#include "AbstractRGtoREConverter.h"
+#include "../../shared/equations/LeftRegularEquationSolver.h"
+#include "AbstractLRGtoREConverter.h"
 
 namespace conversions
 {
 
-class LRGAlgebraic: public AbstractRGtoREConverter
+class LRGAlgebraic: public AbstractLRGtoREConverter
 {
 public:
     LRGAlgebraic( const grammar::LeftRegularGrammar & rg );
diff --git a/aconversions/src/rg2re/rrg2re/AbstractRRGtoREConverter.cpp b/aconversions/src/rg2re/rrg2re/AbstractRRGtoREConverter.cpp
new file mode 100644
index 0000000000..0a3c41ad10
--- /dev/null
+++ b/aconversions/src/rg2re/rrg2re/AbstractRRGtoREConverter.cpp
@@ -0,0 +1,25 @@
+/*
+ * AbstractRRGtoREConverter.cpp
+ *
+ *  Created on: 16. 3. 2014
+ *      Author: tomas
+ */
+
+#include "AbstractRRGtoREConverter.h"
+
+using namespace grammar;
+
+namespace conversions
+{
+
+AbstractRRGtoREConverter::AbstractRRGtoREConverter( const RightRegularGrammar & rrg ) : m_grammar( rrg )
+{
+
+}
+
+AbstractRRGtoREConverter::~AbstractRRGtoREConverter( void )
+{
+
+}
+
+} /* namespace conversions */
diff --git a/aconversions/src/rg2re/rrg2re/AbstractRRGtoREConverter.h b/aconversions/src/rg2re/rrg2re/AbstractRRGtoREConverter.h
new file mode 100644
index 0000000000..2dea0db518
--- /dev/null
+++ b/aconversions/src/rg2re/rrg2re/AbstractRRGtoREConverter.h
@@ -0,0 +1,31 @@
+/*
+ * AbstractRRGtoREConverter.h
+ *
+ *  Created on: 16. 3. 2014
+ *      Author: tomas
+ */
+
+#ifndef ABSTRACTRRGTORECONVERTER_H_
+#define ABSTRACTRRGTORECONVERTER_H_
+
+#include <grammar/Regular/RightRegularGrammar.h>
+
+#include "../AbstractRGtoREConverter.h"
+
+namespace conversions
+{
+
+class AbstractRRGtoREConverter: public AbstractRGtoREConverter
+{
+public:
+    virtual ~AbstractRRGtoREConverter( void );
+
+protected:
+    AbstractRRGtoREConverter( const grammar::RightRegularGrammar & rrg );
+
+    const grammar::RightRegularGrammar & m_grammar;
+};
+
+} /* namespace conversions */
+
+#endif /* ABSTRACTRRGTORECONVERTER_H_ */
diff --git a/aconversions/src/rg2re/RRGAlgebraic.cpp b/aconversions/src/rg2re/rrg2re/RRGAlgebraic.cpp
similarity index 97%
rename from aconversions/src/rg2re/RRGAlgebraic.cpp
rename to aconversions/src/rg2re/rrg2re/RRGAlgebraic.cpp
index d0f7cbdf4f..87a2b7a2d5 100644
--- a/aconversions/src/rg2re/RRGAlgebraic.cpp
+++ b/aconversions/src/rg2re/rrg2re/RRGAlgebraic.cpp
@@ -14,7 +14,7 @@ using namespace regexp;
 namespace conversions
 {
 
-RRGAlgebraic::RRGAlgebraic( const RightRegularGrammar & rg ) : AbstractRGtoREConverter( rg )
+RRGAlgebraic::RRGAlgebraic( const RightRegularGrammar & rg ) : AbstractRRGtoREConverter( rg )
 {
 
 }
diff --git a/aconversions/src/rg2re/RRGAlgebraic.h b/aconversions/src/rg2re/rrg2re/RRGAlgebraic.h
similarity index 64%
rename from aconversions/src/rg2re/RRGAlgebraic.h
rename to aconversions/src/rg2re/rrg2re/RRGAlgebraic.h
index b1f59bba91..85b907effb 100644
--- a/aconversions/src/rg2re/RRGAlgebraic.h
+++ b/aconversions/src/rg2re/rrg2re/RRGAlgebraic.h
@@ -8,16 +8,13 @@
 #ifndef RRGALGEBRAIC_H_
 #define RRGALGEBRAIC_H_
 
-#include <grammar/Regular/RightRegularGrammar.h>
-#include <regexp/RegExp.h>
-
-#include "../shared/equations/RightRegularEquationSolver.h"
-#include "AbstractRGtoREConverter.h"
+#include "../../shared/equations/RightRegularEquationSolver.h"
+#include "AbstractRRGtoREConverter.h"
 
 namespace conversions
 {
 
-class RRGAlgebraic: public AbstractRGtoREConverter
+class RRGAlgebraic: public AbstractRRGtoREConverter
 {
 public:
     RRGAlgebraic( const grammar::RightRegularGrammar & rg );
-- 
GitLab