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