pub trait Context<'i, I: Input + ?Sized, S: State, TK> {
// Required methods
fn state(&self) -> S;
fn set_state(&mut self, state: S);
fn position(&self) -> usize;
fn set_position(&mut self, position: usize);
fn location(&self) -> Location;
fn set_location(&mut self, location: Location);
fn range(&self) -> Range<usize>;
fn set_range(&mut self, range: Range<usize>);
fn token_ahead(&self) -> Option<&Token<'i, I, TK>>;
fn set_token_ahead(&mut self, token: Token<'i, I, TK>);
fn layout_ahead(&self) -> Option<&'i I>;
fn set_layout_ahead(&mut self, layout: Option<&'i I>);
}
Expand description
Lexer/Parser context is used to keep the state. It provides necessary information to parsers and actions.
Required Methods§
fn set_state(&mut self, state: S)
sourcefn position(&self) -> usize
fn position(&self) -> usize
An absolute position in the input sequence
The input must be indexable type.
fn set_position(&mut self, position: usize)
fn set_location(&mut self, location: Location)
fn set_range(&mut self, range: Range<usize>)
sourcefn token_ahead(&self) -> Option<&Token<'i, I, TK>>
fn token_ahead(&self) -> Option<&Token<'i, I, TK>>
Next token recognized in the input at the current parsing location
fn set_token_ahead(&mut self, token: Token<'i, I, TK>)
sourcefn layout_ahead(&self) -> Option<&'i I>
fn layout_ahead(&self) -> Option<&'i I>
A layout before the token ahead