diff --git a/aconversions/src/conversions/rg2fa/Makefile b/aconversions/src/conversions/rg2fa/Makefile index 2bf7c4c8522576a6d5d6ae87735404c72c6facaf..f4ac9a96d6fb543ab2833471e796bfb15c7164c4 100644 --- a/aconversions/src/conversions/rg2fa/Makefile +++ b/aconversions/src/conversions/rg2fa/Makefile @@ -1,8 +1,21 @@ EXECUTABLE=arg2fa -all: $(EXECUTABLE).o AbstractRGtoFAConverter.o LRGtoFAConverter.o RRGtoFAConverter.o AutomatonUtils.o GrammarUtils.o ConversionException.o - $(LD) $(LDFLAGS) $^ -o $(EXECUTABLE) - cp $(EXECUTABLE) $(BIN_DIR) +all: alrg2fa arrg2fa + cp alrg2fa $(BIN_DIR) + cp arrg2fa $(BIN_DIR) + +alrg2fa: alrg2fa.o AbstractRGtoFAConverter.o LRGtoFAConverter.o AutomatonUtils.o GrammarUtils.o ConversionException.o + $(LD) $(LDFLAGS) $^ -o $@ + +arrg2fa: arrg2fa.o AbstractRGtoFAConverter.o RRGtoFAConverter.o AutomatonUtils.o GrammarUtils.o ConversionException.o + $(LD) $(LDFLAGS) $^ -o $@ + +alrg2fa.o: alrg2fa.cpp LRGtoFAConverter.h ../../utils/AutomatonUtils.h ../../utils/utils.h ../../utils/GrammarUtils.h AbstractRGtoFAConverter.h RRGtoFAConverter.h + $(CXX) $(CXXFLAGS) $< -o $@ + +arrg2fa.o: arrg2fa.cpp LRGtoFAConverter.h ../../utils/AutomatonUtils.h ../../utils/utils.h ../../utils/GrammarUtils.h AbstractRGtoFAConverter.h RRGtoFAConverter.h + $(CXX) $(CXXFLAGS) $< -o $@ + $(EXECUTABLE).o: arg2fa.cpp LRGtoFAConverter.h ../../utils/AutomatonUtils.h ../../utils/utils.h ../../utils/GrammarUtils.h AbstractRGtoFAConverter.h RRGtoFAConverter.h $(CXX) $(CXXFLAGS) $< -o $@ diff --git a/aconversions/src/conversions/rg2fa/alrg2fa.cpp b/aconversions/src/conversions/rg2fa/alrg2fa.cpp new file mode 100644 index 0000000000000000000000000000000000000000..bf7251fad2f161ff5b12d40808632877ae59986d --- /dev/null +++ b/aconversions/src/conversions/rg2fa/alrg2fa.cpp @@ -0,0 +1,34 @@ +#include <iostream> +#include <cstdlib> + +#include <GrammarFactory.h> +#include <AlibException.h> + +#include <automaton/AutomatonPrinter.h> + +#include "LRGtoFAConverter.h" + +using namespace std; +using namespace grammar; +using namespace automaton; +using namespace alib; +using namespace conversions; + +int main(int argc, char** argv) +{ + try + { + string input( istreambuf_iterator<char>( cin ), ( istreambuf_iterator<char>( ) ) ); + + UnknownGrammar rg = GrammarFactory::fromString( input ); + + LeftRegularGrammar rrg = GrammarFactory::buildLeftRegularGrammar( rg ); + LRGtoFAConverter conv( rrg ); + conv.convert( ).toXML( cout ); + } + catch( AlibException & e ) + { + cout << e.what( ) << endl; + return 0; + } +} diff --git a/aconversions/src/conversions/rg2fa/arg2fa.cpp b/aconversions/src/conversions/rg2fa/arg2fa.cpp deleted file mode 100644 index f5bf31a320ef72089e8c97f7ce9c47c0b99082f2..0000000000000000000000000000000000000000 --- a/aconversions/src/conversions/rg2fa/arg2fa.cpp +++ /dev/null @@ -1,52 +0,0 @@ -//============================================================================ -// Name : afsm2rg.cpp -// Author : Tomas Pecka -// Version : -// Copyright : -// Description : -//============================================================================ - -#include <iostream> -#include <cstdlib> - -#include <GrammarFactory.h> -#include <AlibException.h> - -#include <automaton/AutomatonPrinter.h> - -#include "LRGtoFAConverter.h" -#include "RRGtoFAConverter.h" - -using namespace std; -using namespace grammar; -using namespace automaton; -using namespace alib; -using namespace conversions; - -int main(int argc, char** argv) -{ - try - { - string input( istreambuf_iterator<char>( cin ), ( istreambuf_iterator<char>( ) ) ); - - UnknownGrammar rg = GrammarFactory::fromString( input ); - //if( isLeftRegularGrammar( rg ) ) - // LRGtoFSMConverter conv( GrammarFactory::buildLeftRegularGrammar( rg ) ) - //else if( isRightRegularGrammar( rg ) ) - RightRegularGrammar rrg = GrammarFactory::buildRightRegularGrammar( rg ); - RRGtoFAConverter conv( rrg ); - //else - //{ - // cout << "Unknow regular grammar type. Neither left nor right. WTF?" << endl; - // return EXIT_FAILURE; - //} - - FSM fsm = conv.convert( ); - fsm.toXML( cout ); - } - catch( AlibException & e ) - { - cout << e.what( ) << endl; - return 0; - } -} diff --git a/aconversions/src/conversions/rg2fa/arrg2fa.cpp b/aconversions/src/conversions/rg2fa/arrg2fa.cpp new file mode 100644 index 0000000000000000000000000000000000000000..6aea8d07b51b7244368f62585da9682721380f7f --- /dev/null +++ b/aconversions/src/conversions/rg2fa/arrg2fa.cpp @@ -0,0 +1,34 @@ +#include <iostream> +#include <cstdlib> + +#include <GrammarFactory.h> +#include <AlibException.h> + +#include <automaton/AutomatonPrinter.h> + +#include "RRGtoFAConverter.h" + +using namespace std; +using namespace grammar; +using namespace automaton; +using namespace alib; +using namespace conversions; + +int main(int argc, char** argv) +{ + try + { + string input( istreambuf_iterator<char>( cin ), ( istreambuf_iterator<char>( ) ) ); + + UnknownGrammar rg = GrammarFactory::fromString( input ); + + RightRegularGrammar rrg = GrammarFactory::buildRightRegularGrammar( rg ); + RRGtoFAConverter conv( rrg ); + conv.convert( ).toXML( cout ); + } + catch( AlibException & e ) + { + cout << e.what( ) << endl; + return 0; + } +}