package ppxlib

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Ppxlib.Ast_traverseSource

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
Sourceclass map : object ... end
Sourceclass iter : object ... end
Sourceclass 'acc fold : object ... end
Sourceclass 'acc fold_map : object ... end
Sourceclass 'ctx map_with_context : object ... end
Sourceclass virtual 'res lift : object ... end
Sourceclass sexp_of : object ... end
Sourceval sexp_of : sexp_of
OCaml

Innovation. Community. Security.