From bfaf7aa47595c816fb957bea5e627ca19d5185aa Mon Sep 17 00:00:00 2001 From: Matteo Flebus Date: Tue, 13 Jan 2026 17:45:15 +0100 Subject: [PATCH] fix(lexer): get_token => peek_token and pop_token --- src/lexer/lexer.c | 13 ++++++++++--- src/lexer/lexer.h | 13 +++++++++++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/lexer/lexer.c b/src/lexer/lexer.c index 0cc237c..b768de5 100644 --- a/src/lexer/lexer.c +++ b/src/lexer/lexer.c @@ -77,7 +77,7 @@ char *stream_init(void) return stream; } -char *get_token(void) +char *peek_token(void) { char *stream = stream_init(); @@ -103,7 +103,14 @@ char *get_token(void) i++; } - save_state(stream, i); - return new_token(stream, i); } + +char *pop_token(void) +{ + char *token = peek_token(); + + save_state(stream, i); + + return token; +} diff --git a/src/lexer/lexer.h b/src/lexer/lexer.h index 7e7ca10..b1b8827 100644 --- a/src/lexer/lexer.h +++ b/src/lexer/lexer.h @@ -3,10 +3,19 @@ #include -/* @return: char*, the next token +/* + * @brief: returns the next (newly allocated) token without consuming it. + * if end of input is reached, returns EOF. * */ -char *get_token(void); +char *peek_token(void); + +/* + * @brief: returns the next (newly allocated) token and consumes it. + * if end of input is reached, returns EOF. + * + */ +char *pop_token(void); /* * @warning: NOT IMPLEMENTED.