pub struct Parser<'a> {
pub lexer: Lexer<'a>,
pub source: &'a str,
pub current: Token,
pub arena: AstArena,
/* private fields */
}Fields§
§lexer: Lexer<'a>§source: &'a str§current: Token§arena: AstArenaImplementations§
Source§impl<'a> Parser<'a>
impl<'a> Parser<'a>
Sourcepub fn parse_expression(&mut self) -> Option<ExprId>
pub fn parse_expression(&mut self) -> Option<ExprId>
Parse an expression
pub fn parse_assignment(&mut self, expr: ExprId) -> Option<ExprId>
Source§impl<'a> Parser<'a>
impl<'a> Parser<'a>
pub fn new(lexer: Lexer<'a>, source: &'a str) -> Self
Sourcepub fn ident_text(&self) -> SharedString
pub fn ident_text(&self) -> SharedString
Get identifier text from current token
Sourcepub fn expect(&mut self, kind: TokenKind) -> Span
pub fn expect(&mut self, kind: TokenKind) -> Span
Expect a specific token, consume it and return its span
Sourcepub fn consume(&mut self, kind: TokenKind) -> bool
pub fn consume(&mut self, kind: TokenKind) -> bool
Consume if current token matches, return true if consumed
pub fn parse_compilation_unit(self) -> ParseResult
pub fn parse_type(&mut self) -> Option<AstTypeId>
pub fn parse_type_without_array_suffix(&mut self) -> Option<AstTypeId>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more