layout_builders: Introduced ResolutionBMizer (for future refactoring)
[nit.git] / c_src / compiling___table_computation._sep.c
1 /* This C file is generated by NIT to compile module compiling___table_computation. */
2 #include "compiling___table_computation._sep.h"
3 val_t compiling___table_computation___ColorContext___color(val_t p0, val_t p1){
4 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_compiling___table_computation;
9 fra.me.line = 29;
10 fra.me.meth = LOCATE_compiling___table_computation___ColorContext___color;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 2;
13 fra.me.nitni_local_ref_head = NULL;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[1] = NIT_NULL;
16 fra.me.REG[0] = p0;
17 fra.me.REG[1] = p1;
18 /* compiling/table_computation.nit:32 */
19 REGB0 = TAG_Bool(ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
20 if (UNTAG_Bool(REGB0)) {
21 } else {
22 nit_abort("Uninitialized attribute %s", "_colors", LOCATE_compiling___table_computation, 32);
23 }
24 fra.me.REG[0] = ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]);
25 fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
26 REGB0 = fra.me.REG[1];
27 goto label1;
28 label1: while(0);
29 stack_frame_head = fra.me.prev;
30 return REGB0;
31 }
32 val_t compiling___table_computation___ColorContext___has_color(val_t p0, val_t p1){
33 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34 val_t REGB0;
35 val_t tmp;
36 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37 fra.me.file = LOCATE_compiling___table_computation;
38 fra.me.line = 35;
39 fra.me.meth = LOCATE_compiling___table_computation___ColorContext___has_color;
40 fra.me.has_broke = 0;
41 fra.me.REG_size = 2;
42 fra.me.nitni_local_ref_head = NULL;
43 fra.me.REG[0] = NIT_NULL;
44 fra.me.REG[1] = NIT_NULL;
45 fra.me.REG[0] = p0;
46 fra.me.REG[1] = p1;
47 /* compiling/table_computation.nit:38 */
48 REGB0 = TAG_Bool(ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
49 if (UNTAG_Bool(REGB0)) {
50 } else {
51 nit_abort("Uninitialized attribute %s", "_colors", LOCATE_compiling___table_computation, 38);
52 }
53 fra.me.REG[0] = ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]);
54 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
55 goto label1;
56 label1: while(0);
57 stack_frame_head = fra.me.prev;
58 return REGB0;
59 }
60 void compiling___table_computation___ColorContext___color__eq(val_t p0, val_t p1, val_t p2){
61 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
62 val_t REGB0;
63 val_t REGB1;
64 val_t REGB2;
65 val_t REGB3;
66 val_t REGB4;
67 val_t tmp;
68 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
69 fra.me.file = LOCATE_compiling___table_computation;
70 fra.me.line = 41;
71 fra.me.meth = LOCATE_compiling___table_computation___ColorContext___color__eq;
72 fra.me.has_broke = 0;
73 fra.me.REG_size = 4;
74 fra.me.nitni_local_ref_head = NULL;
75 fra.me.REG[0] = NIT_NULL;
76 fra.me.REG[1] = NIT_NULL;
77 fra.me.REG[2] = NIT_NULL;
78 fra.me.REG[3] = NIT_NULL;
79 fra.me.REG[0] = p0;
80 fra.me.REG[1] = p1;
81 REGB0 = p2;
82 /* compiling/table_computation.nit:44 */
83 REGB1 = TAG_Bool(ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
84 if (UNTAG_Bool(REGB1)) {
85 } else {
86 nit_abort("Uninitialized attribute %s", "_colors", LOCATE_compiling___table_computation, 44);
87 }
88 fra.me.REG[2] = ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]);
89 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], REGB0);
90 /* compiling/table_computation.nit:46 */
91 REGB1 = TAG_Int(0);
92 REGB2 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[1])(fra.me.REG[1]);
93 /* ../lib/standard/kernel.nit:352 */
94 while(1) {
95 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
96 if (UNTAG_Bool(REGB3)) {
97 } else {
98 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
99 }
100 /* ../lib/standard/kernel.nit:232 */
101 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
102 /* ../lib/standard/kernel.nit:352 */
103 if (UNTAG_Bool(REGB3)) {
104 /* compiling/table_computation.nit:46 */
105 REGB3 = REGB1;
106 /* compiling/table_computation.nit:47 */
107 REGB4 = TAG_Bool(ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
108 if (UNTAG_Bool(REGB4)) {
109 } else {
110 nit_abort("Uninitialized attribute %s", "_colors", LOCATE_compiling___table_computation, 47);
111 }
112 fra.me.REG[2] = ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]);
113 fra.me.REG[3] = CALL_compiling___table_computation___TableElt___item(fra.me.REG[1])(fra.me.REG[1], REGB3);
114 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], REGB0);
115 /* compiling/table_computation.nit:48 */
116 REGB3 = TAG_Int(1);
117 /* ../lib/standard/kernel.nit:235 */
118 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
119 /* compiling/table_computation.nit:48 */
120 REGB0 = REGB3;
121 /* ../lib/standard/kernel.nit:354 */
122 REGB3 = TAG_Int(1);
123 /* ../lib/standard/kernel.nit:235 */
124 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
125 /* ../lib/standard/kernel.nit:354 */
126 REGB1 = REGB3;
127 } else {
128 /* ../lib/standard/kernel.nit:352 */
129 goto label1;
130 }
131 }
132 label1: while(0);
133 stack_frame_head = fra.me.prev;
134 return;
135 }
136 void compiling___table_computation___ColorContext___init(val_t p0, int* init_table){
137 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___ColorContext].i;
138 struct {struct stack_frame_t me;} fra;
139 val_t tmp;
140 if (init_table[itpos0]) return;
141 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
142 fra.me.file = LOCATE_compiling___table_computation;
143 fra.me.line = 0;
144 fra.me.meth = LOCATE_compiling___table_computation___ColorContext___init;
145 fra.me.has_broke = 0;
146 fra.me.REG_size = 0;
147 fra.me.nitni_local_ref_head = NULL;
148 stack_frame_head = fra.me.prev;
149 init_table[itpos0] = 1;
150 return;
151 }
152 val_t compiling___table_computation___TableInformation___max_class_table_length(val_t p0){
153 struct {struct stack_frame_t me;} fra;
154 val_t REGB0;
155 val_t tmp;
156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
157 fra.me.file = LOCATE_compiling___table_computation;
158 fra.me.line = 56;
159 fra.me.meth = LOCATE_compiling___table_computation___TableInformation___max_class_table_length;
160 fra.me.has_broke = 0;
161 fra.me.REG_size = 1;
162 fra.me.nitni_local_ref_head = NULL;
163 fra.me.REG[0] = NIT_NULL;
164 fra.me.REG[0] = p0;
165 /* compiling/table_computation.nit:56 */
166 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableInformation____max_class_table_length(fra.me.REG[0])!=NIT_NULL);
167 if (UNTAG_Bool(REGB0)) {
168 } else {
169 nit_abort("Uninitialized attribute %s", "_max_class_table_length", LOCATE_compiling___table_computation, 56);
170 }
171 REGB0 = ATTR_compiling___table_computation___TableInformation____max_class_table_length(fra.me.REG[0]);
172 stack_frame_head = fra.me.prev;
173 return REGB0;
174 }
175 void compiling___table_computation___TableInformation___max_class_table_length__eq(val_t p0, val_t p1){
176 struct {struct stack_frame_t me;} fra;
177 val_t REGB0;
178 val_t tmp;
179 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
180 fra.me.file = LOCATE_compiling___table_computation;
181 fra.me.line = 56;
182 fra.me.meth = LOCATE_compiling___table_computation___TableInformation___max_class_table_length__eq;
183 fra.me.has_broke = 0;
184 fra.me.REG_size = 1;
185 fra.me.nitni_local_ref_head = NULL;
186 fra.me.REG[0] = NIT_NULL;
187 fra.me.REG[0] = p0;
188 REGB0 = p1;
189 /* compiling/table_computation.nit:56 */
190 ATTR_compiling___table_computation___TableInformation____max_class_table_length(fra.me.REG[0]) = REGB0;
191 stack_frame_head = fra.me.prev;
192 return;
193 }
194 val_t compiling___table_computation___CompiledClass___local_class(val_t p0){
195 struct {struct stack_frame_t me;} fra;
196 val_t REGB0;
197 val_t tmp;
198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
199 fra.me.file = LOCATE_compiling___table_computation;
200 fra.me.line = 63;
201 fra.me.meth = LOCATE_compiling___table_computation___CompiledClass___local_class;
202 fra.me.has_broke = 0;
203 fra.me.REG_size = 1;
204 fra.me.nitni_local_ref_head = NULL;
205 fra.me.REG[0] = NIT_NULL;
206 fra.me.REG[0] = p0;
207 /* compiling/table_computation.nit:63 */
208 REGB0 = TAG_Bool(ATTR_compiling___table_computation___CompiledClass____local_class(fra.me.REG[0])!=NIT_NULL);
209 if (UNTAG_Bool(REGB0)) {
210 } else {
211 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_compiling___table_computation, 63);
212 }
213 fra.me.REG[0] = ATTR_compiling___table_computation___CompiledClass____local_class(fra.me.REG[0]);
214 stack_frame_head = fra.me.prev;
215 return fra.me.REG[0];
216 }
217 val_t compiling___table_computation___CompiledClass___id(val_t p0){
218 struct {struct stack_frame_t me;} fra;
219 val_t REGB0;
220 val_t tmp;
221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
222 fra.me.file = LOCATE_compiling___table_computation;
223 fra.me.line = 66;
224 fra.me.meth = LOCATE_compiling___table_computation___CompiledClass___id;
225 fra.me.has_broke = 0;
226 fra.me.REG_size = 1;
227 fra.me.nitni_local_ref_head = NULL;
228 fra.me.REG[0] = NIT_NULL;
229 fra.me.REG[0] = p0;
230 /* compiling/table_computation.nit:66 */
231 REGB0 = TAG_Bool(ATTR_compiling___table_computation___CompiledClass____id(fra.me.REG[0])!=NIT_NULL);
232 if (UNTAG_Bool(REGB0)) {
233 } else {
234 nit_abort("Uninitialized attribute %s", "_id", LOCATE_compiling___table_computation, 66);
235 }
236 REGB0 = ATTR_compiling___table_computation___CompiledClass____id(fra.me.REG[0]);
237 stack_frame_head = fra.me.prev;
238 return REGB0;
239 }
240 void compiling___table_computation___CompiledClass___id__eq(val_t p0, val_t p1){
241 struct {struct stack_frame_t me;} fra;
242 val_t REGB0;
243 val_t tmp;
244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
245 fra.me.file = LOCATE_compiling___table_computation;
246 fra.me.line = 66;
247 fra.me.meth = LOCATE_compiling___table_computation___CompiledClass___id__eq;
248 fra.me.has_broke = 0;
249 fra.me.REG_size = 1;
250 fra.me.nitni_local_ref_head = NULL;
251 fra.me.REG[0] = NIT_NULL;
252 fra.me.REG[0] = p0;
253 REGB0 = p1;
254 /* compiling/table_computation.nit:66 */
255 ATTR_compiling___table_computation___CompiledClass____id(fra.me.REG[0]) = REGB0;
256 stack_frame_head = fra.me.prev;
257 return;
258 }
259 val_t compiling___table_computation___CompiledClass___class_table(val_t p0){
260 struct {struct stack_frame_t me;} fra;
261 val_t REGB0;
262 val_t tmp;
263 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
264 fra.me.file = LOCATE_compiling___table_computation;
265 fra.me.line = 69;
266 fra.me.meth = LOCATE_compiling___table_computation___CompiledClass___class_table;
267 fra.me.has_broke = 0;
268 fra.me.REG_size = 1;
269 fra.me.nitni_local_ref_head = NULL;
270 fra.me.REG[0] = NIT_NULL;
271 fra.me.REG[0] = p0;
272 /* compiling/table_computation.nit:69 */
273 REGB0 = TAG_Bool(ATTR_compiling___table_computation___CompiledClass____class_table(fra.me.REG[0])!=NIT_NULL);
274 if (UNTAG_Bool(REGB0)) {
275 } else {
276 nit_abort("Uninitialized attribute %s", "_class_table", LOCATE_compiling___table_computation, 69);
277 }
278 fra.me.REG[0] = ATTR_compiling___table_computation___CompiledClass____class_table(fra.me.REG[0]);
279 stack_frame_head = fra.me.prev;
280 return fra.me.REG[0];
281 }
282 val_t compiling___table_computation___CompiledClass___instance_table(val_t p0){
283 struct {struct stack_frame_t me;} fra;
284 val_t REGB0;
285 val_t tmp;
286 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
287 fra.me.file = LOCATE_compiling___table_computation;
288 fra.me.line = 72;
289 fra.me.meth = LOCATE_compiling___table_computation___CompiledClass___instance_table;
290 fra.me.has_broke = 0;
291 fra.me.REG_size = 1;
292 fra.me.nitni_local_ref_head = NULL;
293 fra.me.REG[0] = NIT_NULL;
294 fra.me.REG[0] = p0;
295 /* compiling/table_computation.nit:72 */
296 REGB0 = TAG_Bool(ATTR_compiling___table_computation___CompiledClass____instance_table(fra.me.REG[0])!=NIT_NULL);
297 if (UNTAG_Bool(REGB0)) {
298 } else {
299 nit_abort("Uninitialized attribute %s", "_instance_table", LOCATE_compiling___table_computation, 72);
300 }
301 fra.me.REG[0] = ATTR_compiling___table_computation___CompiledClass____instance_table(fra.me.REG[0]);
302 stack_frame_head = fra.me.prev;
303 return fra.me.REG[0];
304 }
305 val_t compiling___table_computation___CompiledClass___class_layout(val_t p0){
306 struct {struct stack_frame_t me;} fra;
307 val_t REGB0;
308 val_t tmp;
309 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
310 fra.me.file = LOCATE_compiling___table_computation;
311 fra.me.line = 75;
312 fra.me.meth = LOCATE_compiling___table_computation___CompiledClass___class_layout;
313 fra.me.has_broke = 0;
314 fra.me.REG_size = 1;
315 fra.me.nitni_local_ref_head = NULL;
316 fra.me.REG[0] = NIT_NULL;
317 fra.me.REG[0] = p0;
318 /* compiling/table_computation.nit:75 */
319 REGB0 = TAG_Bool(ATTR_compiling___table_computation___CompiledClass____class_layout(fra.me.REG[0])!=NIT_NULL);
320 if (UNTAG_Bool(REGB0)) {
321 } else {
322 nit_abort("Uninitialized attribute %s", "_class_layout", LOCATE_compiling___table_computation, 75);
323 }
324 fra.me.REG[0] = ATTR_compiling___table_computation___CompiledClass____class_layout(fra.me.REG[0]);
325 stack_frame_head = fra.me.prev;
326 return fra.me.REG[0];
327 }
328 void compiling___table_computation___CompiledClass___class_layout__eq(val_t p0, val_t p1){
329 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
330 val_t tmp;
331 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
332 fra.me.file = LOCATE_compiling___table_computation;
333 fra.me.line = 75;
334 fra.me.meth = LOCATE_compiling___table_computation___CompiledClass___class_layout__eq;
335 fra.me.has_broke = 0;
336 fra.me.REG_size = 2;
337 fra.me.nitni_local_ref_head = NULL;
338 fra.me.REG[0] = NIT_NULL;
339 fra.me.REG[1] = NIT_NULL;
340 fra.me.REG[0] = p0;
341 fra.me.REG[1] = p1;
342 /* compiling/table_computation.nit:75 */
343 ATTR_compiling___table_computation___CompiledClass____class_layout(fra.me.REG[0]) = fra.me.REG[1];
344 stack_frame_head = fra.me.prev;
345 return;
346 }
347 val_t compiling___table_computation___CompiledClass___instance_layout(val_t p0){
348 struct {struct stack_frame_t me;} fra;
349 val_t REGB0;
350 val_t tmp;
351 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
352 fra.me.file = LOCATE_compiling___table_computation;
353 fra.me.line = 78;
354 fra.me.meth = LOCATE_compiling___table_computation___CompiledClass___instance_layout;
355 fra.me.has_broke = 0;
356 fra.me.REG_size = 1;
357 fra.me.nitni_local_ref_head = NULL;
358 fra.me.REG[0] = NIT_NULL;
359 fra.me.REG[0] = p0;
360 /* compiling/table_computation.nit:78 */
361 REGB0 = TAG_Bool(ATTR_compiling___table_computation___CompiledClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
362 if (UNTAG_Bool(REGB0)) {
363 } else {
364 nit_abort("Uninitialized attribute %s", "_instance_layout", LOCATE_compiling___table_computation, 78);
365 }
366 fra.me.REG[0] = ATTR_compiling___table_computation___CompiledClass____instance_layout(fra.me.REG[0]);
367 stack_frame_head = fra.me.prev;
368 return fra.me.REG[0];
369 }
370 void compiling___table_computation___CompiledClass___instance_layout__eq(val_t p0, val_t p1){
371 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
372 val_t tmp;
373 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
374 fra.me.file = LOCATE_compiling___table_computation;
375 fra.me.line = 78;
376 fra.me.meth = LOCATE_compiling___table_computation___CompiledClass___instance_layout__eq;
377 fra.me.has_broke = 0;
378 fra.me.REG_size = 2;
379 fra.me.nitni_local_ref_head = NULL;
380 fra.me.REG[0] = NIT_NULL;
381 fra.me.REG[1] = NIT_NULL;
382 fra.me.REG[0] = p0;
383 fra.me.REG[1] = p1;
384 /* compiling/table_computation.nit:78 */
385 ATTR_compiling___table_computation___CompiledClass____instance_layout(fra.me.REG[0]) = fra.me.REG[1];
386 stack_frame_head = fra.me.prev;
387 return;
388 }
389 void compiling___table_computation___CompiledClass___init(val_t p0, val_t p1, int* init_table){
390 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___CompiledClass].i;
391 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
392 val_t tmp;
393 if (init_table[itpos1]) return;
394 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
395 fra.me.file = LOCATE_compiling___table_computation;
396 fra.me.line = 81;
397 fra.me.meth = LOCATE_compiling___table_computation___CompiledClass___init;
398 fra.me.has_broke = 0;
399 fra.me.REG_size = 3;
400 fra.me.nitni_local_ref_head = NULL;
401 fra.me.REG[0] = NIT_NULL;
402 fra.me.REG[1] = NIT_NULL;
403 fra.me.REG[2] = NIT_NULL;
404 fra.me.REG[0] = p0;
405 fra.me.REG[1] = p1;
406 /* compiling/table_computation.nit:81 */
407 fra.me.REG[2] = fra.me.REG[0];
408 CALL_compiling___table_computation___ColorContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
409 ATTR_compiling___table_computation___CompiledClass____local_class(fra.me.REG[2]) = fra.me.REG[1];
410 stack_frame_head = fra.me.prev;
411 init_table[itpos1] = 1;
412 return;
413 }
414 val_t compiling___table_computation___MMConcreteClass___class_color_pos(val_t p0){
415 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
416 val_t REGB0;
417 val_t tmp;
418 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
419 fra.me.file = LOCATE_compiling___table_computation;
420 fra.me.line = 85;
421 fra.me.meth = LOCATE_compiling___table_computation___MMConcreteClass___class_color_pos;
422 fra.me.has_broke = 0;
423 fra.me.REG_size = 2;
424 fra.me.nitni_local_ref_head = NULL;
425 fra.me.REG[0] = NIT_NULL;
426 fra.me.REG[1] = NIT_NULL;
427 fra.me.REG[0] = p0;
428 /* compiling/table_computation.nit:85 */
429 fra.me.REG[1] = fra.me.REG[0];
430 /* compiling/table_computation.nit:86 */
431 fra.me.REG[1] = ATTR_compiling___table_computation___MMConcreteClass____class_color_pos(fra.me.REG[1]);
432 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
433 if (UNTAG_Bool(REGB0)) {
434 } else {
435 nit_abort("Cast failed", NULL, LOCATE_compiling___table_computation, 86);
436 }
437 goto label1;
438 label1: while(0);
439 stack_frame_head = fra.me.prev;
440 return fra.me.REG[1];
441 }
442 val_t compiling___table_computation___MMConcreteClass___class_layout(val_t p0){
443 struct {struct stack_frame_t me;} fra;
444 val_t REGB0;
445 val_t tmp;
446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
447 fra.me.file = LOCATE_compiling___table_computation;
448 fra.me.line = 89;
449 fra.me.meth = LOCATE_compiling___table_computation___MMConcreteClass___class_layout;
450 fra.me.has_broke = 0;
451 fra.me.REG_size = 1;
452 fra.me.nitni_local_ref_head = NULL;
453 fra.me.REG[0] = NIT_NULL;
454 fra.me.REG[0] = p0;
455 /* compiling/table_computation.nit:89 */
456 REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0])!=NIT_NULL);
457 if (UNTAG_Bool(REGB0)) {
458 } else {
459 nit_abort("Uninitialized attribute %s", "_class_layout", LOCATE_compiling___table_computation, 89);
460 }
461 fra.me.REG[0] = ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0]);
462 stack_frame_head = fra.me.prev;
463 return fra.me.REG[0];
464 }
465 val_t compiling___table_computation___MMConcreteClass___instance_layout(val_t p0){
466 struct {struct stack_frame_t me;} fra;
467 val_t REGB0;
468 val_t tmp;
469 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
470 fra.me.file = LOCATE_compiling___table_computation;
471 fra.me.line = 92;
472 fra.me.meth = LOCATE_compiling___table_computation___MMConcreteClass___instance_layout;
473 fra.me.has_broke = 0;
474 fra.me.REG_size = 1;
475 fra.me.nitni_local_ref_head = NULL;
476 fra.me.REG[0] = NIT_NULL;
477 fra.me.REG[0] = p0;
478 /* compiling/table_computation.nit:92 */
479 REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
480 if (UNTAG_Bool(REGB0)) {
481 } else {
482 nit_abort("Uninitialized attribute %s", "_instance_layout", LOCATE_compiling___table_computation, 92);
483 }
484 fra.me.REG[0] = ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0]);
485 stack_frame_head = fra.me.prev;
486 return fra.me.REG[0];
487 }
488 void compiling___table_computation___MMConcreteClass___build_layout_in(val_t p0, val_t p1){
489 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
490 val_t REGB0;
491 val_t REGB1;
492 val_t tmp;
493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
494 fra.me.file = LOCATE_compiling___table_computation;
495 fra.me.line = 95;
496 fra.me.meth = LOCATE_compiling___table_computation___MMConcreteClass___build_layout_in;
497 fra.me.has_broke = 0;
498 fra.me.REG_size = 5;
499 fra.me.nitni_local_ref_head = NULL;
500 fra.me.REG[0] = NIT_NULL;
501 fra.me.REG[1] = NIT_NULL;
502 fra.me.REG[2] = NIT_NULL;
503 fra.me.REG[3] = NIT_NULL;
504 fra.me.REG[4] = NIT_NULL;
505 fra.me.REG[0] = p0;
506 fra.me.REG[1] = p1;
507 /* compiling/table_computation.nit:98 */
508 REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0])!=NIT_NULL);
509 if (UNTAG_Bool(REGB0)) {
510 } else {
511 nit_abort("Uninitialized attribute %s", "_class_layout", LOCATE_compiling___table_computation, 98);
512 }
513 fra.me.REG[2] = ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0]);
514 /* compiling/table_computation.nit:99 */
515 REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
516 if (UNTAG_Bool(REGB0)) {
517 } else {
518 nit_abort("Uninitialized attribute %s", "_instance_layout", LOCATE_compiling___table_computation, 99);
519 }
520 fra.me.REG[3] = ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0]);
521 /* compiling/table_computation.nit:101 */
522 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
523 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[4])(fra.me.REG[4]);
524 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[0]));
525 if (UNTAG_Bool(REGB0)) {
526 } else {
527 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
528 REGB0 = REGB1;
529 }
530 if (UNTAG_Bool(REGB0)) {
531 /* compiling/table_computation.nit:102 */
532 fra.me.REG[4] = NEW_TableEltClassId_compiling___table_computation___AbsTableEltClass___init(fra.me.REG[0]);
533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
534 /* compiling/table_computation.nit:103 */
535 fra.me.REG[4] = NEW_TableEltClassColor_compiling___table_computation___AbsTableEltClass___init(fra.me.REG[0]);
536 /* compiling/table_computation.nit:104 */
537 ATTR_compiling___table_computation___MMConcreteClass____class_color_pos(fra.me.REG[0]) = fra.me.REG[4];
538 /* compiling/table_computation.nit:105 */
539 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
540 /* compiling/table_computation.nit:106 */
541 fra.me.REG[4] = NEW_TableEltClassInitTable_compiling___table_computation___AbsTableEltClass___init(fra.me.REG[0]);
542 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
543 }
544 /* compiling/table_computation.nit:108 */
545 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___local_local_properties(fra.me.REG[0])(fra.me.REG[0]);
546 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_compiling___table_computation___MMConcreteClass___build_layout_in_1));
547 /* compiling/table_computation.nit:125 */
548 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
549 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
550 if (UNTAG_Bool(REGB0)) {
551 /* compiling/table_computation.nit:126 */
552 fra.me.REG[0] = NEW_ModuleTableEltGroup_compiling___table_computation___ModuleTableEltGroup___init();
553 /* compiling/table_computation.nit:127 */
554 fra.me.REG[4] = CALL_compiling___table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
555 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
556 /* compiling/table_computation.nit:128 */
557 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
558 }
559 /* compiling/table_computation.nit:131 */
560 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
561 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
562 if (UNTAG_Bool(REGB0)) {
563 /* compiling/table_computation.nit:132 */
564 fra.me.REG[0] = NEW_ModuleTableEltGroup_compiling___table_computation___ModuleTableEltGroup___init();
565 /* compiling/table_computation.nit:133 */
566 fra.me.REG[3] = CALL_compiling___table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
567 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
568 /* compiling/table_computation.nit:134 */
569 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
570 }
571 stack_frame_head = fra.me.prev;
572 return;
573 }
574 void OC_compiling___table_computation___MMConcreteClass___build_layout_in_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
575 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
576 val_t REGB0;
577 val_t REGB1;
578 fun_t CREG[1];
579 val_t tmp;
580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
581 fra.me.file = LOCATE_compiling___table_computation;
582 fra.me.line = 0;
583 fra.me.meth = LOCATE_compiling___table_computation___MMConcreteClass___build_layout_in;
584 fra.me.has_broke = 0;
585 fra.me.REG_size = 2;
586 fra.me.nitni_local_ref_head = NULL;
587 fra.me.REG[0] = NIT_NULL;
588 fra.me.REG[1] = NIT_NULL;
589 fra.me.closure_ctx = closctx_param;
590 fra.me.closure_funs = CREG;
591 fra.me.REG[0] = p0;
592 CREG[0] = clos_fun0;
593 /* compiling/table_computation.nit:109 */
594 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
595 /* compiling/table_computation.nit:110 */
596 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[1])(fra.me.REG[1]);
597 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
598 if (UNTAG_Bool(REGB0)) {
599 } else {
600 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
601 REGB0 = REGB1;
602 }
603 if (UNTAG_Bool(REGB0)) {
604 /* compiling/table_computation.nit:111 */
605 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
606 if (UNTAG_Bool(REGB0)) {
607 /* compiling/table_computation.nit:112 */
608 fra.me.REG[1] = NEW_TableEltAttr_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
609 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
610 } else {
611 /* compiling/table_computation.nit:113 */
612 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
613 if (UNTAG_Bool(REGB0)) {
614 /* compiling/table_computation.nit:114 */
615 fra.me.REG[1] = NEW_TableEltMeth_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
616 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[1]);
617 } else {
618 /* compiling/table_computation.nit:115 */
619 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___virtualtype___MMTypeProperty, ID_metamodel___virtualtype___MMTypeProperty)) /*cast MMTypeProperty*/;
620 if (UNTAG_Bool(REGB0)) {
621 /* compiling/table_computation.nit:116 */
622 fra.me.REG[1] = NEW_TableEltVTClassId_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
623 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[1]);
624 /* compiling/table_computation.nit:117 */
625 fra.me.REG[1] = NEW_TableEltVTClassColor_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
626 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[1]);
627 }
628 }
629 }
630 }
631 /* compiling/table_computation.nit:120 */
632 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
633 if (UNTAG_Bool(REGB0)) {
634 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super(fra.me.REG[0])(fra.me.REG[0]);
635 } else {
636 REGB1 = TAG_Bool(false);
637 REGB0 = REGB1;
638 }
639 if (UNTAG_Bool(REGB0)) {
640 /* compiling/table_computation.nit:121 */
641 fra.me.REG[0] = NEW_TableEltSuper_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
642 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
643 }
644 stack_frame_head = fra.me.prev;
645 return;
646 }
647 val_t compiling___table_computation___Program___table_information(val_t p0){
648 struct {struct stack_frame_t me;} fra;
649 val_t REGB0;
650 val_t tmp;
651 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
652 fra.me.file = LOCATE_compiling___table_computation;
653 fra.me.line = 140;
654 fra.me.meth = LOCATE_compiling___table_computation___Program___table_information;
655 fra.me.has_broke = 0;
656 fra.me.REG_size = 1;
657 fra.me.nitni_local_ref_head = NULL;
658 fra.me.REG[0] = NIT_NULL;
659 fra.me.REG[0] = p0;
660 /* compiling/table_computation.nit:140 */
661 REGB0 = TAG_Bool(ATTR_compiling___table_computation___Program____table_information(fra.me.REG[0])!=NIT_NULL);
662 if (UNTAG_Bool(REGB0)) {
663 } else {
664 nit_abort("Uninitialized attribute %s", "_table_information", LOCATE_compiling___table_computation, 140);
665 }
666 fra.me.REG[0] = ATTR_compiling___table_computation___Program____table_information(fra.me.REG[0]);
667 stack_frame_head = fra.me.prev;
668 return fra.me.REG[0];
669 }
670 val_t compiling___table_computation___Program___compiled_classes(val_t p0){
671 struct {struct stack_frame_t me;} fra;
672 val_t REGB0;
673 val_t tmp;
674 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
675 fra.me.file = LOCATE_compiling___table_computation;
676 fra.me.line = 143;
677 fra.me.meth = LOCATE_compiling___table_computation___Program___compiled_classes;
678 fra.me.has_broke = 0;
679 fra.me.REG_size = 1;
680 fra.me.nitni_local_ref_head = NULL;
681 fra.me.REG[0] = NIT_NULL;
682 fra.me.REG[0] = p0;
683 /* compiling/table_computation.nit:143 */
684 REGB0 = TAG_Bool(ATTR_compiling___table_computation___Program____compiled_classes(fra.me.REG[0])!=NIT_NULL);
685 if (UNTAG_Bool(REGB0)) {
686 } else {
687 nit_abort("Uninitialized attribute %s", "_compiled_classes", LOCATE_compiling___table_computation, 143);
688 }
689 fra.me.REG[0] = ATTR_compiling___table_computation___Program____compiled_classes(fra.me.REG[0]);
690 stack_frame_head = fra.me.prev;
691 return fra.me.REG[0];
692 }
693 void compiling___table_computation___Program___do_table_computation(val_t p0){
694 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
695 val_t REGB0;
696 val_t tmp;
697 static val_t once_value_1; /* Once value */
698 static val_t once_value_5; /* Once value */
699 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
700 fra.me.file = LOCATE_compiling___table_computation;
701 fra.me.line = 146;
702 fra.me.meth = LOCATE_compiling___table_computation___Program___do_table_computation;
703 fra.me.has_broke = 0;
704 fra.me.REG_size = 3;
705 fra.me.nitni_local_ref_head = NULL;
706 fra.me.REG[0] = NIT_NULL;
707 fra.me.REG[1] = NIT_NULL;
708 fra.me.REG[2] = NIT_NULL;
709 fra.me.REG[0] = p0;
710 /* compiling/table_computation.nit:148 */
711 fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
712 if (!once_value_1) {
713 fra.me.REG[2] = BOX_NativeString("Building tables");
714 REGB0 = TAG_Int(15);
715 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
716 once_value_1 = fra.me.REG[2];
717 register_static_object(&once_value_1);
718 } else fra.me.REG[2] = once_value_1;
719 fra.me.REG[2] = fra.me.REG[2];
720 REGB0 = TAG_Int(1);
721 CALL_toolcontext___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
722 /* compiling/table_computation.nit:149 */
723 fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
724 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
725 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
726 if (UNTAG_Bool(REGB0)) {
727 nit_abort("Reciever is null", NULL, LOCATE_compiling___table_computation, 149);
728 }
729 fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[2])(fra.me.REG[2]);
730 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___do_table_computation_2));
731 /* compiling/table_computation.nit:154 */
732 fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
733 if (!once_value_5) {
734 fra.me.REG[1] = BOX_NativeString("Merging all tables");
735 REGB0 = TAG_Int(18);
736 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
737 once_value_5 = fra.me.REG[1];
738 register_static_object(&once_value_5);
739 } else fra.me.REG[1] = once_value_5;
740 fra.me.REG[1] = fra.me.REG[1];
741 REGB0 = TAG_Int(2);
742 CALL_toolcontext___ToolContext___info(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], REGB0);
743 /* compiling/table_computation.nit:155 */
744 CALL_compiling___table_computation___Program___do_global_table_analysis(fra.me.REG[0])(fra.me.REG[0]);
745 stack_frame_head = fra.me.prev;
746 return;
747 }
748 void OC_compiling___table_computation___Program___do_table_computation_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
749 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
750 val_t REGB0;
751 fun_t CREG[1];
752 val_t tmp;
753 static val_t once_value_3; /* Once value */
754 static val_t once_value_4; /* Once value */
755 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
756 fra.me.file = LOCATE_compiling___table_computation;
757 fra.me.line = 0;
758 fra.me.meth = LOCATE_compiling___table_computation___Program___do_table_computation;
759 fra.me.has_broke = 0;
760 fra.me.REG_size = 4;
761 fra.me.nitni_local_ref_head = NULL;
762 fra.me.REG[0] = NIT_NULL;
763 fra.me.REG[1] = NIT_NULL;
764 fra.me.REG[2] = NIT_NULL;
765 fra.me.REG[3] = NIT_NULL;
766 fra.me.closure_ctx = closctx_param;
767 fra.me.closure_funs = CREG;
768 fra.me.REG[0] = p0;
769 CREG[0] = clos_fun0;
770 /* compiling/table_computation.nit:150 */
771 fra.me.REG[1] = CALL_program___Program___tc(closctx->REG[0])(closctx->REG[0]);
772 REGB0 = TAG_Int(3);
773 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
774 if (!once_value_3) {
775 fra.me.REG[3] = BOX_NativeString("Building tables for module: ");
776 REGB0 = TAG_Int(28);
777 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
778 once_value_3 = fra.me.REG[3];
779 register_static_object(&once_value_3);
780 } else fra.me.REG[3] = once_value_3;
781 fra.me.REG[3] = fra.me.REG[3];
782 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
783 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
784 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
786 if (!once_value_4) {
787 fra.me.REG[3] = BOX_NativeString("");
788 REGB0 = TAG_Int(0);
789 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
790 once_value_4 = fra.me.REG[3];
791 register_static_object(&once_value_4);
792 } else fra.me.REG[3] = once_value_4;
793 fra.me.REG[3] = fra.me.REG[3];
794 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
795 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
796 REGB0 = TAG_Int(2);
797 CALL_toolcontext___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
798 /* compiling/table_computation.nit:151 */
799 CALL_compiling___table_computation___MMModule___local_analysis(fra.me.REG[0])(fra.me.REG[0]);
800 stack_frame_head = fra.me.prev;
801 return;
802 }
803 void compiling___table_computation___Program___do_global_table_analysis(val_t p0){
804 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
805 val_t REGB0;
806 val_t REGB1;
807 val_t REGB2;
808 val_t REGB3;
809 val_t REGB4;
810 val_t tmp;
811 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
812 fra.me.file = LOCATE_compiling___table_computation;
813 fra.me.line = 158;
814 fra.me.meth = LOCATE_compiling___table_computation___Program___do_global_table_analysis;
815 fra.me.has_broke = 0;
816 fra.me.REG_size = 12;
817 fra.me.nitni_local_ref_head = NULL;
818 fra.me.REG[0] = NIT_NULL;
819 fra.me.REG[1] = NIT_NULL;
820 fra.me.REG[2] = NIT_NULL;
821 fra.me.REG[3] = NIT_NULL;
822 fra.me.REG[4] = NIT_NULL;
823 fra.me.REG[5] = NIT_NULL;
824 fra.me.REG[6] = NIT_NULL;
825 fra.me.REG[7] = NIT_NULL;
826 fra.me.REG[8] = NIT_NULL;
827 fra.me.REG[9] = NIT_NULL;
828 fra.me.REG[10] = NIT_NULL;
829 fra.me.REG[11] = NIT_NULL;
830 fra.me.REG[0] = p0;
831 /* compiling/table_computation.nit:161 */
832 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
833 /* compiling/table_computation.nit:162 */
834 fra.me.REG[2] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
835 /* compiling/table_computation.nit:163 */
836 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
837 /* compiling/table_computation.nit:164 */
838 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
839 /* compiling/table_computation.nit:166 */
840 fra.me.REG[4] = NEW_TableEltClassSelfId_compiling___table_computation___TableEltClassSelfId___init();
841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
842 /* compiling/table_computation.nit:167 */
843 fra.me.REG[4] = NEW_TableEltClassObjectSize_compiling___table_computation___TableEltClassObjectSize___init();
844 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
845 /* compiling/table_computation.nit:168 */
846 fra.me.REG[4] = NEW_TableEltClassSelfName_compiling___table_computation___TableEltClassSelfName___init();
847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
848 /* compiling/table_computation.nit:169 */
849 fra.me.REG[4] = NEW_TableEltVftPointer_compiling___table_computation___TableEltVftPointer___init();
850 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
851 /* compiling/table_computation.nit:170 */
852 fra.me.REG[4] = NEW_TableEltObjectId_compiling___table_computation___TableEltObjectId___init();
853 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
854 /* compiling/table_computation.nit:172 */
855 REGB0 = TAG_Int(1);
856 /* ../lib/standard/kernel.nit:236 */
857 REGB0 = TAG_Int(-UNTAG_Int(REGB0));
858 /* compiling/table_computation.nit:173 */
859 REGB1 = TAG_Int(3);
860 /* compiling/table_computation.nit:176 */
861 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
862 /* compiling/table_computation.nit:177 */
863 fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
864 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[5])(fra.me.REG[5]);
865 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___do_global_table_analysis_1));
866 CALL_standard___collection___array___Array___sort(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___do_global_table_analysis_2));
867 /* ../lib/standard/collection/array.nit:266 */
868 fra.me.REG[5] = fra.me.REG[4];
869 /* ../lib/standard/collection/array.nit:269 */
870 REGB2 = TAG_Int(0);
871 /* ../lib/standard/collection/array.nit:270 */
872 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
873 if (UNTAG_Bool(REGB3)) {
874 } else {
875 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
876 }
877 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
878 /* ../lib/standard/collection/array.nit:271 */
879 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
880 /* ../lib/standard/collection/array.nit:272 */
881 while(1) {
882 /* ../lib/standard/collection/array.nit:24 */
883 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
884 if (UNTAG_Bool(REGB3)) {
885 } else {
886 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
887 }
888 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
889 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
890 if (UNTAG_Bool(REGB4)) {
891 } else {
892 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
893 }
894 /* ../lib/standard/kernel.nit:232 */
895 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
896 /* ../lib/standard/collection/array.nit:272 */
897 if (UNTAG_Bool(REGB3)) {
898 /* ../lib/standard/collection/array.nit:273 */
899 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
900 if (UNTAG_Bool(REGB3)) {
901 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
902 }
903 /* ../lib/standard/collection/array.nit:718 */
904 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
905 /* compiling/table_computation.nit:182 */
906 fra.me.REG[8] = NEW_CompiledClass_compiling___table_computation___CompiledClass___init(fra.me.REG[7]);
907 /* compiling/table_computation.nit:183 */
908 fra.me.REG[9] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
909 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
910 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10], fra.me.REG[8]);
911 /* compiling/table_computation.nit:187 */
912 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
913 /* compiling/table_computation.nit:188 */
914 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[10])(fra.me.REG[10]);
915 /* compiling/table_computation.nit:189 */
916 fra.me.REG[10] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[7])(fra.me.REG[7]);
917 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
918 if (UNTAG_Bool(REGB3)) {
919 } else {
920 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
921 if (UNTAG_Bool(REGB4)) {
922 REGB4 = TAG_Bool(false);
923 REGB3 = REGB4;
924 } else {
925 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
926 REGB3 = REGB4;
927 }
928 }
929 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
930 if (UNTAG_Bool(REGB3)) {
931 /* compiling/table_computation.nit:190 */
932 CALL_compiling___table_computation___CompiledClass___id__eq(fra.me.REG[8])(fra.me.REG[8], REGB0);
933 /* compiling/table_computation.nit:191 */
934 REGB3 = TAG_Int(4);
935 /* ../lib/standard/kernel.nit:237 */
936 REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB3));
937 /* compiling/table_computation.nit:191 */
938 REGB0 = REGB3;
939 } else {
940 /* compiling/table_computation.nit:193 */
941 CALL_compiling___table_computation___CompiledClass___id__eq(fra.me.REG[8])(fra.me.REG[8], REGB1);
942 /* compiling/table_computation.nit:194 */
943 REGB3 = TAG_Int(4);
944 /* ../lib/standard/kernel.nit:235 */
945 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
946 /* compiling/table_computation.nit:194 */
947 REGB1 = REGB3;
948 }
949 /* compiling/table_computation.nit:198 */
950 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[7])(fra.me.REG[7]);
951 fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrderElement___direct_smallers(fra.me.REG[8])(fra.me.REG[8]);
952 REGB3 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[8])(fra.me.REG[8]);
953 if (UNTAG_Bool(REGB3)) {
954 /* compiling/table_computation.nit:199 */
955 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
956 }
957 /* compiling/table_computation.nit:203 */
958 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
959 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]);
960 /* compiling/table_computation.nit:204 */
961 REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
962 if (UNTAG_Bool(REGB3)) {
963 } else {
964 nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 204);
965 }
966 /* compiling/table_computation.nit:205 */
967 fra.me.REG[7] = CALL_compiling___table_computation___MMConcreteClass___class_color_pos(fra.me.REG[7])(fra.me.REG[7]);
968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
969 /* ../lib/standard/collection/array.nit:274 */
970 REGB3 = TAG_Int(1);
971 /* ../lib/standard/kernel.nit:235 */
972 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
973 /* ../lib/standard/collection/array.nit:274 */
974 REGB2 = REGB3;
975 } else {
976 /* ../lib/standard/collection/array.nit:272 */
977 goto label4;
978 }
979 }
980 label4: while(0);
981 /* compiling/table_computation.nit:209 */
982 fra.me.REG[6] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
983 /* compiling/table_computation.nit:210 */
984 fra.me.REG[5] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
985 /* ../lib/standard/collection/array.nit:269 */
986 REGB2 = TAG_Int(0);
987 /* ../lib/standard/collection/array.nit:270 */
988 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
989 if (UNTAG_Bool(REGB1)) {
990 } else {
991 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
992 }
993 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
994 /* ../lib/standard/collection/array.nit:271 */
995 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
996 /* ../lib/standard/collection/array.nit:272 */
997 while(1) {
998 /* ../lib/standard/collection/array.nit:24 */
999 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1000 if (UNTAG_Bool(REGB1)) {
1001 } else {
1002 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1003 }
1004 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1005 REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1006 if (UNTAG_Bool(REGB0)) {
1007 } else {
1008 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1009 }
1010 /* ../lib/standard/kernel.nit:232 */
1011 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
1012 /* ../lib/standard/collection/array.nit:272 */
1013 if (UNTAG_Bool(REGB1)) {
1014 /* ../lib/standard/collection/array.nit:273 */
1015 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1016 if (UNTAG_Bool(REGB1)) {
1017 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1018 }
1019 /* ../lib/standard/collection/array.nit:718 */
1020 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB2)];
1021 /* compiling/table_computation.nit:212 */
1022 while(1) {
1023 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[8])(fra.me.REG[8]);
1024 fra.me.REG[10] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[10])(fra.me.REG[10]);
1025 /* ../lib/standard/collection/array.nit:24 */
1026 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
1027 if (UNTAG_Bool(REGB1)) {
1028 } else {
1029 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1030 }
1031 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10]);
1032 /* compiling/table_computation.nit:212 */
1033 REGB0 = TAG_Int(1);
1034 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
1035 if (UNTAG_Bool(REGB3)) {
1036 } else {
1037 /* ../lib/standard/kernel.nit:227 */
1038 REGB0 = TAG_Bool((REGB1)==(REGB0));
1039 /* compiling/table_computation.nit:212 */
1040 REGB3 = REGB0;
1041 }
1042 if (UNTAG_Bool(REGB3)) {
1043 /* compiling/table_computation.nit:213 */
1044 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[8])(fra.me.REG[8]);
1045 fra.me.REG[10] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[10])(fra.me.REG[10]);
1046 fra.me.REG[10] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[10])(fra.me.REG[10]);
1047 fra.me.REG[8] = fra.me.REG[10];
1048 } else {
1049 /* compiling/table_computation.nit:212 */
1050 goto label5;
1051 }
1052 }
1053 label5: while(0);
1054 /* compiling/table_computation.nit:215 */
1055 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
1056 /* compiling/table_computation.nit:216 */
1057 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[8])(fra.me.REG[8]);
1058 fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[8])(fra.me.REG[8]);
1059 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
1060 /* ../lib/standard/collection/array.nit:274 */
1061 REGB3 = TAG_Int(1);
1062 /* ../lib/standard/kernel.nit:235 */
1063 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1064 /* ../lib/standard/collection/array.nit:274 */
1065 REGB2 = REGB3;
1066 } else {
1067 /* ../lib/standard/collection/array.nit:272 */
1068 goto label6;
1069 }
1070 }
1071 label6: while(0);
1072 /* compiling/table_computation.nit:221 */
1073 REGB2 = TAG_Int(0);
1074 CALL_compiling___table_computation___Program___colorize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[6], REGB2);
1075 /* compiling/table_computation.nit:224 */
1076 REGB2 = TAG_Int(0);
1077 /* ../lib/standard/collection/array.nit:266 */
1078 fra.me.REG[7] = fra.me.REG[4];
1079 /* ../lib/standard/collection/array.nit:269 */
1080 REGB3 = TAG_Int(0);
1081 /* ../lib/standard/collection/array.nit:270 */
1082 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1083 if (UNTAG_Bool(REGB0)) {
1084 } else {
1085 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1086 }
1087 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1088 /* ../lib/standard/collection/array.nit:271 */
1089 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
1090 /* ../lib/standard/collection/array.nit:272 */
1091 while(1) {
1092 /* ../lib/standard/collection/array.nit:24 */
1093 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1094 if (UNTAG_Bool(REGB0)) {
1095 } else {
1096 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1097 }
1098 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1099 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1100 if (UNTAG_Bool(REGB1)) {
1101 } else {
1102 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1103 }
1104 /* ../lib/standard/kernel.nit:232 */
1105 REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
1106 /* ../lib/standard/collection/array.nit:272 */
1107 if (UNTAG_Bool(REGB0)) {
1108 /* ../lib/standard/collection/array.nit:273 */
1109 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1110 if (UNTAG_Bool(REGB0)) {
1111 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1112 }
1113 /* ../lib/standard/collection/array.nit:718 */
1114 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB3)];
1115 /* compiling/table_computation.nit:226 */
1116 fra.me.REG[10] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1117 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
1118 fra.me.REG[9] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
1119 /* compiling/table_computation.nit:227 */
1120 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
1121 if (UNTAG_Bool(REGB0)) {
1122 /* compiling/table_computation.nit:229 */
1123 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1124 CALL_compiling___table_computation___Program___build_tables_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[8], fra.me.REG[2]);
1125 /* compiling/table_computation.nit:230 */
1126 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1127 /* ../lib/standard/collection/array.nit:24 */
1128 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
1129 if (UNTAG_Bool(REGB0)) {
1130 } else {
1131 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1132 }
1133 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10]);
1134 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1135 if (UNTAG_Bool(REGB1)) {
1136 } else {
1137 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1138 }
1139 /* ../lib/standard/kernel.nit:232 */
1140 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
1141 /* compiling/table_computation.nit:230 */
1142 if (UNTAG_Bool(REGB0)) {
1143 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1144 /* ../lib/standard/collection/array.nit:24 */
1145 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
1146 if (UNTAG_Bool(REGB0)) {
1147 } else {
1148 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1149 }
1150 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10]);
1151 /* compiling/table_computation.nit:230 */
1152 REGB2 = REGB0;
1153 }
1154 } else {
1155 /* compiling/table_computation.nit:233 */
1156 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[8])(fra.me.REG[8]);
1157 fra.me.REG[10] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[10])(fra.me.REG[10]);
1158 fra.me.REG[10] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[10])(fra.me.REG[10]);
1159 /* compiling/table_computation.nit:234 */
1160 fra.me.REG[11] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1161 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[10])(fra.me.REG[10]);
1162 fra.me.REG[10] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[10]);
1163 /* compiling/table_computation.nit:235 */
1164 fra.me.REG[11] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1165 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[11])(fra.me.REG[11]);
1166 if (UNTAG_Bool(REGB0)) {
1167 } else {
1168 nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 235);
1169 }
1170 /* compiling/table_computation.nit:236 */
1171 fra.me.REG[11] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1172 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1173 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[10]);
1174 /* compiling/table_computation.nit:237 */
1175 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
1176 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[8])(fra.me.REG[8]);
1177 /* compiling/table_computation.nit:238 */
1178 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[8], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
1179 if (UNTAG_Bool(REGB0)) {
1180 } else {
1181 nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 238);
1182 }
1183 /* compiling/table_computation.nit:239 */
1184 fra.me.REG[8] = CALL_compiling___table_computation___MMConcreteClass___class_color_pos(fra.me.REG[8])(fra.me.REG[8]);
1185 /* compiling/table_computation.nit:240 */
1186 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1187 /* ../lib/standard/collection/array.nit:24 */
1188 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
1189 if (UNTAG_Bool(REGB0)) {
1190 } else {
1191 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1192 }
1193 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10]);
1194 /* compiling/table_computation.nit:241 */
1195 fra.me.REG[10] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1196 CALL_compiling___table_computation___ColorContext___color__eq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8], REGB0);
1197 /* compiling/table_computation.nit:242 */
1198 fra.me.REG[9] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1199 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
1200 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1201 if (UNTAG_Bool(REGB1)) {
1202 } else {
1203 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1204 }
1205 /* ../lib/standard/kernel.nit:232 */
1206 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
1207 /* compiling/table_computation.nit:243 */
1208 if (UNTAG_Bool(REGB1)) {
1209 REGB2 = REGB0;
1210 }
1211 }
1212 /* ../lib/standard/collection/array.nit:274 */
1213 REGB0 = TAG_Int(1);
1214 /* ../lib/standard/kernel.nit:235 */
1215 REGB0 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
1216 /* ../lib/standard/collection/array.nit:274 */
1217 REGB3 = REGB0;
1218 } else {
1219 /* ../lib/standard/collection/array.nit:272 */
1220 goto label7;
1221 }
1222 }
1223 label7: while(0);
1224 /* compiling/table_computation.nit:246 */
1225 fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1226 REGB3 = TAG_Int(1);
1227 /* ../lib/standard/kernel.nit:235 */
1228 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1229 /* compiling/table_computation.nit:246 */
1230 CALL_compiling___table_computation___TableInformation___max_class_table_length__eq(fra.me.REG[1])(fra.me.REG[1], REGB3);
1231 /* ../lib/standard/collection/array.nit:266 */
1232 fra.me.REG[1] = fra.me.REG[4];
1233 /* ../lib/standard/collection/array.nit:269 */
1234 REGB3 = TAG_Int(0);
1235 /* ../lib/standard/collection/array.nit:270 */
1236 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1237 if (UNTAG_Bool(REGB0)) {
1238 } else {
1239 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1240 }
1241 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1242 /* ../lib/standard/collection/array.nit:271 */
1243 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1244 /* ../lib/standard/collection/array.nit:272 */
1245 while(1) {
1246 /* ../lib/standard/collection/array.nit:24 */
1247 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1248 if (UNTAG_Bool(REGB0)) {
1249 } else {
1250 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1251 }
1252 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1253 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1254 if (UNTAG_Bool(REGB1)) {
1255 } else {
1256 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1257 }
1258 /* ../lib/standard/kernel.nit:232 */
1259 REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
1260 /* ../lib/standard/collection/array.nit:272 */
1261 if (UNTAG_Bool(REGB0)) {
1262 /* ../lib/standard/collection/array.nit:273 */
1263 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1264 if (UNTAG_Bool(REGB0)) {
1265 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1266 }
1267 /* ../lib/standard/collection/array.nit:718 */
1268 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
1269 /* compiling/table_computation.nit:250 */
1270 fra.me.REG[9] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1271 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
1272 fra.me.REG[10] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1273 /* compiling/table_computation.nit:251 */
1274 fra.me.REG[9] = CALL_compiling___table_computation___CompiledClass___class_layout(fra.me.REG[10])(fra.me.REG[10]);
1275 /* compiling/table_computation.nit:252 */
1276 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___instance_layout(fra.me.REG[10])(fra.me.REG[10]);
1277 /* compiling/table_computation.nit:253 */
1278 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalClass___crhe(fra.me.REG[8])(fra.me.REG[8]);
1279 fra.me.REG[11] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[11])(fra.me.REG[11]);
1280 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[11])(fra.me.REG[11], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___do_global_table_analysis_8));
1281 /* compiling/table_computation.nit:260 */
1282 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
1283 if (UNTAG_Bool(REGB0)) {
1284 /* compiling/table_computation.nit:261 */
1285 REGB0 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[9])(fra.me.REG[9]);
1286 REGB1 = TAG_Int(0);
1287 REGB4 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1288 if (UNTAG_Bool(REGB4)) {
1289 } else {
1290 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1291 }
1292 /* ../lib/standard/kernel.nit:234 */
1293 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1294 /* compiling/table_computation.nit:261 */
1295 if (UNTAG_Bool(REGB1)) {
1296 /* compiling/table_computation.nit:262 */
1297 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
1298 }
1299 /* compiling/table_computation.nit:264 */
1300 REGB1 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[10])(fra.me.REG[10]);
1301 REGB0 = TAG_Int(0);
1302 REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1303 if (UNTAG_Bool(REGB4)) {
1304 } else {
1305 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1306 }
1307 /* ../lib/standard/kernel.nit:234 */
1308 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
1309 /* compiling/table_computation.nit:264 */
1310 if (UNTAG_Bool(REGB0)) {
1311 /* compiling/table_computation.nit:265 */
1312 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[10]);
1313 }
1314 }
1315 /* ../lib/standard/collection/array.nit:274 */
1316 REGB0 = TAG_Int(1);
1317 /* ../lib/standard/kernel.nit:235 */
1318 REGB0 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
1319 /* ../lib/standard/collection/array.nit:274 */
1320 REGB3 = REGB0;
1321 } else {
1322 /* ../lib/standard/collection/array.nit:272 */
1323 goto label9;
1324 }
1325 }
1326 label9: while(0);
1327 /* compiling/table_computation.nit:271 */
1328 REGB3 = TAG_Int(1);
1329 /* ../lib/standard/kernel.nit:235 */
1330 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1331 /* compiling/table_computation.nit:271 */
1332 CALL_compiling___table_computation___Program___colorize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[6], REGB3);
1333 /* compiling/table_computation.nit:272 */
1334 REGB3 = TAG_Int(0);
1335 CALL_compiling___table_computation___Program___colorize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[6], REGB3);
1336 /* compiling/table_computation.nit:275 */
1337 fra.me.REG[6] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1338 REGB3 = TAG_Int(0);
1339 CALL_compiling___table_computation___TableInformation___max_class_table_length__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
1340 /* ../lib/standard/collection/array.nit:269 */
1341 REGB3 = TAG_Int(0);
1342 /* ../lib/standard/collection/array.nit:270 */
1343 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1344 if (UNTAG_Bool(REGB0)) {
1345 } else {
1346 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1347 }
1348 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1349 /* ../lib/standard/collection/array.nit:271 */
1350 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
1351 /* ../lib/standard/collection/array.nit:272 */
1352 while(1) {
1353 /* ../lib/standard/collection/array.nit:24 */
1354 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1355 if (UNTAG_Bool(REGB0)) {
1356 } else {
1357 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1358 }
1359 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1360 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1361 if (UNTAG_Bool(REGB1)) {
1362 } else {
1363 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1364 }
1365 /* ../lib/standard/kernel.nit:232 */
1366 REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
1367 /* ../lib/standard/collection/array.nit:272 */
1368 if (UNTAG_Bool(REGB0)) {
1369 /* ../lib/standard/collection/array.nit:273 */
1370 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1371 if (UNTAG_Bool(REGB0)) {
1372 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1373 }
1374 /* ../lib/standard/collection/array.nit:718 */
1375 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB3)];
1376 /* compiling/table_computation.nit:277 */
1377 fra.me.REG[1] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1378 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
1379 fra.me.REG[10] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[10]);
1380 /* compiling/table_computation.nit:278 */
1381 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
1382 if (UNTAG_Bool(REGB0)) {
1383 /* compiling/table_computation.nit:280 */
1384 fra.me.REG[1] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1385 CALL_compiling___table_computation___Program___build_tables_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[7], fra.me.REG[2]);
1386 /* compiling/table_computation.nit:281 */
1387 fra.me.REG[1] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[10])(fra.me.REG[10]);
1388 CALL_compiling___table_computation___Program___build_tables_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[7], fra.me.REG[3]);
1389 } else {
1390 /* compiling/table_computation.nit:284 */
1391 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[7])(fra.me.REG[7]);
1392 fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[1])(fra.me.REG[1]);
1393 fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
1394 /* compiling/table_computation.nit:285 */
1395 fra.me.REG[9] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1396 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
1397 fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[1]);
1398 /* compiling/table_computation.nit:286 */
1399 fra.me.REG[9] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1400 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[9])(fra.me.REG[9]);
1401 /* compiling/table_computation.nit:287 */
1402 fra.me.REG[9] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1403 fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[1])(fra.me.REG[1]);
1404 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
1405 /* compiling/table_computation.nit:288 */
1406 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
1407 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]);
1408 /* compiling/table_computation.nit:289 */
1409 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
1410 if (UNTAG_Bool(REGB0)) {
1411 } else {
1412 nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 289);
1413 }
1414 /* compiling/table_computation.nit:290 */
1415 fra.me.REG[7] = CALL_compiling___table_computation___MMConcreteClass___class_color_pos(fra.me.REG[7])(fra.me.REG[7]);
1416 /* compiling/table_computation.nit:291 */
1417 fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1418 fra.me.REG[9] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1419 REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[7]);
1420 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[8])(fra.me.REG[8], REGB0, fra.me.REG[7]);
1421 /* compiling/table_computation.nit:292 */
1422 while(1) {
1423 fra.me.REG[7] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1424 /* ../lib/standard/collection/array.nit:24 */
1425 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1426 if (UNTAG_Bool(REGB0)) {
1427 } else {
1428 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1429 }
1430 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1431 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1432 if (UNTAG_Bool(REGB1)) {
1433 } else {
1434 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1435 }
1436 /* ../lib/standard/kernel.nit:231 */
1437 REGB0 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB2));
1438 /* compiling/table_computation.nit:292 */
1439 if (UNTAG_Bool(REGB0)) {
1440 /* compiling/table_computation.nit:293 */
1441 fra.me.REG[7] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1442 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
1443 } else {
1444 /* compiling/table_computation.nit:292 */
1445 goto label10;
1446 }
1447 }
1448 label10: while(0);
1449 /* compiling/table_computation.nit:295 */
1450 fra.me.REG[7] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1451 fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___class_layout(fra.me.REG[10])(fra.me.REG[10]);
1452 CALL_compiling___table_computation___Program___append_to_table(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[8]);
1453 /* compiling/table_computation.nit:296 */
1454 fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[10])(fra.me.REG[10]);
1455 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[8])(fra.me.REG[8]);
1456 if (UNTAG_Bool(REGB0)) {
1457 } else {
1458 nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 296);
1459 }
1460 /* compiling/table_computation.nit:297 */
1461 fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[10])(fra.me.REG[10]);
1462 fra.me.REG[1] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[1])(fra.me.REG[1]);
1463 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[1]);
1464 /* compiling/table_computation.nit:298 */
1465 fra.me.REG[1] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[10])(fra.me.REG[10]);
1466 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___instance_layout(fra.me.REG[10])(fra.me.REG[10]);
1467 CALL_compiling___table_computation___Program___append_to_table(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[10]);
1468 }
1469 /* ../lib/standard/collection/array.nit:274 */
1470 REGB0 = TAG_Int(1);
1471 /* ../lib/standard/kernel.nit:235 */
1472 REGB0 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
1473 /* ../lib/standard/collection/array.nit:274 */
1474 REGB3 = REGB0;
1475 } else {
1476 /* ../lib/standard/collection/array.nit:272 */
1477 goto label11;
1478 }
1479 }
1480 label11: while(0);
1481 stack_frame_head = fra.me.prev;
1482 return;
1483 }
1484 void OC_compiling___table_computation___Program___do_global_table_analysis_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1485 struct {struct stack_frame_t me;} fra;
1486 fun_t CREG[1];
1487 val_t tmp;
1488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1489 fra.me.file = LOCATE_compiling___table_computation;
1490 fra.me.line = 0;
1491 fra.me.meth = LOCATE_compiling___table_computation___Program___do_global_table_analysis;
1492 fra.me.has_broke = 0;
1493 fra.me.REG_size = 1;
1494 fra.me.nitni_local_ref_head = NULL;
1495 fra.me.REG[0] = NIT_NULL;
1496 fra.me.closure_ctx = closctx_param;
1497 fra.me.closure_funs = CREG;
1498 fra.me.REG[0] = p0;
1499 CREG[0] = clos_fun0;
1500 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
1501 stack_frame_head = fra.me.prev;
1502 return;
1503 }
1504 val_t OC_compiling___table_computation___Program___do_global_table_analysis_2(struct stack_frame_t *closctx, val_t p0, val_t p1){
1505 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1506 val_t REGB0;
1507 val_t tmp;
1508 /* compiling/table_computation.nit:178 */
1509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1510 fra.me.file = LOCATE_compiling___table_computation;
1511 fra.me.line = 178;
1512 fra.me.meth = LOCATE_compiling___table_computation___Program___do_global_table_analysis;
1513 fra.me.has_broke = 0;
1514 fra.me.REG_size = 2;
1515 fra.me.nitni_local_ref_head = NULL;
1516 fra.me.REG[0] = NIT_NULL;
1517 fra.me.REG[1] = NIT_NULL;
1518 fra.me.REG[0] = p0;
1519 fra.me.REG[1] = p1;
1520 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___total_order_compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1521 goto label3;
1522 label3: while(0);
1523 stack_frame_head = fra.me.prev;
1524 return REGB0;
1525 }
1526 void OC_compiling___table_computation___Program___do_global_table_analysis_8(struct stack_frame_t *closctx, val_t p0){
1527 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1528 val_t REGB0;
1529 val_t tmp;
1530 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1531 fra.me.file = LOCATE_compiling___table_computation;
1532 fra.me.line = 0;
1533 fra.me.meth = LOCATE_compiling___table_computation___Program___do_global_table_analysis;
1534 fra.me.has_broke = 0;
1535 fra.me.REG_size = 2;
1536 fra.me.nitni_local_ref_head = NULL;
1537 fra.me.REG[0] = NIT_NULL;
1538 fra.me.REG[1] = NIT_NULL;
1539 fra.me.REG[0] = p0;
1540 /* compiling/table_computation.nit:254 */
1541 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
1542 if (UNTAG_Bool(REGB0)) {
1543 /* compiling/table_computation.nit:255 */
1544 fra.me.REG[1] = CALL_compiling___table_computation___MMConcreteClass___class_layout(fra.me.REG[0])(fra.me.REG[0]);
1545 CALL_compiling___table_computation___TableEltComposite___add(closctx->REG[9])(closctx->REG[9], fra.me.REG[0], fra.me.REG[1]);
1546 /* compiling/table_computation.nit:256 */
1547 fra.me.REG[1] = CALL_compiling___table_computation___MMConcreteClass___instance_layout(fra.me.REG[0])(fra.me.REG[0]);
1548 CALL_compiling___table_computation___TableEltComposite___add(closctx->REG[10])(closctx->REG[10], fra.me.REG[0], fra.me.REG[1]);
1549 }
1550 stack_frame_head = fra.me.prev;
1551 return;
1552 }
1553 void compiling___table_computation___Program___colorize(val_t p0, val_t p1, val_t p2, val_t p3){
1554 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
1555 val_t REGB0;
1556 val_t REGB1;
1557 val_t REGB2;
1558 val_t REGB3;
1559 val_t REGB4;
1560 val_t REGB5;
1561 val_t REGB6;
1562 val_t REGB7;
1563 val_t REGB8;
1564 val_t tmp;
1565 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1566 fra.me.file = LOCATE_compiling___table_computation;
1567 fra.me.line = 303;
1568 fra.me.meth = LOCATE_compiling___table_computation___Program___colorize;
1569 fra.me.has_broke = 0;
1570 fra.me.REG_size = 11;
1571 fra.me.nitni_local_ref_head = NULL;
1572 fra.me.REG[0] = NIT_NULL;
1573 fra.me.REG[1] = NIT_NULL;
1574 fra.me.REG[2] = NIT_NULL;
1575 fra.me.REG[3] = NIT_NULL;
1576 fra.me.REG[4] = NIT_NULL;
1577 fra.me.REG[5] = NIT_NULL;
1578 fra.me.REG[6] = NIT_NULL;
1579 fra.me.REG[7] = NIT_NULL;
1580 fra.me.REG[8] = NIT_NULL;
1581 fra.me.REG[9] = NIT_NULL;
1582 fra.me.REG[10] = NIT_NULL;
1583 fra.me.REG[0] = p0;
1584 fra.me.REG[1] = p1;
1585 fra.me.REG[2] = p2;
1586 REGB0 = p3;
1587 /* compiling/table_computation.nit:306 */
1588 fra.me.REG[3] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
1589 /* compiling/table_computation.nit:307 */
1590 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
1591 /* ../lib/standard/collection/array.nit:269 */
1592 REGB1 = TAG_Int(0);
1593 /* ../lib/standard/collection/array.nit:270 */
1594 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1595 if (UNTAG_Bool(REGB2)) {
1596 } else {
1597 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1598 }
1599 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1600 /* ../lib/standard/collection/array.nit:271 */
1601 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1602 /* ../lib/standard/collection/array.nit:272 */
1603 while(1) {
1604 /* ../lib/standard/collection/array.nit:24 */
1605 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1606 if (UNTAG_Bool(REGB2)) {
1607 } else {
1608 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1609 }
1610 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1611 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1612 if (UNTAG_Bool(REGB3)) {
1613 } else {
1614 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1615 }
1616 /* ../lib/standard/kernel.nit:232 */
1617 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1618 /* ../lib/standard/collection/array.nit:272 */
1619 if (UNTAG_Bool(REGB2)) {
1620 /* ../lib/standard/collection/array.nit:273 */
1621 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1622 if (UNTAG_Bool(REGB2)) {
1623 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1624 }
1625 /* ../lib/standard/collection/array.nit:718 */
1626 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
1627 /* compiling/table_computation.nit:309 */
1628 REGB2 = TAG_Int(1);
1629 /* ../lib/standard/kernel.nit:236 */
1630 REGB2 = TAG_Int(-UNTAG_Int(REGB2));
1631 /* compiling/table_computation.nit:310 */
1632 REGB3 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[6])(fra.me.REG[6]);
1633 /* compiling/table_computation.nit:311 */
1634 fra.me.REG[7] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1635 REGB4 = CALL_compiling___table_computation___ColorContext___has_color(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1636 if (UNTAG_Bool(REGB4)) {
1637 /* compiling/table_computation.nit:312 */
1638 fra.me.REG[7] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1639 REGB4 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1640 REGB2 = REGB4;
1641 } else {
1642 /* compiling/table_computation.nit:314 */
1643 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[4])(fra.me.REG[4]);
1644 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___colorize_1));
1645 /* compiling/table_computation.nit:320 */
1646 REGB4 = REGB0;
1647 /* compiling/table_computation.nit:321 */
1648 while(1) {
1649 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB2));
1650 if (UNTAG_Bool(REGB5)) {
1651 } else {
1652 /* ../lib/standard/kernel.nit:227 */
1653 REGB6 = TAG_Bool((REGB4)==(REGB2));
1654 /* compiling/table_computation.nit:321 */
1655 REGB5 = REGB6;
1656 }
1657 REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
1658 if (UNTAG_Bool(REGB5)) {
1659 /* compiling/table_computation.nit:322 */
1660 REGB2 = REGB4;
1661 /* ../lib/standard/collection/array.nit:266 */
1662 fra.me.REG[7] = fra.me.REG[4];
1663 /* ../lib/standard/collection/array.nit:269 */
1664 REGB5 = TAG_Int(0);
1665 /* ../lib/standard/collection/array.nit:270 */
1666 REGB6 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1667 if (UNTAG_Bool(REGB6)) {
1668 } else {
1669 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1670 }
1671 REGB6 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1672 /* ../lib/standard/collection/array.nit:271 */
1673 fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
1674 /* ../lib/standard/collection/array.nit:272 */
1675 while(1) {
1676 /* ../lib/standard/collection/array.nit:24 */
1677 REGB6 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1678 if (UNTAG_Bool(REGB6)) {
1679 } else {
1680 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1681 }
1682 REGB6 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1683 REGB7 = TAG_Bool(VAL_ISA(REGB6, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
1684 if (UNTAG_Bool(REGB7)) {
1685 } else {
1686 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1687 }
1688 /* ../lib/standard/kernel.nit:232 */
1689 REGB6 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB6));
1690 /* ../lib/standard/collection/array.nit:272 */
1691 if (UNTAG_Bool(REGB6)) {
1692 /* ../lib/standard/collection/array.nit:273 */
1693 REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1694 if (UNTAG_Bool(REGB6)) {
1695 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1696 }
1697 /* ../lib/standard/collection/array.nit:718 */
1698 fra.me.REG[9] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB5)];
1699 /* compiling/table_computation.nit:324 */
1700 REGB6 = TAG_Int(0);
1701 /* compiling/table_computation.nit:325 */
1702 while(1) {
1703 REGB7 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB6), VTID_standard___kernel___Comparable___OTHER(REGB6))) /*cast OTHER*/;
1704 if (UNTAG_Bool(REGB7)) {
1705 } else {
1706 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1707 }
1708 /* ../lib/standard/kernel.nit:232 */
1709 REGB7 = TAG_Bool(UNTAG_Int(REGB6)<UNTAG_Int(REGB3));
1710 /* compiling/table_computation.nit:325 */
1711 if (UNTAG_Bool(REGB7)) {
1712 /* ../lib/standard/kernel.nit:235 */
1713 REGB7 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB6));
1714 /* compiling/table_computation.nit:326 */
1715 REGB7 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], REGB7);
1716 if (UNTAG_Bool(REGB7)) {
1717 /* ../lib/standard/kernel.nit:235 */
1718 REGB7 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB6));
1719 /* compiling/table_computation.nit:326 */
1720 fra.me.REG[10] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB7);
1721 REGB7 = CALL_compiling___table_computation___Program___free_color(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[9]);
1722 REGB7 = TAG_Bool(!UNTAG_Bool(REGB7));
1723 } else {
1724 REGB8 = TAG_Bool(false);
1725 REGB7 = REGB8;
1726 }
1727 if (UNTAG_Bool(REGB7)) {
1728 /* ../lib/standard/kernel.nit:235 */
1729 REGB7 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB6));
1730 /* compiling/table_computation.nit:327 */
1731 REGB8 = TAG_Int(1);
1732 /* ../lib/standard/kernel.nit:235 */
1733 REGB8 = TAG_Int(UNTAG_Int(REGB7)+UNTAG_Int(REGB8));
1734 /* compiling/table_computation.nit:327 */
1735 REGB4 = REGB8;
1736 /* compiling/table_computation.nit:328 */
1737 REGB8 = TAG_Int(0);
1738 REGB6 = REGB8;
1739 } else {
1740 /* compiling/table_computation.nit:330 */
1741 REGB8 = TAG_Int(1);
1742 /* ../lib/standard/kernel.nit:235 */
1743 REGB8 = TAG_Int(UNTAG_Int(REGB6)+UNTAG_Int(REGB8));
1744 /* compiling/table_computation.nit:330 */
1745 REGB6 = REGB8;
1746 }
1747 } else {
1748 /* compiling/table_computation.nit:325 */
1749 goto label2;
1750 }
1751 }
1752 label2: while(0);
1753 /* ../lib/standard/collection/array.nit:274 */
1754 REGB6 = TAG_Int(1);
1755 /* ../lib/standard/kernel.nit:235 */
1756 REGB6 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB6));
1757 /* ../lib/standard/collection/array.nit:274 */
1758 REGB5 = REGB6;
1759 } else {
1760 /* ../lib/standard/collection/array.nit:272 */
1761 goto label3;
1762 }
1763 }
1764 label3: while(0);
1765 } else {
1766 /* compiling/table_computation.nit:321 */
1767 goto label4;
1768 }
1769 }
1770 label4: while(0);
1771 /* compiling/table_computation.nit:335 */
1772 fra.me.REG[8] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1773 CALL_compiling___table_computation___ColorContext___color__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6], REGB2);
1774 }
1775 /* compiling/table_computation.nit:337 */
1776 REGB4 = TAG_Int(0);
1777 /* ../lib/standard/kernel.nit:352 */
1778 while(1) {
1779 REGB5 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
1780 if (UNTAG_Bool(REGB5)) {
1781 } else {
1782 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1783 }
1784 /* ../lib/standard/kernel.nit:232 */
1785 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
1786 /* ../lib/standard/kernel.nit:352 */
1787 if (UNTAG_Bool(REGB5)) {
1788 /* compiling/table_computation.nit:337 */
1789 REGB5 = REGB4;
1790 /* ../lib/standard/kernel.nit:235 */
1791 REGB6 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
1792 /* compiling/table_computation.nit:338 */
1793 REGB6 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], REGB6);
1794 if (UNTAG_Bool(REGB6)) {
1795 /* ../lib/standard/kernel.nit:235 */
1796 REGB6 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
1797 /* compiling/table_computation.nit:339 */
1798 fra.me.REG[8] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB6);
1799 REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1800 if (UNTAG_Bool(REGB6)) {
1801 nit_abort("Reciever is null", NULL, LOCATE_compiling___table_computation, 339);
1802 }
1803 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]);
1804 } else {
1805 /* ../lib/standard/kernel.nit:235 */
1806 REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
1807 /* compiling/table_computation.nit:341 */
1808 REGB6 = TAG_Int(1);
1809 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB6);
1810 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]);
1811 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB5, fra.me.REG[8]);
1812 }
1813 /* ../lib/standard/kernel.nit:354 */
1814 REGB5 = TAG_Int(1);
1815 /* ../lib/standard/kernel.nit:235 */
1816 REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
1817 /* ../lib/standard/kernel.nit:354 */
1818 REGB4 = REGB5;
1819 } else {
1820 /* ../lib/standard/kernel.nit:352 */
1821 goto label5;
1822 }
1823 }
1824 label5: while(0);
1825 /* ../lib/standard/collection/array.nit:274 */
1826 REGB4 = TAG_Int(1);
1827 /* ../lib/standard/kernel.nit:235 */
1828 REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
1829 /* ../lib/standard/collection/array.nit:274 */
1830 REGB1 = REGB4;
1831 } else {
1832 /* ../lib/standard/collection/array.nit:272 */
1833 goto label6;
1834 }
1835 }
1836 label6: while(0);
1837 stack_frame_head = fra.me.prev;
1838 return;
1839 }
1840 void OC_compiling___table_computation___Program___colorize_1(struct stack_frame_t *closctx, val_t p0){
1841 struct {struct stack_frame_t me;} fra;
1842 val_t REGB0;
1843 val_t tmp;
1844 /* compiling/table_computation.nit:315 */
1845 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1846 fra.me.file = LOCATE_compiling___table_computation;
1847 fra.me.line = 0;
1848 fra.me.meth = LOCATE_compiling___table_computation___Program___colorize;
1849 fra.me.has_broke = 0;
1850 fra.me.REG_size = 1;
1851 fra.me.nitni_local_ref_head = NULL;
1852 fra.me.REG[0] = NIT_NULL;
1853 fra.me.REG[0] = p0;
1854 /* compiling/table_computation.nit:316 */
1855 REGB0 = CALL_compiling___table_computation___TableElt___is_related_to(closctx->REG[6])(closctx->REG[6], fra.me.REG[0]);
1856 if (UNTAG_Bool(REGB0)) {
1857 /* compiling/table_computation.nit:317 */
1858 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
1859 }
1860 stack_frame_head = fra.me.prev;
1861 return;
1862 }
1863 val_t compiling___table_computation___Program___free_color(val_t p0, val_t p1, val_t p2){
1864 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1865 val_t REGB0;
1866 val_t REGB1;
1867 val_t REGB2;
1868 val_t tmp;
1869 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1870 fra.me.file = LOCATE_compiling___table_computation;
1871 fra.me.line = 347;
1872 fra.me.meth = LOCATE_compiling___table_computation___Program___free_color;
1873 fra.me.has_broke = 0;
1874 fra.me.REG_size = 4;
1875 fra.me.nitni_local_ref_head = NULL;
1876 fra.me.REG[0] = NIT_NULL;
1877 fra.me.REG[1] = NIT_NULL;
1878 fra.me.REG[2] = NIT_NULL;
1879 fra.me.REG[3] = NIT_NULL;
1880 fra.me.REG[0] = p0;
1881 fra.me.REG[1] = p1;
1882 fra.me.REG[2] = p2;
1883 /* ../lib/standard/collection/array.nit:269 */
1884 REGB0 = TAG_Int(0);
1885 /* ../lib/standard/collection/array.nit:270 */
1886 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1887 if (UNTAG_Bool(REGB1)) {
1888 } else {
1889 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1890 }
1891 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1892 /* ../lib/standard/collection/array.nit:271 */
1893 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1894 /* ../lib/standard/collection/array.nit:272 */
1895 while(1) {
1896 /* ../lib/standard/collection/array.nit:24 */
1897 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1898 if (UNTAG_Bool(REGB1)) {
1899 } else {
1900 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1901 }
1902 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1903 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1904 if (UNTAG_Bool(REGB2)) {
1905 } else {
1906 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1907 }
1908 /* ../lib/standard/kernel.nit:232 */
1909 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1910 /* ../lib/standard/collection/array.nit:272 */
1911 if (UNTAG_Bool(REGB1)) {
1912 /* ../lib/standard/collection/array.nit:273 */
1913 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1914 if (UNTAG_Bool(REGB1)) {
1915 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1916 }
1917 /* ../lib/standard/collection/array.nit:718 */
1918 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
1919 /* compiling/table_computation.nit:350 */
1920 REGB1 = CALL_compiling___table_computation___TableElt___is_related_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
1921 if (UNTAG_Bool(REGB1)) {
1922 /* compiling/table_computation.nit:351 */
1923 REGB1 = TAG_Bool(false);
1924 goto label1;
1925 }
1926 /* ../lib/standard/collection/array.nit:274 */
1927 REGB2 = TAG_Int(1);
1928 /* ../lib/standard/kernel.nit:235 */
1929 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1930 /* ../lib/standard/collection/array.nit:274 */
1931 REGB0 = REGB2;
1932 } else {
1933 /* ../lib/standard/collection/array.nit:272 */
1934 goto label2;
1935 }
1936 }
1937 label2: while(0);
1938 /* compiling/table_computation.nit:354 */
1939 REGB0 = TAG_Bool(true);
1940 REGB1 = REGB0;
1941 goto label1;
1942 label1: while(0);
1943 stack_frame_head = fra.me.prev;
1944 return REGB1;
1945 }
1946 void compiling___table_computation___Program___append_to_table(val_t p0, val_t p1, val_t p2){
1947 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1948 val_t REGB0;
1949 val_t REGB1;
1950 val_t REGB2;
1951 val_t tmp;
1952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1953 fra.me.file = LOCATE_compiling___table_computation;
1954 fra.me.line = 357;
1955 fra.me.meth = LOCATE_compiling___table_computation___Program___append_to_table;
1956 fra.me.has_broke = 0;
1957 fra.me.REG_size = 5;
1958 fra.me.nitni_local_ref_head = NULL;
1959 fra.me.REG[0] = NIT_NULL;
1960 fra.me.REG[1] = NIT_NULL;
1961 fra.me.REG[2] = NIT_NULL;
1962 fra.me.REG[3] = NIT_NULL;
1963 fra.me.REG[4] = NIT_NULL;
1964 fra.me.REG[0] = p0;
1965 fra.me.REG[1] = p1;
1966 fra.me.REG[2] = p2;
1967 /* compiling/table_computation.nit:359 */
1968 REGB0 = TAG_Int(0);
1969 REGB1 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[2])(fra.me.REG[2]);
1970 /* ../lib/standard/kernel.nit:352 */
1971 while(1) {
1972 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1973 if (UNTAG_Bool(REGB2)) {
1974 } else {
1975 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1976 }
1977 /* ../lib/standard/kernel.nit:232 */
1978 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1979 /* ../lib/standard/kernel.nit:352 */
1980 if (UNTAG_Bool(REGB2)) {
1981 /* compiling/table_computation.nit:359 */
1982 REGB2 = REGB0;
1983 /* compiling/table_computation.nit:360 */
1984 fra.me.REG[3] = CALL_compiling___table_computation___TableElt___item(fra.me.REG[2])(fra.me.REG[2], REGB2);
1985 /* compiling/table_computation.nit:361 */
1986 fra.me.REG[4] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1987 /* ../lib/standard/collection/array.nit:24 */
1988 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1989 if (UNTAG_Bool(REGB2)) {
1990 } else {
1991 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1992 }
1993 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1994 /* compiling/table_computation.nit:361 */
1995 CALL_compiling___table_computation___ColorContext___color__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], REGB2);
1996 /* compiling/table_computation.nit:362 */
1997 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1998 /* ../lib/standard/kernel.nit:354 */
1999 REGB2 = TAG_Int(1);
2000 /* ../lib/standard/kernel.nit:235 */
2001 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2002 /* ../lib/standard/kernel.nit:354 */
2003 REGB0 = REGB2;
2004 } else {
2005 /* ../lib/standard/kernel.nit:352 */
2006 goto label1;
2007 }
2008 }
2009 label1: while(0);
2010 stack_frame_head = fra.me.prev;
2011 return;
2012 }
2013 void compiling___table_computation___Program___build_tables_in(val_t p0, val_t p1, val_t p2, val_t p3){
2014 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
2015 val_t REGB0;
2016 val_t REGB1;
2017 val_t REGB2;
2018 val_t REGB3;
2019 val_t REGB4;
2020 val_t tmp;
2021 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2022 fra.me.file = LOCATE_compiling___table_computation;
2023 fra.me.line = 366;
2024 fra.me.meth = LOCATE_compiling___table_computation___Program___build_tables_in;
2025 fra.me.has_broke = 0;
2026 fra.me.REG_size = 8;
2027 fra.me.nitni_local_ref_head = NULL;
2028 fra.me.REG[0] = NIT_NULL;
2029 fra.me.REG[1] = NIT_NULL;
2030 fra.me.REG[2] = NIT_NULL;
2031 fra.me.REG[3] = NIT_NULL;
2032 fra.me.REG[4] = NIT_NULL;
2033 fra.me.REG[5] = NIT_NULL;
2034 fra.me.REG[6] = NIT_NULL;
2035 fra.me.REG[7] = NIT_NULL;
2036 fra.me.REG[0] = p0;
2037 fra.me.REG[1] = p1;
2038 fra.me.REG[2] = p2;
2039 fra.me.REG[3] = p3;
2040 /* compiling/table_computation.nit:368 */
2041 fra.me.REG[4] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
2042 /* compiling/table_computation.nit:369 */
2043 REGB0 = TAG_Int(0);
2044 /* ../lib/standard/collection/array.nit:269 */
2045 REGB1 = TAG_Int(0);
2046 /* ../lib/standard/collection/array.nit:270 */
2047 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
2048 if (UNTAG_Bool(REGB2)) {
2049 } else {
2050 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
2051 }
2052 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
2053 /* ../lib/standard/collection/array.nit:271 */
2054 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
2055 /* ../lib/standard/collection/array.nit:272 */
2056 while(1) {
2057 /* ../lib/standard/collection/array.nit:24 */
2058 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
2059 if (UNTAG_Bool(REGB2)) {
2060 } else {
2061 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
2062 }
2063 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
2064 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
2065 if (UNTAG_Bool(REGB3)) {
2066 } else {
2067 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2068 }
2069 /* ../lib/standard/kernel.nit:232 */
2070 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
2071 /* ../lib/standard/collection/array.nit:272 */
2072 if (UNTAG_Bool(REGB2)) {
2073 /* ../lib/standard/collection/array.nit:273 */
2074 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2075 if (UNTAG_Bool(REGB2)) {
2076 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
2077 }
2078 /* ../lib/standard/collection/array.nit:718 */
2079 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
2080 /* compiling/table_computation.nit:371 */
2081 REGB2 = CALL_compiling___table_computation___TableElt___is_related_to(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
2082 if (UNTAG_Bool(REGB2)) {
2083 /* compiling/table_computation.nit:372 */
2084 fra.me.REG[7] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
2085 REGB2 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
2086 /* compiling/table_computation.nit:373 */
2087 REGB3 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[6])(fra.me.REG[6]);
2088 /* ../lib/standard/kernel.nit:235 */
2089 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
2090 /* compiling/table_computation.nit:374 */
2091 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], REGB2, fra.me.REG[6]);
2092 REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2093 if (UNTAG_Bool(REGB2)) {
2094 } else {
2095 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2096 }
2097 /* ../lib/standard/kernel.nit:232 */
2098 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
2099 /* compiling/table_computation.nit:375 */
2100 if (UNTAG_Bool(REGB2)) {
2101 /* compiling/table_computation.nit:376 */
2102 REGB0 = REGB3;
2103 }
2104 }
2105 /* ../lib/standard/collection/array.nit:274 */
2106 REGB3 = TAG_Int(1);
2107 /* ../lib/standard/kernel.nit:235 */
2108 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
2109 /* ../lib/standard/collection/array.nit:274 */
2110 REGB1 = REGB3;
2111 } else {
2112 /* ../lib/standard/collection/array.nit:272 */
2113 goto label1;
2114 }
2115 }
2116 label1: while(0);
2117 /* compiling/table_computation.nit:380 */
2118 REGB1 = TAG_Int(0);
2119 /* compiling/table_computation.nit:381 */
2120 while(1) {
2121 REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
2122 if (UNTAG_Bool(REGB3)) {
2123 } else {
2124 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2125 }
2126 /* ../lib/standard/kernel.nit:232 */
2127 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
2128 /* compiling/table_computation.nit:381 */
2129 if (UNTAG_Bool(REGB3)) {
2130 /* compiling/table_computation.nit:382 */
2131 REGB3 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], REGB1);
2132 if (UNTAG_Bool(REGB3)) {
2133 /* compiling/table_computation.nit:383 */
2134 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], REGB1);
2135 /* compiling/table_computation.nit:384 */
2136 REGB3 = TAG_Int(0);
2137 REGB2 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[0])(fra.me.REG[0]);
2138 /* ../lib/standard/kernel.nit:352 */
2139 while(1) {
2140 REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2141 if (UNTAG_Bool(REGB4)) {
2142 } else {
2143 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2144 }
2145 /* ../lib/standard/kernel.nit:232 */
2146 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
2147 /* ../lib/standard/kernel.nit:352 */
2148 if (UNTAG_Bool(REGB4)) {
2149 /* compiling/table_computation.nit:384 */
2150 REGB4 = REGB3;
2151 /* compiling/table_computation.nit:385 */
2152 fra.me.REG[2] = CALL_compiling___table_computation___TableElt___item(fra.me.REG[0])(fra.me.REG[0], REGB4);
2153 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB1, fra.me.REG[2]);
2154 /* compiling/table_computation.nit:386 */
2155 REGB4 = TAG_Int(1);
2156 /* ../lib/standard/kernel.nit:235 */
2157 REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
2158 /* compiling/table_computation.nit:386 */
2159 REGB1 = REGB4;
2160 /* ../lib/standard/kernel.nit:354 */
2161 REGB4 = TAG_Int(1);
2162 /* ../lib/standard/kernel.nit:235 */
2163 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
2164 /* ../lib/standard/kernel.nit:354 */
2165 REGB3 = REGB4;
2166 } else {
2167 /* ../lib/standard/kernel.nit:352 */
2168 goto label2;
2169 }
2170 }
2171 label2: while(0);
2172 } else {
2173 /* compiling/table_computation.nit:389 */
2174 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB1, NIT_NULL);
2175 /* compiling/table_computation.nit:390 */
2176 REGB3 = TAG_Int(1);
2177 /* ../lib/standard/kernel.nit:235 */
2178 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
2179 /* compiling/table_computation.nit:390 */
2180 REGB1 = REGB3;
2181 }
2182 } else {
2183 /* compiling/table_computation.nit:381 */
2184 goto label3;
2185 }
2186 }
2187 label3: while(0);
2188 stack_frame_head = fra.me.prev;
2189 return;
2190 }
2191 val_t compiling___table_computation___MMModule___local_table(val_t p0){
2192 struct {struct stack_frame_t me;} fra;
2193 val_t REGB0;
2194 val_t tmp;
2195 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2196 fra.me.file = LOCATE_compiling___table_computation;
2197 fra.me.line = 397;
2198 fra.me.meth = LOCATE_compiling___table_computation___MMModule___local_table;
2199 fra.me.has_broke = 0;
2200 fra.me.REG_size = 1;
2201 fra.me.nitni_local_ref_head = NULL;
2202 fra.me.REG[0] = NIT_NULL;
2203 fra.me.REG[0] = p0;
2204 /* compiling/table_computation.nit:397 */
2205 REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMModule____local_table(fra.me.REG[0])!=NIT_NULL);
2206 if (UNTAG_Bool(REGB0)) {
2207 } else {
2208 nit_abort("Uninitialized attribute %s", "_local_table", LOCATE_compiling___table_computation, 397);
2209 }
2210 fra.me.REG[0] = ATTR_compiling___table_computation___MMModule____local_table(fra.me.REG[0]);
2211 stack_frame_head = fra.me.prev;
2212 return fra.me.REG[0];
2213 }
2214 void compiling___table_computation___MMModule___local_analysis(val_t p0){
2215 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2216 val_t tmp;
2217 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2218 fra.me.file = LOCATE_compiling___table_computation;
2219 fra.me.line = 400;
2220 fra.me.meth = LOCATE_compiling___table_computation___MMModule___local_analysis;
2221 fra.me.has_broke = 0;
2222 fra.me.REG_size = 2;
2223 fra.me.nitni_local_ref_head = NULL;
2224 fra.me.REG[0] = NIT_NULL;
2225 fra.me.REG[1] = NIT_NULL;
2226 fra.me.REG[0] = p0;
2227 /* compiling/table_computation.nit:403 */
2228 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
2229 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_compiling___table_computation___MMModule___local_analysis_1));
2230 stack_frame_head = fra.me.prev;
2231 return;
2232 }
2233 void OC_compiling___table_computation___MMModule___local_analysis_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2234 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2235 val_t REGB0;
2236 fun_t CREG[1];
2237 val_t tmp;
2238 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2239 fra.me.file = LOCATE_compiling___table_computation;
2240 fra.me.line = 0;
2241 fra.me.meth = LOCATE_compiling___table_computation___MMModule___local_analysis;
2242 fra.me.has_broke = 0;
2243 fra.me.REG_size = 2;
2244 fra.me.nitni_local_ref_head = NULL;
2245 fra.me.REG[0] = NIT_NULL;
2246 fra.me.REG[1] = NIT_NULL;
2247 fra.me.closure_ctx = closctx_param;
2248 fra.me.closure_funs = CREG;
2249 fra.me.REG[0] = p0;
2250 CREG[0] = clos_fun0;
2251 /* compiling/table_computation.nit:404 */
2252 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
2253 if (UNTAG_Bool(REGB0)) {
2254 /* compiling/table_computation.nit:405 */
2255 REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMModule____local_table(closctx->REG[0])!=NIT_NULL);
2256 if (UNTAG_Bool(REGB0)) {
2257 } else {
2258 nit_abort("Uninitialized attribute %s", "_local_table", LOCATE_compiling___table_computation, 405);
2259 }
2260 fra.me.REG[1] = ATTR_compiling___table_computation___MMModule____local_table(closctx->REG[0]);
2261 CALL_compiling___table_computation___MMConcreteClass___build_layout_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2262 }
2263 stack_frame_head = fra.me.prev;
2264 return;
2265 }
2266 val_t compiling___table_computation___TableElt___is_related_to(val_t p0, val_t p1){
2267 struct {struct stack_frame_t me;} fra;
2268 val_t tmp;
2269 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2270 fra.me.file = LOCATE_compiling___table_computation;
2271 fra.me.line = 421;
2272 fra.me.meth = LOCATE_compiling___table_computation___TableElt___is_related_to;
2273 fra.me.has_broke = 0;
2274 fra.me.REG_size = 0;
2275 fra.me.nitni_local_ref_head = NULL;
2276 /* compiling/table_computation.nit:421 */
2277 nit_abort("Deferred method called", NULL, LOCATE_compiling___table_computation, 421);
2278 stack_frame_head = fra.me.prev;
2279 return NIT_NULL;
2280 }
2281 val_t compiling___table_computation___TableElt___length(val_t p0){
2282 struct {struct stack_frame_t me;} fra;
2283 val_t REGB0;
2284 val_t tmp;
2285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2286 fra.me.file = LOCATE_compiling___table_computation;
2287 fra.me.line = 424;
2288 fra.me.meth = LOCATE_compiling___table_computation___TableElt___length;
2289 fra.me.has_broke = 0;
2290 fra.me.REG_size = 1;
2291 fra.me.nitni_local_ref_head = NULL;
2292 fra.me.REG[0] = NIT_NULL;
2293 fra.me.REG[0] = p0;
2294 /* compiling/table_computation.nit:425 */
2295 REGB0 = TAG_Int(1);
2296 goto label1;
2297 label1: while(0);
2298 stack_frame_head = fra.me.prev;
2299 return REGB0;
2300 }
2301 val_t compiling___table_computation___TableElt___item(val_t p0, val_t p1){
2302 struct {struct stack_frame_t me;} fra;
2303 val_t REGB0;
2304 val_t tmp;
2305 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2306 fra.me.file = LOCATE_compiling___table_computation;
2307 fra.me.line = 427;
2308 fra.me.meth = LOCATE_compiling___table_computation___TableElt___item;
2309 fra.me.has_broke = 0;
2310 fra.me.REG_size = 1;
2311 fra.me.nitni_local_ref_head = NULL;
2312 fra.me.REG[0] = NIT_NULL;
2313 fra.me.REG[0] = p0;
2314 REGB0 = p1;
2315 /* compiling/table_computation.nit:428 */
2316 goto label1;
2317 label1: while(0);
2318 stack_frame_head = fra.me.prev;
2319 return fra.me.REG[0];
2320 }
2321 val_t compiling___table_computation___ModuleTableEltGroup___elements(val_t p0){
2322 struct {struct stack_frame_t me;} fra;
2323 val_t REGB0;
2324 val_t tmp;
2325 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2326 fra.me.file = LOCATE_compiling___table_computation;
2327 fra.me.line = 440;
2328 fra.me.meth = LOCATE_compiling___table_computation___ModuleTableEltGroup___elements;
2329 fra.me.has_broke = 0;
2330 fra.me.REG_size = 1;
2331 fra.me.nitni_local_ref_head = NULL;
2332 fra.me.REG[0] = NIT_NULL;
2333 fra.me.REG[0] = p0;
2334 /* compiling/table_computation.nit:440 */
2335 REGB0 = TAG_Bool(ATTR_compiling___table_computation___ModuleTableEltGroup____elements(fra.me.REG[0])!=NIT_NULL);
2336 if (UNTAG_Bool(REGB0)) {
2337 } else {
2338 nit_abort("Uninitialized attribute %s", "_elements", LOCATE_compiling___table_computation, 440);
2339 }
2340 fra.me.REG[0] = ATTR_compiling___table_computation___ModuleTableEltGroup____elements(fra.me.REG[0]);
2341 stack_frame_head = fra.me.prev;
2342 return fra.me.REG[0];
2343 }
2344 void compiling___table_computation___ModuleTableEltGroup___init(val_t p0, int* init_table){
2345 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___ModuleTableEltGroup].i;
2346 struct {struct stack_frame_t me;} fra;
2347 val_t tmp;
2348 if (init_table[itpos2]) return;
2349 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2350 fra.me.file = LOCATE_compiling___table_computation;
2351 fra.me.line = 0;
2352 fra.me.meth = LOCATE_compiling___table_computation___ModuleTableEltGroup___init;
2353 fra.me.has_broke = 0;
2354 fra.me.REG_size = 0;
2355 fra.me.nitni_local_ref_head = NULL;
2356 stack_frame_head = fra.me.prev;
2357 init_table[itpos2] = 1;
2358 return;
2359 }
2360 val_t compiling___table_computation___TableEltProp___property(val_t p0){
2361 struct {struct stack_frame_t me;} fra;
2362 val_t REGB0;
2363 val_t tmp;
2364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2365 fra.me.file = LOCATE_compiling___table_computation;
2366 fra.me.line = 446;
2367 fra.me.meth = LOCATE_compiling___table_computation___TableEltProp___property;
2368 fra.me.has_broke = 0;
2369 fra.me.REG_size = 1;
2370 fra.me.nitni_local_ref_head = NULL;
2371 fra.me.REG[0] = NIT_NULL;
2372 fra.me.REG[0] = p0;
2373 /* compiling/table_computation.nit:446 */
2374 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltProp____property(fra.me.REG[0])!=NIT_NULL);
2375 if (UNTAG_Bool(REGB0)) {
2376 } else {
2377 nit_abort("Uninitialized attribute %s", "_property", LOCATE_compiling___table_computation, 446);
2378 }
2379 fra.me.REG[0] = ATTR_compiling___table_computation___TableEltProp____property(fra.me.REG[0]);
2380 stack_frame_head = fra.me.prev;
2381 return fra.me.REG[0];
2382 }
2383 void compiling___table_computation___TableEltProp___init(val_t p0, val_t p1, int* init_table){
2384 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltProp].i;
2385 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2386 val_t tmp;
2387 if (init_table[itpos3]) return;
2388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2389 fra.me.file = LOCATE_compiling___table_computation;
2390 fra.me.line = 448;
2391 fra.me.meth = LOCATE_compiling___table_computation___TableEltProp___init;
2392 fra.me.has_broke = 0;
2393 fra.me.REG_size = 2;
2394 fra.me.nitni_local_ref_head = NULL;
2395 fra.me.REG[0] = NIT_NULL;
2396 fra.me.REG[1] = NIT_NULL;
2397 fra.me.REG[0] = p0;
2398 fra.me.REG[1] = p1;
2399 /* compiling/table_computation.nit:450 */
2400 ATTR_compiling___table_computation___TableEltProp____property(fra.me.REG[0]) = fra.me.REG[1];
2401 stack_frame_head = fra.me.prev;
2402 init_table[itpos3] = 1;
2403 return;
2404 }
2405 val_t compiling___table_computation___AbsTableEltClass___local_class(val_t p0){
2406 struct {struct stack_frame_t me;} fra;
2407 val_t REGB0;
2408 val_t tmp;
2409 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2410 fra.me.file = LOCATE_compiling___table_computation;
2411 fra.me.line = 482;
2412 fra.me.meth = LOCATE_compiling___table_computation___AbsTableEltClass___local_class;
2413 fra.me.has_broke = 0;
2414 fra.me.REG_size = 1;
2415 fra.me.nitni_local_ref_head = NULL;
2416 fra.me.REG[0] = NIT_NULL;
2417 fra.me.REG[0] = p0;
2418 /* compiling/table_computation.nit:482 */
2419 REGB0 = TAG_Bool(ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
2420 if (UNTAG_Bool(REGB0)) {
2421 } else {
2422 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_compiling___table_computation, 482);
2423 }
2424 fra.me.REG[0] = ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0]);
2425 stack_frame_head = fra.me.prev;
2426 return fra.me.REG[0];
2427 }
2428 void compiling___table_computation___AbsTableEltClass___init(val_t p0, val_t p1, int* init_table){
2429 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___AbsTableEltClass].i;
2430 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2431 val_t tmp;
2432 if (init_table[itpos4]) return;
2433 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2434 fra.me.file = LOCATE_compiling___table_computation;
2435 fra.me.line = 485;
2436 fra.me.meth = LOCATE_compiling___table_computation___AbsTableEltClass___init;
2437 fra.me.has_broke = 0;
2438 fra.me.REG_size = 2;
2439 fra.me.nitni_local_ref_head = NULL;
2440 fra.me.REG[0] = NIT_NULL;
2441 fra.me.REG[1] = NIT_NULL;
2442 fra.me.REG[0] = p0;
2443 fra.me.REG[1] = p1;
2444 /* compiling/table_computation.nit:487 */
2445 ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0]) = fra.me.REG[1];
2446 stack_frame_head = fra.me.prev;
2447 init_table[itpos4] = 1;
2448 return;
2449 }
2450 val_t compiling___table_computation___TableEltClass___is_related_to(val_t p0, val_t p1){
2451 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2452 val_t REGB0;
2453 val_t tmp;
2454 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2455 fra.me.file = LOCATE_compiling___table_computation;
2456 fra.me.line = 495;
2457 fra.me.meth = LOCATE_compiling___table_computation___TableEltClass___is_related_to;
2458 fra.me.has_broke = 0;
2459 fra.me.REG_size = 3;
2460 fra.me.nitni_local_ref_head = NULL;
2461 fra.me.REG[0] = NIT_NULL;
2462 fra.me.REG[1] = NIT_NULL;
2463 fra.me.REG[2] = NIT_NULL;
2464 fra.me.REG[0] = p0;
2465 fra.me.REG[1] = p1;
2466 /* compiling/table_computation.nit:497 */
2467 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2468 REGB0 = TAG_Bool(ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
2469 if (UNTAG_Bool(REGB0)) {
2470 } else {
2471 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_compiling___table_computation, 497);
2472 }
2473 fra.me.REG[0] = ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0]);
2474 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
2475 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2476 /* compiling/table_computation.nit:498 */
2477 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
2478 REGB0 = CALL_metamodel___partial_order___PartialOrderElement_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2479 goto label1;
2480 label1: while(0);
2481 stack_frame_head = fra.me.prev;
2482 return REGB0;
2483 }
2484 val_t compiling___table_computation___TableEltComposite___length(val_t p0){
2485 struct {struct stack_frame_t me;} fra;
2486 val_t REGB0;
2487 val_t tmp;
2488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2489 fra.me.file = LOCATE_compiling___table_computation;
2490 fra.me.line = 528;
2491 fra.me.meth = LOCATE_compiling___table_computation___TableEltComposite___length;
2492 fra.me.has_broke = 0;
2493 fra.me.REG_size = 1;
2494 fra.me.nitni_local_ref_head = NULL;
2495 fra.me.REG[0] = NIT_NULL;
2496 fra.me.REG[0] = p0;
2497 /* compiling/table_computation.nit:528 */
2498 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
2499 if (UNTAG_Bool(REGB0)) {
2500 } else {
2501 nit_abort("Uninitialized attribute %s", "_table", LOCATE_compiling___table_computation, 528);
2502 }
2503 fra.me.REG[0] = ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]);
2504 /* ../lib/standard/collection/array.nit:24 */
2505 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2506 if (UNTAG_Bool(REGB0)) {
2507 } else {
2508 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
2509 }
2510 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
2511 /* compiling/table_computation.nit:528 */
2512 goto label1;
2513 label1: while(0);
2514 stack_frame_head = fra.me.prev;
2515 return REGB0;
2516 }
2517 val_t compiling___table_computation___TableEltComposite___is_related_to(val_t p0, val_t p1){
2518 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2519 val_t REGB0;
2520 val_t tmp;
2521 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2522 fra.me.file = LOCATE_compiling___table_computation;
2523 fra.me.line = 529;
2524 fra.me.meth = LOCATE_compiling___table_computation___TableEltComposite___is_related_to;
2525 fra.me.has_broke = 0;
2526 fra.me.REG_size = 2;
2527 fra.me.nitni_local_ref_head = NULL;
2528 fra.me.REG[0] = NIT_NULL;
2529 fra.me.REG[1] = NIT_NULL;
2530 fra.me.REG[0] = p0;
2531 fra.me.REG[1] = p1;
2532 /* compiling/table_computation.nit:529 */
2533 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
2534 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____cc(fra.me.REG[0])!=NIT_NULL);
2535 if (UNTAG_Bool(REGB0)) {
2536 } else {
2537 nit_abort("Uninitialized attribute %s", "_cc", LOCATE_compiling___table_computation, 529);
2538 }
2539 fra.me.REG[0] = ATTR_compiling___table_computation___TableEltComposite____cc(fra.me.REG[0]);
2540 fra.me.REG[0] = CALL_compiling___table_computation___CompiledClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
2541 REGB0 = CALL_metamodel___partial_order___PartialOrderElement_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2542 goto label1;
2543 label1: while(0);
2544 stack_frame_head = fra.me.prev;
2545 return REGB0;
2546 }
2547 void compiling___table_computation___TableEltComposite___add(val_t p0, val_t p1, val_t p2){
2548 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2549 val_t REGB0;
2550 val_t tmp;
2551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2552 fra.me.file = LOCATE_compiling___table_computation;
2553 fra.me.line = 531;
2554 fra.me.meth = LOCATE_compiling___table_computation___TableEltComposite___add;
2555 fra.me.has_broke = 0;
2556 fra.me.REG_size = 5;
2557 fra.me.nitni_local_ref_head = NULL;
2558 fra.me.REG[0] = NIT_NULL;
2559 fra.me.REG[1] = NIT_NULL;
2560 fra.me.REG[2] = NIT_NULL;
2561 fra.me.REG[3] = NIT_NULL;
2562 fra.me.REG[4] = NIT_NULL;
2563 fra.me.REG[0] = p0;
2564 fra.me.REG[1] = p1;
2565 fra.me.REG[2] = p2;
2566 /* compiling/table_computation.nit:533 */
2567 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____offsets(fra.me.REG[0])!=NIT_NULL);
2568 if (UNTAG_Bool(REGB0)) {
2569 } else {
2570 nit_abort("Uninitialized attribute %s", "_offsets", LOCATE_compiling___table_computation, 533);
2571 }
2572 fra.me.REG[3] = ATTR_compiling___table_computation___TableEltComposite____offsets(fra.me.REG[0]);
2573 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
2574 if (UNTAG_Bool(REGB0)) {
2575 } else {
2576 nit_abort("Uninitialized attribute %s", "_table", LOCATE_compiling___table_computation, 533);
2577 }
2578 fra.me.REG[4] = ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]);
2579 /* ../lib/standard/collection/array.nit:24 */
2580 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
2581 if (UNTAG_Bool(REGB0)) {
2582 } else {
2583 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
2584 }
2585 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
2586 /* compiling/table_computation.nit:533 */
2587 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], REGB0);
2588 /* compiling/table_computation.nit:534 */
2589 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
2590 if (UNTAG_Bool(REGB0)) {
2591 } else {
2592 nit_abort("Uninitialized attribute %s", "_table", LOCATE_compiling___table_computation, 534);
2593 }
2594 fra.me.REG[0] = ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]);
2595 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
2596 stack_frame_head = fra.me.prev;
2597 return;
2598 }
2599 val_t compiling___table_computation___TableEltComposite___item(val_t p0, val_t p1){
2600 struct {struct stack_frame_t me;} fra;
2601 val_t REGB0;
2602 val_t REGB1;
2603 val_t REGB2;
2604 val_t tmp;
2605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2606 fra.me.file = LOCATE_compiling___table_computation;
2607 fra.me.line = 537;
2608 fra.me.meth = LOCATE_compiling___table_computation___TableEltComposite___item;
2609 fra.me.has_broke = 0;
2610 fra.me.REG_size = 1;
2611 fra.me.nitni_local_ref_head = NULL;
2612 fra.me.REG[0] = NIT_NULL;
2613 fra.me.REG[0] = p0;
2614 REGB0 = p1;
2615 /* compiling/table_computation.nit:537 */
2616 REGB1 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
2617 if (UNTAG_Bool(REGB1)) {
2618 } else {
2619 nit_abort("Uninitialized attribute %s", "_table", LOCATE_compiling___table_computation, 537);
2620 }
2621 fra.me.REG[0] = ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]);
2622 /* ../lib/standard/collection/array.nit:280 */
2623 REGB1 = TAG_Int(0);
2624 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2625 if (UNTAG_Bool(REGB2)) {
2626 } else {
2627 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2628 }
2629 /* ../lib/standard/kernel.nit:233 */
2630 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
2631 /* ../lib/standard/collection/array.nit:280 */
2632 if (UNTAG_Bool(REGB1)) {
2633 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2634 if (UNTAG_Bool(REGB1)) {
2635 } else {
2636 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2637 }
2638 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
2639 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2640 if (UNTAG_Bool(REGB2)) {
2641 } else {
2642 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2643 }
2644 /* ../lib/standard/kernel.nit:232 */
2645 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2646 } else {
2647 /* ../lib/standard/collection/array.nit:280 */
2648 REGB2 = TAG_Bool(false);
2649 REGB1 = REGB2;
2650 }
2651 if (UNTAG_Bool(REGB1)) {
2652 } else {
2653 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2654 }
2655 /* ../lib/standard/collection/array.nit:281 */
2656 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
2657 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2658 if (UNTAG_Bool(REGB1)) {
2659 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2660 }
2661 /* ../lib/standard/collection/array.nit:718 */
2662 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
2663 /* ../lib/standard/collection/array.nit:281 */
2664 goto label1;
2665 label1: while(0);
2666 /* compiling/table_computation.nit:537 */
2667 goto label2;
2668 label2: while(0);
2669 stack_frame_head = fra.me.prev;
2670 return fra.me.REG[0];
2671 }
2672 void compiling___table_computation___TableEltComposite___init(val_t p0, val_t p1, int* init_table){
2673 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltComposite].i;
2674 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2675 val_t tmp;
2676 if (init_table[itpos5]) return;
2677 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2678 fra.me.file = LOCATE_compiling___table_computation;
2679 fra.me.line = 539;
2680 fra.me.meth = LOCATE_compiling___table_computation___TableEltComposite___init;
2681 fra.me.has_broke = 0;
2682 fra.me.REG_size = 2;
2683 fra.me.nitni_local_ref_head = NULL;
2684 fra.me.REG[0] = NIT_NULL;
2685 fra.me.REG[1] = NIT_NULL;
2686 fra.me.REG[0] = p0;
2687 fra.me.REG[1] = p1;
2688 /* compiling/table_computation.nit:541 */
2689 ATTR_compiling___table_computation___TableEltComposite____cc(fra.me.REG[0]) = fra.me.REG[1];
2690 /* compiling/table_computation.nit:542 */
2691 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
2692 ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]) = fra.me.REG[1];
2693 /* compiling/table_computation.nit:543 */
2694 fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
2695 ATTR_compiling___table_computation___TableEltComposite____offsets(fra.me.REG[0]) = fra.me.REG[1];
2696 stack_frame_head = fra.me.prev;
2697 init_table[itpos5] = 1;
2698 return;
2699 }
2700 val_t compiling___table_computation___TableEltClassSelfId___is_related_to(val_t p0, val_t p1){
2701 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2702 val_t REGB0;
2703 val_t tmp;
2704 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2705 fra.me.file = LOCATE_compiling___table_computation;
2706 fra.me.line = 550;
2707 fra.me.meth = LOCATE_compiling___table_computation___TableEltClassSelfId___is_related_to;
2708 fra.me.has_broke = 0;
2709 fra.me.REG_size = 2;
2710 fra.me.nitni_local_ref_head = NULL;
2711 fra.me.REG[0] = NIT_NULL;
2712 fra.me.REG[1] = NIT_NULL;
2713 fra.me.REG[0] = p0;
2714 fra.me.REG[1] = p1;
2715 /* compiling/table_computation.nit:550 */
2716 REGB0 = TAG_Bool(true);
2717 goto label1;
2718 label1: while(0);
2719 stack_frame_head = fra.me.prev;
2720 return REGB0;
2721 }
2722 void compiling___table_computation___TableEltClassSelfId___init(val_t p0, int* init_table){
2723 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltClassSelfId].i;
2724 struct {struct stack_frame_t me;} fra;
2725 val_t tmp;
2726 if (init_table[itpos6]) return;
2727 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2728 fra.me.file = LOCATE_compiling___table_computation;
2729 fra.me.line = 0;
2730 fra.me.meth = LOCATE_compiling___table_computation___TableEltClassSelfId___init;
2731 fra.me.has_broke = 0;
2732 fra.me.REG_size = 0;
2733 fra.me.nitni_local_ref_head = NULL;
2734 stack_frame_head = fra.me.prev;
2735 init_table[itpos6] = 1;
2736 return;
2737 }
2738 val_t compiling___table_computation___TableEltClassSelfName___is_related_to(val_t p0, val_t p1){
2739 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2740 val_t REGB0;
2741 val_t tmp;
2742 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2743 fra.me.file = LOCATE_compiling___table_computation;
2744 fra.me.line = 556;
2745 fra.me.meth = LOCATE_compiling___table_computation___TableEltClassSelfName___is_related_to;
2746 fra.me.has_broke = 0;
2747 fra.me.REG_size = 2;
2748 fra.me.nitni_local_ref_head = NULL;
2749 fra.me.REG[0] = NIT_NULL;
2750 fra.me.REG[1] = NIT_NULL;
2751 fra.me.REG[0] = p0;
2752 fra.me.REG[1] = p1;
2753 /* compiling/table_computation.nit:556 */
2754 REGB0 = TAG_Bool(true);
2755 goto label1;
2756 label1: while(0);
2757 stack_frame_head = fra.me.prev;
2758 return REGB0;
2759 }
2760 void compiling___table_computation___TableEltClassSelfName___init(val_t p0, int* init_table){
2761 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltClassSelfName].i;
2762 struct {struct stack_frame_t me;} fra;
2763 val_t tmp;
2764 if (init_table[itpos7]) return;
2765 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2766 fra.me.file = LOCATE_compiling___table_computation;
2767 fra.me.line = 0;
2768 fra.me.meth = LOCATE_compiling___table_computation___TableEltClassSelfName___init;
2769 fra.me.has_broke = 0;
2770 fra.me.REG_size = 0;
2771 fra.me.nitni_local_ref_head = NULL;
2772 stack_frame_head = fra.me.prev;
2773 init_table[itpos7] = 1;
2774 return;
2775 }
2776 val_t compiling___table_computation___TableEltClassObjectSize___is_related_to(val_t p0, val_t p1){
2777 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2778 val_t REGB0;
2779 val_t tmp;
2780 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2781 fra.me.file = LOCATE_compiling___table_computation;
2782 fra.me.line = 562;
2783 fra.me.meth = LOCATE_compiling___table_computation___TableEltClassObjectSize___is_related_to;
2784 fra.me.has_broke = 0;
2785 fra.me.REG_size = 2;
2786 fra.me.nitni_local_ref_head = NULL;
2787 fra.me.REG[0] = NIT_NULL;
2788 fra.me.REG[1] = NIT_NULL;
2789 fra.me.REG[0] = p0;
2790 fra.me.REG[1] = p1;
2791 /* compiling/table_computation.nit:562 */
2792 REGB0 = TAG_Bool(true);
2793 goto label1;
2794 label1: while(0);
2795 stack_frame_head = fra.me.prev;
2796 return REGB0;
2797 }
2798 void compiling___table_computation___TableEltClassObjectSize___init(val_t p0, int* init_table){
2799 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltClassObjectSize].i;
2800 struct {struct stack_frame_t me;} fra;
2801 val_t tmp;
2802 if (init_table[itpos8]) return;
2803 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2804 fra.me.file = LOCATE_compiling___table_computation;
2805 fra.me.line = 0;
2806 fra.me.meth = LOCATE_compiling___table_computation___TableEltClassObjectSize___init;
2807 fra.me.has_broke = 0;
2808 fra.me.REG_size = 0;
2809 fra.me.nitni_local_ref_head = NULL;
2810 stack_frame_head = fra.me.prev;
2811 init_table[itpos8] = 1;
2812 return;
2813 }
2814 val_t compiling___table_computation___TableEltObjectId___is_related_to(val_t p0, val_t p1){
2815 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2816 val_t REGB0;
2817 val_t tmp;
2818 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2819 fra.me.file = LOCATE_compiling___table_computation;
2820 fra.me.line = 568;
2821 fra.me.meth = LOCATE_compiling___table_computation___TableEltObjectId___is_related_to;
2822 fra.me.has_broke = 0;
2823 fra.me.REG_size = 2;
2824 fra.me.nitni_local_ref_head = NULL;
2825 fra.me.REG[0] = NIT_NULL;
2826 fra.me.REG[1] = NIT_NULL;
2827 fra.me.REG[0] = p0;
2828 fra.me.REG[1] = p1;
2829 /* compiling/table_computation.nit:568 */
2830 REGB0 = TAG_Bool(true);
2831 goto label1;
2832 label1: while(0);
2833 stack_frame_head = fra.me.prev;
2834 return REGB0;
2835 }
2836 void compiling___table_computation___TableEltObjectId___init(val_t p0, int* init_table){
2837 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltObjectId].i;
2838 struct {struct stack_frame_t me;} fra;
2839 val_t tmp;
2840 if (init_table[itpos9]) return;
2841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2842 fra.me.file = LOCATE_compiling___table_computation;
2843 fra.me.line = 0;
2844 fra.me.meth = LOCATE_compiling___table_computation___TableEltObjectId___init;
2845 fra.me.has_broke = 0;
2846 fra.me.REG_size = 0;
2847 fra.me.nitni_local_ref_head = NULL;
2848 stack_frame_head = fra.me.prev;
2849 init_table[itpos9] = 1;
2850 return;
2851 }
2852 val_t compiling___table_computation___TableEltVftPointer___is_related_to(val_t p0, val_t p1){
2853 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2854 val_t REGB0;
2855 val_t tmp;
2856 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2857 fra.me.file = LOCATE_compiling___table_computation;
2858 fra.me.line = 574;
2859 fra.me.meth = LOCATE_compiling___table_computation___TableEltVftPointer___is_related_to;
2860 fra.me.has_broke = 0;
2861 fra.me.REG_size = 2;
2862 fra.me.nitni_local_ref_head = NULL;
2863 fra.me.REG[0] = NIT_NULL;
2864 fra.me.REG[1] = NIT_NULL;
2865 fra.me.REG[0] = p0;
2866 fra.me.REG[1] = p1;
2867 /* compiling/table_computation.nit:574 */
2868 REGB0 = TAG_Bool(true);
2869 goto label1;
2870 label1: while(0);
2871 stack_frame_head = fra.me.prev;
2872 return REGB0;
2873 }
2874 void compiling___table_computation___TableEltVftPointer___init(val_t p0, int* init_table){
2875 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltVftPointer].i;
2876 struct {struct stack_frame_t me;} fra;
2877 val_t tmp;
2878 if (init_table[itpos10]) return;
2879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2880 fra.me.file = LOCATE_compiling___table_computation;
2881 fra.me.line = 0;
2882 fra.me.meth = LOCATE_compiling___table_computation___TableEltVftPointer___init;
2883 fra.me.has_broke = 0;
2884 fra.me.REG_size = 0;
2885 fra.me.nitni_local_ref_head = NULL;
2886 stack_frame_head = fra.me.prev;
2887 init_table[itpos10] = 1;
2888 return;
2889 }