Cypress
A parser library inspired by a scaled down derivative of the FParsec combinator library in F#.
I was also inspired by chumsky a very elegant parser combinator library which I have enjoyed using!
The goal of this project was to develop a simple parser combinator library with which people can write and parse expressive languages with ease. It is still a work in progress and there are areas that still need to be cleaned up but I believe that I have achieved my goal.
Example
I have populated /examples with a parser of certain simple languages, along with an evaluator for a select few, to show using this library by example. I hope to populate one or two more sophisticated implementations soon. Below is a simple parser for BrainFuck which seems to be the go to simple language parser that libraries refer to, so here it is.
use *;
let input = b"+++++[>>+<<-]".into_input;
// parse bf input
bf_parser.parse;
Note
This is my first published project so if you have thoughts please feel free to open an issue a PR with ideas and fixes!
License
cypress is licensed under the BSD 3 license (see LICENSE in the main repository).