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
34
35
36
37
38
39
40
41
|
// expect: 1/1/1/1/7/7/2/2/4/4/7/7/8/8/4/4/-3/-3/-2/-2/3/3/-3/-3/12/12/-8/-8/87/87/-2/-2/3/3/
// first operator ^ followed by each other binary operator; operands chosen so that the two groupings differ
include rt;
void pn(int x) { rt.put_n(x); rt.put_c(10); }
fn main() {
pn(5 ^ -8 || 9);
{ int a = 5, b = -8, c = 9; pn(a ^ b || c); }
pn(-2 ^ 5 && -3);
{ int a = -2, b = 5, c = -3; pn(a ^ b && c); }
pn(7 ^ 4 | 4);
{ int a = 7, b = 4, c = 4; pn(a ^ b | c); }
pn(7 ^ -1 & 5);
{ int a = 7, b = -1, c = 5; pn(a ^ b & c); }
pn(4 ^ 4 == 6);
{ int a = 4, b = 4, c = 6; pn(a ^ b == c); }
pn(6 ^ -8 != 12);
{ int a = 6, b = -8, c = 12; pn(a ^ b != c); }
pn(8 ^ -1 < -1);
{ int a = 8, b = -1, c = -1; pn(a ^ b < c); }
pn(4 ^ 2 > 5);
{ int a = 4, b = 2, c = 5; pn(a ^ b > c); }
pn(-3 ^ 8 <= 6);
{ int a = -3, b = 8, c = 6; pn(a ^ b <= c); }
pn(-2 ^ -8 >= 1);
{ int a = -2, b = -8, c = 1; pn(a ^ b >= c); }
pn(3 ^ 0 << 2);
{ int a = 3, b = 0, c = 2; pn(a ^ b << c); }
pn(2 ^ -2 >> 2);
{ int a = 2, b = -2, c = 2; pn(a ^ b >> c); }
pn(9 ^ -2 + 7);
{ int a = 9, b = -2, c = 7; pn(a ^ b + c); }
pn(3 ^ -8 - -3);
{ int a = 3, b = -8, c = -3; pn(a ^ b - c); }
pn(6 ^ 9 * 9);
{ int a = 6, b = 9, c = 9; pn(a ^ b * c); }
pn(-2 ^ -2 / -8);
{ int a = -2, b = -2, c = -8; pn(a ^ b / c); }
pn(3 ^ 12 % -3);
{ int a = 3, b = 12, c = -3; pn(a ^ b % c); }
return 0;
}
|