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