-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest-2.cl
92 lines (76 loc) · 1.77 KB
/
test-2.cl
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Class Three inherits Object {
f(): One {
new One
};
init(): One {
self.f()
};
};
Class One inherits Three {
g(): Object {
f()
};
};
Class Two inherits One {
questionableChoice() : One {
self
};
};
Class Main inherits IO {
not_thing: One;
thing: One <- (new One).init();
result: String <- "";
main(): Object{
{
let done: Bool, new_thing: One <- thing.copy() in
{
while not done loop
let input: String <- in_string() in
if input = "" then
done <- true
else
{
result <- input;
new_thing <- new_thing.copy();
}
fi
pool;
};
isvoid thing;
not isvoid thing;
thing.f();
}
};
};
Class AttemptCase {
number: Int <- 1;
number2: Int <- ~number;
thing1: One;
thing2: AttemptCase;
thing3: One <- (new One).init();
init(): AttemptCase {
{
case (new Three).init() of
id_1: One => 7;
id_2: Two => "asdf";
id_3: Bool => true;
esac;
number / 2;
number / 0;
number <- number / 0;
if thing1 < thing2 then
self
else
if thing1 = thing3 then
self
else
if thing1 <= thing2 then
self
else
new AttemptCase
fi
fi
fi;
}
};
};