Skip to content

Commit 89fdf40

Browse files
committed
Add # to tokenizer
1 parent f69a413 commit 89fdf40

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

zenlang/src/tokenizer.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ pub enum Token {
3232
Comma,
3333
Dot,
3434
Assign,
35+
Hashtag,
3536
If,
3637
Elif,
3738
Else,
@@ -237,6 +238,9 @@ impl Tokenizer {
237238
} else if c == ']' {
238239
self.pos += 1;
239240
return Token::Rbracket;
241+
} else if c == '#' {
242+
self.pos += 1;
243+
return Token::Hashtag;
240244
} else if c == '=' {
241245
self.pos += 1;
242246
if self.pos < self.code.len() {

zenlang/tests/tokenizer.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,3 +425,19 @@ fn tokenizer_test_dot() {
425425
let token = tokenizer.next();
426426
assert!(matches!(token, Token::Number(1.0)));
427427
}
428+
429+
#[test]
430+
fn tokenizer_test_hashtag() {
431+
let mut tokenizer = Tokenizer::new("fn main {return 2 + 1 # 1 + 2; }".into());
432+
tokenizer.next();
433+
tokenizer.next();
434+
tokenizer.next();
435+
tokenizer.next();
436+
tokenizer.next();
437+
tokenizer.next();
438+
tokenizer.next();
439+
let token = tokenizer.next();
440+
assert!(matches!(token, Token::Hashtag));
441+
let token = tokenizer.next();
442+
assert!(matches!(token, Token::Number(1.0)));
443+
}

0 commit comments

Comments
 (0)