Getopt Parameter lists
----------------------
`(require 'getopt-parameters)'
- Function: getopt->parameter-list argc argv optnames arities types
aliases desc ...
Returns ARGV converted to a parameter-list. OPTNAMES are the
parameter-names. ARITIES and TYPES are lists of symbols
corresponding to OPTNAMES.
ALIASES is a list of lists of strings or integers paired with
elements of OPTNAMES. Each one-character string will be treated
as a single `-' option by `getopt'. Longer strings will be
treated as long-named options (Note:getopt-.).
If the ALIASES association list has only strings as its `car's,
then all the option-arguments after an option (and before the next
option) are adjoined to that option.
If the ALIASES association list has integers, then each (string)
option will take at most one option-argument. Unoptioned
arguments are collected in a list. A `-1' alias will take the
last argument in this list; `+1' will take the first argument in
the list. The aliases -2 then +2; -3 then +3; ... are tried so
long as a positive or negative consecutive alias is found and
arguments remain in the list. Finally a `0' alias, if found,
absorbs any remaining arguments.
In all cases, if unclaimed arguments remain after processing, a
warning is signaled and #f is returned.
- Function: getopt->arglist argc argv optnames positions arities types
defaulters checks aliases desc ...
Like `getopt->parameter-list', but converts ARGV to an
argument-list as specified by OPTNAMES, POSITIONS, ARITIES, TYPES,
DEFAULTERS, CHECKS, and ALIASES. If the options supplied violate
the ARITIES or CHECKS constraints, then a warning is signaled and
#f is returned.
These `getopt' functions can be used with SLIB relational databases.
For an example, Note:make-command-server.
If errors are encountered while processing options, directions for using
the options (and argument strings DESC ...) are printed to
`current-error-port'.
(begin
(set! *optind* 1)
(getopt->parameter-list
2
'("cmd" "-?")
'(flag number symbols symbols string flag2 flag3 num2 num3)
'(boolean optional nary1 nary single boolean boolean nary nary)
'(boolean integer symbol symbol string boolean boolean integer integer)
'(("flag" flag)
("f" flag)
("Flag" flag2)
("B" flag3)
("optional" number)
("o" number)
("nary1" symbols)
("N" symbols)
("nary" symbols)
("n" symbols)
("single" string)
("s" string)
("a" num2)
("Abs" num3))))
-|
Usage: cmd [OPTION ARGUMENT ...] ...
-f, --flag
-o, --optional=<number>
-n, --nary=<symbols> ...
-N, --nary1=<symbols> ...
-s, --single=<string>
--Flag
-B
-a <num2> ...
--Abs=<num3> ...
ERROR: getopt->parameter-list "unrecognized option" "-?"