From 5af70ecc0c8eafa7d6d31e16576cb4cf0713f5cc Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Tue, 1 Feb 2022 18:43:43 +0100 Subject: Ensure EOF is handled properly --- src/lexer.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/lexer.c b/src/lexer.c index 56b670b..80ef3ad 100644 --- a/src/lexer.c +++ b/src/lexer.c @@ -262,6 +262,10 @@ tokenize(const StringView *sv) { case '.': { token.type = TOKEN_DOT; } break; case '@': { token.type = TOKEN_AT; } break; default: { + if (c == EOF || c == '\0') { + token.type = TOKEN_EOF; + break; + } size_t n = 1; if (c == '-' && !is_delimiter(scan_peek(&scanner))) { n += scan_number_token(&scanner); @@ -304,14 +308,5 @@ tokenize(const StringView *sv) { } array_push(tokens, token); } - - // Push EOF token. - Token token = (Token){ - .type = TOKEN_EOF, - .line = scanner.line_number, - .col = 1, - }; - array_push(tokens, token); - return tokens; } -- cgit v1.2.1