Struct Parser

Source
pub struct Parser<'a, 'p, 'ast> { /* private fields */ }

Implementations§

Source§

impl<'a, 'p, 'ast> Parser<'a, 'p, 'ast>

Source

pub fn new( arena: &'p Arena, ast_arena: &'ast Arena, str_interner: &'a StrInterner<'p>, span_mgr: &'a mut SpanManager, tokens: Vec<Token<'p, 'ast>>, ) -> Self

Creates a new parser that operates on tokens.

arena is used to allocate interned strings and ast_arena is used to allocate most of AST nodes. This allows to free most of the AST while keeping interned strings.

tokens must not include whitespace or comments and must end with an end-of-file token.

Source

pub fn parse_root_expr(self) -> Result<Expr<'p, 'ast>, ParseError>

Parses the tokens into an expression.

Auto Trait Implementations§

§

impl<'a, 'p, 'ast> Freeze for Parser<'a, 'p, 'ast>

§

impl<'a, 'p, 'ast> !RefUnwindSafe for Parser<'a, 'p, 'ast>

§

impl<'a, 'p, 'ast> !Send for Parser<'a, 'p, 'ast>

§

impl<'a, 'p, 'ast> !Sync for Parser<'a, 'p, 'ast>

§

impl<'a, 'p, 'ast> Unpin for Parser<'a, 'p, 'ast>

§

impl<'a, 'p, 'ast> !UnwindSafe for Parser<'a, 'p, 'ast>

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> Same for T

Source§

type Output = T

Should always be Self
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.