Man Linux: Main Page and Category List


       camlp5 - Pre-Precessor-Pretty-Printer for OCaml
       mkcamlp5 - Create custom camlp5
       mkcamlp5.opt - Create custom camlp5 (native code)
       ocpp5 - Universal preprocessor


       camlp5 [ load-options ] [--] [ other-options ]
       camlp5o [ load-options ] [--] [ other-options ]
       camlp5r [ load-options ] [--] [ other-options ]
       camlp5sch [ load-options ] [--] [ other-options ]
       ocpp5 [ load-options ] file

       camlp5o.opt [--] [ other-options ]
       camlp5r.opt [--] [ other-options ]


       camlp5  is  a  Pre-Processor-Pretty-Printer for OCaml, parsing a source
       file and printing some result on standard output.

       camlp5o, camlp5r and camlp5sch are versions of camlp5 with  some  files
       already loaded (see further).

       camlp5o.cma,  camlp5r.cma  and  camlp5sch.cma are files to be loaded in
       ocaml toplevel to use the camlp5 machinery

       mkcamlp5 and mkcamlp5.opt creates camlp5 executables  with  almost  the
       same options than ocamlmktop. See further.

       ocpp5  is  an universal preprocessor, treating any kind of source file,
       generating the same text with the possible quotations expanded.

       camlp5o.opt  and  camlp5r.opt  are  versions  of  camlp5o  and  camlp5r
       compiled  by the native-code compiler ocamlopt. They are faster but not
       extensible. And they are not available in all installations of  camlp5.


       The  load options select parsing and printing actions recorded in OCaml
       object files (ending with .cmo or .cma). Several usage of these options
       are authorized. They must precede the other options.

       An optional -- may end the load options.

       -I directory
              Add  directory  in  the search path for files loaded. Unless the
              option -nolib is used, the camlp5 library directory is  appended
              to  the  path.  Warning:  there  is  no  automatic search in the
              current directory: add "-I ." for this.

       -where Print camlp5 library directory name and exit.

       -nolib No  automatic  search  for  objects  files  in  camlp5   library

              The file is loaded in camlp5 core.


       The others options are:

       file   Treat  file  as an interface file if it ends with .mli and as an
              implementation file if it ends with .ml.

       -intf file
              Treat file as an interface file, whatever its extension.

       -impl file
              Treat file as an implementation file, whatever its extension.

              Generate unsafe accesses to arrays and strings.

              Do not compile assertion checks.

              More verbose in parsing errors.

       -QD file
              Dump in file in  case  of  syntax  error  in  the  result  of  a
              quotation expansion.

       -o out-file
              Print the result on out-file instead of standard output. File is
              opened with open_out_bin (see OCaml library Pervasives).

       -v     Print the version number and exit.

       -help  Print the available options and exit. This  print  includes  the
              options possibly added by the loaded object files.

       The others options can be extended by loaded object files. The provided
       files add the following options:

       -l line-length
              Added by pr_o.cmo and pr_r.cmo: set  the  line  length  (default

       -sep string
              Added  by  pr_o.cmo  and  pr_r.cmo:  print  this  string between
              phrases instead of comments.

       -no_ss Added by pr_o.cmo: do not print double semicolons

       -D ident
              Added by pa_macro.cmo: define the ident.

       -U ident
              Added by pa_macro.cmo: undefine the ident.


       These files are installed in the directory /usr/lib/ocaml/camlp5.

       Parsing files:
           pa_r.cmo: revised syntax
           pa_rp.cmo: streams and parsers
           pa_lexer.cmo: lexers
           pa_o.cmo: normal syntax
           pa_op.cmo: streams and parsers
           pa_oop.cmo: streams and parsers (without code optimization)
           pa_scheme.cmo: scheme syntax
           pa_extend.cmo: syntax extension for grammars
           pa_extfold.cmo: extension of pa_extend with FOLD0 and FOLD1
           pa_extfun.cmo: syntax extension for extensible functions
           pa_extprint.cmo: syntax extensions for extensible printers
           pa_pprintf.cmo: syntax extension for pprintf statement
           pa_fstream.cmo: syntax extension for functional streams
           pa_macro.cmo: add macros (ifdef, define) like in C
           pa_lefteval.cmo: left-to-right evaluation of parameters
           pa_pragma.cmo: directive #pragma

       Printing files:
           pr_r.cmo: revised syntax without objects and labels
           pr_ro.cmo: revised syntax for objects and labels
           pr_rp.cmo: try to rebuild streams and parsers syntax
           pr_o.cmo: normal syntax
           pr_op.cmo: try to rebuild streams and parsers syntax
           pr_scheme.cmo: Scheme syntax
           pr_schemep.cmo: try to rebuild streams and parsers syntax
           pr_extend.cmo: try to rebuild EXTEND statements
           pr_extfun.cmo: try to rebuild extfun statements
           pr_extprint.cmo: try to rebuild EXTEND_PRINTER statements
           pr_dump.cmo: dump syntax tree for ocaml compiler
           pr_depend.cmo: file dependencies
           pr_null.cmo: no output

       Quotation expanders:
           q_MLast.cmo: syntax tree nodes (in revised syntax)
           q_ast.cmo: syntax tree nodes in user full syntax
           q_phony.cmo: keeping quotations for pretty printing

       The command camlp5o is a shortcut for:
           camlp5 pa_o.cmo pa_op.cmo pr_dump.cmo

       The command camlp5r is a shortcut for:
           camlp5 pa_r.cmo pa_rp.cmo pr_dump.cmo

       The command camlp5sch is a shortcut for:
           camlp5 pa_scheme.cmo pr_dump.cmo

       The file camlp5o.cma can be loaded in the toplevel to start camlp5 with
       OCaml syntax.

       The file camlp5r.cma can be loaded in the toplevel to start camlp5 with
       revised syntax.

       The file camlp5sch.cma can be loaded in the toplevel  to  start  camlp5
       with Scheme syntax.


       mkcamlp5  and  mkcamlp5.opt  creates camlp5 executables with almost the
       same options than  ocamlmktop.  The  version  mkcamlp5.opt  can  create
       native code executables, faster but not extensible.

       For  mkcamlp5, the interfaces to be visible must be explicitly added in
       the command line as ".cmi" files. For example, how to add the the OCaml
       module "str":
           mkcamlp5 -custom str.cmi str.cma -cclib -lstr -o camlp5str


       The following environment variable is also consulted:

              Set  the  grammars  parsing algorithm parameters.  This variable
              must be a sequence of  parameter  specifications.   A  parameter
              specification  is  a  letter  optionally  followed by an = and a
              value. There are four possible parameters:

       b (backtrack)
              Set the backtrack algorithm as default.

       t (trace)
              Trace symbols (terminals and non-terminals) while  parsing  with

       y (trace-stalling)
              In  backtracking,  trace the advance in the input stream (number
              of unfrozen tokens) and the possible stalling (number of  tokens

       l (maximum-stalling)
              Set the maximum stalling value.


       Library directory of camlp5 in the present installation:


       Camlp5 - Reference Manual
       ocamlc(1), ocaml(1), ocamlmktop(1).


       Daniel de Rauglaudre, INRIA Rocquencourt.