Skip to main content

Parser

Struct Parser 

Source
pub struct Parser<'a> { /* private fields */ }
Expand description

Parser object. The new(…) method creates a new instance.

Implementations§

Source§

impl<'a> Parser<'a>

Source

pub const MAX_NBR_RECOVERS: u32 = 5

Maximum number of error recoveries attempted when meeting a syntax error

Source

pub const MAX_NBR_LEXER_ERRORS: u32 = 3

Source

pub fn new( num_nt: usize, num_t: usize, alt_var: &'a [u16], alts: Vec<Alternative>, opcodes: Vec<Vec<OpCode>>, init_opcodes: Vec<OpCode>, table: &'a [u16], symbol_table: FixedSymTable, start: u16, ) -> Parser<'a>

Source

pub fn get_symbol_table(&self) -> Option<&FixedSymTable>

Gets a reference to the symbol table, if one is attached.

Source

pub fn set_start(&mut self, start: u16)

Sets the top nonterminal. The parser ends the parsing once the corresponding rule has been entirely parsed.

Source

pub fn set_try_recover(&mut self, try_recover: bool)

Enables or disables the recovery from syntactic or lexical errors.

See also ParserError::TooManyErrors and ParserError::SyntaxError.

Source

pub fn parse_stream<I, L>( &mut self, wrapper: &mut L, stream: I, ) -> Result<(), ParserError>
where I: Iterator<Item = (u16, String, PosSpan)>, L: ListenerWrapper,

Parses the entire stream, calling the (listener) wrapper with the actions that correspond to the parser events.

Returns Ok(()) if the whole stream could be successfully parsed, or an error if it couldn’t.

All errors are reported in the wrapper’s log. Usually, the wrapper simply transmits the reports to the user listener’s log (done in the generated code).

Auto Trait Implementations§

§

impl<'a> Freeze for Parser<'a>

§

impl<'a> RefUnwindSafe for Parser<'a>

§

impl<'a> Send for Parser<'a>

§

impl<'a> Sync for Parser<'a>

§

impl<'a> Unpin for Parser<'a>

§

impl<'a> UnsafeUnpin for Parser<'a>

§

impl<'a> UnwindSafe for Parser<'a>

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.