diff options
Diffstat (limited to 'src/lexer.rs')
| -rw-r--r-- | src/lexer.rs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/lexer.rs b/src/lexer.rs index 46651c4..e80e461 100644 --- a/src/lexer.rs +++ b/src/lexer.rs | |||
| @@ -39,7 +39,7 @@ fn is_valid_token_char( c: char ) -> bool { | |||
| 39 | return false; | 39 | return false; |
| 40 | } | 40 | } |
| 41 | match c { | 41 | match c { |
| 42 | 'a'..'z' | 'A'..'Z' | '0'..'9' => true, | 42 | 'a'..'z' | 'A'..'Z' | '0'..'9' | '_' | '-' => true, |
| 43 | _ => false | 43 | _ => false |
| 44 | } | 44 | } |
| 45 | } | 45 | } |
| @@ -157,9 +157,14 @@ impl<'a> Lexer<'a> { | |||
| 157 | 157 | ||
| 158 | fn parse_token(&mut self) -> Option<Symbol<'a>> { | 158 | fn parse_token(&mut self) -> Option<Symbol<'a>> { |
| 159 | self.skip_ws(); | 159 | self.skip_ws(); |
| 160 | if let Some(chr) = self.cur() && chr == '"' { | 160 | match self.cur() { |
| 161 | // Literal string | 161 | Some('"') => { |
| 162 | return self.parse_literal_str(); | 162 | return self.parse_literal_str(); |
| 163 | } | ||
| 164 | Some('=') => { | ||
| 165 | return Some(Symbol::Equals); | ||
| 166 | } | ||
| 167 | _ => {} | ||
| 163 | } | 168 | } |
| 164 | let start = self.cur_index(); | 169 | let start = self.cur_index(); |
| 165 | 170 | ||
