Module Ppxlib.Ast_traverse

AST traversal classes

To use these classes, inherit from them and override the methods corresponding to the types from Parsetree you want to process. For instance to collect all the string constants in a structure:

      let string_constants_of = object
        inherit [string list] Ast_traverse.fold as super

        method! expression e acc =
          let acc = super#expression e acc in
          match e.pexp_desc with
          | Pexp_constant (Const_string (s, _)) -> s :: acc
          | _ -> acc

        method! pattern p acc =
          let acc = super#pattern p acc in
          match p.ppat_desc with
          | Ppat_constant (Const_string (s, _)) -> s :: acc
          | _ -> acc
      end

      let string_constants_of_structure = string_constants_of#structure
class map : object ... end
class iter : object ... end
class 'acc fold : object ... end
class 'acc fold_map : object ... end
class 'ctx map_with_context : object ... end
class map_with_path : Ppxlib__.Import.string map_with_context
class virtual 'res lift : object ... end
class sexp_of : object ... end
val sexp_of : sexp_of