about summary refs log tree commit diff
path: root/src/tokenizer.zig
diff options
context:
space:
mode:
authorBaitinq <[email protected]>2025-01-19 13:55:58 +0100
committerBaitinq <[email protected]>2025-01-19 14:09:32 +0100
commit01d27c6e43771353ad9ce1d63f546a122735f0ce (patch)
treea2ed9a4817f770d141af7b59e210439534d28ee0 /src/tokenizer.zig
parentExample: Get fibonacci example working (diff)
downloadpry-lang-01d27c6e43771353ad9ce1d63f546a122735f0ce.tar.gz
pry-lang-01d27c6e43771353ad9ce1d63f546a122735f0ce.tar.bz2
pry-lang-01d27c6e43771353ad9ce1d63f546a122735f0ce.zip
Feature: Add support for boolean values
Diffstat (limited to '')
-rw-r--r--src/tokenizer.zig4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/tokenizer.zig b/src/tokenizer.zig
index e395835..6765ea9 100644
--- a/src/tokenizer.zig
+++ b/src/tokenizer.zig
@@ -16,6 +16,7 @@ pub const TokenType = enum {
 
     // Literals
     NUMBER,
+    BOOLEAN,
 
     // Operators
     EQUALS,
@@ -38,6 +39,7 @@ pub const Token = union(TokenType) {
     ARROW: void,
     IDENTIFIER: []u8,
     NUMBER: i64,
+    BOOLEAN: bool,
     EQUALS: void,
     PLUS: void,
     MINUS: void,
@@ -84,6 +86,8 @@ pub const Tokenizer = struct {
         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.mem.eql(u8, string, "true")) return Token{ .BOOLEAN = true };
+        if (std.mem.eql(u8, string, "false")) return Token{ .BOOLEAN = false };
 
         if (std.fmt.parseInt(i32, string, 10) catch null) |i| return Token{ .NUMBER = i };