poaflocParser Of Arguments For Lines Of Commands |
git clone git://git.dimitrijedobrota.com/poafloc.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING |
README.md (2000B)
0 # Poafloc
2 Command-line argument parser for C and C++ written in C++20
4 ## Description
6 This project is heavily inspired by GNU argp and the initial goal was to have
7 a drop in replacement. I've managed to implement most of the features I plan
8 on using, but there is still space for future improvements, maybe even in
9 other directions.
11 The main motivation behind this project is gaining an in depth understanding
12 of all of the syntax rules of command line arguments, to be used for all of
13 the UNIX utilities.
15 This project included a few challenges in both the design and implementation.
16 There was a lot of experimentation with interface that works for both C and
17 C++, as well as having a single library that provides bindings and works with
18 both languages simultaneously. There were a lot of caveats and edge cases to
19 be understood first, and later implemented.
22 ## Dependencies
24 * CMake 3.14 or latter
25 * Compiler with C++20 support (tested on clang version 19.1.7)
28 ## Building and installing
30 See the [`BUILDING`](BUILDING.md) document.
33 ## Usage
35 > Please reference example folder for relevant usage examples.
38 ## Help
40 Refer to [GNU argp documentation](https://www.gnu.org/software/libc/manual/html_node/Argp.html)
43 ## Version History
45 - 2.0
46 * Reinvent with modern C++ features
47 * Structure bindings
48 * Exception based error handling
49 - 1.2
50 * Propagate parser generated error
51 - 1.1
52 * Modernize CMake project
53 * Modernize codebase
54 * Add test suite
55 - 1.0
56 * Initial Release
59 ## Contributing
61 See the [`CONTRIBUTING`](CONTRIBUTING.md) document.
64 ## License
66 This project is licensed under the MIT License - see the [`LICENSE`](LICENSE.md) file for details
69 ## Acknowledgments
71 Inspiration, code snippets, etc.
72 * [GNU argp documentation](https://www.gnu.org/software/libc/manual/html_node/Argp.html)
73 * [Step-by-Step into Argp](http://nongnu.askapache.com/argpbook/step-by-step-into-argp.pdf)
74 * [ericonr/argp-standalone](https://github.com/ericonr/argp-standalone)