DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(guile.info.gz) Option Specification

Info Catalog (guile.info.gz) getopt-long Example (guile.info.gz) getopt-long (guile.info.gz) Command Line Format
 
 10.2.2 How to Write an Option Specification
 -------------------------------------------
 
 An option specification is an association list ( Association
 Lists) with one list element for each supported option. The key of
 each list element is a symbol that names the option, while the value is
 a list of option properties:
 
      OPTION-SPEC ::=  '( (OPT-NAME1 (PROP-NAME PROP-VALUE) ...)
                          (OPT-NAME2 (PROP-NAME PROP-VALUE) ...)
                          (OPT-NAME3 (PROP-NAME PROP-VALUE) ...)
                          ...
                        )
 
    Each OPT-NAME specifies the long option name for that option.  For
 example, a list element with OPT-NAME `background' specifies an option
 that can be specified on the command line using the long option
 `--background'.  Further information about the option -- whether it
 takes a value, whether it is required to be present in the command
 line, and so on -- is specified by the option properties.
 
    In the example of the preceding subsection, we already saw that a
 long option name can have a equivalent "short option" character.  The
 equivalent short option character can be set for an option by specifying
 a `single-char' property in that option's property list.  For example,
 a list element like `'(output (single-char #\o) ...)' specifies an
 option with long name `--output' that can also be specified by the
 equivalent short name `-o'.
 
    The `value' property specifies whether an option requires or accepts
 a value.  If the `value' property is set to `#t', the option requires a
 value: `getopt-long' will signal an error if the option name is present
 without a corresponding value.  If set to `#f', the option does not
 take a value; in this case, a non-option word that follows the option
 name in the command line will be treated as a non-option argument.  If
 set to the symbol `optional', the option accepts a value but does not
 require one: a non-option word that follows the option name in the
 command line will be interpreted as that option's value.  If the option
 name for an option with `'(value optional)' is immediately followed in
 the command line by _another_ option name, the value for the first
 option is implicitly `#t'.
 
    The `required?' property indicates whether an option is required to
 be present in the command line.  If the `required?'  property is set to
 `#t', `getopt-long' will signal an error if the option is not specified.
 
    Finally, the `predicate' property can be used to constrain the
 possible values of an option.  If used, the `predicate' property should
 be set to a procedure that takes one argument -- the proposed option
 value as a string -- and returns either `#t' or `#f' according as the
 proposed value is or is not acceptable.  If the predicate procedure
 returns `#f', `getopt-long' will signal an error.
 
    By default, options do not have single-character equivalents, are not
 required, and do not take values.  Where the list element for an option
 includes a `value' property but no `predicate' property, the option
 values are unconstrained.
 
Info Catalog (guile.info.gz) getopt-long Example (guile.info.gz) getopt-long (guile.info.gz) Command Line Format
automatically generated byinfo2html