const std = @import("std");
const TokenType = @import("token_type.zig").TokenType;
+const Object = @import("object.zig").Object;
const Token = @This();
type: TokenType,
lexeme: []const u8,
-literal: ?Literal,
+literal: ?Object,
line: u32,
-pub const Literal = union(enum) {
- string: []const u8,
- number: f64,
- boolean: bool,
- nil: void,
-};
-
-pub fn init(@"type": TokenType, lexeme: []const u8, literal: ?Literal, line: u32) Token {
+pub fn init(@"type": TokenType, lexeme: []const u8, literal: ?Object, line: u32) Token {
return .{
.type = @"type",
.lexeme = lexeme,