123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- /* 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
- }
|