pub struct TreeNode<'input, 'arena, NodeKind, Tok = CommonToken<'input>>where
NodeKind: NodeKindType<'arena, Tok>,
Tok: Token + 'input,
'input: 'arena,{
pub node_tag: NodeKind,
/* private fields */
}Fields§
§node_tag: NodeKindImplementations§
Source§impl<'input, 'arena, NodeKind, Tok> TreeNode<'input, 'arena, NodeKind, Tok>where
NodeKind: NodeKindType<'arena, Tok>,
Tok: Token + 'input,
'input: 'arena,
impl<'input, 'arena, NodeKind, Tok> TreeNode<'input, 'arena, NodeKind, Tok>where
NodeKind: NodeKindType<'arena, Tok>,
Tok: Token + 'input,
'input: 'arena,
pub fn create_token_node(arena: &'arena Arena, symbol: &'arena Tok) -> *mut Self
pub fn create_error_node(arena: &'arena Arena, symbol: &'arena Tok) -> *mut Self
pub fn node_tag(&self) -> NodeKind
Sourcepub fn get_rule_context(&self) -> &dyn ParserRuleContext<'input, 'arena>
pub fn get_rule_context(&self) -> &dyn ParserRuleContext<'input, 'arena>
Return the ParserRuleContext object associated with this rule node.
Sourcepub fn get_rule_context_mut(
&mut self,
) -> &mut dyn ParserRuleContext<'input, 'arena>
pub fn get_rule_context_mut( &mut self, ) -> &mut dyn ParserRuleContext<'input, 'arena>
Return mutable reference to the ParserRuleContext object associated with this rule node.
pub fn ctx_ptr(&self) -> CtxPtr<'input, 'arena>
Sourcepub fn as_rule_context<T>(&self) -> Option<&T>where
T: ParserRuleContext<'input, 'arena> + NodeInner<'input, 'arena, NodeKind, Tok>,
pub fn as_rule_context<T>(&self) -> Option<&T>where
T: ParserRuleContext<'input, 'arena> + NodeInner<'input, 'arena, NodeKind, Tok>,
Attempt to downcast this node to specific ParserRuleContext type
Sourcepub fn as_rule_context_mut<T>(&mut self) -> Option<&mut T>where
T: ParserRuleContext<'input, 'arena> + NodeInner<'input, 'arena, NodeKind, Tok>,
pub fn as_rule_context_mut<T>(&mut self) -> Option<&mut T>where
T: ParserRuleContext<'input, 'arena> + NodeInner<'input, 'arena, NodeKind, Tok>,
Attempt to downcast this node to specific ParserRuleContext type
Sourcepub fn as_terminal_node(&self) -> Option<&TerminalNode<'input, 'arena, Tok>>
pub fn as_terminal_node(&self) -> Option<&TerminalNode<'input, 'arena, Tok>>
Downcast this node to terminal node, if the associated context is a terminal node
Sourcepub fn as_terminal_node_mut(
&mut self,
) -> Option<&mut TerminalNode<'input, 'arena, Tok>>
pub fn as_terminal_node_mut( &mut self, ) -> Option<&mut TerminalNode<'input, 'arena, Tok>>
Downcast this node to terminal node, if the associated context is a terminal node
Sourcepub fn as_error_node(&self) -> Option<&ErrorNode<'input, 'arena, Tok>>
pub fn as_error_node(&self) -> Option<&ErrorNode<'input, 'arena, Tok>>
Downcast this node to error node, if the associated context is an error node
Sourcepub fn as_error_node_mut(
&mut self,
) -> Option<&mut ErrorNode<'input, 'arena, Tok>>
pub fn as_error_node_mut( &mut self, ) -> Option<&mut ErrorNode<'input, 'arena, Tok>>
Downcast this node to error node, if the associated context is an error node
pub fn set_exception(&self, _e: ANTLRError, _arena: &'arena Arena)
Sourcepub fn set_invoking_state(&mut self, s: i32)
pub fn set_invoking_state(&mut self, s: i32)
Sets internal parser state
pub fn set_alt_number(&mut self, _alt_number: i32)
pub fn set_start(&mut self, t: Option<&'arena Tok>)
pub fn set_stop(&mut self, t: Option<&'arena Tok>)
pub fn remove_last_child(&mut self)
pub fn add_child(&mut self, _child: &'arena Self)
pub fn set_parent(&mut self, parent: Option<&'arena Self>)
pub fn enter_rule( &self, listener: &mut NodeKind::Listener, ) -> Result<(), ANTLRError>
pub fn exit_rule( &self, listener: &mut NodeKind::Listener, ) -> Result<(), ANTLRError>
Trait Implementations§
Source§impl<'input, 'arena, Node, Tok> ParseTree<'input, 'arena> for TreeNode<'input, 'arena, Node, Tok>where
Node: NodeKindType<'arena, Tok>,
Tok: Token,
'input: 'arena,
impl<'input, 'arena, Node, Tok> ParseTree<'input, 'arena> for TreeNode<'input, 'arena, Node, Tok>where
Node: NodeKindType<'arena, Tok>,
Tok: Token,
'input: 'arena,
Source§fn get_source_interval(&self) -> Interval
fn get_source_interval(&self) -> Interval
Return an {@link Interval} indicating the index in the
{@link TokenStream} of the first and last token associated with this
subtree. If this node is a leaf, then the interval represents a single
token and has interval i..i for token index i.
Source§impl<'input, 'arena, Node, Tok> ParserRuleContext<'input, 'arena> for TreeNode<'input, 'arena, Node, Tok>where
Node: NodeKindType<'arena, Tok>,
Tok: Token,
'input: 'arena,
impl<'input, 'arena, Node, Tok> ParserRuleContext<'input, 'arena> for TreeNode<'input, 'arena, Node, Tok>where
Node: NodeKindType<'arena, Tok>,
Tok: Token,
'input: 'arena,
Source§fn get_text(&self) -> String
fn get_text(&self) -> String
Return combined text of this AST node.
To create resulting string it does traverse whole subtree,
also it includes only tokens added to the parse tree Read more
fn get_child_count(&self) -> usize
fn get_parent_ctx( &self, ) -> Option<&'arena dyn ParserRuleContext<'input, 'arena>>
fn get_child_ctx( &self, i: usize, ) -> Option<&'arena dyn ParserRuleContext<'input, 'arena>>
fn iter_children<'a>(
&'a self,
) -> Box<dyn Iterator<Item = &'arena dyn ParserRuleContext<'input, 'arena>> + 'a>where
'input: 'a,
'arena: 'a,
fn get_token(&self, _ttype: i32, _pos: usize) -> Option<&dyn Token>
fn get_tokens(&self, _ttype: i32) -> Vec<&dyn Token>
Source§fn to_string_tree(&self, rule_names: &[&str]) -> String
fn to_string_tree(&self, rule_names: &[&str]) -> String
Print out a whole tree, not just a node, in LISP format
(root child1 .. childN). Print just a node if this is a leaf.Source§impl<'input, 'arena, NodeKind, Tok> RuleContext<'arena> for TreeNode<'input, 'arena, NodeKind, Tok>where
NodeKind: NodeKindType<'arena, Tok>,
Tok: Token,
'input: 'arena,
impl<'input, 'arena, NodeKind, Tok> RuleContext<'arena> for TreeNode<'input, 'arena, NodeKind, Tok>where
NodeKind: NodeKindType<'arena, Tok>,
Tok: Token,
'input: 'arena,
Source§fn get_rule_index(&self) -> usize
fn get_rule_index(&self) -> usize
Rule index that corresponds to this context type
fn get_alt_number(&self) -> i32
Source§fn get_invoking_state(&self) -> i32
fn get_invoking_state(&self) -> i32
Internal parser state
Source§fn get_parent_ctx(&self) -> Option<&'arena dyn RuleContext<'arena>>
fn get_parent_ctx(&self) -> Option<&'arena dyn RuleContext<'arena>>
Get parent context
Source§fn get_node_text(&self, rule_names: &[&str]) -> String
fn get_node_text(&self, rule_names: &[&str]) -> String
Returns text representation of current node type,
rule name for context nodes and token text for terminal nodes
Source§impl<'input, 'arena, NodeKind, Tok> Tree<'arena> for TreeNode<'input, 'arena, NodeKind, Tok>where
NodeKind: NodeKindType<'arena, Tok>,
Tok: Token + 'input,
'input: 'arena,
impl<'input, 'arena, NodeKind, Tok> Tree<'arena> for TreeNode<'input, 'arena, NodeKind, Tok>where
NodeKind: NodeKindType<'arena, Tok>,
Tok: Token + 'input,
'input: 'arena,
fn get_parent(&self) -> Option<&'arena Self>
fn has_parent(&self) -> bool
fn get_child(&self, i: usize) -> Option<&'arena Self>
fn get_child_count(&self) -> usize
fn get_children<'a>(&'a self) -> Box<dyn Iterator<Item = &'arena Self> + 'a>
fn get_payload(&self) -> Box<dyn Any>
Auto Trait Implementations§
impl<'input, 'arena, NodeKind, Tok = TokenImpl<'input, &'input str>> !Send for TreeNode<'input, 'arena, NodeKind, Tok>
impl<'input, 'arena, NodeKind, Tok = TokenImpl<'input, &'input str>> !Sync for TreeNode<'input, 'arena, NodeKind, Tok>
impl<'input, 'arena, NodeKind, Tok> Freeze for TreeNode<'input, 'arena, NodeKind, Tok>where
NodeKind: Freeze,
impl<'input, 'arena, NodeKind, Tok> RefUnwindSafe for TreeNode<'input, 'arena, NodeKind, Tok>where
NodeKind: RefUnwindSafe,
Tok: RefUnwindSafe,
impl<'input, 'arena, NodeKind, Tok> Unpin for TreeNode<'input, 'arena, NodeKind, Tok>where
NodeKind: Unpin,
impl<'input, 'arena, NodeKind, Tok> UnsafeUnpin for TreeNode<'input, 'arena, NodeKind, Tok>where
NodeKind: UnsafeUnpin,
impl<'input, 'arena, NodeKind, Tok> UnwindSafe for TreeNode<'input, 'arena, NodeKind, Tok>where
NodeKind: UnwindSafe,
Tok: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more