diff options
| author | Mike Buland <mike@xagasoft.com> | 2026-06-04 22:21:50 -0700 |
|---|---|---|
| committer | Mike Buland <mike@xagasoft.com> | 2026-06-04 22:21:50 -0700 |
| commit | 414681bc8b8ccbff81c0878fbf3ff193f7f55e0f (patch) | |
| tree | 8d09ec9e8516f5daf8b01d8f273210398a8e2305 /src/lexer.rs | |
| parent | 4c223b1c4ebfa7a14933229dd4537c825d9ea063 (diff) | |
| download | crimtag-414681bc8b8ccbff81c0878fbf3ff193f7f55e0f.tar.gz crimtag-414681bc8b8ccbff81c0878fbf3ff193f7f55e0f.tar.bz2 crimtag-414681bc8b8ccbff81c0878fbf3ff193f7f55e0f.tar.xz crimtag-414681bc8b8ccbff81c0878fbf3ff193f7f55e0f.zip | |
Lexer is done for now. Now for the scaffold.
ALso the parser is next up. But I want to get some frontend
done so it won't whine at me so much.
The lexer has a lot more to go, I'm sure, but right now it
does all the basics that I need it to do.
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 | ||
