diff --git a/alib2algo/src/automaton/simplify/EpsilonRemoverIncoming.cpp b/alib2algo/src/automaton/simplify/EpsilonRemoverIncoming.cpp index 93f04298f8c083c3d74f069211434e66ad80f307..ded7655027923e7be60b2497a0c7610e3ca98690 100644 --- a/alib2algo/src/automaton/simplify/EpsilonRemoverIncoming.cpp +++ b/alib2algo/src/automaton/simplify/EpsilonRemoverIncoming.cpp @@ -17,6 +17,11 @@ auto EpsilonRemoverIncomingMultiInitialStateNFA = registration::OverloadRegister auto EpsilonRemoverIncomingNFA = registration::OverloadRegister < EpsilonRemoverIncoming, automaton::NFA < > , automaton::NFA < > > ( EpsilonRemoverIncoming::remove ); auto EpsilonRemoverIncomingEpsilonNFA = registration::OverloadRegister < EpsilonRemoverIncoming, automaton::NFA < > , automaton::EpsilonNFA < > > ( EpsilonRemoverIncoming::remove ); +auto EpsilonRemoverIncomingDFA2 = registration::AbstractRegister < EpsilonRemoverIncoming, automaton::DFA < >, const automaton::DFA < > & > ( EpsilonRemoverIncoming::remove ); +auto EpsilonRemoverIncomingMultiInitialStateNFA2 = registration::AbstractRegister < EpsilonRemoverIncoming, automaton::MultiInitialStateNFA < > , const automaton::MultiInitialStateNFA < > & > ( EpsilonRemoverIncoming::remove ); +auto EpsilonRemoverIncomingNFA2 = registration::AbstractRegister < EpsilonRemoverIncoming, automaton::NFA < > , const automaton::NFA < > & > ( EpsilonRemoverIncoming::remove ); +auto EpsilonRemoverIncomingEpsilonNFA2 = registration::AbstractRegister < EpsilonRemoverIncoming, automaton::NFA < > , const automaton::EpsilonNFA < > & > ( EpsilonRemoverIncoming::remove ); + automaton::Automaton EpsilonRemoverIncoming::remove(const automaton::Automaton& automaton) { return dispatch(automaton.getData()); } diff --git a/alib2algo/src/automaton/simplify/EpsilonRemoverOutgoing.cpp b/alib2algo/src/automaton/simplify/EpsilonRemoverOutgoing.cpp index 0bcb7fc4898dc4021c00992f4551d1cfe7ff06e9..58e40cafbbac547a895903f7e36b05d2d1baa387 100644 --- a/alib2algo/src/automaton/simplify/EpsilonRemoverOutgoing.cpp +++ b/alib2algo/src/automaton/simplify/EpsilonRemoverOutgoing.cpp @@ -14,8 +14,13 @@ namespace simplify { auto EpsilonRemoverOutgoingDFA = registration::OverloadRegister < EpsilonRemoverOutgoing, automaton::DFA < >, automaton::DFA < > > ( EpsilonRemoverOutgoing::remove ); auto EpsilonRemoverOutgoingMultiInitialStateNFA = registration::OverloadRegister < EpsilonRemoverOutgoing, automaton::MultiInitialStateNFA < > , automaton::MultiInitialStateNFA < > > ( EpsilonRemoverOutgoing::remove ); -auto EpsilonRemoverOutgoingNFA = registration::OverloadRegister < EpsilonRemoverOutgoing, automaton::NFA < > , automaton::NFA < > > ( EpsilonRemoverOutgoing::remove ); -auto EpsilonRemoverOutgoingEpsilonNFA = registration::OverloadRegister < EpsilonRemoverOutgoing, automaton::MultiInitialStateNFA < > , automaton::EpsilonNFA < > > ( EpsilonRemoverOutgoing::remove ); +auto EpsilonRemoverOutgoingNFA = registration::OverloadRegister < EpsilonRemoverOutgoing, automaton::NFA < >, automaton::NFA < > > ( EpsilonRemoverOutgoing::remove ); +auto EpsilonRemoverOutgoingEpsilonNFA = registration::OverloadRegister < EpsilonRemoverOutgoing, automaton::MultiInitialStateNFA < >, automaton::EpsilonNFA < > > ( EpsilonRemoverOutgoing::remove ); + +auto EpsilonRemoverOutgoingDFA2 = registration::AbstractRegister < EpsilonRemoverOutgoing, automaton::DFA < >, const automaton::DFA < > & > ( EpsilonRemoverOutgoing::remove ); +auto EpsilonRemoverOutgoingMultiInitialStateNFA2 = registration::AbstractRegister < EpsilonRemoverOutgoing, automaton::MultiInitialStateNFA < > , const automaton::MultiInitialStateNFA < > & > ( EpsilonRemoverOutgoing::remove ); +auto EpsilonRemoverOutgoingNFA2 = registration::AbstractRegister < EpsilonRemoverOutgoing, automaton::NFA < >, const automaton::NFA < > & > ( EpsilonRemoverOutgoing::remove ); +auto EpsilonRemoverOutgoingEpsilonNFA2 = registration::AbstractRegister < EpsilonRemoverOutgoing, automaton::MultiInitialStateNFA < >, const automaton::EpsilonNFA < > & > ( EpsilonRemoverOutgoing::remove ); automaton::Automaton EpsilonRemoverOutgoing::remove(const automaton::Automaton& automaton) { return dispatch(automaton.getData()); diff --git a/alib2algo/src/automaton/simplify/Minimize.cpp b/alib2algo/src/automaton/simplify/Minimize.cpp index e0152798c3c2f68eec4b335dd217fc42f641725b..d730b03701d7bcc7b98b3a65ec1bb885974c55ec 100644 --- a/alib2algo/src/automaton/simplify/Minimize.cpp +++ b/alib2algo/src/automaton/simplify/Minimize.cpp @@ -17,9 +17,11 @@ automaton::Automaton Minimize::minimize(const automaton::Automaton& automaton) { } auto MinimizeNFA = registration::OverloadRegister < Minimize, automaton::DFA < >, automaton::DFA < > >( Minimize::minimize ); -auto MinimizeNFA2 = registration::AbstractRegister < Minimize, automaton::DFA < >, const automaton::DFA < > & > ( Minimize::minimize ); auto MinimizeNFTA = registration::OverloadRegister < Minimize, automaton::DFTA < >, automaton::DFTA < > >( Minimize::minimize ); +auto MinimizeNFA2 = registration::AbstractRegister < Minimize, automaton::DFA < >, const automaton::DFA < > & > ( Minimize::minimize ); +auto MinimizeNFTA2 = registration::AbstractRegister < Minimize, automaton::DFTA < >, const automaton::DFTA < > & > ( Minimize::minimize ); + } /* namespace simplify */ } /* namespace automaton */ diff --git a/alib2algo/src/automaton/simplify/MinimizeBrzozowski.cpp b/alib2algo/src/automaton/simplify/MinimizeBrzozowski.cpp index edffa0072cbd0e66ffb4a0643648ae9a7bc4f16b..b5476bf1419e65c312453a7f4155bb77a5cc7c2d 100644 --- a/alib2algo/src/automaton/simplify/MinimizeBrzozowski.cpp +++ b/alib2algo/src/automaton/simplify/MinimizeBrzozowski.cpp @@ -19,8 +19,9 @@ automaton::Automaton MinimizeBrzozowski::minimize(const automaton::Automaton& au } auto MinimizeBrzozowskiDFA = registration::OverloadRegister < MinimizeBrzozowski, automaton::DFA < DefaultSymbolType, ext::set < ext::set < DefaultStateType > > >, automaton::DFA < > > ( MinimizeBrzozowski::minimize ); -auto MinimizeBrzozowskiDFA2 = registration::AbstractRegister < MinimizeBrzozowski, automaton::DFA < DefaultSymbolType, ext::set < ext::set < DefaultStateType > > >, const automaton::DFA < > & > ( MinimizeBrzozowski::minimize ); auto MinimizeBrzozowskiNFA = registration::OverloadRegister < MinimizeBrzozowski, automaton::DFA < DefaultSymbolType, ext::set < ext::set < DefaultStateType > > >, automaton::NFA < > > ( MinimizeBrzozowski::minimize ); + +auto MinimizeBrzozowskiDFA2 = registration::AbstractRegister < MinimizeBrzozowski, automaton::DFA < DefaultSymbolType, ext::set < ext::set < DefaultStateType > > >, const automaton::DFA < > & > ( MinimizeBrzozowski::minimize ); auto MinimizeBrzozowskiNFA2 = registration::AbstractRegister < MinimizeBrzozowski, automaton::DFA < DefaultSymbolType, ext::set < ext::set < DefaultStateType > > >, const automaton::NFA < > & > ( MinimizeBrzozowski::minimize ); } /* namespace simplify */ diff --git a/alib2algo/src/automaton/simplify/Normalize.cpp b/alib2algo/src/automaton/simplify/Normalize.cpp index 5fa29e93340f0a196c0a97f40ea06e8cab6110c8..edfed9fb05b8c0d03a4c6ccdb986459485a868b0 100644 --- a/alib2algo/src/automaton/simplify/Normalize.cpp +++ b/alib2algo/src/automaton/simplify/Normalize.cpp @@ -19,9 +19,11 @@ automaton::Automaton Normalize::normalize(const automaton::Automaton& automaton) } auto NormalizeDFA = registration::OverloadRegister < Normalize, automaton::DFA < DefaultSymbolType, unsigned >, automaton::DFA < > > ( Normalize::normalize ); -auto NormalizeDFA2 = registration::AbstractRegister < Normalize, automaton::DFA < DefaultSymbolType, unsigned >, const automaton::DFA < > & > ( Normalize::normalize ); auto NormalizeDPDA = registration::OverloadRegister < Normalize, automaton::DPDA < DefaultSymbolType, DefaultEpsilonType, unsigned, unsigned >, automaton::DPDA < > > ( Normalize::normalize ); +auto NormalizeDFA2 = registration::AbstractRegister < Normalize, automaton::DFA < DefaultSymbolType, unsigned >, const automaton::DFA < > & > ( Normalize::normalize ); +auto NormalizeDPDA2 = registration::AbstractRegister < Normalize, automaton::DPDA < DefaultSymbolType, DefaultEpsilonType, unsigned, unsigned >, const automaton::DPDA < > & > ( Normalize::normalize ); + } /* namespace simplify */ } /* namespace automaton */ diff --git a/alib2algo/src/automaton/simplify/Rename.cpp b/alib2algo/src/automaton/simplify/Rename.cpp index 5c8c5ecc4cad349235b6e27f46b02843ea638fda..b48c4f1a4e8fee67331583ffd02915ab8a80c176 100644 --- a/alib2algo/src/automaton/simplify/Rename.cpp +++ b/alib2algo/src/automaton/simplify/Rename.cpp @@ -52,6 +52,7 @@ automaton::DFA<> Rename::rename(const automaton::DFA<>& fsm) { } auto RenameDFA = registration::OverloadRegister < Rename, automaton::DFA < >, automaton::DFA < > > ( Rename::rename ); +auto RenameDFA2 = registration::AbstractRegister < Rename, automaton::DFA < >, const automaton::DFA < > & > ( Rename::rename ); automaton::DPDA < > Rename::rename(const automaton::DPDA < > & pda) { int counterState = 0; @@ -94,6 +95,7 @@ automaton::DPDA < > Rename::rename(const automaton::DPDA < > & pda) { } auto RenameDPDA = registration::OverloadRegister < Rename, automaton::DPDA < >, automaton::DPDA < > > ( Rename::rename ); +auto RenameDPDA2 = registration::AbstractRegister < Rename, automaton::DPDA < >, const automaton::DPDA < > & > ( Rename::rename ); automaton::SinglePopDPDA < > Rename::rename(const automaton::SinglePopDPDA < > & pda) { int counterState = 0; @@ -135,6 +137,7 @@ automaton::SinglePopDPDA < > Rename::rename(const automaton::SinglePopDPDA < > & } auto RenameSinglePopDPDA = registration::OverloadRegister < Rename, automaton::SinglePopDPDA < >, automaton::SinglePopDPDA < > > ( Rename::rename ); +auto RenameSinglePopDPDA2 = registration::AbstractRegister < Rename, automaton::SinglePopDPDA < >, const automaton::SinglePopDPDA < > & > ( Rename::rename ); automaton::InputDrivenDPDA < > Rename::rename(const automaton::InputDrivenDPDA < > & pda) { int counter = 0; @@ -184,6 +187,7 @@ automaton::InputDrivenDPDA < > Rename::rename(const automaton::InputDrivenDPDA < } auto RenameInputDrivenDPDA = registration::OverloadRegister < Rename, automaton::InputDrivenDPDA < >, automaton::InputDrivenDPDA < > > ( Rename::rename ); +auto RenameInputDrivenDPDA2 = registration::AbstractRegister < Rename, automaton::InputDrivenDPDA < >, const automaton::InputDrivenDPDA < > & > ( Rename::rename ); automaton::VisiblyPushdownDPDA < > Rename::rename(const automaton::VisiblyPushdownDPDA < > & pda) { int counterState = 0; @@ -231,6 +235,7 @@ automaton::VisiblyPushdownDPDA < > Rename::rename(const automaton::VisiblyPushdo } auto RenameVisiblyPushdownDPDA = registration::OverloadRegister < Rename, automaton::VisiblyPushdownDPDA < >, automaton::VisiblyPushdownDPDA < > > ( Rename::rename ); +auto RenameVisiblyPushdownDPDA2 = registration::AbstractRegister < Rename, automaton::VisiblyPushdownDPDA < >, const automaton::VisiblyPushdownDPDA < > & > ( Rename::rename ); automaton::RealTimeHeightDeterministicDPDA < > Rename::rename(const automaton::RealTimeHeightDeterministicDPDA < > & pda) { int counterState = 0; @@ -276,6 +281,7 @@ automaton::RealTimeHeightDeterministicDPDA < > Rename::rename(const automaton::R } auto RenameRealTimeHeightDeterministicDPDA = registration::OverloadRegister < Rename, automaton::RealTimeHeightDeterministicDPDA < >, automaton::RealTimeHeightDeterministicDPDA < > > ( Rename::rename ); +auto RenameRealTimeHeightDeterministicDPDA2 = registration::AbstractRegister < Rename, automaton::RealTimeHeightDeterministicDPDA < >, const automaton::RealTimeHeightDeterministicDPDA < > & > ( Rename::rename ); } /* namespace simplify */ diff --git a/alib2algo/src/automaton/simplify/SingleInitialState.cpp b/alib2algo/src/automaton/simplify/SingleInitialState.cpp index ae0e27ccfa9ed563ae3a57b896c638e12b569b7f..5e62c59f97b26efb33ac5367c1911deae6d824b2 100644 --- a/alib2algo/src/automaton/simplify/SingleInitialState.cpp +++ b/alib2algo/src/automaton/simplify/SingleInitialState.cpp @@ -23,6 +23,13 @@ auto SingleInitialStateNFA = registration::OverloadRegister < SingleInitialState auto SingleInitialStateCompactNFA = registration::OverloadRegister < SingleInitialState, automaton::CompactNFA < >, automaton::CompactNFA < > > ( SingleInitialState::convert ); auto SingleInitialStateExtendedNFA = registration::OverloadRegister < SingleInitialState, automaton::ExtendedNFA < >, automaton::ExtendedNFA < > > ( SingleInitialState::convert ); +auto SingleInitialStateMultiInitialStateNFA2 = registration::AbstractRegister < SingleInitialState, automaton::NFA < >, const automaton::MultiInitialStateNFA < > & > ( SingleInitialState::convert ); +auto SingleInitialStateDFA2 = registration::AbstractRegister < SingleInitialState, automaton::DFA < >, const automaton::DFA < > & > ( SingleInitialState::convert ); +auto SingleInitialStateEpsilonNFA2 = registration::AbstractRegister < SingleInitialState, automaton::EpsilonNFA < >, const automaton::EpsilonNFA < > & > ( SingleInitialState::convert ); +auto SingleInitialStateNFA2 = registration::AbstractRegister < SingleInitialState, automaton::NFA < >, const automaton::NFA < > & > ( SingleInitialState::convert ); +auto SingleInitialStateCompactNFA2 = registration::AbstractRegister < SingleInitialState, automaton::CompactNFA < >, const automaton::CompactNFA < > & > ( SingleInitialState::convert ); +auto SingleInitialStateExtendedNFA2 = registration::AbstractRegister < SingleInitialState, automaton::ExtendedNFA < >, const automaton::ExtendedNFA < > & > ( SingleInitialState::convert ); + } /* namespace simplify */ } /* namespace automaton */ diff --git a/alib2algo/src/automaton/simplify/Total.cpp b/alib2algo/src/automaton/simplify/Total.cpp index decea974d7439dce0c25d99fd2f32ce18d980e9b..57fe6edaecc746235c64ac1d864793da7dac9b2d 100644 --- a/alib2algo/src/automaton/simplify/Total.cpp +++ b/alib2algo/src/automaton/simplify/Total.cpp @@ -19,6 +19,9 @@ automaton::Automaton Total::total(const Automaton& automaton) { auto TotalNFA = registration::OverloadRegister < Total, automaton::NFA < >, automaton::NFA < > > ( Total::total ); auto TotalDFA = registration::OverloadRegister < Total, automaton::DFA < >, automaton::DFA < > > ( Total::total ); +auto TotalNFA2 = registration::AbstractRegister < Total, automaton::NFA < >, const automaton::NFA < > & > ( Total::total ); +auto TotalDFA2 = registration::AbstractRegister < Total, automaton::DFA < >, const automaton::DFA < > & > ( Total::total ); + } /* namespace simplify */ } /* namespace automaton */ diff --git a/alib2algo/src/automaton/simplify/Trim.cpp b/alib2algo/src/automaton/simplify/Trim.cpp index e52e9e2e00c26a09786591e0898efdbde1a432a9..8d0b165caabd7d58847949fb602a83ef516831b0 100644 --- a/alib2algo/src/automaton/simplify/Trim.cpp +++ b/alib2algo/src/automaton/simplify/Trim.cpp @@ -27,6 +27,14 @@ auto TrimCompactNFA = registration::OverloadRegister < Trim, automaton::CompactN auto TrimExtendedNFA = registration::OverloadRegister < Trim, automaton::ExtendedNFA < >, automaton::ExtendedNFA < > > ( Trim::trim ); auto TrimDFTA = registration::OverloadRegister < Trim, automaton::DFTA < >, automaton::DFTA < > > ( Trim::trim ); +auto TrimDFA2 = registration::AbstractRegister < Trim, automaton::DFA < >, const automaton::DFA < > & > ( Trim::trim ); +auto TrimNFA2 = registration::AbstractRegister < Trim, automaton::NFA < >, const automaton::NFA < > & > ( Trim::trim ); +auto TrimMultiInitialStateNFA2 = registration::AbstractRegister < Trim, automaton::MultiInitialStateNFA < >, const automaton::MultiInitialStateNFA < > & > ( Trim::trim ); +auto TrimEpsilonNFA2 = registration::AbstractRegister < Trim, automaton::EpsilonNFA < >, const automaton::EpsilonNFA < > & > ( Trim::trim ); +auto TrimCompactNFA2 = registration::AbstractRegister < Trim, automaton::CompactNFA < >, const automaton::CompactNFA < > & > ( Trim::trim ); +auto TrimExtendedNFA2 = registration::AbstractRegister < Trim, automaton::ExtendedNFA < >, const automaton::ExtendedNFA < > & > ( Trim::trim ); +auto TrimDFTA2 = registration::AbstractRegister < Trim, automaton::DFTA < >, const automaton::DFTA < > & > ( Trim::trim ); + automaton::Automaton Trim::trim(const automaton::Automaton& automaton) { return dispatch(automaton.getData()); } diff --git a/alib2algo/src/automaton/simplify/UnreachableStatesRemover.cpp b/alib2algo/src/automaton/simplify/UnreachableStatesRemover.cpp index e0050a01e04bfe2b71c88366b6f6fb2dd0c93d90..a23c8ec8113f5465548d7cc90dec404f3361b293 100644 --- a/alib2algo/src/automaton/simplify/UnreachableStatesRemover.cpp +++ b/alib2algo/src/automaton/simplify/UnreachableStatesRemover.cpp @@ -20,6 +20,14 @@ auto UnreachableStatesRemoverDFA = registration::OverloadRegister < UnreachableS auto UnreachableStatesRemoverMultiInitialStateNFA = registration::OverloadRegister < UnreachableStatesRemover, automaton::MultiInitialStateNFA < > , automaton::MultiInitialStateNFA < > > ( UnreachableStatesRemover::remove ); auto UnreachableStatesRemoverDFTA = registration::OverloadRegister < UnreachableStatesRemover, automaton::DFTA < >, automaton::DFTA < > > ( UnreachableStatesRemover::remove ); +auto UnreachableStatesRemoverEpsilonNFA2 = registration::AbstractRegister < UnreachableStatesRemover, automaton::EpsilonNFA < >, const automaton::EpsilonNFA < > & > ( UnreachableStatesRemover::remove ); +auto UnreachableStatesRemoverNFA2 = registration::AbstractRegister < UnreachableStatesRemover, automaton::NFA < >, const automaton::NFA < > & > ( UnreachableStatesRemover::remove ); +auto UnreachableStatesRemoverCompactNFA2 = registration::AbstractRegister < UnreachableStatesRemover, automaton::CompactNFA < >, const automaton::CompactNFA < > & > ( UnreachableStatesRemover::remove ); +auto UnreachableStatesRemoverExtendedNFA2 = registration::AbstractRegister < UnreachableStatesRemover, automaton::ExtendedNFA < >, const automaton::ExtendedNFA < > & > ( UnreachableStatesRemover::remove ); +auto UnreachableStatesRemoverDFA2 = registration::AbstractRegister < UnreachableStatesRemover, automaton::DFA < >, const automaton::DFA < > & > ( UnreachableStatesRemover::remove ); +auto UnreachableStatesRemoverMultiInitialStateNFA2 = registration::AbstractRegister < UnreachableStatesRemover, automaton::MultiInitialStateNFA < >, const automaton::MultiInitialStateNFA < > & > ( UnreachableStatesRemover::remove ); +auto UnreachableStatesRemoverDFTA2 = registration::AbstractRegister < UnreachableStatesRemover, automaton::DFTA < >, const automaton::DFTA < > & > ( UnreachableStatesRemover::remove ); + automaton::Automaton UnreachableStatesRemover::remove(const automaton::Automaton& automaton) { return dispatch(automaton.getData()); } diff --git a/alib2algo/src/automaton/transform/AutomataConcatenation.cpp b/alib2algo/src/automaton/transform/AutomataConcatenation.cpp index fb3641c2df2711308d792b9cc11631451fcb06dd..717c049033d199c18d535ffe0c43829718aa4748 100644 --- a/alib2algo/src/automaton/transform/AutomataConcatenation.cpp +++ b/alib2algo/src/automaton/transform/AutomataConcatenation.cpp @@ -19,6 +19,9 @@ automaton::Automaton AutomataConcatenation::concatenation(const automaton::Autom auto AutomataConcatenationNFA = registration::OverloadRegister < AutomataConcatenation, automaton::NFA < >, automaton::NFA < > > ( AutomataConcatenation::concatenation ); auto AutomataConcatenationDFA = registration::OverloadRegister < AutomataConcatenation, automaton::NFA < >, automaton::DFA < > > ( AutomataConcatenation::concatenation ); +auto AutomataConcatenationNFA2 = registration::AbstractRegister < AutomataConcatenation, automaton::NFA < >, const automaton::NFA < > &, const automaton::NFA < > & > ( AutomataConcatenation::concatenation ); +auto AutomataConcatenationDFA2 = registration::AbstractRegister < AutomataConcatenation, automaton::NFA < >, const automaton::DFA < > &, const automaton::DFA < > & > ( AutomataConcatenation::concatenation ); + } /* namespace transform */ } /* namespace automaton */ diff --git a/alib2algo/src/automaton/transform/AutomataConcatenationEpsilonTransition.cpp b/alib2algo/src/automaton/transform/AutomataConcatenationEpsilonTransition.cpp index 989e9821c720c4219491ff0da01850ab6f89831a..9db6deb0386b1b6fe76844aac7bc82c30bae6640 100644 --- a/alib2algo/src/automaton/transform/AutomataConcatenationEpsilonTransition.cpp +++ b/alib2algo/src/automaton/transform/AutomataConcatenationEpsilonTransition.cpp @@ -21,6 +21,10 @@ auto AutomataConcatenationEpsilonTransitionDFA = registration::OverloadRegister auto AutomataConcatenationEpsilonTransitionNFA = registration::OverloadRegister < AutomataConcatenationEpsilonTransition, automaton::EpsilonNFA < >, automaton::NFA < > > ( AutomataConcatenationEpsilonTransition::concatenation ); auto AutomataConcatenationEpsilonTransitionEpsilonNFA = registration::OverloadRegister < AutomataConcatenationEpsilonTransition, automaton::EpsilonNFA < > , automaton::EpsilonNFA < > > ( AutomataConcatenationEpsilonTransition::concatenation ); +auto AutomataConcatenationEpsilonTransitionDFA2 = registration::AbstractRegister < AutomataConcatenationEpsilonTransition, automaton::EpsilonNFA < >, const automaton::DFA < > &, const automaton::DFA < > & > ( AutomataConcatenationEpsilonTransition::concatenation ); +auto AutomataConcatenationEpsilonTransitionNFA2 = registration::AbstractRegister < AutomataConcatenationEpsilonTransition, automaton::EpsilonNFA < >, const automaton::NFA < > &, const automaton::NFA < > & > ( AutomataConcatenationEpsilonTransition::concatenation ); +auto AutomataConcatenationEpsilonTransitionEpsilonNFA2 = registration::AbstractRegister < AutomataConcatenationEpsilonTransition, automaton::EpsilonNFA < >, const automaton::EpsilonNFA < > &, const automaton::EpsilonNFA < > & > ( AutomataConcatenationEpsilonTransition::concatenation ); + } /* namespace transform */ } /* namespace automaton */ diff --git a/alib2algo/src/automaton/transform/AutomataIntersectionCartesianProduct.cpp b/alib2algo/src/automaton/transform/AutomataIntersectionCartesianProduct.cpp index 98dd9c81ab56ec02545fffd3450aecc584197eb7..53f31ce891f7ac4adca96fb22f0496984cbdb445 100644 --- a/alib2algo/src/automaton/transform/AutomataIntersectionCartesianProduct.cpp +++ b/alib2algo/src/automaton/transform/AutomataIntersectionCartesianProduct.cpp @@ -20,10 +20,11 @@ automaton::Automaton AutomataIntersectionCartesianProduct::intersection(const au } auto AutomataIntersectionCartesianProductDFA = registration::OverloadRegister < AutomataIntersectionCartesianProduct, automaton::DFA < DefaultSymbolType, ext::pair < DefaultStateType, DefaultStateType > >, automaton::DFA < > > ( AutomataIntersectionCartesianProduct::intersection ); -auto AutomataIntersectionCartesianProductDFA2 = registration::AbstractRegister < AutomataIntersectionCartesianProduct, automaton::DFA < DefaultSymbolType, ext::pair < DefaultStateType, DefaultStateType > >, const automaton::DFA < > &, const automaton::DFA < > & > ( AutomataIntersectionCartesianProduct::intersection ); - auto AutomataIntersectionCartesianProductNFA = registration::OverloadRegister < AutomataIntersectionCartesianProduct, automaton::NFA < DefaultSymbolType, ext::pair < DefaultStateType, DefaultStateType > >, automaton::NFA < > > ( AutomataIntersectionCartesianProduct::intersection ); + auto AutomataIntersectionCartesianProductNFA2 = registration::AbstractRegister < AutomataIntersectionCartesianProduct, automaton::NFA < DefaultSymbolType, ext::pair < DefaultStateType, DefaultStateType > >, const automaton::NFA < > &, const automaton::NFA < > & > ( AutomataIntersectionCartesianProduct::intersection ); +auto AutomataIntersectionCartesianProductDFA2 = registration::AbstractRegister < AutomataIntersectionCartesianProduct, automaton::DFA < DefaultSymbolType, ext::pair < DefaultStateType, DefaultStateType > >, const automaton::DFA < > &, const automaton::DFA < > & > ( AutomataIntersectionCartesianProduct::intersection ); + } /* namespace transform */ diff --git a/alib2algo/src/automaton/transform/AutomataUnionCartesianProduct.cpp b/alib2algo/src/automaton/transform/AutomataUnionCartesianProduct.cpp index aa04de57db6a282dd397438b0c00e513e63c6140..1fce47fa800c85a7a95166f45f9aa739c0a770b7 100644 --- a/alib2algo/src/automaton/transform/AutomataUnionCartesianProduct.cpp +++ b/alib2algo/src/automaton/transform/AutomataUnionCartesianProduct.cpp @@ -23,6 +23,9 @@ automaton::Automaton AutomataUnionCartesianProduct::unification(const automaton: auto AutomataUnionCartesianProductDFA = registration::OverloadRegister < AutomataUnionCartesianProduct, automaton::DFA < DefaultSymbolType, ext::pair < DefaultStateType, DefaultStateType > >, automaton::DFA < > > ( AutomataUnionCartesianProduct::unification ); auto AutomataUnionCartesianProductNFA = registration::OverloadRegister < AutomataUnionCartesianProduct, automaton::NFA < DefaultSymbolType, ext::pair < DefaultStateType, DefaultStateType > >, automaton::NFA < > > ( AutomataUnionCartesianProduct::unification ); +auto AutomataUnionCartesianProductDFA2 = registration::AbstractRegister < AutomataUnionCartesianProduct, automaton::DFA < DefaultSymbolType, ext::pair < DefaultStateType, DefaultStateType > >, const automaton::DFA < > &, const automaton::DFA < > & > ( AutomataUnionCartesianProduct::unification ); +auto AutomataUnionCartesianProductNFA2 = registration::AbstractRegister < AutomataUnionCartesianProduct, automaton::NFA < DefaultSymbolType, ext::pair < DefaultStateType, DefaultStateType > >, const automaton::NFA < > &, const automaton::NFA < > & > ( AutomataUnionCartesianProduct::unification ); + } /* namespace transform */ } /* namespace automaton */ diff --git a/alib2algo/src/automaton/transform/AutomataUnionEpsilonTransition.cpp b/alib2algo/src/automaton/transform/AutomataUnionEpsilonTransition.cpp index 77bcccf9a94974caed546779ce545cc2336e0670..fd40de5ac4dfcc7b09b8c2ead3241ef4c73272f1 100644 --- a/alib2algo/src/automaton/transform/AutomataUnionEpsilonTransition.cpp +++ b/alib2algo/src/automaton/transform/AutomataUnionEpsilonTransition.cpp @@ -22,6 +22,10 @@ auto AutomataUnionEpsilonTransitionEpsilonNFA = registration::OverloadRegister < auto AutomataUnionEpsilonTransitionNFA = registration::OverloadRegister < AutomataUnionEpsilonTransition, automaton::EpsilonNFA < >, automaton::NFA < > > ( AutomataUnionEpsilonTransition::unification ); auto AutomataUnionEpsilonTransitionDFA = registration::OverloadRegister < AutomataUnionEpsilonTransition, automaton::EpsilonNFA < >, automaton::DFA < > > ( AutomataUnionEpsilonTransition::unification ); +auto AutomataUnionEpsilonTransitionEpsilonNFA2 = registration::AbstractRegister < AutomataUnionEpsilonTransition, automaton::EpsilonNFA < >, const automaton::EpsilonNFA < > &, const automaton::EpsilonNFA < > & > ( AutomataUnionEpsilonTransition::unification ); +auto AutomataUnionEpsilonTransitionNFA2 = registration::AbstractRegister < AutomataUnionEpsilonTransition, automaton::EpsilonNFA < >, const automaton::NFA < > &, const automaton::NFA < > & > ( AutomataUnionEpsilonTransition::unification ); +auto AutomataUnionEpsilonTransitionDFA2 = registration::AbstractRegister < AutomataUnionEpsilonTransition, automaton::EpsilonNFA < >, const automaton::DFA < > &, const automaton::DFA < > & > ( AutomataUnionEpsilonTransition::unification ); + } /* namespace transform */ } /* namespace automaton */ diff --git a/alib2algo/src/automaton/transform/AutomatonIteration.cpp b/alib2algo/src/automaton/transform/AutomatonIteration.cpp index f3646df4b1124e2c793a184dc6b7192f0363be6c..9302a6ebeb9657a43df7f12f650d9282f669d260 100644 --- a/alib2algo/src/automaton/transform/AutomatonIteration.cpp +++ b/alib2algo/src/automaton/transform/AutomatonIteration.cpp @@ -20,6 +20,9 @@ automaton::Automaton AutomatonIteration::iteration(const automaton::Automaton& a auto AutomatonIterationDFA = registration::OverloadRegister < AutomatonIteration, automaton::NFA < >, automaton::DFA < > > ( AutomatonIteration::iteration ); auto AutomatonIterationNFA = registration::OverloadRegister < AutomatonIteration, automaton::NFA < >, automaton::NFA < > > ( AutomatonIteration::iteration ); +auto AutomatonIterationDFA2 = registration::AbstractRegister < AutomatonIteration, automaton::NFA < >, const automaton::DFA < > & > ( AutomatonIteration::iteration ); +auto AutomatonIterationNFA2 = registration::AbstractRegister < AutomatonIteration, automaton::NFA < >, const automaton::NFA < > & > ( AutomatonIteration::iteration ); + } /* namespace transform */ } /* namespace automaton */ diff --git a/alib2algo/src/automaton/transform/AutomatonIterationEpsilonTransition.cpp b/alib2algo/src/automaton/transform/AutomatonIterationEpsilonTransition.cpp index fea903fdb9771aedd2701a5298f3d5ce8d0c671e..e93114f260022087348c4efc7bc3fd151ce2eff2 100644 --- a/alib2algo/src/automaton/transform/AutomatonIterationEpsilonTransition.cpp +++ b/alib2algo/src/automaton/transform/AutomatonIterationEpsilonTransition.cpp @@ -21,6 +21,10 @@ auto AutomatonIterationEpsilonTransitionDFA = registration::OverloadRegister < A auto AutomatonIterationEpsilonTransitionNFA = registration::OverloadRegister < AutomatonIterationEpsilonTransition, automaton::EpsilonNFA < >, automaton::NFA < > > ( AutomatonIterationEpsilonTransition::iteration ); auto AutomatonIterationEpsilonTransitionEpsilonNFA = registration::OverloadRegister < AutomatonIterationEpsilonTransition, automaton::EpsilonNFA < >, automaton::EpsilonNFA < > > ( AutomatonIterationEpsilonTransition::iteration ); +auto AutomatonIterationEpsilonTransitionDFA2 = registration::AbstractRegister < AutomatonIterationEpsilonTransition, automaton::EpsilonNFA < >, const automaton::DFA < > & > ( AutomatonIterationEpsilonTransition::iteration ); +auto AutomatonIterationEpsilonTransitionNFA2 = registration::AbstractRegister < AutomatonIterationEpsilonTransition, automaton::EpsilonNFA < >, const automaton::NFA < > & > ( AutomatonIterationEpsilonTransition::iteration ); +auto AutomatonIterationEpsilonTransitionEpsilonNFA2 = registration::AbstractRegister < AutomatonIterationEpsilonTransition, automaton::EpsilonNFA < >, const automaton::EpsilonNFA < > & > ( AutomatonIterationEpsilonTransition::iteration ); + } /* namespace transform */ } /* namespace automaton */ diff --git a/alib2algo/src/automaton/transform/Compaction.cpp b/alib2algo/src/automaton/transform/Compaction.cpp index a0ece872585510df08312646db00136da2ee471d..abca9417efb5f47e09fcec79fbbf0c0eb32b0107 100644 --- a/alib2algo/src/automaton/transform/Compaction.cpp +++ b/alib2algo/src/automaton/transform/Compaction.cpp @@ -20,6 +20,10 @@ auto CompactionCompactNFA = registration::OverloadRegister < Compaction, automat 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 automaton */ diff --git a/alib2algo/src/automaton/transform/Reverse.cpp b/alib2algo/src/automaton/transform/Reverse.cpp index de1af487f4b3c12d3c0ca148818c121d89d17111..1c64a2bfb81913b7bda5236e5c7cc8a7b52e5841 100644 --- a/alib2algo/src/automaton/transform/Reverse.cpp +++ b/alib2algo/src/automaton/transform/Reverse.cpp @@ -20,6 +20,10 @@ auto ReverseDFA = registration::OverloadRegister < Reverse, automaton::MultiInit auto ReverseNFA = registration::OverloadRegister < Reverse, automaton::MultiInitialStateNFA < >, automaton::NFA < > > ( Reverse::convert ); auto ReverseMultiInitialStateNFA = registration::OverloadRegister < Reverse, automaton::MultiInitialStateNFA < >, automaton::MultiInitialStateNFA < > > ( Reverse::convert ); +auto ReverseDFA2 = registration::AbstractRegister < Reverse, automaton::MultiInitialStateNFA < >, const automaton::DFA < > & > ( Reverse::convert ); +auto ReverseNFA2 = registration::AbstractRegister < Reverse, automaton::MultiInitialStateNFA < >, const automaton::NFA < > & > ( Reverse::convert ); +auto ReverseMultiInitialStateNFA2 = registration::AbstractRegister < Reverse, automaton::MultiInitialStateNFA < >, const automaton::MultiInitialStateNFA < > & > ( Reverse::convert ); + } /* namespace transform */ } /* namespace automaton */