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.