Perhaps it should be called opp? Or does c stand for "compatible preprocessor for ocaml"? :)
A+ On Fri, Aug 12, 2011 at 2:44 AM, Martin Jambon <[email protected]> wrote: > Dear list, > > I would like to announce the release of cppo 0.9.2 which contains a few > additional features since the last announcement in 2009. > > http://martin.jambon.free.fr/cppo.html > > cppo is a lightweight preprocessor analogous to cpp and compatible with > the OCaml syntax. It provides the classic directives #define, #include, > #ifdef, etc. > > Documentation: http://martin.jambon.free.fr/cppo-manual-0.9.2.txt > > > New features: > > 1. #ext directive: calling external preprocessors > 2. STRINGIFY and CONCAT > > > 1. #ext directive: calling external preprocessors > ================================================= > > The new #ext directive allows to call an external command to process a > lines of input until #endext. > > $ cat example1.ml > let msg = > #ext rot13 > "BPnzy ehyrf!" > #endext > > let () = print_endline msg > > $ ocamlopt -o example1 \ > -pp "cppo -x rot13:\"tr '[a-zA-Z]' '[n-za-mN-ZA-M]'\"" example1.ml > > $ ./example1 > OCaml rules! > > > 2. STRINGIFY and CONCAT > ======================= > > STRINGIFY allows to build string literals from unquoted text. This is > useful for including source code in error messages. STRINGIFY(foo) is > the equivalent of #foo in cpp syntax. > > CONCAT concatenates its two arguments into a single identifier. > CONCAT(a, b) is the equivalent of a ## b in cpp syntax. > > > > Enjoy. > > > Martin > > -- > > P.S.: follow my tech-focused channel on Twitter for more organic news: > > http://twitter.com/mjambontech > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa-roc.inria.fr/wws/info/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > > -- Caml-list mailing list. Subscription management and archives: https://sympa-roc.inria.fr/wws/info/caml-list Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
