<> <> <> <> <> <> <> DIRECTORY Rope USING [ROPE], ViewerClasses USING [Viewer, ViewerRec]; TypeScript: CEDAR DEFINITIONS = BEGIN <> TS: TYPE = ViewerClasses.Viewer; Create: PROC [info: ViewerClasses.ViewerRec, paint: BOOL _ TRUE] RETURNS [ts: TS]; IsATypeScript: PROC [ts: TS] RETURNS [yes: BOOL]; Destroy: PROC [ts: TS]; <> Reset: PROC [ts: TS]; <> <<>> <> PutChar: PROC [ts: TS, char: CHAR]; PutRope: PROC [ts: TS, rope: Rope.ROPE]; PutText: PROC [ts: TS, text: REF READONLY TEXT, start: NAT _ 0, stopPlusOne: NAT _ LAST[NAT]]; BackSpace: PROC [ts: TS, count: INT _ 1]; <> ChangeLooks: PROC [ts: TS, look: CHAR]; <> <> <> <<>> GetLooks: PROC [ts: TS] RETURNS [looks: Rope.ROPE]; <> <<>> <> GetChar: PROC [ts: TS] RETURNS [char: CHAR]; CharsAvailable: PROC [ts: TS] RETURNS [BOOL]; <> TypeIn: PROC [ts: TS, input: REF ANY]; <> <> InsertRopeAtFrontOfBuffer: PROC [ts: TS, rope: Rope.ROPE]; <> InsertCharAtFrontOfBuffer: PROC [ts: TS, char: CHAR]; <> Flush: PROC [ts: TS]; <> WaitUntilIdle: PROC [ts: TS]; <> <<>> WaitUntilCharsAvail: PROC [ts: TS]; <> <<>> <> Destroyed: ERROR [ts: TS]; END.