Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/LPeter1997/CppCmb
A generic C++17 parser-combinator library with a natural grammar notation.
https://github.com/LPeter1997/CppCmb
c-plus-plus c-plus-plus-17 parser parser-combinator parser-combinators parser-library
Last synced: 28 days ago
JSON representation
A generic C++17 parser-combinator library with a natural grammar notation.
- Host: GitHub
- URL: https://github.com/LPeter1997/CppCmb
- Owner: LPeter1997
- License: mit
- Created: 2018-09-07T08:51:51.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-03-02T06:51:28.000Z (almost 4 years ago)
- Last Synced: 2024-08-04T02:09:27.544Z (4 months ago)
- Topics: c-plus-plus, c-plus-plus-17, parser, parser-combinator, parser-combinators, parser-library
- Language: C++
- Homepage:
- Size: 341 KB
- Stars: 124
- Watchers: 4
- Forks: 8
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- AwesomeCppGameDev - CppCmb - combinator library with a natural grammar notation. (C++)
README
![alt text](https://github.com/LPeter1997/CppCmb/blob/master/cppcmb_logo.svg "CppCmb Logo")
# What is CppCmb?
CppCmb is a [single-header](https://github.com/LPeter1997/CppCmb/blob/master/cppcmb.hpp) C++17 monadic parser-combinator library that aims for genericity and simplicity. It tries to get very close to grammar notations, like BNF.
# How do I compile/install it?
It's a [single header file](https://github.com/LPeter1997/CppCmb/blob/master/cppcmb.hpp) that you can just drop into your project and use it straight away.
# How do I use it?
See the [wiki](https://github.com/LPeter1997/CppCmb/wiki) for documentation and tutorial. See [examples folder](https://github.com/LPeter1997/CppCmb/tree/master/examples) for usage.
# How can I contribute?
You can open issues, or do a pull-request if you've implemented/fixed something.
# To do:
* Add more examples
* Test and make it work on MSVC (currently only worked with GCC, untested on everything else)# Roadmap:
* Error reporting and a way to describe parsers to the user
* Testing and fuzzing the library