about summary refs log tree commit diff
path: root/boot/tests/transpile/loops.cskt
blob: 7121538c50978eb3f03458a946070ba82bdf5fa5 (plain)
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
42
43
while loops are 1:1; c-style and range for-each both desugar to
a `{ var; while { body; iter; } }` block.

<<<

main = fun () {
    var i int = 0
    while i < 10 {
        i++
    }
    for j int = 0, j < 5, j++ {
        var k int = j
    }
    for r int = 0..3 {
        var s int = r
    }
}

>>>

#include "core.c"
void catskill_main(void);
void catskill_main(void) {
    integer i = 0;
    while (i < 10) {
        i++;
    }
    {
        integer j = 0;
        while (j < 5) {
            integer k = j;
            j++;
        }
    }
    {
        integer r = 0;
        while (r < 3) {
            integer s = r;
            r = r + 1;
        }
    }
}
#include "runtime.c"