diff --git a/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.cpp b/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.cpp deleted file mode 100644 index 755cf1ba54afe6302bdf4577fcd2253bd940a47f..0000000000000000000000000000000000000000 --- a/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - * LeftToRightRegularGrammar.cpp - * - * Created on: 8. 3. 2014 - * Author: tomas - */ - -#include "LeftToRightRegularGrammar.h" - -using namespace alphabet; -using namespace grammar; -using namespace std; - -namespace conversions -{ - -LeftToRightRegularGrammar::LeftToRightRegularGrammar( const grammar::LeftRegularGrammar & lrg ) : m_lrg( lrg ) -{ - -} - -LeftToRightRegularGrammar::~LeftToRightRegularGrammar( void ) -{ - -} - -RightRegularGrammar LeftToRightRegularGrammar::convert( void ) -{ - RightRegularGrammar rrg; - - for( const auto & symbol : m_lrg.getNonTerminalSymbols( ) ) - rrg.addNonTerminalSymbol( symbol ); - - for( const auto & symbol : m_lrg.getTerminalSymbols( ) ) - rrg.addTerminalSymbol( symbol ); - - // 1. - Symbol s = rrg.createUniqueNonTerminalSymbol( m_lrg.getStartSymbol( ).getSymbol( ), false ); - rrg.setStartSymbol( s ); - - // 2. - for( const auto & rule : m_lrg.getRules( ) ) - { - if( rule.getRightSide( ).size( ) == 2 ) - { - list<Symbol> leftSide = { rule.getRightSide( ).front( ) }; - list<Symbol> rightSide = { rule.getRightSide( ).back( ), rule.getLeftSide( ).front( ) }; - rrg.addRule( Rule( leftSide, rightSide ) ); - - if( rule.getLeftSide( ).front( ) == m_lrg.getStartSymbol( ) ) - { - list<Symbol> leftSide = { rule.getRightSide( ).front( ) }; - list<Symbol> rightSide = { rule.getRightSide( ).back( ) }; - rrg.addRule( Rule( leftSide, rightSide ) ); - } - } - else if( rule.getRightSide( ).size( ) == 1 ) - { - list<Symbol> leftSide = { rrg.getStartSymbol( ) }; - list<Symbol> rightSide = { rule.getRightSide( ).front( ), rule.getLeftSide( ).front( ) }; - rrg.addRule( Rule( leftSide, rightSide ) ); - - if( rule.getLeftSide( ).front( ) == m_lrg.getStartSymbol( ) ) - { - list<Symbol> leftSide = { rrg.getStartSymbol( ) }; - list<Symbol> rightSide = { rule.getRightSide( ).front( ) }; - rrg.addRule( Rule( leftSide, rightSide ) ); - } - } - else - { - // assert leftSide == rrg.getStartSymbol( ) - list<Symbol> leftSide = { rrg.getStartSymbol( ) }; - list<Symbol> rightSide; - rrg.addRule( Rule( leftSide, rightSide) ); - } - } - - return rrg; -} - -} /* namespace conversions */ diff --git a/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.h b/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.h deleted file mode 100644 index 0ba1f9f0ec7bd4c706c8a7b227f9fcb42a8e2bd7..0000000000000000000000000000000000000000 --- a/aconversions/src/rg2rg/lrg2rrg/LeftToRightRegularGrammar.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * LeftToRightRegularGrammar.h - * - * Created on: 8. 3. 2014 - * Author: tomas - */ - -#ifndef LEFTTORIGHTREGULARGRAMMAR_H_ -#define LEFTTORIGHTREGULARGRAMMAR_H_ - -#include <grammar/Regular/LeftRegularGrammar.h> -#include <grammar/Regular/RightRegularGrammar.h> - -#include "../../interface/IConversionRRG.h" - -namespace conversions -{ - -class LeftToRightRegularGrammar: public IConversionRRG -{ -public: - /** - * @param lrg Original left regular grammar. - */ - LeftToRightRegularGrammar( const grammar::LeftRegularGrammar & lrg ); - - virtual ~LeftToRightRegularGrammar( void ); - - /** - * Performs conversion. - * @return right regular grammar which is equivalent to source left regular grammar. - */ - grammar::RightRegularGrammar convert( void ); - -protected: - /** - * input grammar - */ - const grammar::LeftRegularGrammar & m_lrg; -}; - -} /* namespace conversions */ - -#endif /* LEFTTORIGHTREGULARGRAMMAR_H_ */ diff --git a/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.cpp b/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.cpp deleted file mode 100644 index e90b736c458c3c8488dd21d099bfd91df926e86a..0000000000000000000000000000000000000000 --- a/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - * RightToLeftRegularGrammar.cpp - * - * Created on: 8. 3. 2014 - * Author: tomas - */ - -#include "RightToLeftRegularGrammar.h" - -using namespace alphabet; -using namespace grammar; -using namespace std; - -namespace conversions -{ - -RightToLeftRegularGrammar::RightToLeftRegularGrammar( const RightRegularGrammar & rrg ) : m_rrg( rrg ) -{ - -} - -RightToLeftRegularGrammar::~RightToLeftRegularGrammar( void ) -{ - -} - -LeftRegularGrammar RightToLeftRegularGrammar::convert( void ) -{ - LeftRegularGrammar lrg; - - for( const auto & symbol : m_rrg.getNonTerminalSymbols( ) ) - lrg.addNonTerminalSymbol( symbol ); - - for( const auto & symbol : m_rrg.getTerminalSymbols( ) ) - lrg.addTerminalSymbol( symbol ); - - // 1. - Symbol s = lrg.createUniqueNonTerminalSymbol( m_rrg.getStartSymbol( ).getSymbol( ), false ); - lrg.setStartSymbol( s ); - - // 2. - for( const auto & rule : m_rrg.getRules( ) ) - { - if( rule.getRightSide( ).size( ) == 2 ) - { - list<Symbol> leftSide = { rule.getRightSide( ).back( ) }; - list<Symbol> rightSide = { rule.getLeftSide( ).front( ), rule.getRightSide( ).front( ) }; - lrg.addRule( Rule( leftSide, rightSide ) ); - - if( rule.getLeftSide( ).front( ) == m_rrg.getStartSymbol( ) ) - { - list<Symbol> leftSide = { rule.getRightSide( ).back( ) }; - list<Symbol> rightSide = { rule.getRightSide( ).front( ) }; - lrg.addRule( Rule( leftSide, rightSide ) ); - } - } - else if( rule.getRightSide( ).size( ) == 1 ) - { - list<Symbol> leftSide = { lrg.getStartSymbol( ) }; - list<Symbol> rightSide = { rule.getLeftSide( ).front( ), rule.getRightSide( ).front( ) }; - lrg.addRule( Rule( leftSide, rightSide ) ); - - if( rule.getLeftSide( ).front( ) == m_rrg.getStartSymbol( ) ) - { - list<Symbol> leftSide = { lrg.getStartSymbol( ) }; - list<Symbol> rightSide = { rule.getRightSide( ).front( ) }; - lrg.addRule( Rule( leftSide, rightSide ) ); - } - } - else - { - // assert leftSide == rrg.getStartSymbol( ) - list<Symbol> leftSide = { lrg.getStartSymbol( ) }; - list<Symbol> rightSide; - lrg.addRule( Rule( leftSide, rightSide) ); - } - } - - return lrg; -} - -} /* namespace conversions */ diff --git a/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.h b/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.h deleted file mode 100644 index 12ba44eff4a2f13603aeb45012d6423b0577eb7e..0000000000000000000000000000000000000000 --- a/aconversions/src/rg2rg/rrg2lrg/RightToLeftRegularGrammar.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * RightToLeftRegularGrammar.h - * - * Created on: 8. 3. 2014 - * Author: tomas - */ - -#ifndef RIGHTTOLEFTREGULARGRAMMAR_H_ -#define RIGHTTOLEFTREGULARGRAMMAR_H_ - -#include <grammar/Regular/LeftRegularGrammar.h> -#include <grammar/Regular/RightRegularGrammar.h> - -#include "../../interface/IConversionLRG.h" - -namespace conversions -{ - -/** - * Converts right regular grammar to left regular grammar. - */ -class RightToLeftRegularGrammar: public IConversionLRG -{ -public: - /** - * @param rrg Original right regular grammar. - */ - RightToLeftRegularGrammar( const grammar::RightRegularGrammar & rrg ); - - virtual ~RightToLeftRegularGrammar( void ); - - /** - * Performs conversion. - * @return left regular grammar which is equivalent to source right regular grammar. - */ - grammar::LeftRegularGrammar convert( void ); - -private: - /** - * - */ - const grammar::RightRegularGrammar & m_rrg; -}; - -} /* namespace conversions */ - -#endif /* RIGHTTOLEFTREGULARGRAMMAR_H_ */ diff --git a/aconversions/src/shared/Hexavigesimal.cpp b/aconversions/src/shared/Hexavigesimal.cpp deleted file mode 100644 index 77bb1f34124f1924f5a12b0b67b09253319a0d77..0000000000000000000000000000000000000000 --- a/aconversions/src/shared/Hexavigesimal.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Hexavigesimal.cpp - * - * Created on: 19. 4. 2014 - * Author: tomas - */ - -#include "Hexavigesimal.h" - -using namespace std; - -namespace conversions -{ - -string toBase26( int id ) -{ - // http://en.wikipedia.org/wiki/Hexavigesimal - - unsigned int n = id; - string name; - do - { - unsigned int remainder = n % 26; - name += ( char )( remainder + 'A' ); - n = (n - remainder) / 26; - } while (n > 0); - - return string( name.rbegin( ), name.rend( ) ); -} - -} /* namespace conversions */ diff --git a/aconversions/src/shared/Hexavigesimal.h b/aconversions/src/shared/Hexavigesimal.h deleted file mode 100644 index 2c01e12d3d7580813ac086d7944e8670c4b51491..0000000000000000000000000000000000000000 --- a/aconversions/src/shared/Hexavigesimal.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Hexavigesimal.h - * - * Created on: 19. 4. 2014 - * Author: tomas - */ - -#ifndef HEXAVIGESIMAL_H_ -#define HEXAVIGESIMAL_H_ - -#include <string> - -namespace conversions -{ - -/** - * Maps 1 -> A, 2 -> B, ..., AA, AB, AC, ... , AAA, AAB, ... - * http://en.wikipedia.org/wiki/Hexavigesimal - */ -std::string toBase26( int n ); - -} /* namespace conversions */ - -#endif /* HEXAVIGESIMAL_H_ */