[−][src]Struct antlr_rust::error_strategy::BailErrorStrategy
This implementation of ANTLRErrorStrategy
responds to syntax errors
by immediately canceling the parse operation with a
ParseCancellationException
. The implementation ensures that the
ParserRuleContext.exception
field is set for all parse tree nodes
that were not completed prior to encountering the error.
This error strategy is useful in the following scenarios.
- Two-stage parsing: This error strategy allows the first stage of two-stage parsing to immediately terminate if an error is encountered, and immediately fall back to the second stage. In addition to avoiding wasted work by attempting to recover from errors here, the empty implementation of `sync` improves the performance of the first stage.
- Silent validation: When syntax errors are not being reported or logged, and the parse result is simply ignored if errors occur, the `BailErrorStrategy` avoids wasting work on recovering from errors when the result will be ignored either way.
Usage
ⓘThis example is not tested
use antlr_rust::error_strategy::BailErrorStrategy; myparser.err_handler = BailErrorStrategy::new();
Methods
impl BailErrorStrategy
[src]
pub fn new() -> BailErrorStrategy
[src]
Trait Implementations
impl ErrorStrategy for BailErrorStrategy
[src]
fn reset(&mut self, recognizer: &mut dyn Parser)
[src]
fn recover_inline(
&mut self,
recognizer: &mut dyn Parser
) -> Result<OwningToken, ANTLRError>
[src]
&mut self,
recognizer: &mut dyn Parser
) -> Result<OwningToken, ANTLRError>
fn recover(
&mut self,
recognizer: &mut dyn Parser,
e: &ANTLRError
) -> Result<(), ANTLRError>
[src]
&mut self,
recognizer: &mut dyn Parser,
e: &ANTLRError
) -> Result<(), ANTLRError>
fn sync(&mut self, _recognizer: &mut dyn Parser) -> Result<(), ANTLRError>
[src]
fn in_error_recovery_mode(&mut self, recognizer: &mut dyn Parser) -> bool
[src]
fn report_error(&mut self, recognizer: &mut dyn Parser, e: &ANTLRError)
[src]
fn report_match(&mut self, recognizer: &mut dyn Parser)
[src]
Auto Trait Implementations
impl !RefUnwindSafe for BailErrorStrategy
impl !Send for BailErrorStrategy
impl !Sync for BailErrorStrategy
impl Unpin for BailErrorStrategy
impl !UnwindSafe for BailErrorStrategy
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,