Commander
Handle: TYPE ~ REF CommandObject;
CommandObject: TYPE ~ Commander.CommandObject;
CommandProcHandle: TYPE ~ REF CommandProcObject;
CommandProcObject: TYPE ~ Commander.CommandProcObject;
CommandProc: TYPE ~ PROC [ cmd: Handle ]
RETURNS [ result: REF ← NIL, msg: Rope.ROPE ← NIL ];
Register: PROC [ key: Rope.ROPE, proc: CommandProc ← NIL, doc: Rope.ROPE ← NIL,
clientData: REF ← NIL, interpreted: BOOL ← TRUE ];
GetArgument: PROC [ cmd: Handle, index: NAT ] RETURNS [ arg: Rope.ROPE ← NIL ];
FS
AccessOptions:
TYPE = { read, create, append, write };
Error: ERROR [ code: ATOM, explanation: Rope.ROPE ];
StreamOpen: PROC [ fileName: Rope.ROPE, accessOptions: AccessOptions ← $read ]
RETURNS [ s: IO.STREAM ← NIL ];
Version Utilities
BuildTime: PROC [ p: PROC ANY RETURNS ANY ] RETURNS [ date: BasicTime.GMT ];
Version: TYPE ~ RECORD [ major: CARD16, minor: CARD16, patch: CARD16 ← 0 ];
ToolVersion: PROC [ name: Rope.ROPE, version: Version, p: PROC ANY RETURNS ANY ]
RETURNS [ v: Rope.ROPE ← NIL ];
UserName: PROC RETURNS [ user: Rope.ROPE ← NIL ];
}.