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