Anonymous command-line argument specification.
val (%:) : string ‑> 'a Arg_type.t ‑> 'a t
(name %: typ)
specifies a required anonymous argument of type typ
.
The name
must not be surrounded by whitespace, if it is, an exn will be raised.
If the name
is surrounded by a special character pair (<>, {}, [] or (),)
name
will remain as-is, otherwise, name
will be uppercased.
In the situation where name
is only prefixed or only suffixed by one of the
special character pairs, or different pairs are used, (e.g. "<ARG]") an exn will
be raised.
The (possibly transformed) name
is mentioned in the generated help for the
command.
sequence anons
specifies a sequence of anonymous arguments. An exception
will be raised if anons
matches anything other than a fixed number of
anonymous arguments
non_empty_sequence_as_pair anons
and non_empty_sequence_as_list anons
are like
sequence anons
except that an exception will be raised if there is not at least
one anonymous argument given.
t2
, t3
, and t4
each concatenate multiple anonymous argument
specs into a single one. The purpose of these combinators is to allow
for optional sequences of anonymous arguments. Consider a command with
usage:
main.exe FOO [BAR BAZ]
where the second and third anonymous arguments must either both be there or both not be there. This can be expressed as:
t2 ("FOO" %: foo) (maybe (t2 ("BAR" %: bar) ("BAZ" %: baz)))]
Sequences of 5 or more anonymous arguments can be built up using nested tuples:
maybe (t3 a b (t3 c d e))