module Migrate_parsetree_driver: sig
.. end
State a rewriter can access
State a rewriter can access
= ..
type
config = {
|
tool_name : string ; |
|
include_dirs : string list ; |
|
load_path : string list ; |
|
debug : bool ; |
|
for_package : string option ; |
|
: extra list ; |
}
val make_config : tool_name:string ->
?include_dirs:string list ->
?load_path:string list ->
?debug:bool ->
?for_package:string ->
?extras:extra list ->
unit -> config
type
cookies
val get_cookie : cookies ->
string ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.ocaml_version ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.get_expression option
val set_cookie : cookies ->
string ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.ocaml_version ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.get_expression -> unit
val set_global_cookie : string ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.ocaml_version ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.get_expression -> unit
Registering rewriters
type < case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
rewriter = config ->
cookies ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.get_mapper
val register : name:string ->
?reset_args:(unit -> unit) ->
?args:(Arg.key * Arg.spec * Arg.doc) list ->
?position:int ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.ocaml_version ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
rewriter -> unit
Register a ppx rewriter.
position
is a integer that indicates
when the ppx rewriter should be applied. It is guaranteed that if
two ppx rewriters
a
and
b
have different position numbers, then
the one with the lowest number will be applied first. The rewriting
order of ppx rewriters with the same position number is not
specified. The default position is
0
.
Note that more different position numbers means more AST
conversions and slower rewriting, so think twice before setting
position
to a non-zero number.
val registered_args : unit -> (Arg.key * Arg.spec * Arg.doc) list
Return the list of command line arguments registered by rewriters
val reset_args : unit -> unit
Call all the registered reset_args
callbacks
Running registered rewriters
val run_as_ast_mapper : string list -> Ast_mapper.mapper
val run_as_ppx_rewriter : unit -> 'a
val run_main : unit -> 'a
Manual mapping
type
some_signature =
| |
Sig : (module Migrate_parsetree_versions.OCaml_version with type Ast.Parsetree.signature = 'concrete) * 'concrete -> some_signature |
type
some_structure =
| |
Str : (module Migrate_parsetree_versions.OCaml_version with type Ast.Parsetree.structure = 'concrete) * 'concrete -> some_structure |
val migrate_some_signature : < case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.ocaml_version ->
some_signature ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.get_signature
val migrate_some_structure : < case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.ocaml_version ->
some_structure ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.get_structure
val rewrite_signature : config ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.ocaml_version ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.get_signature ->
some_signature
val rewrite_structure : config ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.ocaml_version ->
< case : 'a; core_type : 'b; expression : 'c; extension_constructor : 'd;
mapper : 'e; out_class_type : 'f; out_module_type : 'g; out_phrase : 'h;
out_sig_item : 'i; out_type : 'j; out_type_extension : 'k; out_value : 'l;
pattern : 'm; signature : 'n; structure : 'o; toplevel_phrase : 'p;
type_declaration : 'q; type_extension : 'r >
Migrate_parsetree_versions.get_structure ->
some_structure