summary refs log tree commit diff
path: root/src/tokenizer.zig
diff options
context:
space:
mode:
authorBaitinq <manuelpalenzuelamerino@gmail.com>2025-01-18 23:29:31 +0100
committerBaitinq <manuelpalenzuelamerino@gmail.com>2025-01-18 23:29:31 +0100
commit1da51fff503411454d5665bbc325a8a846862b88 (patch)
tree3c651c35d9de5e2897b9a1225d7965b8d3071feb /src/tokenizer.zig
parentExamples: add future examples :^) (diff)
downloadinterpreter-1da51fff503411454d5665bbc325a8a846862b88.tar.gz
interpreter-1da51fff503411454d5665bbc325a8a846862b88.tar.bz2
interpreter-1da51fff503411454d5665bbc325a8a846862b88.zip
Feature: Add basic support for if statements
Diffstat (limited to 'src/tokenizer.zig')
-rw-r--r--src/tokenizer.zig3
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 };