poafloc

Parser 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 (1894B)


0 # Poafloc 1 2 Command-line argument parser for C and C++ written in C++20 3 4 ## Description 5 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. 10 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. 14 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. 20 21 22 ## Dependencies 23 24 * CMake 3.14 or latter 25 * Compiler with C++20 support (tested on clang version 19.1.7) 26 27 28 ## Building and installing 29 30 See the [`BUILDING`](BUILDING.md) document. 31 32 33 ## Usage 34 35 > Please reference example folder for relevant usage examples. 36 37 38 ## Help 39 40 Refer to [GNU argp documentation](https://www.gnu.org/software/libc/manual/html_node/Argp.html) 41 42 43 ## Version History 44 45 - 1.2 46 * Propagate parser generated error 47 48 - 1.1 49 * Modernize CMake project 50 * Modernize codebase 51 * Add test suite 52 53 - 1.0 54 * Initial Release 55 56 57 ## Contributing 58 59 See the [`CONTRIBUTING`](CONTRIBUTING.md) document. 60 61 62 ## License 63 64 This project is licensed under the MIT License - see the [`LICENSE`](LICENSE.md) file for details 65 66 67 ## Acknowledgments 68 69 Inspiration, code snippets, etc. 70 * [GNU argp documentation](https://www.gnu.org/software/libc/manual/html_node/Argp.html) 71 * [Step-by-Step into Argp](http://nongnu.askapache.com/argpbook/step-by-step-into-argp.pdf) 72 * [ericonr/argp-standalone](https://github.com/ericonr/argp-standalone)