Module Migrate_parsetree_driver

State a rewriter can access

type extra = ..
type config = {
tool_name : string;
include_dirs : string list;
load_path : string list;
debug : bool;
for_package : string option;

(** Additional parameters that can be passed by a caller of rewrite_{signature,structure} to a specific register rewriter. *)

extras : 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

Registering rewriters

type 'types rewriter = config ‑> cookies ‑> 'types Migrate_parsetree_versions.get_mapper
val register : name:string ‑> ?⁠reset_args:(unit ‑> unit) ‑> ?⁠args:(Arg.key * Arg.spec * Arg.doc) list ‑> 'types Migrate_parsetree_versions.ocaml_version ‑> 'types rewriter ‑> unit

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 : 'version Migrate_parsetree_versions.ocaml_version ‑> some_signature ‑> 'version Migrate_parsetree_versions.get_signature
val migrate_some_structure : 'version Migrate_parsetree_versions.ocaml_version ‑> some_structure ‑> 'version Migrate_parsetree_versions.get_structure
val rewrite_signature : config ‑> 'version Migrate_parsetree_versions.ocaml_version ‑> 'version Migrate_parsetree_versions.get_signature ‑> some_signature
val rewrite_structure : config ‑> 'version Migrate_parsetree_versions.ocaml_version ‑> 'version Migrate_parsetree_versions.get_structure ‑> some_structure