diff options
| author | melektron <matteo@elektron.work> | 2026-01-14 02:46:14 +0100 |
|---|---|---|
| committer | melektron <matteo@elektron.work> | 2026-01-14 02:46:14 +0100 |
| commit | 4a942f3deacdff8846318d58e7a963f589c189cd (patch) | |
| tree | 17e4a8e316a5f7b6edd02502c6c992f723c853be /src/lexer | |
| parent | b3e2dfca70fbd241766783d665a1b2eff7134d92 (diff) | |
Added support for block comments using /* */ syntax
Diffstat (limited to 'src/lexer')
| -rw-r--r-- | src/lexer/token.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/lexer/token.c b/src/lexer/token.c index 6ada798..84b9714 100644 --- a/src/lexer/token.c +++ b/src/lexer/token.c @@ -82,6 +82,41 @@ Token lexer_next(Lexer *l) return lexer_next(l); } + // Block Comments. + if (s[0] == '/' && s[1] == '*') + { + // skip two start chars + l->pos += 2; + s += 2; + + while (s[0]) + { + // s[len+1] can be at most the null terminator + if (s[0] == '*' && s[1] == '/') + { + // go over */ + l->pos += 2; + s += 2; + break; + } + + if (s[0] == '\n') + { + l->line++; + l->col = 1; + } + else + { + l->col++; + } + + l->pos++; + s++; + } + + return lexer_next(l); + } + // Identifiers. if (is_ident_start(*s)) { |
