diff --git a/alib2algo/test-src/grammar/simplify/GrammarEpsilonRemoverTest.cpp b/alib2algo/test-src/grammar/simplify/GrammarEpsilonRemoverTest.cpp index 40382fa8537e07c91a27e0e709befce0f4650cba..833c6544f98e08dded79a0084d076fe131f5a075 100644 --- a/alib2algo/test-src/grammar/simplify/GrammarEpsilonRemoverTest.cpp +++ b/alib2algo/test-src/grammar/simplify/GrammarEpsilonRemoverTest.cpp @@ -17,14 +17,14 @@ void GrammarEpsilonRemoverTest::tearDown() { } void GrammarEpsilonRemoverTest::testRemoveEpsilonRules1() { - alphabet::Symbol S = alphabet::Symbol("S"); - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); - alphabet::Symbol D = alphabet::Symbol("D"); + DefaultSymbolType S = DefaultSymbolType("S"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); + DefaultSymbolType D = DefaultSymbolType("D"); - alphabet::Symbol a = alphabet::Symbol('a'); - alphabet::Symbol b = alphabet::Symbol('b'); + DefaultSymbolType a = DefaultSymbolType('a'); + DefaultSymbolType b = DefaultSymbolType('b'); grammar::CFG < > grammar1(S); grammar1.setNonterminalAlphabet({S, A, B, C, D}); @@ -40,16 +40,16 @@ void GrammarEpsilonRemoverTest::testRemoveEpsilonRules1() { } void GrammarEpsilonRemoverTest::testRemoveEpsilonRules2() { - alphabet::Symbol S = alphabet::Symbol("S"); - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); - alphabet::Symbol D = alphabet::Symbol("D"); + DefaultSymbolType S = DefaultSymbolType("S"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); + DefaultSymbolType D = DefaultSymbolType("D"); - alphabet::Symbol a = alphabet::Symbol('a'); - alphabet::Symbol b = alphabet::Symbol('b'); - alphabet::Symbol c = alphabet::Symbol('c'); - alphabet::Symbol d = alphabet::Symbol('d'); + DefaultSymbolType a = DefaultSymbolType('a'); + DefaultSymbolType b = DefaultSymbolType('b'); + DefaultSymbolType c = DefaultSymbolType('c'); + DefaultSymbolType d = DefaultSymbolType('d'); grammar::CFG < > grammar1(S); grammar1.setNonterminalAlphabet({S, A, B, C, D}); @@ -89,16 +89,16 @@ void GrammarEpsilonRemoverTest::testRemoveEpsilonRules2() { } void GrammarEpsilonRemoverTest::testRemoveEpsilonRules3() { - alphabet::Symbol S = alphabet::Symbol("S"); - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); - alphabet::Symbol D = alphabet::Symbol("D"); - - alphabet::Symbol a = alphabet::Symbol('a'); - alphabet::Symbol b = alphabet::Symbol('b'); - alphabet::Symbol c = alphabet::Symbol('c'); - alphabet::Symbol d = alphabet::Symbol('d'); + DefaultSymbolType S = DefaultSymbolType("S"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); + DefaultSymbolType D = DefaultSymbolType("D"); + + DefaultSymbolType a = DefaultSymbolType('a'); + DefaultSymbolType b = DefaultSymbolType('b'); + DefaultSymbolType c = DefaultSymbolType('c'); + DefaultSymbolType d = DefaultSymbolType('d'); grammar::CFG < > grammar1(S); grammar1.setNonterminalAlphabet({S, A, B, C, D}); diff --git a/alib2algo/test-src/grammar/simplify/GrammarLeftRecursionRemoverTest.cpp b/alib2algo/test-src/grammar/simplify/GrammarLeftRecursionRemoverTest.cpp index c339d118eb388417b2e437695d45ea4bb0b11e89..440d5a5a0c79c50e3b67ad9482f2002e69f105b7 100644 --- a/alib2algo/test-src/grammar/simplify/GrammarLeftRecursionRemoverTest.cpp +++ b/alib2algo/test-src/grammar/simplify/GrammarLeftRecursionRemoverTest.cpp @@ -21,14 +21,14 @@ void GrammarLeftRecursionRemoverTest::tearDown() { } void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion1() { - alphabet::Symbol S = alphabet::Symbol("S"); - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); - alphabet::Symbol D = alphabet::Symbol("D"); + DefaultSymbolType S = DefaultSymbolType("S"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); + DefaultSymbolType D = DefaultSymbolType("D"); - alphabet::Symbol a = alphabet::Symbol('a'); - alphabet::Symbol b = alphabet::Symbol('b'); + DefaultSymbolType a = DefaultSymbolType('a'); + DefaultSymbolType b = DefaultSymbolType('b'); grammar::EpsilonFreeCFG < > grammar1(S); grammar1.setNonterminalAlphabet({S, A, B, C, D}); @@ -44,15 +44,15 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion1() { } void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion2() { - alphabet::Symbol S = alphabet::Symbol("S"); - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); - alphabet::Symbol D = alphabet::Symbol("D"); + DefaultSymbolType S = DefaultSymbolType("S"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); + DefaultSymbolType D = DefaultSymbolType("D"); - alphabet::Symbol a = alphabet::Symbol('a'); - alphabet::Symbol b = alphabet::Symbol('b'); - alphabet::Symbol c = alphabet::Symbol('c'); + DefaultSymbolType a = DefaultSymbolType('a'); + DefaultSymbolType b = DefaultSymbolType('b'); + DefaultSymbolType c = DefaultSymbolType('c'); grammar::EpsilonFreeCFG < > grammar1(S); grammar1.setNonterminalAlphabet({S, A, B, C, D}); @@ -62,7 +62,7 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion2() { grammar1.addRule(A, {A, b}); grammar1.addRule(A, {c}); - alphabet::Symbol Aprimed = common::createUnique(A, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType Aprimed = common::createUnique(A, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); std::cout << alib::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar1)) << std::endl; @@ -87,14 +87,14 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion2() { } void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion3() { - alphabet::Symbol S = alphabet::Symbol("S"); - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); + DefaultSymbolType S = DefaultSymbolType("S"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); - alphabet::Symbol a = alphabet::Symbol('a'); - alphabet::Symbol b = alphabet::Symbol('b'); - alphabet::Symbol c = alphabet::Symbol('c'); + DefaultSymbolType a = DefaultSymbolType('a'); + DefaultSymbolType b = DefaultSymbolType('b'); + DefaultSymbolType c = DefaultSymbolType('c'); grammar::EpsilonFreeCFG < > grammar1(S); grammar1.setNonterminalAlphabet({S, A, B, C}); @@ -104,7 +104,7 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion3() { grammar1.addRule(B, {A, b}); grammar1.addRule(A, {c}); - alphabet::Symbol Bprimed = common::createUnique(B, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType Bprimed = common::createUnique(B, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); std::cout << alib::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar1)) << std::endl; @@ -130,12 +130,12 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion3() { } void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion4() { - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); - alphabet::Symbol a = alphabet::Symbol('a'); - alphabet::Symbol b = alphabet::Symbol('b'); + DefaultSymbolType a = DefaultSymbolType('a'); + DefaultSymbolType b = DefaultSymbolType('b'); grammar::EpsilonFreeCFG < > grammar1(A); grammar1.setNonterminalAlphabet({A, B, C}); @@ -148,8 +148,8 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion4() { grammar1.addRule(C, {C, C}); grammar1.addRule(C, {a}); - alphabet::Symbol Bprimed = common::createUnique(B, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); - alphabet::Symbol Cprimed = common::createUnique(C, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType Bprimed = common::createUnique(B, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType Cprimed = common::createUnique(C, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); std::cout << alib::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar1)) << std::endl; @@ -188,12 +188,12 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion4() { } void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion5() { - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); - alphabet::Symbol a = alphabet::Symbol('a'); - alphabet::Symbol b = alphabet::Symbol('b'); + DefaultSymbolType a = DefaultSymbolType('a'); + DefaultSymbolType b = DefaultSymbolType('b'); grammar::EpsilonFreeCFG < > grammar1(A); grammar1.setNonterminalAlphabet({A, B, C}); diff --git a/alib2algo/test-src/grammar/simplify/GrammarSimpleRulesRemoverTest.cpp b/alib2algo/test-src/grammar/simplify/GrammarSimpleRulesRemoverTest.cpp index f9c5c3f7a953d42907d8a5f34ca3a5eb19f463fd..bc0b1b92a9120d8ee63237b287bc31741edcba77 100644 --- a/alib2algo/test-src/grammar/simplify/GrammarSimpleRulesRemoverTest.cpp +++ b/alib2algo/test-src/grammar/simplify/GrammarSimpleRulesRemoverTest.cpp @@ -19,14 +19,14 @@ void GrammarSimpleRulesRemoverTest::tearDown() { } void GrammarSimpleRulesRemoverTest::testRemoveSimpleRulesRules1() { - alphabet::Symbol S = alphabet::Symbol("S"); - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); - alphabet::Symbol D = alphabet::Symbol("D"); + DefaultSymbolType S = DefaultSymbolType("S"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); + DefaultSymbolType D = DefaultSymbolType("D"); - alphabet::Symbol a = alphabet::Symbol('a'); - alphabet::Symbol b = alphabet::Symbol('b'); + DefaultSymbolType a = DefaultSymbolType('a'); + DefaultSymbolType b = DefaultSymbolType('b'); grammar::CFG < > grammar1(S); grammar1.setNonterminalAlphabet({S, A, B, C, D}); @@ -42,16 +42,16 @@ void GrammarSimpleRulesRemoverTest::testRemoveSimpleRulesRules1() { } void GrammarSimpleRulesRemoverTest::testRemoveSimpleRulesRules2() { - alphabet::Symbol S = alphabet::Symbol("S"); - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); - alphabet::Symbol D = alphabet::Symbol("D"); + DefaultSymbolType S = DefaultSymbolType("S"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); + DefaultSymbolType D = DefaultSymbolType("D"); - alphabet::Symbol a = alphabet::Symbol('a'); - alphabet::Symbol b = alphabet::Symbol('b'); - alphabet::Symbol c = alphabet::Symbol('c'); - alphabet::Symbol d = alphabet::Symbol('d'); + DefaultSymbolType a = DefaultSymbolType('a'); + DefaultSymbolType b = DefaultSymbolType('b'); + DefaultSymbolType c = DefaultSymbolType('c'); + DefaultSymbolType d = DefaultSymbolType('d'); grammar::CFG < > grammar1(S); grammar1.setNonterminalAlphabet({S, A, B, C, D}); @@ -88,16 +88,16 @@ void GrammarSimpleRulesRemoverTest::testRemoveSimpleRulesRules2() { } void GrammarSimpleRulesRemoverTest::testRemoveSimpleRulesRules3() { - alphabet::Symbol S = alphabet::Symbol("S"); - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); - alphabet::Symbol D = alphabet::Symbol("D"); - - alphabet::Symbol a = alphabet::Symbol('a'); - alphabet::Symbol b = alphabet::Symbol('b'); - alphabet::Symbol c = alphabet::Symbol('c'); - alphabet::Symbol d = alphabet::Symbol('d'); + DefaultSymbolType S = DefaultSymbolType("S"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); + DefaultSymbolType D = DefaultSymbolType("D"); + + DefaultSymbolType a = DefaultSymbolType('a'); + DefaultSymbolType b = DefaultSymbolType('b'); + DefaultSymbolType c = DefaultSymbolType('c'); + DefaultSymbolType d = DefaultSymbolType('d'); grammar::EpsilonFreeCFG < > grammar1(S); grammar1.setNonterminalAlphabet({S, A, B, C, D}); diff --git a/alib2algo/test-src/grammar/simplify/GrammarToGNFTest.cpp b/alib2algo/test-src/grammar/simplify/GrammarToGNFTest.cpp index 2d34fa6ffc41421a8f55188ad8f0dba1ca924a4f..166eea59c83c4eed5fbb856320166fbff77cc9cd 100644 --- a/alib2algo/test-src/grammar/simplify/GrammarToGNFTest.cpp +++ b/alib2algo/test-src/grammar/simplify/GrammarToGNFTest.cpp @@ -21,29 +21,29 @@ void GrammarToGNFTest::tearDown() { } void GrammarToGNFTest::testRemoveToGNFRules1() { - alphabet::Symbol S = alphabet::Symbol("S"); - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); - alphabet::Symbol D = alphabet::Symbol("D"); + DefaultSymbolType S = DefaultSymbolType("S"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); + DefaultSymbolType D = DefaultSymbolType("D"); - alphabet::Symbol a = alphabet::Symbol("a"); - alphabet::Symbol b = alphabet::Symbol("b"); + DefaultSymbolType a = DefaultSymbolType("a"); + DefaultSymbolType b = DefaultSymbolType("b"); grammar::EpsilonFreeCFG < > grammar1(S); grammar1.setNonterminalAlphabet({S, A, B, C, D}); grammar1.setTerminalAlphabet({a, b}); - alphabet::Symbol aprimed = common::createUnique(a, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); - alphabet::Symbol bprimed = common::createUnique(b, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType aprimed = common::createUnique(a, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType bprimed = common::createUnique(b, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); grammar::GNF < > grammar2 = grammar::simplify::ToGNF::convert(grammar1); grammar::GNF < > grammar3(S); grammar3.setNonterminalAlphabet({S, A, B, C, D, aprimed, bprimed}); grammar3.setTerminalAlphabet({a, b}); - grammar3.addRule(aprimed, std::make_pair(a, std::vector<alphabet::Symbol>{})); - grammar3.addRule(bprimed, std::make_pair(b, std::vector<alphabet::Symbol>{})); + grammar3.addRule(aprimed, std::make_pair(a, std::vector<DefaultSymbolType>{})); + grammar3.addRule(bprimed, std::make_pair(b, std::vector<DefaultSymbolType>{})); std::cout << alib::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar2)) << std::endl; std::cout << alib::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar3)) << std::endl; @@ -52,15 +52,15 @@ void GrammarToGNFTest::testRemoveToGNFRules1() { } void GrammarToGNFTest::testRemoveToGNFRules2() { - alphabet::Symbol S = alphabet::Symbol("S"); - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); - alphabet::Symbol D = alphabet::Symbol("D"); + DefaultSymbolType S = DefaultSymbolType("S"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); + DefaultSymbolType D = DefaultSymbolType("D"); - alphabet::Symbol a = alphabet::Symbol("a"); - alphabet::Symbol b = alphabet::Symbol("b"); - alphabet::Symbol c = alphabet::Symbol("c"); + DefaultSymbolType a = DefaultSymbolType("a"); + DefaultSymbolType b = DefaultSymbolType("b"); + DefaultSymbolType c = DefaultSymbolType("c"); grammar::EpsilonFreeCFG < > grammar1(S); grammar1.setNonterminalAlphabet({S, A, B, C, D}); @@ -70,10 +70,10 @@ void GrammarToGNFTest::testRemoveToGNFRules2() { grammar1.addRule(A, {A, b}); grammar1.addRule(A, {c}); - alphabet::Symbol Aprimed = common::createUnique(A, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); - alphabet::Symbol aprimed = common::createUnique(a, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); - alphabet::Symbol bprimed = common::createUnique(b, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); - alphabet::Symbol cprimed = common::createUnique(c, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType Aprimed = common::createUnique(A, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType aprimed = common::createUnique(a, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType bprimed = common::createUnique(b, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType cprimed = common::createUnique(c, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); std::cout << alib::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar1)) << std::endl; @@ -82,17 +82,17 @@ void GrammarToGNFTest::testRemoveToGNFRules2() { grammar::GNF < > grammar3(S); grammar3.setNonterminalAlphabet({S, A, Aprimed, B, C, D, aprimed, bprimed, cprimed}); grammar3.setTerminalAlphabet({a, b, c}); - grammar3.addRule(S, std::make_pair(c, std::vector<alphabet::Symbol>{Aprimed})); - grammar3.addRule(S, std::make_pair(c, std::vector<alphabet::Symbol>{})); - grammar3.addRule(A, std::make_pair(c, std::vector<alphabet::Symbol>{Aprimed})); - grammar3.addRule(A, std::make_pair(c, std::vector<alphabet::Symbol>{})); - grammar3.addRule(Aprimed, std::make_pair(a, std::vector<alphabet::Symbol>{Aprimed})); - grammar3.addRule(Aprimed, std::make_pair(a, std::vector<alphabet::Symbol>{})); - grammar3.addRule(Aprimed, std::make_pair(b, std::vector<alphabet::Symbol>{Aprimed})); - grammar3.addRule(Aprimed, std::make_pair(b, std::vector<alphabet::Symbol>{})); - grammar3.addRule(aprimed, std::make_pair(a, std::vector<alphabet::Symbol>{})); - grammar3.addRule(bprimed, std::make_pair(b, std::vector<alphabet::Symbol>{})); - grammar3.addRule(cprimed, std::make_pair(c, std::vector<alphabet::Symbol>{})); + grammar3.addRule(S, std::make_pair(c, std::vector<DefaultSymbolType>{Aprimed})); + grammar3.addRule(S, std::make_pair(c, std::vector<DefaultSymbolType>{})); + grammar3.addRule(A, std::make_pair(c, std::vector<DefaultSymbolType>{Aprimed})); + grammar3.addRule(A, std::make_pair(c, std::vector<DefaultSymbolType>{})); + grammar3.addRule(Aprimed, std::make_pair(a, std::vector<DefaultSymbolType>{Aprimed})); + grammar3.addRule(Aprimed, std::make_pair(a, std::vector<DefaultSymbolType>{})); + grammar3.addRule(Aprimed, std::make_pair(b, std::vector<DefaultSymbolType>{Aprimed})); + grammar3.addRule(Aprimed, std::make_pair(b, std::vector<DefaultSymbolType>{})); + grammar3.addRule(aprimed, std::make_pair(a, std::vector<DefaultSymbolType>{})); + grammar3.addRule(bprimed, std::make_pair(b, std::vector<DefaultSymbolType>{})); + grammar3.addRule(cprimed, std::make_pair(c, std::vector<DefaultSymbolType>{})); std::cout << alib::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar2)) << std::endl; std::cout << alib::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar3)) << std::endl; @@ -101,14 +101,14 @@ void GrammarToGNFTest::testRemoveToGNFRules2() { } void GrammarToGNFTest::testRemoveToGNFRules3() { - alphabet::Symbol S = alphabet::Symbol("S"); - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); + DefaultSymbolType S = DefaultSymbolType("S"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); - alphabet::Symbol a = alphabet::Symbol("a"); - alphabet::Symbol b = alphabet::Symbol("b"); - alphabet::Symbol c = alphabet::Symbol("c"); + DefaultSymbolType a = DefaultSymbolType("a"); + DefaultSymbolType b = DefaultSymbolType("b"); + DefaultSymbolType c = DefaultSymbolType("c"); grammar::EpsilonFreeCFG < > grammar1(S); grammar1.setNonterminalAlphabet({S, A, B, C}); @@ -118,10 +118,10 @@ void GrammarToGNFTest::testRemoveToGNFRules3() { grammar1.addRule(B, {A, b}); grammar1.addRule(A, {c}); - alphabet::Symbol Bprimed = common::createUnique(B, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); - alphabet::Symbol aprimed = common::createUnique(a, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); - alphabet::Symbol bprimed = common::createUnique(b, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); - alphabet::Symbol cprimed = common::createUnique(c, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType Bprimed = common::createUnique(B, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType aprimed = common::createUnique(a, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType bprimed = common::createUnique(b, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); + DefaultSymbolType cprimed = common::createUnique(c, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet()); std::cout << alib::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar1)) << std::endl; @@ -130,19 +130,19 @@ void GrammarToGNFTest::testRemoveToGNFRules3() { grammar::GNF < > grammar3(S); grammar3.setNonterminalAlphabet({S, A, B, Bprimed, C, aprimed, bprimed, cprimed}); grammar3.setTerminalAlphabet({a, b, c}); - grammar3.addRule(S, std::make_pair(c, std::vector<alphabet::Symbol>{})); - grammar3.addRule(S, std::make_pair(c, std::vector<alphabet::Symbol>{bprimed, Bprimed, aprimed})); - grammar3.addRule(S, std::make_pair(c, std::vector<alphabet::Symbol>{bprimed, aprimed})); - grammar3.addRule(A, std::make_pair(c, std::vector<alphabet::Symbol>{bprimed, aprimed})); - grammar3.addRule(A, std::make_pair(c, std::vector<alphabet::Symbol>{bprimed, Bprimed, aprimed})); - grammar3.addRule(A, std::make_pair(c, std::vector<alphabet::Symbol>{})); - grammar3.addRule(B, std::make_pair(c, std::vector<alphabet::Symbol>{bprimed})); - grammar3.addRule(B, std::make_pair(c, std::vector<alphabet::Symbol>{bprimed, Bprimed})); - grammar3.addRule(Bprimed, std::make_pair(a, std::vector<alphabet::Symbol>{bprimed, Bprimed})); - grammar3.addRule(Bprimed, std::make_pair(a, std::vector<alphabet::Symbol>{bprimed})); - grammar3.addRule(aprimed, std::make_pair(a, std::vector<alphabet::Symbol>{})); - grammar3.addRule(bprimed, std::make_pair(b, std::vector<alphabet::Symbol>{})); - grammar3.addRule(cprimed, std::make_pair(c, std::vector<alphabet::Symbol>{})); + grammar3.addRule(S, std::make_pair(c, std::vector<DefaultSymbolType>{})); + grammar3.addRule(S, std::make_pair(c, std::vector<DefaultSymbolType>{bprimed, Bprimed, aprimed})); + grammar3.addRule(S, std::make_pair(c, std::vector<DefaultSymbolType>{bprimed, aprimed})); + grammar3.addRule(A, std::make_pair(c, std::vector<DefaultSymbolType>{bprimed, aprimed})); + grammar3.addRule(A, std::make_pair(c, std::vector<DefaultSymbolType>{bprimed, Bprimed, aprimed})); + grammar3.addRule(A, std::make_pair(c, std::vector<DefaultSymbolType>{})); + grammar3.addRule(B, std::make_pair(c, std::vector<DefaultSymbolType>{bprimed})); + grammar3.addRule(B, std::make_pair(c, std::vector<DefaultSymbolType>{bprimed, Bprimed})); + grammar3.addRule(Bprimed, std::make_pair(a, std::vector<DefaultSymbolType>{bprimed, Bprimed})); + grammar3.addRule(Bprimed, std::make_pair(a, std::vector<DefaultSymbolType>{bprimed})); + grammar3.addRule(aprimed, std::make_pair(a, std::vector<DefaultSymbolType>{})); + grammar3.addRule(bprimed, std::make_pair(b, std::vector<DefaultSymbolType>{})); + grammar3.addRule(cprimed, std::make_pair(c, std::vector<DefaultSymbolType>{})); std::cout << alib::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar2)) << std::endl; std::cout << alib::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar3)) << std::endl; @@ -151,12 +151,12 @@ void GrammarToGNFTest::testRemoveToGNFRules3() { } void GrammarToGNFTest::testRemoveToGNFRules4() { - alphabet::Symbol A = alphabet::Symbol("A"); - alphabet::Symbol B = alphabet::Symbol("B"); - alphabet::Symbol C = alphabet::Symbol("C"); + DefaultSymbolType A = DefaultSymbolType("A"); + DefaultSymbolType B = DefaultSymbolType("B"); + DefaultSymbolType C = DefaultSymbolType("C"); - alphabet::Symbol a = alphabet::Symbol("a"); - alphabet::Symbol b = alphabet::Symbol("b"); + DefaultSymbolType a = DefaultSymbolType("a"); + DefaultSymbolType b = DefaultSymbolType("b"); grammar::EpsilonFreeCFG < > grammar1(A); grammar1.setNonterminalAlphabet({A, B, C});