klex 0.1.2

A simple lexer (tokenizer) generator for Rust
Documentation
// Example lexer specification for klex
// This will generate a simple calculator lexer

%%
[0-9]+ -> Number
Number '.' [0-9]+ -> Float
[a-zA-Z_][a-zA-Z0-9_]* -> Identifier
'+' -> Plus
'-' -> Minus
'*' -> Multiply
'/' -> Divide
'(' -> LParen
')' -> RParen
[ \t]+ -> Whitespace
\n -> Newline
%%
// Example suffix code - main function, tests, etc.
#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_lexer() {
        let input = "123 + abc";
        let mut lexer = Lexer::from_str(input);
        
        let token = lexer.next_token().unwrap();
        assert_eq!(token.kind, TokenKind::Number);
        assert_eq!(token.text, "123");
        
        let token = lexer.next_token().unwrap();
        assert_eq!(token.kind, TokenKind::Whitespace);
        
        let token = lexer.next_token().unwrap();
        assert_eq!(token.kind, TokenKind::Plus);
        assert_eq!(token.text, "+");
    }
}