Rune - Content-locking work 1/2
[rune.git] / tests / cond.d
1 #!/usr/local/bin/rune -x
2 #
3 # Check break/continue
4 #
5
6 limport "sys";
7 import "stdio";
8
9 alias stdio.File *stdout = stdio.stdout;
10
11 public 
12 int
13 main(int ac, char **av)
14 {
15         int i;
16         int j;
17
18         if (i < 10) {
19                 stdout->format("i = %d\n", i);
20                 ++i;
21                 continue if;
22         }
23         for (;;) {
24                 if (i == 10) {
25                         stdout->format("i is 10, continue else\n");
26                         continue else;
27                 } else {
28                         stdout->format("(else) i is %d\n", i);
29                         if (++j >= 10)
30                                 break;
31                         stdout->format(" continue else %d\n", j);
32                         continue else;
33                 }
34                 break;
35         }
36
37         for (j = 0; j < 2; ++j) {
38                 stdout->format("try to break the if\n");
39                 if (i == 10) {
40                         break if;
41                         stdout->format("failed to break if\n");
42                 } else {
43                         stdout->format("improperly broke to else\n");
44                 }
45                 stdout->format("successfully broke the if\n");
46
47                 if (i != 10) {
48                         stdout->format("condition failed1\n");
49                 } else {
50                         stdout->format("break if\n");
51                         break if;
52                 }
53                 stdout->format("broke if\n");
54                 if (i != 10) {
55                         stdout->format("condition failed2\n");
56                 } else {
57                         stdout->format("break else\n");
58                         break else;
59                 }
60                 stdout->format("broke else\n");
61         }
62
63         return(0);
64 }