blob: 8f8aad56deda707af1224fc2eb3c1660bda7e963 [file] [log] [blame]
/* 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
}