Browse Source

Allow hyphens in identifiers

main
Dylan Baker 3 years ago
parent
commit
c00ba08cb1
1 changed files with 9 additions and 1 deletions
  1. 9
    1
      src/lexer.rs

+ 9
- 1
src/lexer.rs View File

@@ -50,7 +50,7 @@ lazy_static! {
50 50
     static ref MATCHERS: Vec<Matcher> = vec![
51 51
         Matcher::new(r#""(.*)""#, TokenType::String),
52 52
         Matcher::new(r#"(SELECT|FROM)"#, TokenType::Keyword),
53
-        Matcher::new(r#"[a-z][a-zA-Z_]*"#, TokenType::Identfiier),
53
+        Matcher::new(r#"[a-z][a-zA-Z_\-]*"#, TokenType::Identfiier),
54 54
         Matcher::new(r#"[0-9]+"#, TokenType::Number),
55 55
         Matcher::new(r#"\*"#, TokenType::Star),
56 56
     ];
@@ -132,6 +132,14 @@ mod tests {
132 132
         )
133 133
     }
134 134
 
135
+    #[test]
136
+    fn it_allows_hyphens_in_identifiers() {
137
+        assert_eq!(
138
+            scan("abc-def").unwrap(),
139
+            vec![Token::new(TokenType::Identfiier, "abc-def")]
140
+        )
141
+    }
142
+
135 143
     #[test]
136 144
     fn it_scans_a_star() {
137 145
         assert_eq!(scan("*").unwrap(), vec![Token::new(TokenType::Star, "*")])

Loading…
Cancel
Save