logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Ast_iterator - Ast_iterator.iterator enables AST inspection using open recursion.

Documentation

       Module Ast_iterator
        : sigendAst_iterator.iterator  enables  AST  inspection using open recursion.  A typical mapper would be based on
       Ast_iterator.default_iterator , a trivial iterator, and will fall back on it for handling the  syntax  it
       does not modify.

       Warning: this module is unstable and part of Compiler_libs .

   AgenericParsetreeiteratortypeiterator = {
        attribute : iterator->Parsetree.attribute->unit ;
        attributes : iterator->Parsetree.attributelist->unit ;
        binding_op : iterator->Parsetree.binding_op->unit ;
        case : iterator->Parsetree.case->unit ;
        cases : iterator->Parsetree.caselist->unit ;
        class_declaration : iterator->Parsetree.class_declaration->unit ;
        class_description : iterator->Parsetree.class_description->unit ;
        class_expr : iterator->Parsetree.class_expr->unit ;
        class_field : iterator->Parsetree.class_field->unit ;
        class_signature : iterator->Parsetree.class_signature->unit ;
        class_structure : iterator->Parsetree.class_structure->unit ;
        class_type : iterator->Parsetree.class_type->unit ;
        class_type_declaration : iterator->Parsetree.class_type_declaration->unit ;
        class_type_field : iterator->Parsetree.class_type_field->unit ;
        constructor_declaration : iterator->Parsetree.constructor_declaration->unit ;
        directive_argument : iterator->Parsetree.directive_argument->unit ;
        expr : iterator->Parsetree.expression->unit ;
        extension : iterator->Parsetree.extension->unit ;
        extension_constructor : iterator->Parsetree.extension_constructor->unit ;
        include_declaration : iterator->Parsetree.include_declaration->unit ;
        include_description : iterator->Parsetree.include_description->unit ;
        label_declaration : iterator->Parsetree.label_declaration->unit ;
        location : iterator->Location.t->unit ;
        module_binding : iterator->Parsetree.module_binding->unit ;
        module_declaration : iterator->Parsetree.module_declaration->unit ;
        module_substitution : iterator->Parsetree.module_substitution->unit ;
        module_expr : iterator->Parsetree.module_expr->unit ;
        module_type : iterator->Parsetree.module_type->unit ;
        module_type_declaration : iterator->Parsetree.module_type_declaration->unit ;
        open_declaration : iterator->Parsetree.open_declaration->unit ;
        open_description : iterator->Parsetree.open_description->unit ;
        pat : iterator->Parsetree.pattern->unit ;
        payload : iterator->Parsetree.payload->unit ;
        signature : iterator->Parsetree.signature->unit ;
        signature_item : iterator->Parsetree.signature_item->unit ;
        structure : iterator->Parsetree.structure->unit ;
        structure_item : iterator->Parsetree.structure_item->unit ;
        toplevel_directive : iterator->Parsetree.toplevel_directive->unit ;
        toplevel_phrase : iterator->Parsetree.toplevel_phrase->unit ;
        typ : iterator->Parsetree.core_type->unit ;
        row_field : iterator->Parsetree.row_field->unit ;
        object_field : iterator->Parsetree.object_field->unit ;
        type_declaration : iterator->Parsetree.type_declaration->unit ;
        type_extension : iterator->Parsetree.type_extension->unit ;
        type_exception : iterator->Parsetree.type_exception->unit ;
        type_kind : iterator->Parsetree.type_kind->unit ;
        value_binding : iterator->Parsetree.value_binding->unit ;
        value_description : iterator->Parsetree.value_description->unit ;
        with_constraint : iterator->Parsetree.with_constraint->unit ;
        }

       A  iterator  record  implements  one "method" per syntactic category, using an open recursion style: each
       method takes as its first argument the iterator to be applied to children in the syntax tree.

       valdefault_iterator : iterator

       A default iterator, which implements a "do not do anything" mapping.

OCamldoc                                           2025-06-12                                   Ast_iterator(3o)

Module

       Module   Ast_iterator

Name

       Ast_iterator - Ast_iterator.iterator enables AST inspection using open recursion.

See Also