Camlp5 is a preprocessor and pretty-printer for OCaml programs. It also provides parsing and printing tools. As a preprocessor, it allows to: extend the syntax of OCaml, redefine the whole syntax of the language. As a pretty printer, it allows to: display OCaml programs in an elegant way, convert from one syntax to another, check the results of syntax extensions. Camlp5 also provides some parsing and pretty printing tools: extensible grammars, extensible printers, stream parsers and lexers pretty print module. It works as a shell command and can also be used in the OCaml toplevel.

WWW: https://camlp5.github.io/
