aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cup/lexer.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/cup/lexer.c b/cup/lexer.c
index d03ea78..b665353 100644
--- a/cup/lexer.c
+++ b/cup/lexer.c
@@ -129,9 +129,18 @@ Token Lexer_next(Lexer *lexer)
return Lexer_make_token(lexer, TOKEN_MINUSEQUALS, 2);
return Lexer_make_token(lexer, TOKEN_MINUS, 1);
}
+
+ case '/': {
+ if (peek(lexer, 1) == '/') {
+ lexer->pos += 2; // skip the '//'
+ while (lexer->pos < lexer->len && lexer->src[lexer->pos] != '\n')
+ lexer->pos++;
+ continue;
+ }
+ return Lexer_make_token(lexer, TOKEN_SLASH, 1);
+ }
case '*': return Lexer_make_token(lexer, TOKEN_STAR, 1);
- case '/': return Lexer_make_token(lexer, TOKEN_SLASH, 1);
case '%': return Lexer_make_token(lexer, TOKEN_PERCENT, 1);