diff options
Diffstat (limited to 'src/parser.c')
-rw-r--r-- | src/parser.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/parser.c b/src/parser.c index ef7d336..57efd96 100644 --- a/src/parser.c +++ b/src/parser.c | |||
@@ -21,11 +21,17 @@ symbol_hash(const HashTable *table, void *key) { | |||
21 | 21 | ||
22 | Token | 22 | Token |
23 | peek_token(const Parser *parser) { | 23 | peek_token(const Parser *parser) { |
24 | if (parser->current >= array_size(parser->tokens)) { | ||
25 | return parser->tokens[array_size(parser->tokens) - 1]; | ||
26 | } | ||
24 | return parser->tokens[parser->current]; | 27 | return parser->tokens[parser->current]; |
25 | } | 28 | } |
26 | 29 | ||
27 | Token | 30 | Token |
28 | next_token(Parser *parser) { | 31 | next_token(Parser *parser) { |
32 | if (parser->current >= array_size(parser->tokens)) { | ||
33 | return parser->tokens[array_size(parser->tokens) - 1]; | ||
34 | } | ||
29 | return parser->tokens[parser->current++]; | 35 | return parser->tokens[parser->current++]; |
30 | } | 36 | } |
31 | 37 | ||
@@ -424,12 +430,6 @@ parse_tree(Parser *parser, Errors *errors) { | |||
424 | break; | 430 | break; |
425 | } break; | 431 | } break; |
426 | } | 432 | } |
427 | error_push(errors, (Error){ | ||
428 | .type = ERR_TYPE_PARSER, | ||
429 | .value = ERR_EOF_REACHED, | ||
430 | .line = tok.line, | ||
431 | .col = tok.col, | ||
432 | }); | ||
433 | return NULL; | 433 | return NULL; |
434 | } | 434 | } |
435 | 435 | ||