package jazz.lang; /////////////////////////////////////////////////////////////////////////////// // // Booleans // /////////////////////////////////////////////////////////////////////////////// public native final class boolean implements BooleanAlgebra { } /////////////////////////////////////////////////////////////////////////////// // // Implementation // /////////////////////////////////////////////////////////////////////////////// Builtin.(&)(x@boolean, y@boolean) = x ? y : (y ? false : false); Builtin.(|)(x@boolean, y@boolean) = x ? (y ? true : true) : y; Builtin.(^)(x@boolean, y@boolean) = (x & !y) | (y & !x); Builtin.(~)(x@boolean) = !x; Builtin.cond(x@boolean, y@boolean, z@boolean) = x ? y : z;