Enum rusty_lr::ParseError
source · pub enum ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError> {
InvalidNonTerminal(&'a NonTerm, &'a [ProductionRule<Term, NonTerm>], &'a [State<Term, NonTerm>], Vec<usize>),
InvalidTerminal(Term, &'a [ProductionRule<Term, NonTerm>], &'a [State<Term, NonTerm>], Vec<usize>),
Callback(CallbackError),
ReduceAction(ReduceActionError),
}Expand description
Error type for feed()
Variants§
InvalidNonTerminal(&'a NonTerm, &'a [ProductionRule<Term, NonTerm>], &'a [State<Term, NonTerm>], Vec<usize>)
Invalid non-terminal feeded. This variant should be removed in the future. it will not occur if the grammar is builded correctly
InvalidTerminal(Term, &'a [ProductionRule<Term, NonTerm>], &'a [State<Term, NonTerm>], Vec<usize>)
Invalid terminal feeded
Callback(CallbackError)
Error from callback trait
ReduceAction(ReduceActionError)
Error from macro reduce action
Implementations§
source§impl<'a, Term, NonTerm, CallbackError, ReduceActionError> ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError>
impl<'a, Term, NonTerm, CallbackError, ReduceActionError> ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError>
sourcepub fn backtrace(
rules: &[ProductionRule<Term, NonTerm>],
states: &[State<Term, NonTerm>],
state_stack: &[usize],
) -> Vec<BTreeSet<ShiftedRuleRef>>where
NonTerm: PartialEq,
pub fn backtrace(
rules: &[ProductionRule<Term, NonTerm>],
states: &[State<Term, NonTerm>],
state_stack: &[usize],
) -> Vec<BTreeSet<ShiftedRuleRef>>where
NonTerm: PartialEq,
generate backtrace information. returned Vec holds a list of ruleset, each ruleset is what current state was trying to parse. 0’th index is the latest, that is, the last element of Vec will hold the initial state’s ruleset
Trait Implementations§
source§impl<'a, Term, NonTerm, CallbackError, ReduceActionError> Debug for ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError>
impl<'a, Term, NonTerm, CallbackError, ReduceActionError> Debug for ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError>
source§impl<'a, Term, NonTerm, CallbackError, ReduceActionError> Display for ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError>
impl<'a, Term, NonTerm, CallbackError, ReduceActionError> Display for ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError>
Auto Trait Implementations§
impl<'a, Term, NonTerm, CallbackError, ReduceActionError> Freeze for ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError>
impl<'a, Term, NonTerm, CallbackError, ReduceActionError> RefUnwindSafe for ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError>where
Term: RefUnwindSafe,
CallbackError: RefUnwindSafe,
ReduceActionError: RefUnwindSafe,
NonTerm: RefUnwindSafe,
impl<'a, Term, NonTerm, CallbackError, ReduceActionError> Send for ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError>
impl<'a, Term, NonTerm, CallbackError, ReduceActionError> Sync for ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError>
impl<'a, Term, NonTerm, CallbackError, ReduceActionError> Unpin for ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError>
impl<'a, Term, NonTerm, CallbackError, ReduceActionError> UnwindSafe for ParseError<'a, Term, NonTerm, CallbackError, ReduceActionError>where
Term: UnwindSafe + RefUnwindSafe,
CallbackError: UnwindSafe,
ReduceActionError: UnwindSafe,
NonTerm: 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