blob: 2e94e4d0e659a5e9bf1e1f77c2e5b2d57a2bbd1d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
const Value = @import("../value.zig").Value;
pub const f = Value{ .misc = .{ .value = .f } };
pub const t = Value{ .misc = .{ .value = .t } };
// Zig API
/// Checks if the value is a boole.
pub fn check(v: Value) bool {
return v.bits == f.bits or v.bits == t.bits;
}
pub fn assert(v: Value) void {
if (!check(v)) {
v.dump();
@panic("not bool");
}
}
pub fn pack(b: bool) Value {
return if (b) t else f;
}
pub fn unpack(v: Value) bool {
assert(v);
return v.bits == t.bits;
}
// Zisp API
pub fn pred(v: Value) Value {
return pack(check(v));
}
|