From 04b253ce260b0a0e5c96525e7b05158b669dc93c Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Mon, 16 Feb 2026 13:12:21 -0500 Subject: [PATCH] lexer: Add token for 'return' keyword Signed-off-by: Ian Moffett --- core/lexer.c | 7 +++++++ core/parser.c | 1 + inc/rifle/token.h | 1 + 3 files changed, 9 insertions(+) diff --git a/core/lexer.c b/core/lexer.c index 7740fef..09e9fc5 100644 --- a/core/lexer.c +++ b/core/lexer.c @@ -261,6 +261,13 @@ lexer_check_kw(struct rifle_state *state, struct token *tok) return; } + break; + case 'r': + if (strcmp(tok->s, "return") == 0) { + tok->type = TT_RETURN; + return; + } + break; case '.': lexer_check_direc(state, tok); diff --git a/core/parser.c b/core/parser.c index 7a3613e..cf2acdc 100644 --- a/core/parser.c +++ b/core/parser.c @@ -74,6 +74,7 @@ static const char *toktab[] = { [TT_STRUCT] = qtok(".struct"), [TT_EXTERN] = qtok(".extern"), [TT_PUB] = qtok(".pub"), + [TT_RETURN] = qtok("return"), [TT_VOID] = qtok("void"), [TT_U8] = qtok("u8"), [TT_U16] = qtok("u16"), diff --git a/inc/rifle/token.h b/inc/rifle/token.h index 1706c83..e5c10ec 100644 --- a/inc/rifle/token.h +++ b/inc/rifle/token.h @@ -24,6 +24,7 @@ typedef enum { TT_STRUCT, /* '.struct' */ TT_EXTERN, /* '.extern' */ TT_PUB, /* '.pub' */ + TT_RETURN, /* 'return' */ TT_VOID, /* 'void' */ TT_U8, /* 'u8' */ TT_U16, /* 'u16' */