From aa2b1e194db5af11e8e70af07f304703b9ffe06f Mon Sep 17 00:00:00 2001 From: WormHeamer Date: Sun, 3 Aug 2025 03:11:39 -0400 Subject: add comparison operators, single-line comments --- lex.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lex.c b/lex.c index b9ee85c..922ef17 100644 --- a/lex.c +++ b/lex.c @@ -153,6 +153,12 @@ recurse: goto recurse; } + if (str_starts(str_skip(l->buf, i), S("//"))) { + Str f = str_findc(str_skip(l->buf, i), '\n'); + l->ofs = f.s - l->buf.s; + goto recurse; + } + int start_ofs = i; l->ident = (Str) { &l->buf.s[start_ofs], 0 }; l->pos = (LexSpan) { start_ofs, 0 }; @@ -194,6 +200,21 @@ recurse: if (l->buf.s[i++] == '"') break; } break; + case '<': + switch (l->buf.s[i]) { + case '=': T(TOK_LTE); i++; break; + case '>': T(TOK_NEQ); i++; break; + case '<': T(TOK_SHL); i++; break; + default: T(TOK_LES); break; + } + break; + case '>': + switch (l->buf.s[i]) { + case '=': T(TOK_GTE); i++; break; + case '>': T(TOK_SHR); i++; break; + default: T(TOK_GTR); break; + } + break; } } if (l->tok == TOK_MAX) { -- cgit v1.2.3