From 3d05c94b9d8aa964e4ff848c95d5999cec170e04 Mon Sep 17 00:00:00 2001 From: Taylan Kammer Date: Sun, 30 Mar 2025 18:34:00 +0200 Subject: Big cleanup. --- src/libzisp/value/pair.zig | 55 ---------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 src/libzisp/value/pair.zig (limited to 'src/libzisp/value/pair.zig') diff --git a/src/libzisp/value/pair.zig b/src/libzisp/value/pair.zig deleted file mode 100644 index 6ea1edf..0000000 --- a/src/libzisp/value/pair.zig +++ /dev/null @@ -1,55 +0,0 @@ -const std = @import("std"); - -const value = @import("../value.zig"); -const gc = @import("../gc.zig"); - -const ptr = @import("ptr.zig"); - -const Value = value.Value; - -// Zig API - -pub fn check(v: Value) bool { - return ptr.checkZispTag(v, .pair); -} - -pub fn assert(v: Value) void { - if (!check(v)) { - v.dump(); - @panic("not pair"); - } -} - -// Zisp API - -pub fn pred(v: Value) Value { - return value.boole.pack(check(v)); -} - -pub fn cons(v1: Value, v2: Value) Value { - return ptr.pack(@ptrCast(gc.cons(v1, v2)), .pair); -} - -fn getMem(v: Value) *[2]Value { - return @ptrCast(ptr.unpack(v).@"0"); -} - -pub fn car(v: Value) Value { - assert(v); - return getMem(v)[0]; -} - -pub fn cdr(v: Value) Value { - assert(v); - return getMem(v)[1]; -} - -pub fn setcar(v: Value, new: Value) void { - assert(v); - getMem(v)[0] = new; -} - -pub fn setcdr(v: Value, new: Value) void { - assert(v); - getMem(v)[1] = new; -} -- cgit v1.2.3