::cut OPTION... [FILE]... { match OPTION... { --help { <1 : Help~ ; } --version { <1 : VersionInfo~ ; } * { match OPTION... { -f--fields LIST:~CutFieldList~ { ROW-DELIM = match OPTION... { -z--zero-terminated { '\0' } * { '\n' } }; IN-COL-DELIM = match OPTION... { -d--delimiter DELIM:Char { DELIM } * { '\t' } }; OUT-COL-DELIM = match OPTION... { --output-delimiter STRING: { STRING } * { IN-COL-DELIM } }; FILE : Path ~> ~ ~ ; @FILE : >... > ~> ~ ~> ~ ~ ; >0 : >... > ~> ~ ~> ~ ~ ; # `[LIST]` means `select all fields contained in LIST from parameter pack` <1 : >[LIST]... > ~> ~ ~> ~ ~ ; } * { <1 : Nothing ; <2 : MissingFields~ErrorMessage~ ; } } } } }