|
@@ -28,6 +28,8 @@ lazy_static! {
|
28
|
28
|
Matcher::new(r#"^[a-z][a-zA-Z_\-]*"#, TokenType::Identfiier),
|
29
|
29
|
Matcher::new(r#"^[0-9]+"#, TokenType::Number),
|
30
|
30
|
Matcher::new(r#"^\*"#, TokenType::Star),
|
|
31
|
+ Matcher::new(r#"^,"#, TokenType::Comma),
|
|
32
|
+ Matcher::new(r#"^\."#, TokenType::Dot),
|
31
|
33
|
];
|
32
|
34
|
}
|
33
|
35
|
|
|
@@ -128,6 +130,16 @@ mod tests {
|
128
|
130
|
assert_eq!(scan("*").unwrap(), vec![Token::new(TokenType::Star, "*")])
|
129
|
131
|
}
|
130
|
132
|
|
|
133
|
+ #[test]
|
|
134
|
+ fn it_scans_a_comma() {
|
|
135
|
+ assert_eq!(scan(",").unwrap(), vec![Token::new(TokenType::Comma, ",")])
|
|
136
|
+ }
|
|
137
|
+
|
|
138
|
+ #[test]
|
|
139
|
+ fn it_scans_a_dot() {
|
|
140
|
+ assert_eq!(scan(".").unwrap(), vec![Token::new(TokenType::Dot, ".")])
|
|
141
|
+ }
|
|
142
|
+
|
131
|
143
|
#[test]
|
132
|
144
|
fn it_scans_a_whole_expression() {
|
133
|
145
|
assert_eq!(
|