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