camlp5o.opt [--] [ other-options ]
camlp5r.opt [--] [ other-options ]
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.
The others options are:
The others options can be extended by loaded object files. The provided files add the following options:
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
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
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: