-
Notifications
You must be signed in to change notification settings - Fork 11
/
mutual-recursion-in-inheritance-chain-nested-base-1.eo
217 lines (212 loc) · 4.82 KB
/
mutual-recursion-in-inheritance-chain-nested-base-1.eo
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# 2022-07-18T12:42:28.429425500
# j2eo team
+package inheritance
+alias stdlib.lang.class__Object
+alias stdlib.primitives.prim__int
[] > class__VeryOuter
class__Object > super
super > @
[] > new
class__Object.new > super
super > @
"class__VeryOuter" > className
[this] > init
seq > @
TRUE
[] > class__Outer
class__Object > super
super > @
[] > new
class__Object.new > super
super > @
"class__Outer" > className
[this] > init
seq > @
TRUE
[] > class__Base
class__Object > super
super > @
[] > new
class__Object.new > super
super > @
"class__Base" > className
[this] > init
seq > @
variableDeclaration_1
[] > variableDeclaration_1
this.x.write > @
initializerSimple_1
[] > initializerSimple_1
literal_1 > @
[] > literal_1
prim__int.constructor_2 > @
prim__int.new
0
prim__int.constructor_1 > x
prim__int.new
# getX :: null -> int
[this] > getX
seq > @
return_1
[] > return_1
simpleReference_1 > @
[] > simpleReference_1
x > @
# n :: int -> void
[this v] > n
seq > @
statementExpression_1
[] > statementExpression_1
simpleReference_2.write > @
simpleReference_3
[] > simpleReference_2
x > @
[] > simpleReference_3
v > @
# m :: int -> void
[this v] > m
seq > @
statementExpression_2
[] > statementExpression_2
this.n > @
this
simpleReference_4
[] > simpleReference_4
v > @
# null :: null -> void
[this] > constructor
seq > @
initialization
statementExpression_3
this
[] > initialization
this.init > @
this
[] > statementExpression_3
this.super.constructor > @
this.super
# null :: null -> void
[this] > constructor
seq > @
initialization
statementExpression_4
this
[] > initialization
this.init > @
this
[] > statementExpression_4
this.super.constructor > @
this.super
# null :: null -> void
[this] > constructor
seq > @
initialization
statementExpression_5
this
[] > initialization
this.init > @
this
[] > statementExpression_5
this.super.constructor > @
this.super
[] > class__Derived
class__VeryOuter.class__Outer.class__Base > super
super > @
[] > new
class__VeryOuter.class__Outer.class__Base.new > super
super > @
"class__Derived" > className
[this] > init
seq > @
TRUE
# n :: int -> void
[this v] > n
seq > @
statementExpression_6
[] > statementExpression_6
this.m > @
this
simpleReference_5
[] > simpleReference_5
v > @
# null :: null -> void
[this] > constructor
seq > @
initialization
statementExpression_7
this
[] > initialization
this.init > @
this
[] > statementExpression_7
this.super.constructor > @
this.super
[] > class__DerivedAgain
class__Derived > super
super > @
[] > new
class__Derived.new > super
super > @
"class__DerivedAgain" > className
[this] > init
seq > @
TRUE
# null :: null -> void
[this] > constructor
seq > @
initialization
statementExpression_8
this
[] > initialization
this.init > @
this
[] > statementExpression_8
this.super.constructor > @
this.super
[] > class__Test
class__Object > super
super > @
[] > new
class__Object.new > super
super > @
"class__Test" > className
[this] > init
seq > @
TRUE
# main :: String[] -> void
[args] > main
seq > @
variableDeclaration_2
statementExpression_9
cage > d
[] > variableDeclaration_2
d.write > @
initializerSimple_3
[] > initializerSimple_3
instanceCreation_1 > @
[] > instanceCreation_1
class__DerivedAgain.constructor > @
class__DerivedAgain.new
[] > statementExpression_9
d.m > @
d
literal_2
[] > literal_2
prim__int.constructor_2 > @
prim__int.new
12
# null :: null -> void
[this] > constructor
seq > @
initialization
statementExpression_10
this
[] > initialization
this.init > @
this
[] > statementExpression_10
this.super.constructor > @
this.super
[args...] > main
class__Test.main > @
*