ParserTables

Struct ParserTables 

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

Tables and parameters used to create a Parser. This type is used as a return object from the parser generator, when the Parser must be created dynamically; for example, in tests or in situations where the grammar isn’t known in advance. In those situations, the ParserTables object must live as long as the parser it generates.

The Parser itself uses references to tables whenever possible because, in most situations, the tables are static in generated source files. A few fields must still be created dynamically from (possibly) static tables because they don’t exist in static form.

Implementations§

Source§

impl ParserTables

Source

pub fn new( parsing_table: LLParsingTable, symbol_table: FixedSymTable, opcodes: Vec<Vec<OpCode>>, start: VarId, include_alts: bool, ) -> Self

Source

pub fn make_parser(&self) -> Parser<'_>

Trait Implementations§

Source§

impl BuildFrom<ParserGen> for ParserTables

Source§

fn build_from(parser_gen: ParserGen) -> Self

Creates a ParserTables, from which a parser can be created dynamically with parser_table.make_parser().

Source§

impl TryBuildFrom<ParserGen> for ParserTables

Source§

type Error = BuildError

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

fn try_build_from(source: ParserGen) -> Result<Self, Self::Error>

Performs the conversion.

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<S> BuildFrom<S> for S

Source§

fn build_from(source: S) -> S

Converts to this type from the input type.
Source§

impl<S, T> BuildInto<T> for S
where T: BuildFrom<S>,

Source§

fn build_into(self) -> T

Calls T::from(self) to convert a [S] into a [T].

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<S, T> TryBuildInto<T> for S
where T: TryBuildFrom<S>,

Source§

type Error = <T as TryBuildFrom<S>>::Error

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

fn try_build_into(self) -> Result<T, <T as TryBuildFrom<S>>::Error>

Performs the conversion.
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.