From 3085c3e1538baebf04d1e84d6e7d763cf474d9bb Mon Sep 17 00:00:00 2001 From: Techatrix <19954306+Techatrix@users.noreply.github.com> Date: Fri, 20 Jan 2023 22:39:19 +0100 Subject: [PATCH] implement big int --- src/ComptimeInterpreter.zig | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/ComptimeInterpreter.zig b/src/ComptimeInterpreter.zig index 196ddb1..ba620cd 100644 --- a/src/ComptimeInterpreter.zig +++ b/src/ComptimeInterpreter.zig @@ -548,7 +548,13 @@ pub fn interpret( } else IPKey{ .int_u64_value = try std.fmt.parseInt(u64, s, 0), }, - .big_int => @panic("TODO: implement big int"), + .big_int => |base| blk: { + var big_int = try std.math.big.int.Managed.init(interpreter.allocator); + defer big_int.deinit(); + const prefix_length: usize = if (base != .decimal) 2 else 0; + try big_int.setString(@enumToInt(base), s[prefix_length..]); + break :blk IPKey{ .int_big_value = big_int.toConst() }; + }, .failure => return error.CriticalAstFailure, }, );