Exemplo n.º 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()
Exemplo n.º 2
0
 def test_create_grammar(self):
     G = Grammar()
     G.addRule("A	A | /")
     self.assertEqual(str(G), "A ---> A | /")
Exemplo n.º 3
0
 def test_multiple_adds(self):
     G = Grammar()
     G.addRule("A	AB | /")
     G.addRule("B	Ab | /")
Exemplo n.º 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 ---> /")
Exemplo n.º 5
0
 def test_rec_rem(self):
     G = Grammar()
     G.addRule("A	A | /")
     G.removeRecursion()
     self.assertEqual(str(G), "A ---> /")
Exemplo n.º 6
0
 def test_rec_check(self):
     G = Grammar()
     G.addRule("A	A | /")
     self.assertTrue(G.checkRecursion())
Exemplo n.º 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 | /")
Exemplo n.º 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 ---> /")