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