<> <> <<>> DIRECTORY AMEvents USING [Event, BreakID], AMModel USING [Context, Section], IO USING [STREAM], MBQueue USING [Queue], SymTab USING [Ref], TypeScript USING [TS], WorldVM USING [World]; InterpreterToolPrivate: 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: TypeScript.TS _ NIL, tsInStream: IO.STREAM _ NIL, tsOutStream: IO.STREAM _ NIL, Stuffable: CONDITION, menuHitQueue: MBQueue.Queue _ NIL, terminateRequested: BOOL _ FALSE, proceedRequested: BOOL _ FALSE, abortRequested: BOOL _ FALSE, stopRequested: BOOL _ FALSE, bootReturnRequested: BOOL _ FALSE, bootedWorld: WorldVM.World _ NIL, stuffAble: BOOL _ TRUE, readEvalPrintProcess: PROCESS _ NIL ]; 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.