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