Cppo is an equivalent of the C preprocessor targeted at the OCaml language and its variants.
The main purpose of cppo is to provide a lightweight tool for
simple macro substitution (
and file inclusion (
for the occasional case when this is useful in OCaml.
Processing specific sections of files by calling external programs is
also possible via
The implementation of cppo relies on the standard library of OCaml and on the standard parsing tools Ocamllex and Ocamlyacc, which contribute to the robustness of cppo across OCaml versions.
The development version of Cppo is hosted on GitHub.