1 /* This C file is generated by NIT to compile module native_interface___frontier. */
2 #include "native_interface___frontier._sep.h"
3 static const char LOCATE_native_interface___frontier___NiVariable___ni_from_name
[] = "frontier::NiVariable::ni_from_name";
4 val_t
native_interface___frontier___NiVariable___ni_from_name(val_t p0
){
5 struct {struct stack_frame_t me
;} fra
;
7 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8 fra
.me
.file
= LOCATE_native_interface___frontier
;
10 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___ni_from_name
;
13 fra
.me
.nitni_local_ref_head
= NULL
;
14 /* native_interface/frontier.nit:30 */
15 nit_abort("Deferred method called", NULL
, LOCATE_native_interface___frontier
, 30);
16 stack_frame_head
= fra
.me
.prev
;
19 static const char LOCATE_native_interface___frontier___NiVariable___ni_to_name
[] = "frontier::NiVariable::ni_to_name";
20 val_t
native_interface___frontier___NiVariable___ni_to_name(val_t p0
){
21 struct {struct stack_frame_t me
;} fra
;
23 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
24 fra
.me
.file
= LOCATE_native_interface___frontier
;
26 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___ni_to_name
;
29 fra
.me
.nitni_local_ref_head
= NULL
;
30 /* native_interface/frontier.nit:31 */
31 nit_abort("Deferred method called", NULL
, LOCATE_native_interface___frontier
, 31);
32 stack_frame_head
= fra
.me
.prev
;
35 static const char LOCATE_native_interface___frontier___NiVariable___ni_type
[] = "frontier::NiVariable::ni_type";
36 val_t
native_interface___frontier___NiVariable___ni_type(val_t p0
){
37 struct {struct stack_frame_t me
;} fra
;
39 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
40 fra
.me
.file
= LOCATE_native_interface___frontier
;
42 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___ni_type
;
45 fra
.me
.nitni_local_ref_head
= NULL
;
46 /* native_interface/frontier.nit:32 */
47 nit_abort("Deferred method called", NULL
, LOCATE_native_interface___frontier
, 32);
48 stack_frame_head
= fra
.me
.prev
;
51 static const char LOCATE_native_interface___frontier___NiVariable___needs_preparation
[] = "frontier::NiVariable::needs_preparation";
52 val_t
native_interface___frontier___NiVariable___needs_preparation(val_t p0
){
53 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
57 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
58 fra
.me
.file
= LOCATE_native_interface___frontier
;
60 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___needs_preparation
;
63 fra
.me
.nitni_local_ref_head
= NULL
;
64 fra
.me
.REG
[0] = NIT_NULL
;
65 fra
.me
.REG
[1] = NIT_NULL
;
67 /* native_interface/frontier.nit:38 */
68 fra
.me
.REG
[1] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
69 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
70 fra
.me
.REG
[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
71 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
72 if (UNTAG_Bool(REGB0
)) {
74 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
75 if (UNTAG_Bool(REGB1
)) {
79 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
83 if (UNTAG_Bool(REGB0
)) {
86 /* native_interface/frontier.nit:39 */
87 fra
.me
.REG
[1] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
88 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
89 fra
.me
.REG
[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
90 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
91 if (UNTAG_Bool(REGB1
)) {
92 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 39);
94 REGB1
= CALL_primitive_info___PrimitiveInfo___tagged(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
95 /* native_interface/frontier.nit:38 */
98 if (UNTAG_Bool(REGB0
)) {
101 /* native_interface/frontier.nit:40 */
102 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
103 REGB1
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
104 /* native_interface/frontier.nit:38 */
109 stack_frame_head
= fra
.me
.prev
;
112 static const char LOCATE_native_interface___frontier___NiVariable___prepare_for_nit
[] = "frontier::NiVariable::prepare_for_nit";
113 void native_interface___frontier___NiVariable___prepare_for_nit(val_t p0
, val_t p1
){
114 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
117 static val_t once_value_1
; /* Once value */
118 static val_t once_value_2
; /* Once value */
119 static val_t once_value_3
; /* Once value */
120 static val_t once_value_4
; /* Once value */
121 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
122 fra
.me
.file
= LOCATE_native_interface___frontier
;
124 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___prepare_for_nit
;
125 fra
.me
.has_broke
= 0;
127 fra
.me
.nitni_local_ref_head
= NULL
;
128 fra
.me
.REG
[0] = NIT_NULL
;
129 fra
.me
.REG
[1] = NIT_NULL
;
130 fra
.me
.REG
[2] = NIT_NULL
;
131 fra
.me
.REG
[3] = NIT_NULL
;
132 fra
.me
.REG
[4] = NIT_NULL
;
135 /* native_interface/frontier.nit:46 */
136 REGB0
= CALL_native_interface___frontier___NiVariable___needs_preparation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
137 if (UNTAG_Bool(REGB0
)) {
138 /* native_interface/frontier.nit:47 */
139 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
141 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
143 fra
.me
.REG
[4] = BOX_NativeString("val_t ");
145 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
146 once_value_1
= fra
.me
.REG
[4];
147 register_static_object(&once_value_1
);
148 } else fra
.me
.REG
[4] = once_value_1
;
149 fra
.me
.REG
[4] = fra
.me
.REG
[4];
150 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
151 fra
.me
.REG
[4] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
152 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
154 fra
.me
.REG
[4] = BOX_NativeString(";\n");
156 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
157 once_value_2
= fra
.me
.REG
[4];
158 register_static_object(&once_value_2
);
159 } else fra
.me
.REG
[4] = once_value_2
;
160 fra
.me
.REG
[4] = fra
.me
.REG
[4];
161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
162 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
163 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
164 /* native_interface/frontier.nit:48 */
165 fra
.me
.REG
[1] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
167 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
169 fra
.me
.REG
[2] = BOX_NativeString("");
171 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
172 once_value_3
= fra
.me
.REG
[2];
173 register_static_object(&once_value_3
);
174 } else fra
.me
.REG
[2] = once_value_3
;
175 fra
.me
.REG
[2] = fra
.me
.REG
[2];
176 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
177 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
178 fra
.me
.REG
[4] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
179 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
180 fra
.me
.REG
[0] = CALL_native_interface___ni_metamodel___MMType___assign_from_friendly(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4], fra
.me
.REG
[0]);
181 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
183 fra
.me
.REG
[0] = BOX_NativeString(";\n");
185 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
186 once_value_4
= fra
.me
.REG
[0];
187 register_static_object(&once_value_4
);
188 } else fra
.me
.REG
[0] = once_value_4
;
189 fra
.me
.REG
[0] = fra
.me
.REG
[0];
190 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
191 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
192 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
194 stack_frame_head
= fra
.me
.prev
;
197 static const char LOCATE_native_interface___frontier___NiVariable___prepare_for_c
[] = "frontier::NiVariable::prepare_for_c";
198 void native_interface___frontier___NiVariable___prepare_for_c(val_t p0
, val_t p1
){
199 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
202 static val_t once_value_1
; /* Once value */
203 static val_t once_value_2
; /* Once value */
204 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
205 fra
.me
.file
= LOCATE_native_interface___frontier
;
207 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___prepare_for_c
;
208 fra
.me
.has_broke
= 0;
210 fra
.me
.nitni_local_ref_head
= NULL
;
211 fra
.me
.REG
[0] = NIT_NULL
;
212 fra
.me
.REG
[1] = NIT_NULL
;
213 fra
.me
.REG
[2] = NIT_NULL
;
214 fra
.me
.REG
[3] = NIT_NULL
;
215 fra
.me
.REG
[4] = NIT_NULL
;
218 /* native_interface/frontier.nit:54 */
219 REGB0
= CALL_native_interface___frontier___NiVariable___needs_preparation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
220 if (UNTAG_Bool(REGB0
)) {
221 /* native_interface/frontier.nit:55 */
222 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
223 fra
.me
.REG
[3] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
224 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_native_interface___frontier___ReturnVariable
, ID_native_interface___frontier___ReturnVariable
)) /*cast ReturnVariable*/;
225 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
226 CALL_native_interface___frontier___MMType___compile_new_local_ref(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1], REGB0
);
227 /* native_interface/frontier.nit:56 */
228 fra
.me
.REG
[1] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
230 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
232 fra
.me
.REG
[2] = BOX_NativeString("");
234 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
235 once_value_1
= fra
.me
.REG
[2];
236 register_static_object(&once_value_1
);
237 } else fra
.me
.REG
[2] = once_value_1
;
238 fra
.me
.REG
[2] = fra
.me
.REG
[2];
239 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
240 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
241 fra
.me
.REG
[4] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
242 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
243 fra
.me
.REG
[0] = CALL_native_interface___ni_metamodel___MMType___assign_to_friendly(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4], fra
.me
.REG
[0]);
244 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
246 fra
.me
.REG
[0] = BOX_NativeString(";\n");
248 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
249 once_value_2
= fra
.me
.REG
[0];
250 register_static_object(&once_value_2
);
251 } else fra
.me
.REG
[0] = once_value_2
;
252 fra
.me
.REG
[0] = fra
.me
.REG
[0];
253 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
254 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
255 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
257 stack_frame_head
= fra
.me
.prev
;
260 static const char LOCATE_native_interface___frontier___NiVariable___as_arg_to_nit
[] = "frontier::NiVariable::as_arg_to_nit";
261 val_t
native_interface___frontier___NiVariable___as_arg_to_nit(val_t p0
){
262 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
266 static val_t once_value_2
; /* Once value */
267 static val_t once_value_3
; /* Once value */
268 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
269 fra
.me
.file
= LOCATE_native_interface___frontier
;
271 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___as_arg_to_nit
;
272 fra
.me
.has_broke
= 0;
274 fra
.me
.nitni_local_ref_head
= NULL
;
275 fra
.me
.REG
[0] = NIT_NULL
;
276 fra
.me
.REG
[1] = NIT_NULL
;
277 fra
.me
.REG
[2] = NIT_NULL
;
278 fra
.me
.REG
[3] = NIT_NULL
;
280 /* native_interface/frontier.nit:63 */
281 REGB0
= CALL_native_interface___frontier___NiVariable___needs_preparation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
282 if (UNTAG_Bool(REGB0
)) {
283 /* native_interface/frontier.nit:64 */
284 fra
.me
.REG
[1] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
287 /* native_interface/frontier.nit:65 */
288 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
289 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
290 fra
.me
.REG
[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
291 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
292 if (UNTAG_Bool(REGB0
)) {
294 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
295 if (UNTAG_Bool(REGB1
)) {
299 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
303 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
304 if (UNTAG_Bool(REGB0
)) {
307 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
308 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
309 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
310 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
313 if (UNTAG_Bool(REGB0
)) {
314 /* native_interface/frontier.nit:66 */
315 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
316 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
317 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
319 /* native_interface/frontier.nit:65 */
323 if (UNTAG_Bool(REGB0
)) {
324 /* native_interface/frontier.nit:67 */
325 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
326 fra
.me
.REG
[3] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
327 fra
.me
.REG
[3] = CALL_primitive_info___MMType___boxtype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
328 fra
.me
.REG
[1] = fra
.me
.REG
[3];
331 /* native_interface/frontier.nit:69 */
333 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
335 fra
.me
.REG
[2] = BOX_NativeString("");
337 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
338 once_value_2
= fra
.me
.REG
[2];
339 register_static_object(&once_value_2
);
340 } else fra
.me
.REG
[2] = once_value_2
;
341 fra
.me
.REG
[2] = fra
.me
.REG
[2];
342 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
343 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
344 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
346 fra
.me
.REG
[0] = BOX_NativeString("->ref.val");
348 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
349 once_value_3
= fra
.me
.REG
[0];
350 register_static_object(&once_value_3
);
351 } else fra
.me
.REG
[0] = once_value_3
;
352 fra
.me
.REG
[0] = fra
.me
.REG
[0];
353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
354 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
355 fra
.me
.REG
[1] = fra
.me
.REG
[3];
360 stack_frame_head
= fra
.me
.prev
;
361 return fra
.me
.REG
[1];
363 static const char LOCATE_native_interface___frontier___NiVariable___as_arg_to_c
[] = "frontier::NiVariable::as_arg_to_c";
364 val_t
native_interface___frontier___NiVariable___as_arg_to_c(val_t p0
){
365 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
368 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
369 fra
.me
.file
= LOCATE_native_interface___frontier
;
371 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___as_arg_to_c
;
372 fra
.me
.has_broke
= 0;
374 fra
.me
.nitni_local_ref_head
= NULL
;
375 fra
.me
.REG
[0] = NIT_NULL
;
376 fra
.me
.REG
[1] = NIT_NULL
;
377 fra
.me
.REG
[2] = NIT_NULL
;
379 /* native_interface/frontier.nit:76 */
380 REGB0
= CALL_native_interface___frontier___NiVariable___needs_preparation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
381 if (UNTAG_Bool(REGB0
)) {
382 /* native_interface/frontier.nit:77 */
383 fra
.me
.REG
[1] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
386 /* native_interface/frontier.nit:79 */
387 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
388 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
389 fra
.me
.REG
[0] = CALL_primitive_info___MMType___unboxtype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
390 fra
.me
.REG
[1] = fra
.me
.REG
[0];
394 stack_frame_head
= fra
.me
.prev
;
395 return fra
.me
.REG
[1];
397 static const char LOCATE_native_interface___frontier___NiVariable___init
[] = "frontier::NiVariable::init";
398 void native_interface___frontier___NiVariable___init(val_t p0
, int* init_table
){
399 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_native_interface___frontier___NiVariable
].i
;
400 struct {struct stack_frame_t me
;} fra
;
402 if (init_table
[itpos0
]) return;
403 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
404 fra
.me
.file
= LOCATE_native_interface___frontier
;
406 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___init
;
407 fra
.me
.has_broke
= 0;
409 fra
.me
.nitni_local_ref_head
= NULL
;
410 stack_frame_head
= fra
.me
.prev
;
411 init_table
[itpos0
] = 1;
414 static const char LOCATE_native_interface___frontier___MMParam___ni_from_name
[] = "frontier::MMParam::(frontier::NiVariable::ni_from_name)";
415 val_t
native_interface___frontier___MMParam___ni_from_name(val_t p0
){
416 struct {struct stack_frame_t me
;} fra
;
418 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
419 fra
.me
.file
= LOCATE_native_interface___frontier
;
421 fra
.me
.meth
= LOCATE_native_interface___frontier___MMParam___ni_from_name
;
422 fra
.me
.has_broke
= 0;
424 fra
.me
.nitni_local_ref_head
= NULL
;
425 fra
.me
.REG
[0] = NIT_NULL
;
427 /* native_interface/frontier.nit:87 */
428 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMParam___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
429 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
432 stack_frame_head
= fra
.me
.prev
;
433 return fra
.me
.REG
[0];
435 static const char LOCATE_native_interface___frontier___MMParam___ni_to_name
[] = "frontier::MMParam::(frontier::NiVariable::ni_to_name)";
436 val_t
native_interface___frontier___MMParam___ni_to_name(val_t p0
){
437 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
440 static val_t once_value_1
; /* Once value */
441 static val_t once_value_2
; /* Once value */
442 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
443 fra
.me
.file
= LOCATE_native_interface___frontier
;
445 fra
.me
.meth
= LOCATE_native_interface___frontier___MMParam___ni_to_name
;
446 fra
.me
.has_broke
= 0;
448 fra
.me
.nitni_local_ref_head
= NULL
;
449 fra
.me
.REG
[0] = NIT_NULL
;
450 fra
.me
.REG
[1] = NIT_NULL
;
451 fra
.me
.REG
[2] = NIT_NULL
;
453 /* native_interface/frontier.nit:88 */
455 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
457 fra
.me
.REG
[2] = BOX_NativeString("trans___");
459 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
460 once_value_1
= fra
.me
.REG
[2];
461 register_static_object(&once_value_1
);
462 } else fra
.me
.REG
[2] = once_value_1
;
463 fra
.me
.REG
[2] = fra
.me
.REG
[2];
464 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
465 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMParam___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
466 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
467 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
469 fra
.me
.REG
[0] = BOX_NativeString("");
471 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
472 once_value_2
= fra
.me
.REG
[0];
473 register_static_object(&once_value_2
);
474 } else fra
.me
.REG
[0] = once_value_2
;
475 fra
.me
.REG
[0] = fra
.me
.REG
[0];
476 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
477 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
480 stack_frame_head
= fra
.me
.prev
;
481 return fra
.me
.REG
[1];
483 static const char LOCATE_native_interface___frontier___MMParam___ni_type
[] = "frontier::MMParam::(frontier::NiVariable::ni_type)";
484 val_t
native_interface___frontier___MMParam___ni_type(val_t p0
){
485 struct {struct stack_frame_t me
;} fra
;
487 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
488 fra
.me
.file
= LOCATE_native_interface___frontier
;
490 fra
.me
.meth
= LOCATE_native_interface___frontier___MMParam___ni_type
;
491 fra
.me
.has_broke
= 0;
493 fra
.me
.nitni_local_ref_head
= NULL
;
494 fra
.me
.REG
[0] = NIT_NULL
;
496 /* native_interface/frontier.nit:89 */
497 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMParam___mmtype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
500 stack_frame_head
= fra
.me
.prev
;
501 return fra
.me
.REG
[0];
503 static const char LOCATE_native_interface___frontier___ReceiverVariable___ni_from_name
[] = "frontier::ReceiverVariable::(frontier::NiVariable::ni_from_name)";
504 val_t
native_interface___frontier___ReceiverVariable___ni_from_name(val_t p0
){
505 struct {struct stack_frame_t me
;} fra
;
508 static val_t once_value_1
; /* Once value */
509 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
510 fra
.me
.file
= LOCATE_native_interface___frontier
;
512 fra
.me
.meth
= LOCATE_native_interface___frontier___ReceiverVariable___ni_from_name
;
513 fra
.me
.has_broke
= 0;
515 fra
.me
.nitni_local_ref_head
= NULL
;
516 fra
.me
.REG
[0] = NIT_NULL
;
518 /* native_interface/frontier.nit:95 */
520 fra
.me
.REG
[0] = BOX_NativeString("recv");
522 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
523 once_value_1
= fra
.me
.REG
[0];
524 register_static_object(&once_value_1
);
525 } else fra
.me
.REG
[0] = once_value_1
;
526 fra
.me
.REG
[0] = fra
.me
.REG
[0];
529 stack_frame_head
= fra
.me
.prev
;
530 return fra
.me
.REG
[0];
532 static const char LOCATE_native_interface___frontier___ReceiverVariable___ni_to_name
[] = "frontier::ReceiverVariable::(frontier::NiVariable::ni_to_name)";
533 val_t
native_interface___frontier___ReceiverVariable___ni_to_name(val_t p0
){
534 struct {struct stack_frame_t me
;} fra
;
537 static val_t once_value_1
; /* Once value */
538 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
539 fra
.me
.file
= LOCATE_native_interface___frontier
;
541 fra
.me
.meth
= LOCATE_native_interface___frontier___ReceiverVariable___ni_to_name
;
542 fra
.me
.has_broke
= 0;
544 fra
.me
.nitni_local_ref_head
= NULL
;
545 fra
.me
.REG
[0] = NIT_NULL
;
547 /* native_interface/frontier.nit:96 */
549 fra
.me
.REG
[0] = BOX_NativeString("trans_recv");
551 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
552 once_value_1
= fra
.me
.REG
[0];
553 register_static_object(&once_value_1
);
554 } else fra
.me
.REG
[0] = once_value_1
;
555 fra
.me
.REG
[0] = fra
.me
.REG
[0];
558 stack_frame_head
= fra
.me
.prev
;
559 return fra
.me
.REG
[0];
561 static const char LOCATE_native_interface___frontier___ReceiverVariable___ni_type
[] = "frontier::ReceiverVariable::(frontier::NiVariable::ni_type)";
562 val_t
native_interface___frontier___ReceiverVariable___ni_type(val_t p0
){
563 struct {struct stack_frame_t me
;} fra
;
566 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
567 fra
.me
.file
= LOCATE_native_interface___frontier
;
569 fra
.me
.meth
= LOCATE_native_interface___frontier___ReceiverVariable___ni_type
;
570 fra
.me
.has_broke
= 0;
572 fra
.me
.nitni_local_ref_head
= NULL
;
573 fra
.me
.REG
[0] = NIT_NULL
;
575 /* native_interface/frontier.nit:98 */
576 REGB0
= TAG_Bool(ATTR_native_interface___frontier___ReceiverVariable_____atni_type(fra
.me
.REG
[0])!=NIT_NULL
);
577 if (UNTAG_Bool(REGB0
)) {
579 nit_abort("Uninitialized attribute %s", "@ni_type", LOCATE_native_interface___frontier
, 98);
581 fra
.me
.REG
[0] = ATTR_native_interface___frontier___ReceiverVariable_____atni_type(fra
.me
.REG
[0]);
582 stack_frame_head
= fra
.me
.prev
;
583 return fra
.me
.REG
[0];
585 static const char LOCATE_native_interface___frontier___ReceiverVariable___ni_type__eq
[] = "frontier::ReceiverVariable::ni_type=";
586 void native_interface___frontier___ReceiverVariable___ni_type__eq(val_t p0
, val_t p1
){
587 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
589 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
590 fra
.me
.file
= LOCATE_native_interface___frontier
;
592 fra
.me
.meth
= LOCATE_native_interface___frontier___ReceiverVariable___ni_type__eq
;
593 fra
.me
.has_broke
= 0;
595 fra
.me
.nitni_local_ref_head
= NULL
;
596 fra
.me
.REG
[0] = NIT_NULL
;
597 fra
.me
.REG
[1] = NIT_NULL
;
600 /* native_interface/frontier.nit:98 */
601 ATTR_native_interface___frontier___ReceiverVariable_____atni_type(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
602 stack_frame_head
= fra
.me
.prev
;
605 static const char LOCATE_native_interface___frontier___ReceiverVariable___init
[] = "frontier::ReceiverVariable::init";
606 void native_interface___frontier___ReceiverVariable___init(val_t p0
, val_t p1
, int* init_table
){
607 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_native_interface___frontier___ReceiverVariable
].i
;
608 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
610 if (init_table
[itpos1
]) return;
611 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
612 fra
.me
.file
= LOCATE_native_interface___frontier
;
614 fra
.me
.meth
= LOCATE_native_interface___frontier___ReceiverVariable___init
;
615 fra
.me
.has_broke
= 0;
617 fra
.me
.nitni_local_ref_head
= NULL
;
618 fra
.me
.REG
[0] = NIT_NULL
;
619 fra
.me
.REG
[1] = NIT_NULL
;
620 fra
.me
.REG
[2] = NIT_NULL
;
623 /* native_interface/frontier.nit:99 */
624 fra
.me
.REG
[2] = fra
.me
.REG
[0];
625 CALL_native_interface___frontier___NiVariable___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
626 CALL_native_interface___frontier___ReceiverVariable___ni_type__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
627 stack_frame_head
= fra
.me
.prev
;
628 init_table
[itpos1
] = 1;
631 static const char LOCATE_native_interface___frontier___ReturnVariable___ni_from_name
[] = "frontier::ReturnVariable::(frontier::NiVariable::ni_from_name)";
632 val_t
native_interface___frontier___ReturnVariable___ni_from_name(val_t p0
){
633 struct {struct stack_frame_t me
;} fra
;
636 static val_t once_value_1
; /* Once value */
637 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
638 fra
.me
.file
= LOCATE_native_interface___frontier
;
640 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___ni_from_name
;
641 fra
.me
.has_broke
= 0;
643 fra
.me
.nitni_local_ref_head
= NULL
;
644 fra
.me
.REG
[0] = NIT_NULL
;
646 /* native_interface/frontier.nit:105 */
648 fra
.me
.REG
[0] = BOX_NativeString("orig_return");
650 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
651 once_value_1
= fra
.me
.REG
[0];
652 register_static_object(&once_value_1
);
653 } else fra
.me
.REG
[0] = once_value_1
;
654 fra
.me
.REG
[0] = fra
.me
.REG
[0];
657 stack_frame_head
= fra
.me
.prev
;
658 return fra
.me
.REG
[0];
660 static const char LOCATE_native_interface___frontier___ReturnVariable___ni_to_name
[] = "frontier::ReturnVariable::(frontier::NiVariable::ni_to_name)";
661 val_t
native_interface___frontier___ReturnVariable___ni_to_name(val_t p0
){
662 struct {struct stack_frame_t me
;} fra
;
665 static val_t once_value_1
; /* Once value */
666 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
667 fra
.me
.file
= LOCATE_native_interface___frontier
;
669 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___ni_to_name
;
670 fra
.me
.has_broke
= 0;
672 fra
.me
.nitni_local_ref_head
= NULL
;
673 fra
.me
.REG
[0] = NIT_NULL
;
675 /* native_interface/frontier.nit:106 */
677 fra
.me
.REG
[0] = BOX_NativeString("trans_return");
679 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
680 once_value_1
= fra
.me
.REG
[0];
681 register_static_object(&once_value_1
);
682 } else fra
.me
.REG
[0] = once_value_1
;
683 fra
.me
.REG
[0] = fra
.me
.REG
[0];
686 stack_frame_head
= fra
.me
.prev
;
687 return fra
.me
.REG
[0];
689 static const char LOCATE_native_interface___frontier___ReturnVariable___ni_type
[] = "frontier::ReturnVariable::(frontier::NiVariable::ni_type)";
690 val_t
native_interface___frontier___ReturnVariable___ni_type(val_t p0
){
691 struct {struct stack_frame_t me
;} fra
;
694 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
695 fra
.me
.file
= LOCATE_native_interface___frontier
;
697 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___ni_type
;
698 fra
.me
.has_broke
= 0;
700 fra
.me
.nitni_local_ref_head
= NULL
;
701 fra
.me
.REG
[0] = NIT_NULL
;
703 /* native_interface/frontier.nit:108 */
704 REGB0
= TAG_Bool(ATTR_native_interface___frontier___ReturnVariable_____atni_type(fra
.me
.REG
[0])!=NIT_NULL
);
705 if (UNTAG_Bool(REGB0
)) {
707 nit_abort("Uninitialized attribute %s", "@ni_type", LOCATE_native_interface___frontier
, 108);
709 fra
.me
.REG
[0] = ATTR_native_interface___frontier___ReturnVariable_____atni_type(fra
.me
.REG
[0]);
710 stack_frame_head
= fra
.me
.prev
;
711 return fra
.me
.REG
[0];
713 static const char LOCATE_native_interface___frontier___ReturnVariable___ni_type__eq
[] = "frontier::ReturnVariable::ni_type=";
714 void native_interface___frontier___ReturnVariable___ni_type__eq(val_t p0
, val_t p1
){
715 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
717 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
718 fra
.me
.file
= LOCATE_native_interface___frontier
;
720 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___ni_type__eq
;
721 fra
.me
.has_broke
= 0;
723 fra
.me
.nitni_local_ref_head
= NULL
;
724 fra
.me
.REG
[0] = NIT_NULL
;
725 fra
.me
.REG
[1] = NIT_NULL
;
728 /* native_interface/frontier.nit:108 */
729 ATTR_native_interface___frontier___ReturnVariable_____atni_type(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
730 stack_frame_head
= fra
.me
.prev
;
733 static const char LOCATE_native_interface___frontier___ReturnVariable___init
[] = "frontier::ReturnVariable::init";
734 void native_interface___frontier___ReturnVariable___init(val_t p0
, val_t p1
, int* init_table
){
735 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_native_interface___frontier___ReturnVariable
].i
;
736 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
738 if (init_table
[itpos2
]) return;
739 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
740 fra
.me
.file
= LOCATE_native_interface___frontier
;
742 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___init
;
743 fra
.me
.has_broke
= 0;
745 fra
.me
.nitni_local_ref_head
= NULL
;
746 fra
.me
.REG
[0] = NIT_NULL
;
747 fra
.me
.REG
[1] = NIT_NULL
;
748 fra
.me
.REG
[2] = NIT_NULL
;
751 /* native_interface/frontier.nit:109 */
752 fra
.me
.REG
[2] = fra
.me
.REG
[0];
753 CALL_native_interface___frontier___NiVariable___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
754 CALL_native_interface___frontier___ReturnVariable___ni_type__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
755 stack_frame_head
= fra
.me
.prev
;
756 init_table
[itpos2
] = 1;
759 static const char LOCATE_native_interface___frontier___ReturnVariable___prepare_for_c
[] = "frontier::ReturnVariable::(frontier::NiVariable::prepare_for_c)";
760 void native_interface___frontier___ReturnVariable___prepare_for_c(val_t p0
, val_t p1
){
761 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
764 static val_t once_value_1
; /* Once value */
765 static val_t once_value_2
; /* Once value */
766 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
767 fra
.me
.file
= LOCATE_native_interface___frontier
;
769 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___prepare_for_c
;
770 fra
.me
.has_broke
= 0;
772 fra
.me
.nitni_local_ref_head
= NULL
;
773 fra
.me
.REG
[0] = NIT_NULL
;
774 fra
.me
.REG
[1] = NIT_NULL
;
775 fra
.me
.REG
[2] = NIT_NULL
;
776 fra
.me
.REG
[3] = NIT_NULL
;
777 fra
.me
.REG
[4] = NIT_NULL
;
780 /* native_interface/frontier.nit:114 */
781 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
783 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
785 fra
.me
.REG
[4] = BOX_NativeString("val_t ");
787 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
788 once_value_1
= fra
.me
.REG
[4];
789 register_static_object(&once_value_1
);
790 } else fra
.me
.REG
[4] = once_value_1
;
791 fra
.me
.REG
[4] = fra
.me
.REG
[4];
792 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
793 fra
.me
.REG
[4] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
794 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
796 fra
.me
.REG
[4] = BOX_NativeString(";\n");
798 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
799 once_value_2
= fra
.me
.REG
[4];
800 register_static_object(&once_value_2
);
801 } else fra
.me
.REG
[4] = once_value_2
;
802 fra
.me
.REG
[4] = fra
.me
.REG
[4];
803 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
804 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
805 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
806 /* native_interface/frontier.nit:115 */
807 fra
.me
.REG
[3] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
808 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
810 CALL_native_interface___frontier___MMType___compile_new_local_ref(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0], fra
.me
.REG
[1], REGB0
);
811 stack_frame_head
= fra
.me
.prev
;
814 static const char LOCATE_native_interface___frontier___ReturnVariable___prepare_for_nit
[] = "frontier::ReturnVariable::(frontier::NiVariable::prepare_for_nit)";
815 void native_interface___frontier___ReturnVariable___prepare_for_nit(val_t p0
, val_t p1
){
816 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
819 static val_t once_value_1
; /* Once value */
820 static val_t once_value_2
; /* Once value */
821 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
822 fra
.me
.file
= LOCATE_native_interface___frontier
;
824 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___prepare_for_nit
;
825 fra
.me
.has_broke
= 0;
827 fra
.me
.nitni_local_ref_head
= NULL
;
828 fra
.me
.REG
[0] = NIT_NULL
;
829 fra
.me
.REG
[1] = NIT_NULL
;
830 fra
.me
.REG
[2] = NIT_NULL
;
831 fra
.me
.REG
[3] = NIT_NULL
;
834 /* native_interface/frontier.nit:119 */
835 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
836 fra
.me
.REG
[3] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
838 CALL_native_interface___frontier___MMType___compile_new_local_ref(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1], REGB0
);
839 /* native_interface/frontier.nit:120 */
840 fra
.me
.REG
[1] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
842 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
844 fra
.me
.REG
[2] = BOX_NativeString("val_t ");
846 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
847 once_value_1
= fra
.me
.REG
[2];
848 register_static_object(&once_value_1
);
849 } else fra
.me
.REG
[2] = once_value_1
;
850 fra
.me
.REG
[2] = fra
.me
.REG
[2];
851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
852 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
853 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
855 fra
.me
.REG
[0] = BOX_NativeString(";\n");
857 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
858 once_value_2
= fra
.me
.REG
[0];
859 register_static_object(&once_value_2
);
860 } else fra
.me
.REG
[0] = once_value_2
;
861 fra
.me
.REG
[0] = fra
.me
.REG
[0];
862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
863 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
864 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
865 stack_frame_head
= fra
.me
.prev
;
868 static const char LOCATE_native_interface___frontier___MMSrcModule___compile_frontier
[] = "frontier::MMSrcModule::compile_frontier";
869 void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0
, val_t p1
){
870 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
873 static val_t once_value_1
; /* Once value */
874 static val_t once_value_2
; /* Once value */
875 static val_t once_value_3
; /* Once value */
876 static val_t once_value_4
; /* Once value */
877 static val_t once_value_5
; /* Once value */
878 static val_t once_value_6
; /* Once value */
879 static val_t once_value_7
; /* Once value */
880 static val_t once_value_8
; /* Once value */
881 static val_t once_value_9
; /* Once value */
882 static val_t once_value_10
; /* Once value */
883 static val_t once_value_11
; /* Once value */
884 static val_t once_value_12
; /* Once value */
885 static val_t once_value_13
; /* Once value */
886 static val_t once_value_14
; /* Once value */
887 static val_t once_value_15
; /* Once value */
888 static val_t once_value_16
; /* Once value */
889 static val_t once_value_17
; /* Once value */
890 static val_t once_value_18
; /* Once value */
891 static val_t once_value_19
; /* Once value */
892 static val_t once_value_20
; /* Once value */
893 static val_t once_value_21
; /* Once value */
894 static val_t once_value_22
; /* Once value */
895 static val_t once_value_23
; /* Once value */
896 static val_t once_value_24
; /* Once value */
897 static val_t once_value_27
; /* Once value */
898 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
899 fra
.me
.file
= LOCATE_native_interface___frontier
;
901 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcModule___compile_frontier
;
902 fra
.me
.has_broke
= 0;
904 fra
.me
.nitni_local_ref_head
= NULL
;
905 fra
.me
.REG
[0] = NIT_NULL
;
906 fra
.me
.REG
[1] = NIT_NULL
;
907 fra
.me
.REG
[2] = NIT_NULL
;
908 fra
.me
.REG
[3] = NIT_NULL
;
909 fra
.me
.REG
[4] = NIT_NULL
;
910 fra
.me
.REG
[5] = NIT_NULL
;
913 /* native_interface/frontier.nit:129 */
914 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
916 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
918 fra
.me
.REG
[4] = BOX_NativeString("#include \"");
920 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
921 once_value_1
= fra
.me
.REG
[4];
922 register_static_object(&once_value_1
);
923 } else fra
.me
.REG
[4] = once_value_1
;
924 fra
.me
.REG
[4] = fra
.me
.REG
[4];
925 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
926 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
927 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
928 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
930 fra
.me
.REG
[4] = BOX_NativeString("._nitni.h\"\n");
932 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
933 once_value_2
= fra
.me
.REG
[4];
934 register_static_object(&once_value_2
);
935 } else fra
.me
.REG
[4] = once_value_2
;
936 fra
.me
.REG
[4] = fra
.me
.REG
[4];
937 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
938 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
939 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
940 /* native_interface/frontier.nit:132 */
941 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
943 fra
.me
.REG
[2] = BOX_NativeString("#include <nit_common.h>\n");
945 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
946 once_value_3
= fra
.me
.REG
[2];
947 register_static_object(&once_value_3
);
948 } else fra
.me
.REG
[2] = once_value_3
;
949 fra
.me
.REG
[2] = fra
.me
.REG
[2];
950 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
951 /* native_interface/frontier.nit:133 */
952 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
954 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
956 fra
.me
.REG
[4] = BOX_NativeString("#include \"");
958 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
959 once_value_4
= fra
.me
.REG
[4];
960 register_static_object(&once_value_4
);
961 } else fra
.me
.REG
[4] = once_value_4
;
962 fra
.me
.REG
[4] = fra
.me
.REG
[4];
963 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
964 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___cprogram(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
965 fra
.me
.REG
[4] = CALL_compiling___compiling_base___CProgram___module_header_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
966 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
968 fra
.me
.REG
[4] = BOX_NativeString("\"\n");
970 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
971 once_value_5
= fra
.me
.REG
[4];
972 register_static_object(&once_value_5
);
973 } else fra
.me
.REG
[4] = once_value_5
;
974 fra
.me
.REG
[4] = fra
.me
.REG
[4];
975 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
976 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
977 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
978 /* native_interface/frontier.nit:135 */
980 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
982 fra
.me
.REG
[2] = BOX_NativeString("");
984 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
985 once_value_6
= fra
.me
.REG
[2];
986 register_static_object(&once_value_6
);
987 } else fra
.me
.REG
[2] = once_value_6
;
988 fra
.me
.REG
[2] = fra
.me
.REG
[2];
989 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
990 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
991 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
992 fra
.me
.REG
[2] = CALL_standard___string___AbstractString___to_upper(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
993 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
995 fra
.me
.REG
[2] = BOX_NativeString("_NITNI_H");
997 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
998 once_value_7
= fra
.me
.REG
[2];
999 register_static_object(&once_value_7
);
1000 } else fra
.me
.REG
[2] = once_value_7
;
1001 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1002 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1003 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1004 /* native_interface/frontier.nit:136 */
1005 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1007 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1008 if (!once_value_8
) {
1009 fra
.me
.REG
[5] = BOX_NativeString("#ifndef ");
1011 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1012 once_value_8
= fra
.me
.REG
[5];
1013 register_static_object(&once_value_8
);
1014 } else fra
.me
.REG
[5] = once_value_8
;
1015 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1016 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1017 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1018 if (!once_value_9
) {
1019 fra
.me
.REG
[5] = BOX_NativeString("\n");
1021 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1022 once_value_9
= fra
.me
.REG
[5];
1023 register_static_object(&once_value_9
);
1024 } else fra
.me
.REG
[5] = once_value_9
;
1025 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1026 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1027 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1028 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1029 /* native_interface/frontier.nit:137 */
1030 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1032 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1033 if (!once_value_10
) {
1034 fra
.me
.REG
[5] = BOX_NativeString("#define ");
1036 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1037 once_value_10
= fra
.me
.REG
[5];
1038 register_static_object(&once_value_10
);
1039 } else fra
.me
.REG
[5] = once_value_10
;
1040 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1041 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
1042 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1043 if (!once_value_11
) {
1044 fra
.me
.REG
[3] = BOX_NativeString("\n\n");
1046 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1047 once_value_11
= fra
.me
.REG
[3];
1048 register_static_object(&once_value_11
);
1049 } else fra
.me
.REG
[3] = once_value_11
;
1050 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1051 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1052 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1053 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1054 /* native_interface/frontier.nit:140 */
1056 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1057 if (!once_value_12
) {
1058 fra
.me
.REG
[4] = BOX_NativeString("");
1060 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1061 once_value_12
= fra
.me
.REG
[4];
1062 register_static_object(&once_value_12
);
1063 } else fra
.me
.REG
[4] = once_value_12
;
1064 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1065 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1066 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule___directory(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1067 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1068 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1069 if (!once_value_13
) {
1070 fra
.me
.REG
[4] = BOX_NativeString("/");
1072 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1073 once_value_13
= fra
.me
.REG
[4];
1074 register_static_object(&once_value_13
);
1075 } else fra
.me
.REG
[4] = once_value_13
;
1076 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1077 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1078 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1079 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1080 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1081 if (!once_value_14
) {
1082 fra
.me
.REG
[4] = BOX_NativeString(".nit.h");
1084 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1085 once_value_14
= fra
.me
.REG
[4];
1086 register_static_object(&once_value_14
);
1087 } else fra
.me
.REG
[4] = once_value_14
;
1088 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1089 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1090 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1091 /* native_interface/frontier.nit:141 */
1092 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1093 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1094 if (UNTAG_Bool(REGB0
)) {
1095 /* native_interface/frontier.nit:142 */
1097 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1098 if (!once_value_15
) {
1099 fra
.me
.REG
[3] = BOX_NativeString("");
1101 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1102 once_value_15
= fra
.me
.REG
[3];
1103 register_static_object(&once_value_15
);
1104 } else fra
.me
.REG
[3] = once_value_15
;
1105 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1106 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1107 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMModule___directory(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1108 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1109 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1110 if (!once_value_16
) {
1111 fra
.me
.REG
[3] = BOX_NativeString("/");
1113 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1114 once_value_16
= fra
.me
.REG
[3];
1115 register_static_object(&once_value_16
);
1116 } else fra
.me
.REG
[3] = once_value_16
;
1117 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1118 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1119 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1120 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1121 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1122 if (!once_value_17
) {
1123 fra
.me
.REG
[3] = BOX_NativeString("_nit.h");
1125 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1126 once_value_17
= fra
.me
.REG
[3];
1127 register_static_object(&once_value_17
);
1128 } else fra
.me
.REG
[3] = once_value_17
;
1129 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1130 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1131 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1132 fra
.me
.REG
[2] = fra
.me
.REG
[4];
1134 /* native_interface/frontier.nit:144 */
1135 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1136 if (UNTAG_Bool(REGB0
)) {
1137 /* native_interface/frontier.nit:145 */
1138 if (!once_value_18
) {
1139 fra
.me
.REG
[4] = BOX_NativeString("..");
1141 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1142 once_value_18
= fra
.me
.REG
[4];
1143 register_static_object(&once_value_18
);
1144 } else fra
.me
.REG
[4] = once_value_18
;
1145 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1146 fra
.me
.REG
[2] = CALL_standard___file___String___join_path(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1147 fra
.me
.REG
[2] = CALL_standard___file___String___simplify_path(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1148 /* native_interface/frontier.nit:146 */
1149 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1151 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1152 if (!once_value_19
) {
1153 fra
.me
.REG
[5] = BOX_NativeString("#include \"");
1154 REGB0
= TAG_Int(10);
1155 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1156 once_value_19
= fra
.me
.REG
[5];
1157 register_static_object(&once_value_19
);
1158 } else fra
.me
.REG
[5] = once_value_19
;
1159 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1160 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1162 if (!once_value_20
) {
1163 fra
.me
.REG
[5] = BOX_NativeString("\"\n");
1165 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1166 once_value_20
= fra
.me
.REG
[5];
1167 register_static_object(&once_value_20
);
1168 } else fra
.me
.REG
[5] = once_value_20
;
1169 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1170 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1171 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1172 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1173 /* native_interface/frontier.nit:147 */
1174 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1176 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1177 if (!once_value_21
) {
1178 fra
.me
.REG
[5] = BOX_NativeString("#include \"");
1179 REGB0
= TAG_Int(10);
1180 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1181 once_value_21
= fra
.me
.REG
[5];
1182 register_static_object(&once_value_21
);
1183 } else fra
.me
.REG
[5] = once_value_21
;
1184 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1185 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1186 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1187 if (!once_value_22
) {
1188 fra
.me
.REG
[2] = BOX_NativeString("\"\n");
1190 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1191 once_value_22
= fra
.me
.REG
[2];
1192 register_static_object(&once_value_22
);
1193 } else fra
.me
.REG
[2] = once_value_22
;
1194 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1195 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1196 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1197 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1199 /* native_interface/frontier.nit:149 */
1200 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___uses_ffi(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1201 if (UNTAG_Bool(REGB0
)) {
1202 /* native_interface/frontier.nit:150 */
1203 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1205 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1206 if (!once_value_23
) {
1207 fra
.me
.REG
[2] = BOX_NativeString("#include <");
1208 REGB0
= TAG_Int(10);
1209 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1210 once_value_23
= fra
.me
.REG
[2];
1211 register_static_object(&once_value_23
);
1212 } else fra
.me
.REG
[2] = once_value_23
;
1213 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1214 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1215 fra
.me
.REG
[2] = CALL_compiling___compiling_base___MMModule___cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1216 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1217 if (!once_value_24
) {
1218 fra
.me
.REG
[2] = BOX_NativeString("._ffi.h>\n");
1220 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1221 once_value_24
= fra
.me
.REG
[2];
1222 register_static_object(&once_value_24
);
1223 } else fra
.me
.REG
[2] = once_value_24
;
1224 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1225 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1226 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1227 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1229 /* native_interface/frontier.nit:153 */
1230 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1231 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[3])(fra
.me
.REG
[3], (&(fra
.me
)), ((fun_t
)OC_native_interface___frontier___MMSrcModule___compile_frontier_25
));
1232 /* native_interface/frontier.nit:165 */
1233 CALL_native_interface___frontier___FrontierVisitor___compile_cached(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1234 /* native_interface/frontier.nit:167 */
1235 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1236 if (!once_value_27
) {
1237 fra
.me
.REG
[0] = BOX_NativeString("#endif\n");
1239 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1240 once_value_27
= fra
.me
.REG
[0];
1241 register_static_object(&once_value_27
);
1242 } else fra
.me
.REG
[0] = once_value_27
;
1243 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1244 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1245 stack_frame_head
= fra
.me
.prev
;
1248 void OC_native_interface___frontier___MMSrcModule___compile_frontier_25(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1249 struct {struct stack_frame_t me
;} fra
;
1252 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1253 fra
.me
.file
= LOCATE_native_interface___frontier
;
1255 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcModule___compile_frontier
;
1256 fra
.me
.has_broke
= 0;
1257 fra
.me
.REG_size
= 1;
1258 fra
.me
.nitni_local_ref_head
= NULL
;
1259 fra
.me
.REG
[0] = NIT_NULL
;
1260 fra
.me
.closure_ctx
= closctx_param
;
1261 fra
.me
.closure_funs
= CREG
;
1263 CREG
[0] = clos_fun0
;
1264 /* native_interface/frontier.nit:155 */
1265 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___local_local_properties(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1266 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
, ((fun_t
)OC_native_interface___frontier___MMSrcModule___compile_frontier_26
));
1267 stack_frame_head
= fra
.me
.prev
;
1270 void OC_native_interface___frontier___MMSrcModule___compile_frontier_26(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1271 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1276 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1277 fra
.me
.file
= LOCATE_native_interface___frontier
;
1279 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcModule___compile_frontier
;
1280 fra
.me
.has_broke
= 0;
1281 fra
.me
.REG_size
= 2;
1282 fra
.me
.nitni_local_ref_head
= NULL
;
1283 fra
.me
.REG
[0] = NIT_NULL
;
1284 fra
.me
.REG
[1] = NIT_NULL
;
1285 fra
.me
.closure_ctx
= closctx_param
;
1286 fra
.me
.closure_funs
= CREG
;
1288 CREG
[0] = clos_fun0
;
1289 /* native_interface/frontier.nit:158 */
1290 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1291 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],closctx
->REG
[0]));
1292 if (UNTAG_Bool(REGB0
)) {
1294 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], closctx
->REG
[0]);
1297 if (UNTAG_Bool(REGB0
)) {
1298 /* native_interface/frontier.nit:159 */
1299 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
1301 /* native_interface/frontier.nit:158 */
1302 REGB1
= TAG_Bool(0);
1305 if (UNTAG_Bool(REGB0
)) {
1306 /* native_interface/frontier.nit:159 */
1307 REGB0
= CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1309 /* native_interface/frontier.nit:158 */
1310 REGB1
= TAG_Bool(0);
1313 if (UNTAG_Bool(REGB0
)) {
1314 /* native_interface/frontier.nit:160 */
1315 CALL_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1317 stack_frame_head
= fra
.me
.prev
;
1320 static const char LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier
[] = "frontier::MMSrcMethod::compile_extern_to_frontier";
1321 void native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(val_t p0
, val_t p1
){
1322 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1326 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1327 fra
.me
.file
= LOCATE_native_interface___frontier
;
1329 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier
;
1330 fra
.me
.has_broke
= 0;
1331 fra
.me
.REG_size
= 3;
1332 fra
.me
.nitni_local_ref_head
= NULL
;
1333 fra
.me
.REG
[0] = NIT_NULL
;
1334 fra
.me
.REG
[1] = NIT_NULL
;
1335 fra
.me
.REG
[2] = NIT_NULL
;
1338 /* native_interface/frontier.nit:175 */
1339 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1340 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1341 if (UNTAG_Bool(REGB0
)) {
1343 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1344 if (UNTAG_Bool(REGB1
)) {
1345 REGB1
= TAG_Bool(0);
1348 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1352 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1353 if (UNTAG_Bool(REGB0
)) {
1354 /* native_interface/frontier.nit:176 */
1355 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1356 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1357 if (UNTAG_Bool(REGB0
)) {
1358 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 176);
1360 CALL_native_interface___frontier___MMSignature___compile_frontier(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1362 /* native_interface/frontier.nit:179 */
1363 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1364 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier_1
));
1365 /* native_interface/frontier.nit:188 */
1366 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1367 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier_2
));
1368 /* native_interface/frontier.nit:196 */
1369 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1370 if (UNTAG_Bool(REGB0
)) {
1371 /* native_interface/frontier.nit:197 */
1372 CALL_native_interface___frontier___MMSrcMethod___compile_super_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1374 /* native_interface/frontier.nit:201 */
1375 CALL_native_interface___frontier___MMSrcMethod___compile_out_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1376 stack_frame_head
= fra
.me
.prev
;
1379 void OC_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1380 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1383 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1384 fra
.me
.file
= LOCATE_native_interface___frontier
;
1386 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier
;
1387 fra
.me
.has_broke
= 0;
1388 fra
.me
.REG_size
= 2;
1389 fra
.me
.nitni_local_ref_head
= NULL
;
1390 fra
.me
.REG
[0] = NIT_NULL
;
1391 fra
.me
.REG
[1] = NIT_NULL
;
1392 fra
.me
.closure_ctx
= closctx_param
;
1393 fra
.me
.closure_funs
= CREG
;
1395 CREG
[0] = clos_fun0
;
1396 /* native_interface/frontier.nit:181 */
1397 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___friendlys(closctx
->REG
[1])(closctx
->REG
[1]);
1398 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1399 /* native_interface/frontier.nit:184 */
1400 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1401 CALL_native_interface___frontier___MMSignature___compile_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1402 stack_frame_head
= fra
.me
.prev
;
1405 void OC_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1406 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1409 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1410 fra
.me
.file
= LOCATE_native_interface___frontier
;
1412 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier
;
1413 fra
.me
.has_broke
= 0;
1414 fra
.me
.REG_size
= 3;
1415 fra
.me
.nitni_local_ref_head
= NULL
;
1416 fra
.me
.REG
[0] = NIT_NULL
;
1417 fra
.me
.REG
[1] = NIT_NULL
;
1418 fra
.me
.REG
[2] = NIT_NULL
;
1419 fra
.me
.closure_ctx
= closctx_param
;
1420 fra
.me
.closure_funs
= CREG
;
1422 CREG
[0] = clos_fun0
;
1423 /* native_interface/frontier.nit:189 */
1424 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___casts(closctx
->REG
[1])(closctx
->REG
[1]);
1425 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1426 /* native_interface/frontier.nit:191 */
1427 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___types(closctx
->REG
[1])(closctx
->REG
[1]);
1428 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1429 fra
.me
.REG
[2] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1430 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1431 /* native_interface/frontier.nit:192 */
1432 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___types(closctx
->REG
[1])(closctx
->REG
[1]);
1433 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1434 fra
.me
.REG
[0] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1435 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1436 stack_frame_head
= fra
.me
.prev
;
1439 static const char LOCATE_native_interface___frontier___MMSrcMethod___compile_super_to_frontier
[] = "frontier::MMSrcMethod::compile_super_to_frontier";
1440 void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t p0
, val_t p1
){
1441 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
1446 static val_t once_value_1
; /* Once value */
1447 static val_t once_value_2
; /* Once value */
1448 static val_t once_value_3
; /* Once value */
1449 static val_t once_value_4
; /* Once value */
1450 static val_t once_value_5
; /* Once value */
1451 static val_t once_value_6
; /* Once value */
1452 static val_t once_value_7
; /* Once value */
1453 static val_t once_value_8
; /* Once value */
1454 static val_t once_value_9
; /* Once value */
1455 static val_t once_value_10
; /* Once value */
1456 static val_t once_value_11
; /* Once value */
1457 static val_t once_value_12
; /* Once value */
1458 static val_t once_value_15
; /* Once value */
1459 static val_t once_value_16
; /* Once value */
1460 static val_t once_value_17
; /* Once value */
1461 static val_t once_value_18
; /* Once value */
1462 static val_t once_value_19
; /* Once value */
1463 static val_t once_value_20
; /* Once value */
1464 static val_t once_value_21
; /* Once value */
1465 static val_t once_value_22
; /* Once value */
1466 static val_t once_value_23
; /* Once value */
1467 static val_t once_value_24
; /* Once value */
1468 static val_t once_value_25
; /* Once value */
1469 static val_t once_value_26
; /* Once value */
1470 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1471 fra
.me
.file
= LOCATE_native_interface___frontier
;
1473 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_super_to_frontier
;
1474 fra
.me
.has_broke
= 0;
1475 fra
.me
.REG_size
= 8;
1476 fra
.me
.nitni_local_ref_head
= NULL
;
1477 fra
.me
.REG
[0] = NIT_NULL
;
1478 fra
.me
.REG
[1] = NIT_NULL
;
1479 fra
.me
.REG
[2] = NIT_NULL
;
1480 fra
.me
.REG
[3] = NIT_NULL
;
1481 fra
.me
.REG
[4] = NIT_NULL
;
1482 fra
.me
.REG
[5] = NIT_NULL
;
1483 fra
.me
.REG
[6] = NIT_NULL
;
1484 fra
.me
.REG
[7] = NIT_NULL
;
1487 /* native_interface/frontier.nit:211 */
1488 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1490 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1491 if (!once_value_1
) {
1492 fra
.me
.REG
[4] = BOX_NativeString("\n/* friendly for super of ");
1493 REGB0
= TAG_Int(26);
1494 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1495 once_value_1
= fra
.me
.REG
[4];
1496 register_static_object(&once_value_1
);
1497 } else fra
.me
.REG
[4] = once_value_1
;
1498 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1499 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1500 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1501 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1502 if (!once_value_2
) {
1503 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
1505 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1506 once_value_2
= fra
.me
.REG
[4];
1507 register_static_object(&once_value_2
);
1508 } else fra
.me
.REG
[4] = once_value_2
;
1509 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1510 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1511 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1512 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1513 /* native_interface/frontier.nit:212 */
1514 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1516 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1517 if (!once_value_3
) {
1518 fra
.me
.REG
[4] = BOX_NativeString("");
1520 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1521 once_value_3
= fra
.me
.REG
[4];
1522 register_static_object(&once_value_3
);
1523 } else fra
.me
.REG
[4] = once_value_3
;
1524 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1525 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1526 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1527 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMMethod___frontier_super_csignature_from(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
1528 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1529 if (!once_value_4
) {
1530 fra
.me
.REG
[4] = BOX_NativeString(";\n");
1532 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1533 once_value_4
= fra
.me
.REG
[4];
1534 register_static_object(&once_value_4
);
1535 } else fra
.me
.REG
[4] = once_value_4
;
1536 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1537 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1538 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1539 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1540 /* native_interface/frontier.nit:215 */
1541 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1543 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1544 if (!once_value_5
) {
1545 fra
.me
.REG
[4] = BOX_NativeString("#ifndef ");
1547 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1548 once_value_5
= fra
.me
.REG
[4];
1549 register_static_object(&once_value_5
);
1550 } else fra
.me
.REG
[4] = once_value_5
;
1551 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1552 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1553 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMMethod___friendly_super_cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1554 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1555 if (!once_value_6
) {
1556 fra
.me
.REG
[4] = BOX_NativeString("\n");
1558 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1559 once_value_6
= fra
.me
.REG
[4];
1560 register_static_object(&once_value_6
);
1561 } else fra
.me
.REG
[4] = once_value_6
;
1562 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1563 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1564 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1565 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1566 /* native_interface/frontier.nit:216 */
1567 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1569 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1570 if (!once_value_7
) {
1571 fra
.me
.REG
[4] = BOX_NativeString("#define ");
1573 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1574 once_value_7
= fra
.me
.REG
[4];
1575 register_static_object(&once_value_7
);
1576 } else fra
.me
.REG
[4] = once_value_7
;
1577 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1578 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1579 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMMethod___friendly_super_cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1580 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1581 if (!once_value_8
) {
1582 fra
.me
.REG
[4] = BOX_NativeString(" ");
1584 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1585 once_value_8
= fra
.me
.REG
[4];
1586 register_static_object(&once_value_8
);
1587 } else fra
.me
.REG
[4] = once_value_8
;
1588 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1589 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1590 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1591 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMMethod___local_friendly_super_name_from(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
1592 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1593 if (!once_value_9
) {
1594 fra
.me
.REG
[4] = BOX_NativeString("\n");
1596 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1597 once_value_9
= fra
.me
.REG
[4];
1598 register_static_object(&once_value_9
);
1599 } else fra
.me
.REG
[4] = once_value_9
;
1600 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1601 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1602 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1603 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1604 /* native_interface/frontier.nit:217 */
1605 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1606 if (!once_value_10
) {
1607 fra
.me
.REG
[3] = BOX_NativeString("#endif\n");
1609 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1610 once_value_10
= fra
.me
.REG
[3];
1611 register_static_object(&once_value_10
);
1612 } else fra
.me
.REG
[3] = once_value_10
;
1613 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1614 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1615 /* native_interface/frontier.nit:220 */
1616 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1618 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1619 if (!once_value_11
) {
1620 fra
.me
.REG
[4] = BOX_NativeString("\n/* friendly for super of ");
1621 REGB0
= TAG_Int(26);
1622 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1623 once_value_11
= fra
.me
.REG
[4];
1624 register_static_object(&once_value_11
);
1625 } else fra
.me
.REG
[4] = once_value_11
;
1626 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1627 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1628 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1629 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1630 if (!once_value_12
) {
1631 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
1633 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1634 once_value_12
= fra
.me
.REG
[4];
1635 register_static_object(&once_value_12
);
1636 } else fra
.me
.REG
[4] = once_value_12
;
1637 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1639 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1640 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1641 /* native_interface/frontier.nit:221 */
1642 fra
.me
.REG
[2] = CALL_native_interface___ni_metamodel___MMMethod___friendly_super_csignature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1643 fra
.me
.REG
[2] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[2]);
1644 /* native_interface/frontier.nit:224 */
1645 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
1646 /* native_interface/frontier.nit:225 */
1647 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1648 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1649 if (UNTAG_Bool(REGB0
)) {
1650 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 225);
1652 fra
.me
.REG
[4] = CALL_native_interface___frontier___MMSignature___recv_ni_variable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1654 /* native_interface/frontier.nit:226 */
1655 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1656 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1657 if (UNTAG_Bool(REGB0
)) {
1658 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 226);
1660 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1661 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1662 /* ../lib/standard/collection/array.nit:266 */
1663 fra
.me
.REG
[4] = fra
.me
.REG
[3];
1664 /* ../lib/standard/collection/array.nit:269 */
1666 /* ../lib/standard/collection/array.nit:270 */
1667 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1668 if (UNTAG_Bool(REGB1
)) {
1670 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1672 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1673 /* ../lib/standard/collection/array.nit:271 */
1674 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1675 /* ../lib/standard/collection/array.nit:272 */
1677 /* ../lib/standard/collection/array.nit:24 */
1678 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1679 if (UNTAG_Bool(REGB1
)) {
1681 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1683 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1684 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1685 if (UNTAG_Bool(REGB2
)) {
1687 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1689 /* ../lib/standard/kernel.nit:235 */
1690 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1691 /* ../lib/standard/collection/array.nit:272 */
1692 if (UNTAG_Bool(REGB1
)) {
1693 /* ../lib/standard/collection/array.nit:273 */
1694 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1695 if (UNTAG_Bool(REGB1
)) {
1696 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1698 /* ../lib/standard/collection/array.nit:718 */
1699 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
1700 /* native_interface/frontier.nit:229 */
1701 CALL_native_interface___frontier___NiVariable___prepare_for_nit(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
1702 /* ../lib/standard/collection/array.nit:274 */
1704 /* ../lib/standard/kernel.nit:238 */
1705 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1706 /* ../lib/standard/collection/array.nit:274 */
1709 /* ../lib/standard/collection/array.nit:272 */
1714 /* native_interface/frontier.nit:232 */
1715 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___init();
1716 /* ../lib/standard/collection/array.nit:269 */
1718 /* ../lib/standard/collection/array.nit:270 */
1719 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1720 if (UNTAG_Bool(REGB1
)) {
1722 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1724 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1725 /* ../lib/standard/collection/array.nit:271 */
1726 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
1727 /* ../lib/standard/collection/array.nit:272 */
1729 /* ../lib/standard/collection/array.nit:24 */
1730 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1731 if (UNTAG_Bool(REGB1
)) {
1733 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1735 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1736 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1737 if (UNTAG_Bool(REGB2
)) {
1739 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1741 /* ../lib/standard/kernel.nit:235 */
1742 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1743 /* ../lib/standard/collection/array.nit:272 */
1744 if (UNTAG_Bool(REGB1
)) {
1745 /* ../lib/standard/collection/array.nit:273 */
1746 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1747 if (UNTAG_Bool(REGB1
)) {
1748 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1750 /* ../lib/standard/collection/array.nit:718 */
1751 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB0
)];
1752 /* native_interface/frontier.nit:233 */
1753 fra
.me
.REG
[6] = CALL_native_interface___frontier___NiVariable___as_arg_to_nit(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1754 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
1755 /* ../lib/standard/collection/array.nit:274 */
1757 /* ../lib/standard/kernel.nit:238 */
1758 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1759 /* ../lib/standard/collection/array.nit:274 */
1762 /* ../lib/standard/collection/array.nit:272 */
1767 /* native_interface/frontier.nit:236 */
1768 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1769 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1770 if (UNTAG_Bool(REGB0
)) {
1771 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 236);
1773 fra
.me
.REG
[4] = CALL_native_interface___frontier___MMSignature___return_ni_variable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1774 /* native_interface/frontier.nit:237 */
1775 fra
.me
.REG
[3] = NEW_Buffer_standard___string___Buffer___init();
1776 /* native_interface/frontier.nit:238 */
1777 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1778 if (UNTAG_Bool(REGB0
)) {
1780 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1781 if (UNTAG_Bool(REGB1
)) {
1782 REGB1
= TAG_Bool(0);
1785 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1789 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1790 if (UNTAG_Bool(REGB0
)) {
1791 /* native_interface/frontier.nit:239 */
1792 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1793 if (UNTAG_Bool(REGB0
)) {
1794 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 239);
1796 CALL_native_interface___frontier___NiVariable___prepare_for_c(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1797 /* native_interface/frontier.nit:240 */
1799 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1800 if (!once_value_15
) {
1801 fra
.me
.REG
[7] = BOX_NativeString("");
1803 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1804 once_value_15
= fra
.me
.REG
[7];
1805 register_static_object(&once_value_15
);
1806 } else fra
.me
.REG
[7] = once_value_15
;
1807 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1808 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1809 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1810 if (UNTAG_Bool(REGB0
)) {
1811 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 240);
1813 fra
.me
.REG
[7] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1814 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1815 if (!once_value_16
) {
1816 fra
.me
.REG
[7] = BOX_NativeString(" = ");
1818 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1819 once_value_16
= fra
.me
.REG
[7];
1820 register_static_object(&once_value_16
);
1821 } else fra
.me
.REG
[7] = once_value_16
;
1822 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1823 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1824 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1825 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1827 /* native_interface/frontier.nit:243 */
1829 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1830 if (!once_value_17
) {
1831 fra
.me
.REG
[7] = BOX_NativeString("");
1833 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1834 once_value_17
= fra
.me
.REG
[7];
1835 register_static_object(&once_value_17
);
1836 } else fra
.me
.REG
[7] = once_value_17
;
1837 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1839 fra
.me
.REG
[7] = CALL_compiling___compiling_base___MMLocalProperty___super_meth_call(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1840 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1841 if (!once_value_18
) {
1842 fra
.me
.REG
[7] = BOX_NativeString("( ");
1844 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1845 once_value_18
= fra
.me
.REG
[7];
1846 register_static_object(&once_value_18
);
1847 } else fra
.me
.REG
[7] = once_value_18
;
1848 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1849 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1850 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1851 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1852 if (UNTAG_Bool(REGB0
)) {
1853 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 243);
1855 fra
.me
.REG
[0] = CALL_native_interface___frontier___MMSignature___recv_ni_variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1856 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___as_arg_to_nit(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1857 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
1858 if (!once_value_19
) {
1859 fra
.me
.REG
[0] = BOX_NativeString(" )");
1861 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1862 once_value_19
= fra
.me
.REG
[0];
1863 register_static_object(&once_value_19
);
1864 } else fra
.me
.REG
[0] = once_value_19
;
1865 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1866 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
1867 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1868 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1869 /* native_interface/frontier.nit:244 */
1871 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1872 if (!once_value_20
) {
1873 fra
.me
.REG
[0] = BOX_NativeString("( ");
1875 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1876 once_value_20
= fra
.me
.REG
[0];
1877 register_static_object(&once_value_20
);
1878 } else fra
.me
.REG
[0] = once_value_20
;
1879 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1880 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
1881 if (!once_value_21
) {
1882 fra
.me
.REG
[0] = BOX_NativeString(", ");
1884 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1885 once_value_21
= fra
.me
.REG
[0];
1886 register_static_object(&once_value_21
);
1887 } else fra
.me
.REG
[0] = once_value_21
;
1888 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1889 fra
.me
.REG
[0] = CALL_standard___string___Collection___join(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
1890 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
1891 if (!once_value_22
) {
1892 fra
.me
.REG
[0] = BOX_NativeString(" );\n");
1894 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1895 once_value_22
= fra
.me
.REG
[0];
1896 register_static_object(&once_value_22
);
1897 } else fra
.me
.REG
[0] = once_value_22
;
1898 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1899 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
1900 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1901 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1902 /* native_interface/frontier.nit:246 */
1903 fra
.me
.REG
[6] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1904 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1905 CALL_compiling_writer___Writer___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
1906 /* native_interface/frontier.nit:249 */
1907 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1908 if (UNTAG_Bool(REGB0
)) {
1910 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1911 if (UNTAG_Bool(REGB1
)) {
1912 REGB1
= TAG_Bool(0);
1915 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1919 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1920 if (UNTAG_Bool(REGB0
)) {
1921 /* native_interface/frontier.nit:250 */
1922 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1924 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1925 if (!once_value_23
) {
1926 fra
.me
.REG
[0] = BOX_NativeString("");
1928 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1929 once_value_23
= fra
.me
.REG
[0];
1930 register_static_object(&once_value_23
);
1931 } else fra
.me
.REG
[0] = once_value_23
;
1932 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1933 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
1934 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1935 if (UNTAG_Bool(REGB0
)) {
1936 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 250);
1938 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1939 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1940 if (UNTAG_Bool(REGB0
)) {
1941 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 250);
1943 fra
.me
.REG
[5] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1944 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1945 if (UNTAG_Bool(REGB0
)) {
1946 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 250);
1948 fra
.me
.REG
[7] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1949 fra
.me
.REG
[7] = CALL_native_interface___ni_metamodel___MMType___assign_to_friendly(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[7]);
1950 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1951 if (!once_value_24
) {
1952 fra
.me
.REG
[7] = BOX_NativeString(";\n");
1954 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1955 once_value_24
= fra
.me
.REG
[7];
1956 register_static_object(&once_value_24
);
1957 } else fra
.me
.REG
[7] = once_value_24
;
1958 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1960 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1961 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1962 /* native_interface/frontier.nit:251 */
1963 fra
.me
.REG
[6] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1965 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1966 if (!once_value_25
) {
1967 fra
.me
.REG
[7] = BOX_NativeString("return ");
1969 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1970 once_value_25
= fra
.me
.REG
[7];
1971 register_static_object(&once_value_25
);
1972 } else fra
.me
.REG
[7] = once_value_25
;
1973 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1974 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
1975 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1976 if (UNTAG_Bool(REGB0
)) {
1977 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 251);
1979 fra
.me
.REG
[4] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1980 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1981 if (!once_value_26
) {
1982 fra
.me
.REG
[4] = BOX_NativeString(";\n");
1984 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1985 once_value_26
= fra
.me
.REG
[4];
1986 register_static_object(&once_value_26
);
1987 } else fra
.me
.REG
[4] = once_value_26
;
1988 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1989 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1990 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1991 CALL_compiling_writer___Writer___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
1993 /* native_interface/frontier.nit:254 */
1994 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1995 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1996 CALL_compiling_writer___Writer___append(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1997 stack_frame_head
= fra
.me
.prev
;
2000 static const char LOCATE_native_interface___frontier___MMSrcMethod___compile_out_to_frontier
[] = "frontier::MMSrcMethod::compile_out_to_frontier";
2001 void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p0
, val_t p1
){
2002 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
2007 static val_t once_value_1
; /* Once value */
2008 static val_t once_value_2
; /* Once value */
2009 static val_t once_value_3
; /* Once value */
2010 static val_t once_value_4
; /* Once value */
2011 static val_t once_value_5
; /* Once value */
2012 static val_t once_value_6
; /* Once value */
2013 static val_t once_value_9
; /* Once value */
2014 static val_t once_value_10
; /* Once value */
2015 static val_t once_value_11
; /* Once value */
2016 static val_t once_value_12
; /* Once value */
2017 static val_t once_value_13
; /* Once value */
2018 static val_t once_value_14
; /* Once value */
2019 static val_t once_value_15
; /* Once value */
2020 static val_t once_value_16
; /* Once value */
2021 static val_t once_value_17
; /* Once value */
2022 static val_t once_value_18
; /* Once value */
2023 static val_t once_value_19
; /* Once value */
2024 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2025 fra
.me
.file
= LOCATE_native_interface___frontier
;
2027 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_out_to_frontier
;
2028 fra
.me
.has_broke
= 0;
2029 fra
.me
.REG_size
= 9;
2030 fra
.me
.nitni_local_ref_head
= NULL
;
2031 fra
.me
.REG
[0] = NIT_NULL
;
2032 fra
.me
.REG
[1] = NIT_NULL
;
2033 fra
.me
.REG
[2] = NIT_NULL
;
2034 fra
.me
.REG
[3] = NIT_NULL
;
2035 fra
.me
.REG
[4] = NIT_NULL
;
2036 fra
.me
.REG
[5] = NIT_NULL
;
2037 fra
.me
.REG
[6] = NIT_NULL
;
2038 fra
.me
.REG
[7] = NIT_NULL
;
2039 fra
.me
.REG
[8] = NIT_NULL
;
2042 /* native_interface/frontier.nit:257 */
2043 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2044 /* native_interface/frontier.nit:266 */
2045 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2046 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2047 if (UNTAG_Bool(REGB0
)) {
2048 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2049 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2051 REGB1
= TAG_Bool(0);
2054 if (UNTAG_Bool(REGB0
)) {
2055 /* native_interface/frontier.nit:267 */
2056 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2057 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2059 /* native_interface/frontier.nit:266 */
2060 REGB1
= TAG_Bool(0);
2063 if (UNTAG_Bool(REGB0
)) {
2064 /* native_interface/frontier.nit:267 */
2065 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2066 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2067 if (UNTAG_Bool(REGB0
)) {
2068 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 267);
2070 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2071 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2072 if (UNTAG_Bool(REGB0
)) {
2074 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2075 if (UNTAG_Bool(REGB1
)) {
2076 REGB1
= TAG_Bool(0);
2079 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2083 if (UNTAG_Bool(REGB0
)) {
2084 REGB0
= TAG_Bool(1);
2086 /* native_interface/frontier.nit:268 */
2087 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2088 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2089 if (UNTAG_Bool(REGB1
)) {
2090 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 268);
2092 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2093 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2094 if (UNTAG_Bool(REGB1
)) {
2095 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 268);
2097 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2098 fra
.me
.REG
[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2099 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2100 if (UNTAG_Bool(REGB1
)) {
2102 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2103 if (UNTAG_Bool(REGB2
)) {
2104 REGB2
= TAG_Bool(0);
2107 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2111 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2112 /* native_interface/frontier.nit:267 */
2116 /* native_interface/frontier.nit:266 */
2117 REGB1
= TAG_Bool(0);
2120 fra
.me
.REG
[3] = REGB0
;
2121 /* native_interface/frontier.nit:271 */
2122 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2124 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2125 if (!once_value_1
) {
2126 fra
.me
.REG
[6] = BOX_NativeString("\n/* out/indirect function for ");
2127 REGB0
= TAG_Int(30);
2128 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2129 once_value_1
= fra
.me
.REG
[6];
2130 register_static_object(&once_value_1
);
2131 } else fra
.me
.REG
[6] = once_value_1
;
2132 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2133 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2134 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2135 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2136 if (!once_value_2
) {
2137 fra
.me
.REG
[6] = BOX_NativeString(" */\n");
2139 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2140 once_value_2
= fra
.me
.REG
[6];
2141 register_static_object(&once_value_2
);
2142 } else fra
.me
.REG
[6] = once_value_2
;
2143 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2144 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2145 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2146 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2147 /* native_interface/frontier.nit:272 */
2148 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2150 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2151 if (!once_value_3
) {
2152 fra
.me
.REG
[6] = BOX_NativeString("");
2154 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2155 once_value_3
= fra
.me
.REG
[6];
2156 register_static_object(&once_value_3
);
2157 } else fra
.me
.REG
[6] = once_value_3
;
2158 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2159 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2160 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMMethod___out_csignature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2162 if (!once_value_4
) {
2163 fra
.me
.REG
[6] = BOX_NativeString(";\n");
2165 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2166 once_value_4
= fra
.me
.REG
[6];
2167 register_static_object(&once_value_4
);
2168 } else fra
.me
.REG
[6] = once_value_4
;
2169 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2170 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2171 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2172 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
2173 /* native_interface/frontier.nit:275 */
2174 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2176 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2177 if (!once_value_5
) {
2178 fra
.me
.REG
[6] = BOX_NativeString("/* out/indirect function for ");
2179 REGB0
= TAG_Int(29);
2180 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2181 once_value_5
= fra
.me
.REG
[6];
2182 register_static_object(&once_value_5
);
2183 } else fra
.me
.REG
[6] = once_value_5
;
2184 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2185 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2186 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2187 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2188 if (!once_value_6
) {
2189 fra
.me
.REG
[6] = BOX_NativeString(" */\n");
2191 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2192 once_value_6
= fra
.me
.REG
[6];
2193 register_static_object(&once_value_6
);
2194 } else fra
.me
.REG
[6] = once_value_6
;
2195 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2196 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2197 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2198 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2199 /* native_interface/frontier.nit:276 */
2200 fra
.me
.REG
[5] = CALL_native_interface___ni_metamodel___MMMethod___out_csignature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2201 fra
.me
.REG
[5] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[5]);
2202 /* native_interface/frontier.nit:279 */
2203 fra
.me
.REG
[4] = NEW_List_standard___collection___list___List___init();
2204 /* native_interface/frontier.nit:280 */
2205 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2206 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2207 if (UNTAG_Bool(REGB0
)) {
2208 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2209 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2210 if (UNTAG_Bool(REGB0
)) {
2211 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 280);
2213 fra
.me
.REG
[6] = CALL_native_interface___frontier___MMSignature___recv_ni_variable(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2214 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2216 /* native_interface/frontier.nit:281 */
2217 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2218 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2219 if (UNTAG_Bool(REGB0
)) {
2220 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 281);
2222 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___params(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2223 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2224 /* native_interface/frontier.nit:283 */
2225 fra
.me
.REG
[6] = NEW_List_standard___collection___list___List___init();
2226 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_native_interface___frontier___MMSrcMethod___compile_out_to_frontier_7
));
2227 /* native_interface/frontier.nit:295 */
2228 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2229 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2230 if (UNTAG_Bool(REGB0
)) {
2231 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 295);
2233 fra
.me
.REG
[3] = CALL_native_interface___frontier___MMSignature___return_ni_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2234 /* native_interface/frontier.nit:296 */
2235 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2236 if (UNTAG_Bool(REGB0
)) {
2238 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2239 if (UNTAG_Bool(REGB1
)) {
2240 REGB1
= TAG_Bool(0);
2243 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2247 if (UNTAG_Bool(REGB0
)) {
2248 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2250 REGB1
= TAG_Bool(0);
2253 if (UNTAG_Bool(REGB0
)) {
2254 /* native_interface/frontier.nit:297 */
2255 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2256 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2257 if (UNTAG_Bool(REGB0
)) {
2258 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 297);
2260 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2261 fra
.me
.REG
[4] = NEW_ReturnVariable_native_interface___frontier___ReturnVariable___init(fra
.me
.REG
[4]);
2262 fra
.me
.REG
[3] = fra
.me
.REG
[4];
2264 /* native_interface/frontier.nit:300 */
2265 fra
.me
.REG
[4] = NEW_Buffer_standard___string___Buffer___init();
2266 /* native_interface/frontier.nit:301 */
2267 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2268 if (UNTAG_Bool(REGB0
)) {
2270 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2271 if (UNTAG_Bool(REGB1
)) {
2272 REGB1
= TAG_Bool(0);
2275 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2279 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2280 if (UNTAG_Bool(REGB0
)) {
2281 /* native_interface/frontier.nit:302 */
2282 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2283 if (UNTAG_Bool(REGB0
)) {
2284 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 302);
2286 CALL_native_interface___frontier___NiVariable___prepare_for_nit(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2287 /* native_interface/frontier.nit:303 */
2289 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2290 if (!once_value_9
) {
2291 fra
.me
.REG
[8] = BOX_NativeString("");
2293 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
2294 once_value_9
= fra
.me
.REG
[8];
2295 register_static_object(&once_value_9
);
2296 } else fra
.me
.REG
[8] = once_value_9
;
2297 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2298 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
2299 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2300 if (UNTAG_Bool(REGB0
)) {
2301 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 303);
2303 fra
.me
.REG
[8] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2304 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
2305 if (!once_value_10
) {
2306 fra
.me
.REG
[8] = BOX_NativeString(" = ");
2308 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
2309 once_value_10
= fra
.me
.REG
[8];
2310 register_static_object(&once_value_10
);
2311 } else fra
.me
.REG
[8] = once_value_10
;
2312 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2313 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
2314 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2315 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
2317 /* native_interface/frontier.nit:306 */
2319 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2320 if (!once_value_11
) {
2321 fra
.me
.REG
[8] = BOX_NativeString("");
2323 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
2324 once_value_11
= fra
.me
.REG
[8];
2325 register_static_object(&once_value_11
);
2326 } else fra
.me
.REG
[8] = once_value_11
;
2327 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2328 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
2329 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMMethod___extern_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2330 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_standard___string___String
, ID_standard___string___String
)) /*cast String*/;
2331 if (UNTAG_Bool(REGB0
)) {
2333 nit_abort("Cast failed", NULL
, LOCATE_native_interface___frontier
, 306);
2335 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
2336 if (!once_value_12
) {
2337 fra
.me
.REG
[2] = BOX_NativeString("( ");
2339 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2340 once_value_12
= fra
.me
.REG
[2];
2341 register_static_object(&once_value_12
);
2342 } else fra
.me
.REG
[2] = once_value_12
;
2343 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2344 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
2345 if (!once_value_13
) {
2346 fra
.me
.REG
[2] = BOX_NativeString(", ");
2348 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2349 once_value_13
= fra
.me
.REG
[2];
2350 register_static_object(&once_value_13
);
2351 } else fra
.me
.REG
[2] = once_value_13
;
2352 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2353 fra
.me
.REG
[2] = CALL_standard___string___Collection___join(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
2354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
2355 if (!once_value_14
) {
2356 fra
.me
.REG
[2] = BOX_NativeString(" );\n");
2358 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2359 once_value_14
= fra
.me
.REG
[2];
2360 register_static_object(&once_value_14
);
2361 } else fra
.me
.REG
[2] = once_value_14
;
2362 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2363 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
2364 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2365 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
2366 /* native_interface/frontier.nit:308 */
2367 fra
.me
.REG
[7] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2368 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2369 CALL_compiling_writer___Writer___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
2370 /* native_interface/frontier.nit:310 */
2371 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2372 if (UNTAG_Bool(REGB0
)) {
2374 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2375 if (UNTAG_Bool(REGB1
)) {
2376 REGB1
= TAG_Bool(0);
2379 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2383 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2384 if (UNTAG_Bool(REGB0
)) {
2385 /* native_interface/frontier.nit:311 */
2386 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2388 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2389 if (!once_value_15
) {
2390 fra
.me
.REG
[2] = BOX_NativeString("");
2392 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2393 once_value_15
= fra
.me
.REG
[2];
2394 register_static_object(&once_value_15
);
2395 } else fra
.me
.REG
[2] = once_value_15
;
2396 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2397 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
2398 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2399 if (UNTAG_Bool(REGB0
)) {
2400 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 311);
2402 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2403 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2404 if (UNTAG_Bool(REGB0
)) {
2405 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 311);
2407 fra
.me
.REG
[6] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2408 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2409 if (UNTAG_Bool(REGB0
)) {
2410 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 311);
2412 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2413 fra
.me
.REG
[0] = CALL_native_interface___ni_metamodel___MMType___assign_from_friendly(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6], fra
.me
.REG
[0]);
2414 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
2415 if (!once_value_16
) {
2416 fra
.me
.REG
[0] = BOX_NativeString(";\n");
2418 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
2419 once_value_16
= fra
.me
.REG
[0];
2420 register_static_object(&once_value_16
);
2421 } else fra
.me
.REG
[0] = once_value_16
;
2422 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2423 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
2424 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2425 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
2427 /* native_interface/frontier.nit:314 */
2428 fra
.me
.REG
[7] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2429 if (!once_value_17
) {
2430 fra
.me
.REG
[4] = BOX_NativeString("nitni_local_ref_clean( );\n");
2431 REGB0
= TAG_Int(27);
2432 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2433 once_value_17
= fra
.me
.REG
[4];
2434 register_static_object(&once_value_17
);
2435 } else fra
.me
.REG
[4] = once_value_17
;
2436 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2437 CALL_compiling_writer___Writer___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
2438 /* native_interface/frontier.nit:317 */
2439 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2440 if (UNTAG_Bool(REGB0
)) {
2442 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2443 if (UNTAG_Bool(REGB1
)) {
2444 REGB1
= TAG_Bool(0);
2447 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2451 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2452 if (UNTAG_Bool(REGB0
)) {
2453 /* native_interface/frontier.nit:318 */
2454 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2456 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2457 if (!once_value_18
) {
2458 fra
.me
.REG
[0] = BOX_NativeString("return ");
2460 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
2461 once_value_18
= fra
.me
.REG
[0];
2462 register_static_object(&once_value_18
);
2463 } else fra
.me
.REG
[0] = once_value_18
;
2464 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2465 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
2466 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2467 if (UNTAG_Bool(REGB0
)) {
2468 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 318);
2470 fra
.me
.REG
[3] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2471 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
2472 if (!once_value_19
) {
2473 fra
.me
.REG
[3] = BOX_NativeString(";\n");
2475 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2476 once_value_19
= fra
.me
.REG
[3];
2477 register_static_object(&once_value_19
);
2478 } else fra
.me
.REG
[3] = once_value_19
;
2479 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2480 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
2481 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2482 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
2484 /* native_interface/frontier.nit:321 */
2485 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2486 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2487 CALL_compiling_writer___Writer___append(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2488 stack_frame_head
= fra
.me
.prev
;
2491 void OC_native_interface___frontier___MMSrcMethod___compile_out_to_frontier_7(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
2492 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2498 static val_t once_value_8
; /* Once value */
2499 /* native_interface/frontier.nit:285 */
2500 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2501 fra
.me
.file
= LOCATE_native_interface___frontier
;
2503 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_out_to_frontier
;
2504 fra
.me
.has_broke
= 0;
2505 fra
.me
.REG_size
= 2;
2506 fra
.me
.nitni_local_ref_head
= NULL
;
2507 fra
.me
.REG
[0] = NIT_NULL
;
2508 fra
.me
.REG
[1] = NIT_NULL
;
2509 fra
.me
.closure_ctx
= closctx_param
;
2510 fra
.me
.closure_funs
= CREG
;
2512 CREG
[0] = clos_fun0
;
2513 /* native_interface/frontier.nit:286 */
2514 REGB0
= TAG_Bool(!UNTAG_Bool(closctx
->REG
[3]));
2515 if (UNTAG_Bool(REGB0
)) {
2516 REGB0
= TAG_Bool(1);
2518 fra
.me
.REG
[1] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2519 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2520 fra
.me
.REG
[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2521 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2522 if (UNTAG_Bool(REGB1
)) {
2524 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2525 if (UNTAG_Bool(REGB2
)) {
2526 REGB2
= TAG_Bool(0);
2529 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2533 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2536 if (UNTAG_Bool(REGB0
)) {
2537 /* native_interface/frontier.nit:287 */
2538 CALL_native_interface___frontier___NiVariable___prepare_for_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[5]);
2539 /* native_interface/frontier.nit:288 */
2540 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___as_arg_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2541 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[6])(closctx
->REG
[6], fra
.me
.REG
[0]);
2543 /* native_interface/frontier.nit:290 */
2544 if (!once_value_8
) {
2545 fra
.me
.REG
[0] = BOX_NativeString("NULL");
2547 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
2548 once_value_8
= fra
.me
.REG
[0];
2549 register_static_object(&once_value_8
);
2550 } else fra
.me
.REG
[0] = once_value_8
;
2551 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2552 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[6])(closctx
->REG
[6], fra
.me
.REG
[0]);
2554 stack_frame_head
= fra
.me
.prev
;
2557 static const char LOCATE_native_interface___frontier___MMSignature___recv_ni_variable
[] = "frontier::MMSignature::recv_ni_variable";
2558 val_t
native_interface___frontier___MMSignature___recv_ni_variable(val_t p0
){
2559 struct {struct stack_frame_t me
;} fra
;
2562 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2563 fra
.me
.file
= LOCATE_native_interface___frontier
;
2565 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___recv_ni_variable
;
2566 fra
.me
.has_broke
= 0;
2567 fra
.me
.REG_size
= 1;
2568 fra
.me
.nitni_local_ref_head
= NULL
;
2569 fra
.me
.REG
[0] = NIT_NULL
;
2571 /* native_interface/frontier.nit:327 */
2572 REGB0
= TAG_Bool(ATTR_native_interface___frontier___MMSignature_____atrecv_ni_variable(fra
.me
.REG
[0])!=NIT_NULL
);
2573 if (UNTAG_Bool(REGB0
)) {
2575 nit_abort("Uninitialized attribute %s", "@recv_ni_variable", LOCATE_native_interface___frontier
, 327);
2577 fra
.me
.REG
[0] = ATTR_native_interface___frontier___MMSignature_____atrecv_ni_variable(fra
.me
.REG
[0]);
2578 stack_frame_head
= fra
.me
.prev
;
2579 return fra
.me
.REG
[0];
2581 static const char LOCATE_native_interface___frontier___MMSignature___recv_ni_variable__eq
[] = "frontier::MMSignature::recv_ni_variable=";
2582 void native_interface___frontier___MMSignature___recv_ni_variable__eq(val_t p0
, val_t p1
){
2583 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2585 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2586 fra
.me
.file
= LOCATE_native_interface___frontier
;
2588 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___recv_ni_variable__eq
;
2589 fra
.me
.has_broke
= 0;
2590 fra
.me
.REG_size
= 2;
2591 fra
.me
.nitni_local_ref_head
= NULL
;
2592 fra
.me
.REG
[0] = NIT_NULL
;
2593 fra
.me
.REG
[1] = NIT_NULL
;
2596 /* native_interface/frontier.nit:327 */
2597 ATTR_native_interface___frontier___MMSignature_____atrecv_ni_variable(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2598 stack_frame_head
= fra
.me
.prev
;
2601 static const char LOCATE_native_interface___frontier___MMSignature___return_ni_variable
[] = "frontier::MMSignature::return_ni_variable";
2602 val_t
native_interface___frontier___MMSignature___return_ni_variable(val_t p0
){
2603 struct {struct stack_frame_t me
;} fra
;
2605 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2606 fra
.me
.file
= LOCATE_native_interface___frontier
;
2608 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___return_ni_variable
;
2609 fra
.me
.has_broke
= 0;
2610 fra
.me
.REG_size
= 1;
2611 fra
.me
.nitni_local_ref_head
= NULL
;
2612 fra
.me
.REG
[0] = NIT_NULL
;
2614 /* native_interface/frontier.nit:328 */
2615 fra
.me
.REG
[0] = ATTR_native_interface___frontier___MMSignature_____atreturn_ni_variable(fra
.me
.REG
[0]);
2616 stack_frame_head
= fra
.me
.prev
;
2617 return fra
.me
.REG
[0];
2619 static const char LOCATE_native_interface___frontier___MMSignature___return_ni_variable__eq
[] = "frontier::MMSignature::return_ni_variable=";
2620 void native_interface___frontier___MMSignature___return_ni_variable__eq(val_t p0
, val_t p1
){
2621 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2623 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2624 fra
.me
.file
= LOCATE_native_interface___frontier
;
2626 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___return_ni_variable__eq
;
2627 fra
.me
.has_broke
= 0;
2628 fra
.me
.REG_size
= 2;
2629 fra
.me
.nitni_local_ref_head
= NULL
;
2630 fra
.me
.REG
[0] = NIT_NULL
;
2631 fra
.me
.REG
[1] = NIT_NULL
;
2634 /* native_interface/frontier.nit:328 */
2635 ATTR_native_interface___frontier___MMSignature_____atreturn_ni_variable(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2636 stack_frame_head
= fra
.me
.prev
;
2639 static const char LOCATE_native_interface___frontier___MMSignature___init
[] = "frontier::MMSignature::(static_type::MMSignature::init)";
2640 void native_interface___frontier___MMSignature___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
2641 int itpos3
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_metamodel___static_type___MMSignature
].i
;
2642 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
2646 if (init_table
[itpos3
]) return;
2647 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2648 fra
.me
.file
= LOCATE_native_interface___frontier
;
2650 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___init
;
2651 fra
.me
.has_broke
= 0;
2652 fra
.me
.REG_size
= 7;
2653 fra
.me
.nitni_local_ref_head
= NULL
;
2654 fra
.me
.REG
[0] = NIT_NULL
;
2655 fra
.me
.REG
[1] = NIT_NULL
;
2656 fra
.me
.REG
[2] = NIT_NULL
;
2657 fra
.me
.REG
[3] = NIT_NULL
;
2658 fra
.me
.REG
[4] = NIT_NULL
;
2659 fra
.me
.REG
[5] = NIT_NULL
;
2660 fra
.me
.REG
[6] = NIT_NULL
;
2665 /* native_interface/frontier.nit:329 */
2666 fra
.me
.REG
[4] = fra
.me
.REG
[0];
2667 fra
.me
.REG
[5] = fra
.me
.REG
[2];
2668 fra
.me
.REG
[6] = fra
.me
.REG
[3];
2669 /* native_interface/frontier.nit:331 */
2670 CALL_SUPER_native_interface___frontier___MMSignature___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], init_table
);
2671 /* native_interface/frontier.nit:333 */
2672 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2673 if (UNTAG_Bool(REGB0
)) {
2675 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2676 if (UNTAG_Bool(REGB1
)) {
2677 REGB1
= TAG_Bool(0);
2680 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
2684 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2685 if (UNTAG_Bool(REGB0
)) {
2686 /* native_interface/frontier.nit:334 */
2687 fra
.me
.REG
[5] = NEW_ReturnVariable_native_interface___frontier___ReturnVariable___init(fra
.me
.REG
[5]);
2688 CALL_native_interface___frontier___MMSignature___return_ni_variable__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2690 /* native_interface/frontier.nit:336 */
2691 CALL_native_interface___frontier___MMSignature___return_ni_variable__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2693 /* native_interface/frontier.nit:338 */
2694 fra
.me
.REG
[6] = NEW_ReceiverVariable_native_interface___frontier___ReceiverVariable___init(fra
.me
.REG
[6]);
2695 CALL_native_interface___frontier___MMSignature___recv_ni_variable__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2696 stack_frame_head
= fra
.me
.prev
;
2697 init_table
[itpos3
] = 1;
2700 static const char LOCATE_native_interface___frontier___MMSignature___compile_frontier
[] = "frontier::MMSignature::compile_frontier";
2701 void native_interface___frontier___MMSignature___compile_frontier(val_t p0
, val_t p1
){
2702 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2707 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2708 fra
.me
.file
= LOCATE_native_interface___frontier
;
2710 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___compile_frontier
;
2711 fra
.me
.has_broke
= 0;
2712 fra
.me
.REG_size
= 6;
2713 fra
.me
.nitni_local_ref_head
= NULL
;
2714 fra
.me
.REG
[0] = NIT_NULL
;
2715 fra
.me
.REG
[1] = NIT_NULL
;
2716 fra
.me
.REG
[2] = NIT_NULL
;
2717 fra
.me
.REG
[3] = NIT_NULL
;
2718 fra
.me
.REG
[4] = NIT_NULL
;
2719 fra
.me
.REG
[5] = NIT_NULL
;
2722 /* native_interface/frontier.nit:344 */
2723 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___types(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2724 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2725 fra
.me
.REG
[3] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2726 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2727 /* native_interface/frontier.nit:347 */
2728 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2729 /* ../lib/standard/collection/array.nit:269 */
2731 /* ../lib/standard/collection/array.nit:270 */
2732 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
2733 if (UNTAG_Bool(REGB1
)) {
2735 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2737 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
2738 /* ../lib/standard/collection/array.nit:271 */
2739 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
2740 /* ../lib/standard/collection/array.nit:272 */
2742 /* ../lib/standard/collection/array.nit:24 */
2743 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
2744 if (UNTAG_Bool(REGB1
)) {
2746 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2748 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
2749 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2750 if (UNTAG_Bool(REGB2
)) {
2752 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2754 /* ../lib/standard/kernel.nit:235 */
2755 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2756 /* ../lib/standard/collection/array.nit:272 */
2757 if (UNTAG_Bool(REGB1
)) {
2758 /* ../lib/standard/collection/array.nit:273 */
2759 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2760 if (UNTAG_Bool(REGB1
)) {
2761 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2763 /* ../lib/standard/collection/array.nit:718 */
2764 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
2765 /* native_interface/frontier.nit:347 */
2766 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___types(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2767 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMParam___mmtype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2768 fra
.me
.REG
[4] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
2770 /* ../lib/standard/collection/array.nit:274 */
2772 /* ../lib/standard/kernel.nit:238 */
2773 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2774 /* ../lib/standard/collection/array.nit:274 */
2777 /* ../lib/standard/collection/array.nit:272 */
2782 /* native_interface/frontier.nit:350 */
2783 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2784 /* native_interface/frontier.nit:351 */
2785 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2786 if (UNTAG_Bool(REGB0
)) {
2788 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2789 if (UNTAG_Bool(REGB1
)) {
2790 REGB1
= TAG_Bool(0);
2793 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2797 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2798 if (UNTAG_Bool(REGB0
)) {
2799 /* native_interface/frontier.nit:352 */
2800 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___types(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2801 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2802 if (UNTAG_Bool(REGB0
)) {
2803 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 352);
2805 fra
.me
.REG
[0] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2806 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2808 stack_frame_head
= fra
.me
.prev
;
2811 static const char LOCATE_native_interface___frontier___FrontierVisitor___header_top
[] = "frontier::FrontierVisitor::header_top";
2812 val_t
native_interface___frontier___FrontierVisitor___header_top(val_t p0
){
2813 struct {struct stack_frame_t me
;} fra
;
2816 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2817 fra
.me
.file
= LOCATE_native_interface___frontier
;
2819 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___header_top
;
2820 fra
.me
.has_broke
= 0;
2821 fra
.me
.REG_size
= 1;
2822 fra
.me
.nitni_local_ref_head
= NULL
;
2823 fra
.me
.REG
[0] = NIT_NULL
;
2825 /* native_interface/frontier.nit:360 */
2826 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra
.me
.REG
[0])!=NIT_NULL
);
2827 if (UNTAG_Bool(REGB0
)) {
2829 nit_abort("Uninitialized attribute %s", "@header_top", LOCATE_native_interface___frontier
, 360);
2831 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra
.me
.REG
[0]);
2832 stack_frame_head
= fra
.me
.prev
;
2833 return fra
.me
.REG
[0];
2835 static const char LOCATE_native_interface___frontier___FrontierVisitor___header_top__eq
[] = "frontier::FrontierVisitor::header_top=";
2836 void native_interface___frontier___FrontierVisitor___header_top__eq(val_t p0
, val_t p1
){
2837 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2839 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2840 fra
.me
.file
= LOCATE_native_interface___frontier
;
2842 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___header_top__eq
;
2843 fra
.me
.has_broke
= 0;
2844 fra
.me
.REG_size
= 2;
2845 fra
.me
.nitni_local_ref_head
= NULL
;
2846 fra
.me
.REG
[0] = NIT_NULL
;
2847 fra
.me
.REG
[1] = NIT_NULL
;
2850 /* native_interface/frontier.nit:360 */
2851 ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2852 stack_frame_head
= fra
.me
.prev
;
2855 static const char LOCATE_native_interface___frontier___FrontierVisitor___header
[] = "frontier::FrontierVisitor::header";
2856 val_t
native_interface___frontier___FrontierVisitor___header(val_t p0
){
2857 struct {struct stack_frame_t me
;} fra
;
2860 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2861 fra
.me
.file
= LOCATE_native_interface___frontier
;
2863 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___header
;
2864 fra
.me
.has_broke
= 0;
2865 fra
.me
.REG_size
= 1;
2866 fra
.me
.nitni_local_ref_head
= NULL
;
2867 fra
.me
.REG
[0] = NIT_NULL
;
2869 /* native_interface/frontier.nit:363 */
2870 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra
.me
.REG
[0])!=NIT_NULL
);
2871 if (UNTAG_Bool(REGB0
)) {
2873 nit_abort("Uninitialized attribute %s", "@header", LOCATE_native_interface___frontier
, 363);
2875 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra
.me
.REG
[0]);
2876 stack_frame_head
= fra
.me
.prev
;
2877 return fra
.me
.REG
[0];
2879 static const char LOCATE_native_interface___frontier___FrontierVisitor___header__eq
[] = "frontier::FrontierVisitor::header=";
2880 void native_interface___frontier___FrontierVisitor___header__eq(val_t p0
, val_t p1
){
2881 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2883 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2884 fra
.me
.file
= LOCATE_native_interface___frontier
;
2886 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___header__eq
;
2887 fra
.me
.has_broke
= 0;
2888 fra
.me
.REG_size
= 2;
2889 fra
.me
.nitni_local_ref_head
= NULL
;
2890 fra
.me
.REG
[0] = NIT_NULL
;
2891 fra
.me
.REG
[1] = NIT_NULL
;
2894 /* native_interface/frontier.nit:363 */
2895 ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2896 stack_frame_head
= fra
.me
.prev
;
2899 static const char LOCATE_native_interface___frontier___FrontierVisitor___body
[] = "frontier::FrontierVisitor::body";
2900 val_t
native_interface___frontier___FrontierVisitor___body(val_t p0
){
2901 struct {struct stack_frame_t me
;} fra
;
2904 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2905 fra
.me
.file
= LOCATE_native_interface___frontier
;
2907 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___body
;
2908 fra
.me
.has_broke
= 0;
2909 fra
.me
.REG_size
= 1;
2910 fra
.me
.nitni_local_ref_head
= NULL
;
2911 fra
.me
.REG
[0] = NIT_NULL
;
2913 /* native_interface/frontier.nit:366 */
2914 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra
.me
.REG
[0])!=NIT_NULL
);
2915 if (UNTAG_Bool(REGB0
)) {
2917 nit_abort("Uninitialized attribute %s", "@body", LOCATE_native_interface___frontier
, 366);
2919 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra
.me
.REG
[0]);
2920 stack_frame_head
= fra
.me
.prev
;
2921 return fra
.me
.REG
[0];
2923 static const char LOCATE_native_interface___frontier___FrontierVisitor___body__eq
[] = "frontier::FrontierVisitor::body=";
2924 void native_interface___frontier___FrontierVisitor___body__eq(val_t p0
, val_t p1
){
2925 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2927 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2928 fra
.me
.file
= LOCATE_native_interface___frontier
;
2930 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___body__eq
;
2931 fra
.me
.has_broke
= 0;
2932 fra
.me
.REG_size
= 2;
2933 fra
.me
.nitni_local_ref_head
= NULL
;
2934 fra
.me
.REG
[0] = NIT_NULL
;
2935 fra
.me
.REG
[1] = NIT_NULL
;
2938 /* native_interface/frontier.nit:366 */
2939 ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2940 stack_frame_head
= fra
.me
.prev
;
2943 static const char LOCATE_native_interface___frontier___FrontierVisitor___friendlys
[] = "frontier::FrontierVisitor::friendlys";
2944 val_t
native_interface___frontier___FrontierVisitor___friendlys(val_t p0
){
2945 struct {struct stack_frame_t me
;} fra
;
2948 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2949 fra
.me
.file
= LOCATE_native_interface___frontier
;
2951 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___friendlys
;
2952 fra
.me
.has_broke
= 0;
2953 fra
.me
.REG_size
= 1;
2954 fra
.me
.nitni_local_ref_head
= NULL
;
2955 fra
.me
.REG
[0] = NIT_NULL
;
2957 /* native_interface/frontier.nit:369 */
2958 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra
.me
.REG
[0])!=NIT_NULL
);
2959 if (UNTAG_Bool(REGB0
)) {
2961 nit_abort("Uninitialized attribute %s", "@friendlys", LOCATE_native_interface___frontier
, 369);
2963 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra
.me
.REG
[0]);
2964 stack_frame_head
= fra
.me
.prev
;
2965 return fra
.me
.REG
[0];
2967 static const char LOCATE_native_interface___frontier___FrontierVisitor___friendlys__eq
[] = "frontier::FrontierVisitor::friendlys=";
2968 void native_interface___frontier___FrontierVisitor___friendlys__eq(val_t p0
, val_t p1
){
2969 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2971 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2972 fra
.me
.file
= LOCATE_native_interface___frontier
;
2974 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___friendlys__eq
;
2975 fra
.me
.has_broke
= 0;
2976 fra
.me
.REG_size
= 2;
2977 fra
.me
.nitni_local_ref_head
= NULL
;
2978 fra
.me
.REG
[0] = NIT_NULL
;
2979 fra
.me
.REG
[1] = NIT_NULL
;
2982 /* native_interface/frontier.nit:369 */
2983 ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2984 stack_frame_head
= fra
.me
.prev
;
2987 static const char LOCATE_native_interface___frontier___FrontierVisitor___types
[] = "frontier::FrontierVisitor::types";
2988 val_t
native_interface___frontier___FrontierVisitor___types(val_t p0
){
2989 struct {struct stack_frame_t me
;} fra
;
2992 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2993 fra
.me
.file
= LOCATE_native_interface___frontier
;
2995 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___types
;
2996 fra
.me
.has_broke
= 0;
2997 fra
.me
.REG_size
= 1;
2998 fra
.me
.nitni_local_ref_head
= NULL
;
2999 fra
.me
.REG
[0] = NIT_NULL
;
3001 /* native_interface/frontier.nit:372 */
3002 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra
.me
.REG
[0])!=NIT_NULL
);
3003 if (UNTAG_Bool(REGB0
)) {
3005 nit_abort("Uninitialized attribute %s", "@types", LOCATE_native_interface___frontier
, 372);
3007 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra
.me
.REG
[0]);
3008 stack_frame_head
= fra
.me
.prev
;
3009 return fra
.me
.REG
[0];
3011 static const char LOCATE_native_interface___frontier___FrontierVisitor___types__eq
[] = "frontier::FrontierVisitor::types=";
3012 void native_interface___frontier___FrontierVisitor___types__eq(val_t p0
, val_t p1
){
3013 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3015 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3016 fra
.me
.file
= LOCATE_native_interface___frontier
;
3018 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___types__eq
;
3019 fra
.me
.has_broke
= 0;
3020 fra
.me
.REG_size
= 2;
3021 fra
.me
.nitni_local_ref_head
= NULL
;
3022 fra
.me
.REG
[0] = NIT_NULL
;
3023 fra
.me
.REG
[1] = NIT_NULL
;
3026 /* native_interface/frontier.nit:372 */
3027 ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
3028 stack_frame_head
= fra
.me
.prev
;
3031 static const char LOCATE_native_interface___frontier___FrontierVisitor___casts
[] = "frontier::FrontierVisitor::casts";
3032 val_t
native_interface___frontier___FrontierVisitor___casts(val_t p0
){
3033 struct {struct stack_frame_t me
;} fra
;
3036 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3037 fra
.me
.file
= LOCATE_native_interface___frontier
;
3039 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___casts
;
3040 fra
.me
.has_broke
= 0;
3041 fra
.me
.REG_size
= 1;
3042 fra
.me
.nitni_local_ref_head
= NULL
;
3043 fra
.me
.REG
[0] = NIT_NULL
;
3045 /* native_interface/frontier.nit:375 */
3046 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra
.me
.REG
[0])!=NIT_NULL
);
3047 if (UNTAG_Bool(REGB0
)) {
3049 nit_abort("Uninitialized attribute %s", "@casts", LOCATE_native_interface___frontier
, 375);
3051 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra
.me
.REG
[0]);
3052 stack_frame_head
= fra
.me
.prev
;
3053 return fra
.me
.REG
[0];
3055 static const char LOCATE_native_interface___frontier___FrontierVisitor___casts__eq
[] = "frontier::FrontierVisitor::casts=";
3056 void native_interface___frontier___FrontierVisitor___casts__eq(val_t p0
, val_t p1
){
3057 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3059 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3060 fra
.me
.file
= LOCATE_native_interface___frontier
;
3062 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___casts__eq
;
3063 fra
.me
.has_broke
= 0;
3064 fra
.me
.REG_size
= 2;
3065 fra
.me
.nitni_local_ref_head
= NULL
;
3066 fra
.me
.REG
[0] = NIT_NULL
;
3067 fra
.me
.REG
[1] = NIT_NULL
;
3070 /* native_interface/frontier.nit:375 */
3071 ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
3072 stack_frame_head
= fra
.me
.prev
;
3075 static const char LOCATE_native_interface___frontier___FrontierVisitor___mmmodule
[] = "frontier::FrontierVisitor::mmmodule";
3076 val_t
native_interface___frontier___FrontierVisitor___mmmodule(val_t p0
){
3077 struct {struct stack_frame_t me
;} fra
;
3080 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3081 fra
.me
.file
= LOCATE_native_interface___frontier
;
3083 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___mmmodule
;
3084 fra
.me
.has_broke
= 0;
3085 fra
.me
.REG_size
= 1;
3086 fra
.me
.nitni_local_ref_head
= NULL
;
3087 fra
.me
.REG
[0] = NIT_NULL
;
3089 /* native_interface/frontier.nit:378 */
3090 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra
.me
.REG
[0])!=NIT_NULL
);
3091 if (UNTAG_Bool(REGB0
)) {
3093 nit_abort("Uninitialized attribute %s", "@mmmodule", LOCATE_native_interface___frontier
, 378);
3095 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra
.me
.REG
[0]);
3096 stack_frame_head
= fra
.me
.prev
;
3097 return fra
.me
.REG
[0];
3099 static const char LOCATE_native_interface___frontier___FrontierVisitor___mmmodule__eq
[] = "frontier::FrontierVisitor::mmmodule=";
3100 void native_interface___frontier___FrontierVisitor___mmmodule__eq(val_t p0
, val_t p1
){
3101 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3103 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3104 fra
.me
.file
= LOCATE_native_interface___frontier
;
3106 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___mmmodule__eq
;
3107 fra
.me
.has_broke
= 0;
3108 fra
.me
.REG_size
= 2;
3109 fra
.me
.nitni_local_ref_head
= NULL
;
3110 fra
.me
.REG
[0] = NIT_NULL
;
3111 fra
.me
.REG
[1] = NIT_NULL
;
3114 /* native_interface/frontier.nit:378 */
3115 ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
3116 stack_frame_head
= fra
.me
.prev
;
3119 static const char LOCATE_native_interface___frontier___FrontierVisitor___cprogram
[] = "frontier::FrontierVisitor::cprogram";
3120 val_t
native_interface___frontier___FrontierVisitor___cprogram(val_t p0
){
3121 struct {struct stack_frame_t me
;} fra
;
3124 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3125 fra
.me
.file
= LOCATE_native_interface___frontier
;
3127 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___cprogram
;
3128 fra
.me
.has_broke
= 0;
3129 fra
.me
.REG_size
= 1;
3130 fra
.me
.nitni_local_ref_head
= NULL
;
3131 fra
.me
.REG
[0] = NIT_NULL
;
3133 /* native_interface/frontier.nit:380 */
3134 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra
.me
.REG
[0])!=NIT_NULL
);
3135 if (UNTAG_Bool(REGB0
)) {
3137 nit_abort("Uninitialized attribute %s", "@cprogram", LOCATE_native_interface___frontier
, 380);
3139 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra
.me
.REG
[0]);
3140 stack_frame_head
= fra
.me
.prev
;
3141 return fra
.me
.REG
[0];
3143 static const char LOCATE_native_interface___frontier___FrontierVisitor___cprogram__eq
[] = "frontier::FrontierVisitor::cprogram=";
3144 void native_interface___frontier___FrontierVisitor___cprogram__eq(val_t p0
, val_t p1
){
3145 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3147 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3148 fra
.me
.file
= LOCATE_native_interface___frontier
;
3150 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___cprogram__eq
;
3151 fra
.me
.has_broke
= 0;
3152 fra
.me
.REG_size
= 2;
3153 fra
.me
.nitni_local_ref_head
= NULL
;
3154 fra
.me
.REG
[0] = NIT_NULL
;
3155 fra
.me
.REG
[1] = NIT_NULL
;
3158 /* native_interface/frontier.nit:380 */
3159 ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
3160 stack_frame_head
= fra
.me
.prev
;
3163 static const char LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
[] = "frontier::FrontierVisitor::compile_cached";
3164 void native_interface___frontier___FrontierVisitor___compile_cached(val_t p0
){
3165 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3167 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3168 fra
.me
.file
= LOCATE_native_interface___frontier
;
3170 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
;
3171 fra
.me
.has_broke
= 0;
3172 fra
.me
.REG_size
= 2;
3173 fra
.me
.nitni_local_ref_head
= NULL
;
3174 fra
.me
.REG
[0] = NIT_NULL
;
3175 fra
.me
.REG
[1] = NIT_NULL
;
3177 /* native_interface/frontier.nit:386 */
3178 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___types(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3179 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[1])(fra
.me
.REG
[1], (&(fra
.me
)), ((fun_t
)OC_native_interface___frontier___FrontierVisitor___compile_cached_1
));
3180 /* native_interface/frontier.nit:389 */
3181 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___friendlys(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3182 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[1])(fra
.me
.REG
[1], (&(fra
.me
)), ((fun_t
)OC_native_interface___frontier___FrontierVisitor___compile_cached_2
));
3183 /* native_interface/frontier.nit:392 */
3184 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___casts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3185 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[1])(fra
.me
.REG
[1], (&(fra
.me
)), ((fun_t
)OC_native_interface___frontier___FrontierVisitor___compile_cached_3
));
3186 stack_frame_head
= fra
.me
.prev
;
3189 void OC_native_interface___frontier___FrontierVisitor___compile_cached_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
3190 struct {struct stack_frame_t me
;} fra
;
3193 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3194 fra
.me
.file
= LOCATE_native_interface___frontier
;
3196 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
;
3197 fra
.me
.has_broke
= 0;
3198 fra
.me
.REG_size
= 1;
3199 fra
.me
.nitni_local_ref_head
= NULL
;
3200 fra
.me
.REG
[0] = NIT_NULL
;
3201 fra
.me
.closure_ctx
= closctx_param
;
3202 fra
.me
.closure_funs
= CREG
;
3204 CREG
[0] = clos_fun0
;
3205 CALL_native_interface___frontier___MMType___compile_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[0]);
3206 stack_frame_head
= fra
.me
.prev
;
3209 void OC_native_interface___frontier___FrontierVisitor___compile_cached_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
3210 struct {struct stack_frame_t me
;} fra
;
3213 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3214 fra
.me
.file
= LOCATE_native_interface___frontier
;
3216 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
;
3217 fra
.me
.has_broke
= 0;
3218 fra
.me
.REG_size
= 1;
3219 fra
.me
.nitni_local_ref_head
= NULL
;
3220 fra
.me
.REG
[0] = NIT_NULL
;
3221 fra
.me
.closure_ctx
= closctx_param
;
3222 fra
.me
.closure_funs
= CREG
;
3224 CREG
[0] = clos_fun0
;
3225 CALL_native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[0]);
3226 stack_frame_head
= fra
.me
.prev
;
3229 void OC_native_interface___frontier___FrontierVisitor___compile_cached_3(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
3230 struct {struct stack_frame_t me
;} fra
;
3233 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3234 fra
.me
.file
= LOCATE_native_interface___frontier
;
3236 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
;
3237 fra
.me
.has_broke
= 0;
3238 fra
.me
.REG_size
= 1;
3239 fra
.me
.nitni_local_ref_head
= NULL
;
3240 fra
.me
.REG
[0] = NIT_NULL
;
3241 fra
.me
.closure_ctx
= closctx_param
;
3242 fra
.me
.closure_funs
= CREG
;
3244 CREG
[0] = clos_fun0
;
3245 CALL_native_interface___frontier___MMImportedCast___compile_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[0]);
3246 stack_frame_head
= fra
.me
.prev
;
3249 static const char LOCATE_native_interface___frontier___FrontierVisitor___write_to_files
[] = "frontier::FrontierVisitor::write_to_files";
3250 void native_interface___frontier___FrontierVisitor___write_to_files(val_t p0
, val_t p1
){
3251 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3254 static val_t once_value_1
; /* Once value */
3255 static val_t once_value_2
; /* Once value */
3256 static val_t once_value_3
; /* Once value */
3257 static val_t once_value_4
; /* Once value */
3258 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3259 fra
.me
.file
= LOCATE_native_interface___frontier
;
3261 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___write_to_files
;
3262 fra
.me
.has_broke
= 0;
3263 fra
.me
.REG_size
= 6;
3264 fra
.me
.nitni_local_ref_head
= NULL
;
3265 fra
.me
.REG
[0] = NIT_NULL
;
3266 fra
.me
.REG
[1] = NIT_NULL
;
3267 fra
.me
.REG
[2] = NIT_NULL
;
3268 fra
.me
.REG
[3] = NIT_NULL
;
3269 fra
.me
.REG
[4] = NIT_NULL
;
3270 fra
.me
.REG
[5] = NIT_NULL
;
3273 /* native_interface/frontier.nit:397 */
3275 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3276 if (!once_value_1
) {
3277 fra
.me
.REG
[3] = BOX_NativeString("");
3279 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3280 once_value_1
= fra
.me
.REG
[3];
3281 register_static_object(&once_value_1
);
3282 } else fra
.me
.REG
[3] = once_value_1
;
3283 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3284 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3285 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3286 if (!once_value_2
) {
3287 fra
.me
.REG
[3] = BOX_NativeString("._nitni.h");
3289 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3290 once_value_2
= fra
.me
.REG
[3];
3291 register_static_object(&once_value_2
);
3292 } else fra
.me
.REG
[3] = once_value_2
;
3293 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3294 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3295 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3296 /* native_interface/frontier.nit:398 */
3297 fra
.me
.REG
[3] = NEW_OFStream_standard___file___OFStream___open(fra
.me
.REG
[2]);
3298 /* native_interface/frontier.nit:399 */
3299 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3300 CALL_compiling_writer___Writer___write_to_stream(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3301 /* native_interface/frontier.nit:400 */
3302 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3303 CALL_compiling_writer___Writer___write_to_stream(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3304 /* native_interface/frontier.nit:401 */
3305 CALL_standard___stream___IOS___close(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3306 /* native_interface/frontier.nit:403 */
3308 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3309 if (!once_value_3
) {
3310 fra
.me
.REG
[5] = BOX_NativeString("");
3312 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3313 once_value_3
= fra
.me
.REG
[5];
3314 register_static_object(&once_value_3
);
3315 } else fra
.me
.REG
[5] = once_value_3
;
3316 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3317 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3318 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
3319 if (!once_value_4
) {
3320 fra
.me
.REG
[1] = BOX_NativeString("._nitni.c");
3322 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
3323 once_value_4
= fra
.me
.REG
[1];
3324 register_static_object(&once_value_4
);
3325 } else fra
.me
.REG
[1] = once_value_4
;
3326 fra
.me
.REG
[1] = fra
.me
.REG
[1];
3327 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
3328 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3329 fra
.me
.REG
[2] = fra
.me
.REG
[4];
3330 /* native_interface/frontier.nit:404 */
3331 fra
.me
.REG
[2] = NEW_OFStream_standard___file___OFStream___open(fra
.me
.REG
[2]);
3332 fra
.me
.REG
[3] = fra
.me
.REG
[2];
3333 /* native_interface/frontier.nit:405 */
3334 fra
.me
.REG
[0] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3335 CALL_compiling_writer___Writer___write_to_stream(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
3336 /* native_interface/frontier.nit:406 */
3337 CALL_standard___stream___IOS___close(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3338 stack_frame_head
= fra
.me
.prev
;
3341 static const char LOCATE_native_interface___frontier___FrontierVisitor___init
[] = "frontier::FrontierVisitor::init";
3342 void native_interface___frontier___FrontierVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
3343 int itpos4
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_native_interface___frontier___FrontierVisitor
].i
;
3344 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3346 if (init_table
[itpos4
]) return;
3347 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3348 fra
.me
.file
= LOCATE_native_interface___frontier
;
3350 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___init
;
3351 fra
.me
.has_broke
= 0;
3352 fra
.me
.REG_size
= 3;
3353 fra
.me
.nitni_local_ref_head
= NULL
;
3354 fra
.me
.REG
[0] = NIT_NULL
;
3355 fra
.me
.REG
[1] = NIT_NULL
;
3356 fra
.me
.REG
[2] = NIT_NULL
;
3360 ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
3361 ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3362 stack_frame_head
= fra
.me
.prev
;
3363 init_table
[itpos4
] = 1;
3366 static const char LOCATE_native_interface___frontier___MMImportedCast___compile_to_frontier
[] = "frontier::MMImportedCast::compile_to_frontier";
3367 void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
, val_t p1
){
3368 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3372 static val_t once_value_1
; /* Once value */
3373 static val_t once_value_2
; /* Once value */
3374 static val_t once_value_3
; /* Once value */
3375 static val_t once_value_4
; /* Once value */
3376 static val_t once_value_5
; /* Once value */
3377 static val_t once_value_6
; /* Once value */
3378 static val_t once_value_7
; /* Once value */
3379 static val_t once_value_8
; /* Once value */
3380 static val_t once_value_9
; /* Once value */
3381 static val_t once_value_10
; /* Once value */
3382 static val_t once_value_11
; /* Once value */
3383 static val_t once_value_12
; /* Once value */
3384 static val_t once_value_13
; /* Once value */
3385 static val_t once_value_14
; /* Once value */
3386 static val_t once_value_15
; /* Once value */
3387 static val_t once_value_16
; /* Once value */
3388 static val_t once_value_17
; /* Once value */
3389 static val_t once_value_18
; /* Once value */
3390 static val_t once_value_19
; /* Once value */
3391 static val_t once_value_20
; /* Once value */
3392 static val_t once_value_21
; /* Once value */
3393 static val_t once_value_22
; /* Once value */
3394 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3395 fra
.me
.file
= LOCATE_native_interface___frontier
;
3397 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___compile_to_frontier
;
3398 fra
.me
.has_broke
= 0;
3399 fra
.me
.REG_size
= 5;
3400 fra
.me
.nitni_local_ref_head
= NULL
;
3401 fra
.me
.REG
[0] = NIT_NULL
;
3402 fra
.me
.REG
[1] = NIT_NULL
;
3403 fra
.me
.REG
[2] = NIT_NULL
;
3404 fra
.me
.REG
[3] = NIT_NULL
;
3405 fra
.me
.REG
[4] = NIT_NULL
;
3408 /* native_interface/frontier.nit:415 */
3409 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3410 if (UNTAG_Bool(REGB0
)) {
3411 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_not_null_to_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3413 REGB1
= TAG_Bool(0);
3416 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3417 if (UNTAG_Bool(REGB0
)) {
3418 /* native_interface/frontier.nit:416 */
3419 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3421 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3422 if (!once_value_1
) {
3423 fra
.me
.REG
[4] = BOX_NativeString("\n/* Type check for ");
3424 REGB0
= TAG_Int(19);
3425 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3426 once_value_1
= fra
.me
.REG
[4];
3427 register_static_object(&once_value_1
);
3428 } else fra
.me
.REG
[4] = once_value_1
;
3429 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3430 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3431 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3432 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3433 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3434 if (!once_value_2
) {
3435 fra
.me
.REG
[4] = BOX_NativeString(" with ");
3437 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3438 once_value_2
= fra
.me
.REG
[4];
3439 register_static_object(&once_value_2
);
3440 } else fra
.me
.REG
[4] = once_value_2
;
3441 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3442 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3443 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3444 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3445 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3446 if (!once_value_3
) {
3447 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
3449 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3450 once_value_3
= fra
.me
.REG
[4];
3451 register_static_object(&once_value_3
);
3452 } else fra
.me
.REG
[4] = once_value_3
;
3453 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3454 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3455 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3456 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3457 /* native_interface/frontier.nit:417 */
3458 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3460 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3461 if (!once_value_4
) {
3462 fra
.me
.REG
[4] = BOX_NativeString("");
3464 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3465 once_value_4
= fra
.me
.REG
[4];
3466 register_static_object(&once_value_4
);
3467 } else fra
.me
.REG
[4] = once_value_4
;
3468 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3469 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3470 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3471 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
3472 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3473 if (!once_value_5
) {
3474 fra
.me
.REG
[4] = BOX_NativeString(";\n");
3476 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3477 once_value_5
= fra
.me
.REG
[4];
3478 register_static_object(&once_value_5
);
3479 } else fra
.me
.REG
[4] = once_value_5
;
3480 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3481 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3482 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3483 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3484 /* native_interface/frontier.nit:419 */
3485 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3487 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3488 if (!once_value_6
) {
3489 fra
.me
.REG
[4] = BOX_NativeString("#ifndef ");
3491 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3492 once_value_6
= fra
.me
.REG
[4];
3493 register_static_object(&once_value_6
);
3494 } else fra
.me
.REG
[4] = once_value_6
;
3495 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3496 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3497 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3498 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3499 if (!once_value_7
) {
3500 fra
.me
.REG
[4] = BOX_NativeString("\n");
3502 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3503 once_value_7
= fra
.me
.REG
[4];
3504 register_static_object(&once_value_7
);
3505 } else fra
.me
.REG
[4] = once_value_7
;
3506 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3507 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3508 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3509 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3510 /* native_interface/frontier.nit:420 */
3511 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3513 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3514 if (!once_value_8
) {
3515 fra
.me
.REG
[4] = BOX_NativeString("#define ");
3517 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3518 once_value_8
= fra
.me
.REG
[4];
3519 register_static_object(&once_value_8
);
3520 } else fra
.me
.REG
[4] = once_value_8
;
3521 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3522 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3523 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3524 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3525 if (!once_value_9
) {
3526 fra
.me
.REG
[4] = BOX_NativeString(" ");
3528 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3529 once_value_9
= fra
.me
.REG
[4];
3530 register_static_object(&once_value_9
);
3531 } else fra
.me
.REG
[4] = once_value_9
;
3532 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3534 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3535 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_local_cname(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
3536 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3537 if (!once_value_10
) {
3538 fra
.me
.REG
[4] = BOX_NativeString("\n");
3540 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3541 once_value_10
= fra
.me
.REG
[4];
3542 register_static_object(&once_value_10
);
3543 } else fra
.me
.REG
[4] = once_value_10
;
3544 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3545 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3546 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3547 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3548 /* native_interface/frontier.nit:421 */
3549 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3550 if (!once_value_11
) {
3551 fra
.me
.REG
[3] = BOX_NativeString("#endif\n");
3553 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3554 once_value_11
= fra
.me
.REG
[3];
3555 register_static_object(&once_value_11
);
3556 } else fra
.me
.REG
[3] = once_value_11
;
3557 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3558 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3559 /* native_interface/frontier.nit:423 */
3560 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3561 fra
.me
.REG
[3] = CALL_native_interface___frontier___MMImportedCast___compile_is(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
3562 /* native_interface/frontier.nit:424 */
3563 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3564 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3565 CALL_compiling_writer___Writer___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3567 /* native_interface/frontier.nit:428 */
3568 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3570 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3571 if (!once_value_12
) {
3572 fra
.me
.REG
[4] = BOX_NativeString("\n/* Cast for ");
3573 REGB0
= TAG_Int(13);
3574 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3575 once_value_12
= fra
.me
.REG
[4];
3576 register_static_object(&once_value_12
);
3577 } else fra
.me
.REG
[4] = once_value_12
;
3578 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3579 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3580 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3581 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3582 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3583 if (!once_value_13
) {
3584 fra
.me
.REG
[4] = BOX_NativeString(" to ");
3586 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3587 once_value_13
= fra
.me
.REG
[4];
3588 register_static_object(&once_value_13
);
3589 } else fra
.me
.REG
[4] = once_value_13
;
3590 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3591 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3592 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3593 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3594 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3595 if (!once_value_14
) {
3596 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
3598 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3599 once_value_14
= fra
.me
.REG
[4];
3600 register_static_object(&once_value_14
);
3601 } else fra
.me
.REG
[4] = once_value_14
;
3602 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3603 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3604 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3605 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3606 /* native_interface/frontier.nit:429 */
3607 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3609 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3610 if (!once_value_15
) {
3611 fra
.me
.REG
[4] = BOX_NativeString("");
3613 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3614 once_value_15
= fra
.me
.REG
[4];
3615 register_static_object(&once_value_15
);
3616 } else fra
.me
.REG
[4] = once_value_15
;
3617 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3618 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3619 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3620 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___as_local_csignature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
3621 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3622 if (!once_value_16
) {
3623 fra
.me
.REG
[4] = BOX_NativeString(";\n");
3625 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3626 once_value_16
= fra
.me
.REG
[4];
3627 register_static_object(&once_value_16
);
3628 } else fra
.me
.REG
[4] = once_value_16
;
3629 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3631 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3632 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3633 /* native_interface/frontier.nit:431 */
3634 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3636 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3637 if (!once_value_17
) {
3638 fra
.me
.REG
[4] = BOX_NativeString("#ifndef ");
3640 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3641 once_value_17
= fra
.me
.REG
[4];
3642 register_static_object(&once_value_17
);
3643 } else fra
.me
.REG
[4] = once_value_17
;
3644 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3645 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3646 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3647 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3648 if (!once_value_18
) {
3649 fra
.me
.REG
[4] = BOX_NativeString("\n");
3651 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3652 once_value_18
= fra
.me
.REG
[4];
3653 register_static_object(&once_value_18
);
3654 } else fra
.me
.REG
[4] = once_value_18
;
3655 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3656 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3657 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3658 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3659 /* native_interface/frontier.nit:432 */
3660 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3662 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3663 if (!once_value_19
) {
3664 fra
.me
.REG
[4] = BOX_NativeString("#define ");
3666 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3667 once_value_19
= fra
.me
.REG
[4];
3668 register_static_object(&once_value_19
);
3669 } else fra
.me
.REG
[4] = once_value_19
;
3670 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3671 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3672 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3673 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3674 if (!once_value_20
) {
3675 fra
.me
.REG
[4] = BOX_NativeString(" ");
3677 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3678 once_value_20
= fra
.me
.REG
[4];
3679 register_static_object(&once_value_20
);
3680 } else fra
.me
.REG
[4] = once_value_20
;
3681 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3682 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3683 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3684 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___as_local_cname(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
3685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3686 if (!once_value_21
) {
3687 fra
.me
.REG
[4] = BOX_NativeString("\n");
3689 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3690 once_value_21
= fra
.me
.REG
[4];
3691 register_static_object(&once_value_21
);
3692 } else fra
.me
.REG
[4] = once_value_21
;
3693 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3694 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3695 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3696 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3697 /* native_interface/frontier.nit:433 */
3698 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3699 if (!once_value_22
) {
3700 fra
.me
.REG
[2] = BOX_NativeString("#endif\n");
3702 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3703 once_value_22
= fra
.me
.REG
[2];
3704 register_static_object(&once_value_22
);
3705 } else fra
.me
.REG
[2] = once_value_22
;
3706 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3707 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3708 /* native_interface/frontier.nit:435 */
3709 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3710 fra
.me
.REG
[2] = CALL_native_interface___frontier___MMImportedCast___compile_as(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3711 /* native_interface/frontier.nit:436 */
3712 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3713 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3714 CALL_compiling_writer___Writer___append(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3715 stack_frame_head
= fra
.me
.prev
;
3718 static const char LOCATE_native_interface___frontier___MMImportedCast___compile_as
[] = "frontier::MMImportedCast::compile_as";
3719 val_t
native_interface___frontier___MMImportedCast___compile_as(val_t p0
, val_t p1
){
3720 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
3723 static val_t once_value_1
; /* Once value */
3724 static val_t once_value_2
; /* Once value */
3725 static val_t once_value_3
; /* Once value */
3726 static val_t once_value_4
; /* Once value */
3727 static val_t once_value_5
; /* Once value */
3728 static val_t once_value_6
; /* Once value */
3729 static val_t once_value_7
; /* Once value */
3730 static val_t once_value_8
; /* Once value */
3731 static val_t once_value_9
; /* Once value */
3732 static val_t once_value_10
; /* Once value */
3733 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3734 fra
.me
.file
= LOCATE_native_interface___frontier
;
3736 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___compile_as
;
3737 fra
.me
.has_broke
= 0;
3738 fra
.me
.REG_size
= 8;
3739 fra
.me
.nitni_local_ref_head
= NULL
;
3740 fra
.me
.REG
[0] = NIT_NULL
;
3741 fra
.me
.REG
[1] = NIT_NULL
;
3742 fra
.me
.REG
[2] = NIT_NULL
;
3743 fra
.me
.REG
[3] = NIT_NULL
;
3744 fra
.me
.REG
[4] = NIT_NULL
;
3745 fra
.me
.REG
[5] = NIT_NULL
;
3746 fra
.me
.REG
[6] = NIT_NULL
;
3747 fra
.me
.REG
[7] = NIT_NULL
;
3750 /* native_interface/frontier.nit:443 */
3751 fra
.me
.REG
[1] = CALL_native_interface___ni_metamodel___MMImportedCast___as_local_csignature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3752 fra
.me
.REG
[1] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[1]);
3753 /* native_interface/frontier.nit:445 */
3754 if (!once_value_1
) {
3755 fra
.me
.REG
[2] = BOX_NativeString("out");
3757 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3758 once_value_1
= fra
.me
.REG
[2];
3759 register_static_object(&once_value_1
);
3760 } else fra
.me
.REG
[2] = once_value_1
;
3761 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3762 /* native_interface/frontier.nit:446 */
3763 if (!once_value_2
) {
3764 fra
.me
.REG
[3] = BOX_NativeString("temp");
3766 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3767 once_value_2
= fra
.me
.REG
[3];
3768 register_static_object(&once_value_2
);
3769 } else fra
.me
.REG
[3] = once_value_2
;
3770 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3771 /* native_interface/frontier.nit:448 */
3772 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3774 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3775 if (!once_value_3
) {
3776 fra
.me
.REG
[6] = BOX_NativeString("val_t ");
3778 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3779 once_value_3
= fra
.me
.REG
[6];
3780 register_static_object(&once_value_3
);
3781 } else fra
.me
.REG
[6] = once_value_3
;
3782 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3783 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3785 if (!once_value_4
) {
3786 fra
.me
.REG
[6] = BOX_NativeString(";\n");
3788 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3789 once_value_4
= fra
.me
.REG
[6];
3790 register_static_object(&once_value_4
);
3791 } else fra
.me
.REG
[6] = once_value_4
;
3792 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3793 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3794 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3795 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3796 /* native_interface/frontier.nit:449 */
3797 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3798 REGB0
= TAG_Bool(1);
3799 CALL_native_interface___frontier___MMType___compile_new_local_ref(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2], fra
.me
.REG
[1], REGB0
);
3800 /* native_interface/frontier.nit:451 */
3801 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3803 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3804 if (!once_value_5
) {
3805 fra
.me
.REG
[6] = BOX_NativeString("");
3807 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3808 once_value_5
= fra
.me
.REG
[6];
3809 register_static_object(&once_value_5
);
3810 } else fra
.me
.REG
[6] = once_value_5
;
3811 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3812 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
3813 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3814 fra
.me
.REG
[7] = CALL_native_interface___ni_metamodel___MMImportedCast___in_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3815 fra
.me
.REG
[7] = CALL_native_interface___ni_metamodel___MMType___assign_from_friendly(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3], fra
.me
.REG
[7]);
3816 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
3817 if (!once_value_6
) {
3818 fra
.me
.REG
[7] = BOX_NativeString(";\n");
3820 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3821 once_value_6
= fra
.me
.REG
[7];
3822 register_static_object(&once_value_6
);
3823 } else fra
.me
.REG
[7] = once_value_6
;
3824 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3825 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
3826 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3827 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3828 /* native_interface/frontier.nit:454 */
3829 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3830 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3831 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3832 if (UNTAG_Bool(REGB0
)) {
3833 /* native_interface/frontier.nit:455 */
3834 CALL_native_interface___frontier___MMImportedCast___compile_check_is_not_null(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
3836 /* native_interface/frontier.nit:459 */
3837 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3838 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3839 if (UNTAG_Bool(REGB0
)) {
3840 /* native_interface/frontier.nit:460 */
3841 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3842 CALL_native_interface___frontier___MMType___compile_check_isa(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1], fra
.me
.REG
[3]);
3844 /* native_interface/frontier.nit:463 */
3845 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3847 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3848 if (!once_value_7
) {
3849 fra
.me
.REG
[7] = BOX_NativeString("");
3851 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3852 once_value_7
= fra
.me
.REG
[7];
3853 register_static_object(&once_value_7
);
3854 } else fra
.me
.REG
[7] = once_value_7
;
3855 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3856 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3857 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3858 fra
.me
.REG
[3] = CALL_native_interface___ni_metamodel___MMType___assign_to_friendly(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3859 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3860 if (!once_value_8
) {
3861 fra
.me
.REG
[3] = BOX_NativeString(";\n");
3863 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3864 once_value_8
= fra
.me
.REG
[3];
3865 register_static_object(&once_value_8
);
3866 } else fra
.me
.REG
[3] = once_value_8
;
3867 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3868 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3869 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3870 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3871 /* native_interface/frontier.nit:465 */
3872 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3874 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3875 if (!once_value_9
) {
3876 fra
.me
.REG
[3] = BOX_NativeString("return ");
3878 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3879 once_value_9
= fra
.me
.REG
[3];
3880 register_static_object(&once_value_9
);
3881 } else fra
.me
.REG
[3] = once_value_9
;
3882 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3884 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3885 if (!once_value_10
) {
3886 fra
.me
.REG
[2] = BOX_NativeString(";\n");
3888 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3889 once_value_10
= fra
.me
.REG
[2];
3890 register_static_object(&once_value_10
);
3891 } else fra
.me
.REG
[2] = once_value_10
;
3892 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3893 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3894 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3895 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3896 /* native_interface/frontier.nit:467 */
3899 stack_frame_head
= fra
.me
.prev
;
3900 return fra
.me
.REG
[1];
3902 static const char LOCATE_native_interface___frontier___MMImportedCast___compile_is
[] = "frontier::MMImportedCast::compile_is";
3903 val_t
native_interface___frontier___MMImportedCast___compile_is(val_t p0
, val_t p1
){
3904 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3907 static val_t once_value_1
; /* Once value */
3908 static val_t once_value_2
; /* Once value */
3909 static val_t once_value_3
; /* Once value */
3910 static val_t once_value_4
; /* Once value */
3911 static val_t once_value_5
; /* Once value */
3912 static val_t once_value_6
; /* Once value */
3913 static val_t once_value_7
; /* Once value */
3914 static val_t once_value_8
; /* Once value */
3915 static val_t once_value_9
; /* Once value */
3916 static val_t once_value_10
; /* Once value */
3917 static val_t once_value_11
; /* Once value */
3918 static val_t once_value_12
; /* Once value */
3919 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3920 fra
.me
.file
= LOCATE_native_interface___frontier
;
3922 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___compile_is
;
3923 fra
.me
.has_broke
= 0;
3924 fra
.me
.REG_size
= 7;
3925 fra
.me
.nitni_local_ref_head
= NULL
;
3926 fra
.me
.REG
[0] = NIT_NULL
;
3927 fra
.me
.REG
[1] = NIT_NULL
;
3928 fra
.me
.REG
[2] = NIT_NULL
;
3929 fra
.me
.REG
[3] = NIT_NULL
;
3930 fra
.me
.REG
[4] = NIT_NULL
;
3931 fra
.me
.REG
[5] = NIT_NULL
;
3932 fra
.me
.REG
[6] = NIT_NULL
;
3935 /* native_interface/frontier.nit:474 */
3936 fra
.me
.REG
[1] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3937 fra
.me
.REG
[1] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[1]);
3938 /* native_interface/frontier.nit:476 */
3939 if (!once_value_1
) {
3940 fra
.me
.REG
[2] = BOX_NativeString("temp");
3942 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3943 once_value_1
= fra
.me
.REG
[2];
3944 register_static_object(&once_value_1
);
3945 } else fra
.me
.REG
[2] = once_value_1
;
3946 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3947 /* native_interface/frontier.nit:477 */
3948 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3950 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3951 if (!once_value_2
) {
3952 fra
.me
.REG
[5] = BOX_NativeString("val_t ");
3954 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3955 once_value_2
= fra
.me
.REG
[5];
3956 register_static_object(&once_value_2
);
3957 } else fra
.me
.REG
[5] = once_value_2
;
3958 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3960 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3961 if (!once_value_3
) {
3962 fra
.me
.REG
[5] = BOX_NativeString(";\n");
3964 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3965 once_value_3
= fra
.me
.REG
[5];
3966 register_static_object(&once_value_3
);
3967 } else fra
.me
.REG
[5] = once_value_3
;
3968 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3969 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3970 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3971 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3972 /* native_interface/frontier.nit:479 */
3973 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3975 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3976 if (!once_value_4
) {
3977 fra
.me
.REG
[5] = BOX_NativeString("");
3979 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3980 once_value_4
= fra
.me
.REG
[5];
3981 register_static_object(&once_value_4
);
3982 } else fra
.me
.REG
[5] = once_value_4
;
3983 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3984 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3985 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3986 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMImportedCast___in_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3987 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMType___assign_from_friendly(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2], fra
.me
.REG
[6]);
3988 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3989 if (!once_value_5
) {
3990 fra
.me
.REG
[6] = BOX_NativeString(";\n");
3992 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3993 once_value_5
= fra
.me
.REG
[6];
3994 register_static_object(&once_value_5
);
3995 } else fra
.me
.REG
[6] = once_value_5
;
3996 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3997 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3998 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3999 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4000 /* native_interface/frontier.nit:481 */
4001 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_nullable_to_not_null(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4002 if (UNTAG_Bool(REGB0
)) {
4003 /* native_interface/frontier.nit:482 */
4004 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4005 if (UNTAG_Bool(REGB0
)) {
4006 /* native_interface/frontier.nit:483 */
4007 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4009 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4010 if (!once_value_6
) {
4011 fra
.me
.REG
[6] = BOX_NativeString("if ( ! ISNULL(");
4012 REGB0
= TAG_Int(14);
4013 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4014 once_value_6
= fra
.me
.REG
[6];
4015 register_static_object(&once_value_6
);
4016 } else fra
.me
.REG
[6] = once_value_6
;
4017 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4019 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4020 if (!once_value_7
) {
4021 fra
.me
.REG
[6] = BOX_NativeString(") ) return 0;\n");
4022 REGB0
= TAG_Int(14);
4023 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4024 once_value_7
= fra
.me
.REG
[6];
4025 register_static_object(&once_value_7
);
4026 } else fra
.me
.REG
[6] = once_value_7
;
4027 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4028 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4029 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4030 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4032 /* native_interface/frontier.nit:485 */
4033 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4035 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4036 if (!once_value_8
) {
4037 fra
.me
.REG
[6] = BOX_NativeString("if ( ISNULL(");
4038 REGB0
= TAG_Int(12);
4039 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4040 once_value_8
= fra
.me
.REG
[6];
4041 register_static_object(&once_value_8
);
4042 } else fra
.me
.REG
[6] = once_value_8
;
4043 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4044 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4045 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4046 if (!once_value_9
) {
4047 fra
.me
.REG
[6] = BOX_NativeString(") ) return 0;\n");
4048 REGB0
= TAG_Int(14);
4049 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4050 once_value_9
= fra
.me
.REG
[6];
4051 register_static_object(&once_value_9
);
4052 } else fra
.me
.REG
[6] = once_value_9
;
4053 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4054 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4055 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4056 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4059 /* native_interface/frontier.nit:489 */
4060 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4061 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4062 if (UNTAG_Bool(REGB0
)) {
4063 /* native_interface/frontier.nit:490 */
4064 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4066 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4067 if (!once_value_10
) {
4068 fra
.me
.REG
[6] = BOX_NativeString("if ( ! ");
4070 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4071 once_value_10
= fra
.me
.REG
[6];
4072 register_static_object(&once_value_10
);
4073 } else fra
.me
.REG
[6] = once_value_10
;
4074 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4075 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4076 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4077 fra
.me
.REG
[2] = CALL_native_interface___frontier___MMType___compile_condition_isa(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
4078 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4079 if (!once_value_11
) {
4080 fra
.me
.REG
[2] = BOX_NativeString(" ) return 0;\n");
4081 REGB0
= TAG_Int(13);
4082 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4083 once_value_11
= fra
.me
.REG
[2];
4084 register_static_object(&once_value_11
);
4085 } else fra
.me
.REG
[2] = once_value_11
;
4086 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4087 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4088 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4089 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4091 /* native_interface/frontier.nit:493 */
4092 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4093 if (!once_value_12
) {
4094 fra
.me
.REG
[3] = BOX_NativeString("return 1;\n");
4095 REGB0
= TAG_Int(10);
4096 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4097 once_value_12
= fra
.me
.REG
[3];
4098 register_static_object(&once_value_12
);
4099 } else fra
.me
.REG
[3] = once_value_12
;
4100 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4101 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4102 /* native_interface/frontier.nit:495 */
4105 stack_frame_head
= fra
.me
.prev
;
4106 return fra
.me
.REG
[1];
4108 static const char LOCATE_native_interface___frontier___MMImportedCast___compile_check_is_not_null
[] = "frontier::MMImportedCast::compile_check_is_not_null";
4109 void native_interface___frontier___MMImportedCast___compile_check_is_not_null(val_t p0
, val_t p1
, val_t p2
){
4110 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4113 static val_t once_value_1
; /* Once value */
4114 static val_t once_value_2
; /* Once value */
4115 static val_t once_value_3
; /* Once value */
4116 static val_t once_value_4
; /* Once value */
4117 static val_t once_value_5
; /* Once value */
4118 static val_t once_value_6
; /* Once value */
4119 static val_t once_value_7
; /* Once value */
4120 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4121 fra
.me
.file
= LOCATE_native_interface___frontier
;
4123 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___compile_check_is_not_null
;
4124 fra
.me
.has_broke
= 0;
4125 fra
.me
.REG_size
= 6;
4126 fra
.me
.nitni_local_ref_head
= NULL
;
4127 fra
.me
.REG
[0] = NIT_NULL
;
4128 fra
.me
.REG
[1] = NIT_NULL
;
4129 fra
.me
.REG
[2] = NIT_NULL
;
4130 fra
.me
.REG
[3] = NIT_NULL
;
4131 fra
.me
.REG
[4] = NIT_NULL
;
4132 fra
.me
.REG
[5] = NIT_NULL
;
4136 /* native_interface/frontier.nit:502 */
4137 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4139 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4140 if (!once_value_1
) {
4141 fra
.me
.REG
[5] = BOX_NativeString("if ( ISNULL(");
4142 REGB0
= TAG_Int(12);
4143 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4144 once_value_1
= fra
.me
.REG
[5];
4145 register_static_object(&once_value_1
);
4146 } else fra
.me
.REG
[5] = once_value_1
;
4147 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4148 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4149 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4150 if (!once_value_2
) {
4151 fra
.me
.REG
[2] = BOX_NativeString(") ){");
4153 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4154 once_value_2
= fra
.me
.REG
[2];
4155 register_static_object(&once_value_2
);
4156 } else fra
.me
.REG
[2] = once_value_2
;
4157 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4158 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4159 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4160 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4161 /* native_interface/frontier.nit:503 */
4162 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4164 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4165 if (!once_value_3
) {
4166 fra
.me
.REG
[2] = BOX_NativeString("\tfprintf( stderr, \"Casting from ");
4167 REGB0
= TAG_Int(32);
4168 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4169 once_value_3
= fra
.me
.REG
[2];
4170 register_static_object(&once_value_3
);
4171 } else fra
.me
.REG
[2] = once_value_3
;
4172 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4173 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4174 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4175 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4176 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4177 if (!once_value_4
) {
4178 fra
.me
.REG
[2] = BOX_NativeString(" to ");
4180 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4181 once_value_4
= fra
.me
.REG
[2];
4182 register_static_object(&once_value_4
);
4183 } else fra
.me
.REG
[2] = once_value_4
;
4184 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4185 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4186 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4187 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4188 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
4189 if (!once_value_5
) {
4190 fra
.me
.REG
[0] = BOX_NativeString(" failed because value is null.\" );\n");
4191 REGB0
= TAG_Int(35);
4192 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4193 once_value_5
= fra
.me
.REG
[0];
4194 register_static_object(&once_value_5
);
4195 } else fra
.me
.REG
[0] = once_value_5
;
4196 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4197 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
4198 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4199 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4200 /* native_interface/frontier.nit:504 */
4201 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4202 if (!once_value_6
) {
4203 fra
.me
.REG
[4] = BOX_NativeString("\tabort();\n");
4204 REGB0
= TAG_Int(10);
4205 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4206 once_value_6
= fra
.me
.REG
[4];
4207 register_static_object(&once_value_6
);
4208 } else fra
.me
.REG
[4] = once_value_6
;
4209 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4210 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4211 /* native_interface/frontier.nit:505 */
4212 fra
.me
.REG
[1] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4213 if (!once_value_7
) {
4214 fra
.me
.REG
[4] = BOX_NativeString("}");
4216 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4217 once_value_7
= fra
.me
.REG
[4];
4218 register_static_object(&once_value_7
);
4219 } else fra
.me
.REG
[4] = once_value_7
;
4220 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4221 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4222 stack_frame_head
= fra
.me
.prev
;
4225 static const char LOCATE_native_interface___frontier___MMImportedCast_____eqeq
[] = "frontier::MMImportedCast::(kernel::Object::==)";
4226 val_t
native_interface___frontier___MMImportedCast_____eqeq(val_t p0
, val_t p1
){
4227 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4231 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4232 fra
.me
.file
= LOCATE_native_interface___frontier
;
4234 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast_____eqeq
;
4235 fra
.me
.has_broke
= 0;
4236 fra
.me
.REG_size
= 4;
4237 fra
.me
.nitni_local_ref_head
= NULL
;
4238 fra
.me
.REG
[0] = NIT_NULL
;
4239 fra
.me
.REG
[1] = NIT_NULL
;
4240 fra
.me
.REG
[2] = NIT_NULL
;
4241 fra
.me
.REG
[3] = NIT_NULL
;
4244 /* native_interface/frontier.nit:510 */
4245 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMImportedCast
, ID_metamodel___static_type___MMImportedCast
)) /*cast MMImportedCast*/;
4246 if (UNTAG_Bool(REGB0
)) {
4247 /* native_interface/frontier.nit:511 */
4248 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
4249 if (UNTAG_Bool(REGB0
)) {
4250 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 511);
4252 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4253 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4254 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
4255 if (UNTAG_Bool(REGB0
)) {
4257 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4261 /* native_interface/frontier.nit:510 */
4262 REGB1
= TAG_Bool(0);
4265 if (UNTAG_Bool(REGB0
)) {
4266 /* native_interface/frontier.nit:511 */
4267 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
4268 if (UNTAG_Bool(REGB0
)) {
4269 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 511);
4271 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4272 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4273 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[0]));
4274 if (UNTAG_Bool(REGB0
)) {
4276 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4280 /* native_interface/frontier.nit:510 */
4281 REGB1
= TAG_Bool(0);
4286 stack_frame_head
= fra
.me
.prev
;
4289 static const char LOCATE_native_interface___frontier___MMImportedCast___hash
[] = "frontier::MMImportedCast::(hash::Object::hash)";
4290 val_t
native_interface___frontier___MMImportedCast___hash(val_t p0
){
4291 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4295 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4296 fra
.me
.file
= LOCATE_native_interface___frontier
;
4298 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___hash
;
4299 fra
.me
.has_broke
= 0;
4300 fra
.me
.REG_size
= 2;
4301 fra
.me
.nitni_local_ref_head
= NULL
;
4302 fra
.me
.REG
[0] = NIT_NULL
;
4303 fra
.me
.REG
[1] = NIT_NULL
;
4305 /* native_interface/frontier.nit:515 */
4306 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4307 REGB0
= CALL_standard___hash___Object___hash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4308 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4309 REGB1
= CALL_standard___hash___Object___hash(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4310 /* ../lib/standard/kernel.nit:238 */
4311 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
4312 /* native_interface/frontier.nit:515 */
4315 stack_frame_head
= fra
.me
.prev
;
4318 static const char LOCATE_native_interface___frontier___MMType___compile_check_isa
[] = "frontier::MMType::compile_check_isa";
4319 void native_interface___frontier___MMType___compile_check_isa(val_t p0
, val_t p1
, val_t p2
){
4320 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4323 static val_t once_value_1
; /* Once value */
4324 static val_t once_value_2
; /* Once value */
4325 static val_t once_value_3
; /* Once value */
4326 static val_t once_value_4
; /* Once value */
4327 static val_t once_value_5
; /* Once value */
4328 static val_t once_value_6
; /* Once value */
4329 static val_t once_value_7
; /* Once value */
4330 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4331 fra
.me
.file
= LOCATE_native_interface___frontier
;
4333 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_check_isa
;
4334 fra
.me
.has_broke
= 0;
4335 fra
.me
.REG_size
= 6;
4336 fra
.me
.nitni_local_ref_head
= NULL
;
4337 fra
.me
.REG
[0] = NIT_NULL
;
4338 fra
.me
.REG
[1] = NIT_NULL
;
4339 fra
.me
.REG
[2] = NIT_NULL
;
4340 fra
.me
.REG
[3] = NIT_NULL
;
4341 fra
.me
.REG
[4] = NIT_NULL
;
4342 fra
.me
.REG
[5] = NIT_NULL
;
4346 /* native_interface/frontier.nit:526 */
4347 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4349 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4350 if (!once_value_1
) {
4351 fra
.me
.REG
[5] = BOX_NativeString("if ( ! ");
4353 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4354 once_value_1
= fra
.me
.REG
[5];
4355 register_static_object(&once_value_1
);
4356 } else fra
.me
.REG
[5] = once_value_1
;
4357 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4358 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4359 fra
.me
.REG
[2] = CALL_native_interface___frontier___MMType___compile_condition_isa(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
4360 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4361 if (!once_value_2
) {
4362 fra
.me
.REG
[2] = BOX_NativeString(" ){\n");
4364 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4365 once_value_2
= fra
.me
.REG
[2];
4366 register_static_object(&once_value_2
);
4367 } else fra
.me
.REG
[2] = once_value_2
;
4368 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4369 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4370 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4371 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4372 /* native_interface/frontier.nit:527 */
4373 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4375 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4376 if (!once_value_3
) {
4377 fra
.me
.REG
[2] = BOX_NativeString("\tfprintf( stderr, \"Casting to ");
4378 REGB0
= TAG_Int(30);
4379 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4380 once_value_3
= fra
.me
.REG
[2];
4381 register_static_object(&once_value_3
);
4382 } else fra
.me
.REG
[2] = once_value_3
;
4383 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4385 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4386 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4387 if (!once_value_4
) {
4388 fra
.me
.REG
[2] = BOX_NativeString(" failed because value is not a ");
4389 REGB0
= TAG_Int(31);
4390 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4391 once_value_4
= fra
.me
.REG
[2];
4392 register_static_object(&once_value_4
);
4393 } else fra
.me
.REG
[2] = once_value_4
;
4394 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4395 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4396 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4397 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
4398 if (!once_value_5
) {
4399 fra
.me
.REG
[0] = BOX_NativeString(".\" );\n");
4401 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4402 once_value_5
= fra
.me
.REG
[0];
4403 register_static_object(&once_value_5
);
4404 } else fra
.me
.REG
[0] = once_value_5
;
4405 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4406 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
4407 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4408 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4409 /* native_interface/frontier.nit:528 */
4410 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4411 if (!once_value_6
) {
4412 fra
.me
.REG
[4] = BOX_NativeString("\tabort();\n");
4413 REGB0
= TAG_Int(10);
4414 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4415 once_value_6
= fra
.me
.REG
[4];
4416 register_static_object(&once_value_6
);
4417 } else fra
.me
.REG
[4] = once_value_6
;
4418 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4419 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4420 /* native_interface/frontier.nit:529 */
4421 fra
.me
.REG
[1] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4422 if (!once_value_7
) {
4423 fra
.me
.REG
[4] = BOX_NativeString("}\n");
4425 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4426 once_value_7
= fra
.me
.REG
[4];
4427 register_static_object(&once_value_7
);
4428 } else fra
.me
.REG
[4] = once_value_7
;
4429 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4430 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4431 stack_frame_head
= fra
.me
.prev
;
4434 static const char LOCATE_native_interface___frontier___MMType___compile_condition_isa
[] = "frontier::MMType::compile_condition_isa";
4435 val_t
native_interface___frontier___MMType___compile_condition_isa(val_t p0
, val_t p1
){
4436 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4439 static val_t once_value_1
; /* Once value */
4440 static val_t once_value_2
; /* Once value */
4441 static val_t once_value_3
; /* Once value */
4442 static val_t once_value_4
; /* Once value */
4443 static val_t once_value_5
; /* Once value */
4444 static val_t once_value_6
; /* Once value */
4445 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4446 fra
.me
.file
= LOCATE_native_interface___frontier
;
4448 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_condition_isa
;
4449 fra
.me
.has_broke
= 0;
4450 fra
.me
.REG_size
= 4;
4451 fra
.me
.nitni_local_ref_head
= NULL
;
4452 fra
.me
.REG
[0] = NIT_NULL
;
4453 fra
.me
.REG
[1] = NIT_NULL
;
4454 fra
.me
.REG
[2] = NIT_NULL
;
4455 fra
.me
.REG
[3] = NIT_NULL
;
4458 /* native_interface/frontier.nit:536 */
4459 REGB0
= TAG_Int(11);
4460 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4461 if (!once_value_1
) {
4462 fra
.me
.REG
[3] = BOX_NativeString("( ISOBJ( ");
4464 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4465 once_value_1
= fra
.me
.REG
[3];
4466 register_static_object(&once_value_1
);
4467 } else fra
.me
.REG
[3] = once_value_1
;
4468 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4469 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4471 if (!once_value_2
) {
4472 fra
.me
.REG
[3] = BOX_NativeString(" ) ? OBJISA( ");
4473 REGB0
= TAG_Int(13);
4474 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4475 once_value_2
= fra
.me
.REG
[3];
4476 register_static_object(&once_value_2
);
4477 } else fra
.me
.REG
[3] = once_value_2
;
4478 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4479 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4480 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4481 if (!once_value_3
) {
4482 fra
.me
.REG
[3] = BOX_NativeString(", ");
4484 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4485 once_value_3
= fra
.me
.REG
[3];
4486 register_static_object(&once_value_3
);
4487 } else fra
.me
.REG
[3] = once_value_3
;
4488 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4489 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4490 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4491 fra
.me
.REG
[3] = CALL_compiling___compiling_base___MMLocalClass___cname(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4492 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4493 if (!once_value_4
) {
4494 fra
.me
.REG
[3] = BOX_NativeString(" ): VALISA( ");
4495 REGB0
= TAG_Int(12);
4496 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4497 once_value_4
= fra
.me
.REG
[3];
4498 register_static_object(&once_value_4
);
4499 } else fra
.me
.REG
[3] = once_value_4
;
4500 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4501 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4502 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4503 if (!once_value_5
) {
4504 fra
.me
.REG
[1] = BOX_NativeString(", ");
4506 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
4507 once_value_5
= fra
.me
.REG
[1];
4508 register_static_object(&once_value_5
);
4509 } else fra
.me
.REG
[1] = once_value_5
;
4510 fra
.me
.REG
[1] = fra
.me
.REG
[1];
4511 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4512 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4513 fra
.me
.REG
[0] = CALL_compiling___compiling_base___MMLocalClass___cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4514 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4515 if (!once_value_6
) {
4516 fra
.me
.REG
[0] = BOX_NativeString(" ) )");
4518 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4519 once_value_6
= fra
.me
.REG
[0];
4520 register_static_object(&once_value_6
);
4521 } else fra
.me
.REG
[0] = once_value_6
;
4522 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4523 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4524 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4527 stack_frame_head
= fra
.me
.prev
;
4528 return fra
.me
.REG
[2];
4530 static const char LOCATE_native_interface___frontier___MMType___compile_to_frontier
[] = "frontier::MMType::compile_to_frontier";
4531 void native_interface___frontier___MMType___compile_to_frontier(val_t p0
, val_t p1
){
4532 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4536 static val_t once_value_1
; /* Once value */
4537 static val_t once_value_2
; /* Once value */
4538 static val_t once_value_3
; /* Once value */
4539 static val_t once_value_4
; /* Once value */
4540 static val_t once_value_5
; /* Once value */
4541 static val_t once_value_6
; /* Once value */
4542 static val_t once_value_7
; /* Once value */
4543 static val_t once_value_8
; /* Once value */
4544 static val_t once_value_9
; /* Once value */
4545 static val_t once_value_10
; /* Once value */
4546 static val_t once_value_11
; /* Once value */
4547 static val_t once_value_12
; /* Once value */
4548 static val_t once_value_13
; /* Once value */
4549 static val_t once_value_14
; /* Once value */
4550 static val_t once_value_15
; /* Once value */
4551 static val_t once_value_16
; /* Once value */
4552 static val_t once_value_17
; /* Once value */
4553 static val_t once_value_18
; /* Once value */
4554 static val_t once_value_19
; /* Once value */
4555 static val_t once_value_20
; /* Once value */
4556 static val_t once_value_21
; /* Once value */
4557 static val_t once_value_22
; /* Once value */
4558 static val_t once_value_23
; /* Once value */
4559 static val_t once_value_24
; /* Once value */
4560 static val_t once_value_25
; /* Once value */
4561 static val_t once_value_26
; /* Once value */
4562 static val_t once_value_27
; /* Once value */
4563 static val_t once_value_28
; /* Once value */
4564 static val_t once_value_29
; /* Once value */
4565 static val_t once_value_30
; /* Once value */
4566 static val_t once_value_31
; /* Once value */
4567 static val_t once_value_32
; /* Once value */
4568 static val_t once_value_33
; /* Once value */
4569 static val_t once_value_34
; /* Once value */
4570 static val_t once_value_35
; /* Once value */
4571 static val_t once_value_36
; /* Once value */
4572 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4573 fra
.me
.file
= LOCATE_native_interface___frontier
;
4575 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_to_frontier
;
4576 fra
.me
.has_broke
= 0;
4577 fra
.me
.REG_size
= 7;
4578 fra
.me
.nitni_local_ref_head
= NULL
;
4579 fra
.me
.REG
[0] = NIT_NULL
;
4580 fra
.me
.REG
[1] = NIT_NULL
;
4581 fra
.me
.REG
[2] = NIT_NULL
;
4582 fra
.me
.REG
[3] = NIT_NULL
;
4583 fra
.me
.REG
[4] = NIT_NULL
;
4584 fra
.me
.REG
[5] = NIT_NULL
;
4585 fra
.me
.REG
[6] = NIT_NULL
;
4588 /* native_interface/frontier.nit:543 */
4589 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4590 fra
.me
.REG
[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4591 /* native_interface/frontier.nit:544 */
4592 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4593 if (UNTAG_Bool(REGB0
)) {
4595 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4596 if (UNTAG_Bool(REGB1
)) {
4597 REGB1
= TAG_Bool(0);
4600 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4604 if (UNTAG_Bool(REGB0
)) {
4605 REGB0
= TAG_Bool(1);
4607 REGB1
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4610 if (UNTAG_Bool(REGB0
)) {
4611 /* native_interface/frontier.nit:545 */
4612 fra
.me
.REG
[2] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4613 /* native_interface/frontier.nit:546 */
4615 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4616 if (!once_value_1
) {
4617 fra
.me
.REG
[4] = BOX_NativeString("");
4619 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4620 once_value_1
= fra
.me
.REG
[4];
4621 register_static_object(&once_value_1
);
4622 } else fra
.me
.REG
[4] = once_value_1
;
4623 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4624 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4625 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4626 fra
.me
.REG
[4] = CALL_standard___string___AbstractString___to_upper(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4627 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4628 if (!once_value_2
) {
4629 fra
.me
.REG
[4] = BOX_NativeString("_TYPE");
4631 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4632 once_value_2
= fra
.me
.REG
[4];
4633 register_static_object(&once_value_2
);
4634 } else fra
.me
.REG
[4] = once_value_2
;
4635 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4636 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4637 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4638 /* native_interface/frontier.nit:549 */
4639 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4641 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4642 if (!once_value_3
) {
4643 fra
.me
.REG
[6] = BOX_NativeString("#ifndef ");
4645 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4646 once_value_3
= fra
.me
.REG
[6];
4647 register_static_object(&once_value_3
);
4648 } else fra
.me
.REG
[6] = once_value_3
;
4649 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4650 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4651 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4652 if (!once_value_4
) {
4653 fra
.me
.REG
[6] = BOX_NativeString("\n");
4655 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4656 once_value_4
= fra
.me
.REG
[6];
4657 register_static_object(&once_value_4
);
4658 } else fra
.me
.REG
[6] = once_value_4
;
4659 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4660 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4661 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4662 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4663 /* native_interface/frontier.nit:550 */
4664 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4666 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4667 if (!once_value_5
) {
4668 fra
.me
.REG
[6] = BOX_NativeString("#define ");
4670 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4671 once_value_5
= fra
.me
.REG
[6];
4672 register_static_object(&once_value_5
);
4673 } else fra
.me
.REG
[6] = once_value_5
;
4674 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4675 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4676 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4677 if (!once_value_6
) {
4678 fra
.me
.REG
[3] = BOX_NativeString("\n");
4680 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4681 once_value_6
= fra
.me
.REG
[3];
4682 register_static_object(&once_value_6
);
4683 } else fra
.me
.REG
[3] = once_value_6
;
4684 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4686 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4687 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4688 /* native_interface/frontier.nit:551 */
4689 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4691 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4692 if (!once_value_7
) {
4693 fra
.me
.REG
[3] = BOX_NativeString("struct s_");
4695 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4696 once_value_7
= fra
.me
.REG
[3];
4697 register_static_object(&once_value_7
);
4698 } else fra
.me
.REG
[3] = once_value_7
;
4699 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4700 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4701 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4702 if (!once_value_8
) {
4703 fra
.me
.REG
[3] = BOX_NativeString("{\n");
4705 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4706 once_value_8
= fra
.me
.REG
[3];
4707 register_static_object(&once_value_8
);
4708 } else fra
.me
.REG
[3] = once_value_8
;
4709 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4710 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4711 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4712 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4713 /* native_interface/frontier.nit:552 */
4714 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4715 if (!once_value_9
) {
4716 fra
.me
.REG
[4] = BOX_NativeString("\t\tstruct nitni_ref ref; /* real ref struct, must be first */\n");
4717 REGB0
= TAG_Int(61);
4718 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4719 once_value_9
= fra
.me
.REG
[4];
4720 register_static_object(&once_value_9
);
4721 } else fra
.me
.REG
[4] = once_value_9
;
4722 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4723 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4724 /* native_interface/frontier.nit:553 */
4725 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4726 if (!once_value_10
) {
4727 fra
.me
.REG
[5] = BOX_NativeString("};\n");
4729 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4730 once_value_10
= fra
.me
.REG
[5];
4731 register_static_object(&once_value_10
);
4732 } else fra
.me
.REG
[5] = once_value_10
;
4733 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4734 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4735 /* native_interface/frontier.nit:554 */
4736 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4738 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4739 if (!once_value_11
) {
4740 fra
.me
.REG
[3] = BOX_NativeString("typedef struct s_");
4741 REGB0
= TAG_Int(17);
4742 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4743 once_value_11
= fra
.me
.REG
[3];
4744 register_static_object(&once_value_11
);
4745 } else fra
.me
.REG
[3] = once_value_11
;
4746 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4747 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4748 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4749 if (!once_value_12
) {
4750 fra
.me
.REG
[3] = BOX_NativeString(" *");
4752 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4753 once_value_12
= fra
.me
.REG
[3];
4754 register_static_object(&once_value_12
);
4755 } else fra
.me
.REG
[3] = once_value_12
;
4756 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4757 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4758 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4759 if (!once_value_13
) {
4760 fra
.me
.REG
[3] = BOX_NativeString(";\n");
4762 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4763 once_value_13
= fra
.me
.REG
[3];
4764 register_static_object(&once_value_13
);
4765 } else fra
.me
.REG
[3] = once_value_13
;
4766 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4767 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4768 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4769 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4770 /* native_interface/frontier.nit:557 */
4771 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4772 if (UNTAG_Bool(REGB0
)) {
4773 /* native_interface/frontier.nit:558 */
4774 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4775 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMType___local_friendly_null_getter_from(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
4776 /* native_interface/frontier.nit:560 */
4777 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4779 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4780 if (!once_value_14
) {
4781 fra
.me
.REG
[6] = BOX_NativeString("#ifndef ");
4783 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4784 once_value_14
= fra
.me
.REG
[6];
4785 register_static_object(&once_value_14
);
4786 } else fra
.me
.REG
[6] = once_value_14
;
4787 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4789 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMType___friendly_null_getter(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4790 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4791 if (!once_value_15
) {
4792 fra
.me
.REG
[6] = BOX_NativeString("\n");
4794 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4795 once_value_15
= fra
.me
.REG
[6];
4796 register_static_object(&once_value_15
);
4797 } else fra
.me
.REG
[6] = once_value_15
;
4798 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4800 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4801 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4802 /* native_interface/frontier.nit:561 */
4803 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4805 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4806 if (!once_value_16
) {
4807 fra
.me
.REG
[6] = BOX_NativeString("#define ");
4809 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4810 once_value_16
= fra
.me
.REG
[6];
4811 register_static_object(&once_value_16
);
4812 } else fra
.me
.REG
[6] = once_value_16
;
4813 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4814 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4815 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMType___friendly_null_getter(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4816 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4817 if (!once_value_17
) {
4818 fra
.me
.REG
[6] = BOX_NativeString(" ");
4820 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4821 once_value_17
= fra
.me
.REG
[6];
4822 register_static_object(&once_value_17
);
4823 } else fra
.me
.REG
[6] = once_value_17
;
4824 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4825 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4827 if (!once_value_18
) {
4828 fra
.me
.REG
[6] = BOX_NativeString("\n");
4830 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4831 once_value_18
= fra
.me
.REG
[6];
4832 register_static_object(&once_value_18
);
4833 } else fra
.me
.REG
[6] = once_value_18
;
4834 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4835 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4836 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4837 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
4838 /* native_interface/frontier.nit:562 */
4839 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4840 if (!once_value_19
) {
4841 fra
.me
.REG
[3] = BOX_NativeString("#endif\n");
4843 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4844 once_value_19
= fra
.me
.REG
[3];
4845 register_static_object(&once_value_19
);
4846 } else fra
.me
.REG
[3] = once_value_19
;
4847 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4848 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4849 /* native_interface/frontier.nit:564 */
4850 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4852 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4853 if (!once_value_20
) {
4854 fra
.me
.REG
[6] = BOX_NativeString("");
4856 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4857 once_value_20
= fra
.me
.REG
[6];
4858 register_static_object(&once_value_20
);
4859 } else fra
.me
.REG
[6] = once_value_20
;
4860 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4861 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4863 if (!once_value_21
) {
4864 fra
.me
.REG
[6] = BOX_NativeString(" ");
4866 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4867 once_value_21
= fra
.me
.REG
[6];
4868 register_static_object(&once_value_21
);
4869 } else fra
.me
.REG
[6] = once_value_21
;
4870 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4871 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4872 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4873 if (!once_value_22
) {
4874 fra
.me
.REG
[6] = BOX_NativeString("();\n");
4876 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4877 once_value_22
= fra
.me
.REG
[6];
4878 register_static_object(&once_value_22
);
4879 } else fra
.me
.REG
[6] = once_value_22
;
4880 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4881 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4882 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4883 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
4884 /* native_interface/frontier.nit:566 */
4886 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4887 if (!once_value_23
) {
4888 fra
.me
.REG
[3] = BOX_NativeString("");
4890 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4891 once_value_23
= fra
.me
.REG
[3];
4892 register_static_object(&once_value_23
);
4893 } else fra
.me
.REG
[3] = once_value_23
;
4894 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4895 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4896 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4897 if (!once_value_24
) {
4898 fra
.me
.REG
[2] = BOX_NativeString(" ");
4900 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4901 once_value_24
= fra
.me
.REG
[2];
4902 register_static_object(&once_value_24
);
4903 } else fra
.me
.REG
[2] = once_value_24
;
4904 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4905 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4906 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4907 if (!once_value_25
) {
4908 fra
.me
.REG
[4] = BOX_NativeString("()");
4910 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4911 once_value_25
= fra
.me
.REG
[4];
4912 register_static_object(&once_value_25
);
4913 } else fra
.me
.REG
[4] = once_value_25
;
4914 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4915 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4916 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4917 fra
.me
.REG
[5] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[5]);
4918 /* native_interface/frontier.nit:567 */
4919 if (!once_value_26
) {
4920 fra
.me
.REG
[4] = BOX_NativeString("n");
4922 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4923 once_value_26
= fra
.me
.REG
[4];
4924 register_static_object(&once_value_26
);
4925 } else fra
.me
.REG
[4] = once_value_26
;
4926 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4927 REGB0
= TAG_Bool(1);
4928 CALL_native_interface___frontier___MMType___compile_new_local_ref(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4], fra
.me
.REG
[5], REGB0
);
4929 /* native_interface/frontier.nit:568 */
4930 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4931 if (!once_value_27
) {
4932 fra
.me
.REG
[2] = BOX_NativeString("return n;\n");
4933 REGB0
= TAG_Int(10);
4934 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4935 once_value_27
= fra
.me
.REG
[2];
4936 register_static_object(&once_value_27
);
4937 } else fra
.me
.REG
[2] = once_value_27
;
4938 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4939 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4940 /* native_interface/frontier.nit:569 */
4941 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4942 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4943 CALL_compiling_writer___Writer___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
4945 /* native_interface/frontier.nit:573 */
4947 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4948 if (!once_value_28
) {
4949 fra
.me
.REG
[2] = BOX_NativeString("");
4951 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4952 once_value_28
= fra
.me
.REG
[2];
4953 register_static_object(&once_value_28
);
4954 } else fra
.me
.REG
[2] = once_value_28
;
4955 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4956 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4957 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4958 fra
.me
.REG
[2] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4960 if (!once_value_29
) {
4961 fra
.me
.REG
[2] = BOX_NativeString("_incr_ref");
4963 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4964 once_value_29
= fra
.me
.REG
[2];
4965 register_static_object(&once_value_29
);
4966 } else fra
.me
.REG
[2] = once_value_29
;
4967 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4969 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4970 /* native_interface/frontier.nit:574 */
4971 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4973 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4974 if (!once_value_30
) {
4975 fra
.me
.REG
[3] = BOX_NativeString("#define ");
4977 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4978 once_value_30
= fra
.me
.REG
[3];
4979 register_static_object(&once_value_30
);
4980 } else fra
.me
.REG
[3] = once_value_30
;
4981 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4982 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4983 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4984 if (!once_value_31
) {
4985 fra
.me
.REG
[5] = BOX_NativeString("( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )\n");
4986 REGB0
= TAG_Int(54);
4987 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4988 once_value_31
= fra
.me
.REG
[5];
4989 register_static_object(&once_value_31
);
4990 } else fra
.me
.REG
[5] = once_value_31
;
4991 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4992 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4993 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4994 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4995 /* native_interface/frontier.nit:577 */
4997 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4998 if (!once_value_32
) {
4999 fra
.me
.REG
[2] = BOX_NativeString("");
5001 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
5002 once_value_32
= fra
.me
.REG
[2];
5003 register_static_object(&once_value_32
);
5004 } else fra
.me
.REG
[2] = once_value_32
;
5005 fra
.me
.REG
[2] = fra
.me
.REG
[2];
5006 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5007 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5008 fra
.me
.REG
[0] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5009 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
5010 if (!once_value_33
) {
5011 fra
.me
.REG
[0] = BOX_NativeString("_decr_ref");
5013 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5014 once_value_33
= fra
.me
.REG
[0];
5015 register_static_object(&once_value_33
);
5016 } else fra
.me
.REG
[0] = once_value_33
;
5017 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
5019 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5020 /* native_interface/frontier.nit:578 */
5021 fra
.me
.REG
[0] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5023 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5024 if (!once_value_34
) {
5025 fra
.me
.REG
[5] = BOX_NativeString("#define ");
5027 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5028 once_value_34
= fra
.me
.REG
[5];
5029 register_static_object(&once_value_34
);
5030 } else fra
.me
.REG
[5] = once_value_34
;
5031 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5032 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5033 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5034 if (!once_value_35
) {
5035 fra
.me
.REG
[4] = BOX_NativeString("( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )\n");
5036 REGB0
= TAG_Int(54);
5037 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5038 once_value_35
= fra
.me
.REG
[4];
5039 register_static_object(&once_value_35
);
5040 } else fra
.me
.REG
[4] = once_value_35
;
5041 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5042 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5043 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5044 CALL_compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
5045 /* native_interface/frontier.nit:580 */
5046 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5047 if (!once_value_36
) {
5048 fra
.me
.REG
[2] = BOX_NativeString("#endif\n");
5050 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
5051 once_value_36
= fra
.me
.REG
[2];
5052 register_static_object(&once_value_36
);
5053 } else fra
.me
.REG
[2] = once_value_36
;
5054 fra
.me
.REG
[2] = fra
.me
.REG
[2];
5055 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5057 stack_frame_head
= fra
.me
.prev
;
5060 static const char LOCATE_native_interface___frontier___MMType___compile_new_local_ref
[] = "frontier::MMType::compile_new_local_ref";
5061 void native_interface___frontier___MMType___compile_new_local_ref(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
5062 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5066 static val_t once_value_1
; /* Once value */
5067 static val_t once_value_2
; /* Once value */
5068 static val_t once_value_3
; /* Once value */
5069 static val_t once_value_4
; /* Once value */
5070 static val_t once_value_5
; /* Once value */
5071 static val_t once_value_6
; /* Once value */
5072 static val_t once_value_7
; /* Once value */
5073 static val_t once_value_8
; /* Once value */
5074 static val_t once_value_9
; /* Once value */
5075 static val_t once_value_10
; /* Once value */
5076 static val_t once_value_11
; /* Once value */
5077 static val_t once_value_12
; /* Once value */
5078 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5079 fra
.me
.file
= LOCATE_native_interface___frontier
;
5081 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_new_local_ref
;
5082 fra
.me
.has_broke
= 0;
5083 fra
.me
.REG_size
= 7;
5084 fra
.me
.nitni_local_ref_head
= NULL
;
5085 fra
.me
.REG
[0] = NIT_NULL
;
5086 fra
.me
.REG
[1] = NIT_NULL
;
5087 fra
.me
.REG
[2] = NIT_NULL
;
5088 fra
.me
.REG
[3] = NIT_NULL
;
5089 fra
.me
.REG
[4] = NIT_NULL
;
5090 fra
.me
.REG
[5] = NIT_NULL
;
5091 fra
.me
.REG
[6] = NIT_NULL
;
5096 /* native_interface/frontier.nit:586 */
5097 fra
.me
.REG
[3] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5098 /* native_interface/frontier.nit:588 */
5099 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5101 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
5102 if (!once_value_1
) {
5103 fra
.me
.REG
[6] = BOX_NativeString("");
5105 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
5106 once_value_1
= fra
.me
.REG
[6];
5107 register_static_object(&once_value_1
);
5108 } else fra
.me
.REG
[6] = once_value_1
;
5109 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5110 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5111 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5112 if (!once_value_2
) {
5113 fra
.me
.REG
[6] = BOX_NativeString(" ");
5115 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
5116 once_value_2
= fra
.me
.REG
[6];
5117 register_static_object(&once_value_2
);
5118 } else fra
.me
.REG
[6] = once_value_2
;
5119 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5120 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5121 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
5122 if (!once_value_3
) {
5123 fra
.me
.REG
[6] = BOX_NativeString(";\n");
5125 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
5126 once_value_3
= fra
.me
.REG
[6];
5127 register_static_object(&once_value_3
);
5128 } else fra
.me
.REG
[6] = once_value_3
;
5129 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5130 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5131 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5132 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5133 /* native_interface/frontier.nit:589 */
5134 REGB1
= CALL_native_interface___ni_metamodel___MMType___uses_nitni_ref(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5135 if (UNTAG_Bool(REGB1
)) {
5136 /* native_interface/frontier.nit:590 */
5137 fra
.me
.REG
[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5139 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
5140 if (!once_value_4
) {
5141 fra
.me
.REG
[4] = BOX_NativeString("");
5143 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
5144 once_value_4
= fra
.me
.REG
[4];
5145 register_static_object(&once_value_4
);
5146 } else fra
.me
.REG
[4] = once_value_4
;
5147 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5148 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5149 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
5150 if (!once_value_5
) {
5151 fra
.me
.REG
[4] = BOX_NativeString(" = malloc( sizeof( struct s_");
5152 REGB1
= TAG_Int(28);
5153 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
5154 once_value_5
= fra
.me
.REG
[4];
5155 register_static_object(&once_value_5
);
5156 } else fra
.me
.REG
[4] = once_value_5
;
5157 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5158 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5159 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5160 if (!once_value_6
) {
5161 fra
.me
.REG
[3] = BOX_NativeString(" ) );\n");
5163 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
5164 once_value_6
= fra
.me
.REG
[3];
5165 register_static_object(&once_value_6
);
5166 } else fra
.me
.REG
[3] = once_value_6
;
5167 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5168 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5169 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5170 CALL_compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
5171 /* native_interface/frontier.nit:591 */
5172 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5174 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
5175 if (!once_value_7
) {
5176 fra
.me
.REG
[3] = BOX_NativeString("");
5178 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
5179 once_value_7
= fra
.me
.REG
[3];
5180 register_static_object(&once_value_7
);
5181 } else fra
.me
.REG
[3] = once_value_7
;
5182 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5183 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5184 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5185 if (!once_value_8
) {
5186 fra
.me
.REG
[3] = BOX_NativeString("->ref.val = NIT_NULL;\n");
5187 REGB1
= TAG_Int(22);
5188 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
5189 once_value_8
= fra
.me
.REG
[3];
5190 register_static_object(&once_value_8
);
5191 } else fra
.me
.REG
[3] = once_value_8
;
5192 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5193 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5194 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5195 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
5196 /* native_interface/frontier.nit:592 */
5197 fra
.me
.REG
[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5199 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
5200 if (!once_value_9
) {
5201 fra
.me
.REG
[3] = BOX_NativeString("");
5203 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
5204 once_value_9
= fra
.me
.REG
[3];
5205 register_static_object(&once_value_9
);
5206 } else fra
.me
.REG
[3] = once_value_9
;
5207 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5208 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5209 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
5210 if (!once_value_10
) {
5211 fra
.me
.REG
[3] = BOX_NativeString("->ref.count = 0;\n");
5212 REGB1
= TAG_Int(17);
5213 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
5214 once_value_10
= fra
.me
.REG
[3];
5215 register_static_object(&once_value_10
);
5216 } else fra
.me
.REG
[3] = once_value_10
;
5217 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5218 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5219 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5220 CALL_compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
5221 /* native_interface/frontier.nit:593 */
5222 if (UNTAG_Bool(REGB0
)) {
5223 /* native_interface/frontier.nit:594 */
5224 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5226 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5227 if (!once_value_11
) {
5228 fra
.me
.REG
[0] = BOX_NativeString("nitni_local_ref_add( (struct nitni_ref *)");
5229 REGB0
= TAG_Int(41);
5230 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5231 once_value_11
= fra
.me
.REG
[0];
5232 register_static_object(&once_value_11
);
5233 } else fra
.me
.REG
[0] = once_value_11
;
5234 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5235 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
5236 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
5237 if (!once_value_12
) {
5238 fra
.me
.REG
[1] = BOX_NativeString(" );\n");
5240 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
5241 once_value_12
= fra
.me
.REG
[1];
5242 register_static_object(&once_value_12
);
5243 } else fra
.me
.REG
[1] = once_value_12
;
5244 fra
.me
.REG
[1] = fra
.me
.REG
[1];
5245 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
5246 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5247 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5250 stack_frame_head
= fra
.me
.prev
;
5253 static const char LOCATE_native_interface___frontier___MMType___compile_stub_local_ref
[] = "frontier::MMType::compile_stub_local_ref";
5254 void native_interface___frontier___MMType___compile_stub_local_ref(val_t p0
, val_t p1
, val_t p2
){
5255 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5258 static val_t once_value_1
; /* Once value */
5259 static val_t once_value_2
; /* Once value */
5260 static val_t once_value_3
; /* Once value */
5261 static val_t once_value_4
; /* Once value */
5262 static val_t once_value_5
; /* Once value */
5263 static val_t once_value_6
; /* Once value */
5264 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5265 fra
.me
.file
= LOCATE_native_interface___frontier
;
5267 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_stub_local_ref
;
5268 fra
.me
.has_broke
= 0;
5269 fra
.me
.REG_size
= 7;
5270 fra
.me
.nitni_local_ref_head
= NULL
;
5271 fra
.me
.REG
[0] = NIT_NULL
;
5272 fra
.me
.REG
[1] = NIT_NULL
;
5273 fra
.me
.REG
[2] = NIT_NULL
;
5274 fra
.me
.REG
[3] = NIT_NULL
;
5275 fra
.me
.REG
[4] = NIT_NULL
;
5276 fra
.me
.REG
[5] = NIT_NULL
;
5277 fra
.me
.REG
[6] = NIT_NULL
;
5281 /* native_interface/frontier.nit:603 */
5282 fra
.me
.REG
[3] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5283 /* native_interface/frontier.nit:604 */
5284 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5286 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5287 if (!once_value_1
) {
5288 fra
.me
.REG
[6] = BOX_NativeString("");
5290 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5291 once_value_1
= fra
.me
.REG
[6];
5292 register_static_object(&once_value_1
);
5293 } else fra
.me
.REG
[6] = once_value_1
;
5294 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5295 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5296 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5297 if (!once_value_2
) {
5298 fra
.me
.REG
[6] = BOX_NativeString(" ");
5300 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5301 once_value_2
= fra
.me
.REG
[6];
5302 register_static_object(&once_value_2
);
5303 } else fra
.me
.REG
[6] = once_value_2
;
5304 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5305 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5306 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
5307 if (!once_value_3
) {
5308 fra
.me
.REG
[6] = BOX_NativeString(";\n");
5310 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5311 once_value_3
= fra
.me
.REG
[6];
5312 register_static_object(&once_value_3
);
5313 } else fra
.me
.REG
[6] = once_value_3
;
5314 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5315 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5316 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5317 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5318 /* native_interface/frontier.nit:605 */
5319 REGB0
= CALL_native_interface___ni_metamodel___MMType___uses_nitni_ref(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5320 if (UNTAG_Bool(REGB0
)) {
5321 /* native_interface/frontier.nit:606 */
5322 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5324 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5325 if (!once_value_4
) {
5326 fra
.me
.REG
[5] = BOX_NativeString("");
5328 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5329 once_value_4
= fra
.me
.REG
[5];
5330 register_static_object(&once_value_4
);
5331 } else fra
.me
.REG
[5] = once_value_4
;
5332 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5333 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
5334 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5335 if (!once_value_5
) {
5336 fra
.me
.REG
[1] = BOX_NativeString(" = (");
5338 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
5339 once_value_5
= fra
.me
.REG
[1];
5340 register_static_object(&once_value_5
);
5341 } else fra
.me
.REG
[1] = once_value_5
;
5342 fra
.me
.REG
[1] = fra
.me
.REG
[1];
5343 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5344 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5345 if (!once_value_6
) {
5346 fra
.me
.REG
[3] = BOX_NativeString(")NULL;\n");
5348 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5349 once_value_6
= fra
.me
.REG
[3];
5350 register_static_object(&once_value_6
);
5351 } else fra
.me
.REG
[3] = once_value_6
;
5352 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5354 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5355 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
5357 stack_frame_head
= fra
.me
.prev
;
5360 static const char LOCATE_native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier
[] = "frontier::MMExplicitImport::compile_friendly_to_frontier";
5361 void native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier(val_t p0
, val_t p1
){
5362 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
5367 static val_t once_value_1
; /* Once value */
5368 static val_t once_value_2
; /* Once value */
5369 static val_t once_value_3
; /* Once value */
5370 static val_t once_value_4
; /* Once value */
5371 static val_t once_value_5
; /* Once value */
5372 static val_t once_value_6
; /* Once value */
5373 static val_t once_value_7
; /* Once value */
5374 static val_t once_value_8
; /* Once value */
5375 static val_t once_value_9
; /* Once value */
5376 static val_t once_value_10
; /* Once value */
5377 static val_t once_value_11
; /* Once value */
5378 static val_t once_value_12
; /* Once value */
5379 static val_t once_value_14
; /* Once value */
5380 static val_t once_value_15
; /* Once value */
5381 static val_t once_value_16
; /* Once value */
5382 static val_t once_value_17
; /* Once value */
5383 static val_t once_value_18
; /* Once value */
5384 static val_t once_value_19
; /* Once value */
5385 static val_t once_value_20
; /* Once value */
5386 static val_t once_value_21
; /* Once value */
5387 static val_t once_value_23
; /* Once value */
5388 static val_t once_value_24
; /* Once value */
5389 static val_t once_value_25
; /* Once value */
5390 static val_t once_value_26
; /* Once value */
5391 static val_t once_value_27
; /* Once value */
5392 static val_t once_value_28
; /* Once value */
5393 static val_t once_value_29
; /* Once value */
5394 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5395 fra
.me
.file
= LOCATE_native_interface___frontier
;
5397 fra
.me
.meth
= LOCATE_native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier
;
5398 fra
.me
.has_broke
= 0;
5399 fra
.me
.REG_size
= 8;
5400 fra
.me
.nitni_local_ref_head
= NULL
;
5401 fra
.me
.REG
[0] = NIT_NULL
;
5402 fra
.me
.REG
[1] = NIT_NULL
;
5403 fra
.me
.REG
[2] = NIT_NULL
;
5404 fra
.me
.REG
[3] = NIT_NULL
;
5405 fra
.me
.REG
[4] = NIT_NULL
;
5406 fra
.me
.REG
[5] = NIT_NULL
;
5407 fra
.me
.REG
[6] = NIT_NULL
;
5408 fra
.me
.REG
[7] = NIT_NULL
;
5411 /* native_interface/frontier.nit:615 */
5412 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5414 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5415 if (!once_value_1
) {
5416 fra
.me
.REG
[4] = BOX_NativeString("/* friendly for ");
5417 REGB0
= TAG_Int(16);
5418 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5419 once_value_1
= fra
.me
.REG
[4];
5420 register_static_object(&once_value_1
);
5421 } else fra
.me
.REG
[4] = once_value_1
;
5422 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5423 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5424 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5425 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5426 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5427 if (!once_value_2
) {
5428 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
5430 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5431 once_value_2
= fra
.me
.REG
[4];
5432 register_static_object(&once_value_2
);
5433 } else fra
.me
.REG
[4] = once_value_2
;
5434 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5435 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5436 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5437 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5438 /* native_interface/frontier.nit:616 */
5439 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5441 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5442 if (!once_value_3
) {
5443 fra
.me
.REG
[4] = BOX_NativeString("");
5445 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5446 once_value_3
= fra
.me
.REG
[4];
5447 register_static_object(&once_value_3
);
5448 } else fra
.me
.REG
[4] = once_value_3
;
5449 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5450 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5451 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5452 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5453 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5454 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMMethod___frontier_csignature_from(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[6]);
5455 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5456 if (!once_value_4
) {
5457 fra
.me
.REG
[6] = BOX_NativeString(";\n");
5459 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5460 once_value_4
= fra
.me
.REG
[6];
5461 register_static_object(&once_value_4
);
5462 } else fra
.me
.REG
[6] = once_value_4
;
5463 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5464 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5465 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5466 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5467 /* native_interface/frontier.nit:620 */
5468 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5470 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5471 if (!once_value_5
) {
5472 fra
.me
.REG
[6] = BOX_NativeString("#ifndef ");
5474 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5475 once_value_5
= fra
.me
.REG
[6];
5476 register_static_object(&once_value_5
);
5477 } else fra
.me
.REG
[6] = once_value_5
;
5478 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5479 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
5480 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5481 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5482 fra
.me
.REG
[5] = CALL_primitive_info___MMMethod___friendly_extern_name(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
5483 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5484 if (!once_value_6
) {
5485 fra
.me
.REG
[5] = BOX_NativeString("\n");
5487 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5488 once_value_6
= fra
.me
.REG
[5];
5489 register_static_object(&once_value_6
);
5490 } else fra
.me
.REG
[5] = once_value_6
;
5491 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5492 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5493 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5494 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5495 /* native_interface/frontier.nit:621 */
5496 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5498 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5499 if (!once_value_7
) {
5500 fra
.me
.REG
[5] = BOX_NativeString("#define ");
5502 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5503 once_value_7
= fra
.me
.REG
[5];
5504 register_static_object(&once_value_7
);
5505 } else fra
.me
.REG
[5] = once_value_7
;
5506 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5507 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5508 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5509 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5510 fra
.me
.REG
[6] = CALL_primitive_info___MMMethod___friendly_extern_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5511 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5512 if (!once_value_8
) {
5513 fra
.me
.REG
[6] = BOX_NativeString(" ");
5515 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5516 once_value_8
= fra
.me
.REG
[6];
5517 register_static_object(&once_value_8
);
5518 } else fra
.me
.REG
[6] = once_value_8
;
5519 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5520 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5521 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5522 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5523 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5524 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMMethod___local_friendly_name_from(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5], fra
.me
.REG
[4]);
5525 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5526 if (!once_value_9
) {
5527 fra
.me
.REG
[4] = BOX_NativeString("\n");
5529 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5530 once_value_9
= fra
.me
.REG
[4];
5531 register_static_object(&once_value_9
);
5532 } else fra
.me
.REG
[4] = once_value_9
;
5533 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5534 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5535 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5536 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5537 /* native_interface/frontier.nit:622 */
5538 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5539 if (!once_value_10
) {
5540 fra
.me
.REG
[3] = BOX_NativeString("#endif\n");
5542 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5543 once_value_10
= fra
.me
.REG
[3];
5544 register_static_object(&once_value_10
);
5545 } else fra
.me
.REG
[3] = once_value_10
;
5546 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5547 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5548 /* native_interface/frontier.nit:625 */
5549 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5551 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5552 if (!once_value_11
) {
5553 fra
.me
.REG
[4] = BOX_NativeString("/* friendly for ");
5554 REGB0
= TAG_Int(16);
5555 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5556 once_value_11
= fra
.me
.REG
[4];
5557 register_static_object(&once_value_11
);
5558 } else fra
.me
.REG
[4] = once_value_11
;
5559 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5560 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5561 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5562 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5563 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5564 if (!once_value_12
) {
5565 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
5567 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5568 once_value_12
= fra
.me
.REG
[4];
5569 register_static_object(&once_value_12
);
5570 } else fra
.me
.REG
[4] = once_value_12
;
5571 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5572 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5573 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5574 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5575 /* native_interface/frontier.nit:627 */
5576 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5577 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5578 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5579 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMMethod___frontier_csignature_from(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5580 fra
.me
.REG
[4] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[4]);
5581 /* native_interface/frontier.nit:630 */
5582 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
5583 /* native_interface/frontier.nit:631 */
5584 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5585 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5586 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5587 if (UNTAG_Bool(REGB0
)) {
5588 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5589 fra
.me
.REG
[2] = CALL_native_interface___frontier___MMSignature___recv_ni_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5590 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5592 /* native_interface/frontier.nit:632 */
5593 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5594 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5595 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5596 /* ../lib/standard/collection/array.nit:266 */
5597 fra
.me
.REG
[2] = fra
.me
.REG
[3];
5598 /* ../lib/standard/collection/array.nit:269 */
5600 /* ../lib/standard/collection/array.nit:270 */
5601 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
5602 if (UNTAG_Bool(REGB1
)) {
5604 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
5606 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
5607 /* ../lib/standard/collection/array.nit:271 */
5608 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
5609 /* ../lib/standard/collection/array.nit:272 */
5611 /* ../lib/standard/collection/array.nit:24 */
5612 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
5613 if (UNTAG_Bool(REGB1
)) {
5615 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5617 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
5618 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
5619 if (UNTAG_Bool(REGB2
)) {
5621 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5623 /* ../lib/standard/kernel.nit:235 */
5624 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5625 /* ../lib/standard/collection/array.nit:272 */
5626 if (UNTAG_Bool(REGB1
)) {
5627 /* ../lib/standard/collection/array.nit:273 */
5628 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5629 if (UNTAG_Bool(REGB1
)) {
5630 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
5632 /* ../lib/standard/collection/array.nit:718 */
5633 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
5634 /* native_interface/frontier.nit:634 */
5635 CALL_native_interface___frontier___NiVariable___prepare_for_nit(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
5636 /* ../lib/standard/collection/array.nit:274 */
5638 /* ../lib/standard/kernel.nit:238 */
5639 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5640 /* ../lib/standard/collection/array.nit:274 */
5643 /* ../lib/standard/collection/array.nit:272 */
5648 /* native_interface/frontier.nit:637 */
5649 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5650 fra
.me
.REG
[5] = CALL_native_interface___frontier___MMSignature___return_ni_variable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5651 /* native_interface/frontier.nit:638 */
5652 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5653 if (UNTAG_Bool(REGB0
)) {
5655 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5656 if (UNTAG_Bool(REGB1
)) {
5657 REGB1
= TAG_Bool(0);
5660 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5664 if (UNTAG_Bool(REGB0
)) {
5665 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5666 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5668 REGB1
= TAG_Bool(0);
5671 if (UNTAG_Bool(REGB0
)) {
5672 /* native_interface/frontier.nit:639 */
5673 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5674 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5675 fra
.me
.REG
[2] = NEW_ReturnVariable_native_interface___frontier___ReturnVariable___init(fra
.me
.REG
[2]);
5676 fra
.me
.REG
[5] = fra
.me
.REG
[2];
5678 /* native_interface/frontier.nit:641 */
5679 fra
.me
.REG
[2] = NEW_Buffer_standard___string___Buffer___init();
5680 /* native_interface/frontier.nit:642 */
5681 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5682 if (UNTAG_Bool(REGB0
)) {
5684 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5685 if (UNTAG_Bool(REGB1
)) {
5686 REGB1
= TAG_Bool(0);
5689 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5693 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5694 if (UNTAG_Bool(REGB0
)) {
5695 /* native_interface/frontier.nit:643 */
5696 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5697 if (UNTAG_Bool(REGB0
)) {
5698 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 643);
5700 CALL_native_interface___frontier___NiVariable___prepare_for_c(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5701 /* native_interface/frontier.nit:644 */
5703 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5704 if (!once_value_14
) {
5705 fra
.me
.REG
[7] = BOX_NativeString("");
5707 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5708 once_value_14
= fra
.me
.REG
[7];
5709 register_static_object(&once_value_14
);
5710 } else fra
.me
.REG
[7] = once_value_14
;
5711 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5712 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5713 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5714 if (UNTAG_Bool(REGB0
)) {
5715 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 644);
5717 fra
.me
.REG
[7] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5718 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5719 if (!once_value_15
) {
5720 fra
.me
.REG
[7] = BOX_NativeString(" = ");
5722 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5723 once_value_15
= fra
.me
.REG
[7];
5724 register_static_object(&once_value_15
);
5725 } else fra
.me
.REG
[7] = once_value_15
;
5726 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5727 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5728 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5729 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5731 /* native_interface/frontier.nit:648 */
5732 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5733 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5734 if (UNTAG_Bool(REGB0
)) {
5735 /* native_interface/frontier.nit:649 */
5737 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5738 if (!once_value_16
) {
5739 fra
.me
.REG
[7] = BOX_NativeString("NEW_");
5741 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5742 once_value_16
= fra
.me
.REG
[7];
5743 register_static_object(&once_value_16
);
5744 } else fra
.me
.REG
[7] = once_value_16
;
5745 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5746 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5747 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5748 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5749 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5750 if (!once_value_17
) {
5751 fra
.me
.REG
[7] = BOX_NativeString("_");
5753 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5754 once_value_17
= fra
.me
.REG
[7];
5755 register_static_object(&once_value_17
);
5756 } else fra
.me
.REG
[7] = once_value_17
;
5757 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5758 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5759 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5760 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5761 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5762 fra
.me
.REG
[7] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5763 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5764 if (!once_value_18
) {
5765 fra
.me
.REG
[7] = BOX_NativeString("");
5767 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5768 once_value_18
= fra
.me
.REG
[7];
5769 register_static_object(&once_value_18
);
5770 } else fra
.me
.REG
[7] = once_value_18
;
5771 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5773 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5774 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5776 /* native_interface/frontier.nit:651 */
5778 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5779 if (!once_value_19
) {
5780 fra
.me
.REG
[7] = BOX_NativeString("");
5782 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5783 once_value_19
= fra
.me
.REG
[7];
5784 register_static_object(&once_value_19
);
5785 } else fra
.me
.REG
[7] = once_value_19
;
5786 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5787 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5788 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5789 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5790 fra
.me
.REG
[7] = CALL_compiling___compiling_base___MMGlobalProperty___meth_call(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5791 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5792 if (!once_value_20
) {
5793 fra
.me
.REG
[7] = BOX_NativeString("( ");
5795 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5796 once_value_20
= fra
.me
.REG
[7];
5797 register_static_object(&once_value_20
);
5798 } else fra
.me
.REG
[7] = once_value_20
;
5799 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5801 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5802 fra
.me
.REG
[0] = CALL_native_interface___frontier___MMSignature___recv_ni_variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5803 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___as_arg_to_nit(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5804 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
5805 if (!once_value_21
) {
5806 fra
.me
.REG
[0] = BOX_NativeString(" )");
5808 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5809 once_value_21
= fra
.me
.REG
[0];
5810 register_static_object(&once_value_21
);
5811 } else fra
.me
.REG
[0] = once_value_21
;
5812 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5813 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
5814 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5815 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5817 /* native_interface/frontier.nit:654 */
5818 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
5819 /* ../lib/standard/collection/array.nit:269 */
5821 /* ../lib/standard/collection/array.nit:270 */
5822 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
5823 if (UNTAG_Bool(REGB1
)) {
5825 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
5827 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
5828 /* ../lib/standard/collection/array.nit:271 */
5829 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
5830 /* ../lib/standard/collection/array.nit:272 */
5832 /* ../lib/standard/collection/array.nit:24 */
5833 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
5834 if (UNTAG_Bool(REGB1
)) {
5836 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5838 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
5839 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
5840 if (UNTAG_Bool(REGB2
)) {
5842 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5844 /* ../lib/standard/kernel.nit:235 */
5845 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5846 /* ../lib/standard/collection/array.nit:272 */
5847 if (UNTAG_Bool(REGB1
)) {
5848 /* ../lib/standard/collection/array.nit:273 */
5849 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5850 if (UNTAG_Bool(REGB1
)) {
5851 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
5853 /* ../lib/standard/collection/array.nit:718 */
5854 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB0
)];
5855 /* native_interface/frontier.nit:655 */
5856 fra
.me
.REG
[7] = CALL_native_interface___frontier___NiVariable___as_arg_to_nit(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5857 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5858 /* ../lib/standard/collection/array.nit:274 */
5860 /* ../lib/standard/kernel.nit:238 */
5861 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5862 /* ../lib/standard/collection/array.nit:274 */
5865 /* ../lib/standard/collection/array.nit:272 */
5870 /* native_interface/frontier.nit:657 */
5872 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5873 if (!once_value_23
) {
5874 fra
.me
.REG
[3] = BOX_NativeString("( ");
5876 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5877 once_value_23
= fra
.me
.REG
[3];
5878 register_static_object(&once_value_23
);
5879 } else fra
.me
.REG
[3] = once_value_23
;
5880 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5881 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5882 if (!once_value_24
) {
5883 fra
.me
.REG
[3] = BOX_NativeString(", ");
5885 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5886 once_value_24
= fra
.me
.REG
[3];
5887 register_static_object(&once_value_24
);
5888 } else fra
.me
.REG
[3] = once_value_24
;
5889 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5890 fra
.me
.REG
[3] = CALL_standard___string___Collection___join(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5891 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5892 if (!once_value_25
) {
5893 fra
.me
.REG
[3] = BOX_NativeString(" );\n");
5895 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5896 once_value_25
= fra
.me
.REG
[3];
5897 register_static_object(&once_value_25
);
5898 } else fra
.me
.REG
[3] = once_value_25
;
5899 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5900 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5901 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5902 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
5903 /* native_interface/frontier.nit:659 */
5904 fra
.me
.REG
[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5905 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5906 CALL_compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
5907 /* native_interface/frontier.nit:662 */
5908 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5909 if (UNTAG_Bool(REGB0
)) {
5911 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5912 if (UNTAG_Bool(REGB1
)) {
5913 REGB1
= TAG_Bool(0);
5916 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5920 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5921 if (UNTAG_Bool(REGB0
)) {
5922 /* native_interface/frontier.nit:663 */
5923 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5925 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5926 if (!once_value_26
) {
5927 fra
.me
.REG
[3] = BOX_NativeString("");
5929 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5930 once_value_26
= fra
.me
.REG
[3];
5931 register_static_object(&once_value_26
);
5932 } else fra
.me
.REG
[3] = once_value_26
;
5933 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5934 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5935 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5936 if (UNTAG_Bool(REGB0
)) {
5937 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 663);
5939 fra
.me
.REG
[3] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5940 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5941 if (UNTAG_Bool(REGB0
)) {
5942 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 663);
5944 fra
.me
.REG
[6] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5945 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5946 if (UNTAG_Bool(REGB0
)) {
5947 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 663);
5949 fra
.me
.REG
[7] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5950 fra
.me
.REG
[7] = CALL_native_interface___ni_metamodel___MMType___assign_to_friendly(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6], fra
.me
.REG
[7]);
5951 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[7]);
5952 if (!once_value_27
) {
5953 fra
.me
.REG
[7] = BOX_NativeString(";\n");
5955 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5956 once_value_27
= fra
.me
.REG
[7];
5957 register_static_object(&once_value_27
);
5958 } else fra
.me
.REG
[7] = once_value_27
;
5959 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5960 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[7]);
5961 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5962 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
5963 /* native_interface/frontier.nit:664 */
5964 fra
.me
.REG
[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5966 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5967 if (!once_value_28
) {
5968 fra
.me
.REG
[7] = BOX_NativeString("return ");
5970 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5971 once_value_28
= fra
.me
.REG
[7];
5972 register_static_object(&once_value_28
);
5973 } else fra
.me
.REG
[7] = once_value_28
;
5974 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5975 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[7]);
5976 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5977 if (UNTAG_Bool(REGB0
)) {
5978 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 664);
5980 fra
.me
.REG
[5] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5981 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5982 if (!once_value_29
) {
5983 fra
.me
.REG
[5] = BOX_NativeString(";\n");
5985 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5986 once_value_29
= fra
.me
.REG
[5];
5987 register_static_object(&once_value_29
);
5988 } else fra
.me
.REG
[5] = once_value_29
;
5989 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5990 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5991 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5992 CALL_compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
5994 /* native_interface/frontier.nit:667 */
5995 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5996 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5997 CALL_compiling_writer___Writer___append(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5998 stack_frame_head
= fra
.me
.prev
;
6001 static const char LOCATE_native_interface___frontier___MMExplicitImport___hash
[] = "frontier::MMExplicitImport::(hash::Object::hash)";
6002 val_t
native_interface___frontier___MMExplicitImport___hash(val_t p0
){
6003 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6007 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6008 fra
.me
.file
= LOCATE_native_interface___frontier
;
6010 fra
.me
.meth
= LOCATE_native_interface___frontier___MMExplicitImport___hash
;
6011 fra
.me
.has_broke
= 0;
6012 fra
.me
.REG_size
= 2;
6013 fra
.me
.nitni_local_ref_head
= NULL
;
6014 fra
.me
.REG
[0] = NIT_NULL
;
6015 fra
.me
.REG
[1] = NIT_NULL
;
6017 /* native_interface/frontier.nit:672 */
6018 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6019 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6020 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6021 REGB0
= CALL_standard___hash___Object___hash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6022 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6023 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6024 REGB1
= CALL_standard___hash___Object___hash(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6025 /* ../lib/standard/kernel.nit:238 */
6026 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6027 /* native_interface/frontier.nit:672 */
6030 stack_frame_head
= fra
.me
.prev
;
6033 static const char LOCATE_native_interface___frontier___MMExplicitImport_____eqeq
[] = "frontier::MMExplicitImport::(kernel::Object::==)";
6034 val_t
native_interface___frontier___MMExplicitImport_____eqeq(val_t p0
, val_t p1
){
6035 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6039 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6040 fra
.me
.file
= LOCATE_native_interface___frontier
;
6042 fra
.me
.meth
= LOCATE_native_interface___frontier___MMExplicitImport_____eqeq
;
6043 fra
.me
.has_broke
= 0;
6044 fra
.me
.REG_size
= 4;
6045 fra
.me
.nitni_local_ref_head
= NULL
;
6046 fra
.me
.REG
[0] = NIT_NULL
;
6047 fra
.me
.REG
[1] = NIT_NULL
;
6048 fra
.me
.REG
[2] = NIT_NULL
;
6049 fra
.me
.REG
[3] = NIT_NULL
;
6052 /* native_interface/frontier.nit:676 */
6053 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___abstractmetamodel___MMExplicitImport
, ID_metamodel___abstractmetamodel___MMExplicitImport
)) /*cast MMExplicitImport*/;
6054 if (UNTAG_Bool(REGB0
)) {
6055 /* native_interface/frontier.nit:677 */
6056 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6057 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6058 if (UNTAG_Bool(REGB0
)) {
6059 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 677);
6061 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6062 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
6063 if (UNTAG_Bool(REGB0
)) {
6065 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6069 /* native_interface/frontier.nit:676 */
6070 REGB1
= TAG_Bool(0);
6073 if (UNTAG_Bool(REGB0
)) {
6074 /* native_interface/frontier.nit:677 */
6075 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6076 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6077 if (UNTAG_Bool(REGB0
)) {
6078 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 677);
6080 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6081 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[1]));
6082 if (UNTAG_Bool(REGB0
)) {
6084 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6088 /* native_interface/frontier.nit:676 */
6089 REGB1
= TAG_Bool(0);
6094 stack_frame_head
= fra
.me
.prev
;