1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! A regex-based tokenizer.
//!
//! ```
//! use regex_tokenizer::tokenizer;
//!
//! tokenizer! {
//!     Test
//!
//!     r"[a-zA-Z]\w*" => Identifier
//!     r"\d+" => Number
//!     r"\s+" => _
//! }
//!
//! let tokenizer = Test::new();
//! let query = "Identifier  11";
//!
//! let mut tokens = tokenizer.tokenize(query);
//! let token = tokens.next().unwrap();
//!
//! assert_eq!(token.position, 0);
//! assert_eq!(token.value, "Identifier");
//! assert_eq!(token.type_, Test_types::Identifier);
//!
//! let token = tokens.next().unwrap();
//!
//! assert_eq!(token.position, 12);
//! assert_eq!(token.value, "11");
//! assert_eq!(token.type_, Test_types::Number);
//! ```

mod tokenization;

pub use regex_tokenizer_impl::*;

pub use tokenization::matcher::BuildableMatcher;
pub use tokenization::matcher::Matcher;
pub use tokenization::Tokenizer;