Ppxlib.Extensionmodule Context : sig ... endval declare :
Base.String.t ->
'context Context.t ->
(Migrate_parsetree.Ast_408.Parsetree.payload, 'a, 'context) Ast_pattern.t ->
(loc:Location.t -> path:Base.String.t -> 'a) ->
tdeclare name context pattern expander declares the extension names name for context.
expander is responsible for producing the code to replace the extension in the AST. It receives as argument:
loc: the location of the enclosing node. For instance for expression it is the pexp_loc fieldpath: the current module pathval declare_with_path_arg :
Base.String.t ->
'context Context.t ->
(Migrate_parsetree.Ast_408.Parsetree.payload, 'a, 'context) Ast_pattern.t ->
(loc:Location.t ->
path:Base.String.t ->
arg:Longident.t Ppxlib_ast.Asttypes.loc Base.Option.t ->
'a) ->
tSame as declare except that the extension name takes an additional path argument. The path is the part of the name that start with a capitalized component. For instance in the following, the extension "map" would receive the path argument Foo.Bar:
let%map.Foo.Bar x = 1 in
...val declare_inline :
Base.String.t ->
'context Context.t ->
(Migrate_parsetree.Ast_408.Parsetree.payload, 'a, 'context Base.List.t)
Ast_pattern.t ->
(loc:Location.t -> path:Base.String.t -> 'a) ->
tInline the result of the expansion into its parent. Only works for these contexts:
class_fieldclass_type_fieldsignature_itemstructure_itemval declare_inline_with_path_arg :
Base.String.t ->
'context Context.t ->
(Migrate_parsetree.Ast_408.Parsetree.payload, 'a, 'context Base.List.t)
Ast_pattern.t ->
(loc:Location.t ->
path:Base.String.t ->
arg:Longident.t Ppxlib_ast.Asttypes.loc Base.Option.t ->
'a) ->
tmodule For_context : sig ... endThis module is used to implement Context_free.V1.map_top_down
val filter_by_context :
'a Context.t ->
t Base.List.t ->
'a For_context.t Base.List.tGiven a context and a list of extension expander, returns all the ones that are for this context.
module Expert : sig ... endThis module allows to declare extensions that do not produce a value of the context type. This is typically useful for extensions point that depends on more things from the context than the path and location.
val check_unused : Ast_traverse.itermodule V2 : sig ... endmodule V3 : sig ... end