Ejemplo n.º 1
0
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.")
Ejemplo n.º 2
0
    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))