<> <> <> <> <> <> <> <> DIRECTORY EditedStream USING [DeliverWhenProc], IO USING [STREAM], List USING [AList], MBQueue USING [Queue], Rope USING [ROPE], ViewerClasses USING [Viewer, ViewerRec]; ReadEvalPrint: CEDAR DEFINITIONS = BEGIN <> Handle: TYPE = REF RObject; RObject: TYPE = MONITORED RECORD [ viewer: ViewerClasses.Viewer _ NIL, in: IO.STREAM _ NIL, out: IO.STREAM _ NIL, menuHitQueue: MBQueue.Queue, terminateRequested: BOOL _ FALSE, mainLoopProcess: PROCESS _ NIL, clientProc: ClientProc _ NIL, deliverWhenProc: EditedStream.DeliverWhenProc _ NIL, prompt: Rope.ROPE _ NIL, promptProc: PROC [Handle] _ NIL, topLevel: BOOL _ TRUE, clientData: REF ANY _ NIL, ruboutProc: PROC [Handle] _ NIL, readABORTEDRope: Rope.ROPE _ NIL, -- " aborted\n" readIOSignalRope: Rope.ROPE _ NIL, -- " XXX\n" evalABORTEDRope: Rope.ROPE _ NIL, -- " ...Aborted\n" evalUNWINDRope: Rope.ROPE _ NIL -- " ...Unwound\n" ]; <<>> <> <> <> <> <> <> ClientProc: TYPE = PROC [h: Handle, command: Rope.ROPE] RETURNS [result: Rope.ROPE _ NIL]; <> CreateViewerEvaluator: PROC [clientProc: ClientProc, prompt: Rope.ROPE _ NIL, info: ViewerClasses.ViewerRec _ [], edited: BOOL _ TRUE, deliverWhen: EditedStream.DeliverWhenProc _ NIL, clientData: REF ANY _ NIL, topLevel: BOOL _ TRUE] RETURNS [Handle]; <> <<>> CreateStreamEvaluator: PROC [clientProc: ClientProc, prompt: Rope.ROPE _ NIL, in, out: IO.STREAM, deliverWhen: EditedStream.DeliverWhenProc _ NIL, clientData: REF ANY _ NIL, topLevel: BOOL _ FALSE] RETURNS [Handle]; <> MainLoop: PROC [h: Handle, forkAndDetach: BOOL _ TRUE, properties: List.AList]; <> Stop: PROC [h: Handle]; <> END.