This is nice, but when your language will grow, why would you use that instead of lex/yacc? It's hard to beat a nice BNF grammar; In fact they felt the need to put the BNF grammar for the things they were parsing at the end of the README, because it's far more readable that those >* skip <* stuff.
A good thing about parser combinators like this is that they’re unambiguous by construction.
I also find them much more controllable and manageable in practice. I think that’s a common experience with imperative parsing in general, as it’s the approach used in I’d say the majority of industrial compilers.
> It's hard to beat a nice BNF grammar; In fact they felt the need to put the BNF grammar
The BNF grammar there is incomplete compared to their actual code, it’s just a sketch it doesn’t completely describe the accepted language, so hard to argue it’s better as you wouldn’t be able to do anything with it!
What's the advantage of this over existing OCaml parser-combinator libraries? The "Why Use Reparse?" section really sells parser-combinator libraries in general; as far as I can tell, it applies equally to all of angstrom, mparser, opal, and planck.