summaryrefslogtreecommitdiff
path: root/src/tokenize.zig
diff options
context:
space:
mode:
authorNic Gaffney <gaffney_nic@protonmail.com>2025-02-19 18:07:15 -0600
committerNic Gaffney <gaffney_nic@protonmail.com>2025-02-19 18:07:15 -0600
commitfe851bcb542dac5f3af312da02ff617aa817f118 (patch)
tree9f492f460f12e3b31d5add43e8a623fdb5cb4609 /src/tokenize.zig
parenteacf9771c53f75a2b4ebe91070a32d5e9a73e524 (diff)
downloadcalico-fe851bcb542dac5f3af312da02ff617aa817f118.tar.gz
Fixed if statements
Diffstat (limited to 'src/tokenize.zig')
-rw-r--r--src/tokenize.zig39
1 files changed, 36 insertions, 3 deletions
diff --git a/src/tokenize.zig b/src/tokenize.zig
index 2c536db..038a4d3 100644
--- a/src/tokenize.zig
+++ b/src/tokenize.zig
@@ -94,9 +94,9 @@ pub const Token = union(TokenType) {
':' => .colon,
'[' => .openBracket,
']' => .closeBracket,
- else => {
- // std.debug.print("{c}: ", .{char});
- return TokenizeError.UnknownToken;
+ else => errblk: {
+ std.debug.print("{c}: ", .{char});
+ break :errblk TokenizeError.UnknownToken;
},
};
}
@@ -111,6 +111,39 @@ pub const Token = union(TokenType) {
if (eql(u8, str, "import")) return .import;
return Token{ .ident = str };
}
+
+ pub fn toString(self: Token) []const u8 {
+ return switch (self) {
+ .ident => "IDENT",
+ .stringLit => "STRINGlIT",
+ .intLit => "INTlIT",
+ .charLit => "CHARlIT",
+ .ifstmt => "IFSTMT",
+ .constant => "CONSTANT",
+ .variable => "VARIABLE",
+ .exit => "EXIT",
+ .fun => "FUN",
+ .import => "IMPORT",
+ .plus => "PLUS",
+ .minus => "MINUS",
+ .star => "STAR",
+ .slash => "SLASH",
+ .semiCol => "SEMIcOL",
+ .equal => "EQUAL",
+ .eqleql => "EQLEQL",
+ .lessthan => "LESSTHAN",
+ .greaterthan => "GREATERTHAN",
+ .openBrace => "OPENbRACE",
+ .closeBrace => "CLOSEbRACE",
+ .openParen => "OPENpAREN",
+ .closeParen => "CLOSEpAREN",
+ .openBracket => "OPENbRACKET",
+ .closeBracket => "CLOSEbRACKET",
+ .arrow => "ARROW",
+ .colon => "COLON",
+ .comma => "COMMA",
+ };
+ }
};
pub fn checkType(tok: Token, comptime typ: TokenType) bool {