Exemplo n.º 1
0
def Import(modid, modid1):
    global nofmod
    if modid1 == "SYSTEM":
        thismod = ThisModule(modid, modid1, True,
                             key=0)  # FIXME I added the 0 SPF
        nofmod -= 1
        thismod.lev = 0
        thismod.dsc = system
        thismod.rdo = True
    else:
        fname = MakeFileName(modid1, ".smb")
        R = Files.Old(fname)
        if R != None:
            #      Files.Set(R, F, 0)
            Files.ReadInt(R)  # discard.
            key = Files.ReadInt(R)
            modname = Files.ReadString(R)
            thismod = ThisModule(modid, modid1, True, key)
            thismod.rdo = True

            class_ = Read(R)  # (*version key*)
            if class_ != versionkey:
                ORS.Mark("wrong version")

            class_ = Read(R)
            while class_ != 0:
                obj = Object()
                obj.class_ = class_
                obj.name = Files.ReadString(R)
                obj.type_ = InType(R, thismod)
                obj.lev = -thismod.lev
                if class_ == Typ:
                    t = obj.type_
                    t.typobj = obj
                    k = Read(
                        R
                    )  # (*fixup bases of previously declared pointer types*)
                    while k != 0:
                        typtab[k].base = t
                        k = Read(R)
                else:
                    if class_ == Const:
                        if obj.type_.form == Real:
                            obj.val = Files.ReadInt(R)
                        else:
                            obj.val = Files.ReadNum(R)
                    elif class_ == Var:
                        obj.val = Files.ReadNum(R)
                        obj.rdo = True
                obj.next = thismod.dsc
                thismod.dsc = obj
                class_ = Read(R)

        else:
            ORS.Mark("import not available")
Exemplo n.º 2
0
def OpenFile(name):
    name += '.rsc'
    return Files.Old(name)