diff options
author | Mathias Magnusson <mathias@magnusson.space> | 2025-06-04 01:12:01 +0200 |
---|---|---|
committer | Mathias Magnusson <mathias@magnusson.space> | 2025-06-04 01:12:01 +0200 |
commit | 55f45123f21e63e883d0afe16d97dcb5dafdd296 (patch) | |
tree | 657052d329915f76e4bf302b8c4c44a781582a41 /src/Lexer.zig | |
parent | 8a9d15683101ab1ea8584f3d5595e5319d7b9a24 (diff) | |
download | huginn-55f45123f21e63e883d0afe16d97dcb5dafdd296.tar.gz |
begin implementing if expressions
registers are used over block boundaries though, which doesn't work very
well so i turned off register freeing to make it look like it works
(unless you create more than 12 values total)
Diffstat (limited to 'src/Lexer.zig')
-rw-r--r-- | src/Lexer.zig | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Lexer.zig b/src/Lexer.zig index cb146c7..f59737e 100644 --- a/src/Lexer.zig +++ b/src/Lexer.zig @@ -19,6 +19,8 @@ pub const Token = struct { // Keywords let, + @"if", + @"else", }; }; @@ -120,7 +122,7 @@ fn identifierOrKeyword(self: *Self) Token { } const value = self.source[self.start..self.pos]; return self.create(switch (std.meta.stringToEnum(Token.Type, value) orelse .invalid) { - .let => .let, + .let, .@"if", .@"else" => |t| t, else => .identifier, }); } |