Struct pattern_lexer::token::Tokenizer
source · pub struct Tokenizer<'a> { /* private fields */ }Implementations§
source§impl<'a> Tokenizer<'a>
impl<'a> Tokenizer<'a>
sourcepub fn new<P: Pattern<'a> + 'static>(kind: TokenKind<'a>, pat: P) -> Self
pub fn new<P: Pattern<'a> + 'static>(kind: TokenKind<'a>, pat: P) -> Self
Create a Tokenizer
Example
use regex::Regex;
use lexer::token::{TokenKind, Tokenizer};
// Create a token that matches variable names
let id_regex = Regex::new(r"[a-zA-Z_$][a-zA-Z_$0-9]*").unwrap();
let id = Tokenizer::new(TokenKind::IDENTIFIER, id_regex);sourcepub fn tokenize(&self, value: &'a str) -> Option<Token<'a>>
pub fn tokenize(&self, value: &'a str) -> Option<Token<'a>>
Return a Token from the given string if it find a match
Example
use lexer::token::{TokenKind, Token, Tokenizer};
let kind = TokenKind::KEYWORD("FUNC");
let function = Tokenizer::new(kind.clone(), "fn");
assert!(function.tokenize("test").is_none());
assert_eq!(function.tokenize("fn"), Some(Token::new(kind, "fn")));Trait Implementations§
source§impl<'a> PartialEq for Tokenizer<'a>
impl<'a> PartialEq for Tokenizer<'a>
source§impl<'a> PartialOrd for Tokenizer<'a>
impl<'a> PartialOrd for Tokenizer<'a>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self and other) and is used by the <=
operator. Read moreAuto Trait Implementations§
impl<'a> !RefUnwindSafe for Tokenizer<'a>
impl<'a> !Send for Tokenizer<'a>
impl<'a> !Sync for Tokenizer<'a>
impl<'a> Unpin for Tokenizer<'a>
impl<'a> !UnwindSafe for Tokenizer<'a>
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