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§
Required Methods§
Sourcefn visit_node(&mut self, node: &AstKind) -> Self::Output
fn visit_node(&mut self, node: &AstKind) -> Self::Output
Visits an AST node.
Sourcefn visit_statement(&mut self, node: &StatementKind) -> Self::Output
fn visit_statement(&mut self, node: &StatementKind) -> Self::Output
Visits a statement node.
Sourcefn visit_assignment(&mut self, node: &P<AssignmentNode>) -> Self::Output
fn visit_assignment(&mut self, node: &P<AssignmentNode>) -> Self::Output
Visits an assignment node.
Sourcefn visit_expr(&mut self, node: &ExprKind) -> Self::Output
fn visit_expr(&mut self, node: &ExprKind) -> Self::Output
Visits an expression node.
Sourcefn visit_bin_op(&mut self, node: &P<BinaryOperationNode>) -> Self::Output
fn visit_bin_op(&mut self, node: &P<BinaryOperationNode>) -> Self::Output
Visits a binary operation node.
Sourcefn visit_unary_op(&mut self, node: &P<UnaryOperationNode>) -> Self::Output
fn visit_unary_op(&mut self, node: &P<UnaryOperationNode>) -> Self::Output
Visits a unary operation node.
Sourcefn visit_identifier(&mut self, node: &P<IdentifierNode>) -> Self::Output
fn visit_identifier(&mut self, node: &P<IdentifierNode>) -> Self::Output
Visits an identifier node.
Sourcefn visit_literal(&mut self, node: &P<LiteralNode>) -> Self::Output
fn visit_literal(&mut self, node: &P<LiteralNode>) -> Self::Output
Visits a literal node.
Sourcefn visit_member_access(&mut self, node: &P<MemberAccessNode>) -> Self::Output
fn visit_member_access(&mut self, node: &P<MemberAccessNode>) -> Self::Output
Visits a member access node.
Sourcefn visit_function_call(&mut self, node: &P<FunctionCallNode>) -> Self::Output
fn visit_function_call(&mut self, node: &P<FunctionCallNode>) -> Self::Output
Visits a function call node.
Sourcefn visit_array(&mut self, node: &ArrayKind) -> Self::Output
fn visit_array(&mut self, node: &ArrayKind) -> Self::Output
Visits an array node.
Sourcefn visit_array_node(&mut self, node: &P<ArrayNode>) -> Self::Output
fn visit_array_node(&mut self, node: &P<ArrayNode>) -> Self::Output
Visits an array node.
Sourcefn visit_phi_array(&mut self, node: &P<PhiArrayNode>) -> Self::Output
fn visit_phi_array(&mut self, node: &P<PhiArrayNode>) -> Self::Output
Visits a phi array node.
Sourcefn visit_array_access(&mut self, node: &P<ArrayAccessNode>) -> Self::Output
fn visit_array_access(&mut self, node: &P<ArrayAccessNode>) -> Self::Output
Visits an array access node.
Sourcefn visit_function(&mut self, node: &P<FunctionNode>) -> Self::Output
fn visit_function(&mut self, node: &P<FunctionNode>) -> Self::Output
Visits a function node.
Sourcefn visit_return(&mut self, node: &P<ReturnNode>) -> Self::Output
fn visit_return(&mut self, node: &P<ReturnNode>) -> Self::Output
Visits a return node.
Sourcefn visit_block(&mut self, node: &P<BlockNode>) -> Self::Output
fn visit_block(&mut self, node: &P<BlockNode>) -> Self::Output
Visits a block node.
Sourcefn visit_control_flow(&mut self, node: &P<ControlFlowNode>) -> Self::Output
fn visit_control_flow(&mut self, node: &P<ControlFlowNode>) -> Self::Output
Visits a control flow node.
Sourcefn visit_new_array(&mut self, node: &P<NewArrayNode>) -> Self::Output
fn visit_new_array(&mut self, node: &P<NewArrayNode>) -> Self::Output
Visits a new_array
node.
Sourcefn visit_virtual_branch(&mut self, node: &P<VirtualBranchNode>) -> Self::Output
fn visit_virtual_branch(&mut self, node: &P<VirtualBranchNode>) -> Self::Output
Visits a virtual branch node.
Sourcefn visit_range(&mut self, node: &P<RangeNode>) -> Self::Output
fn visit_range(&mut self, node: &P<RangeNode>) -> Self::Output
Visits a range node.