<<>> <> <> <> <<>> DIRECTORY Commander, Rope; <<>> Args: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; Arg: TYPE ~ RECORD [ ok: BOOL ¬ FALSE, bool: BOOL ¬ FALSE, int: INT ¬ 0, real: REAL ¬ 0.0, rope: ROPE ¬ NIL]; NArgs: PROC [cmd: Commander.Handle] RETURNS [INTEGER]; <> GetRope: PROC [cmd: Commander.Handle, nArg: INTEGER ¬ 0] RETURNS [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]; <> Error: ERROR [reason: ROPE]; ArgsGet: PROC [cmd: Commander.Handle, format: ROPE, caseSensitive: BOOL ¬ FALSE] RETURNS [Arg,Arg,Arg,Arg,Arg,Arg,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.>> <<>> <> <> <> <> <<>> <> <> <<[arg1, arg2, arg3, arg4] _ ArgsGet[cmd, "%is-x%r-q%b"];>> <<>> <> <> <> <> <<>> <> <> <> <<>> <> <> <> <<>> <> <> <> <<>> <> <> <> <<>> <> <<>> <> <> <> <<>> <> <> <<>> <> <> <> <<>> <> <> <> <<>> ArgsGetFromRope: PROC [input, format: ROPE, caseSensitive: BOOL ¬ FALSE] RETURNS [Arg,Arg,Arg,Arg,Arg,Arg,Arg,Arg,Arg,Arg,Arg,Arg,Arg,Arg,Arg,Arg,Arg,Arg]; <> <<>> END.