From 9283b46a08a1c58c321b6c7ebad1353725c3bc47 Mon Sep 17 00:00:00 2001 From: hachem Date: Fri, 4 Sep 2026 20:00:52 +0200 Subject: feat: add if/else blocks if now guards a { } block or bare statement with an optional else (and now else-if chaining). The branch body becomes a statement list; a bare guarded statement is a list of length one. --- src/lexer/lexer.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/lexer/lexer.c') diff --git a/src/lexer/lexer.c b/src/lexer/lexer.c index 01bbd41..e08a458 100644 --- a/src/lexer/lexer.c +++ b/src/lexer/lexer.c @@ -38,6 +38,7 @@ static enum TokenType identifier_type(const char* start, size_t length) { "struct", 6, TOKEN_STRUCT }, { "stack", 5, TOKEN_STACK }, { "if", 2, TOKEN_IF }, + { "else", 4, TOKEN_ELSE }, { "goto", 4, TOKEN_GOTO }, { "syscall", 7, TOKEN_SYSCALL }, { "byte", 4, TOKEN_BYTE }, @@ -265,6 +266,7 @@ const char* token_type_name(enum TokenType type) case TOKEN_STRUCT: return "struct"; case TOKEN_STACK: return "stack"; case TOKEN_IF: return "if"; + case TOKEN_ELSE: return "else"; case TOKEN_GOTO: return "goto"; case TOKEN_SYSCALL: return "syscall"; case TOKEN_BYTE: return "byte"; -- cgit v1.3