<> <> <> DIRECTORY IO USING [STREAM], Rope USING [ROPE]; XNSPSCommander: CEDAR DEFINITIONS = BEGIN ROPE: TYPE ~ Rope.ROPE; STREAM: TYPE ~ IO.STREAM; Rubout: ERROR; GetID: PROC [in, out: STREAM, default: ROPE, init: ROPE _ NIL, echo: BOOL _ TRUE] RETURNS [id: ROPE, c: CHAR]; CommandList: TYPE = LIST OF CommandInfo; CommandProc: TYPE = PROC [in, out: STREAM]; CommandInfo: TYPE = RECORD [commandProc: CommandProc, fullName: ROPE _ NIL]; RegisterCommand: PROC [info: CommandInfo]; <> GetCommandList: PROC RETURNS [CommandList]; GetCommand: PROC [in, out: STREAM] RETURNS [found: CommandInfo]; GetArg: PROC [in, out: STREAM, prompt, default: ROPE, help: PROC] RETURNS [value: ROPE _ NIL]; Confirm: PROC [in, out: STREAM] RETURNS [BOOL]; GetNumber: PROC [in, out: STREAM, default: INT, max: INT _ LAST[INT], prompt, help: ROPE] RETURNS [size: INT _ 0]; TalkToUser: PROC[in, out: STREAM]; END.