diff --git a/alib2algo/src/automaton/convert/ToGrammar.cpp b/alib2algo/src/automaton/convert/ToGrammar.cpp index 9c09db9d51f8a2ad203ea3b9da0319c21ac6cc6a..31624f1132dc7274e75ff68dd2ad1621b6c3913c 100644 --- a/alib2algo/src/automaton/convert/ToGrammar.cpp +++ b/alib2algo/src/automaton/convert/ToGrammar.cpp @@ -12,8 +12,17 @@ namespace automaton { namespace convert { -auto ToGrammarNFA = registration::AbstractRegister < ToGrammar, grammar::RightRG < >, const automaton::NFA < > & > ( ToGrammar::convert ); -auto ToGrammarDFA = registration::AbstractRegister < ToGrammar, grammar::RightRG < >, const automaton::DFA < > & > ( ToGrammar::convert ); +auto ToGrammarNFA = registration::AbstractRegister < ToGrammar, grammar::RightRG < >, const automaton::NFA < > & > ( ToGrammar::convert, "automaton" ).setDocumentation ( +"Performs the conversion (@sa ToGrammarRightRG)\n\ +\n\ +@param automaton the automaton to convert\n\ +@return right regular grammar equivalent to the input @p automaton" ); + +auto ToGrammarDFA = registration::AbstractRegister < ToGrammar, grammar::RightRG < >, const automaton::DFA < > & > ( ToGrammar::convert, "automaton" ).setDocumentation ( +"Performs the conversion (@sa ToGrammarRightRG)\n\ +\n\ +@param automaton the automaton to convert\n\ +@return right regular grammar equivalent to the input @p automaton" ); } /* namespace convert */ diff --git a/alib2algo/src/automaton/convert/ToGrammar.h b/alib2algo/src/automaton/convert/ToGrammar.h index e67c4869a20a2b567cca3d57efa1137f58362bbc..209b10a145cb56dca204ae6d9f796bc9be1df6c3 100644 --- a/alib2algo/src/automaton/convert/ToGrammar.h +++ b/alib2algo/src/automaton/convert/ToGrammar.h @@ -42,16 +42,19 @@ class ToGrammar { public: /** * Performs the conversion (@sa ToGrammarRightRG::convert). - * @tparam SymbolType Type for symbols. - * @tparam StateType Type for states. - * @param automaton the automaton to convert - * @return right regular grammar equivalent to the input @p automaton + * + * \tparam SymbolType Type for symbols. + * \tparam StateType Type for states. + * + * \param automaton the automaton to convert + * + * \return right regular grammar equivalent to the input @p automaton */ template < class SymbolType, class StateType > static grammar::RightRG < SymbolType, StateType > convert(const automaton::NFA < SymbolType, StateType > & automaton); /** - * @overload + * \overload */ template < class SymbolType, class StateType > static grammar::RightRG < SymbolType, StateType > convert(const automaton::DFA < SymbolType, StateType > & automaton); diff --git a/alib2algo/src/automaton/convert/ToGrammarLeftRG.cpp b/alib2algo/src/automaton/convert/ToGrammarLeftRG.cpp index 8cba0df538b1398461d49e6b09d577c053c16ac1..95fab45fdd84a17d1c572443a07a2cb8c300108e 100644 --- a/alib2algo/src/automaton/convert/ToGrammarLeftRG.cpp +++ b/alib2algo/src/automaton/convert/ToGrammarLeftRG.cpp @@ -12,8 +12,17 @@ namespace automaton { namespace convert { -auto ToGrammarLeftRGNFA = registration::AbstractRegister < ToGrammarLeftRG, grammar::LeftRG < >, const automaton::NFA < > & > ( ToGrammarLeftRG::convert ); -auto ToGrammarLeftRGDFA = registration::AbstractRegister < ToGrammarLeftRG, grammar::LeftRG < >, const automaton::DFA < > & > ( ToGrammarLeftRG::convert ); +auto ToGrammarLeftRGNFA = registration::AbstractRegister < ToGrammarLeftRG, grammar::LeftRG < >, const automaton::NFA < > & > ( ToGrammarLeftRG::convert, "automaton" ).setDocumentation ( +"Performs the conversion of the finite automaton to left regular grammar.\n\ +\n\ +@param automaton a finite automaton to convert\n\ +@return left regular grammar equivalent to the source @p automaton." ); + +auto ToGrammarLeftRGDFA = registration::AbstractRegister < ToGrammarLeftRG, grammar::LeftRG < >, const automaton::DFA < > & > ( ToGrammarLeftRG::convert, "automaton").setDocumentation ( +"Performs the conversion of the finite automaton to left regular grammar.\n\ +\n\ +@param automaton a finite automaton to convert\n\ +@return left regular grammar equivalent to the source @p automaton." ); } /* namespace convert */ diff --git a/alib2algo/src/automaton/convert/ToGrammarRightRG.cpp b/alib2algo/src/automaton/convert/ToGrammarRightRG.cpp index 58e84d9f6f585557660e50071f6ff2e518447f87..1883b2dbf5a3970bdb32677d3c798f45dff13c33 100644 --- a/alib2algo/src/automaton/convert/ToGrammarRightRG.cpp +++ b/alib2algo/src/automaton/convert/ToGrammarRightRG.cpp @@ -12,8 +12,17 @@ namespace automaton { namespace convert { -auto ToGrammarRightRGNFA = registration::AbstractRegister < ToGrammarRightRG, grammar::RightRG < >, const automaton::NFA < > & > ( ToGrammarRightRG::convert ); -auto ToGrammarRightRGDFA = registration::AbstractRegister < ToGrammarRightRG, grammar::RightRG < >, const automaton::DFA < > & > ( ToGrammarRightRG::convert ); +auto ToGrammarRightRGNFA = registration::AbstractRegister < ToGrammarRightRG, grammar::RightRG < >, const automaton::NFA < > & > ( ToGrammarRightRG::convert, "automaton" ).setDocumentation ( +"Performs the conversion of the finite automaton to right regular grammar.\n\ +\n\ +@param automaton a finite automaton to convert\n\ +@return right regular grammar equivalent to the source @p automaton." ); + +auto ToGrammarRightRGDFA = registration::AbstractRegister < ToGrammarRightRG, grammar::RightRG < >, const automaton::DFA < > & > ( ToGrammarRightRG::convert, "automaton" ).setDocumentation ( +"Performs the conversion of the finite automaton to right regular grammar.\n\ +\n\ +@param automaton a finite automaton to convert\n\ +ěreturn right regular grammar equivalent to the source @p automaton." ); } /* namespace convert */ diff --git a/alib2algo/src/automaton/convert/ToPostfixPushdownAutomaton.cpp b/alib2algo/src/automaton/convert/ToPostfixPushdownAutomaton.cpp index 814a8666d6b83eacd1b447deab91cb8c7521241e..9bae87f9e602c14c650adec1a0a04bc6d72c56a0 100644 --- a/alib2algo/src/automaton/convert/ToPostfixPushdownAutomaton.cpp +++ b/alib2algo/src/automaton/convert/ToPostfixPushdownAutomaton.cpp @@ -97,8 +97,17 @@ automaton::NPDA < > ToPostfixPushdownAutomaton::convert ( const automaton::NFTA return automaton; } -auto ToAutomatonDFTA = registration::AbstractRegister < ToPostfixPushdownAutomaton, automaton::DPDA < >, const automaton::DFTA < > & > ( ToPostfixPushdownAutomaton::convert ); -auto ToAutomatonNFTA = registration::AbstractRegister < ToPostfixPushdownAutomaton, automaton::NPDA < >, const automaton::NFTA < > & > ( ToPostfixPushdownAutomaton::convert ); +auto ToAutomatonDFTA = registration::AbstractRegister < ToPostfixPushdownAutomaton, automaton::DPDA < >, const automaton::DFTA < > & > ( ToPostfixPushdownAutomaton::convert, "dfta" ).setDocumentation ( +"Performs the conversion of the deterministic FTA to the deterministic PDA\n\ +\n\ +@param dfta Deterministic finite tree automaton to convert\n\ +@return (D)PDA equivalent to original finite tree automaton reading linearized postfix tree" ); + +auto ToAutomatonNFTA = registration::AbstractRegister < ToPostfixPushdownAutomaton, automaton::NPDA < >, const automaton::NFTA < > & > ( ToPostfixPushdownAutomaton::convert, "nfta" ).setDocumentation ( +"Performs the conversion of the deterministic FTA to the deterministic PDA\n\ +\n\ +@param nfta Nondeterministic finite tree automaton to convert\n\ +@return (N)PDA equivalent to original finite tree automaton reading linearized postfix tree" ); } /* namespace convert */ diff --git a/alib2algo/src/automaton/convert/ToRegExp.cpp b/alib2algo/src/automaton/convert/ToRegExp.cpp index 154c9cf3fe435265e7cdfa6746fc4f5c2ed07797..3bd847ebf4514fa66e13080c46c58216ef3e465a 100644 --- a/alib2algo/src/automaton/convert/ToRegExp.cpp +++ b/alib2algo/src/automaton/convert/ToRegExp.cpp @@ -12,12 +12,41 @@ namespace automaton { namespace convert { -auto ToRegExpEpsilonNFA = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const automaton::EpsilonNFA < > & > ( ToRegExp::convert ); -auto ToRegExpMultiInitialStateNFA = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const automaton::MultiInitialStateNFA < > & > ( ToRegExp::convert ); -auto ToRegExpNFA = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const automaton::NFA < > & > ( ToRegExp::convert ); -auto ToRegExpDFA = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const automaton::DFA < > & > ( ToRegExp::convert ); -auto ToRegExpExtendedNFA = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const automaton::ExtendedNFA < > & > ( ToRegExp::convert ); -auto ToRegExpCompactNFA = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const automaton::CompactNFA < > & > ( ToRegExp::convert ); +auto ToRegExpEpsilonNFA = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const automaton::EpsilonNFA < > & > ( ToRegExp::convert, "automaton" ).setDocumentation ( +"Performs the conversion (@sa ToRegExpStateElimination::convert).\n\ +\n\ +@param automaton the automaton to convert\n\ +@return regular expression equivalent to the input @p automaton" ); + +auto ToRegExpMultiInitialStateNFA = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const automaton::MultiInitialStateNFA < > & > ( ToRegExp::convert, "automaton" ).setDocumentation ( +"Performs the conversion (@sa ToRegExpStateElimination::convert).\n\ +\n\ +@param automaton the automaton to convert\n\ +@return regular expression equivalent to the input @p automaton" ); + +auto ToRegExpNFA = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const automaton::NFA < > & > ( ToRegExp::convert, "automaton" ).setDocumentation ( +"Performs the conversion (@sa ToRegExpStateElimination::convert).\n\ +\n\ +@param automaton the automaton to convert\n\ +@return regular expression equivalent to the input @p automaton" ); + +auto ToRegExpDFA = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const automaton::DFA < > & > ( ToRegExp::convert, "automaton" ).setDocumentation ( +"Performs the conversion (@sa ToRegExpStateElimination::convert).\n\ +\n\ +@param automaton the automaton to convert\n\ +@return regular expression equivalent to the input @p automaton" ); + +auto ToRegExpExtendedNFA = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const automaton::ExtendedNFA < > & > ( ToRegExp::convert, "automaton" ).setDocumentation ( +"Performs the conversion (@sa ToRegExpStateElimination::convert).\n\ +\n\ +@param automaton the automaton to convert\n\ +@return regular expression equivalent to the input @p automaton" ); + +auto ToRegExpCompactNFA = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const automaton::CompactNFA < > & > ( ToRegExp::convert, "automaton" ).setDocumentation ( +"Performs the conversion (@sa ToRegExpStateElimination::convert).\n\ +\n\ +@param automaton the automaton to convert\n\ +@return regular expression equivalent to the input @p automaton" ); } /* namespace convert */ diff --git a/alib2algo/src/automaton/convert/ToRegExpAlgebraic.cpp b/alib2algo/src/automaton/convert/ToRegExpAlgebraic.cpp index 1f636ccf2ca907666a7b2ba057897ccd4de7a7b7..b0480fbe912cb45ba601e04c843da18c16de2914 100644 --- a/alib2algo/src/automaton/convert/ToRegExpAlgebraic.cpp +++ b/alib2algo/src/automaton/convert/ToRegExpAlgebraic.cpp @@ -12,10 +12,29 @@ namespace automaton { namespace convert { -auto ToRegExpAlgebraicEpsilonNFA = registration::AbstractRegister < ToRegExpAlgebraic, regexp::UnboundedRegExp < >, const automaton::EpsilonNFA < > & > ( ToRegExpAlgebraic::convert ); -auto ToRegExpAlgebraicMultiInitialStateNFA = registration::AbstractRegister < ToRegExpAlgebraic, regexp::UnboundedRegExp < >, const automaton::MultiInitialStateNFA < > & > ( ToRegExpAlgebraic::convert ); -auto ToRegExpAlgebraicNFA = registration::AbstractRegister < ToRegExpAlgebraic, regexp::UnboundedRegExp < >, const automaton::NFA < > & > ( ToRegExpAlgebraic::convert ); -auto ToRegExpAlgebraicDFA = registration::AbstractRegister < ToRegExpAlgebraic, regexp::UnboundedRegExp < >, const automaton::DFA < > & > ( ToRegExpAlgebraic::convert ); +auto ToRegExpAlgebraicEpsilonNFA = registration::AbstractRegister < ToRegExpAlgebraic, regexp::UnboundedRegExp < >, const automaton::EpsilonNFA < > & > ( ToRegExpAlgebraic::convert, "automaton" ).setDocumentation ( +"Performs the actual conversion.\n\ +\n\ +@param automaton The automaton that is to be converted to the regular expression\n\ +@return regular expression equivalent to the input @p automaton" ); + +auto ToRegExpAlgebraicMultiInitialStateNFA = registration::AbstractRegister < ToRegExpAlgebraic, regexp::UnboundedRegExp < >, const automaton::MultiInitialStateNFA < > & > ( ToRegExpAlgebraic::convert, "automaton" ).setDocumentation ( +"Performs the actual conversion.\n\ +\n\ +@param automaton The automaton that is to be converted to the regular expression\n\ +@return regular expression equivalent to the input @p automaton" ); + +auto ToRegExpAlgebraicNFA = registration::AbstractRegister < ToRegExpAlgebraic, regexp::UnboundedRegExp < >, const automaton::NFA < > & > ( ToRegExpAlgebraic::convert, "automaton" ).setDocumentation ( +"Performs the actual conversion.\n\ +\n\ +@param automaton The automaton that is to be converted to the regular expression\n\ +@return regular expression equivalent to the input @p automaton" ); + +auto ToRegExpAlgebraicDFA = registration::AbstractRegister < ToRegExpAlgebraic, regexp::UnboundedRegExp < >, const automaton::DFA < > & > ( ToRegExpAlgebraic::convert, "automaton" ).setDocumentation ( +"Performs the actual conversion.\n\ +\n\ +@param automaton The automaton that is to be converted to the regular expression\n\ +@return regular expression equivalent to the input @p automaton" ); } /* namespace convert */ diff --git a/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp b/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp index 8c6967b2ac9b327aae9a158b4af1f48b97378dd0..151f72729b8c9e77234c5e4c0dc6c0aac39e4d4c 100644 --- a/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp +++ b/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp @@ -12,12 +12,41 @@ namespace automaton { namespace convert { -auto ToRegExpStateEliminationEpsilonNFA = registration::AbstractRegister < ToRegExpStateElimination, regexp::UnboundedRegExp < >, const automaton::EpsilonNFA < > & >(ToRegExpStateElimination::convert); -auto ToRegExpStateEliminationMultiInitialStateNFA = registration::AbstractRegister < ToRegExpStateElimination, regexp::UnboundedRegExp < >, const automaton::MultiInitialStateNFA < > & >(ToRegExpStateElimination::convert); -auto ToRegExpStateEliminationNFA = registration::AbstractRegister < ToRegExpStateElimination, regexp::UnboundedRegExp < >, const automaton::NFA < > & >(ToRegExpStateElimination::convert); -auto ToRegExpStateEliminationDFA = registration::AbstractRegister < ToRegExpStateElimination, regexp::UnboundedRegExp < >, const automaton::DFA < > & >(ToRegExpStateElimination::convert); -auto ToRegExpStateEliminationExtendedNFA = registration::AbstractRegister < ToRegExpStateElimination, regexp::UnboundedRegExp < >, const automaton::ExtendedNFA < > & >(ToRegExpStateElimination::convert); -auto ToRegExpStateEliminationCompactNFA = registration::AbstractRegister < ToRegExpStateElimination, regexp::UnboundedRegExp < >, const automaton::CompactNFA < > & >(ToRegExpStateElimination::convert); +auto ToRegExpStateEliminationEpsilonNFA = registration::AbstractRegister < ToRegExpStateElimination, regexp::UnboundedRegExp < >, const automaton::EpsilonNFA < > & > ( ToRegExpStateElimination::convert, "automaton" ).setDocumentation ( +"Performs conversion.\n\ +\n\ +@param automaton finite automaton to convert\n\ +@return unbounded regular expression equivalent to the original automaton" ); + +auto ToRegExpStateEliminationMultiInitialStateNFA = registration::AbstractRegister < ToRegExpStateElimination, regexp::UnboundedRegExp < >, const automaton::MultiInitialStateNFA < > & > ( ToRegExpStateElimination::convert, "automaton" ).setDocumentation ( +"Performs conversion.\n\ +\n\ +@param automaton finite automaton to convert\n\ +@return unbounded regular expression equivalent to the original automaton" ); + +auto ToRegExpStateEliminationNFA = registration::AbstractRegister < ToRegExpStateElimination, regexp::UnboundedRegExp < >, const automaton::NFA < > & > ( ToRegExpStateElimination::convert, "automaton" ).setDocumentation ( +"Performs conversion.\n\ +\n\ +@param automaton finite automaton to convert\n\ +@return unbounded regular expression equivalent to the original automaton" ); + +auto ToRegExpStateEliminationDFA = registration::AbstractRegister < ToRegExpStateElimination, regexp::UnboundedRegExp < >, const automaton::DFA < > & > ( ToRegExpStateElimination::convert, "automaton" ).setDocumentation ( +"Performs conversion.\n\ +\n\ +@param automaton finite automaton to convert\n\ +@return unbounded regular expression equivalent to the original automaton" ); + +auto ToRegExpStateEliminationExtendedNFA = registration::AbstractRegister < ToRegExpStateElimination, regexp::UnboundedRegExp < >, const automaton::ExtendedNFA < > & > ( ToRegExpStateElimination::convert, "automaton" ).setDocumentation ( +"Performs conversion.\n\ +\n\ +@param automaton finite automaton to convert\n\ +@return unbounded regular expression equivalent to the original automaton" ); + +auto ToRegExpStateEliminationCompactNFA = registration::AbstractRegister < ToRegExpStateElimination, regexp::UnboundedRegExp < >, const automaton::CompactNFA < > & > ( ToRegExpStateElimination::convert, "automaton" ).setDocumentation ( +"Performs conversion.\n\ +\n\ +@param automaton finite automaton to convert\n\ +@return unbounded regular expression equivalent to the original automaton" ); } /* namespace convert */