[][src]Struct lrtable::StateGraph

pub struct StateGraph<StorageT: Eq + Hash> { /* fields omitted */ }

Methods

impl<StorageT: 'static + Hash + PrimInt + Unsigned> StateGraph<StorageT> where
    usize: AsPrimitive<StorageT>, 
[src]

pub fn iter_stidxs(&self) -> Box<dyn Iterator<Item = StIdx>>
[src]

Return an iterator which produces (in order from 0..self.rules_len()) all this grammar's valid RIdxs.

pub fn closed_state(&self, stidx: StIdx) -> &Itemset<StorageT>
[src]

Return the itemset for closed state stidx. Panics if stidx doesn't exist.

pub fn iter_closed_states<'a>(
    &'a self
) -> Box<dyn Iterator<Item = &'a Itemset<StorageT>> + 'a>
[src]

Return an iterator over all closed states in this StateGraph.

pub fn core_state(&self, stidx: StIdx) -> &Itemset<StorageT>
[src]

Return the itemset for core state stidx or None if it doesn't exist.

pub fn iter_core_states<'a>(
    &'a self
) -> Box<dyn Iterator<Item = &'a Itemset<StorageT>> + 'a>
[src]

Return an iterator over all core states in this StateGraph.

pub fn all_states_len(&self) -> StIdx
[src]

How many states does this StateGraph contain? NB: By definition the StateGraph contains the same number of core and closed states.

pub fn edge(&self, stidx: StIdx, sym: Symbol<StorageT>) -> Option<StIdx>
[src]

Return the state pointed to by sym from stidx or None otherwise.

pub fn edges(&self, stidx: StIdx) -> &HashMap<Symbol<StorageT>, StIdx>
[src]

Return the edges for state stidx. Panics if stidx doesn't exist.

pub fn all_edges_len(&self) -> usize
[src]

How many edges does this StateGraph contain?

pub fn pp(&self, grm: &YaccGrammar<StorageT>, core_states: bool) -> String
[src]

Pretty print this stategraph as a String. If core_states is set to true, only the core states are pretty printed; if set to false, all states (including non-core states) are pretty printed.

pub fn pp_core_states(&self, grm: &YaccGrammar<StorageT>) -> String
[src]

Return a pretty printed version of the core states, and all edges.

pub fn pp_closed_states(&self, grm: &YaccGrammar<StorageT>) -> String
[src]

Return a pretty printed version of the closed states, and all edges.

Trait Implementations

impl<StorageT: Debug + Eq + Hash> Debug for StateGraph<StorageT>
[src]

Auto Trait Implementations

impl<StorageT> Send for StateGraph<StorageT> where
    StorageT: Send

impl<StorageT> Sync for StateGraph<StorageT> where
    StorageT: Sync

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Err = <U as TryFrom<T>>::Err