reglex

A small rust library for creating regex-based lexers

Example

```rust

use reglex::{RuleList, rule_list, lex};

[derive(Debug, PartialEq)]

enum Token { Keyword, Number(u64), Left, Right, }

fn lexer(input: &String) -> Result, usize> { let regexes: RuleList = rulelist! [ "kw" => || Some(Token::Keyword), r"\d+" => |s: &str| Some(Token::Number(s.parse().unwrap())), r"{" => || Some(Token::Left), r"}" => || Some(Token::Right), r"\s" => |_| None ];

lex(&regexes, input)

}

fn main() { asserteq!( lexer(&"kw { 12 53 }".tostring()), Ok(vec![ Token::Keyword, Token::Left, Token::Number(12), Token::Number(53), Token::Right ]) );

assert_eq!(lexer(&"kw ERROR! { 12 53 }".to_string()), Err(3));

} ```