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")
def OpenFile(name): name += '.rsc' return Files.Old(name)