[][src]Module lang_c::visit

Recursive abstract syntax tree traversal

struct ExprCount(usize);

impl<'ast> visit::Visit<'ast> for ExprCount {
    fn visit_expression(&mut self, expr: &'ast ast::Expression, span: &'ast span::Span) {
        self.0 += 1;
        visit::visit_expression(self, expr, span);
    }
}

The Visit trait is a collection of hooks, one for each type of node in the AST (for each type in the ast module). Default implementations will recursively visit the sub-nodes (by calling a corresponding free function in this module).

Free functions apply the visitor to sub-nodes of any given AST node.

Traits

Visit

Functions

visit_alignment_specifier
visit_array_declarator
visit_array_size
visit_asm_statement
visit_attribute
visit_availability_attribute
visit_binary_operator
visit_binary_operator_expression
visit_block_item
visit_call_expression
visit_cast_expression
visit_compound_literal
visit_conditional_expression
visit_constant
visit_declaration
visit_declaration_specifier
visit_declarator
visit_declarator_kind
visit_derived_declarator
visit_designator
visit_do_while_statement
visit_ellipsis
visit_enum_type
visit_enumerator
visit_expression
visit_extension
visit_external_declaration
visit_float
visit_float_base
visit_float_format
visit_float_suffix
visit_for_initializer
visit_for_statement
visit_function_declarator
visit_function_definition
visit_function_specifier
visit_generic_association
visit_generic_association_type
visit_generic_selection
visit_gnu_asm_operand
visit_gnu_extended_asm_statement
visit_identifier
visit_if_statement
visit_init_declarator
visit_initializer
visit_initializer_list_item
visit_integer
visit_integer_base
visit_integer_size
visit_integer_suffix
visit_label
visit_labeled_statement
visit_member_expression
visit_member_operator
visit_offset_designator
visit_offset_member
visit_offset_of_expression
visit_parameter_declaration
visit_pointer_qualifier
visit_range_designator
visit_specifier_qualifier
visit_statement
visit_static_assert
visit_storage_class_specifier
visit_string_literal
visit_struct_declaration
visit_struct_declarator
visit_struct_field
visit_struct_kind
visit_struct_type
visit_switch_statement
visit_translation_unit
visit_ts18661_float_type
visit_ts18661_float_format
visit_type_name
visit_type_of
visit_type_qualifier
visit_type_specifier
visit_unary_operator
visit_unary_operator_expression
visit_va_arg_expression
visit_while_statement