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()
def test_create_grammar(self): G = Grammar() G.addRule("A A | /") self.assertEqual(str(G), "A ---> A | /")
def test_multiple_adds(self): G = Grammar() G.addRule("A AB | /") G.addRule("B Ab | /")
def test_index(self): G = Grammar() G.addRule("A A | /") self.assertEqual(str(G[1]), "A ---> A") self.assertEqual(str(G[2]), "A ---> /")
def test_rec_rem(self): G = Grammar() G.addRule("A A | /") G.removeRecursion() self.assertEqual(str(G), "A ---> /")
def test_rec_check(self): G = Grammar() G.addRule("A A | /") self.assertTrue(G.checkRecursion())
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 | /")
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 ---> /")