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 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
96 /* native_interface/frontier.nit:38 */
99 if (UNTAG_Bool(REGB0
)) {
102 /* native_interface/frontier.nit:40 */
103 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
104 REGB1
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
105 /* native_interface/frontier.nit:38 */
110 stack_frame_head
= fra
.me
.prev
;
113 static const char LOCATE_native_interface___frontier___NiVariable___prepare_for_nit
[] = "frontier::NiVariable::prepare_for_nit";
114 void native_interface___frontier___NiVariable___prepare_for_nit(val_t p0
, val_t p1
){
115 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
118 static val_t once_value_1
; /* Once value */
119 static val_t once_value_2
; /* Once value */
120 static val_t once_value_3
; /* Once value */
121 static val_t once_value_4
; /* Once value */
122 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
123 fra
.me
.file
= LOCATE_native_interface___frontier
;
125 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___prepare_for_nit
;
126 fra
.me
.has_broke
= 0;
128 fra
.me
.nitni_local_ref_head
= NULL
;
129 fra
.me
.REG
[0] = NIT_NULL
;
130 fra
.me
.REG
[1] = NIT_NULL
;
131 fra
.me
.REG
[2] = NIT_NULL
;
132 fra
.me
.REG
[3] = NIT_NULL
;
133 fra
.me
.REG
[4] = NIT_NULL
;
136 /* native_interface/frontier.nit:46 */
137 REGB0
= CALL_native_interface___frontier___NiVariable___needs_preparation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
138 if (UNTAG_Bool(REGB0
)) {
139 /* native_interface/frontier.nit:47 */
140 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
142 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
144 fra
.me
.REG
[4] = BOX_NativeString("val_t ");
146 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
147 once_value_1
= fra
.me
.REG
[4];
148 register_static_object(&once_value_1
);
149 } else fra
.me
.REG
[4] = once_value_1
;
150 fra
.me
.REG
[4] = fra
.me
.REG
[4];
151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
152 fra
.me
.REG
[4] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
153 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
155 fra
.me
.REG
[4] = BOX_NativeString(";\n");
157 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
158 once_value_2
= fra
.me
.REG
[4];
159 register_static_object(&once_value_2
);
160 } else fra
.me
.REG
[4] = once_value_2
;
161 fra
.me
.REG
[4] = fra
.me
.REG
[4];
162 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
163 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
164 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
165 /* native_interface/frontier.nit:48 */
166 fra
.me
.REG
[1] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
168 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
170 fra
.me
.REG
[2] = BOX_NativeString("");
172 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
173 once_value_3
= fra
.me
.REG
[2];
174 register_static_object(&once_value_3
);
175 } else fra
.me
.REG
[2] = once_value_3
;
176 fra
.me
.REG
[2] = fra
.me
.REG
[2];
177 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
178 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
179 fra
.me
.REG
[4] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
180 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
181 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]);
182 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
184 fra
.me
.REG
[0] = BOX_NativeString(";\n");
186 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
187 once_value_4
= fra
.me
.REG
[0];
188 register_static_object(&once_value_4
);
189 } else fra
.me
.REG
[0] = once_value_4
;
190 fra
.me
.REG
[0] = fra
.me
.REG
[0];
191 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
192 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
193 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
195 stack_frame_head
= fra
.me
.prev
;
198 static const char LOCATE_native_interface___frontier___NiVariable___prepare_for_c
[] = "frontier::NiVariable::prepare_for_c";
199 void native_interface___frontier___NiVariable___prepare_for_c(val_t p0
, val_t p1
){
200 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
203 static val_t once_value_1
; /* Once value */
204 static val_t once_value_2
; /* Once value */
205 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
206 fra
.me
.file
= LOCATE_native_interface___frontier
;
208 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___prepare_for_c
;
209 fra
.me
.has_broke
= 0;
211 fra
.me
.nitni_local_ref_head
= NULL
;
212 fra
.me
.REG
[0] = NIT_NULL
;
213 fra
.me
.REG
[1] = NIT_NULL
;
214 fra
.me
.REG
[2] = NIT_NULL
;
215 fra
.me
.REG
[3] = NIT_NULL
;
216 fra
.me
.REG
[4] = NIT_NULL
;
219 /* native_interface/frontier.nit:54 */
220 REGB0
= CALL_native_interface___frontier___NiVariable___needs_preparation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
221 if (UNTAG_Bool(REGB0
)) {
222 /* native_interface/frontier.nit:55 */
223 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
224 fra
.me
.REG
[3] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
225 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_native_interface___frontier___ReturnVariable
, ID_native_interface___frontier___ReturnVariable
)) /*cast ReturnVariable*/;
226 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
227 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
);
228 /* native_interface/frontier.nit:56 */
229 fra
.me
.REG
[1] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
231 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
233 fra
.me
.REG
[2] = BOX_NativeString("");
235 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
236 once_value_1
= fra
.me
.REG
[2];
237 register_static_object(&once_value_1
);
238 } else fra
.me
.REG
[2] = once_value_1
;
239 fra
.me
.REG
[2] = fra
.me
.REG
[2];
240 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
241 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
242 fra
.me
.REG
[4] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
243 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
244 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]);
245 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
247 fra
.me
.REG
[0] = BOX_NativeString(";\n");
249 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
250 once_value_2
= fra
.me
.REG
[0];
251 register_static_object(&once_value_2
);
252 } else fra
.me
.REG
[0] = once_value_2
;
253 fra
.me
.REG
[0] = fra
.me
.REG
[0];
254 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
255 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
256 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
258 stack_frame_head
= fra
.me
.prev
;
261 static const char LOCATE_native_interface___frontier___NiVariable___as_arg_to_nit
[] = "frontier::NiVariable::as_arg_to_nit";
262 val_t
native_interface___frontier___NiVariable___as_arg_to_nit(val_t p0
){
263 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
267 static val_t once_value_2
; /* Once value */
268 static val_t once_value_3
; /* Once value */
269 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
270 fra
.me
.file
= LOCATE_native_interface___frontier
;
272 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___as_arg_to_nit
;
273 fra
.me
.has_broke
= 0;
275 fra
.me
.nitni_local_ref_head
= NULL
;
276 fra
.me
.REG
[0] = NIT_NULL
;
277 fra
.me
.REG
[1] = NIT_NULL
;
278 fra
.me
.REG
[2] = NIT_NULL
;
279 fra
.me
.REG
[3] = NIT_NULL
;
281 /* native_interface/frontier.nit:63 */
282 REGB0
= CALL_native_interface___frontier___NiVariable___needs_preparation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
283 if (UNTAG_Bool(REGB0
)) {
284 /* native_interface/frontier.nit:64 */
285 fra
.me
.REG
[1] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
288 /* native_interface/frontier.nit:65 */
289 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
290 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
291 fra
.me
.REG
[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
292 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
293 if (UNTAG_Bool(REGB0
)) {
295 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
296 if (UNTAG_Bool(REGB1
)) {
300 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
304 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
305 if (UNTAG_Bool(REGB0
)) {
308 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
309 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
310 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
311 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
314 if (UNTAG_Bool(REGB0
)) {
315 /* native_interface/frontier.nit:66 */
316 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
317 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
318 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
320 /* native_interface/frontier.nit:65 */
324 if (UNTAG_Bool(REGB0
)) {
325 /* native_interface/frontier.nit:67 */
326 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
327 fra
.me
.REG
[3] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
328 fra
.me
.REG
[3] = CALL_primitive_info___MMType___boxtype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
329 fra
.me
.REG
[1] = fra
.me
.REG
[3];
332 /* native_interface/frontier.nit:69 */
334 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
336 fra
.me
.REG
[2] = BOX_NativeString("");
338 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
339 once_value_2
= fra
.me
.REG
[2];
340 register_static_object(&once_value_2
);
341 } else fra
.me
.REG
[2] = once_value_2
;
342 fra
.me
.REG
[2] = fra
.me
.REG
[2];
343 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
344 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
347 fra
.me
.REG
[0] = BOX_NativeString("->ref.val");
349 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
350 once_value_3
= fra
.me
.REG
[0];
351 register_static_object(&once_value_3
);
352 } else fra
.me
.REG
[0] = once_value_3
;
353 fra
.me
.REG
[0] = fra
.me
.REG
[0];
354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
355 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
356 fra
.me
.REG
[1] = fra
.me
.REG
[3];
361 stack_frame_head
= fra
.me
.prev
;
362 return fra
.me
.REG
[1];
364 static const char LOCATE_native_interface___frontier___NiVariable___as_arg_to_c
[] = "frontier::NiVariable::as_arg_to_c";
365 val_t
native_interface___frontier___NiVariable___as_arg_to_c(val_t p0
){
366 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
369 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
370 fra
.me
.file
= LOCATE_native_interface___frontier
;
372 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___as_arg_to_c
;
373 fra
.me
.has_broke
= 0;
375 fra
.me
.nitni_local_ref_head
= NULL
;
376 fra
.me
.REG
[0] = NIT_NULL
;
377 fra
.me
.REG
[1] = NIT_NULL
;
378 fra
.me
.REG
[2] = NIT_NULL
;
380 /* native_interface/frontier.nit:76 */
381 REGB0
= CALL_native_interface___frontier___NiVariable___needs_preparation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
382 if (UNTAG_Bool(REGB0
)) {
383 /* native_interface/frontier.nit:77 */
384 fra
.me
.REG
[1] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
387 /* native_interface/frontier.nit:79 */
388 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
389 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
390 fra
.me
.REG
[0] = CALL_primitive_info___MMType___unboxtype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
391 fra
.me
.REG
[1] = fra
.me
.REG
[0];
395 stack_frame_head
= fra
.me
.prev
;
396 return fra
.me
.REG
[1];
398 static const char LOCATE_native_interface___frontier___NiVariable___init
[] = "frontier::NiVariable::init";
399 void native_interface___frontier___NiVariable___init(val_t p0
, int* init_table
){
400 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_native_interface___frontier___NiVariable
].i
;
401 struct {struct stack_frame_t me
;} fra
;
403 if (init_table
[itpos0
]) return;
404 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
405 fra
.me
.file
= LOCATE_native_interface___frontier
;
407 fra
.me
.meth
= LOCATE_native_interface___frontier___NiVariable___init
;
408 fra
.me
.has_broke
= 0;
410 fra
.me
.nitni_local_ref_head
= NULL
;
411 stack_frame_head
= fra
.me
.prev
;
412 init_table
[itpos0
] = 1;
415 static const char LOCATE_native_interface___frontier___MMParam___ni_from_name
[] = "frontier::MMParam::(frontier::NiVariable::ni_from_name)";
416 val_t
native_interface___frontier___MMParam___ni_from_name(val_t p0
){
417 struct {struct stack_frame_t me
;} fra
;
419 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
420 fra
.me
.file
= LOCATE_native_interface___frontier
;
422 fra
.me
.meth
= LOCATE_native_interface___frontier___MMParam___ni_from_name
;
423 fra
.me
.has_broke
= 0;
425 fra
.me
.nitni_local_ref_head
= NULL
;
426 fra
.me
.REG
[0] = NIT_NULL
;
428 /* native_interface/frontier.nit:87 */
429 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMParam___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
430 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
433 stack_frame_head
= fra
.me
.prev
;
434 return fra
.me
.REG
[0];
436 static const char LOCATE_native_interface___frontier___MMParam___ni_to_name
[] = "frontier::MMParam::(frontier::NiVariable::ni_to_name)";
437 val_t
native_interface___frontier___MMParam___ni_to_name(val_t p0
){
438 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
441 static val_t once_value_1
; /* Once value */
442 static val_t once_value_2
; /* Once value */
443 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
444 fra
.me
.file
= LOCATE_native_interface___frontier
;
446 fra
.me
.meth
= LOCATE_native_interface___frontier___MMParam___ni_to_name
;
447 fra
.me
.has_broke
= 0;
449 fra
.me
.nitni_local_ref_head
= NULL
;
450 fra
.me
.REG
[0] = NIT_NULL
;
451 fra
.me
.REG
[1] = NIT_NULL
;
452 fra
.me
.REG
[2] = NIT_NULL
;
454 /* native_interface/frontier.nit:88 */
456 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
458 fra
.me
.REG
[2] = BOX_NativeString("trans___");
460 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
461 once_value_1
= fra
.me
.REG
[2];
462 register_static_object(&once_value_1
);
463 } else fra
.me
.REG
[2] = once_value_1
;
464 fra
.me
.REG
[2] = fra
.me
.REG
[2];
465 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
466 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMParam___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
467 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
468 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
470 fra
.me
.REG
[0] = BOX_NativeString("");
472 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
473 once_value_2
= fra
.me
.REG
[0];
474 register_static_object(&once_value_2
);
475 } else fra
.me
.REG
[0] = once_value_2
;
476 fra
.me
.REG
[0] = fra
.me
.REG
[0];
477 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
478 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
481 stack_frame_head
= fra
.me
.prev
;
482 return fra
.me
.REG
[1];
484 static const char LOCATE_native_interface___frontier___MMParam___ni_type
[] = "frontier::MMParam::(frontier::NiVariable::ni_type)";
485 val_t
native_interface___frontier___MMParam___ni_type(val_t p0
){
486 struct {struct stack_frame_t me
;} fra
;
488 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
489 fra
.me
.file
= LOCATE_native_interface___frontier
;
491 fra
.me
.meth
= LOCATE_native_interface___frontier___MMParam___ni_type
;
492 fra
.me
.has_broke
= 0;
494 fra
.me
.nitni_local_ref_head
= NULL
;
495 fra
.me
.REG
[0] = NIT_NULL
;
497 /* native_interface/frontier.nit:89 */
498 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMParam___mmtype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
501 stack_frame_head
= fra
.me
.prev
;
502 return fra
.me
.REG
[0];
504 static const char LOCATE_native_interface___frontier___ReceiverVariable___ni_from_name
[] = "frontier::ReceiverVariable::(frontier::NiVariable::ni_from_name)";
505 val_t
native_interface___frontier___ReceiverVariable___ni_from_name(val_t p0
){
506 struct {struct stack_frame_t me
;} fra
;
509 static val_t once_value_1
; /* Once value */
510 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
511 fra
.me
.file
= LOCATE_native_interface___frontier
;
513 fra
.me
.meth
= LOCATE_native_interface___frontier___ReceiverVariable___ni_from_name
;
514 fra
.me
.has_broke
= 0;
516 fra
.me
.nitni_local_ref_head
= NULL
;
517 fra
.me
.REG
[0] = NIT_NULL
;
519 /* native_interface/frontier.nit:95 */
521 fra
.me
.REG
[0] = BOX_NativeString("recv");
523 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
524 once_value_1
= fra
.me
.REG
[0];
525 register_static_object(&once_value_1
);
526 } else fra
.me
.REG
[0] = once_value_1
;
527 fra
.me
.REG
[0] = fra
.me
.REG
[0];
530 stack_frame_head
= fra
.me
.prev
;
531 return fra
.me
.REG
[0];
533 static const char LOCATE_native_interface___frontier___ReceiverVariable___ni_to_name
[] = "frontier::ReceiverVariable::(frontier::NiVariable::ni_to_name)";
534 val_t
native_interface___frontier___ReceiverVariable___ni_to_name(val_t p0
){
535 struct {struct stack_frame_t me
;} fra
;
538 static val_t once_value_1
; /* Once value */
539 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
540 fra
.me
.file
= LOCATE_native_interface___frontier
;
542 fra
.me
.meth
= LOCATE_native_interface___frontier___ReceiverVariable___ni_to_name
;
543 fra
.me
.has_broke
= 0;
545 fra
.me
.nitni_local_ref_head
= NULL
;
546 fra
.me
.REG
[0] = NIT_NULL
;
548 /* native_interface/frontier.nit:96 */
550 fra
.me
.REG
[0] = BOX_NativeString("trans_recv");
552 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
553 once_value_1
= fra
.me
.REG
[0];
554 register_static_object(&once_value_1
);
555 } else fra
.me
.REG
[0] = once_value_1
;
556 fra
.me
.REG
[0] = fra
.me
.REG
[0];
559 stack_frame_head
= fra
.me
.prev
;
560 return fra
.me
.REG
[0];
562 static const char LOCATE_native_interface___frontier___ReceiverVariable___ni_type
[] = "frontier::ReceiverVariable::(frontier::NiVariable::ni_type)";
563 val_t
native_interface___frontier___ReceiverVariable___ni_type(val_t p0
){
564 struct {struct stack_frame_t me
;} fra
;
567 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
568 fra
.me
.file
= LOCATE_native_interface___frontier
;
570 fra
.me
.meth
= LOCATE_native_interface___frontier___ReceiverVariable___ni_type
;
571 fra
.me
.has_broke
= 0;
573 fra
.me
.nitni_local_ref_head
= NULL
;
574 fra
.me
.REG
[0] = NIT_NULL
;
576 /* native_interface/frontier.nit:98 */
577 REGB0
= TAG_Bool(ATTR_native_interface___frontier___ReceiverVariable_____atni_type(fra
.me
.REG
[0])!=NIT_NULL
);
578 if (UNTAG_Bool(REGB0
)) {
580 nit_abort("Uninitialized attribute %s", "@ni_type", LOCATE_native_interface___frontier
, 98);
582 fra
.me
.REG
[0] = ATTR_native_interface___frontier___ReceiverVariable_____atni_type(fra
.me
.REG
[0]);
583 stack_frame_head
= fra
.me
.prev
;
584 return fra
.me
.REG
[0];
586 static const char LOCATE_native_interface___frontier___ReceiverVariable___ni_type__eq
[] = "frontier::ReceiverVariable::ni_type=";
587 void native_interface___frontier___ReceiverVariable___ni_type__eq(val_t p0
, val_t p1
){
588 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
590 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
591 fra
.me
.file
= LOCATE_native_interface___frontier
;
593 fra
.me
.meth
= LOCATE_native_interface___frontier___ReceiverVariable___ni_type__eq
;
594 fra
.me
.has_broke
= 0;
596 fra
.me
.nitni_local_ref_head
= NULL
;
597 fra
.me
.REG
[0] = NIT_NULL
;
598 fra
.me
.REG
[1] = NIT_NULL
;
601 /* native_interface/frontier.nit:98 */
602 ATTR_native_interface___frontier___ReceiverVariable_____atni_type(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
603 stack_frame_head
= fra
.me
.prev
;
606 static const char LOCATE_native_interface___frontier___ReceiverVariable___init
[] = "frontier::ReceiverVariable::init";
607 void native_interface___frontier___ReceiverVariable___init(val_t p0
, val_t p1
, int* init_table
){
608 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_native_interface___frontier___ReceiverVariable
].i
;
609 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
611 if (init_table
[itpos1
]) return;
612 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
613 fra
.me
.file
= LOCATE_native_interface___frontier
;
615 fra
.me
.meth
= LOCATE_native_interface___frontier___ReceiverVariable___init
;
616 fra
.me
.has_broke
= 0;
618 fra
.me
.nitni_local_ref_head
= NULL
;
619 fra
.me
.REG
[0] = NIT_NULL
;
620 fra
.me
.REG
[1] = NIT_NULL
;
621 fra
.me
.REG
[2] = NIT_NULL
;
624 /* native_interface/frontier.nit:99 */
625 fra
.me
.REG
[2] = fra
.me
.REG
[0];
626 CALL_native_interface___frontier___NiVariable___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
627 CALL_native_interface___frontier___ReceiverVariable___ni_type__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
628 stack_frame_head
= fra
.me
.prev
;
629 init_table
[itpos1
] = 1;
632 static const char LOCATE_native_interface___frontier___ReturnVariable___ni_from_name
[] = "frontier::ReturnVariable::(frontier::NiVariable::ni_from_name)";
633 val_t
native_interface___frontier___ReturnVariable___ni_from_name(val_t p0
){
634 struct {struct stack_frame_t me
;} fra
;
637 static val_t once_value_1
; /* Once value */
638 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
639 fra
.me
.file
= LOCATE_native_interface___frontier
;
641 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___ni_from_name
;
642 fra
.me
.has_broke
= 0;
644 fra
.me
.nitni_local_ref_head
= NULL
;
645 fra
.me
.REG
[0] = NIT_NULL
;
647 /* native_interface/frontier.nit:105 */
649 fra
.me
.REG
[0] = BOX_NativeString("orig_return");
651 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
652 once_value_1
= fra
.me
.REG
[0];
653 register_static_object(&once_value_1
);
654 } else fra
.me
.REG
[0] = once_value_1
;
655 fra
.me
.REG
[0] = fra
.me
.REG
[0];
658 stack_frame_head
= fra
.me
.prev
;
659 return fra
.me
.REG
[0];
661 static const char LOCATE_native_interface___frontier___ReturnVariable___ni_to_name
[] = "frontier::ReturnVariable::(frontier::NiVariable::ni_to_name)";
662 val_t
native_interface___frontier___ReturnVariable___ni_to_name(val_t p0
){
663 struct {struct stack_frame_t me
;} fra
;
666 static val_t once_value_1
; /* Once value */
667 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
668 fra
.me
.file
= LOCATE_native_interface___frontier
;
670 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___ni_to_name
;
671 fra
.me
.has_broke
= 0;
673 fra
.me
.nitni_local_ref_head
= NULL
;
674 fra
.me
.REG
[0] = NIT_NULL
;
676 /* native_interface/frontier.nit:106 */
678 fra
.me
.REG
[0] = BOX_NativeString("trans_return");
680 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
681 once_value_1
= fra
.me
.REG
[0];
682 register_static_object(&once_value_1
);
683 } else fra
.me
.REG
[0] = once_value_1
;
684 fra
.me
.REG
[0] = fra
.me
.REG
[0];
687 stack_frame_head
= fra
.me
.prev
;
688 return fra
.me
.REG
[0];
690 static const char LOCATE_native_interface___frontier___ReturnVariable___ni_type
[] = "frontier::ReturnVariable::(frontier::NiVariable::ni_type)";
691 val_t
native_interface___frontier___ReturnVariable___ni_type(val_t p0
){
692 struct {struct stack_frame_t me
;} fra
;
695 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
696 fra
.me
.file
= LOCATE_native_interface___frontier
;
698 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___ni_type
;
699 fra
.me
.has_broke
= 0;
701 fra
.me
.nitni_local_ref_head
= NULL
;
702 fra
.me
.REG
[0] = NIT_NULL
;
704 /* native_interface/frontier.nit:108 */
705 REGB0
= TAG_Bool(ATTR_native_interface___frontier___ReturnVariable_____atni_type(fra
.me
.REG
[0])!=NIT_NULL
);
706 if (UNTAG_Bool(REGB0
)) {
708 nit_abort("Uninitialized attribute %s", "@ni_type", LOCATE_native_interface___frontier
, 108);
710 fra
.me
.REG
[0] = ATTR_native_interface___frontier___ReturnVariable_____atni_type(fra
.me
.REG
[0]);
711 stack_frame_head
= fra
.me
.prev
;
712 return fra
.me
.REG
[0];
714 static const char LOCATE_native_interface___frontier___ReturnVariable___ni_type__eq
[] = "frontier::ReturnVariable::ni_type=";
715 void native_interface___frontier___ReturnVariable___ni_type__eq(val_t p0
, val_t p1
){
716 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
718 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
719 fra
.me
.file
= LOCATE_native_interface___frontier
;
721 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___ni_type__eq
;
722 fra
.me
.has_broke
= 0;
724 fra
.me
.nitni_local_ref_head
= NULL
;
725 fra
.me
.REG
[0] = NIT_NULL
;
726 fra
.me
.REG
[1] = NIT_NULL
;
729 /* native_interface/frontier.nit:108 */
730 ATTR_native_interface___frontier___ReturnVariable_____atni_type(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
731 stack_frame_head
= fra
.me
.prev
;
734 static const char LOCATE_native_interface___frontier___ReturnVariable___init
[] = "frontier::ReturnVariable::init";
735 void native_interface___frontier___ReturnVariable___init(val_t p0
, val_t p1
, int* init_table
){
736 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_native_interface___frontier___ReturnVariable
].i
;
737 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
739 if (init_table
[itpos2
]) return;
740 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
741 fra
.me
.file
= LOCATE_native_interface___frontier
;
743 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___init
;
744 fra
.me
.has_broke
= 0;
746 fra
.me
.nitni_local_ref_head
= NULL
;
747 fra
.me
.REG
[0] = NIT_NULL
;
748 fra
.me
.REG
[1] = NIT_NULL
;
749 fra
.me
.REG
[2] = NIT_NULL
;
752 /* native_interface/frontier.nit:109 */
753 fra
.me
.REG
[2] = fra
.me
.REG
[0];
754 CALL_native_interface___frontier___NiVariable___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
755 CALL_native_interface___frontier___ReturnVariable___ni_type__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
756 stack_frame_head
= fra
.me
.prev
;
757 init_table
[itpos2
] = 1;
760 static const char LOCATE_native_interface___frontier___ReturnVariable___prepare_for_c
[] = "frontier::ReturnVariable::(frontier::NiVariable::prepare_for_c)";
761 void native_interface___frontier___ReturnVariable___prepare_for_c(val_t p0
, val_t p1
){
762 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
765 static val_t once_value_1
; /* Once value */
766 static val_t once_value_2
; /* Once value */
767 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
768 fra
.me
.file
= LOCATE_native_interface___frontier
;
770 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___prepare_for_c
;
771 fra
.me
.has_broke
= 0;
773 fra
.me
.nitni_local_ref_head
= NULL
;
774 fra
.me
.REG
[0] = NIT_NULL
;
775 fra
.me
.REG
[1] = NIT_NULL
;
776 fra
.me
.REG
[2] = NIT_NULL
;
777 fra
.me
.REG
[3] = NIT_NULL
;
778 fra
.me
.REG
[4] = NIT_NULL
;
781 /* native_interface/frontier.nit:114 */
782 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
784 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
786 fra
.me
.REG
[4] = BOX_NativeString("val_t ");
788 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
789 once_value_1
= fra
.me
.REG
[4];
790 register_static_object(&once_value_1
);
791 } else fra
.me
.REG
[4] = once_value_1
;
792 fra
.me
.REG
[4] = fra
.me
.REG
[4];
793 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
794 fra
.me
.REG
[4] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
795 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
797 fra
.me
.REG
[4] = BOX_NativeString(";\n");
799 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
800 once_value_2
= fra
.me
.REG
[4];
801 register_static_object(&once_value_2
);
802 } else fra
.me
.REG
[4] = once_value_2
;
803 fra
.me
.REG
[4] = fra
.me
.REG
[4];
804 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
805 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
806 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
807 /* native_interface/frontier.nit:115 */
808 fra
.me
.REG
[3] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
809 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
811 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
);
812 stack_frame_head
= fra
.me
.prev
;
815 static const char LOCATE_native_interface___frontier___ReturnVariable___prepare_for_nit
[] = "frontier::ReturnVariable::(frontier::NiVariable::prepare_for_nit)";
816 void native_interface___frontier___ReturnVariable___prepare_for_nit(val_t p0
, val_t p1
){
817 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
820 static val_t once_value_1
; /* Once value */
821 static val_t once_value_2
; /* Once value */
822 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
823 fra
.me
.file
= LOCATE_native_interface___frontier
;
825 fra
.me
.meth
= LOCATE_native_interface___frontier___ReturnVariable___prepare_for_nit
;
826 fra
.me
.has_broke
= 0;
828 fra
.me
.nitni_local_ref_head
= NULL
;
829 fra
.me
.REG
[0] = NIT_NULL
;
830 fra
.me
.REG
[1] = NIT_NULL
;
831 fra
.me
.REG
[2] = NIT_NULL
;
832 fra
.me
.REG
[3] = NIT_NULL
;
835 /* native_interface/frontier.nit:119 */
836 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
837 fra
.me
.REG
[3] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
839 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
);
840 /* native_interface/frontier.nit:120 */
841 fra
.me
.REG
[1] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
843 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
845 fra
.me
.REG
[2] = BOX_NativeString("val_t ");
847 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
848 once_value_1
= fra
.me
.REG
[2];
849 register_static_object(&once_value_1
);
850 } else fra
.me
.REG
[2] = once_value_1
;
851 fra
.me
.REG
[2] = fra
.me
.REG
[2];
852 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
853 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
854 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
856 fra
.me
.REG
[0] = BOX_NativeString(";\n");
858 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
859 once_value_2
= fra
.me
.REG
[0];
860 register_static_object(&once_value_2
);
861 } else fra
.me
.REG
[0] = once_value_2
;
862 fra
.me
.REG
[0] = fra
.me
.REG
[0];
863 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
864 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
865 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
866 stack_frame_head
= fra
.me
.prev
;
869 static const char LOCATE_native_interface___frontier___MMSrcModule___compile_frontier
[] = "frontier::MMSrcModule::compile_frontier";
870 void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0
, val_t p1
){
871 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
874 static val_t once_value_1
; /* Once value */
875 static val_t once_value_2
; /* Once value */
876 static val_t once_value_3
; /* Once value */
877 static val_t once_value_4
; /* Once value */
878 static val_t once_value_5
; /* Once value */
879 static val_t once_value_6
; /* Once value */
880 static val_t once_value_7
; /* Once value */
881 static val_t once_value_8
; /* Once value */
882 static val_t once_value_9
; /* Once value */
883 static val_t once_value_10
; /* Once value */
884 static val_t once_value_11
; /* Once value */
885 static val_t once_value_12
; /* Once value */
886 static val_t once_value_13
; /* Once value */
887 static val_t once_value_14
; /* Once value */
888 static val_t once_value_15
; /* Once value */
889 static val_t once_value_16
; /* Once value */
890 static val_t once_value_17
; /* Once value */
891 static val_t once_value_18
; /* Once value */
892 static val_t once_value_19
; /* Once value */
893 static val_t once_value_20
; /* Once value */
894 static val_t once_value_21
; /* Once value */
895 static val_t once_value_22
; /* Once value */
896 static val_t once_value_23
; /* Once value */
897 static val_t once_value_24
; /* Once value */
898 static val_t once_value_27
; /* Once value */
899 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
900 fra
.me
.file
= LOCATE_native_interface___frontier
;
902 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcModule___compile_frontier
;
903 fra
.me
.has_broke
= 0;
905 fra
.me
.nitni_local_ref_head
= NULL
;
906 fra
.me
.REG
[0] = NIT_NULL
;
907 fra
.me
.REG
[1] = NIT_NULL
;
908 fra
.me
.REG
[2] = NIT_NULL
;
909 fra
.me
.REG
[3] = NIT_NULL
;
910 fra
.me
.REG
[4] = NIT_NULL
;
911 fra
.me
.REG
[5] = NIT_NULL
;
914 /* native_interface/frontier.nit:129 */
915 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
917 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
919 fra
.me
.REG
[4] = BOX_NativeString("#include \"");
921 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
922 once_value_1
= fra
.me
.REG
[4];
923 register_static_object(&once_value_1
);
924 } else fra
.me
.REG
[4] = once_value_1
;
925 fra
.me
.REG
[4] = fra
.me
.REG
[4];
926 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
927 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
928 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
929 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
931 fra
.me
.REG
[4] = BOX_NativeString("._nitni.h\"\n");
933 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
934 once_value_2
= fra
.me
.REG
[4];
935 register_static_object(&once_value_2
);
936 } else fra
.me
.REG
[4] = once_value_2
;
937 fra
.me
.REG
[4] = fra
.me
.REG
[4];
938 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
939 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
940 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
941 /* native_interface/frontier.nit:132 */
942 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
944 fra
.me
.REG
[2] = BOX_NativeString("#include <nit_common.h>\n");
946 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
947 once_value_3
= fra
.me
.REG
[2];
948 register_static_object(&once_value_3
);
949 } else fra
.me
.REG
[2] = once_value_3
;
950 fra
.me
.REG
[2] = fra
.me
.REG
[2];
951 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
952 /* native_interface/frontier.nit:133 */
953 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
955 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
957 fra
.me
.REG
[4] = BOX_NativeString("#include \"");
959 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
960 once_value_4
= fra
.me
.REG
[4];
961 register_static_object(&once_value_4
);
962 } else fra
.me
.REG
[4] = once_value_4
;
963 fra
.me
.REG
[4] = fra
.me
.REG
[4];
964 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
965 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___cprogram(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
966 fra
.me
.REG
[4] = CALL_compiling___compiling_base___CProgram___module_header_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
967 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
969 fra
.me
.REG
[4] = BOX_NativeString("\"\n");
971 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
972 once_value_5
= fra
.me
.REG
[4];
973 register_static_object(&once_value_5
);
974 } else fra
.me
.REG
[4] = once_value_5
;
975 fra
.me
.REG
[4] = fra
.me
.REG
[4];
976 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
977 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
978 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
979 /* native_interface/frontier.nit:135 */
981 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
983 fra
.me
.REG
[2] = BOX_NativeString("");
985 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
986 once_value_6
= fra
.me
.REG
[2];
987 register_static_object(&once_value_6
);
988 } else fra
.me
.REG
[2] = once_value_6
;
989 fra
.me
.REG
[2] = fra
.me
.REG
[2];
990 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
991 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
992 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
993 fra
.me
.REG
[2] = CALL_standard___string___AbstractString___to_upper(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
994 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
996 fra
.me
.REG
[2] = BOX_NativeString("_NITNI_H");
998 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
999 once_value_7
= fra
.me
.REG
[2];
1000 register_static_object(&once_value_7
);
1001 } else fra
.me
.REG
[2] = once_value_7
;
1002 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1003 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1004 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1005 /* native_interface/frontier.nit:136 */
1006 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1008 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1009 if (!once_value_8
) {
1010 fra
.me
.REG
[5] = BOX_NativeString("#ifndef ");
1012 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1013 once_value_8
= fra
.me
.REG
[5];
1014 register_static_object(&once_value_8
);
1015 } else fra
.me
.REG
[5] = once_value_8
;
1016 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1017 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1019 if (!once_value_9
) {
1020 fra
.me
.REG
[5] = BOX_NativeString("\n");
1022 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1023 once_value_9
= fra
.me
.REG
[5];
1024 register_static_object(&once_value_9
);
1025 } else fra
.me
.REG
[5] = once_value_9
;
1026 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1027 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1028 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1029 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1030 /* native_interface/frontier.nit:137 */
1031 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1033 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1034 if (!once_value_10
) {
1035 fra
.me
.REG
[5] = BOX_NativeString("#define ");
1037 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1038 once_value_10
= fra
.me
.REG
[5];
1039 register_static_object(&once_value_10
);
1040 } else fra
.me
.REG
[5] = once_value_10
;
1041 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1042 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
1043 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1044 if (!once_value_11
) {
1045 fra
.me
.REG
[3] = BOX_NativeString("\n\n");
1047 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1048 once_value_11
= fra
.me
.REG
[3];
1049 register_static_object(&once_value_11
);
1050 } else fra
.me
.REG
[3] = once_value_11
;
1051 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1052 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1053 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1054 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1055 /* native_interface/frontier.nit:140 */
1057 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1058 if (!once_value_12
) {
1059 fra
.me
.REG
[4] = BOX_NativeString("");
1061 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1062 once_value_12
= fra
.me
.REG
[4];
1063 register_static_object(&once_value_12
);
1064 } else fra
.me
.REG
[4] = once_value_12
;
1065 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1066 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1067 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule___directory(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1068 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1069 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1070 if (!once_value_13
) {
1071 fra
.me
.REG
[4] = BOX_NativeString("/");
1073 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1074 once_value_13
= fra
.me
.REG
[4];
1075 register_static_object(&once_value_13
);
1076 } else fra
.me
.REG
[4] = once_value_13
;
1077 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1078 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1079 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1080 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1081 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1082 if (!once_value_14
) {
1083 fra
.me
.REG
[4] = BOX_NativeString(".nit.h");
1085 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1086 once_value_14
= fra
.me
.REG
[4];
1087 register_static_object(&once_value_14
);
1088 } else fra
.me
.REG
[4] = once_value_14
;
1089 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1090 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1091 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1092 /* native_interface/frontier.nit:141 */
1093 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1094 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1095 if (UNTAG_Bool(REGB0
)) {
1096 /* native_interface/frontier.nit:142 */
1098 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1099 if (!once_value_15
) {
1100 fra
.me
.REG
[3] = BOX_NativeString("");
1102 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1103 once_value_15
= fra
.me
.REG
[3];
1104 register_static_object(&once_value_15
);
1105 } else fra
.me
.REG
[3] = once_value_15
;
1106 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1107 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1108 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMModule___directory(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1109 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1110 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1111 if (!once_value_16
) {
1112 fra
.me
.REG
[3] = BOX_NativeString("/");
1114 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1115 once_value_16
= fra
.me
.REG
[3];
1116 register_static_object(&once_value_16
);
1117 } else fra
.me
.REG
[3] = once_value_16
;
1118 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1119 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1120 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1121 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1122 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1123 if (!once_value_17
) {
1124 fra
.me
.REG
[3] = BOX_NativeString("_nit.h");
1126 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1127 once_value_17
= fra
.me
.REG
[3];
1128 register_static_object(&once_value_17
);
1129 } else fra
.me
.REG
[3] = once_value_17
;
1130 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1131 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1132 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1133 fra
.me
.REG
[2] = fra
.me
.REG
[4];
1135 /* native_interface/frontier.nit:144 */
1136 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1137 if (UNTAG_Bool(REGB0
)) {
1138 /* native_interface/frontier.nit:145 */
1139 if (!once_value_18
) {
1140 fra
.me
.REG
[4] = BOX_NativeString("..");
1142 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1143 once_value_18
= fra
.me
.REG
[4];
1144 register_static_object(&once_value_18
);
1145 } else fra
.me
.REG
[4] = once_value_18
;
1146 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1147 fra
.me
.REG
[2] = CALL_standard___file___String___join_path(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1148 fra
.me
.REG
[2] = CALL_standard___file___String___simplify_path(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1149 /* native_interface/frontier.nit:146 */
1150 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1152 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1153 if (!once_value_19
) {
1154 fra
.me
.REG
[5] = BOX_NativeString("#include \"");
1155 REGB0
= TAG_Int(10);
1156 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1157 once_value_19
= fra
.me
.REG
[5];
1158 register_static_object(&once_value_19
);
1159 } else fra
.me
.REG
[5] = once_value_19
;
1160 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1162 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1163 if (!once_value_20
) {
1164 fra
.me
.REG
[5] = BOX_NativeString("\"\n");
1166 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1167 once_value_20
= fra
.me
.REG
[5];
1168 register_static_object(&once_value_20
);
1169 } else fra
.me
.REG
[5] = once_value_20
;
1170 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1171 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1172 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1173 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1174 /* native_interface/frontier.nit:147 */
1175 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1177 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1178 if (!once_value_21
) {
1179 fra
.me
.REG
[5] = BOX_NativeString("#include \"");
1180 REGB0
= TAG_Int(10);
1181 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1182 once_value_21
= fra
.me
.REG
[5];
1183 register_static_object(&once_value_21
);
1184 } else fra
.me
.REG
[5] = once_value_21
;
1185 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1186 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1187 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1188 if (!once_value_22
) {
1189 fra
.me
.REG
[2] = BOX_NativeString("\"\n");
1191 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1192 once_value_22
= fra
.me
.REG
[2];
1193 register_static_object(&once_value_22
);
1194 } else fra
.me
.REG
[2] = once_value_22
;
1195 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1196 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1197 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1198 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1200 /* native_interface/frontier.nit:149 */
1201 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___uses_ffi(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1202 if (UNTAG_Bool(REGB0
)) {
1203 /* native_interface/frontier.nit:150 */
1204 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1206 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1207 if (!once_value_23
) {
1208 fra
.me
.REG
[2] = BOX_NativeString("#include <");
1209 REGB0
= TAG_Int(10);
1210 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1211 once_value_23
= fra
.me
.REG
[2];
1212 register_static_object(&once_value_23
);
1213 } else fra
.me
.REG
[2] = once_value_23
;
1214 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1215 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1216 fra
.me
.REG
[2] = CALL_compiling___compiling_base___MMModule___cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1217 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1218 if (!once_value_24
) {
1219 fra
.me
.REG
[2] = BOX_NativeString("._ffi.h>\n");
1221 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1222 once_value_24
= fra
.me
.REG
[2];
1223 register_static_object(&once_value_24
);
1224 } else fra
.me
.REG
[2] = once_value_24
;
1225 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1226 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1227 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1228 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1230 /* native_interface/frontier.nit:153 */
1231 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1232 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
));
1233 /* native_interface/frontier.nit:165 */
1234 CALL_native_interface___frontier___FrontierVisitor___compile_cached(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1235 /* native_interface/frontier.nit:167 */
1236 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1237 if (!once_value_27
) {
1238 fra
.me
.REG
[0] = BOX_NativeString("#endif\n");
1240 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1241 once_value_27
= fra
.me
.REG
[0];
1242 register_static_object(&once_value_27
);
1243 } else fra
.me
.REG
[0] = once_value_27
;
1244 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1245 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1246 stack_frame_head
= fra
.me
.prev
;
1249 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
){
1250 struct {struct stack_frame_t me
;} fra
;
1253 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1254 fra
.me
.file
= LOCATE_native_interface___frontier
;
1256 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcModule___compile_frontier
;
1257 fra
.me
.has_broke
= 0;
1258 fra
.me
.REG_size
= 1;
1259 fra
.me
.nitni_local_ref_head
= NULL
;
1260 fra
.me
.REG
[0] = NIT_NULL
;
1261 fra
.me
.closure_ctx
= closctx_param
;
1262 fra
.me
.closure_funs
= CREG
;
1264 CREG
[0] = clos_fun0
;
1265 /* native_interface/frontier.nit:155 */
1266 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___local_local_properties(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1267 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
));
1268 stack_frame_head
= fra
.me
.prev
;
1271 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
){
1272 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1277 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1278 fra
.me
.file
= LOCATE_native_interface___frontier
;
1280 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcModule___compile_frontier
;
1281 fra
.me
.has_broke
= 0;
1282 fra
.me
.REG_size
= 2;
1283 fra
.me
.nitni_local_ref_head
= NULL
;
1284 fra
.me
.REG
[0] = NIT_NULL
;
1285 fra
.me
.REG
[1] = NIT_NULL
;
1286 fra
.me
.closure_ctx
= closctx_param
;
1287 fra
.me
.closure_funs
= CREG
;
1289 CREG
[0] = clos_fun0
;
1290 /* native_interface/frontier.nit:158 */
1291 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1292 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],closctx
->REG
[0]));
1293 if (UNTAG_Bool(REGB0
)) {
1295 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], closctx
->REG
[0]);
1298 if (UNTAG_Bool(REGB0
)) {
1299 /* native_interface/frontier.nit:159 */
1300 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
1302 /* native_interface/frontier.nit:158 */
1303 REGB1
= TAG_Bool(0);
1306 if (UNTAG_Bool(REGB0
)) {
1307 /* native_interface/frontier.nit:159 */
1308 REGB0
= CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1310 /* native_interface/frontier.nit:158 */
1311 REGB1
= TAG_Bool(0);
1314 if (UNTAG_Bool(REGB0
)) {
1315 /* native_interface/frontier.nit:160 */
1316 CALL_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1318 stack_frame_head
= fra
.me
.prev
;
1321 static const char LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier
[] = "frontier::MMSrcMethod::compile_extern_to_frontier";
1322 void native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(val_t p0
, val_t p1
){
1323 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1327 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1328 fra
.me
.file
= LOCATE_native_interface___frontier
;
1330 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier
;
1331 fra
.me
.has_broke
= 0;
1332 fra
.me
.REG_size
= 3;
1333 fra
.me
.nitni_local_ref_head
= NULL
;
1334 fra
.me
.REG
[0] = NIT_NULL
;
1335 fra
.me
.REG
[1] = NIT_NULL
;
1336 fra
.me
.REG
[2] = NIT_NULL
;
1339 /* native_interface/frontier.nit:175 */
1340 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1341 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1342 if (UNTAG_Bool(REGB0
)) {
1344 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1345 if (UNTAG_Bool(REGB1
)) {
1346 REGB1
= TAG_Bool(0);
1349 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1353 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1354 if (UNTAG_Bool(REGB0
)) {
1355 /* native_interface/frontier.nit:176 */
1356 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1357 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1358 if (UNTAG_Bool(REGB0
)) {
1359 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 176);
1361 CALL_native_interface___frontier___MMSignature___compile_frontier(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1363 /* native_interface/frontier.nit:179 */
1364 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1365 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
));
1366 /* native_interface/frontier.nit:188 */
1367 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1368 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
));
1369 /* native_interface/frontier.nit:196 */
1370 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1371 if (UNTAG_Bool(REGB0
)) {
1372 /* native_interface/frontier.nit:197 */
1373 CALL_native_interface___frontier___MMSrcMethod___compile_super_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1375 /* native_interface/frontier.nit:201 */
1376 CALL_native_interface___frontier___MMSrcMethod___compile_out_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1377 stack_frame_head
= fra
.me
.prev
;
1380 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
){
1381 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1384 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1385 fra
.me
.file
= LOCATE_native_interface___frontier
;
1387 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier
;
1388 fra
.me
.has_broke
= 0;
1389 fra
.me
.REG_size
= 2;
1390 fra
.me
.nitni_local_ref_head
= NULL
;
1391 fra
.me
.REG
[0] = NIT_NULL
;
1392 fra
.me
.REG
[1] = NIT_NULL
;
1393 fra
.me
.closure_ctx
= closctx_param
;
1394 fra
.me
.closure_funs
= CREG
;
1396 CREG
[0] = clos_fun0
;
1397 /* native_interface/frontier.nit:181 */
1398 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___friendlys(closctx
->REG
[1])(closctx
->REG
[1]);
1399 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1400 /* native_interface/frontier.nit:184 */
1401 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1402 CALL_native_interface___frontier___MMSignature___compile_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1403 stack_frame_head
= fra
.me
.prev
;
1406 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
){
1407 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1410 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1411 fra
.me
.file
= LOCATE_native_interface___frontier
;
1413 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier
;
1414 fra
.me
.has_broke
= 0;
1415 fra
.me
.REG_size
= 3;
1416 fra
.me
.nitni_local_ref_head
= NULL
;
1417 fra
.me
.REG
[0] = NIT_NULL
;
1418 fra
.me
.REG
[1] = NIT_NULL
;
1419 fra
.me
.REG
[2] = NIT_NULL
;
1420 fra
.me
.closure_ctx
= closctx_param
;
1421 fra
.me
.closure_funs
= CREG
;
1423 CREG
[0] = clos_fun0
;
1424 /* native_interface/frontier.nit:189 */
1425 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___casts(closctx
->REG
[1])(closctx
->REG
[1]);
1426 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1427 /* native_interface/frontier.nit:191 */
1428 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___types(closctx
->REG
[1])(closctx
->REG
[1]);
1429 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1430 fra
.me
.REG
[2] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1431 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1432 /* native_interface/frontier.nit:192 */
1433 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___types(closctx
->REG
[1])(closctx
->REG
[1]);
1434 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1435 fra
.me
.REG
[0] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1436 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1437 stack_frame_head
= fra
.me
.prev
;
1440 static const char LOCATE_native_interface___frontier___MMSrcMethod___compile_super_to_frontier
[] = "frontier::MMSrcMethod::compile_super_to_frontier";
1441 void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t p0
, val_t p1
){
1442 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
1447 static val_t once_value_1
; /* Once value */
1448 static val_t once_value_2
; /* Once value */
1449 static val_t once_value_3
; /* Once value */
1450 static val_t once_value_4
; /* Once value */
1451 static val_t once_value_5
; /* Once value */
1452 static val_t once_value_6
; /* Once value */
1453 static val_t once_value_7
; /* Once value */
1454 static val_t once_value_8
; /* Once value */
1455 static val_t once_value_9
; /* Once value */
1456 static val_t once_value_10
; /* Once value */
1457 static val_t once_value_11
; /* Once value */
1458 static val_t once_value_12
; /* Once value */
1459 static val_t once_value_15
; /* Once value */
1460 static val_t once_value_16
; /* Once value */
1461 static val_t once_value_17
; /* Once value */
1462 static val_t once_value_18
; /* Once value */
1463 static val_t once_value_19
; /* Once value */
1464 static val_t once_value_20
; /* Once value */
1465 static val_t once_value_21
; /* Once value */
1466 static val_t once_value_22
; /* Once value */
1467 static val_t once_value_23
; /* Once value */
1468 static val_t once_value_24
; /* Once value */
1469 static val_t once_value_25
; /* Once value */
1470 static val_t once_value_26
; /* Once value */
1471 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1472 fra
.me
.file
= LOCATE_native_interface___frontier
;
1474 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_super_to_frontier
;
1475 fra
.me
.has_broke
= 0;
1476 fra
.me
.REG_size
= 8;
1477 fra
.me
.nitni_local_ref_head
= NULL
;
1478 fra
.me
.REG
[0] = NIT_NULL
;
1479 fra
.me
.REG
[1] = NIT_NULL
;
1480 fra
.me
.REG
[2] = NIT_NULL
;
1481 fra
.me
.REG
[3] = NIT_NULL
;
1482 fra
.me
.REG
[4] = NIT_NULL
;
1483 fra
.me
.REG
[5] = NIT_NULL
;
1484 fra
.me
.REG
[6] = NIT_NULL
;
1485 fra
.me
.REG
[7] = NIT_NULL
;
1488 /* native_interface/frontier.nit:211 */
1489 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1491 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1492 if (!once_value_1
) {
1493 fra
.me
.REG
[4] = BOX_NativeString("\n/* friendly for super of ");
1494 REGB0
= TAG_Int(26);
1495 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1496 once_value_1
= fra
.me
.REG
[4];
1497 register_static_object(&once_value_1
);
1498 } else fra
.me
.REG
[4] = once_value_1
;
1499 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1500 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1501 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1502 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1503 if (!once_value_2
) {
1504 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
1506 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1507 once_value_2
= fra
.me
.REG
[4];
1508 register_static_object(&once_value_2
);
1509 } else fra
.me
.REG
[4] = once_value_2
;
1510 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1511 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1512 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1513 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1514 /* native_interface/frontier.nit:212 */
1515 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1517 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1518 if (!once_value_3
) {
1519 fra
.me
.REG
[4] = BOX_NativeString("");
1521 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1522 once_value_3
= fra
.me
.REG
[4];
1523 register_static_object(&once_value_3
);
1524 } else fra
.me
.REG
[4] = once_value_3
;
1525 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1526 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1527 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1528 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]);
1529 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1530 if (!once_value_4
) {
1531 fra
.me
.REG
[4] = BOX_NativeString(";\n");
1533 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1534 once_value_4
= fra
.me
.REG
[4];
1535 register_static_object(&once_value_4
);
1536 } else fra
.me
.REG
[4] = once_value_4
;
1537 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1538 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1539 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1540 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1541 /* native_interface/frontier.nit:215 */
1542 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1544 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1545 if (!once_value_5
) {
1546 fra
.me
.REG
[4] = BOX_NativeString("#ifndef ");
1548 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1549 once_value_5
= fra
.me
.REG
[4];
1550 register_static_object(&once_value_5
);
1551 } else fra
.me
.REG
[4] = once_value_5
;
1552 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1553 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1554 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMMethod___friendly_super_cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1555 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1556 if (!once_value_6
) {
1557 fra
.me
.REG
[4] = BOX_NativeString("\n");
1559 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1560 once_value_6
= fra
.me
.REG
[4];
1561 register_static_object(&once_value_6
);
1562 } else fra
.me
.REG
[4] = once_value_6
;
1563 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1564 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1565 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1566 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1567 /* native_interface/frontier.nit:216 */
1568 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1570 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1571 if (!once_value_7
) {
1572 fra
.me
.REG
[4] = BOX_NativeString("#define ");
1574 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1575 once_value_7
= fra
.me
.REG
[4];
1576 register_static_object(&once_value_7
);
1577 } else fra
.me
.REG
[4] = once_value_7
;
1578 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1579 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1580 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMMethod___friendly_super_cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1581 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1582 if (!once_value_8
) {
1583 fra
.me
.REG
[4] = BOX_NativeString(" ");
1585 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1586 once_value_8
= fra
.me
.REG
[4];
1587 register_static_object(&once_value_8
);
1588 } else fra
.me
.REG
[4] = once_value_8
;
1589 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1590 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1591 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1592 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]);
1593 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1594 if (!once_value_9
) {
1595 fra
.me
.REG
[4] = BOX_NativeString("\n");
1597 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1598 once_value_9
= fra
.me
.REG
[4];
1599 register_static_object(&once_value_9
);
1600 } else fra
.me
.REG
[4] = once_value_9
;
1601 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1602 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1603 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1604 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1605 /* native_interface/frontier.nit:217 */
1606 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1607 if (!once_value_10
) {
1608 fra
.me
.REG
[3] = BOX_NativeString("#endif\n");
1610 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1611 once_value_10
= fra
.me
.REG
[3];
1612 register_static_object(&once_value_10
);
1613 } else fra
.me
.REG
[3] = once_value_10
;
1614 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1615 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1616 /* native_interface/frontier.nit:220 */
1617 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1619 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1620 if (!once_value_11
) {
1621 fra
.me
.REG
[4] = BOX_NativeString("\n/* friendly for super of ");
1622 REGB0
= TAG_Int(26);
1623 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1624 once_value_11
= fra
.me
.REG
[4];
1625 register_static_object(&once_value_11
);
1626 } else fra
.me
.REG
[4] = once_value_11
;
1627 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1628 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1629 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1631 if (!once_value_12
) {
1632 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
1634 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1635 once_value_12
= fra
.me
.REG
[4];
1636 register_static_object(&once_value_12
);
1637 } else fra
.me
.REG
[4] = once_value_12
;
1638 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1640 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1641 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1642 /* native_interface/frontier.nit:221 */
1643 fra
.me
.REG
[2] = CALL_native_interface___ni_metamodel___MMMethod___friendly_super_csignature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1644 fra
.me
.REG
[2] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[2]);
1645 /* native_interface/frontier.nit:224 */
1646 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
1647 /* native_interface/frontier.nit:225 */
1648 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1649 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1650 if (UNTAG_Bool(REGB0
)) {
1651 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 225);
1653 fra
.me
.REG
[4] = CALL_native_interface___frontier___MMSignature___recv_ni_variable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1654 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1655 /* native_interface/frontier.nit:226 */
1656 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1657 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1658 if (UNTAG_Bool(REGB0
)) {
1659 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 226);
1661 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1662 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1663 /* ../lib/standard/collection/array.nit:266 */
1664 fra
.me
.REG
[4] = fra
.me
.REG
[3];
1665 /* ../lib/standard/collection/array.nit:269 */
1667 /* ../lib/standard/collection/array.nit:270 */
1668 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1669 if (UNTAG_Bool(REGB1
)) {
1671 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1673 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1674 /* ../lib/standard/collection/array.nit:271 */
1675 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1676 /* ../lib/standard/collection/array.nit:272 */
1678 /* ../lib/standard/collection/array.nit:24 */
1679 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1680 if (UNTAG_Bool(REGB1
)) {
1682 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1684 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1685 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1686 if (UNTAG_Bool(REGB2
)) {
1688 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1690 /* ../lib/standard/kernel.nit:235 */
1691 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1692 /* ../lib/standard/collection/array.nit:272 */
1693 if (UNTAG_Bool(REGB1
)) {
1694 /* ../lib/standard/collection/array.nit:273 */
1695 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1696 if (UNTAG_Bool(REGB1
)) {
1697 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1699 /* ../lib/standard/collection/array.nit:724 */
1700 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
1701 /* native_interface/frontier.nit:229 */
1702 CALL_native_interface___frontier___NiVariable___prepare_for_nit(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
1703 /* ../lib/standard/collection/array.nit:274 */
1705 /* ../lib/standard/kernel.nit:238 */
1706 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1707 /* ../lib/standard/collection/array.nit:274 */
1710 /* ../lib/standard/collection/array.nit:272 */
1715 /* native_interface/frontier.nit:232 */
1716 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___init();
1717 /* ../lib/standard/collection/array.nit:269 */
1719 /* ../lib/standard/collection/array.nit:270 */
1720 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1721 if (UNTAG_Bool(REGB1
)) {
1723 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1725 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1726 /* ../lib/standard/collection/array.nit:271 */
1727 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
1728 /* ../lib/standard/collection/array.nit:272 */
1730 /* ../lib/standard/collection/array.nit:24 */
1731 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1732 if (UNTAG_Bool(REGB1
)) {
1734 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1736 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1737 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1738 if (UNTAG_Bool(REGB2
)) {
1740 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1742 /* ../lib/standard/kernel.nit:235 */
1743 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1744 /* ../lib/standard/collection/array.nit:272 */
1745 if (UNTAG_Bool(REGB1
)) {
1746 /* ../lib/standard/collection/array.nit:273 */
1747 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1748 if (UNTAG_Bool(REGB1
)) {
1749 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1751 /* ../lib/standard/collection/array.nit:724 */
1752 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB0
)];
1753 /* native_interface/frontier.nit:233 */
1754 fra
.me
.REG
[6] = CALL_native_interface___frontier___NiVariable___as_arg_to_nit(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1755 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
1756 /* ../lib/standard/collection/array.nit:274 */
1758 /* ../lib/standard/kernel.nit:238 */
1759 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1760 /* ../lib/standard/collection/array.nit:274 */
1763 /* ../lib/standard/collection/array.nit:272 */
1768 /* native_interface/frontier.nit:236 */
1769 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1770 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1771 if (UNTAG_Bool(REGB0
)) {
1772 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 236);
1774 fra
.me
.REG
[4] = CALL_native_interface___frontier___MMSignature___return_ni_variable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1775 /* native_interface/frontier.nit:237 */
1776 fra
.me
.REG
[3] = NEW_Buffer_standard___string___Buffer___init();
1777 /* native_interface/frontier.nit:238 */
1778 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1779 if (UNTAG_Bool(REGB0
)) {
1781 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1782 if (UNTAG_Bool(REGB1
)) {
1783 REGB1
= TAG_Bool(0);
1786 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1790 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1791 if (UNTAG_Bool(REGB0
)) {
1792 /* native_interface/frontier.nit:239 */
1793 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1794 if (UNTAG_Bool(REGB0
)) {
1795 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 239);
1797 CALL_native_interface___frontier___NiVariable___prepare_for_c(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1798 /* native_interface/frontier.nit:240 */
1800 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1801 if (!once_value_15
) {
1802 fra
.me
.REG
[7] = BOX_NativeString("");
1804 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1805 once_value_15
= fra
.me
.REG
[7];
1806 register_static_object(&once_value_15
);
1807 } else fra
.me
.REG
[7] = once_value_15
;
1808 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1809 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1810 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1811 if (UNTAG_Bool(REGB0
)) {
1812 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 240);
1814 fra
.me
.REG
[7] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1815 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1816 if (!once_value_16
) {
1817 fra
.me
.REG
[7] = BOX_NativeString(" = ");
1819 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1820 once_value_16
= fra
.me
.REG
[7];
1821 register_static_object(&once_value_16
);
1822 } else fra
.me
.REG
[7] = once_value_16
;
1823 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1824 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1825 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1826 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1828 /* native_interface/frontier.nit:243 */
1830 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1831 if (!once_value_17
) {
1832 fra
.me
.REG
[7] = BOX_NativeString("");
1834 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1835 once_value_17
= fra
.me
.REG
[7];
1836 register_static_object(&once_value_17
);
1837 } else fra
.me
.REG
[7] = once_value_17
;
1838 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1839 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1840 fra
.me
.REG
[7] = CALL_compiling___compiling_base___MMLocalProperty___super_meth_call(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1842 if (!once_value_18
) {
1843 fra
.me
.REG
[7] = BOX_NativeString("( ");
1845 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1846 once_value_18
= fra
.me
.REG
[7];
1847 register_static_object(&once_value_18
);
1848 } else fra
.me
.REG
[7] = once_value_18
;
1849 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1850 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1851 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1852 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1853 if (UNTAG_Bool(REGB0
)) {
1854 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 243);
1856 fra
.me
.REG
[0] = CALL_native_interface___frontier___MMSignature___recv_ni_variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1857 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___as_arg_to_nit(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1858 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
1859 if (!once_value_19
) {
1860 fra
.me
.REG
[0] = BOX_NativeString(" )");
1862 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1863 once_value_19
= fra
.me
.REG
[0];
1864 register_static_object(&once_value_19
);
1865 } else fra
.me
.REG
[0] = once_value_19
;
1866 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1867 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
1868 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1869 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1870 /* native_interface/frontier.nit:244 */
1872 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1873 if (!once_value_20
) {
1874 fra
.me
.REG
[0] = BOX_NativeString("( ");
1876 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1877 once_value_20
= fra
.me
.REG
[0];
1878 register_static_object(&once_value_20
);
1879 } else fra
.me
.REG
[0] = once_value_20
;
1880 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1881 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
1882 if (!once_value_21
) {
1883 fra
.me
.REG
[0] = BOX_NativeString(", ");
1885 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1886 once_value_21
= fra
.me
.REG
[0];
1887 register_static_object(&once_value_21
);
1888 } else fra
.me
.REG
[0] = once_value_21
;
1889 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1890 fra
.me
.REG
[0] = CALL_standard___string___Collection___join(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
1891 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
1892 if (!once_value_22
) {
1893 fra
.me
.REG
[0] = BOX_NativeString(" );\n");
1895 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1896 once_value_22
= fra
.me
.REG
[0];
1897 register_static_object(&once_value_22
);
1898 } else fra
.me
.REG
[0] = once_value_22
;
1899 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1900 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
1901 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1902 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1903 /* native_interface/frontier.nit:246 */
1904 fra
.me
.REG
[6] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1905 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1906 CALL_compiling_writer___Writer___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
1907 /* native_interface/frontier.nit:249 */
1908 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1909 if (UNTAG_Bool(REGB0
)) {
1911 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1912 if (UNTAG_Bool(REGB1
)) {
1913 REGB1
= TAG_Bool(0);
1916 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1920 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1921 if (UNTAG_Bool(REGB0
)) {
1922 /* native_interface/frontier.nit:250 */
1923 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1925 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1926 if (!once_value_23
) {
1927 fra
.me
.REG
[0] = BOX_NativeString("");
1929 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1930 once_value_23
= fra
.me
.REG
[0];
1931 register_static_object(&once_value_23
);
1932 } else fra
.me
.REG
[0] = once_value_23
;
1933 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1934 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
1935 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1936 if (UNTAG_Bool(REGB0
)) {
1937 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 250);
1939 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1940 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1941 if (UNTAG_Bool(REGB0
)) {
1942 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 250);
1944 fra
.me
.REG
[5] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1945 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1946 if (UNTAG_Bool(REGB0
)) {
1947 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 250);
1949 fra
.me
.REG
[7] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1950 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]);
1951 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1952 if (!once_value_24
) {
1953 fra
.me
.REG
[7] = BOX_NativeString(";\n");
1955 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1956 once_value_24
= fra
.me
.REG
[7];
1957 register_static_object(&once_value_24
);
1958 } else fra
.me
.REG
[7] = once_value_24
;
1959 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1960 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1961 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1962 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1963 /* native_interface/frontier.nit:251 */
1964 fra
.me
.REG
[6] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1966 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1967 if (!once_value_25
) {
1968 fra
.me
.REG
[7] = BOX_NativeString("return ");
1970 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1971 once_value_25
= fra
.me
.REG
[7];
1972 register_static_object(&once_value_25
);
1973 } else fra
.me
.REG
[7] = once_value_25
;
1974 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1975 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
1976 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1977 if (UNTAG_Bool(REGB0
)) {
1978 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 251);
1980 fra
.me
.REG
[4] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1981 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1982 if (!once_value_26
) {
1983 fra
.me
.REG
[4] = BOX_NativeString(";\n");
1985 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1986 once_value_26
= fra
.me
.REG
[4];
1987 register_static_object(&once_value_26
);
1988 } else fra
.me
.REG
[4] = once_value_26
;
1989 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1990 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1991 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1992 CALL_compiling_writer___Writer___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
1994 /* native_interface/frontier.nit:254 */
1995 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1996 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1997 CALL_compiling_writer___Writer___append(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1998 stack_frame_head
= fra
.me
.prev
;
2001 static const char LOCATE_native_interface___frontier___MMSrcMethod___compile_out_to_frontier
[] = "frontier::MMSrcMethod::compile_out_to_frontier";
2002 void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p0
, val_t p1
){
2003 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
2008 static val_t once_value_1
; /* Once value */
2009 static val_t once_value_2
; /* Once value */
2010 static val_t once_value_3
; /* Once value */
2011 static val_t once_value_4
; /* Once value */
2012 static val_t once_value_5
; /* Once value */
2013 static val_t once_value_6
; /* Once value */
2014 static val_t once_value_9
; /* Once value */
2015 static val_t once_value_10
; /* Once value */
2016 static val_t once_value_11
; /* Once value */
2017 static val_t once_value_12
; /* Once value */
2018 static val_t once_value_13
; /* Once value */
2019 static val_t once_value_14
; /* Once value */
2020 static val_t once_value_15
; /* Once value */
2021 static val_t once_value_16
; /* Once value */
2022 static val_t once_value_17
; /* Once value */
2023 static val_t once_value_18
; /* Once value */
2024 static val_t once_value_19
; /* Once value */
2025 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2026 fra
.me
.file
= LOCATE_native_interface___frontier
;
2028 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_out_to_frontier
;
2029 fra
.me
.has_broke
= 0;
2030 fra
.me
.REG_size
= 9;
2031 fra
.me
.nitni_local_ref_head
= NULL
;
2032 fra
.me
.REG
[0] = NIT_NULL
;
2033 fra
.me
.REG
[1] = NIT_NULL
;
2034 fra
.me
.REG
[2] = NIT_NULL
;
2035 fra
.me
.REG
[3] = NIT_NULL
;
2036 fra
.me
.REG
[4] = NIT_NULL
;
2037 fra
.me
.REG
[5] = NIT_NULL
;
2038 fra
.me
.REG
[6] = NIT_NULL
;
2039 fra
.me
.REG
[7] = NIT_NULL
;
2040 fra
.me
.REG
[8] = NIT_NULL
;
2043 /* native_interface/frontier.nit:257 */
2044 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2045 /* native_interface/frontier.nit:266 */
2046 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2047 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2048 if (UNTAG_Bool(REGB0
)) {
2049 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2050 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2052 REGB1
= TAG_Bool(0);
2055 if (UNTAG_Bool(REGB0
)) {
2056 /* native_interface/frontier.nit:267 */
2057 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2058 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2060 /* native_interface/frontier.nit:266 */
2061 REGB1
= TAG_Bool(0);
2064 if (UNTAG_Bool(REGB0
)) {
2065 /* native_interface/frontier.nit:267 */
2066 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2067 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2068 if (UNTAG_Bool(REGB0
)) {
2069 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 267);
2071 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2072 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2073 if (UNTAG_Bool(REGB0
)) {
2075 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2076 if (UNTAG_Bool(REGB1
)) {
2077 REGB1
= TAG_Bool(0);
2080 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2084 if (UNTAG_Bool(REGB0
)) {
2085 REGB0
= TAG_Bool(1);
2087 /* native_interface/frontier.nit:268 */
2088 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2089 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2090 if (UNTAG_Bool(REGB1
)) {
2091 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 268);
2093 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2094 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2095 if (UNTAG_Bool(REGB1
)) {
2096 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 268);
2098 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2099 fra
.me
.REG
[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2100 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2101 if (UNTAG_Bool(REGB1
)) {
2103 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2104 if (UNTAG_Bool(REGB2
)) {
2105 REGB2
= TAG_Bool(0);
2108 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2112 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2113 /* native_interface/frontier.nit:267 */
2117 /* native_interface/frontier.nit:266 */
2118 REGB1
= TAG_Bool(0);
2121 fra
.me
.REG
[3] = REGB0
;
2122 /* native_interface/frontier.nit:271 */
2123 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2125 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2126 if (!once_value_1
) {
2127 fra
.me
.REG
[6] = BOX_NativeString("\n/* out/indirect function for ");
2128 REGB0
= TAG_Int(30);
2129 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2130 once_value_1
= fra
.me
.REG
[6];
2131 register_static_object(&once_value_1
);
2132 } else fra
.me
.REG
[6] = once_value_1
;
2133 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2134 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2135 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2136 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2137 if (!once_value_2
) {
2138 fra
.me
.REG
[6] = BOX_NativeString(" */\n");
2140 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2141 once_value_2
= fra
.me
.REG
[6];
2142 register_static_object(&once_value_2
);
2143 } else fra
.me
.REG
[6] = once_value_2
;
2144 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2145 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2146 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2147 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2148 /* native_interface/frontier.nit:272 */
2149 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2151 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2152 if (!once_value_3
) {
2153 fra
.me
.REG
[6] = BOX_NativeString("");
2155 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2156 once_value_3
= fra
.me
.REG
[6];
2157 register_static_object(&once_value_3
);
2158 } else fra
.me
.REG
[6] = once_value_3
;
2159 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2160 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2161 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMMethod___out_csignature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2162 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2163 if (!once_value_4
) {
2164 fra
.me
.REG
[6] = BOX_NativeString(";\n");
2166 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2167 once_value_4
= fra
.me
.REG
[6];
2168 register_static_object(&once_value_4
);
2169 } else fra
.me
.REG
[6] = once_value_4
;
2170 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2171 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2172 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2173 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
2174 /* native_interface/frontier.nit:275 */
2175 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2177 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2178 if (!once_value_5
) {
2179 fra
.me
.REG
[6] = BOX_NativeString("/* out/indirect function for ");
2180 REGB0
= TAG_Int(29);
2181 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2182 once_value_5
= fra
.me
.REG
[6];
2183 register_static_object(&once_value_5
);
2184 } else fra
.me
.REG
[6] = once_value_5
;
2185 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2186 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2187 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2188 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2189 if (!once_value_6
) {
2190 fra
.me
.REG
[6] = BOX_NativeString(" */\n");
2192 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2193 once_value_6
= fra
.me
.REG
[6];
2194 register_static_object(&once_value_6
);
2195 } else fra
.me
.REG
[6] = once_value_6
;
2196 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2197 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2198 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2199 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2200 /* native_interface/frontier.nit:276 */
2201 fra
.me
.REG
[5] = CALL_native_interface___ni_metamodel___MMMethod___out_csignature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2202 fra
.me
.REG
[5] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[5]);
2203 /* native_interface/frontier.nit:279 */
2204 fra
.me
.REG
[4] = NEW_List_standard___collection___list___List___init();
2205 /* native_interface/frontier.nit:280 */
2206 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2207 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2208 if (UNTAG_Bool(REGB0
)) {
2209 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2210 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2211 if (UNTAG_Bool(REGB0
)) {
2212 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 280);
2214 fra
.me
.REG
[6] = CALL_native_interface___frontier___MMSignature___recv_ni_variable(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2215 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2217 /* native_interface/frontier.nit:281 */
2218 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2219 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2220 if (UNTAG_Bool(REGB0
)) {
2221 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 281);
2223 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___params(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2224 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2225 /* native_interface/frontier.nit:283 */
2226 fra
.me
.REG
[6] = NEW_List_standard___collection___list___List___init();
2227 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
));
2228 /* native_interface/frontier.nit:295 */
2229 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2230 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2231 if (UNTAG_Bool(REGB0
)) {
2232 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 295);
2234 fra
.me
.REG
[3] = CALL_native_interface___frontier___MMSignature___return_ni_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2235 /* native_interface/frontier.nit:296 */
2236 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2237 if (UNTAG_Bool(REGB0
)) {
2239 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2240 if (UNTAG_Bool(REGB1
)) {
2241 REGB1
= TAG_Bool(0);
2244 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2248 if (UNTAG_Bool(REGB0
)) {
2249 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2251 REGB1
= TAG_Bool(0);
2254 if (UNTAG_Bool(REGB0
)) {
2255 /* native_interface/frontier.nit:297 */
2256 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2257 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2258 if (UNTAG_Bool(REGB0
)) {
2259 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 297);
2261 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2262 fra
.me
.REG
[4] = NEW_ReturnVariable_native_interface___frontier___ReturnVariable___init(fra
.me
.REG
[4]);
2263 fra
.me
.REG
[3] = fra
.me
.REG
[4];
2265 /* native_interface/frontier.nit:300 */
2266 fra
.me
.REG
[4] = NEW_Buffer_standard___string___Buffer___init();
2267 /* native_interface/frontier.nit:301 */
2268 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2269 if (UNTAG_Bool(REGB0
)) {
2271 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2272 if (UNTAG_Bool(REGB1
)) {
2273 REGB1
= TAG_Bool(0);
2276 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2280 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2281 if (UNTAG_Bool(REGB0
)) {
2282 /* native_interface/frontier.nit:302 */
2283 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2284 if (UNTAG_Bool(REGB0
)) {
2285 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 302);
2287 CALL_native_interface___frontier___NiVariable___prepare_for_nit(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2288 /* native_interface/frontier.nit:303 */
2290 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2291 if (!once_value_9
) {
2292 fra
.me
.REG
[8] = BOX_NativeString("");
2294 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
2295 once_value_9
= fra
.me
.REG
[8];
2296 register_static_object(&once_value_9
);
2297 } else fra
.me
.REG
[8] = once_value_9
;
2298 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2299 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
2300 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2301 if (UNTAG_Bool(REGB0
)) {
2302 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 303);
2304 fra
.me
.REG
[8] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2305 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
2306 if (!once_value_10
) {
2307 fra
.me
.REG
[8] = BOX_NativeString(" = ");
2309 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
2310 once_value_10
= fra
.me
.REG
[8];
2311 register_static_object(&once_value_10
);
2312 } else fra
.me
.REG
[8] = once_value_10
;
2313 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2314 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
2315 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2316 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
2318 /* native_interface/frontier.nit:306 */
2320 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2321 if (!once_value_11
) {
2322 fra
.me
.REG
[8] = BOX_NativeString("");
2324 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
2325 once_value_11
= fra
.me
.REG
[8];
2326 register_static_object(&once_value_11
);
2327 } else fra
.me
.REG
[8] = once_value_11
;
2328 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2329 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
2330 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMMethod___extern_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2331 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*/;
2332 if (UNTAG_Bool(REGB0
)) {
2334 nit_abort("Cast failed", NULL
, LOCATE_native_interface___frontier
, 306);
2336 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
2337 if (!once_value_12
) {
2338 fra
.me
.REG
[2] = BOX_NativeString("( ");
2340 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2341 once_value_12
= fra
.me
.REG
[2];
2342 register_static_object(&once_value_12
);
2343 } else fra
.me
.REG
[2] = once_value_12
;
2344 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
2346 if (!once_value_13
) {
2347 fra
.me
.REG
[2] = BOX_NativeString(", ");
2349 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2350 once_value_13
= fra
.me
.REG
[2];
2351 register_static_object(&once_value_13
);
2352 } else fra
.me
.REG
[2] = once_value_13
;
2353 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2354 fra
.me
.REG
[2] = CALL_standard___string___Collection___join(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
2355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
2356 if (!once_value_14
) {
2357 fra
.me
.REG
[2] = BOX_NativeString(" );\n");
2359 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2360 once_value_14
= fra
.me
.REG
[2];
2361 register_static_object(&once_value_14
);
2362 } else fra
.me
.REG
[2] = once_value_14
;
2363 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2364 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
2365 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2366 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
2367 /* native_interface/frontier.nit:308 */
2368 fra
.me
.REG
[7] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2369 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2370 CALL_compiling_writer___Writer___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
2371 /* native_interface/frontier.nit:310 */
2372 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2373 if (UNTAG_Bool(REGB0
)) {
2375 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2376 if (UNTAG_Bool(REGB1
)) {
2377 REGB1
= TAG_Bool(0);
2380 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2384 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2385 if (UNTAG_Bool(REGB0
)) {
2386 /* native_interface/frontier.nit:311 */
2387 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2389 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2390 if (!once_value_15
) {
2391 fra
.me
.REG
[2] = BOX_NativeString("");
2393 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2394 once_value_15
= fra
.me
.REG
[2];
2395 register_static_object(&once_value_15
);
2396 } else fra
.me
.REG
[2] = once_value_15
;
2397 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2398 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
2399 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2400 if (UNTAG_Bool(REGB0
)) {
2401 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 311);
2403 fra
.me
.REG
[2] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2404 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2405 if (UNTAG_Bool(REGB0
)) {
2406 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 311);
2408 fra
.me
.REG
[6] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2409 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2410 if (UNTAG_Bool(REGB0
)) {
2411 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 311);
2413 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2414 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]);
2415 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
2416 if (!once_value_16
) {
2417 fra
.me
.REG
[0] = BOX_NativeString(";\n");
2419 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
2420 once_value_16
= fra
.me
.REG
[0];
2421 register_static_object(&once_value_16
);
2422 } else fra
.me
.REG
[0] = once_value_16
;
2423 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2424 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
2425 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2426 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
2428 /* native_interface/frontier.nit:314 */
2429 fra
.me
.REG
[7] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2430 if (!once_value_17
) {
2431 fra
.me
.REG
[4] = BOX_NativeString("nitni_local_ref_clean( );\n");
2432 REGB0
= TAG_Int(27);
2433 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2434 once_value_17
= fra
.me
.REG
[4];
2435 register_static_object(&once_value_17
);
2436 } else fra
.me
.REG
[4] = once_value_17
;
2437 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2438 CALL_compiling_writer___Writer___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
2439 /* native_interface/frontier.nit:317 */
2440 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2441 if (UNTAG_Bool(REGB0
)) {
2443 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2444 if (UNTAG_Bool(REGB1
)) {
2445 REGB1
= TAG_Bool(0);
2448 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2452 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2453 if (UNTAG_Bool(REGB0
)) {
2454 /* native_interface/frontier.nit:318 */
2455 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2457 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2458 if (!once_value_18
) {
2459 fra
.me
.REG
[0] = BOX_NativeString("return ");
2461 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
2462 once_value_18
= fra
.me
.REG
[0];
2463 register_static_object(&once_value_18
);
2464 } else fra
.me
.REG
[0] = once_value_18
;
2465 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2466 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
2467 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2468 if (UNTAG_Bool(REGB0
)) {
2469 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 318);
2471 fra
.me
.REG
[3] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2472 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
2473 if (!once_value_19
) {
2474 fra
.me
.REG
[3] = BOX_NativeString(";\n");
2476 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2477 once_value_19
= fra
.me
.REG
[3];
2478 register_static_object(&once_value_19
);
2479 } else fra
.me
.REG
[3] = once_value_19
;
2480 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2481 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
2482 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2483 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
2485 /* native_interface/frontier.nit:321 */
2486 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2487 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2488 CALL_compiling_writer___Writer___append(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2489 stack_frame_head
= fra
.me
.prev
;
2492 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
){
2493 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2499 static val_t once_value_8
; /* Once value */
2500 /* native_interface/frontier.nit:285 */
2501 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2502 fra
.me
.file
= LOCATE_native_interface___frontier
;
2504 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_out_to_frontier
;
2505 fra
.me
.has_broke
= 0;
2506 fra
.me
.REG_size
= 2;
2507 fra
.me
.nitni_local_ref_head
= NULL
;
2508 fra
.me
.REG
[0] = NIT_NULL
;
2509 fra
.me
.REG
[1] = NIT_NULL
;
2510 fra
.me
.closure_ctx
= closctx_param
;
2511 fra
.me
.closure_funs
= CREG
;
2513 CREG
[0] = clos_fun0
;
2514 /* native_interface/frontier.nit:286 */
2515 REGB0
= TAG_Bool(!UNTAG_Bool(closctx
->REG
[3]));
2516 if (UNTAG_Bool(REGB0
)) {
2517 REGB0
= TAG_Bool(1);
2519 fra
.me
.REG
[1] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2520 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2521 fra
.me
.REG
[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2522 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2523 if (UNTAG_Bool(REGB1
)) {
2525 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2526 if (UNTAG_Bool(REGB2
)) {
2527 REGB2
= TAG_Bool(0);
2530 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2534 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2537 if (UNTAG_Bool(REGB0
)) {
2538 /* native_interface/frontier.nit:287 */
2539 CALL_native_interface___frontier___NiVariable___prepare_for_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[5]);
2540 /* native_interface/frontier.nit:288 */
2541 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___as_arg_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2542 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[6])(closctx
->REG
[6], fra
.me
.REG
[0]);
2544 /* native_interface/frontier.nit:290 */
2545 if (!once_value_8
) {
2546 fra
.me
.REG
[0] = BOX_NativeString("NULL");
2548 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
2549 once_value_8
= fra
.me
.REG
[0];
2550 register_static_object(&once_value_8
);
2551 } else fra
.me
.REG
[0] = once_value_8
;
2552 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2553 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[6])(closctx
->REG
[6], fra
.me
.REG
[0]);
2555 stack_frame_head
= fra
.me
.prev
;
2558 static const char LOCATE_native_interface___frontier___MMSignature___recv_ni_variable
[] = "frontier::MMSignature::recv_ni_variable";
2559 val_t
native_interface___frontier___MMSignature___recv_ni_variable(val_t p0
){
2560 struct {struct stack_frame_t me
;} fra
;
2563 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2564 fra
.me
.file
= LOCATE_native_interface___frontier
;
2566 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___recv_ni_variable
;
2567 fra
.me
.has_broke
= 0;
2568 fra
.me
.REG_size
= 1;
2569 fra
.me
.nitni_local_ref_head
= NULL
;
2570 fra
.me
.REG
[0] = NIT_NULL
;
2572 /* native_interface/frontier.nit:327 */
2573 REGB0
= TAG_Bool(ATTR_native_interface___frontier___MMSignature_____atrecv_ni_variable(fra
.me
.REG
[0])!=NIT_NULL
);
2574 if (UNTAG_Bool(REGB0
)) {
2576 nit_abort("Uninitialized attribute %s", "@recv_ni_variable", LOCATE_native_interface___frontier
, 327);
2578 fra
.me
.REG
[0] = ATTR_native_interface___frontier___MMSignature_____atrecv_ni_variable(fra
.me
.REG
[0]);
2579 stack_frame_head
= fra
.me
.prev
;
2580 return fra
.me
.REG
[0];
2582 static const char LOCATE_native_interface___frontier___MMSignature___recv_ni_variable__eq
[] = "frontier::MMSignature::recv_ni_variable=";
2583 void native_interface___frontier___MMSignature___recv_ni_variable__eq(val_t p0
, val_t p1
){
2584 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2586 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2587 fra
.me
.file
= LOCATE_native_interface___frontier
;
2589 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___recv_ni_variable__eq
;
2590 fra
.me
.has_broke
= 0;
2591 fra
.me
.REG_size
= 2;
2592 fra
.me
.nitni_local_ref_head
= NULL
;
2593 fra
.me
.REG
[0] = NIT_NULL
;
2594 fra
.me
.REG
[1] = NIT_NULL
;
2597 /* native_interface/frontier.nit:327 */
2598 ATTR_native_interface___frontier___MMSignature_____atrecv_ni_variable(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2599 stack_frame_head
= fra
.me
.prev
;
2602 static const char LOCATE_native_interface___frontier___MMSignature___return_ni_variable
[] = "frontier::MMSignature::return_ni_variable";
2603 val_t
native_interface___frontier___MMSignature___return_ni_variable(val_t p0
){
2604 struct {struct stack_frame_t me
;} fra
;
2606 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2607 fra
.me
.file
= LOCATE_native_interface___frontier
;
2609 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___return_ni_variable
;
2610 fra
.me
.has_broke
= 0;
2611 fra
.me
.REG_size
= 1;
2612 fra
.me
.nitni_local_ref_head
= NULL
;
2613 fra
.me
.REG
[0] = NIT_NULL
;
2615 /* native_interface/frontier.nit:328 */
2616 fra
.me
.REG
[0] = ATTR_native_interface___frontier___MMSignature_____atreturn_ni_variable(fra
.me
.REG
[0]);
2617 stack_frame_head
= fra
.me
.prev
;
2618 return fra
.me
.REG
[0];
2620 static const char LOCATE_native_interface___frontier___MMSignature___return_ni_variable__eq
[] = "frontier::MMSignature::return_ni_variable=";
2621 void native_interface___frontier___MMSignature___return_ni_variable__eq(val_t p0
, val_t p1
){
2622 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2624 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2625 fra
.me
.file
= LOCATE_native_interface___frontier
;
2627 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___return_ni_variable__eq
;
2628 fra
.me
.has_broke
= 0;
2629 fra
.me
.REG_size
= 2;
2630 fra
.me
.nitni_local_ref_head
= NULL
;
2631 fra
.me
.REG
[0] = NIT_NULL
;
2632 fra
.me
.REG
[1] = NIT_NULL
;
2635 /* native_interface/frontier.nit:328 */
2636 ATTR_native_interface___frontier___MMSignature_____atreturn_ni_variable(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2637 stack_frame_head
= fra
.me
.prev
;
2640 static const char LOCATE_native_interface___frontier___MMSignature___init
[] = "frontier::MMSignature::(static_type::MMSignature::init)";
2641 void native_interface___frontier___MMSignature___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
2642 int itpos3
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_metamodel___static_type___MMSignature
].i
;
2643 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
2647 if (init_table
[itpos3
]) return;
2648 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2649 fra
.me
.file
= LOCATE_native_interface___frontier
;
2651 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___init
;
2652 fra
.me
.has_broke
= 0;
2653 fra
.me
.REG_size
= 7;
2654 fra
.me
.nitni_local_ref_head
= NULL
;
2655 fra
.me
.REG
[0] = NIT_NULL
;
2656 fra
.me
.REG
[1] = NIT_NULL
;
2657 fra
.me
.REG
[2] = NIT_NULL
;
2658 fra
.me
.REG
[3] = NIT_NULL
;
2659 fra
.me
.REG
[4] = NIT_NULL
;
2660 fra
.me
.REG
[5] = NIT_NULL
;
2661 fra
.me
.REG
[6] = NIT_NULL
;
2666 /* native_interface/frontier.nit:329 */
2667 fra
.me
.REG
[4] = fra
.me
.REG
[0];
2668 fra
.me
.REG
[5] = fra
.me
.REG
[2];
2669 fra
.me
.REG
[6] = fra
.me
.REG
[3];
2670 /* native_interface/frontier.nit:331 */
2671 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
);
2672 /* native_interface/frontier.nit:333 */
2673 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2674 if (UNTAG_Bool(REGB0
)) {
2676 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2677 if (UNTAG_Bool(REGB1
)) {
2678 REGB1
= TAG_Bool(0);
2681 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
2685 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2686 if (UNTAG_Bool(REGB0
)) {
2687 /* native_interface/frontier.nit:334 */
2688 fra
.me
.REG
[5] = NEW_ReturnVariable_native_interface___frontier___ReturnVariable___init(fra
.me
.REG
[5]);
2689 CALL_native_interface___frontier___MMSignature___return_ni_variable__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2691 /* native_interface/frontier.nit:336 */
2692 CALL_native_interface___frontier___MMSignature___return_ni_variable__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2694 /* native_interface/frontier.nit:338 */
2695 fra
.me
.REG
[6] = NEW_ReceiverVariable_native_interface___frontier___ReceiverVariable___init(fra
.me
.REG
[6]);
2696 CALL_native_interface___frontier___MMSignature___recv_ni_variable__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2697 stack_frame_head
= fra
.me
.prev
;
2698 init_table
[itpos3
] = 1;
2701 static const char LOCATE_native_interface___frontier___MMSignature___compile_frontier
[] = "frontier::MMSignature::compile_frontier";
2702 void native_interface___frontier___MMSignature___compile_frontier(val_t p0
, val_t p1
){
2703 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2708 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2709 fra
.me
.file
= LOCATE_native_interface___frontier
;
2711 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___compile_frontier
;
2712 fra
.me
.has_broke
= 0;
2713 fra
.me
.REG_size
= 6;
2714 fra
.me
.nitni_local_ref_head
= NULL
;
2715 fra
.me
.REG
[0] = NIT_NULL
;
2716 fra
.me
.REG
[1] = NIT_NULL
;
2717 fra
.me
.REG
[2] = NIT_NULL
;
2718 fra
.me
.REG
[3] = NIT_NULL
;
2719 fra
.me
.REG
[4] = NIT_NULL
;
2720 fra
.me
.REG
[5] = NIT_NULL
;
2723 /* native_interface/frontier.nit:344 */
2724 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___types(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2725 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2726 fra
.me
.REG
[3] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2727 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2728 /* native_interface/frontier.nit:347 */
2729 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2730 /* ../lib/standard/collection/array.nit:269 */
2732 /* ../lib/standard/collection/array.nit:270 */
2733 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
2734 if (UNTAG_Bool(REGB1
)) {
2736 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2738 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
2739 /* ../lib/standard/collection/array.nit:271 */
2740 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
2741 /* ../lib/standard/collection/array.nit:272 */
2743 /* ../lib/standard/collection/array.nit:24 */
2744 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
2745 if (UNTAG_Bool(REGB1
)) {
2747 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2749 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
2750 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2751 if (UNTAG_Bool(REGB2
)) {
2753 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2755 /* ../lib/standard/kernel.nit:235 */
2756 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2757 /* ../lib/standard/collection/array.nit:272 */
2758 if (UNTAG_Bool(REGB1
)) {
2759 /* ../lib/standard/collection/array.nit:273 */
2760 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2761 if (UNTAG_Bool(REGB1
)) {
2762 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2764 /* ../lib/standard/collection/array.nit:724 */
2765 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
2766 /* native_interface/frontier.nit:347 */
2767 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___types(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2768 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMParam___mmtype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2769 fra
.me
.REG
[4] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2770 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
2771 /* ../lib/standard/collection/array.nit:274 */
2773 /* ../lib/standard/kernel.nit:238 */
2774 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2775 /* ../lib/standard/collection/array.nit:274 */
2778 /* ../lib/standard/collection/array.nit:272 */
2783 /* native_interface/frontier.nit:350 */
2784 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2785 /* native_interface/frontier.nit:351 */
2786 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2787 if (UNTAG_Bool(REGB0
)) {
2789 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2790 if (UNTAG_Bool(REGB1
)) {
2791 REGB1
= TAG_Bool(0);
2794 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2798 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2799 if (UNTAG_Bool(REGB0
)) {
2800 /* native_interface/frontier.nit:352 */
2801 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___types(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2802 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2803 if (UNTAG_Bool(REGB0
)) {
2804 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 352);
2806 fra
.me
.REG
[0] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2807 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2809 stack_frame_head
= fra
.me
.prev
;
2812 static const char LOCATE_native_interface___frontier___FrontierVisitor___header_top
[] = "frontier::FrontierVisitor::header_top";
2813 val_t
native_interface___frontier___FrontierVisitor___header_top(val_t p0
){
2814 struct {struct stack_frame_t me
;} fra
;
2817 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2818 fra
.me
.file
= LOCATE_native_interface___frontier
;
2820 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___header_top
;
2821 fra
.me
.has_broke
= 0;
2822 fra
.me
.REG_size
= 1;
2823 fra
.me
.nitni_local_ref_head
= NULL
;
2824 fra
.me
.REG
[0] = NIT_NULL
;
2826 /* native_interface/frontier.nit:360 */
2827 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra
.me
.REG
[0])!=NIT_NULL
);
2828 if (UNTAG_Bool(REGB0
)) {
2830 nit_abort("Uninitialized attribute %s", "@header_top", LOCATE_native_interface___frontier
, 360);
2832 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra
.me
.REG
[0]);
2833 stack_frame_head
= fra
.me
.prev
;
2834 return fra
.me
.REG
[0];
2836 static const char LOCATE_native_interface___frontier___FrontierVisitor___header_top__eq
[] = "frontier::FrontierVisitor::header_top=";
2837 void native_interface___frontier___FrontierVisitor___header_top__eq(val_t p0
, val_t p1
){
2838 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2840 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2841 fra
.me
.file
= LOCATE_native_interface___frontier
;
2843 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___header_top__eq
;
2844 fra
.me
.has_broke
= 0;
2845 fra
.me
.REG_size
= 2;
2846 fra
.me
.nitni_local_ref_head
= NULL
;
2847 fra
.me
.REG
[0] = NIT_NULL
;
2848 fra
.me
.REG
[1] = NIT_NULL
;
2851 /* native_interface/frontier.nit:360 */
2852 ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2853 stack_frame_head
= fra
.me
.prev
;
2856 static const char LOCATE_native_interface___frontier___FrontierVisitor___header
[] = "frontier::FrontierVisitor::header";
2857 val_t
native_interface___frontier___FrontierVisitor___header(val_t p0
){
2858 struct {struct stack_frame_t me
;} fra
;
2861 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2862 fra
.me
.file
= LOCATE_native_interface___frontier
;
2864 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___header
;
2865 fra
.me
.has_broke
= 0;
2866 fra
.me
.REG_size
= 1;
2867 fra
.me
.nitni_local_ref_head
= NULL
;
2868 fra
.me
.REG
[0] = NIT_NULL
;
2870 /* native_interface/frontier.nit:363 */
2871 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra
.me
.REG
[0])!=NIT_NULL
);
2872 if (UNTAG_Bool(REGB0
)) {
2874 nit_abort("Uninitialized attribute %s", "@header", LOCATE_native_interface___frontier
, 363);
2876 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra
.me
.REG
[0]);
2877 stack_frame_head
= fra
.me
.prev
;
2878 return fra
.me
.REG
[0];
2880 static const char LOCATE_native_interface___frontier___FrontierVisitor___header__eq
[] = "frontier::FrontierVisitor::header=";
2881 void native_interface___frontier___FrontierVisitor___header__eq(val_t p0
, val_t p1
){
2882 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2884 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2885 fra
.me
.file
= LOCATE_native_interface___frontier
;
2887 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___header__eq
;
2888 fra
.me
.has_broke
= 0;
2889 fra
.me
.REG_size
= 2;
2890 fra
.me
.nitni_local_ref_head
= NULL
;
2891 fra
.me
.REG
[0] = NIT_NULL
;
2892 fra
.me
.REG
[1] = NIT_NULL
;
2895 /* native_interface/frontier.nit:363 */
2896 ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2897 stack_frame_head
= fra
.me
.prev
;
2900 static const char LOCATE_native_interface___frontier___FrontierVisitor___body
[] = "frontier::FrontierVisitor::body";
2901 val_t
native_interface___frontier___FrontierVisitor___body(val_t p0
){
2902 struct {struct stack_frame_t me
;} fra
;
2905 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2906 fra
.me
.file
= LOCATE_native_interface___frontier
;
2908 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___body
;
2909 fra
.me
.has_broke
= 0;
2910 fra
.me
.REG_size
= 1;
2911 fra
.me
.nitni_local_ref_head
= NULL
;
2912 fra
.me
.REG
[0] = NIT_NULL
;
2914 /* native_interface/frontier.nit:366 */
2915 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra
.me
.REG
[0])!=NIT_NULL
);
2916 if (UNTAG_Bool(REGB0
)) {
2918 nit_abort("Uninitialized attribute %s", "@body", LOCATE_native_interface___frontier
, 366);
2920 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra
.me
.REG
[0]);
2921 stack_frame_head
= fra
.me
.prev
;
2922 return fra
.me
.REG
[0];
2924 static const char LOCATE_native_interface___frontier___FrontierVisitor___body__eq
[] = "frontier::FrontierVisitor::body=";
2925 void native_interface___frontier___FrontierVisitor___body__eq(val_t p0
, val_t p1
){
2926 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2928 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2929 fra
.me
.file
= LOCATE_native_interface___frontier
;
2931 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___body__eq
;
2932 fra
.me
.has_broke
= 0;
2933 fra
.me
.REG_size
= 2;
2934 fra
.me
.nitni_local_ref_head
= NULL
;
2935 fra
.me
.REG
[0] = NIT_NULL
;
2936 fra
.me
.REG
[1] = NIT_NULL
;
2939 /* native_interface/frontier.nit:366 */
2940 ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2941 stack_frame_head
= fra
.me
.prev
;
2944 static const char LOCATE_native_interface___frontier___FrontierVisitor___friendlys
[] = "frontier::FrontierVisitor::friendlys";
2945 val_t
native_interface___frontier___FrontierVisitor___friendlys(val_t p0
){
2946 struct {struct stack_frame_t me
;} fra
;
2949 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2950 fra
.me
.file
= LOCATE_native_interface___frontier
;
2952 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___friendlys
;
2953 fra
.me
.has_broke
= 0;
2954 fra
.me
.REG_size
= 1;
2955 fra
.me
.nitni_local_ref_head
= NULL
;
2956 fra
.me
.REG
[0] = NIT_NULL
;
2958 /* native_interface/frontier.nit:369 */
2959 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra
.me
.REG
[0])!=NIT_NULL
);
2960 if (UNTAG_Bool(REGB0
)) {
2962 nit_abort("Uninitialized attribute %s", "@friendlys", LOCATE_native_interface___frontier
, 369);
2964 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra
.me
.REG
[0]);
2965 stack_frame_head
= fra
.me
.prev
;
2966 return fra
.me
.REG
[0];
2968 static const char LOCATE_native_interface___frontier___FrontierVisitor___friendlys__eq
[] = "frontier::FrontierVisitor::friendlys=";
2969 void native_interface___frontier___FrontierVisitor___friendlys__eq(val_t p0
, val_t p1
){
2970 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2972 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2973 fra
.me
.file
= LOCATE_native_interface___frontier
;
2975 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___friendlys__eq
;
2976 fra
.me
.has_broke
= 0;
2977 fra
.me
.REG_size
= 2;
2978 fra
.me
.nitni_local_ref_head
= NULL
;
2979 fra
.me
.REG
[0] = NIT_NULL
;
2980 fra
.me
.REG
[1] = NIT_NULL
;
2983 /* native_interface/frontier.nit:369 */
2984 ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2985 stack_frame_head
= fra
.me
.prev
;
2988 static const char LOCATE_native_interface___frontier___FrontierVisitor___types
[] = "frontier::FrontierVisitor::types";
2989 val_t
native_interface___frontier___FrontierVisitor___types(val_t p0
){
2990 struct {struct stack_frame_t me
;} fra
;
2993 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2994 fra
.me
.file
= LOCATE_native_interface___frontier
;
2996 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___types
;
2997 fra
.me
.has_broke
= 0;
2998 fra
.me
.REG_size
= 1;
2999 fra
.me
.nitni_local_ref_head
= NULL
;
3000 fra
.me
.REG
[0] = NIT_NULL
;
3002 /* native_interface/frontier.nit:372 */
3003 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra
.me
.REG
[0])!=NIT_NULL
);
3004 if (UNTAG_Bool(REGB0
)) {
3006 nit_abort("Uninitialized attribute %s", "@types", LOCATE_native_interface___frontier
, 372);
3008 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra
.me
.REG
[0]);
3009 stack_frame_head
= fra
.me
.prev
;
3010 return fra
.me
.REG
[0];
3012 static const char LOCATE_native_interface___frontier___FrontierVisitor___types__eq
[] = "frontier::FrontierVisitor::types=";
3013 void native_interface___frontier___FrontierVisitor___types__eq(val_t p0
, val_t p1
){
3014 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3016 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3017 fra
.me
.file
= LOCATE_native_interface___frontier
;
3019 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___types__eq
;
3020 fra
.me
.has_broke
= 0;
3021 fra
.me
.REG_size
= 2;
3022 fra
.me
.nitni_local_ref_head
= NULL
;
3023 fra
.me
.REG
[0] = NIT_NULL
;
3024 fra
.me
.REG
[1] = NIT_NULL
;
3027 /* native_interface/frontier.nit:372 */
3028 ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
3029 stack_frame_head
= fra
.me
.prev
;
3032 static const char LOCATE_native_interface___frontier___FrontierVisitor___casts
[] = "frontier::FrontierVisitor::casts";
3033 val_t
native_interface___frontier___FrontierVisitor___casts(val_t p0
){
3034 struct {struct stack_frame_t me
;} fra
;
3037 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3038 fra
.me
.file
= LOCATE_native_interface___frontier
;
3040 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___casts
;
3041 fra
.me
.has_broke
= 0;
3042 fra
.me
.REG_size
= 1;
3043 fra
.me
.nitni_local_ref_head
= NULL
;
3044 fra
.me
.REG
[0] = NIT_NULL
;
3046 /* native_interface/frontier.nit:375 */
3047 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra
.me
.REG
[0])!=NIT_NULL
);
3048 if (UNTAG_Bool(REGB0
)) {
3050 nit_abort("Uninitialized attribute %s", "@casts", LOCATE_native_interface___frontier
, 375);
3052 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra
.me
.REG
[0]);
3053 stack_frame_head
= fra
.me
.prev
;
3054 return fra
.me
.REG
[0];
3056 static const char LOCATE_native_interface___frontier___FrontierVisitor___casts__eq
[] = "frontier::FrontierVisitor::casts=";
3057 void native_interface___frontier___FrontierVisitor___casts__eq(val_t p0
, val_t p1
){
3058 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3060 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3061 fra
.me
.file
= LOCATE_native_interface___frontier
;
3063 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___casts__eq
;
3064 fra
.me
.has_broke
= 0;
3065 fra
.me
.REG_size
= 2;
3066 fra
.me
.nitni_local_ref_head
= NULL
;
3067 fra
.me
.REG
[0] = NIT_NULL
;
3068 fra
.me
.REG
[1] = NIT_NULL
;
3071 /* native_interface/frontier.nit:375 */
3072 ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
3073 stack_frame_head
= fra
.me
.prev
;
3076 static const char LOCATE_native_interface___frontier___FrontierVisitor___mmmodule
[] = "frontier::FrontierVisitor::mmmodule";
3077 val_t
native_interface___frontier___FrontierVisitor___mmmodule(val_t p0
){
3078 struct {struct stack_frame_t me
;} fra
;
3081 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3082 fra
.me
.file
= LOCATE_native_interface___frontier
;
3084 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___mmmodule
;
3085 fra
.me
.has_broke
= 0;
3086 fra
.me
.REG_size
= 1;
3087 fra
.me
.nitni_local_ref_head
= NULL
;
3088 fra
.me
.REG
[0] = NIT_NULL
;
3090 /* native_interface/frontier.nit:378 */
3091 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra
.me
.REG
[0])!=NIT_NULL
);
3092 if (UNTAG_Bool(REGB0
)) {
3094 nit_abort("Uninitialized attribute %s", "@mmmodule", LOCATE_native_interface___frontier
, 378);
3096 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra
.me
.REG
[0]);
3097 stack_frame_head
= fra
.me
.prev
;
3098 return fra
.me
.REG
[0];
3100 static const char LOCATE_native_interface___frontier___FrontierVisitor___mmmodule__eq
[] = "frontier::FrontierVisitor::mmmodule=";
3101 void native_interface___frontier___FrontierVisitor___mmmodule__eq(val_t p0
, val_t p1
){
3102 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3104 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3105 fra
.me
.file
= LOCATE_native_interface___frontier
;
3107 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___mmmodule__eq
;
3108 fra
.me
.has_broke
= 0;
3109 fra
.me
.REG_size
= 2;
3110 fra
.me
.nitni_local_ref_head
= NULL
;
3111 fra
.me
.REG
[0] = NIT_NULL
;
3112 fra
.me
.REG
[1] = NIT_NULL
;
3115 /* native_interface/frontier.nit:378 */
3116 ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
3117 stack_frame_head
= fra
.me
.prev
;
3120 static const char LOCATE_native_interface___frontier___FrontierVisitor___cprogram
[] = "frontier::FrontierVisitor::cprogram";
3121 val_t
native_interface___frontier___FrontierVisitor___cprogram(val_t p0
){
3122 struct {struct stack_frame_t me
;} fra
;
3125 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3126 fra
.me
.file
= LOCATE_native_interface___frontier
;
3128 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___cprogram
;
3129 fra
.me
.has_broke
= 0;
3130 fra
.me
.REG_size
= 1;
3131 fra
.me
.nitni_local_ref_head
= NULL
;
3132 fra
.me
.REG
[0] = NIT_NULL
;
3134 /* native_interface/frontier.nit:380 */
3135 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra
.me
.REG
[0])!=NIT_NULL
);
3136 if (UNTAG_Bool(REGB0
)) {
3138 nit_abort("Uninitialized attribute %s", "@cprogram", LOCATE_native_interface___frontier
, 380);
3140 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra
.me
.REG
[0]);
3141 stack_frame_head
= fra
.me
.prev
;
3142 return fra
.me
.REG
[0];
3144 static const char LOCATE_native_interface___frontier___FrontierVisitor___cprogram__eq
[] = "frontier::FrontierVisitor::cprogram=";
3145 void native_interface___frontier___FrontierVisitor___cprogram__eq(val_t p0
, val_t p1
){
3146 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3148 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3149 fra
.me
.file
= LOCATE_native_interface___frontier
;
3151 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___cprogram__eq
;
3152 fra
.me
.has_broke
= 0;
3153 fra
.me
.REG_size
= 2;
3154 fra
.me
.nitni_local_ref_head
= NULL
;
3155 fra
.me
.REG
[0] = NIT_NULL
;
3156 fra
.me
.REG
[1] = NIT_NULL
;
3159 /* native_interface/frontier.nit:380 */
3160 ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
3161 stack_frame_head
= fra
.me
.prev
;
3164 static const char LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
[] = "frontier::FrontierVisitor::compile_cached";
3165 void native_interface___frontier___FrontierVisitor___compile_cached(val_t p0
){
3166 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3168 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3169 fra
.me
.file
= LOCATE_native_interface___frontier
;
3171 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
;
3172 fra
.me
.has_broke
= 0;
3173 fra
.me
.REG_size
= 2;
3174 fra
.me
.nitni_local_ref_head
= NULL
;
3175 fra
.me
.REG
[0] = NIT_NULL
;
3176 fra
.me
.REG
[1] = NIT_NULL
;
3178 /* native_interface/frontier.nit:386 */
3179 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___types(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3180 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
));
3181 /* native_interface/frontier.nit:389 */
3182 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___friendlys(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3183 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
));
3184 /* native_interface/frontier.nit:392 */
3185 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___casts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3186 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
));
3187 stack_frame_head
= fra
.me
.prev
;
3190 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
){
3191 struct {struct stack_frame_t me
;} fra
;
3194 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3195 fra
.me
.file
= LOCATE_native_interface___frontier
;
3197 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
;
3198 fra
.me
.has_broke
= 0;
3199 fra
.me
.REG_size
= 1;
3200 fra
.me
.nitni_local_ref_head
= NULL
;
3201 fra
.me
.REG
[0] = NIT_NULL
;
3202 fra
.me
.closure_ctx
= closctx_param
;
3203 fra
.me
.closure_funs
= CREG
;
3205 CREG
[0] = clos_fun0
;
3206 CALL_native_interface___frontier___MMType___compile_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[0]);
3207 stack_frame_head
= fra
.me
.prev
;
3210 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
){
3211 struct {struct stack_frame_t me
;} fra
;
3214 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3215 fra
.me
.file
= LOCATE_native_interface___frontier
;
3217 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
;
3218 fra
.me
.has_broke
= 0;
3219 fra
.me
.REG_size
= 1;
3220 fra
.me
.nitni_local_ref_head
= NULL
;
3221 fra
.me
.REG
[0] = NIT_NULL
;
3222 fra
.me
.closure_ctx
= closctx_param
;
3223 fra
.me
.closure_funs
= CREG
;
3225 CREG
[0] = clos_fun0
;
3226 CALL_native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[0]);
3227 stack_frame_head
= fra
.me
.prev
;
3230 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
){
3231 struct {struct stack_frame_t me
;} fra
;
3234 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3235 fra
.me
.file
= LOCATE_native_interface___frontier
;
3237 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
;
3238 fra
.me
.has_broke
= 0;
3239 fra
.me
.REG_size
= 1;
3240 fra
.me
.nitni_local_ref_head
= NULL
;
3241 fra
.me
.REG
[0] = NIT_NULL
;
3242 fra
.me
.closure_ctx
= closctx_param
;
3243 fra
.me
.closure_funs
= CREG
;
3245 CREG
[0] = clos_fun0
;
3246 CALL_native_interface___frontier___MMImportedCast___compile_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[0]);
3247 stack_frame_head
= fra
.me
.prev
;
3250 static const char LOCATE_native_interface___frontier___FrontierVisitor___write_to_files
[] = "frontier::FrontierVisitor::write_to_files";
3251 void native_interface___frontier___FrontierVisitor___write_to_files(val_t p0
, val_t p1
){
3252 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3255 static val_t once_value_1
; /* Once value */
3256 static val_t once_value_2
; /* Once value */
3257 static val_t once_value_3
; /* Once value */
3258 static val_t once_value_4
; /* Once value */
3259 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3260 fra
.me
.file
= LOCATE_native_interface___frontier
;
3262 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___write_to_files
;
3263 fra
.me
.has_broke
= 0;
3264 fra
.me
.REG_size
= 6;
3265 fra
.me
.nitni_local_ref_head
= NULL
;
3266 fra
.me
.REG
[0] = NIT_NULL
;
3267 fra
.me
.REG
[1] = NIT_NULL
;
3268 fra
.me
.REG
[2] = NIT_NULL
;
3269 fra
.me
.REG
[3] = NIT_NULL
;
3270 fra
.me
.REG
[4] = NIT_NULL
;
3271 fra
.me
.REG
[5] = NIT_NULL
;
3274 /* native_interface/frontier.nit:397 */
3276 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3277 if (!once_value_1
) {
3278 fra
.me
.REG
[3] = BOX_NativeString("");
3280 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3281 once_value_1
= fra
.me
.REG
[3];
3282 register_static_object(&once_value_1
);
3283 } else fra
.me
.REG
[3] = once_value_1
;
3284 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3285 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3286 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3287 if (!once_value_2
) {
3288 fra
.me
.REG
[3] = BOX_NativeString("._nitni.h");
3290 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3291 once_value_2
= fra
.me
.REG
[3];
3292 register_static_object(&once_value_2
);
3293 } else fra
.me
.REG
[3] = once_value_2
;
3294 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3295 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3296 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3297 /* native_interface/frontier.nit:398 */
3298 fra
.me
.REG
[3] = NEW_OFStream_standard___file___OFStream___open(fra
.me
.REG
[2]);
3299 /* native_interface/frontier.nit:399 */
3300 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3301 CALL_compiling_writer___Writer___write_to_stream(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3302 /* native_interface/frontier.nit:400 */
3303 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3304 CALL_compiling_writer___Writer___write_to_stream(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3305 /* native_interface/frontier.nit:401 */
3306 CALL_standard___stream___IOS___close(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3307 /* native_interface/frontier.nit:403 */
3309 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3310 if (!once_value_3
) {
3311 fra
.me
.REG
[5] = BOX_NativeString("");
3313 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3314 once_value_3
= fra
.me
.REG
[5];
3315 register_static_object(&once_value_3
);
3316 } else fra
.me
.REG
[5] = once_value_3
;
3317 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3318 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3319 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
3320 if (!once_value_4
) {
3321 fra
.me
.REG
[1] = BOX_NativeString("._nitni.c");
3323 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
3324 once_value_4
= fra
.me
.REG
[1];
3325 register_static_object(&once_value_4
);
3326 } else fra
.me
.REG
[1] = once_value_4
;
3327 fra
.me
.REG
[1] = fra
.me
.REG
[1];
3328 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
3329 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3330 fra
.me
.REG
[2] = fra
.me
.REG
[4];
3331 /* native_interface/frontier.nit:404 */
3332 fra
.me
.REG
[2] = NEW_OFStream_standard___file___OFStream___open(fra
.me
.REG
[2]);
3333 fra
.me
.REG
[3] = fra
.me
.REG
[2];
3334 /* native_interface/frontier.nit:405 */
3335 fra
.me
.REG
[0] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3336 CALL_compiling_writer___Writer___write_to_stream(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
3337 /* native_interface/frontier.nit:406 */
3338 CALL_standard___stream___IOS___close(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3339 stack_frame_head
= fra
.me
.prev
;
3342 static const char LOCATE_native_interface___frontier___FrontierVisitor___init
[] = "frontier::FrontierVisitor::init";
3343 void native_interface___frontier___FrontierVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
3344 int itpos4
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_native_interface___frontier___FrontierVisitor
].i
;
3345 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3347 if (init_table
[itpos4
]) return;
3348 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3349 fra
.me
.file
= LOCATE_native_interface___frontier
;
3351 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___init
;
3352 fra
.me
.has_broke
= 0;
3353 fra
.me
.REG_size
= 3;
3354 fra
.me
.nitni_local_ref_head
= NULL
;
3355 fra
.me
.REG
[0] = NIT_NULL
;
3356 fra
.me
.REG
[1] = NIT_NULL
;
3357 fra
.me
.REG
[2] = NIT_NULL
;
3361 ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
3362 ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3363 stack_frame_head
= fra
.me
.prev
;
3364 init_table
[itpos4
] = 1;
3367 static const char LOCATE_native_interface___frontier___MMImportedCast___compile_to_frontier
[] = "frontier::MMImportedCast::compile_to_frontier";
3368 void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
, val_t p1
){
3369 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3373 static val_t once_value_1
; /* Once value */
3374 static val_t once_value_2
; /* Once value */
3375 static val_t once_value_3
; /* Once value */
3376 static val_t once_value_4
; /* Once value */
3377 static val_t once_value_5
; /* Once value */
3378 static val_t once_value_6
; /* Once value */
3379 static val_t once_value_7
; /* Once value */
3380 static val_t once_value_8
; /* Once value */
3381 static val_t once_value_9
; /* Once value */
3382 static val_t once_value_10
; /* Once value */
3383 static val_t once_value_11
; /* Once value */
3384 static val_t once_value_12
; /* Once value */
3385 static val_t once_value_13
; /* Once value */
3386 static val_t once_value_14
; /* Once value */
3387 static val_t once_value_15
; /* Once value */
3388 static val_t once_value_16
; /* Once value */
3389 static val_t once_value_17
; /* Once value */
3390 static val_t once_value_18
; /* Once value */
3391 static val_t once_value_19
; /* Once value */
3392 static val_t once_value_20
; /* Once value */
3393 static val_t once_value_21
; /* Once value */
3394 static val_t once_value_22
; /* Once value */
3395 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3396 fra
.me
.file
= LOCATE_native_interface___frontier
;
3398 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___compile_to_frontier
;
3399 fra
.me
.has_broke
= 0;
3400 fra
.me
.REG_size
= 5;
3401 fra
.me
.nitni_local_ref_head
= NULL
;
3402 fra
.me
.REG
[0] = NIT_NULL
;
3403 fra
.me
.REG
[1] = NIT_NULL
;
3404 fra
.me
.REG
[2] = NIT_NULL
;
3405 fra
.me
.REG
[3] = NIT_NULL
;
3406 fra
.me
.REG
[4] = NIT_NULL
;
3409 /* native_interface/frontier.nit:415 */
3410 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3411 if (UNTAG_Bool(REGB0
)) {
3412 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_not_null_to_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3414 REGB1
= TAG_Bool(0);
3417 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3418 if (UNTAG_Bool(REGB0
)) {
3419 /* native_interface/frontier.nit:416 */
3420 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3422 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3423 if (!once_value_1
) {
3424 fra
.me
.REG
[4] = BOX_NativeString("\n/* Type check for ");
3425 REGB0
= TAG_Int(19);
3426 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3427 once_value_1
= fra
.me
.REG
[4];
3428 register_static_object(&once_value_1
);
3429 } else fra
.me
.REG
[4] = once_value_1
;
3430 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3431 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3432 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3433 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3434 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3435 if (!once_value_2
) {
3436 fra
.me
.REG
[4] = BOX_NativeString(" with ");
3438 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3439 once_value_2
= fra
.me
.REG
[4];
3440 register_static_object(&once_value_2
);
3441 } else fra
.me
.REG
[4] = once_value_2
;
3442 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3443 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3444 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3445 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3446 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3447 if (!once_value_3
) {
3448 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
3450 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3451 once_value_3
= fra
.me
.REG
[4];
3452 register_static_object(&once_value_3
);
3453 } else fra
.me
.REG
[4] = once_value_3
;
3454 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3455 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3456 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3457 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3458 /* native_interface/frontier.nit:417 */
3459 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3461 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3462 if (!once_value_4
) {
3463 fra
.me
.REG
[4] = BOX_NativeString("");
3465 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3466 once_value_4
= fra
.me
.REG
[4];
3467 register_static_object(&once_value_4
);
3468 } else fra
.me
.REG
[4] = once_value_4
;
3469 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3471 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3472 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]);
3473 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3474 if (!once_value_5
) {
3475 fra
.me
.REG
[4] = BOX_NativeString(";\n");
3477 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3478 once_value_5
= fra
.me
.REG
[4];
3479 register_static_object(&once_value_5
);
3480 } else fra
.me
.REG
[4] = once_value_5
;
3481 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3482 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3483 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3484 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3485 /* native_interface/frontier.nit:419 */
3486 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3488 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3489 if (!once_value_6
) {
3490 fra
.me
.REG
[4] = BOX_NativeString("#ifndef ");
3492 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3493 once_value_6
= fra
.me
.REG
[4];
3494 register_static_object(&once_value_6
);
3495 } else fra
.me
.REG
[4] = once_value_6
;
3496 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3497 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3498 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3499 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3500 if (!once_value_7
) {
3501 fra
.me
.REG
[4] = BOX_NativeString("\n");
3503 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3504 once_value_7
= fra
.me
.REG
[4];
3505 register_static_object(&once_value_7
);
3506 } else fra
.me
.REG
[4] = once_value_7
;
3507 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3508 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3509 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3510 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3511 /* native_interface/frontier.nit:420 */
3512 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3514 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3515 if (!once_value_8
) {
3516 fra
.me
.REG
[4] = BOX_NativeString("#define ");
3518 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3519 once_value_8
= fra
.me
.REG
[4];
3520 register_static_object(&once_value_8
);
3521 } else fra
.me
.REG
[4] = once_value_8
;
3522 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3523 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3524 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3525 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3526 if (!once_value_9
) {
3527 fra
.me
.REG
[4] = BOX_NativeString(" ");
3529 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3530 once_value_9
= fra
.me
.REG
[4];
3531 register_static_object(&once_value_9
);
3532 } else fra
.me
.REG
[4] = once_value_9
;
3533 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3534 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3535 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3536 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]);
3537 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3538 if (!once_value_10
) {
3539 fra
.me
.REG
[4] = BOX_NativeString("\n");
3541 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3542 once_value_10
= fra
.me
.REG
[4];
3543 register_static_object(&once_value_10
);
3544 } else fra
.me
.REG
[4] = once_value_10
;
3545 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3546 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3547 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3548 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3549 /* native_interface/frontier.nit:421 */
3550 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3551 if (!once_value_11
) {
3552 fra
.me
.REG
[3] = BOX_NativeString("#endif\n");
3554 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3555 once_value_11
= fra
.me
.REG
[3];
3556 register_static_object(&once_value_11
);
3557 } else fra
.me
.REG
[3] = once_value_11
;
3558 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3559 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3560 /* native_interface/frontier.nit:423 */
3561 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3562 fra
.me
.REG
[3] = CALL_native_interface___frontier___MMImportedCast___compile_is(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
3563 /* native_interface/frontier.nit:424 */
3564 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3565 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3566 CALL_compiling_writer___Writer___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3568 /* native_interface/frontier.nit:428 */
3569 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3571 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3572 if (!once_value_12
) {
3573 fra
.me
.REG
[4] = BOX_NativeString("\n/* Cast for ");
3574 REGB0
= TAG_Int(13);
3575 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3576 once_value_12
= fra
.me
.REG
[4];
3577 register_static_object(&once_value_12
);
3578 } else fra
.me
.REG
[4] = once_value_12
;
3579 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3580 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3581 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3582 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3583 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3584 if (!once_value_13
) {
3585 fra
.me
.REG
[4] = BOX_NativeString(" to ");
3587 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3588 once_value_13
= fra
.me
.REG
[4];
3589 register_static_object(&once_value_13
);
3590 } else fra
.me
.REG
[4] = once_value_13
;
3591 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3592 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3593 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3594 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3595 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3596 if (!once_value_14
) {
3597 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
3599 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3600 once_value_14
= fra
.me
.REG
[4];
3601 register_static_object(&once_value_14
);
3602 } else fra
.me
.REG
[4] = once_value_14
;
3603 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3604 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3605 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3606 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3607 /* native_interface/frontier.nit:429 */
3608 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3610 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3611 if (!once_value_15
) {
3612 fra
.me
.REG
[4] = BOX_NativeString("");
3614 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3615 once_value_15
= fra
.me
.REG
[4];
3616 register_static_object(&once_value_15
);
3617 } else fra
.me
.REG
[4] = once_value_15
;
3618 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3619 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3620 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3621 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]);
3622 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3623 if (!once_value_16
) {
3624 fra
.me
.REG
[4] = BOX_NativeString(";\n");
3626 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3627 once_value_16
= fra
.me
.REG
[4];
3628 register_static_object(&once_value_16
);
3629 } else fra
.me
.REG
[4] = once_value_16
;
3630 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3631 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3632 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3633 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3634 /* native_interface/frontier.nit:431 */
3635 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3637 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3638 if (!once_value_17
) {
3639 fra
.me
.REG
[4] = BOX_NativeString("#ifndef ");
3641 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3642 once_value_17
= fra
.me
.REG
[4];
3643 register_static_object(&once_value_17
);
3644 } else fra
.me
.REG
[4] = once_value_17
;
3645 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3646 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3647 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3648 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3649 if (!once_value_18
) {
3650 fra
.me
.REG
[4] = BOX_NativeString("\n");
3652 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3653 once_value_18
= fra
.me
.REG
[4];
3654 register_static_object(&once_value_18
);
3655 } else fra
.me
.REG
[4] = once_value_18
;
3656 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3657 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3658 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3659 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3660 /* native_interface/frontier.nit:432 */
3661 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3663 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3664 if (!once_value_19
) {
3665 fra
.me
.REG
[4] = BOX_NativeString("#define ");
3667 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3668 once_value_19
= fra
.me
.REG
[4];
3669 register_static_object(&once_value_19
);
3670 } else fra
.me
.REG
[4] = once_value_19
;
3671 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3672 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3673 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3674 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3675 if (!once_value_20
) {
3676 fra
.me
.REG
[4] = BOX_NativeString(" ");
3678 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3679 once_value_20
= fra
.me
.REG
[4];
3680 register_static_object(&once_value_20
);
3681 } else fra
.me
.REG
[4] = once_value_20
;
3682 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3683 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3684 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3685 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]);
3686 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3687 if (!once_value_21
) {
3688 fra
.me
.REG
[4] = BOX_NativeString("\n");
3690 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3691 once_value_21
= fra
.me
.REG
[4];
3692 register_static_object(&once_value_21
);
3693 } else fra
.me
.REG
[4] = once_value_21
;
3694 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3695 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3696 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3697 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3698 /* native_interface/frontier.nit:433 */
3699 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3700 if (!once_value_22
) {
3701 fra
.me
.REG
[2] = BOX_NativeString("#endif\n");
3703 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3704 once_value_22
= fra
.me
.REG
[2];
3705 register_static_object(&once_value_22
);
3706 } else fra
.me
.REG
[2] = once_value_22
;
3707 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3708 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3709 /* native_interface/frontier.nit:435 */
3710 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3711 fra
.me
.REG
[2] = CALL_native_interface___frontier___MMImportedCast___compile_as(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3712 /* native_interface/frontier.nit:436 */
3713 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3714 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3715 CALL_compiling_writer___Writer___append(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3716 stack_frame_head
= fra
.me
.prev
;
3719 static const char LOCATE_native_interface___frontier___MMImportedCast___compile_as
[] = "frontier::MMImportedCast::compile_as";
3720 val_t
native_interface___frontier___MMImportedCast___compile_as(val_t p0
, val_t p1
){
3721 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
3724 static val_t once_value_1
; /* Once value */
3725 static val_t once_value_2
; /* Once value */
3726 static val_t once_value_3
; /* Once value */
3727 static val_t once_value_4
; /* Once value */
3728 static val_t once_value_5
; /* Once value */
3729 static val_t once_value_6
; /* Once value */
3730 static val_t once_value_7
; /* Once value */
3731 static val_t once_value_8
; /* Once value */
3732 static val_t once_value_9
; /* Once value */
3733 static val_t once_value_10
; /* Once value */
3734 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3735 fra
.me
.file
= LOCATE_native_interface___frontier
;
3737 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___compile_as
;
3738 fra
.me
.has_broke
= 0;
3739 fra
.me
.REG_size
= 8;
3740 fra
.me
.nitni_local_ref_head
= NULL
;
3741 fra
.me
.REG
[0] = NIT_NULL
;
3742 fra
.me
.REG
[1] = NIT_NULL
;
3743 fra
.me
.REG
[2] = NIT_NULL
;
3744 fra
.me
.REG
[3] = NIT_NULL
;
3745 fra
.me
.REG
[4] = NIT_NULL
;
3746 fra
.me
.REG
[5] = NIT_NULL
;
3747 fra
.me
.REG
[6] = NIT_NULL
;
3748 fra
.me
.REG
[7] = NIT_NULL
;
3751 /* native_interface/frontier.nit:443 */
3752 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]);
3753 fra
.me
.REG
[1] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[1]);
3754 /* native_interface/frontier.nit:445 */
3755 if (!once_value_1
) {
3756 fra
.me
.REG
[2] = BOX_NativeString("out");
3758 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3759 once_value_1
= fra
.me
.REG
[2];
3760 register_static_object(&once_value_1
);
3761 } else fra
.me
.REG
[2] = once_value_1
;
3762 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3763 /* native_interface/frontier.nit:446 */
3764 if (!once_value_2
) {
3765 fra
.me
.REG
[3] = BOX_NativeString("temp");
3767 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3768 once_value_2
= fra
.me
.REG
[3];
3769 register_static_object(&once_value_2
);
3770 } else fra
.me
.REG
[3] = once_value_2
;
3771 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3772 /* native_interface/frontier.nit:448 */
3773 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3775 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3776 if (!once_value_3
) {
3777 fra
.me
.REG
[6] = BOX_NativeString("val_t ");
3779 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3780 once_value_3
= fra
.me
.REG
[6];
3781 register_static_object(&once_value_3
);
3782 } else fra
.me
.REG
[6] = once_value_3
;
3783 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3786 if (!once_value_4
) {
3787 fra
.me
.REG
[6] = BOX_NativeString(";\n");
3789 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3790 once_value_4
= fra
.me
.REG
[6];
3791 register_static_object(&once_value_4
);
3792 } else fra
.me
.REG
[6] = once_value_4
;
3793 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3794 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3795 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3796 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3797 /* native_interface/frontier.nit:449 */
3798 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3799 REGB0
= TAG_Bool(1);
3800 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
);
3801 /* native_interface/frontier.nit:451 */
3802 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3804 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3805 if (!once_value_5
) {
3806 fra
.me
.REG
[6] = BOX_NativeString("");
3808 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3809 once_value_5
= fra
.me
.REG
[6];
3810 register_static_object(&once_value_5
);
3811 } else fra
.me
.REG
[6] = once_value_5
;
3812 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3813 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
3814 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3815 fra
.me
.REG
[7] = CALL_native_interface___ni_metamodel___MMImportedCast___in_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3816 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]);
3817 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
3818 if (!once_value_6
) {
3819 fra
.me
.REG
[7] = BOX_NativeString(";\n");
3821 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3822 once_value_6
= fra
.me
.REG
[7];
3823 register_static_object(&once_value_6
);
3824 } else fra
.me
.REG
[7] = once_value_6
;
3825 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
3827 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3828 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3829 /* native_interface/frontier.nit:454 */
3830 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3831 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3832 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3833 if (UNTAG_Bool(REGB0
)) {
3834 /* native_interface/frontier.nit:455 */
3835 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]);
3837 /* native_interface/frontier.nit:459 */
3838 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3839 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3840 if (UNTAG_Bool(REGB0
)) {
3841 /* native_interface/frontier.nit:460 */
3842 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3843 CALL_native_interface___frontier___MMType___compile_check_isa(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1], fra
.me
.REG
[3]);
3845 /* native_interface/frontier.nit:463 */
3846 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3848 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3849 if (!once_value_7
) {
3850 fra
.me
.REG
[7] = BOX_NativeString("");
3852 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3853 once_value_7
= fra
.me
.REG
[7];
3854 register_static_object(&once_value_7
);
3855 } else fra
.me
.REG
[7] = once_value_7
;
3856 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3857 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3858 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3859 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]);
3860 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3861 if (!once_value_8
) {
3862 fra
.me
.REG
[3] = BOX_NativeString(";\n");
3864 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3865 once_value_8
= fra
.me
.REG
[3];
3866 register_static_object(&once_value_8
);
3867 } else fra
.me
.REG
[3] = once_value_8
;
3868 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3869 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3870 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3871 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3872 /* native_interface/frontier.nit:465 */
3873 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3875 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3876 if (!once_value_9
) {
3877 fra
.me
.REG
[3] = BOX_NativeString("return ");
3879 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3880 once_value_9
= fra
.me
.REG
[3];
3881 register_static_object(&once_value_9
);
3882 } else fra
.me
.REG
[3] = once_value_9
;
3883 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3884 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3885 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3886 if (!once_value_10
) {
3887 fra
.me
.REG
[2] = BOX_NativeString(";\n");
3889 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3890 once_value_10
= fra
.me
.REG
[2];
3891 register_static_object(&once_value_10
);
3892 } else fra
.me
.REG
[2] = once_value_10
;
3893 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3895 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3896 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3897 /* native_interface/frontier.nit:467 */
3900 stack_frame_head
= fra
.me
.prev
;
3901 return fra
.me
.REG
[1];
3903 static const char LOCATE_native_interface___frontier___MMImportedCast___compile_is
[] = "frontier::MMImportedCast::compile_is";
3904 val_t
native_interface___frontier___MMImportedCast___compile_is(val_t p0
, val_t p1
){
3905 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3908 static val_t once_value_1
; /* Once value */
3909 static val_t once_value_2
; /* Once value */
3910 static val_t once_value_3
; /* Once value */
3911 static val_t once_value_4
; /* Once value */
3912 static val_t once_value_5
; /* Once value */
3913 static val_t once_value_6
; /* Once value */
3914 static val_t once_value_7
; /* Once value */
3915 static val_t once_value_8
; /* Once value */
3916 static val_t once_value_9
; /* Once value */
3917 static val_t once_value_10
; /* Once value */
3918 static val_t once_value_11
; /* Once value */
3919 static val_t once_value_12
; /* Once value */
3920 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3921 fra
.me
.file
= LOCATE_native_interface___frontier
;
3923 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___compile_is
;
3924 fra
.me
.has_broke
= 0;
3925 fra
.me
.REG_size
= 7;
3926 fra
.me
.nitni_local_ref_head
= NULL
;
3927 fra
.me
.REG
[0] = NIT_NULL
;
3928 fra
.me
.REG
[1] = NIT_NULL
;
3929 fra
.me
.REG
[2] = NIT_NULL
;
3930 fra
.me
.REG
[3] = NIT_NULL
;
3931 fra
.me
.REG
[4] = NIT_NULL
;
3932 fra
.me
.REG
[5] = NIT_NULL
;
3933 fra
.me
.REG
[6] = NIT_NULL
;
3936 /* native_interface/frontier.nit:474 */
3937 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]);
3938 fra
.me
.REG
[1] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[1]);
3939 /* native_interface/frontier.nit:476 */
3940 if (!once_value_1
) {
3941 fra
.me
.REG
[2] = BOX_NativeString("temp");
3943 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3944 once_value_1
= fra
.me
.REG
[2];
3945 register_static_object(&once_value_1
);
3946 } else fra
.me
.REG
[2] = once_value_1
;
3947 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3948 /* native_interface/frontier.nit:477 */
3949 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3951 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3952 if (!once_value_2
) {
3953 fra
.me
.REG
[5] = BOX_NativeString("val_t ");
3955 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3956 once_value_2
= fra
.me
.REG
[5];
3957 register_static_object(&once_value_2
);
3958 } else fra
.me
.REG
[5] = once_value_2
;
3959 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3960 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3961 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3962 if (!once_value_3
) {
3963 fra
.me
.REG
[5] = BOX_NativeString(";\n");
3965 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3966 once_value_3
= fra
.me
.REG
[5];
3967 register_static_object(&once_value_3
);
3968 } else fra
.me
.REG
[5] = once_value_3
;
3969 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3970 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3971 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3972 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3973 /* native_interface/frontier.nit:479 */
3974 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3976 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3977 if (!once_value_4
) {
3978 fra
.me
.REG
[5] = BOX_NativeString("");
3980 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3981 once_value_4
= fra
.me
.REG
[5];
3982 register_static_object(&once_value_4
);
3983 } else fra
.me
.REG
[5] = once_value_4
;
3984 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3985 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3986 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3987 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMImportedCast___in_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3988 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]);
3989 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3990 if (!once_value_5
) {
3991 fra
.me
.REG
[6] = BOX_NativeString(";\n");
3993 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3994 once_value_5
= fra
.me
.REG
[6];
3995 register_static_object(&once_value_5
);
3996 } else fra
.me
.REG
[6] = once_value_5
;
3997 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3999 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4000 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4001 /* native_interface/frontier.nit:481 */
4002 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_nullable_to_not_null(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4003 if (UNTAG_Bool(REGB0
)) {
4004 /* native_interface/frontier.nit:482 */
4005 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4006 if (UNTAG_Bool(REGB0
)) {
4007 /* native_interface/frontier.nit:483 */
4008 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4010 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4011 if (!once_value_6
) {
4012 fra
.me
.REG
[6] = BOX_NativeString("if ( ! ISNULL(");
4013 REGB0
= TAG_Int(14);
4014 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4015 once_value_6
= fra
.me
.REG
[6];
4016 register_static_object(&once_value_6
);
4017 } else fra
.me
.REG
[6] = once_value_6
;
4018 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4019 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4020 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4021 if (!once_value_7
) {
4022 fra
.me
.REG
[6] = BOX_NativeString(") ) return 0;\n");
4023 REGB0
= TAG_Int(14);
4024 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4025 once_value_7
= fra
.me
.REG
[6];
4026 register_static_object(&once_value_7
);
4027 } else fra
.me
.REG
[6] = once_value_7
;
4028 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4029 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4030 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4031 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4033 /* native_interface/frontier.nit:485 */
4034 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4036 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4037 if (!once_value_8
) {
4038 fra
.me
.REG
[6] = BOX_NativeString("if ( ISNULL(");
4039 REGB0
= TAG_Int(12);
4040 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4041 once_value_8
= fra
.me
.REG
[6];
4042 register_static_object(&once_value_8
);
4043 } else fra
.me
.REG
[6] = once_value_8
;
4044 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4045 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4046 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4047 if (!once_value_9
) {
4048 fra
.me
.REG
[6] = BOX_NativeString(") ) return 0;\n");
4049 REGB0
= TAG_Int(14);
4050 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4051 once_value_9
= fra
.me
.REG
[6];
4052 register_static_object(&once_value_9
);
4053 } else fra
.me
.REG
[6] = once_value_9
;
4054 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4055 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4056 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4057 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4060 /* native_interface/frontier.nit:489 */
4061 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4062 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4063 if (UNTAG_Bool(REGB0
)) {
4064 /* native_interface/frontier.nit:490 */
4065 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4067 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4068 if (!once_value_10
) {
4069 fra
.me
.REG
[6] = BOX_NativeString("if ( ! ");
4071 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4072 once_value_10
= fra
.me
.REG
[6];
4073 register_static_object(&once_value_10
);
4074 } else fra
.me
.REG
[6] = once_value_10
;
4075 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4076 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4077 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4078 fra
.me
.REG
[2] = CALL_native_interface___frontier___MMType___compile_condition_isa(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
4079 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4080 if (!once_value_11
) {
4081 fra
.me
.REG
[2] = BOX_NativeString(" ) return 0;\n");
4082 REGB0
= TAG_Int(13);
4083 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4084 once_value_11
= fra
.me
.REG
[2];
4085 register_static_object(&once_value_11
);
4086 } else fra
.me
.REG
[2] = once_value_11
;
4087 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4088 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4089 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4090 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4092 /* native_interface/frontier.nit:493 */
4093 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4094 if (!once_value_12
) {
4095 fra
.me
.REG
[3] = BOX_NativeString("return 1;\n");
4096 REGB0
= TAG_Int(10);
4097 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4098 once_value_12
= fra
.me
.REG
[3];
4099 register_static_object(&once_value_12
);
4100 } else fra
.me
.REG
[3] = once_value_12
;
4101 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4102 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4103 /* native_interface/frontier.nit:495 */
4106 stack_frame_head
= fra
.me
.prev
;
4107 return fra
.me
.REG
[1];
4109 static const char LOCATE_native_interface___frontier___MMImportedCast___compile_check_is_not_null
[] = "frontier::MMImportedCast::compile_check_is_not_null";
4110 void native_interface___frontier___MMImportedCast___compile_check_is_not_null(val_t p0
, val_t p1
, val_t p2
){
4111 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4114 static val_t once_value_1
; /* Once value */
4115 static val_t once_value_2
; /* Once value */
4116 static val_t once_value_3
; /* Once value */
4117 static val_t once_value_4
; /* Once value */
4118 static val_t once_value_5
; /* Once value */
4119 static val_t once_value_6
; /* Once value */
4120 static val_t once_value_7
; /* Once value */
4121 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4122 fra
.me
.file
= LOCATE_native_interface___frontier
;
4124 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___compile_check_is_not_null
;
4125 fra
.me
.has_broke
= 0;
4126 fra
.me
.REG_size
= 6;
4127 fra
.me
.nitni_local_ref_head
= NULL
;
4128 fra
.me
.REG
[0] = NIT_NULL
;
4129 fra
.me
.REG
[1] = NIT_NULL
;
4130 fra
.me
.REG
[2] = NIT_NULL
;
4131 fra
.me
.REG
[3] = NIT_NULL
;
4132 fra
.me
.REG
[4] = NIT_NULL
;
4133 fra
.me
.REG
[5] = NIT_NULL
;
4137 /* native_interface/frontier.nit:502 */
4138 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4140 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4141 if (!once_value_1
) {
4142 fra
.me
.REG
[5] = BOX_NativeString("if ( ISNULL(");
4143 REGB0
= TAG_Int(12);
4144 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4145 once_value_1
= fra
.me
.REG
[5];
4146 register_static_object(&once_value_1
);
4147 } else fra
.me
.REG
[5] = once_value_1
;
4148 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4149 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4150 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4151 if (!once_value_2
) {
4152 fra
.me
.REG
[2] = BOX_NativeString(") ){");
4154 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4155 once_value_2
= fra
.me
.REG
[2];
4156 register_static_object(&once_value_2
);
4157 } else fra
.me
.REG
[2] = once_value_2
;
4158 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4159 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4160 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4161 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4162 /* native_interface/frontier.nit:503 */
4163 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4165 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4166 if (!once_value_3
) {
4167 fra
.me
.REG
[2] = BOX_NativeString("\tfprintf( stderr, \"Casting from ");
4168 REGB0
= TAG_Int(32);
4169 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4170 once_value_3
= fra
.me
.REG
[2];
4171 register_static_object(&once_value_3
);
4172 } else fra
.me
.REG
[2] = once_value_3
;
4173 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4174 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4175 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4176 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4177 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4178 if (!once_value_4
) {
4179 fra
.me
.REG
[2] = BOX_NativeString(" to ");
4181 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4182 once_value_4
= fra
.me
.REG
[2];
4183 register_static_object(&once_value_4
);
4184 } else fra
.me
.REG
[2] = once_value_4
;
4185 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4186 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4187 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4188 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4189 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
4190 if (!once_value_5
) {
4191 fra
.me
.REG
[0] = BOX_NativeString(" failed because value is null.\" );\n");
4192 REGB0
= TAG_Int(35);
4193 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4194 once_value_5
= fra
.me
.REG
[0];
4195 register_static_object(&once_value_5
);
4196 } else fra
.me
.REG
[0] = once_value_5
;
4197 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4198 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
4199 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4200 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4201 /* native_interface/frontier.nit:504 */
4202 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4203 if (!once_value_6
) {
4204 fra
.me
.REG
[4] = BOX_NativeString("\tabort();\n");
4205 REGB0
= TAG_Int(10);
4206 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4207 once_value_6
= fra
.me
.REG
[4];
4208 register_static_object(&once_value_6
);
4209 } else fra
.me
.REG
[4] = once_value_6
;
4210 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4211 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4212 /* native_interface/frontier.nit:505 */
4213 fra
.me
.REG
[1] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4214 if (!once_value_7
) {
4215 fra
.me
.REG
[4] = BOX_NativeString("}");
4217 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4218 once_value_7
= fra
.me
.REG
[4];
4219 register_static_object(&once_value_7
);
4220 } else fra
.me
.REG
[4] = once_value_7
;
4221 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4222 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4223 stack_frame_head
= fra
.me
.prev
;
4226 static const char LOCATE_native_interface___frontier___MMImportedCast_____eqeq
[] = "frontier::MMImportedCast::(kernel::Object::==)";
4227 val_t
native_interface___frontier___MMImportedCast_____eqeq(val_t p0
, val_t p1
){
4228 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4232 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4233 fra
.me
.file
= LOCATE_native_interface___frontier
;
4235 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast_____eqeq
;
4236 fra
.me
.has_broke
= 0;
4237 fra
.me
.REG_size
= 4;
4238 fra
.me
.nitni_local_ref_head
= NULL
;
4239 fra
.me
.REG
[0] = NIT_NULL
;
4240 fra
.me
.REG
[1] = NIT_NULL
;
4241 fra
.me
.REG
[2] = NIT_NULL
;
4242 fra
.me
.REG
[3] = NIT_NULL
;
4245 /* native_interface/frontier.nit:510 */
4246 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*/;
4247 if (UNTAG_Bool(REGB0
)) {
4248 /* native_interface/frontier.nit:511 */
4249 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
4250 if (UNTAG_Bool(REGB0
)) {
4251 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 511);
4253 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4254 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4255 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
4256 if (UNTAG_Bool(REGB0
)) {
4258 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4262 /* native_interface/frontier.nit:510 */
4263 REGB1
= TAG_Bool(0);
4266 if (UNTAG_Bool(REGB0
)) {
4267 /* native_interface/frontier.nit:511 */
4268 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
4269 if (UNTAG_Bool(REGB0
)) {
4270 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 511);
4272 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4273 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4274 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[0]));
4275 if (UNTAG_Bool(REGB0
)) {
4277 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4281 /* native_interface/frontier.nit:510 */
4282 REGB1
= TAG_Bool(0);
4287 stack_frame_head
= fra
.me
.prev
;
4290 static const char LOCATE_native_interface___frontier___MMImportedCast___hash
[] = "frontier::MMImportedCast::(hash::Object::hash)";
4291 val_t
native_interface___frontier___MMImportedCast___hash(val_t p0
){
4292 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4296 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4297 fra
.me
.file
= LOCATE_native_interface___frontier
;
4299 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___hash
;
4300 fra
.me
.has_broke
= 0;
4301 fra
.me
.REG_size
= 2;
4302 fra
.me
.nitni_local_ref_head
= NULL
;
4303 fra
.me
.REG
[0] = NIT_NULL
;
4304 fra
.me
.REG
[1] = NIT_NULL
;
4306 /* native_interface/frontier.nit:515 */
4307 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4308 REGB0
= CALL_standard___hash___Object___hash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4309 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4310 REGB1
= CALL_standard___hash___Object___hash(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4311 /* ../lib/standard/kernel.nit:238 */
4312 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
4313 /* native_interface/frontier.nit:515 */
4316 stack_frame_head
= fra
.me
.prev
;
4319 static const char LOCATE_native_interface___frontier___MMType___compile_check_isa
[] = "frontier::MMType::compile_check_isa";
4320 void native_interface___frontier___MMType___compile_check_isa(val_t p0
, val_t p1
, val_t p2
){
4321 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4324 static val_t once_value_1
; /* Once value */
4325 static val_t once_value_2
; /* Once value */
4326 static val_t once_value_3
; /* Once value */
4327 static val_t once_value_4
; /* Once value */
4328 static val_t once_value_5
; /* Once value */
4329 static val_t once_value_6
; /* Once value */
4330 static val_t once_value_7
; /* Once value */
4331 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4332 fra
.me
.file
= LOCATE_native_interface___frontier
;
4334 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_check_isa
;
4335 fra
.me
.has_broke
= 0;
4336 fra
.me
.REG_size
= 6;
4337 fra
.me
.nitni_local_ref_head
= NULL
;
4338 fra
.me
.REG
[0] = NIT_NULL
;
4339 fra
.me
.REG
[1] = NIT_NULL
;
4340 fra
.me
.REG
[2] = NIT_NULL
;
4341 fra
.me
.REG
[3] = NIT_NULL
;
4342 fra
.me
.REG
[4] = NIT_NULL
;
4343 fra
.me
.REG
[5] = NIT_NULL
;
4347 /* native_interface/frontier.nit:526 */
4348 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4350 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4351 if (!once_value_1
) {
4352 fra
.me
.REG
[5] = BOX_NativeString("if ( ! ");
4354 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4355 once_value_1
= fra
.me
.REG
[5];
4356 register_static_object(&once_value_1
);
4357 } else fra
.me
.REG
[5] = once_value_1
;
4358 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4359 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4360 fra
.me
.REG
[2] = CALL_native_interface___frontier___MMType___compile_condition_isa(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
4361 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4362 if (!once_value_2
) {
4363 fra
.me
.REG
[2] = BOX_NativeString(" ){\n");
4365 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4366 once_value_2
= fra
.me
.REG
[2];
4367 register_static_object(&once_value_2
);
4368 } else fra
.me
.REG
[2] = once_value_2
;
4369 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4370 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4371 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4372 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4373 /* native_interface/frontier.nit:527 */
4374 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4376 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4377 if (!once_value_3
) {
4378 fra
.me
.REG
[2] = BOX_NativeString("\tfprintf( stderr, \"Casting to ");
4379 REGB0
= TAG_Int(30);
4380 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4381 once_value_3
= fra
.me
.REG
[2];
4382 register_static_object(&once_value_3
);
4383 } else fra
.me
.REG
[2] = once_value_3
;
4384 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4385 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4386 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4387 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4388 if (!once_value_4
) {
4389 fra
.me
.REG
[2] = BOX_NativeString(" failed because value is not a ");
4390 REGB0
= TAG_Int(31);
4391 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4392 once_value_4
= fra
.me
.REG
[2];
4393 register_static_object(&once_value_4
);
4394 } else fra
.me
.REG
[2] = once_value_4
;
4395 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4396 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4397 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4398 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
4399 if (!once_value_5
) {
4400 fra
.me
.REG
[0] = BOX_NativeString(".\" );\n");
4402 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4403 once_value_5
= fra
.me
.REG
[0];
4404 register_static_object(&once_value_5
);
4405 } else fra
.me
.REG
[0] = once_value_5
;
4406 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4407 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
4408 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4409 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4410 /* native_interface/frontier.nit:528 */
4411 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4412 if (!once_value_6
) {
4413 fra
.me
.REG
[4] = BOX_NativeString("\tabort();\n");
4414 REGB0
= TAG_Int(10);
4415 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4416 once_value_6
= fra
.me
.REG
[4];
4417 register_static_object(&once_value_6
);
4418 } else fra
.me
.REG
[4] = once_value_6
;
4419 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4420 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4421 /* native_interface/frontier.nit:529 */
4422 fra
.me
.REG
[1] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4423 if (!once_value_7
) {
4424 fra
.me
.REG
[4] = BOX_NativeString("}\n");
4426 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4427 once_value_7
= fra
.me
.REG
[4];
4428 register_static_object(&once_value_7
);
4429 } else fra
.me
.REG
[4] = once_value_7
;
4430 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4431 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4432 stack_frame_head
= fra
.me
.prev
;
4435 static const char LOCATE_native_interface___frontier___MMType___compile_condition_isa
[] = "frontier::MMType::compile_condition_isa";
4436 val_t
native_interface___frontier___MMType___compile_condition_isa(val_t p0
, val_t p1
){
4437 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4440 static val_t once_value_1
; /* Once value */
4441 static val_t once_value_2
; /* Once value */
4442 static val_t once_value_3
; /* Once value */
4443 static val_t once_value_4
; /* Once value */
4444 static val_t once_value_5
; /* Once value */
4445 static val_t once_value_6
; /* Once value */
4446 static val_t once_value_7
; /* Once value */
4447 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4448 fra
.me
.file
= LOCATE_native_interface___frontier
;
4450 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_condition_isa
;
4451 fra
.me
.has_broke
= 0;
4452 fra
.me
.REG_size
= 4;
4453 fra
.me
.nitni_local_ref_head
= NULL
;
4454 fra
.me
.REG
[0] = NIT_NULL
;
4455 fra
.me
.REG
[1] = NIT_NULL
;
4456 fra
.me
.REG
[2] = NIT_NULL
;
4457 fra
.me
.REG
[3] = NIT_NULL
;
4460 /* native_interface/frontier.nit:536 */
4461 REGB0
= TAG_Int(13);
4462 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4463 if (!once_value_1
) {
4464 fra
.me
.REG
[3] = BOX_NativeString("( ISOBJ( ");
4466 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4467 once_value_1
= fra
.me
.REG
[3];
4468 register_static_object(&once_value_1
);
4469 } else fra
.me
.REG
[3] = once_value_1
;
4470 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4471 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4472 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4473 if (!once_value_2
) {
4474 fra
.me
.REG
[3] = BOX_NativeString(" ) ? ISNULL( ");
4475 REGB0
= TAG_Int(13);
4476 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4477 once_value_2
= fra
.me
.REG
[3];
4478 register_static_object(&once_value_2
);
4479 } else fra
.me
.REG
[3] = once_value_2
;
4480 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4481 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4482 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4483 if (!once_value_3
) {
4484 fra
.me
.REG
[3] = BOX_NativeString(" ) || OBJISA( ");
4485 REGB0
= TAG_Int(14);
4486 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4487 once_value_3
= fra
.me
.REG
[3];
4488 register_static_object(&once_value_3
);
4489 } else fra
.me
.REG
[3] = once_value_3
;
4490 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4491 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4492 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4493 if (!once_value_4
) {
4494 fra
.me
.REG
[3] = BOX_NativeString(", ");
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 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4503 fra
.me
.REG
[3] = CALL_compiling___compiling_base___MMLocalClass___cname(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4504 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4505 if (!once_value_5
) {
4506 fra
.me
.REG
[3] = BOX_NativeString(" ): VALISA( ");
4507 REGB0
= TAG_Int(12);
4508 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4509 once_value_5
= fra
.me
.REG
[3];
4510 register_static_object(&once_value_5
);
4511 } else fra
.me
.REG
[3] = once_value_5
;
4512 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4513 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4514 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4515 if (!once_value_6
) {
4516 fra
.me
.REG
[1] = BOX_NativeString(", ");
4518 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
4519 once_value_6
= fra
.me
.REG
[1];
4520 register_static_object(&once_value_6
);
4521 } else fra
.me
.REG
[1] = once_value_6
;
4522 fra
.me
.REG
[1] = fra
.me
.REG
[1];
4523 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4524 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4525 fra
.me
.REG
[0] = CALL_compiling___compiling_base___MMLocalClass___cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4526 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4527 if (!once_value_7
) {
4528 fra
.me
.REG
[0] = BOX_NativeString(" ) )");
4530 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4531 once_value_7
= fra
.me
.REG
[0];
4532 register_static_object(&once_value_7
);
4533 } else fra
.me
.REG
[0] = once_value_7
;
4534 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4535 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4536 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4539 stack_frame_head
= fra
.me
.prev
;
4540 return fra
.me
.REG
[2];
4542 static const char LOCATE_native_interface___frontier___MMType___compile_to_frontier
[] = "frontier::MMType::compile_to_frontier";
4543 void native_interface___frontier___MMType___compile_to_frontier(val_t p0
, val_t p1
){
4544 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4548 static val_t once_value_1
; /* Once value */
4549 static val_t once_value_2
; /* Once value */
4550 static val_t once_value_3
; /* Once value */
4551 static val_t once_value_4
; /* Once value */
4552 static val_t once_value_5
; /* Once value */
4553 static val_t once_value_6
; /* Once value */
4554 static val_t once_value_7
; /* Once value */
4555 static val_t once_value_8
; /* Once value */
4556 static val_t once_value_9
; /* Once value */
4557 static val_t once_value_10
; /* Once value */
4558 static val_t once_value_11
; /* Once value */
4559 static val_t once_value_12
; /* Once value */
4560 static val_t once_value_13
; /* Once value */
4561 static val_t once_value_14
; /* Once value */
4562 static val_t once_value_15
; /* Once value */
4563 static val_t once_value_16
; /* Once value */
4564 static val_t once_value_17
; /* Once value */
4565 static val_t once_value_18
; /* Once value */
4566 static val_t once_value_19
; /* Once value */
4567 static val_t once_value_20
; /* Once value */
4568 static val_t once_value_21
; /* Once value */
4569 static val_t once_value_22
; /* Once value */
4570 static val_t once_value_23
; /* Once value */
4571 static val_t once_value_24
; /* Once value */
4572 static val_t once_value_25
; /* Once value */
4573 static val_t once_value_26
; /* Once value */
4574 static val_t once_value_27
; /* Once value */
4575 static val_t once_value_28
; /* Once value */
4576 static val_t once_value_29
; /* Once value */
4577 static val_t once_value_30
; /* Once value */
4578 static val_t once_value_31
; /* Once value */
4579 static val_t once_value_32
; /* Once value */
4580 static val_t once_value_33
; /* Once value */
4581 static val_t once_value_34
; /* Once value */
4582 static val_t once_value_35
; /* Once value */
4583 static val_t once_value_36
; /* Once value */
4584 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4585 fra
.me
.file
= LOCATE_native_interface___frontier
;
4587 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_to_frontier
;
4588 fra
.me
.has_broke
= 0;
4589 fra
.me
.REG_size
= 7;
4590 fra
.me
.nitni_local_ref_head
= NULL
;
4591 fra
.me
.REG
[0] = NIT_NULL
;
4592 fra
.me
.REG
[1] = NIT_NULL
;
4593 fra
.me
.REG
[2] = NIT_NULL
;
4594 fra
.me
.REG
[3] = NIT_NULL
;
4595 fra
.me
.REG
[4] = NIT_NULL
;
4596 fra
.me
.REG
[5] = NIT_NULL
;
4597 fra
.me
.REG
[6] = NIT_NULL
;
4600 /* native_interface/frontier.nit:543 */
4601 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4602 fra
.me
.REG
[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4603 /* native_interface/frontier.nit:544 */
4604 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4605 if (UNTAG_Bool(REGB0
)) {
4607 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4608 if (UNTAG_Bool(REGB1
)) {
4609 REGB1
= TAG_Bool(0);
4612 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4616 if (UNTAG_Bool(REGB0
)) {
4617 REGB0
= TAG_Bool(1);
4619 REGB1
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4622 if (UNTAG_Bool(REGB0
)) {
4623 /* native_interface/frontier.nit:545 */
4624 fra
.me
.REG
[2] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4625 /* native_interface/frontier.nit:546 */
4627 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4628 if (!once_value_1
) {
4629 fra
.me
.REG
[4] = BOX_NativeString("");
4631 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4632 once_value_1
= fra
.me
.REG
[4];
4633 register_static_object(&once_value_1
);
4634 } else fra
.me
.REG
[4] = once_value_1
;
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
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4638 fra
.me
.REG
[4] = CALL_standard___string___AbstractString___to_upper(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4640 if (!once_value_2
) {
4641 fra
.me
.REG
[4] = BOX_NativeString("_TYPE");
4643 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4644 once_value_2
= fra
.me
.REG
[4];
4645 register_static_object(&once_value_2
);
4646 } else fra
.me
.REG
[4] = once_value_2
;
4647 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4648 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4649 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4650 /* native_interface/frontier.nit:549 */
4651 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4653 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4654 if (!once_value_3
) {
4655 fra
.me
.REG
[6] = BOX_NativeString("#ifndef ");
4657 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4658 once_value_3
= fra
.me
.REG
[6];
4659 register_static_object(&once_value_3
);
4660 } else fra
.me
.REG
[6] = once_value_3
;
4661 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4663 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4664 if (!once_value_4
) {
4665 fra
.me
.REG
[6] = BOX_NativeString("\n");
4667 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4668 once_value_4
= fra
.me
.REG
[6];
4669 register_static_object(&once_value_4
);
4670 } else fra
.me
.REG
[6] = once_value_4
;
4671 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4672 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4673 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4674 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4675 /* native_interface/frontier.nit:550 */
4676 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4678 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4679 if (!once_value_5
) {
4680 fra
.me
.REG
[6] = BOX_NativeString("#define ");
4682 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4683 once_value_5
= fra
.me
.REG
[6];
4684 register_static_object(&once_value_5
);
4685 } else fra
.me
.REG
[6] = once_value_5
;
4686 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4687 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4688 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4689 if (!once_value_6
) {
4690 fra
.me
.REG
[3] = BOX_NativeString("\n");
4692 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4693 once_value_6
= fra
.me
.REG
[3];
4694 register_static_object(&once_value_6
);
4695 } else fra
.me
.REG
[3] = once_value_6
;
4696 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4697 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4698 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4699 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4700 /* native_interface/frontier.nit:551 */
4701 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4703 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4704 if (!once_value_7
) {
4705 fra
.me
.REG
[3] = BOX_NativeString("struct s_");
4707 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4708 once_value_7
= fra
.me
.REG
[3];
4709 register_static_object(&once_value_7
);
4710 } else fra
.me
.REG
[3] = once_value_7
;
4711 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4712 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4713 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4714 if (!once_value_8
) {
4715 fra
.me
.REG
[3] = BOX_NativeString("{\n");
4717 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4718 once_value_8
= fra
.me
.REG
[3];
4719 register_static_object(&once_value_8
);
4720 } else fra
.me
.REG
[3] = once_value_8
;
4721 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4722 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4723 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4724 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4725 /* native_interface/frontier.nit:552 */
4726 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4727 if (!once_value_9
) {
4728 fra
.me
.REG
[4] = BOX_NativeString("\t\tstruct nitni_ref ref; /* real ref struct, must be first */\n");
4729 REGB0
= TAG_Int(61);
4730 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4731 once_value_9
= fra
.me
.REG
[4];
4732 register_static_object(&once_value_9
);
4733 } else fra
.me
.REG
[4] = once_value_9
;
4734 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4735 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4736 /* native_interface/frontier.nit:553 */
4737 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4738 if (!once_value_10
) {
4739 fra
.me
.REG
[5] = BOX_NativeString("};\n");
4741 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4742 once_value_10
= fra
.me
.REG
[5];
4743 register_static_object(&once_value_10
);
4744 } else fra
.me
.REG
[5] = once_value_10
;
4745 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4746 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4747 /* native_interface/frontier.nit:554 */
4748 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4750 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4751 if (!once_value_11
) {
4752 fra
.me
.REG
[3] = BOX_NativeString("typedef struct s_");
4753 REGB0
= TAG_Int(17);
4754 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4755 once_value_11
= fra
.me
.REG
[3];
4756 register_static_object(&once_value_11
);
4757 } else fra
.me
.REG
[3] = once_value_11
;
4758 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4759 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4760 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4761 if (!once_value_12
) {
4762 fra
.me
.REG
[3] = BOX_NativeString(" *");
4764 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4765 once_value_12
= fra
.me
.REG
[3];
4766 register_static_object(&once_value_12
);
4767 } else fra
.me
.REG
[3] = once_value_12
;
4768 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4770 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4771 if (!once_value_13
) {
4772 fra
.me
.REG
[3] = BOX_NativeString(";\n");
4774 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4775 once_value_13
= fra
.me
.REG
[3];
4776 register_static_object(&once_value_13
);
4777 } else fra
.me
.REG
[3] = once_value_13
;
4778 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4779 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4780 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4781 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4782 /* native_interface/frontier.nit:557 */
4783 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4784 if (UNTAG_Bool(REGB0
)) {
4785 /* native_interface/frontier.nit:558 */
4786 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4787 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]);
4788 /* native_interface/frontier.nit:560 */
4789 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4791 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4792 if (!once_value_14
) {
4793 fra
.me
.REG
[6] = BOX_NativeString("#ifndef ");
4795 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4796 once_value_14
= fra
.me
.REG
[6];
4797 register_static_object(&once_value_14
);
4798 } else fra
.me
.REG
[6] = once_value_14
;
4799 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4801 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMType___friendly_null_getter(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4802 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4803 if (!once_value_15
) {
4804 fra
.me
.REG
[6] = BOX_NativeString("\n");
4806 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4807 once_value_15
= fra
.me
.REG
[6];
4808 register_static_object(&once_value_15
);
4809 } else fra
.me
.REG
[6] = once_value_15
;
4810 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4811 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4812 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4813 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4814 /* native_interface/frontier.nit:561 */
4815 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4817 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4818 if (!once_value_16
) {
4819 fra
.me
.REG
[6] = BOX_NativeString("#define ");
4821 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4822 once_value_16
= fra
.me
.REG
[6];
4823 register_static_object(&once_value_16
);
4824 } else fra
.me
.REG
[6] = once_value_16
;
4825 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4827 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMType___friendly_null_getter(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4828 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4829 if (!once_value_17
) {
4830 fra
.me
.REG
[6] = BOX_NativeString(" ");
4832 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4833 once_value_17
= fra
.me
.REG
[6];
4834 register_static_object(&once_value_17
);
4835 } else fra
.me
.REG
[6] = once_value_17
;
4836 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4837 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4839 if (!once_value_18
) {
4840 fra
.me
.REG
[6] = BOX_NativeString("\n");
4842 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4843 once_value_18
= fra
.me
.REG
[6];
4844 register_static_object(&once_value_18
);
4845 } else fra
.me
.REG
[6] = once_value_18
;
4846 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4848 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4849 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
4850 /* native_interface/frontier.nit:562 */
4851 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4852 if (!once_value_19
) {
4853 fra
.me
.REG
[3] = BOX_NativeString("#endif\n");
4855 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4856 once_value_19
= fra
.me
.REG
[3];
4857 register_static_object(&once_value_19
);
4858 } else fra
.me
.REG
[3] = once_value_19
;
4859 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4860 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4861 /* native_interface/frontier.nit:564 */
4862 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4864 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4865 if (!once_value_20
) {
4866 fra
.me
.REG
[6] = BOX_NativeString("");
4868 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4869 once_value_20
= fra
.me
.REG
[6];
4870 register_static_object(&once_value_20
);
4871 } else fra
.me
.REG
[6] = once_value_20
;
4872 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4873 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4874 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4875 if (!once_value_21
) {
4876 fra
.me
.REG
[6] = BOX_NativeString(" ");
4878 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4879 once_value_21
= fra
.me
.REG
[6];
4880 register_static_object(&once_value_21
);
4881 } else fra
.me
.REG
[6] = once_value_21
;
4882 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4884 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4885 if (!once_value_22
) {
4886 fra
.me
.REG
[6] = BOX_NativeString("();\n");
4888 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4889 once_value_22
= fra
.me
.REG
[6];
4890 register_static_object(&once_value_22
);
4891 } else fra
.me
.REG
[6] = once_value_22
;
4892 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4893 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4894 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4895 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
4896 /* native_interface/frontier.nit:566 */
4898 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4899 if (!once_value_23
) {
4900 fra
.me
.REG
[3] = BOX_NativeString("");
4902 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4903 once_value_23
= fra
.me
.REG
[3];
4904 register_static_object(&once_value_23
);
4905 } else fra
.me
.REG
[3] = once_value_23
;
4906 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4907 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4908 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4909 if (!once_value_24
) {
4910 fra
.me
.REG
[2] = BOX_NativeString(" ");
4912 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4913 once_value_24
= fra
.me
.REG
[2];
4914 register_static_object(&once_value_24
);
4915 } else fra
.me
.REG
[2] = once_value_24
;
4916 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4917 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4918 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4919 if (!once_value_25
) {
4920 fra
.me
.REG
[4] = BOX_NativeString("()");
4922 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4923 once_value_25
= fra
.me
.REG
[4];
4924 register_static_object(&once_value_25
);
4925 } else fra
.me
.REG
[4] = once_value_25
;
4926 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4927 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4928 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4929 fra
.me
.REG
[5] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[5]);
4930 /* native_interface/frontier.nit:567 */
4931 if (!once_value_26
) {
4932 fra
.me
.REG
[4] = BOX_NativeString("n");
4934 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4935 once_value_26
= fra
.me
.REG
[4];
4936 register_static_object(&once_value_26
);
4937 } else fra
.me
.REG
[4] = once_value_26
;
4938 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4939 REGB0
= TAG_Bool(1);
4940 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
);
4941 /* native_interface/frontier.nit:568 */
4942 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4943 if (!once_value_27
) {
4944 fra
.me
.REG
[2] = BOX_NativeString("return n;\n");
4945 REGB0
= TAG_Int(10);
4946 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4947 once_value_27
= fra
.me
.REG
[2];
4948 register_static_object(&once_value_27
);
4949 } else fra
.me
.REG
[2] = once_value_27
;
4950 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4951 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4952 /* native_interface/frontier.nit:569 */
4953 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4954 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4955 CALL_compiling_writer___Writer___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
4957 /* native_interface/frontier.nit:573 */
4959 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4960 if (!once_value_28
) {
4961 fra
.me
.REG
[2] = BOX_NativeString("");
4963 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4964 once_value_28
= fra
.me
.REG
[2];
4965 register_static_object(&once_value_28
);
4966 } else fra
.me
.REG
[2] = once_value_28
;
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
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4970 fra
.me
.REG
[2] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4971 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4972 if (!once_value_29
) {
4973 fra
.me
.REG
[2] = BOX_NativeString("_incr_ref");
4975 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4976 once_value_29
= fra
.me
.REG
[2];
4977 register_static_object(&once_value_29
);
4978 } else fra
.me
.REG
[2] = once_value_29
;
4979 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4980 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4981 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4982 /* native_interface/frontier.nit:574 */
4983 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4985 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4986 if (!once_value_30
) {
4987 fra
.me
.REG
[3] = BOX_NativeString("#define ");
4989 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4990 once_value_30
= fra
.me
.REG
[3];
4991 register_static_object(&once_value_30
);
4992 } else fra
.me
.REG
[3] = once_value_30
;
4993 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4994 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4995 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4996 if (!once_value_31
) {
4997 fra
.me
.REG
[5] = BOX_NativeString("( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )\n");
4998 REGB0
= TAG_Int(54);
4999 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5000 once_value_31
= fra
.me
.REG
[5];
5001 register_static_object(&once_value_31
);
5002 } else fra
.me
.REG
[5] = once_value_31
;
5003 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5004 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5005 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5006 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5007 /* native_interface/frontier.nit:577 */
5009 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5010 if (!once_value_32
) {
5011 fra
.me
.REG
[2] = BOX_NativeString("");
5013 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
5014 once_value_32
= fra
.me
.REG
[2];
5015 register_static_object(&once_value_32
);
5016 } else fra
.me
.REG
[2] = once_value_32
;
5017 fra
.me
.REG
[2] = fra
.me
.REG
[2];
5018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5019 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5020 fra
.me
.REG
[0] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5021 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
5022 if (!once_value_33
) {
5023 fra
.me
.REG
[0] = BOX_NativeString("_decr_ref");
5025 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5026 once_value_33
= fra
.me
.REG
[0];
5027 register_static_object(&once_value_33
);
5028 } else fra
.me
.REG
[0] = once_value_33
;
5029 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5030 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
5031 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5032 /* native_interface/frontier.nit:578 */
5033 fra
.me
.REG
[0] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5035 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5036 if (!once_value_34
) {
5037 fra
.me
.REG
[5] = BOX_NativeString("#define ");
5039 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5040 once_value_34
= fra
.me
.REG
[5];
5041 register_static_object(&once_value_34
);
5042 } else fra
.me
.REG
[5] = once_value_34
;
5043 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5044 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5045 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5046 if (!once_value_35
) {
5047 fra
.me
.REG
[4] = BOX_NativeString("( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )\n");
5048 REGB0
= TAG_Int(54);
5049 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5050 once_value_35
= fra
.me
.REG
[4];
5051 register_static_object(&once_value_35
);
5052 } else fra
.me
.REG
[4] = once_value_35
;
5053 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5054 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5055 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5056 CALL_compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
5057 /* native_interface/frontier.nit:580 */
5058 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5059 if (!once_value_36
) {
5060 fra
.me
.REG
[2] = BOX_NativeString("#endif\n");
5062 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
5063 once_value_36
= fra
.me
.REG
[2];
5064 register_static_object(&once_value_36
);
5065 } else fra
.me
.REG
[2] = once_value_36
;
5066 fra
.me
.REG
[2] = fra
.me
.REG
[2];
5067 CALL_compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5069 stack_frame_head
= fra
.me
.prev
;
5072 static const char LOCATE_native_interface___frontier___MMType___compile_new_local_ref
[] = "frontier::MMType::compile_new_local_ref";
5073 void native_interface___frontier___MMType___compile_new_local_ref(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
5074 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5078 static val_t once_value_1
; /* Once value */
5079 static val_t once_value_2
; /* Once value */
5080 static val_t once_value_3
; /* Once value */
5081 static val_t once_value_4
; /* Once value */
5082 static val_t once_value_5
; /* Once value */
5083 static val_t once_value_6
; /* Once value */
5084 static val_t once_value_7
; /* Once value */
5085 static val_t once_value_8
; /* Once value */
5086 static val_t once_value_9
; /* Once value */
5087 static val_t once_value_10
; /* Once value */
5088 static val_t once_value_11
; /* Once value */
5089 static val_t once_value_12
; /* Once value */
5090 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5091 fra
.me
.file
= LOCATE_native_interface___frontier
;
5093 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_new_local_ref
;
5094 fra
.me
.has_broke
= 0;
5095 fra
.me
.REG_size
= 7;
5096 fra
.me
.nitni_local_ref_head
= NULL
;
5097 fra
.me
.REG
[0] = NIT_NULL
;
5098 fra
.me
.REG
[1] = NIT_NULL
;
5099 fra
.me
.REG
[2] = NIT_NULL
;
5100 fra
.me
.REG
[3] = NIT_NULL
;
5101 fra
.me
.REG
[4] = NIT_NULL
;
5102 fra
.me
.REG
[5] = NIT_NULL
;
5103 fra
.me
.REG
[6] = NIT_NULL
;
5108 /* native_interface/frontier.nit:586 */
5109 fra
.me
.REG
[3] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5110 /* native_interface/frontier.nit:588 */
5111 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5113 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
5114 if (!once_value_1
) {
5115 fra
.me
.REG
[6] = BOX_NativeString("");
5117 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
5118 once_value_1
= fra
.me
.REG
[6];
5119 register_static_object(&once_value_1
);
5120 } else fra
.me
.REG
[6] = once_value_1
;
5121 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5122 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5123 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5124 if (!once_value_2
) {
5125 fra
.me
.REG
[6] = BOX_NativeString(" ");
5127 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
5128 once_value_2
= fra
.me
.REG
[6];
5129 register_static_object(&once_value_2
);
5130 } else fra
.me
.REG
[6] = once_value_2
;
5131 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5133 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
5134 if (!once_value_3
) {
5135 fra
.me
.REG
[6] = BOX_NativeString(";\n");
5137 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
5138 once_value_3
= fra
.me
.REG
[6];
5139 register_static_object(&once_value_3
);
5140 } else fra
.me
.REG
[6] = once_value_3
;
5141 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5142 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5143 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5144 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5145 /* native_interface/frontier.nit:589 */
5146 REGB1
= CALL_native_interface___ni_metamodel___MMType___uses_nitni_ref(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5147 if (UNTAG_Bool(REGB1
)) {
5148 /* native_interface/frontier.nit:590 */
5149 fra
.me
.REG
[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5151 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
5152 if (!once_value_4
) {
5153 fra
.me
.REG
[4] = BOX_NativeString("");
5155 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
5156 once_value_4
= fra
.me
.REG
[4];
5157 register_static_object(&once_value_4
);
5158 } else fra
.me
.REG
[4] = once_value_4
;
5159 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5160 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
5162 if (!once_value_5
) {
5163 fra
.me
.REG
[4] = BOX_NativeString(" = malloc( sizeof( struct s_");
5164 REGB1
= TAG_Int(28);
5165 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
5166 once_value_5
= fra
.me
.REG
[4];
5167 register_static_object(&once_value_5
);
5168 } else fra
.me
.REG
[4] = once_value_5
;
5169 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5170 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5171 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5172 if (!once_value_6
) {
5173 fra
.me
.REG
[3] = BOX_NativeString(" ) );\n");
5175 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
5176 once_value_6
= fra
.me
.REG
[3];
5177 register_static_object(&once_value_6
);
5178 } else fra
.me
.REG
[3] = once_value_6
;
5179 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5180 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5181 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5182 CALL_compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
5183 /* native_interface/frontier.nit:591 */
5184 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5186 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
5187 if (!once_value_7
) {
5188 fra
.me
.REG
[3] = BOX_NativeString("");
5190 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
5191 once_value_7
= fra
.me
.REG
[3];
5192 register_static_object(&once_value_7
);
5193 } else fra
.me
.REG
[3] = once_value_7
;
5194 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5195 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5196 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5197 if (!once_value_8
) {
5198 fra
.me
.REG
[3] = BOX_NativeString("->ref.val = NIT_NULL;\n");
5199 REGB1
= TAG_Int(22);
5200 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
5201 once_value_8
= fra
.me
.REG
[3];
5202 register_static_object(&once_value_8
);
5203 } else fra
.me
.REG
[3] = once_value_8
;
5204 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5205 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5206 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5207 CALL_compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
5208 /* native_interface/frontier.nit:592 */
5209 fra
.me
.REG
[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5211 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
5212 if (!once_value_9
) {
5213 fra
.me
.REG
[3] = BOX_NativeString("");
5215 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
5216 once_value_9
= fra
.me
.REG
[3];
5217 register_static_object(&once_value_9
);
5218 } else fra
.me
.REG
[3] = once_value_9
;
5219 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5220 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5221 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
5222 if (!once_value_10
) {
5223 fra
.me
.REG
[3] = BOX_NativeString("->ref.count = 0;\n");
5224 REGB1
= TAG_Int(17);
5225 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
5226 once_value_10
= fra
.me
.REG
[3];
5227 register_static_object(&once_value_10
);
5228 } else fra
.me
.REG
[3] = once_value_10
;
5229 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5230 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5231 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5232 CALL_compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
5233 /* native_interface/frontier.nit:593 */
5234 if (UNTAG_Bool(REGB0
)) {
5235 /* native_interface/frontier.nit:594 */
5236 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5238 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5239 if (!once_value_11
) {
5240 fra
.me
.REG
[0] = BOX_NativeString("nitni_local_ref_add( (struct nitni_ref *)");
5241 REGB0
= TAG_Int(41);
5242 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5243 once_value_11
= fra
.me
.REG
[0];
5244 register_static_object(&once_value_11
);
5245 } else fra
.me
.REG
[0] = once_value_11
;
5246 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5247 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
5248 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
5249 if (!once_value_12
) {
5250 fra
.me
.REG
[1] = BOX_NativeString(" );\n");
5252 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
5253 once_value_12
= fra
.me
.REG
[1];
5254 register_static_object(&once_value_12
);
5255 } else fra
.me
.REG
[1] = once_value_12
;
5256 fra
.me
.REG
[1] = fra
.me
.REG
[1];
5257 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
5258 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5259 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5262 stack_frame_head
= fra
.me
.prev
;
5265 static const char LOCATE_native_interface___frontier___MMType___compile_stub_local_ref
[] = "frontier::MMType::compile_stub_local_ref";
5266 void native_interface___frontier___MMType___compile_stub_local_ref(val_t p0
, val_t p1
, val_t p2
){
5267 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5270 static val_t once_value_1
; /* Once value */
5271 static val_t once_value_2
; /* Once value */
5272 static val_t once_value_3
; /* Once value */
5273 static val_t once_value_4
; /* Once value */
5274 static val_t once_value_5
; /* Once value */
5275 static val_t once_value_6
; /* Once value */
5276 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5277 fra
.me
.file
= LOCATE_native_interface___frontier
;
5279 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_stub_local_ref
;
5280 fra
.me
.has_broke
= 0;
5281 fra
.me
.REG_size
= 7;
5282 fra
.me
.nitni_local_ref_head
= NULL
;
5283 fra
.me
.REG
[0] = NIT_NULL
;
5284 fra
.me
.REG
[1] = NIT_NULL
;
5285 fra
.me
.REG
[2] = NIT_NULL
;
5286 fra
.me
.REG
[3] = NIT_NULL
;
5287 fra
.me
.REG
[4] = NIT_NULL
;
5288 fra
.me
.REG
[5] = NIT_NULL
;
5289 fra
.me
.REG
[6] = NIT_NULL
;
5293 /* native_interface/frontier.nit:603 */
5294 fra
.me
.REG
[3] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5295 /* native_interface/frontier.nit:604 */
5296 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5298 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5299 if (!once_value_1
) {
5300 fra
.me
.REG
[6] = BOX_NativeString("");
5302 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5303 once_value_1
= fra
.me
.REG
[6];
5304 register_static_object(&once_value_1
);
5305 } else fra
.me
.REG
[6] = once_value_1
;
5306 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5307 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5308 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5309 if (!once_value_2
) {
5310 fra
.me
.REG
[6] = BOX_NativeString(" ");
5312 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5313 once_value_2
= fra
.me
.REG
[6];
5314 register_static_object(&once_value_2
);
5315 } else fra
.me
.REG
[6] = once_value_2
;
5316 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5317 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5318 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
5319 if (!once_value_3
) {
5320 fra
.me
.REG
[6] = BOX_NativeString(";\n");
5322 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5323 once_value_3
= fra
.me
.REG
[6];
5324 register_static_object(&once_value_3
);
5325 } else fra
.me
.REG
[6] = once_value_3
;
5326 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5327 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5328 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5329 CALL_compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5330 /* native_interface/frontier.nit:605 */
5331 REGB0
= CALL_native_interface___ni_metamodel___MMType___uses_nitni_ref(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5332 if (UNTAG_Bool(REGB0
)) {
5333 /* native_interface/frontier.nit:606 */
5334 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5336 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5337 if (!once_value_4
) {
5338 fra
.me
.REG
[5] = BOX_NativeString("");
5340 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5341 once_value_4
= fra
.me
.REG
[5];
5342 register_static_object(&once_value_4
);
5343 } else fra
.me
.REG
[5] = once_value_4
;
5344 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
5346 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5347 if (!once_value_5
) {
5348 fra
.me
.REG
[1] = BOX_NativeString(" = (");
5350 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
5351 once_value_5
= fra
.me
.REG
[1];
5352 register_static_object(&once_value_5
);
5353 } else fra
.me
.REG
[1] = once_value_5
;
5354 fra
.me
.REG
[1] = fra
.me
.REG
[1];
5355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5356 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5357 if (!once_value_6
) {
5358 fra
.me
.REG
[3] = BOX_NativeString(")NULL;\n");
5360 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5361 once_value_6
= fra
.me
.REG
[3];
5362 register_static_object(&once_value_6
);
5363 } else fra
.me
.REG
[3] = once_value_6
;
5364 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5365 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5366 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5367 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
5369 stack_frame_head
= fra
.me
.prev
;
5372 static const char LOCATE_native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier
[] = "frontier::MMExplicitImport::compile_friendly_to_frontier";
5373 void native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier(val_t p0
, val_t p1
){
5374 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
5379 static val_t once_value_1
; /* Once value */
5380 static val_t once_value_2
; /* Once value */
5381 static val_t once_value_3
; /* Once value */
5382 static val_t once_value_4
; /* Once value */
5383 static val_t once_value_5
; /* Once value */
5384 static val_t once_value_6
; /* Once value */
5385 static val_t once_value_7
; /* Once value */
5386 static val_t once_value_8
; /* Once value */
5387 static val_t once_value_9
; /* Once value */
5388 static val_t once_value_10
; /* Once value */
5389 static val_t once_value_11
; /* Once value */
5390 static val_t once_value_12
; /* Once value */
5391 static val_t once_value_14
; /* Once value */
5392 static val_t once_value_15
; /* Once value */
5393 static val_t once_value_16
; /* Once value */
5394 static val_t once_value_17
; /* Once value */
5395 static val_t once_value_18
; /* Once value */
5396 static val_t once_value_19
; /* Once value */
5397 static val_t once_value_20
; /* Once value */
5398 static val_t once_value_21
; /* Once value */
5399 static val_t once_value_23
; /* Once value */
5400 static val_t once_value_24
; /* Once value */
5401 static val_t once_value_25
; /* Once value */
5402 static val_t once_value_26
; /* Once value */
5403 static val_t once_value_27
; /* Once value */
5404 static val_t once_value_28
; /* Once value */
5405 static val_t once_value_29
; /* Once value */
5406 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5407 fra
.me
.file
= LOCATE_native_interface___frontier
;
5409 fra
.me
.meth
= LOCATE_native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier
;
5410 fra
.me
.has_broke
= 0;
5411 fra
.me
.REG_size
= 8;
5412 fra
.me
.nitni_local_ref_head
= NULL
;
5413 fra
.me
.REG
[0] = NIT_NULL
;
5414 fra
.me
.REG
[1] = NIT_NULL
;
5415 fra
.me
.REG
[2] = NIT_NULL
;
5416 fra
.me
.REG
[3] = NIT_NULL
;
5417 fra
.me
.REG
[4] = NIT_NULL
;
5418 fra
.me
.REG
[5] = NIT_NULL
;
5419 fra
.me
.REG
[6] = NIT_NULL
;
5420 fra
.me
.REG
[7] = NIT_NULL
;
5423 /* native_interface/frontier.nit:615 */
5424 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5426 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5427 if (!once_value_1
) {
5428 fra
.me
.REG
[4] = BOX_NativeString("/* friendly for ");
5429 REGB0
= TAG_Int(16);
5430 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5431 once_value_1
= fra
.me
.REG
[4];
5432 register_static_object(&once_value_1
);
5433 } else fra
.me
.REG
[4] = once_value_1
;
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
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5437 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5439 if (!once_value_2
) {
5440 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
5442 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5443 once_value_2
= fra
.me
.REG
[4];
5444 register_static_object(&once_value_2
);
5445 } else fra
.me
.REG
[4] = once_value_2
;
5446 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5447 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5448 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5449 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5450 /* native_interface/frontier.nit:616 */
5451 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5453 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5454 if (!once_value_3
) {
5455 fra
.me
.REG
[4] = BOX_NativeString("");
5457 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5458 once_value_3
= fra
.me
.REG
[4];
5459 register_static_object(&once_value_3
);
5460 } else fra
.me
.REG
[4] = once_value_3
;
5461 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5462 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5463 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5464 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5465 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5466 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]);
5467 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5468 if (!once_value_4
) {
5469 fra
.me
.REG
[6] = BOX_NativeString(";\n");
5471 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5472 once_value_4
= fra
.me
.REG
[6];
5473 register_static_object(&once_value_4
);
5474 } else fra
.me
.REG
[6] = once_value_4
;
5475 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5476 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5477 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5478 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5479 /* native_interface/frontier.nit:620 */
5480 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5482 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5483 if (!once_value_5
) {
5484 fra
.me
.REG
[6] = BOX_NativeString("#ifndef ");
5486 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5487 once_value_5
= fra
.me
.REG
[6];
5488 register_static_object(&once_value_5
);
5489 } else fra
.me
.REG
[6] = once_value_5
;
5490 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5491 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
5492 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5493 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5494 fra
.me
.REG
[5] = CALL_primitive_info___MMMethod___friendly_extern_name(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
5495 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5496 if (!once_value_6
) {
5497 fra
.me
.REG
[5] = BOX_NativeString("\n");
5499 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5500 once_value_6
= fra
.me
.REG
[5];
5501 register_static_object(&once_value_6
);
5502 } else fra
.me
.REG
[5] = once_value_6
;
5503 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5504 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5505 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5506 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5507 /* native_interface/frontier.nit:621 */
5508 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5510 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5511 if (!once_value_7
) {
5512 fra
.me
.REG
[5] = BOX_NativeString("#define ");
5514 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5515 once_value_7
= fra
.me
.REG
[5];
5516 register_static_object(&once_value_7
);
5517 } else fra
.me
.REG
[5] = once_value_7
;
5518 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5519 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5520 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5521 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5522 fra
.me
.REG
[6] = CALL_primitive_info___MMMethod___friendly_extern_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5523 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5524 if (!once_value_8
) {
5525 fra
.me
.REG
[6] = BOX_NativeString(" ");
5527 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5528 once_value_8
= fra
.me
.REG
[6];
5529 register_static_object(&once_value_8
);
5530 } else fra
.me
.REG
[6] = once_value_8
;
5531 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5532 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5533 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5534 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5535 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5536 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]);
5537 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5538 if (!once_value_9
) {
5539 fra
.me
.REG
[4] = BOX_NativeString("\n");
5541 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5542 once_value_9
= fra
.me
.REG
[4];
5543 register_static_object(&once_value_9
);
5544 } else fra
.me
.REG
[4] = once_value_9
;
5545 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5546 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5547 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5548 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5549 /* native_interface/frontier.nit:622 */
5550 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5551 if (!once_value_10
) {
5552 fra
.me
.REG
[3] = BOX_NativeString("#endif\n");
5554 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5555 once_value_10
= fra
.me
.REG
[3];
5556 register_static_object(&once_value_10
);
5557 } else fra
.me
.REG
[3] = once_value_10
;
5558 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5559 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5560 /* native_interface/frontier.nit:625 */
5561 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5563 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5564 if (!once_value_11
) {
5565 fra
.me
.REG
[4] = BOX_NativeString("/* friendly for ");
5566 REGB0
= TAG_Int(16);
5567 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5568 once_value_11
= fra
.me
.REG
[4];
5569 register_static_object(&once_value_11
);
5570 } else fra
.me
.REG
[4] = once_value_11
;
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
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5574 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5575 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5576 if (!once_value_12
) {
5577 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
5579 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
5580 once_value_12
= fra
.me
.REG
[4];
5581 register_static_object(&once_value_12
);
5582 } else fra
.me
.REG
[4] = once_value_12
;
5583 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5584 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5585 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5586 CALL_compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5587 /* native_interface/frontier.nit:627 */
5588 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5589 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5590 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5591 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]);
5592 fra
.me
.REG
[4] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[4]);
5593 /* native_interface/frontier.nit:630 */
5594 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
5595 /* native_interface/frontier.nit:631 */
5596 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5597 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5598 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5599 if (UNTAG_Bool(REGB0
)) {
5600 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5601 fra
.me
.REG
[2] = CALL_native_interface___frontier___MMSignature___recv_ni_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5602 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5604 /* native_interface/frontier.nit:632 */
5605 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5606 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5607 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5608 /* ../lib/standard/collection/array.nit:266 */
5609 fra
.me
.REG
[2] = fra
.me
.REG
[3];
5610 /* ../lib/standard/collection/array.nit:269 */
5612 /* ../lib/standard/collection/array.nit:270 */
5613 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
5614 if (UNTAG_Bool(REGB1
)) {
5616 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
5618 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
5619 /* ../lib/standard/collection/array.nit:271 */
5620 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
5621 /* ../lib/standard/collection/array.nit:272 */
5623 /* ../lib/standard/collection/array.nit:24 */
5624 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
5625 if (UNTAG_Bool(REGB1
)) {
5627 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5629 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
5630 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
5631 if (UNTAG_Bool(REGB2
)) {
5633 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5635 /* ../lib/standard/kernel.nit:235 */
5636 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5637 /* ../lib/standard/collection/array.nit:272 */
5638 if (UNTAG_Bool(REGB1
)) {
5639 /* ../lib/standard/collection/array.nit:273 */
5640 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5641 if (UNTAG_Bool(REGB1
)) {
5642 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
5644 /* ../lib/standard/collection/array.nit:724 */
5645 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
5646 /* native_interface/frontier.nit:634 */
5647 CALL_native_interface___frontier___NiVariable___prepare_for_nit(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
5648 /* ../lib/standard/collection/array.nit:274 */
5650 /* ../lib/standard/kernel.nit:238 */
5651 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5652 /* ../lib/standard/collection/array.nit:274 */
5655 /* ../lib/standard/collection/array.nit:272 */
5660 /* native_interface/frontier.nit:637 */
5661 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5662 fra
.me
.REG
[5] = CALL_native_interface___frontier___MMSignature___return_ni_variable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5663 /* native_interface/frontier.nit:638 */
5664 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5665 if (UNTAG_Bool(REGB0
)) {
5667 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5668 if (UNTAG_Bool(REGB1
)) {
5669 REGB1
= TAG_Bool(0);
5672 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5676 if (UNTAG_Bool(REGB0
)) {
5677 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5678 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5680 REGB1
= TAG_Bool(0);
5683 if (UNTAG_Bool(REGB0
)) {
5684 /* native_interface/frontier.nit:639 */
5685 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5686 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5687 fra
.me
.REG
[2] = NEW_ReturnVariable_native_interface___frontier___ReturnVariable___init(fra
.me
.REG
[2]);
5688 fra
.me
.REG
[5] = fra
.me
.REG
[2];
5690 /* native_interface/frontier.nit:641 */
5691 fra
.me
.REG
[2] = NEW_Buffer_standard___string___Buffer___init();
5692 /* native_interface/frontier.nit:642 */
5693 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5694 if (UNTAG_Bool(REGB0
)) {
5696 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5697 if (UNTAG_Bool(REGB1
)) {
5698 REGB1
= TAG_Bool(0);
5701 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5705 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5706 if (UNTAG_Bool(REGB0
)) {
5707 /* native_interface/frontier.nit:643 */
5708 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5709 if (UNTAG_Bool(REGB0
)) {
5710 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 643);
5712 CALL_native_interface___frontier___NiVariable___prepare_for_c(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5713 /* native_interface/frontier.nit:644 */
5715 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5716 if (!once_value_14
) {
5717 fra
.me
.REG
[7] = BOX_NativeString("");
5719 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5720 once_value_14
= fra
.me
.REG
[7];
5721 register_static_object(&once_value_14
);
5722 } else fra
.me
.REG
[7] = once_value_14
;
5723 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5724 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5725 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5726 if (UNTAG_Bool(REGB0
)) {
5727 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 644);
5729 fra
.me
.REG
[7] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5730 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5731 if (!once_value_15
) {
5732 fra
.me
.REG
[7] = BOX_NativeString(" = ");
5734 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5735 once_value_15
= fra
.me
.REG
[7];
5736 register_static_object(&once_value_15
);
5737 } else fra
.me
.REG
[7] = once_value_15
;
5738 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5739 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5740 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5741 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5743 /* native_interface/frontier.nit:648 */
5744 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5745 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5746 if (UNTAG_Bool(REGB0
)) {
5747 /* native_interface/frontier.nit:649 */
5749 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5750 if (!once_value_16
) {
5751 fra
.me
.REG
[7] = BOX_NativeString("NEW_");
5753 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5754 once_value_16
= fra
.me
.REG
[7];
5755 register_static_object(&once_value_16
);
5756 } else fra
.me
.REG
[7] = once_value_16
;
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___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5760 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5761 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5762 if (!once_value_17
) {
5763 fra
.me
.REG
[7] = BOX_NativeString("_");
5765 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5766 once_value_17
= fra
.me
.REG
[7];
5767 register_static_object(&once_value_17
);
5768 } else fra
.me
.REG
[7] = once_value_17
;
5769 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5770 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5771 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5772 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5773 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5774 fra
.me
.REG
[7] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5775 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5776 if (!once_value_18
) {
5777 fra
.me
.REG
[7] = BOX_NativeString("");
5779 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5780 once_value_18
= fra
.me
.REG
[7];
5781 register_static_object(&once_value_18
);
5782 } else fra
.me
.REG
[7] = once_value_18
;
5783 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5785 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5786 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5788 /* native_interface/frontier.nit:651 */
5790 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5791 if (!once_value_19
) {
5792 fra
.me
.REG
[7] = BOX_NativeString("");
5794 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5795 once_value_19
= fra
.me
.REG
[7];
5796 register_static_object(&once_value_19
);
5797 } else fra
.me
.REG
[7] = once_value_19
;
5798 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5800 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5801 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5802 fra
.me
.REG
[7] = CALL_compiling___compiling_base___MMGlobalProperty___meth_call(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5803 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5804 if (!once_value_20
) {
5805 fra
.me
.REG
[7] = BOX_NativeString("( ");
5807 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5808 once_value_20
= fra
.me
.REG
[7];
5809 register_static_object(&once_value_20
);
5810 } else fra
.me
.REG
[7] = once_value_20
;
5811 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5812 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5813 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5814 fra
.me
.REG
[0] = CALL_native_interface___frontier___MMSignature___recv_ni_variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5815 fra
.me
.REG
[0] = CALL_native_interface___frontier___NiVariable___as_arg_to_nit(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5816 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
5817 if (!once_value_21
) {
5818 fra
.me
.REG
[0] = BOX_NativeString(" )");
5820 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5821 once_value_21
= fra
.me
.REG
[0];
5822 register_static_object(&once_value_21
);
5823 } else fra
.me
.REG
[0] = once_value_21
;
5824 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5825 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
5826 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5827 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5829 /* native_interface/frontier.nit:654 */
5830 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
5831 /* ../lib/standard/collection/array.nit:269 */
5833 /* ../lib/standard/collection/array.nit:270 */
5834 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
5835 if (UNTAG_Bool(REGB1
)) {
5837 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
5839 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
5840 /* ../lib/standard/collection/array.nit:271 */
5841 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
5842 /* ../lib/standard/collection/array.nit:272 */
5844 /* ../lib/standard/collection/array.nit:24 */
5845 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
5846 if (UNTAG_Bool(REGB1
)) {
5848 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5850 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
5851 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
5852 if (UNTAG_Bool(REGB2
)) {
5854 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5856 /* ../lib/standard/kernel.nit:235 */
5857 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5858 /* ../lib/standard/collection/array.nit:272 */
5859 if (UNTAG_Bool(REGB1
)) {
5860 /* ../lib/standard/collection/array.nit:273 */
5861 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5862 if (UNTAG_Bool(REGB1
)) {
5863 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
5865 /* ../lib/standard/collection/array.nit:724 */
5866 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB0
)];
5867 /* native_interface/frontier.nit:655 */
5868 fra
.me
.REG
[7] = CALL_native_interface___frontier___NiVariable___as_arg_to_nit(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5869 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5870 /* ../lib/standard/collection/array.nit:274 */
5872 /* ../lib/standard/kernel.nit:238 */
5873 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5874 /* ../lib/standard/collection/array.nit:274 */
5877 /* ../lib/standard/collection/array.nit:272 */
5882 /* native_interface/frontier.nit:657 */
5884 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5885 if (!once_value_23
) {
5886 fra
.me
.REG
[3] = BOX_NativeString("( ");
5888 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5889 once_value_23
= fra
.me
.REG
[3];
5890 register_static_object(&once_value_23
);
5891 } else fra
.me
.REG
[3] = once_value_23
;
5892 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5893 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5894 if (!once_value_24
) {
5895 fra
.me
.REG
[3] = BOX_NativeString(", ");
5897 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5898 once_value_24
= fra
.me
.REG
[3];
5899 register_static_object(&once_value_24
);
5900 } else fra
.me
.REG
[3] = once_value_24
;
5901 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5902 fra
.me
.REG
[3] = CALL_standard___string___Collection___join(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5903 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5904 if (!once_value_25
) {
5905 fra
.me
.REG
[3] = BOX_NativeString(" );\n");
5907 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5908 once_value_25
= fra
.me
.REG
[3];
5909 register_static_object(&once_value_25
);
5910 } else fra
.me
.REG
[3] = once_value_25
;
5911 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5912 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5913 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5914 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
5915 /* native_interface/frontier.nit:659 */
5916 fra
.me
.REG
[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5917 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5918 CALL_compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
5919 /* native_interface/frontier.nit:662 */
5920 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5921 if (UNTAG_Bool(REGB0
)) {
5923 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5924 if (UNTAG_Bool(REGB1
)) {
5925 REGB1
= TAG_Bool(0);
5928 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5932 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5933 if (UNTAG_Bool(REGB0
)) {
5934 /* native_interface/frontier.nit:663 */
5935 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5937 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5938 if (!once_value_26
) {
5939 fra
.me
.REG
[3] = BOX_NativeString("");
5941 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5942 once_value_26
= fra
.me
.REG
[3];
5943 register_static_object(&once_value_26
);
5944 } else fra
.me
.REG
[3] = once_value_26
;
5945 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5946 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5947 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5948 if (UNTAG_Bool(REGB0
)) {
5949 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 663);
5951 fra
.me
.REG
[3] = CALL_native_interface___frontier___NiVariable___ni_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5952 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5953 if (UNTAG_Bool(REGB0
)) {
5954 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 663);
5956 fra
.me
.REG
[6] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5957 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5958 if (UNTAG_Bool(REGB0
)) {
5959 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 663);
5961 fra
.me
.REG
[7] = CALL_native_interface___frontier___NiVariable___ni_from_name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5962 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]);
5963 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[7]);
5964 if (!once_value_27
) {
5965 fra
.me
.REG
[7] = BOX_NativeString(";\n");
5967 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5968 once_value_27
= fra
.me
.REG
[7];
5969 register_static_object(&once_value_27
);
5970 } else fra
.me
.REG
[7] = once_value_27
;
5971 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5972 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[7]);
5973 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5974 CALL_compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
5975 /* native_interface/frontier.nit:664 */
5976 fra
.me
.REG
[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5978 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5979 if (!once_value_28
) {
5980 fra
.me
.REG
[7] = BOX_NativeString("return ");
5982 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5983 once_value_28
= fra
.me
.REG
[7];
5984 register_static_object(&once_value_28
);
5985 } else fra
.me
.REG
[7] = once_value_28
;
5986 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5987 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[7]);
5988 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5989 if (UNTAG_Bool(REGB0
)) {
5990 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 664);
5992 fra
.me
.REG
[5] = CALL_native_interface___frontier___NiVariable___ni_to_name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5993 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5994 if (!once_value_29
) {
5995 fra
.me
.REG
[5] = BOX_NativeString(";\n");
5997 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5998 once_value_29
= fra
.me
.REG
[5];
5999 register_static_object(&once_value_29
);
6000 } else fra
.me
.REG
[5] = once_value_29
;
6001 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6002 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
6003 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6004 CALL_compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
6006 /* native_interface/frontier.nit:667 */
6007 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6008 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6009 CALL_compiling_writer___Writer___append(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6010 stack_frame_head
= fra
.me
.prev
;
6013 static const char LOCATE_native_interface___frontier___MMExplicitImport___hash
[] = "frontier::MMExplicitImport::(hash::Object::hash)";
6014 val_t
native_interface___frontier___MMExplicitImport___hash(val_t p0
){
6015 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6019 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6020 fra
.me
.file
= LOCATE_native_interface___frontier
;
6022 fra
.me
.meth
= LOCATE_native_interface___frontier___MMExplicitImport___hash
;
6023 fra
.me
.has_broke
= 0;
6024 fra
.me
.REG_size
= 2;
6025 fra
.me
.nitni_local_ref_head
= NULL
;
6026 fra
.me
.REG
[0] = NIT_NULL
;
6027 fra
.me
.REG
[1] = NIT_NULL
;
6029 /* native_interface/frontier.nit:672 */
6030 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6031 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6032 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6033 REGB0
= CALL_standard___hash___Object___hash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6034 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6035 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6036 REGB1
= CALL_standard___hash___Object___hash(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6037 /* ../lib/standard/kernel.nit:238 */
6038 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6039 /* native_interface/frontier.nit:672 */
6042 stack_frame_head
= fra
.me
.prev
;
6045 static const char LOCATE_native_interface___frontier___MMExplicitImport_____eqeq
[] = "frontier::MMExplicitImport::(kernel::Object::==)";
6046 val_t
native_interface___frontier___MMExplicitImport_____eqeq(val_t p0
, val_t p1
){
6047 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6051 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6052 fra
.me
.file
= LOCATE_native_interface___frontier
;
6054 fra
.me
.meth
= LOCATE_native_interface___frontier___MMExplicitImport_____eqeq
;
6055 fra
.me
.has_broke
= 0;
6056 fra
.me
.REG_size
= 4;
6057 fra
.me
.nitni_local_ref_head
= NULL
;
6058 fra
.me
.REG
[0] = NIT_NULL
;
6059 fra
.me
.REG
[1] = NIT_NULL
;
6060 fra
.me
.REG
[2] = NIT_NULL
;
6061 fra
.me
.REG
[3] = NIT_NULL
;
6064 /* native_interface/frontier.nit:676 */
6065 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*/;
6066 if (UNTAG_Bool(REGB0
)) {
6067 /* native_interface/frontier.nit:677 */
6068 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6069 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6070 if (UNTAG_Bool(REGB0
)) {
6071 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 677);
6073 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6074 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
6075 if (UNTAG_Bool(REGB0
)) {
6077 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6081 /* native_interface/frontier.nit:676 */
6082 REGB1
= TAG_Bool(0);
6085 if (UNTAG_Bool(REGB0
)) {
6086 /* native_interface/frontier.nit:677 */
6087 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6088 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6089 if (UNTAG_Bool(REGB0
)) {
6090 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 677);
6092 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6093 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[1]));
6094 if (UNTAG_Bool(REGB0
)) {
6096 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6100 /* native_interface/frontier.nit:676 */
6101 REGB1
= TAG_Bool(0);
6106 stack_frame_head
= fra
.me
.prev
;