ni: fix isa checks with new module names and updates c_src accordingly
[nit.git] / c_src / compiling___table_computation._sep.c
1 /* This C file is generated by NIT to compile module compiling___table_computation. */
2 #include "compiling___table_computation._sep.h"
3 val_t compiling___table_computation___ColorContext___color(val_t p0, val_t p1){
4 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_compiling___table_computation;
9 fra.me.line = 29;
10 fra.me.meth = LOCATE_compiling___table_computation___ColorContext___color;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 2;
13 fra.me.REG[0] = NIT_NULL;
14 fra.me.REG[1] = NIT_NULL;
15 fra.me.REG[0] = p0;
16 fra.me.REG[1] = p1;
17 /* ./compiling//table_computation.nit:32 */
18 REGB0 = TAG_Bool(ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
19 if (UNTAG_Bool(REGB0)) {
20 } else {
21 nit_abort("Uninitialized attribute %s", "_colors", LOCATE_compiling___table_computation, 32);
22 }
23 fra.me.REG[0] = ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]);
24 fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
25 REGB0 = fra.me.REG[1];
26 goto label1;
27 label1: while(0);
28 stack_frame_head = fra.me.prev;
29 return REGB0;
30 }
31 val_t compiling___table_computation___ColorContext___has_color(val_t p0, val_t p1){
32 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33 val_t REGB0;
34 val_t tmp;
35 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36 fra.me.file = LOCATE_compiling___table_computation;
37 fra.me.line = 35;
38 fra.me.meth = LOCATE_compiling___table_computation___ColorContext___has_color;
39 fra.me.has_broke = 0;
40 fra.me.REG_size = 2;
41 fra.me.REG[0] = NIT_NULL;
42 fra.me.REG[1] = NIT_NULL;
43 fra.me.REG[0] = p0;
44 fra.me.REG[1] = p1;
45 /* ./compiling//table_computation.nit:38 */
46 REGB0 = TAG_Bool(ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
47 if (UNTAG_Bool(REGB0)) {
48 } else {
49 nit_abort("Uninitialized attribute %s", "_colors", LOCATE_compiling___table_computation, 38);
50 }
51 fra.me.REG[0] = ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]);
52 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
53 goto label1;
54 label1: while(0);
55 stack_frame_head = fra.me.prev;
56 return REGB0;
57 }
58 void compiling___table_computation___ColorContext___color__eq(val_t p0, val_t p1, val_t p2){
59 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
60 val_t REGB0;
61 val_t REGB1;
62 val_t REGB2;
63 val_t REGB3;
64 val_t REGB4;
65 val_t tmp;
66 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
67 fra.me.file = LOCATE_compiling___table_computation;
68 fra.me.line = 41;
69 fra.me.meth = LOCATE_compiling___table_computation___ColorContext___color__eq;
70 fra.me.has_broke = 0;
71 fra.me.REG_size = 4;
72 fra.me.REG[0] = NIT_NULL;
73 fra.me.REG[1] = NIT_NULL;
74 fra.me.REG[2] = NIT_NULL;
75 fra.me.REG[3] = NIT_NULL;
76 fra.me.REG[0] = p0;
77 fra.me.REG[1] = p1;
78 REGB0 = p2;
79 /* ./compiling//table_computation.nit:44 */
80 REGB1 = TAG_Bool(ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
81 if (UNTAG_Bool(REGB1)) {
82 } else {
83 nit_abort("Uninitialized attribute %s", "_colors", LOCATE_compiling___table_computation, 44);
84 }
85 fra.me.REG[2] = ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]);
86 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], REGB0);
87 /* ./compiling//table_computation.nit:46 */
88 REGB1 = TAG_Int(0);
89 REGB2 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[1])(fra.me.REG[1]);
90 /* ./../lib/standard//kernel.nit:335 */
91 while(1) {
92 /* ./../lib/standard//kernel.nit:215 */
93 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
94 /* ./../lib/standard//kernel.nit:335 */
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_compiling___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_compiling___table_computation, 47);
103 }
104 fra.me.REG[2] = ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]);
105 fra.me.REG[3] = CALL_compiling___table_computation___TableElt___item(fra.me.REG[1])(fra.me.REG[1], REGB3);
106 CALL_standard___collection___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:218 */
110 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
111 /* ./compiling//table_computation.nit:48 */
112 REGB0 = REGB3;
113 /* ./../lib/standard//kernel.nit:337 */
114 REGB3 = TAG_Int(1);
115 /* ./../lib/standard//kernel.nit:218 */
116 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
117 /* ./../lib/standard//kernel.nit:337 */
118 REGB1 = REGB3;
119 } else {
120 /* ./../lib/standard//kernel.nit:335 */
121 goto label1;
122 }
123 }
124 label1: while(0);
125 stack_frame_head = fra.me.prev;
126 return;
127 }
128 void compiling___table_computation___ColorContext___init(val_t p0, int* init_table){
129 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___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_compiling___table_computation;
135 fra.me.line = 0;
136 fra.me.meth = LOCATE_compiling___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 compiling___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_compiling___table_computation;
149 fra.me.line = 56;
150 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___table_computation, 56);
160 }
161 REGB0 = ATTR_compiling___table_computation___TableInformation____max_class_table_length(fra.me.REG[0]);
162 stack_frame_head = fra.me.prev;
163 return REGB0;
164 }
165 void compiling___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_compiling___table_computation;
171 fra.me.line = 56;
172 fra.me.meth = LOCATE_compiling___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_compiling___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 compiling___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_compiling___table_computation;
189 fra.me.line = 63;
190 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___table_computation, 63);
200 }
201 fra.me.REG[0] = ATTR_compiling___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 compiling___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_compiling___table_computation;
211 fra.me.line = 66;
212 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___table_computation, 66);
222 }
223 REGB0 = ATTR_compiling___table_computation___CompiledClass____id(fra.me.REG[0]);
224 stack_frame_head = fra.me.prev;
225 return REGB0;
226 }
227 void compiling___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_compiling___table_computation;
233 fra.me.line = 66;
234 fra.me.meth = LOCATE_compiling___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_compiling___table_computation___CompiledClass____id(fra.me.REG[0]) = REGB0;
242 stack_frame_head = fra.me.prev;
243 return;
244 }
245 val_t compiling___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_compiling___table_computation;
251 fra.me.line = 69;
252 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___table_computation, 69);
262 }
263 fra.me.REG[0] = ATTR_compiling___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 compiling___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_compiling___table_computation;
273 fra.me.line = 72;
274 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___table_computation, 72);
284 }
285 fra.me.REG[0] = ATTR_compiling___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 compiling___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_compiling___table_computation;
295 fra.me.line = 75;
296 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___table_computation, 75);
306 }
307 fra.me.REG[0] = ATTR_compiling___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 compiling___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_compiling___table_computation;
316 fra.me.line = 75;
317 fra.me.meth = LOCATE_compiling___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_compiling___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 compiling___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_compiling___table_computation;
335 fra.me.line = 78;
336 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___table_computation, 78);
346 }
347 fra.me.REG[0] = ATTR_compiling___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 compiling___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_compiling___table_computation;
356 fra.me.line = 78;
357 fra.me.meth = LOCATE_compiling___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_compiling___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 compiling___table_computation___CompiledClass___init(val_t p0, val_t p1, int* init_table){
370 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___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_compiling___table_computation;
376 fra.me.line = 81;
377 fra.me.meth = LOCATE_compiling___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_compiling___table_computation___ColorContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
388 ATTR_compiling___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 compiling___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_compiling___table_computation;
399 fra.me.line = 85;
400 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___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 compiling___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_compiling___table_computation;
423 fra.me.line = 89;
424 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___table_computation, 89);
434 }
435 fra.me.REG[0] = ATTR_compiling___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 compiling___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_compiling___table_computation;
445 fra.me.line = 92;
446 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___table_computation, 92);
456 }
457 fra.me.REG[0] = ATTR_compiling___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 compiling___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_compiling___table_computation;
468 fra.me.line = 95;
469 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___table_computation, 98);
484 }
485 fra.me.REG[2] = ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0]);
486 /* ./compiling//table_computation.nit:99 */
487 REGB0 = TAG_Bool(ATTR_compiling___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_compiling___table_computation, 99);
491 }
492 fra.me.REG[3] = ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0]);
493 /* ./compiling//table_computation.nit:101 */
494 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
495 fra.me.REG[4] = CALL_metamodel___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_standard___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_compiling___table_computation___AbsTableEltClass___init(fra.me.REG[0]);
505 CALL_standard___collection___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_compiling___table_computation___AbsTableEltClass___init(fra.me.REG[0]);
508 /* ./compiling//table_computation.nit:104 */
509 ATTR_compiling___table_computation___MMConcreteClass____class_color_pos(fra.me.REG[0]) = fra.me.REG[4];
510 /* ./compiling//table_computation.nit:105 */
511 CALL_standard___collection___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_compiling___table_computation___AbsTableEltClass___init(fra.me.REG[0]);
514 CALL_standard___collection___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_metamodel___abstractmetamodel___MMLocalClass___local_local_properties(fra.me.REG[0])(fra.me.REG[0]);
518 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_compiling___table_computation___MMConcreteClass___build_layout_in_1));
519 /* ./compiling//table_computation.nit:122 */
520 REGB0 = CALL_standard___collection___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_compiling___table_computation___AbsTableElt___init();
525 /* ./compiling//table_computation.nit:124 */
526 fra.me.REG[4] = CALL_compiling___table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
527 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
528 /* ./compiling//table_computation.nit:125 */
529 CALL_standard___collection___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_standard___collection___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_compiling___table_computation___AbsTableElt___init();
537 /* ./compiling//table_computation.nit:130 */
538 fra.me.REG[3] = CALL_compiling___table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
539 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
540 /* ./compiling//table_computation.nit:131 */
541 CALL_standard___collection___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_compiling___table_computation___MMConcreteClass___build_layout_in_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
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_compiling___table_computation;
554 fra.me.line = 0;
555 fra.me.meth = LOCATE_compiling___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_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
566 /* ./compiling//table_computation.nit:110 */
567 fra.me.REG[1] = CALL_metamodel___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_standard___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_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
577 if (UNTAG_Bool(REGB0)) {
578 /* ./compiling//table_computation.nit:112 */
579 fra.me.REG[1] = NEW_TableEltAttr_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
580 CALL_standard___collection___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_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
584 if (UNTAG_Bool(REGB0)) {
585 /* ./compiling//table_computation.nit:114 */
586 fra.me.REG[1] = NEW_TableEltMeth_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
587 CALL_standard___collection___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_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
593 if (UNTAG_Bool(REGB0)) {
594 REGB0 = CALL_metamodel___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_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
602 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
603 }
604 stack_frame_head = fra.me.prev;
605 return;
606 }
607 val_t compiling___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_compiling___table_computation;
613 fra.me.line = 137;
614 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___table_computation, 137);
624 }
625 fra.me.REG[0] = ATTR_compiling___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 compiling___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_compiling___table_computation;
635 fra.me.line = 140;
636 fra.me.meth = LOCATE_compiling___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_compiling___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_compiling___table_computation, 140);
646 }
647 fra.me.REG[0] = ATTR_compiling___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 compiling___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_compiling___table_computation;
659 fra.me.line = 143;
660 fra.me.meth = LOCATE_compiling___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_standard___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_metamodel___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_compiling___table_computation, 146);
685 }
686 fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[2])(fra.me.REG[2]);
687 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___do_table_computation_2));
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_standard___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_compiling___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_compiling___table_computation___Program___do_table_computation_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
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_compiling___table_computation;
714 fra.me.line = 0;
715 fra.me.meth = LOCATE_compiling___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_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
739 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
740 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
741 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
751 fra.me.REG[2] = CALL_standard___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_compiling___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 compiling___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_compiling___table_computation;
769 fra.me.line = 155;
770 fra.me.meth = LOCATE_compiling___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_standard___collection___array___Array___init();
788 /* ./compiling//table_computation.nit:159 */
789 fra.me.REG[2] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
790 /* ./compiling//table_computation.nit:160 */
791 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
792 /* ./compiling//table_computation.nit:161 */
793 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
794 /* ./compiling//table_computation.nit:163 */
795 fra.me.REG[4] = NEW_TableEltClassSelfId_compiling___table_computation___AbsTableElt___init();
796 CALL_standard___collection___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_compiling___table_computation___AbsTableElt___init();
799 CALL_standard___collection___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_TableEltClassSelfName_compiling___table_computation___AbsTableElt___init();
802 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
803 /* ./compiling//table_computation.nit:166 */
804 fra.me.REG[4] = NEW_TableEltVftPointer_compiling___table_computation___AbsTableElt___init();
805 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
806 /* ./compiling//table_computation.nit:167 */
807 fra.me.REG[4] = NEW_TableEltObjectId_compiling___table_computation___AbsTableElt___init();
808 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
809 /* ./compiling//table_computation.nit:169 */
810 REGB0 = TAG_Int(1);
811 /* ./../lib/standard//kernel.nit:219 */
812 REGB0 = TAG_Int(-UNTAG_Int(REGB0));
813 /* ./compiling//table_computation.nit:170 */
814 REGB1 = TAG_Int(3);
815 /* ./compiling//table_computation.nit:173 */
816 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
817 /* ./compiling//table_computation.nit:174 */
818 fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
819 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[5])(fra.me.REG[5]);
820 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___do_global_table_analysis_1));
821 CALL_standard___collection___array___Array___sort(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___do_global_table_analysis_2));
822 /* ./../lib/standard//collection//array.nit:231 */
823 fra.me.REG[5] = fra.me.REG[4];
824 /* ./../lib/standard//collection//array.nit:234 */
825 REGB2 = TAG_Int(0);
826 /* ./../lib/standard//collection//array.nit:235 */
827 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
828 if (UNTAG_Bool(REGB3)) {
829 } else {
830 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
831 }
832 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
833 /* ./../lib/standard//collection//array.nit:236 */
834 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
835 /* ./../lib/standard//collection//array.nit:237 */
836 while(1) {
837 /* ./../lib/standard//collection//array.nit:23 */
838 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
839 if (UNTAG_Bool(REGB3)) {
840 } else {
841 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
842 }
843 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
844 /* ./../lib/standard//kernel.nit:215 */
845 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
846 /* ./../lib/standard//collection//array.nit:237 */
847 if (UNTAG_Bool(REGB3)) {
848 /* ./../lib/standard//collection//array.nit:238 */
849 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
850 if (UNTAG_Bool(REGB3)) {
851 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
852 }
853 /* ./../lib/standard//collection//array.nit:654 */
854 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
855 /* ./compiling//table_computation.nit:179 */
856 fra.me.REG[8] = NEW_CompiledClass_compiling___table_computation___CompiledClass___init(fra.me.REG[7]);
857 /* ./compiling//table_computation.nit:180 */
858 fra.me.REG[9] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
859 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
860 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10], fra.me.REG[8]);
861 /* ./compiling//table_computation.nit:184 */
862 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
863 /* ./compiling//table_computation.nit:185 */
864 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[10])(fra.me.REG[10]);
865 /* ./compiling//table_computation.nit:186 */
866 fra.me.REG[10] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[7])(fra.me.REG[7]);
867 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
868 if (UNTAG_Bool(REGB3)) {
869 } else {
870 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
871 if (UNTAG_Bool(REGB4)) {
872 REGB4 = TAG_Bool(false);
873 REGB3 = REGB4;
874 } else {
875 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
876 REGB3 = REGB4;
877 }
878 }
879 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
880 if (UNTAG_Bool(REGB3)) {
881 /* ./compiling//table_computation.nit:187 */
882 CALL_compiling___table_computation___CompiledClass___id__eq(fra.me.REG[8])(fra.me.REG[8], REGB0);
883 /* ./compiling//table_computation.nit:188 */
884 REGB3 = TAG_Int(4);
885 /* ./../lib/standard//kernel.nit:220 */
886 REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB3));
887 /* ./compiling//table_computation.nit:188 */
888 REGB0 = REGB3;
889 } else {
890 /* ./compiling//table_computation.nit:190 */
891 CALL_compiling___table_computation___CompiledClass___id__eq(fra.me.REG[8])(fra.me.REG[8], REGB1);
892 /* ./compiling//table_computation.nit:191 */
893 REGB3 = TAG_Int(4);
894 /* ./../lib/standard//kernel.nit:218 */
895 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
896 /* ./compiling//table_computation.nit:191 */
897 REGB1 = REGB3;
898 }
899 /* ./compiling//table_computation.nit:195 */
900 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[7])(fra.me.REG[7]);
901 fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrderElement___direct_smallers(fra.me.REG[8])(fra.me.REG[8]);
902 REGB3 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[8])(fra.me.REG[8]);
903 if (UNTAG_Bool(REGB3)) {
904 /* ./compiling//table_computation.nit:196 */
905 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
906 }
907 /* ./compiling//table_computation.nit:200 */
908 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
909 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]);
910 /* ./compiling//table_computation.nit:201 */
911 REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
912 if (UNTAG_Bool(REGB3)) {
913 } else {
914 nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 201);
915 }
916 /* ./compiling//table_computation.nit:202 */
917 fra.me.REG[7] = CALL_compiling___table_computation___MMConcreteClass___class_color_pos(fra.me.REG[7])(fra.me.REG[7]);
918 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
919 /* ./../lib/standard//collection//array.nit:239 */
920 REGB3 = TAG_Int(1);
921 /* ./../lib/standard//kernel.nit:218 */
922 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
923 /* ./../lib/standard//collection//array.nit:239 */
924 REGB2 = REGB3;
925 } else {
926 /* ./../lib/standard//collection//array.nit:237 */
927 goto label4;
928 }
929 }
930 label4: while(0);
931 /* ./compiling//table_computation.nit:206 */
932 fra.me.REG[6] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
933 /* ./compiling//table_computation.nit:207 */
934 fra.me.REG[5] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
935 /* ./../lib/standard//collection//array.nit:234 */
936 REGB2 = TAG_Int(0);
937 /* ./../lib/standard//collection//array.nit:235 */
938 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
939 if (UNTAG_Bool(REGB1)) {
940 } else {
941 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
942 }
943 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
944 /* ./../lib/standard//collection//array.nit:236 */
945 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
946 /* ./../lib/standard//collection//array.nit:237 */
947 while(1) {
948 /* ./../lib/standard//collection//array.nit:23 */
949 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
950 if (UNTAG_Bool(REGB1)) {
951 } else {
952 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
953 }
954 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
955 /* ./../lib/standard//kernel.nit:215 */
956 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
957 /* ./../lib/standard//collection//array.nit:237 */
958 if (UNTAG_Bool(REGB1)) {
959 /* ./../lib/standard//collection//array.nit:238 */
960 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
961 if (UNTAG_Bool(REGB1)) {
962 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
963 }
964 /* ./../lib/standard//collection//array.nit:654 */
965 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB2)];
966 /* ./compiling//table_computation.nit:209 */
967 while(1) {
968 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[8])(fra.me.REG[8]);
969 fra.me.REG[10] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[10])(fra.me.REG[10]);
970 /* ./../lib/standard//collection//array.nit:23 */
971 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
972 if (UNTAG_Bool(REGB1)) {
973 } else {
974 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
975 }
976 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10]);
977 /* ./compiling//table_computation.nit:209 */
978 REGB0 = TAG_Int(1);
979 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
980 if (UNTAG_Bool(REGB3)) {
981 } else {
982 /* ./../lib/standard//kernel.nit:210 */
983 REGB0 = TAG_Bool((REGB1)==(REGB0));
984 /* ./compiling//table_computation.nit:209 */
985 REGB3 = REGB0;
986 }
987 if (UNTAG_Bool(REGB3)) {
988 /* ./compiling//table_computation.nit:210 */
989 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[8])(fra.me.REG[8]);
990 fra.me.REG[10] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[10])(fra.me.REG[10]);
991 fra.me.REG[10] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[10])(fra.me.REG[10]);
992 fra.me.REG[8] = fra.me.REG[10];
993 } else {
994 /* ./compiling//table_computation.nit:209 */
995 goto label5;
996 }
997 }
998 label5: while(0);
999 /* ./compiling//table_computation.nit:212 */
1000 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
1001 /* ./compiling//table_computation.nit:213 */
1002 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[8])(fra.me.REG[8]);
1003 fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[8])(fra.me.REG[8]);
1004 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
1005 /* ./../lib/standard//collection//array.nit:239 */
1006 REGB3 = TAG_Int(1);
1007 /* ./../lib/standard//kernel.nit:218 */
1008 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1009 /* ./../lib/standard//collection//array.nit:239 */
1010 REGB2 = REGB3;
1011 } else {
1012 /* ./../lib/standard//collection//array.nit:237 */
1013 goto label6;
1014 }
1015 }
1016 label6: while(0);
1017 /* ./compiling//table_computation.nit:218 */
1018 REGB2 = TAG_Int(0);
1019 CALL_compiling___table_computation___Program___colorize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[6], REGB2);
1020 /* ./compiling//table_computation.nit:221 */
1021 REGB2 = TAG_Int(0);
1022 /* ./../lib/standard//collection//array.nit:231 */
1023 fra.me.REG[7] = fra.me.REG[4];
1024 /* ./../lib/standard//collection//array.nit:234 */
1025 REGB3 = TAG_Int(0);
1026 /* ./../lib/standard//collection//array.nit:235 */
1027 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1028 if (UNTAG_Bool(REGB0)) {
1029 } else {
1030 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1031 }
1032 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1033 /* ./../lib/standard//collection//array.nit:236 */
1034 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
1035 /* ./../lib/standard//collection//array.nit:237 */
1036 while(1) {
1037 /* ./../lib/standard//collection//array.nit:23 */
1038 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1039 if (UNTAG_Bool(REGB0)) {
1040 } else {
1041 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1042 }
1043 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1044 /* ./../lib/standard//kernel.nit:215 */
1045 REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
1046 /* ./../lib/standard//collection//array.nit:237 */
1047 if (UNTAG_Bool(REGB0)) {
1048 /* ./../lib/standard//collection//array.nit:238 */
1049 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1050 if (UNTAG_Bool(REGB0)) {
1051 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
1052 }
1053 /* ./../lib/standard//collection//array.nit:654 */
1054 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB3)];
1055 /* ./compiling//table_computation.nit:223 */
1056 fra.me.REG[10] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1057 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
1058 fra.me.REG[9] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
1059 /* ./compiling//table_computation.nit:224 */
1060 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
1061 if (UNTAG_Bool(REGB0)) {
1062 /* ./compiling//table_computation.nit:226 */
1063 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1064 CALL_compiling___table_computation___Program___build_tables_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[8], fra.me.REG[2]);
1065 /* ./compiling//table_computation.nit:227 */
1066 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1067 /* ./../lib/standard//collection//array.nit:23 */
1068 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
1069 if (UNTAG_Bool(REGB0)) {
1070 } else {
1071 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1072 }
1073 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10]);
1074 /* ./../lib/standard//kernel.nit:215 */
1075 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
1076 /* ./compiling//table_computation.nit:227 */
1077 if (UNTAG_Bool(REGB0)) {
1078 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1079 /* ./../lib/standard//collection//array.nit:23 */
1080 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
1081 if (UNTAG_Bool(REGB0)) {
1082 } else {
1083 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1084 }
1085 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10]);
1086 /* ./compiling//table_computation.nit:227 */
1087 REGB2 = REGB0;
1088 }
1089 } else {
1090 /* ./compiling//table_computation.nit:230 */
1091 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[8])(fra.me.REG[8]);
1092 fra.me.REG[10] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[10])(fra.me.REG[10]);
1093 fra.me.REG[10] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[10])(fra.me.REG[10]);
1094 /* ./compiling//table_computation.nit:231 */
1095 fra.me.REG[11] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1096 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[10])(fra.me.REG[10]);
1097 fra.me.REG[10] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[10]);
1098 /* ./compiling//table_computation.nit:232 */
1099 fra.me.REG[11] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1100 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[11])(fra.me.REG[11]);
1101 if (UNTAG_Bool(REGB0)) {
1102 } else {
1103 nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 232);
1104 }
1105 /* ./compiling//table_computation.nit:233 */
1106 fra.me.REG[11] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1107 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1108 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[10]);
1109 /* ./compiling//table_computation.nit:234 */
1110 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
1111 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[8])(fra.me.REG[8]);
1112 /* ./compiling//table_computation.nit:235 */
1113 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[8], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
1114 if (UNTAG_Bool(REGB0)) {
1115 } else {
1116 nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 235);
1117 }
1118 /* ./compiling//table_computation.nit:236 */
1119 fra.me.REG[8] = CALL_compiling___table_computation___MMConcreteClass___class_color_pos(fra.me.REG[8])(fra.me.REG[8]);
1120 /* ./compiling//table_computation.nit:237 */
1121 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1122 /* ./../lib/standard//collection//array.nit:23 */
1123 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
1124 if (UNTAG_Bool(REGB0)) {
1125 } else {
1126 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1127 }
1128 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10]);
1129 /* ./compiling//table_computation.nit:238 */
1130 fra.me.REG[10] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1131 CALL_compiling___table_computation___ColorContext___color__eq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8], REGB0);
1132 /* ./compiling//table_computation.nit:239 */
1133 fra.me.REG[9] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
1134 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
1135 /* ./../lib/standard//kernel.nit:215 */
1136 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
1137 /* ./compiling//table_computation.nit:240 */
1138 if (UNTAG_Bool(REGB1)) {
1139 REGB2 = REGB0;
1140 }
1141 }
1142 /* ./../lib/standard//collection//array.nit:239 */
1143 REGB0 = TAG_Int(1);
1144 /* ./../lib/standard//kernel.nit:218 */
1145 REGB0 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
1146 /* ./../lib/standard//collection//array.nit:239 */
1147 REGB3 = REGB0;
1148 } else {
1149 /* ./../lib/standard//collection//array.nit:237 */
1150 goto label7;
1151 }
1152 }
1153 label7: while(0);
1154 /* ./compiling//table_computation.nit:243 */
1155 fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1156 REGB3 = TAG_Int(1);
1157 /* ./../lib/standard//kernel.nit:218 */
1158 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1159 /* ./compiling//table_computation.nit:243 */
1160 CALL_compiling___table_computation___TableInformation___max_class_table_length__eq(fra.me.REG[1])(fra.me.REG[1], REGB3);
1161 /* ./../lib/standard//collection//array.nit:231 */
1162 fra.me.REG[1] = fra.me.REG[4];
1163 /* ./../lib/standard//collection//array.nit:234 */
1164 REGB3 = TAG_Int(0);
1165 /* ./../lib/standard//collection//array.nit:235 */
1166 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1167 if (UNTAG_Bool(REGB0)) {
1168 } else {
1169 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1170 }
1171 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1172 /* ./../lib/standard//collection//array.nit:236 */
1173 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1174 /* ./../lib/standard//collection//array.nit:237 */
1175 while(1) {
1176 /* ./../lib/standard//collection//array.nit:23 */
1177 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1178 if (UNTAG_Bool(REGB0)) {
1179 } else {
1180 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1181 }
1182 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1183 /* ./../lib/standard//kernel.nit:215 */
1184 REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
1185 /* ./../lib/standard//collection//array.nit:237 */
1186 if (UNTAG_Bool(REGB0)) {
1187 /* ./../lib/standard//collection//array.nit:238 */
1188 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1189 if (UNTAG_Bool(REGB0)) {
1190 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
1191 }
1192 /* ./../lib/standard//collection//array.nit:654 */
1193 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
1194 /* ./compiling//table_computation.nit:247 */
1195 fra.me.REG[9] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1196 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
1197 fra.me.REG[10] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1198 /* ./compiling//table_computation.nit:248 */
1199 fra.me.REG[9] = CALL_compiling___table_computation___CompiledClass___class_layout(fra.me.REG[10])(fra.me.REG[10]);
1200 /* ./compiling//table_computation.nit:249 */
1201 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___instance_layout(fra.me.REG[10])(fra.me.REG[10]);
1202 /* ./compiling//table_computation.nit:250 */
1203 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalClass___crhe(fra.me.REG[8])(fra.me.REG[8]);
1204 fra.me.REG[11] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[11])(fra.me.REG[11]);
1205 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[11])(fra.me.REG[11], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___do_global_table_analysis_8));
1206 /* ./compiling//table_computation.nit:257 */
1207 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
1208 if (UNTAG_Bool(REGB0)) {
1209 /* ./compiling//table_computation.nit:258 */
1210 REGB0 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[9])(fra.me.REG[9]);
1211 REGB1 = TAG_Int(0);
1212 /* ./../lib/standard//kernel.nit:217 */
1213 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1214 /* ./compiling//table_computation.nit:258 */
1215 if (UNTAG_Bool(REGB1)) {
1216 /* ./compiling//table_computation.nit:259 */
1217 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
1218 }
1219 /* ./compiling//table_computation.nit:261 */
1220 REGB1 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[10])(fra.me.REG[10]);
1221 REGB0 = TAG_Int(0);
1222 /* ./../lib/standard//kernel.nit:217 */
1223 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
1224 /* ./compiling//table_computation.nit:261 */
1225 if (UNTAG_Bool(REGB0)) {
1226 /* ./compiling//table_computation.nit:262 */
1227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[10]);
1228 }
1229 }
1230 /* ./../lib/standard//collection//array.nit:239 */
1231 REGB0 = TAG_Int(1);
1232 /* ./../lib/standard//kernel.nit:218 */
1233 REGB0 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
1234 /* ./../lib/standard//collection//array.nit:239 */
1235 REGB3 = REGB0;
1236 } else {
1237 /* ./../lib/standard//collection//array.nit:237 */
1238 goto label9;
1239 }
1240 }
1241 label9: while(0);
1242 /* ./compiling//table_computation.nit:268 */
1243 REGB3 = TAG_Int(1);
1244 /* ./../lib/standard//kernel.nit:218 */
1245 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1246 /* ./compiling//table_computation.nit:268 */
1247 CALL_compiling___table_computation___Program___colorize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[6], REGB3);
1248 /* ./compiling//table_computation.nit:269 */
1249 REGB3 = TAG_Int(0);
1250 CALL_compiling___table_computation___Program___colorize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[6], REGB3);
1251 /* ./compiling//table_computation.nit:272 */
1252 fra.me.REG[6] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1253 REGB3 = TAG_Int(0);
1254 CALL_compiling___table_computation___TableInformation___max_class_table_length__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
1255 /* ./../lib/standard//collection//array.nit:234 */
1256 REGB3 = TAG_Int(0);
1257 /* ./../lib/standard//collection//array.nit:235 */
1258 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1259 if (UNTAG_Bool(REGB0)) {
1260 } else {
1261 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1262 }
1263 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1264 /* ./../lib/standard//collection//array.nit:236 */
1265 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
1266 /* ./../lib/standard//collection//array.nit:237 */
1267 while(1) {
1268 /* ./../lib/standard//collection//array.nit:23 */
1269 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1270 if (UNTAG_Bool(REGB0)) {
1271 } else {
1272 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1273 }
1274 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1275 /* ./../lib/standard//kernel.nit:215 */
1276 REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
1277 /* ./../lib/standard//collection//array.nit:237 */
1278 if (UNTAG_Bool(REGB0)) {
1279 /* ./../lib/standard//collection//array.nit:238 */
1280 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1281 if (UNTAG_Bool(REGB0)) {
1282 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
1283 }
1284 /* ./../lib/standard//collection//array.nit:654 */
1285 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB3)];
1286 /* ./compiling//table_computation.nit:274 */
1287 fra.me.REG[1] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1288 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
1289 fra.me.REG[10] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[10]);
1290 /* ./compiling//table_computation.nit:275 */
1291 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
1292 if (UNTAG_Bool(REGB0)) {
1293 /* ./compiling//table_computation.nit:277 */
1294 fra.me.REG[1] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1295 CALL_compiling___table_computation___Program___build_tables_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[7], fra.me.REG[2]);
1296 /* ./compiling//table_computation.nit:278 */
1297 fra.me.REG[1] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[10])(fra.me.REG[10]);
1298 CALL_compiling___table_computation___Program___build_tables_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[7], fra.me.REG[3]);
1299 } else {
1300 /* ./compiling//table_computation.nit:281 */
1301 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[7])(fra.me.REG[7]);
1302 fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[1])(fra.me.REG[1]);
1303 fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
1304 /* ./compiling//table_computation.nit:282 */
1305 fra.me.REG[9] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
1306 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
1307 fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[1]);
1308 /* ./compiling//table_computation.nit:283 */
1309 fra.me.REG[9] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1310 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[9])(fra.me.REG[9]);
1311 /* ./compiling//table_computation.nit:284 */
1312 fra.me.REG[9] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1313 fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[1])(fra.me.REG[1]);
1314 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
1315 /* ./compiling//table_computation.nit:285 */
1316 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
1317 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]);
1318 /* ./compiling//table_computation.nit:286 */
1319 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
1320 if (UNTAG_Bool(REGB0)) {
1321 } else {
1322 nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 286);
1323 }
1324 /* ./compiling//table_computation.nit:287 */
1325 fra.me.REG[7] = CALL_compiling___table_computation___MMConcreteClass___class_color_pos(fra.me.REG[7])(fra.me.REG[7]);
1326 /* ./compiling//table_computation.nit:288 */
1327 fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1328 fra.me.REG[9] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1329 REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[7]);
1330 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[8])(fra.me.REG[8], REGB0, fra.me.REG[7]);
1331 /* ./compiling//table_computation.nit:289 */
1332 while(1) {
1333 fra.me.REG[7] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1334 /* ./../lib/standard//collection//array.nit:23 */
1335 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1336 if (UNTAG_Bool(REGB0)) {
1337 } else {
1338 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1339 }
1340 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1341 /* ./../lib/standard//kernel.nit:214 */
1342 REGB0 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB2));
1343 /* ./compiling//table_computation.nit:289 */
1344 if (UNTAG_Bool(REGB0)) {
1345 /* ./compiling//table_computation.nit:290 */
1346 fra.me.REG[7] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1347 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
1348 } else {
1349 /* ./compiling//table_computation.nit:289 */
1350 goto label10;
1351 }
1352 }
1353 label10: while(0);
1354 /* ./compiling//table_computation.nit:292 */
1355 fra.me.REG[7] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
1356 fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___class_layout(fra.me.REG[10])(fra.me.REG[10]);
1357 CALL_compiling___table_computation___Program___append_to_table(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[8]);
1358 /* ./compiling//table_computation.nit:293 */
1359 fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[10])(fra.me.REG[10]);
1360 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[8])(fra.me.REG[8]);
1361 if (UNTAG_Bool(REGB0)) {
1362 } else {
1363 nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 293);
1364 }
1365 /* ./compiling//table_computation.nit:294 */
1366 fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[10])(fra.me.REG[10]);
1367 fra.me.REG[1] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[1])(fra.me.REG[1]);
1368 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[1]);
1369 /* ./compiling//table_computation.nit:295 */
1370 fra.me.REG[1] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[10])(fra.me.REG[10]);
1371 fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___instance_layout(fra.me.REG[10])(fra.me.REG[10]);
1372 CALL_compiling___table_computation___Program___append_to_table(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[10]);
1373 }
1374 /* ./../lib/standard//collection//array.nit:239 */
1375 REGB0 = TAG_Int(1);
1376 /* ./../lib/standard//kernel.nit:218 */
1377 REGB0 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
1378 /* ./../lib/standard//collection//array.nit:239 */
1379 REGB3 = REGB0;
1380 } else {
1381 /* ./../lib/standard//collection//array.nit:237 */
1382 goto label11;
1383 }
1384 }
1385 label11: while(0);
1386 stack_frame_head = fra.me.prev;
1387 return;
1388 }
1389 void OC_compiling___table_computation___Program___do_global_table_analysis_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1390 struct {struct stack_frame_t me;} fra;
1391 fun_t CREG[1];
1392 val_t tmp;
1393 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1394 fra.me.file = LOCATE_compiling___table_computation;
1395 fra.me.line = 0;
1396 fra.me.meth = LOCATE_compiling___table_computation___Program___do_global_table_analysis;
1397 fra.me.has_broke = 0;
1398 fra.me.REG_size = 1;
1399 fra.me.REG[0] = NIT_NULL;
1400 fra.me.closure_ctx = closctx_param;
1401 fra.me.closure_funs = CREG;
1402 fra.me.REG[0] = p0;
1403 CREG[0] = clos_fun0;
1404 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
1405 stack_frame_head = fra.me.prev;
1406 return;
1407 }
1408 val_t OC_compiling___table_computation___Program___do_global_table_analysis_2(struct stack_frame_t *closctx, val_t p0, val_t p1){
1409 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1410 val_t REGB0;
1411 val_t tmp;
1412 /* ./compiling//table_computation.nit:175 */
1413 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1414 fra.me.file = LOCATE_compiling___table_computation;
1415 fra.me.line = 175;
1416 fra.me.meth = LOCATE_compiling___table_computation___Program___do_global_table_analysis;
1417 fra.me.has_broke = 0;
1418 fra.me.REG_size = 2;
1419 fra.me.REG[0] = NIT_NULL;
1420 fra.me.REG[1] = NIT_NULL;
1421 fra.me.REG[0] = p0;
1422 fra.me.REG[1] = p1;
1423 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___total_order_compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1424 goto label3;
1425 label3: while(0);
1426 stack_frame_head = fra.me.prev;
1427 return REGB0;
1428 }
1429 void OC_compiling___table_computation___Program___do_global_table_analysis_8(struct stack_frame_t *closctx, val_t p0){
1430 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1431 val_t REGB0;
1432 val_t tmp;
1433 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1434 fra.me.file = LOCATE_compiling___table_computation;
1435 fra.me.line = 0;
1436 fra.me.meth = LOCATE_compiling___table_computation___Program___do_global_table_analysis;
1437 fra.me.has_broke = 0;
1438 fra.me.REG_size = 2;
1439 fra.me.REG[0] = NIT_NULL;
1440 fra.me.REG[1] = NIT_NULL;
1441 fra.me.REG[0] = p0;
1442 /* ./compiling//table_computation.nit:251 */
1443 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
1444 if (UNTAG_Bool(REGB0)) {
1445 /* ./compiling//table_computation.nit:252 */
1446 fra.me.REG[1] = CALL_compiling___table_computation___MMConcreteClass___class_layout(fra.me.REG[0])(fra.me.REG[0]);
1447 CALL_compiling___table_computation___TableEltComposite___add(closctx->REG[9])(closctx->REG[9], fra.me.REG[0], fra.me.REG[1]);
1448 /* ./compiling//table_computation.nit:253 */
1449 fra.me.REG[1] = CALL_compiling___table_computation___MMConcreteClass___instance_layout(fra.me.REG[0])(fra.me.REG[0]);
1450 CALL_compiling___table_computation___TableEltComposite___add(closctx->REG[10])(closctx->REG[10], fra.me.REG[0], fra.me.REG[1]);
1451 }
1452 stack_frame_head = fra.me.prev;
1453 return;
1454 }
1455 void compiling___table_computation___Program___colorize(val_t p0, val_t p1, val_t p2, val_t p3){
1456 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
1457 val_t REGB0;
1458 val_t REGB1;
1459 val_t REGB2;
1460 val_t REGB3;
1461 val_t REGB4;
1462 val_t REGB5;
1463 val_t REGB6;
1464 val_t REGB7;
1465 val_t REGB8;
1466 val_t tmp;
1467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1468 fra.me.file = LOCATE_compiling___table_computation;
1469 fra.me.line = 300;
1470 fra.me.meth = LOCATE_compiling___table_computation___Program___colorize;
1471 fra.me.has_broke = 0;
1472 fra.me.REG_size = 11;
1473 fra.me.REG[0] = NIT_NULL;
1474 fra.me.REG[1] = NIT_NULL;
1475 fra.me.REG[2] = NIT_NULL;
1476 fra.me.REG[3] = NIT_NULL;
1477 fra.me.REG[4] = NIT_NULL;
1478 fra.me.REG[5] = NIT_NULL;
1479 fra.me.REG[6] = NIT_NULL;
1480 fra.me.REG[7] = NIT_NULL;
1481 fra.me.REG[8] = NIT_NULL;
1482 fra.me.REG[9] = NIT_NULL;
1483 fra.me.REG[10] = NIT_NULL;
1484 fra.me.REG[0] = p0;
1485 fra.me.REG[1] = p1;
1486 fra.me.REG[2] = p2;
1487 REGB0 = p3;
1488 /* ./compiling//table_computation.nit:303 */
1489 fra.me.REG[3] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
1490 /* ./compiling//table_computation.nit:304 */
1491 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
1492 /* ./../lib/standard//collection//array.nit:234 */
1493 REGB1 = TAG_Int(0);
1494 /* ./../lib/standard//collection//array.nit:235 */
1495 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1496 if (UNTAG_Bool(REGB2)) {
1497 } else {
1498 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1499 }
1500 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1501 /* ./../lib/standard//collection//array.nit:236 */
1502 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1503 /* ./../lib/standard//collection//array.nit:237 */
1504 while(1) {
1505 /* ./../lib/standard//collection//array.nit:23 */
1506 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1507 if (UNTAG_Bool(REGB2)) {
1508 } else {
1509 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1510 }
1511 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1512 /* ./../lib/standard//kernel.nit:215 */
1513 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1514 /* ./../lib/standard//collection//array.nit:237 */
1515 if (UNTAG_Bool(REGB2)) {
1516 /* ./../lib/standard//collection//array.nit:238 */
1517 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1518 if (UNTAG_Bool(REGB2)) {
1519 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
1520 }
1521 /* ./../lib/standard//collection//array.nit:654 */
1522 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
1523 /* ./compiling//table_computation.nit:306 */
1524 REGB2 = TAG_Int(1);
1525 /* ./../lib/standard//kernel.nit:219 */
1526 REGB2 = TAG_Int(-UNTAG_Int(REGB2));
1527 /* ./compiling//table_computation.nit:307 */
1528 REGB3 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[6])(fra.me.REG[6]);
1529 /* ./compiling//table_computation.nit:308 */
1530 fra.me.REG[7] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1531 REGB4 = CALL_compiling___table_computation___ColorContext___has_color(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1532 if (UNTAG_Bool(REGB4)) {
1533 /* ./compiling//table_computation.nit:309 */
1534 fra.me.REG[7] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1535 REGB4 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1536 REGB2 = REGB4;
1537 } else {
1538 /* ./compiling//table_computation.nit:311 */
1539 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[4])(fra.me.REG[4]);
1540 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___colorize_1));
1541 /* ./compiling//table_computation.nit:317 */
1542 REGB4 = REGB0;
1543 /* ./compiling//table_computation.nit:318 */
1544 while(1) {
1545 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB2));
1546 if (UNTAG_Bool(REGB5)) {
1547 } else {
1548 /* ./../lib/standard//kernel.nit:210 */
1549 REGB6 = TAG_Bool((REGB4)==(REGB2));
1550 /* ./compiling//table_computation.nit:318 */
1551 REGB5 = REGB6;
1552 }
1553 REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
1554 if (UNTAG_Bool(REGB5)) {
1555 /* ./compiling//table_computation.nit:319 */
1556 REGB2 = REGB4;
1557 /* ./../lib/standard//collection//array.nit:231 */
1558 fra.me.REG[7] = fra.me.REG[4];
1559 /* ./../lib/standard//collection//array.nit:234 */
1560 REGB5 = TAG_Int(0);
1561 /* ./../lib/standard//collection//array.nit:235 */
1562 REGB6 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1563 if (UNTAG_Bool(REGB6)) {
1564 } else {
1565 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1566 }
1567 REGB6 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1568 /* ./../lib/standard//collection//array.nit:236 */
1569 fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
1570 /* ./../lib/standard//collection//array.nit:237 */
1571 while(1) {
1572 /* ./../lib/standard//collection//array.nit:23 */
1573 REGB6 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1574 if (UNTAG_Bool(REGB6)) {
1575 } else {
1576 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1577 }
1578 REGB6 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1579 /* ./../lib/standard//kernel.nit:215 */
1580 REGB6 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB6));
1581 /* ./../lib/standard//collection//array.nit:237 */
1582 if (UNTAG_Bool(REGB6)) {
1583 /* ./../lib/standard//collection//array.nit:238 */
1584 REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1585 if (UNTAG_Bool(REGB6)) {
1586 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
1587 }
1588 /* ./../lib/standard//collection//array.nit:654 */
1589 fra.me.REG[9] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB5)];
1590 /* ./compiling//table_computation.nit:321 */
1591 REGB6 = TAG_Int(0);
1592 /* ./compiling//table_computation.nit:322 */
1593 while(1) {
1594 /* ./../lib/standard//kernel.nit:215 */
1595 REGB7 = TAG_Bool(UNTAG_Int(REGB6)<UNTAG_Int(REGB3));
1596 /* ./compiling//table_computation.nit:322 */
1597 if (UNTAG_Bool(REGB7)) {
1598 /* ./../lib/standard//kernel.nit:218 */
1599 REGB7 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB6));
1600 /* ./compiling//table_computation.nit:323 */
1601 REGB7 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], REGB7);
1602 if (UNTAG_Bool(REGB7)) {
1603 /* ./../lib/standard//kernel.nit:218 */
1604 REGB7 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB6));
1605 /* ./compiling//table_computation.nit:323 */
1606 fra.me.REG[10] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB7);
1607 REGB7 = CALL_compiling___table_computation___Program___free_color(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[9]);
1608 REGB7 = TAG_Bool(!UNTAG_Bool(REGB7));
1609 } else {
1610 REGB8 = TAG_Bool(false);
1611 REGB7 = REGB8;
1612 }
1613 if (UNTAG_Bool(REGB7)) {
1614 /* ./../lib/standard//kernel.nit:218 */
1615 REGB7 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB6));
1616 /* ./compiling//table_computation.nit:324 */
1617 REGB8 = TAG_Int(1);
1618 /* ./../lib/standard//kernel.nit:218 */
1619 REGB8 = TAG_Int(UNTAG_Int(REGB7)+UNTAG_Int(REGB8));
1620 /* ./compiling//table_computation.nit:324 */
1621 REGB4 = REGB8;
1622 /* ./compiling//table_computation.nit:325 */
1623 REGB8 = TAG_Int(0);
1624 REGB6 = REGB8;
1625 } else {
1626 /* ./compiling//table_computation.nit:327 */
1627 REGB8 = TAG_Int(1);
1628 /* ./../lib/standard//kernel.nit:218 */
1629 REGB8 = TAG_Int(UNTAG_Int(REGB6)+UNTAG_Int(REGB8));
1630 /* ./compiling//table_computation.nit:327 */
1631 REGB6 = REGB8;
1632 }
1633 } else {
1634 /* ./compiling//table_computation.nit:322 */
1635 goto label2;
1636 }
1637 }
1638 label2: while(0);
1639 /* ./../lib/standard//collection//array.nit:239 */
1640 REGB6 = TAG_Int(1);
1641 /* ./../lib/standard//kernel.nit:218 */
1642 REGB6 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB6));
1643 /* ./../lib/standard//collection//array.nit:239 */
1644 REGB5 = REGB6;
1645 } else {
1646 /* ./../lib/standard//collection//array.nit:237 */
1647 goto label3;
1648 }
1649 }
1650 label3: while(0);
1651 } else {
1652 /* ./compiling//table_computation.nit:318 */
1653 goto label4;
1654 }
1655 }
1656 label4: while(0);
1657 /* ./compiling//table_computation.nit:332 */
1658 fra.me.REG[8] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1659 CALL_compiling___table_computation___ColorContext___color__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6], REGB2);
1660 }
1661 /* ./compiling//table_computation.nit:334 */
1662 REGB4 = TAG_Int(0);
1663 /* ./../lib/standard//kernel.nit:335 */
1664 while(1) {
1665 /* ./../lib/standard//kernel.nit:215 */
1666 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
1667 /* ./../lib/standard//kernel.nit:335 */
1668 if (UNTAG_Bool(REGB5)) {
1669 /* ./compiling//table_computation.nit:334 */
1670 REGB5 = REGB4;
1671 /* ./../lib/standard//kernel.nit:218 */
1672 REGB6 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
1673 /* ./compiling//table_computation.nit:335 */
1674 REGB6 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], REGB6);
1675 if (UNTAG_Bool(REGB6)) {
1676 /* ./../lib/standard//kernel.nit:218 */
1677 REGB6 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
1678 /* ./compiling//table_computation.nit:336 */
1679 fra.me.REG[8] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB6);
1680 REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1681 if (UNTAG_Bool(REGB6)) {
1682 nit_abort("Reciever is null", NULL, LOCATE_compiling___table_computation, 336);
1683 }
1684 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]);
1685 } else {
1686 /* ./../lib/standard//kernel.nit:218 */
1687 REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
1688 /* ./compiling//table_computation.nit:338 */
1689 REGB6 = TAG_Int(1);
1690 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB6);
1691 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]);
1692 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB5, fra.me.REG[8]);
1693 }
1694 /* ./../lib/standard//kernel.nit:337 */
1695 REGB5 = TAG_Int(1);
1696 /* ./../lib/standard//kernel.nit:218 */
1697 REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
1698 /* ./../lib/standard//kernel.nit:337 */
1699 REGB4 = REGB5;
1700 } else {
1701 /* ./../lib/standard//kernel.nit:335 */
1702 goto label5;
1703 }
1704 }
1705 label5: while(0);
1706 /* ./../lib/standard//collection//array.nit:239 */
1707 REGB4 = TAG_Int(1);
1708 /* ./../lib/standard//kernel.nit:218 */
1709 REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
1710 /* ./../lib/standard//collection//array.nit:239 */
1711 REGB1 = REGB4;
1712 } else {
1713 /* ./../lib/standard//collection//array.nit:237 */
1714 goto label6;
1715 }
1716 }
1717 label6: while(0);
1718 stack_frame_head = fra.me.prev;
1719 return;
1720 }
1721 void OC_compiling___table_computation___Program___colorize_1(struct stack_frame_t *closctx, val_t p0){
1722 struct {struct stack_frame_t me;} fra;
1723 val_t REGB0;
1724 val_t tmp;
1725 /* ./compiling//table_computation.nit:312 */
1726 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1727 fra.me.file = LOCATE_compiling___table_computation;
1728 fra.me.line = 0;
1729 fra.me.meth = LOCATE_compiling___table_computation___Program___colorize;
1730 fra.me.has_broke = 0;
1731 fra.me.REG_size = 1;
1732 fra.me.REG[0] = NIT_NULL;
1733 fra.me.REG[0] = p0;
1734 /* ./compiling//table_computation.nit:313 */
1735 REGB0 = CALL_compiling___table_computation___TableElt___is_related_to(closctx->REG[6])(closctx->REG[6], fra.me.REG[0]);
1736 if (UNTAG_Bool(REGB0)) {
1737 /* ./compiling//table_computation.nit:314 */
1738 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
1739 }
1740 stack_frame_head = fra.me.prev;
1741 return;
1742 }
1743 val_t compiling___table_computation___Program___free_color(val_t p0, val_t p1, val_t p2){
1744 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1745 val_t REGB0;
1746 val_t REGB1;
1747 val_t REGB2;
1748 val_t tmp;
1749 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1750 fra.me.file = LOCATE_compiling___table_computation;
1751 fra.me.line = 344;
1752 fra.me.meth = LOCATE_compiling___table_computation___Program___free_color;
1753 fra.me.has_broke = 0;
1754 fra.me.REG_size = 4;
1755 fra.me.REG[0] = NIT_NULL;
1756 fra.me.REG[1] = NIT_NULL;
1757 fra.me.REG[2] = NIT_NULL;
1758 fra.me.REG[3] = NIT_NULL;
1759 fra.me.REG[0] = p0;
1760 fra.me.REG[1] = p1;
1761 fra.me.REG[2] = p2;
1762 /* ./../lib/standard//collection//array.nit:234 */
1763 REGB0 = TAG_Int(0);
1764 /* ./../lib/standard//collection//array.nit:235 */
1765 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1766 if (UNTAG_Bool(REGB1)) {
1767 } else {
1768 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1769 }
1770 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1771 /* ./../lib/standard//collection//array.nit:236 */
1772 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1773 /* ./../lib/standard//collection//array.nit:237 */
1774 while(1) {
1775 /* ./../lib/standard//collection//array.nit:23 */
1776 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1777 if (UNTAG_Bool(REGB1)) {
1778 } else {
1779 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1780 }
1781 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1782 /* ./../lib/standard//kernel.nit:215 */
1783 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1784 /* ./../lib/standard//collection//array.nit:237 */
1785 if (UNTAG_Bool(REGB1)) {
1786 /* ./../lib/standard//collection//array.nit:238 */
1787 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1788 if (UNTAG_Bool(REGB1)) {
1789 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
1790 }
1791 /* ./../lib/standard//collection//array.nit:654 */
1792 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
1793 /* ./compiling//table_computation.nit:347 */
1794 REGB1 = CALL_compiling___table_computation___TableElt___is_related_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
1795 if (UNTAG_Bool(REGB1)) {
1796 /* ./compiling//table_computation.nit:348 */
1797 REGB1 = TAG_Bool(false);
1798 goto label1;
1799 }
1800 /* ./../lib/standard//collection//array.nit:239 */
1801 REGB2 = TAG_Int(1);
1802 /* ./../lib/standard//kernel.nit:218 */
1803 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1804 /* ./../lib/standard//collection//array.nit:239 */
1805 REGB0 = REGB2;
1806 } else {
1807 /* ./../lib/standard//collection//array.nit:237 */
1808 goto label2;
1809 }
1810 }
1811 label2: while(0);
1812 /* ./compiling//table_computation.nit:351 */
1813 REGB0 = TAG_Bool(true);
1814 REGB1 = REGB0;
1815 goto label1;
1816 label1: while(0);
1817 stack_frame_head = fra.me.prev;
1818 return REGB1;
1819 }
1820 void compiling___table_computation___Program___append_to_table(val_t p0, val_t p1, val_t p2){
1821 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1822 val_t REGB0;
1823 val_t REGB1;
1824 val_t REGB2;
1825 val_t tmp;
1826 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1827 fra.me.file = LOCATE_compiling___table_computation;
1828 fra.me.line = 354;
1829 fra.me.meth = LOCATE_compiling___table_computation___Program___append_to_table;
1830 fra.me.has_broke = 0;
1831 fra.me.REG_size = 5;
1832 fra.me.REG[0] = NIT_NULL;
1833 fra.me.REG[1] = NIT_NULL;
1834 fra.me.REG[2] = NIT_NULL;
1835 fra.me.REG[3] = NIT_NULL;
1836 fra.me.REG[4] = NIT_NULL;
1837 fra.me.REG[0] = p0;
1838 fra.me.REG[1] = p1;
1839 fra.me.REG[2] = p2;
1840 /* ./compiling//table_computation.nit:356 */
1841 REGB0 = TAG_Int(0);
1842 REGB1 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[2])(fra.me.REG[2]);
1843 /* ./../lib/standard//kernel.nit:335 */
1844 while(1) {
1845 /* ./../lib/standard//kernel.nit:215 */
1846 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1847 /* ./../lib/standard//kernel.nit:335 */
1848 if (UNTAG_Bool(REGB2)) {
1849 /* ./compiling//table_computation.nit:356 */
1850 REGB2 = REGB0;
1851 /* ./compiling//table_computation.nit:357 */
1852 fra.me.REG[3] = CALL_compiling___table_computation___TableElt___item(fra.me.REG[2])(fra.me.REG[2], REGB2);
1853 /* ./compiling//table_computation.nit:358 */
1854 fra.me.REG[4] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1855 /* ./../lib/standard//collection//array.nit:23 */
1856 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1857 if (UNTAG_Bool(REGB2)) {
1858 } else {
1859 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1860 }
1861 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1862 /* ./compiling//table_computation.nit:358 */
1863 CALL_compiling___table_computation___ColorContext___color__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], REGB2);
1864 /* ./compiling//table_computation.nit:359 */
1865 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1866 /* ./../lib/standard//kernel.nit:337 */
1867 REGB2 = TAG_Int(1);
1868 /* ./../lib/standard//kernel.nit:218 */
1869 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1870 /* ./../lib/standard//kernel.nit:337 */
1871 REGB0 = REGB2;
1872 } else {
1873 /* ./../lib/standard//kernel.nit:335 */
1874 goto label1;
1875 }
1876 }
1877 label1: while(0);
1878 stack_frame_head = fra.me.prev;
1879 return;
1880 }
1881 void compiling___table_computation___Program___build_tables_in(val_t p0, val_t p1, val_t p2, val_t p3){
1882 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
1883 val_t REGB0;
1884 val_t REGB1;
1885 val_t REGB2;
1886 val_t REGB3;
1887 val_t REGB4;
1888 val_t tmp;
1889 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1890 fra.me.file = LOCATE_compiling___table_computation;
1891 fra.me.line = 363;
1892 fra.me.meth = LOCATE_compiling___table_computation___Program___build_tables_in;
1893 fra.me.has_broke = 0;
1894 fra.me.REG_size = 8;
1895 fra.me.REG[0] = NIT_NULL;
1896 fra.me.REG[1] = NIT_NULL;
1897 fra.me.REG[2] = NIT_NULL;
1898 fra.me.REG[3] = NIT_NULL;
1899 fra.me.REG[4] = NIT_NULL;
1900 fra.me.REG[5] = NIT_NULL;
1901 fra.me.REG[6] = NIT_NULL;
1902 fra.me.REG[7] = NIT_NULL;
1903 fra.me.REG[0] = p0;
1904 fra.me.REG[1] = p1;
1905 fra.me.REG[2] = p2;
1906 fra.me.REG[3] = p3;
1907 /* ./compiling//table_computation.nit:365 */
1908 fra.me.REG[4] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
1909 /* ./compiling//table_computation.nit:366 */
1910 REGB0 = TAG_Int(0);
1911 /* ./../lib/standard//collection//array.nit:234 */
1912 REGB1 = TAG_Int(0);
1913 /* ./../lib/standard//collection//array.nit:235 */
1914 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1915 if (UNTAG_Bool(REGB2)) {
1916 } else {
1917 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1918 }
1919 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1920 /* ./../lib/standard//collection//array.nit:236 */
1921 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1922 /* ./../lib/standard//collection//array.nit:237 */
1923 while(1) {
1924 /* ./../lib/standard//collection//array.nit:23 */
1925 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1926 if (UNTAG_Bool(REGB2)) {
1927 } else {
1928 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1929 }
1930 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1931 /* ./../lib/standard//kernel.nit:215 */
1932 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1933 /* ./../lib/standard//collection//array.nit:237 */
1934 if (UNTAG_Bool(REGB2)) {
1935 /* ./../lib/standard//collection//array.nit:238 */
1936 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1937 if (UNTAG_Bool(REGB2)) {
1938 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
1939 }
1940 /* ./../lib/standard//collection//array.nit:654 */
1941 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
1942 /* ./compiling//table_computation.nit:368 */
1943 REGB2 = CALL_compiling___table_computation___TableElt___is_related_to(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
1944 if (UNTAG_Bool(REGB2)) {
1945 /* ./compiling//table_computation.nit:369 */
1946 fra.me.REG[7] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
1947 REGB2 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1948 /* ./compiling//table_computation.nit:370 */
1949 REGB3 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[6])(fra.me.REG[6]);
1950 /* ./../lib/standard//kernel.nit:218 */
1951 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1952 /* ./compiling//table_computation.nit:371 */
1953 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], REGB2, fra.me.REG[6]);
1954 /* ./../lib/standard//kernel.nit:215 */
1955 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
1956 /* ./compiling//table_computation.nit:372 */
1957 if (UNTAG_Bool(REGB2)) {
1958 /* ./compiling//table_computation.nit:373 */
1959 REGB0 = REGB3;
1960 }
1961 }
1962 /* ./../lib/standard//collection//array.nit:239 */
1963 REGB3 = TAG_Int(1);
1964 /* ./../lib/standard//kernel.nit:218 */
1965 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
1966 /* ./../lib/standard//collection//array.nit:239 */
1967 REGB1 = REGB3;
1968 } else {
1969 /* ./../lib/standard//collection//array.nit:237 */
1970 goto label1;
1971 }
1972 }
1973 label1: while(0);
1974 /* ./compiling//table_computation.nit:377 */
1975 REGB1 = TAG_Int(0);
1976 /* ./compiling//table_computation.nit:378 */
1977 while(1) {
1978 /* ./../lib/standard//kernel.nit:215 */
1979 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
1980 /* ./compiling//table_computation.nit:378 */
1981 if (UNTAG_Bool(REGB3)) {
1982 /* ./compiling//table_computation.nit:379 */
1983 REGB3 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], REGB1);
1984 if (UNTAG_Bool(REGB3)) {
1985 /* ./compiling//table_computation.nit:380 */
1986 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], REGB1);
1987 /* ./compiling//table_computation.nit:381 */
1988 REGB3 = TAG_Int(0);
1989 REGB2 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[0])(fra.me.REG[0]);
1990 /* ./../lib/standard//kernel.nit:335 */
1991 while(1) {
1992 /* ./../lib/standard//kernel.nit:215 */
1993 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
1994 /* ./../lib/standard//kernel.nit:335 */
1995 if (UNTAG_Bool(REGB4)) {
1996 /* ./compiling//table_computation.nit:381 */
1997 REGB4 = REGB3;
1998 /* ./compiling//table_computation.nit:382 */
1999 fra.me.REG[2] = CALL_compiling___table_computation___TableElt___item(fra.me.REG[0])(fra.me.REG[0], REGB4);
2000 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB1, fra.me.REG[2]);
2001 /* ./compiling//table_computation.nit:383 */
2002 REGB4 = TAG_Int(1);
2003 /* ./../lib/standard//kernel.nit:218 */
2004 REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
2005 /* ./compiling//table_computation.nit:383 */
2006 REGB1 = REGB4;
2007 /* ./../lib/standard//kernel.nit:337 */
2008 REGB4 = TAG_Int(1);
2009 /* ./../lib/standard//kernel.nit:218 */
2010 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
2011 /* ./../lib/standard//kernel.nit:337 */
2012 REGB3 = REGB4;
2013 } else {
2014 /* ./../lib/standard//kernel.nit:335 */
2015 goto label2;
2016 }
2017 }
2018 label2: while(0);
2019 } else {
2020 /* ./compiling//table_computation.nit:386 */
2021 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB1, NIT_NULL);
2022 /* ./compiling//table_computation.nit:387 */
2023 REGB3 = TAG_Int(1);
2024 /* ./../lib/standard//kernel.nit:218 */
2025 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
2026 /* ./compiling//table_computation.nit:387 */
2027 REGB1 = REGB3;
2028 }
2029 } else {
2030 /* ./compiling//table_computation.nit:378 */
2031 goto label3;
2032 }
2033 }
2034 label3: while(0);
2035 stack_frame_head = fra.me.prev;
2036 return;
2037 }
2038 val_t compiling___table_computation___MMModule___local_table(val_t p0){
2039 struct {struct stack_frame_t me;} fra;
2040 val_t REGB0;
2041 val_t tmp;
2042 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2043 fra.me.file = LOCATE_compiling___table_computation;
2044 fra.me.line = 394;
2045 fra.me.meth = LOCATE_compiling___table_computation___MMModule___local_table;
2046 fra.me.has_broke = 0;
2047 fra.me.REG_size = 1;
2048 fra.me.REG[0] = NIT_NULL;
2049 fra.me.REG[0] = p0;
2050 /* ./compiling//table_computation.nit:394 */
2051 REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMModule____local_table(fra.me.REG[0])!=NIT_NULL);
2052 if (UNTAG_Bool(REGB0)) {
2053 } else {
2054 nit_abort("Uninitialized attribute %s", "_local_table", LOCATE_compiling___table_computation, 394);
2055 }
2056 fra.me.REG[0] = ATTR_compiling___table_computation___MMModule____local_table(fra.me.REG[0]);
2057 stack_frame_head = fra.me.prev;
2058 return fra.me.REG[0];
2059 }
2060 void compiling___table_computation___MMModule___local_analysis(val_t p0){
2061 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2062 val_t tmp;
2063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2064 fra.me.file = LOCATE_compiling___table_computation;
2065 fra.me.line = 397;
2066 fra.me.meth = LOCATE_compiling___table_computation___MMModule___local_analysis;
2067 fra.me.has_broke = 0;
2068 fra.me.REG_size = 2;
2069 fra.me.REG[0] = NIT_NULL;
2070 fra.me.REG[1] = NIT_NULL;
2071 fra.me.REG[0] = p0;
2072 /* ./compiling//table_computation.nit:400 */
2073 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
2074 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_compiling___table_computation___MMModule___local_analysis_1));
2075 stack_frame_head = fra.me.prev;
2076 return;
2077 }
2078 void OC_compiling___table_computation___MMModule___local_analysis_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2079 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2080 val_t REGB0;
2081 fun_t CREG[1];
2082 val_t tmp;
2083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2084 fra.me.file = LOCATE_compiling___table_computation;
2085 fra.me.line = 0;
2086 fra.me.meth = LOCATE_compiling___table_computation___MMModule___local_analysis;
2087 fra.me.has_broke = 0;
2088 fra.me.REG_size = 2;
2089 fra.me.REG[0] = NIT_NULL;
2090 fra.me.REG[1] = NIT_NULL;
2091 fra.me.closure_ctx = closctx_param;
2092 fra.me.closure_funs = CREG;
2093 fra.me.REG[0] = p0;
2094 CREG[0] = clos_fun0;
2095 /* ./compiling//table_computation.nit:401 */
2096 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
2097 if (UNTAG_Bool(REGB0)) {
2098 /* ./compiling//table_computation.nit:402 */
2099 REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMModule____local_table(closctx->REG[0])!=NIT_NULL);
2100 if (UNTAG_Bool(REGB0)) {
2101 } else {
2102 nit_abort("Uninitialized attribute %s", "_local_table", LOCATE_compiling___table_computation, 402);
2103 }
2104 fra.me.REG[1] = ATTR_compiling___table_computation___MMModule____local_table(closctx->REG[0]);
2105 CALL_compiling___table_computation___MMConcreteClass___build_layout_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2106 }
2107 stack_frame_head = fra.me.prev;
2108 return;
2109 }
2110 void compiling___table_computation___AbsTableElt___init(val_t p0, int* init_table){
2111 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___AbsTableElt].i;
2112 struct {struct stack_frame_t me;} fra;
2113 val_t tmp;
2114 if (init_table[itpos2]) return;
2115 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2116 fra.me.file = LOCATE_compiling___table_computation;
2117 fra.me.line = 0;
2118 fra.me.meth = LOCATE_compiling___table_computation___AbsTableElt___init;
2119 fra.me.has_broke = 0;
2120 fra.me.REG_size = 0;
2121 stack_frame_head = fra.me.prev;
2122 init_table[itpos2] = 1;
2123 return;
2124 }
2125 val_t compiling___table_computation___TableElt___is_related_to(val_t p0, val_t p1){
2126 struct {struct stack_frame_t me;} fra;
2127 val_t tmp;
2128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2129 fra.me.file = LOCATE_compiling___table_computation;
2130 fra.me.line = 418;
2131 fra.me.meth = LOCATE_compiling___table_computation___TableElt___is_related_to;
2132 fra.me.has_broke = 0;
2133 fra.me.REG_size = 0;
2134 /* ./compiling//table_computation.nit:418 */
2135 nit_abort("Deferred method called", NULL, LOCATE_compiling___table_computation, 418);
2136 stack_frame_head = fra.me.prev;
2137 return NIT_NULL;
2138 }
2139 val_t compiling___table_computation___TableElt___length(val_t p0){
2140 struct {struct stack_frame_t me;} fra;
2141 val_t REGB0;
2142 val_t tmp;
2143 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2144 fra.me.file = LOCATE_compiling___table_computation;
2145 fra.me.line = 421;
2146 fra.me.meth = LOCATE_compiling___table_computation___TableElt___length;
2147 fra.me.has_broke = 0;
2148 fra.me.REG_size = 1;
2149 fra.me.REG[0] = NIT_NULL;
2150 fra.me.REG[0] = p0;
2151 /* ./compiling//table_computation.nit:422 */
2152 REGB0 = TAG_Int(1);
2153 goto label1;
2154 label1: while(0);
2155 stack_frame_head = fra.me.prev;
2156 return REGB0;
2157 }
2158 val_t compiling___table_computation___TableElt___item(val_t p0, val_t p1){
2159 struct {struct stack_frame_t me;} fra;
2160 val_t REGB0;
2161 val_t tmp;
2162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2163 fra.me.file = LOCATE_compiling___table_computation;
2164 fra.me.line = 424;
2165 fra.me.meth = LOCATE_compiling___table_computation___TableElt___item;
2166 fra.me.has_broke = 0;
2167 fra.me.REG_size = 1;
2168 fra.me.REG[0] = NIT_NULL;
2169 fra.me.REG[0] = p0;
2170 REGB0 = p1;
2171 /* ./compiling//table_computation.nit:425 */
2172 goto label1;
2173 label1: while(0);
2174 stack_frame_head = fra.me.prev;
2175 return fra.me.REG[0];
2176 }
2177 val_t compiling___table_computation___ModuleTableEltGroup___elements(val_t p0){
2178 struct {struct stack_frame_t me;} fra;
2179 val_t REGB0;
2180 val_t tmp;
2181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2182 fra.me.file = LOCATE_compiling___table_computation;
2183 fra.me.line = 437;
2184 fra.me.meth = LOCATE_compiling___table_computation___ModuleTableEltGroup___elements;
2185 fra.me.has_broke = 0;
2186 fra.me.REG_size = 1;
2187 fra.me.REG[0] = NIT_NULL;
2188 fra.me.REG[0] = p0;
2189 /* ./compiling//table_computation.nit:437 */
2190 REGB0 = TAG_Bool(ATTR_compiling___table_computation___ModuleTableEltGroup____elements(fra.me.REG[0])!=NIT_NULL);
2191 if (UNTAG_Bool(REGB0)) {
2192 } else {
2193 nit_abort("Uninitialized attribute %s", "_elements", LOCATE_compiling___table_computation, 437);
2194 }
2195 fra.me.REG[0] = ATTR_compiling___table_computation___ModuleTableEltGroup____elements(fra.me.REG[0]);
2196 stack_frame_head = fra.me.prev;
2197 return fra.me.REG[0];
2198 }
2199 val_t compiling___table_computation___TableEltProp___property(val_t p0){
2200 struct {struct stack_frame_t me;} fra;
2201 val_t REGB0;
2202 val_t tmp;
2203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2204 fra.me.file = LOCATE_compiling___table_computation;
2205 fra.me.line = 443;
2206 fra.me.meth = LOCATE_compiling___table_computation___TableEltProp___property;
2207 fra.me.has_broke = 0;
2208 fra.me.REG_size = 1;
2209 fra.me.REG[0] = NIT_NULL;
2210 fra.me.REG[0] = p0;
2211 /* ./compiling//table_computation.nit:443 */
2212 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltProp____property(fra.me.REG[0])!=NIT_NULL);
2213 if (UNTAG_Bool(REGB0)) {
2214 } else {
2215 nit_abort("Uninitialized attribute %s", "_property", LOCATE_compiling___table_computation, 443);
2216 }
2217 fra.me.REG[0] = ATTR_compiling___table_computation___TableEltProp____property(fra.me.REG[0]);
2218 stack_frame_head = fra.me.prev;
2219 return fra.me.REG[0];
2220 }
2221 void compiling___table_computation___TableEltProp___init(val_t p0, val_t p1, int* init_table){
2222 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltProp].i;
2223 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2224 val_t tmp;
2225 if (init_table[itpos3]) return;
2226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2227 fra.me.file = LOCATE_compiling___table_computation;
2228 fra.me.line = 445;
2229 fra.me.meth = LOCATE_compiling___table_computation___TableEltProp___init;
2230 fra.me.has_broke = 0;
2231 fra.me.REG_size = 2;
2232 fra.me.REG[0] = NIT_NULL;
2233 fra.me.REG[1] = NIT_NULL;
2234 fra.me.REG[0] = p0;
2235 fra.me.REG[1] = p1;
2236 /* ./compiling//table_computation.nit:447 */
2237 ATTR_compiling___table_computation___TableEltProp____property(fra.me.REG[0]) = fra.me.REG[1];
2238 stack_frame_head = fra.me.prev;
2239 init_table[itpos3] = 1;
2240 return;
2241 }
2242 val_t compiling___table_computation___AbsTableEltClass___local_class(val_t p0){
2243 struct {struct stack_frame_t me;} fra;
2244 val_t REGB0;
2245 val_t tmp;
2246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2247 fra.me.file = LOCATE_compiling___table_computation;
2248 fra.me.line = 469;
2249 fra.me.meth = LOCATE_compiling___table_computation___AbsTableEltClass___local_class;
2250 fra.me.has_broke = 0;
2251 fra.me.REG_size = 1;
2252 fra.me.REG[0] = NIT_NULL;
2253 fra.me.REG[0] = p0;
2254 /* ./compiling//table_computation.nit:469 */
2255 REGB0 = TAG_Bool(ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
2256 if (UNTAG_Bool(REGB0)) {
2257 } else {
2258 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_compiling___table_computation, 469);
2259 }
2260 fra.me.REG[0] = ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0]);
2261 stack_frame_head = fra.me.prev;
2262 return fra.me.REG[0];
2263 }
2264 void compiling___table_computation___AbsTableEltClass___init(val_t p0, val_t p1, int* init_table){
2265 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___AbsTableEltClass].i;
2266 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2267 val_t tmp;
2268 if (init_table[itpos4]) return;
2269 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2270 fra.me.file = LOCATE_compiling___table_computation;
2271 fra.me.line = 472;
2272 fra.me.meth = LOCATE_compiling___table_computation___AbsTableEltClass___init;
2273 fra.me.has_broke = 0;
2274 fra.me.REG_size = 3;
2275 fra.me.REG[0] = NIT_NULL;
2276 fra.me.REG[1] = NIT_NULL;
2277 fra.me.REG[2] = NIT_NULL;
2278 fra.me.REG[0] = p0;
2279 fra.me.REG[1] = p1;
2280 /* ./compiling//table_computation.nit:472 */
2281 fra.me.REG[2] = fra.me.REG[0];
2282 CALL_compiling___table_computation___AbsTableElt___init(fra.me.REG[0])(fra.me.REG[0], init_table);
2283 /* ./compiling//table_computation.nit:474 */
2284 ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[2]) = fra.me.REG[1];
2285 stack_frame_head = fra.me.prev;
2286 init_table[itpos4] = 1;
2287 return;
2288 }
2289 val_t compiling___table_computation___TableEltClass___is_related_to(val_t p0, val_t p1){
2290 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2291 val_t REGB0;
2292 val_t tmp;
2293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2294 fra.me.file = LOCATE_compiling___table_computation;
2295 fra.me.line = 482;
2296 fra.me.meth = LOCATE_compiling___table_computation___TableEltClass___is_related_to;
2297 fra.me.has_broke = 0;
2298 fra.me.REG_size = 3;
2299 fra.me.REG[0] = NIT_NULL;
2300 fra.me.REG[1] = NIT_NULL;
2301 fra.me.REG[2] = NIT_NULL;
2302 fra.me.REG[0] = p0;
2303 fra.me.REG[1] = p1;
2304 /* ./compiling//table_computation.nit:484 */
2305 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2306 REGB0 = TAG_Bool(ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
2307 if (UNTAG_Bool(REGB0)) {
2308 } else {
2309 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_compiling___table_computation, 484);
2310 }
2311 fra.me.REG[0] = ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0]);
2312 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
2313 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2314 /* ./compiling//table_computation.nit:485 */
2315 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
2316 REGB0 = CALL_metamodel___partial_order___PartialOrderElement_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2317 goto label1;
2318 label1: while(0);
2319 stack_frame_head = fra.me.prev;
2320 return REGB0;
2321 }
2322 val_t compiling___table_computation___TableEltComposite___length(val_t p0){
2323 struct {struct stack_frame_t me;} fra;
2324 val_t REGB0;
2325 val_t tmp;
2326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2327 fra.me.file = LOCATE_compiling___table_computation;
2328 fra.me.line = 515;
2329 fra.me.meth = LOCATE_compiling___table_computation___TableEltComposite___length;
2330 fra.me.has_broke = 0;
2331 fra.me.REG_size = 1;
2332 fra.me.REG[0] = NIT_NULL;
2333 fra.me.REG[0] = p0;
2334 /* ./compiling//table_computation.nit:515 */
2335 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
2336 if (UNTAG_Bool(REGB0)) {
2337 } else {
2338 nit_abort("Uninitialized attribute %s", "_table", LOCATE_compiling___table_computation, 515);
2339 }
2340 fra.me.REG[0] = ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]);
2341 /* ./../lib/standard//collection//array.nit:23 */
2342 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2343 if (UNTAG_Bool(REGB0)) {
2344 } else {
2345 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
2346 }
2347 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
2348 /* ./compiling//table_computation.nit:515 */
2349 goto label1;
2350 label1: while(0);
2351 stack_frame_head = fra.me.prev;
2352 return REGB0;
2353 }
2354 val_t compiling___table_computation___TableEltComposite___is_related_to(val_t p0, val_t p1){
2355 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2356 val_t REGB0;
2357 val_t tmp;
2358 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2359 fra.me.file = LOCATE_compiling___table_computation;
2360 fra.me.line = 516;
2361 fra.me.meth = LOCATE_compiling___table_computation___TableEltComposite___is_related_to;
2362 fra.me.has_broke = 0;
2363 fra.me.REG_size = 2;
2364 fra.me.REG[0] = NIT_NULL;
2365 fra.me.REG[1] = NIT_NULL;
2366 fra.me.REG[0] = p0;
2367 fra.me.REG[1] = p1;
2368 /* ./compiling//table_computation.nit:516 */
2369 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
2370 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____cc(fra.me.REG[0])!=NIT_NULL);
2371 if (UNTAG_Bool(REGB0)) {
2372 } else {
2373 nit_abort("Uninitialized attribute %s", "_cc", LOCATE_compiling___table_computation, 516);
2374 }
2375 fra.me.REG[0] = ATTR_compiling___table_computation___TableEltComposite____cc(fra.me.REG[0]);
2376 fra.me.REG[0] = CALL_compiling___table_computation___CompiledClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
2377 REGB0 = CALL_metamodel___partial_order___PartialOrderElement_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2378 goto label1;
2379 label1: while(0);
2380 stack_frame_head = fra.me.prev;
2381 return REGB0;
2382 }
2383 void compiling___table_computation___TableEltComposite___add(val_t p0, val_t p1, val_t p2){
2384 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2385 val_t REGB0;
2386 val_t tmp;
2387 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2388 fra.me.file = LOCATE_compiling___table_computation;
2389 fra.me.line = 518;
2390 fra.me.meth = LOCATE_compiling___table_computation___TableEltComposite___add;
2391 fra.me.has_broke = 0;
2392 fra.me.REG_size = 5;
2393 fra.me.REG[0] = NIT_NULL;
2394 fra.me.REG[1] = NIT_NULL;
2395 fra.me.REG[2] = NIT_NULL;
2396 fra.me.REG[3] = NIT_NULL;
2397 fra.me.REG[4] = NIT_NULL;
2398 fra.me.REG[0] = p0;
2399 fra.me.REG[1] = p1;
2400 fra.me.REG[2] = p2;
2401 /* ./compiling//table_computation.nit:520 */
2402 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____offsets(fra.me.REG[0])!=NIT_NULL);
2403 if (UNTAG_Bool(REGB0)) {
2404 } else {
2405 nit_abort("Uninitialized attribute %s", "_offsets", LOCATE_compiling___table_computation, 520);
2406 }
2407 fra.me.REG[3] = ATTR_compiling___table_computation___TableEltComposite____offsets(fra.me.REG[0]);
2408 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
2409 if (UNTAG_Bool(REGB0)) {
2410 } else {
2411 nit_abort("Uninitialized attribute %s", "_table", LOCATE_compiling___table_computation, 520);
2412 }
2413 fra.me.REG[4] = ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]);
2414 /* ./../lib/standard//collection//array.nit:23 */
2415 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
2416 if (UNTAG_Bool(REGB0)) {
2417 } else {
2418 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
2419 }
2420 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
2421 /* ./compiling//table_computation.nit:520 */
2422 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], REGB0);
2423 /* ./compiling//table_computation.nit:521 */
2424 REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
2425 if (UNTAG_Bool(REGB0)) {
2426 } else {
2427 nit_abort("Uninitialized attribute %s", "_table", LOCATE_compiling___table_computation, 521);
2428 }
2429 fra.me.REG[0] = ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]);
2430 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
2431 stack_frame_head = fra.me.prev;
2432 return;
2433 }
2434 val_t compiling___table_computation___TableEltComposite___item(val_t p0, val_t p1){
2435 struct {struct stack_frame_t me;} fra;
2436 val_t REGB0;
2437 val_t REGB1;
2438 val_t REGB2;
2439 val_t tmp;
2440 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2441 fra.me.file = LOCATE_compiling___table_computation;
2442 fra.me.line = 524;
2443 fra.me.meth = LOCATE_compiling___table_computation___TableEltComposite___item;
2444 fra.me.has_broke = 0;
2445 fra.me.REG_size = 1;
2446 fra.me.REG[0] = NIT_NULL;
2447 fra.me.REG[0] = p0;
2448 REGB0 = p1;
2449 /* ./compiling//table_computation.nit:524 */
2450 REGB1 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
2451 if (UNTAG_Bool(REGB1)) {
2452 } else {
2453 nit_abort("Uninitialized attribute %s", "_table", LOCATE_compiling___table_computation, 524);
2454 }
2455 fra.me.REG[0] = ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]);
2456 /* ./../lib/standard//collection//array.nit:245 */
2457 REGB1 = TAG_Int(0);
2458 /* ./../lib/standard//kernel.nit:216 */
2459 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
2460 /* ./../lib/standard//collection//array.nit:245 */
2461 if (UNTAG_Bool(REGB1)) {
2462 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2463 if (UNTAG_Bool(REGB1)) {
2464 } else {
2465 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245);
2466 }
2467 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
2468 /* ./../lib/standard//kernel.nit:215 */
2469 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2470 } else {
2471 /* ./../lib/standard//collection//array.nit:245 */
2472 REGB2 = TAG_Bool(false);
2473 REGB1 = REGB2;
2474 }
2475 if (UNTAG_Bool(REGB1)) {
2476 } else {
2477 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 245);
2478 }
2479 /* ./../lib/standard//collection//array.nit:246 */
2480 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
2481 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2482 if (UNTAG_Bool(REGB1)) {
2483 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 246);
2484 }
2485 /* ./../lib/standard//collection//array.nit:654 */
2486 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
2487 /* ./../lib/standard//collection//array.nit:246 */
2488 goto label1;
2489 label1: while(0);
2490 /* ./compiling//table_computation.nit:524 */
2491 goto label2;
2492 label2: while(0);
2493 stack_frame_head = fra.me.prev;
2494 return fra.me.REG[0];
2495 }
2496 void compiling___table_computation___TableEltComposite___init(val_t p0, val_t p1, int* init_table){
2497 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltComposite].i;
2498 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2499 val_t tmp;
2500 if (init_table[itpos5]) return;
2501 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2502 fra.me.file = LOCATE_compiling___table_computation;
2503 fra.me.line = 526;
2504 fra.me.meth = LOCATE_compiling___table_computation___TableEltComposite___init;
2505 fra.me.has_broke = 0;
2506 fra.me.REG_size = 2;
2507 fra.me.REG[0] = NIT_NULL;
2508 fra.me.REG[1] = NIT_NULL;
2509 fra.me.REG[0] = p0;
2510 fra.me.REG[1] = p1;
2511 /* ./compiling//table_computation.nit:528 */
2512 ATTR_compiling___table_computation___TableEltComposite____cc(fra.me.REG[0]) = fra.me.REG[1];
2513 /* ./compiling//table_computation.nit:529 */
2514 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
2515 ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]) = fra.me.REG[1];
2516 /* ./compiling//table_computation.nit:530 */
2517 fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
2518 ATTR_compiling___table_computation___TableEltComposite____offsets(fra.me.REG[0]) = fra.me.REG[1];
2519 stack_frame_head = fra.me.prev;
2520 init_table[itpos5] = 1;
2521 return;
2522 }
2523 val_t compiling___table_computation___TableEltClassSelfId___is_related_to(val_t p0, val_t p1){
2524 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2525 val_t REGB0;
2526 val_t tmp;
2527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2528 fra.me.file = LOCATE_compiling___table_computation;
2529 fra.me.line = 537;
2530 fra.me.meth = LOCATE_compiling___table_computation___TableEltClassSelfId___is_related_to;
2531 fra.me.has_broke = 0;
2532 fra.me.REG_size = 2;
2533 fra.me.REG[0] = NIT_NULL;
2534 fra.me.REG[1] = NIT_NULL;
2535 fra.me.REG[0] = p0;
2536 fra.me.REG[1] = p1;
2537 /* ./compiling//table_computation.nit:537 */
2538 REGB0 = TAG_Bool(true);
2539 goto label1;
2540 label1: while(0);
2541 stack_frame_head = fra.me.prev;
2542 return REGB0;
2543 }
2544 val_t compiling___table_computation___TableEltClassSelfName___is_related_to(val_t p0, val_t p1){
2545 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2546 val_t REGB0;
2547 val_t tmp;
2548 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2549 fra.me.file = LOCATE_compiling___table_computation;
2550 fra.me.line = 543;
2551 fra.me.meth = LOCATE_compiling___table_computation___TableEltClassSelfName___is_related_to;
2552 fra.me.has_broke = 0;
2553 fra.me.REG_size = 2;
2554 fra.me.REG[0] = NIT_NULL;
2555 fra.me.REG[1] = NIT_NULL;
2556 fra.me.REG[0] = p0;
2557 fra.me.REG[1] = p1;
2558 /* ./compiling//table_computation.nit:543 */
2559 REGB0 = TAG_Bool(true);
2560 goto label1;
2561 label1: while(0);
2562 stack_frame_head = fra.me.prev;
2563 return REGB0;
2564 }
2565 val_t compiling___table_computation___TableEltClassObjectSize___is_related_to(val_t p0, val_t p1){
2566 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2567 val_t REGB0;
2568 val_t tmp;
2569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2570 fra.me.file = LOCATE_compiling___table_computation;
2571 fra.me.line = 549;
2572 fra.me.meth = LOCATE_compiling___table_computation___TableEltClassObjectSize___is_related_to;
2573 fra.me.has_broke = 0;
2574 fra.me.REG_size = 2;
2575 fra.me.REG[0] = NIT_NULL;
2576 fra.me.REG[1] = NIT_NULL;
2577 fra.me.REG[0] = p0;
2578 fra.me.REG[1] = p1;
2579 /* ./compiling//table_computation.nit:549 */
2580 REGB0 = TAG_Bool(true);
2581 goto label1;
2582 label1: while(0);
2583 stack_frame_head = fra.me.prev;
2584 return REGB0;
2585 }
2586 val_t compiling___table_computation___TableEltObjectId___is_related_to(val_t p0, val_t p1){
2587 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2588 val_t REGB0;
2589 val_t tmp;
2590 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2591 fra.me.file = LOCATE_compiling___table_computation;
2592 fra.me.line = 555;
2593 fra.me.meth = LOCATE_compiling___table_computation___TableEltObjectId___is_related_to;
2594 fra.me.has_broke = 0;
2595 fra.me.REG_size = 2;
2596 fra.me.REG[0] = NIT_NULL;
2597 fra.me.REG[1] = NIT_NULL;
2598 fra.me.REG[0] = p0;
2599 fra.me.REG[1] = p1;
2600 /* ./compiling//table_computation.nit:555 */
2601 REGB0 = TAG_Bool(true);
2602 goto label1;
2603 label1: while(0);
2604 stack_frame_head = fra.me.prev;
2605 return REGB0;
2606 }
2607 val_t compiling___table_computation___TableEltVftPointer___is_related_to(val_t p0, val_t p1){
2608 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2609 val_t REGB0;
2610 val_t tmp;
2611 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2612 fra.me.file = LOCATE_compiling___table_computation;
2613 fra.me.line = 561;
2614 fra.me.meth = LOCATE_compiling___table_computation___TableEltVftPointer___is_related_to;
2615 fra.me.has_broke = 0;
2616 fra.me.REG_size = 2;
2617 fra.me.REG[0] = NIT_NULL;
2618 fra.me.REG[1] = NIT_NULL;
2619 fra.me.REG[0] = p0;
2620 fra.me.REG[1] = p1;
2621 /* ./compiling//table_computation.nit:561 */
2622 REGB0 = TAG_Bool(true);
2623 goto label1;
2624 label1: while(0);
2625 stack_frame_head = fra.me.prev;
2626 return REGB0;
2627 }