From 161d48fdff7a38e267db128d245465ce346fe2aa Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Fri, 1 Feb 2019 14:11:10 +0100
Subject: [PATCH] make determinisation documentation available

---
 .../src/automaton/determinize/Determinize.cpp | 141 +++++++++++++-----
 .../src/automaton/determinize/Determinize.h   |   4 +-
 2 files changed, 106 insertions(+), 39 deletions(-)

diff --git a/alib2algo/src/automaton/determinize/Determinize.cpp b/alib2algo/src/automaton/determinize/Determinize.cpp
index 30f5fbe804..e856f818f1 100644
--- a/alib2algo/src/automaton/determinize/Determinize.cpp
+++ b/alib2algo/src/automaton/determinize/Determinize.cpp
@@ -23,43 +23,110 @@ namespace automaton {
 
 namespace determinize {
 
-auto DeterminizeDFA = registration::AbstractRegister < Determinize, automaton::DFA < >, const automaton::DFA < > & > ( Determinize::determinize ).setDocumentation ( "Yay" );
-
-auto DeterminizeNFA = registration::AbstractRegister < Determinize, automaton::DFA < DefaultSymbolType, ext::set < DefaultStateType > >, const automaton::NFA < > & > ( Determinize::determinize );
-
-auto DeterminizeMultiInitialStateNFA = registration::AbstractRegister < Determinize, automaton::DFA < DefaultSymbolType, ext::set < DefaultStateType > >, const automaton::MultiInitialStateNFA < > & > ( Determinize::determinize );
-
-
-auto DeterminizeDFTA = registration::AbstractRegister < Determinize, automaton::DFTA < >, const automaton::DFTA < > & > ( Determinize::determinize );
-
-auto DeterminizeNFTA = registration::AbstractRegister < Determinize, automaton::DFTA < DefaultSymbolType, DefaultRankType, ext::set < DefaultSymbolType > >, const automaton::NFTA < > & > ( Determinize::determinize );
-
-
-auto DeterminizeInputDrivenDPDA = registration::AbstractRegister < Determinize, automaton::InputDrivenDPDA < >, const automaton::InputDrivenDPDA < > & > ( Determinize::determinize );
-
-auto DeterminizeInputDrivenNPDA = registration::AbstractRegister < Determinize, automaton::InputDrivenDPDA < DefaultSymbolType, DefaultSymbolType, ext::set < DefaultStateType > >, const automaton::InputDrivenNPDA < > & > ( Determinize::determinize );
-
-
-auto DeterminizeVisiblyPushdownDPDA = registration::AbstractRegister < Determinize, automaton::VisiblyPushdownDPDA < >, const automaton::VisiblyPushdownDPDA < > & > ( Determinize::determinize );
-
-auto DeterminizeVisiblyPushdownNPDA = registration::AbstractRegister < Determinize, automaton::VisiblyPushdownDPDA < DefaultSymbolType, ext::pair < ext::set < ext::pair < DefaultStateType, DefaultStateType > >, DefaultSymbolType >, ext::set < ext::pair < DefaultStateType, DefaultStateType > > >, const automaton::VisiblyPushdownNPDA < > & > ( Determinize::determinize );
-
-
-auto DeterminizeRealTimeHeightDeterministicDPDA = registration::AbstractRegister < Determinize, automaton::RealTimeHeightDeterministicDPDA < >, const automaton::RealTimeHeightDeterministicDPDA < > & > ( Determinize::determinize );
-
-auto DeterminizeRealTimeHeightDeterministicNPDA = registration::AbstractRegister < Determinize, automaton::RealTimeHeightDeterministicDPDA < DefaultSymbolType, DefaultEpsilonType, ext::pair < ext::set < ext::pair < DefaultStateType, DefaultStateType > >, ext::variant < DefaultEpsilonType, DefaultSymbolType > >, ext::set < ext::pair < DefaultStateType, DefaultStateType > > >, const automaton::RealTimeHeightDeterministicNPDA < > & > ( Determinize::determinize );
-
-
-auto DeterminizeSinglePopDPDA = registration::AbstractRegister < Determinize, automaton::SinglePopDPDA < >, const automaton::SinglePopDPDA < > & > ( Determinize::determinize );
-
-
-auto DeterminizeDPDA = registration::AbstractRegister < Determinize, automaton::DPDA < >, const automaton::DPDA < > & > ( Determinize::determinize );
-
-auto DeterminizeNPDA = registration::AbstractRegister < Determinize, automaton::DPDA < >, const automaton::NPDA < > & > ( Determinize::determinize );
-
-
-auto DeterminizeOneTapeDTM = registration::AbstractRegister < Determinize, automaton::OneTapeDTM < >, const automaton::OneTapeDTM < > & > ( Determinize::determinize );
-
+auto DeterminizeDFA = registration::AbstractRegister < Determinize, automaton::DFA < >, const automaton::DFA < > & > ( Determinize::determinize, "dfa" ).setDocumentation (
+"Determinization of deterministic finite automata.\n\
+Implemented as a no-op.\n\
+\n\
+@param dfa deterministic finite automaton\n\
+@return deterministic finite automaton equivalent to @p dfa" );
+
+auto DeterminizeNFA = registration::AbstractRegister < Determinize, automaton::DFA < DefaultSymbolType, ext::set < DefaultStateType > >, const automaton::NFA < > & > ( Determinize::determinize, "nfa" ).setDocumentation (
+"Implementation of subset determinization for nondeterministic finite automata.\n\
+\n\
+@param nfa nondeterministic finite automaton\n\
+@return deterministic finite automaton equivalent to @p nfa" );
+
+auto DeterminizeMultiInitialStateNFA = registration::AbstractRegister < Determinize, automaton::DFA < DefaultSymbolType, ext::set < DefaultStateType > >, const automaton::MultiInitialStateNFA < > & > ( Determinize::determinize, "nfa" ).setDocumentation (
+"Implementation of subset determinization for nondeterministic finite automata with multiple initial states.\n\
+\n\
+@param nfa nondeterministic finite automaton with multiple initial states\n\
+@return deterministic finite automaton equivalent to @p nfa" );
+
+
+auto DeterminizeDFTA = registration::AbstractRegister < Determinize, automaton::DFTA < >, const automaton::DFTA < > & > ( Determinize::determinize, "dfta" ).setDocumentation (
+"Determinization of deterministic finite tree automata.\n\
+Implemented as a no-op.\n\
+\n\
+@param dfta deterministic finite tree automaton\n\
+@return deterministic finite tree automaton equivalent to @p dfta" );
+
+auto DeterminizeNFTA = registration::AbstractRegister < Determinize, automaton::DFTA < DefaultSymbolType, DefaultRankType, ext::set < DefaultSymbolType > >, const automaton::NFTA < > & > ( Determinize::determinize, "nfta" ).setDocumentation (
+"Implementation of subset determinization for nondeterministic finite tree automata.\n\
+\n\
+@param nfta nondeterministic finite tree automaton\n\
+@return deterministic finite tree automaton equivalent to @p nfta" );
+
+
+auto DeterminizeInputDrivenDPDA = registration::AbstractRegister < Determinize, automaton::InputDrivenDPDA < >, const automaton::InputDrivenDPDA < > & > ( Determinize::determinize, "dpda" ).setDocumentation (
+"Determinization of deterministic input-driven pushdown automata.\n\
+Implemented as a no-op.\n\
+\n\
+@param dpda deterministic input-driven pushdown automaton\n\
+@return deterministic input-driven pushdown automaton equivalent to @p dpda" );
+
+auto DeterminizeInputDrivenNPDA = registration::AbstractRegister < Determinize, automaton::InputDrivenDPDA < DefaultSymbolType, DefaultSymbolType, ext::set < DefaultStateType > >, const automaton::InputDrivenNPDA < > & > ( Determinize::determinize, "npda" ).setDocumentation (
+"Implementation of determinization for input-driven pushdown automata.\n\
+\n\
+@param npda nondeterministic input-driven pushdown automaton\n\
+@return deterministic input-driven pushdown automaton equivalent to @p npda" );
+
+
+auto DeterminizeVisiblyPushdownDPDA = registration::AbstractRegister < Determinize, automaton::VisiblyPushdownDPDA < >, const automaton::VisiblyPushdownDPDA < > & > ( Determinize::determinize, "dpda" ).setDocumentation (
+"Determinization of deterministic visibly pushdown automata.\n\
+Implemented as a no-op.\n\
+\n\
+@param dpda deterministic visibly pushdown automaton\n\
+@return deterministic pushdown automaton equivalent to @p dpda" );
+
+auto DeterminizeVisiblyPushdownNPDA = registration::AbstractRegister < Determinize, automaton::VisiblyPushdownDPDA < DefaultSymbolType, ext::pair < ext::set < ext::pair < DefaultStateType, DefaultStateType > >, DefaultSymbolType >, ext::set < ext::pair < DefaultStateType, DefaultStateType > > >, const automaton::VisiblyPushdownNPDA < > & > ( Determinize::determinize, "npda" ).setDocumentation (
+"Determinization of nondeterministic visibly pushdown automata.\n\
+\n\
+@param npda nondeterministic visibly pushdown automaton\n\
+@return deterministic pushdown automaton equivalent to @p npda" );
+
+
+auto DeterminizeRealTimeHeightDeterministicDPDA = registration::AbstractRegister < Determinize, automaton::RealTimeHeightDeterministicDPDA < >, const automaton::RealTimeHeightDeterministicDPDA < > & > ( Determinize::determinize, "dpda" ).setDocumentation (
+"Determinization of deterministic real-time height-deterministic pushdown automata.\n\
+Implemented as a no-op.\n\
+\n\
+@param dpda deterministic real-time height-deterministic pushdown automaton\n\
+@return deterministic pushdown automaton equivalent to @p dpda" );
+
+auto DeterminizeRealTimeHeightDeterministicNPDA = registration::AbstractRegister < Determinize, automaton::RealTimeHeightDeterministicDPDA < DefaultSymbolType, DefaultEpsilonType, ext::pair < ext::set < ext::pair < DefaultStateType, DefaultStateType > >, ext::variant < DefaultEpsilonType, DefaultSymbolType > >, ext::set < ext::pair < DefaultStateType, DefaultStateType > > >, const automaton::RealTimeHeightDeterministicNPDA < > & > ( Determinize::determinize, "npda" ).setDocumentation (
+"Determinization of nondeterministic real-time height-deterministic pushdown automata.\n\
+\n\
+@param npda nondeterministic real-time height-deterministic pushdown automaton\n\
+@return deterministic pushdown automaton equivalent to @p npda" );
+
+
+auto DeterminizeSinglePopDPDA = registration::AbstractRegister < Determinize, automaton::SinglePopDPDA < >, const automaton::SinglePopDPDA < > & > ( Determinize::determinize, "dpda" ).setDocumentation (
+"Determinization of deterministic single pop pushdown automata.\n\
+Implemented as a no-op.\n\
+\n\
+@param dpda nondeterministic finite automaton with multiple initial states\n\
+@return deterministic single pop deterministic pushdown automaton equivalent do @p dpda" );
+
+
+auto DeterminizeDPDA = registration::AbstractRegister < Determinize, automaton::DPDA < >, const automaton::DPDA < > & > ( Determinize::determinize, "dpda" ).setDocumentation (
+"Determinization of deterministic pushdown automata.\n\
+Implemented as a no-op.\n\
+\n\
+@param dpda deterministic pushdown automaton\n\
+@return deterministic pushdown automaton equivalent to @p dpda" );
+
+auto DeterminizeNPDA = registration::AbstractRegister < Determinize, automaton::DPDA < >, const automaton::NPDA < > & > ( Determinize::determinize, "npda" ).setDocumentation (
+"Determinization of nondeterministic pushdown automata is implemented as a cast of such automaton to RhPDA.\n\
+\n\
+@param npda nondeterministic pushdown automaton\n\
+@return nondeterministic pushdown automaton equivalent to @p npda" );
+
+
+auto DeterminizeOneTapeDTM = registration::AbstractRegister < Determinize, automaton::OneTapeDTM < >, const automaton::OneTapeDTM < > & > ( Determinize::determinize, "dtm" ).setDocumentation (
+"Determinization of deterministic pushdown automata.\n\
+Implemented as a no-op.\n\
+\n\
+@param dtm deterministic one-tape turing machine\n\
+@return deterministic one-tape turing machine equivalent to @p dtm" );
 
 } /* namespace determinize */
 
diff --git a/alib2algo/src/automaton/determinize/Determinize.h b/alib2algo/src/automaton/determinize/Determinize.h
index 5f1952d67b..1487864fae 100644
--- a/alib2algo/src/automaton/determinize/Determinize.h
+++ b/alib2algo/src/automaton/determinize/Determinize.h
@@ -64,7 +64,7 @@ public:
 	 * @tparam SymbolType Type for the input symbols.
 	 * @tparam StateType Type for the states.
 	 * @param dfa deterministic finite automaton
-	 * @return deterministic finite automaton equivalent to @p nfa
+	 * @return deterministic finite automaton equivalent to @p dfa
 	 */
 	template < class SymbolType, class StateType >
 	static automaton::DFA < SymbolType, StateType > determinize ( const automaton::DFA < SymbolType, StateType > & dfa );
@@ -136,7 +136,7 @@ public:
 	 * @tparam PushdownSymbolType Type for the pushdown store symbols.
 	 * @tparam StateType Type for the states.
 	 * @param npda nondeterministic input-driven pushdown automaton
-	 * @return deterministic input-driven pushdown automaton equivalent to @p dpda
+	 * @return deterministic input-driven pushdown automaton equivalent to @p npda
 	 */
 	template < class InputSymbolType, class PushdownSymbolType, class StateType >
 	static automaton::InputDrivenDPDA < InputSymbolType, PushdownSymbolType, ext::set < StateType > > determinize ( const automaton::InputDrivenNPDA < InputSymbolType, PushdownSymbolType, StateType > & npda );
-- 
GitLab