Program and command entries.
This module contains interfaces and implementations of various entries. Generally, most APIs expose builder-like pattern, where setters return class instance to allow chaining.
Entries are all things that can be added to program or command - that is flags, options and arguments. All entries contain a name - which is an unique identifier for every entry. Names must be a valid alpha numeric identifier.
Result of parsing arguments (instance of ProgramArgs) allows reading argument values by entry name (not by -short or --long-forms).
Represents an argument.
Represents a flag.
Thrown when user-passed data is invalid.
Represents an option.
Interface for all program or command entries - flags, options and arguments.