gc: add 'help' option to list all available GC
[nit.git] / c_src / compiling_global._sep.c
1 /* This C file is generated by NIT to compile module compiling_global. */
2 #include "compiling_global._sep.h"
3 val_t compiling_global___GlobalCompilerVisitor___program(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_compiling_global;
9 fra.me.line = 25;
10 fra.me.meth = LOCATE_compiling_global___GlobalCompilerVisitor___program;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.REG[0] = NIT_NULL;
14 fra.me.REG[0] = p0;
15 REGB0 = TAG_Bool(ATTR_compiling_global___GlobalCompilerVisitor____program(fra.me.REG[0])!=NIT_NULL);
16 /* ./compiling//compiling_global.nit:25 */
17 if (UNTAG_Bool(REGB0)) {
18 } else {
19 fprintf(stderr, "Uninitialized attribute %s", "_program");
20 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 25);
21 nit_exit(1);
22 }
23 fra.me.REG[0] = ATTR_compiling_global___GlobalCompilerVisitor____program(fra.me.REG[0]);
24 stack_frame_head = fra.me.prev;
25 return fra.me.REG[0];
26 }
27 void compiling_global___GlobalCompilerVisitor___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
28 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_GlobalCompilerVisitor].i;
29 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
30 val_t tmp;
31 if (init_table[itpos0]) return;
32 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33 fra.me.file = LOCATE_compiling_global;
34 fra.me.line = 27;
35 fra.me.meth = LOCATE_compiling_global___GlobalCompilerVisitor___init;
36 fra.me.has_broke = 0;
37 fra.me.REG_size = 5;
38 fra.me.REG[0] = NIT_NULL;
39 fra.me.REG[1] = NIT_NULL;
40 fra.me.REG[2] = NIT_NULL;
41 fra.me.REG[3] = NIT_NULL;
42 fra.me.REG[4] = NIT_NULL;
43 fra.me.REG[0] = p0;
44 fra.me.REG[1] = p1;
45 fra.me.REG[2] = p2;
46 fra.me.REG[3] = p3;
47 fra.me.REG[4] = fra.me.REG[0];
48 /* ./compiling//compiling_global.nit:29 */
49 CALL_compiling_base___CompilerVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
50 /* ./compiling//compiling_global.nit:30 */
51 ATTR_compiling_global___GlobalCompilerVisitor____program(fra.me.REG[4]) = fra.me.REG[3];
52 stack_frame_head = fra.me.prev;
53 init_table[itpos0] = 1;
54 return;
55 }
56 void compiling_global___Program___compile_tables_to_c(val_t p0, val_t p1){
57 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
58 val_t REGB0;
59 val_t tmp;
60 static val_t once_value_3; /* Once value */
61 static val_t once_value_4; /* Once value */
62 static val_t once_value_5; /* Once value */
63 static val_t once_value_6; /* Once value */
64 static val_t once_value_7; /* Once value */
65 static val_t once_value_8; /* Once value */
66 static val_t once_value_9; /* Once value */
67 static val_t once_value_11; /* Once value */
68 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
69 fra.me.file = LOCATE_compiling_global;
70 fra.me.line = 35;
71 fra.me.meth = LOCATE_compiling_global___Program___compile_tables_to_c;
72 fra.me.has_broke = 0;
73 fra.me.REG_size = 7;
74 fra.me.REG[0] = NIT_NULL;
75 fra.me.REG[1] = NIT_NULL;
76 fra.me.REG[2] = NIT_NULL;
77 fra.me.REG[3] = NIT_NULL;
78 fra.me.REG[4] = NIT_NULL;
79 fra.me.REG[5] = NIT_NULL;
80 fra.me.REG[6] = NIT_NULL;
81 fra.me.REG[0] = p0;
82 fra.me.REG[1] = p1;
83 fra.me.REG[2] = CALL_program___Program___module(fra.me.REG[0])(fra.me.REG[0]);
84 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
85 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
86 /* ./compiling//compiling_global.nit:38 */
87 if (UNTAG_Bool(REGB0)) {
88 fprintf(stderr, "Reciever is null");
89 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 38);
90 nit_exit(1);
91 }
92 fra.me.REG[2] = CALL_partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[2])(fra.me.REG[2]);
93 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
94 while(1) {
95 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
96 if (UNTAG_Bool(REGB0)) {
97 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
98 /* ./compiling//compiling_global.nit:39 */
99 CALL_compiling_global___MMModule___compile_local_table_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
100 } else {
101 /* ./compiling//compiling_global.nit:38 */
102 goto label1;
103 }
104 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
105 }
106 label1: while(0);
107 fra.me.REG[2] = CALL_program___Program___module(fra.me.REG[0])(fra.me.REG[0]);
108 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___local_classes(fra.me.REG[2])(fra.me.REG[2]);
109 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
110 /* ./compiling//compiling_global.nit:42 */
111 while(1) {
112 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
113 if (UNTAG_Bool(REGB0)) {
114 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
115 /* ./compiling//compiling_global.nit:43 */
116 CALL_compiling_global___MMLocalClass___compile_tables_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
117 } else {
118 /* ./compiling//compiling_global.nit:42 */
119 goto label2;
120 }
121 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
122 }
123 label2: while(0);
124 /* ./compiling//compiling_global.nit:45 */
125 if (!once_value_3) {
126 fra.me.REG[2] = BOX_NativeString("classtable_t TAG2VFT[4] = {NULL");
127 REGB0 = TAG_Int(31);
128 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
129 once_value_3 = fra.me.REG[2];
130 register_static_object(&once_value_3);
131 } else fra.me.REG[2] = once_value_3;
132 fra.me.REG[2] = NEW_Buffer_string___Buffer___from(fra.me.REG[2]);
133 REGB0 = TAG_Int(3);
134 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
135 /* ./compiling//compiling_global.nit:46 */
136 if (!once_value_4) {
137 fra.me.REG[4] = BOX_NativeString("Int");
138 REGB0 = TAG_Int(3);
139 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
140 once_value_4 = fra.me.REG[4];
141 register_static_object(&once_value_4);
142 } else fra.me.REG[4] = once_value_4;
143 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
144 if (!once_value_5) {
145 fra.me.REG[4] = BOX_NativeString("Char");
146 REGB0 = TAG_Int(4);
147 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
148 once_value_5 = fra.me.REG[4];
149 register_static_object(&once_value_5);
150 } else fra.me.REG[4] = once_value_5;
151 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
152 if (!once_value_6) {
153 fra.me.REG[4] = BOX_NativeString("Bool");
154 REGB0 = TAG_Int(4);
155 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
156 once_value_6 = fra.me.REG[4];
157 register_static_object(&once_value_6);
158 } else fra.me.REG[4] = once_value_6;
159 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
160 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
161 while(1) {
162 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
163 if (UNTAG_Bool(REGB0)) {
164 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
165 fra.me.REG[5] = CALL_program___Program___module(fra.me.REG[0])(fra.me.REG[0]);
166 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
167 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
168 /* ./compiling//compiling_global.nit:47 */
169 if (UNTAG_Bool(REGB0)) {
170 REGB0 = TAG_Int(3);
171 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
172 /* ./compiling//compiling_global.nit:48 */
173 if (!once_value_7) {
174 fra.me.REG[5] = BOX_NativeString(", (const classtable_t)VFT_");
175 REGB0 = TAG_Int(26);
176 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
177 once_value_7 = fra.me.REG[5];
178 register_static_object(&once_value_7);
179 } else fra.me.REG[5] = once_value_7;
180 array___Array___add(fra.me.REG[6], fra.me.REG[5]);
181 array___Array___add(fra.me.REG[6], fra.me.REG[4]);
182 if (!once_value_8) {
183 fra.me.REG[4] = BOX_NativeString("");
184 REGB0 = TAG_Int(0);
185 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
186 once_value_8 = fra.me.REG[4];
187 register_static_object(&once_value_8);
188 } else fra.me.REG[4] = once_value_8;
189 array___Array___add(fra.me.REG[6], fra.me.REG[4]);
190 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
191 CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
192 } else {
193 /* ./compiling//compiling_global.nit:50 */
194 if (!once_value_9) {
195 fra.me.REG[6] = BOX_NativeString(", NULL");
196 REGB0 = TAG_Int(6);
197 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
198 once_value_9 = fra.me.REG[6];
199 register_static_object(&once_value_9);
200 } else fra.me.REG[6] = once_value_9;
201 CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
202 }
203 } else {
204 /* ./compiling//compiling_global.nit:46 */
205 goto label10;
206 }
207 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
208 }
209 label10: while(0);
210 /* ./compiling//compiling_global.nit:53 */
211 if (!once_value_11) {
212 fra.me.REG[3] = BOX_NativeString("};");
213 REGB0 = TAG_Int(2);
214 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
215 once_value_11 = fra.me.REG[3];
216 register_static_object(&once_value_11);
217 } else fra.me.REG[3] = once_value_11;
218 CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
219 REGB0 = TAG_Int(0);
220 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
221 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
222 /* ./compiling//compiling_global.nit:54 */
223 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
224 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
225 stack_frame_head = fra.me.prev;
226 return;
227 }
228 void compiling_global___Program___compile_main_part(val_t p0, val_t p1){
229 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
230 val_t REGB0;
231 val_t REGB1;
232 val_t tmp;
233 static val_t once_value_1; /* Once value */
234 static val_t once_value_2; /* Once value */
235 static val_t once_value_3; /* Once value */
236 static val_t once_value_4; /* Once value */
237 static val_t once_value_5; /* Once value */
238 static val_t once_value_6; /* Once value */
239 static val_t once_value_7; /* Once value */
240 static val_t once_value_8; /* Once value */
241 static val_t once_value_9; /* Once value */
242 static val_t once_value_10; /* Once value */
243 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
244 fra.me.file = LOCATE_compiling_global;
245 fra.me.line = 57;
246 fra.me.meth = LOCATE_compiling_global___Program___compile_main_part;
247 fra.me.has_broke = 0;
248 fra.me.REG_size = 4;
249 fra.me.REG[0] = NIT_NULL;
250 fra.me.REG[1] = NIT_NULL;
251 fra.me.REG[2] = NIT_NULL;
252 fra.me.REG[3] = NIT_NULL;
253 fra.me.REG[0] = p0;
254 fra.me.REG[1] = p1;
255 REGB0 = TAG_Int(0);
256 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
257 /* ./compiling//compiling_global.nit:60 */
258 if (!once_value_1) {
259 fra.me.REG[3] = BOX_NativeString("int main(int argc, char **argv) {");
260 REGB0 = TAG_Int(33);
261 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
262 once_value_1 = fra.me.REG[3];
263 register_static_object(&once_value_1);
264 } else fra.me.REG[3] = once_value_1;
265 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
266 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
267 /* ./compiling//compiling_global.nit:61 */
268 CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
269 REGB0 = TAG_Int(0);
270 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
271 /* ./compiling//compiling_global.nit:62 */
272 if (!once_value_2) {
273 fra.me.REG[3] = BOX_NativeString("prepare_signals();");
274 REGB0 = TAG_Int(18);
275 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
276 once_value_2 = fra.me.REG[3];
277 register_static_object(&once_value_2);
278 } else fra.me.REG[3] = once_value_2;
279 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
280 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
281 REGB0 = TAG_Int(0);
282 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
283 /* ./compiling//compiling_global.nit:63 */
284 if (!once_value_3) {
285 fra.me.REG[3] = BOX_NativeString("glob_argc = argc; glob_argv = argv;");
286 REGB0 = TAG_Int(35);
287 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
288 once_value_3 = fra.me.REG[3];
289 register_static_object(&once_value_3);
290 } else fra.me.REG[3] = once_value_3;
291 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
292 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
293 fra.me.REG[2] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
294 fra.me.REG[2] = CALL_program___Program___main_method(fra.me.REG[2])(fra.me.REG[2]);
295 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
296 /* ./compiling//compiling_global.nit:64 */
297 if (UNTAG_Bool(REGB0)) {
298 } else {
299 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
300 if (UNTAG_Bool(REGB1)) {
301 REGB1 = TAG_Bool(false);
302 REGB0 = REGB1;
303 } else {
304 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
305 REGB0 = REGB1;
306 }
307 }
308 if (UNTAG_Bool(REGB0)) {
309 /* ./compiling//compiling_global.nit:65 */
310 if (!once_value_4) {
311 fra.me.REG[2] = BOX_NativeString("No main");
312 REGB0 = TAG_Int(7);
313 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
314 once_value_4 = fra.me.REG[2];
315 register_static_object(&once_value_4);
316 } else fra.me.REG[2] = once_value_4;
317 CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
318 } else {
319 REGB0 = TAG_Int(0);
320 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
321 /* ./compiling//compiling_global.nit:67 */
322 if (!once_value_5) {
323 fra.me.REG[0] = BOX_NativeString("G_sys = NEW_Sys();");
324 REGB0 = TAG_Int(18);
325 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
326 once_value_5 = fra.me.REG[0];
327 register_static_object(&once_value_5);
328 } else fra.me.REG[0] = once_value_5;
329 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
330 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
331 REGB0 = TAG_Int(0);
332 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
333 /* ./compiling//compiling_global.nit:68 */
334 if (!once_value_6) {
335 fra.me.REG[0] = BOX_NativeString("register_static_object(&G_sys);");
336 REGB0 = TAG_Int(31);
337 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
338 once_value_6 = fra.me.REG[0];
339 register_static_object(&once_value_6);
340 } else fra.me.REG[0] = once_value_6;
341 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
342 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
343 REGB0 = TAG_Int(0);
344 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
345 REGB0 = TAG_Int(3);
346 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
347 /* ./compiling//compiling_global.nit:69 */
348 if (!once_value_7) {
349 fra.me.REG[3] = BOX_NativeString("");
350 REGB0 = TAG_Int(0);
351 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
352 once_value_7 = fra.me.REG[3];
353 register_static_object(&once_value_7);
354 } else fra.me.REG[3] = once_value_7;
355 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
356 fra.me.REG[3] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
357 fra.me.REG[3] = CALL_program___Program___main_method(fra.me.REG[3])(fra.me.REG[3]);
358 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
359 if (UNTAG_Bool(REGB0)) {
360 fprintf(stderr, "Reciever is null");
361 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 69);
362 nit_exit(1);
363 }
364 fra.me.REG[3] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[3])(fra.me.REG[3]);
365 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
366 if (!once_value_8) {
367 fra.me.REG[3] = BOX_NativeString("(G_sys);");
368 REGB0 = TAG_Int(8);
369 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
370 once_value_8 = fra.me.REG[3];
371 register_static_object(&once_value_8);
372 } else fra.me.REG[3] = once_value_8;
373 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
374 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
375 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
376 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
377 }
378 REGB0 = TAG_Int(0);
379 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
380 /* ./compiling//compiling_global.nit:71 */
381 if (!once_value_9) {
382 fra.me.REG[0] = BOX_NativeString("return 0;");
383 REGB0 = TAG_Int(9);
384 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
385 once_value_9 = fra.me.REG[0];
386 register_static_object(&once_value_9);
387 } else fra.me.REG[0] = once_value_9;
388 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
389 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
390 /* ./compiling//compiling_global.nit:72 */
391 CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
392 REGB0 = TAG_Int(0);
393 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
394 /* ./compiling//compiling_global.nit:73 */
395 if (!once_value_10) {
396 fra.me.REG[0] = BOX_NativeString("}");
397 REGB0 = TAG_Int(1);
398 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
399 once_value_10 = fra.me.REG[0];
400 register_static_object(&once_value_10);
401 } else fra.me.REG[0] = once_value_10;
402 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
403 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
404 stack_frame_head = fra.me.prev;
405 return;
406 }
407 void compiling_global___MMModule___declare_class_tables_to_c(val_t p0, val_t p1){
408 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
409 val_t REGB0;
410 val_t REGB1;
411 val_t tmp;
412 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
413 fra.me.file = LOCATE_compiling_global;
414 fra.me.line = 78;
415 fra.me.meth = LOCATE_compiling_global___MMModule___declare_class_tables_to_c;
416 fra.me.has_broke = 0;
417 fra.me.REG_size = 5;
418 fra.me.REG[0] = NIT_NULL;
419 fra.me.REG[1] = NIT_NULL;
420 fra.me.REG[2] = NIT_NULL;
421 fra.me.REG[3] = NIT_NULL;
422 fra.me.REG[4] = NIT_NULL;
423 fra.me.REG[0] = p0;
424 fra.me.REG[1] = p1;
425 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
426 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
427 /* ./compiling//compiling_global.nit:81 */
428 while(1) {
429 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
430 if (UNTAG_Bool(REGB0)) {
431 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
432 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
433 fra.me.REG[4] = CALL_abstractmetamodel___MMGlobalClass___module(fra.me.REG[4])(fra.me.REG[4]);
434 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[0]));
435 /* ./compiling//compiling_global.nit:82 */
436 if (UNTAG_Bool(REGB0)) {
437 } else {
438 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
439 REGB0 = REGB1;
440 }
441 if (UNTAG_Bool(REGB0)) {
442 /* ./compiling//compiling_global.nit:83 */
443 CALL_compiling_global___MMLocalClass___declare_tables_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
444 }
445 } else {
446 /* ./compiling//compiling_global.nit:81 */
447 goto label1;
448 }
449 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
450 }
451 label1: while(0);
452 stack_frame_head = fra.me.prev;
453 return;
454 }
455 void compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t p1){
456 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
457 val_t REGB0;
458 val_t REGB1;
459 val_t tmp;
460 static val_t once_value_1; /* Once value */
461 static val_t once_value_2; /* Once value */
462 static val_t once_value_3; /* Once value */
463 static val_t once_value_4; /* Once value */
464 static val_t once_value_5; /* Once value */
465 static val_t once_value_6; /* Once value */
466 static val_t once_value_7; /* Once value */
467 static val_t once_value_8; /* Once value */
468 static val_t once_value_9; /* Once value */
469 static val_t once_value_12; /* Once value */
470 static val_t once_value_13; /* Once value */
471 static val_t once_value_15; /* Once value */
472 static val_t once_value_16; /* Once value */
473 static val_t once_value_17; /* Once value */
474 static val_t once_value_18; /* Once value */
475 static val_t once_value_19; /* Once value */
476 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
477 fra.me.file = LOCATE_compiling_global;
478 fra.me.line = 88;
479 fra.me.meth = LOCATE_compiling_global___MMModule___compile_mod_to_c;
480 fra.me.has_broke = 0;
481 fra.me.REG_size = 9;
482 fra.me.REG[0] = NIT_NULL;
483 fra.me.REG[1] = NIT_NULL;
484 fra.me.REG[2] = NIT_NULL;
485 fra.me.REG[3] = NIT_NULL;
486 fra.me.REG[4] = NIT_NULL;
487 fra.me.REG[5] = NIT_NULL;
488 fra.me.REG[6] = NIT_NULL;
489 fra.me.REG[7] = NIT_NULL;
490 fra.me.REG[8] = NIT_NULL;
491 fra.me.REG[0] = p0;
492 fra.me.REG[1] = p1;
493 REGB0 = TAG_Int(0);
494 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
495 REGB0 = TAG_Int(3);
496 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
497 /* ./compiling//compiling_global.nit:91 */
498 if (!once_value_1) {
499 fra.me.REG[4] = BOX_NativeString("extern const char *LOCATE_");
500 REGB0 = TAG_Int(26);
501 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
502 once_value_1 = fra.me.REG[4];
503 register_static_object(&once_value_1);
504 } else fra.me.REG[4] = once_value_1;
505 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
506 fra.me.REG[4] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
507 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
508 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
509 if (!once_value_2) {
510 fra.me.REG[4] = BOX_NativeString(";");
511 REGB0 = TAG_Int(1);
512 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
513 once_value_2 = fra.me.REG[4];
514 register_static_object(&once_value_2);
515 } else fra.me.REG[4] = once_value_2;
516 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
517 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
518 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
519 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
520 fra.me.REG[2] = CALL_compiling_base___CompilerVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
521 REGB0 = CALL_compiling_base___ToolContext___global(fra.me.REG[2])(fra.me.REG[2]);
522 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
523 /* ./compiling//compiling_global.nit:92 */
524 if (UNTAG_Bool(REGB0)) {
525 REGB0 = TAG_Int(0);
526 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
527 REGB0 = TAG_Int(3);
528 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
529 /* ./compiling//compiling_global.nit:93 */
530 if (!once_value_3) {
531 fra.me.REG[4] = BOX_NativeString("extern const int SFT_");
532 REGB0 = TAG_Int(21);
533 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
534 once_value_3 = fra.me.REG[4];
535 register_static_object(&once_value_3);
536 } else fra.me.REG[4] = once_value_3;
537 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
538 fra.me.REG[4] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
539 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
540 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
541 if (!once_value_4) {
542 fra.me.REG[4] = BOX_NativeString("[];");
543 REGB0 = TAG_Int(3);
544 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
545 once_value_4 = fra.me.REG[4];
546 register_static_object(&once_value_4);
547 } else fra.me.REG[4] = once_value_4;
548 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
549 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
550 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
551 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
552 }
553 REGB0 = TAG_Int(0);
554 fra.me.REG[2] = CALL_table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
555 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
556 /* ./compiling//compiling_global.nit:96 */
557 while(1) {
558 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
559 if (UNTAG_Bool(REGB1)) {
560 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
561 fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
562 REGB1 = CALL_compiling_base___ToolContext___global(fra.me.REG[4])(fra.me.REG[4]);
563 /* ./compiling//compiling_global.nit:98 */
564 if (UNTAG_Bool(REGB1)) {
565 REGB1 = TAG_Int(3);
566 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
567 /* ./compiling//compiling_global.nit:99 */
568 if (!once_value_5) {
569 fra.me.REG[5] = BOX_NativeString("");
570 REGB1 = TAG_Int(0);
571 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
572 once_value_5 = fra.me.REG[5];
573 register_static_object(&once_value_5);
574 } else fra.me.REG[5] = once_value_5;
575 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
576 fra.me.REG[5] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
577 fra.me.REG[5] = CALL_compiling_global___ModuleTableElt___value(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
578 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
579 if (!once_value_6) {
580 fra.me.REG[5] = BOX_NativeString("");
581 REGB1 = TAG_Int(0);
582 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
583 once_value_6 = fra.me.REG[5];
584 register_static_object(&once_value_6);
585 } else fra.me.REG[5] = once_value_6;
586 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
587 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
588 } else {
589 REGB1 = TAG_Int(5);
590 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB1);
591 /* ./compiling//compiling_global.nit:101 */
592 if (!once_value_7) {
593 fra.me.REG[6] = BOX_NativeString("SFT_");
594 REGB1 = TAG_Int(4);
595 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
596 once_value_7 = fra.me.REG[6];
597 register_static_object(&once_value_7);
598 } else fra.me.REG[6] = once_value_7;
599 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
600 fra.me.REG[6] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
601 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
602 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
603 if (!once_value_8) {
604 fra.me.REG[6] = BOX_NativeString("[");
605 REGB1 = TAG_Int(1);
606 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
607 once_value_8 = fra.me.REG[6];
608 register_static_object(&once_value_8);
609 } else fra.me.REG[6] = once_value_8;
610 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
611 fra.me.REG[6] = CALL_string___Object___to_s(REGB0)(REGB0);
612 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
613 if (!once_value_9) {
614 fra.me.REG[6] = BOX_NativeString("]");
615 REGB1 = TAG_Int(1);
616 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
617 once_value_9 = fra.me.REG[6];
618 register_static_object(&once_value_9);
619 } else fra.me.REG[6] = once_value_9;
620 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
621 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
622 fra.me.REG[4] = fra.me.REG[5];
623 REGB1 = TAG_Int(1);
624 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
625 REGB0 = REGB1;
626 /* ./compiling//compiling_global.nit:102 */
627 }
628 /* ./compiling//compiling_global.nit:104 */
629 CALL_compiling_global___AbsTableElt___compile_macros(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[4]);
630 } else {
631 /* ./compiling//compiling_global.nit:96 */
632 goto label10;
633 }
634 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
635 }
636 label10: while(0);
637 fra.me.REG[0] = CALL_abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
638 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
639 /* ./compiling//compiling_global.nit:106 */
640 while(1) {
641 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
642 if (UNTAG_Bool(REGB0)) {
643 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
644 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
645 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
646 /* ./compiling//compiling_global.nit:107 */
647 if (UNTAG_Bool(REGB0)) {
648 goto label11;
649 }
650 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[2])(fra.me.REG[2]);
651 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
652 /* ./compiling//compiling_global.nit:108 */
653 while(1) {
654 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
655 if (UNTAG_Bool(REGB0)) {
656 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
657 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
658 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[5])(fra.me.REG[5]);
659 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[6],fra.me.REG[2]));
660 /* ./compiling//compiling_global.nit:110 */
661 if (UNTAG_Bool(REGB0)) {
662 } else {
663 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
664 REGB0 = REGB1;
665 }
666 if (UNTAG_Bool(REGB0)) {
667 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
668 } else {
669 REGB1 = TAG_Bool(false);
670 REGB0 = REGB1;
671 }
672 if (UNTAG_Bool(REGB0)) {
673 /* ./compiling//compiling_global.nit:111 */
674 CALL_compiling_global___MMMethod___compile_property_to_c(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
675 }
676 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
677 /* ./compiling//compiling_global.nit:113 */
678 if (UNTAG_Bool(REGB0)) {
679 fra.me.REG[3] = NEW_Array_array___Array___init();
680 REGB0 = TAG_Int(0);
681 fra.me.REG[6] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
682 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
683 /* ./compiling//compiling_global.nit:116 */
684 if (UNTAG_Bool(REGB1)) {
685 fprintf(stderr, "Reciever is null");
686 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 116);
687 nit_exit(1);
688 }
689 REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
690 fra.me.REG[6] = NEW_Range_range___Range___without_last(REGB0, REGB1);
691 fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]);
692 while(1) {
693 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]);
694 if (UNTAG_Bool(REGB1)) {
695 REGB1 = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]);
696 REGB0 = TAG_Int(3);
697 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0);
698 /* ./compiling//compiling_global.nit:117 */
699 if (!once_value_12) {
700 fra.me.REG[8] = BOX_NativeString("val_t p");
701 REGB0 = TAG_Int(7);
702 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
703 once_value_12 = fra.me.REG[8];
704 register_static_object(&once_value_12);
705 } else fra.me.REG[8] = once_value_12;
706 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
707 fra.me.REG[8] = CALL_string___Object___to_s(REGB1)(REGB1);
708 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
709 if (!once_value_13) {
710 fra.me.REG[8] = BOX_NativeString("");
711 REGB1 = TAG_Int(0);
712 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
713 once_value_13 = fra.me.REG[8];
714 register_static_object(&once_value_13);
715 } else fra.me.REG[8] = once_value_13;
716 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
717 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
718 array___Array___add(fra.me.REG[3], fra.me.REG[7]);
719 } else {
720 /* ./compiling//compiling_global.nit:116 */
721 goto label14;
722 }
723 CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]);
724 }
725 label14: while(0);
726 REGB1 = TAG_Int(0);
727 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
728 REGB1 = TAG_Int(7);
729 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1);
730 /* ./compiling//compiling_global.nit:119 */
731 if (!once_value_15) {
732 fra.me.REG[8] = BOX_NativeString("val_t NEW_");
733 REGB1 = TAG_Int(10);
734 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
735 once_value_15 = fra.me.REG[8];
736 register_static_object(&once_value_15);
737 } else fra.me.REG[8] = once_value_15;
738 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
739 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
740 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
741 if (!once_value_16) {
742 fra.me.REG[8] = BOX_NativeString("_");
743 REGB1 = TAG_Int(1);
744 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
745 once_value_16 = fra.me.REG[8];
746 register_static_object(&once_value_16);
747 } else fra.me.REG[8] = once_value_16;
748 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
749 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[5])(fra.me.REG[5]);
750 fra.me.REG[5] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[5])(fra.me.REG[5]);
751 fra.me.REG[5] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[5])(fra.me.REG[5]);
752 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
753 if (!once_value_17) {
754 fra.me.REG[5] = BOX_NativeString("(");
755 REGB1 = TAG_Int(1);
756 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
757 once_value_17 = fra.me.REG[5];
758 register_static_object(&once_value_17);
759 } else fra.me.REG[5] = once_value_17;
760 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
761 if (!once_value_18) {
762 fra.me.REG[5] = BOX_NativeString(", ");
763 REGB1 = TAG_Int(2);
764 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
765 once_value_18 = fra.me.REG[5];
766 register_static_object(&once_value_18);
767 } else fra.me.REG[5] = once_value_18;
768 fra.me.REG[5] = CALL_string___Collection___join(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
769 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
770 if (!once_value_19) {
771 fra.me.REG[5] = BOX_NativeString(");");
772 REGB1 = TAG_Int(2);
773 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
774 once_value_19 = fra.me.REG[5];
775 register_static_object(&once_value_19);
776 } else fra.me.REG[5] = once_value_19;
777 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
778 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
779 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
780 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
781 }
782 } else {
783 /* ./compiling//compiling_global.nit:108 */
784 goto label20;
785 }
786 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
787 }
788 label20: while(0);
789 label11: while(0);
790 } else {
791 /* ./compiling//compiling_global.nit:106 */
792 goto label21;
793 }
794 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
795 }
796 label21: while(0);
797 stack_frame_head = fra.me.prev;
798 return;
799 }
800 void compiling_global___MMModule___compile_local_table_to_c(val_t p0, val_t p1){
801 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
802 val_t REGB0;
803 val_t REGB1;
804 val_t tmp;
805 static val_t once_value_1; /* Once value */
806 static val_t once_value_2; /* Once value */
807 static val_t once_value_3; /* Once value */
808 static val_t once_value_5; /* Once value */
809 static val_t once_value_6; /* Once value */
810 static val_t once_value_7; /* Once value */
811 static val_t once_value_8; /* Once value */
812 static val_t once_value_10; /* Once value */
813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
814 fra.me.file = LOCATE_compiling_global;
815 fra.me.line = 125;
816 fra.me.meth = LOCATE_compiling_global___MMModule___compile_local_table_to_c;
817 fra.me.has_broke = 0;
818 fra.me.REG_size = 5;
819 fra.me.REG[0] = NIT_NULL;
820 fra.me.REG[1] = NIT_NULL;
821 fra.me.REG[2] = NIT_NULL;
822 fra.me.REG[3] = NIT_NULL;
823 fra.me.REG[4] = NIT_NULL;
824 fra.me.REG[0] = p0;
825 fra.me.REG[1] = p1;
826 REGB0 = TAG_Int(0);
827 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
828 REGB0 = TAG_Int(5);
829 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
830 /* ./compiling//compiling_global.nit:128 */
831 if (!once_value_1) {
832 fra.me.REG[4] = BOX_NativeString("const char *LOCATE_");
833 REGB0 = TAG_Int(19);
834 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
835 once_value_1 = fra.me.REG[4];
836 register_static_object(&once_value_1);
837 } else fra.me.REG[4] = once_value_1;
838 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
839 fra.me.REG[4] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
840 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
841 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
842 if (!once_value_2) {
843 fra.me.REG[4] = BOX_NativeString(" = \"");
844 REGB0 = TAG_Int(4);
845 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
846 once_value_2 = fra.me.REG[4];
847 register_static_object(&once_value_2);
848 } else fra.me.REG[4] = once_value_2;
849 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
850 fra.me.REG[4] = CALL_abstractmetamodel___MMModule___location(fra.me.REG[0])(fra.me.REG[0]);
851 fra.me.REG[4] = CALL_location___Location___file(fra.me.REG[4])(fra.me.REG[4]);
852 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
853 if (!once_value_3) {
854 fra.me.REG[4] = BOX_NativeString("\";");
855 REGB0 = TAG_Int(2);
856 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
857 once_value_3 = fra.me.REG[4];
858 register_static_object(&once_value_3);
859 } else fra.me.REG[4] = once_value_3;
860 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
861 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
862 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
863 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
864 fra.me.REG[2] = CALL_compiling_base___CompilerVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
865 REGB0 = CALL_compiling_base___ToolContext___global(fra.me.REG[2])(fra.me.REG[2]);
866 /* ./compiling//compiling_global.nit:130 */
867 if (UNTAG_Bool(REGB0)) {
868 REGB0 = TAG_Bool(true);
869 } else {
870 fra.me.REG[2] = CALL_table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
871 REGB1 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
872 REGB0 = REGB1;
873 }
874 if (UNTAG_Bool(REGB0)) {
875 /* ./compiling//compiling_global.nit:131 */
876 goto label4;
877 }
878 REGB0 = TAG_Int(0);
879 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
880 REGB0 = TAG_Int(5);
881 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
882 /* ./compiling//compiling_global.nit:134 */
883 if (!once_value_5) {
884 fra.me.REG[4] = BOX_NativeString("const int SFT_");
885 REGB0 = TAG_Int(14);
886 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
887 once_value_5 = fra.me.REG[4];
888 register_static_object(&once_value_5);
889 } else fra.me.REG[4] = once_value_5;
890 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
891 fra.me.REG[4] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
892 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
893 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
894 if (!once_value_6) {
895 fra.me.REG[4] = BOX_NativeString("[");
896 REGB0 = TAG_Int(1);
897 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
898 once_value_6 = fra.me.REG[4];
899 register_static_object(&once_value_6);
900 } else fra.me.REG[4] = once_value_6;
901 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
902 fra.me.REG[4] = CALL_table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
903 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
904 /* ./../lib/standard//collection//array.nit:23 */
905 if (UNTAG_Bool(REGB0)) {
906 } else {
907 fprintf(stderr, "Uninitialized attribute %s", "_length");
908 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
909 nit_exit(1);
910 }
911 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
912 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
913 /* ./compiling//compiling_global.nit:134 */
914 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
915 if (!once_value_7) {
916 fra.me.REG[4] = BOX_NativeString("] = {");
917 REGB0 = TAG_Int(5);
918 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
919 once_value_7 = fra.me.REG[4];
920 register_static_object(&once_value_7);
921 } else fra.me.REG[4] = once_value_7;
922 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
923 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
924 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
925 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
926 /* ./compiling//compiling_global.nit:135 */
927 CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
928 fra.me.REG[0] = CALL_table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
929 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
930 /* ./compiling//compiling_global.nit:136 */
931 while(1) {
932 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
933 if (UNTAG_Bool(REGB0)) {
934 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
935 REGB0 = TAG_Int(0);
936 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
937 fra.me.REG[4] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
938 fra.me.REG[4] = CALL_compiling_global___ModuleTableElt___value(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
939 /* ./compiling//compiling_global.nit:137 */
940 if (!once_value_8) {
941 fra.me.REG[2] = BOX_NativeString(",");
942 REGB0 = TAG_Int(1);
943 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
944 once_value_8 = fra.me.REG[2];
945 register_static_object(&once_value_8);
946 } else fra.me.REG[2] = once_value_8;
947 fra.me.REG[2] = CALL_string___String_____plus(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
948 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
949 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
950 } else {
951 /* ./compiling//compiling_global.nit:136 */
952 goto label9;
953 }
954 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
955 }
956 label9: while(0);
957 /* ./compiling//compiling_global.nit:139 */
958 CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
959 REGB0 = TAG_Int(0);
960 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
961 /* ./compiling//compiling_global.nit:140 */
962 if (!once_value_10) {
963 fra.me.REG[3] = BOX_NativeString("};");
964 REGB0 = TAG_Int(2);
965 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
966 once_value_10 = fra.me.REG[3];
967 register_static_object(&once_value_10);
968 } else fra.me.REG[3] = once_value_10;
969 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
970 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
971 label4: while(0);
972 stack_frame_head = fra.me.prev;
973 return;
974 }
975 void compiling_global___AbsTableElt___compile_macros(val_t p0, val_t p1, val_t p2){
976 struct {struct stack_frame_t me;} fra;
977 val_t tmp;
978 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
979 fra.me.file = LOCATE_compiling_global;
980 fra.me.line = 147;
981 fra.me.meth = LOCATE_compiling_global___AbsTableElt___compile_macros;
982 fra.me.has_broke = 0;
983 fra.me.REG_size = 0;
984 /* ./compiling//compiling_global.nit:147 */
985 fprintf(stderr, "Deferred method called");
986 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 147);
987 nit_exit(1);
988 stack_frame_head = fra.me.prev;
989 return;
990 }
991 val_t compiling_global___TableElt___compile_to_c(val_t p0, val_t p1, val_t p2){
992 struct {struct stack_frame_t me;} fra;
993 val_t tmp;
994 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
995 fra.me.file = LOCATE_compiling_global;
996 fra.me.line = 152;
997 fra.me.meth = LOCATE_compiling_global___TableElt___compile_to_c;
998 fra.me.has_broke = 0;
999 fra.me.REG_size = 0;
1000 /* ./compiling//compiling_global.nit:152 */
1001 fprintf(stderr, "Deferred method called");
1002 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 152);
1003 nit_exit(1);
1004 stack_frame_head = fra.me.prev;
1005 return NIT_NULL;
1006 }
1007 val_t compiling_global___ModuleTableElt___value(val_t p0, val_t p1){
1008 struct {struct stack_frame_t me;} fra;
1009 val_t tmp;
1010 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1011 fra.me.file = LOCATE_compiling_global;
1012 fra.me.line = 157;
1013 fra.me.meth = LOCATE_compiling_global___ModuleTableElt___value;
1014 fra.me.has_broke = 0;
1015 fra.me.REG_size = 0;
1016 /* ./compiling//compiling_global.nit:157 */
1017 fprintf(stderr, "Deferred method called");
1018 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 157);
1019 nit_exit(1);
1020 stack_frame_head = fra.me.prev;
1021 return NIT_NULL;
1022 }
1023 void compiling_global___ModuleTableEltGroup___compile_macros(val_t p0, val_t p1, val_t p2){
1024 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1025 val_t REGB0;
1026 val_t REGB1;
1027 val_t tmp;
1028 static val_t once_value_1; /* Once value */
1029 static val_t once_value_2; /* Once value */
1030 static val_t once_value_3; /* Once value */
1031 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1032 fra.me.file = LOCATE_compiling_global;
1033 fra.me.line = 163;
1034 fra.me.meth = LOCATE_compiling_global___ModuleTableEltGroup___compile_macros;
1035 fra.me.has_broke = 0;
1036 fra.me.REG_size = 6;
1037 fra.me.REG[0] = NIT_NULL;
1038 fra.me.REG[1] = NIT_NULL;
1039 fra.me.REG[2] = NIT_NULL;
1040 fra.me.REG[3] = NIT_NULL;
1041 fra.me.REG[4] = NIT_NULL;
1042 fra.me.REG[5] = NIT_NULL;
1043 fra.me.REG[0] = p0;
1044 fra.me.REG[1] = p1;
1045 fra.me.REG[2] = p2;
1046 REGB0 = TAG_Int(0);
1047 fra.me.REG[0] = CALL_table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
1048 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
1049 /* ./compiling//compiling_global.nit:166 */
1050 while(1) {
1051 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
1052 if (UNTAG_Bool(REGB1)) {
1053 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
1054 REGB1 = TAG_Int(5);
1055 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
1056 /* ./compiling//compiling_global.nit:167 */
1057 if (!once_value_1) {
1058 fra.me.REG[5] = BOX_NativeString("");
1059 REGB1 = TAG_Int(0);
1060 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
1061 once_value_1 = fra.me.REG[5];
1062 register_static_object(&once_value_1);
1063 } else fra.me.REG[5] = once_value_1;
1064 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1065 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
1066 if (!once_value_2) {
1067 fra.me.REG[5] = BOX_NativeString(" + ");
1068 REGB1 = TAG_Int(3);
1069 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
1070 once_value_2 = fra.me.REG[5];
1071 register_static_object(&once_value_2);
1072 } else fra.me.REG[5] = once_value_2;
1073 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1074 fra.me.REG[5] = CALL_string___Object___to_s(REGB0)(REGB0);
1075 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1076 if (!once_value_3) {
1077 fra.me.REG[5] = BOX_NativeString("");
1078 REGB1 = TAG_Int(0);
1079 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
1080 once_value_3 = fra.me.REG[5];
1081 register_static_object(&once_value_3);
1082 } else fra.me.REG[5] = once_value_3;
1083 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1084 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1085 CALL_compiling_global___AbsTableElt___compile_macros(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[4]);
1086 REGB1 = TAG_Int(1);
1087 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1088 REGB0 = REGB1;
1089 /* ./compiling//compiling_global.nit:168 */
1090 } else {
1091 /* ./compiling//compiling_global.nit:166 */
1092 goto label4;
1093 }
1094 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
1095 }
1096 label4: while(0);
1097 stack_frame_head = fra.me.prev;
1098 return;
1099 }
1100 val_t compiling_global___ModuleTableEltGroup___value(val_t p0, val_t p1){
1101 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1102 val_t REGB0;
1103 val_t tmp;
1104 static val_t once_value_1; /* Once value */
1105 static val_t once_value_2; /* Once value */
1106 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1107 fra.me.file = LOCATE_compiling_global;
1108 fra.me.line = 162;
1109 fra.me.meth = LOCATE_compiling_global___ModuleTableEltGroup___value;
1110 fra.me.has_broke = 0;
1111 fra.me.REG_size = 4;
1112 fra.me.REG[0] = NIT_NULL;
1113 fra.me.REG[1] = NIT_NULL;
1114 fra.me.REG[2] = NIT_NULL;
1115 fra.me.REG[3] = NIT_NULL;
1116 fra.me.REG[0] = p0;
1117 fra.me.REG[1] = p1;
1118 REGB0 = TAG_Int(3);
1119 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
1120 /* ./compiling//compiling_global.nit:162 */
1121 if (!once_value_1) {
1122 fra.me.REG[3] = BOX_NativeString("");
1123 REGB0 = TAG_Int(0);
1124 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1125 once_value_1 = fra.me.REG[3];
1126 register_static_object(&once_value_1);
1127 } else fra.me.REG[3] = once_value_1;
1128 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
1129 fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
1130 fra.me.REG[0] = CALL_table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
1131 fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
1132 REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1133 fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0);
1134 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
1135 if (!once_value_2) {
1136 fra.me.REG[0] = BOX_NativeString(" /* Group of ? */");
1137 REGB0 = TAG_Int(17);
1138 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1139 once_value_2 = fra.me.REG[0];
1140 register_static_object(&once_value_2);
1141 } else fra.me.REG[0] = once_value_2;
1142 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
1143 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1144 goto label3;
1145 label3: while(0);
1146 stack_frame_head = fra.me.prev;
1147 return fra.me.REG[2];
1148 }
1149 void compiling_global___TableEltMeth___compile_macros(val_t p0, val_t p1, val_t p2){
1150 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1151 val_t REGB0;
1152 val_t tmp;
1153 static val_t once_value_1; /* Once value */
1154 static val_t once_value_2; /* Once value */
1155 static val_t once_value_3; /* Once value */
1156 static val_t once_value_4; /* Once value */
1157 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1158 fra.me.file = LOCATE_compiling_global;
1159 fra.me.line = 174;
1160 fra.me.meth = LOCATE_compiling_global___TableEltMeth___compile_macros;
1161 fra.me.has_broke = 0;
1162 fra.me.REG_size = 6;
1163 fra.me.REG[0] = NIT_NULL;
1164 fra.me.REG[1] = NIT_NULL;
1165 fra.me.REG[2] = NIT_NULL;
1166 fra.me.REG[3] = NIT_NULL;
1167 fra.me.REG[4] = NIT_NULL;
1168 fra.me.REG[5] = NIT_NULL;
1169 fra.me.REG[0] = p0;
1170 fra.me.REG[1] = p1;
1171 fra.me.REG[2] = p2;
1172 fra.me.REG[0] = CALL_table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
1173 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
1174 REGB0 = TAG_Int(0);
1175 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
1176 REGB0 = TAG_Int(7);
1177 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
1178 /* ./compiling//compiling_global.nit:177 */
1179 if (!once_value_1) {
1180 fra.me.REG[5] = BOX_NativeString("#define ");
1181 REGB0 = TAG_Int(8);
1182 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1183 once_value_1 = fra.me.REG[5];
1184 register_static_object(&once_value_1);
1185 } else fra.me.REG[5] = once_value_1;
1186 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1187 fra.me.REG[5] = CALL_compiling_base___MMGlobalProperty___meth_call(fra.me.REG[0])(fra.me.REG[0]);
1188 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1189 if (!once_value_2) {
1190 fra.me.REG[5] = BOX_NativeString("(recv) ((");
1191 REGB0 = TAG_Int(9);
1192 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1193 once_value_2 = fra.me.REG[5];
1194 register_static_object(&once_value_2);
1195 } else fra.me.REG[5] = once_value_2;
1196 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1197 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
1198 fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
1199 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
1200 if (!once_value_3) {
1201 fra.me.REG[0] = BOX_NativeString("_t)CALL((recv), (");
1202 REGB0 = TAG_Int(17);
1203 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1204 once_value_3 = fra.me.REG[0];
1205 register_static_object(&once_value_3);
1206 } else fra.me.REG[0] = once_value_3;
1207 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
1208 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
1209 if (!once_value_4) {
1210 fra.me.REG[2] = BOX_NativeString(")))");
1211 REGB0 = TAG_Int(3);
1212 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1213 once_value_4 = fra.me.REG[2];
1214 register_static_object(&once_value_4);
1215 } else fra.me.REG[2] = once_value_4;
1216 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
1217 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1218 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
1219 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1220 stack_frame_head = fra.me.prev;
1221 return;
1222 }
1223 val_t compiling_global___TableEltMeth___compile_to_c(val_t p0, val_t p1, val_t p2){
1224 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1225 val_t tmp;
1226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1227 fra.me.file = LOCATE_compiling_global;
1228 fra.me.line = 180;
1229 fra.me.meth = LOCATE_compiling_global___TableEltMeth___compile_to_c;
1230 fra.me.has_broke = 0;
1231 fra.me.REG_size = 3;
1232 fra.me.REG[0] = NIT_NULL;
1233 fra.me.REG[1] = NIT_NULL;
1234 fra.me.REG[2] = NIT_NULL;
1235 fra.me.REG[0] = p0;
1236 fra.me.REG[1] = p1;
1237 fra.me.REG[2] = p2;
1238 fra.me.REG[0] = CALL_table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
1239 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
1240 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1241 fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
1242 /* ./compiling//compiling_global.nit:183 */
1243 goto label1;
1244 label1: while(0);
1245 stack_frame_head = fra.me.prev;
1246 return fra.me.REG[0];
1247 }
1248 void compiling_global___TableEltSuper___compile_macros(val_t p0, val_t p1, val_t p2){
1249 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1250 val_t REGB0;
1251 val_t tmp;
1252 static val_t once_value_1; /* Once value */
1253 static val_t once_value_2; /* Once value */
1254 static val_t once_value_3; /* Once value */
1255 static val_t once_value_4; /* Once value */
1256 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1257 fra.me.file = LOCATE_compiling_global;
1258 fra.me.line = 188;
1259 fra.me.meth = LOCATE_compiling_global___TableEltSuper___compile_macros;
1260 fra.me.has_broke = 0;
1261 fra.me.REG_size = 6;
1262 fra.me.REG[0] = NIT_NULL;
1263 fra.me.REG[1] = NIT_NULL;
1264 fra.me.REG[2] = NIT_NULL;
1265 fra.me.REG[3] = NIT_NULL;
1266 fra.me.REG[4] = NIT_NULL;
1267 fra.me.REG[5] = NIT_NULL;
1268 fra.me.REG[0] = p0;
1269 fra.me.REG[1] = p1;
1270 fra.me.REG[2] = p2;
1271 fra.me.REG[0] = CALL_table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
1272 REGB0 = TAG_Int(0);
1273 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
1274 REGB0 = TAG_Int(7);
1275 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
1276 /* ./compiling//compiling_global.nit:191 */
1277 if (!once_value_1) {
1278 fra.me.REG[5] = BOX_NativeString("#define ");
1279 REGB0 = TAG_Int(8);
1280 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1281 once_value_1 = fra.me.REG[5];
1282 register_static_object(&once_value_1);
1283 } else fra.me.REG[5] = once_value_1;
1284 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1285 fra.me.REG[5] = CALL_compiling_base___MMLocalProperty___super_meth_call(fra.me.REG[0])(fra.me.REG[0]);
1286 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1287 if (!once_value_2) {
1288 fra.me.REG[5] = BOX_NativeString("(recv) ((");
1289 REGB0 = TAG_Int(9);
1290 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1291 once_value_2 = fra.me.REG[5];
1292 register_static_object(&once_value_2);
1293 } else fra.me.REG[5] = once_value_2;
1294 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1295 fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
1296 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
1297 if (!once_value_3) {
1298 fra.me.REG[0] = BOX_NativeString("_t)CALL((recv), (");
1299 REGB0 = TAG_Int(17);
1300 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1301 once_value_3 = fra.me.REG[0];
1302 register_static_object(&once_value_3);
1303 } else fra.me.REG[0] = once_value_3;
1304 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
1305 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
1306 if (!once_value_4) {
1307 fra.me.REG[2] = BOX_NativeString(")))");
1308 REGB0 = TAG_Int(3);
1309 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1310 once_value_4 = fra.me.REG[2];
1311 register_static_object(&once_value_4);
1312 } else fra.me.REG[2] = once_value_4;
1313 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
1314 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1315 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
1316 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1317 stack_frame_head = fra.me.prev;
1318 return;
1319 }
1320 val_t compiling_global___TableEltSuper___compile_to_c(val_t p0, val_t p1, val_t p2){
1321 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1322 val_t REGB0;
1323 val_t REGB1;
1324 val_t REGB2;
1325 val_t tmp;
1326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1327 fra.me.file = LOCATE_compiling_global;
1328 fra.me.line = 194;
1329 fra.me.meth = LOCATE_compiling_global___TableEltSuper___compile_to_c;
1330 fra.me.has_broke = 0;
1331 fra.me.REG_size = 6;
1332 fra.me.REG[0] = NIT_NULL;
1333 fra.me.REG[1] = NIT_NULL;
1334 fra.me.REG[2] = NIT_NULL;
1335 fra.me.REG[3] = NIT_NULL;
1336 fra.me.REG[4] = NIT_NULL;
1337 fra.me.REG[5] = NIT_NULL;
1338 fra.me.REG[0] = p0;
1339 fra.me.REG[1] = p1;
1340 fra.me.REG[2] = p2;
1341 fra.me.REG[1] = CALL_table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
1342 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]);
1343 fra.me.REG[0] = CALL_table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
1344 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
1345 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
1346 fra.me.REG[3] = CALL_partial_order___PartialOrderElement___linear_extension(fra.me.REG[3])(fra.me.REG[3]);
1347 REGB0 = TAG_Bool(false);
1348 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
1349 /* ./compiling//compiling_global.nit:200 */
1350 while(1) {
1351 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
1352 if (UNTAG_Bool(REGB1)) {
1353 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
1354 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[1]));
1355 /* ./compiling//compiling_global.nit:202 */
1356 if (UNTAG_Bool(REGB1)) {
1357 } else {
1358 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
1359 REGB1 = REGB2;
1360 }
1361 if (UNTAG_Bool(REGB1)) {
1362 REGB1 = TAG_Bool(true);
1363 REGB0 = REGB1;
1364 /* ./compiling//compiling_global.nit:203 */
1365 } else {
1366 /* ./compiling//compiling_global.nit:204 */
1367 if (UNTAG_Bool(REGB0)) {
1368 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
1369 REGB1 = CALL_partial_order___PartialOrderElement_____l(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
1370 } else {
1371 REGB2 = TAG_Bool(false);
1372 REGB1 = REGB2;
1373 }
1374 if (UNTAG_Bool(REGB1)) {
1375 REGB1 = CALL_abstractmetamodel___MMLocalClass___has_global_property(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
1376 /* ./compiling//compiling_global.nit:205 */
1377 if (UNTAG_Bool(REGB1)) {
1378 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
1379 fra.me.REG[4] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[4])(fra.me.REG[4]);
1380 /* ./compiling//compiling_global.nit:207 */
1381 goto label1;
1382 }
1383 }
1384 }
1385 } else {
1386 /* ./compiling//compiling_global.nit:200 */
1387 goto label2;
1388 }
1389 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
1390 }
1391 label2: while(0);
1392 /* ./compiling//compiling_global.nit:211 */
1393 fprintf(stderr, "Aborted");
1394 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 211);
1395 nit_exit(1);
1396 label1: while(0);
1397 stack_frame_head = fra.me.prev;
1398 return fra.me.REG[4];
1399 }
1400 void compiling_global___TableEltAttr___compile_macros(val_t p0, val_t p1, val_t p2){
1401 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1402 val_t REGB0;
1403 val_t tmp;
1404 static val_t once_value_1; /* Once value */
1405 static val_t once_value_2; /* Once value */
1406 static val_t once_value_3; /* Once value */
1407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1408 fra.me.file = LOCATE_compiling_global;
1409 fra.me.line = 216;
1410 fra.me.meth = LOCATE_compiling_global___TableEltAttr___compile_macros;
1411 fra.me.has_broke = 0;
1412 fra.me.REG_size = 6;
1413 fra.me.REG[0] = NIT_NULL;
1414 fra.me.REG[1] = NIT_NULL;
1415 fra.me.REG[2] = NIT_NULL;
1416 fra.me.REG[3] = NIT_NULL;
1417 fra.me.REG[4] = NIT_NULL;
1418 fra.me.REG[5] = NIT_NULL;
1419 fra.me.REG[0] = p0;
1420 fra.me.REG[1] = p1;
1421 fra.me.REG[2] = p2;
1422 fra.me.REG[0] = CALL_table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
1423 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
1424 REGB0 = TAG_Int(0);
1425 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
1426 REGB0 = TAG_Int(5);
1427 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
1428 /* ./compiling//compiling_global.nit:219 */
1429 if (!once_value_1) {
1430 fra.me.REG[5] = BOX_NativeString("#define ");
1431 REGB0 = TAG_Int(8);
1432 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1433 once_value_1 = fra.me.REG[5];
1434 register_static_object(&once_value_1);
1435 } else fra.me.REG[5] = once_value_1;
1436 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1437 fra.me.REG[0] = CALL_compiling_base___MMGlobalProperty___attr_access(fra.me.REG[0])(fra.me.REG[0]);
1438 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
1439 if (!once_value_2) {
1440 fra.me.REG[0] = BOX_NativeString("(recv) ATTR(recv, (");
1441 REGB0 = TAG_Int(19);
1442 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1443 once_value_2 = fra.me.REG[0];
1444 register_static_object(&once_value_2);
1445 } else fra.me.REG[0] = once_value_2;
1446 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
1447 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
1448 if (!once_value_3) {
1449 fra.me.REG[2] = BOX_NativeString("))");
1450 REGB0 = TAG_Int(2);
1451 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1452 once_value_3 = fra.me.REG[2];
1453 register_static_object(&once_value_3);
1454 } else fra.me.REG[2] = once_value_3;
1455 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
1456 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1457 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
1458 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1459 stack_frame_head = fra.me.prev;
1460 return;
1461 }
1462 val_t compiling_global___TableEltAttr___compile_to_c(val_t p0, val_t p1, val_t p2){
1463 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1464 val_t REGB0;
1465 val_t tmp;
1466 static val_t once_value_1; /* Once value */
1467 static val_t once_value_2; /* Once value */
1468 static val_t once_value_3; /* Once value */
1469 static val_t once_value_4; /* Once value */
1470 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1471 fra.me.file = LOCATE_compiling_global;
1472 fra.me.line = 222;
1473 fra.me.meth = LOCATE_compiling_global___TableEltAttr___compile_to_c;
1474 fra.me.has_broke = 0;
1475 fra.me.REG_size = 6;
1476 fra.me.REG[0] = NIT_NULL;
1477 fra.me.REG[1] = NIT_NULL;
1478 fra.me.REG[2] = NIT_NULL;
1479 fra.me.REG[3] = NIT_NULL;
1480 fra.me.REG[4] = NIT_NULL;
1481 fra.me.REG[5] = NIT_NULL;
1482 fra.me.REG[0] = p0;
1483 fra.me.REG[1] = p1;
1484 fra.me.REG[2] = p2;
1485 fra.me.REG[1] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
1486 fra.me.REG[3] = CALL_table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
1487 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
1488 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1489 REGB0 = TAG_Int(7);
1490 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
1491 /* ./compiling//compiling_global.nit:226 */
1492 if (!once_value_1) {
1493 fra.me.REG[5] = BOX_NativeString("/* ");
1494 REGB0 = TAG_Int(3);
1495 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1496 once_value_1 = fra.me.REG[5];
1497 register_static_object(&once_value_1);
1498 } else fra.me.REG[5] = once_value_1;
1499 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1500 fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
1501 REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1502 fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0);
1503 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
1504 if (!once_value_2) {
1505 fra.me.REG[0] = BOX_NativeString(": Attribute ");
1506 REGB0 = TAG_Int(12);
1507 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1508 once_value_2 = fra.me.REG[0];
1509 register_static_object(&once_value_2);
1510 } else fra.me.REG[0] = once_value_2;
1511 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
1512 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1513 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
1514 if (!once_value_3) {
1515 fra.me.REG[2] = BOX_NativeString("::");
1516 REGB0 = TAG_Int(2);
1517 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1518 once_value_3 = fra.me.REG[2];
1519 register_static_object(&once_value_3);
1520 } else fra.me.REG[2] = once_value_3;
1521 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
1522 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1523 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
1524 if (!once_value_4) {
1525 fra.me.REG[3] = BOX_NativeString(" */");
1526 REGB0 = TAG_Int(3);
1527 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1528 once_value_4 = fra.me.REG[3];
1529 register_static_object(&once_value_4);
1530 } else fra.me.REG[3] = once_value_4;
1531 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
1532 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1533 goto label5;
1534 label5: while(0);
1535 stack_frame_head = fra.me.prev;
1536 return fra.me.REG[4];
1537 }
1538 void compiling_global___AbsTableEltClass___compile_macros(val_t p0, val_t p1, val_t p2){
1539 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1540 val_t REGB0;
1541 val_t tmp;
1542 static val_t once_value_1; /* Once value */
1543 static val_t once_value_2; /* Once value */
1544 static val_t once_value_3; /* Once value */
1545 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1546 fra.me.file = LOCATE_compiling_global;
1547 fra.me.line = 234;
1548 fra.me.meth = LOCATE_compiling_global___AbsTableEltClass___compile_macros;
1549 fra.me.has_broke = 0;
1550 fra.me.REG_size = 6;
1551 fra.me.REG[0] = NIT_NULL;
1552 fra.me.REG[1] = NIT_NULL;
1553 fra.me.REG[2] = NIT_NULL;
1554 fra.me.REG[3] = NIT_NULL;
1555 fra.me.REG[4] = NIT_NULL;
1556 fra.me.REG[5] = NIT_NULL;
1557 fra.me.REG[0] = p0;
1558 fra.me.REG[1] = p1;
1559 fra.me.REG[2] = p2;
1560 REGB0 = TAG_Int(0);
1561 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
1562 REGB0 = TAG_Int(5);
1563 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
1564 /* ./compiling//compiling_global.nit:236 */
1565 if (!once_value_1) {
1566 fra.me.REG[5] = BOX_NativeString("#define ");
1567 REGB0 = TAG_Int(8);
1568 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1569 once_value_1 = fra.me.REG[5];
1570 register_static_object(&once_value_1);
1571 } else fra.me.REG[5] = once_value_1;
1572 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1573 fra.me.REG[0] = CALL_compiling_global___AbsTableEltClass___symbol(fra.me.REG[0])(fra.me.REG[0]);
1574 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
1575 if (!once_value_2) {
1576 fra.me.REG[0] = BOX_NativeString(" (");
1577 REGB0 = TAG_Int(2);
1578 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1579 once_value_2 = fra.me.REG[0];
1580 register_static_object(&once_value_2);
1581 } else fra.me.REG[0] = once_value_2;
1582 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
1583 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
1584 if (!once_value_3) {
1585 fra.me.REG[2] = BOX_NativeString(")");
1586 REGB0 = TAG_Int(1);
1587 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1588 once_value_3 = fra.me.REG[2];
1589 register_static_object(&once_value_3);
1590 } else fra.me.REG[2] = once_value_3;
1591 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
1592 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1593 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
1594 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1595 stack_frame_head = fra.me.prev;
1596 return;
1597 }
1598 val_t compiling_global___AbsTableEltClass___symbol(val_t p0){
1599 struct {struct stack_frame_t me;} fra;
1600 val_t tmp;
1601 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1602 fra.me.file = LOCATE_compiling_global;
1603 fra.me.line = 231;
1604 fra.me.meth = LOCATE_compiling_global___AbsTableEltClass___symbol;
1605 fra.me.has_broke = 0;
1606 fra.me.REG_size = 0;
1607 /* ./compiling//compiling_global.nit:231 */
1608 fprintf(stderr, "Deferred method called");
1609 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 231);
1610 nit_exit(1);
1611 stack_frame_head = fra.me.prev;
1612 return NIT_NULL;
1613 }
1614 val_t compiling_global___TableEltClassId___value(val_t p0, val_t p1){
1615 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1616 val_t REGB0;
1617 val_t tmp;
1618 static val_t once_value_1; /* Once value */
1619 static val_t once_value_2; /* Once value */
1620 static val_t once_value_3; /* Once value */
1621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1622 fra.me.file = LOCATE_compiling_global;
1623 fra.me.line = 243;
1624 fra.me.meth = LOCATE_compiling_global___TableEltClassId___value;
1625 fra.me.has_broke = 0;
1626 fra.me.REG_size = 4;
1627 fra.me.REG[0] = NIT_NULL;
1628 fra.me.REG[1] = NIT_NULL;
1629 fra.me.REG[2] = NIT_NULL;
1630 fra.me.REG[3] = NIT_NULL;
1631 fra.me.REG[0] = p0;
1632 fra.me.REG[1] = p1;
1633 REGB0 = TAG_Int(5);
1634 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
1635 /* ./compiling//compiling_global.nit:245 */
1636 if (!once_value_1) {
1637 fra.me.REG[3] = BOX_NativeString("");
1638 REGB0 = TAG_Int(0);
1639 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1640 once_value_1 = fra.me.REG[3];
1641 register_static_object(&once_value_1);
1642 } else fra.me.REG[3] = once_value_1;
1643 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
1644 fra.me.REG[1] = CALL_table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
1645 fra.me.REG[3] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
1646 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
1647 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1648 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1649 if (UNTAG_Bool(REGB0)) {
1650 fprintf(stderr, "Reciever is null");
1651 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 245);
1652 nit_exit(1);
1653 }
1654 REGB0 = CALL_table_computation___CompiledClass___id(fra.me.REG[3])(fra.me.REG[3]);
1655 fra.me.REG[3] = CALL_string___Object___to_s(REGB0)(REGB0);
1656 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
1657 if (!once_value_2) {
1658 fra.me.REG[3] = BOX_NativeString(" /* Id of ");
1659 REGB0 = TAG_Int(10);
1660 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1661 once_value_2 = fra.me.REG[3];
1662 register_static_object(&once_value_2);
1663 } else fra.me.REG[3] = once_value_2;
1664 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
1665 fra.me.REG[0] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
1666 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1667 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
1668 if (!once_value_3) {
1669 fra.me.REG[0] = BOX_NativeString(" */");
1670 REGB0 = TAG_Int(3);
1671 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1672 once_value_3 = fra.me.REG[0];
1673 register_static_object(&once_value_3);
1674 } else fra.me.REG[0] = once_value_3;
1675 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
1676 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1677 goto label4;
1678 label4: while(0);
1679 stack_frame_head = fra.me.prev;
1680 return fra.me.REG[2];
1681 }
1682 val_t compiling_global___TableEltClassId___symbol(val_t p0){
1683 struct {struct stack_frame_t me;} fra;
1684 val_t tmp;
1685 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1686 fra.me.file = LOCATE_compiling_global;
1687 fra.me.line = 241;
1688 fra.me.meth = LOCATE_compiling_global___TableEltClassId___symbol;
1689 fra.me.has_broke = 0;
1690 fra.me.REG_size = 1;
1691 fra.me.REG[0] = NIT_NULL;
1692 fra.me.REG[0] = p0;
1693 fra.me.REG[0] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
1694 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1695 fra.me.REG[0] = CALL_compiling_base___MMGlobalClass___id_id(fra.me.REG[0])(fra.me.REG[0]);
1696 /* ./compiling//compiling_global.nit:241 */
1697 goto label1;
1698 label1: while(0);
1699 stack_frame_head = fra.me.prev;
1700 return fra.me.REG[0];
1701 }
1702 val_t compiling_global___TableEltClassInitTable___compile_to_c(val_t p0, val_t p1, val_t p2){
1703 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1704 val_t REGB0;
1705 val_t REGB1;
1706 val_t REGB2;
1707 val_t REGB3;
1708 val_t tmp;
1709 static val_t once_value_3; /* Once value */
1710 static val_t once_value_4; /* Once value */
1711 static val_t once_value_5; /* Once value */
1712 static val_t once_value_6; /* Once value */
1713 static val_t once_value_7; /* Once value */
1714 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1715 fra.me.file = LOCATE_compiling_global;
1716 fra.me.line = 252;
1717 fra.me.meth = LOCATE_compiling_global___TableEltClassInitTable___compile_to_c;
1718 fra.me.has_broke = 0;
1719 fra.me.REG_size = 7;
1720 fra.me.REG[0] = NIT_NULL;
1721 fra.me.REG[1] = NIT_NULL;
1722 fra.me.REG[2] = NIT_NULL;
1723 fra.me.REG[3] = NIT_NULL;
1724 fra.me.REG[4] = NIT_NULL;
1725 fra.me.REG[5] = NIT_NULL;
1726 fra.me.REG[6] = NIT_NULL;
1727 fra.me.REG[0] = p0;
1728 fra.me.REG[1] = p1;
1729 fra.me.REG[2] = p2;
1730 fra.me.REG[1] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
1731 fra.me.REG[3] = CALL_table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
1732 fra.me.REG[4] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
1733 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
1734 fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1735 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
1736 fra.me.REG[3] = CALL_partial_order___PartialOrderElement___reverse_linear_extension(fra.me.REG[3])(fra.me.REG[3]);
1737 REGB0 = TAG_Int(0);
1738 /* ./compiling//compiling_global.nit:258 */
1739 while(1) {
1740 fra.me.REG[5] = fra.me.REG[3];
1741 REGB1 = REGB0;
1742 REGB2 = TAG_Int(0);
1743 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
1744 /* ./../lib/standard//collection//array.nit:233 */
1745 if (UNTAG_Bool(REGB2)) {
1746 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1747 if (UNTAG_Bool(REGB2)) {
1748 } else {
1749 fprintf(stderr, "Uninitialized attribute %s", "_length");
1750 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
1751 nit_exit(1);
1752 }
1753 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
1754 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1755 /* ./../lib/standard//collection//array.nit:233 */
1756 } else {
1757 REGB3 = TAG_Bool(false);
1758 REGB2 = REGB3;
1759 }
1760 if (UNTAG_Bool(REGB2)) {
1761 } else {
1762 fprintf(stderr, "Assert %s failed", "'index'");
1763 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
1764 nit_exit(1);
1765 }
1766 fra.me.REG[5] = ATTR_array___Array____items(fra.me.REG[5]);
1767 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1768 /* ./../lib/standard//collection//array.nit:234 */
1769 if (UNTAG_Bool(REGB2)) {
1770 fprintf(stderr, "Reciever is null");
1771 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
1772 nit_exit(1);
1773 }
1774 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
1775 /* ./../lib/standard//collection//array.nit:234 */
1776 goto label1;
1777 label1: while(0);
1778 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1779 /* ./compiling//compiling_global.nit:258 */
1780 if (UNTAG_Bool(REGB1)) {
1781 fprintf(stderr, "Reciever is null");
1782 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 258);
1783 nit_exit(1);
1784 }
1785 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
1786 fra.me.REG[6] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
1787 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
1788 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[6]));
1789 if (UNTAG_Bool(REGB1)) {
1790 } else {
1791 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1792 REGB1 = REGB2;
1793 }
1794 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1795 if (UNTAG_Bool(REGB1)) {
1796 REGB1 = TAG_Int(1);
1797 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1798 REGB0 = REGB1;
1799 /* ./compiling//compiling_global.nit:259 */
1800 } else {
1801 /* ./compiling//compiling_global.nit:258 */
1802 goto label2;
1803 }
1804 }
1805 label2: while(0);
1806 REGB1 = TAG_Int(9);
1807 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
1808 /* ./compiling//compiling_global.nit:261 */
1809 if (!once_value_3) {
1810 fra.me.REG[6] = BOX_NativeString("");
1811 REGB1 = TAG_Int(0);
1812 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
1813 once_value_3 = fra.me.REG[6];
1814 register_static_object(&once_value_3);
1815 } else fra.me.REG[6] = once_value_3;
1816 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
1817 fra.me.REG[6] = CALL_string___Object___to_s(REGB0)(REGB0);
1818 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
1819 if (!once_value_4) {
1820 fra.me.REG[6] = BOX_NativeString(" /* ");
1821 REGB0 = TAG_Int(4);
1822 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
1823 once_value_4 = fra.me.REG[6];
1824 register_static_object(&once_value_4);
1825 } else fra.me.REG[6] = once_value_4;
1826 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
1827 fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
1828 REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1829 fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0);
1830 array___Array___add(fra.me.REG[3], fra.me.REG[0]);
1831 if (!once_value_5) {
1832 fra.me.REG[0] = BOX_NativeString(": ");
1833 REGB0 = TAG_Int(2);
1834 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1835 once_value_5 = fra.me.REG[0];
1836 register_static_object(&once_value_5);
1837 } else fra.me.REG[0] = once_value_5;
1838 array___Array___add(fra.me.REG[3], fra.me.REG[0]);
1839 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1840 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
1841 if (!once_value_6) {
1842 fra.me.REG[2] = BOX_NativeString(" < ");
1843 REGB0 = TAG_Int(3);
1844 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1845 once_value_6 = fra.me.REG[2];
1846 register_static_object(&once_value_6);
1847 } else fra.me.REG[2] = once_value_6;
1848 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
1849 fra.me.REG[4] = CALL_table_computation___CompiledClass___local_class(fra.me.REG[4])(fra.me.REG[4]);
1850 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1851 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
1852 if (!once_value_7) {
1853 fra.me.REG[4] = BOX_NativeString(": superclass init_table position */");
1854 REGB0 = TAG_Int(35);
1855 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
1856 once_value_7 = fra.me.REG[4];
1857 register_static_object(&once_value_7);
1858 } else fra.me.REG[4] = once_value_7;
1859 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
1860 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1861 goto label8;
1862 label8: while(0);
1863 stack_frame_head = fra.me.prev;
1864 return fra.me.REG[3];
1865 }
1866 val_t compiling_global___TableEltClassInitTable___symbol(val_t p0){
1867 struct {struct stack_frame_t me;} fra;
1868 val_t tmp;
1869 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1870 fra.me.file = LOCATE_compiling_global;
1871 fra.me.line = 250;
1872 fra.me.meth = LOCATE_compiling_global___TableEltClassInitTable___symbol;
1873 fra.me.has_broke = 0;
1874 fra.me.REG_size = 1;
1875 fra.me.REG[0] = NIT_NULL;
1876 fra.me.REG[0] = p0;
1877 fra.me.REG[0] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
1878 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1879 fra.me.REG[0] = CALL_compiling_base___MMGlobalClass___init_table_pos_id(fra.me.REG[0])(fra.me.REG[0]);
1880 /* ./compiling//compiling_global.nit:250 */
1881 goto label1;
1882 label1: while(0);
1883 stack_frame_head = fra.me.prev;
1884 return fra.me.REG[0];
1885 }
1886 val_t compiling_global___TableEltClassColor___compile_to_c(val_t p0, val_t p1, val_t p2){
1887 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1888 val_t REGB0;
1889 val_t tmp;
1890 static val_t once_value_1; /* Once value */
1891 static val_t once_value_2; /* Once value */
1892 static val_t once_value_3; /* Once value */
1893 static val_t once_value_4; /* Once value */
1894 static val_t once_value_5; /* Once value */
1895 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1896 fra.me.file = LOCATE_compiling_global;
1897 fra.me.line = 273;
1898 fra.me.meth = LOCATE_compiling_global___TableEltClassColor___compile_to_c;
1899 fra.me.has_broke = 0;
1900 fra.me.REG_size = 6;
1901 fra.me.REG[0] = NIT_NULL;
1902 fra.me.REG[1] = NIT_NULL;
1903 fra.me.REG[2] = NIT_NULL;
1904 fra.me.REG[3] = NIT_NULL;
1905 fra.me.REG[4] = NIT_NULL;
1906 fra.me.REG[5] = NIT_NULL;
1907 fra.me.REG[0] = p0;
1908 fra.me.REG[1] = p1;
1909 fra.me.REG[2] = p2;
1910 fra.me.REG[1] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
1911 fra.me.REG[3] = CALL_table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
1912 fra.me.REG[4] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
1913 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
1914 fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1915 REGB0 = TAG_Int(9);
1916 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
1917 /* ./compiling//compiling_global.nit:277 */
1918 if (!once_value_1) {
1919 fra.me.REG[5] = BOX_NativeString("");
1920 REGB0 = TAG_Int(0);
1921 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1922 once_value_1 = fra.me.REG[5];
1923 register_static_object(&once_value_1);
1924 } else fra.me.REG[5] = once_value_1;
1925 array___Array___add(fra.me.REG[3], fra.me.REG[5]);
1926 REGB0 = CALL_table_computation___CompiledClass___id(fra.me.REG[4])(fra.me.REG[4]);
1927 fra.me.REG[5] = CALL_string___Object___to_s(REGB0)(REGB0);
1928 array___Array___add(fra.me.REG[3], fra.me.REG[5]);
1929 if (!once_value_2) {
1930 fra.me.REG[5] = BOX_NativeString(" /* ");
1931 REGB0 = TAG_Int(4);
1932 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1933 once_value_2 = fra.me.REG[5];
1934 register_static_object(&once_value_2);
1935 } else fra.me.REG[5] = once_value_2;
1936 array___Array___add(fra.me.REG[3], fra.me.REG[5]);
1937 fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
1938 REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1939 fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0);
1940 array___Array___add(fra.me.REG[3], fra.me.REG[0]);
1941 if (!once_value_3) {
1942 fra.me.REG[0] = BOX_NativeString(": ");
1943 REGB0 = TAG_Int(2);
1944 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1945 once_value_3 = fra.me.REG[0];
1946 register_static_object(&once_value_3);
1947 } else fra.me.REG[0] = once_value_3;
1948 array___Array___add(fra.me.REG[3], fra.me.REG[0]);
1949 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1950 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
1951 if (!once_value_4) {
1952 fra.me.REG[2] = BOX_NativeString(" < ");
1953 REGB0 = TAG_Int(3);
1954 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1955 once_value_4 = fra.me.REG[2];
1956 register_static_object(&once_value_4);
1957 } else fra.me.REG[2] = once_value_4;
1958 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
1959 fra.me.REG[4] = CALL_table_computation___CompiledClass___local_class(fra.me.REG[4])(fra.me.REG[4]);
1960 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1961 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
1962 if (!once_value_5) {
1963 fra.me.REG[4] = BOX_NativeString(": superclass typecheck marker */");
1964 REGB0 = TAG_Int(32);
1965 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
1966 once_value_5 = fra.me.REG[4];
1967 register_static_object(&once_value_5);
1968 } else fra.me.REG[4] = once_value_5;
1969 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
1970 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1971 goto label6;
1972 label6: while(0);
1973 stack_frame_head = fra.me.prev;
1974 return fra.me.REG[3];
1975 }
1976 val_t compiling_global___TableEltClassColor___symbol(val_t p0){
1977 struct {struct stack_frame_t me;} fra;
1978 val_t tmp;
1979 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1980 fra.me.file = LOCATE_compiling_global;
1981 fra.me.line = 266;
1982 fra.me.meth = LOCATE_compiling_global___TableEltClassColor___symbol;
1983 fra.me.has_broke = 0;
1984 fra.me.REG_size = 1;
1985 fra.me.REG[0] = NIT_NULL;
1986 fra.me.REG[0] = p0;
1987 fra.me.REG[0] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
1988 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1989 fra.me.REG[0] = CALL_compiling_base___MMGlobalClass___color_id(fra.me.REG[0])(fra.me.REG[0]);
1990 /* ./compiling//compiling_global.nit:266 */
1991 goto label1;
1992 label1: while(0);
1993 stack_frame_head = fra.me.prev;
1994 return fra.me.REG[0];
1995 }
1996 val_t compiling_global___TableEltClassColor___value(val_t p0, val_t p1){
1997 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1998 val_t REGB0;
1999 val_t tmp;
2000 static val_t once_value_1; /* Once value */
2001 static val_t once_value_2; /* Once value */
2002 static val_t once_value_3; /* Once value */
2003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2004 fra.me.file = LOCATE_compiling_global;
2005 fra.me.line = 268;
2006 fra.me.meth = LOCATE_compiling_global___TableEltClassColor___value;
2007 fra.me.has_broke = 0;
2008 fra.me.REG_size = 4;
2009 fra.me.REG[0] = NIT_NULL;
2010 fra.me.REG[1] = NIT_NULL;
2011 fra.me.REG[2] = NIT_NULL;
2012 fra.me.REG[3] = NIT_NULL;
2013 fra.me.REG[0] = p0;
2014 fra.me.REG[1] = p1;
2015 REGB0 = TAG_Int(5);
2016 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
2017 /* ./compiling//compiling_global.nit:270 */
2018 if (!once_value_1) {
2019 fra.me.REG[3] = BOX_NativeString("");
2020 REGB0 = TAG_Int(0);
2021 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2022 once_value_1 = fra.me.REG[3];
2023 register_static_object(&once_value_1);
2024 } else fra.me.REG[3] = once_value_1;
2025 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2026 fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
2027 REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2028 fra.me.REG[1] = CALL_string___Object___to_s(REGB0)(REGB0);
2029 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
2030 if (!once_value_2) {
2031 fra.me.REG[1] = BOX_NativeString(" /* Color of ");
2032 REGB0 = TAG_Int(13);
2033 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
2034 once_value_2 = fra.me.REG[1];
2035 register_static_object(&once_value_2);
2036 } else fra.me.REG[1] = once_value_2;
2037 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
2038 fra.me.REG[0] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
2039 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2040 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
2041 if (!once_value_3) {
2042 fra.me.REG[0] = BOX_NativeString(" */");
2043 REGB0 = TAG_Int(3);
2044 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2045 once_value_3 = fra.me.REG[0];
2046 register_static_object(&once_value_3);
2047 } else fra.me.REG[0] = once_value_3;
2048 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
2049 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2050 goto label4;
2051 label4: while(0);
2052 stack_frame_head = fra.me.prev;
2053 return fra.me.REG[2];
2054 }
2055 val_t compiling_global___TableEltComposite___compile_to_c(val_t p0, val_t p1, val_t p2){
2056 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2057 val_t tmp;
2058 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2059 fra.me.file = LOCATE_compiling_global;
2060 fra.me.line = 282;
2061 fra.me.meth = LOCATE_compiling_global___TableEltComposite___compile_to_c;
2062 fra.me.has_broke = 0;
2063 fra.me.REG_size = 3;
2064 fra.me.REG[0] = NIT_NULL;
2065 fra.me.REG[1] = NIT_NULL;
2066 fra.me.REG[2] = NIT_NULL;
2067 fra.me.REG[0] = p0;
2068 fra.me.REG[1] = p1;
2069 fra.me.REG[2] = p2;
2070 /* ./compiling//compiling_global.nit:282 */
2071 fprintf(stderr, "Aborted");
2072 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 282);
2073 nit_exit(1);
2074 stack_frame_head = fra.me.prev;
2075 return NIT_NULL;
2076 }
2077 val_t compiling_global___TableEltClassSelfId___compile_to_c(val_t p0, val_t p1, val_t p2){
2078 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2079 val_t REGB0;
2080 val_t tmp;
2081 static val_t once_value_1; /* Once value */
2082 static val_t once_value_2; /* Once value */
2083 static val_t once_value_3; /* Once value */
2084 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2085 fra.me.file = LOCATE_compiling_global;
2086 fra.me.line = 286;
2087 fra.me.meth = LOCATE_compiling_global___TableEltClassSelfId___compile_to_c;
2088 fra.me.has_broke = 0;
2089 fra.me.REG_size = 5;
2090 fra.me.REG[0] = NIT_NULL;
2091 fra.me.REG[1] = NIT_NULL;
2092 fra.me.REG[2] = NIT_NULL;
2093 fra.me.REG[3] = NIT_NULL;
2094 fra.me.REG[4] = NIT_NULL;
2095 fra.me.REG[0] = p0;
2096 fra.me.REG[1] = p1;
2097 fra.me.REG[2] = p2;
2098 fra.me.REG[1] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
2099 REGB0 = TAG_Int(5);
2100 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
2101 /* ./compiling//compiling_global.nit:289 */
2102 if (!once_value_1) {
2103 fra.me.REG[4] = BOX_NativeString("");
2104 REGB0 = TAG_Int(0);
2105 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2106 once_value_1 = fra.me.REG[4];
2107 register_static_object(&once_value_1);
2108 } else fra.me.REG[4] = once_value_1;
2109 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
2110 fra.me.REG[4] = CALL_table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
2111 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
2112 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
2113 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2114 if (UNTAG_Bool(REGB0)) {
2115 fprintf(stderr, "Reciever is null");
2116 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 289);
2117 nit_exit(1);
2118 }
2119 REGB0 = CALL_table_computation___CompiledClass___id(fra.me.REG[2])(fra.me.REG[2]);
2120 fra.me.REG[2] = CALL_string___Object___to_s(REGB0)(REGB0);
2121 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
2122 if (!once_value_2) {
2123 fra.me.REG[2] = BOX_NativeString(" /* ");
2124 REGB0 = TAG_Int(4);
2125 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
2126 once_value_2 = fra.me.REG[2];
2127 register_static_object(&once_value_2);
2128 } else fra.me.REG[2] = once_value_2;
2129 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
2130 fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
2131 REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2132 fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0);
2133 array___Array___add(fra.me.REG[3], fra.me.REG[0]);
2134 if (!once_value_3) {
2135 fra.me.REG[0] = BOX_NativeString(": Identity */");
2136 REGB0 = TAG_Int(13);
2137 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2138 once_value_3 = fra.me.REG[0];
2139 register_static_object(&once_value_3);
2140 } else fra.me.REG[0] = once_value_3;
2141 array___Array___add(fra.me.REG[3], fra.me.REG[0]);
2142 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2143 goto label4;
2144 label4: while(0);
2145 stack_frame_head = fra.me.prev;
2146 return fra.me.REG[3];
2147 }
2148 val_t compiling_global___TableEltClassObjectSize___compile_to_c(val_t p0, val_t p1, val_t p2){
2149 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2150 val_t REGB0;
2151 val_t REGB1;
2152 val_t REGB2;
2153 val_t tmp;
2154 static val_t once_value_1; /* Once value */
2155 static val_t once_value_3; /* Once value */
2156 static val_t once_value_4; /* Once value */
2157 static val_t once_value_5; /* Once value */
2158 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2159 fra.me.file = LOCATE_compiling_global;
2160 fra.me.line = 294;
2161 fra.me.meth = LOCATE_compiling_global___TableEltClassObjectSize___compile_to_c;
2162 fra.me.has_broke = 0;
2163 fra.me.REG_size = 5;
2164 fra.me.REG[0] = NIT_NULL;
2165 fra.me.REG[1] = NIT_NULL;
2166 fra.me.REG[2] = NIT_NULL;
2167 fra.me.REG[3] = NIT_NULL;
2168 fra.me.REG[4] = NIT_NULL;
2169 fra.me.REG[0] = p0;
2170 fra.me.REG[1] = p1;
2171 fra.me.REG[2] = p2;
2172 REGB0 = TAG_Int(0);
2173 fra.me.REG[1] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
2174 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
2175 /* ./compiling//compiling_global.nit:298 */
2176 if (!once_value_1) {
2177 fra.me.REG[4] = BOX_NativeString("NativeArray");
2178 REGB1 = TAG_Int(11);
2179 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
2180 once_value_1 = fra.me.REG[4];
2181 register_static_object(&once_value_1);
2182 } else fra.me.REG[4] = once_value_1;
2183 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
2184 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
2185 if (UNTAG_Bool(REGB1)) {
2186 } else {
2187 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2188 REGB1 = REGB2;
2189 }
2190 if (UNTAG_Bool(REGB1)) {
2191 REGB1 = TAG_Int(1);
2192 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
2193 REGB0 = REGB1;
2194 /* ./compiling//compiling_global.nit:299 */
2195 } else {
2196 fra.me.REG[4] = CALL_table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
2197 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
2198 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
2199 fra.me.REG[2] = CALL_table_computation___CompiledClass___instance_table(fra.me.REG[2])(fra.me.REG[2]);
2200 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
2201 /* ./compiling//compiling_global.nit:303 */
2202 while(1) {
2203 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
2204 if (UNTAG_Bool(REGB1)) {
2205 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
2206 REGB1 = TAG_Int(1);
2207 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2208 REGB0 = REGB1;
2209 /* ./compiling//compiling_global.nit:304 */
2210 } else {
2211 /* ./compiling//compiling_global.nit:303 */
2212 goto label2;
2213 }
2214 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
2215 }
2216 label2: while(0);
2217 }
2218 REGB1 = TAG_Int(5);
2219 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1);
2220 /* ./compiling//compiling_global.nit:307 */
2221 if (!once_value_3) {
2222 fra.me.REG[4] = BOX_NativeString("");
2223 REGB1 = TAG_Int(0);
2224 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
2225 once_value_3 = fra.me.REG[4];
2226 register_static_object(&once_value_3);
2227 } else fra.me.REG[4] = once_value_3;
2228 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
2229 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
2230 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
2231 if (!once_value_4) {
2232 fra.me.REG[4] = BOX_NativeString(" /* ");
2233 REGB0 = TAG_Int(4);
2234 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2235 once_value_4 = fra.me.REG[4];
2236 register_static_object(&once_value_4);
2237 } else fra.me.REG[4] = once_value_4;
2238 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
2239 fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
2240 REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2241 fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0);
2242 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
2243 if (!once_value_5) {
2244 fra.me.REG[0] = BOX_NativeString(": Object size (-1 if a NativeArray)*/");
2245 REGB0 = TAG_Int(37);
2246 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2247 once_value_5 = fra.me.REG[0];
2248 register_static_object(&once_value_5);
2249 } else fra.me.REG[0] = once_value_5;
2250 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
2251 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2252 goto label6;
2253 label6: while(0);
2254 stack_frame_head = fra.me.prev;
2255 return fra.me.REG[2];
2256 }
2257 val_t compiling_global___TableEltObjectId___compile_to_c(val_t p0, val_t p1, val_t p2){
2258 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2259 val_t REGB0;
2260 val_t tmp;
2261 static val_t once_value_1; /* Once value */
2262 static val_t once_value_2; /* Once value */
2263 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2264 fra.me.file = LOCATE_compiling_global;
2265 fra.me.line = 312;
2266 fra.me.meth = LOCATE_compiling_global___TableEltObjectId___compile_to_c;
2267 fra.me.has_broke = 0;
2268 fra.me.REG_size = 4;
2269 fra.me.REG[0] = NIT_NULL;
2270 fra.me.REG[1] = NIT_NULL;
2271 fra.me.REG[2] = NIT_NULL;
2272 fra.me.REG[3] = NIT_NULL;
2273 fra.me.REG[0] = p0;
2274 fra.me.REG[1] = p1;
2275 fra.me.REG[2] = p2;
2276 fra.me.REG[1] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
2277 REGB0 = TAG_Int(3);
2278 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
2279 /* ./compiling//compiling_global.nit:315 */
2280 if (!once_value_1) {
2281 fra.me.REG[3] = BOX_NativeString("/* ");
2282 REGB0 = TAG_Int(3);
2283 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2284 once_value_1 = fra.me.REG[3];
2285 register_static_object(&once_value_1);
2286 } else fra.me.REG[3] = once_value_1;
2287 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2288 fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
2289 REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2290 fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0);
2291 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
2292 if (!once_value_2) {
2293 fra.me.REG[0] = BOX_NativeString(": Object_id */");
2294 REGB0 = TAG_Int(14);
2295 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2296 once_value_2 = fra.me.REG[0];
2297 register_static_object(&once_value_2);
2298 } else fra.me.REG[0] = once_value_2;
2299 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
2300 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2301 goto label3;
2302 label3: while(0);
2303 stack_frame_head = fra.me.prev;
2304 return fra.me.REG[2];
2305 }
2306 val_t compiling_global___TableEltVftPointer___compile_to_c(val_t p0, val_t p1, val_t p2){
2307 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2308 val_t REGB0;
2309 val_t tmp;
2310 static val_t once_value_1; /* Once value */
2311 static val_t once_value_2; /* Once value */
2312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2313 fra.me.file = LOCATE_compiling_global;
2314 fra.me.line = 320;
2315 fra.me.meth = LOCATE_compiling_global___TableEltVftPointer___compile_to_c;
2316 fra.me.has_broke = 0;
2317 fra.me.REG_size = 4;
2318 fra.me.REG[0] = NIT_NULL;
2319 fra.me.REG[1] = NIT_NULL;
2320 fra.me.REG[2] = NIT_NULL;
2321 fra.me.REG[3] = NIT_NULL;
2322 fra.me.REG[0] = p0;
2323 fra.me.REG[1] = p1;
2324 fra.me.REG[2] = p2;
2325 fra.me.REG[1] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
2326 REGB0 = TAG_Int(3);
2327 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
2328 /* ./compiling//compiling_global.nit:323 */
2329 if (!once_value_1) {
2330 fra.me.REG[3] = BOX_NativeString("/* ");
2331 REGB0 = TAG_Int(3);
2332 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2333 once_value_1 = fra.me.REG[3];
2334 register_static_object(&once_value_1);
2335 } else fra.me.REG[3] = once_value_1;
2336 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2337 fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
2338 REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2339 fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0);
2340 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
2341 if (!once_value_2) {
2342 fra.me.REG[0] = BOX_NativeString(": Pointer to the classtable */");
2343 REGB0 = TAG_Int(30);
2344 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2345 once_value_2 = fra.me.REG[0];
2346 register_static_object(&once_value_2);
2347 } else fra.me.REG[0] = once_value_2;
2348 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
2349 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2350 goto label3;
2351 label3: while(0);
2352 stack_frame_head = fra.me.prev;
2353 return fra.me.REG[2];
2354 }
2355 void compiling_global___MMLocalClass___declare_tables_to_c(val_t p0, val_t p1){
2356 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
2357 val_t REGB0;
2358 val_t REGB1;
2359 val_t tmp;
2360 static val_t once_value_1; /* Once value */
2361 static val_t once_value_2; /* Once value */
2362 static val_t once_value_3; /* Once value */
2363 static val_t once_value_4; /* Once value */
2364 static val_t once_value_5; /* Once value */
2365 static val_t once_value_6; /* Once value */
2366 static val_t once_value_7; /* Once value */
2367 static val_t once_value_8; /* Once value */
2368 static val_t once_value_9; /* Once value */
2369 static val_t once_value_10; /* Once value */
2370 static val_t once_value_11; /* Once value */
2371 static val_t once_value_12; /* Once value */
2372 static val_t once_value_13; /* Once value */
2373 static val_t once_value_14; /* Once value */
2374 static val_t once_value_15; /* Once value */
2375 static val_t once_value_16; /* Once value */
2376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2377 fra.me.file = LOCATE_compiling_global;
2378 fra.me.line = 339;
2379 fra.me.meth = LOCATE_compiling_global___MMLocalClass___declare_tables_to_c;
2380 fra.me.has_broke = 0;
2381 fra.me.REG_size = 7;
2382 fra.me.REG[0] = NIT_NULL;
2383 fra.me.REG[1] = NIT_NULL;
2384 fra.me.REG[2] = NIT_NULL;
2385 fra.me.REG[3] = NIT_NULL;
2386 fra.me.REG[4] = NIT_NULL;
2387 fra.me.REG[5] = NIT_NULL;
2388 fra.me.REG[6] = NIT_NULL;
2389 fra.me.REG[0] = p0;
2390 fra.me.REG[1] = p1;
2391 REGB0 = TAG_Int(0);
2392 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
2393 /* ./compiling//compiling_global.nit:342 */
2394 if (!once_value_1) {
2395 fra.me.REG[3] = BOX_NativeString("");
2396 REGB0 = TAG_Int(0);
2397 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2398 once_value_1 = fra.me.REG[3];
2399 register_static_object(&once_value_1);
2400 } else fra.me.REG[3] = once_value_1;
2401 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2402 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2403 fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
2404 REGB0 = TAG_Int(0);
2405 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
2406 REGB0 = TAG_Int(3);
2407 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
2408 /* ./compiling//compiling_global.nit:344 */
2409 if (!once_value_2) {
2410 fra.me.REG[5] = BOX_NativeString("extern const classtable_elt_t VFT_");
2411 REGB0 = TAG_Int(34);
2412 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
2413 once_value_2 = fra.me.REG[5];
2414 register_static_object(&once_value_2);
2415 } else fra.me.REG[5] = once_value_2;
2416 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
2417 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
2418 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
2419 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
2420 if (!once_value_3) {
2421 fra.me.REG[5] = BOX_NativeString("[];");
2422 REGB0 = TAG_Int(3);
2423 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
2424 once_value_3 = fra.me.REG[5];
2425 register_static_object(&once_value_3);
2426 } else fra.me.REG[5] = once_value_3;
2427 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
2428 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2429 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
2430 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2431 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
2432 /* ./compiling//compiling_global.nit:345 */
2433 if (!once_value_4) {
2434 fra.me.REG[4] = BOX_NativeString("NativeArray");
2435 REGB0 = TAG_Int(11);
2436 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2437 once_value_4 = fra.me.REG[4];
2438 register_static_object(&once_value_4);
2439 } else fra.me.REG[4] = once_value_4;
2440 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
2441 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
2442 if (UNTAG_Bool(REGB0)) {
2443 } else {
2444 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2445 REGB0 = REGB1;
2446 }
2447 if (UNTAG_Bool(REGB0)) {
2448 REGB0 = TAG_Int(0);
2449 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
2450 /* ./compiling//compiling_global.nit:346 */
2451 if (!once_value_5) {
2452 fra.me.REG[3] = BOX_NativeString("val_t NEW_NativeArray(size_t length, size_t size);");
2453 REGB0 = TAG_Int(50);
2454 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2455 once_value_5 = fra.me.REG[3];
2456 register_static_object(&once_value_5);
2457 } else fra.me.REG[3] = once_value_5;
2458 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
2459 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2460 } else {
2461 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2462 /* ./compiling//compiling_global.nit:347 */
2463 if (UNTAG_Bool(REGB0)) {
2464 } else {
2465 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2466 if (UNTAG_Bool(REGB1)) {
2467 REGB1 = TAG_Bool(false);
2468 REGB0 = REGB1;
2469 } else {
2470 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2471 REGB0 = REGB1;
2472 }
2473 }
2474 if (UNTAG_Bool(REGB0)) {
2475 } else {
2476 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2477 /* ./compiling//compiling_global.nit:349 */
2478 if (UNTAG_Bool(REGB0)) {
2479 fprintf(stderr, "Reciever is null");
2480 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 349);
2481 nit_exit(1);
2482 }
2483 REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]);
2484 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2485 if (UNTAG_Bool(REGB0)) {
2486 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2487 /* ./compiling//compiling_global.nit:350 */
2488 if (UNTAG_Bool(REGB0)) {
2489 fprintf(stderr, "Reciever is null");
2490 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 350);
2491 nit_exit(1);
2492 }
2493 fra.me.REG[2] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[2])(fra.me.REG[2]);
2494 REGB0 = TAG_Int(3);
2495 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
2496 /* ./compiling//compiling_global.nit:351 */
2497 if (!once_value_6) {
2498 fra.me.REG[3] = BOX_NativeString("struct TBOX_");
2499 REGB0 = TAG_Int(12);
2500 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2501 once_value_6 = fra.me.REG[3];
2502 register_static_object(&once_value_6);
2503 } else fra.me.REG[3] = once_value_6;
2504 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
2505 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
2506 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2507 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
2508 if (!once_value_7) {
2509 fra.me.REG[3] = BOX_NativeString("");
2510 REGB0 = TAG_Int(0);
2511 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2512 once_value_7 = fra.me.REG[3];
2513 register_static_object(&once_value_7);
2514 } else fra.me.REG[3] = once_value_7;
2515 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
2516 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2517 REGB0 = TAG_Int(0);
2518 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
2519 REGB0 = TAG_Int(5);
2520 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
2521 /* ./compiling//compiling_global.nit:352 */
2522 if (!once_value_8) {
2523 fra.me.REG[6] = BOX_NativeString("");
2524 REGB0 = TAG_Int(0);
2525 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
2526 once_value_8 = fra.me.REG[6];
2527 register_static_object(&once_value_8);
2528 } else fra.me.REG[6] = once_value_8;
2529 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
2530 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
2531 if (!once_value_9) {
2532 fra.me.REG[6] = BOX_NativeString(" { const classtable_elt_t * vft; bigint object_id; ");
2533 REGB0 = TAG_Int(51);
2534 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
2535 once_value_9 = fra.me.REG[6];
2536 register_static_object(&once_value_9);
2537 } else fra.me.REG[6] = once_value_9;
2538 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
2539 array___Array___add(fra.me.REG[5], fra.me.REG[2]);
2540 if (!once_value_10) {
2541 fra.me.REG[6] = BOX_NativeString(" val;};");
2542 REGB0 = TAG_Int(7);
2543 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
2544 once_value_10 = fra.me.REG[6];
2545 register_static_object(&once_value_10);
2546 } else fra.me.REG[6] = once_value_10;
2547 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
2548 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
2549 array___Array___add(fra.me.REG[3], fra.me.REG[5]);
2550 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2551 REGB0 = TAG_Int(0);
2552 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
2553 REGB0 = TAG_Int(5);
2554 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
2555 /* ./compiling//compiling_global.nit:353 */
2556 if (!once_value_11) {
2557 fra.me.REG[6] = BOX_NativeString("val_t BOX_");
2558 REGB0 = TAG_Int(10);
2559 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
2560 once_value_11 = fra.me.REG[6];
2561 register_static_object(&once_value_11);
2562 } else fra.me.REG[6] = once_value_11;
2563 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
2564 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
2565 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
2566 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
2567 if (!once_value_12) {
2568 fra.me.REG[6] = BOX_NativeString("(");
2569 REGB0 = TAG_Int(1);
2570 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
2571 once_value_12 = fra.me.REG[6];
2572 register_static_object(&once_value_12);
2573 } else fra.me.REG[6] = once_value_12;
2574 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
2575 array___Array___add(fra.me.REG[5], fra.me.REG[2]);
2576 if (!once_value_13) {
2577 fra.me.REG[2] = BOX_NativeString(" val);");
2578 REGB0 = TAG_Int(6);
2579 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
2580 once_value_13 = fra.me.REG[2];
2581 register_static_object(&once_value_13);
2582 } else fra.me.REG[2] = once_value_13;
2583 array___Array___add(fra.me.REG[5], fra.me.REG[2]);
2584 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
2585 array___Array___add(fra.me.REG[3], fra.me.REG[5]);
2586 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2587 REGB0 = TAG_Int(0);
2588 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
2589 REGB0 = TAG_Int(5);
2590 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
2591 /* ./compiling//compiling_global.nit:354 */
2592 if (!once_value_14) {
2593 fra.me.REG[2] = BOX_NativeString("#define UNBOX_");
2594 REGB0 = TAG_Int(14);
2595 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
2596 once_value_14 = fra.me.REG[2];
2597 register_static_object(&once_value_14);
2598 } else fra.me.REG[2] = once_value_14;
2599 array___Array___add(fra.me.REG[5], fra.me.REG[2]);
2600 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
2601 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2602 array___Array___add(fra.me.REG[5], fra.me.REG[0]);
2603 if (!once_value_15) {
2604 fra.me.REG[0] = BOX_NativeString("(x) (((");
2605 REGB0 = TAG_Int(7);
2606 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2607 once_value_15 = fra.me.REG[0];
2608 register_static_object(&once_value_15);
2609 } else fra.me.REG[0] = once_value_15;
2610 array___Array___add(fra.me.REG[5], fra.me.REG[0]);
2611 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
2612 if (!once_value_16) {
2613 fra.me.REG[4] = BOX_NativeString(" *)(VAL2OBJ(x)))->val)");
2614 REGB0 = TAG_Int(22);
2615 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2616 once_value_16 = fra.me.REG[4];
2617 register_static_object(&once_value_16);
2618 } else fra.me.REG[4] = once_value_16;
2619 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
2620 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
2621 array___Array___add(fra.me.REG[3], fra.me.REG[5]);
2622 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2623 }
2624 }
2625 }
2626 stack_frame_head = fra.me.prev;
2627 return;
2628 }
2629 void compiling_global___MMLocalClass___generate_allocation_iroutines(val_t p0, val_t p1){
2630 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
2631 val_t REGB0;
2632 val_t REGB1;
2633 val_t tmp;
2634 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2635 fra.me.file = LOCATE_compiling_global;
2636 fra.me.line = 358;
2637 fra.me.meth = LOCATE_compiling_global___MMLocalClass___generate_allocation_iroutines;
2638 fra.me.has_broke = 0;
2639 fra.me.REG_size = 8;
2640 fra.me.REG[0] = NIT_NULL;
2641 fra.me.REG[1] = NIT_NULL;
2642 fra.me.REG[2] = NIT_NULL;
2643 fra.me.REG[3] = NIT_NULL;
2644 fra.me.REG[4] = NIT_NULL;
2645 fra.me.REG[5] = NIT_NULL;
2646 fra.me.REG[6] = NIT_NULL;
2647 fra.me.REG[7] = NIT_NULL;
2648 fra.me.REG[0] = p0;
2649 fra.me.REG[1] = p1;
2650 fra.me.REG[1] = CALL_table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
2651 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
2652 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2653 fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
2654 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2655 /* ./compiling//compiling_global.nit:364 */
2656 if (UNTAG_Bool(REGB0)) {
2657 } else {
2658 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2659 if (UNTAG_Bool(REGB1)) {
2660 REGB1 = TAG_Bool(false);
2661 REGB0 = REGB1;
2662 } else {
2663 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2664 REGB0 = REGB1;
2665 }
2666 }
2667 if (UNTAG_Bool(REGB0)) {
2668 fra.me.REG[2] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
2669 fra.me.REG[2] = NEW_IRegister_icode_base___IRegister___init(fra.me.REG[2]);
2670 REGB0 = TAG_Int(1);
2671 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
2672 /* ./compiling//compiling_global.nit:368 */
2673 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
2674 fra.me.REG[3] = NEW_IRoutine_icode_base___IRoutine___init(fra.me.REG[1], NIT_NULL);
2675 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[0])(fra.me.REG[0]);
2676 fra.me.REG[4] = NEW_ICodeBuilder_icode_builder___ICodeBuilder___init(fra.me.REG[4], fra.me.REG[3]);
2677 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
2678 fra.me.REG[5] = CALL_abstract_collection___Collection___iterator(fra.me.REG[5])(fra.me.REG[5]);
2679 /* ./compiling//compiling_global.nit:372 */
2680 while(1) {
2681 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[5])(fra.me.REG[5]);
2682 if (UNTAG_Bool(REGB0)) {
2683 fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[5])(fra.me.REG[5]);
2684 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
2685 fra.me.REG[7] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[6])(fra.me.REG[6]);
2686 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2687 /* ./compiling//compiling_global.nit:374 */
2688 if (UNTAG_Bool(REGB0)) {
2689 fprintf(stderr, "Reciever is null");
2690 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 374);
2691 nit_exit(1);
2692 }
2693 fra.me.REG[7] = CALL_static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
2694 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
2695 /* ./compiling//compiling_global.nit:375 */
2696 if (UNTAG_Bool(REGB0)) {
2697 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2698 if (UNTAG_Bool(REGB0)) {
2699 } else {
2700 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2701 if (UNTAG_Bool(REGB1)) {
2702 REGB1 = TAG_Bool(false);
2703 REGB0 = REGB1;
2704 } else {
2705 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
2706 REGB0 = REGB1;
2707 }
2708 }
2709 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2710 } else {
2711 REGB1 = TAG_Bool(false);
2712 REGB0 = REGB1;
2713 }
2714 if (UNTAG_Bool(REGB0)) {
2715 fra.me.REG[7] = CALL_icode_base___MMAttribute___iroutine(fra.me.REG[6])(fra.me.REG[6]);
2716 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2717 /* ./compiling//compiling_global.nit:377 */
2718 if (UNTAG_Bool(REGB0)) {
2719 } else {
2720 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2721 if (UNTAG_Bool(REGB1)) {
2722 REGB1 = TAG_Bool(false);
2723 REGB0 = REGB1;
2724 } else {
2725 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
2726 REGB0 = REGB1;
2727 }
2728 }
2729 if (UNTAG_Bool(REGB0)) {
2730 goto label1;
2731 }
2732 fra.me.REG[7] = CALL_icode_tools___ICodeBuilder___inline_routine(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7], fra.me.REG[1], NIT_NULL);
2733 REGB0 = TAG_Bool((fra.me.REG[7]!=NIT_NULL) && VAL_ISA(fra.me.REG[7], COLOR_IRegister, ID_IRegister)) /*cast IRegister*/;
2734 /* ./compiling//compiling_global.nit:379 */
2735 if (UNTAG_Bool(REGB0)) {
2736 } else {
2737 fprintf(stderr, "Cast failed");
2738 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 379);
2739 nit_exit(1);
2740 }
2741 fra.me.REG[7] = NEW_IAttrWrite_icode_base___IAttrWrite___init(fra.me.REG[6], fra.me.REG[2], fra.me.REG[7]);
2742 /* ./compiling//compiling_global.nit:380 */
2743 CALL_icode_builder___ICodeBuilder___stmt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
2744 }
2745 label1: while(0);
2746 } else {
2747 /* ./compiling//compiling_global.nit:372 */
2748 goto label2;
2749 }
2750 CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]);
2751 }
2752 label2: while(0);
2753 /* ./compiling//compiling_global.nit:384 */
2754 ATTR_compiling_global___MMLocalClass____init_var_iroutine(fra.me.REG[0]) = fra.me.REG[3];
2755 fra.me.REG[3] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
2756 fra.me.REG[3] = NEW_IRegister_icode_base___IRegister___init(fra.me.REG[3]);
2757 REGB0 = TAG_Int(1);
2758 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
2759 /* ./compiling//compiling_global.nit:389 */
2760 array___Array___add(fra.me.REG[5], fra.me.REG[3]);
2761 fra.me.REG[5] = NEW_IRoutine_icode_base___IRoutine___init(fra.me.REG[5], NIT_NULL);
2762 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[0])(fra.me.REG[0]);
2763 fra.me.REG[4] = NEW_ICodeBuilder_icode_builder___ICodeBuilder___init(fra.me.REG[4], fra.me.REG[5]);
2764 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
2765 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
2766 /* ./compiling//compiling_global.nit:392 */
2767 while(1) {
2768 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
2769 if (UNTAG_Bool(REGB0)) {
2770 fra.me.REG[1] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
2771 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2772 fra.me.REG[7] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]);
2773 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2774 /* ./compiling//compiling_global.nit:394 */
2775 if (UNTAG_Bool(REGB0)) {
2776 fprintf(stderr, "Reciever is null");
2777 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 394);
2778 nit_exit(1);
2779 }
2780 fra.me.REG[7] = CALL_static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
2781 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
2782 /* ./compiling//compiling_global.nit:395 */
2783 if (UNTAG_Bool(REGB0)) {
2784 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2785 if (UNTAG_Bool(REGB0)) {
2786 } else {
2787 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2788 if (UNTAG_Bool(REGB1)) {
2789 REGB1 = TAG_Bool(false);
2790 REGB0 = REGB1;
2791 } else {
2792 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
2793 REGB0 = REGB1;
2794 }
2795 }
2796 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2797 } else {
2798 REGB1 = TAG_Bool(false);
2799 REGB0 = REGB1;
2800 }
2801 if (UNTAG_Bool(REGB0)) {
2802 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2803 if (UNTAG_Bool(REGB0)) {
2804 fprintf(stderr, "Reciever is null");
2805 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 395);
2806 nit_exit(1);
2807 }
2808 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[7])(fra.me.REG[7]);
2809 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2810 } else {
2811 REGB1 = TAG_Bool(false);
2812 REGB0 = REGB1;
2813 }
2814 if (UNTAG_Bool(REGB0)) {
2815 /* ./compiling//compiling_global.nit:396 */
2816 CALL_icode_builder___ICodeBuilder___add_attr_check(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[3]);
2817 }
2818 } else {
2819 /* ./compiling//compiling_global.nit:392 */
2820 goto label3;
2821 }
2822 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
2823 }
2824 label3: while(0);
2825 /* ./compiling//compiling_global.nit:400 */
2826 ATTR_compiling_global___MMLocalClass____checknew_iroutine(fra.me.REG[0]) = fra.me.REG[5];
2827 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
2828 fra.me.REG[5] = CALL_partial_order___PartialOrderElement___greaters(fra.me.REG[5])(fra.me.REG[5]);
2829 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[5])(fra.me.REG[5]);
2830 REGB1 = TAG_Int(1);
2831 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2832 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
2833 fra.me.REG[5] = CALL_abstract_collection___Collection___iterator(fra.me.REG[5])(fra.me.REG[5]);
2834 /* ./compiling//compiling_global.nit:405 */
2835 while(1) {
2836 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[5])(fra.me.REG[5]);
2837 if (UNTAG_Bool(REGB1)) {
2838 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[5])(fra.me.REG[5]);
2839 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
2840 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
2841 REGB1 = CALL_abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2842 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
2843 /* ./compiling//compiling_global.nit:408 */
2844 if (UNTAG_Bool(REGB1)) {
2845 goto label4;
2846 }
2847 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
2848 /* ./compiling//compiling_global.nit:409 */
2849 if (UNTAG_Bool(REGB1)) {
2850 } else {
2851 fprintf(stderr, "Assert failed");
2852 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 409);
2853 nit_exit(1);
2854 }
2855 fra.me.REG[3] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
2856 fra.me.REG[3] = NEW_IRegister_icode_base___IRegister___init(fra.me.REG[3]);
2857 fra.me.REG[4] = NEW_Array_array___Array___init();
2858 REGB1 = TAG_Int(0);
2859 fra.me.REG[1] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
2860 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2861 /* ./compiling//compiling_global.nit:413 */
2862 if (UNTAG_Bool(REGB0)) {
2863 fprintf(stderr, "Reciever is null");
2864 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 413);
2865 nit_exit(1);
2866 }
2867 REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[1])(fra.me.REG[1]);
2868 fra.me.REG[1] = NEW_Range_range___Range___without_last(REGB1, REGB0);
2869 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
2870 while(1) {
2871 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
2872 if (UNTAG_Bool(REGB0)) {
2873 REGB0 = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
2874 fra.me.REG[7] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
2875 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2876 if (UNTAG_Bool(REGB1)) {
2877 fprintf(stderr, "Reciever is null");
2878 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 413);
2879 nit_exit(1);
2880 }
2881 fra.me.REG[7] = CALL_static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB0);
2882 fra.me.REG[7] = NEW_IRegister_icode_base___IRegister___init(fra.me.REG[7]);
2883 array___Array___add(fra.me.REG[4], fra.me.REG[7]);
2884 } else {
2885 goto label5;
2886 }
2887 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
2888 }
2889 label5: while(0);
2890 fra.me.REG[1] = NEW_IRoutine_icode_base___IRoutine___init(fra.me.REG[4], fra.me.REG[3]);
2891 fra.me.REG[7] = CALL_icode_base___MMMethod___iroutine(fra.me.REG[2])(fra.me.REG[2]);
2892 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2893 /* ./compiling//compiling_global.nit:415 */
2894 if (UNTAG_Bool(REGB0)) {
2895 fprintf(stderr, "Reciever is null");
2896 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 415);
2897 nit_exit(1);
2898 }
2899 fra.me.REG[7] = CALL_icode_base___IRoutine___location(fra.me.REG[7])(fra.me.REG[7]);
2900 CALL_icode_base___IRoutine___location__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
2901 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[0])(fra.me.REG[0]);
2902 fra.me.REG[7] = NEW_ICodeBuilder_icode_builder___ICodeBuilder___init(fra.me.REG[7], fra.me.REG[1]);
2903 fra.me.REG[6] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
2904 fra.me.REG[6] = NEW_IAllocateInstance_icode_base___IAllocateInstance___init(fra.me.REG[6]);
2905 /* ./compiling//compiling_global.nit:419 */
2906 CALL_icode_base___ICode___result__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
2907 /* ./compiling//compiling_global.nit:420 */
2908 CALL_icode_builder___ICodeBuilder___stmt(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
2909 REGB0 = TAG_Int(1);
2910 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
2911 /* ./compiling//compiling_global.nit:421 */
2912 array___Array___add(fra.me.REG[6], fra.me.REG[3]);
2913 /* ./compiling//compiling_global.nit:422 */
2914 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
2915 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
2916 fra.me.REG[4] = NEW_IInitAttributes_icode_base___IInitAttributes___init(fra.me.REG[4], fra.me.REG[3]);
2917 /* ./compiling//compiling_global.nit:424 */
2918 CALL_icode_builder___ICodeBuilder___stmt(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
2919 fra.me.REG[6] = NEW_IStaticCall_icode_base___IStaticCall___init(fra.me.REG[2], fra.me.REG[6]);
2920 /* ./compiling//compiling_global.nit:425 */
2921 CALL_icode_builder___ICodeBuilder___stmt(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
2922 fra.me.REG[6] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
2923 fra.me.REG[3] = NEW_ICheckInstance_icode_base___ICheckInstance___init(fra.me.REG[6], fra.me.REG[3]);
2924 /* ./compiling//compiling_global.nit:426 */
2925 CALL_icode_builder___ICodeBuilder___stmt(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
2926 REGB0 = TAG_Bool(ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0])!=NIT_NULL);
2927 /* ./compiling//compiling_global.nit:428 */
2928 if (UNTAG_Bool(REGB0)) {
2929 } else {
2930 fprintf(stderr, "Uninitialized attribute %s", "_new_instance_iroutine");
2931 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 428);
2932 nit_exit(1);
2933 }
2934 fra.me.REG[3] = ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0]);
2935 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
2936 label4: while(0);
2937 } else {
2938 /* ./compiling//compiling_global.nit:405 */
2939 goto label6;
2940 }
2941 CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]);
2942 }
2943 label6: while(0);
2944 }
2945 stack_frame_head = fra.me.prev;
2946 return;
2947 }
2948 void compiling_global___MMLocalClass___compile_tables_to_c(val_t p0, val_t p1){
2949 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
2950 val_t REGB0;
2951 val_t REGB1;
2952 val_t REGB2;
2953 val_t tmp;
2954 static val_t once_value_1; /* Once value */
2955 static val_t once_value_2; /* Once value */
2956 static val_t once_value_3; /* Once value */
2957 static val_t once_value_4; /* Once value */
2958 static val_t once_value_5; /* Once value */
2959 static val_t once_value_6; /* Once value */
2960 static val_t once_value_8; /* Once value */
2961 static val_t once_value_9; /* Once value */
2962 static val_t once_value_10; /* Once value */
2963 static val_t once_value_12; /* Once value */
2964 static val_t once_value_13; /* Once value */
2965 static val_t once_value_14; /* Once value */
2966 static val_t once_value_15; /* Once value */
2967 static val_t once_value_16; /* Once value */
2968 static val_t once_value_17; /* Once value */
2969 static val_t once_value_18; /* Once value */
2970 static val_t once_value_19; /* Once value */
2971 static val_t once_value_20; /* Once value */
2972 static val_t once_value_21; /* Once value */
2973 static val_t once_value_22; /* Once value */
2974 static val_t once_value_23; /* Once value */
2975 static val_t once_value_24; /* Once value */
2976 static val_t once_value_25; /* Once value */
2977 static val_t once_value_26; /* Once value */
2978 static val_t once_value_27; /* Once value */
2979 static val_t once_value_28; /* Once value */
2980 static val_t once_value_29; /* Once value */
2981 static val_t once_value_30; /* Once value */
2982 static val_t once_value_31; /* Once value */
2983 static val_t once_value_32; /* Once value */
2984 static val_t once_value_33; /* Once value */
2985 static val_t once_value_34; /* Once value */
2986 static val_t once_value_35; /* Once value */
2987 static val_t once_value_36; /* Once value */
2988 static val_t once_value_37; /* Once value */
2989 static val_t once_value_38; /* Once value */
2990 static val_t once_value_39; /* Once value */
2991 static val_t once_value_40; /* Once value */
2992 static val_t once_value_41; /* Once value */
2993 static val_t once_value_42; /* Once value */
2994 static val_t once_value_43; /* Once value */
2995 static val_t once_value_44; /* Once value */
2996 static val_t once_value_45; /* Once value */
2997 static val_t once_value_46; /* Once value */
2998 static val_t once_value_47; /* Once value */
2999 static val_t once_value_48; /* Once value */
3000 static val_t once_value_49; /* Once value */
3001 static val_t once_value_50; /* Once value */
3002 static val_t once_value_52; /* Once value */
3003 static val_t once_value_53; /* Once value */
3004 static val_t once_value_54; /* Once value */
3005 static val_t once_value_55; /* Once value */
3006 static val_t once_value_56; /* Once value */
3007 static val_t once_value_57; /* Once value */
3008 static val_t once_value_58; /* Once value */
3009 static val_t once_value_59; /* Once value */
3010 static val_t once_value_60; /* Once value */
3011 static val_t once_value_62; /* Once value */
3012 static val_t once_value_63; /* Once value */
3013 static val_t once_value_64; /* Once value */
3014 static val_t once_value_65; /* Once value */
3015 static val_t once_value_66; /* Once value */
3016 static val_t once_value_67; /* Once value */
3017 static val_t once_value_68; /* Once value */
3018 static val_t once_value_69; /* Once value */
3019 static val_t once_value_70; /* Once value */
3020 static val_t once_value_71; /* Once value */
3021 static val_t once_value_72; /* Once value */
3022 static val_t once_value_73; /* Once value */
3023 static val_t once_value_74; /* Once value */
3024 static val_t once_value_75; /* Once value */
3025 static val_t once_value_76; /* Once value */
3026 static val_t once_value_77; /* Once value */
3027 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3028 fra.me.file = LOCATE_compiling_global;
3029 fra.me.line = 433;
3030 fra.me.meth = LOCATE_compiling_global___MMLocalClass___compile_tables_to_c;
3031 fra.me.has_broke = 0;
3032 fra.me.REG_size = 10;
3033 fra.me.REG[0] = NIT_NULL;
3034 fra.me.REG[1] = NIT_NULL;
3035 fra.me.REG[2] = NIT_NULL;
3036 fra.me.REG[3] = NIT_NULL;
3037 fra.me.REG[4] = NIT_NULL;
3038 fra.me.REG[5] = NIT_NULL;
3039 fra.me.REG[6] = NIT_NULL;
3040 fra.me.REG[7] = NIT_NULL;
3041 fra.me.REG[8] = NIT_NULL;
3042 fra.me.REG[9] = NIT_NULL;
3043 fra.me.REG[0] = p0;
3044 fra.me.REG[1] = p1;
3045 fra.me.REG[2] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
3046 fra.me.REG[2] = CALL_table_computation___Program___compiled_classes(fra.me.REG[2])(fra.me.REG[2]);
3047 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
3048 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3049 fra.me.REG[2] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[3])(fra.me.REG[3]);
3050 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
3051 /* ./../lib/standard//collection//array.nit:23 */
3052 if (UNTAG_Bool(REGB0)) {
3053 } else {
3054 fprintf(stderr, "Uninitialized attribute %s", "_length");
3055 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
3056 nit_exit(1);
3057 }
3058 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
3059 fra.me.REG[4] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
3060 fra.me.REG[4] = CALL_table_computation___Program___table_information(fra.me.REG[4])(fra.me.REG[4]);
3061 REGB1 = CALL_table_computation___TableInformation___max_class_table_length(fra.me.REG[4])(fra.me.REG[4]);
3062 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
3063 /* ./../lib/standard//collection//array.nit:23 */
3064 if (UNTAG_Bool(REGB2)) {
3065 } else {
3066 fprintf(stderr, "Uninitialized attribute %s", "_length");
3067 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
3068 nit_exit(1);
3069 }
3070 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
3071 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
3072 /* ./compiling//compiling_global.nit:439 */
3073 if (UNTAG_Bool(REGB2)) {
3074 fra.me.REG[4] = CALL_compiling_global___GlobalCompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
3075 fra.me.REG[4] = CALL_table_computation___Program___table_information(fra.me.REG[4])(fra.me.REG[4]);
3076 REGB2 = CALL_table_computation___TableInformation___max_class_table_length(fra.me.REG[4])(fra.me.REG[4]);
3077 REGB0 = REGB2;
3078 /* ./compiling//compiling_global.nit:440 */
3079 }
3080 REGB2 = TAG_Int(0);
3081 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
3082 REGB2 = TAG_Int(5);
3083 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
3084 /* ./compiling//compiling_global.nit:443 */
3085 if (!once_value_1) {
3086 fra.me.REG[6] = BOX_NativeString("const classtable_elt_t VFT_");
3087 REGB2 = TAG_Int(27);
3088 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3089 once_value_1 = fra.me.REG[6];
3090 register_static_object(&once_value_1);
3091 } else fra.me.REG[6] = once_value_1;
3092 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3093 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3094 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3095 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3096 if (!once_value_2) {
3097 fra.me.REG[6] = BOX_NativeString("[");
3098 REGB2 = TAG_Int(1);
3099 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3100 once_value_2 = fra.me.REG[6];
3101 register_static_object(&once_value_2);
3102 } else fra.me.REG[6] = once_value_2;
3103 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3104 fra.me.REG[6] = CALL_string___Object___to_s(REGB0)(REGB0);
3105 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3106 if (!once_value_3) {
3107 fra.me.REG[6] = BOX_NativeString("] = {");
3108 REGB2 = TAG_Int(5);
3109 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3110 once_value_3 = fra.me.REG[6];
3111 register_static_object(&once_value_3);
3112 } else fra.me.REG[6] = once_value_3;
3113 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3114 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3115 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
3116 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3117 /* ./compiling//compiling_global.nit:444 */
3118 CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3119 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
3120 /* ./compiling//compiling_global.nit:445 */
3121 while(1) {
3122 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
3123 if (UNTAG_Bool(REGB2)) {
3124 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
3125 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3126 /* ./compiling//compiling_global.nit:446 */
3127 if (UNTAG_Bool(REGB2)) {
3128 } else {
3129 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3130 if (UNTAG_Bool(REGB1)) {
3131 REGB1 = TAG_Bool(false);
3132 REGB2 = REGB1;
3133 } else {
3134 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
3135 REGB2 = REGB1;
3136 }
3137 }
3138 if (UNTAG_Bool(REGB2)) {
3139 REGB2 = TAG_Int(0);
3140 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3141 /* ./compiling//compiling_global.nit:447 */
3142 if (!once_value_4) {
3143 fra.me.REG[7] = BOX_NativeString("{0} /* Class Hole :( */,");
3144 REGB2 = TAG_Int(24);
3145 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3146 once_value_4 = fra.me.REG[7];
3147 register_static_object(&once_value_4);
3148 } else fra.me.REG[7] = once_value_4;
3149 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3150 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3151 } else {
3152 REGB2 = TAG_Int(0);
3153 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3154 REGB2 = TAG_Int(3);
3155 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
3156 /* ./compiling//compiling_global.nit:449 */
3157 if (!once_value_5) {
3158 fra.me.REG[8] = BOX_NativeString("{(bigint) ");
3159 REGB2 = TAG_Int(10);
3160 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB2);
3161 once_value_5 = fra.me.REG[8];
3162 register_static_object(&once_value_5);
3163 } else fra.me.REG[8] = once_value_5;
3164 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
3165 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3166 if (UNTAG_Bool(REGB2)) {
3167 fprintf(stderr, "Reciever is null");
3168 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 449);
3169 nit_exit(1);
3170 }
3171 fra.me.REG[5] = CALL_compiling_global___TableElt___compile_to_c(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[0]);
3172 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
3173 if (!once_value_6) {
3174 fra.me.REG[5] = BOX_NativeString("},");
3175 REGB2 = TAG_Int(2);
3176 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
3177 once_value_6 = fra.me.REG[5];
3178 register_static_object(&once_value_6);
3179 } else fra.me.REG[5] = once_value_6;
3180 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
3181 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3182 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3183 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3184 }
3185 } else {
3186 /* ./compiling//compiling_global.nit:445 */
3187 goto label7;
3188 }
3189 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
3190 }
3191 label7: while(0);
3192 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
3193 /* ./../lib/standard//collection//array.nit:23 */
3194 if (UNTAG_Bool(REGB2)) {
3195 } else {
3196 fprintf(stderr, "Uninitialized attribute %s", "_length");
3197 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
3198 nit_exit(1);
3199 }
3200 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
3201 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB2));
3202 /* ./compiling//compiling_global.nit:452 */
3203 if (UNTAG_Bool(REGB2)) {
3204 REGB2 = TAG_Int(0);
3205 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
3206 /* ./compiling//compiling_global.nit:453 */
3207 if (!once_value_8) {
3208 fra.me.REG[6] = BOX_NativeString("{0},");
3209 REGB2 = TAG_Int(4);
3210 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3211 once_value_8 = fra.me.REG[6];
3212 register_static_object(&once_value_8);
3213 } else fra.me.REG[6] = once_value_8;
3214 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
3215 /* ./../lib/standard//collection//array.nit:23 */
3216 if (UNTAG_Bool(REGB2)) {
3217 } else {
3218 fprintf(stderr, "Uninitialized attribute %s", "_length");
3219 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
3220 nit_exit(1);
3221 }
3222 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
3223 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
3224 fra.me.REG[6] = CALL_string___String_____star(fra.me.REG[6])(fra.me.REG[6], REGB2);
3225 /* ./compiling//compiling_global.nit:453 */
3226 array___Array___add(fra.me.REG[4], fra.me.REG[6]);
3227 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3228 }
3229 /* ./compiling//compiling_global.nit:455 */
3230 CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3231 REGB2 = TAG_Int(0);
3232 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
3233 /* ./compiling//compiling_global.nit:456 */
3234 if (!once_value_9) {
3235 fra.me.REG[6] = BOX_NativeString("};");
3236 REGB2 = TAG_Int(2);
3237 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3238 once_value_9 = fra.me.REG[6];
3239 register_static_object(&once_value_9);
3240 } else fra.me.REG[6] = once_value_9;
3241 array___Array___add(fra.me.REG[4], fra.me.REG[6]);
3242 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3243 fra.me.REG[3] = CALL_table_computation___CompiledClass___instance_table(fra.me.REG[3])(fra.me.REG[3]);
3244 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
3245 /* ./compiling//compiling_global.nit:458 */
3246 while(1) {
3247 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
3248 if (UNTAG_Bool(REGB2)) {
3249 fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
3250 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3251 /* ./compiling//compiling_global.nit:459 */
3252 if (UNTAG_Bool(REGB2)) {
3253 } else {
3254 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3255 if (UNTAG_Bool(REGB0)) {
3256 REGB0 = TAG_Bool(false);
3257 REGB2 = REGB0;
3258 } else {
3259 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
3260 REGB2 = REGB0;
3261 }
3262 }
3263 if (UNTAG_Bool(REGB2)) {
3264 REGB2 = TAG_Int(0);
3265 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3266 /* ./compiling//compiling_global.nit:460 */
3267 if (!once_value_10) {
3268 fra.me.REG[7] = BOX_NativeString("/* Instance Hole :( */");
3269 REGB2 = TAG_Int(22);
3270 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3271 once_value_10 = fra.me.REG[7];
3272 register_static_object(&once_value_10);
3273 } else fra.me.REG[7] = once_value_10;
3274 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3275 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3276 } else {
3277 REGB2 = TAG_Int(0);
3278 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3279 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3280 /* ./compiling//compiling_global.nit:462 */
3281 if (UNTAG_Bool(REGB2)) {
3282 fprintf(stderr, "Reciever is null");
3283 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 462);
3284 nit_exit(1);
3285 }
3286 fra.me.REG[6] = CALL_compiling_global___TableElt___compile_to_c(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[0]);
3287 array___Array___add(fra.me.REG[2], fra.me.REG[6]);
3288 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3289 }
3290 } else {
3291 /* ./compiling//compiling_global.nit:458 */
3292 goto label11;
3293 }
3294 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
3295 }
3296 label11: while(0);
3297 fra.me.REG[4] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
3298 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3299 /* ./compiling//compiling_global.nit:467 */
3300 if (!once_value_12) {
3301 fra.me.REG[6] = BOX_NativeString("NativeArray");
3302 REGB2 = TAG_Int(11);
3303 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3304 once_value_12 = fra.me.REG[6];
3305 register_static_object(&once_value_12);
3306 } else fra.me.REG[6] = once_value_12;
3307 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
3308 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
3309 if (UNTAG_Bool(REGB2)) {
3310 } else {
3311 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
3312 REGB2 = REGB0;
3313 }
3314 if (UNTAG_Bool(REGB2)) {
3315 REGB2 = TAG_Int(0);
3316 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3317 /* ./compiling//compiling_global.nit:468 */
3318 if (!once_value_13) {
3319 fra.me.REG[2] = BOX_NativeString("val_t NEW_NativeArray(size_t length, size_t size) {");
3320 REGB2 = TAG_Int(51);
3321 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
3322 once_value_13 = fra.me.REG[2];
3323 register_static_object(&once_value_13);
3324 } else fra.me.REG[2] = once_value_13;
3325 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
3326 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3327 /* ./compiling//compiling_global.nit:469 */
3328 CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3329 REGB2 = TAG_Int(0);
3330 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3331 /* ./compiling//compiling_global.nit:470 */
3332 if (!once_value_14) {
3333 fra.me.REG[2] = BOX_NativeString("Nit_NativeArray array;");
3334 REGB2 = TAG_Int(22);
3335 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
3336 once_value_14 = fra.me.REG[2];
3337 register_static_object(&once_value_14);
3338 } else fra.me.REG[2] = once_value_14;
3339 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
3340 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3341 REGB2 = TAG_Int(0);
3342 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3343 /* ./compiling//compiling_global.nit:471 */
3344 if (!once_value_15) {
3345 fra.me.REG[2] = BOX_NativeString("array = (Nit_NativeArray)alloc(sizeof(struct Nit_NativeArray) + ((length - 1) * size));");
3346 REGB2 = TAG_Int(87);
3347 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
3348 once_value_15 = fra.me.REG[2];
3349 register_static_object(&once_value_15);
3350 } else fra.me.REG[2] = once_value_15;
3351 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
3352 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3353 REGB2 = TAG_Int(0);
3354 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3355 REGB2 = TAG_Int(3);
3356 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3357 /* ./compiling//compiling_global.nit:472 */
3358 if (!once_value_16) {
3359 fra.me.REG[7] = BOX_NativeString("array->vft = (classtable_elt_t*)VFT_");
3360 REGB2 = TAG_Int(36);
3361 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3362 once_value_16 = fra.me.REG[7];
3363 register_static_object(&once_value_16);
3364 } else fra.me.REG[7] = once_value_16;
3365 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3366 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3367 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3368 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3369 if (!once_value_17) {
3370 fra.me.REG[7] = BOX_NativeString(";");
3371 REGB2 = TAG_Int(1);
3372 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3373 once_value_17 = fra.me.REG[7];
3374 register_static_object(&once_value_17);
3375 } else fra.me.REG[7] = once_value_17;
3376 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3377 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3378 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
3379 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3380 REGB2 = TAG_Int(0);
3381 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3382 /* ./compiling//compiling_global.nit:473 */
3383 if (!once_value_18) {
3384 fra.me.REG[2] = BOX_NativeString("array->object_id = object_id_counter;");
3385 REGB2 = TAG_Int(37);
3386 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
3387 once_value_18 = fra.me.REG[2];
3388 register_static_object(&once_value_18);
3389 } else fra.me.REG[2] = once_value_18;
3390 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
3391 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3392 REGB2 = TAG_Int(0);
3393 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3394 /* ./compiling//compiling_global.nit:474 */
3395 if (!once_value_19) {
3396 fra.me.REG[2] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
3397 REGB2 = TAG_Int(42);
3398 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
3399 once_value_19 = fra.me.REG[2];
3400 register_static_object(&once_value_19);
3401 } else fra.me.REG[2] = once_value_19;
3402 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
3403 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3404 REGB2 = TAG_Int(0);
3405 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3406 /* ./compiling//compiling_global.nit:475 */
3407 if (!once_value_20) {
3408 fra.me.REG[2] = BOX_NativeString("array->size = length;");
3409 REGB2 = TAG_Int(21);
3410 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
3411 once_value_20 = fra.me.REG[2];
3412 register_static_object(&once_value_20);
3413 } else fra.me.REG[2] = once_value_20;
3414 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
3415 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3416 REGB2 = TAG_Int(0);
3417 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3418 /* ./compiling//compiling_global.nit:476 */
3419 if (!once_value_21) {
3420 fra.me.REG[2] = BOX_NativeString("return OBJ2VAL(array);");
3421 REGB2 = TAG_Int(22);
3422 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
3423 once_value_21 = fra.me.REG[2];
3424 register_static_object(&once_value_21);
3425 } else fra.me.REG[2] = once_value_21;
3426 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
3427 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3428 /* ./compiling//compiling_global.nit:477 */
3429 CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3430 REGB2 = TAG_Int(0);
3431 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3432 /* ./compiling//compiling_global.nit:478 */
3433 if (!once_value_22) {
3434 fra.me.REG[2] = BOX_NativeString("}");
3435 REGB2 = TAG_Int(1);
3436 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
3437 once_value_22 = fra.me.REG[2];
3438 register_static_object(&once_value_22);
3439 } else fra.me.REG[2] = once_value_22;
3440 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
3441 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3442 } else {
3443 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3444 /* ./compiling//compiling_global.nit:479 */
3445 if (UNTAG_Bool(REGB2)) {
3446 } else {
3447 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3448 if (UNTAG_Bool(REGB0)) {
3449 REGB0 = TAG_Bool(false);
3450 REGB2 = REGB0;
3451 } else {
3452 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
3453 REGB2 = REGB0;
3454 }
3455 }
3456 if (UNTAG_Bool(REGB2)) {
3457 REGB2 = TAG_Int(3);
3458 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3459 /* ./compiling//compiling_global.nit:482 */
3460 if (!once_value_23) {
3461 fra.me.REG[2] = BOX_NativeString("INIT_ATTRIBUTES__");
3462 REGB2 = TAG_Int(17);
3463 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
3464 once_value_23 = fra.me.REG[2];
3465 register_static_object(&once_value_23);
3466 } else fra.me.REG[2] = once_value_23;
3467 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
3468 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3469 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3470 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
3471 if (!once_value_24) {
3472 fra.me.REG[2] = BOX_NativeString("");
3473 REGB2 = TAG_Int(0);
3474 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
3475 once_value_24 = fra.me.REG[2];
3476 register_static_object(&once_value_24);
3477 } else fra.me.REG[2] = once_value_24;
3478 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
3479 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3480 fra.me.REG[2] = ATTR_compiling_global___MMLocalClass____init_var_iroutine(fra.me.REG[0]);
3481 REGB2 = TAG_Int(3);
3482 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
3483 /* ./compiling//compiling_global.nit:483 */
3484 if (!once_value_25) {
3485 fra.me.REG[5] = BOX_NativeString("init var of ");
3486 REGB2 = TAG_Int(12);
3487 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
3488 once_value_25 = fra.me.REG[5];
3489 register_static_object(&once_value_25);
3490 } else fra.me.REG[5] = once_value_25;
3491 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
3492 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3493 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3494 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
3495 if (!once_value_26) {
3496 fra.me.REG[5] = BOX_NativeString("");
3497 REGB2 = TAG_Int(0);
3498 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
3499 once_value_26 = fra.me.REG[5];
3500 register_static_object(&once_value_26);
3501 } else fra.me.REG[5] = once_value_26;
3502 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
3503 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3504 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3505 if (UNTAG_Bool(REGB2)) {
3506 fprintf(stderr, "Reciever is null");
3507 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 483);
3508 nit_exit(1);
3509 }
3510 fra.me.REG[7] = CALL_compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[6], fra.me.REG[7], NIT_NULL, NIT_NULL);
3511 fra.me.REG[2] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[1])(fra.me.REG[1]);
3512 fra.me.REG[5] = NEW_CContext_compiling_base___CContext___init();
3513 /* ./compiling//compiling_global.nit:485 */
3514 CALL_compiling_base___CompilerVisitor___ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
3515 fra.me.REG[5] = ATTR_compiling_global___MMLocalClass____init_var_iroutine(fra.me.REG[0]);
3516 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3517 /* ./compiling//compiling_global.nit:486 */
3518 if (UNTAG_Bool(REGB2)) {
3519 fprintf(stderr, "Reciever is null");
3520 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 486);
3521 nit_exit(1);
3522 }
3523 CALL_compiling_icode___IRoutine___compile_to_c(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6], fra.me.REG[7]);
3524 fra.me.REG[7] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[1])(fra.me.REG[1]);
3525 /* ./compiling//compiling_global.nit:487 */
3526 CALL_compiling_base___CContext___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
3527 /* ./compiling//compiling_global.nit:488 */
3528 CALL_compiling_base___CompilerVisitor___ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3529 /* ./compiling//compiling_global.nit:489 */
3530 CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3531 REGB2 = TAG_Int(0);
3532 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3533 /* ./compiling//compiling_global.nit:490 */
3534 if (!once_value_27) {
3535 fra.me.REG[7] = BOX_NativeString("}");
3536 REGB2 = TAG_Int(1);
3537 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3538 once_value_27 = fra.me.REG[7];
3539 register_static_object(&once_value_27);
3540 } else fra.me.REG[7] = once_value_27;
3541 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3542 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3543 REGB2 = TAG_Int(0);
3544 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3545 REGB2 = TAG_Int(3);
3546 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
3547 /* ./compiling//compiling_global.nit:494 */
3548 if (!once_value_28) {
3549 fra.me.REG[6] = BOX_NativeString("val_t NEW_");
3550 REGB2 = TAG_Int(10);
3551 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3552 once_value_28 = fra.me.REG[6];
3553 register_static_object(&once_value_28);
3554 } else fra.me.REG[6] = once_value_28;
3555 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
3556 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3557 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3558 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
3559 if (!once_value_29) {
3560 fra.me.REG[6] = BOX_NativeString("(void);");
3561 REGB2 = TAG_Int(7);
3562 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3563 once_value_29 = fra.me.REG[6];
3564 register_static_object(&once_value_29);
3565 } else fra.me.REG[6] = once_value_29;
3566 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
3567 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3568 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3569 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3570 REGB2 = TAG_Int(0);
3571 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3572 REGB2 = TAG_Int(3);
3573 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
3574 /* ./compiling//compiling_global.nit:495 */
3575 if (!once_value_30) {
3576 fra.me.REG[6] = BOX_NativeString("val_t NEW_");
3577 REGB2 = TAG_Int(10);
3578 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3579 once_value_30 = fra.me.REG[6];
3580 register_static_object(&once_value_30);
3581 } else fra.me.REG[6] = once_value_30;
3582 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
3583 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3584 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3585 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
3586 if (!once_value_31) {
3587 fra.me.REG[6] = BOX_NativeString("(void)");
3588 REGB2 = TAG_Int(6);
3589 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3590 once_value_31 = fra.me.REG[6];
3591 register_static_object(&once_value_31);
3592 } else fra.me.REG[6] = once_value_31;
3593 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
3594 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3595 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3596 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3597 REGB2 = TAG_Int(0);
3598 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3599 /* ./compiling//compiling_global.nit:496 */
3600 if (!once_value_32) {
3601 fra.me.REG[7] = BOX_NativeString("{");
3602 REGB2 = TAG_Int(1);
3603 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3604 once_value_32 = fra.me.REG[7];
3605 register_static_object(&once_value_32);
3606 } else fra.me.REG[7] = once_value_32;
3607 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3608 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3609 /* ./compiling//compiling_global.nit:497 */
3610 CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3611 REGB2 = TAG_Int(0);
3612 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3613 /* ./compiling//compiling_global.nit:498 */
3614 if (!once_value_33) {
3615 fra.me.REG[7] = BOX_NativeString("obj_t obj;");
3616 REGB2 = TAG_Int(10);
3617 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3618 once_value_33 = fra.me.REG[7];
3619 register_static_object(&once_value_33);
3620 } else fra.me.REG[7] = once_value_33;
3621 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3622 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3623 REGB2 = TAG_Int(0);
3624 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3625 REGB2 = TAG_Int(3);
3626 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
3627 /* ./compiling//compiling_global.nit:499 */
3628 if (!once_value_34) {
3629 fra.me.REG[6] = BOX_NativeString("obj = alloc(sizeof(val_t) * ");
3630 REGB2 = TAG_Int(28);
3631 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3632 once_value_34 = fra.me.REG[6];
3633 register_static_object(&once_value_34);
3634 } else fra.me.REG[6] = once_value_34;
3635 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
3636 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
3637 /* ./../lib/standard//collection//array.nit:23 */
3638 if (UNTAG_Bool(REGB2)) {
3639 } else {
3640 fprintf(stderr, "Uninitialized attribute %s", "_length");
3641 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
3642 nit_exit(1);
3643 }
3644 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
3645 fra.me.REG[3] = CALL_string___Object___to_s(REGB2)(REGB2);
3646 /* ./compiling//compiling_global.nit:499 */
3647 array___Array___add(fra.me.REG[7], fra.me.REG[3]);
3648 if (!once_value_35) {
3649 fra.me.REG[3] = BOX_NativeString(");");
3650 REGB2 = TAG_Int(2);
3651 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
3652 once_value_35 = fra.me.REG[3];
3653 register_static_object(&once_value_35);
3654 } else fra.me.REG[3] = once_value_35;
3655 array___Array___add(fra.me.REG[7], fra.me.REG[3]);
3656 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3657 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3658 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3659 REGB2 = TAG_Int(0);
3660 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3661 REGB2 = TAG_Int(3);
3662 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
3663 /* ./compiling//compiling_global.nit:500 */
3664 if (!once_value_36) {
3665 fra.me.REG[3] = BOX_NativeString("obj->vft = (classtable_elt_t*)VFT_");
3666 REGB2 = TAG_Int(34);
3667 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
3668 once_value_36 = fra.me.REG[3];
3669 register_static_object(&once_value_36);
3670 } else fra.me.REG[3] = once_value_36;
3671 array___Array___add(fra.me.REG[7], fra.me.REG[3]);
3672 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3673 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3674 array___Array___add(fra.me.REG[7], fra.me.REG[3]);
3675 if (!once_value_37) {
3676 fra.me.REG[3] = BOX_NativeString(";");
3677 REGB2 = TAG_Int(1);
3678 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
3679 once_value_37 = fra.me.REG[3];
3680 register_static_object(&once_value_37);
3681 } else fra.me.REG[3] = once_value_37;
3682 array___Array___add(fra.me.REG[7], fra.me.REG[3]);
3683 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3684 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3685 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3686 REGB2 = TAG_Int(0);
3687 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3688 /* ./compiling//compiling_global.nit:501 */
3689 if (!once_value_38) {
3690 fra.me.REG[7] = BOX_NativeString("obj[1].object_id = object_id_counter;");
3691 REGB2 = TAG_Int(37);
3692 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3693 once_value_38 = fra.me.REG[7];
3694 register_static_object(&once_value_38);
3695 } else fra.me.REG[7] = once_value_38;
3696 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3697 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3698 REGB2 = TAG_Int(0);
3699 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3700 /* ./compiling//compiling_global.nit:502 */
3701 if (!once_value_39) {
3702 fra.me.REG[7] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
3703 REGB2 = TAG_Int(42);
3704 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3705 once_value_39 = fra.me.REG[7];
3706 register_static_object(&once_value_39);
3707 } else fra.me.REG[7] = once_value_39;
3708 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3709 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3710 REGB2 = TAG_Int(0);
3711 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3712 /* ./compiling//compiling_global.nit:503 */
3713 if (!once_value_40) {
3714 fra.me.REG[7] = BOX_NativeString("return OBJ2VAL(obj);");
3715 REGB2 = TAG_Int(20);
3716 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3717 once_value_40 = fra.me.REG[7];
3718 register_static_object(&once_value_40);
3719 } else fra.me.REG[7] = once_value_40;
3720 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3721 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3722 /* ./compiling//compiling_global.nit:504 */
3723 CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3724 REGB2 = TAG_Int(0);
3725 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3726 /* ./compiling//compiling_global.nit:505 */
3727 if (!once_value_41) {
3728 fra.me.REG[7] = BOX_NativeString("}");
3729 REGB2 = TAG_Int(1);
3730 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3731 once_value_41 = fra.me.REG[7];
3732 register_static_object(&once_value_41);
3733 } else fra.me.REG[7] = once_value_41;
3734 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3735 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3736 REGB2 = TAG_Int(3);
3737 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
3738 /* ./compiling//compiling_global.nit:509 */
3739 if (!once_value_42) {
3740 fra.me.REG[7] = BOX_NativeString("CHECKNEW_");
3741 REGB2 = TAG_Int(9);
3742 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3743 once_value_42 = fra.me.REG[7];
3744 register_static_object(&once_value_42);
3745 } else fra.me.REG[7] = once_value_42;
3746 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3747 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3748 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3749 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3750 if (!once_value_43) {
3751 fra.me.REG[7] = BOX_NativeString("");
3752 REGB2 = TAG_Int(0);
3753 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3754 once_value_43 = fra.me.REG[7];
3755 register_static_object(&once_value_43);
3756 } else fra.me.REG[7] = once_value_43;
3757 array___Array___add(fra.me.REG[2], fra.me.REG[7]);
3758 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3759 fra.me.REG[7] = ATTR_compiling_global___MMLocalClass____checknew_iroutine(fra.me.REG[0]);
3760 REGB2 = TAG_Int(3);
3761 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB2);
3762 /* ./compiling//compiling_global.nit:510 */
3763 if (!once_value_44) {
3764 fra.me.REG[6] = BOX_NativeString("check new ");
3765 REGB2 = TAG_Int(10);
3766 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3767 once_value_44 = fra.me.REG[6];
3768 register_static_object(&once_value_44);
3769 } else fra.me.REG[6] = once_value_44;
3770 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
3771 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3772 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3773 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
3774 if (!once_value_45) {
3775 fra.me.REG[6] = BOX_NativeString("");
3776 REGB2 = TAG_Int(0);
3777 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
3778 once_value_45 = fra.me.REG[6];
3779 register_static_object(&once_value_45);
3780 } else fra.me.REG[6] = once_value_45;
3781 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
3782 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3783 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3784 if (UNTAG_Bool(REGB2)) {
3785 fprintf(stderr, "Reciever is null");
3786 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 510);
3787 nit_exit(1);
3788 }
3789 fra.me.REG[3] = CALL_compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], NIT_NULL, NIT_NULL);
3790 fra.me.REG[7] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[1])(fra.me.REG[1]);
3791 fra.me.REG[6] = NEW_CContext_compiling_base___CContext___init();
3792 /* ./compiling//compiling_global.nit:512 */
3793 CALL_compiling_base___CompilerVisitor___ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3794 fra.me.REG[6] = ATTR_compiling_global___MMLocalClass____checknew_iroutine(fra.me.REG[0]);
3795 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3796 /* ./compiling//compiling_global.nit:513 */
3797 if (UNTAG_Bool(REGB2)) {
3798 fprintf(stderr, "Reciever is null");
3799 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 513);
3800 nit_exit(1);
3801 }
3802 CALL_compiling_icode___IRoutine___compile_to_c(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
3803 fra.me.REG[3] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[1])(fra.me.REG[1]);
3804 /* ./compiling//compiling_global.nit:514 */
3805 CALL_compiling_base___CContext___append(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
3806 /* ./compiling//compiling_global.nit:515 */
3807 CALL_compiling_base___CompilerVisitor___ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
3808 /* ./compiling//compiling_global.nit:516 */
3809 CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3810 REGB2 = TAG_Int(0);
3811 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
3812 /* ./compiling//compiling_global.nit:517 */
3813 if (!once_value_46) {
3814 fra.me.REG[3] = BOX_NativeString("}");
3815 REGB2 = TAG_Int(1);
3816 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
3817 once_value_46 = fra.me.REG[3];
3818 register_static_object(&once_value_46);
3819 } else fra.me.REG[3] = once_value_46;
3820 array___Array___add(fra.me.REG[7], fra.me.REG[3]);
3821 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
3822 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
3823 fra.me.REG[7] = CALL_partial_order___PartialOrderElement___greaters(fra.me.REG[7])(fra.me.REG[7]);
3824 REGB2 = CALL_abstract_collection___Collection___length(fra.me.REG[7])(fra.me.REG[7]);
3825 REGB0 = TAG_Int(1);
3826 REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
3827 REGB2 = TAG_Int(5);
3828 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
3829 /* ./compiling//compiling_global.nit:521 */
3830 if (!once_value_47) {
3831 fra.me.REG[3] = BOX_NativeString("int init_table[");
3832 REGB2 = TAG_Int(15);
3833 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
3834 once_value_47 = fra.me.REG[3];
3835 register_static_object(&once_value_47);
3836 } else fra.me.REG[3] = once_value_47;
3837 array___Array___add(fra.me.REG[7], fra.me.REG[3]);
3838 fra.me.REG[3] = CALL_string___Object___to_s(REGB0)(REGB0);
3839 array___Array___add(fra.me.REG[7], fra.me.REG[3]);
3840 if (!once_value_48) {
3841 fra.me.REG[3] = BOX_NativeString("] = {0");
3842 REGB2 = TAG_Int(6);
3843 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
3844 once_value_48 = fra.me.REG[3];
3845 register_static_object(&once_value_48);
3846 } else fra.me.REG[3] = once_value_48;
3847 array___Array___add(fra.me.REG[7], fra.me.REG[3]);
3848 if (!once_value_49) {
3849 fra.me.REG[3] = BOX_NativeString(", 0");
3850 REGB2 = TAG_Int(3);
3851 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
3852 once_value_49 = fra.me.REG[3];
3853 register_static_object(&once_value_49);
3854 } else fra.me.REG[3] = once_value_49;
3855 REGB2 = TAG_Int(1);
3856 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
3857 fra.me.REG[3] = CALL_string___String_____star(fra.me.REG[3])(fra.me.REG[3], REGB2);
3858 /* ./compiling//compiling_global.nit:521 */
3859 array___Array___add(fra.me.REG[7], fra.me.REG[3]);
3860 if (!once_value_50) {
3861 fra.me.REG[3] = BOX_NativeString("};");
3862 REGB2 = TAG_Int(2);
3863 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
3864 once_value_50 = fra.me.REG[3];
3865 register_static_object(&once_value_50);
3866 } else fra.me.REG[3] = once_value_50;
3867 array___Array___add(fra.me.REG[7], fra.me.REG[3]);
3868 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3869 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
3870 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
3871 /* ./compiling//compiling_global.nit:523 */
3872 while(1) {
3873 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
3874 if (UNTAG_Bool(REGB2)) {
3875 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
3876 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
3877 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
3878 REGB2 = CALL_abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
3879 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3880 /* ./compiling//compiling_global.nit:526 */
3881 if (UNTAG_Bool(REGB2)) {
3882 goto label51;
3883 }
3884 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
3885 /* ./compiling//compiling_global.nit:527 */
3886 if (UNTAG_Bool(REGB2)) {
3887 } else {
3888 fprintf(stderr, "Assert failed");
3889 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 527);
3890 nit_exit(1);
3891 }
3892 REGB2 = TAG_Int(5);
3893 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
3894 /* ./compiling//compiling_global.nit:529 */
3895 if (!once_value_52) {
3896 fra.me.REG[5] = BOX_NativeString("NEW_");
3897 REGB2 = TAG_Int(4);
3898 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
3899 once_value_52 = fra.me.REG[5];
3900 register_static_object(&once_value_52);
3901 } else fra.me.REG[5] = once_value_52;
3902 array___Array___add(fra.me.REG[6], fra.me.REG[5]);
3903 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3904 array___Array___add(fra.me.REG[6], fra.me.REG[5]);
3905 if (!once_value_53) {
3906 fra.me.REG[5] = BOX_NativeString("_");
3907 REGB2 = TAG_Int(1);
3908 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
3909 once_value_53 = fra.me.REG[5];
3910 register_static_object(&once_value_53);
3911 } else fra.me.REG[5] = once_value_53;
3912 array___Array___add(fra.me.REG[6], fra.me.REG[5]);
3913 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
3914 fra.me.REG[5] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[5])(fra.me.REG[5]);
3915 fra.me.REG[5] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[5])(fra.me.REG[5]);
3916 array___Array___add(fra.me.REG[6], fra.me.REG[5]);
3917 if (!once_value_54) {
3918 fra.me.REG[5] = BOX_NativeString("");
3919 REGB2 = TAG_Int(0);
3920 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
3921 once_value_54 = fra.me.REG[5];
3922 register_static_object(&once_value_54);
3923 } else fra.me.REG[5] = once_value_54;
3924 array___Array___add(fra.me.REG[6], fra.me.REG[5]);
3925 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3926 REGB2 = TAG_Bool(ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0])!=NIT_NULL);
3927 /* ./compiling//compiling_global.nit:530 */
3928 if (UNTAG_Bool(REGB2)) {
3929 } else {
3930 fprintf(stderr, "Uninitialized attribute %s", "_new_instance_iroutine");
3931 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 530);
3932 nit_exit(1);
3933 }
3934 fra.me.REG[5] = ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0]);
3935 fra.me.REG[5] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
3936 REGB2 = TAG_Int(5);
3937 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB2);
3938 if (!once_value_55) {
3939 fra.me.REG[9] = BOX_NativeString("new ");
3940 REGB2 = TAG_Int(4);
3941 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2);
3942 once_value_55 = fra.me.REG[9];
3943 register_static_object(&once_value_55);
3944 } else fra.me.REG[9] = once_value_55;
3945 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
3946 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3947 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
3948 if (!once_value_56) {
3949 fra.me.REG[9] = BOX_NativeString(" ");
3950 REGB2 = TAG_Int(1);
3951 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2);
3952 once_value_56 = fra.me.REG[9];
3953 register_static_object(&once_value_56);
3954 } else fra.me.REG[9] = once_value_56;
3955 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
3956 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[2])(fra.me.REG[2]);
3957 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
3958 if (!once_value_57) {
3959 fra.me.REG[9] = BOX_NativeString("");
3960 REGB2 = TAG_Int(0);
3961 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2);
3962 once_value_57 = fra.me.REG[9];
3963 register_static_object(&once_value_57);
3964 } else fra.me.REG[9] = once_value_57;
3965 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
3966 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3967 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3968 if (UNTAG_Bool(REGB2)) {
3969 fprintf(stderr, "Reciever is null");
3970 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 530);
3971 nit_exit(1);
3972 }
3973 fra.me.REG[8] = CALL_compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6], fra.me.REG[8], NIT_NULL, NIT_NULL);
3974 fra.me.REG[5] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[1])(fra.me.REG[1]);
3975 fra.me.REG[9] = NEW_CContext_compiling_base___CContext___init();
3976 /* ./compiling//compiling_global.nit:532 */
3977 CALL_compiling_base___CompilerVisitor___ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
3978 REGB2 = TAG_Int(0);
3979 fra.me.REG[9] = NEW_Array_array___Array___with_capacity(REGB2);
3980 /* ./compiling//compiling_global.nit:533 */
3981 array___Array___add(fra.me.REG[9], fra.me.REG[7]);
3982 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
3983 REGB2 = TAG_Bool(ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0])!=NIT_NULL);
3984 /* ./compiling//compiling_global.nit:534 */
3985 if (UNTAG_Bool(REGB2)) {
3986 } else {
3987 fprintf(stderr, "Uninitialized attribute %s", "_new_instance_iroutine");
3988 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 534);
3989 nit_exit(1);
3990 }
3991 fra.me.REG[9] = ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0]);
3992 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[2]);
3993 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3994 if (UNTAG_Bool(REGB2)) {
3995 fprintf(stderr, "Reciever is null");
3996 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 534);
3997 nit_exit(1);
3998 }
3999 fra.me.REG[8] = CALL_compiling_icode___IRoutine___compile_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[6], fra.me.REG[8]);
4000 REGB2 = TAG_Bool((fra.me.REG[8]!=NIT_NULL) && VAL_ISA(fra.me.REG[8], COLOR_String, ID_String)) /*cast String*/;
4001 if (UNTAG_Bool(REGB2)) {
4002 } else {
4003 fprintf(stderr, "Cast failed");
4004 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 534);
4005 nit_exit(1);
4006 }
4007 REGB2 = TAG_Int(0);
4008 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
4009 REGB2 = TAG_Int(3);
4010 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
4011 /* ./compiling//compiling_global.nit:535 */
4012 if (!once_value_58) {
4013 fra.me.REG[9] = BOX_NativeString("return ");
4014 REGB2 = TAG_Int(7);
4015 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2);
4016 once_value_58 = fra.me.REG[9];
4017 register_static_object(&once_value_58);
4018 } else fra.me.REG[9] = once_value_58;
4019 array___Array___add(fra.me.REG[2], fra.me.REG[9]);
4020 array___Array___add(fra.me.REG[2], fra.me.REG[8]);
4021 if (!once_value_59) {
4022 fra.me.REG[8] = BOX_NativeString(";");
4023 REGB2 = TAG_Int(1);
4024 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB2);
4025 once_value_59 = fra.me.REG[8];
4026 register_static_object(&once_value_59);
4027 } else fra.me.REG[8] = once_value_59;
4028 array___Array___add(fra.me.REG[2], fra.me.REG[8]);
4029 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4030 array___Array___add(fra.me.REG[6], fra.me.REG[2]);
4031 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
4032 fra.me.REG[6] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[1])(fra.me.REG[1]);
4033 /* ./compiling//compiling_global.nit:536 */
4034 CALL_compiling_base___CContext___append(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4035 /* ./compiling//compiling_global.nit:537 */
4036 CALL_compiling_base___CompilerVisitor___ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
4037 /* ./compiling//compiling_global.nit:538 */
4038 CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
4039 REGB2 = TAG_Int(0);
4040 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
4041 /* ./compiling//compiling_global.nit:539 */
4042 if (!once_value_60) {
4043 fra.me.REG[6] = BOX_NativeString("}");
4044 REGB2 = TAG_Int(1);
4045 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
4046 once_value_60 = fra.me.REG[6];
4047 register_static_object(&once_value_60);
4048 } else fra.me.REG[6] = once_value_60;
4049 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4050 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
4051 label51: while(0);
4052 } else {
4053 /* ./compiling//compiling_global.nit:523 */
4054 goto label61;
4055 }
4056 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
4057 }
4058 label61: while(0);
4059 } else {
4060 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4061 /* ./compiling//compiling_global.nit:541 */
4062 if (UNTAG_Bool(REGB2)) {
4063 fprintf(stderr, "Reciever is null");
4064 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 541);
4065 nit_exit(1);
4066 }
4067 REGB2 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[4])(fra.me.REG[4]);
4068 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4069 if (UNTAG_Bool(REGB2)) {
4070 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4071 /* ./compiling//compiling_global.nit:542 */
4072 if (UNTAG_Bool(REGB2)) {
4073 fprintf(stderr, "Reciever is null");
4074 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 542);
4075 nit_exit(1);
4076 }
4077 fra.me.REG[4] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[4])(fra.me.REG[4]);
4078 REGB2 = TAG_Int(3);
4079 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB2);
4080 /* ./compiling//compiling_global.nit:543 */
4081 if (!once_value_62) {
4082 fra.me.REG[7] = BOX_NativeString("struct TBOX_");
4083 REGB2 = TAG_Int(12);
4084 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
4085 once_value_62 = fra.me.REG[7];
4086 register_static_object(&once_value_62);
4087 } else fra.me.REG[7] = once_value_62;
4088 array___Array___add(fra.me.REG[3], fra.me.REG[7]);
4089 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
4090 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4091 array___Array___add(fra.me.REG[3], fra.me.REG[7]);
4092 if (!once_value_63) {
4093 fra.me.REG[7] = BOX_NativeString("");
4094 REGB2 = TAG_Int(0);
4095 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
4096 once_value_63 = fra.me.REG[7];
4097 register_static_object(&once_value_63);
4098 } else fra.me.REG[7] = once_value_63;
4099 array___Array___add(fra.me.REG[3], fra.me.REG[7]);
4100 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4101 REGB2 = TAG_Int(0);
4102 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
4103 REGB2 = TAG_Int(5);
4104 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
4105 /* ./compiling//compiling_global.nit:544 */
4106 if (!once_value_64) {
4107 fra.me.REG[6] = BOX_NativeString("val_t BOX_");
4108 REGB2 = TAG_Int(10);
4109 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
4110 once_value_64 = fra.me.REG[6];
4111 register_static_object(&once_value_64);
4112 } else fra.me.REG[6] = once_value_64;
4113 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4114 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
4115 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4116 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4117 if (!once_value_65) {
4118 fra.me.REG[6] = BOX_NativeString("(");
4119 REGB2 = TAG_Int(1);
4120 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
4121 once_value_65 = fra.me.REG[6];
4122 register_static_object(&once_value_65);
4123 } else fra.me.REG[6] = once_value_65;
4124 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4125 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
4126 if (!once_value_66) {
4127 fra.me.REG[4] = BOX_NativeString(" val) {");
4128 REGB2 = TAG_Int(7);
4129 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
4130 once_value_66 = fra.me.REG[4];
4131 register_static_object(&once_value_66);
4132 } else fra.me.REG[4] = once_value_66;
4133 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
4134 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4135 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
4136 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
4137 /* ./compiling//compiling_global.nit:545 */
4138 CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
4139 REGB2 = TAG_Int(0);
4140 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
4141 REGB2 = TAG_Int(7);
4142 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
4143 /* ./compiling//compiling_global.nit:546 */
4144 if (!once_value_67) {
4145 fra.me.REG[4] = BOX_NativeString("");
4146 REGB2 = TAG_Int(0);
4147 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
4148 once_value_67 = fra.me.REG[4];
4149 register_static_object(&once_value_67);
4150 } else fra.me.REG[4] = once_value_67;
4151 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
4152 array___Array___add(fra.me.REG[5], fra.me.REG[3]);
4153 if (!once_value_68) {
4154 fra.me.REG[4] = BOX_NativeString(" *box = (");
4155 REGB2 = TAG_Int(9);
4156 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
4157 once_value_68 = fra.me.REG[4];
4158 register_static_object(&once_value_68);
4159 } else fra.me.REG[4] = once_value_68;
4160 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
4161 array___Array___add(fra.me.REG[5], fra.me.REG[3]);
4162 if (!once_value_69) {
4163 fra.me.REG[4] = BOX_NativeString("*)alloc(sizeof(");
4164 REGB2 = TAG_Int(15);
4165 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
4166 once_value_69 = fra.me.REG[4];
4167 register_static_object(&once_value_69);
4168 } else fra.me.REG[4] = once_value_69;
4169 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
4170 array___Array___add(fra.me.REG[5], fra.me.REG[3]);
4171 if (!once_value_70) {
4172 fra.me.REG[3] = BOX_NativeString("));");
4173 REGB2 = TAG_Int(3);
4174 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
4175 once_value_70 = fra.me.REG[3];
4176 register_static_object(&once_value_70);
4177 } else fra.me.REG[3] = once_value_70;
4178 array___Array___add(fra.me.REG[5], fra.me.REG[3]);
4179 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4180 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
4181 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
4182 REGB2 = TAG_Int(0);
4183 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
4184 REGB2 = TAG_Int(3);
4185 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
4186 /* ./compiling//compiling_global.nit:547 */
4187 if (!once_value_71) {
4188 fra.me.REG[3] = BOX_NativeString("box->vft = VFT_");
4189 REGB2 = TAG_Int(15);
4190 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
4191 once_value_71 = fra.me.REG[3];
4192 register_static_object(&once_value_71);
4193 } else fra.me.REG[3] = once_value_71;
4194 array___Array___add(fra.me.REG[5], fra.me.REG[3]);
4195 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
4196 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4197 array___Array___add(fra.me.REG[5], fra.me.REG[0]);
4198 if (!once_value_72) {
4199 fra.me.REG[0] = BOX_NativeString(";");
4200 REGB2 = TAG_Int(1);
4201 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB2);
4202 once_value_72 = fra.me.REG[0];
4203 register_static_object(&once_value_72);
4204 } else fra.me.REG[0] = once_value_72;
4205 array___Array___add(fra.me.REG[5], fra.me.REG[0]);
4206 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4207 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
4208 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
4209 REGB2 = TAG_Int(0);
4210 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
4211 /* ./compiling//compiling_global.nit:548 */
4212 if (!once_value_73) {
4213 fra.me.REG[5] = BOX_NativeString("box->val = val;");
4214 REGB2 = TAG_Int(15);
4215 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
4216 once_value_73 = fra.me.REG[5];
4217 register_static_object(&once_value_73);
4218 } else fra.me.REG[5] = once_value_73;
4219 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
4220 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
4221 REGB2 = TAG_Int(0);
4222 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
4223 /* ./compiling//compiling_global.nit:549 */
4224 if (!once_value_74) {
4225 fra.me.REG[5] = BOX_NativeString("box->object_id = object_id_counter;");
4226 REGB2 = TAG_Int(35);
4227 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
4228 once_value_74 = fra.me.REG[5];
4229 register_static_object(&once_value_74);
4230 } else fra.me.REG[5] = once_value_74;
4231 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
4232 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
4233 REGB2 = TAG_Int(0);
4234 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
4235 /* ./compiling//compiling_global.nit:550 */
4236 if (!once_value_75) {
4237 fra.me.REG[5] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
4238 REGB2 = TAG_Int(42);
4239 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
4240 once_value_75 = fra.me.REG[5];
4241 register_static_object(&once_value_75);
4242 } else fra.me.REG[5] = once_value_75;
4243 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
4244 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
4245 REGB2 = TAG_Int(0);
4246 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
4247 /* ./compiling//compiling_global.nit:551 */
4248 if (!once_value_76) {
4249 fra.me.REG[5] = BOX_NativeString("return OBJ2VAL(box);");
4250 REGB2 = TAG_Int(20);
4251 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
4252 once_value_76 = fra.me.REG[5];
4253 register_static_object(&once_value_76);
4254 } else fra.me.REG[5] = once_value_76;
4255 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
4256 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
4257 /* ./compiling//compiling_global.nit:552 */
4258 CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
4259 REGB2 = TAG_Int(0);
4260 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
4261 /* ./compiling//compiling_global.nit:553 */
4262 if (!once_value_77) {
4263 fra.me.REG[5] = BOX_NativeString("}");
4264 REGB2 = TAG_Int(1);
4265 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
4266 once_value_77 = fra.me.REG[5];
4267 register_static_object(&once_value_77);
4268 } else fra.me.REG[5] = once_value_77;
4269 array___Array___add(fra.me.REG[7], fra.me.REG[5]);
4270 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
4271 }
4272 }
4273 }
4274 stack_frame_head = fra.me.prev;
4275 return;
4276 }
4277 void compiling_global___MMMethod___compile_property_to_c(val_t p0, val_t p1){
4278 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
4279 val_t REGB0;
4280 val_t REGB1;
4281 val_t tmp;
4282 static val_t once_value_1; /* Once value */
4283 static val_t once_value_2; /* Once value */
4284 static val_t once_value_3; /* Once value */
4285 static val_t once_value_4; /* Once value */
4286 static val_t once_value_5; /* Once value */
4287 static val_t once_value_6; /* Once value */
4288 static val_t once_value_7; /* Once value */
4289 static val_t once_value_8; /* Once value */
4290 static val_t once_value_9; /* Once value */
4291 static val_t once_value_10; /* Once value */
4292 static val_t once_value_11; /* Once value */
4293 static val_t once_value_12; /* Once value */
4294 static val_t once_value_13; /* Once value */
4295 static val_t once_value_14; /* Once value */
4296 static val_t once_value_15; /* Once value */
4297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4298 fra.me.file = LOCATE_compiling_global;
4299 fra.me.line = 559;
4300 fra.me.meth = LOCATE_compiling_global___MMMethod___compile_property_to_c;
4301 fra.me.has_broke = 0;
4302 fra.me.REG_size = 9;
4303 fra.me.REG[0] = NIT_NULL;
4304 fra.me.REG[1] = NIT_NULL;
4305 fra.me.REG[2] = NIT_NULL;
4306 fra.me.REG[3] = NIT_NULL;
4307 fra.me.REG[4] = NIT_NULL;
4308 fra.me.REG[5] = NIT_NULL;
4309 fra.me.REG[6] = NIT_NULL;
4310 fra.me.REG[7] = NIT_NULL;
4311 fra.me.REG[8] = NIT_NULL;
4312 fra.me.REG[0] = p0;
4313 fra.me.REG[1] = p1;
4314 fra.me.REG[2] = CALL_icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
4315 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4316 /* ./compiling//compiling_global.nit:562 */
4317 if (UNTAG_Bool(REGB0)) {
4318 } else {
4319 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4320 if (UNTAG_Bool(REGB1)) {
4321 REGB1 = TAG_Bool(false);
4322 REGB0 = REGB1;
4323 } else {
4324 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4325 REGB0 = REGB1;
4326 }
4327 }
4328 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4329 if (UNTAG_Bool(REGB0)) {
4330 } else {
4331 fprintf(stderr, "Assert failed");
4332 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 562);
4333 nit_exit(1);
4334 }
4335 fra.me.REG[3] = NIT_NULL;
4336 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4337 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
4338 /* ./compiling//compiling_global.nit:565 */
4339 if (UNTAG_Bool(REGB0)) {
4340 if (!once_value_1) {
4341 fra.me.REG[4] = BOX_NativeString("int* init_table");
4342 REGB0 = TAG_Int(15);
4343 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
4344 once_value_1 = fra.me.REG[4];
4345 register_static_object(&once_value_1);
4346 } else fra.me.REG[4] = once_value_1;
4347 fra.me.REG[3] = fra.me.REG[4];
4348 }
4349 fra.me.REG[4] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
4350 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
4351 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4352 /* ./compiling//compiling_global.nit:566 */
4353 if (UNTAG_Bool(REGB0)) {
4354 fprintf(stderr, "Reciever is null");
4355 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 566);
4356 nit_exit(1);
4357 }
4358 fra.me.REG[3] = CALL_compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[4], fra.me.REG[5], NIT_NULL, fra.me.REG[3]);
4359 fra.me.REG[5] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[1])(fra.me.REG[1]);
4360 fra.me.REG[4] = NEW_CContext_compiling_base___CContext___init();
4361 /* ./compiling//compiling_global.nit:568 */
4362 CALL_compiling_base___CompilerVisitor___ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4363 fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___out_contexts(fra.me.REG[1])(fra.me.REG[1]);
4364 /* ./compiling//compiling_global.nit:570 */
4365 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[4])(fra.me.REG[4]);
4366 fra.me.REG[4] = NIT_NULL;
4367 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4368 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[6])(fra.me.REG[6]);
4369 /* ./compiling//compiling_global.nit:573 */
4370 if (UNTAG_Bool(REGB0)) {
4371 REGB0 = TAG_Int(3);
4372 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
4373 /* ./compiling//compiling_global.nit:574 */
4374 if (!once_value_2) {
4375 fra.me.REG[7] = BOX_NativeString("itpos");
4376 REGB0 = TAG_Int(5);
4377 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
4378 once_value_2 = fra.me.REG[7];
4379 register_static_object(&once_value_2);
4380 } else fra.me.REG[7] = once_value_2;
4381 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
4382 REGB0 = CALL_compiling_base___CompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
4383 fra.me.REG[7] = CALL_string___Object___to_s(REGB0)(REGB0);
4384 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
4385 if (!once_value_3) {
4386 fra.me.REG[7] = BOX_NativeString("");
4387 REGB0 = TAG_Int(0);
4388 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
4389 once_value_3 = fra.me.REG[7];
4390 register_static_object(&once_value_3);
4391 } else fra.me.REG[7] = once_value_3;
4392 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
4393 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4394 fra.me.REG[4] = fra.me.REG[6];
4395 REGB0 = TAG_Int(0);
4396 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
4397 REGB0 = TAG_Int(7);
4398 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0);
4399 /* ./compiling//compiling_global.nit:575 */
4400 if (!once_value_4) {
4401 fra.me.REG[8] = BOX_NativeString("int ");
4402 REGB0 = TAG_Int(4);
4403 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
4404 once_value_4 = fra.me.REG[8];
4405 register_static_object(&once_value_4);
4406 } else fra.me.REG[8] = once_value_4;
4407 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
4408 array___Array___add(fra.me.REG[7], fra.me.REG[4]);
4409 if (!once_value_5) {
4410 fra.me.REG[8] = BOX_NativeString(" = VAL2OBJ(");
4411 REGB0 = TAG_Int(11);
4412 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
4413 once_value_5 = fra.me.REG[8];
4414 register_static_object(&once_value_5);
4415 } else fra.me.REG[8] = once_value_5;
4416 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
4417 fra.me.REG[8] = CALL_abstract_collection___Collection___first(fra.me.REG[3])(fra.me.REG[3]);
4418 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
4419 if (!once_value_6) {
4420 fra.me.REG[8] = BOX_NativeString(")->vft[");
4421 REGB0 = TAG_Int(7);
4422 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
4423 once_value_6 = fra.me.REG[8];
4424 register_static_object(&once_value_6);
4425 } else fra.me.REG[8] = once_value_6;
4426 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
4427 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
4428 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
4429 fra.me.REG[8] = CALL_compiling_base___MMGlobalClass___init_table_pos_id(fra.me.REG[8])(fra.me.REG[8]);
4430 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
4431 if (!once_value_7) {
4432 fra.me.REG[8] = BOX_NativeString("].i;");
4433 REGB0 = TAG_Int(4);
4434 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
4435 once_value_7 = fra.me.REG[8];
4436 register_static_object(&once_value_7);
4437 } else fra.me.REG[8] = once_value_7;
4438 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
4439 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4440 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
4441 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
4442 REGB0 = TAG_Int(0);
4443 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
4444 REGB0 = TAG_Int(3);
4445 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0);
4446 /* ./compiling//compiling_global.nit:576 */
4447 if (!once_value_8) {
4448 fra.me.REG[8] = BOX_NativeString("if (init_table[");
4449 REGB0 = TAG_Int(15);
4450 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
4451 once_value_8 = fra.me.REG[8];
4452 register_static_object(&once_value_8);
4453 } else fra.me.REG[8] = once_value_8;
4454 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
4455 array___Array___add(fra.me.REG[7], fra.me.REG[4]);
4456 if (!once_value_9) {
4457 fra.me.REG[8] = BOX_NativeString("]) return;");
4458 REGB0 = TAG_Int(10);
4459 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
4460 once_value_9 = fra.me.REG[8];
4461 register_static_object(&once_value_9);
4462 } else fra.me.REG[8] = once_value_9;
4463 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
4464 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4465 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
4466 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
4467 }
4468 fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
4469 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4470 /* ./compiling//compiling_global.nit:579 */
4471 if (UNTAG_Bool(REGB0)) {
4472 fprintf(stderr, "Reciever is null");
4473 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 579);
4474 nit_exit(1);
4475 }
4476 fra.me.REG[3] = CALL_compiling_icode___IRoutine___compile_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
4477 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4478 /* ./compiling//compiling_global.nit:581 */
4479 if (UNTAG_Bool(REGB0)) {
4480 } else {
4481 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4482 if (UNTAG_Bool(REGB1)) {
4483 REGB1 = TAG_Bool(false);
4484 REGB0 = REGB1;
4485 } else {
4486 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4487 REGB0 = REGB1;
4488 }
4489 }
4490 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4491 if (UNTAG_Bool(REGB0)) {
4492 REGB0 = TAG_Int(0);
4493 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
4494 REGB0 = TAG_Int(3);
4495 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
4496 /* ./compiling//compiling_global.nit:582 */
4497 if (!once_value_10) {
4498 fra.me.REG[6] = BOX_NativeString("init_table[");
4499 REGB0 = TAG_Int(11);
4500 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4501 once_value_10 = fra.me.REG[6];
4502 register_static_object(&once_value_10);
4503 } else fra.me.REG[6] = once_value_10;
4504 array___Array___add(fra.me.REG[2], fra.me.REG[6]);
4505 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
4506 if (!once_value_11) {
4507 fra.me.REG[4] = BOX_NativeString("] = 1;");
4508 REGB0 = TAG_Int(6);
4509 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
4510 once_value_11 = fra.me.REG[4];
4511 register_static_object(&once_value_11);
4512 } else fra.me.REG[4] = once_value_11;
4513 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
4514 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4515 array___Array___add(fra.me.REG[0], fra.me.REG[2]);
4516 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4517 }
4518 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4519 /* ./compiling//compiling_global.nit:584 */
4520 if (UNTAG_Bool(REGB0)) {
4521 } else {
4522 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4523 if (UNTAG_Bool(REGB1)) {
4524 REGB1 = TAG_Bool(false);
4525 REGB0 = REGB1;
4526 } else {
4527 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4528 REGB0 = REGB1;
4529 }
4530 }
4531 if (UNTAG_Bool(REGB0)) {
4532 REGB0 = TAG_Int(0);
4533 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
4534 /* ./compiling//compiling_global.nit:585 */
4535 if (!once_value_12) {
4536 fra.me.REG[2] = BOX_NativeString("return;");
4537 REGB0 = TAG_Int(7);
4538 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
4539 once_value_12 = fra.me.REG[2];
4540 register_static_object(&once_value_12);
4541 } else fra.me.REG[2] = once_value_12;
4542 array___Array___add(fra.me.REG[0], fra.me.REG[2]);
4543 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4544 } else {
4545 REGB0 = TAG_Int(2);
4546 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
4547 /* ./compiling//compiling_global.nit:587 */
4548 if (!once_value_13) {
4549 fra.me.REG[2] = BOX_NativeString("return ");
4550 REGB0 = TAG_Int(7);
4551 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
4552 once_value_13 = fra.me.REG[2];
4553 register_static_object(&once_value_13);
4554 } else fra.me.REG[2] = once_value_13;
4555 array___Array___add(fra.me.REG[0], fra.me.REG[2]);
4556 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
4557 if (!once_value_14) {
4558 fra.me.REG[3] = BOX_NativeString(";");
4559 REGB0 = TAG_Int(1);
4560 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
4561 once_value_14 = fra.me.REG[3];
4562 register_static_object(&once_value_14);
4563 } else fra.me.REG[3] = once_value_14;
4564 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
4565 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4566 }
4567 fra.me.REG[0] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[1])(fra.me.REG[1]);
4568 /* ./compiling//compiling_global.nit:590 */
4569 CALL_compiling_base___CContext___append(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
4570 /* ./compiling//compiling_global.nit:591 */
4571 CALL_compiling_base___CompilerVisitor___ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
4572 /* ./compiling//compiling_global.nit:592 */
4573 CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
4574 REGB0 = TAG_Int(0);
4575 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4576 /* ./compiling//compiling_global.nit:593 */
4577 if (!once_value_15) {
4578 fra.me.REG[0] = BOX_NativeString("}");
4579 REGB0 = TAG_Int(1);
4580 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4581 once_value_15 = fra.me.REG[0];
4582 register_static_object(&once_value_15);
4583 } else fra.me.REG[0] = once_value_15;
4584 array___Array___add(fra.me.REG[5], fra.me.REG[0]);
4585 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
4586 fra.me.REG[5] = CALL_compiling_base___CompilerVisitor___out_contexts(fra.me.REG[1])(fra.me.REG[1]);
4587 fra.me.REG[5] = CALL_abstract_collection___Collection___iterator(fra.me.REG[5])(fra.me.REG[5]);
4588 /* ./compiling//compiling_global.nit:595 */
4589 while(1) {
4590 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[5])(fra.me.REG[5]);
4591 if (UNTAG_Bool(REGB0)) {
4592 fra.me.REG[0] = CALL_abstract_collection___Iterator___item(fra.me.REG[5])(fra.me.REG[5]);
4593 fra.me.REG[3] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[1])(fra.me.REG[1]);
4594 CALL_compiling_base___CContext___merge(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4595 } else {
4596 goto label16;
4597 }
4598 CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]);
4599 }
4600 label16: while(0);
4601 stack_frame_head = fra.me.prev;
4602 return;
4603 }