Module OCAML_TAST.OCAML_TRAVERSE

type 'a ast_lint_list = ('a, unit) Yalo.V1.YALO_TYPES.active_linters
type 'a ast_lint_list_with_loc = (Yalo.V1.YALO_TYPES.location * 'a, unit) Yalo.V1.YALO_TYPES.active_linters
type case_by_version = {
  1. version_case : 'k. file:Yalo.V1.YALO_TYPES.file -> linter:Yalo.V1.YALO_TYPES.linter -> 'k Tast_types.OCAML_TAST.case -> unit;
}
type case_checker = {
  1. f : 'k. 'k Tast_types.OCAML_TAST.case -> unit;
}
type pat_by_version = {
  1. version_pat : 'k. file:Yalo.V1.YALO_TYPES.file -> linter:Yalo.V1.YALO_TYPES.linter -> 'k Tast_types.OCAML_TAST.general_pattern -> unit;
}
type pat_checker = {
  1. f : 'k. 'k Tast_types.OCAML_TAST.general_pattern -> unit;
}
type t = {
  1. file : Yalo.V1.YALO_TYPES.file;
  2. mutable binding_op : Tast_types.OCAML_TAST.binding_op ast_lint_list;
  3. mutable case : (Yalo.V1.YALO_TYPES.linter * case_by_version) list;
  4. mutable class_declaration : Tast_types.OCAML_TAST.class_declaration ast_lint_list;
  5. mutable class_description : Tast_types.OCAML_TAST.class_description ast_lint_list;
  6. mutable class_expr : Tast_types.OCAML_TAST.class_expr ast_lint_list;
  7. mutable class_field : Tast_types.OCAML_TAST.class_field ast_lint_list;
  8. mutable class_signature : Tast_types.OCAML_TAST.class_signature ast_lint_list;
  9. mutable class_structure : Tast_types.OCAML_TAST.class_structure ast_lint_list;
  10. mutable class_type : Tast_types.OCAML_TAST.class_type ast_lint_list;
  11. mutable class_type_declaration : Tast_types.OCAML_TAST.class_type_declaration ast_lint_list;
  12. mutable class_type_field : Tast_types.OCAML_TAST.class_type_field ast_lint_list;
  13. mutable expression : Tast_types.OCAML_TAST.expression ast_lint_list;
  14. mutable extension_constructor : Tast_types.OCAML_TAST.extension_constructor ast_lint_list;
  15. mutable module_binding : Tast_types.OCAML_TAST.module_binding ast_lint_list;
  16. mutable module_coercion : Tast_types.OCAML_TAST.module_coercion ast_lint_list;
  17. mutable module_declaration : Tast_types.OCAML_TAST.module_declaration ast_lint_list;
  18. mutable module_substitution : Tast_types.OCAML_TAST.module_substitution ast_lint_list;
  19. mutable module_expr : Tast_types.OCAML_TAST.module_expr ast_lint_list;
  20. mutable module_type : Tast_types.OCAML_TAST.module_type ast_lint_list;
  21. mutable module_type_declaration : Tast_types.OCAML_TAST.module_type_declaration ast_lint_list;
  22. mutable package_type : Tast_types.OCAML_TAST.package_type ast_lint_list;
  23. mutable pat : (Yalo.V1.YALO_TYPES.linter * pat_by_version) list;
  24. mutable row_field : Tast_types.OCAML_TAST.row_field ast_lint_list;
  25. mutable object_field : Tast_types.OCAML_TAST.object_field ast_lint_list;
  26. mutable open_declaration : Tast_types.OCAML_TAST.open_declaration ast_lint_list;
  27. mutable open_description : Tast_types.OCAML_TAST.open_description ast_lint_list;
  28. mutable signature : Tast_types.OCAML_TAST.signature ast_lint_list;
  29. mutable signature_item : Tast_types.OCAML_TAST.signature_item ast_lint_list;
  30. mutable structure : Tast_types.OCAML_TAST.structure ast_lint_list;
  31. mutable structure_item : Tast_types.OCAML_TAST.structure_item ast_lint_list;
  32. mutable typ : Tast_types.OCAML_TAST.core_type ast_lint_list;
  33. mutable type_declaration : Tast_types.OCAML_TAST.type_declaration ast_lint_list;
  34. mutable type_declarations : (Tast_types.OCAML_TAST.rec_flag * Tast_types.OCAML_TAST.type_declaration list) ast_lint_list;
  35. mutable type_extension : Tast_types.OCAML_TAST.type_extension ast_lint_list;
  36. mutable type_exception : Tast_types.OCAML_TAST.type_exception ast_lint_list;
  37. mutable type_kind : Tast_types.OCAML_TAST.type_kind ast_lint_list;
  38. mutable value_binding : Tast_types.OCAML_TAST.value_binding ast_lint_list;
  39. mutable value_bindings : (Tast_types.OCAML_TAST.rec_flag * Tast_types.OCAML_TAST.value_binding list) ast_lint_list;
  40. mutable value_description : Tast_types.OCAML_TAST.value_description ast_lint_list;
  41. mutable with_constraint : Tast_types.OCAML_TAST.with_constraint ast_lint_list;
}
type node =
  1. | Node_binding_op of Tast_types.OCAML_TAST.binding_op
  2. | Node_case of case_checker -> unit
  3. | Node_class_declaration of Tast_types.OCAML_TAST.class_declaration
  4. | Node_class_description of Tast_types.OCAML_TAST.class_description
  5. | Node_class_expr of Tast_types.OCAML_TAST.class_expr
  6. | Node_class_field of Tast_types.OCAML_TAST.class_field
  7. | Node_class_signature of Tast_types.OCAML_TAST.class_signature
  8. | Node_class_structure of Tast_types.OCAML_TAST.class_structure
  9. | Node_class_type of Tast_types.OCAML_TAST.class_type
  10. | Node_class_type_declaration of Tast_types.OCAML_TAST.class_type_declaration
  11. | Node_class_type_field of Tast_types.OCAML_TAST.class_type_field
  12. | Node_expression of Tast_types.OCAML_TAST.expression
  13. | Node_extension_constructor of Tast_types.OCAML_TAST.extension_constructor
  14. | Node_module_binding of Tast_types.OCAML_TAST.module_binding
  15. | Node_module_coercion of Tast_types.OCAML_TAST.module_coercion
  16. | Node_module_declaration of Tast_types.OCAML_TAST.module_declaration
  17. | Node_module_substitution of Tast_types.OCAML_TAST.module_substitution
  18. | Node_module_expr of Tast_types.OCAML_TAST.module_expr
  19. | Node_module_type of Tast_types.OCAML_TAST.module_type
  20. | Node_module_type_declaration of Tast_types.OCAML_TAST.module_type_declaration
  21. | Node_package_type of Tast_types.OCAML_TAST.package_type
  22. | Node_pat of pat_checker -> unit
  23. | Node_row_field of Tast_types.OCAML_TAST.row_field
  24. | Node_object_field of Tast_types.OCAML_TAST.object_field
  25. | Node_open_declaration of Tast_types.OCAML_TAST.open_declaration
  26. | Node_open_description of Tast_types.OCAML_TAST.open_description
  27. | Node_signature of Tast_types.OCAML_TAST.signature
  28. | Node_signature_item of Tast_types.OCAML_TAST.signature_item
  29. | Node_structure of Tast_types.OCAML_TAST.structure
  30. | Node_structure_item of Tast_types.OCAML_TAST.structure_item
  31. | Node_core_type of Tast_types.OCAML_TAST.core_type
  32. | Node_type_declaration of Tast_types.OCAML_TAST.type_declaration
  33. | Node_type_declarations of Tast_types.OCAML_TAST.rec_flag * Tast_types.OCAML_TAST.type_declaration list
  34. | Node_type_extension of Tast_types.OCAML_TAST.type_extension
  35. | Node_type_exception of Tast_types.OCAML_TAST.type_exception
  36. | Node_type_kind of Tast_types.OCAML_TAST.type_kind
  37. | Node_value_binding of Tast_types.OCAML_TAST.value_binding
  38. | Node_value_bindings of Tast_types.OCAML_TAST.rec_flag * Tast_types.OCAML_TAST.value_binding list
  39. | Node_value_description of Tast_types.OCAML_TAST.value_description
  40. | Node_with_constraint of Tast_types.OCAML_TAST.with_constraint
val string_of_node : node -> string
val node_stack_ref : node list Stdlib.ref
val node_stack : unit -> node list
val print_node_stack : unit -> unit