InterpreterToolPrivate.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Paul Rovner, December 16, 1983 3:28 pm
Doug Wyatt, April 25, 1985 0:12:13 am PST
DIRECTORY
AMEvents USING [Event, BreakID],
AMModel USING [Context, Section],
IO USING [STREAM],
MBQueue USING [Queue],
SymTab USING [Ref],
ViewerClasses USING [Viewer],
WorldVM USING [World];
InterpreterToolPrivate: CEDAR DEFINITIONS
= BEGIN
Handle: TYPE = REF InterpreterObject; -- one per viewer
InterpreterObject: TYPE =
MONITORED RECORD [
remoteWorld: WorldVM.World, -- NIL => local only in this nest
context: AMModel.Context ← NIL,
globalContext: AMModel.Context ← NIL,
event: AMEvents.Event ← NIL,
nestingLevel: NAT ← 0,
symTab: SymTab.Ref ← NIL,
nextVarIndex: INT ← 0,
ts: ViewerClasses.Viewer ← NIL,
tsInStream: IO.STREAMNIL,
tsOutStream: IO.STREAMNIL,
Stuffable: CONDITION,
menuHitQueue: MBQueue.Queue ← NIL,
terminateRequested: BOOLFALSE,
proceedRequested: BOOLFALSE,
abortRequested: BOOLFALSE,
stopRequested: BOOLFALSE,
bootReturnRequested: BOOLFALSE,
bootedWorld: WorldVM.World ← NIL,
stuffAble: BOOLTRUE,
readEvalPrintProcess: PROCESSNIL
];
Break: TYPE = REF BreakObject;
BreakObject: TYPE = RECORD[
index: BreakIndex,
breakID: AMEvents.BreakID,
world: WorldVM.World,
section: AMModel.Section];
BreakIndex: TYPE = INT;
nullBreakIndex: BreakIndex = 0;
nextBI: BreakIndex; -- BEWARE that these guys aren't protected
END.