def test_header(self): text = """ module trans/runtime/environment """ sut = Parser(text) self.assertEqual(sut.all().name, "trans/runtime/environment")
def test_comments(self): text = """ imports trans/runtime/a trans/runtime/b """ sut = Parser(text) self.assertEqual(len(sut.all().imports), 2)
def test_parentheses(self): text = """ rules Lit(s) --> NumV(parseI(s)) Plus(NumV(a), NumV(b)) --> NumV(addI(a, b)) """ sut = Parser(text) mod = sut.all() self.assertEqual(2, len(mod.rules)) self.assertEqual(ApplTerm("Lit", [VarTerm("s", 0)]), mod.rules[0].before) self.assertEqual( ApplTerm( "NumV", [ApplTerm( "addI", [VarTerm("a", 0), VarTerm("b", 1)])]), mod.rules[1].after)