<> <> <> <<>> DIRECTORY Commander, Rope; <<>> Args: CEDAR DEFINITIONS ~ BEGIN Arg: TYPE ~ RECORD [ok, bool: BOOL _ FALSE, int: INT _ 0, real: REAL _ 0.0, rope: Rope.ROPE _ NIL]; NArgs: PROC [cmd: Commander.Handle] RETURNS [INTEGER]; <> GetRope: PROC [cmd: Commander.Handle, nArg: INTEGER _ 0] RETURNS [Rope.ROPE]; <> <<>> ArgRope: PROC [cmd: Commander.Handle, nArg: INTEGER _ 0] RETURNS [Arg]; <> ArgReal: PROC [cmd: Commander.Handle, nArg: INTEGER _ 0] RETURNS [Arg]; <> <<>> ArgInt: PROC [cmd: Commander.Handle, nArg: INTEGER _ 0] RETURNS [Arg]; <> ArgIntDef: PROC [cmd: Commander.Handle, nArg: INTEGER _ 0, defVal: INT] RETURNS [Arg]; <> ArgIntRange: PROC [cmd: Commander.Handle, n, min, max: INT] RETURNS [Arg]; <> ArgsGet: PROC [cmd: Commander.Handle, fmt: Rope.ROPE] RETURNS [BOOL, Arg, Arg, Arg, Arg, Arg, Arg, Arg, Arg, Arg, Arg, Arg, Arg]; <<>> <> <> <<>> <> <> <<>> <> <<[ any following argument symbols are optional>> <<% any following argument symbols are required>> <<- any following arguments are required only if a key is specified>> <<>> <> <> <> <> <<>> <> <<"-pVal%i" if "-pVal" is an argument, an integer is expected to follow immediately.>> <<"-f%b" if "-f" is an argument, the boolean field of its return Arg is set true.>> <<"%iir" two integers and one real are expected as arguments.>> <<>> <> <> <> <> <<>> <> <> <> <<[ok, arg1, arg2, arg3, arg4] _ ArgsGet[cmd, "%is-x%r-q%b"];>> <<>> <> <> <> <> <<>> <> <<>> <> <> <> <<>> <> <> <> <<>> <> <> <> <<>> <> <> <> <<>> <> <<>> <> <> <> <<>> <> <> <<>> <> <> <> <<>> <> <> <> <<>> END.