Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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: about 2 months ago
JSON representation

A generic C++17 parser-combinator library with a natural grammar notation.

Awesome Lists containing this project

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