Struct ConflictArc

Source
pub struct ConflictArc { /* private fields */ }
Expand description

A subspace of a parser’s state space within which a conflict is active.

A conflict arc is described as nodes with edges in between, the former of which corresponds to a parser state just before a shift action, and the latter to the actual terminals shifted. Each node contains a list of lanes which describe multiple states the parser has to be in due to ambiguities. Each lane represents a sequence of reduce actions and has separate backward edges to the lanes in previous nodes. The nodes are given a rank which represents the number of terminals shifted up to that point. As such the graph describes parallel execution of the parser state machine.

Trait Implementations§

Source§

impl Debug for ConflictArc

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Index<ConflictNodeId> for ConflictArc

Source§

type Output = ConflictNode

The returned type after indexing.
Source§

fn index(&self, index: ConflictNodeId) -> &ConflictNode

Performs the indexing (container[index]) operation. Read more
Source§

impl IndexMut<ConflictNodeId> for ConflictArc

Source§

fn index_mut(&mut self, index: ConflictNodeId) -> &mut ConflictNode

Performs the mutable indexing (container[index]) operation. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.