This page is a synthesis of the specification compliance for each parser.
Feature id | Description | Shel | Python | C | PHP | |
---|---|---|---|---|---|---|
switch | Switch option |
![]() |
![]() |
![]() |
![]() |
|
sarg | Single argument option |
![]() |
![]() |
![]() |
![]() |
|
marg | Multi argument option |
![]() |
![]() |
![]() |
![]() |
|
grp | Simple option group |
![]() |
![]() |
![]() |
![]() |
|
xgrp | Mutually exclusive option group |
![]() |
![]() |
![]() |
![]() |
|
pa | Positional arguments |
![]() |
![]() |
![]() |
![]() |
|
sc | Subcommand |
![]() |
![]() |
![]() |
![]() |
|
son | Short option name (-a) |
![]() |
![]() |
![]() |
![]() |
|
lon | Long option name (--option) |
![]() |
![]() |
![]() |
![]() |
|
eoo | End of options marker |
![]() |
![]() |
![]() |
![]() |
|
eoa | End of arguments marker |
![]() |
![]() |
![]() |
![]() |
|
son-combined | Short option name combination (-aBcdE) |
![]() |
![]() |
![]() |
![]() |
|
son-arg-separated | Short option name with separated argument (-a value) |
![]() |
![]() |
![]() |
![]() |
|
son-arg-combined | Short option name with combined argument (-aValue) |
![]() |
![]() |
![]() |
![]() |
|
lon-arg-seperated | Long option name with separated argument (--arg value) |
![]() |
![]() |
![]() |
![]() |
|
lon-arg-combined | Long option name with combined argument (--arg=value) |
![]() |
![]() |
![]() |
![]() |
|
on-aliasing | Option name aliasing between global options and subcommand options |
![]() |
![]() |
![]() |
![]() |
|
escape-markers | Escape markers by prefixing it with a backslash (\--option-name \--eoa) |
![]() |
![]() |
![]() |
![]() |
Behavior id | Description | Shel | Python | C | PHP | |
---|---|---|---|---|---|---|
sarg-missing-arg | Raise error on missing argument for single argument option |
![]() |
![]() |
![]() |
![]() |
|
marg-missing-arg | Raise error on missing argument for multiple argument option |
![]() |
![]() |
![]() |
![]() |
|
marg-arg-stop-at-on | Stop considering current command line argument as arguments of option when an option name is found |
![]() |
![]() |
![]() |
![]() |
|
marg-arg-append | Append arguments of all multi-argument option apparition |
![]() |
![]() |
![]() |
![]() |
|
marg-max-rule | Stop considering current command line argument as arguments of muoption if argument limit is reached |
![]() |
![]() |
![]() |
![]() |
|
marg-invalid-arg-null | If argument does not validate multi argument specs, add as null value |
![]() |
![]() |
![]() |
![]() |
|
grp-subgrp | Option group may contains sub groups |
![]() |
![]() |
![]() |
![]() |
|
grp-set-cascade | Mark all parent groups as present (set) when a sub option is set |
![]() |
![]() |
![]() |
![]() |
|
xgrp-same-option | The same option of an exclusive group can appear more than once without error |
![]() |
![]() |
![]() |
![]() |
|
xgrp-mutex | Check mutual exclusion rule in exclusive groups |
![]() |
![]() |
![]() |
![]() |
|
sc-name | A sub command name must appear as the first positional argument |
![]() |
![]() |
![]() |
![]() |
|
sc-alias-name | Always report active subcommand by its main name, even if an alias was used on the command line |
![]() |
![]() |
![]() |
![]() |
|
sc-options | Subcommand options support |
![]() |
![]() |
![]() |
![]() |
|
on-aliasing-before-sc | Aliased option names positioned before subcommand name refer to program-scope options |
![]() |
![]() |
![]() |
![]() |
|
on-aliasing-after-sc | Aliased option names positioned after subcommand name refer to subcommand-scope options |
![]() |
![]() |
![]() |
![]() |
|
on-firstarg-exception | Ignore option name if the previous command line argument is a single/multiple argument option name (without combined argument) |
![]() |
![]() |
![]() |
![]() |
|
son-combined-arg-at-last | A (multi)argument option appears in the short option name combination |
![]() |
![]() |
![]() |
![]() |
|
lon-arg-combined-switch | Silently ignore switch combined argument if the value Is empty |
![]() |
![]() |
![]() |
![]() |
|
lon-arg-combined-empty-arg | Accept the empty string as a valid argument when long option names with combined argument is used (--arg=) |
![]() |
![]() |
![]() |
![]() |
|
eoa-outofcontext | Ignore eod-of-argument behavior outside of multi-argument option parsing |
![]() |
![]() |
![]() |
![]() |
|
eoa-firstarg-exception | Do not consider – as the first argument of the current multi argument option |
![]() |
![]() |
![]() |
![]() |
|
escape-eoa | Escape end-of-arguments marker by prefixing it with a backslash |
![]() |
![]() |
![]() |
![]() |
|
escape-eoo | Escape end-of-options marker |
![]() |
![]() |
![]() |
![]() |
|
escape-son | Escape short option name markers |
![]() |
![]() |
![]() |
![]() |
|
escape-lon | Escape long option name markers |
![]() |
![]() |
![]() |
![]() |
|
escape-unescape | Remove leading backslash when escaped marker is stored as (positional) argument |
![]() |
![]() |
![]() |
![]() |
|
parse-unexpected-option | Parse option normally even if the option breaks a mutually exclusive rule |
![]() |
![]() |
![]() |
![]() |
|
parse-call-all-validators | Call all argument validators (even if a preceding one failed to validate) |
![]() |
![]() |
![]() |
![]() |
|
postproc-required | Look for missing required option |
![]() |
![]() |
![]() |
![]() |
|
postproc-required-in-xgrp | Inside exclusive groups, the required rule for option O applies only if the group selected option is O or an ancestor of O |
![]() |
![]() |
![]() |
![]() |
|
postproc-marg-minmax | Minimum and maximum argument count rules are checked after all command line argument were parsed |
![]() |
![]() |
![]() |
![]() |
|
postproc-sarg-default | Set single argument default value if the option was not present and does not break mutual-exclusion rule |
![]() |
![]() |
![]() |
![]() |
|
postproc-unset-option | Unset present options which does not validate the post-processing phase |
![]() |
![]() |
![]() |
![]() |
|
validation-number | Check if argument is a number |
![]() |
![]() |
![]() |
![]() |
|
validation-number-range | Check if a number argument is between a given interval |
![]() |
![]() |
![]() |
![]() |
|
validation-pathexists | Validate existence of filesystem item existence |
![]() |
![]() |
![]() |
![]() |
|
validation-pathaccess | Validate filesystem item permissions |
![]() |
![]() |
![]() |
![]() |
|
validation-pathkind | Validate filesystem item kind(s) |
![]() |
![]() |
![]() |
![]() |
|
validation-enum | Validate restricted value |
![]() |
![]() |
![]() |
![]() |
|
msg-e8-once | Report Error #8 only once |
![]() |
![]() |
![]() |
![]() |
|
msg-e9-once | Report Error #9 only once |
![]() |
![]() |
![]() |
![]() |
List of messages that the parsers raise during command line argument processing
Level | Code | Message | Description | Shell | Python | C | PHP | |
---|---|---|---|---|---|---|---|---|
Fatal error | 1 | Unknown option <option-cli-name> | The option name does not correspond to any name described in the program interface XML definition |
![]() |
![]() |
![]() |
![]() |
|
Error | 1 | invalid value for option <option-cli-name>. <expected-values> | The option value does not validate one or more rule of the option's value validators |
![]() |
![]() |
![]() |
![]() |
|
Error | 2 | Invalid value for positional argument <number>. <expected values> | The option value does not validate one or more rule of the positional argument's value validators |
![]() |
![]() |
![]() |
![]() |
|
Error | 3 | Missing argument for option <option-cli-name> | The argument of a single or multiple argument is missing |
![]() |
![]() |
![]() |
![]() |
|
Error | 4 | Missing required option <option-cli-name> | An option marked as required in the program interface XML description file is not present on the command line |
![]() |
![]() |
![]() |
![]() |
|
Error | 5 | At least one of the following options have to be set: <option-cli-name1 ...> |
![]() |
![]() |
![]() |
![]() |
||
Error | 6 | One of the following options have to be set: <option-cli-name1 ...> |
![]() |
![]() |
![]() |
![]() |
||
Error | 7 | Required positional argument %d is missing | An positional argument marked as required in the program interface XML description file is not present on the command line |
![]() |
![]() |
![]() |
![]() |
|
Error | 8 | Program does not accept positional arguments |
![]() |
![]() |
![]() |
![]() |
||
Error | 9 | Subcommand <sc-name> does not accept positional arguments |
![]() |
![]() |
![]() |
![]() |
||
Error | 10 | Too many positional arguments | There is more positional arguments in the command line than the maximum expected by the program or the subcommand |
![]() |
![]() |
![]() |
![]() |
|
Error | 11 | At least <number> arguments required for <option-cli-name> | A multi argument option is present on the command line but the number of argument does not validate its minimal argument count restriction |
![]() |
![]() |
![]() |
![]() |
|
Error | 12 | Unexpected option <option-cli-name> | An option conflicts with another due to exclusive group restriction |
![]() |
![]() |
![]() |
![]() |
|
Error | 13 | Option <option-cli-name> does not allow an argument | An argument was given to a switch by combining the value to a long option name |
![]() |
![]() |
![]() |
![]() |
|
Warning | 2 | Ignore end-of-argument marker | The 'end-of-argument' marker '-' was set as the first argument of a multi-argument option |
![]() |
![]() |
![]() |
![]() |