|
@@ -23,7 +23,8 @@ lazy_static! {
|
23
|
23
|
static ref WHITESPACE_REGEX: Regex = Regex::new(r"\s").unwrap();
|
24
|
24
|
static ref MATCHERS: Vec<Matcher> = vec![
|
25
|
25
|
Matcher::new(r#""(.*)""#, TokenType::String),
|
26
|
|
- Matcher::new(r#"(SELECT|FROM)"#, TokenType::Keyword),
|
|
26
|
+ Matcher::new(r#"SELECT"#, TokenType::Select),
|
|
27
|
+ Matcher::new(r#"FROM"#, TokenType::From),
|
27
|
28
|
Matcher::new(r#"[a-z][a-zA-Z_\-]*"#, TokenType::Identfiier),
|
28
|
29
|
Matcher::new(r#"[0-9]+"#, TokenType::Number),
|
29
|
30
|
Matcher::new(r#"\*"#, TokenType::Star),
|
|
@@ -82,7 +83,7 @@ mod tests {
|
82
|
83
|
fn it_scans_a_keyword() {
|
83
|
84
|
assert_eq!(
|
84
|
85
|
scan("SELECT").unwrap(),
|
85
|
|
- vec![Token::new(TokenType::Keyword, "SELECT")]
|
|
86
|
+ vec![Token::new(TokenType::Select, "SELECT")]
|
86
|
87
|
)
|
87
|
88
|
}
|
88
|
89
|
|
|
@@ -91,8 +92,8 @@ mod tests {
|
91
|
92
|
assert_eq!(
|
92
|
93
|
scan("SELECT FROM").unwrap(),
|
93
|
94
|
vec![
|
94
|
|
- Token::new(TokenType::Keyword, "SELECT"),
|
95
|
|
- Token::new(TokenType::Keyword, "FROM")
|
|
95
|
+ Token::new(TokenType::Select, "SELECT"),
|
|
96
|
+ Token::new(TokenType::From, "FROM")
|
96
|
97
|
]
|
97
|
98
|
)
|
98
|
99
|
}
|