logo
pub trait Parser: Sized {
    type Checkpoint: Clone;
    fn checkpoint(&mut self) -> Self::Checkpoint;
fn finish_node_impl(&mut self, token: NodeToken);
fn start_node_impl(
        &mut self,
        kind: SyntaxKind,
        checkpoint: Option<Self::Checkpoint>,
        token: NodeToken
    );
fn nth(&mut self, n: usize) -> Token;
fn consume(&mut self);
fn error(&mut self, e: impl Into<String>); fn start_node(&mut self, kind: SyntaxKind) -> Node<'_, Self> { ... }
fn start_node_at(
        &mut self,
        checkpoint: Self::Checkpoint,
        kind: SyntaxKind
    ) -> Node<'_, Self> { ... }
fn peek(&mut self) -> Token { ... }
fn expect(&mut self, kind: SyntaxKind) -> bool { ... }
fn test(&mut self, kind: SyntaxKind) -> bool { ... }
fn until(&mut self, kind: SyntaxKind) { ... } }

Associated Types

Required methods

Can only be called by Node::drop

Can only be called by Self::start_node

Peek the nth token, not including whitespace and comments

Provided methods

Enter a new node. The node is going to be finished when The return value of this function is dropped

(do not re-implement this function, re-implement start_node_impl and finish_node_impl)

Same as nth(0)

Consume the token if it has the right kind, otherwise report a syntax error. Returns true if the token was consumed.

If the token if of this type, consume it and return true, otherwise return false

consume everything until reaching a token of this kind

Implementors