Trait AstVisitor

Source
pub trait AstVisitor {
    type Output;

Show 23 methods // Required methods fn visit_node(&mut self, node: &AstKind) -> Self::Output; fn visit_statement(&mut self, node: &StatementKind) -> Self::Output; fn visit_assignment(&mut self, node: &P<AssignmentNode>) -> Self::Output; fn visit_expr(&mut self, node: &ExprKind) -> Self::Output; fn visit_bin_op(&mut self, node: &P<BinaryOperationNode>) -> Self::Output; fn visit_unary_op(&mut self, node: &P<UnaryOperationNode>) -> Self::Output; fn visit_identifier(&mut self, node: &P<IdentifierNode>) -> Self::Output; fn visit_literal(&mut self, node: &P<LiteralNode>) -> Self::Output; fn visit_member_access( &mut self, node: &P<MemberAccessNode>, ) -> Self::Output; fn visit_function_call( &mut self, node: &P<FunctionCallNode>, ) -> Self::Output; fn visit_array(&mut self, node: &ArrayKind) -> Self::Output; fn visit_array_node(&mut self, node: &P<ArrayNode>) -> Self::Output; fn visit_phi_array(&mut self, node: &P<PhiArrayNode>) -> Self::Output; fn visit_array_access(&mut self, node: &P<ArrayAccessNode>) -> Self::Output; fn visit_function(&mut self, node: &P<FunctionNode>) -> Self::Output; fn visit_return(&mut self, node: &P<ReturnNode>) -> Self::Output; fn visit_block(&mut self, node: &P<BlockNode>) -> Self::Output; fn visit_control_flow(&mut self, node: &P<ControlFlowNode>) -> Self::Output; fn visit_phi(&mut self, node: &P<PhiNode>) -> Self::Output; fn visit_new(&mut self, node: &P<NewNode>) -> Self::Output; fn visit_new_array(&mut self, node: &P<NewArrayNode>) -> Self::Output; fn visit_virtual_branch( &mut self, node: &P<VirtualBranchNode>, ) -> Self::Output; fn visit_range(&mut self, node: &P<RangeNode>) -> Self::Output;
}
Expand description

Represents a visitor for the AST.

Required Associated Types§

Source

type Output

The output type of the visitor.

Required Methods§

Source

fn visit_node(&mut self, node: &AstKind) -> Self::Output

Visits an AST node.

Source

fn visit_statement(&mut self, node: &StatementKind) -> Self::Output

Visits a statement node.

Source

fn visit_assignment(&mut self, node: &P<AssignmentNode>) -> Self::Output

Visits an assignment node.

Source

fn visit_expr(&mut self, node: &ExprKind) -> Self::Output

Visits an expression node.

Source

fn visit_bin_op(&mut self, node: &P<BinaryOperationNode>) -> Self::Output

Visits a binary operation node.

Source

fn visit_unary_op(&mut self, node: &P<UnaryOperationNode>) -> Self::Output

Visits a unary operation node.

Source

fn visit_identifier(&mut self, node: &P<IdentifierNode>) -> Self::Output

Visits an identifier node.

Source

fn visit_literal(&mut self, node: &P<LiteralNode>) -> Self::Output

Visits a literal node.

Source

fn visit_member_access(&mut self, node: &P<MemberAccessNode>) -> Self::Output

Visits a member access node.

Source

fn visit_function_call(&mut self, node: &P<FunctionCallNode>) -> Self::Output

Visits a function call node.

Source

fn visit_array(&mut self, node: &ArrayKind) -> Self::Output

Visits an array node.

Source

fn visit_array_node(&mut self, node: &P<ArrayNode>) -> Self::Output

Visits an array node.

Source

fn visit_phi_array(&mut self, node: &P<PhiArrayNode>) -> Self::Output

Visits a phi array node.

Source

fn visit_array_access(&mut self, node: &P<ArrayAccessNode>) -> Self::Output

Visits an array access node.

Source

fn visit_function(&mut self, node: &P<FunctionNode>) -> Self::Output

Visits a function node.

Source

fn visit_return(&mut self, node: &P<ReturnNode>) -> Self::Output

Visits a return node.

Source

fn visit_block(&mut self, node: &P<BlockNode>) -> Self::Output

Visits a block node.

Source

fn visit_control_flow(&mut self, node: &P<ControlFlowNode>) -> Self::Output

Visits a control flow node.

Source

fn visit_phi(&mut self, node: &P<PhiNode>) -> Self::Output

Visits a phi node.

Source

fn visit_new(&mut self, node: &P<NewNode>) -> Self::Output

Visits a new node.

Source

fn visit_new_array(&mut self, node: &P<NewArrayNode>) -> Self::Output

Visits a new_array node.

Source

fn visit_virtual_branch(&mut self, node: &P<VirtualBranchNode>) -> Self::Output

Visits a virtual branch node.

Source

fn visit_range(&mut self, node: &P<RangeNode>) -> Self::Output

Visits a range node.

Implementors§