diff --git a/alib2algo/src/conversions/fa2re/StateElimination.cpp b/alib2algo/src/conversions/fa2re/StateElimination.cpp index 2c933a2f6c7b6028b1e17493a79b19758afdb955..85f1101033025c2586429932490007a64a32b6a2 100644 --- a/alib2algo/src/conversions/fa2re/StateElimination.cpp +++ b/alib2algo/src/conversions/fa2re/StateElimination.cpp @@ -58,42 +58,6 @@ regexp::RegExp StateElimination::convert(const T& automaton) } -void StateElimination::Visit(void* data, const automaton::EpsilonNFA& automaton) const -{ - regexp::RegExp* & out = *((regexp::RegExp**) data); - out = new regexp::RegExp(convert(automaton)); -} - -void StateElimination::Visit(void* data, const automaton::MultiInitialStateNFA& automaton) const -{ - regexp::RegExp* & out = *((regexp::RegExp**) data); - out = new regexp::RegExp(convert(automaton)); -} - -void StateElimination::Visit(void* data, const automaton::NFA& automaton) const -{ - regexp::RegExp* & out = *((regexp::RegExp**) data); - out = new regexp::RegExp(convert(automaton)); -} - -void StateElimination::Visit(void* data, const automaton::DFA& automaton) const -{ - regexp::RegExp* & out = *((regexp::RegExp**) data); - out = new regexp::RegExp(convert(automaton)); -} - -void StateElimination::Visit(void* data, const automaton::ExtendedNFA& automaton) const -{ - regexp::RegExp* & out = *((regexp::RegExp**) data); - out = new regexp::RegExp(convert(automaton)); -} - -void StateElimination::Visit(void* data, const automaton::CompactNFA& automaton) const -{ - regexp::RegExp* & out = *((regexp::RegExp**) data); - out = new regexp::RegExp(convert(automaton)); -} - automaton::ExtendedNFA StateElimination::eliminateState(const automaton::ExtendedNFA& extendedAutomaton, const automaton::State& q) { automaton::ExtendedNFA newAutomaton(extendedAutomaton.getInitialState()); // sure that q is neither initial nor final (follows from step 2 - extending ExtendedNFA) @@ -167,6 +131,42 @@ void StateElimination::extendExtendedNFA(automaton::ExtendedNFA& automaton) } } +void StateElimination::Visit(void* data, const automaton::EpsilonNFA& automaton) const +{ + regexp::RegExp* & out = *((regexp::RegExp**) data); + out = new regexp::RegExp(convert(automaton)); +} + +void StateElimination::Visit(void* data, const automaton::MultiInitialStateNFA& automaton) const +{ + regexp::RegExp* & out = *((regexp::RegExp**) data); + out = new regexp::RegExp(convert(automaton)); +} + +void StateElimination::Visit(void* data, const automaton::NFA& automaton) const +{ + regexp::RegExp* & out = *((regexp::RegExp**) data); + out = new regexp::RegExp(convert(automaton)); +} + +void StateElimination::Visit(void* data, const automaton::DFA& automaton) const +{ + regexp::RegExp* & out = *((regexp::RegExp**) data); + out = new regexp::RegExp(convert(automaton)); +} + +void StateElimination::Visit(void* data, const automaton::ExtendedNFA& automaton) const +{ + regexp::RegExp* & out = *((regexp::RegExp**) data); + out = new regexp::RegExp(convert(automaton)); +} + +void StateElimination::Visit(void* data, const automaton::CompactNFA& automaton) const +{ + regexp::RegExp* & out = *((regexp::RegExp**) data); + out = new regexp::RegExp(convert(automaton)); +} + const StateElimination StateElimination::STATE_ELIMINATION; } /* namespace fa2re */