pacomb

Parsing library based on combinators and ppx extension to write languages
README

PaComb implements a representation of grammars with semantic actions (values
returned as a result of parsing). Parsing is performed by compiling grammars
defined with the Grammar module (or indirectly though a PPX extension) to
the combinators of the Combinator module. The library offers scanner less
parsing, but the Lex module provide a notion of terminals and blanks
that give a simple way to write grammars in two phases, as usual.

The main advantage of PaComb and similar solutions, contrary to ocamlyacc, is
that grammars (compiled or not) are first class values. This allows using
the full power of OCaml for manipulating grammars. For example, this is very
useful when working with syntax extension mechanisms.

Importantly, the performances of PaComb are very good: it is only two to
five times slower than grammars generated by ocamlyacc, which is a compiler.

Defining languages using the Grammar module directly is cumbersome. For that
reason, PaComb provides a BNF-like PPX syntax extension (enabled using the
-ppx pacombPpx compilation flag). An example with arithmetic expressions is

Install
Published
14 Oct 2021
Sources
1.1.tar.gz
md5=56207945b70db43e8ef4ed9d1a34c131
Dependencies
ppxlib
>= "0.10.0"
dune
>= "1.9.0"
ocaml
>= "4.04.1"
Reverse Dependencies