You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Riyyi
cf1da45b78
|
3 years ago | |
---|---|---|
src | 3 years ago | |
test | 3 years ago | |
.clang-format | 3 years ago | |
.gitignore | 3 years ago | |
CMakeLists.txt | 3 years ago | |
README.org | 3 years ago | |
compile_commands.json | 3 years ago |
README.org
Stowage
Needed information for generation:
- short option
- long option
- short description (for usage ouput)
- long description (for manpage output)
Option Parsing
Parsed from left to right.
Types
- Short option
- Long option
- Argument to option
- Non-option parameter (default argument)
Short Option
'-' followed by short option character. If option has required argument, directly after OR separated by white-space. Optional argument must be directly after the option character.
Possible to write several short options after one '-', if all (except last) do not have required or optional arguments.
Long Option
'–' followed by long option name.
If option has a required argument, directly after, separated by '' OR white-space.
Optional argument must be directly after the option, separated by '
'.
Non-option Parameter
Each parameter not starting with '-' and not a required argument of a previous option, is a non-option parameter.
Each parameter after a '–' parameter is always interpreted as a non-option parameter.
Examples
./stowage -Fals
./stowage -F -a -l -s
./stowage --file --add --pull --push
./stowage -r filename
./stowage -rfilename
./stowage --remove=filename
./stowage --remove filename
./stowage --remove filename other stuff
./stowage --remove filename -- other stuff
Multiple of the same options
./stowage -e pattern1 -epattern2 --regexp=pattern3 --regexp pattern4
TODO
- after first non option, go into no-option mode
- support '–' to go into no-option mode
- add multi-option support, vectors!
- support argument parsing + storing
- add addOption overloads
- generate usage string
- generate man page string
- parse() function to return bool true if any error has occured