diff --git a/alib2algo/test-src/grammar/generate/GrammarGenerateUpToLength.cpp b/alib2algo/test-src/grammar/generate/GrammarGenerateUpToLength.cpp
index 36c351885317cbd4e2ffbb0efeca81e0bf952d14..023d3c1a74a5bb28c7852ed203c21cc841c7d9b2 100644
--- a/alib2algo/test-src/grammar/generate/GrammarGenerateUpToLength.cpp
+++ b/alib2algo/test-src/grammar/generate/GrammarGenerateUpToLength.cpp
@@ -52,20 +52,20 @@ void GrammarGenerateUpToLength::testGenerate2() {
 	grammar::EpsilonFreeCFG < > grammar1(S);
 	grammar1.setNonterminalAlphabet({S, A, B, C, D});
 	grammar1.setTerminalAlphabet({a, b, c, d});
-	grammar1.addRule({S}, {A, D});
-	grammar1.addRule({S}, {A});
-	grammar1.addRule({S}, {D});
-	grammar1.addRule({A}, {a, A, d});
-	grammar1.addRule({A}, {a, d});
-	grammar1.addRule({A}, {B, C});
-	grammar1.addRule({A}, {B});
-	grammar1.addRule({A}, {C});
-	grammar1.addRule({B}, {b, B, c});
-	grammar1.addRule({B}, {b, c});
-	grammar1.addRule({C}, {c, C});
-	grammar1.addRule({C}, {c});
-	grammar1.addRule({D}, {d, D});
-	grammar1.addRule({D}, {d});
+	grammar1.addRule(S, {A, D});
+	grammar1.addRule(S, {A});
+	grammar1.addRule(S, {D});
+	grammar1.addRule(A, {a, A, d});
+	grammar1.addRule(A, {a, d});
+	grammar1.addRule(A, {B, C});
+	grammar1.addRule(A, {B});
+	grammar1.addRule(A, {C});
+	grammar1.addRule(B, {b, B, c});
+	grammar1.addRule(B, {b, c});
+	grammar1.addRule(C, {c, C});
+	grammar1.addRule(C, {c});
+	grammar1.addRule(D, {d, D});
+	grammar1.addRule(D, {d});
 	grammar1.setGeneratesEpsilon(true);
 
 	ext::set<string::LinearString < >> strings;
@@ -108,19 +108,19 @@ void GrammarGenerateUpToLength::testGenerate3() {
 	grammar::EpsilonFreeCFG < > grammar1(S);
 	grammar1.setNonterminalAlphabet({S, A, B, C, D});
 	grammar1.setTerminalAlphabet({a, b, c, d});
-	grammar1.addRule({S}, {A, D});
-	grammar1.addRule({S}, {D});
-	grammar1.addRule({A}, {a, A, d});
-	grammar1.addRule({A}, {a, d});
-	grammar1.addRule({A}, {B, C});
-	grammar1.addRule({A}, {B});
-	grammar1.addRule({A}, {C});
-	grammar1.addRule({B}, {b, B, c});
-	grammar1.addRule({B}, {b, c});
-	grammar1.addRule({C}, {c, C});
-	grammar1.addRule({C}, {c});
-	grammar1.addRule({D}, {d, D});
-	grammar1.addRule({D}, {d});
+	grammar1.addRule(S, {A, D});
+	grammar1.addRule(S, {D});
+	grammar1.addRule(A, {a, A, d});
+	grammar1.addRule(A, {a, d});
+	grammar1.addRule(A, {B, C});
+	grammar1.addRule(A, {B});
+	grammar1.addRule(A, {C});
+	grammar1.addRule(B, {b, B, c});
+	grammar1.addRule(B, {b, c});
+	grammar1.addRule(C, {c, C});
+	grammar1.addRule(C, {c});
+	grammar1.addRule(D, {d, D});
+	grammar1.addRule(D, {d});
 
 	ext::set<string::LinearString < >> strings;
 	strings.insert(string::LinearString < >(ext::vector<DefaultSymbolType>{d}));
diff --git a/alib2algo/test-src/grammar/simplify/GrammarEpsilonRemoverTest.cpp b/alib2algo/test-src/grammar/simplify/GrammarEpsilonRemoverTest.cpp
index cc535a8ac9776b6366e191534c187ff0bce8146c..4a7f343798d2cdb333b0e8973a5f1a6380f6f967 100644
--- a/alib2algo/test-src/grammar/simplify/GrammarEpsilonRemoverTest.cpp
+++ b/alib2algo/test-src/grammar/simplify/GrammarEpsilonRemoverTest.cpp
@@ -52,35 +52,35 @@ void GrammarEpsilonRemoverTest::testRemoveEpsilonRules2() {
 	grammar::CFG < > grammar1(S);
 	grammar1.setNonterminalAlphabet({S, A, B, C, D});
 	grammar1.setTerminalAlphabet({a, b, c, d});
-	grammar1.addRule({S}, {A, D});
-	grammar1.addRule({A}, {a, A, d});
-	grammar1.addRule({A}, {B, C});
-	grammar1.addRule({B}, {b, B, c});
-	grammar1.addRule({B}, {});
-	grammar1.addRule({C}, {c, C});
-	grammar1.addRule({C}, {});
-	grammar1.addRule({D}, {d, D});
-	grammar1.addRule({D}, {});
+	grammar1.addRule(S, {A, D});
+	grammar1.addRule(A, {a, A, d});
+	grammar1.addRule(A, {B, C});
+	grammar1.addRule(B, {b, B, c});
+	grammar1.addRule(B, {});
+	grammar1.addRule(C, {c, C});
+	grammar1.addRule(C, {});
+	grammar1.addRule(D, {d, D});
+	grammar1.addRule(D, {});
 
 	grammar::EpsilonFreeCFG < > grammar2 = grammar::simplify::EpsilonRemover::remove(grammar1);
 
 	grammar::EpsilonFreeCFG < > grammar3(S);
 	grammar3.setNonterminalAlphabet({S, A, B, C, D});
 	grammar3.setTerminalAlphabet({a, b, c, d});
-	grammar3.addRule({S}, {A, D});
-	grammar3.addRule({S}, {A});
-	grammar3.addRule({S}, {D});
-	grammar3.addRule({A}, {a, A, d});
-	grammar3.addRule({A}, {a, d});
-	grammar3.addRule({A}, {B, C});
-	grammar3.addRule({A}, {B});
-	grammar3.addRule({A}, {C});
-	grammar3.addRule({B}, {b, B, c});
-	grammar3.addRule({B}, {b, c});
-	grammar3.addRule({C}, {c, C});
-	grammar3.addRule({C}, {c});
-	grammar3.addRule({D}, {d, D});
-	grammar3.addRule({D}, {d});
+	grammar3.addRule(S, {A, D});
+	grammar3.addRule(S, {A});
+	grammar3.addRule(S, {D});
+	grammar3.addRule(A, {a, A, d});
+	grammar3.addRule(A, {a, d});
+	grammar3.addRule(A, {B, C});
+	grammar3.addRule(A, {B});
+	grammar3.addRule(A, {C});
+	grammar3.addRule(B, {b, B, c});
+	grammar3.addRule(B, {b, c});
+	grammar3.addRule(C, {c, C});
+	grammar3.addRule(C, {c});
+	grammar3.addRule(D, {d, D});
+	grammar3.addRule(D, {d});
 	grammar3.setGeneratesEpsilon(true);
 
 	CPPUNIT_ASSERT(grammar2 == grammar3);
@@ -101,34 +101,34 @@ void GrammarEpsilonRemoverTest::testRemoveEpsilonRules3() {
 	grammar::CFG < > grammar1(S);
 	grammar1.setNonterminalAlphabet({S, A, B, C, D});
 	grammar1.setTerminalAlphabet({a, b, c, d});
-	grammar1.addRule({S}, {A, D});
-	grammar1.addRule({A}, {a, A, d});
-	grammar1.addRule({A}, {B, C});
-	grammar1.addRule({B}, {b, B, c});
-	grammar1.addRule({B}, {});
-	grammar1.addRule({C}, {c, C});
-	grammar1.addRule({C}, {});
-	grammar1.addRule({D}, {d, D});
-	grammar1.addRule({D}, {d});
+	grammar1.addRule(S, {A, D});
+	grammar1.addRule(A, {a, A, d});
+	grammar1.addRule(A, {B, C});
+	grammar1.addRule(B, {b, B, c});
+	grammar1.addRule(B, {});
+	grammar1.addRule(C, {c, C});
+	grammar1.addRule(C, {});
+	grammar1.addRule(D, {d, D});
+	grammar1.addRule(D, {d});
 
 	grammar::EpsilonFreeCFG < > grammar2 = grammar::simplify::EpsilonRemover::remove(grammar1);
 
 	grammar::EpsilonFreeCFG < > grammar3(S);
 	grammar3.setNonterminalAlphabet({S, A, B, C, D});
 	grammar3.setTerminalAlphabet({a, b, c, d});
-	grammar3.addRule({S}, {A, D});
-	grammar3.addRule({S}, {D});
-	grammar3.addRule({A}, {a, A, d});
-	grammar3.addRule({A}, {a, d});
-	grammar3.addRule({A}, {B, C});
-	grammar3.addRule({A}, {B});
-	grammar3.addRule({A}, {C});
-	grammar3.addRule({B}, {b, B, c});
-	grammar3.addRule({B}, {b, c});
-	grammar3.addRule({C}, {c, C});
-	grammar3.addRule({C}, {c});
-	grammar3.addRule({D}, {d, D});
-	grammar3.addRule({D}, {d});
+	grammar3.addRule(S, {A, D});
+	grammar3.addRule(S, {D});
+	grammar3.addRule(A, {a, A, d});
+	grammar3.addRule(A, {a, d});
+	grammar3.addRule(A, {B, C});
+	grammar3.addRule(A, {B});
+	grammar3.addRule(A, {C});
+	grammar3.addRule(B, {b, B, c});
+	grammar3.addRule(B, {b, c});
+	grammar3.addRule(C, {c, C});
+	grammar3.addRule(C, {c});
+	grammar3.addRule(D, {d, D});
+	grammar3.addRule(D, {d});
 
 	CPPUNIT_ASSERT(grammar2 == grammar3);
 }
diff --git a/alib2algo/test-src/grammar/simplify/GrammarSimpleRulesRemoverTest.cpp b/alib2algo/test-src/grammar/simplify/GrammarSimpleRulesRemoverTest.cpp
index 4b75a48ad783eb85f0936e9c02fa035d43c6799f..6ea9683ca4b52b6f4110e9d77380215c9cd9f77e 100644
--- a/alib2algo/test-src/grammar/simplify/GrammarSimpleRulesRemoverTest.cpp
+++ b/alib2algo/test-src/grammar/simplify/GrammarSimpleRulesRemoverTest.cpp
@@ -52,33 +52,33 @@ void GrammarSimpleRulesRemoverTest::testRemoveSimpleRulesRules2() {
 	grammar::CFG < > grammar1(S);
 	grammar1.setNonterminalAlphabet({S, A, B, C, D});
 	grammar1.setTerminalAlphabet({a, b, c, d});
-	grammar1.addRule({S}, {A});
-	grammar1.addRule({A}, {a, A, d, D});
-	grammar1.addRule({A}, {B});
-	grammar1.addRule({B}, {b, B, c, C});
-	grammar1.addRule({B}, {});
-	grammar1.addRule({C}, {c, C});
-	grammar1.addRule({C}, {});
-	grammar1.addRule({D}, {d, D});
-	grammar1.addRule({D}, {});
+	grammar1.addRule(S, {A});
+	grammar1.addRule(A, {a, A, d, D});
+	grammar1.addRule(A, {B});
+	grammar1.addRule(B, {b, B, c, C});
+	grammar1.addRule(B, {});
+	grammar1.addRule(C, {c, C});
+	grammar1.addRule(C, {});
+	grammar1.addRule(D, {d, D});
+	grammar1.addRule(D, {});
 
 	grammar::CFG < > grammar2 = grammar::simplify::SimpleRulesRemover::remove(grammar1);
 
 	grammar::CFG < > grammar3(S);
 	grammar3.setNonterminalAlphabet({S, A, B, C, D});
 	grammar3.setTerminalAlphabet({a, b, c, d});
-	grammar3.addRule({S}, {a, A, d, D});
-	grammar3.addRule({S}, {b, B, c, C});
-	grammar3.addRule({S}, {});
-	grammar3.addRule({A}, {a, A, d, D});
-	grammar3.addRule({A}, {b, B, c, C});
-	grammar3.addRule({A}, {});
-	grammar3.addRule({B}, {b, B, c, C});
-	grammar3.addRule({B}, {});
-	grammar3.addRule({C}, {c, C});
-	grammar3.addRule({C}, {});
-	grammar3.addRule({D}, {d, D});
-	grammar3.addRule({D}, {});
+	grammar3.addRule(S, {a, A, d, D});
+	grammar3.addRule(S, {b, B, c, C});
+	grammar3.addRule(S, {});
+	grammar3.addRule(A, {a, A, d, D});
+	grammar3.addRule(A, {b, B, c, C});
+	grammar3.addRule(A, {});
+	grammar3.addRule(B, {b, B, c, C});
+	grammar3.addRule(B, {});
+	grammar3.addRule(C, {c, C});
+	grammar3.addRule(C, {});
+	grammar3.addRule(D, {d, D});
+	grammar3.addRule(D, {});
 
 	CPPUNIT_ASSERT(grammar2 == grammar3);
 }
@@ -98,33 +98,33 @@ void GrammarSimpleRulesRemoverTest::testRemoveSimpleRulesRules3() {
 	grammar::EpsilonFreeCFG < > grammar1(S);
 	grammar1.setNonterminalAlphabet({S, A, B, C, D});
 	grammar1.setTerminalAlphabet({a, b, c, d});
-	grammar1.addRule({S}, {A});
-	grammar1.addRule({A}, {a, A, d, D});
-	grammar1.addRule({A}, {B});
-	grammar1.addRule({B}, {b, B, c, C});
-	grammar1.addRule({B}, {c});
-	grammar1.addRule({C}, {c, C});
-	grammar1.addRule({C}, {b});
-	grammar1.addRule({D}, {d, D});
-	grammar1.addRule({D}, {a});
+	grammar1.addRule(S, {A});
+	grammar1.addRule(A, {a, A, d, D});
+	grammar1.addRule(A, {B});
+	grammar1.addRule(B, {b, B, c, C});
+	grammar1.addRule(B, {c});
+	grammar1.addRule(C, {c, C});
+	grammar1.addRule(C, {b});
+	grammar1.addRule(D, {d, D});
+	grammar1.addRule(D, {a});
 
 	grammar::EpsilonFreeCFG < > grammar2 = grammar::simplify::SimpleRulesRemover::remove(grammar1);
 
 	grammar::EpsilonFreeCFG < > grammar3(S);
 	grammar3.setNonterminalAlphabet({S, A, B, C, D});
 	grammar3.setTerminalAlphabet({a, b, c, d});
-	grammar3.addRule({S}, {a, A, d, D});
-	grammar3.addRule({S}, {b, B, c, C});
-	grammar3.addRule({S}, {c});
-	grammar3.addRule({A}, {a, A, d, D});
-	grammar3.addRule({A}, {b, B, c, C});
-	grammar3.addRule({A}, {c});
-	grammar3.addRule({B}, {b, B, c, C});
-	grammar3.addRule({B}, {c});
-	grammar3.addRule({C}, {c, C});
-	grammar3.addRule({C}, {b});
-	grammar3.addRule({D}, {d, D});
-	grammar3.addRule({D}, {a});
+	grammar3.addRule(S, {a, A, d, D});
+	grammar3.addRule(S, {b, B, c, C});
+	grammar3.addRule(S, {c});
+	grammar3.addRule(A, {a, A, d, D});
+	grammar3.addRule(A, {b, B, c, C});
+	grammar3.addRule(A, {c});
+	grammar3.addRule(B, {b, B, c, C});
+	grammar3.addRule(B, {c});
+	grammar3.addRule(C, {c, C});
+	grammar3.addRule(C, {b});
+	grammar3.addRule(D, {d, D});
+	grammar3.addRule(D, {a});
 
 	CPPUNIT_ASSERT(grammar2 == grammar3);
 }
diff --git a/alib2algo_experimental/test-src/grammar/parsing/FirstTest.cpp b/alib2algo_experimental/test-src/grammar/parsing/FirstTest.cpp
index 64da2b9aa46f34a91e49f009aa8126787ec2c31f..e51164a2f718af211aa669f7adef1c5bf69d3518 100644
--- a/alib2algo_experimental/test-src/grammar/parsing/FirstTest.cpp
+++ b/alib2algo_experimental/test-src/grammar/parsing/FirstTest.cpp
@@ -190,7 +190,7 @@ void FirstTest::testFirst2 ( ) {
 	grammar::CFG < > grammar ( A );
 
 	grammar.setTerminalAlphabet ( { c, d } );
-	grammar.setNonterminalAlphabet ( { { A } } );
+	grammar.setNonterminalAlphabet ( { A } );
 	grammar.setInitialSymbol ( A );
 
 	grammar.addRule ( A, ext::vector < ext::variant < DefaultSymbolType, DefaultSymbolType > > { A, c } );
@@ -213,7 +213,7 @@ void FirstTest::testFirst3 ( ) {
 	grammar::CFG < > grammar ( S );
 
 	grammar.setTerminalAlphabet ( { a, b, c, d, f } );
-	grammar.setNonterminalAlphabet ( { { S, A, B } } );
+	grammar.setNonterminalAlphabet ( { S, A, B } );
 	grammar.setInitialSymbol ( S );
 
 	grammar.addRule ( S, ext::vector < ext::variant < DefaultSymbolType, DefaultSymbolType > > { A, a } );
diff --git a/alib2algo_experimental/test-src/grammar/parsing/LR0Parser.cpp b/alib2algo_experimental/test-src/grammar/parsing/LR0Parser.cpp
index ba5b4df136963067dcb83ad140258b85fd3b6cf6..4a9a9c458fbd37235d5dc2eb7a4b3f05a96182ef 100644
--- a/alib2algo_experimental/test-src/grammar/parsing/LR0Parser.cpp
+++ b/alib2algo_experimental/test-src/grammar/parsing/LR0Parser.cpp
@@ -21,12 +21,12 @@ grammar::CFG < > LR0Parser::getExpressionGrammar() {
 		E
 	);
 	
-	expressionGrammar.addRule ( { E }, { E, plus, T } );
-	expressionGrammar.addRule ( { E }, { T } );
-	expressionGrammar.addRule ( { T }, { T, times, F } );
-	expressionGrammar.addRule ( { T }, { F } );
-	expressionGrammar.addRule ( { F }, { leftParenthesis, E, rightParenthesis } );
-	expressionGrammar.addRule ( { F }, { identifier } );
+	expressionGrammar.addRule ( E, { E, plus, T } );
+	expressionGrammar.addRule ( E, { T } );
+	expressionGrammar.addRule ( T, { T, times, F } );
+	expressionGrammar.addRule ( T, { F } );
+	expressionGrammar.addRule ( F, { leftParenthesis, E, rightParenthesis } );
+	expressionGrammar.addRule ( F, { identifier } );
 	
 	return expressionGrammar;
 }
@@ -109,9 +109,9 @@ void LR0Parser::testNextStateItems ( ) {
 
 void LR0Parser::testAutomaton ( ) {
 	ext::vector < grammar::parsing::LR0Items > items(12);
-	
+
 	grammar::CFG < > augmentedExpressionGrammar = grammar::parsing::LRParser::getAugmentedGrammar ( getExpressionGrammar ( ) );
-	
+
 	items[0] = {
 		{
 			augmentedExpressionGrammar.getInitialSymbol(),
@@ -141,7 +141,7 @@ void LR0Parser::testAutomaton ( ) {
 			}
 		}
 	};
-	
+
 	items[1] = {
 		{
 			augmentedExpressionGrammar.getInitialSymbol(),
@@ -214,7 +214,7 @@ void LR0Parser::testAutomaton ( ) {
 			}
 		}
 	};
-	
+
 	items[6] = {
 		{
 			E,
@@ -237,7 +237,7 @@ void LR0Parser::testAutomaton ( ) {
 			}
 		}
 	};
-	
+
 	items[7] = {
 		{
 			T,
@@ -253,7 +253,7 @@ void LR0Parser::testAutomaton ( ) {
 			}
 		}
 	};
-	
+
 	items[8] = {
 		{
 			E,
@@ -268,7 +268,7 @@ void LR0Parser::testAutomaton ( ) {
 			}
 		}
 	};
-	
+
 	items[9] = {
 		{
 			E,
@@ -283,7 +283,7 @@ void LR0Parser::testAutomaton ( ) {
 			}
 		}
 	};
-	
+
 	items[10] = {
 		{
 			T,
@@ -292,7 +292,7 @@ void LR0Parser::testAutomaton ( ) {
 			}
 		}
 	};
-	
+
 	items[11] = {
 		{
 			F,
@@ -301,17 +301,17 @@ void LR0Parser::testAutomaton ( ) {
 			}
 		}
 	};
-	
+
 	automaton::DFA < ext::variant < DefaultSymbolType, DefaultSymbolType >, grammar::parsing::LR0Items > parsingAutomaton ( items[0] );
 	for ( const DefaultSymbolType & nonterminal : augmentedExpressionGrammar.getNonterminalAlphabet ( ) )
 		parsingAutomaton.addInputSymbol ( nonterminal );
 	for ( const DefaultSymbolType & terminal : augmentedExpressionGrammar.getTerminalAlphabet ( ) )
 		parsingAutomaton.addInputSymbol ( terminal );
-	
+
 	for (const grammar::parsing::LR0Items & state : items) {
 		parsingAutomaton.addState(state);
 	}
-	
+
 	parsingAutomaton.addTransition(items[0], E, items[1]);
 	parsingAutomaton.addTransition(items[0], T, items[2]);
 	parsingAutomaton.addTransition(items[0], identifier, items[5]);
@@ -319,15 +319,15 @@ void LR0Parser::testAutomaton ( ) {
 	parsingAutomaton.addTransition(items[0], F, items[3]);
 
 	parsingAutomaton.addTransition(items[1], plus, items[6]);
-	
+
 	parsingAutomaton.addTransition(items[2], times, items[7]);
-	
+
 	parsingAutomaton.addTransition(items[4], E, items[8]);
 	parsingAutomaton.addTransition(items[4], F, items[3]);
 	parsingAutomaton.addTransition(items[4], T, items[2]);
 	parsingAutomaton.addTransition(items[4], leftParenthesis, items[4]);
 	parsingAutomaton.addTransition(items[4], identifier, items[5]);
-	
+
 	parsingAutomaton.addTransition(items[6], T, items[9]);
 	parsingAutomaton.addTransition(items[6], F, items[3]);
 	parsingAutomaton.addTransition(items[6], leftParenthesis, items[4]);
@@ -341,6 +341,6 @@ void LR0Parser::testAutomaton ( ) {
 	parsingAutomaton.addTransition(items[8], plus, items[6]);
 
 	parsingAutomaton.addTransition(items[9], times, items[7]);
-	
+
 	CPPUNIT_ASSERT ( grammar::parsing::LR0Parser::getAutomaton(getExpressionGrammar()) == parsingAutomaton );
 }
diff --git a/alib2algo_experimental/test-src/grammar/parsing/LRParser.cpp b/alib2algo_experimental/test-src/grammar/parsing/LRParser.cpp
index a5bb9c5fb6cccff735ec23f454ac9a6a198adb98..e19d9aa31d410b5fcbb66b9f6db50cbdb8f438da 100644
--- a/alib2algo_experimental/test-src/grammar/parsing/LRParser.cpp
+++ b/alib2algo_experimental/test-src/grammar/parsing/LRParser.cpp
@@ -21,12 +21,12 @@ grammar::CFG < > LRParser::getExpressionGrammar() {
 		E
 	);
 	
-	expressionGrammar.addRule ( { E }, { E, plus, T } );
-	expressionGrammar.addRule ( { E }, { T } );
-	expressionGrammar.addRule ( { T }, { T, times, F } );
-	expressionGrammar.addRule ( { T }, { F } );
-	expressionGrammar.addRule ( { F }, { leftParenthesis, E, rightParenthesis } );
-	expressionGrammar.addRule ( { F }, { identifier } );
+	expressionGrammar.addRule ( E, { E, plus, T } );
+	expressionGrammar.addRule ( E, { T } );
+	expressionGrammar.addRule ( T, { T, times, F } );
+	expressionGrammar.addRule ( T, { F } );
+	expressionGrammar.addRule ( F, { leftParenthesis, E, rightParenthesis } );
+	expressionGrammar.addRule ( F, { identifier } );
 	
 	return expressionGrammar;
 }
diff --git a/alib2algo_experimental/test-src/grammar/parsing/SLR1ParseTable.cpp b/alib2algo_experimental/test-src/grammar/parsing/SLR1ParseTable.cpp
index 832dfc56dc13f843467a44ab85bc1e8607a24765..2fe9d0b961d34d70e07a873ff6d35e48f110fdc2 100644
--- a/alib2algo_experimental/test-src/grammar/parsing/SLR1ParseTable.cpp
+++ b/alib2algo_experimental/test-src/grammar/parsing/SLR1ParseTable.cpp
@@ -22,12 +22,12 @@ grammar::CFG < > SLR1ParseTable::getExpressionGrammar() {
 		E
 	);
 	
-	expressionGrammar.addRule ( { E }, { E, plus, T } );
-	expressionGrammar.addRule ( { E }, { T } );
-	expressionGrammar.addRule ( { T }, { T, times, F } );
-	expressionGrammar.addRule ( { T }, { F } );
-	expressionGrammar.addRule ( { F }, { leftParenthesis, E, rightParenthesis } );
-	expressionGrammar.addRule ( { F }, { identifier } );
+	expressionGrammar.addRule ( E, { E, plus, T } );
+	expressionGrammar.addRule ( E, { T } );
+	expressionGrammar.addRule ( T, { T, times, F } );
+	expressionGrammar.addRule ( T, { F } );
+	expressionGrammar.addRule ( F, { leftParenthesis, E, rightParenthesis } );
+	expressionGrammar.addRule ( F, { identifier } );
 	
 	return expressionGrammar;
 }
@@ -539,20 +539,20 @@ void SLR1ParseTable::testUnambiguousNotSLR1Grammar ( ) {
 	DefaultSymbolType S = DefaultSymbolType ( 'S' );
 	DefaultSymbolType L = DefaultSymbolType ( 'L' );
 	DefaultSymbolType R = DefaultSymbolType ( 'R' );
-	
+
 	DefaultSymbolType assignment = DefaultSymbolType ( '=' );
-	
+
 	grammar::CFG < > unambiguousNotSLR1Grammar(
 		{ S, L, R },
 		{ assignment, times, identifier },
 		S
 	);
-	
-	unambiguousNotSLR1Grammar.addRule ( { S }, { L, assignment, R } );
-	unambiguousNotSLR1Grammar.addRule ( { S }, { R } );
-	unambiguousNotSLR1Grammar.addRule ( { L }, { times, R } );
-	unambiguousNotSLR1Grammar.addRule ( { L }, { identifier } );
-	unambiguousNotSLR1Grammar.addRule ( { R }, { L } );
-	
+
+	unambiguousNotSLR1Grammar.addRule ( S, { L, assignment, R } );
+	unambiguousNotSLR1Grammar.addRule ( S, { R } );
+	unambiguousNotSLR1Grammar.addRule ( L, { times, R } );
+	unambiguousNotSLR1Grammar.addRule ( L, { identifier } );
+	unambiguousNotSLR1Grammar.addRule ( R, { L } );
+
 	CPPUNIT_ASSERT_THROW ( grammar::parsing::SLR1ParseTable::getActionTable ( unambiguousNotSLR1Grammar ), exception::CommonException );
 }