pub trait Input {
type Token: Copy + Eq;
type Slice;
type Checkpoint: Copy + Eq + Ord;
// Required methods
fn next_token(&mut self) -> Option<Self::Token>;
fn peek_token(&self) -> Option<Self::Token>;
fn slice_since(&self, cp: Self::Checkpoint) -> Self::Slice;
fn checkpoint(&self) -> Self::Checkpoint;
fn reset(&mut self, checkpoint: Self::Checkpoint);
fn offset(&self) -> usize;
fn remaining(&self) -> Self::Slice;
fn is_eof(&self) -> bool;
}Required Associated Types§
Required Methods§
Sourcefn next_token(&mut self) -> Option<Self::Token>
fn next_token(&mut self) -> Option<Self::Token>
1トークン消費して返す。EOF なら None。
Sourcefn peek_token(&self) -> Option<Self::Token>
fn peek_token(&self) -> Option<Self::Token>
次のトークンを消費せずに返す。
Sourcefn slice_since(&self, cp: Self::Checkpoint) -> Self::Slice
fn slice_since(&self, cp: Self::Checkpoint) -> Self::Slice
checkpoint から現在位置までの Slice を返す。