Driver.V2val register_transformation :
?extensions:Extension.t list ->
?rules:Context_free.Rule.t list ->
?enclose_impl:
( Expansion_context.Base.t ->
Location.t option ->
Astlib.Ast_412.Parsetree.structure_item list
* Astlib.Ast_412.Parsetree.structure_item list ) ->
?enclose_intf:
( Expansion_context.Base.t ->
Location.t option ->
Astlib.Ast_412.Parsetree.signature_item list
* Astlib.Ast_412.Parsetree.signature_item list ) ->
?impl:
( Expansion_context.Base.t ->
Astlib.Ast_412.Parsetree.structure_item list ->
Astlib.Ast_412.Parsetree.structure_item list ) ->
?intf:
( Expansion_context.Base.t ->
Astlib.Ast_412.Parsetree.signature_item list ->
Astlib.Ast_412.Parsetree.signature_item list ) ->
?lint_impl:
( Expansion_context.Base.t ->
Astlib.Ast_412.Parsetree.structure_item list ->
Lint_error.t list ) ->
?lint_intf:
( Expansion_context.Base.t ->
Astlib.Ast_412.Parsetree.signature_item list ->
Lint_error.t list ) ->
?preprocess_impl:
( Expansion_context.Base.t ->
Astlib.Ast_412.Parsetree.structure_item list ->
Astlib.Ast_412.Parsetree.structure_item list ) ->
?preprocess_intf:
( Expansion_context.Base.t ->
Astlib.Ast_412.Parsetree.signature_item list ->
Astlib.Ast_412.Parsetree.signature_item list ) ->
?instrument:Instrument.t ->
?aliases:string list ->
string ->
unitSame as Driver.register_transformation, but the callbacks have access to an expansion context. Their signatures coincide with the signatures of the respective methods in Ast_traverse.map_with_expansion_context.
val register_transformation_using_ocaml_current_ast :
?impl:
( Expansion_context.Base.t ->
Ppxlib_ast.Compiler_version.Ast.Parsetree.structure ->
Ppxlib_ast.Compiler_version.Ast.Parsetree.structure ) ->
?intf:
( Expansion_context.Base.t ->
Ppxlib_ast.Compiler_version.Ast.Parsetree.signature ->
Ppxlib_ast.Compiler_version.Ast.Parsetree.signature ) ->
?aliases:string list ->
string ->
unitSame as Driver.register_transformation_using_ocaml_current_ast, but the callbacks ?impl and ?intf have access to an expansion context.