pub struct IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex> {
pub shift_goto_map_term: Vec<(TermClass, ShiftTarget<StateIndex>)>,
pub shift_goto_map_nonterm: Vec<(NonTerm, ShiftTarget<StateIndex>)>,
pub reduce_map: Vec<(TermClass, Vec<RuleIndex>)>,
pub ruleset: Vec<ShiftedRuleRef>,
}Expand description
This intermediate state is a common structure to convert from generated code and grammar builder into various types of parser states (SparseState, DenseState, …).
Fields§
§shift_goto_map_term: Vec<(TermClass, ShiftTarget<StateIndex>)>§shift_goto_map_nonterm: Vec<(NonTerm, ShiftTarget<StateIndex>)>§reduce_map: Vec<(TermClass, Vec<RuleIndex>)>§ruleset: Vec<ShiftedRuleRef>Trait Implementations§
Source§impl<TermClass, NonTerm, RuleContainer, StateIndex, RuleIndex> From<IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>> for DenseState<TermClass, NonTerm, RuleContainer, StateIndex>where
TermClass: TerminalClass + Ord + Copy,
NonTerm: NonTerminal + Hash + Eq + Copy,
StateIndex: Copy,
RuleContainer: Clone + ReduceRules,
<RuleContainer as ReduceRules>::RuleIndex: TryFrom<RuleIndex>,
impl<TermClass, NonTerm, RuleContainer, StateIndex, RuleIndex> From<IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>> for DenseState<TermClass, NonTerm, RuleContainer, StateIndex>where
TermClass: TerminalClass + Ord + Copy,
NonTerm: NonTerminal + Hash + Eq + Copy,
StateIndex: Copy,
RuleContainer: Clone + ReduceRules,
<RuleContainer as ReduceRules>::RuleIndex: TryFrom<RuleIndex>,
Source§fn from(
builder_state: IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>,
) -> DenseState<TermClass, NonTerm, RuleContainer, StateIndex>
fn from( builder_state: IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>, ) -> DenseState<TermClass, NonTerm, RuleContainer, StateIndex>
Converts to this type from the input type.
Source§impl<TermClass, NonTerm, RuleContainer, StateIndex, RuleIndex> From<IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>> for SparseState<TermClass, NonTerm, RuleContainer, StateIndex>where
TermClass: TerminalClass + Ord + Hash,
NonTerm: NonTerminal + Hash + Eq,
RuleContainer: ReduceRules,
<RuleContainer as ReduceRules>::RuleIndex: TryFrom<RuleIndex>,
impl<TermClass, NonTerm, RuleContainer, StateIndex, RuleIndex> From<IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>> for SparseState<TermClass, NonTerm, RuleContainer, StateIndex>where
TermClass: TerminalClass + Ord + Hash,
NonTerm: NonTerminal + Hash + Eq,
RuleContainer: ReduceRules,
<RuleContainer as ReduceRules>::RuleIndex: TryFrom<RuleIndex>,
Source§fn from(
builder_state: IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>,
) -> SparseState<TermClass, NonTerm, RuleContainer, StateIndex>
fn from( builder_state: IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>, ) -> SparseState<TermClass, NonTerm, RuleContainer, StateIndex>
Converts to this type from the input type.
Auto Trait Implementations§
impl<TermClass, NonTerm, StateIndex, RuleIndex> Freeze for IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>
impl<TermClass, NonTerm, StateIndex, RuleIndex> RefUnwindSafe for IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>where
TermClass: RefUnwindSafe,
NonTerm: RefUnwindSafe,
StateIndex: RefUnwindSafe,
RuleIndex: RefUnwindSafe,
impl<TermClass, NonTerm, StateIndex, RuleIndex> Send for IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>
impl<TermClass, NonTerm, StateIndex, RuleIndex> Sync for IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>
impl<TermClass, NonTerm, StateIndex, RuleIndex> Unpin for IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>
impl<TermClass, NonTerm, StateIndex, RuleIndex> UnwindSafe for IntermediateState<TermClass, NonTerm, StateIndex, RuleIndex>
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