I don't like the special keyword AllOptions and that we are diverging from the idea that option groups are named rexpses.
In regexp notation instead of
"OptionalOptions: AllOptions -CompulsoryOptions;"
one would write "[^CompulsoryOptions]", and AllOptions corresponds to ".".
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
We're not diverging, AllOptions is still a named regexp. It's just defined by default. It just saves you having to write it out manually.
I agree it's not entirely like regexp syntax, but it wasn't intended to be. I really don't want to write [^SomeOptionOrGroup] in the format string. It's horrible.
Also, treating option groups as sets is powerful for generating a group with exactly the options we want inside it in a short succinct manner.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I don't like the special keyword AllOptions and that we are diverging from the idea that option groups are named rexpses.
In regexp notation instead of
"OptionalOptions: AllOptions -CompulsoryOptions;"
one would write "[^CompulsoryOptions]", and AllOptions corresponds to ".".
We're not diverging, AllOptions is still a named regexp. It's just defined by default. It just saves you having to write it out manually.
I agree it's not entirely like regexp syntax, but it wasn't intended to be. I really don't want to write [^SomeOptionOrGroup] in the format string. It's horrible.
Also, treating option groups as sets is powerful for generating a group with exactly the options we want inside it in a short succinct manner.
The idea is to traditional regexp things over options, e.g., "." would mean all options "[^foo] would mean all except foo.