pub struct Tokenizer { /* private fields */ }Expand description
Configurable tokenizer with custom operators, keywords, and middleware.
Built-in operators and keywords are always available. Custom registrations take priority over built-ins, checked longest-pattern-first.
ⓘ
let tok = Tokenizer::new()
.op("=~", Token::Custom("RegexMatch".into()))
.keyword("where", Token::Custom("Where".into()))
.transform(|tokens| { /* rewrite and return */ tokens });
let tokens = tok.tokenize("name =~ 'foo.*'")?;Implementations§
Source§impl Tokenizer
impl Tokenizer
Sourcepub fn op(self, pattern: &str, token: Token) -> Self
pub fn op(self, pattern: &str, token: Token) -> Self
Register a custom operator pattern.
The pattern is matched byte-for-byte against the input. Custom ops are checked before built-in ops, longest pattern first.
Sourcepub fn keyword(self, word: &str, token: Token) -> Self
pub fn keyword(self, word: &str, token: Token) -> Self
Register a custom keyword.
Keywords are matched case-insensitively against identifier tokens. Custom keywords override built-in keywords with the same name.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Tokenizer
impl RefUnwindSafe for Tokenizer
impl Send for Tokenizer
impl Sync for Tokenizer
impl Unpin for Tokenizer
impl UnsafeUnpin for Tokenizer
impl UnwindSafe for Tokenizer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more