DIRECTORY WartDef USING [Generic], HashTable USING [Table, Value], IO USING [STREAM], Rope USING [ROPE]; SiroccoPrivate: CEDAR DEFINITIONS ~ { Version: READONLY ROPE; Generic: TYPE ~ WartDef.Generic; ROPE: TYPE ~ Rope.ROPE; STREAM: TYPE ~ IO.STREAM; Table: TYPE ~ HashTable.Table; Value: TYPE ~ HashTable.Value; Constant: TYPE ~ REF; Type: TYPE ~ REF; CComponent: TYPE ~ REF CComponentBody; CComponentBody: TYPE ~ RECORD [ name: ROPE, sibling: CComponent, type: ROPE, val: CARD ]; CType: TYPE ~ REF CTypeBody; CTypeBody: TYPE ~ RECORD [ bound: CARD, children: CComponent, class: Generic ]; 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 [ condensedTypeTable: Table, directory: Table, errors: Table, functionTable: Table, globalTable: Table, localTable: Table, procedures: Table, typeTable: Table, unresolvedConstantTable: Table, unresolvedTypeTable: Table, workTable: Table ]; UnresolvedConstantTableEntry: TYPE ~ RECORD [ constant: Constant, type: Type ]; Handle: TYPE ~ REF Object; Object: TYPE ~ RECORD [ allTheTables: TABLES, defStream: STREAM, defRope: ROPE, initStream: STREAM, initfile: ROPE, programName: ROPE, programNo: NAT, programKey: ROPE, programKeyWD: ROPE, uniqueNo: NAT, uniqueName: ROPE, versionNo: NAT ]; AquireState: SIGNAL RETURNS [Handle]; EndItAll: ERROR; Nest: PROC [in: ROPE, level: NAT] RETURNS [out: ROPE]; Sort: PROC [list: CComponent] RETURNS [comp: CComponent]; MakeUpName: PROC [base: ROPE, suffix: ROPE, tables: TABLES] RETURNS [madeUpName: ROPE]; MadeUpName: PROC [base: ROPE, suffix: ROPE] RETURNS [madeUpName: ROPE]; UnDo: PROC [in: ROPE, programKey: ROPE] RETURNS [key: ROPE]; UnDoable: PROC [in: ROPE, programKey: ROPE] RETURNS [out: ROPE, yes: BOOLEAN]; UMProcNameProc: TYPE ~ PROC [h: Handle, type: CType, typeName: ROPE] RETURNS [procName: ROPE]; GetUProcName: UMProcNameProc; GetMProcName: UMProcNameProc; GenerateUMProcs: PROC [h: Handle, s: STREAM, level: NAT]; Marshal: PROC [h: Handle, s: STREAM, varName: ROPE, type: CType, typeName: ROPE, getProcName: UMProcNameProc, useProc: BOOL, level: NAT]; UnMarshal: PROC [h: Handle, s: STREAM, varName: ROPE, type: CType, typeName: ROPE, getProcName: UMProcNameProc, useProc: BOOL, level: NAT]; ConstExp: PROC [h: Handle, const: ROPE, type: CType, typeName: ROPE, level: NAT] RETURNS [constExp: ROPE, setup: LIST OF ROPE, runtime: BOOL]; TypeExp: PROC [h: Handle, type: CType, typeName: ROPE, level: NAT] RETURNS [typeExp: ROPE, objTypeDecls: LIST OF ROPE]; FileHeader: PROC [out: STREAM, filename: ROPE]; Collapse: PROC; GenDefs: PROC; GenAuxDefs: PROC; GenAuxImpl: PROC; GenCImpl: PROC; GenSImpl: PROC; }... "SiroccoPrivate.mesa Copyright c 1986 by Xerox Corporation. All rights reserved. Bhargava, August 9, 1986 1:52:41 pm PDT Bill Jackson (bj) September 25, 1986 3:11:30 am PDT Demers, January 5, 1987 1:23:53 am PST Copied Types Types These are really AbstractSyntax2Def.ConstantNode & AbstractSyntax2Def.TypeNode Signals Procs SiroccoPrivateImpl Append newline and level tabs to in. Sort (list of) CComponents by the .val field Strip unnecessary qualification (by current program key) from beginning of in  e.g. UnDo["FooP1V2.Bar", "FooP1V2"] = "Bar". Like UnDo, also returns yes~TRUE iff qualification was deleted. Returns name of special (un)marshalling proc to be used, or NIL if none. ParserPrivate1Impl GenerateInterface GenerateAuxInterface GenerateAuxImpl GenerateClient GenerateServer Κψ˜šœ™Icodešœ Οmœ1™