diff --git a/alib2algo/src/grammar/convert/ToAutomaton.cpp b/alib2algo/src/grammar/convert/ToAutomaton.cpp
index 80de0d939f672084958c9145cbf33fe75de10c06..03d43851d5cba3e8882fd9d886210f4d4fa2aaec 100644
--- a/alib2algo/src/grammar/convert/ToAutomaton.cpp
+++ b/alib2algo/src/grammar/convert/ToAutomaton.cpp
@@ -11,10 +11,29 @@ namespace grammar {
 
 namespace convert {
 
-auto ToAutomatonLeftRG = registration::AbstractRegister < ToAutomaton, automaton::NFA < >, const grammar::LeftRG < > & > ( ToAutomaton::convert );
-auto ToAutomatonRightRG = registration::AbstractRegister < ToAutomaton, automaton::NFA < >, const grammar::RightRG < > & > ( ToAutomaton::convert );
-auto ToAutomatonCFG = registration::AbstractRegister < ToAutomaton, automaton::NPDA < DefaultSymbolType, DefaultEpsilonType, ext::variant < DefaultSymbolType, DefaultSymbolType >, unsigned >, const grammar::CFG < > & > ( ToAutomaton::convert );
-auto ToAutomatonEpsilonFreeCFG = registration::AbstractRegister < ToAutomaton, automaton::NPDA < DefaultSymbolType, DefaultEpsilonType, ext::variant < DefaultSymbolType, DefaultSymbolType >, unsigned >, const grammar::EpsilonFreeCFG < > & > ( ToAutomaton::convert );
+auto ToAutomatonLeftRG = registration::AbstractRegister < ToAutomaton, automaton::NFA < >, const grammar::LeftRG < > & > ( ToAutomaton::convert, "grammar" ).setDocumentation (
+"Performs the conversion.\n\
+\n\
+@param grammar the left regular grammar to convert\n\
+@return finite automaton accepting the language generated by @p grammar" );
+
+auto ToAutomatonRightRG = registration::AbstractRegister < ToAutomaton, automaton::NFA < >, const grammar::RightRG < > & > ( ToAutomaton::convert, "grammar" ).setDocumentation (
+"Performs the conversion.\n\
+\n\
+@param grammar the left regular grammar to convert\n\
+@return finite automaton accepting the language generated by @p grammar" );
+
+auto ToAutomatonCFG = registration::AbstractRegister < ToAutomaton, automaton::NPDA < DefaultSymbolType, DefaultEpsilonType, ext::variant < DefaultSymbolType, DefaultSymbolType >, unsigned >, const grammar::CFG < > & > ( ToAutomaton::convert, "grammar" ).setDocumentation (
+"Performs the conversion.\n\
+\n\
+@param grammar some context free grammar\n\
+@return pushdown automaton accepting the language generated by @p grammar" );
+
+auto ToAutomatonEpsilonFreeCFG = registration::AbstractRegister < ToAutomaton, automaton::NPDA < DefaultSymbolType, DefaultEpsilonType, ext::variant < DefaultSymbolType, DefaultSymbolType >, unsigned >, const grammar::EpsilonFreeCFG < > & > ( ToAutomaton::convert, "grammar" ).setDocumentation (
+"Performs the conversion.\n\
+\n\
+@param grammar some context free grammar\n\
+@return pushdown automaton accepting the language generated by @p grammar" );
 
 } /* namespace convert */
 
diff --git a/alib2algo/src/grammar/convert/ToAutomaton.h b/alib2algo/src/grammar/convert/ToAutomaton.h
index ee9c818337ad99479bf54f83dee124cde350fd87..c61e9f50a23e0101fd04e331d21f11c191437277 100644
--- a/alib2algo/src/grammar/convert/ToAutomaton.h
+++ b/alib2algo/src/grammar/convert/ToAutomaton.h
@@ -33,15 +33,42 @@ namespace convert {
 class ToAutomaton {
 public:
 	/**
-	 * Performs conversion.
-	 * @param grammar Regular grammar to convert.
-	 * @return FSM equivalent to source grammar.
+	 * Performs the conversion.
+	 *
+	 * \tparam TerminalSymbolType the type of terminal symbol of the grammar
+	 * \tparam NonterminalSymbolType the type of nonterminal symbol of the grammar
+	 *
+	 * \param grammar the left regular grammar to convert.
+	 *
+	 * \return finite automaton accepting the language generated by @p grammar.
 	 */
 	template < class TerminalSymbolType, class NonterminalSymbolType >
-	static automaton::NFA < TerminalSymbolType, NonterminalSymbolType > convert(const grammar::LeftRG < TerminalSymbolType, NonterminalSymbolType > & grammar);
+	static automaton::NFA < TerminalSymbolType, NonterminalSymbolType > convert ( const grammar::LeftRG < TerminalSymbolType, NonterminalSymbolType > & grammar );
+
+	/**
+	 * \overload
+	 *
+	 * \tparam TerminalSymbolType the type of terminal symbol of the grammar
+	 * \tparam NonterminalSymbolType the type of nonterminal symbol of the grammar
+	 *
+	 * \param grammar the right regular grammar to convert.
+	 *
+	 * \return finite automaton accepting the language generated by @p grammar.
+	 */
 	template < class TerminalSymbolType, class NonterminalSymbolType >
-	static automaton::NFA < TerminalSymbolType, NonterminalSymbolType > convert(const grammar::RightRG < TerminalSymbolType, NonterminalSymbolType > & grammar);
+	static automaton::NFA < TerminalSymbolType, NonterminalSymbolType > convert ( const grammar::RightRG < TerminalSymbolType, NonterminalSymbolType > & grammar );
 
+	/**
+	 * \overload
+	 *
+	 * \tparam T the type of converted grammar
+	 * \tparam TerminalSymbolType the type of terminal symbol of the grammar
+	 * \tparam NonterminalSymbolType the type of nonterminal symbol of the grammar
+	 *
+	 * \param grammar some context free grammar.
+	 *
+	 * \return pushdown automaton accepting the language generated by @p grammar.
+	 */
 	template < class T, class TerminalSymbolType = typename grammar::TerminalSymbolTypeOfGrammar < T >, class NonterminalSymbolType = typename grammar::NonterminalSymbolTypeOfGrammar < T > >
 	static automaton::NPDA < TerminalSymbolType, DefaultEpsilonType, ext::variant < TerminalSymbolType, NonterminalSymbolType >, unsigned > convert ( const T & grammar );
 };
diff --git a/alib2algo/src/grammar/convert/ToAutomatonBottomUp.cpp b/alib2algo/src/grammar/convert/ToAutomatonBottomUp.cpp
index a74aff1100f93ee36e9d333fdc3fb1784ffb2dd8..478383bdfa9b675ca129fcb7c6fca52fc1e3789f 100644
--- a/alib2algo/src/grammar/convert/ToAutomatonBottomUp.cpp
+++ b/alib2algo/src/grammar/convert/ToAutomatonBottomUp.cpp
@@ -11,8 +11,17 @@ namespace grammar {
 
 namespace convert {
 
-auto ToAutomatonBottomUpCFG = registration::AbstractRegister < ToAutomatonBottomUp, automaton::NPDA < DefaultSymbolType, DefaultEpsilonType, ext::variant < DefaultSymbolType, DefaultSymbolType >, unsigned >, const grammar::CFG < > & > ( ToAutomatonBottomUp::convert );
-auto ToAutomatonBottomUpEpsilonFreeCFG = registration::AbstractRegister < ToAutomatonBottomUp, automaton::NPDA < DefaultSymbolType, DefaultEpsilonType, ext::variant < DefaultSymbolType, DefaultSymbolType >, unsigned >, const grammar::EpsilonFreeCFG < > & > ( ToAutomatonBottomUp::convert );
+auto ToAutomatonBottomUpCFG = registration::AbstractRegister < ToAutomatonBottomUp, automaton::NPDA < DefaultSymbolType, DefaultEpsilonType, ext::variant < DefaultSymbolType, DefaultSymbolType >, unsigned >, const grammar::CFG < > & > ( ToAutomatonBottomUp::convert, "grammar" ).setDocumentation (
+"Converts a context free grammar to a pushdown automaton by method of bottom up analysis.\n\
+\n\
+@param grammar the converted context free grammar\n\
+@return pushdown automaton accepting the language generated by @p grammar");
+
+auto ToAutomatonBottomUpEpsilonFreeCFG = registration::AbstractRegister < ToAutomatonBottomUp, automaton::NPDA < DefaultSymbolType, DefaultEpsilonType, ext::variant < DefaultSymbolType, DefaultSymbolType >, unsigned >, const grammar::EpsilonFreeCFG < > & > ( ToAutomatonBottomUp::convert, "grammar" ).setDocumentation (
+"Converts a context free grammar to a pushdown automaton by method of bottom up analysis.\n\
+\n\
+@param grammar the converted context free grammar\n\
+@return pushdown automaton accepting the language generated by @p grammar");
 
 } /* namespace convert */
 
diff --git a/alib2algo/src/grammar/convert/ToAutomatonBottomUp.h b/alib2algo/src/grammar/convert/ToAutomatonBottomUp.h
index c82649bdbf96bfb43c7118e3d90998632934d390..473bfb606abad3ff0116bb427908d7340b98c103 100644
--- a/alib2algo/src/grammar/convert/ToAutomatonBottomUp.h
+++ b/alib2algo/src/grammar/convert/ToAutomatonBottomUp.h
@@ -28,7 +28,15 @@ namespace convert {
 class ToAutomatonBottomUp {
 public:
 	/**
-	 * Performs conversion.
+	 * Converts a context free grammar to a pushdown automaton by method of bottom up analysis.
+	 *
+	 * \tparam T the type of converted grammar
+	 * \tparam TerminalSymbolType the type of terminals in the converted grammar
+	 * \tparam NonterminalSymbolType the type of nonterminals in the converted grammar
+	 *
+	 * \param grammar the converted context free grammar
+	 *
+	 * \return pushdown automaton accepting the language generated by @p grammar
 	 */
 	template < class T, class TerminalSymbolType = typename grammar::TerminalSymbolTypeOfGrammar < T >, class NonterminalSymbolType = typename grammar::NonterminalSymbolTypeOfGrammar < T > >
 	static automaton::NPDA < TerminalSymbolType, DefaultEpsilonType, ext::variant < TerminalSymbolType, NonterminalSymbolType >, unsigned > convert(const T& grammar);
diff --git a/alib2algo/src/grammar/convert/ToGrammarLeftRG.cpp b/alib2algo/src/grammar/convert/ToGrammarLeftRG.cpp
index f91cb42a567eb63ba88be33011cac8817906dcc9..1028f62ba60abbb8478675c8932f1fb7e0c78b38 100644
--- a/alib2algo/src/grammar/convert/ToGrammarLeftRG.cpp
+++ b/alib2algo/src/grammar/convert/ToGrammarLeftRG.cpp
@@ -12,7 +12,11 @@ namespace grammar {
 
 namespace convert {
 
-auto ToGrammarLeftRGRightRG = registration::AbstractRegister < ToGrammarLeftRG, grammar::LeftRG < >, const grammar::RightRG < > & > ( ToGrammarLeftRG::convert );
+auto ToGrammarLeftRGRightRG = registration::AbstractRegister < ToGrammarLeftRG, grammar::LeftRG < >, const grammar::RightRG < > & > ( ToGrammarLeftRG::convert, "grammar" ).setDocumentation (
+"Transforms a right regular grammar to left regular grammar.\n\
+\n\
+@param grammar the right regular grammar to convert\n\
+@return left regular grammar which is equivalent to source right regular grammar." );
 
 } /* namespace convert */
 
diff --git a/alib2algo/src/grammar/convert/ToGrammarLeftRG.h b/alib2algo/src/grammar/convert/ToGrammarLeftRG.h
index 8fe5e86b7a9f5c7e3b64a1baf039bf2128bd0b16..190e758413794f33994b861f9ed06142a7cd26b3 100644
--- a/alib2algo/src/grammar/convert/ToGrammarLeftRG.h
+++ b/alib2algo/src/grammar/convert/ToGrammarLeftRG.h
@@ -23,12 +23,12 @@ namespace convert {
 class ToGrammarLeftRG {
 public:
 	/**
-	 * Performs conversion.
+	 * Transforms a right regular grammar to left regular grammar.
 	 *
 	 * \tparam TerminalSymbolType used for the terminal alphabet of the grammar.
 	 * \tparam NonterminalSymbolType used for the nonterminal alphabet, and the initial symbol of the grammar.
 	 *
-	 * \param grammar Right regular grammar to convert
+	 * \param grammar the right regular grammar to convert
 	 *
 	 * \return left regular grammar which is equivalent to source right regular grammar.
 	 */
diff --git a/alib2algo/src/grammar/convert/ToGrammarRightRG.cpp b/alib2algo/src/grammar/convert/ToGrammarRightRG.cpp
index a906b00f7a424219343b2e8fe55ec363be3472d6..cab9d33e21047395fecd3b67e249e0a2a5a6ac7e 100644
--- a/alib2algo/src/grammar/convert/ToGrammarRightRG.cpp
+++ b/alib2algo/src/grammar/convert/ToGrammarRightRG.cpp
@@ -12,7 +12,11 @@ namespace grammar {
 
 namespace convert {
 
-auto ToGrammarRightRGLeftRG = registration::AbstractRegister < ToGrammarRightRG, grammar::RightRG < >, const grammar::LeftRG < > & > ( ToGrammarRightRG::convert );
+auto ToGrammarRightRGLeftRG = registration::AbstractRegister < ToGrammarRightRG, grammar::RightRG < >, const grammar::LeftRG < > & > ( ToGrammarRightRG::convert, "grammar" ).setDocumentation (
+"Transforms a left regular grammar to right regular grammar.\n\
+\n\
+@param grammar the left regular grammar to convert\n\
+@return right regular grammar which is equivalent to source left regular grammar." );
 
 } /* namespace convert */
 
diff --git a/alib2algo/src/grammar/convert/ToGrammarRightRG.h b/alib2algo/src/grammar/convert/ToGrammarRightRG.h
index b22ba5bece6b27550e682f37a63febd62238b67d..144f1393046ce0368c08e78ba12c71abd3792281 100644
--- a/alib2algo/src/grammar/convert/ToGrammarRightRG.h
+++ b/alib2algo/src/grammar/convert/ToGrammarRightRG.h
@@ -23,12 +23,12 @@ namespace convert {
 class ToGrammarRightRG {
 public:
 	/**
-	 * Performs conversion.
+	 * Transforms a left regular grammar to right regular grammar.
 	 *
 	 * \tparam TerminalSymbolType used for the terminal alphabet of the grammar.
 	 * \tparam NonterminalSymbolType used for the nonterminal alphabet, and the initial symbol of the grammar.
 	 *
-	 * \param grammar Left regular grammar to convert
+	 * \param grammar left regular grammar to convert
 	 *
 	 * \return right regular grammar which is equivalent to source left regular grammar.
 	 */
diff --git a/alib2algo/src/grammar/convert/ToRegExp.cpp b/alib2algo/src/grammar/convert/ToRegExp.cpp
index f78e6bc3053c7e23204afd1774c6c14e6d776145..2d678b1dfecf6973f2c4b0a48123ac99bf0c58b1 100644
--- a/alib2algo/src/grammar/convert/ToRegExp.cpp
+++ b/alib2algo/src/grammar/convert/ToRegExp.cpp
@@ -12,8 +12,17 @@ namespace grammar {
 
 namespace convert {
 
-auto ToRegExpRightRG = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const grammar::RightRG < > & > ( ToRegExp::convert );
-auto ToRegExpLeftRG = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const grammar::LeftRG < > & > ( ToRegExp::convert );
+auto ToRegExpRightRG = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const grammar::RightRG < > & > ( ToRegExp::convert, "grammar" ).setDocumentation (
+"Converts a regular grammar to regular expression.\n\
+\n\
+@param grammar the regular grammar to convert\n\
+@return regexp describing language generated by @p grammar." );
+
+auto ToRegExpLeftRG = registration::AbstractRegister < ToRegExp, regexp::UnboundedRegExp < >, const grammar::LeftRG < > & > ( ToRegExp::convert, "grammar" ).setDocumentation (
+"Converts a regular grammar to regular expression.\n\
+\n\
+@param grammar the regular grammar to convert\n\
+@return regexp describing language generated by @p grammar." );
 
 } /* namespace convert */
 
diff --git a/alib2algo/src/grammar/convert/ToRegExp.h b/alib2algo/src/grammar/convert/ToRegExp.h
index c3069c533e155ad2445863db8c8b90a8106b8b0a..b70678eb1e62db2cca36624903725597d622c4d1 100644
--- a/alib2algo/src/grammar/convert/ToRegExp.h
+++ b/alib2algo/src/grammar/convert/ToRegExp.h
@@ -20,8 +20,11 @@ namespace convert {
 class ToRegExp {
 public:
 	/**
-	 * \param grammar Grammar to convert
-	 * \return regexp equivalent to source right regular grammar.
+	 * Converts a regular grammar to regular expression.
+	 *
+	 * \param grammar the regular grammar to convert
+	 *
+	 * \return regexp describing language generated by @p grammar.
 	 */
 	template < class TerminalSymbolType, class NonterminalSymbolType >
 	static regexp::UnboundedRegExp < TerminalSymbolType > convert ( const grammar::RightRG < TerminalSymbolType, NonterminalSymbolType > & grammar );
diff --git a/alib2algo/src/grammar/convert/ToRegExpAlgebraic.cpp b/alib2algo/src/grammar/convert/ToRegExpAlgebraic.cpp
index 1aa50c530dabcef8ad9e87b35db722d9f4947427..3c431de767d03087dc10c504d562e4ee437c5fdf 100644
--- a/alib2algo/src/grammar/convert/ToRegExpAlgebraic.cpp
+++ b/alib2algo/src/grammar/convert/ToRegExpAlgebraic.cpp
@@ -12,8 +12,17 @@ namespace grammar {
 
 namespace convert {
 
-auto ToRegExpAlgebraicLeftRG = registration::AbstractRegister < ToRegExpAlgebraic, regexp::UnboundedRegExp < >, const grammar::LeftRG < > & > ( ToRegExpAlgebraic::convert );
-auto ToRegExpAlgebraicRightRG = registration::AbstractRegister < ToRegExpAlgebraic, regexp::UnboundedRegExp < >, const grammar::RightRG < > & > ( ToRegExpAlgebraic::convert );
+auto ToRegExpAlgebraicLeftRG = registration::AbstractRegister < ToRegExpAlgebraic, regexp::UnboundedRegExp < >, const grammar::LeftRG < > & > ( ToRegExpAlgebraic::convert, "grammar" ).setDocumentation (
+"Converts a regular grammar to regular expression using regular equations.\n\
+\n\
+@param grammar Grammar to convert\n\
+@return regexp describing language generated by the @p grammar" );
+
+auto ToRegExpAlgebraicRightRG = registration::AbstractRegister < ToRegExpAlgebraic, regexp::UnboundedRegExp < >, const grammar::RightRG < > & > ( ToRegExpAlgebraic::convert, "grammar" ).setDocumentation (
+"Converts a regular grammar to regular expression using regular equations.\n\
+\n\
+@param grammar Grammar to convert\n\
+@return regexp describing language generated by the @p grammar" );
 
 } /* namespace convert */
 
diff --git a/alib2algo/src/grammar/convert/ToRegExpAlgebraic.h b/alib2algo/src/grammar/convert/ToRegExpAlgebraic.h
index 6bfdf0943ca54b92559c71977429b1fe2b7c3ca3..418d48e422c9f51441e8e9ac340480c204b3a8c5 100644
--- a/alib2algo/src/grammar/convert/ToRegExpAlgebraic.h
+++ b/alib2algo/src/grammar/convert/ToRegExpAlgebraic.h
@@ -24,8 +24,10 @@ namespace convert {
 class ToRegExpAlgebraic {
 public:
 	/**
-	 * @return regexp equivalent to source right regular grammar.
+	 * Converts a regular grammar to regular expression using regular equations.
+	 *
 	 * @param grammar Grammar to convert
+	 * @return regexp describing language generated by the @p grammar
 	 */
 	template < class TerminalSymbolType, class NonterminalSymbolType >
 	static regexp::UnboundedRegExp < TerminalSymbolType > convert ( const grammar::RightRG < TerminalSymbolType, NonterminalSymbolType > & grammar);