aboutsummaryrefslogtreecommitdiff
path: root/examples/while.sil
blob: 08f27f0b93b95ddecf5598038eca5fca53c3efad (plain) (blame)
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
Int sleep(Int n) {
	|~	push_b 0
	|~	ccall sleep "I:I"
	|~	update_b 0 1
}

Void print(Int n) {
	|~	create
	|~	fillI_b 0 0
	|~.d 1 0
	|~	jsr _print_graph
	|~.o 0 0
}

Int loop(Int start, Int end) {
	while (!(start == end)) {
		print(start);
		sleep(start);
		start := start + 1;
	}
	return start;
}

Int main() {
	return loop(1, 5);
}