Exemple #1
0
class Model(object):
    def __init__(self):
        super(Model, self).__init__()
        self.grammar = Grammar()

    def addRules(self, rules):
        my_list = rules.split('\n')
        for i in my_list:
            self.grammar.addRule(i)

    def printInfo(self):
        self.grammar.printInfo()
Exemple #2
0
 def test_create_grammar(self):
     G = Grammar()
     G.addRule("A	A | /")
     self.assertEqual(str(G), "A ---> A | /")
Exemple #3
0
 def test_multiple_adds(self):
     G = Grammar()
     G.addRule("A	AB | /")
     G.addRule("B	Ab | /")
Exemple #4
0
 def test_index(self):
     G = Grammar()
     G.addRule("A	A | /")
     self.assertEqual(str(G[1]), "A ---> A")
     self.assertEqual(str(G[2]), "A ---> /")
Exemple #5
0
 def test_rec_rem(self):
     G = Grammar()
     G.addRule("A	A | /")
     G.removeRecursion()
     self.assertEqual(str(G), "A ---> /")
Exemple #6
0
 def test_rec_check(self):
     G = Grammar()
     G.addRule("A	A | /")
     self.assertTrue(G.checkRecursion())
Exemple #7
0
 def test_add(self):
     G = Grammar()
     G.addRule("A	A")
     self.assertEqual(str(G), "A ---> A")
     G.addRule("A	/")
     self.assertEqual(str(G), "A ---> A | /")
Exemple #8
0
 def test_remove(self):
     G = Grammar()
     G.addRule("A	A | /")
     self.assertEqual(str(G), "A ---> A | /")
     G.removeRule("A 	A")
     self.assertEqual(str(G), "A ---> /")