Trait antlr_rust::tree::ParseTreeVisitorCompat
source · [−]pub trait ParseTreeVisitorCompat<'input>: VisitChildren<'input, Self::Node> {
type Node: ParserNodeType<'input>;
type Return: Default;
fn temp_result(&mut self) -> &mut Self::Return;
fn visit(
&mut self,
node: &<Self::Node as ParserNodeType<'input>>::Type
) -> Self::Return { ... }
fn visit_terminal(
&mut self,
_node: &TerminalNode<'input, Self::Node>
) -> Self::Return { ... }
fn visit_error_node(
&mut self,
_node: &ErrorNode<'input, Self::Node>
) -> Self::Return { ... }
fn visit_children(
&mut self,
node: &<Self::Node as ParserNodeType<'input>>::Type
) -> Self::Return { ... }
fn aggregate_results(
&self,
aggregate: Self::Return,
next: Self::Return
) -> Self::Return { ... }
fn should_visit_next_child(
&self,
node: &<Self::Node as ParserNodeType<'input>>::Type,
current: &Self::Return
) -> bool { ... }
}
Required Associated Types
Required Methods
fn temp_result(&mut self) -> &mut Self::Return
fn temp_result(&mut self) -> &mut Self::Return
Temporary storage for ParseTreeVisitor
blanket implementation to work
If you have ()
as a return value
either use YourGrammarParseTreeVisitor
directly
or make
Box::leak(Box::new(()))
as an implementation of that method so that there is no need to create dummy field in your visitor
Provided Methods
fn visit_terminal(
&mut self,
_node: &TerminalNode<'input, Self::Node>
) -> Self::Return
fn visit_terminal(
&mut self,
_node: &TerminalNode<'input, Self::Node>
) -> Self::Return
Called on terminal(leaf) node
fn visit_error_node(
&mut self,
_node: &ErrorNode<'input, Self::Node>
) -> Self::Return
fn visit_error_node(
&mut self,
_node: &ErrorNode<'input, Self::Node>
) -> Self::Return
Called on error node