diff options
| author | 2026-10-14 15:37:28 +0330 | |
|---|---|---|
| committer | 2026-10-14 15:39:03 +0330 | |
| commit | a275919ea9141a9d8c966ccef040666d9bda3b60 (patch) | |
| tree | 5de0bf209aba110f3c80499bb1ceaa5068089b0a /tests/conformance/3-expressions/prec_chains.zc | |
| parent | todo: record each agent's state at the end of the session and the merge order (diff) | |
agent/spec-conformance: unmerged work from previous session
Diffstat (limited to 'tests/conformance/3-expressions/prec_chains.zc')
| -rw-r--r-- | tests/conformance/3-expressions/prec_chains.zc | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/conformance/3-expressions/prec_chains.zc b/tests/conformance/3-expressions/prec_chains.zc new file mode 100644 index 0000000..c8cd31f --- /dev/null +++ b/tests/conformance/3-expressions/prec_chains.zc @@ -0,0 +1,55 @@ +// expect: 0/0/1/1/1/1/1/1/-1/-1/1/1/1/1/13/13/1/1/1/1/3/3/1/1/1/1/1/1/1/1/7/7/1/1/7/7/-1/-1/1/1/0/0/1/1/0/0/1/1/ +// random chains of binary operators of several levels (spec 3.2.1) +include rt; +void pn(int x) { rt.put_n(x); rt.put_c(10); } +fn main() { + pn(12 != 7 <= 1 & 9 + 7 && 2 << 0 & 7 | 4 > 3); + { int v0 = 12, v1 = 7, v2 = 1, v3 = 9, v4 = 7, v5 = 2, v6 = 0, v7 = 7, v8 = 4, v9 = 3; pn(v0 != v1 <= v2 & v3 + v4 && v5 << v6 & v7 | v8 > v9); } + pn(3 >> 1 | 2 >> 1 == 9 * -1 | 0 >> 0 >= 7 <= -1); + { int v0 = 3, v1 = 1, v2 = 2, v3 = 1, v4 = 9, v5 = -1, v6 = 0, v7 = 0, v8 = 7, v9 = -1; pn(v0 >> v1 | v2 >> v3 == v4 * v5 | v6 >> v7 >= v8 <= v9); } + pn(1 > -2 || -2 == 7 ^ 6 * 6 >> 6); + { int v0 = 1, v1 = -2, v2 = -2, v3 = 7, v4 = 6, v5 = 6, v6 = 6; pn(v0 > v1 || v2 == v3 ^ v4 * v5 >> v6); } + pn(2 >= -2 << 4 && 12 && -2 << 7 <= -2 + 6); + { int v0 = 2, v1 = -2, v2 = 4, v3 = 12, v4 = -2, v5 = 7, v6 = -2, v7 = 6; pn(v0 >= v1 << v2 && v3 && v4 << v5 <= v6 + v7); } + pn(5 + 0 * -2 > 4 | -2); + { int v0 = 5, v1 = 0, v2 = -2, v3 = 4, v4 = -2; pn(v0 + v1 * v2 > v3 | v4); } + pn(7 && 6 <= 2 * 4 == -2 ^ 0 == 6 <= -1); + { int v0 = 7, v1 = 6, v2 = 2, v3 = 4, v4 = -2, v5 = 0, v6 = 6, v7 = -1; pn(v0 && v1 <= v2 * v3 == v4 ^ v5 == v6 <= v7); } + pn(9 - -2 & 1 == -1 & 2 & -2 || 2 || 6 + 7 * -2); + { int v0 = 9, v1 = -2, v2 = 1, v3 = -1, v4 = 2, v5 = -2, v6 = 2, v7 = 6, v8 = 7, v9 = -2; pn(v0 - v1 & v2 == v3 & v4 & v5 || v6 || v7 + v8 * v9); } + pn(12 >= -2 | 2 + 3 & 5 | 12); + { int v0 = 12, v1 = -2, v2 = 2, v3 = 3, v4 = 5, v5 = 12; pn(v0 >= v1 | v2 + v3 & v4 | v5); } + pn(12 != -1 | 5 ^ 6 && 9 && 9 + 2); + { int v0 = 12, v1 = -1, v2 = 5, v3 = 6, v4 = 9, v5 = 9, v6 = 2; pn(v0 != v1 | v2 ^ v3 && v4 && v5 + v6); } + pn(3 <= 7 || -1 - -2 != 12 < 4 & 6 >= 12 ^ 12); + { int v0 = 3, v1 = 7, v2 = -1, v3 = -2, v4 = 12, v5 = 4, v6 = 6, v7 = 12, v8 = 12; pn(v0 <= v1 || v2 - v3 != v4 < v5 & v6 >= v7 ^ v8); } + pn(-1 == 3 * 2 | 3 | 2 << 2 <= 6); + { int v0 = -1, v1 = 3, v2 = 2, v3 = 3, v4 = 2, v5 = 2, v6 = 6; pn(v0 == v1 * v2 | v3 | v4 << v5 <= v6); } + pn(5 < 1 << 7 | 6 * 1 == 0 << 2 + -1 + -1); + { int v0 = 5, v1 = 1, v2 = 7, v3 = 6, v4 = 1, v5 = 0, v6 = 2, v7 = -1, v8 = -1; pn(v0 < v1 << v2 | v3 * v4 == v5 << v6 + v7 + v8); } + pn(-1 > 1 < 1 >> 3 - 7 << 7 == 6 | 3 < 5 + 7); + { int v0 = -1, v1 = 1, v2 = 1, v3 = 3, v4 = 7, v5 = 7, v6 = 6, v7 = 3, v8 = 5, v9 = 7; pn(v0 > v1 < v2 >> v3 - v4 << v5 == v6 | v7 < v8 + v9); } + pn(7 * 1 < 3 ^ 3 != 9 < 4 >= 9); + { int v0 = 7, v1 = 1, v2 = 3, v3 = 3, v4 = 9, v5 = 4, v6 = 9; pn(v0 * v1 < v2 ^ v3 != v4 < v5 >= v6); } + pn(2 <= 4 ^ 0 * 6 < 5 + 5 > 12); + { int v0 = 2, v1 = 4, v2 = 0, v3 = 6, v4 = 5, v5 = 5, v6 = 12; pn(v0 <= v1 ^ v2 * v3 < v4 + v5 > v6); } + pn(-2 + 2 | 5 > -2 < 12 * 6 ^ 6); + { int v0 = -2, v1 = 2, v2 = 5, v3 = -2, v4 = 12, v5 = 6, v6 = 6; pn(v0 + v1 | v2 > v3 < v4 * v5 ^ v6); } + pn(4 == 12 == 12 < 2 != -1 - 9); + { int v0 = 4, v1 = 12, v2 = 12, v3 = 2, v4 = -1, v5 = 9; pn(v0 == v1 == v2 < v3 != v4 - v5); } + pn(5 | 3 - 12 & 6 | 1); + { int v0 = 5, v1 = 3, v2 = 12, v3 = 6, v4 = 1; pn(v0 | v1 - v2 & v3 | v4); } + pn(-2 >> 3 | 9 & 12 < 6 < -1 ^ -1 + 2 << 4 < 7); + { int v0 = -2, v1 = 3, v2 = 9, v3 = 12, v4 = 6, v5 = -1, v6 = -1, v7 = 2, v8 = 4, v9 = 7; pn(v0 >> v1 | v2 & v3 < v4 < v5 ^ v6 + v7 << v8 < v9); } + pn(6 && 2 + 9 < -1 > 12 | 3 <= 9 != 2 <= -1); + { int v0 = 6, v1 = 2, v2 = 9, v3 = -1, v4 = 12, v5 = 3, v6 = 9, v7 = 2, v8 = -1; pn(v0 && v1 + v2 < v3 > v4 | v5 <= v6 != v7 <= v8); } + pn(2 & 1 * 2 - 1 | 0); + { int v0 = 2, v1 = 1, v2 = 2, v3 = 1, v4 = 0; pn(v0 & v1 * v2 - v3 | v4); } + pn(3 ^ 2 - -2 || 2 != 9 && 12 + -1 > 5); + { int v0 = 3, v1 = 2, v2 = -2, v3 = 2, v4 = 9, v5 = 12, v6 = -1, v7 = 5; pn(v0 ^ v1 - v2 || v3 != v4 && v5 + v6 > v7); } + pn(1 + 9 && 0 + 9 + 1 >= -2 << 6 == 5 - 2); + { int v0 = 1, v1 = 9, v2 = 0, v3 = 9, v4 = 1, v5 = -2, v6 = 6, v7 = 5, v8 = 2; pn(v0 + v1 && v2 + v3 + v4 >= v5 << v6 == v7 - v8); } + pn(9 != 3 || 7 + 12 < 1 > 2); + { int v0 = 9, v1 = 3, v2 = 7, v3 = 12, v4 = 1, v5 = 2; pn(v0 != v1 || v2 + v3 < v4 > v5); } + return 0; +} |
