<> <> <> <> <> DIRECTORY Rope USING [ROPE]; TerminalIO: CEDAR DEFINITIONS = BEGIN UserAbort: SIGNAL; WriteRope: PROC [text: Rope.ROPE]; WriteLn: PROC []; WriteChar: PROC [ch: CHAR]; WriteInt: PROC [i: INT]; RequestRope: PROC [text, text2: Rope.ROPE _ NIL] RETURNS [Rope.ROPE]; RequestChar: PROC [text, text2: Rope.ROPE _ NIL] RETURNS [CHAR]; RequestInt: PROC [text, text2: Rope.ROPE _ NIL] RETURNS [INT]; UserSaysYes: PROC [label, text: Rope.ROPE _ NIL, default: BOOL_FALSE] RETURNS [BOOL]; <<--default returned if discarded.>> RequestSelection: PROC [label: Rope.ROPE _ NIL, choice: LIST OF Rope.ROPE, text: Rope.ROPE _ NIL, default: NAT_0] RETURNS [NAT]; <<--returns 1 for first choice, 2 for second...>> <<--returns 0 if discarded>> <<--default means: the cursor is initially moved to this line.>> AddLock: PROC [lock, unLock: PROC]; <<--Procedures to prevent other processes of accepting userinput>> <<--while the user is expected to answer a request.>> <<--The lock, unLock procedures are called within the monitorlock>> <<--locks cannot (yet?) be removed, use only one lock per module>> <<>> END. <> <> <>