module Pa_type_conv: sig
.. end
Pa_type_conv: Preprocessing Module for Registering Type Conversions
Generator registration
val set_conv_path_if_not_set : Camlp4.PreCast.Ast.Loc.t -> unit
set_conv_path_if_not_set loc
sets the path to the file/module being
converted for improved error messages.
val get_conv_path : unit -> string
get_conv_path ()
Returns the name to module containing a type
as required for error messages.
val add_generator : ?is_exn:bool ->
string ->
(bool -> Camlp4.PreCast.Ast.ctyp -> Camlp4.PreCast.Ast.str_item) -> unit
add_generator ?is_exn name gen
adds the code generator gen
,
which maps type or exception declarations to structure items, where
is_exn
specifies whether the declaration is an exception. Note that
the original type/exception declarations get added automatically in
any case.
is_exn
: = false
val add_generator_with_arg : ?is_exn:bool ->
string ->
'a Camlp4.PreCast.Gram.Entry.t ->
('a option -> bool -> Camlp4.PreCast.Ast.ctyp -> Camlp4.PreCast.Ast.str_item) ->
unit
add_generator_with_arg ?is_exn name entry generator
same as
add_generator
, but the generator may accept an argument, which is
parsed with entry
.
val rm_generator : ?is_exn:bool -> string -> unit
rm_generator ?is_exn name
removes the code generator named name
for types if is_exn
is false
, or exceptions otherwise.
is_exn
: = false
val add_sig_generator : ?delayed:bool ->
?is_exn:bool ->
string ->
(bool -> Camlp4.PreCast.Ast.ctyp -> Camlp4.PreCast.Ast.sig_item) -> unit
add_sig_generator ?delayed ?is_exn name gen
adds the code generator gen
,
which maps type or exception declarations to signature items, where
is_exn
specifies whether the declaration is an exception. Note that the
original type/exception declarations get added automatically in any case. If
delayed
is set to true, the output of this generator is appended to the
signature in which it's defined
delayed
: = false
is_exn
: = false
val add_sig_generator_with_arg : ?delayed:bool ->
?is_exn:bool ->
string ->
'a Camlp4.PreCast.Gram.Entry.t ->
('a option -> bool -> Camlp4.PreCast.Ast.ctyp -> Camlp4.PreCast.Ast.sig_item) ->
unit
add_sig_generator_with_arg ?delayed ?is_exn name entry generator
same as
add_sig_generator
, but the generator may accept an argument,
which is parsed with entry
.
val rm_sig_generator : ?is_exn:bool -> string -> unit
rm_sig_generator ?is_exn name
removes the signature code generator named
name
for types if is_exn
is false
, or exceptions otherwise.
is_exn
: = false
type
record_field_generator = Camlp4.PreCast.Ast.ctyp -> unit
Type of record field code generators
val add_record_field_generator : string -> record_field_generator -> unit
add_record_field_generator gen_name gen
adds the record field code
generator gen
with name gen_name
, which acts on the location
identifiying the record field.
val add_record_field_generator_with_arg : string ->
'a Camlp4.PreCast.Gram.Entry.t ->
('a option -> record_field_generator) -> unit
add_record_field_generator_with_arg name entry generator
same as
add_record_field_generator
, but the generator
takes an argument,
which is parsed with entry
. If None
is passed to the generator,
parsing of the argument failed, otherwise Some arg
will be passed,
where arg
is the successfully parsed argument.
val rm_record_field_generator : string -> unit
rm_record_field_generator name
removes the record field code generator
named name
.
Generator sets registration
val add_sig_set : ?is_exn:bool -> string -> set:string list -> unit
add_sig_set ?is_exn id ~set
adds the generator id
to the list
of generators for signatures.
This generator will behave as if is all the generators from set
had been given instead. Any duplicate arising from repeatedly
expanding such generators are removed.
If is_exn
, then it is a generator for exception declaration, or
else it is a generator for type declaration.
val add_str_set : ?is_exn:bool -> string -> set:string list -> unit
add_str_set ?is_exn id ~set
behaves exactly like
add_sig_set ?is_exn id ~set
but for structure items instead of
signatures items.
val add_set : kind:[ `Both | `Sig | `Str ] ->
is_exn:[ `Both | `No | `Yes ] -> string -> set:string list -> unit
add_set ~kind ~is_exn id ~set
is a shorthand for doing multiple
calls to add_str_set
and add_sig_set
Utility functions
val get_loc_err : Camlp4.PreCast.Ast.Loc.t -> string -> string
get_loc_err loc msg
generates a compile-time error message.
val hash_variant : string -> int
hash_variant str
Returns the integer encoding a variant tag with
name str
.
General purpose code generation module
module Gen: sig
.. end
Utility functions to rewrite type definitions
module Rewrite_tds: sig
.. end