Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
CAMLP5(1)		     General Commands Manual		       CAMLP5(1)

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

SYNOPSIS
     camlp5 [ load-options ] [--] [ other-options ]
     camlp5o [ load-options ] [--] [ other-options ]
     camlp5r [ load-options ] [--] [ other-options ]
     camlp5sch [ load-options ] [--] [ other-options ]
     camlp5o.cma
     camlp5r.cma
     camlp5sch.cma
     mkcamlp5
     mkcamlp5.opt
     ocpp5 [ load-options ] file

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

DESCRIPTION
     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  al-
     ready 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, gen-
     erating 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.

LOAD OPTIONS
     The  load options select parsing and printing actions recorded in OCaml ob-
     ject 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  direc-
	    tory: add "-I ." for this.

     -where
	    Print camlp5 library directory name and exit.

     -nolib
	    No automatic search for objects files in camlp5 library directory.

     object-file
	    The file is loaded in camlp5 core.

OTHER OPTIONS
     The others options are:

     file   Treat  file  as an interface file if it ends with .mli and as an im-
	    plementation 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.

     -unsafe
	    Generate unsafe accesses to arrays and strings.

     -noassert
	    Do not compile assertion checks.

     -verbose
	    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  op-
	    tions 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 78).

     -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.

PROVIDED FILES
     These files are installed in the directory /usr/local/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 re-
     vised syntax.

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

MKCAMLP5
     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

ENVIRONMENT VARIABLE
     The following environment variable is also consulted:

     CAMLP5PARAM
	    Set  the  grammars parsing algorithm parameters.  This variable must
	    be a sequence of parameter specifications.	A  parameter  specifica-
	    tion  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 back-
	    tracking.

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

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

FILES
     Library directory of camlp5 in the present installation:
     /usr/local/lib/ocaml/camlp5

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

AUTHOR
     Daniel de Rauglaudre, INRIA Rocquencourt.

INRIA								       CAMLP5(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=camlp5&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help