-
Notifications
You must be signed in to change notification settings - Fork 0
/
test-97.cl
109 lines (101 loc) · 3.1 KB
/
test-97.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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
Class Main inherits IO {
main(): Object {
let x:Comp <- (new Comp).init(3), y:Comp2 <- (new Comp2).init() in {
out_string((true = false).type_name());
x.get_x();
out_string((x = y).type_name());
out_string((x = x).type_name());
out_string((y = y).type_name());
out_string((x < y).type_name());
out_string((y < x).type_name());
out_string((x <= y).type_name());
out_string((y <= x).type_name());
out_string(((y < x) = (x < y)).type_name());
let x: Comp, y: Comp2 in {
out_string((true = false).type_name());
out_string((x = y).type_name());
out_string((x = x).type_name());
out_string((y = y).type_name());
out_string((x < y).type_name());
out_string((y < x).type_name());
out_string((x <= y).type_name());
out_string((y <= x).type_name());
out_string(((y < x) = (x < y)).type_name());
let c:Cat <- (new Cat), d: Dog <- (new Dog) in {
out_string((true = false).type_name());
out_string((c = d).type_name());
out_string((c = c).type_name());
out_string((d = d).type_name());
out_string((c < d).type_name());
out_string((d < c).type_name());
out_string((c <= d).type_name());
out_string((d <= c).type_name());
out_string(((d < c) = (c < d)).type_name());
c.case_break();
};
};
out_string((true = false).type_name());
x.get_x();
out_string((x = y).type_name());
out_string((x = x).type_name());
out_string((y = y).type_name());
out_string((x < y).type_name());
out_string((y < x).type_name());
out_string((x <= y).type_name());
out_string((y <= x).type_name());
out_string(((y < x) = (x < y)).type_name());
}
};
};
Class Comp inherits Main {
x: Int <- 0;
y: Comp2;
init(x: Int): Comp {
{
out_int(x);
x <- x;
out_int(x);
}
};
get_x(): Int {
{
out_int(x);
x;
}
};
};
Class Comp2 inherits Main {
x: Int;
y: Comp;
init(): Comp2 {
{
y <- new Comp;
if self < y then
out_int(y.get_x())
else
out_int(y.get_x())
fi;
if self <= y then
out_int(y.get_x())
else
out_int(y.get_x())
fi;
if self = y then
out_int(y.get_x())
else
out_int(y.get_x())
fi;
self;
}
};
};
Class Cat {
x: Comp;
case_break(): Object {
case x of
x: Comp => "cry";
y: Comp2 => "....";
esac
};
};
Class Dog {};