Man Linux: Main Page and Category List

NAME

       CamlP4 - Pre-Processor-Pretty-Printer for Objective Caml

SYNOPSIS

       camlp4 [load-options] [--] [other-options]

DESCRIPTION

       Camlp4  is a Pre-Processor-Pretty-Printer for Objective Caml. It offers
       tools for syntax (Stream Parsers  and  Grammars)  and  the  ability  to
       modify   the  concrete  syntax  of  the  language  (Quotations,  Syntax
       Extensions).

       The Objective Caml compiler has a special  option  "-pp",  allowing  to
       call  any  preprocessor.  If  Camlp4 is used, the parsing is done (only
       once) by Camlp4, and the Objective Caml compiler resumes  the  rest  of
       the compilation (typing, code generation).

       Camlp4  can  parse  normal  OCaml  concrete  syntax  or any other user-
       definable syntax. As an example, an  alternative  syntax  is  provided,
       named  Revised,  because  it tries to fix some problems of the original
       syntax.

       Camlp4 can pretty print the normal OCaml concrete syntax or the revised
       one (Pretty-Printer). It is therefore always possible to have a version
       of your sources compilable  by  the  compiler  Objective  Caml  without
       preprocessing.

       Camlp4  can  also  serve as a Program Transformation tool, the user can
       supply transformations and apply them easily as a pre-processing  task.
       This is done with Filters.

OPTIONS

       <file>.ml
              Parse this implementation file

       <file>.mli
              Parse this interface file

       <file>.(cmo|cma)
              Load this module inside the Camlp4 core

       -I <directory>
              Add directory in search patch for object files.

       -where Print camlp4 library directory and exit.

       -nolib No automatic search for object files in library directory.

       -intf <file>
              Parse <file> as an interface, whatever its extension.

       -impl <file>
              Parse <file> as an implementation, whatever its extension.

       -str <string>
              Parse <string> as an implementation.

       -unsafe
              Generate unsafe accesses to array and strings.

       -noassert
              Obsolete, do not use this option.

       -verbose
              More verbose in parsing errors.

       -loc <name>
              Name of the location variable (default: _loc).

       -QD <file>
              Dump quotation expander result in case of syntax error.

       -o <file>
              Output on <file> instead of standard output.

       -v     Print Camlp4 version and exit.

       -version
              Print Camlp4 version number and exit.

       -no_quot
              Don’t parse quotations, allowing to use, e.g. "<:>" as token.

       -loaded-modules
              Print the list of loaded modules.

       -parser <name>
              Load the parser Camlp4Parsers/<name>.cmo

       -printer <name>
              Load the printer Camlp4Printers/<name>.cmo

       -filter <name>
              Load the filter Camlp4Filters/<name>.cmo

       -ignore
              ignore the next argument

       --     Deprecated, does nothing

       Options added by loaded object files:

       -I <string>
              Add a directory to INCLUDE search path.

       -U <string>
              Undefine for IFDEF instruction.

       -D <string>
              Define for IFDEF instruction.

       -meta_action
              Undocumented

       -split_gext
              Old name for the option -split_ext.

       -split_ext
              Split EXTEND by functions to turn around a PowerPC problem.

       -help_seq
              Print explanations about new sequences and exit.

SEE ALSO

       ocamlc(1), ocaml(1).
       The  full  documentation  for  CamlP4  is  being  developed  on  a Wiki
       available on the web at
       <http://brion.inria.fr/gallium/index.php/Camlp4>.

AUTHOR

       CamlP4 is Copyright INRIA, it was mainly written by Nicolas  Pouillard.

       This  manual  page was written by Stefano Zacchiroli <zack@debian.org>,
       for the Debian project (but may be used by others).