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

FreeBSD Manual Pages


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

       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  com-
       piled by	the native-code	compiler ocamlopt. They	are faster but not ex-
       tensible. 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  cur-
	      rent directory: add "-I ." for this.

       -where Print camlp5 library directory name and exit.

       -nolib No  automatic  search for	objects	files in camlp5	library	direc-

	      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	quota-
	      tion 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/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
       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 na-
       tive 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.

INRIA								     CAMLP5(1)


Want to link to this manual page? Use this URL:

home | help