gc: show default GC on warnings
[nit.git] / c_src / table_computation._sep.c
1 /* This C file is generated by NIT to compile module table_computation. */
2 #include "table_computation._sep.h"
3 val_t 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_table_computation;
9 fra.me.line = 29;
10 fra.me.meth = LOCATE_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 REGB0 = TAG_Bool(ATTR_table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
18 /* ./compiling//table_computation.nit:32 */
19 if (UNTAG_Bool(REGB0)) {
20 } else {
21 fprintf(stderr, "Uninitialized attribute %s", "_colors");
22 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 32);
23 nit_exit(1);
24 }
25 fra.me.REG[0] = ATTR_table_computation___ColorContext____colors(fra.me.REG[0]);
26 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
27 REGB0 = fra.me.REG[1];
28 goto label1;
29 label1: while(0);
30 stack_frame_head = fra.me.prev;
31 return REGB0;
32 }
33 val_t table_computation___ColorContext___has_color(val_t p0, val_t p1){
34 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35 val_t REGB0;
36 val_t tmp;
37 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38 fra.me.file = LOCATE_table_computation;
39 fra.me.line = 35;
40 fra.me.meth = LOCATE_table_computation___ColorContext___has_color;
41 fra.me.has_broke = 0;
42 fra.me.REG_size = 2;
43 fra.me.REG[0] = NIT_NULL;
44 fra.me.REG[1] = NIT_NULL;
45 fra.me.REG[0] = p0;
46 fra.me.REG[1] = p1;
47 REGB0 = TAG_Bool(ATTR_table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
48 /* ./compiling//table_computation.nit:38 */
49 if (UNTAG_Bool(REGB0)) {
50 } else {
51 fprintf(stderr, "Uninitialized attribute %s", "_colors");
52 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 38);
53 nit_exit(1);
54 }
55 fra.me.REG[0] = ATTR_table_computation___ColorContext____colors(fra.me.REG[0]);
56 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
57 goto label1;
58 label1: while(0);
59 stack_frame_head = fra.me.prev;
60 return REGB0;
61 }
62 void table_computation___ColorContext___color__eq(val_t p0, val_t p1, val_t p2){
63 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
64 val_t REGB0;
65 val_t REGB1;
66 val_t REGB2;
67 val_t tmp;
68 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
69 fra.me.file = LOCATE_table_computation;
70 fra.me.line = 41;
71 fra.me.meth = LOCATE_table_computation___ColorContext___color__eq;
72 fra.me.has_broke = 0;
73 fra.me.REG_size = 5;
74 fra.me.REG[0] = NIT_NULL;
75 fra.me.REG[1] = NIT_NULL;
76 fra.me.REG[2] = NIT_NULL;
77 fra.me.REG[3] = NIT_NULL;
78 fra.me.REG[4] = NIT_NULL;
79 fra.me.REG[0] = p0;
80 fra.me.REG[1] = p1;
81 REGB0 = p2;
82 REGB1 = TAG_Bool(ATTR_table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
83 /* ./compiling//table_computation.nit:44 */
84 if (UNTAG_Bool(REGB1)) {
85 } else {
86 fprintf(stderr, "Uninitialized attribute %s", "_colors");
87 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 44);
88 nit_exit(1);
89 }
90 fra.me.REG[2] = ATTR_table_computation___ColorContext____colors(fra.me.REG[0]);
91 CALL_abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], REGB0);
92 REGB1 = TAG_Int(0);
93 REGB2 = CALL_table_computation___TableElt___length(fra.me.REG[1])(fra.me.REG[1]);
94 fra.me.REG[2] = NEW_Range_range___Range___without_last(REGB1, REGB2);
95 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
96 /* ./compiling//table_computation.nit:46 */
97 while(1) {
98 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
99 if (UNTAG_Bool(REGB2)) {
100 REGB2 = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
101 REGB1 = TAG_Bool(ATTR_table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
102 /* ./compiling//table_computation.nit:47 */
103 if (UNTAG_Bool(REGB1)) {
104 } else {
105 fprintf(stderr, "Uninitialized attribute %s", "_colors");
106 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 47);
107 nit_exit(1);
108 }
109 fra.me.REG[3] = ATTR_table_computation___ColorContext____colors(fra.me.REG[0]);
110 fra.me.REG[4] = CALL_table_computation___TableElt___item(fra.me.REG[1])(fra.me.REG[1], REGB2);
111 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], REGB0);
112 REGB2 = TAG_Int(1);
113 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
114 REGB0 = REGB2;
115 /* ./compiling//table_computation.nit:48 */
116 } else {
117 /* ./compiling//table_computation.nit:46 */
118 goto label1;
119 }
120 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
121 }
122 label1: while(0);
123 stack_frame_head = fra.me.prev;
124 return;
125 }
126 void table_computation___ColorContext___init(val_t p0, int* init_table){
127 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ColorContext].i;
128 struct {struct stack_frame_t me;} fra;
129 val_t tmp;
130 if (init_table[itpos0]) return;
131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
132 fra.me.file = LOCATE_table_computation;
133 fra.me.line = 0;
134 fra.me.meth = LOCATE_table_computation___ColorContext___init;
135 fra.me.has_broke = 0;
136 fra.me.REG_size = 0;
137 stack_frame_head = fra.me.prev;
138 init_table[itpos0] = 1;
139 return;
140 }
141 val_t table_computation___TableInformation___max_class_table_length(val_t p0){
142 struct {struct stack_frame_t me;} fra;
143 val_t REGB0;
144 val_t tmp;
145 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
146 fra.me.file = LOCATE_table_computation;
147 fra.me.line = 56;
148 fra.me.meth = LOCATE_table_computation___TableInformation___max_class_table_length;
149 fra.me.has_broke = 0;
150 fra.me.REG_size = 1;
151 fra.me.REG[0] = NIT_NULL;
152 fra.me.REG[0] = p0;
153 REGB0 = TAG_Bool(ATTR_table_computation___TableInformation____max_class_table_length(fra.me.REG[0])!=NIT_NULL);
154 /* ./compiling//table_computation.nit:56 */
155 if (UNTAG_Bool(REGB0)) {
156 } else {
157 fprintf(stderr, "Uninitialized attribute %s", "_max_class_table_length");
158 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 56);
159 nit_exit(1);
160 }
161 REGB0 = ATTR_table_computation___TableInformation____max_class_table_length(fra.me.REG[0]);
162 stack_frame_head = fra.me.prev;
163 return REGB0;
164 }
165 void table_computation___TableInformation___max_class_table_length__eq(val_t p0, val_t p1){
166 struct {struct stack_frame_t me;} fra;
167 val_t REGB0;
168 val_t tmp;
169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
170 fra.me.file = LOCATE_table_computation;
171 fra.me.line = 56;
172 fra.me.meth = LOCATE_table_computation___TableInformation___max_class_table_length__eq;
173 fra.me.has_broke = 0;
174 fra.me.REG_size = 1;
175 fra.me.REG[0] = NIT_NULL;
176 fra.me.REG[0] = p0;
177 REGB0 = p1;
178 /* ./compiling//table_computation.nit:56 */
179 ATTR_table_computation___TableInformation____max_class_table_length(fra.me.REG[0]) = REGB0;
180 stack_frame_head = fra.me.prev;
181 return;
182 }
183 val_t table_computation___CompiledClass___local_class(val_t p0){
184 struct {struct stack_frame_t me;} fra;
185 val_t REGB0;
186 val_t tmp;
187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
188 fra.me.file = LOCATE_table_computation;
189 fra.me.line = 63;
190 fra.me.meth = LOCATE_table_computation___CompiledClass___local_class;
191 fra.me.has_broke = 0;
192 fra.me.REG_size = 1;
193 fra.me.REG[0] = NIT_NULL;
194 fra.me.REG[0] = p0;
195 REGB0 = TAG_Bool(ATTR_table_computation___CompiledClass____local_class(fra.me.REG[0])!=NIT_NULL);
196 /* ./compiling//table_computation.nit:63 */
197 if (UNTAG_Bool(REGB0)) {
198 } else {
199 fprintf(stderr, "Uninitialized attribute %s", "_local_class");
200 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 63);
201 nit_exit(1);
202 }
203 fra.me.REG[0] = ATTR_table_computation___CompiledClass____local_class(fra.me.REG[0]);
204 stack_frame_head = fra.me.prev;
205 return fra.me.REG[0];
206 }
207 val_t table_computation___CompiledClass___id(val_t p0){
208 struct {struct stack_frame_t me;} fra;
209 val_t REGB0;
210 val_t tmp;
211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
212 fra.me.file = LOCATE_table_computation;
213 fra.me.line = 66;
214 fra.me.meth = LOCATE_table_computation___CompiledClass___id;
215 fra.me.has_broke = 0;
216 fra.me.REG_size = 1;
217 fra.me.REG[0] = NIT_NULL;
218 fra.me.REG[0] = p0;
219 REGB0 = TAG_Bool(ATTR_table_computation___CompiledClass____id(fra.me.REG[0])!=NIT_NULL);
220 /* ./compiling//table_computation.nit:66 */
221 if (UNTAG_Bool(REGB0)) {
222 } else {
223 fprintf(stderr, "Uninitialized attribute %s", "_id");
224 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 66);
225 nit_exit(1);
226 }
227 REGB0 = ATTR_table_computation___CompiledClass____id(fra.me.REG[0]);
228 stack_frame_head = fra.me.prev;
229 return REGB0;
230 }
231 void table_computation___CompiledClass___id__eq(val_t p0, val_t p1){
232 struct {struct stack_frame_t me;} fra;
233 val_t REGB0;
234 val_t tmp;
235 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
236 fra.me.file = LOCATE_table_computation;
237 fra.me.line = 66;
238 fra.me.meth = LOCATE_table_computation___CompiledClass___id__eq;
239 fra.me.has_broke = 0;
240 fra.me.REG_size = 1;
241 fra.me.REG[0] = NIT_NULL;
242 fra.me.REG[0] = p0;
243 REGB0 = p1;
244 /* ./compiling//table_computation.nit:66 */
245 ATTR_table_computation___CompiledClass____id(fra.me.REG[0]) = REGB0;
246 stack_frame_head = fra.me.prev;
247 return;
248 }
249 val_t table_computation___CompiledClass___class_table(val_t p0){
250 struct {struct stack_frame_t me;} fra;
251 val_t REGB0;
252 val_t tmp;
253 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
254 fra.me.file = LOCATE_table_computation;
255 fra.me.line = 69;
256 fra.me.meth = LOCATE_table_computation___CompiledClass___class_table;
257 fra.me.has_broke = 0;
258 fra.me.REG_size = 1;
259 fra.me.REG[0] = NIT_NULL;
260 fra.me.REG[0] = p0;
261 REGB0 = TAG_Bool(ATTR_table_computation___CompiledClass____class_table(fra.me.REG[0])!=NIT_NULL);
262 /* ./compiling//table_computation.nit:69 */
263 if (UNTAG_Bool(REGB0)) {
264 } else {
265 fprintf(stderr, "Uninitialized attribute %s", "_class_table");
266 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 69);
267 nit_exit(1);
268 }
269 fra.me.REG[0] = ATTR_table_computation___CompiledClass____class_table(fra.me.REG[0]);
270 stack_frame_head = fra.me.prev;
271 return fra.me.REG[0];
272 }
273 val_t table_computation___CompiledClass___instance_table(val_t p0){
274 struct {struct stack_frame_t me;} fra;
275 val_t REGB0;
276 val_t tmp;
277 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
278 fra.me.file = LOCATE_table_computation;
279 fra.me.line = 72;
280 fra.me.meth = LOCATE_table_computation___CompiledClass___instance_table;
281 fra.me.has_broke = 0;
282 fra.me.REG_size = 1;
283 fra.me.REG[0] = NIT_NULL;
284 fra.me.REG[0] = p0;
285 REGB0 = TAG_Bool(ATTR_table_computation___CompiledClass____instance_table(fra.me.REG[0])!=NIT_NULL);
286 /* ./compiling//table_computation.nit:72 */
287 if (UNTAG_Bool(REGB0)) {
288 } else {
289 fprintf(stderr, "Uninitialized attribute %s", "_instance_table");
290 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 72);
291 nit_exit(1);
292 }
293 fra.me.REG[0] = ATTR_table_computation___CompiledClass____instance_table(fra.me.REG[0]);
294 stack_frame_head = fra.me.prev;
295 return fra.me.REG[0];
296 }
297 val_t table_computation___CompiledClass___class_layout(val_t p0){
298 struct {struct stack_frame_t me;} fra;
299 val_t REGB0;
300 val_t tmp;
301 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
302 fra.me.file = LOCATE_table_computation;
303 fra.me.line = 75;
304 fra.me.meth = LOCATE_table_computation___CompiledClass___class_layout;
305 fra.me.has_broke = 0;
306 fra.me.REG_size = 1;
307 fra.me.REG[0] = NIT_NULL;
308 fra.me.REG[0] = p0;
309 REGB0 = TAG_Bool(ATTR_table_computation___CompiledClass____class_layout(fra.me.REG[0])!=NIT_NULL);
310 /* ./compiling//table_computation.nit:75 */
311 if (UNTAG_Bool(REGB0)) {
312 } else {
313 fprintf(stderr, "Uninitialized attribute %s", "_class_layout");
314 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 75);
315 nit_exit(1);
316 }
317 fra.me.REG[0] = ATTR_table_computation___CompiledClass____class_layout(fra.me.REG[0]);
318 stack_frame_head = fra.me.prev;
319 return fra.me.REG[0];
320 }
321 void table_computation___CompiledClass___class_layout__eq(val_t p0, val_t p1){
322 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
323 val_t tmp;
324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
325 fra.me.file = LOCATE_table_computation;
326 fra.me.line = 75;
327 fra.me.meth = LOCATE_table_computation___CompiledClass___class_layout__eq;
328 fra.me.has_broke = 0;
329 fra.me.REG_size = 2;
330 fra.me.REG[0] = NIT_NULL;
331 fra.me.REG[1] = NIT_NULL;
332 fra.me.REG[0] = p0;
333 fra.me.REG[1] = p1;
334 /* ./compiling//table_computation.nit:75 */
335 ATTR_table_computation___CompiledClass____class_layout(fra.me.REG[0]) = fra.me.REG[1];
336 stack_frame_head = fra.me.prev;
337 return;
338 }
339 val_t table_computation___CompiledClass___instance_layout(val_t p0){
340 struct {struct stack_frame_t me;} fra;
341 val_t REGB0;
342 val_t tmp;
343 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
344 fra.me.file = LOCATE_table_computation;
345 fra.me.line = 78;
346 fra.me.meth = LOCATE_table_computation___CompiledClass___instance_layout;
347 fra.me.has_broke = 0;
348 fra.me.REG_size = 1;
349 fra.me.REG[0] = NIT_NULL;
350 fra.me.REG[0] = p0;
351 REGB0 = TAG_Bool(ATTR_table_computation___CompiledClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
352 /* ./compiling//table_computation.nit:78 */
353 if (UNTAG_Bool(REGB0)) {
354 } else {
355 fprintf(stderr, "Uninitialized attribute %s", "_instance_layout");
356 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 78);
357 nit_exit(1);
358 }
359 fra.me.REG[0] = ATTR_table_computation___CompiledClass____instance_layout(fra.me.REG[0]);
360 stack_frame_head = fra.me.prev;
361 return fra.me.REG[0];
362 }
363 void table_computation___CompiledClass___instance_layout__eq(val_t p0, val_t p1){
364 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
365 val_t tmp;
366 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
367 fra.me.file = LOCATE_table_computation;
368 fra.me.line = 78;
369 fra.me.meth = LOCATE_table_computation___CompiledClass___instance_layout__eq;
370 fra.me.has_broke = 0;
371 fra.me.REG_size = 2;
372 fra.me.REG[0] = NIT_NULL;
373 fra.me.REG[1] = NIT_NULL;
374 fra.me.REG[0] = p0;
375 fra.me.REG[1] = p1;
376 /* ./compiling//table_computation.nit:78 */
377 ATTR_table_computation___CompiledClass____instance_layout(fra.me.REG[0]) = fra.me.REG[1];
378 stack_frame_head = fra.me.prev;
379 return;
380 }
381 void table_computation___CompiledClass___init(val_t p0, val_t p1, int* init_table){
382 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_CompiledClass].i;
383 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
384 val_t tmp;
385 if (init_table[itpos1]) return;
386 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
387 fra.me.file = LOCATE_table_computation;
388 fra.me.line = 81;
389 fra.me.meth = LOCATE_table_computation___CompiledClass___init;
390 fra.me.has_broke = 0;
391 fra.me.REG_size = 3;
392 fra.me.REG[0] = NIT_NULL;
393 fra.me.REG[1] = NIT_NULL;
394 fra.me.REG[2] = NIT_NULL;
395 fra.me.REG[0] = p0;
396 fra.me.REG[1] = p1;
397 fra.me.REG[2] = fra.me.REG[0];
398 /* ./compiling//table_computation.nit:81 */
399 CALL_table_computation___ColorContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
400 ATTR_table_computation___CompiledClass____local_class(fra.me.REG[2]) = fra.me.REG[1];
401 stack_frame_head = fra.me.prev;
402 init_table[itpos1] = 1;
403 return;
404 }
405 val_t table_computation___MMConcreteClass___class_color_pos(val_t p0){
406 struct {struct stack_frame_t me;} fra;
407 val_t REGB0;
408 val_t tmp;
409 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
410 fra.me.file = LOCATE_table_computation;
411 fra.me.line = 85;
412 fra.me.meth = LOCATE_table_computation___MMConcreteClass___class_color_pos;
413 fra.me.has_broke = 0;
414 fra.me.REG_size = 1;
415 fra.me.REG[0] = NIT_NULL;
416 fra.me.REG[0] = p0;
417 fra.me.REG[0] = ATTR_table_computation___MMConcreteClass____class_color_pos(fra.me.REG[0]);
418 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
419 /* ./compiling//table_computation.nit:86 */
420 if (UNTAG_Bool(REGB0)) {
421 } else {
422 fprintf(stderr, "Cast failed");
423 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 86);
424 nit_exit(1);
425 }
426 goto label1;
427 label1: while(0);
428 stack_frame_head = fra.me.prev;
429 return fra.me.REG[0];
430 }
431 val_t table_computation___MMConcreteClass___class_layout(val_t p0){
432 struct {struct stack_frame_t me;} fra;
433 val_t REGB0;
434 val_t tmp;
435 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
436 fra.me.file = LOCATE_table_computation;
437 fra.me.line = 89;
438 fra.me.meth = LOCATE_table_computation___MMConcreteClass___class_layout;
439 fra.me.has_broke = 0;
440 fra.me.REG_size = 1;
441 fra.me.REG[0] = NIT_NULL;
442 fra.me.REG[0] = p0;
443 REGB0 = TAG_Bool(ATTR_table_computation___MMConcreteClass____class_layout(fra.me.REG[0])!=NIT_NULL);
444 /* ./compiling//table_computation.nit:89 */
445 if (UNTAG_Bool(REGB0)) {
446 } else {
447 fprintf(stderr, "Uninitialized attribute %s", "_class_layout");
448 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 89);
449 nit_exit(1);
450 }
451 fra.me.REG[0] = ATTR_table_computation___MMConcreteClass____class_layout(fra.me.REG[0]);
452 stack_frame_head = fra.me.prev;
453 return fra.me.REG[0];
454 }
455 val_t table_computation___MMConcreteClass___instance_layout(val_t p0){
456 struct {struct stack_frame_t me;} fra;
457 val_t REGB0;
458 val_t tmp;
459 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
460 fra.me.file = LOCATE_table_computation;
461 fra.me.line = 92;
462 fra.me.meth = LOCATE_table_computation___MMConcreteClass___instance_layout;
463 fra.me.has_broke = 0;
464 fra.me.REG_size = 1;
465 fra.me.REG[0] = NIT_NULL;
466 fra.me.REG[0] = p0;
467 REGB0 = TAG_Bool(ATTR_table_computation___MMConcreteClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
468 /* ./compiling//table_computation.nit:92 */
469 if (UNTAG_Bool(REGB0)) {
470 } else {
471 fprintf(stderr, "Uninitialized attribute %s", "_instance_layout");
472 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 92);
473 nit_exit(1);
474 }
475 fra.me.REG[0] = ATTR_table_computation___MMConcreteClass____instance_layout(fra.me.REG[0]);
476 stack_frame_head = fra.me.prev;
477 return fra.me.REG[0];
478 }
479 void table_computation___MMConcreteClass___build_layout_in(val_t p0, val_t p1, val_t p2){
480 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
481 val_t REGB0;
482 val_t REGB1;
483 val_t tmp;
484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
485 fra.me.file = LOCATE_table_computation;
486 fra.me.line = 95;
487 fra.me.meth = LOCATE_table_computation___MMConcreteClass___build_layout_in;
488 fra.me.has_broke = 0;
489 fra.me.REG_size = 6;
490 fra.me.REG[0] = NIT_NULL;
491 fra.me.REG[1] = NIT_NULL;
492 fra.me.REG[2] = NIT_NULL;
493 fra.me.REG[3] = NIT_NULL;
494 fra.me.REG[4] = NIT_NULL;
495 fra.me.REG[5] = NIT_NULL;
496 fra.me.REG[0] = p0;
497 fra.me.REG[1] = p1;
498 fra.me.REG[2] = p2;
499 REGB0 = TAG_Bool(ATTR_table_computation___MMConcreteClass____class_layout(fra.me.REG[0])!=NIT_NULL);
500 /* ./compiling//table_computation.nit:98 */
501 if (UNTAG_Bool(REGB0)) {
502 } else {
503 fprintf(stderr, "Uninitialized attribute %s", "_class_layout");
504 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 98);
505 nit_exit(1);
506 }
507 fra.me.REG[1] = ATTR_table_computation___MMConcreteClass____class_layout(fra.me.REG[0]);
508 REGB0 = TAG_Bool(ATTR_table_computation___MMConcreteClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
509 /* ./compiling//table_computation.nit:99 */
510 if (UNTAG_Bool(REGB0)) {
511 } else {
512 fprintf(stderr, "Uninitialized attribute %s", "_instance_layout");
513 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 99);
514 nit_exit(1);
515 }
516 fra.me.REG[3] = ATTR_table_computation___MMConcreteClass____instance_layout(fra.me.REG[0]);
517 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
518 fra.me.REG[4] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[4])(fra.me.REG[4]);
519 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[0]));
520 /* ./compiling//table_computation.nit:101 */
521 if (UNTAG_Bool(REGB0)) {
522 } else {
523 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
524 REGB0 = REGB1;
525 }
526 if (UNTAG_Bool(REGB0)) {
527 fra.me.REG[4] = NEW_TableEltClassId_table_computation___AbsTableEltClass___init(fra.me.REG[0]);
528 /* ./compiling//table_computation.nit:102 */
529 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
530 fra.me.REG[4] = NEW_TableEltClassColor_table_computation___AbsTableEltClass___init(fra.me.REG[0]);
531 /* ./compiling//table_computation.nit:104 */
532 ATTR_table_computation___MMConcreteClass____class_color_pos(fra.me.REG[0]) = fra.me.REG[4];
533 /* ./compiling//table_computation.nit:105 */
534 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
535 fra.me.REG[4] = NEW_TableEltClassInitTable_table_computation___AbsTableEltClass___init(fra.me.REG[0]);
536 /* ./compiling//table_computation.nit:106 */
537 array___Array___add(fra.me.REG[1], fra.me.REG[4]);
538 }
539 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___local_local_properties(fra.me.REG[0])(fra.me.REG[0]);
540 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
541 /* ./compiling//table_computation.nit:108 */
542 while(1) {
543 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
544 if (UNTAG_Bool(REGB0)) {
545 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
546 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]);
547 fra.me.REG[5] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[5])(fra.me.REG[5]);
548 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[4]));
549 /* ./compiling//table_computation.nit:110 */
550 if (UNTAG_Bool(REGB0)) {
551 } else {
552 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
553 REGB0 = REGB1;
554 }
555 if (UNTAG_Bool(REGB0)) {
556 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
557 /* ./compiling//table_computation.nit:111 */
558 if (UNTAG_Bool(REGB0)) {
559 fra.me.REG[5] = NEW_TableEltAttr_table_computation___TableEltProp___init(fra.me.REG[4]);
560 /* ./compiling//table_computation.nit:112 */
561 array___Array___add(fra.me.REG[3], fra.me.REG[5]);
562 } else {
563 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
564 /* ./compiling//table_computation.nit:113 */
565 if (UNTAG_Bool(REGB0)) {
566 fra.me.REG[5] = NEW_TableEltMeth_table_computation___TableEltProp___init(fra.me.REG[4]);
567 /* ./compiling//table_computation.nit:114 */
568 array___Array___add(fra.me.REG[1], fra.me.REG[5]);
569 }
570 }
571 }
572 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
573 /* ./compiling//table_computation.nit:117 */
574 if (UNTAG_Bool(REGB0)) {
575 REGB0 = CALL_abstractmetamodel___MMLocalProperty___need_super(fra.me.REG[4])(fra.me.REG[4]);
576 } else {
577 REGB1 = TAG_Bool(false);
578 REGB0 = REGB1;
579 }
580 if (UNTAG_Bool(REGB0)) {
581 fra.me.REG[4] = NEW_TableEltSuper_table_computation___TableEltProp___init(fra.me.REG[4]);
582 /* ./compiling//table_computation.nit:118 */
583 array___Array___add(fra.me.REG[1], fra.me.REG[4]);
584 }
585 } else {
586 /* ./compiling//table_computation.nit:108 */
587 goto label1;
588 }
589 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
590 }
591 label1: while(0);
592 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
593 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
594 /* ./compiling//table_computation.nit:122 */
595 if (UNTAG_Bool(REGB0)) {
596 fra.me.REG[0] = NEW_ModuleTableEltGroup_table_computation___AbsTableElt___init();
597 fra.me.REG[4] = CALL_table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
598 /* ./compiling//table_computation.nit:124 */
599 CALL_abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
600 /* ./compiling//table_computation.nit:125 */
601 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
602 }
603 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
604 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
605 /* ./compiling//table_computation.nit:128 */
606 if (UNTAG_Bool(REGB0)) {
607 fra.me.REG[0] = NEW_ModuleTableEltGroup_table_computation___AbsTableElt___init();
608 fra.me.REG[3] = CALL_table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
609 /* ./compiling//table_computation.nit:130 */
610 CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
611 /* ./compiling//table_computation.nit:131 */
612 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
613 }
614 stack_frame_head = fra.me.prev;
615 return;
616 }
617 val_t table_computation___Program___table_information(val_t p0){
618 struct {struct stack_frame_t me;} fra;
619 val_t REGB0;
620 val_t tmp;
621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
622 fra.me.file = LOCATE_table_computation;
623 fra.me.line = 137;
624 fra.me.meth = LOCATE_table_computation___Program___table_information;
625 fra.me.has_broke = 0;
626 fra.me.REG_size = 1;
627 fra.me.REG[0] = NIT_NULL;
628 fra.me.REG[0] = p0;
629 REGB0 = TAG_Bool(ATTR_table_computation___Program____table_information(fra.me.REG[0])!=NIT_NULL);
630 /* ./compiling//table_computation.nit:137 */
631 if (UNTAG_Bool(REGB0)) {
632 } else {
633 fprintf(stderr, "Uninitialized attribute %s", "_table_information");
634 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 137);
635 nit_exit(1);
636 }
637 fra.me.REG[0] = ATTR_table_computation___Program____table_information(fra.me.REG[0]);
638 stack_frame_head = fra.me.prev;
639 return fra.me.REG[0];
640 }
641 val_t table_computation___Program___compiled_classes(val_t p0){
642 struct {struct stack_frame_t me;} fra;
643 val_t REGB0;
644 val_t tmp;
645 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
646 fra.me.file = LOCATE_table_computation;
647 fra.me.line = 140;
648 fra.me.meth = LOCATE_table_computation___Program___compiled_classes;
649 fra.me.has_broke = 0;
650 fra.me.REG_size = 1;
651 fra.me.REG[0] = NIT_NULL;
652 fra.me.REG[0] = p0;
653 REGB0 = TAG_Bool(ATTR_table_computation___Program____compiled_classes(fra.me.REG[0])!=NIT_NULL);
654 /* ./compiling//table_computation.nit:140 */
655 if (UNTAG_Bool(REGB0)) {
656 } else {
657 fprintf(stderr, "Uninitialized attribute %s", "_compiled_classes");
658 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 140);
659 nit_exit(1);
660 }
661 fra.me.REG[0] = ATTR_table_computation___Program____compiled_classes(fra.me.REG[0]);
662 stack_frame_head = fra.me.prev;
663 return fra.me.REG[0];
664 }
665 void table_computation___Program___do_table_computation(val_t p0, val_t p1){
666 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
667 val_t REGB0;
668 val_t tmp;
669 static val_t once_value_1; /* Once value */
670 static val_t once_value_2; /* Once value */
671 static val_t once_value_3; /* Once value */
672 static val_t once_value_5; /* Once value */
673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
674 fra.me.file = LOCATE_table_computation;
675 fra.me.line = 143;
676 fra.me.meth = LOCATE_table_computation___Program___do_table_computation;
677 fra.me.has_broke = 0;
678 fra.me.REG_size = 6;
679 fra.me.REG[0] = NIT_NULL;
680 fra.me.REG[1] = NIT_NULL;
681 fra.me.REG[2] = NIT_NULL;
682 fra.me.REG[3] = NIT_NULL;
683 fra.me.REG[4] = NIT_NULL;
684 fra.me.REG[5] = NIT_NULL;
685 fra.me.REG[0] = p0;
686 fra.me.REG[1] = p1;
687 /* ./compiling//table_computation.nit:145 */
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_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 REGB0 = TAG_Int(1);
696 CALL_mmloader___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
697 fra.me.REG[2] = CALL_program___Program___module(fra.me.REG[0])(fra.me.REG[0]);
698 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
699 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
700 /* ./compiling//table_computation.nit:146 */
701 if (UNTAG_Bool(REGB0)) {
702 fprintf(stderr, "Reciever is null");
703 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 146);
704 nit_exit(1);
705 }
706 fra.me.REG[2] = CALL_partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[2])(fra.me.REG[2]);
707 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
708 while(1) {
709 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
710 if (UNTAG_Bool(REGB0)) {
711 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
712 REGB0 = TAG_Int(3);
713 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
714 /* ./compiling//table_computation.nit:147 */
715 if (!once_value_2) {
716 fra.me.REG[5] = BOX_NativeString("Building tables for module: ");
717 REGB0 = TAG_Int(28);
718 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
719 once_value_2 = fra.me.REG[5];
720 register_static_object(&once_value_2);
721 } else fra.me.REG[5] = once_value_2;
722 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
723 fra.me.REG[5] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
724 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
725 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
726 if (!once_value_3) {
727 fra.me.REG[5] = BOX_NativeString("");
728 REGB0 = TAG_Int(0);
729 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
730 once_value_3 = fra.me.REG[5];
731 register_static_object(&once_value_3);
732 } else fra.me.REG[5] = once_value_3;
733 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
734 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
735 REGB0 = TAG_Int(2);
736 CALL_mmloader___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], REGB0);
737 /* ./compiling//table_computation.nit:148 */
738 CALL_table_computation___MMModule___local_analysis(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
739 } else {
740 /* ./compiling//table_computation.nit:146 */
741 goto label4;
742 }
743 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
744 }
745 label4: while(0);
746 /* ./compiling//table_computation.nit:151 */
747 if (!once_value_5) {
748 fra.me.REG[2] = BOX_NativeString("Merging all tables");
749 REGB0 = TAG_Int(18);
750 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
751 once_value_5 = fra.me.REG[2];
752 register_static_object(&once_value_5);
753 } else fra.me.REG[2] = once_value_5;
754 REGB0 = TAG_Int(2);
755 CALL_mmloader___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
756 /* ./compiling//table_computation.nit:152 */
757 CALL_table_computation___Program___do_global_analysis(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
758 stack_frame_head = fra.me.prev;
759 return;
760 }
761 void table_computation___Program___do_global_analysis(val_t p0, val_t p1){
762 struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
763 val_t REGB0;
764 val_t REGB1;
765 val_t REGB2;
766 val_t REGB3;
767 val_t tmp;
768 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
769 fra.me.file = LOCATE_table_computation;
770 fra.me.line = 155;
771 fra.me.meth = LOCATE_table_computation___Program___do_global_analysis;
772 fra.me.has_broke = 0;
773 fra.me.REG_size = 13;
774 fra.me.REG[0] = NIT_NULL;
775 fra.me.REG[1] = NIT_NULL;
776 fra.me.REG[2] = NIT_NULL;
777 fra.me.REG[3] = NIT_NULL;
778 fra.me.REG[4] = NIT_NULL;
779 fra.me.REG[5] = NIT_NULL;
780 fra.me.REG[6] = NIT_NULL;
781 fra.me.REG[7] = NIT_NULL;
782 fra.me.REG[8] = NIT_NULL;
783 fra.me.REG[9] = NIT_NULL;
784 fra.me.REG[10] = NIT_NULL;
785 fra.me.REG[11] = NIT_NULL;
786 fra.me.REG[12] = NIT_NULL;
787 fra.me.REG[0] = p0;
788 fra.me.REG[1] = p1;
789 fra.me.REG[1] = NEW_Array_array___Array___init();
790 fra.me.REG[2] = NEW_HashSet_hash_collection___HashSet___init();
791 fra.me.REG[2] = NEW_Array_array___Array___init();
792 fra.me.REG[3] = NEW_Array_array___Array___init();
793 fra.me.REG[4] = NEW_TableEltClassSelfId_table_computation___AbsTableElt___init();
794 /* ./compiling//table_computation.nit:164 */
795 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
796 fra.me.REG[4] = NEW_TableEltClassObjectSize_table_computation___AbsTableElt___init();
797 /* ./compiling//table_computation.nit:165 */
798 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
799 fra.me.REG[4] = NEW_TableEltVftPointer_table_computation___AbsTableElt___init();
800 /* ./compiling//table_computation.nit:166 */
801 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
802 fra.me.REG[4] = NEW_TableEltObjectId_table_computation___AbsTableElt___init();
803 /* ./compiling//table_computation.nit:167 */
804 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
805 REGB0 = TAG_Int(1);
806 REGB0 = TAG_Int(-UNTAG_Int(REGB0));
807 REGB1 = TAG_Int(3);
808 fra.me.REG[4] = NEW_Array_array___Array___init();
809 fra.me.REG[5] = CALL_program___Program___module(fra.me.REG[0])(fra.me.REG[0]);
810 fra.me.REG[5] = CALL_abstractmetamodel___MMModule___local_classes(fra.me.REG[5])(fra.me.REG[5]);
811 fra.me.REG[5] = CALL_abstract_collection___Collection___iterator(fra.me.REG[5])(fra.me.REG[5]);
812 /* ./compiling//table_computation.nit:174 */
813 while(1) {
814 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[5])(fra.me.REG[5]);
815 if (UNTAG_Bool(REGB2)) {
816 fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[5])(fra.me.REG[5]);
817 /* ./compiling//table_computation.nit:175 */
818 CALL_inheritance___MMLocalClass___compute_super_classes(fra.me.REG[6])(fra.me.REG[6]);
819 /* ./compiling//table_computation.nit:176 */
820 array___Array___add(fra.me.REG[4], fra.me.REG[6]);
821 } else {
822 /* ./compiling//table_computation.nit:174 */
823 goto label1;
824 }
825 CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]);
826 }
827 label1: while(0);
828 fra.me.REG[5] = NEW_ClassSorter_table_computation___ClassSorter___init();
829 /* ./compiling//table_computation.nit:178 */
830 CALL_sorter___AbstractSorter___sort(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
831 fra.me.REG[5] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
832 /* ./compiling//table_computation.nit:180 */
833 while(1) {
834 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[5])(fra.me.REG[5]);
835 if (UNTAG_Bool(REGB2)) {
836 fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[5])(fra.me.REG[5]);
837 /* ./compiling//table_computation.nit:182 */
838 CALL_inheritance___MMLocalClass___compute_ancestors(fra.me.REG[6])(fra.me.REG[6]);
839 /* ./compiling//table_computation.nit:183 */
840 CALL_inheritance___MMLocalClass___inherit_global_properties(fra.me.REG[6])(fra.me.REG[6]);
841 fra.me.REG[7] = NEW_CompiledClass_table_computation___CompiledClass___init(fra.me.REG[6]);
842 fra.me.REG[8] = CALL_table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
843 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
844 /* ./compiling//table_computation.nit:187 */
845 CALL_abstract_collection___Map_____braeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9], fra.me.REG[7]);
846 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
847 fra.me.REG[9] = CALL_abstractmetamodel___MMGlobalClass___module(fra.me.REG[9])(fra.me.REG[9]);
848 fra.me.REG[9] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[6])(fra.me.REG[6]);
849 REGB2 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
850 /* ./compiling//table_computation.nit:193 */
851 if (UNTAG_Bool(REGB2)) {
852 } else {
853 REGB3 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
854 if (UNTAG_Bool(REGB3)) {
855 REGB3 = TAG_Bool(false);
856 REGB2 = REGB3;
857 } else {
858 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
859 REGB2 = REGB3;
860 }
861 }
862 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
863 if (UNTAG_Bool(REGB2)) {
864 /* ./compiling//table_computation.nit:194 */
865 CALL_table_computation___CompiledClass___id__eq(fra.me.REG[7])(fra.me.REG[7], REGB0);
866 REGB2 = TAG_Int(4);
867 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
868 REGB0 = REGB2;
869 /* ./compiling//table_computation.nit:195 */
870 } else {
871 /* ./compiling//table_computation.nit:197 */
872 CALL_table_computation___CompiledClass___id__eq(fra.me.REG[7])(fra.me.REG[7], REGB1);
873 REGB2 = TAG_Int(4);
874 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
875 REGB1 = REGB2;
876 /* ./compiling//table_computation.nit:198 */
877 }
878 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[6])(fra.me.REG[6]);
879 fra.me.REG[7] = CALL_partial_order___PartialOrderElement___direct_smallers(fra.me.REG[7])(fra.me.REG[7]);
880 REGB2 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[7])(fra.me.REG[7]);
881 /* ./compiling//table_computation.nit:202 */
882 if (UNTAG_Bool(REGB2)) {
883 /* ./compiling//table_computation.nit:203 */
884 array___Array___add(fra.me.REG[1], fra.me.REG[6]);
885 }
886 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
887 fra.me.REG[6] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[6])(fra.me.REG[6]);
888 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
889 /* ./compiling//table_computation.nit:208 */
890 if (UNTAG_Bool(REGB2)) {
891 } else {
892 fprintf(stderr, "Assert failed");
893 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 208);
894 nit_exit(1);
895 }
896 fra.me.REG[6] = CALL_table_computation___MMConcreteClass___class_color_pos(fra.me.REG[6])(fra.me.REG[6]);
897 /* ./compiling//table_computation.nit:209 */
898 array___Array___add(fra.me.REG[2], fra.me.REG[6]);
899 } else {
900 /* ./compiling//table_computation.nit:180 */
901 goto label2;
902 }
903 CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]);
904 }
905 label2: while(0);
906 fra.me.REG[5] = NEW_HashSet_hash_collection___HashSet___init();
907 fra.me.REG[6] = NEW_HashSet_hash_collection___HashSet___init();
908 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
909 /* ./compiling//table_computation.nit:215 */
910 while(1) {
911 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
912 if (UNTAG_Bool(REGB1)) {
913 fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
914 /* ./compiling//table_computation.nit:216 */
915 while(1) {
916 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[7])(fra.me.REG[7]);
917 fra.me.REG[9] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[9])(fra.me.REG[9]);
918 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[9])!=NIT_NULL);
919 /* ./../lib/standard//collection//array.nit:23 */
920 if (UNTAG_Bool(REGB1)) {
921 } else {
922 fprintf(stderr, "Uninitialized attribute %s", "_length");
923 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
924 nit_exit(1);
925 }
926 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[9]);
927 REGB0 = TAG_Int(1);
928 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
929 /* ./compiling//table_computation.nit:216 */
930 if (UNTAG_Bool(REGB2)) {
931 } else {
932 REGB0 = TAG_Bool((REGB1)==(REGB0));
933 REGB2 = REGB0;
934 /* ./compiling//table_computation.nit:216 */
935 }
936 if (UNTAG_Bool(REGB2)) {
937 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[7])(fra.me.REG[7]);
938 fra.me.REG[9] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[9])(fra.me.REG[9]);
939 fra.me.REG[9] = CALL_abstract_collection___Collection___first(fra.me.REG[9])(fra.me.REG[9]);
940 fra.me.REG[7] = fra.me.REG[9];
941 /* ./compiling//table_computation.nit:217 */
942 } else {
943 /* ./compiling//table_computation.nit:216 */
944 goto label3;
945 }
946 }
947 label3: while(0);
948 /* ./compiling//table_computation.nit:219 */
949 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
950 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[7])(fra.me.REG[7]);
951 fra.me.REG[7] = CALL_partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[7])(fra.me.REG[7]);
952 /* ./compiling//table_computation.nit:220 */
953 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
954 } else {
955 /* ./compiling//table_computation.nit:215 */
956 goto label4;
957 }
958 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
959 }
960 label4: while(0);
961 REGB2 = TAG_Int(0);
962 /* ./compiling//table_computation.nit:225 */
963 CALL_table_computation___Program___colorize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[5], REGB2);
964 REGB2 = TAG_Int(0);
965 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
966 /* ./compiling//table_computation.nit:229 */
967 while(1) {
968 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
969 if (UNTAG_Bool(REGB0)) {
970 fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
971 fra.me.REG[9] = CALL_table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
972 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
973 fra.me.REG[8] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
974 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
975 /* ./compiling//table_computation.nit:231 */
976 if (UNTAG_Bool(REGB0)) {
977 fra.me.REG[9] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[8])(fra.me.REG[8]);
978 /* ./compiling//table_computation.nit:233 */
979 CALL_table_computation___Program___build_tables_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[7], fra.me.REG[2]);
980 fra.me.REG[9] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[8])(fra.me.REG[8]);
981 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[9])!=NIT_NULL);
982 /* ./../lib/standard//collection//array.nit:23 */
983 if (UNTAG_Bool(REGB0)) {
984 } else {
985 fprintf(stderr, "Uninitialized attribute %s", "_length");
986 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
987 nit_exit(1);
988 }
989 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[9]);
990 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
991 /* ./compiling//table_computation.nit:234 */
992 if (UNTAG_Bool(REGB0)) {
993 fra.me.REG[9] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[8])(fra.me.REG[8]);
994 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[9])!=NIT_NULL);
995 /* ./../lib/standard//collection//array.nit:23 */
996 if (UNTAG_Bool(REGB0)) {
997 } else {
998 fprintf(stderr, "Uninitialized attribute %s", "_length");
999 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1000 nit_exit(1);
1001 }
1002 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[9]);
1003 REGB2 = REGB0;
1004 /* ./compiling//table_computation.nit:234 */
1005 }
1006 } else {
1007 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[7])(fra.me.REG[7]);
1008 fra.me.REG[9] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[9])(fra.me.REG[9]);
1009 fra.me.REG[9] = CALL_abstract_collection___Collection___first(fra.me.REG[9])(fra.me.REG[9]);
1010 fra.me.REG[10] = CALL_table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1011 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[9])(fra.me.REG[9]);
1012 fra.me.REG[9] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
1013 fra.me.REG[10] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[8])(fra.me.REG[8]);
1014 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[10])(fra.me.REG[10]);
1015 /* ./compiling//table_computation.nit:239 */
1016 if (UNTAG_Bool(REGB0)) {
1017 } else {
1018 fprintf(stderr, "Assert failed");
1019 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 239);
1020 nit_exit(1);
1021 }
1022 fra.me.REG[10] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[8])(fra.me.REG[8]);
1023 fra.me.REG[9] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1024 /* ./compiling//table_computation.nit:240 */
1025 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
1026 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
1027 fra.me.REG[7] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]);
1028 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
1029 /* ./compiling//table_computation.nit:242 */
1030 if (UNTAG_Bool(REGB0)) {
1031 } else {
1032 fprintf(stderr, "Assert failed");
1033 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 242);
1034 nit_exit(1);
1035 }
1036 fra.me.REG[7] = CALL_table_computation___MMConcreteClass___class_color_pos(fra.me.REG[7])(fra.me.REG[7]);
1037 fra.me.REG[9] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[8])(fra.me.REG[8]);
1038 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[9])!=NIT_NULL);
1039 /* ./../lib/standard//collection//array.nit:23 */
1040 if (UNTAG_Bool(REGB0)) {
1041 } else {
1042 fprintf(stderr, "Uninitialized attribute %s", "_length");
1043 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1044 nit_exit(1);
1045 }
1046 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[9]);
1047 fra.me.REG[9] = CALL_table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1048 /* ./compiling//table_computation.nit:245 */
1049 CALL_table_computation___ColorContext___color__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[7], REGB0);
1050 fra.me.REG[8] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[8])(fra.me.REG[8]);
1051 /* ./compiling//table_computation.nit:246 */
1052 array___Array___add(fra.me.REG[8], fra.me.REG[7]);
1053 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
1054 /* ./compiling//table_computation.nit:247 */
1055 if (UNTAG_Bool(REGB1)) {
1056 REGB2 = REGB0;
1057 }
1058 }
1059 } else {
1060 /* ./compiling//table_computation.nit:229 */
1061 goto label5;
1062 }
1063 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1064 }
1065 label5: while(0);
1066 fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1067 REGB0 = TAG_Int(1);
1068 REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
1069 /* ./compiling//table_computation.nit:250 */
1070 CALL_table_computation___TableInformation___max_class_table_length__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
1071 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
1072 /* ./compiling//table_computation.nit:253 */
1073 while(1) {
1074 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
1075 if (UNTAG_Bool(REGB0)) {
1076 fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1077 fra.me.REG[8] = CALL_table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1078 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
1079 fra.me.REG[9] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
1080 fra.me.REG[8] = CALL_table_computation___CompiledClass___class_layout(fra.me.REG[9])(fra.me.REG[9]);
1081 fra.me.REG[9] = CALL_table_computation___CompiledClass___instance_layout(fra.me.REG[9])(fra.me.REG[9]);
1082 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalClass___crhe(fra.me.REG[7])(fra.me.REG[7]);
1083 fra.me.REG[10] = CALL_partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[10])(fra.me.REG[10]);
1084 fra.me.REG[10] = CALL_abstract_collection___Collection___iterator(fra.me.REG[10])(fra.me.REG[10]);
1085 /* ./compiling//table_computation.nit:257 */
1086 while(1) {
1087 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[10])(fra.me.REG[10]);
1088 if (UNTAG_Bool(REGB0)) {
1089 fra.me.REG[11] = CALL_abstract_collection___Iterator___item(fra.me.REG[10])(fra.me.REG[10]);
1090 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[11], COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
1091 /* ./compiling//table_computation.nit:258 */
1092 if (UNTAG_Bool(REGB0)) {
1093 fra.me.REG[12] = CALL_table_computation___MMConcreteClass___class_layout(fra.me.REG[11])(fra.me.REG[11]);
1094 /* ./compiling//table_computation.nit:259 */
1095 CALL_table_computation___TableEltComposite___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[11], fra.me.REG[12]);
1096 fra.me.REG[12] = CALL_table_computation___MMConcreteClass___instance_layout(fra.me.REG[11])(fra.me.REG[11]);
1097 /* ./compiling//table_computation.nit:260 */
1098 CALL_table_computation___TableEltComposite___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[11], fra.me.REG[12]);
1099 }
1100 } else {
1101 /* ./compiling//table_computation.nit:257 */
1102 goto label6;
1103 }
1104 CALL_abstract_collection___Iterator___next(fra.me.REG[10])(fra.me.REG[10]);
1105 }
1106 label6: while(0);
1107 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1108 /* ./compiling//table_computation.nit:264 */
1109 if (UNTAG_Bool(REGB0)) {
1110 REGB0 = CALL_table_computation___TableElt___length(fra.me.REG[8])(fra.me.REG[8]);
1111 REGB1 = TAG_Int(0);
1112 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1113 /* ./compiling//table_computation.nit:265 */
1114 if (UNTAG_Bool(REGB1)) {
1115 /* ./compiling//table_computation.nit:266 */
1116 array___Array___add(fra.me.REG[2], fra.me.REG[8]);
1117 }
1118 REGB1 = CALL_table_computation___TableElt___length(fra.me.REG[9])(fra.me.REG[9]);
1119 REGB0 = TAG_Int(0);
1120 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
1121 /* ./compiling//table_computation.nit:268 */
1122 if (UNTAG_Bool(REGB0)) {
1123 /* ./compiling//table_computation.nit:269 */
1124 array___Array___add(fra.me.REG[3], fra.me.REG[9]);
1125 }
1126 }
1127 } else {
1128 /* ./compiling//table_computation.nit:253 */
1129 goto label7;
1130 }
1131 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1132 }
1133 label7: while(0);
1134 REGB0 = TAG_Int(1);
1135 REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
1136 /* ./compiling//table_computation.nit:275 */
1137 CALL_table_computation___Program___colorize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[5], REGB0);
1138 REGB0 = TAG_Int(0);
1139 /* ./compiling//table_computation.nit:276 */
1140 CALL_table_computation___Program___colorize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[5], REGB0);
1141 fra.me.REG[5] = CALL_table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1142 REGB0 = TAG_Int(0);
1143 /* ./compiling//table_computation.nit:279 */
1144 CALL_table_computation___TableInformation___max_class_table_length__eq(fra.me.REG[5])(fra.me.REG[5], REGB0);
1145 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
1146 /* ./compiling//table_computation.nit:280 */
1147 while(1) {
1148 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
1149 if (UNTAG_Bool(REGB0)) {
1150 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
1151 fra.me.REG[1] = CALL_table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1152 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
1153 fra.me.REG[9] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
1154 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1155 /* ./compiling//table_computation.nit:282 */
1156 if (UNTAG_Bool(REGB0)) {
1157 fra.me.REG[1] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1158 /* ./compiling//table_computation.nit:284 */
1159 CALL_table_computation___Program___build_tables_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[5], fra.me.REG[2]);
1160 fra.me.REG[1] = CALL_table_computation___CompiledClass___instance_table(fra.me.REG[9])(fra.me.REG[9]);
1161 /* ./compiling//table_computation.nit:285 */
1162 CALL_table_computation___Program___build_tables_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[5], fra.me.REG[3]);
1163 } else {
1164 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[5])(fra.me.REG[5]);
1165 fra.me.REG[1] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[1])(fra.me.REG[1]);
1166 fra.me.REG[1] = CALL_abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
1167 fra.me.REG[8] = CALL_table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1168 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
1169 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[1]);
1170 fra.me.REG[8] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1171 /* ./compiling//table_computation.nit:290 */
1172 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[8])(fra.me.REG[8]);
1173 fra.me.REG[8] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1174 fra.me.REG[7] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[1])(fra.me.REG[1]);
1175 /* ./compiling//table_computation.nit:291 */
1176 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
1177 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
1178 fra.me.REG[5] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[5])(fra.me.REG[5]);
1179 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
1180 /* ./compiling//table_computation.nit:293 */
1181 if (UNTAG_Bool(REGB0)) {
1182 } else {
1183 fprintf(stderr, "Assert failed");
1184 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 293);
1185 nit_exit(1);
1186 }
1187 fra.me.REG[5] = CALL_table_computation___MMConcreteClass___class_color_pos(fra.me.REG[5])(fra.me.REG[5]);
1188 fra.me.REG[7] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1189 fra.me.REG[8] = CALL_table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1190 REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1191 /* ./compiling//table_computation.nit:295 */
1192 CALL_abstract_collection___Map_____braeq(fra.me.REG[7])(fra.me.REG[7], REGB0, fra.me.REG[5]);
1193 /* ./compiling//table_computation.nit:296 */
1194 while(1) {
1195 fra.me.REG[5] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1196 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1197 /* ./../lib/standard//collection//array.nit:23 */
1198 if (UNTAG_Bool(REGB0)) {
1199 } else {
1200 fprintf(stderr, "Uninitialized attribute %s", "_length");
1201 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1202 nit_exit(1);
1203 }
1204 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
1205 REGB0 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB2));
1206 /* ./compiling//table_computation.nit:296 */
1207 if (UNTAG_Bool(REGB0)) {
1208 fra.me.REG[5] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1209 /* ./compiling//table_computation.nit:297 */
1210 array___Array___add(fra.me.REG[5], NIT_NULL);
1211 } else {
1212 /* ./compiling//table_computation.nit:296 */
1213 goto label8;
1214 }
1215 }
1216 label8: while(0);
1217 fra.me.REG[5] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1218 fra.me.REG[7] = CALL_table_computation___CompiledClass___class_layout(fra.me.REG[9])(fra.me.REG[9]);
1219 /* ./compiling//table_computation.nit:299 */
1220 CALL_table_computation___Program___append_to_table(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[7]);
1221 fra.me.REG[7] = CALL_table_computation___CompiledClass___instance_table(fra.me.REG[9])(fra.me.REG[9]);
1222 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[7])(fra.me.REG[7]);
1223 /* ./compiling//table_computation.nit:300 */
1224 if (UNTAG_Bool(REGB0)) {
1225 } else {
1226 fprintf(stderr, "Assert failed");
1227 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 300);
1228 nit_exit(1);
1229 }
1230 fra.me.REG[7] = CALL_table_computation___CompiledClass___instance_table(fra.me.REG[9])(fra.me.REG[9]);
1231 fra.me.REG[1] = CALL_table_computation___CompiledClass___instance_table(fra.me.REG[1])(fra.me.REG[1]);
1232 /* ./compiling//table_computation.nit:301 */
1233 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[1]);
1234 fra.me.REG[1] = CALL_table_computation___CompiledClass___instance_table(fra.me.REG[9])(fra.me.REG[9]);
1235 fra.me.REG[9] = CALL_table_computation___CompiledClass___instance_layout(fra.me.REG[9])(fra.me.REG[9]);
1236 /* ./compiling//table_computation.nit:302 */
1237 CALL_table_computation___Program___append_to_table(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[9]);
1238 }
1239 } else {
1240 /* ./compiling//table_computation.nit:280 */
1241 goto label9;
1242 }
1243 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
1244 }
1245 label9: while(0);
1246 stack_frame_head = fra.me.prev;
1247 return;
1248 }
1249 void table_computation___Program___colorize(val_t p0, val_t p1, val_t p2, val_t p3){
1250 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
1251 val_t REGB0;
1252 val_t REGB1;
1253 val_t REGB2;
1254 val_t REGB3;
1255 val_t REGB4;
1256 val_t REGB5;
1257 val_t REGB6;
1258 val_t tmp;
1259 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1260 fra.me.file = LOCATE_table_computation;
1261 fra.me.line = 307;
1262 fra.me.meth = LOCATE_table_computation___Program___colorize;
1263 fra.me.has_broke = 0;
1264 fra.me.REG_size = 9;
1265 fra.me.REG[0] = NIT_NULL;
1266 fra.me.REG[1] = NIT_NULL;
1267 fra.me.REG[2] = NIT_NULL;
1268 fra.me.REG[3] = NIT_NULL;
1269 fra.me.REG[4] = NIT_NULL;
1270 fra.me.REG[5] = NIT_NULL;
1271 fra.me.REG[6] = NIT_NULL;
1272 fra.me.REG[7] = NIT_NULL;
1273 fra.me.REG[8] = NIT_NULL;
1274 fra.me.REG[0] = p0;
1275 fra.me.REG[1] = p1;
1276 fra.me.REG[2] = p2;
1277 REGB0 = p3;
1278 fra.me.REG[3] = NEW_HashMap_hash_collection___HashMap___init();
1279 fra.me.REG[4] = NEW_Array_array___Array___init();
1280 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
1281 /* ./compiling//table_computation.nit:312 */
1282 while(1) {
1283 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
1284 if (UNTAG_Bool(REGB1)) {
1285 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1286 REGB1 = TAG_Int(1);
1287 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
1288 REGB2 = CALL_table_computation___TableElt___length(fra.me.REG[5])(fra.me.REG[5]);
1289 fra.me.REG[6] = CALL_table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1290 REGB3 = CALL_table_computation___ColorContext___has_color(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1291 /* ./compiling//table_computation.nit:315 */
1292 if (UNTAG_Bool(REGB3)) {
1293 fra.me.REG[6] = CALL_table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1294 REGB3 = CALL_table_computation___ColorContext___color(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1295 REGB1 = REGB3;
1296 /* ./compiling//table_computation.nit:316 */
1297 } else {
1298 /* ./compiling//table_computation.nit:318 */
1299 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[4])(fra.me.REG[4]);
1300 fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
1301 /* ./compiling//table_computation.nit:319 */
1302 while(1) {
1303 REGB3 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]);
1304 if (UNTAG_Bool(REGB3)) {
1305 fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]);
1306 REGB3 = CALL_table_computation___TableElt___is_related_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
1307 /* ./compiling//table_computation.nit:320 */
1308 if (UNTAG_Bool(REGB3)) {
1309 /* ./compiling//table_computation.nit:321 */
1310 array___Array___add(fra.me.REG[4], fra.me.REG[7]);
1311 }
1312 } else {
1313 /* ./compiling//table_computation.nit:319 */
1314 goto label1;
1315 }
1316 CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]);
1317 }
1318 label1: while(0);
1319 REGB3 = REGB0;
1320 /* ./compiling//table_computation.nit:325 */
1321 while(1) {
1322 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB1));
1323 if (UNTAG_Bool(REGB4)) {
1324 } else {
1325 REGB5 = TAG_Bool((REGB3)==(REGB1));
1326 REGB4 = REGB5;
1327 /* ./compiling//table_computation.nit:325 */
1328 }
1329 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
1330 if (UNTAG_Bool(REGB4)) {
1331 REGB1 = REGB3;
1332 fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
1333 /* ./compiling//table_computation.nit:327 */
1334 while(1) {
1335 REGB4 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]);
1336 if (UNTAG_Bool(REGB4)) {
1337 fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]);
1338 REGB4 = TAG_Int(0);
1339 /* ./compiling//table_computation.nit:329 */
1340 while(1) {
1341 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB2));
1342 /* ./compiling//table_computation.nit:329 */
1343 if (UNTAG_Bool(REGB5)) {
1344 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
1345 REGB5 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], REGB5);
1346 /* ./compiling//table_computation.nit:330 */
1347 if (UNTAG_Bool(REGB5)) {
1348 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
1349 fra.me.REG[8] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB5);
1350 REGB5 = CALL_table_computation___Program___free_color(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[7]);
1351 REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
1352 /* ./compiling//table_computation.nit:330 */
1353 } else {
1354 REGB6 = TAG_Bool(false);
1355 REGB5 = REGB6;
1356 }
1357 if (UNTAG_Bool(REGB5)) {
1358 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
1359 REGB6 = TAG_Int(1);
1360 REGB6 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB6));
1361 REGB3 = REGB6;
1362 REGB6 = TAG_Int(0);
1363 REGB4 = REGB6;
1364 /* ./compiling//table_computation.nit:332 */
1365 } else {
1366 REGB6 = TAG_Int(1);
1367 REGB6 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB6));
1368 REGB4 = REGB6;
1369 /* ./compiling//table_computation.nit:334 */
1370 }
1371 } else {
1372 /* ./compiling//table_computation.nit:329 */
1373 goto label2;
1374 }
1375 }
1376 label2: while(0);
1377 } else {
1378 /* ./compiling//table_computation.nit:327 */
1379 goto label3;
1380 }
1381 CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]);
1382 }
1383 label3: while(0);
1384 } else {
1385 /* ./compiling//table_computation.nit:325 */
1386 goto label4;
1387 }
1388 }
1389 label4: while(0);
1390 fra.me.REG[6] = CALL_table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1391 /* ./compiling//table_computation.nit:339 */
1392 CALL_table_computation___ColorContext___color__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5], REGB1);
1393 }
1394 REGB3 = TAG_Int(0);
1395 fra.me.REG[6] = NEW_Range_range___Range___without_last(REGB3, REGB2);
1396 fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]);
1397 /* ./compiling//table_computation.nit:341 */
1398 while(1) {
1399 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]);
1400 if (UNTAG_Bool(REGB2)) {
1401 REGB2 = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]);
1402 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1403 REGB3 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], REGB3);
1404 /* ./compiling//table_computation.nit:342 */
1405 if (UNTAG_Bool(REGB3)) {
1406 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1407 fra.me.REG[7] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB3);
1408 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1409 /* ./compiling//table_computation.nit:343 */
1410 if (UNTAG_Bool(REGB3)) {
1411 fprintf(stderr, "Reciever is null");
1412 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 343);
1413 nit_exit(1);
1414 }
1415 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
1416 } else {
1417 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1418 REGB3 = TAG_Int(1);
1419 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB3);
1420 /* ./compiling//table_computation.nit:345 */
1421 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
1422 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[7]);
1423 }
1424 } else {
1425 /* ./compiling//table_computation.nit:341 */
1426 goto label5;
1427 }
1428 CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]);
1429 }
1430 label5: while(0);
1431 } else {
1432 /* ./compiling//table_computation.nit:312 */
1433 goto label6;
1434 }
1435 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1436 }
1437 label6: while(0);
1438 stack_frame_head = fra.me.prev;
1439 return;
1440 }
1441 val_t table_computation___Program___free_color(val_t p0, val_t p1, val_t p2){
1442 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1443 val_t REGB0;
1444 val_t REGB1;
1445 val_t tmp;
1446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1447 fra.me.file = LOCATE_table_computation;
1448 fra.me.line = 351;
1449 fra.me.meth = LOCATE_table_computation___Program___free_color;
1450 fra.me.has_broke = 0;
1451 fra.me.REG_size = 3;
1452 fra.me.REG[0] = NIT_NULL;
1453 fra.me.REG[1] = NIT_NULL;
1454 fra.me.REG[2] = NIT_NULL;
1455 fra.me.REG[0] = p0;
1456 fra.me.REG[1] = p1;
1457 fra.me.REG[2] = p2;
1458 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
1459 /* ./compiling//table_computation.nit:353 */
1460 while(1) {
1461 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
1462 if (UNTAG_Bool(REGB0)) {
1463 fra.me.REG[0] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1464 REGB0 = CALL_table_computation___TableElt___is_related_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1465 /* ./compiling//table_computation.nit:354 */
1466 if (UNTAG_Bool(REGB0)) {
1467 REGB0 = TAG_Bool(false);
1468 /* ./compiling//table_computation.nit:355 */
1469 goto label1;
1470 }
1471 } else {
1472 /* ./compiling//table_computation.nit:353 */
1473 goto label2;
1474 }
1475 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1476 }
1477 label2: while(0);
1478 REGB1 = TAG_Bool(true);
1479 REGB0 = REGB1;
1480 /* ./compiling//table_computation.nit:358 */
1481 goto label1;
1482 label1: while(0);
1483 stack_frame_head = fra.me.prev;
1484 return REGB0;
1485 }
1486 void table_computation___Program___append_to_table(val_t p0, val_t p1, val_t p2){
1487 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1488 val_t REGB0;
1489 val_t REGB1;
1490 val_t tmp;
1491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1492 fra.me.file = LOCATE_table_computation;
1493 fra.me.line = 361;
1494 fra.me.meth = LOCATE_table_computation___Program___append_to_table;
1495 fra.me.has_broke = 0;
1496 fra.me.REG_size = 6;
1497 fra.me.REG[0] = NIT_NULL;
1498 fra.me.REG[1] = NIT_NULL;
1499 fra.me.REG[2] = NIT_NULL;
1500 fra.me.REG[3] = NIT_NULL;
1501 fra.me.REG[4] = NIT_NULL;
1502 fra.me.REG[5] = NIT_NULL;
1503 fra.me.REG[0] = p0;
1504 fra.me.REG[1] = p1;
1505 fra.me.REG[2] = p2;
1506 REGB0 = TAG_Int(0);
1507 REGB1 = CALL_table_computation___TableElt___length(fra.me.REG[2])(fra.me.REG[2]);
1508 fra.me.REG[3] = NEW_Range_range___Range___without_last(REGB0, REGB1);
1509 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
1510 /* ./compiling//table_computation.nit:363 */
1511 while(1) {
1512 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
1513 if (UNTAG_Bool(REGB1)) {
1514 REGB1 = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
1515 fra.me.REG[4] = CALL_table_computation___TableElt___item(fra.me.REG[2])(fra.me.REG[2], REGB1);
1516 fra.me.REG[5] = CALL_table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1517 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1518 /* ./../lib/standard//collection//array.nit:23 */
1519 if (UNTAG_Bool(REGB1)) {
1520 } else {
1521 fprintf(stderr, "Uninitialized attribute %s", "_length");
1522 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1523 nit_exit(1);
1524 }
1525 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
1526 /* ./compiling//table_computation.nit:365 */
1527 CALL_table_computation___ColorContext___color__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], REGB1);
1528 /* ./compiling//table_computation.nit:366 */
1529 array___Array___add(fra.me.REG[1], fra.me.REG[4]);
1530 } else {
1531 /* ./compiling//table_computation.nit:363 */
1532 goto label1;
1533 }
1534 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
1535 }
1536 label1: while(0);
1537 stack_frame_head = fra.me.prev;
1538 return;
1539 }
1540 void table_computation___Program___build_tables_in(val_t p0, val_t p1, val_t p2, val_t p3){
1541 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1542 val_t REGB0;
1543 val_t REGB1;
1544 val_t REGB2;
1545 val_t REGB3;
1546 val_t tmp;
1547 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1548 fra.me.file = LOCATE_table_computation;
1549 fra.me.line = 370;
1550 fra.me.meth = LOCATE_table_computation___Program___build_tables_in;
1551 fra.me.has_broke = 0;
1552 fra.me.REG_size = 7;
1553 fra.me.REG[0] = NIT_NULL;
1554 fra.me.REG[1] = NIT_NULL;
1555 fra.me.REG[2] = NIT_NULL;
1556 fra.me.REG[3] = NIT_NULL;
1557 fra.me.REG[4] = NIT_NULL;
1558 fra.me.REG[5] = NIT_NULL;
1559 fra.me.REG[6] = NIT_NULL;
1560 fra.me.REG[0] = p0;
1561 fra.me.REG[1] = p1;
1562 fra.me.REG[2] = p2;
1563 fra.me.REG[3] = p3;
1564 fra.me.REG[4] = NEW_HashMap_hash_collection___HashMap___init();
1565 REGB0 = TAG_Int(0);
1566 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
1567 /* ./compiling//table_computation.nit:374 */
1568 while(1) {
1569 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
1570 if (UNTAG_Bool(REGB1)) {
1571 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
1572 REGB1 = CALL_table_computation___TableElt___is_related_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
1573 /* ./compiling//table_computation.nit:375 */
1574 if (UNTAG_Bool(REGB1)) {
1575 fra.me.REG[6] = CALL_table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1576 REGB1 = CALL_table_computation___ColorContext___color(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1577 REGB2 = CALL_table_computation___TableElt___length(fra.me.REG[5])(fra.me.REG[5]);
1578 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1579 /* ./compiling//table_computation.nit:378 */
1580 CALL_abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], REGB1, fra.me.REG[5]);
1581 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1582 /* ./compiling//table_computation.nit:379 */
1583 if (UNTAG_Bool(REGB1)) {
1584 REGB0 = REGB2;
1585 /* ./compiling//table_computation.nit:380 */
1586 }
1587 }
1588 } else {
1589 /* ./compiling//table_computation.nit:374 */
1590 goto label1;
1591 }
1592 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
1593 }
1594 label1: while(0);
1595 REGB2 = TAG_Int(0);
1596 /* ./compiling//table_computation.nit:385 */
1597 while(1) {
1598 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
1599 /* ./compiling//table_computation.nit:385 */
1600 if (UNTAG_Bool(REGB1)) {
1601 REGB1 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], REGB2);
1602 /* ./compiling//table_computation.nit:386 */
1603 if (UNTAG_Bool(REGB1)) {
1604 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], REGB2);
1605 REGB1 = TAG_Int(0);
1606 REGB3 = CALL_table_computation___TableElt___length(fra.me.REG[3])(fra.me.REG[3]);
1607 fra.me.REG[0] = NEW_Range_range___Range___without_last(REGB1, REGB3);
1608 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
1609 /* ./compiling//table_computation.nit:388 */
1610 while(1) {
1611 REGB3 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
1612 if (UNTAG_Bool(REGB3)) {
1613 REGB3 = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
1614 fra.me.REG[2] = CALL_table_computation___TableElt___item(fra.me.REG[3])(fra.me.REG[3], REGB3);
1615 /* ./compiling//table_computation.nit:389 */
1616 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[2]);
1617 REGB3 = TAG_Int(1);
1618 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1619 REGB2 = REGB3;
1620 /* ./compiling//table_computation.nit:390 */
1621 } else {
1622 /* ./compiling//table_computation.nit:388 */
1623 goto label2;
1624 }
1625 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
1626 }
1627 label2: while(0);
1628 } else {
1629 /* ./compiling//table_computation.nit:393 */
1630 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, NIT_NULL);
1631 REGB3 = TAG_Int(1);
1632 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1633 REGB2 = REGB3;
1634 /* ./compiling//table_computation.nit:394 */
1635 }
1636 } else {
1637 /* ./compiling//table_computation.nit:385 */
1638 goto label3;
1639 }
1640 }
1641 label3: while(0);
1642 stack_frame_head = fra.me.prev;
1643 return;
1644 }
1645 val_t table_computation___MMModule___local_table(val_t p0){
1646 struct {struct stack_frame_t me;} fra;
1647 val_t REGB0;
1648 val_t tmp;
1649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1650 fra.me.file = LOCATE_table_computation;
1651 fra.me.line = 401;
1652 fra.me.meth = LOCATE_table_computation___MMModule___local_table;
1653 fra.me.has_broke = 0;
1654 fra.me.REG_size = 1;
1655 fra.me.REG[0] = NIT_NULL;
1656 fra.me.REG[0] = p0;
1657 REGB0 = TAG_Bool(ATTR_table_computation___MMModule____local_table(fra.me.REG[0])!=NIT_NULL);
1658 /* ./compiling//table_computation.nit:401 */
1659 if (UNTAG_Bool(REGB0)) {
1660 } else {
1661 fprintf(stderr, "Uninitialized attribute %s", "_local_table");
1662 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 401);
1663 nit_exit(1);
1664 }
1665 fra.me.REG[0] = ATTR_table_computation___MMModule____local_table(fra.me.REG[0]);
1666 stack_frame_head = fra.me.prev;
1667 return fra.me.REG[0];
1668 }
1669 void table_computation___MMModule___local_analysis(val_t p0, val_t p1){
1670 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1671 val_t REGB0;
1672 val_t tmp;
1673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1674 fra.me.file = LOCATE_table_computation;
1675 fra.me.line = 404;
1676 fra.me.meth = LOCATE_table_computation___MMModule___local_analysis;
1677 fra.me.has_broke = 0;
1678 fra.me.REG_size = 5;
1679 fra.me.REG[0] = NIT_NULL;
1680 fra.me.REG[1] = NIT_NULL;
1681 fra.me.REG[2] = NIT_NULL;
1682 fra.me.REG[3] = NIT_NULL;
1683 fra.me.REG[4] = NIT_NULL;
1684 fra.me.REG[0] = p0;
1685 fra.me.REG[1] = p1;
1686 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
1687 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
1688 /* ./compiling//table_computation.nit:407 */
1689 while(1) {
1690 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
1691 if (UNTAG_Bool(REGB0)) {
1692 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
1693 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
1694 /* ./compiling//table_computation.nit:408 */
1695 if (UNTAG_Bool(REGB0)) {
1696 REGB0 = TAG_Bool(ATTR_table_computation___MMModule____local_table(fra.me.REG[0])!=NIT_NULL);
1697 /* ./compiling//table_computation.nit:409 */
1698 if (UNTAG_Bool(REGB0)) {
1699 } else {
1700 fprintf(stderr, "Uninitialized attribute %s", "_local_table");
1701 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 409);
1702 nit_exit(1);
1703 }
1704 fra.me.REG[4] = ATTR_table_computation___MMModule____local_table(fra.me.REG[0]);
1705 CALL_table_computation___MMConcreteClass___build_layout_in(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[4]);
1706 }
1707 } else {
1708 /* ./compiling//table_computation.nit:407 */
1709 goto label1;
1710 }
1711 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
1712 }
1713 label1: while(0);
1714 stack_frame_head = fra.me.prev;
1715 return;
1716 }
1717 void table_computation___AbsTableElt___init(val_t p0, int* init_table){
1718 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AbsTableElt].i;
1719 struct {struct stack_frame_t me;} fra;
1720 val_t tmp;
1721 if (init_table[itpos2]) return;
1722 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1723 fra.me.file = LOCATE_table_computation;
1724 fra.me.line = 0;
1725 fra.me.meth = LOCATE_table_computation___AbsTableElt___init;
1726 fra.me.has_broke = 0;
1727 fra.me.REG_size = 0;
1728 stack_frame_head = fra.me.prev;
1729 init_table[itpos2] = 1;
1730 return;
1731 }
1732 val_t table_computation___TableElt___is_related_to(val_t p0, val_t p1){
1733 struct {struct stack_frame_t me;} fra;
1734 val_t tmp;
1735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1736 fra.me.file = LOCATE_table_computation;
1737 fra.me.line = 425;
1738 fra.me.meth = LOCATE_table_computation___TableElt___is_related_to;
1739 fra.me.has_broke = 0;
1740 fra.me.REG_size = 0;
1741 /* ./compiling//table_computation.nit:425 */
1742 fprintf(stderr, "Deferred method called");
1743 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 425);
1744 nit_exit(1);
1745 stack_frame_head = fra.me.prev;
1746 return NIT_NULL;
1747 }
1748 val_t table_computation___TableElt___length(val_t p0){
1749 struct {struct stack_frame_t me;} fra;
1750 val_t REGB0;
1751 val_t tmp;
1752 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1753 fra.me.file = LOCATE_table_computation;
1754 fra.me.line = 428;
1755 fra.me.meth = LOCATE_table_computation___TableElt___length;
1756 fra.me.has_broke = 0;
1757 fra.me.REG_size = 1;
1758 fra.me.REG[0] = NIT_NULL;
1759 fra.me.REG[0] = p0;
1760 REGB0 = TAG_Int(1);
1761 /* ./compiling//table_computation.nit:429 */
1762 goto label1;
1763 label1: while(0);
1764 stack_frame_head = fra.me.prev;
1765 return REGB0;
1766 }
1767 val_t table_computation___TableElt___item(val_t p0, val_t p1){
1768 struct {struct stack_frame_t me;} fra;
1769 val_t REGB0;
1770 val_t tmp;
1771 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1772 fra.me.file = LOCATE_table_computation;
1773 fra.me.line = 431;
1774 fra.me.meth = LOCATE_table_computation___TableElt___item;
1775 fra.me.has_broke = 0;
1776 fra.me.REG_size = 1;
1777 fra.me.REG[0] = NIT_NULL;
1778 fra.me.REG[0] = p0;
1779 REGB0 = p1;
1780 /* ./compiling//table_computation.nit:432 */
1781 goto label1;
1782 label1: while(0);
1783 stack_frame_head = fra.me.prev;
1784 return fra.me.REG[0];
1785 }
1786 val_t table_computation___ModuleTableEltGroup___elements(val_t p0){
1787 struct {struct stack_frame_t me;} fra;
1788 val_t REGB0;
1789 val_t tmp;
1790 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1791 fra.me.file = LOCATE_table_computation;
1792 fra.me.line = 444;
1793 fra.me.meth = LOCATE_table_computation___ModuleTableEltGroup___elements;
1794 fra.me.has_broke = 0;
1795 fra.me.REG_size = 1;
1796 fra.me.REG[0] = NIT_NULL;
1797 fra.me.REG[0] = p0;
1798 REGB0 = TAG_Bool(ATTR_table_computation___ModuleTableEltGroup____elements(fra.me.REG[0])!=NIT_NULL);
1799 /* ./compiling//table_computation.nit:444 */
1800 if (UNTAG_Bool(REGB0)) {
1801 } else {
1802 fprintf(stderr, "Uninitialized attribute %s", "_elements");
1803 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 444);
1804 nit_exit(1);
1805 }
1806 fra.me.REG[0] = ATTR_table_computation___ModuleTableEltGroup____elements(fra.me.REG[0]);
1807 stack_frame_head = fra.me.prev;
1808 return fra.me.REG[0];
1809 }
1810 val_t table_computation___TableEltProp___property(val_t p0){
1811 struct {struct stack_frame_t me;} fra;
1812 val_t REGB0;
1813 val_t tmp;
1814 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1815 fra.me.file = LOCATE_table_computation;
1816 fra.me.line = 450;
1817 fra.me.meth = LOCATE_table_computation___TableEltProp___property;
1818 fra.me.has_broke = 0;
1819 fra.me.REG_size = 1;
1820 fra.me.REG[0] = NIT_NULL;
1821 fra.me.REG[0] = p0;
1822 REGB0 = TAG_Bool(ATTR_table_computation___TableEltProp____property(fra.me.REG[0])!=NIT_NULL);
1823 /* ./compiling//table_computation.nit:450 */
1824 if (UNTAG_Bool(REGB0)) {
1825 } else {
1826 fprintf(stderr, "Uninitialized attribute %s", "_property");
1827 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 450);
1828 nit_exit(1);
1829 }
1830 fra.me.REG[0] = ATTR_table_computation___TableEltProp____property(fra.me.REG[0]);
1831 stack_frame_head = fra.me.prev;
1832 return fra.me.REG[0];
1833 }
1834 void table_computation___TableEltProp___init(val_t p0, val_t p1, int* init_table){
1835 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_TableEltProp].i;
1836 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1837 val_t tmp;
1838 if (init_table[itpos3]) return;
1839 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1840 fra.me.file = LOCATE_table_computation;
1841 fra.me.line = 452;
1842 fra.me.meth = LOCATE_table_computation___TableEltProp___init;
1843 fra.me.has_broke = 0;
1844 fra.me.REG_size = 2;
1845 fra.me.REG[0] = NIT_NULL;
1846 fra.me.REG[1] = NIT_NULL;
1847 fra.me.REG[0] = p0;
1848 fra.me.REG[1] = p1;
1849 /* ./compiling//table_computation.nit:454 */
1850 ATTR_table_computation___TableEltProp____property(fra.me.REG[0]) = fra.me.REG[1];
1851 stack_frame_head = fra.me.prev;
1852 init_table[itpos3] = 1;
1853 return;
1854 }
1855 val_t table_computation___AbsTableEltClass___local_class(val_t p0){
1856 struct {struct stack_frame_t me;} fra;
1857 val_t REGB0;
1858 val_t tmp;
1859 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1860 fra.me.file = LOCATE_table_computation;
1861 fra.me.line = 476;
1862 fra.me.meth = LOCATE_table_computation___AbsTableEltClass___local_class;
1863 fra.me.has_broke = 0;
1864 fra.me.REG_size = 1;
1865 fra.me.REG[0] = NIT_NULL;
1866 fra.me.REG[0] = p0;
1867 REGB0 = TAG_Bool(ATTR_table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
1868 /* ./compiling//table_computation.nit:476 */
1869 if (UNTAG_Bool(REGB0)) {
1870 } else {
1871 fprintf(stderr, "Uninitialized attribute %s", "_local_class");
1872 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 476);
1873 nit_exit(1);
1874 }
1875 fra.me.REG[0] = ATTR_table_computation___AbsTableEltClass____local_class(fra.me.REG[0]);
1876 stack_frame_head = fra.me.prev;
1877 return fra.me.REG[0];
1878 }
1879 void table_computation___AbsTableEltClass___init(val_t p0, val_t p1, int* init_table){
1880 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AbsTableEltClass].i;
1881 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1882 val_t tmp;
1883 if (init_table[itpos4]) return;
1884 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1885 fra.me.file = LOCATE_table_computation;
1886 fra.me.line = 479;
1887 fra.me.meth = LOCATE_table_computation___AbsTableEltClass___init;
1888 fra.me.has_broke = 0;
1889 fra.me.REG_size = 3;
1890 fra.me.REG[0] = NIT_NULL;
1891 fra.me.REG[1] = NIT_NULL;
1892 fra.me.REG[2] = NIT_NULL;
1893 fra.me.REG[0] = p0;
1894 fra.me.REG[1] = p1;
1895 fra.me.REG[2] = fra.me.REG[0];
1896 /* ./compiling//table_computation.nit:479 */
1897 CALL_table_computation___AbsTableElt___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1898 /* ./compiling//table_computation.nit:481 */
1899 ATTR_table_computation___AbsTableEltClass____local_class(fra.me.REG[2]) = fra.me.REG[1];
1900 stack_frame_head = fra.me.prev;
1901 init_table[itpos4] = 1;
1902 return;
1903 }
1904 val_t table_computation___TableEltClass___is_related_to(val_t p0, val_t p1){
1905 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1906 val_t REGB0;
1907 val_t tmp;
1908 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1909 fra.me.file = LOCATE_table_computation;
1910 fra.me.line = 489;
1911 fra.me.meth = LOCATE_table_computation___TableEltClass___is_related_to;
1912 fra.me.has_broke = 0;
1913 fra.me.REG_size = 3;
1914 fra.me.REG[0] = NIT_NULL;
1915 fra.me.REG[1] = NIT_NULL;
1916 fra.me.REG[2] = NIT_NULL;
1917 fra.me.REG[0] = p0;
1918 fra.me.REG[1] = p1;
1919 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[1])(fra.me.REG[1]);
1920 REGB0 = TAG_Bool(ATTR_table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
1921 /* ./compiling//table_computation.nit:491 */
1922 if (UNTAG_Bool(REGB0)) {
1923 } else {
1924 fprintf(stderr, "Uninitialized attribute %s", "_local_class");
1925 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 491);
1926 nit_exit(1);
1927 }
1928 fra.me.REG[0] = ATTR_table_computation___AbsTableEltClass____local_class(fra.me.REG[0]);
1929 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1930 fra.me.REG[0] = CALL_abstractmetamodel___MMModule_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1931 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
1932 REGB0 = CALL_partial_order___PartialOrderElement_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1933 /* ./compiling//table_computation.nit:492 */
1934 goto label1;
1935 label1: while(0);
1936 stack_frame_head = fra.me.prev;
1937 return REGB0;
1938 }
1939 val_t table_computation___TableEltComposite___is_related_to(val_t p0, val_t p1){
1940 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1941 val_t REGB0;
1942 val_t tmp;
1943 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1944 fra.me.file = LOCATE_table_computation;
1945 fra.me.line = 523;
1946 fra.me.meth = LOCATE_table_computation___TableEltComposite___is_related_to;
1947 fra.me.has_broke = 0;
1948 fra.me.REG_size = 2;
1949 fra.me.REG[0] = NIT_NULL;
1950 fra.me.REG[1] = NIT_NULL;
1951 fra.me.REG[0] = p0;
1952 fra.me.REG[1] = p1;
1953 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
1954 REGB0 = TAG_Bool(ATTR_table_computation___TableEltComposite____cc(fra.me.REG[0])!=NIT_NULL);
1955 /* ./compiling//table_computation.nit:523 */
1956 if (UNTAG_Bool(REGB0)) {
1957 } else {
1958 fprintf(stderr, "Uninitialized attribute %s", "_cc");
1959 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 523);
1960 nit_exit(1);
1961 }
1962 fra.me.REG[0] = ATTR_table_computation___TableEltComposite____cc(fra.me.REG[0]);
1963 fra.me.REG[0] = CALL_table_computation___CompiledClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
1964 REGB0 = CALL_partial_order___PartialOrderElement_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1965 goto label1;
1966 label1: while(0);
1967 stack_frame_head = fra.me.prev;
1968 return REGB0;
1969 }
1970 val_t table_computation___TableEltComposite___length(val_t p0){
1971 struct {struct stack_frame_t me;} fra;
1972 val_t REGB0;
1973 val_t tmp;
1974 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1975 fra.me.file = LOCATE_table_computation;
1976 fra.me.line = 522;
1977 fra.me.meth = LOCATE_table_computation___TableEltComposite___length;
1978 fra.me.has_broke = 0;
1979 fra.me.REG_size = 1;
1980 fra.me.REG[0] = NIT_NULL;
1981 fra.me.REG[0] = p0;
1982 REGB0 = TAG_Bool(ATTR_table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
1983 /* ./compiling//table_computation.nit:522 */
1984 if (UNTAG_Bool(REGB0)) {
1985 } else {
1986 fprintf(stderr, "Uninitialized attribute %s", "_table");
1987 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 522);
1988 nit_exit(1);
1989 }
1990 fra.me.REG[0] = ATTR_table_computation___TableEltComposite____table(fra.me.REG[0]);
1991 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1992 /* ./../lib/standard//collection//array.nit:23 */
1993 if (UNTAG_Bool(REGB0)) {
1994 } else {
1995 fprintf(stderr, "Uninitialized attribute %s", "_length");
1996 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1997 nit_exit(1);
1998 }
1999 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
2000 /* ./compiling//table_computation.nit:522 */
2001 goto label1;
2002 label1: while(0);
2003 stack_frame_head = fra.me.prev;
2004 return REGB0;
2005 }
2006 val_t table_computation___TableEltComposite___item(val_t p0, val_t p1){
2007 struct {struct stack_frame_t me;} fra;
2008 val_t REGB0;
2009 val_t REGB1;
2010 val_t REGB2;
2011 val_t tmp;
2012 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2013 fra.me.file = LOCATE_table_computation;
2014 fra.me.line = 531;
2015 fra.me.meth = LOCATE_table_computation___TableEltComposite___item;
2016 fra.me.has_broke = 0;
2017 fra.me.REG_size = 1;
2018 fra.me.REG[0] = NIT_NULL;
2019 fra.me.REG[0] = p0;
2020 REGB0 = p1;
2021 REGB1 = TAG_Bool(ATTR_table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
2022 /* ./compiling//table_computation.nit:531 */
2023 if (UNTAG_Bool(REGB1)) {
2024 } else {
2025 fprintf(stderr, "Uninitialized attribute %s", "_table");
2026 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 531);
2027 nit_exit(1);
2028 }
2029 fra.me.REG[0] = ATTR_table_computation___TableEltComposite____table(fra.me.REG[0]);
2030 REGB1 = TAG_Int(0);
2031 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
2032 /* ./../lib/standard//collection//array.nit:233 */
2033 if (UNTAG_Bool(REGB1)) {
2034 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2035 if (UNTAG_Bool(REGB1)) {
2036 } else {
2037 fprintf(stderr, "Uninitialized attribute %s", "_length");
2038 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
2039 nit_exit(1);
2040 }
2041 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
2042 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2043 /* ./../lib/standard//collection//array.nit:233 */
2044 } else {
2045 REGB2 = TAG_Bool(false);
2046 REGB1 = REGB2;
2047 }
2048 if (UNTAG_Bool(REGB1)) {
2049 } else {
2050 fprintf(stderr, "Assert %s failed", "'index'");
2051 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
2052 nit_exit(1);
2053 }
2054 fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[0]);
2055 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2056 /* ./../lib/standard//collection//array.nit:234 */
2057 if (UNTAG_Bool(REGB1)) {
2058 fprintf(stderr, "Reciever is null");
2059 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
2060 nit_exit(1);
2061 }
2062 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
2063 /* ./../lib/standard//collection//array.nit:234 */
2064 goto label1;
2065 label1: while(0);
2066 /* ./compiling//table_computation.nit:531 */
2067 goto label2;
2068 label2: while(0);
2069 stack_frame_head = fra.me.prev;
2070 return fra.me.REG[0];
2071 }
2072 void table_computation___TableEltComposite___add(val_t p0, val_t p1, val_t p2){
2073 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2074 val_t REGB0;
2075 val_t tmp;
2076 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2077 fra.me.file = LOCATE_table_computation;
2078 fra.me.line = 525;
2079 fra.me.meth = LOCATE_table_computation___TableEltComposite___add;
2080 fra.me.has_broke = 0;
2081 fra.me.REG_size = 5;
2082 fra.me.REG[0] = NIT_NULL;
2083 fra.me.REG[1] = NIT_NULL;
2084 fra.me.REG[2] = NIT_NULL;
2085 fra.me.REG[3] = NIT_NULL;
2086 fra.me.REG[4] = NIT_NULL;
2087 fra.me.REG[0] = p0;
2088 fra.me.REG[1] = p1;
2089 fra.me.REG[2] = p2;
2090 REGB0 = TAG_Bool(ATTR_table_computation___TableEltComposite____offsets(fra.me.REG[0])!=NIT_NULL);
2091 /* ./compiling//table_computation.nit:527 */
2092 if (UNTAG_Bool(REGB0)) {
2093 } else {
2094 fprintf(stderr, "Uninitialized attribute %s", "_offsets");
2095 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 527);
2096 nit_exit(1);
2097 }
2098 fra.me.REG[3] = ATTR_table_computation___TableEltComposite____offsets(fra.me.REG[0]);
2099 REGB0 = TAG_Bool(ATTR_table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
2100 if (UNTAG_Bool(REGB0)) {
2101 } else {
2102 fprintf(stderr, "Uninitialized attribute %s", "_table");
2103 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 527);
2104 nit_exit(1);
2105 }
2106 fra.me.REG[4] = ATTR_table_computation___TableEltComposite____table(fra.me.REG[0]);
2107 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
2108 /* ./../lib/standard//collection//array.nit:23 */
2109 if (UNTAG_Bool(REGB0)) {
2110 } else {
2111 fprintf(stderr, "Uninitialized attribute %s", "_length");
2112 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
2113 nit_exit(1);
2114 }
2115 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
2116 /* ./compiling//table_computation.nit:527 */
2117 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], REGB0);
2118 REGB0 = TAG_Bool(ATTR_table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
2119 /* ./compiling//table_computation.nit:528 */
2120 if (UNTAG_Bool(REGB0)) {
2121 } else {
2122 fprintf(stderr, "Uninitialized attribute %s", "_table");
2123 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 528);
2124 nit_exit(1);
2125 }
2126 fra.me.REG[0] = ATTR_table_computation___TableEltComposite____table(fra.me.REG[0]);
2127 CALL_abstract_collection___Sequence___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
2128 stack_frame_head = fra.me.prev;
2129 return;
2130 }
2131 void table_computation___TableEltComposite___init(val_t p0, val_t p1, int* init_table){
2132 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_TableEltComposite].i;
2133 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2134 val_t tmp;
2135 if (init_table[itpos5]) return;
2136 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2137 fra.me.file = LOCATE_table_computation;
2138 fra.me.line = 533;
2139 fra.me.meth = LOCATE_table_computation___TableEltComposite___init;
2140 fra.me.has_broke = 0;
2141 fra.me.REG_size = 2;
2142 fra.me.REG[0] = NIT_NULL;
2143 fra.me.REG[1] = NIT_NULL;
2144 fra.me.REG[0] = p0;
2145 fra.me.REG[1] = p1;
2146 /* ./compiling//table_computation.nit:535 */
2147 ATTR_table_computation___TableEltComposite____cc(fra.me.REG[0]) = fra.me.REG[1];
2148 fra.me.REG[1] = NEW_Array_array___Array___init();
2149 /* ./compiling//table_computation.nit:536 */
2150 ATTR_table_computation___TableEltComposite____table(fra.me.REG[0]) = fra.me.REG[1];
2151 fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
2152 /* ./compiling//table_computation.nit:537 */
2153 ATTR_table_computation___TableEltComposite____offsets(fra.me.REG[0]) = fra.me.REG[1];
2154 stack_frame_head = fra.me.prev;
2155 init_table[itpos5] = 1;
2156 return;
2157 }
2158 val_t table_computation___TableEltClassSelfId___is_related_to(val_t p0, val_t p1){
2159 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2160 val_t REGB0;
2161 val_t tmp;
2162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2163 fra.me.file = LOCATE_table_computation;
2164 fra.me.line = 544;
2165 fra.me.meth = LOCATE_table_computation___TableEltClassSelfId___is_related_to;
2166 fra.me.has_broke = 0;
2167 fra.me.REG_size = 2;
2168 fra.me.REG[0] = NIT_NULL;
2169 fra.me.REG[1] = NIT_NULL;
2170 fra.me.REG[0] = p0;
2171 fra.me.REG[1] = p1;
2172 REGB0 = TAG_Bool(true);
2173 /* ./compiling//table_computation.nit:544 */
2174 goto label1;
2175 label1: while(0);
2176 stack_frame_head = fra.me.prev;
2177 return REGB0;
2178 }
2179 val_t table_computation___TableEltClassObjectSize___is_related_to(val_t p0, val_t p1){
2180 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2181 val_t REGB0;
2182 val_t tmp;
2183 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2184 fra.me.file = LOCATE_table_computation;
2185 fra.me.line = 550;
2186 fra.me.meth = LOCATE_table_computation___TableEltClassObjectSize___is_related_to;
2187 fra.me.has_broke = 0;
2188 fra.me.REG_size = 2;
2189 fra.me.REG[0] = NIT_NULL;
2190 fra.me.REG[1] = NIT_NULL;
2191 fra.me.REG[0] = p0;
2192 fra.me.REG[1] = p1;
2193 REGB0 = TAG_Bool(true);
2194 /* ./compiling//table_computation.nit:550 */
2195 goto label1;
2196 label1: while(0);
2197 stack_frame_head = fra.me.prev;
2198 return REGB0;
2199 }
2200 val_t table_computation___TableEltObjectId___is_related_to(val_t p0, val_t p1){
2201 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2202 val_t REGB0;
2203 val_t tmp;
2204 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2205 fra.me.file = LOCATE_table_computation;
2206 fra.me.line = 556;
2207 fra.me.meth = LOCATE_table_computation___TableEltObjectId___is_related_to;
2208 fra.me.has_broke = 0;
2209 fra.me.REG_size = 2;
2210 fra.me.REG[0] = NIT_NULL;
2211 fra.me.REG[1] = NIT_NULL;
2212 fra.me.REG[0] = p0;
2213 fra.me.REG[1] = p1;
2214 REGB0 = TAG_Bool(true);
2215 /* ./compiling//table_computation.nit:556 */
2216 goto label1;
2217 label1: while(0);
2218 stack_frame_head = fra.me.prev;
2219 return REGB0;
2220 }
2221 val_t table_computation___TableEltVftPointer___is_related_to(val_t p0, val_t p1){
2222 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2223 val_t REGB0;
2224 val_t tmp;
2225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2226 fra.me.file = LOCATE_table_computation;
2227 fra.me.line = 562;
2228 fra.me.meth = LOCATE_table_computation___TableEltVftPointer___is_related_to;
2229 fra.me.has_broke = 0;
2230 fra.me.REG_size = 2;
2231 fra.me.REG[0] = NIT_NULL;
2232 fra.me.REG[1] = NIT_NULL;
2233 fra.me.REG[0] = p0;
2234 fra.me.REG[1] = p1;
2235 REGB0 = TAG_Bool(true);
2236 /* ./compiling//table_computation.nit:562 */
2237 goto label1;
2238 label1: while(0);
2239 stack_frame_head = fra.me.prev;
2240 return REGB0;
2241 }
2242 val_t table_computation___ClassSorter___compare(val_t p0, val_t p1, val_t p2){
2243 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2244 val_t REGB0;
2245 val_t tmp;
2246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2247 fra.me.file = LOCATE_table_computation;
2248 fra.me.line = 571;
2249 fra.me.meth = LOCATE_table_computation___ClassSorter___compare;
2250 fra.me.has_broke = 0;
2251 fra.me.REG_size = 3;
2252 fra.me.REG[0] = NIT_NULL;
2253 fra.me.REG[1] = NIT_NULL;
2254 fra.me.REG[2] = NIT_NULL;
2255 fra.me.REG[0] = p0;
2256 fra.me.REG[1] = p1;
2257 fra.me.REG[2] = p2;
2258 REGB0 = CALL_table_computation___MMLocalClass___compare(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2259 /* ./compiling//table_computation.nit:571 */
2260 goto label1;
2261 label1: while(0);
2262 stack_frame_head = fra.me.prev;
2263 return REGB0;
2264 }
2265 void table_computation___ClassSorter___init(val_t p0, int* init_table){
2266 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassSorter].i;
2267 struct {struct stack_frame_t me;} fra;
2268 val_t tmp;
2269 if (init_table[itpos6]) return;
2270 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2271 fra.me.file = LOCATE_table_computation;
2272 fra.me.line = 572;
2273 fra.me.meth = LOCATE_table_computation___ClassSorter___init;
2274 fra.me.has_broke = 0;
2275 fra.me.REG_size = 1;
2276 fra.me.REG[0] = NIT_NULL;
2277 fra.me.REG[0] = p0;
2278 /* ./compiling//table_computation.nit:572 */
2279 CALL_sorter___AbstractSorter___init(fra.me.REG[0])(fra.me.REG[0], init_table);
2280 stack_frame_head = fra.me.prev;
2281 init_table[itpos6] = 1;
2282 return;
2283 }
2284 val_t table_computation___MMLocalClass___compare(val_t p0, val_t p1){
2285 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2286 val_t REGB0;
2287 val_t REGB1;
2288 val_t REGB2;
2289 val_t REGB3;
2290 val_t tmp;
2291 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2292 fra.me.file = LOCATE_table_computation;
2293 fra.me.line = 576;
2294 fra.me.meth = LOCATE_table_computation___MMLocalClass___compare;
2295 fra.me.has_broke = 0;
2296 fra.me.REG_size = 4;
2297 fra.me.REG[0] = NIT_NULL;
2298 fra.me.REG[1] = NIT_NULL;
2299 fra.me.REG[2] = NIT_NULL;
2300 fra.me.REG[3] = NIT_NULL;
2301 fra.me.REG[0] = p0;
2302 fra.me.REG[1] = p1;
2303 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[1]));
2304 /* ./compiling//table_computation.nit:580 */
2305 if (UNTAG_Bool(REGB0)) {
2306 } else {
2307 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2308 REGB0 = REGB1;
2309 }
2310 if (UNTAG_Bool(REGB0)) {
2311 REGB0 = TAG_Int(0);
2312 /* ./compiling//table_computation.nit:581 */
2313 goto label1;
2314 } else {
2315 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[0])(fra.me.REG[0]);
2316 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
2317 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[1])(fra.me.REG[1]);
2318 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2319 /* ./compiling//table_computation.nit:582 */
2320 if (UNTAG_Bool(REGB1)) {
2321 fprintf(stderr, "Reciever is null");
2322 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 582);
2323 nit_exit(1);
2324 }
2325 REGB1 = CALL_partial_order___PartialOrderElement_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2326 if (UNTAG_Bool(REGB1)) {
2327 REGB1 = TAG_Int(1);
2328 REGB0 = REGB1;
2329 /* ./compiling//table_computation.nit:583 */
2330 goto label1;
2331 } else {
2332 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[1])(fra.me.REG[1]);
2333 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___mhe(fra.me.REG[3])(fra.me.REG[3]);
2334 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[0])(fra.me.REG[0]);
2335 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2336 /* ./compiling//table_computation.nit:584 */
2337 if (UNTAG_Bool(REGB1)) {
2338 fprintf(stderr, "Reciever is null");
2339 fprintf(stderr, " (%s:%d)\n", LOCATE_table_computation, 584);
2340 nit_exit(1);
2341 }
2342 REGB1 = CALL_partial_order___PartialOrderElement_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
2343 if (UNTAG_Bool(REGB1)) {
2344 REGB1 = TAG_Int(1);
2345 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
2346 REGB0 = REGB1;
2347 /* ./compiling//table_computation.nit:585 */
2348 goto label1;
2349 }
2350 }
2351 }
2352 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
2353 REGB1 = CALL_partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
2354 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
2355 REGB2 = CALL_partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
2356 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
2357 /* ./compiling//table_computation.nit:589 */
2358 if (UNTAG_Bool(REGB3)) {
2359 REGB3 = TAG_Int(1);
2360 REGB0 = REGB3;
2361 /* ./compiling//table_computation.nit:590 */
2362 goto label1;
2363 } else {
2364 REGB1 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB1));
2365 /* ./compiling//table_computation.nit:591 */
2366 if (UNTAG_Bool(REGB1)) {
2367 REGB1 = TAG_Int(1);
2368 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
2369 REGB0 = REGB1;
2370 /* ./compiling//table_computation.nit:592 */
2371 goto label1;
2372 } else {
2373 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]);
2374 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2375 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
2376 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2377 REGB1 = CALL_kernel___Comparable_____leqg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2378 REGB0 = REGB1;
2379 /* ./compiling//table_computation.nit:594 */
2380 goto label1;
2381 }
2382 }
2383 label1: while(0);
2384 stack_frame_head = fra.me.prev;
2385 return REGB0;
2386 }