<> <> <> <> DIRECTORY WartDef USING [Generic], HashTable USING [Table], IO USING [STREAM], Rope USING [ROPE]; SiroccoPrivate: CEDAR DEFINITIONS ~ { Version: READONLY ROPE; <> <<>> Generic: TYPE ~ WartDef.Generic; ROPE: TYPE ~ Rope.ROPE; Table: TYPE ~ HashTable.Table; <> <<>> <> <> Constant: TYPE ~ REF; Type: TYPE ~ REF; CComponent: TYPE ~ REF CComponentBody; CComponentBody: TYPE ~ RECORD [ name: ROPE, sibling: CComponent, type: ROPE, val: CARD -- how about NAT? (bj) ]; CType: TYPE ~ REF CTypeBody; CTypeBody: TYPE ~ RECORD [ bound: CARD, -- how about NAT? (bj) children: CComponent, class: Generic, variable: Variable ]; DirectoryEntry: TYPE ~ RECORD [ constant: ROPE, functions: LIST OF ROPE, type: ROPE, value: Constant ]; FunctionList : TYPE ~ LIST OF ROPE; TABLES: TYPE ~ REF TablesBody; TablesBody: TYPE ~ RECORD [ condensedFunctionTable: Table, condensedTypeTable: Table, directory: Table, errors: Table, functionTable: Table, globalTable: Table, localTable: Table, madeUpNameTable: Table, procedures: Table, typeTable: Table, unresolvedConstantTable: Table, unresolvedTypeTable: Table, workTable: Table ]; UnresolvedConstantTableEntry: TYPE ~ RECORD [ constant: Constant, type: Type ]; Variable: TYPE ~ {constant, unvisited, variable}; Handle: TYPE ~ REF Object; Object: TYPE ~ RECORD [ allTheTables: TABLES, defStream: IO.STREAM, defRope: ROPE, initStream: IO.STREAM, initfile: ROPE, programName: ROPE, programNo: NAT, programKey: ROPE, programKeyWD: ROPE, uniqueNo: NAT, uniqueName: ROPE, versionNo: NAT ]; <> <<>> AquireState: SIGNAL RETURNS [Handle]; EndItAll: ERROR; <> <<>> <> MakeUpName: PROC [base: ROPE, postfix: ROPE, tables: TABLES] RETURNS [madeUpName: ROPE]; Nest: PROC [in: ROPE, level: NAT] RETURNS [out: ROPE]; NewFcn: PROC [name: ROPE, obj: ROPE, size: INT] RETURNS [out: ROPE]; Sort: PROC [list: CComponent] RETURNS [comp: CComponent]; UnDo: PROC [in: ROPE, programKey: ROPE] RETURNS [key: ROPE]; UnDoable: PROC [in: ROPE, programKey: ROPE] RETURNS [out: ROPE, yes: BOOLEAN]; Marshal: PROC [h: Handle, type: CType, typeName: ROPE, name: ROPE, code: ROPE, uniqueNo: NAT, level: NAT _ 2] RETURNS [rc: ROPE, rn: ROPE]; UnMarshal: PROC [h: Handle, type: CType, typeName: ROPE, name: ROPE, code: ROPE, uniqueNo: NAT, level: NAT _ 2] RETURNS [rc: ROPE, rn: ROPE]; FileHeader: PROC [out: IO.STREAM, filename: ROPE]; <> Collapse: PROC; <> GenDefs: PROC; <> GenAuxDefs: PROC; <> GenAuxImpl: PROC; <> GenCImpl: PROC; <> GenSImpl: PROC; }...