Browse Source

Add commas and dots

main
Dylan Baker 3 years ago
parent
commit
811ef17372
2 changed files with 16 additions and 0 deletions
  1. 12
    0
      src/lexer.rs
  2. 4
    0
      src/token.rs

+ 12
- 0
src/lexer.rs View File

@@ -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!(

+ 4
- 0
src/token.rs View File

@@ -25,6 +25,8 @@ impl std::fmt::Display for Token {
25 25
 
26 26
 #[derive(Clone, Copy, Debug, PartialEq)]
27 27
 pub enum TokenType {
28
+    Comma,
29
+    Dot,
28 30
     From,
29 31
     Identfiier,
30 32
     Number,
@@ -39,6 +41,8 @@ impl std::fmt::Display for TokenType {
39 41
             f,
40 42
             "{}",
41 43
             match self {
44
+                TokenType::Comma => "Comma",
45
+                TokenType::Dot => "Dot",
42 46
                 TokenType::Identfiier => "Identifier",
43 47
                 TokenType::Number => "Number",
44 48
                 TokenType::Star => "Star",

Loading…
Cancel
Save