mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
[Tolk] v0.6 syntax: fun
, import
, var
, types on the right, etc.
Lots of changes, actually. Most noticeable are: - traditional //comments - #include -> import - a rule "import what you use" - ~ found -> !found (for -1/0) - null() -> null - is_null?(v) -> v == null - throw is a keyword - catch with swapped arguments - throw_if, throw_unless -> assert - do until -> do while - elseif -> else if - drop ifnot, elseifnot - drop rarely used operators A testing framework also appears here. All tests existed earlier, but due to significant syntax changes, their history is useless.
This commit is contained in:
parent
5a3e3595d6
commit
e2edadba92
133 changed files with 8196 additions and 2605 deletions
49
tolk-tester/tests/use-before-declare.tolk
Normal file
49
tolk-tester/tests/use-before-declare.tolk
Normal file
|
@ -0,0 +1,49 @@
|
|||
fun main(): int {
|
||||
var c: cell = my_begin_cell().store_int(demo_10, 32).my_end_cell();
|
||||
var cs: slice = my_begin_parse(c);
|
||||
var ten: int = cs~load_int(32);
|
||||
return 1 + demo1(ten) + demo_var;
|
||||
}
|
||||
|
||||
@pure
|
||||
fun my_begin_cell(): builder
|
||||
asm "NEWC";
|
||||
@pure
|
||||
fun my_end_cell(b: builder): cell
|
||||
asm "ENDC";
|
||||
@pure
|
||||
fun my_begin_parse(c: cell): slice
|
||||
asm "CTOS";
|
||||
|
||||
fun demo1(v: int): int {
|
||||
demo_var = 23;
|
||||
return v;
|
||||
}
|
||||
|
||||
global demo_var: int;
|
||||
const demo_10: int = 10;
|
||||
|
||||
fun test1(): int {
|
||||
var demo_var: int = demo_10;
|
||||
var demo_slice: int = demo_20;
|
||||
if (demo_var > 0) {
|
||||
var demo_var: tuple = null;
|
||||
var demo_slice: tuple = null;
|
||||
}
|
||||
return demo_var + demo_slice;
|
||||
}
|
||||
|
||||
global demo_slice: slice;
|
||||
const demo_20: int = 20;
|
||||
|
||||
/**
|
||||
@testcase | 0 | | 34
|
||||
|
||||
@fif_codegen
|
||||
"""
|
||||
test1 PROC:<{
|
||||
//
|
||||
30 PUSHINT // _10
|
||||
}>
|
||||
"""
|
||||
*/
|
Loading…
Add table
Add a link
Reference in a new issue