From 4325c809a193b32199336f2ab0deaf4019d75cef Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Tue, 24 Feb 2026 22:32:54 -0500 Subject: [PATCH] lexer: add token for 'break' 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 def73d0..1eb5711 100644 --- a/core/lexer.c +++ b/core/lexer.c @@ -291,6 +291,13 @@ lexer_check_kw(struct rifle_state *state, struct token *tok) return; } + break; + case 'b': + if (strcmp(tok->s, "break") == 0) { + tok->type = TT_BREAK; + return; + } + break; case '.': lexer_check_direc(state, tok); diff --git a/core/parser.c b/core/parser.c index de5480d..562f420 100644 --- a/core/parser.c +++ b/core/parser.c @@ -75,6 +75,7 @@ static const char *toktab[] = { [TT_EXTERN] = qtok(".extern"), [TT_PUB] = qtok(".pub"), [TT_RETURN] = qtok("return"), + [TT_BREAK] = qtok("break"), [TT_LOOP] = qtok("loop"), [TT_VOID] = qtok("void"), [TT_U8] = qtok("u8"), diff --git a/inc/rifle/token.h b/inc/rifle/token.h index 4374294..b04e8c1 100644 --- a/inc/rifle/token.h +++ b/inc/rifle/token.h @@ -25,6 +25,7 @@ typedef enum { TT_EXTERN, /* '.extern' */ TT_PUB, /* '.pub' */ TT_RETURN, /* 'return' */ + TT_BREAK, /* 'break' */ TT_LOOP, /* 'loop' */ TT_VOID, /* 'void' */ TT_U8, /* 'u8' */