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