Standard library for ppx rewriters
Library ppxlib
type t

Type of expansion contexts for extensions

val extension_point_loc : t -> Location.t

Return the location of the extension point being expanded

val code_path : t -> Code_path.t

Return the code path for the given context In Driver, Deriving and Extension, the context is initialized so that the file_path component of the code_path is determined from the first location found in the input AST. That means that:

  • It's the empty string in empty structures or signatures
  • It can be altered by line directives
val input_name : t -> string

Return the input name for the given context. In Driver, Deriving and Extension, the context argument is initialized so that the input_name matches the input filename passed to the driver on the command line. That means that:

  • It has a value even for empty files
  • It is not affected by line directives
  • It is "_none_" when using Driver.map_structure or Driver.map_signature
val tool_name : t -> string

Can be used within a ppx preprocessor to know which tool is calling it "ocamlc", "ocamlopt", "ocamldep", "ocaml", ... .

val with_loc_and_path : ( loc:Location.t -> path:string -> 'a ) -> ctxt:t -> 'a

Wrap a fun ~loc ~path into a fun ~ctxt