SiroccoPrivate.mesa
Copyright © 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
DIRECTORY
WartDef USING [Generic],
HashTable USING [Table],
IO USING [STREAM],
Rope USING [ROPE];
SiroccoPrivate: CEDAR DEFINITIONS ~ {
Version: READONLY ROPE;
Copied Types
Generic: TYPE ~ WartDef.Generic;
ROPE: TYPE ~ Rope.ROPE;
Table: TYPE ~ HashTable.Table;
Types
this is cycle clipping my ugly way! (bj)
these are really AbstractSyntax2Def ConstantNode & TypeNode
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
];
Signals
AquireState: SIGNAL RETURNS [Handle];
EndItAll: ERROR;
Procs
SiroccoPrivateImpl
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];
ParserPrivate1Impl
Collapse: PROC;
GenerateInterface
GenDefs: PROC;
GenerateAuxInterface
GenAuxDefs: PROC;
GenerateAuxImpl
GenAuxImpl: PROC;
GenerateClient
GenCImpl: PROC;
GenerateServer
GenSImpl: PROC;
}...