pub struct Parser<'a> { /* private fields */ }
Implementations§
Source§impl<'a> Parser<'a>
impl<'a> Parser<'a>
pub fn new(lexer: Lexer<'a>, root_scope: Scope) -> Parser<'a>
pub fn enter_new_scope(&mut self, typ: ScopeType) -> Scope
pub fn return_to_scope(&mut self, old: Scope)
pub fn new_expression( &self, loc: SourceRange, expr: Expression, ) -> Node<Expression>
pub fn new_statement( &self, loc: SourceRange, stmt: Statement, ) -> Node<Statement>
pub fn new_module_item( &self, loc: SourceRange, item: ModuleItem, ) -> Node<ModuleItem>
pub fn lexer_mut(&mut self) -> &mut Lexer<'a>
pub fn source(&self, range: SourceRange) -> &[u8] ⓘ
pub fn source_as_string(&self, range: SourceRange) -> String
pub fn source_range(&self) -> SourceRange
pub fn checkpoint(&self) -> ParserCheckpoint
pub fn since_checkpoint(&self, checkpoint: ParserCheckpoint) -> SourceRange
pub fn restore_checkpoint(&mut self, checkpoint: ParserCheckpoint)
pub fn peek(&mut self) -> SyntaxResult<Token>
pub fn consume(&mut self) -> SyntaxResult<Token>
pub fn consume_if_pred<F: FnOnce(&Token) -> bool>( &mut self, pred: F, ) -> SyntaxResult<MaybeToken>
pub fn consume_if(&mut self, typ: TokenType) -> SyntaxResult<MaybeToken>
pub fn require_predicate<P: FnOnce(TokenType) -> bool>( &mut self, pred: P, expected: &'static str, ) -> SyntaxResult<Token>
pub fn require(&mut self, typ: TokenType) -> SyntaxResult<Token>
pub fn require_identifier_as_string( &mut self, ) -> SyntaxResult<(SourceRange, String)>
Source§impl<'a> Parser<'a>
impl<'a> Parser<'a>
pub fn parse_expr( &mut self, terminator: TokenType, ) -> SyntaxResult<Node<Expression>>
pub fn parse_expr_until( &mut self, terminators: TokenTypeSet, ) -> SyntaxResult<Node<Expression>>
pub fn parse_expr_block_without_new_scope( &mut self, ) -> SyntaxResult<Node<Expression>>
pub fn parse_expr_block(&mut self) -> SyntaxResult<Node<Expression>>
pub fn parse_expr_closure(&mut self) -> SyntaxResult<Node<Expression>>
pub fn parse_expr_if(&mut self) -> SyntaxResult<Node<Expression>>
pub fn parse_expr_grouping(&mut self) -> SyntaxResult<Node<Expression>>
pub fn parse_expr_literal_array(&mut self) -> SyntaxResult<Node<Expression>>
pub fn parse_expr_literal_object(&mut self) -> SyntaxResult<Node<Expression>>
Source§impl<'a> Parser<'a>
impl<'a> Parser<'a>
pub fn parse_module(&mut self) -> SyntaxResult<Module>
pub fn parse_module_impl(&mut self) -> SyntaxResult<Node<ModuleItem>>
Source§impl<'a> Parser<'a>
impl<'a> Parser<'a>
pub fn parse_stmt( &mut self, require_semicolon: bool, ) -> SyntaxResult<Node<Statement>>
pub fn parse_stmt_break(&mut self) -> SyntaxResult<Node<Statement>>
pub fn parse_stmt_continue(&mut self) -> SyntaxResult<Node<Statement>>
pub fn parse_stmt_for(&mut self) -> SyntaxResult<Node<Statement>>
pub fn parse_stmt_let(&mut self) -> SyntaxResult<Node<Statement>>
pub fn parse_stmt_loop(&mut self) -> SyntaxResult<Node<Statement>>
pub fn parse_stmt_return(&mut self) -> SyntaxResult<Node<Statement>>
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> !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