Lexer

Trait Lexer 

Source
pub trait Lexer<'text> {
    type Token: ScanToken;

    // Required methods
    fn scanner(&self) -> &Scanner<'text>;
    fn scanner_mut(&mut self) -> &mut Scanner<'text>;

    // Provided methods
    fn next_token(&mut self) -> Option<(Self::Token, TokenSpan<'text>)> { ... }
    fn peek_token(&self) -> Option<(Self::Token, TokenSpan<'text>)> { ... }
    fn cursor_pos(&self) -> usize { ... }
    fn set_cursor_pos(&mut self, pos: usize) -> usize { ... }
    fn reset(&mut self) -> usize { ... }
}

Required Associated Types§

Required Methods§

Source

fn scanner(&self) -> &Scanner<'text>

Source

fn scanner_mut(&mut self) -> &mut Scanner<'text>

Provided Methods§

Source

fn next_token(&mut self) -> Option<(Self::Token, TokenSpan<'text>)>

Source

fn peek_token(&self) -> Option<(Self::Token, TokenSpan<'text>)>

Source

fn cursor_pos(&self) -> usize

Source

fn set_cursor_pos(&mut self, pos: usize) -> usize

Source

fn reset(&mut self) -> usize

Implementors§

Source§

impl<'text> Lexer<'text> for CLexer<'text>

Source§

impl<'text> Lexer<'text> for CppLexer<'text>

Source§

impl<'text> Lexer<'text> for CssLexer<'text>

Source§

impl<'text> Lexer<'text> for JsonCLexer<'text>

Source§

impl<'text> Lexer<'text> for JsonLexer<'text>

Source§

impl<'text> Lexer<'text> for PythonLexer<'text>

Source§

impl<'text> Lexer<'text> for RustLexer<'text>

Source§

impl<'text> Lexer<'text> for ScssLexer<'text>