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