RoseTranslateInsides.Mesa
Last Edited by: Spreitzer, July 12, 1983 3:55 pm
DIRECTORY
IO, OpPrecParse, RoseTranslateTypes, ShowTime, TiogaFileOps, UserExec;
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: UserExec.ExecHandle,
rootName: ROPE,
path: LIST OF ROPENIL,
outRoot, symbolsRoot: TiogaFileOps.Ref,
from, to, symbolsStream, typeStream, directoryStream, importsStream, openStream, regStream: IO.STREAM,--actually TiogaStreams
log: IO.STREAM,
parseTree: REF ANYNIL,
errCount, warnCount, tokenCount: CARDINAL ← 0,
directory, imports, opened, libbed: SymbolTable ← NIL,
things: SymbolTable ← NIL,
used: SymbolTable ← NIL,
type: JobType ← TranslateJob,
emptyDirectory, emptyImports, emptyOpen: BOOLEANTRUE,
start: ShowTime.Microseconds ← 0];
JobType: TYPE = {UpdateJob, TranslateJob};
signalTypes: SymbolTable;
viewerLog: IO.STREAM;
omitted: REF ANY;
defaultST: SignalType;
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: UserExec.ExecHandle, 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];
AddSymbols: PROC [job: Job, rootName: ROPE];
AddCellClass: PROC [job: Job, cce: ccEntry];
ForceMesaType: PROC [mesaType: ROPE, on: SignalType] RETURNS [forced: SignalType];
DigestInterface: PROC [context: REF ANY, iel: InterfaceEltList] RETURNS [di: DigestedInterface];
InstantiateSignalType: PROC [context: REF ANY, name: ROPE, parms: REF ANY] RETURNS [sti: SignalTypeInvocation];
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.