def run(filename): fp = os.open(filename, os.O_RDONLY, 0o777) source = "" while True: data = os.read(fp, 4096) if len(data) == 0: break source += data os.close(fp) c = Cursor(filename) p = Parser() found, node = p.type_definition(source, c) if not found: print("Unable to parse '%s'" % filename) return scope = typeinfo.new_scope() udt = typeinfo.UserDefinedType(node) if udt.check(scope): print("Program type checks.") else: print("Program failed type checking.")
def test_adt_type_definition(self): c = Cursor("test_data") p = Parser() data = "type SomeType:\n" " I Int\n" " S String\n" found, node = p.type_definition(data, c) self.assertTrue(found) scope = typeinfo.new_scope() udt = typeinfo.UserDefinedType(node) self.assertTrue(udt.check(scope))