1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-02-14 12:12:21 +00:00
ton/tolk-tester/tests/if_stmt.tolk
tolk-vm 7a1602f591
[Tolk] Support syntax tensorVar.0 and tupleVar.0
It works both for reading and writing:
> var t = (1, 2);
> t.0;      // 1
> t.0 = 5;
> t;        // (5, 2)

It also works for typed/untyped tuples, producing INDEX and SETINDEX.

Global tensors and tuples works. Nesting `t.0.1.2` works. `mutate` works.
Even mixing tuples inside tensors inside a global for writing works.
2025-01-27 15:30:21 +03:00

66 lines
1.1 KiB
Text

@method_id(101)
fun test1(x: int): int {
if (x > 200) {
return 200;
} else if (x > 100) {
return 100;
} else if (!(x <= 50)) {
if (!(x > 90)) {
return x;
} else {
return 90;
}
} else {
return 0;
}
}
@method_id(102)
fun test2(x: int) {
if (x == 20) { return 20; }
if (x != 50) { return 50; }
if (x == 0) { return 0; }
return -1;
}
@method_id(103)
fun test3(x: int) {
if (!(x != 20)) { return 20; }
if (!(x == 50)) { return 50; }
if (!x) { return 0; }
return -1;
}
fun main() {
}
/**
@testcase | 101 | 0 | 0
@testcase | 101 | 1000 | 200
@testcase | 101 | 150 | 100
@testcase | 101 | -1 | 0
@testcase | 101 | 87 | 87
@testcase | 101 | 94 | 90
@testcase | 102 | 20 | 20
@testcase | 102 | 40 | 50
@testcase | 102 | 50 | -1
@testcase | 103 | 20 | 20
@testcase | 103 | 40 | 50
@testcase | 103 | 50 | -1
@fif_codegen
"""
test3 PROC:<{
// x
DUP // x x
20 NEQINT // x '2
IFNOTJMP:<{ // x
DROP //
20 PUSHINT // '3=20
}> // x
DUP // x x
50 EQINT // x '5
IFNOTJMP:<{ // x
"""
*/