package reason

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Reason_migrate_parsetree.DriverSource

State a rewriter can access

Sourcetype extra = ..
Sourcetype config = {
  1. tool_name : string;
  2. include_dirs : string list;
  3. load_path : string list;
  4. debug : bool;
  5. for_package : string option;
    (*

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

    *)
  6. extras : extra list;
}
Sourceval make_config : tool_name:string -> ?include_dirs:string list -> ?load_path:string list -> ?debug:bool -> ?for_package:string -> ?extras:extra list -> unit -> config
Sourcetype cookies

Registering rewriters

Sourcetype 'types rewriter = config -> cookies -> 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_mapper
Sourceval register : name:string -> ?reset_args:(unit -> unit) -> ?args:(Arg.key * Arg.spec * Arg.doc) list -> ?position:int -> (module Reason_migrate_parsetree__.Migrate_parsetree_versions.OCaml_version with type Ast.Ast_mapper.mapper = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_mapper and type Ast.Outcometree.out_class_type = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_class_type and type Ast.Outcometree.out_module_type = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_module_type and type Ast.Outcometree.out_phrase = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_phrase and type Ast.Outcometree.out_sig_item = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_sig_item and type Ast.Outcometree.out_type = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_type and type Ast.Outcometree.out_type_extension = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_type_extension and type Ast.Outcometree.out_value = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_value and type Ast.Parsetree.case = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_case and type Ast.Parsetree.core_type = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_core_type and type Ast.Parsetree.expression = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_expression and type Ast.Parsetree.extension_constructor = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_extension_constructor and type Ast.Parsetree.pattern = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_pattern and type Ast.Parsetree.signature = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_signature and type Ast.Parsetree.structure = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_structure and type Ast.Parsetree.toplevel_phrase = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_toplevel_phrase and type Ast.Parsetree.type_declaration = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_type_declaration and type Ast.Parsetree.type_extension = 'types Reason_migrate_parsetree__.Migrate_parsetree_versions.get_type_extension) -> 'types 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.

Sourceval registered_args : unit -> (Arg.key * Arg.spec * Arg.doc) list

Return the list of command line arguments registered by rewriters

Sourceval reset_args : unit -> unit

Call all the registered reset_args callbacks

Running registered rewriters

Sourceval run_as_ast_mapper : ?exit_on_error:bool -> string list -> Ast_mapper.mapper
Sourceval run_as_ppx_rewriter : ?exit_on_error:bool -> ?argv:string array -> unit -> unit
Sourceval run_main : ?exit_on_error:bool -> ?argv:string array -> unit -> unit

Manual mapping

Sourcetype some_signature =
  1. | Sig : (module Reason_migrate_parsetree__.Migrate_parsetree_versions.OCaml_version with type Ast.Parsetree.signature = 'concrete) * 'concrete -> some_signature
Sourcetype some_structure =
  1. | Str : (module Reason_migrate_parsetree__.Migrate_parsetree_versions.OCaml_version with type Ast.Parsetree.structure = 'concrete) * 'concrete -> some_structure
Sourceval migrate_some_signature : (module Reason_migrate_parsetree__.Migrate_parsetree_versions.OCaml_version with type Ast.Ast_mapper.mapper = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_mapper and type Ast.Outcometree.out_class_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_class_type and type Ast.Outcometree.out_module_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_module_type and type Ast.Outcometree.out_phrase = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_phrase and type Ast.Outcometree.out_sig_item = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_sig_item and type Ast.Outcometree.out_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_type and type Ast.Outcometree.out_type_extension = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_type_extension and type Ast.Outcometree.out_value = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_value and type Ast.Parsetree.case = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_case and type Ast.Parsetree.core_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_core_type and type Ast.Parsetree.expression = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_expression and type Ast.Parsetree.extension_constructor = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_extension_constructor and type Ast.Parsetree.pattern = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_pattern and type Ast.Parsetree.signature = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_signature and type Ast.Parsetree.structure = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_structure and type Ast.Parsetree.toplevel_phrase = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_toplevel_phrase and type Ast.Parsetree.type_declaration = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_type_declaration and type Ast.Parsetree.type_extension = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_type_extension) -> some_signature -> 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_signature
Sourceval migrate_some_structure : (module Reason_migrate_parsetree__.Migrate_parsetree_versions.OCaml_version with type Ast.Ast_mapper.mapper = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_mapper and type Ast.Outcometree.out_class_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_class_type and type Ast.Outcometree.out_module_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_module_type and type Ast.Outcometree.out_phrase = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_phrase and type Ast.Outcometree.out_sig_item = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_sig_item and type Ast.Outcometree.out_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_type and type Ast.Outcometree.out_type_extension = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_type_extension and type Ast.Outcometree.out_value = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_value and type Ast.Parsetree.case = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_case and type Ast.Parsetree.core_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_core_type and type Ast.Parsetree.expression = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_expression and type Ast.Parsetree.extension_constructor = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_extension_constructor and type Ast.Parsetree.pattern = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_pattern and type Ast.Parsetree.signature = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_signature and type Ast.Parsetree.structure = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_structure and type Ast.Parsetree.toplevel_phrase = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_toplevel_phrase and type Ast.Parsetree.type_declaration = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_type_declaration and type Ast.Parsetree.type_extension = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_type_extension) -> some_structure -> 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_structure
Sourceval rewrite_signature : config -> (module Reason_migrate_parsetree__.Migrate_parsetree_versions.OCaml_version with type Ast.Ast_mapper.mapper = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_mapper and type Ast.Outcometree.out_class_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_class_type and type Ast.Outcometree.out_module_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_module_type and type Ast.Outcometree.out_phrase = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_phrase and type Ast.Outcometree.out_sig_item = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_sig_item and type Ast.Outcometree.out_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_type and type Ast.Outcometree.out_type_extension = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_type_extension and type Ast.Outcometree.out_value = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_value and type Ast.Parsetree.case = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_case and type Ast.Parsetree.core_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_core_type and type Ast.Parsetree.expression = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_expression and type Ast.Parsetree.extension_constructor = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_extension_constructor and type Ast.Parsetree.pattern = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_pattern and type Ast.Parsetree.signature = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_signature and type Ast.Parsetree.structure = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_structure and type Ast.Parsetree.toplevel_phrase = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_toplevel_phrase and type Ast.Parsetree.type_declaration = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_type_declaration and type Ast.Parsetree.type_extension = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_type_extension) -> 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_signature -> some_signature
Sourceval rewrite_structure : config -> (module Reason_migrate_parsetree__.Migrate_parsetree_versions.OCaml_version with type Ast.Ast_mapper.mapper = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_mapper and type Ast.Outcometree.out_class_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_class_type and type Ast.Outcometree.out_module_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_module_type and type Ast.Outcometree.out_phrase = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_phrase and type Ast.Outcometree.out_sig_item = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_sig_item and type Ast.Outcometree.out_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_type and type Ast.Outcometree.out_type_extension = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_type_extension and type Ast.Outcometree.out_value = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_out_value and type Ast.Parsetree.case = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_case and type Ast.Parsetree.core_type = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_core_type and type Ast.Parsetree.expression = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_expression and type Ast.Parsetree.extension_constructor = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_extension_constructor and type Ast.Parsetree.pattern = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_pattern and type Ast.Parsetree.signature = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_signature and type Ast.Parsetree.structure = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_structure and type Ast.Parsetree.toplevel_phrase = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_toplevel_phrase and type Ast.Parsetree.type_declaration = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_type_declaration and type Ast.Parsetree.type_extension = 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_type_extension) -> 'version Reason_migrate_parsetree__.Migrate_parsetree_versions.get_structure -> some_structure
OCaml

Innovation. Community. Security.