DIRECTORY GenMapIO, IO, IOClasses USING [CreateDribbleOutputStream], MessagesOut USING [PutRopes, PutMsg], PFS USING [AccessOptions, StreamOpen, PathFromRope], Rope, ViewerIO USING [CreateViewerStreams]; ViewerGenMapImpl: CEDAR PROGRAM IMPORTS IO, IOClasses, MessagesOut, PFS, ViewerIO EXPORTS GenMapIO = BEGIN ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; logFileStream: STREAM ¬ NIL; CreateOutputStreams: PUBLIC PROC [logFileName: ROPE, typeScriptStream: STREAM ¬ NIL] RETURNS [outputStream: STREAM] = { IF typeScriptStream # NIL THEN outputStream ¬ CreateTeeStream[logFileName, typeScriptStream] ELSE [,outputStream] ¬ ViewerIO.CreateViewerStreams[logFileName, NIL, logFileName, FALSE]; }; CreateTeeStream: PROC [fileName: ROPE, typeScriptStream: STREAM] RETURNS [STREAM] = { logFileStream ¬ PFS.StreamOpen[fileName: PFS.PathFromRope[fileName], accessOptions: create]; RETURN [IOClasses.CreateDribbleOutputStream[typeScriptStream, logFileStream]]; }; CloseTeeStream : PUBLIC PROC = { logFileStream.Close[]; logFileStream ¬ NIL; }; PutRopes: PUBLIC PROC [stream: STREAM, r1,r2,r3,r4: ROPE ¬ NIL] = { MessagesOut.PutRopes[stream, r1, r2, r3, r4]; }; PutMsg: PUBLIC PROC [r1,r2,r3,r4: ROPE ¬ NIL] = { MessagesOut.PutMsg[r1, r2, r3, r4]; }; END ...  ViewerGenMapImpl.mesa Copyright Σ 1990, 1992 by Xerox Corporation. All rights reserved. Mna, October 29, 1990 11:31 am PST Laurie Horton, October 31, 1990 1:02 pm PST Willie-s, January 22, 1992 5:50 pm PST T Y P E S Global variables Public Procs Κ)•NewlineDelimiter –(cedarcode) style™™Jšœ Οeœ7™BJ™"J™+J™&J™—codešΟk ˜ K˜ Kšžœ˜Kšœ žœ˜-Kšœ žœ˜%Kšžœžœ+˜4K˜Kšœ žœ˜%K˜—šΟnœžœž˜Kšžœžœ'˜2Kšžœ ˜Kšœž˜K˜—Jšœ ™ ™Kšžœžœžœ˜Kšžœžœžœžœ˜—K˜Jšœ™™Kšœžœžœ˜—K˜Kšœ ™ K™šŸœžœžœžœžœžœžœžœ˜xKšžœžœžœ>˜\Kšžœ=žœžœ˜ZKšœ˜K˜—š Ÿœžœ žœžœžœžœ˜UK˜\KšžœH˜NKšœ˜—šŸžœ˜!Kšœ˜Kšœž˜K˜K˜—š Ÿœž œ žœžœžœ˜CK˜-K˜—K˜šŸœž œžœžœ˜1K˜#K˜—K˜Kšžœ˜—…—ς