Tuples
Tuples are characters that basically define delimiters for a group of values. They usually help to make the values to forward to the argument both more readable, and explicit.
In this example, the values 5, 2, and 3 are grouped together by the square brackets [ and ]. The square brackets are the tuple characters.
Changing the tuple characters
Before parsing the arguments, you can change the tuple characters to use by setting the
TupleChar#currentproperty.TupleChar.current = TupleChar.PARENTHESIS;Now, the tuple characters are set to the parenthesis characters (
(and)):$ my-program --values (5 2 3)
Uses of tuples
Sometimes Lanat cannot tell exactly if some token is a value or another kind of token, like a sub-command (if the names happen to match). Lanat will always prioritize (if possible) to assume that the token is any other kind of token than a value. This is where tuples can help.
Tuples also improve the readability of the input, making it easier to understand which values is each argument receiving.
Case
Assume there is a
valuesargument that can take from 2 to 5 strings. There is also a sub-command with the nameexample:$ my-program --values 5 2 3 exampleIn this case, Lanat will assume that
5,2and3are values, andexamplea sub-command, sincevaluesis already satisfied with 3 values.In order for
exampleto be considered a value, you can use tuples:$ my-program --values [5 2 3 example]