diff options
| author | Baitinq <[email protected]> | 2025-01-18 23:29:31 +0100 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-01-18 23:29:31 +0100 |
| commit | 79c0f45847dee608747eca6b8e36e68cb9c881e3 (patch) | |
| tree | 3c651c35d9de5e2897b9a1225d7965b8d3071feb /src/tokenizer.zig | |
| parent | Examples: add future examples :^) (diff) | |
| download | interpreter-79c0f45847dee608747eca6b8e36e68cb9c881e3.tar.gz interpreter-79c0f45847dee608747eca6b8e36e68cb9c881e3.tar.bz2 interpreter-79c0f45847dee608747eca6b8e36e68cb9c881e3.zip | |
Feature: Add basic support for if statements
Diffstat (limited to 'src/tokenizer.zig')
| -rw-r--r-- | src/tokenizer.zig | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/tokenizer.zig b/src/tokenizer.zig index 83615b3..f5908b2 100644 --- a/src/tokenizer.zig +++ b/src/tokenizer.zig @@ -7,6 +7,7 @@ const TokenizerError = error{ pub const TokenType = enum { // Keywords LET, + IF, RETURN, ARROW, @@ -31,6 +32,7 @@ pub const TokenType = enum { pub const Token = union(TokenType) { LET: void, + IF: void, RETURN: void, ARROW: void, IDENTIFIER: []u8, @@ -77,6 +79,7 @@ pub const Tokenizer = struct { if (string.len == 0) return TokenizerError.TokenizingError; if (std.mem.eql(u8, string, "let")) return Token{ .LET = void{} }; + if (std.mem.eql(u8, string, "if")) return Token{ .IF = void{} }; if (std.mem.eql(u8, string, "return")) return Token{ .RETURN = void{} }; if (std.fmt.parseInt(i32, string, 10) catch null) |i| return Token{ .NUMBER = i }; |