|
@@ -25,6 +25,7 @@ lazy_static! {
|
25
|
25
|
Matcher::new(r#"^"(.*)""#, TokenType::String),
|
26
|
26
|
Matcher::new(r#"^SELECT"#, TokenType::Select),
|
27
|
27
|
Matcher::new(r#"^FROM"#, TokenType::From),
|
|
28
|
+ Matcher::new(r#"^WHERE"#, TokenType::Where),
|
28
|
29
|
Matcher::new(r#"^[a-z][a-zA-Z_\-.*]*"#, TokenType::Identfiier),
|
29
|
30
|
Matcher::new(r#"^[0-9]+"#, TokenType::Number),
|
30
|
31
|
Matcher::new(r#"^\*"#, TokenType::Star),
|
|
@@ -90,20 +91,13 @@ mod tests {
|
90
|
91
|
}
|
91
|
92
|
|
92
|
93
|
#[test]
|
93
|
|
- fn it_scans_a_keyword() {
|
|
94
|
+ fn it_scans_keywords() {
|
94
|
95
|
assert_eq!(
|
95
|
|
- scan("SELECT").unwrap(),
|
96
|
|
- vec![Token::new(TokenType::Select, "SELECT")]
|
97
|
|
- )
|
98
|
|
- }
|
99
|
|
-
|
100
|
|
- #[test]
|
101
|
|
- fn it_scans_two_keywords() {
|
102
|
|
- assert_eq!(
|
103
|
|
- scan("SELECT FROM").unwrap(),
|
|
96
|
+ scan("SELECT FROM WHERE").unwrap(),
|
104
|
97
|
vec![
|
105
|
98
|
Token::new(TokenType::Select, "SELECT"),
|
106
|
|
- Token::new(TokenType::From, "FROM")
|
|
99
|
+ Token::new(TokenType::From, "FROM"),
|
|
100
|
+ Token::new(TokenType::Where, "WHERE"),
|
107
|
101
|
]
|
108
|
102
|
)
|
109
|
103
|
}
|