Camlp5 is a Pre-Processor-Pretty-Printer for OCaml. It offers syntactic tools (parsers, extensible grammars), the ability to extend the concrete syntax of OCaml (quotations, syntax extensions), and to redefine it from scratch. This is an advanced tool and should not be used by those new to OCaml.
Unfortunately, there is some confusion between the names Camlp4 and Camlp5. There are currently two distinct systems with these names. Camlp4 is part of the standard OCaml distribution and Camlp5 is distributed separately. The unfortunate part is that what is now called Camlp5 was formerly known as Camlp4, but what is currently called Camlp4 is unrelated to the former Camlp4 (in terms of implementation, both have the same purpose).