NAME
Ast_mapper - The interface of a -ppx rewriterModule
Module Ast_mapperDocumentation
Module Ast_mapper: sig end
open Asttypesopen Parsetreeopen Ast_mapperlet test_mapper argv ={ default_mapper withexpr = fun mapper expr ->match expr with| { pexp_desc = Pexp_extension ({ txt = "test" }, PStr [])} ->Ast_helper.Exp.constant (Const_int 42)| other -> default_mapper.expr mapper other; }let () =register "ppx_test" test_mapper
A generic Parsetree mapper
type mapper = {attribute : mapper -> Parsetree.attribute -> Parsetree.attribute ;
attributes : mapper -> Parsetree.attribute list -> Parsetree.attribute list ;
binding_op : mapper -> Parsetree.binding_op -> Parsetree.binding_op ;
case : mapper -> Parsetree.case -> Parsetree.case ;
cases : mapper -> Parsetree.case list -> Parsetree.case list ;
class_declaration : mapper -> Parsetree.class_declaration -> Parsetree.class_declaration ;
class_description : mapper -> Parsetree.class_description -> Parsetree.class_description ;
class_expr : mapper -> Parsetree.class_expr -> Parsetree.class_expr ;
class_field : mapper -> Parsetree.class_field -> Parsetree.class_field ;
class_signature : mapper -> Parsetree.class_signature -> Parsetree.class_signature ;
class_structure : mapper -> Parsetree.class_structure -> Parsetree.class_structure ;
class_type : mapper -> Parsetree.class_type -> Parsetree.class_type ;
class_type_declaration : mapper -> Parsetree.class_type_declaration -> Parsetree.class_type_declaration ;
class_type_field : mapper -> Parsetree.class_type_field -> Parsetree.class_type_field ;
constant : mapper -> Parsetree.constant -> Parsetree.constant ;
constructor_declaration : mapper -> Parsetree.constructor_declaration -> Parsetree.constructor_declaration ;
expr : mapper -> Parsetree.expression -> Parsetree.expression ;
extension : mapper -> Parsetree.extension -> Parsetree.extension ;
extension_constructor : mapper -> Parsetree.extension_constructor -> Parsetree.extension_constructor ;
include_declaration : mapper -> Parsetree.include_declaration -> Parsetree.include_declaration ;
include_description : mapper -> Parsetree.include_description -> Parsetree.include_description ;
label_declaration : mapper -> Parsetree.label_declaration -> Parsetree.label_declaration ;
location : mapper -> Location.t -> Location.t ;
module_binding : mapper -> Parsetree.module_binding -> Parsetree.module_binding ;
module_declaration : mapper -> Parsetree.module_declaration -> Parsetree.module_declaration ;
module_substitution : mapper -> Parsetree.module_substitution -> Parsetree.module_substitution ;
module_expr : mapper -> Parsetree.module_expr -> Parsetree.module_expr ;
module_type : mapper -> Parsetree.module_type -> Parsetree.module_type ;
module_type_declaration : mapper -> Parsetree.module_type_declaration -> Parsetree.module_type_declaration ;
open_declaration : mapper -> Parsetree.open_declaration -> Parsetree.open_declaration ;
open_description : mapper -> Parsetree.open_description -> Parsetree.open_description ;
pat : mapper -> Parsetree.pattern -> Parsetree.pattern ;
payload : mapper -> Parsetree.payload -> Parsetree.payload ;
signature : mapper -> Parsetree.signature -> Parsetree.signature ;
signature_item : mapper -> Parsetree.signature_item -> Parsetree.signature_item ;
structure : mapper -> Parsetree.structure -> Parsetree.structure ;
structure_item : mapper -> Parsetree.structure_item -> Parsetree.structure_item ;
typ : mapper -> Parsetree.core_type -> Parsetree.core_type ;
type_declaration : mapper -> Parsetree.type_declaration -> Parsetree.type_declaration ;
type_extension : mapper -> Parsetree.type_extension -> Parsetree.type_extension ;
type_exception : mapper -> Parsetree.type_exception -> Parsetree.type_exception ;
type_kind : mapper -> Parsetree.type_kind -> Parsetree.type_kind ;
value_binding : mapper -> Parsetree.value_binding -> Parsetree.value_binding ;
value_description : mapper -> Parsetree.value_description -> Parsetree.value_description ;
with_constraint : mapper -> Parsetree.with_constraint -> Parsetree.with_constraint ;
}
Apply mappers to compilation units
val tool_name : unit -> stringRegistration API
val register_function : (string -> (string list -> mapper) -> unit) refConvenience functions to write mappers
val map_opt : ('a -> 'b) -> 'a option -> 'b optionHelper functions to call external mappers
val add_ppx_context_str : tool_name:string -> Parsetree.structure -> Parsetree.structureCookies
Cookies are used to pass information from a ppx processor to a further invocation of itself, when called from the OCaml toplevel (or other tools that support cookies). val set_cookie : string -> Parsetree.expression -> unit2023-02-12 | OCamldoc |