/* More operators tests */ /* Conjure >=3 only!!! */ // assign ops int aplus(x, y) { int t = x; t += y; return t; } int aminus(x, y) { int t = x; t -= y; return t; } int ashl(x, y) { int t = x; t <<= y; return t; } int adiv(x, y) { int t = x; t /= y; return t; } int amult(x, y) { int t = x; t *= y; return t; } int amod(x, y) { int t = x; t %= y; return t; } int aor(x, y) { int t = x; t |= y; return t; } int aand(x, y) { int t = x; t &= y; return t; } int axor(x, y) { int t = x; t ^= y; return t; } int ashr(x, y) { int t = x; t >>= y; return t; } // binary ops int plus(x, y) { return x + y; } int minus(x, y) { return x - y; } int shl(x, y) { return x << y; } int div(x, y) { return x / y; } int mult(x, y) { return x * y; } int mod(x, y) { return x % y; } int or(x, y) { return x | y; } int and(x, y) { return x & y; } int xor(x, y) { return x ^ y; } int shr(x, y) { return x >> y; } int assign() { int a = aplus(2, 3); // 5 int b = ashl(a, 2); // 20 int c = aminus(b, 2); // 18 int d = adiv(c, 2); // 9 int e = amult(d, c); // 162 int f = amod(e, 10); // 2 int g = aor(f, 45); // 47 int h = aand(g, 48); // 32 int j = axor(h, h); // 0 int k = aor(j, 65535); // 65535 int l = ashr(k, 3); // 8191 return l; } int binary() { int a = plus(2, 3); // 5 int b = shl(a, 2); // 20 int c = minus(b, 2); // 18 int d = div(c, 2); // 9 int e = mult(d, c); // 162 int f = mod(e, 10); // 2 int g = or(f, 45); // 47 int h = and(g, 48); // 32 int j = xor(h, h); // 0 int k = or(j, 65535); // 65535 int l = shr(k, 3); // 8191 return l; } int zero() { return 0; } int unary() { int i = ~zero(); // -1 int j = -i; // 1 ++j; // 2 ++++j; // 4 --j; // 3 return j; } int main() { return assign() + binary() + unary(); // 16385 }