RoseTranslateInsides.Mesa
Last Edited by: Spreitzer, May 10, 1984 4:48:17 pm PDT PDT PDT
DIRECTORY IO, OpPrecParse, RoseTranslateTypes, BasicTime, TiogaFileOps, Commander;
RoseTranslateInsides: CEDAR DEFINITIONS =
BEGIN OPEN RoseTranslateTypes;
Familiar Types:
TokenClass: TYPE = OpPrecParse.TokenClass;
TokenClassRep: TYPE = OpPrecParse.TokenClassRep;
Errors:
Circularity: ERROR;
Top Level Things:
Job: TYPE = REF JobRep;
JobRep: TYPE = RECORD [
exec: Commander.Handle,
rootName: ROPE,
path: LIST OF ROPENIL,
outRoot, symbolsRoot: TiogaFileOps.Ref,
from, log: IO.STREAMNIL,
errCount, warnCount, tokenCount: CARDINAL ← 0,
to, symbolsStream, typeStream, directoryStream, importsStream, openStream, regStream: IO.STREAM,--actually TiogaStreams
parseTree: REF ANYNIL,
directory, imports, opened, libbed: SymbolTable ← NIL,
previewing: BOOLFALSE,
nodeCreateHacks: SymbolTable ← NIL,
nchCount: CARDINAL ← 0,
things: SymbolTable ← NIL,
used: SymbolTable ← NIL,
type: JobType ← TranslateJob,
emptyDirectory, emptyImports, emptyOpen: BOOLEANTRUE,
start: BasicTime.Pulses ← 0];
JobType: TYPE = {TranslateJob, Other};
viewerLog: IO.STREAM;
omitted: REF ANY;
Op: TYPE = REF OpRep;
OpRep: TYPE = RECORD [
name: ROPE,
class: ARRAY BOOLEAN OF OpPrecParse.TokenClass,
eatsCedar, terminal: BOOLEANFALSE,
childish: BOOLEANTRUE,
asArg: ARRAY BOOLEAN OF REF ANYALL[NIL]];
Procedures:
Translate: PROC [exec: Commander.Handle, rootName: ROPE, pathIn: LIST OF ROPE, type: JobType] RETURNS [errCount: CARDINAL];
ParseExpression: PROC [job: Job, stoppable: BOOLEAN] RETURNS [expr: REF ANY, next: ROPE];
AddDirectory, AddImport, AddOpen: PROC [job: Job, name: ROPE];
AddMesa: PROC [job: Job, m: Mesa];
AddSymbols: PROC [job: Job, rootName: ROPE];
AddCellClass: PROC [job: Job, cce: ccEntry];
ForceMesaType: PROC [mesaType: ROPE, on: NodeType] RETURNS [forced: NodeType];
DigestInterface: PROC [context: REF ANY, iel: InterfaceEltList] RETURNS [di: DigestedInterface];
InstantiateSignalType: PROC [context: REF ANY, name: ROPE, parms: REF ANY] RETURNS [sti: SignalTypeInvocation];
TypeCheck: PROC [job: Job, args: REF ANY, interface: DigestedInterface, instanceName: ROPE];
Complain: PROC [context: REF ANY, complaint: ROPE, v1, v2, v3, v4, v5: IO.Value ← [null[]]] RETURNS [reduced: REF ANY];
Whimper: PROC [context: REF ANY, complaint: ROPE, v1, v2, v3, v4, v5: IO.Value ← [null[]]];
MyBreak: IO.BreakProc;
Close: PROC [job: Job];
END.