pub trait Visitor {
Show 102 methods
// Provided methods
fn visit_source_unit(
&mut self,
_source_unit: &SourceUnit,
) -> Result<VisitorAction> { ... }
fn visit_import_directive(
&mut self,
_directive: &ImportDirective,
) -> Result<VisitorAction> { ... }
fn visit_pragma_directive(
&mut self,
_directive: &PragmaDirective,
) -> Result<VisitorAction> { ... }
fn visit_block(&mut self, _block: &Block) -> Result<VisitorAction> { ... }
fn visit_statement(
&mut self,
_statement: &Statement,
) -> Result<VisitorAction> { ... }
fn visit_expression(
&mut self,
_expression: &Expression,
) -> Result<VisitorAction> { ... }
fn visit_function_call(
&mut self,
_function_call: &FunctionCall,
) -> Result<VisitorAction> { ... }
fn visit_user_defined_type_name(
&mut self,
_type_name: &UserDefinedTypeName,
) -> Result<VisitorAction> { ... }
fn visit_identifier_path(
&mut self,
_identifier_path: &IdentifierPath,
) -> Result<VisitorAction> { ... }
fn visit_type_name(
&mut self,
_type_name: &TypeName,
) -> Result<VisitorAction> { ... }
fn visit_parameter_list(
&mut self,
_parameter_list: &ParameterList,
) -> Result<VisitorAction> { ... }
fn visit_function_definition(
&mut self,
_definition: &FunctionDefinition,
) -> Result<VisitorAction> { ... }
fn visit_enum_definition(
&mut self,
_definition: &EnumDefinition,
) -> Result<VisitorAction> { ... }
fn visit_error_definition(
&mut self,
_definition: &ErrorDefinition,
) -> Result<VisitorAction> { ... }
fn visit_event_definition(
&mut self,
_definition: &EventDefinition,
) -> Result<VisitorAction> { ... }
fn visit_struct_definition(
&mut self,
_definition: &StructDefinition,
) -> Result<VisitorAction> { ... }
fn visit_modifier_definition(
&mut self,
_definition: &ModifierDefinition,
) -> Result<VisitorAction> { ... }
fn visit_variable_declaration(
&mut self,
_declaration: &VariableDeclaration,
) -> Result<VisitorAction> { ... }
fn visit_overrides(
&mut self,
_specifier: &OverrideSpecifier,
) -> Result<VisitorAction> { ... }
fn visit_user_defined_value_type(
&mut self,
_value_type: &UserDefinedValueTypeDefinition,
) -> Result<VisitorAction> { ... }
fn visit_contract_definition(
&mut self,
_definition: &ContractDefinition,
) -> Result<VisitorAction> { ... }
fn visit_using_for(
&mut self,
_directive: &UsingForDirective,
) -> Result<VisitorAction> { ... }
fn visit_unary_operation(
&mut self,
_unary_op: &UnaryOperation,
) -> Result<VisitorAction> { ... }
fn visit_binary_operation(
&mut self,
_binary_op: &BinaryOperation,
) -> Result<VisitorAction> { ... }
fn visit_conditional(
&mut self,
_conditional: &Conditional,
) -> Result<VisitorAction> { ... }
fn visit_tuple_expression(
&mut self,
_tuple_expression: &TupleExpression,
) -> Result<VisitorAction> { ... }
fn visit_new_expression(
&mut self,
_new_expression: &NewExpression,
) -> Result<VisitorAction> { ... }
fn visit_assignment(
&mut self,
_assignment: &Assignment,
) -> Result<VisitorAction> { ... }
fn visit_identifier(
&mut self,
_identifier: &Identifier,
) -> Result<VisitorAction> { ... }
fn visit_index_access(
&mut self,
_index_access: &IndexAccess,
) -> Result<VisitorAction> { ... }
fn visit_index_range_access(
&mut self,
_index_range_access: &IndexRangeAccess,
) -> Result<VisitorAction> { ... }
fn visit_while_statement(
&mut self,
_while_statement: &WhileStatement,
) -> Result<VisitorAction> { ... }
fn visit_for_statement(
&mut self,
_for_statement: &ForStatement,
) -> Result<VisitorAction> { ... }
fn visit_if_statement(
&mut self,
_if_statement: &IfStatement,
) -> Result<VisitorAction> { ... }
fn visit_do_while_statement(
&mut self,
_do_while_statement: &DoWhileStatement,
) -> Result<VisitorAction> { ... }
fn visit_emit_statement(
&mut self,
_emit_statement: &EmitStatement,
) -> Result<VisitorAction> { ... }
fn visit_unchecked_block(
&mut self,
_unchecked_block: &UncheckedBlock,
) -> Result<VisitorAction> { ... }
fn visit_try_statement(
&mut self,
_try_statement: &TryStatement,
) -> Result<VisitorAction> { ... }
fn visit_revert_statement(
&mut self,
_revert_statement: &RevertStatement,
) -> Result<VisitorAction> { ... }
fn visit_member_access(
&mut self,
_member_access: &MemberAccess,
) -> Result<VisitorAction> { ... }
fn visit_mapping(&mut self, _mapping: &Mapping) -> Result<VisitorAction> { ... }
fn visit_elementary_type_name(
&mut self,
_elementary_type_name: &ElementaryTypeName,
) -> Result<VisitorAction> { ... }
fn visit_literal(&mut self, _literal: &Literal) -> Result<VisitorAction> { ... }
fn visit_function_type_name(
&mut self,
_function_type_name: &FunctionTypeName,
) -> Result<VisitorAction> { ... }
fn visit_array_type_name(
&mut self,
_array_type_name: &ArrayTypeName,
) -> Result<VisitorAction> { ... }
fn visit_function_call_options(
&mut self,
_function_call: &FunctionCallOptions,
) -> Result<VisitorAction> { ... }
fn visit_return(&mut self, _return: &Return) -> Result<VisitorAction> { ... }
fn visit_inheritance_specifier(
&mut self,
_specifier: &InheritanceSpecifier,
) -> Result<VisitorAction> { ... }
fn visit_modifier_invocation(
&mut self,
_invocation: &ModifierInvocation,
) -> Result<VisitorAction> { ... }
fn visit_inline_assembly(
&mut self,
_assembly: &InlineAssembly,
) -> Result<VisitorAction> { ... }
fn visit_external_assembly_reference(
&mut self,
_ref: &ExternalInlineAssemblyReference,
) -> Result<VisitorAction> { ... }
fn post_visit_source_unit(
&mut self,
_source_unit: &SourceUnit,
) -> Result<()> { ... }
fn post_visit_import_directive(
&mut self,
_directive: &ImportDirective,
) -> Result<()> { ... }
fn post_visit_pragma_directive(
&mut self,
_directive: &PragmaDirective,
) -> Result<()> { ... }
fn post_visit_block(&mut self, _block: &Block) -> Result<()> { ... }
fn post_visit_statement(&mut self, _statement: &Statement) -> Result<()> { ... }
fn post_visit_expression(&mut self, _expression: &Expression) -> Result<()> { ... }
fn post_visit_function_call(
&mut self,
_function_call: &FunctionCall,
) -> Result<()> { ... }
fn post_visit_user_defined_type_name(
&mut self,
_type_name: &UserDefinedTypeName,
) -> Result<()> { ... }
fn post_visit_identifier_path(
&mut self,
_identifier_path: &IdentifierPath,
) -> Result<()> { ... }
fn post_visit_type_name(&mut self, _type_name: &TypeName) -> Result<()> { ... }
fn post_visit_parameter_list(
&mut self,
_parameter_list: &ParameterList,
) -> Result<()> { ... }
fn post_visit_function_definition(
&mut self,
_definition: &FunctionDefinition,
) -> Result<()> { ... }
fn post_visit_enum_definition(
&mut self,
_definition: &EnumDefinition,
) -> Result<()> { ... }
fn post_visit_error_definition(
&mut self,
_definition: &ErrorDefinition,
) -> Result<()> { ... }
fn post_visit_event_definition(
&mut self,
_definition: &EventDefinition,
) -> Result<()> { ... }
fn post_visit_struct_definition(
&mut self,
_definition: &StructDefinition,
) -> Result<()> { ... }
fn post_visit_modifier_definition(
&mut self,
_definition: &ModifierDefinition,
) -> Result<()> { ... }
fn post_visit_variable_declaration(
&mut self,
_declaration: &VariableDeclaration,
) -> Result<()> { ... }
fn post_visit_overrides(
&mut self,
_specifier: &OverrideSpecifier,
) -> Result<()> { ... }
fn post_visit_user_defined_value_type(
&mut self,
_value_type: &UserDefinedValueTypeDefinition,
) -> Result<()> { ... }
fn post_visit_contract_definition(
&mut self,
_definition: &ContractDefinition,
) -> Result<()> { ... }
fn post_visit_using_for(
&mut self,
_directive: &UsingForDirective,
) -> Result<()> { ... }
fn post_visit_unary_operation(
&mut self,
_unary_op: &UnaryOperation,
) -> Result<()> { ... }
fn post_visit_binary_operation(
&mut self,
_binary_op: &BinaryOperation,
) -> Result<()> { ... }
fn post_visit_conditional(
&mut self,
_conditional: &Conditional,
) -> Result<()> { ... }
fn post_visit_tuple_expression(
&mut self,
_tuple_expression: &TupleExpression,
) -> Result<()> { ... }
fn post_visit_new_expression(
&mut self,
_new_expression: &NewExpression,
) -> Result<()> { ... }
fn post_visit_assignment(&mut self, _assignment: &Assignment) -> Result<()> { ... }
fn post_visit_identifier(&mut self, _identifier: &Identifier) -> Result<()> { ... }
fn post_visit_index_access(
&mut self,
_index_access: &IndexAccess,
) -> Result<()> { ... }
fn post_visit_index_range_access(
&mut self,
_index_range_access: &IndexRangeAccess,
) -> Result<()> { ... }
fn post_visit_while_statement(
&mut self,
_while_statement: &WhileStatement,
) -> Result<()> { ... }
fn post_visit_for_statement(
&mut self,
_for_statement: &ForStatement,
) -> Result<()> { ... }
fn post_visit_if_statement(
&mut self,
_if_statement: &IfStatement,
) -> Result<()> { ... }
fn post_visit_do_while_statement(
&mut self,
_do_while_statement: &DoWhileStatement,
) -> Result<()> { ... }
fn post_visit_emit_statement(
&mut self,
_emit_statement: &EmitStatement,
) -> Result<()> { ... }
fn post_visit_unchecked_block(
&mut self,
_unchecked_block: &UncheckedBlock,
) -> Result<()> { ... }
fn post_visit_try_statement(
&mut self,
_try_statement: &TryStatement,
) -> Result<()> { ... }
fn post_visit_revert_statement(
&mut self,
_revert_statement: &RevertStatement,
) -> Result<()> { ... }
fn post_visit_member_access(
&mut self,
_member_access: &MemberAccess,
) -> Result<()> { ... }
fn post_visit_mapping(&mut self, _mapping: &Mapping) -> Result<()> { ... }
fn post_visit_elementary_type_name(
&mut self,
_elementary_type_name: &ElementaryTypeName,
) -> Result<()> { ... }
fn post_visit_literal(&mut self, _literal: &Literal) -> Result<()> { ... }
fn post_visit_function_type_name(
&mut self,
_function_type_name: &FunctionTypeName,
) -> Result<()> { ... }
fn post_visit_array_type_name(
&mut self,
_array_type_name: &ArrayTypeName,
) -> Result<()> { ... }
fn post_visit_function_call_options(
&mut self,
_function_call: &FunctionCallOptions,
) -> Result<()> { ... }
fn post_visit_return(&mut self, _return: &Return) -> Result<()> { ... }
fn post_visit_inheritance_specifier(
&mut self,
_specifier: &InheritanceSpecifier,
) -> Result<()> { ... }
fn post_visit_modifier_invocation(
&mut self,
_invocation: &ModifierInvocation,
) -> Result<()> { ... }
fn post_visit_inline_assembly(
&mut self,
_assembly: &InlineAssembly,
) -> Result<()> { ... }
fn post_visit_external_assembly_reference(
&mut self,
_ref: &ExternalInlineAssemblyReference,
) -> Result<()> { ... }
}Expand description
Trait for implementing AST visitors that can traverse Solidity source code.
This trait provides methods for visiting each type of AST node in a Solidity source unit. Implementors can override specific methods to perform custom analysis or transformations on the AST.
All methods have default implementations that do nothing, allowing implementors to only override the methods they need.