<> <> <> <> DIRECTORY IO USING [STREAM], List USING [AList], Rope USING [ROPE]; Commander: CEDAR DEFINITIONS = BEGIN Handle: TYPE = REF CommandObject; CommandProc: TYPE = PROC [cmd: Handle]; CommandObject: TYPE = RECORD [ in, out, err: IO.STREAM, commandLine: Rope.ROPE, <> command: Rope.ROPE, <> propertyList: List.AList <> ]; Register: PROC[key: Rope.ROPE, proc: CommandProc, doc: Rope.ROPE]; Enumerate: PROC[PROC[name: Rope.ROPE, proc: CommandProc, doc: Rope.ROPE] RETURNS[stop: BOOL]] RETURNS [ name: Rope.ROPE --NIL if not stopped--, proc: CommandProc, doc: Rope.ROPE ]; Lookup: PROC[key: Rope.ROPE] RETURNS [proc: CommandProc, doc: Rope.ROPE]; <> <<>> <> <<>> PutProperty: PUBLIC PROCEDURE [key: REF ANY, val: REF ANY, aList: List.AList] RETURNS [List.AList]; <> <<>> GetProperty: PROCEDURE [key: REF ANY, aList: List.AList] RETURNS [val: REF ANY]; <> <<>> ProcCell: TYPE = RECORD [ proc: Commander.CommandProc, doc: Rope.ROPE ]; END.