Skip to content
Snippets Groups Projects
Commit 38a23283 authored by Jan Trávníček's avatar Jan Trávníček
Browse files

use cli in compaction

parent 5316b51b
No related branches found
No related tags found
No related merge requests found
EXECUTABLE:=acompaction2 EXECUTABLE:=acompaction2
LINK_PATHS=../alib2elgo/ ../alib2algo/ ../alib2data/ ../alib2common/ ../alib2std/ LINK_PATHS=../alib2cli/ ../alib2elgo/ ../alib2algo/ ../alib2data/ ../alib2common/ ../alib2std/
LINK_LIBRARIES=alib2elgo alib2algo alib2data alib2common alib2std xml2 LINK_LIBRARIES=alib2cli alib2elgo alib2algo alib2data alib2common alib2std xml2
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2elgo/src/ \$$(SOURCES_BASE_DIR)/../../alib2algo/src/ \$$(SOURCES_BASE_DIR)/../../alib2data/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/ INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2cli/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/
...@@ -8,11 +8,10 @@ ...@@ -8,11 +8,10 @@
#include <tclap/CmdLine.h> #include <tclap/CmdLine.h>
#include <global/GlobalData.h> #include <global/GlobalData.h>
#include <measure> #include <measure>
#include <sax/FromXMLParserHelper.h>
   
#include "exception/CommonException.h" #include <exception/CommonException.h>
#include "factory/XmlDataFactory.hpp" #include <lexer/Lexer.h>
#include "automaton/transform/Compaction.h" #include <parser/Parser.h>
   
int main(int argc, char** argv) { int main(int argc, char** argv) {
try { try {
...@@ -37,23 +36,27 @@ int main(int argc, char** argv) { ...@@ -37,23 +36,27 @@ int main(int argc, char** argv) {
if(measure.isSet()) if(measure.isSet())
common::GlobalData::measure = true; common::GlobalData::measure = true;
   
measurements::start("Overal", measurements::Type::OVERALL); cli::Environment environment;
measurements::start("Input read", measurements::Type::AUXILIARY); environment.setBinding ( "stdin", input.getValue ( ) );
environment.setBinding ( "stdout", "-" );
   
automaton::Automaton automaton = alib::XmlDataFactory::fromTokens (sax::FromXMLParserHelper::parseInput(input)); measurements::start ( "Overal", measurements::Type::OVERALL );
measurements::start ( "Input read", measurements::Type::AUXILIARY );
   
measurements::end(); cli::Parser parser ( cli::Lexer ( "execute <#stdin > $inputAutomaton" ) );
measurements::start("Algorithm", measurements::Type::MAIN); parser.parse ( )->run ( environment );
   
automaton::Automaton res = automaton::transform::Compaction::convert(automaton); measurements::end ( );
measurements::start ( "Algorithm", measurements::Type::MAIN );
   
measurements::end(); parser = cli::Parser ( cli::Lexer ( "execute automaton::transform::Compaction $inputAutomaton > $outputAutomaton" ) );
measurements::start("Output write", measurements::Type::AUXILIARY); parser.parse ( )->run ( environment );
   
alib::XmlDataFactory::toStdout(res); measurements::end ( );
measurements::start ( "Output write", measurements::Type::AUXILIARY );
   
measurements::end(); parser = cli::Parser ( cli::Lexer ( "execute $outputAutomaton >#stdout" ) );
measurements::end(); parser.parse ( )->run ( environment );
   
if(measure.getValue()) ext::cmeasure << measurements::results() << std::endl; if(measure.getValue()) ext::cmeasure << measurements::results() << std::endl;
   
......
...@@ -12,17 +12,9 @@ namespace automaton { ...@@ -12,17 +12,9 @@ namespace automaton {
   
namespace transform { namespace transform {
   
automaton::Automaton Compaction::convert(const automaton::Automaton& automaton) { auto CompactionCompactNFA = registration::AbstractRegister < Compaction, automaton::CompactNFA < >, const automaton::CompactNFA < > & > ( Compaction::convert );
return dispatch(automaton.getData()); auto CompactionDFA = registration::AbstractRegister < Compaction, automaton::CompactNFA < >, const automaton::DFA < > & > ( Compaction::convert );
} auto CompactionNFA = registration::AbstractRegister < Compaction, automaton::CompactNFA < >, const automaton::NFA < > & > ( Compaction::convert );
auto CompactionCompactNFA = registration::OverloadRegister < Compaction, automaton::CompactNFA < >, automaton::CompactNFA < > > ( Compaction::convert );
auto CompactionDFA = registration::OverloadRegister < Compaction, automaton::CompactNFA < >, automaton::DFA < > > ( Compaction::convert );
auto CompactionNFA = registration::OverloadRegister < Compaction, automaton::CompactNFA < >, automaton::NFA < > > ( Compaction::convert );
auto CompactionCompactNFA2 = registration::AbstractRegister < Compaction, automaton::CompactNFA < >, const automaton::CompactNFA < > & > ( Compaction::convert );
auto CompactionDFA2 = registration::AbstractRegister < Compaction, automaton::CompactNFA < >, const automaton::DFA < > & > ( Compaction::convert );
auto CompactionNFA2 = registration::AbstractRegister < Compaction, automaton::CompactNFA < >, const automaton::NFA < > & > ( Compaction::convert );
   
} /* namespace transform */ } /* namespace transform */
   
......
...@@ -11,9 +11,6 @@ ...@@ -11,9 +11,6 @@
#include <stack> #include <stack>
#include <tuple> #include <tuple>
   
#include <core/multipleDispatch.hpp>
#include "automaton/Automaton.h"
#include "automaton/AutomatonFeatures.h" #include "automaton/AutomatonFeatures.h"
#include <automaton/FSM/CompactNFA.h> #include <automaton/FSM/CompactNFA.h>
#include <automaton/FSM/DFA.h> #include <automaton/FSM/DFA.h>
...@@ -25,7 +22,7 @@ namespace transform { ...@@ -25,7 +22,7 @@ namespace transform {
/** /**
* Transforms FSM to CompactNFA * Transforms FSM to CompactNFA
*/ */
class Compaction : public alib::SingleDispatch<Compaction, automaton::Automaton, const automaton::AutomatonBase &> { class Compaction {
public: public:
template < class SymbolType, class StateType > template < class SymbolType, class StateType >
static automaton::CompactNFA < SymbolType, StateType > convert( const automaton::DFA < SymbolType, StateType > & automaton); static automaton::CompactNFA < SymbolType, StateType > convert( const automaton::DFA < SymbolType, StateType > & automaton);
...@@ -33,13 +30,6 @@ public: ...@@ -33,13 +30,6 @@ public:
static automaton::CompactNFA < SymbolType, StateType > convert( const automaton::NFA < SymbolType, StateType > & automaton); static automaton::CompactNFA < SymbolType, StateType > convert( const automaton::NFA < SymbolType, StateType > & automaton);
template < class SymbolType, class StateType > template < class SymbolType, class StateType >
static automaton::CompactNFA < SymbolType, StateType > convert( const automaton::CompactNFA < SymbolType, StateType > & automaton); static automaton::CompactNFA < SymbolType, StateType > convert( const automaton::CompactNFA < SymbolType, StateType > & automaton);
/**
* Transforms
* @param automaton FSM to transform
* @return CompactNFA equivalent to given automaton
*/
static automaton::Automaton convert( const automaton::Automaton & automaton );
}; };
   
template < class SymbolType, class StateType > template < class SymbolType, class StateType >
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment