pub struct BaseParserRuleContext<'input, Ctx: CustomRuleContext<'input>> {
pub exception: Option<Box<ANTLRError>>,
/* private fields */
}
Expand description
Default rule context implementation that keeps everything provided by parser
Fields§
§exception: Option<Box<ANTLRError>>
error if there was any in this node
Implementations§
Source§impl<'input, Ctx: CustomRuleContext<'input> + 'input> BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx: CustomRuleContext<'input> + 'input> BaseParserRuleContext<'input, Ctx>
pub fn new_parser_ctx( parent_ctx: Option<Rc<<Ctx::Ctx as ParserNodeType<'input>>::Type>>, invoking_state: isize, ext: Ctx, ) -> Self
pub fn copy_from<T: ParserRuleContext<'input, TF = Ctx::TF, Ctx = Ctx::Ctx> + ?Sized>( ctx: &T, ext: Ctx, ) -> Self
Trait Implementations§
Source§impl<'input, Ctx: CustomRuleContext<'input>> Borrow<Ctx> for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx: CustomRuleContext<'input>> Borrow<Ctx> for BaseParserRuleContext<'input, Ctx>
Source§impl<'input, Ctx: CustomRuleContext<'input>> BorrowMut<Ctx> for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx: CustomRuleContext<'input>> BorrowMut<Ctx> for BaseParserRuleContext<'input, Ctx>
Source§fn borrow_mut(&mut self) -> &mut Ctx
fn borrow_mut(&mut self) -> &mut Ctx
Mutably borrows from an owned value. Read more
Source§impl<'input, Ctx: CustomRuleContext<'input>> CustomRuleContext<'input> for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx: CustomRuleContext<'input>> CustomRuleContext<'input> for BaseParserRuleContext<'input, Ctx>
type TF = <Ctx as CustomRuleContext<'input>>::TF
Source§type Ctx = <Ctx as CustomRuleContext<'input>>::Ctx
type Ctx = <Ctx as CustomRuleContext<'input>>::Ctx
Type that describes type of context nodes, stored in this context
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) -> isize
fn set_alt_number(&self, _alt_number: isize)
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, Ctx: CustomRuleContext<'input>> Debug for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx: CustomRuleContext<'input>> Debug for BaseParserRuleContext<'input, Ctx>
Source§impl<'input, Ctx: CustomRuleContext<'input>> DerefMut for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx: CustomRuleContext<'input>> DerefMut for BaseParserRuleContext<'input, Ctx>
Source§impl<'input, Ctx: CustomRuleContext<'input> + TidAble<'input>> ParseTree<'input> for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx: CustomRuleContext<'input> + TidAble<'input>> ParseTree<'input> for BaseParserRuleContext<'input, Ctx>
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, Ctx: CustomRuleContext<'input> + TidAble<'input>> ParserRuleContext<'input> for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx: CustomRuleContext<'input> + TidAble<'input>> ParserRuleContext<'input> for BaseParserRuleContext<'input, Ctx>
fn set_exception(&self, _e: ANTLRError)
fn set_start(&self, t: Option<<Ctx::TF as TokenFactory<'input>>::Tok>)
Source§fn start<'a>(&'a self) -> Ref<'a, <Ctx::TF as TokenFactory<'input>>::Inner>where
'input: 'a,
fn start<'a>(&'a self) -> Ref<'a, <Ctx::TF as TokenFactory<'input>>::Inner>where
'input: 'a,
Get the initial token in this context.
Note that the range from start to stop is inclusive, so for rules that do not consume anything
(for example, zero length or error productions) this token may exceed stop.
fn start_mut<'a>(
&'a self,
) -> RefMut<'a, <Self::TF as TokenFactory<'input>>::Tok>where
'input: 'a,
fn set_stop(&self, t: Option<<Ctx::TF as TokenFactory<'input>>::Tok>)
Source§fn stop<'a>(&'a self) -> Ref<'a, <Ctx::TF as TokenFactory<'input>>::Inner>where
'input: 'a,
fn stop<'a>(&'a self) -> Ref<'a, <Ctx::TF as TokenFactory<'input>>::Inner>where
'input: 'a,
Get the final token in this context.
Note that the range from start to stop is inclusive, so for rules that do not consume anything
(for example, zero length or error productions) this token may precede start.
fn stop_mut<'a>(&'a self) -> RefMut<'a, <Self::TF as TokenFactory<'input>>::Tok>where
'input: 'a,
fn add_child(&self, child: Rc<<Ctx::Ctx as ParserNodeType<'input>>::Type>)
fn remove_last_child(&self)
fn child_of_type<T>(&self, pos: usize) -> Option<Rc<T>>
fn children_of_type<T>(&self) -> Vec<Rc<T>>
fn get_token( &self, ttype: isize, pos: usize, ) -> Option<Rc<TerminalNode<'input, Self::Ctx>>>
fn get_tokens(&self, ttype: isize) -> Vec<Rc<TerminalNode<'input, Self::Ctx>>>
Source§impl<'input, Ctx: CustomRuleContext<'input>> RuleContext<'input> for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx: CustomRuleContext<'input>> RuleContext<'input> for BaseParserRuleContext<'input, Ctx>
Source§fn get_invoking_state(&self) -> isize
fn get_invoking_state(&self) -> isize
Internal parser state
Source§fn set_invoking_state(&self, t: isize)
fn set_invoking_state(&self, t: isize)
Sets internal parser state
Source§fn get_parent_ctx(
&self,
) -> Option<Rc<<Ctx::Ctx as ParserNodeType<'input>>::Type>>
fn get_parent_ctx( &self, ) -> Option<Rc<<Ctx::Ctx as ParserNodeType<'input>>::Type>>
Get parent context
Source§fn set_parent(
&self,
parent: &Option<Rc<<Ctx::Ctx as ParserNodeType<'input>>::Type>>,
)
fn set_parent( &self, parent: &Option<Rc<<Ctx::Ctx as ParserNodeType<'input>>::Type>>, )
Set parent context
Source§impl<'input, Ctx: CustomRuleContext<'input>> Tree<'input> for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx: CustomRuleContext<'input>> Tree<'input> for BaseParserRuleContext<'input, Ctx>
fn get_parent(&self) -> Option<Rc<<Ctx::Ctx as ParserNodeType<'input>>::Type>>
fn has_parent(&self) -> bool
fn get_payload(&self) -> Box<dyn Any>
fn get_child( &self, i: usize, ) -> Option<Rc<<Self::Ctx as ParserNodeType<'input>>::Type>>
fn get_child_count(&self) -> usize
fn get_children<'a>(
&'a self,
) -> Box<dyn Iterator<Item = Rc<<Self::Ctx as ParserNodeType<'input>>::Type>> + 'a>where
'input: 'a,
Source§impl<'input, Ctx: CustomRuleContext<'input>> Deref for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx: CustomRuleContext<'input>> Deref for BaseParserRuleContext<'input, Ctx>
impl<'i, Ctx> TidAble<'i> for BaseParserRuleContext<'i, Ctx>where
Ctx: CustomRuleContext<'i> + TidAble<'i>,
Auto Trait Implementations§
impl<'input, Ctx> !Freeze for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx> !RefUnwindSafe for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx> !Send for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx> !Sync for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx> Unpin for BaseParserRuleContext<'input, Ctx>
impl<'input, Ctx> !UnwindSafe for BaseParserRuleContext<'input, Ctx>
Blanket Implementations§
Source§impl<T> AnyExt for T
impl<T> AnyExt for T
Source§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
Attempts to downcast this to
T
behind referenceSource§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
Attempts to downcast this to
T
behind mutable referenceSource§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
Attempts to downcast this to
T
behind Rc
pointerSource§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
Attempts to downcast this to
T
behind Arc
pointerSource§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
Source§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
Source§impl<'input, T> RuleContextExt<'input> for Twhere
T: ParserRuleContext<'input> + 'input + ?Sized,
impl<'input, T> RuleContextExt<'input> for Twhere
T: ParserRuleContext<'input> + 'input + ?Sized,
Source§fn to_string<Z>(
self: &Rc<T>,
rule_names: Option<&[&str]>,
stop: Option<Rc<Z>>,
) -> Stringwhere
Z: ParserRuleContext<'input, Ctx = <T as CustomRuleContext<'input>>::Ctx, TF = <T as CustomRuleContext<'input>>::TF> + 'input + ?Sized,
<T as CustomRuleContext<'input>>::Ctx: ParserNodeType<'input, Type = Z>,
T: CoerceTo<Z>,
fn to_string<Z>(
self: &Rc<T>,
rule_names: Option<&[&str]>,
stop: Option<Rc<Z>>,
) -> Stringwhere
Z: ParserRuleContext<'input, Ctx = <T as CustomRuleContext<'input>>::Ctx, TF = <T as CustomRuleContext<'input>>::TF> + 'input + ?Sized,
<T as CustomRuleContext<'input>>::Ctx: ParserNodeType<'input, Type = Z>,
T: CoerceTo<Z>,
Prints list of parent rules
fn accept_children<V>(&self, visitor: &mut V)where
V: ParseTreeVisitor<'input, <T as CustomRuleContext<'input>>::Ctx> + ?Sized,
<<T as CustomRuleContext<'input>>::Ctx as ParserNodeType<'input>>::Type: VisitableDyn<V>,
Source§impl<'a, X> TidExt<'a> for X
impl<'a, X> TidExt<'a> for X
Source§fn is<T>(&self) -> boolwhere
T: Tid<'a>,
fn is<T>(&self) -> boolwhere
T: Tid<'a>,
Returns true if type behind self is equal to the type of T.
Source§fn downcast_ref<'b, T>(&'b self) -> Option<&'b T>where
T: Tid<'a>,
fn downcast_ref<'b, T>(&'b self) -> Option<&'b T>where
T: Tid<'a>,
Attempts to downcast self to
T
behind referenceSource§fn downcast_mut<'b, T>(&'b mut self) -> Option<&'b mut T>where
T: Tid<'a>,
fn downcast_mut<'b, T>(&'b mut self) -> Option<&'b mut T>where
T: Tid<'a>,
Attempts to downcast self to
T
behind mutable referenceSource§fn downcast_rc<T>(self: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Tid<'a>,
fn downcast_rc<T>(self: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Tid<'a>,
Attempts to downcast self to
T
behind Rc
pointerSource§fn downcast_arc<T>(self: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Tid<'a>,
fn downcast_arc<T>(self: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Tid<'a>,
Attempts to downcast self to
T
behind Arc
pointer