summaryrefslogtreecommitdiff
path: root/lexer.c
diff options
context:
space:
mode:
Diffstat (limited to 'lexer.c')
-rw-r--r--lexer.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/lexer.c b/lexer.c
index e55f97e..dd97785 100644
--- a/lexer.c
+++ b/lexer.c
@@ -43,6 +43,7 @@ static unsigned int two_wide_tok(const char *s)
case PAIR('+', '+'): return TOK_INCREMENT;
case PAIR('=', '='): return TOK_COMP_EQ;
case PAIR('!', '='): return TOK_COMP_NEQ;
+ case PAIR('/', '/'): return TOK_COMMENT;
default: return TOK_NONE;
}
}
@@ -73,6 +74,7 @@ Token *lexer(const char *s)
toks[tok_i].column = column;
toks[tok_i].line = line;
const char *rem_s = s;
+ const int two_wide = two_wide_tok(s);
if (*s == '"') {
const char *end = strchr(s + 1, '"');
if (end == NULL) {
@@ -120,8 +122,11 @@ Token *lexer(const char *s)
toks[tok_i].type = TOK_INTEGER;
tok_i += 1;
s += len;
- } else if (two_wide_tok(s) != TOK_NONE) {
- toks[tok_i].type = two_wide_tok(s);
+ } else if (two_wide == TOK_COMMENT) {
+ while (*s != '\0' && *s != '\n')
+ s += 1;
+ } else if (two_wide != TOK_NONE) {
+ toks[tok_i].type = two_wide;
toks[tok_i].v.c = *s;
tok_i += 1;
s += 2;