pub trait TokenStream<T> {
    fn peek(&mut self, offset: usize) -> Spanned<T>;
fn bump(&mut self);
fn consumed(&self) -> usize;
fn last_span(&self) -> Span;
fn emit(&mut self, diag: DiagBuilder2);
fn severity(&self) -> Severity; fn skip(&mut self) { ... }
fn last_loc(&self) -> Location { ... }
fn is_fatal(&self) -> bool { ... }
fn is_error(&self) -> bool { ... } }
Expand description

A generalized stream of tokens that accepts emission of diagnostics and tracking of the severity of issues encountered.

Required methods

Look ahead at a token in the stream.

Consume the current token.

Get the number of tokens consumed. Excludes tokens skipped with skip.

Get the span of the last token consumed token (bumped or skipped).

Emit a diagnostic.

Get the severity of the worst diagnostic emitted so far.

Provided methods

Skip the current token. Usually the same as bump, but may be used to keep skipped tokens out of the consumed tokens count by some parsers.

Get the tail location of the last consumed token (bumped or skipped).

Check whether a fatal diagnostic has been emitted.

Check whether an error diagnostic has been emitted.

Implementors