aboutsummaryrefslogtreecommitdiff
path: root/examples/while.sil
blob: fb2778b3c83253fee8768a895ff46b84fc25826f (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
Void sleep(Int n) {
	|~	pushI_a 0
	|~	ccall sleep "I:I"
	|~	pop_b 1
}

Void print(Int n) {
	|~	push_a 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);
}