1 /* This C file is generated by NIT to compile module native_interface___frontier. */
2 #include "native_interface___frontier._sep.h"
3 void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0
, val_t p1
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
7 static val_t once_value_1
; /* Once value */
8 static val_t once_value_2
; /* Once value */
9 static val_t once_value_3
; /* Once value */
10 static val_t once_value_4
; /* Once value */
11 static val_t once_value_5
; /* Once value */
12 static val_t once_value_6
; /* Once value */
13 static val_t once_value_7
; /* Once value */
14 static val_t once_value_8
; /* Once value */
15 static val_t once_value_9
; /* Once value */
16 static val_t once_value_10
; /* Once value */
17 static val_t once_value_11
; /* Once value */
18 static val_t once_value_12
; /* Once value */
19 static val_t once_value_13
; /* Once value */
20 static val_t once_value_14
; /* Once value */
21 static val_t once_value_15
; /* Once value */
22 static val_t once_value_16
; /* Once value */
23 static val_t once_value_17
; /* Once value */
24 static val_t once_value_18
; /* Once value */
25 static val_t once_value_19
; /* Once value */
26 static val_t once_value_20
; /* Once value */
27 static val_t once_value_21
; /* Once value */
28 static val_t once_value_22
; /* Once value */
29 static val_t once_value_25
; /* Once value */
30 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
31 fra
.me
.file
= LOCATE_native_interface___frontier
;
33 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcModule___compile_frontier
;
36 fra
.me
.nitni_local_ref_head
= NULL
;
37 fra
.me
.REG
[0] = NIT_NULL
;
38 fra
.me
.REG
[1] = NIT_NULL
;
39 fra
.me
.REG
[2] = NIT_NULL
;
40 fra
.me
.REG
[3] = NIT_NULL
;
41 fra
.me
.REG
[4] = NIT_NULL
;
42 fra
.me
.REG
[5] = NIT_NULL
;
45 /* native_interface/frontier.nit:32 */
46 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
48 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
50 fra
.me
.REG
[4] = BOX_NativeString("#include \"");
52 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
53 once_value_1
= fra
.me
.REG
[4];
54 register_static_object(&once_value_1
);
55 } else fra
.me
.REG
[4] = once_value_1
;
56 fra
.me
.REG
[4] = fra
.me
.REG
[4];
57 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
58 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
59 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
60 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
62 fra
.me
.REG
[4] = BOX_NativeString("._nitni.h\"\n");
64 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
65 once_value_2
= fra
.me
.REG
[4];
66 register_static_object(&once_value_2
);
67 } else fra
.me
.REG
[4] = once_value_2
;
68 fra
.me
.REG
[4] = fra
.me
.REG
[4];
69 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
70 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
71 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
72 /* native_interface/frontier.nit:35 */
73 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
75 fra
.me
.REG
[2] = BOX_NativeString("#include <nit_common.h>\n");
77 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
78 once_value_3
= fra
.me
.REG
[2];
79 register_static_object(&once_value_3
);
80 } else fra
.me
.REG
[2] = once_value_3
;
81 fra
.me
.REG
[2] = fra
.me
.REG
[2];
82 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
83 /* native_interface/frontier.nit:36 */
84 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
86 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
88 fra
.me
.REG
[4] = BOX_NativeString("#include \"");
90 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
91 once_value_4
= fra
.me
.REG
[4];
92 register_static_object(&once_value_4
);
93 } else fra
.me
.REG
[4] = once_value_4
;
94 fra
.me
.REG
[4] = fra
.me
.REG
[4];
95 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
96 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___cprogram(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
97 fra
.me
.REG
[4] = CALL_compiling___compiling_base___CProgram___module_header_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
98 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
100 fra
.me
.REG
[4] = BOX_NativeString("\"\n");
102 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
103 once_value_5
= fra
.me
.REG
[4];
104 register_static_object(&once_value_5
);
105 } else fra
.me
.REG
[4] = once_value_5
;
106 fra
.me
.REG
[4] = fra
.me
.REG
[4];
107 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
108 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
109 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
110 /* native_interface/frontier.nit:38 */
112 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
114 fra
.me
.REG
[2] = BOX_NativeString("");
116 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
117 once_value_6
= fra
.me
.REG
[2];
118 register_static_object(&once_value_6
);
119 } else fra
.me
.REG
[2] = once_value_6
;
120 fra
.me
.REG
[2] = fra
.me
.REG
[2];
121 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
122 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
123 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
124 fra
.me
.REG
[2] = CALL_standard___string___AbstractString___to_upper(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
125 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
127 fra
.me
.REG
[2] = BOX_NativeString("_NITNI_H");
129 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
130 once_value_7
= fra
.me
.REG
[2];
131 register_static_object(&once_value_7
);
132 } else fra
.me
.REG
[2] = once_value_7
;
133 fra
.me
.REG
[2] = fra
.me
.REG
[2];
134 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
135 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
136 /* native_interface/frontier.nit:39 */
137 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
139 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
141 fra
.me
.REG
[5] = BOX_NativeString("#ifndef ");
143 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
144 once_value_8
= fra
.me
.REG
[5];
145 register_static_object(&once_value_8
);
146 } else fra
.me
.REG
[5] = once_value_8
;
147 fra
.me
.REG
[5] = fra
.me
.REG
[5];
148 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
149 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
151 fra
.me
.REG
[5] = BOX_NativeString("\n");
153 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
154 once_value_9
= fra
.me
.REG
[5];
155 register_static_object(&once_value_9
);
156 } else fra
.me
.REG
[5] = once_value_9
;
157 fra
.me
.REG
[5] = fra
.me
.REG
[5];
158 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
159 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
160 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
161 /* native_interface/frontier.nit:40 */
162 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
164 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
165 if (!once_value_10
) {
166 fra
.me
.REG
[5] = BOX_NativeString("#define ");
168 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
169 once_value_10
= fra
.me
.REG
[5];
170 register_static_object(&once_value_10
);
171 } else fra
.me
.REG
[5] = once_value_10
;
172 fra
.me
.REG
[5] = fra
.me
.REG
[5];
173 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
174 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
175 if (!once_value_11
) {
176 fra
.me
.REG
[3] = BOX_NativeString("\n\n");
178 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
179 once_value_11
= fra
.me
.REG
[3];
180 register_static_object(&once_value_11
);
181 } else fra
.me
.REG
[3] = once_value_11
;
182 fra
.me
.REG
[3] = fra
.me
.REG
[3];
183 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
184 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
185 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
186 /* native_interface/frontier.nit:43 */
188 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
189 if (!once_value_12
) {
190 fra
.me
.REG
[4] = BOX_NativeString("");
192 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
193 once_value_12
= fra
.me
.REG
[4];
194 register_static_object(&once_value_12
);
195 } else fra
.me
.REG
[4] = once_value_12
;
196 fra
.me
.REG
[4] = fra
.me
.REG
[4];
197 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
198 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule___directory(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
199 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
201 if (!once_value_13
) {
202 fra
.me
.REG
[4] = BOX_NativeString("/");
204 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
205 once_value_13
= fra
.me
.REG
[4];
206 register_static_object(&once_value_13
);
207 } else fra
.me
.REG
[4] = once_value_13
;
208 fra
.me
.REG
[4] = fra
.me
.REG
[4];
209 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
210 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
211 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
212 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
213 if (!once_value_14
) {
214 fra
.me
.REG
[4] = BOX_NativeString(".nit.h");
216 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
217 once_value_14
= fra
.me
.REG
[4];
218 register_static_object(&once_value_14
);
219 } else fra
.me
.REG
[4] = once_value_14
;
220 fra
.me
.REG
[4] = fra
.me
.REG
[4];
221 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
222 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
223 /* native_interface/frontier.nit:44 */
224 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
225 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
226 if (UNTAG_Bool(REGB0
)) {
227 /* native_interface/frontier.nit:45 */
229 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
230 if (!once_value_15
) {
231 fra
.me
.REG
[3] = BOX_NativeString("");
233 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
234 once_value_15
= fra
.me
.REG
[3];
235 register_static_object(&once_value_15
);
236 } else fra
.me
.REG
[3] = once_value_15
;
237 fra
.me
.REG
[3] = fra
.me
.REG
[3];
238 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
239 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMModule___directory(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
240 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
241 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
242 if (!once_value_16
) {
243 fra
.me
.REG
[3] = BOX_NativeString("/");
245 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
246 once_value_16
= fra
.me
.REG
[3];
247 register_static_object(&once_value_16
);
248 } else fra
.me
.REG
[3] = once_value_16
;
249 fra
.me
.REG
[3] = fra
.me
.REG
[3];
250 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
251 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
252 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
253 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
254 if (!once_value_17
) {
255 fra
.me
.REG
[3] = BOX_NativeString("_nit.h");
257 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
258 once_value_17
= fra
.me
.REG
[3];
259 register_static_object(&once_value_17
);
260 } else fra
.me
.REG
[3] = once_value_17
;
261 fra
.me
.REG
[3] = fra
.me
.REG
[3];
262 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
263 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
264 fra
.me
.REG
[2] = fra
.me
.REG
[4];
266 /* native_interface/frontier.nit:47 */
267 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
268 if (UNTAG_Bool(REGB0
)) {
269 /* native_interface/frontier.nit:48 */
270 if (!once_value_18
) {
271 fra
.me
.REG
[4] = BOX_NativeString("..");
273 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
274 once_value_18
= fra
.me
.REG
[4];
275 register_static_object(&once_value_18
);
276 } else fra
.me
.REG
[4] = once_value_18
;
277 fra
.me
.REG
[4] = fra
.me
.REG
[4];
278 fra
.me
.REG
[2] = CALL_standard___file___String___join_path(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
279 fra
.me
.REG
[2] = CALL_standard___file___String___simplify_path(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
280 /* native_interface/frontier.nit:49 */
281 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
283 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
284 if (!once_value_19
) {
285 fra
.me
.REG
[5] = BOX_NativeString("#include \"");
287 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
288 once_value_19
= fra
.me
.REG
[5];
289 register_static_object(&once_value_19
);
290 } else fra
.me
.REG
[5] = once_value_19
;
291 fra
.me
.REG
[5] = fra
.me
.REG
[5];
292 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
293 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
294 if (!once_value_20
) {
295 fra
.me
.REG
[5] = BOX_NativeString("\"\n");
297 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
298 once_value_20
= fra
.me
.REG
[5];
299 register_static_object(&once_value_20
);
300 } else fra
.me
.REG
[5] = once_value_20
;
301 fra
.me
.REG
[5] = fra
.me
.REG
[5];
302 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
303 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
304 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
305 /* native_interface/frontier.nit:50 */
306 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
308 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
309 if (!once_value_21
) {
310 fra
.me
.REG
[5] = BOX_NativeString("#include \"");
312 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
313 once_value_21
= fra
.me
.REG
[5];
314 register_static_object(&once_value_21
);
315 } else fra
.me
.REG
[5] = once_value_21
;
316 fra
.me
.REG
[5] = fra
.me
.REG
[5];
317 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
318 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
319 if (!once_value_22
) {
320 fra
.me
.REG
[2] = BOX_NativeString("\"\n");
322 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
323 once_value_22
= fra
.me
.REG
[2];
324 register_static_object(&once_value_22
);
325 } else fra
.me
.REG
[2] = once_value_22
;
326 fra
.me
.REG
[2] = fra
.me
.REG
[2];
327 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
328 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
329 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
331 /* native_interface/frontier.nit:53 */
332 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
333 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_native_interface___frontier___MMSrcModule___compile_frontier_23
));
334 /* native_interface/frontier.nit:72 */
335 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
336 if (!once_value_25
) {
337 fra
.me
.REG
[0] = BOX_NativeString("#endif\n");
339 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
340 once_value_25
= fra
.me
.REG
[0];
341 register_static_object(&once_value_25
);
342 } else fra
.me
.REG
[0] = once_value_25
;
343 fra
.me
.REG
[0] = fra
.me
.REG
[0];
344 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
345 stack_frame_head
= fra
.me
.prev
;
348 void OC_native_interface___frontier___MMSrcModule___compile_frontier_23(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
349 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
354 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
355 fra
.me
.file
= LOCATE_native_interface___frontier
;
357 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcModule___compile_frontier
;
358 fra
.me
.has_broke
= 0;
360 fra
.me
.nitni_local_ref_head
= NULL
;
361 fra
.me
.REG
[0] = NIT_NULL
;
362 fra
.me
.REG
[1] = NIT_NULL
;
363 fra
.me
.closure_ctx
= closctx_param
;
364 fra
.me
.closure_funs
= CREG
;
367 /* native_interface/frontier.nit:55 */
368 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___local_local_properties(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
369 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[1])(fra
.me
.REG
[1], closctx
, ((fun_t
)OC_native_interface___frontier___MMSrcModule___compile_frontier_24
));
370 /* native_interface/frontier.nit:66 */
371 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
372 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
373 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[0]));
374 if (UNTAG_Bool(REGB0
)) {
376 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
379 if (UNTAG_Bool(REGB0
)) {
380 /* native_interface/frontier.nit:67 */
381 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
382 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
384 /* native_interface/frontier.nit:66 */
385 REGB1
= TAG_Bool(false);
388 if (UNTAG_Bool(REGB0
)) {
389 /* native_interface/frontier.nit:68 */
390 CALL_native_interface___frontier___MMLocalClass___compile_defaut_extern_type(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
392 stack_frame_head
= fra
.me
.prev
;
395 void OC_native_interface___frontier___MMSrcModule___compile_frontier_24(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
396 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
401 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
402 fra
.me
.file
= LOCATE_native_interface___frontier
;
404 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcModule___compile_frontier
;
405 fra
.me
.has_broke
= 0;
407 fra
.me
.nitni_local_ref_head
= NULL
;
408 fra
.me
.REG
[0] = NIT_NULL
;
409 fra
.me
.REG
[1] = NIT_NULL
;
410 fra
.me
.closure_ctx
= closctx_param
;
411 fra
.me
.closure_funs
= CREG
;
414 /* native_interface/frontier.nit:58 */
415 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
416 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],closctx
->REG
[0]));
417 if (UNTAG_Bool(REGB0
)) {
419 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], closctx
->REG
[0]);
422 if (UNTAG_Bool(REGB0
)) {
423 /* native_interface/frontier.nit:59 */
424 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
426 /* native_interface/frontier.nit:58 */
427 REGB1
= TAG_Bool(false);
430 if (UNTAG_Bool(REGB0
)) {
431 /* native_interface/frontier.nit:59 */
432 REGB0
= CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
434 /* native_interface/frontier.nit:58 */
435 REGB1
= TAG_Bool(false);
438 if (UNTAG_Bool(REGB0
)) {
439 /* native_interface/frontier.nit:60 */
440 CALL_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
442 stack_frame_head
= fra
.me
.prev
;
445 void native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(val_t p0
, val_t p1
){
446 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
450 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
451 fra
.me
.file
= LOCATE_native_interface___frontier
;
453 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier
;
454 fra
.me
.has_broke
= 0;
456 fra
.me
.nitni_local_ref_head
= NULL
;
457 fra
.me
.REG
[0] = NIT_NULL
;
458 fra
.me
.REG
[1] = NIT_NULL
;
459 fra
.me
.REG
[2] = NIT_NULL
;
462 /* native_interface/frontier.nit:80 */
463 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
464 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
465 if (UNTAG_Bool(REGB0
)) {
467 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
468 if (UNTAG_Bool(REGB1
)) {
469 REGB1
= TAG_Bool(false);
472 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
476 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
477 if (UNTAG_Bool(REGB0
)) {
478 /* native_interface/frontier.nit:81 */
479 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
480 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
481 if (UNTAG_Bool(REGB0
)) {
482 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 81);
484 CALL_native_interface___frontier___MMSignature___compile_frontier(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
486 /* native_interface/frontier.nit:84 */
487 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
488 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
));
489 /* native_interface/frontier.nit:93 */
490 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
491 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
));
492 /* native_interface/frontier.nit:101 */
493 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
494 if (UNTAG_Bool(REGB0
)) {
495 /* native_interface/frontier.nit:102 */
496 CALL_native_interface___frontier___MMSrcMethod___compile_super_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
498 /* native_interface/frontier.nit:106 */
499 CALL_native_interface___frontier___MMSrcMethod___compile_out_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
500 stack_frame_head
= fra
.me
.prev
;
503 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
){
504 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
507 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
508 fra
.me
.file
= LOCATE_native_interface___frontier
;
510 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier
;
511 fra
.me
.has_broke
= 0;
513 fra
.me
.nitni_local_ref_head
= NULL
;
514 fra
.me
.REG
[0] = NIT_NULL
;
515 fra
.me
.REG
[1] = NIT_NULL
;
516 fra
.me
.closure_ctx
= closctx_param
;
517 fra
.me
.closure_funs
= CREG
;
520 /* native_interface/frontier.nit:86 */
521 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___friendlys(closctx
->REG
[1])(closctx
->REG
[1]);
522 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
523 /* native_interface/frontier.nit:89 */
524 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
525 CALL_native_interface___frontier___MMSignature___compile_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
526 stack_frame_head
= fra
.me
.prev
;
529 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
){
530 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
533 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
534 fra
.me
.file
= LOCATE_native_interface___frontier
;
536 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier
;
537 fra
.me
.has_broke
= 0;
539 fra
.me
.nitni_local_ref_head
= NULL
;
540 fra
.me
.REG
[0] = NIT_NULL
;
541 fra
.me
.REG
[1] = NIT_NULL
;
542 fra
.me
.REG
[2] = NIT_NULL
;
543 fra
.me
.closure_ctx
= closctx_param
;
544 fra
.me
.closure_funs
= CREG
;
547 /* native_interface/frontier.nit:94 */
548 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___casts(closctx
->REG
[1])(closctx
->REG
[1]);
549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
550 /* native_interface/frontier.nit:96 */
551 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___types(closctx
->REG
[1])(closctx
->REG
[1]);
552 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
553 fra
.me
.REG
[2] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
554 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
555 /* native_interface/frontier.nit:97 */
556 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___types(closctx
->REG
[1])(closctx
->REG
[1]);
557 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
558 fra
.me
.REG
[0] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
559 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
560 stack_frame_head
= fra
.me
.prev
;
563 void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t p0
, val_t p1
){
564 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
569 static val_t once_value_1
; /* Once value */
570 static val_t once_value_2
; /* Once value */
571 static val_t once_value_3
; /* Once value */
572 static val_t once_value_4
; /* Once value */
573 static val_t once_value_5
; /* Once value */
574 static val_t once_value_6
; /* Once value */
575 static val_t once_value_7
; /* Once value */
576 static val_t once_value_8
; /* Once value */
577 static val_t once_value_9
; /* Once value */
578 static val_t once_value_10
; /* Once value */
579 static val_t once_value_11
; /* Once value */
580 static val_t once_value_12
; /* Once value */
581 static val_t once_value_13
; /* Once value */
582 static val_t once_value_14
; /* Once value */
583 static val_t once_value_15
; /* Once value */
584 static val_t once_value_16
; /* Once value */
585 static val_t once_value_17
; /* Once value */
586 static val_t once_value_18
; /* Once value */
587 static val_t once_value_19
; /* Once value */
588 static val_t once_value_20
; /* Once value */
589 static val_t once_value_21
; /* Once value */
590 static val_t once_value_22
; /* Once value */
591 static val_t once_value_23
; /* Once value */
592 static val_t once_value_24
; /* Once value */
593 static val_t once_value_26
; /* Once value */
594 static val_t once_value_27
; /* Once value */
595 static val_t once_value_28
; /* Once value */
596 static val_t once_value_29
; /* Once value */
597 static val_t once_value_30
; /* Once value */
598 static val_t once_value_31
; /* Once value */
599 static val_t once_value_32
; /* Once value */
600 static val_t once_value_33
; /* Once value */
601 static val_t once_value_34
; /* Once value */
602 static val_t once_value_35
; /* Once value */
603 static val_t once_value_36
; /* Once value */
604 static val_t once_value_37
; /* Once value */
605 static val_t once_value_38
; /* Once value */
606 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
607 fra
.me
.file
= LOCATE_native_interface___frontier
;
609 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_super_to_frontier
;
610 fra
.me
.has_broke
= 0;
611 fra
.me
.REG_size
= 11;
612 fra
.me
.nitni_local_ref_head
= NULL
;
613 fra
.me
.REG
[0] = NIT_NULL
;
614 fra
.me
.REG
[1] = NIT_NULL
;
615 fra
.me
.REG
[2] = NIT_NULL
;
616 fra
.me
.REG
[3] = NIT_NULL
;
617 fra
.me
.REG
[4] = NIT_NULL
;
618 fra
.me
.REG
[5] = NIT_NULL
;
619 fra
.me
.REG
[6] = NIT_NULL
;
620 fra
.me
.REG
[7] = NIT_NULL
;
621 fra
.me
.REG
[8] = NIT_NULL
;
622 fra
.me
.REG
[9] = NIT_NULL
;
623 fra
.me
.REG
[10] = NIT_NULL
;
626 /* native_interface/frontier.nit:116 */
627 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
629 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
631 fra
.me
.REG
[4] = BOX_NativeString("\n/* friendly for super of ");
633 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
634 once_value_1
= fra
.me
.REG
[4];
635 register_static_object(&once_value_1
);
636 } else fra
.me
.REG
[4] = once_value_1
;
637 fra
.me
.REG
[4] = fra
.me
.REG
[4];
638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
639 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
640 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
642 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
644 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
645 once_value_2
= fra
.me
.REG
[4];
646 register_static_object(&once_value_2
);
647 } else fra
.me
.REG
[4] = once_value_2
;
648 fra
.me
.REG
[4] = fra
.me
.REG
[4];
649 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
650 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
651 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
652 /* native_interface/frontier.nit:117 */
653 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
655 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
657 fra
.me
.REG
[4] = BOX_NativeString("");
659 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
660 once_value_3
= fra
.me
.REG
[4];
661 register_static_object(&once_value_3
);
662 } else fra
.me
.REG
[4] = once_value_3
;
663 fra
.me
.REG
[4] = fra
.me
.REG
[4];
664 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
665 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
666 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]);
667 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
669 fra
.me
.REG
[4] = BOX_NativeString(";\n");
671 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
672 once_value_4
= fra
.me
.REG
[4];
673 register_static_object(&once_value_4
);
674 } else fra
.me
.REG
[4] = once_value_4
;
675 fra
.me
.REG
[4] = fra
.me
.REG
[4];
676 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
677 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
678 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
679 /* native_interface/frontier.nit:120 */
680 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
682 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
684 fra
.me
.REG
[4] = BOX_NativeString("#ifndef ");
686 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
687 once_value_5
= fra
.me
.REG
[4];
688 register_static_object(&once_value_5
);
689 } else fra
.me
.REG
[4] = once_value_5
;
690 fra
.me
.REG
[4] = fra
.me
.REG
[4];
691 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
692 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMMethod___friendly_super_cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
693 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
695 fra
.me
.REG
[4] = BOX_NativeString("\n");
697 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
698 once_value_6
= fra
.me
.REG
[4];
699 register_static_object(&once_value_6
);
700 } else fra
.me
.REG
[4] = once_value_6
;
701 fra
.me
.REG
[4] = fra
.me
.REG
[4];
702 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
703 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
704 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
705 /* native_interface/frontier.nit:121 */
706 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
708 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
710 fra
.me
.REG
[4] = BOX_NativeString("#define ");
712 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
713 once_value_7
= fra
.me
.REG
[4];
714 register_static_object(&once_value_7
);
715 } else fra
.me
.REG
[4] = once_value_7
;
716 fra
.me
.REG
[4] = fra
.me
.REG
[4];
717 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
718 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMMethod___friendly_super_cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
719 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
721 fra
.me
.REG
[4] = BOX_NativeString(" ");
723 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
724 once_value_8
= fra
.me
.REG
[4];
725 register_static_object(&once_value_8
);
726 } else fra
.me
.REG
[4] = once_value_8
;
727 fra
.me
.REG
[4] = fra
.me
.REG
[4];
728 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
729 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
730 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]);
731 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
733 fra
.me
.REG
[4] = BOX_NativeString("\n");
735 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
736 once_value_9
= fra
.me
.REG
[4];
737 register_static_object(&once_value_9
);
738 } else fra
.me
.REG
[4] = once_value_9
;
739 fra
.me
.REG
[4] = fra
.me
.REG
[4];
740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
741 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
742 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
743 /* native_interface/frontier.nit:122 */
744 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
745 if (!once_value_10
) {
746 fra
.me
.REG
[3] = BOX_NativeString("#endif\n");
748 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
749 once_value_10
= fra
.me
.REG
[3];
750 register_static_object(&once_value_10
);
751 } else fra
.me
.REG
[3] = once_value_10
;
752 fra
.me
.REG
[3] = fra
.me
.REG
[3];
753 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
754 /* native_interface/frontier.nit:125 */
755 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
757 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
758 if (!once_value_11
) {
759 fra
.me
.REG
[4] = BOX_NativeString("\n/* friendly for super of ");
761 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
762 once_value_11
= fra
.me
.REG
[4];
763 register_static_object(&once_value_11
);
764 } else fra
.me
.REG
[4] = once_value_11
;
765 fra
.me
.REG
[4] = fra
.me
.REG
[4];
766 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
767 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
768 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
769 if (!once_value_12
) {
770 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
772 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
773 once_value_12
= fra
.me
.REG
[4];
774 register_static_object(&once_value_12
);
775 } else fra
.me
.REG
[4] = once_value_12
;
776 fra
.me
.REG
[4] = fra
.me
.REG
[4];
777 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
778 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
779 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
780 /* native_interface/frontier.nit:126 */
781 fra
.me
.REG
[2] = CALL_native_interface___ni_metamodel___MMMethod___friendly_super_csignature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
782 fra
.me
.REG
[2] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[2]);
783 /* native_interface/frontier.nit:129 */
784 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
785 /* native_interface/frontier.nit:132 */
786 if (!once_value_13
) {
787 fra
.me
.REG
[4] = BOX_NativeString("recv___nit");
789 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
790 once_value_13
= fra
.me
.REG
[4];
791 register_static_object(&once_value_13
);
792 } else fra
.me
.REG
[4] = once_value_13
;
793 fra
.me
.REG
[4] = fra
.me
.REG
[4];
794 /* native_interface/frontier.nit:133 */
795 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
797 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
798 if (!once_value_14
) {
799 fra
.me
.REG
[7] = BOX_NativeString("val_t ");
801 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
802 once_value_14
= fra
.me
.REG
[7];
803 register_static_object(&once_value_14
);
804 } else fra
.me
.REG
[7] = once_value_14
;
805 fra
.me
.REG
[7] = fra
.me
.REG
[7];
806 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
807 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
808 if (!once_value_15
) {
809 fra
.me
.REG
[7] = BOX_NativeString(";\n");
811 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
812 once_value_15
= fra
.me
.REG
[7];
813 register_static_object(&once_value_15
);
814 } else fra
.me
.REG
[7] = once_value_15
;
815 fra
.me
.REG
[7] = fra
.me
.REG
[7];
816 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
817 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
818 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
819 /* native_interface/frontier.nit:134 */
820 fra
.me
.REG
[6] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
822 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
823 if (!once_value_16
) {
824 fra
.me
.REG
[7] = BOX_NativeString("");
826 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
827 once_value_16
= fra
.me
.REG
[7];
828 register_static_object(&once_value_16
);
829 } else fra
.me
.REG
[7] = once_value_16
;
830 fra
.me
.REG
[7] = fra
.me
.REG
[7];
831 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
832 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
833 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
834 if (UNTAG_Bool(REGB0
)) {
835 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 134);
837 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
838 if (!once_value_17
) {
839 fra
.me
.REG
[8] = BOX_NativeString("recv");
841 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
842 once_value_17
= fra
.me
.REG
[8];
843 register_static_object(&once_value_17
);
844 } else fra
.me
.REG
[8] = once_value_17
;
845 fra
.me
.REG
[8] = fra
.me
.REG
[8];
846 fra
.me
.REG
[8] = CALL_native_interface___ni_metamodel___MMType___assign_from_friendly(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4], fra
.me
.REG
[8]);
847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[8]);
848 if (!once_value_18
) {
849 fra
.me
.REG
[8] = BOX_NativeString(";\n");
851 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
852 once_value_18
= fra
.me
.REG
[8];
853 register_static_object(&once_value_18
);
854 } else fra
.me
.REG
[8] = once_value_18
;
855 fra
.me
.REG
[8] = fra
.me
.REG
[8];
856 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[8]);
857 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
858 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
859 /* native_interface/frontier.nit:135 */
860 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
861 /* native_interface/frontier.nit:138 */
862 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
863 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
864 if (UNTAG_Bool(REGB0
)) {
865 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 138);
867 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
868 /* ../lib/standard/collection/array.nit:269 */
870 /* ../lib/standard/collection/array.nit:270 */
871 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
872 if (UNTAG_Bool(REGB1
)) {
874 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
876 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
877 /* ../lib/standard/collection/array.nit:271 */
878 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
879 /* ../lib/standard/collection/array.nit:272 */
881 /* ../lib/standard/collection/array.nit:24 */
882 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
883 if (UNTAG_Bool(REGB1
)) {
885 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
887 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
888 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
889 if (UNTAG_Bool(REGB2
)) {
891 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
893 /* ../lib/standard/kernel.nit:232 */
894 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
895 /* ../lib/standard/collection/array.nit:272 */
896 if (UNTAG_Bool(REGB1
)) {
897 /* ../lib/standard/collection/array.nit:273 */
898 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
899 if (UNTAG_Bool(REGB1
)) {
900 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
902 /* ../lib/standard/collection/array.nit:718 */
903 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
904 /* native_interface/frontier.nit:139 */
906 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
907 if (!once_value_19
) {
908 fra
.me
.REG
[9] = BOX_NativeString("");
910 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
911 once_value_19
= fra
.me
.REG
[9];
912 register_static_object(&once_value_19
);
913 } else fra
.me
.REG
[9] = once_value_19
;
914 fra
.me
.REG
[9] = fra
.me
.REG
[9];
915 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
916 fra
.me
.REG
[9] = CALL_metamodel___static_type___MMParam___name(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
917 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
918 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
919 if (!once_value_20
) {
920 fra
.me
.REG
[9] = BOX_NativeString("___nit");
922 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
923 once_value_20
= fra
.me
.REG
[9];
924 register_static_object(&once_value_20
);
925 } else fra
.me
.REG
[9] = once_value_20
;
926 fra
.me
.REG
[9] = fra
.me
.REG
[9];
927 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
928 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
929 fra
.me
.REG
[4] = fra
.me
.REG
[7];
930 /* native_interface/frontier.nit:140 */
931 fra
.me
.REG
[7] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
933 fra
.me
.REG
[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
934 if (!once_value_21
) {
935 fra
.me
.REG
[10] = BOX_NativeString("val_t ");
937 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB1
);
938 once_value_21
= fra
.me
.REG
[10];
939 register_static_object(&once_value_21
);
940 } else fra
.me
.REG
[10] = once_value_21
;
941 fra
.me
.REG
[10] = fra
.me
.REG
[10];
942 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
943 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[4]);
944 if (!once_value_22
) {
945 fra
.me
.REG
[10] = BOX_NativeString(";\n");
947 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB1
);
948 once_value_22
= fra
.me
.REG
[10];
949 register_static_object(&once_value_22
);
950 } else fra
.me
.REG
[10] = once_value_22
;
951 fra
.me
.REG
[10] = fra
.me
.REG
[10];
952 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
953 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
954 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
955 /* native_interface/frontier.nit:141 */
956 fra
.me
.REG
[9] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
958 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
959 if (!once_value_23
) {
960 fra
.me
.REG
[10] = BOX_NativeString("");
962 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB1
);
963 once_value_23
= fra
.me
.REG
[10];
964 register_static_object(&once_value_23
);
965 } else fra
.me
.REG
[10] = once_value_23
;
966 fra
.me
.REG
[10] = fra
.me
.REG
[10];
967 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[10]);
968 fra
.me
.REG
[10] = CALL_metamodel___static_type___MMParam___mmtype(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
969 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMParam___name(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
970 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
971 fra
.me
.REG
[8] = CALL_native_interface___ni_metamodel___MMType___assign_from_friendly(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4], fra
.me
.REG
[8]);
972 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
973 if (!once_value_24
) {
974 fra
.me
.REG
[8] = BOX_NativeString(";\n");
976 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
977 once_value_24
= fra
.me
.REG
[8];
978 register_static_object(&once_value_24
);
979 } else fra
.me
.REG
[8] = once_value_24
;
980 fra
.me
.REG
[8] = fra
.me
.REG
[8];
981 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
982 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
983 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[7]);
984 /* native_interface/frontier.nit:142 */
985 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
986 /* ../lib/standard/collection/array.nit:274 */
988 /* ../lib/standard/kernel.nit:235 */
989 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
990 /* ../lib/standard/collection/array.nit:274 */
993 /* ../lib/standard/collection/array.nit:272 */
998 /* native_interface/frontier.nit:146 */
999 fra
.me
.REG
[4] = NIT_NULL
;
1000 /* native_interface/frontier.nit:148 */
1001 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1002 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1003 if (UNTAG_Bool(REGB0
)) {
1004 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 148);
1006 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1007 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1008 if (UNTAG_Bool(REGB0
)) {
1010 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1011 if (UNTAG_Bool(REGB1
)) {
1012 REGB1
= TAG_Bool(false);
1015 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
1019 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1020 if (UNTAG_Bool(REGB0
)) {
1021 /* native_interface/frontier.nit:149 */
1022 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1023 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1024 if (UNTAG_Bool(REGB0
)) {
1025 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 149);
1027 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1028 fra
.me
.REG
[4] = fra
.me
.REG
[6];
1030 /* native_interface/frontier.nit:152 */
1031 fra
.me
.REG
[6] = NEW_Buffer_standard___string___Buffer___init();
1032 /* native_interface/frontier.nit:153 */
1033 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1034 if (UNTAG_Bool(REGB0
)) {
1036 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1037 if (UNTAG_Bool(REGB1
)) {
1038 REGB1
= TAG_Bool(false);
1041 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1045 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1046 if (UNTAG_Bool(REGB0
)) {
1047 /* native_interface/frontier.nit:154 */
1048 if (!once_value_26
) {
1049 fra
.me
.REG
[5] = BOX_NativeString("return___nitni");
1050 REGB0
= TAG_Int(14);
1051 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1052 once_value_26
= fra
.me
.REG
[5];
1053 register_static_object(&once_value_26
);
1054 } else fra
.me
.REG
[5] = once_value_26
;
1055 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1056 REGB0
= TAG_Bool(true);
1057 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1058 if (UNTAG_Bool(REGB1
)) {
1059 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 154);
1061 CALL_native_interface___frontier___MMType___compile_new_local_ref(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[2], REGB0
);
1062 /* native_interface/frontier.nit:155 */
1063 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1064 if (!once_value_27
) {
1065 fra
.me
.REG
[7] = BOX_NativeString("val_t return___nit;\n");
1066 REGB0
= TAG_Int(20);
1067 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1068 once_value_27
= fra
.me
.REG
[7];
1069 register_static_object(&once_value_27
);
1070 } else fra
.me
.REG
[7] = once_value_27
;
1071 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1072 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
1073 /* native_interface/frontier.nit:156 */
1074 if (!once_value_28
) {
1075 fra
.me
.REG
[7] = BOX_NativeString("return___nit = ");
1076 REGB0
= TAG_Int(15);
1077 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1078 once_value_28
= fra
.me
.REG
[7];
1079 register_static_object(&once_value_28
);
1080 } else fra
.me
.REG
[7] = once_value_28
;
1081 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1082 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1084 /* native_interface/frontier.nit:159 */
1086 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1087 if (!once_value_29
) {
1088 fra
.me
.REG
[5] = BOX_NativeString("");
1090 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1091 once_value_29
= fra
.me
.REG
[5];
1092 register_static_object(&once_value_29
);
1093 } else fra
.me
.REG
[5] = once_value_29
;
1094 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1095 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
1096 fra
.me
.REG
[0] = CALL_compiling___compiling_base___MMLocalProperty___super_meth_call(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1097 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
1098 if (!once_value_30
) {
1099 fra
.me
.REG
[0] = BOX_NativeString("( recv___nit )");
1100 REGB0
= TAG_Int(14);
1101 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1102 once_value_30
= fra
.me
.REG
[0];
1103 register_static_object(&once_value_30
);
1104 } else fra
.me
.REG
[0] = once_value_30
;
1105 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1106 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
1107 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1108 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1109 /* native_interface/frontier.nit:161 */
1111 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1112 if (!once_value_31
) {
1113 fra
.me
.REG
[0] = BOX_NativeString("( ");
1115 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1116 once_value_31
= fra
.me
.REG
[0];
1117 register_static_object(&once_value_31
);
1118 } else fra
.me
.REG
[0] = once_value_31
;
1119 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1120 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
1121 if (!once_value_32
) {
1122 fra
.me
.REG
[0] = BOX_NativeString(", ");
1124 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1125 once_value_32
= fra
.me
.REG
[0];
1126 register_static_object(&once_value_32
);
1127 } else fra
.me
.REG
[0] = once_value_32
;
1128 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1129 fra
.me
.REG
[0] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
1130 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
1131 if (!once_value_33
) {
1132 fra
.me
.REG
[0] = BOX_NativeString(" );\n");
1134 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1135 once_value_33
= fra
.me
.REG
[0];
1136 register_static_object(&once_value_33
);
1137 } else fra
.me
.REG
[0] = once_value_33
;
1138 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1139 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
1140 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1141 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1142 /* native_interface/frontier.nit:163 */
1143 fra
.me
.REG
[7] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1144 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1145 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
1146 /* native_interface/frontier.nit:166 */
1147 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1148 if (UNTAG_Bool(REGB0
)) {
1150 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1151 if (UNTAG_Bool(REGB1
)) {
1152 REGB1
= TAG_Bool(false);
1155 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1159 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1160 if (UNTAG_Bool(REGB0
)) {
1161 /* native_interface/frontier.nit:168 */
1162 fra
.me
.REG
[6] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1164 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1165 if (!once_value_34
) {
1166 fra
.me
.REG
[0] = BOX_NativeString("");
1168 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1169 once_value_34
= fra
.me
.REG
[0];
1170 register_static_object(&once_value_34
);
1171 } else fra
.me
.REG
[0] = once_value_34
;
1172 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1173 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
1174 if (!once_value_35
) {
1175 fra
.me
.REG
[0] = BOX_NativeString("return___nitni");
1176 REGB0
= TAG_Int(14);
1177 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1178 once_value_35
= fra
.me
.REG
[0];
1179 register_static_object(&once_value_35
);
1180 } else fra
.me
.REG
[0] = once_value_35
;
1181 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1182 if (!once_value_36
) {
1183 fra
.me
.REG
[3] = BOX_NativeString("return___nit");
1184 REGB0
= TAG_Int(12);
1185 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1186 once_value_36
= fra
.me
.REG
[3];
1187 register_static_object(&once_value_36
);
1188 } else fra
.me
.REG
[3] = once_value_36
;
1189 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1190 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1191 if (UNTAG_Bool(REGB0
)) {
1192 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 168);
1194 fra
.me
.REG
[3] = CALL_native_interface___ni_metamodel___MMType___assign_to_friendly(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3]);
1195 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
1196 if (!once_value_37
) {
1197 fra
.me
.REG
[3] = BOX_NativeString(";\n");
1199 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1200 once_value_37
= fra
.me
.REG
[3];
1201 register_static_object(&once_value_37
);
1202 } else fra
.me
.REG
[3] = once_value_37
;
1203 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1204 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
1205 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1206 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1207 /* native_interface/frontier.nit:169 */
1208 fra
.me
.REG
[7] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1209 if (!once_value_38
) {
1210 fra
.me
.REG
[6] = BOX_NativeString("return return___nitni;\n");
1211 REGB0
= TAG_Int(23);
1212 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
1213 once_value_38
= fra
.me
.REG
[6];
1214 register_static_object(&once_value_38
);
1215 } else fra
.me
.REG
[6] = once_value_38
;
1216 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1217 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
1219 /* native_interface/frontier.nit:172 */
1220 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1221 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1222 CALL_compiling___compiling_writer___Writer___append(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1223 stack_frame_head
= fra
.me
.prev
;
1226 void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p0
, val_t p1
){
1227 struct {struct stack_frame_t me
; val_t MORE_REG
[11];} fra
;
1232 static val_t once_value_1
; /* Once value */
1233 static val_t once_value_2
; /* Once value */
1234 static val_t once_value_3
; /* Once value */
1235 static val_t once_value_4
; /* Once value */
1236 static val_t once_value_5
; /* Once value */
1237 static val_t once_value_6
; /* Once value */
1238 static val_t once_value_7
; /* Once value */
1239 static val_t once_value_8
; /* Once value */
1240 static val_t once_value_9
; /* Once value */
1241 static val_t once_value_10
; /* Once value */
1242 static val_t once_value_11
; /* Once value */
1243 static val_t once_value_12
; /* Once value */
1244 static val_t once_value_13
; /* Once value */
1245 static val_t once_value_14
; /* Once value */
1246 static val_t once_value_16
; /* Once value */
1247 static val_t once_value_17
; /* Once value */
1248 static val_t once_value_18
; /* Once value */
1249 static val_t once_value_19
; /* Once value */
1250 static val_t once_value_20
; /* Once value */
1251 static val_t once_value_21
; /* Once value */
1252 static val_t once_value_22
; /* Once value */
1253 static val_t once_value_23
; /* Once value */
1254 static val_t once_value_24
; /* Once value */
1255 static val_t once_value_25
; /* Once value */
1256 static val_t once_value_26
; /* Once value */
1257 static val_t once_value_27
; /* Once value */
1258 static val_t once_value_28
; /* Once value */
1259 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1260 fra
.me
.file
= LOCATE_native_interface___frontier
;
1262 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSrcMethod___compile_out_to_frontier
;
1263 fra
.me
.has_broke
= 0;
1264 fra
.me
.REG_size
= 12;
1265 fra
.me
.nitni_local_ref_head
= NULL
;
1266 fra
.me
.REG
[0] = NIT_NULL
;
1267 fra
.me
.REG
[1] = NIT_NULL
;
1268 fra
.me
.REG
[2] = NIT_NULL
;
1269 fra
.me
.REG
[3] = NIT_NULL
;
1270 fra
.me
.REG
[4] = NIT_NULL
;
1271 fra
.me
.REG
[5] = NIT_NULL
;
1272 fra
.me
.REG
[6] = NIT_NULL
;
1273 fra
.me
.REG
[7] = NIT_NULL
;
1274 fra
.me
.REG
[8] = NIT_NULL
;
1275 fra
.me
.REG
[9] = NIT_NULL
;
1276 fra
.me
.REG
[10] = NIT_NULL
;
1277 fra
.me
.REG
[11] = NIT_NULL
;
1280 /* native_interface/frontier.nit:175 */
1281 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1282 /* native_interface/frontier.nit:181 */
1283 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1285 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1286 if (!once_value_1
) {
1287 fra
.me
.REG
[5] = BOX_NativeString("\n/* out/indirect function for ");
1288 REGB0
= TAG_Int(30);
1289 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1290 once_value_1
= fra
.me
.REG
[5];
1291 register_static_object(&once_value_1
);
1292 } else fra
.me
.REG
[5] = once_value_1
;
1293 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1294 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1295 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1296 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1297 if (!once_value_2
) {
1298 fra
.me
.REG
[5] = BOX_NativeString(" */\n");
1300 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1301 once_value_2
= fra
.me
.REG
[5];
1302 register_static_object(&once_value_2
);
1303 } else fra
.me
.REG
[5] = once_value_2
;
1304 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1305 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1306 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1307 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1308 /* native_interface/frontier.nit:182 */
1309 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1311 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1312 if (!once_value_3
) {
1313 fra
.me
.REG
[5] = BOX_NativeString("");
1315 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1316 once_value_3
= fra
.me
.REG
[5];
1317 register_static_object(&once_value_3
);
1318 } else fra
.me
.REG
[5] = once_value_3
;
1319 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1320 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1321 fra
.me
.REG
[5] = CALL_native_interface___ni_metamodel___MMMethod___out_csignature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1322 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1323 if (!once_value_4
) {
1324 fra
.me
.REG
[5] = BOX_NativeString(";\n");
1326 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1327 once_value_4
= fra
.me
.REG
[5];
1328 register_static_object(&once_value_4
);
1329 } else fra
.me
.REG
[5] = once_value_4
;
1330 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1331 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1332 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1333 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1334 /* native_interface/frontier.nit:185 */
1335 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1337 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1338 if (!once_value_5
) {
1339 fra
.me
.REG
[5] = BOX_NativeString("/* out/indirect function for ");
1340 REGB0
= TAG_Int(29);
1341 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1342 once_value_5
= fra
.me
.REG
[5];
1343 register_static_object(&once_value_5
);
1344 } else fra
.me
.REG
[5] = once_value_5
;
1345 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1346 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1347 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1348 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1349 if (!once_value_6
) {
1350 fra
.me
.REG
[5] = BOX_NativeString(" */\n");
1352 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1353 once_value_6
= fra
.me
.REG
[5];
1354 register_static_object(&once_value_6
);
1355 } else fra
.me
.REG
[5] = once_value_6
;
1356 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1357 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1358 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1359 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1360 /* native_interface/frontier.nit:186 */
1361 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMMethod___out_csignature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1362 fra
.me
.REG
[4] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[4]);
1363 /* native_interface/frontier.nit:189 */
1364 fra
.me
.REG
[3] = NEW_List_standard___collection___list___List___init();
1365 /* native_interface/frontier.nit:191 */
1366 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1367 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1368 if (UNTAG_Bool(REGB0
)) {
1369 /* native_interface/frontier.nit:192 */
1370 if (!once_value_7
) {
1371 fra
.me
.REG
[5] = BOX_NativeString("recv___nitni");
1372 REGB0
= TAG_Int(12);
1373 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1374 once_value_7
= fra
.me
.REG
[5];
1375 register_static_object(&once_value_7
);
1376 } else fra
.me
.REG
[5] = once_value_7
;
1377 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1378 /* native_interface/frontier.nit:193 */
1379 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1380 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1381 if (UNTAG_Bool(REGB0
)) {
1382 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 193);
1384 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1385 REGB0
= TAG_Bool(true);
1386 CALL_native_interface___frontier___MMType___compile_new_local_ref(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5], fra
.me
.REG
[4], REGB0
);
1387 /* native_interface/frontier.nit:194 */
1388 fra
.me
.REG
[6] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1390 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1391 if (!once_value_8
) {
1392 fra
.me
.REG
[8] = BOX_NativeString("");
1394 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
1395 once_value_8
= fra
.me
.REG
[8];
1396 register_static_object(&once_value_8
);
1397 } else fra
.me
.REG
[8] = once_value_8
;
1398 fra
.me
.REG
[8] = fra
.me
.REG
[8];
1399 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
1400 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1401 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
1402 if (UNTAG_Bool(REGB0
)) {
1403 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 194);
1405 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1406 if (!once_value_9
) {
1407 fra
.me
.REG
[9] = BOX_NativeString("recv");
1409 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB0
);
1410 once_value_9
= fra
.me
.REG
[9];
1411 register_static_object(&once_value_9
);
1412 } else fra
.me
.REG
[9] = once_value_9
;
1413 fra
.me
.REG
[9] = fra
.me
.REG
[9];
1414 fra
.me
.REG
[9] = CALL_native_interface___ni_metamodel___MMType___assign_to_friendly(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[5], fra
.me
.REG
[9]);
1415 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
1416 if (!once_value_10
) {
1417 fra
.me
.REG
[9] = BOX_NativeString(";\n");
1419 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB0
);
1420 once_value_10
= fra
.me
.REG
[9];
1421 register_static_object(&once_value_10
);
1422 } else fra
.me
.REG
[9] = once_value_10
;
1423 fra
.me
.REG
[9] = fra
.me
.REG
[9];
1424 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
1425 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1426 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1427 /* native_interface/frontier.nit:195 */
1428 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1430 /* native_interface/frontier.nit:198 */
1431 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1432 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1433 if (UNTAG_Bool(REGB0
)) {
1434 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 198);
1436 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1437 /* ../lib/standard/collection/array.nit:269 */
1439 /* ../lib/standard/collection/array.nit:270 */
1440 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1441 if (UNTAG_Bool(REGB1
)) {
1443 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1445 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1446 /* ../lib/standard/collection/array.nit:271 */
1447 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1448 /* ../lib/standard/collection/array.nit:272 */
1450 /* ../lib/standard/collection/array.nit:24 */
1451 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1452 if (UNTAG_Bool(REGB1
)) {
1454 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1456 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1457 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1458 if (UNTAG_Bool(REGB2
)) {
1460 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1462 /* ../lib/standard/kernel.nit:232 */
1463 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1464 /* ../lib/standard/collection/array.nit:272 */
1465 if (UNTAG_Bool(REGB1
)) {
1466 /* ../lib/standard/collection/array.nit:273 */
1467 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1468 if (UNTAG_Bool(REGB1
)) {
1469 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1471 /* ../lib/standard/collection/array.nit:718 */
1472 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
1473 /* native_interface/frontier.nit:199 */
1475 fra
.me
.REG
[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
1476 if (!once_value_11
) {
1477 fra
.me
.REG
[8] = BOX_NativeString("");
1479 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
1480 once_value_11
= fra
.me
.REG
[8];
1481 register_static_object(&once_value_11
);
1482 } else fra
.me
.REG
[8] = once_value_11
;
1483 fra
.me
.REG
[8] = fra
.me
.REG
[8];
1484 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
1485 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMParam___name(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1486 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1487 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
1488 if (!once_value_12
) {
1489 fra
.me
.REG
[8] = BOX_NativeString("___nitni");
1491 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
1492 once_value_12
= fra
.me
.REG
[8];
1493 register_static_object(&once_value_12
);
1494 } else fra
.me
.REG
[8] = once_value_12
;
1495 fra
.me
.REG
[8] = fra
.me
.REG
[8];
1496 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
1497 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
1498 /* native_interface/frontier.nit:200 */
1499 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMParam___mmtype(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1500 REGB1
= TAG_Bool(true);
1501 CALL_native_interface___frontier___MMType___compile_new_local_ref(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9], fra
.me
.REG
[4], REGB1
);
1502 /* native_interface/frontier.nit:201 */
1503 fra
.me
.REG
[8] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1505 fra
.me
.REG
[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
1506 if (!once_value_13
) {
1507 fra
.me
.REG
[11] = BOX_NativeString("");
1509 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB1
);
1510 once_value_13
= fra
.me
.REG
[11];
1511 register_static_object(&once_value_13
);
1512 } else fra
.me
.REG
[11] = once_value_13
;
1513 fra
.me
.REG
[11] = fra
.me
.REG
[11];
1514 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
1515 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMParam___mmtype(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1516 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMParam___name(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1517 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1518 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMType___assign_to_friendly(fra
.me
.REG
[11])(fra
.me
.REG
[11], fra
.me
.REG
[9], fra
.me
.REG
[6]);
1519 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[6]);
1520 if (!once_value_14
) {
1521 fra
.me
.REG
[6] = BOX_NativeString(";\n");
1523 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
1524 once_value_14
= fra
.me
.REG
[6];
1525 register_static_object(&once_value_14
);
1526 } else fra
.me
.REG
[6] = once_value_14
;
1527 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1528 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[6]);
1529 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
1530 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[10]);
1531 /* native_interface/frontier.nit:202 */
1532 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[9]);
1533 /* ../lib/standard/collection/array.nit:274 */
1535 /* ../lib/standard/kernel.nit:235 */
1536 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1537 /* ../lib/standard/collection/array.nit:274 */
1540 /* ../lib/standard/collection/array.nit:272 */
1545 /* native_interface/frontier.nit:206 */
1546 fra
.me
.REG
[7] = NIT_NULL
;
1547 /* native_interface/frontier.nit:208 */
1548 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1549 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1550 if (UNTAG_Bool(REGB0
)) {
1551 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 208);
1553 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1554 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1555 if (UNTAG_Bool(REGB0
)) {
1557 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1558 if (UNTAG_Bool(REGB1
)) {
1559 REGB1
= TAG_Bool(false);
1562 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
1566 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1567 if (UNTAG_Bool(REGB0
)) {
1568 /* native_interface/frontier.nit:209 */
1569 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1570 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1571 if (UNTAG_Bool(REGB0
)) {
1572 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 209);
1574 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1575 fra
.me
.REG
[7] = fra
.me
.REG
[5];
1577 /* native_interface/frontier.nit:210 */
1578 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1579 if (UNTAG_Bool(REGB0
)) {
1580 /* native_interface/frontier.nit:211 */
1581 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1582 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1583 fra
.me
.REG
[7] = fra
.me
.REG
[5];
1586 /* native_interface/frontier.nit:214 */
1587 fra
.me
.REG
[5] = NEW_Buffer_standard___string___Buffer___init();
1588 /* native_interface/frontier.nit:215 */
1589 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1590 if (UNTAG_Bool(REGB0
)) {
1592 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1593 if (UNTAG_Bool(REGB1
)) {
1594 REGB1
= TAG_Bool(false);
1597 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
1601 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1602 if (UNTAG_Bool(REGB0
)) {
1603 /* native_interface/frontier.nit:217 */
1604 if (!once_value_16
) {
1605 fra
.me
.REG
[9] = BOX_NativeString("return___nitni");
1606 REGB0
= TAG_Int(14);
1607 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB0
);
1608 once_value_16
= fra
.me
.REG
[9];
1609 register_static_object(&once_value_16
);
1610 } else fra
.me
.REG
[9] = once_value_16
;
1611 fra
.me
.REG
[9] = fra
.me
.REG
[9];
1612 REGB0
= TAG_Bool(false);
1613 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1614 if (UNTAG_Bool(REGB1
)) {
1615 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 217);
1617 CALL_native_interface___frontier___MMType___compile_new_local_ref(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9], fra
.me
.REG
[4], REGB0
);
1618 /* native_interface/frontier.nit:218 */
1619 fra
.me
.REG
[9] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1620 if (!once_value_17
) {
1621 fra
.me
.REG
[10] = BOX_NativeString("val_t return___nit;\n");
1622 REGB0
= TAG_Int(20);
1623 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB0
);
1624 once_value_17
= fra
.me
.REG
[10];
1625 register_static_object(&once_value_17
);
1626 } else fra
.me
.REG
[10] = once_value_17
;
1627 fra
.me
.REG
[10] = fra
.me
.REG
[10];
1628 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
1629 /* native_interface/frontier.nit:219 */
1630 if (!once_value_18
) {
1631 fra
.me
.REG
[10] = BOX_NativeString("return___nitni = ");
1632 REGB0
= TAG_Int(17);
1633 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB0
);
1634 once_value_18
= fra
.me
.REG
[10];
1635 register_static_object(&once_value_18
);
1636 } else fra
.me
.REG
[10] = once_value_18
;
1637 fra
.me
.REG
[10] = fra
.me
.REG
[10];
1638 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[10]);
1640 /* native_interface/frontier.nit:222 */
1642 fra
.me
.REG
[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1643 if (!once_value_19
) {
1644 fra
.me
.REG
[9] = BOX_NativeString("");
1646 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB0
);
1647 once_value_19
= fra
.me
.REG
[9];
1648 register_static_object(&once_value_19
);
1649 } else fra
.me
.REG
[9] = once_value_19
;
1650 fra
.me
.REG
[9] = fra
.me
.REG
[9];
1651 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[9]);
1652 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMMethod___extern_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1653 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*/;
1654 if (UNTAG_Bool(REGB0
)) {
1656 nit_abort("Cast failed", NULL
, LOCATE_native_interface___frontier
, 222);
1658 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[2]);
1659 if (!once_value_20
) {
1660 fra
.me
.REG
[2] = BOX_NativeString("( ");
1662 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1663 once_value_20
= fra
.me
.REG
[2];
1664 register_static_object(&once_value_20
);
1665 } else fra
.me
.REG
[2] = once_value_20
;
1666 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1667 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[2]);
1668 if (!once_value_21
) {
1669 fra
.me
.REG
[2] = BOX_NativeString(", ");
1671 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1672 once_value_21
= fra
.me
.REG
[2];
1673 register_static_object(&once_value_21
);
1674 } else fra
.me
.REG
[2] = once_value_21
;
1675 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1676 fra
.me
.REG
[2] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1677 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[2]);
1678 if (!once_value_22
) {
1679 fra
.me
.REG
[2] = BOX_NativeString(" );\n");
1681 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1682 once_value_22
= fra
.me
.REG
[2];
1683 register_static_object(&once_value_22
);
1684 } else fra
.me
.REG
[2] = once_value_22
;
1685 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1686 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[2]);
1687 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
1688 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[10]);
1689 /* native_interface/frontier.nit:224 */
1690 fra
.me
.REG
[10] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1691 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1692 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[5]);
1693 /* native_interface/frontier.nit:226 */
1694 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1695 if (UNTAG_Bool(REGB0
)) {
1697 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1698 if (UNTAG_Bool(REGB1
)) {
1699 REGB1
= TAG_Bool(false);
1702 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
1706 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1707 if (UNTAG_Bool(REGB0
)) {
1708 /* native_interface/frontier.nit:227 */
1709 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1711 fra
.me
.REG
[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1712 if (!once_value_23
) {
1713 fra
.me
.REG
[2] = BOX_NativeString("");
1715 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1716 once_value_23
= fra
.me
.REG
[2];
1717 register_static_object(&once_value_23
);
1718 } else fra
.me
.REG
[2] = once_value_23
;
1719 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1720 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[2]);
1721 if (!once_value_24
) {
1722 fra
.me
.REG
[2] = BOX_NativeString("return___nit");
1723 REGB0
= TAG_Int(12);
1724 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1725 once_value_24
= fra
.me
.REG
[2];
1726 register_static_object(&once_value_24
);
1727 } else fra
.me
.REG
[2] = once_value_24
;
1728 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1729 if (!once_value_25
) {
1730 fra
.me
.REG
[3] = BOX_NativeString("return___nitni");
1731 REGB0
= TAG_Int(14);
1732 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1733 once_value_25
= fra
.me
.REG
[3];
1734 register_static_object(&once_value_25
);
1735 } else fra
.me
.REG
[3] = once_value_25
;
1736 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1737 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1738 if (UNTAG_Bool(REGB0
)) {
1739 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 227);
1741 fra
.me
.REG
[3] = CALL_native_interface___ni_metamodel___MMType___assign_from_friendly(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2], fra
.me
.REG
[3]);
1742 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[3]);
1743 if (!once_value_26
) {
1744 fra
.me
.REG
[3] = BOX_NativeString(";\n");
1746 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1747 once_value_26
= fra
.me
.REG
[3];
1748 register_static_object(&once_value_26
);
1749 } else fra
.me
.REG
[3] = once_value_26
;
1750 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1751 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[3]);
1752 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
1753 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[10]);
1755 /* native_interface/frontier.nit:230 */
1756 fra
.me
.REG
[10] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1757 if (!once_value_27
) {
1758 fra
.me
.REG
[5] = BOX_NativeString("nitni_local_ref_clean( );\n");
1759 REGB0
= TAG_Int(27);
1760 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1761 once_value_27
= fra
.me
.REG
[5];
1762 register_static_object(&once_value_27
);
1763 } else fra
.me
.REG
[5] = once_value_27
;
1764 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1765 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[5]);
1766 /* native_interface/frontier.nit:233 */
1767 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1768 if (UNTAG_Bool(REGB0
)) {
1770 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1771 if (UNTAG_Bool(REGB1
)) {
1772 REGB1
= TAG_Bool(false);
1775 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
1779 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1780 if (UNTAG_Bool(REGB0
)) {
1781 /* native_interface/frontier.nit:234 */
1782 fra
.me
.REG
[7] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1783 if (!once_value_28
) {
1784 fra
.me
.REG
[5] = BOX_NativeString("return return___nit;\n");
1785 REGB0
= TAG_Int(21);
1786 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1787 once_value_28
= fra
.me
.REG
[5];
1788 register_static_object(&once_value_28
);
1789 } else fra
.me
.REG
[5] = once_value_28
;
1790 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1791 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
1793 /* native_interface/frontier.nit:237 */
1794 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1795 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1796 CALL_compiling___compiling_writer___Writer___append(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1797 stack_frame_head
= fra
.me
.prev
;
1800 void native_interface___frontier___MMLocalClass___compile_defaut_extern_type(val_t p0
, val_t p1
){
1801 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1804 static val_t once_value_1
; /* Once value */
1805 static val_t once_value_2
; /* Once value */
1806 static val_t once_value_3
; /* Once value */
1807 static val_t once_value_4
; /* Once value */
1808 static val_t once_value_5
; /* Once value */
1809 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1810 fra
.me
.file
= LOCATE_native_interface___frontier
;
1812 fra
.me
.meth
= LOCATE_native_interface___frontier___MMLocalClass___compile_defaut_extern_type
;
1813 fra
.me
.has_broke
= 0;
1814 fra
.me
.REG_size
= 5;
1815 fra
.me
.nitni_local_ref_head
= NULL
;
1816 fra
.me
.REG
[0] = NIT_NULL
;
1817 fra
.me
.REG
[1] = NIT_NULL
;
1818 fra
.me
.REG
[2] = NIT_NULL
;
1819 fra
.me
.REG
[3] = NIT_NULL
;
1820 fra
.me
.REG
[4] = NIT_NULL
;
1823 /* native_interface/frontier.nit:247 */
1824 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1826 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1827 if (!once_value_1
) {
1828 fra
.me
.REG
[4] = BOX_NativeString("#ifndef ");
1830 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1831 once_value_1
= fra
.me
.REG
[4];
1832 register_static_object(&once_value_1
);
1833 } else fra
.me
.REG
[4] = once_value_1
;
1834 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1835 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1836 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1837 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1839 if (!once_value_2
) {
1840 fra
.me
.REG
[4] = BOX_NativeString("\n");
1842 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1843 once_value_2
= fra
.me
.REG
[4];
1844 register_static_object(&once_value_2
);
1845 } else fra
.me
.REG
[4] = once_value_2
;
1846 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1848 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1849 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1850 /* native_interface/frontier.nit:248 */
1851 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1853 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1854 if (!once_value_3
) {
1855 fra
.me
.REG
[4] = BOX_NativeString("\ttypedef void* ");
1856 REGB0
= TAG_Int(15);
1857 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1858 once_value_3
= fra
.me
.REG
[4];
1859 register_static_object(&once_value_3
);
1860 } else fra
.me
.REG
[4] = once_value_3
;
1861 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1863 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1864 fra
.me
.REG
[0] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1865 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1866 if (!once_value_4
) {
1867 fra
.me
.REG
[0] = BOX_NativeString(";\n");
1869 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1870 once_value_4
= fra
.me
.REG
[0];
1871 register_static_object(&once_value_4
);
1872 } else fra
.me
.REG
[0] = once_value_4
;
1873 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1874 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1875 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1876 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1877 /* native_interface/frontier.nit:249 */
1878 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1879 if (!once_value_5
) {
1880 fra
.me
.REG
[2] = BOX_NativeString("#endif\n\n");
1882 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1883 once_value_5
= fra
.me
.REG
[2];
1884 register_static_object(&once_value_5
);
1885 } else fra
.me
.REG
[2] = once_value_5
;
1886 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1887 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1888 stack_frame_head
= fra
.me
.prev
;
1891 void native_interface___frontier___MMSignature___compile_frontier(val_t p0
, val_t p1
){
1892 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1897 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1898 fra
.me
.file
= LOCATE_native_interface___frontier
;
1900 fra
.me
.meth
= LOCATE_native_interface___frontier___MMSignature___compile_frontier
;
1901 fra
.me
.has_broke
= 0;
1902 fra
.me
.REG_size
= 6;
1903 fra
.me
.nitni_local_ref_head
= NULL
;
1904 fra
.me
.REG
[0] = NIT_NULL
;
1905 fra
.me
.REG
[1] = NIT_NULL
;
1906 fra
.me
.REG
[2] = NIT_NULL
;
1907 fra
.me
.REG
[3] = NIT_NULL
;
1908 fra
.me
.REG
[4] = NIT_NULL
;
1909 fra
.me
.REG
[5] = NIT_NULL
;
1912 /* native_interface/frontier.nit:257 */
1913 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___types(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1914 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1915 fra
.me
.REG
[3] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1916 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1917 /* native_interface/frontier.nit:260 */
1918 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1919 /* ../lib/standard/collection/array.nit:269 */
1921 /* ../lib/standard/collection/array.nit:270 */
1922 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1923 if (UNTAG_Bool(REGB1
)) {
1925 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1927 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1928 /* ../lib/standard/collection/array.nit:271 */
1929 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
1930 /* ../lib/standard/collection/array.nit:272 */
1932 /* ../lib/standard/collection/array.nit:24 */
1933 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1934 if (UNTAG_Bool(REGB1
)) {
1936 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1938 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1939 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1940 if (UNTAG_Bool(REGB2
)) {
1942 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1944 /* ../lib/standard/kernel.nit:232 */
1945 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1946 /* ../lib/standard/collection/array.nit:272 */
1947 if (UNTAG_Bool(REGB1
)) {
1948 /* ../lib/standard/collection/array.nit:273 */
1949 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1950 if (UNTAG_Bool(REGB1
)) {
1951 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1953 /* ../lib/standard/collection/array.nit:718 */
1954 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
1955 /* native_interface/frontier.nit:260 */
1956 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___types(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1957 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMParam___mmtype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1958 fra
.me
.REG
[4] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
1960 /* ../lib/standard/collection/array.nit:274 */
1962 /* ../lib/standard/kernel.nit:235 */
1963 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1964 /* ../lib/standard/collection/array.nit:274 */
1967 /* ../lib/standard/collection/array.nit:272 */
1972 /* native_interface/frontier.nit:263 */
1973 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1974 /* native_interface/frontier.nit:264 */
1975 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1976 if (UNTAG_Bool(REGB0
)) {
1978 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1979 if (UNTAG_Bool(REGB1
)) {
1980 REGB1
= TAG_Bool(false);
1983 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1987 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1988 if (UNTAG_Bool(REGB0
)) {
1989 /* native_interface/frontier.nit:265 */
1990 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___types(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1991 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1992 if (UNTAG_Bool(REGB0
)) {
1993 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 265);
1995 fra
.me
.REG
[0] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1996 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1998 stack_frame_head
= fra
.me
.prev
;
2001 val_t
native_interface___frontier___FrontierVisitor___header_top(val_t p0
){
2002 struct {struct stack_frame_t me
;} fra
;
2005 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2006 fra
.me
.file
= LOCATE_native_interface___frontier
;
2008 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___header_top
;
2009 fra
.me
.has_broke
= 0;
2010 fra
.me
.REG_size
= 1;
2011 fra
.me
.nitni_local_ref_head
= NULL
;
2012 fra
.me
.REG
[0] = NIT_NULL
;
2014 /* native_interface/frontier.nit:273 */
2015 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra
.me
.REG
[0])!=NIT_NULL
);
2016 if (UNTAG_Bool(REGB0
)) {
2018 nit_abort("Uninitialized attribute %s", "@header_top", LOCATE_native_interface___frontier
, 273);
2020 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra
.me
.REG
[0]);
2021 stack_frame_head
= fra
.me
.prev
;
2022 return fra
.me
.REG
[0];
2024 void native_interface___frontier___FrontierVisitor___header_top__eq(val_t p0
, val_t p1
){
2025 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2027 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2028 fra
.me
.file
= LOCATE_native_interface___frontier
;
2030 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___header_top__eq
;
2031 fra
.me
.has_broke
= 0;
2032 fra
.me
.REG_size
= 2;
2033 fra
.me
.nitni_local_ref_head
= NULL
;
2034 fra
.me
.REG
[0] = NIT_NULL
;
2035 fra
.me
.REG
[1] = NIT_NULL
;
2038 /* native_interface/frontier.nit:273 */
2039 ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2040 stack_frame_head
= fra
.me
.prev
;
2043 val_t
native_interface___frontier___FrontierVisitor___header(val_t p0
){
2044 struct {struct stack_frame_t me
;} fra
;
2047 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2048 fra
.me
.file
= LOCATE_native_interface___frontier
;
2050 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___header
;
2051 fra
.me
.has_broke
= 0;
2052 fra
.me
.REG_size
= 1;
2053 fra
.me
.nitni_local_ref_head
= NULL
;
2054 fra
.me
.REG
[0] = NIT_NULL
;
2056 /* native_interface/frontier.nit:276 */
2057 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra
.me
.REG
[0])!=NIT_NULL
);
2058 if (UNTAG_Bool(REGB0
)) {
2060 nit_abort("Uninitialized attribute %s", "@header", LOCATE_native_interface___frontier
, 276);
2062 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra
.me
.REG
[0]);
2063 stack_frame_head
= fra
.me
.prev
;
2064 return fra
.me
.REG
[0];
2066 void native_interface___frontier___FrontierVisitor___header__eq(val_t p0
, val_t p1
){
2067 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2069 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2070 fra
.me
.file
= LOCATE_native_interface___frontier
;
2072 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___header__eq
;
2073 fra
.me
.has_broke
= 0;
2074 fra
.me
.REG_size
= 2;
2075 fra
.me
.nitni_local_ref_head
= NULL
;
2076 fra
.me
.REG
[0] = NIT_NULL
;
2077 fra
.me
.REG
[1] = NIT_NULL
;
2080 /* native_interface/frontier.nit:276 */
2081 ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2082 stack_frame_head
= fra
.me
.prev
;
2085 val_t
native_interface___frontier___FrontierVisitor___body(val_t p0
){
2086 struct {struct stack_frame_t me
;} fra
;
2089 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2090 fra
.me
.file
= LOCATE_native_interface___frontier
;
2092 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___body
;
2093 fra
.me
.has_broke
= 0;
2094 fra
.me
.REG_size
= 1;
2095 fra
.me
.nitni_local_ref_head
= NULL
;
2096 fra
.me
.REG
[0] = NIT_NULL
;
2098 /* native_interface/frontier.nit:279 */
2099 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra
.me
.REG
[0])!=NIT_NULL
);
2100 if (UNTAG_Bool(REGB0
)) {
2102 nit_abort("Uninitialized attribute %s", "@body", LOCATE_native_interface___frontier
, 279);
2104 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra
.me
.REG
[0]);
2105 stack_frame_head
= fra
.me
.prev
;
2106 return fra
.me
.REG
[0];
2108 void native_interface___frontier___FrontierVisitor___body__eq(val_t p0
, val_t p1
){
2109 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2111 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2112 fra
.me
.file
= LOCATE_native_interface___frontier
;
2114 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___body__eq
;
2115 fra
.me
.has_broke
= 0;
2116 fra
.me
.REG_size
= 2;
2117 fra
.me
.nitni_local_ref_head
= NULL
;
2118 fra
.me
.REG
[0] = NIT_NULL
;
2119 fra
.me
.REG
[1] = NIT_NULL
;
2122 /* native_interface/frontier.nit:279 */
2123 ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2124 stack_frame_head
= fra
.me
.prev
;
2127 val_t
native_interface___frontier___FrontierVisitor___friendlys(val_t p0
){
2128 struct {struct stack_frame_t me
;} fra
;
2131 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2132 fra
.me
.file
= LOCATE_native_interface___frontier
;
2134 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___friendlys
;
2135 fra
.me
.has_broke
= 0;
2136 fra
.me
.REG_size
= 1;
2137 fra
.me
.nitni_local_ref_head
= NULL
;
2138 fra
.me
.REG
[0] = NIT_NULL
;
2140 /* native_interface/frontier.nit:282 */
2141 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra
.me
.REG
[0])!=NIT_NULL
);
2142 if (UNTAG_Bool(REGB0
)) {
2144 nit_abort("Uninitialized attribute %s", "@friendlys", LOCATE_native_interface___frontier
, 282);
2146 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra
.me
.REG
[0]);
2147 stack_frame_head
= fra
.me
.prev
;
2148 return fra
.me
.REG
[0];
2150 void native_interface___frontier___FrontierVisitor___friendlys__eq(val_t p0
, val_t p1
){
2151 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2153 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2154 fra
.me
.file
= LOCATE_native_interface___frontier
;
2156 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___friendlys__eq
;
2157 fra
.me
.has_broke
= 0;
2158 fra
.me
.REG_size
= 2;
2159 fra
.me
.nitni_local_ref_head
= NULL
;
2160 fra
.me
.REG
[0] = NIT_NULL
;
2161 fra
.me
.REG
[1] = NIT_NULL
;
2164 /* native_interface/frontier.nit:282 */
2165 ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2166 stack_frame_head
= fra
.me
.prev
;
2169 val_t
native_interface___frontier___FrontierVisitor___types(val_t p0
){
2170 struct {struct stack_frame_t me
;} fra
;
2173 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2174 fra
.me
.file
= LOCATE_native_interface___frontier
;
2176 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___types
;
2177 fra
.me
.has_broke
= 0;
2178 fra
.me
.REG_size
= 1;
2179 fra
.me
.nitni_local_ref_head
= NULL
;
2180 fra
.me
.REG
[0] = NIT_NULL
;
2182 /* native_interface/frontier.nit:285 */
2183 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra
.me
.REG
[0])!=NIT_NULL
);
2184 if (UNTAG_Bool(REGB0
)) {
2186 nit_abort("Uninitialized attribute %s", "@types", LOCATE_native_interface___frontier
, 285);
2188 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra
.me
.REG
[0]);
2189 stack_frame_head
= fra
.me
.prev
;
2190 return fra
.me
.REG
[0];
2192 void native_interface___frontier___FrontierVisitor___types__eq(val_t p0
, val_t p1
){
2193 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2195 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2196 fra
.me
.file
= LOCATE_native_interface___frontier
;
2198 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___types__eq
;
2199 fra
.me
.has_broke
= 0;
2200 fra
.me
.REG_size
= 2;
2201 fra
.me
.nitni_local_ref_head
= NULL
;
2202 fra
.me
.REG
[0] = NIT_NULL
;
2203 fra
.me
.REG
[1] = NIT_NULL
;
2206 /* native_interface/frontier.nit:285 */
2207 ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2208 stack_frame_head
= fra
.me
.prev
;
2211 val_t
native_interface___frontier___FrontierVisitor___casts(val_t p0
){
2212 struct {struct stack_frame_t me
;} fra
;
2215 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2216 fra
.me
.file
= LOCATE_native_interface___frontier
;
2218 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___casts
;
2219 fra
.me
.has_broke
= 0;
2220 fra
.me
.REG_size
= 1;
2221 fra
.me
.nitni_local_ref_head
= NULL
;
2222 fra
.me
.REG
[0] = NIT_NULL
;
2224 /* native_interface/frontier.nit:288 */
2225 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra
.me
.REG
[0])!=NIT_NULL
);
2226 if (UNTAG_Bool(REGB0
)) {
2228 nit_abort("Uninitialized attribute %s", "@casts", LOCATE_native_interface___frontier
, 288);
2230 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra
.me
.REG
[0]);
2231 stack_frame_head
= fra
.me
.prev
;
2232 return fra
.me
.REG
[0];
2234 void native_interface___frontier___FrontierVisitor___casts__eq(val_t p0
, val_t p1
){
2235 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2237 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2238 fra
.me
.file
= LOCATE_native_interface___frontier
;
2240 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___casts__eq
;
2241 fra
.me
.has_broke
= 0;
2242 fra
.me
.REG_size
= 2;
2243 fra
.me
.nitni_local_ref_head
= NULL
;
2244 fra
.me
.REG
[0] = NIT_NULL
;
2245 fra
.me
.REG
[1] = NIT_NULL
;
2248 /* native_interface/frontier.nit:288 */
2249 ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2250 stack_frame_head
= fra
.me
.prev
;
2253 val_t
native_interface___frontier___FrontierVisitor___mmmodule(val_t p0
){
2254 struct {struct stack_frame_t me
;} fra
;
2257 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2258 fra
.me
.file
= LOCATE_native_interface___frontier
;
2260 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___mmmodule
;
2261 fra
.me
.has_broke
= 0;
2262 fra
.me
.REG_size
= 1;
2263 fra
.me
.nitni_local_ref_head
= NULL
;
2264 fra
.me
.REG
[0] = NIT_NULL
;
2266 /* native_interface/frontier.nit:291 */
2267 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra
.me
.REG
[0])!=NIT_NULL
);
2268 if (UNTAG_Bool(REGB0
)) {
2270 nit_abort("Uninitialized attribute %s", "@mmmodule", LOCATE_native_interface___frontier
, 291);
2272 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra
.me
.REG
[0]);
2273 stack_frame_head
= fra
.me
.prev
;
2274 return fra
.me
.REG
[0];
2276 void native_interface___frontier___FrontierVisitor___mmmodule__eq(val_t p0
, val_t p1
){
2277 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2279 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2280 fra
.me
.file
= LOCATE_native_interface___frontier
;
2282 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___mmmodule__eq
;
2283 fra
.me
.has_broke
= 0;
2284 fra
.me
.REG_size
= 2;
2285 fra
.me
.nitni_local_ref_head
= NULL
;
2286 fra
.me
.REG
[0] = NIT_NULL
;
2287 fra
.me
.REG
[1] = NIT_NULL
;
2290 /* native_interface/frontier.nit:291 */
2291 ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2292 stack_frame_head
= fra
.me
.prev
;
2295 val_t
native_interface___frontier___FrontierVisitor___cprogram(val_t p0
){
2296 struct {struct stack_frame_t me
;} fra
;
2299 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2300 fra
.me
.file
= LOCATE_native_interface___frontier
;
2302 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___cprogram
;
2303 fra
.me
.has_broke
= 0;
2304 fra
.me
.REG_size
= 1;
2305 fra
.me
.nitni_local_ref_head
= NULL
;
2306 fra
.me
.REG
[0] = NIT_NULL
;
2308 /* native_interface/frontier.nit:293 */
2309 REGB0
= TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra
.me
.REG
[0])!=NIT_NULL
);
2310 if (UNTAG_Bool(REGB0
)) {
2312 nit_abort("Uninitialized attribute %s", "@cprogram", LOCATE_native_interface___frontier
, 293);
2314 fra
.me
.REG
[0] = ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra
.me
.REG
[0]);
2315 stack_frame_head
= fra
.me
.prev
;
2316 return fra
.me
.REG
[0];
2318 void native_interface___frontier___FrontierVisitor___cprogram__eq(val_t p0
, val_t p1
){
2319 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2321 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2322 fra
.me
.file
= LOCATE_native_interface___frontier
;
2324 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___cprogram__eq
;
2325 fra
.me
.has_broke
= 0;
2326 fra
.me
.REG_size
= 2;
2327 fra
.me
.nitni_local_ref_head
= NULL
;
2328 fra
.me
.REG
[0] = NIT_NULL
;
2329 fra
.me
.REG
[1] = NIT_NULL
;
2332 /* native_interface/frontier.nit:293 */
2333 ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2334 stack_frame_head
= fra
.me
.prev
;
2337 void native_interface___frontier___FrontierVisitor___compile_cached(val_t p0
){
2338 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2340 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2341 fra
.me
.file
= LOCATE_native_interface___frontier
;
2343 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
;
2344 fra
.me
.has_broke
= 0;
2345 fra
.me
.REG_size
= 2;
2346 fra
.me
.nitni_local_ref_head
= NULL
;
2347 fra
.me
.REG
[0] = NIT_NULL
;
2348 fra
.me
.REG
[1] = NIT_NULL
;
2350 /* native_interface/frontier.nit:298 */
2351 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___types(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2352 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
));
2353 /* native_interface/frontier.nit:301 */
2354 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___friendlys(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2355 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
));
2356 /* native_interface/frontier.nit:304 */
2357 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___casts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2358 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
));
2359 stack_frame_head
= fra
.me
.prev
;
2362 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
){
2363 struct {struct stack_frame_t me
;} fra
;
2366 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2367 fra
.me
.file
= LOCATE_native_interface___frontier
;
2369 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
;
2370 fra
.me
.has_broke
= 0;
2371 fra
.me
.REG_size
= 1;
2372 fra
.me
.nitni_local_ref_head
= NULL
;
2373 fra
.me
.REG
[0] = NIT_NULL
;
2374 fra
.me
.closure_ctx
= closctx_param
;
2375 fra
.me
.closure_funs
= CREG
;
2377 CREG
[0] = clos_fun0
;
2378 CALL_native_interface___frontier___MMType___compile_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[0]);
2379 stack_frame_head
= fra
.me
.prev
;
2382 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
){
2383 struct {struct stack_frame_t me
;} fra
;
2386 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2387 fra
.me
.file
= LOCATE_native_interface___frontier
;
2389 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
;
2390 fra
.me
.has_broke
= 0;
2391 fra
.me
.REG_size
= 1;
2392 fra
.me
.nitni_local_ref_head
= NULL
;
2393 fra
.me
.REG
[0] = NIT_NULL
;
2394 fra
.me
.closure_ctx
= closctx_param
;
2395 fra
.me
.closure_funs
= CREG
;
2397 CREG
[0] = clos_fun0
;
2398 CALL_native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[0]);
2399 stack_frame_head
= fra
.me
.prev
;
2402 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
){
2403 struct {struct stack_frame_t me
;} fra
;
2406 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2407 fra
.me
.file
= LOCATE_native_interface___frontier
;
2409 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___compile_cached
;
2410 fra
.me
.has_broke
= 0;
2411 fra
.me
.REG_size
= 1;
2412 fra
.me
.nitni_local_ref_head
= NULL
;
2413 fra
.me
.REG
[0] = NIT_NULL
;
2414 fra
.me
.closure_ctx
= closctx_param
;
2415 fra
.me
.closure_funs
= CREG
;
2417 CREG
[0] = clos_fun0
;
2418 CALL_native_interface___frontier___MMImportedCast___compile_to_frontier(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[0]);
2419 stack_frame_head
= fra
.me
.prev
;
2422 void native_interface___frontier___FrontierVisitor___write_to_files(val_t p0
, val_t p1
){
2423 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2426 static val_t once_value_1
; /* Once value */
2427 static val_t once_value_2
; /* Once value */
2428 static val_t once_value_3
; /* Once value */
2429 static val_t once_value_4
; /* Once value */
2430 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2431 fra
.me
.file
= LOCATE_native_interface___frontier
;
2433 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___write_to_files
;
2434 fra
.me
.has_broke
= 0;
2435 fra
.me
.REG_size
= 6;
2436 fra
.me
.nitni_local_ref_head
= NULL
;
2437 fra
.me
.REG
[0] = NIT_NULL
;
2438 fra
.me
.REG
[1] = NIT_NULL
;
2439 fra
.me
.REG
[2] = NIT_NULL
;
2440 fra
.me
.REG
[3] = NIT_NULL
;
2441 fra
.me
.REG
[4] = NIT_NULL
;
2442 fra
.me
.REG
[5] = NIT_NULL
;
2445 /* native_interface/frontier.nit:309 */
2447 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2448 if (!once_value_1
) {
2449 fra
.me
.REG
[3] = BOX_NativeString("");
2451 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2452 once_value_1
= fra
.me
.REG
[3];
2453 register_static_object(&once_value_1
);
2454 } else fra
.me
.REG
[3] = once_value_1
;
2455 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2456 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2457 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
2458 if (!once_value_2
) {
2459 fra
.me
.REG
[3] = BOX_NativeString("._nitni.h");
2461 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2462 once_value_2
= fra
.me
.REG
[3];
2463 register_static_object(&once_value_2
);
2464 } else fra
.me
.REG
[3] = once_value_2
;
2465 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2466 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2467 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2468 /* native_interface/frontier.nit:310 */
2469 fra
.me
.REG
[3] = NEW_OFStream_standard___file___OFStream___open(fra
.me
.REG
[2]);
2470 /* native_interface/frontier.nit:311 */
2471 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2472 CALL_compiling___compiling_writer___Writer___write_to_stream(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2473 /* native_interface/frontier.nit:312 */
2474 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2475 CALL_compiling___compiling_writer___Writer___write_to_stream(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2476 /* native_interface/frontier.nit:313 */
2477 CALL_standard___stream___IOS___close(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2478 /* native_interface/frontier.nit:315 */
2480 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2481 if (!once_value_3
) {
2482 fra
.me
.REG
[5] = BOX_NativeString("");
2484 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
2485 once_value_3
= fra
.me
.REG
[5];
2486 register_static_object(&once_value_3
);
2487 } else fra
.me
.REG
[5] = once_value_3
;
2488 fra
.me
.REG
[5] = fra
.me
.REG
[5];
2489 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2490 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
2491 if (!once_value_4
) {
2492 fra
.me
.REG
[1] = BOX_NativeString("._nitni.c");
2494 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
2495 once_value_4
= fra
.me
.REG
[1];
2496 register_static_object(&once_value_4
);
2497 } else fra
.me
.REG
[1] = once_value_4
;
2498 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2499 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
2500 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2501 fra
.me
.REG
[2] = fra
.me
.REG
[4];
2502 /* native_interface/frontier.nit:316 */
2503 fra
.me
.REG
[2] = NEW_OFStream_standard___file___OFStream___open(fra
.me
.REG
[2]);
2504 fra
.me
.REG
[3] = fra
.me
.REG
[2];
2505 /* native_interface/frontier.nit:317 */
2506 fra
.me
.REG
[0] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2507 CALL_compiling___compiling_writer___Writer___write_to_stream(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
2508 /* native_interface/frontier.nit:318 */
2509 CALL_standard___stream___IOS___close(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2510 stack_frame_head
= fra
.me
.prev
;
2513 void native_interface___frontier___FrontierVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
2514 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_native_interface___frontier___FrontierVisitor
].i
;
2515 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2517 if (init_table
[itpos0
]) return;
2518 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2519 fra
.me
.file
= LOCATE_native_interface___frontier
;
2521 fra
.me
.meth
= LOCATE_native_interface___frontier___FrontierVisitor___init
;
2522 fra
.me
.has_broke
= 0;
2523 fra
.me
.REG_size
= 3;
2524 fra
.me
.nitni_local_ref_head
= NULL
;
2525 fra
.me
.REG
[0] = NIT_NULL
;
2526 fra
.me
.REG
[1] = NIT_NULL
;
2527 fra
.me
.REG
[2] = NIT_NULL
;
2531 ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2532 ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
2533 stack_frame_head
= fra
.me
.prev
;
2534 init_table
[itpos0
] = 1;
2537 void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
, val_t p1
){
2538 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2542 static val_t once_value_1
; /* Once value */
2543 static val_t once_value_2
; /* Once value */
2544 static val_t once_value_3
; /* Once value */
2545 static val_t once_value_4
; /* Once value */
2546 static val_t once_value_5
; /* Once value */
2547 static val_t once_value_6
; /* Once value */
2548 static val_t once_value_7
; /* Once value */
2549 static val_t once_value_8
; /* Once value */
2550 static val_t once_value_9
; /* Once value */
2551 static val_t once_value_10
; /* Once value */
2552 static val_t once_value_11
; /* Once value */
2553 static val_t once_value_12
; /* Once value */
2554 static val_t once_value_13
; /* Once value */
2555 static val_t once_value_14
; /* Once value */
2556 static val_t once_value_15
; /* Once value */
2557 static val_t once_value_16
; /* Once value */
2558 static val_t once_value_17
; /* Once value */
2559 static val_t once_value_18
; /* Once value */
2560 static val_t once_value_19
; /* Once value */
2561 static val_t once_value_20
; /* Once value */
2562 static val_t once_value_21
; /* Once value */
2563 static val_t once_value_22
; /* Once value */
2564 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2565 fra
.me
.file
= LOCATE_native_interface___frontier
;
2567 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___compile_to_frontier
;
2568 fra
.me
.has_broke
= 0;
2569 fra
.me
.REG_size
= 5;
2570 fra
.me
.nitni_local_ref_head
= NULL
;
2571 fra
.me
.REG
[0] = NIT_NULL
;
2572 fra
.me
.REG
[1] = NIT_NULL
;
2573 fra
.me
.REG
[2] = NIT_NULL
;
2574 fra
.me
.REG
[3] = NIT_NULL
;
2575 fra
.me
.REG
[4] = NIT_NULL
;
2578 /* native_interface/frontier.nit:327 */
2579 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2580 if (UNTAG_Bool(REGB0
)) {
2581 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_not_null_to_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2583 REGB1
= TAG_Bool(false);
2586 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2587 if (UNTAG_Bool(REGB0
)) {
2588 /* native_interface/frontier.nit:328 */
2589 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2591 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2592 if (!once_value_1
) {
2593 fra
.me
.REG
[4] = BOX_NativeString("\n/* Type check for ");
2594 REGB0
= TAG_Int(19);
2595 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2596 once_value_1
= fra
.me
.REG
[4];
2597 register_static_object(&once_value_1
);
2598 } else fra
.me
.REG
[4] = once_value_1
;
2599 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2600 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2601 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2602 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2603 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2604 if (!once_value_2
) {
2605 fra
.me
.REG
[4] = BOX_NativeString(" with ");
2607 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2608 once_value_2
= fra
.me
.REG
[4];
2609 register_static_object(&once_value_2
);
2610 } else fra
.me
.REG
[4] = once_value_2
;
2611 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2612 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2613 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2614 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2615 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2616 if (!once_value_3
) {
2617 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
2619 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2620 once_value_3
= fra
.me
.REG
[4];
2621 register_static_object(&once_value_3
);
2622 } else fra
.me
.REG
[4] = once_value_3
;
2623 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2624 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2625 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2626 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2627 /* native_interface/frontier.nit:329 */
2628 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2630 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2631 if (!once_value_4
) {
2632 fra
.me
.REG
[4] = BOX_NativeString("");
2634 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2635 once_value_4
= fra
.me
.REG
[4];
2636 register_static_object(&once_value_4
);
2637 } else fra
.me
.REG
[4] = once_value_4
;
2638 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2640 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2641 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]);
2642 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2643 if (!once_value_5
) {
2644 fra
.me
.REG
[4] = BOX_NativeString(";\n");
2646 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2647 once_value_5
= fra
.me
.REG
[4];
2648 register_static_object(&once_value_5
);
2649 } else fra
.me
.REG
[4] = once_value_5
;
2650 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2651 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2652 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2653 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2654 /* native_interface/frontier.nit:331 */
2655 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2657 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2658 if (!once_value_6
) {
2659 fra
.me
.REG
[4] = BOX_NativeString("#ifndef ");
2661 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2662 once_value_6
= fra
.me
.REG
[4];
2663 register_static_object(&once_value_6
);
2664 } else fra
.me
.REG
[4] = once_value_6
;
2665 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2666 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2667 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2668 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2669 if (!once_value_7
) {
2670 fra
.me
.REG
[4] = BOX_NativeString("\n");
2672 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2673 once_value_7
= fra
.me
.REG
[4];
2674 register_static_object(&once_value_7
);
2675 } else fra
.me
.REG
[4] = once_value_7
;
2676 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2677 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2678 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2679 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2680 /* native_interface/frontier.nit:332 */
2681 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2683 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2684 if (!once_value_8
) {
2685 fra
.me
.REG
[4] = BOX_NativeString("#define ");
2687 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2688 once_value_8
= fra
.me
.REG
[4];
2689 register_static_object(&once_value_8
);
2690 } else fra
.me
.REG
[4] = once_value_8
;
2691 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2692 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2693 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2694 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2695 if (!once_value_9
) {
2696 fra
.me
.REG
[4] = BOX_NativeString(" ");
2698 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2699 once_value_9
= fra
.me
.REG
[4];
2700 register_static_object(&once_value_9
);
2701 } else fra
.me
.REG
[4] = once_value_9
;
2702 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2703 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2704 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2705 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]);
2706 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2707 if (!once_value_10
) {
2708 fra
.me
.REG
[4] = BOX_NativeString("\n");
2710 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2711 once_value_10
= fra
.me
.REG
[4];
2712 register_static_object(&once_value_10
);
2713 } else fra
.me
.REG
[4] = once_value_10
;
2714 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2715 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2716 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2717 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2718 /* native_interface/frontier.nit:333 */
2719 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2720 if (!once_value_11
) {
2721 fra
.me
.REG
[3] = BOX_NativeString("#endif\n");
2723 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2724 once_value_11
= fra
.me
.REG
[3];
2725 register_static_object(&once_value_11
);
2726 } else fra
.me
.REG
[3] = once_value_11
;
2727 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2728 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2729 /* native_interface/frontier.nit:335 */
2730 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2731 fra
.me
.REG
[3] = CALL_native_interface___frontier___MMImportedCast___compile_is(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
2732 /* native_interface/frontier.nit:336 */
2733 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2734 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2735 CALL_compiling___compiling_writer___Writer___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2737 /* native_interface/frontier.nit:340 */
2738 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2740 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2741 if (!once_value_12
) {
2742 fra
.me
.REG
[4] = BOX_NativeString("\n/* Cast for ");
2743 REGB0
= TAG_Int(13);
2744 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2745 once_value_12
= fra
.me
.REG
[4];
2746 register_static_object(&once_value_12
);
2747 } else fra
.me
.REG
[4] = once_value_12
;
2748 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2749 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2750 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2751 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2752 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2753 if (!once_value_13
) {
2754 fra
.me
.REG
[4] = BOX_NativeString(" to ");
2756 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2757 once_value_13
= fra
.me
.REG
[4];
2758 register_static_object(&once_value_13
);
2759 } else fra
.me
.REG
[4] = once_value_13
;
2760 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2761 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2762 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2763 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2764 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2765 if (!once_value_14
) {
2766 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
2768 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2769 once_value_14
= fra
.me
.REG
[4];
2770 register_static_object(&once_value_14
);
2771 } else fra
.me
.REG
[4] = once_value_14
;
2772 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2773 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2774 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2775 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2776 /* native_interface/frontier.nit:341 */
2777 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2779 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2780 if (!once_value_15
) {
2781 fra
.me
.REG
[4] = BOX_NativeString("");
2783 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2784 once_value_15
= fra
.me
.REG
[4];
2785 register_static_object(&once_value_15
);
2786 } else fra
.me
.REG
[4] = once_value_15
;
2787 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2789 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2790 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]);
2791 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2792 if (!once_value_16
) {
2793 fra
.me
.REG
[4] = BOX_NativeString(";\n");
2795 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2796 once_value_16
= fra
.me
.REG
[4];
2797 register_static_object(&once_value_16
);
2798 } else fra
.me
.REG
[4] = once_value_16
;
2799 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2801 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2802 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2803 /* native_interface/frontier.nit:343 */
2804 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2806 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2807 if (!once_value_17
) {
2808 fra
.me
.REG
[4] = BOX_NativeString("#ifndef ");
2810 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2811 once_value_17
= fra
.me
.REG
[4];
2812 register_static_object(&once_value_17
);
2813 } else fra
.me
.REG
[4] = once_value_17
;
2814 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2815 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2816 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2817 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2818 if (!once_value_18
) {
2819 fra
.me
.REG
[4] = BOX_NativeString("\n");
2821 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2822 once_value_18
= fra
.me
.REG
[4];
2823 register_static_object(&once_value_18
);
2824 } else fra
.me
.REG
[4] = once_value_18
;
2825 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
2827 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2828 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2829 /* native_interface/frontier.nit:344 */
2830 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2832 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2833 if (!once_value_19
) {
2834 fra
.me
.REG
[4] = BOX_NativeString("#define ");
2836 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2837 once_value_19
= fra
.me
.REG
[4];
2838 register_static_object(&once_value_19
);
2839 } else fra
.me
.REG
[4] = once_value_19
;
2840 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2842 fra
.me
.REG
[4] = CALL_native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2843 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2844 if (!once_value_20
) {
2845 fra
.me
.REG
[4] = BOX_NativeString(" ");
2847 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2848 once_value_20
= fra
.me
.REG
[4];
2849 register_static_object(&once_value_20
);
2850 } else fra
.me
.REG
[4] = once_value_20
;
2851 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2852 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2853 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2854 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]);
2855 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2856 if (!once_value_21
) {
2857 fra
.me
.REG
[4] = BOX_NativeString("\n");
2859 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2860 once_value_21
= fra
.me
.REG
[4];
2861 register_static_object(&once_value_21
);
2862 } else fra
.me
.REG
[4] = once_value_21
;
2863 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2864 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2865 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2866 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2867 /* native_interface/frontier.nit:345 */
2868 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2869 if (!once_value_22
) {
2870 fra
.me
.REG
[2] = BOX_NativeString("#endif\n");
2872 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2873 once_value_22
= fra
.me
.REG
[2];
2874 register_static_object(&once_value_22
);
2875 } else fra
.me
.REG
[2] = once_value_22
;
2876 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2877 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2878 /* native_interface/frontier.nit:347 */
2879 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2880 fra
.me
.REG
[2] = CALL_native_interface___frontier___MMImportedCast___compile_as(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
2881 /* native_interface/frontier.nit:348 */
2882 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2883 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2884 CALL_compiling___compiling_writer___Writer___append(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2885 stack_frame_head
= fra
.me
.prev
;
2888 val_t
native_interface___frontier___MMImportedCast___compile_as(val_t p0
, val_t p1
){
2889 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2892 static val_t once_value_1
; /* Once value */
2893 static val_t once_value_2
; /* Once value */
2894 static val_t once_value_3
; /* Once value */
2895 static val_t once_value_4
; /* Once value */
2896 static val_t once_value_5
; /* Once value */
2897 static val_t once_value_6
; /* Once value */
2898 static val_t once_value_7
; /* Once value */
2899 static val_t once_value_8
; /* Once value */
2900 static val_t once_value_9
; /* Once value */
2901 static val_t once_value_10
; /* Once value */
2902 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2903 fra
.me
.file
= LOCATE_native_interface___frontier
;
2905 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___compile_as
;
2906 fra
.me
.has_broke
= 0;
2907 fra
.me
.REG_size
= 8;
2908 fra
.me
.nitni_local_ref_head
= NULL
;
2909 fra
.me
.REG
[0] = NIT_NULL
;
2910 fra
.me
.REG
[1] = NIT_NULL
;
2911 fra
.me
.REG
[2] = NIT_NULL
;
2912 fra
.me
.REG
[3] = NIT_NULL
;
2913 fra
.me
.REG
[4] = NIT_NULL
;
2914 fra
.me
.REG
[5] = NIT_NULL
;
2915 fra
.me
.REG
[6] = NIT_NULL
;
2916 fra
.me
.REG
[7] = NIT_NULL
;
2919 /* native_interface/frontier.nit:355 */
2920 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]);
2921 fra
.me
.REG
[1] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[1]);
2922 /* native_interface/frontier.nit:357 */
2923 if (!once_value_1
) {
2924 fra
.me
.REG
[2] = BOX_NativeString("out");
2926 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2927 once_value_1
= fra
.me
.REG
[2];
2928 register_static_object(&once_value_1
);
2929 } else fra
.me
.REG
[2] = once_value_1
;
2930 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2931 /* native_interface/frontier.nit:358 */
2932 if (!once_value_2
) {
2933 fra
.me
.REG
[3] = BOX_NativeString("temp");
2935 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2936 once_value_2
= fra
.me
.REG
[3];
2937 register_static_object(&once_value_2
);
2938 } else fra
.me
.REG
[3] = once_value_2
;
2939 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2940 /* native_interface/frontier.nit:360 */
2941 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2943 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2944 if (!once_value_3
) {
2945 fra
.me
.REG
[6] = BOX_NativeString("val_t ");
2947 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2948 once_value_3
= fra
.me
.REG
[6];
2949 register_static_object(&once_value_3
);
2950 } else fra
.me
.REG
[6] = once_value_3
;
2951 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2952 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2953 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
2954 if (!once_value_4
) {
2955 fra
.me
.REG
[6] = BOX_NativeString(";\n");
2957 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2958 once_value_4
= fra
.me
.REG
[6];
2959 register_static_object(&once_value_4
);
2960 } else fra
.me
.REG
[6] = once_value_4
;
2961 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2962 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2963 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2964 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2965 /* native_interface/frontier.nit:361 */
2966 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2967 REGB0
= TAG_Bool(true);
2968 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
);
2969 /* native_interface/frontier.nit:363 */
2970 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2972 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2973 if (!once_value_5
) {
2974 fra
.me
.REG
[6] = BOX_NativeString("");
2976 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
2977 once_value_5
= fra
.me
.REG
[6];
2978 register_static_object(&once_value_5
);
2979 } else fra
.me
.REG
[6] = once_value_5
;
2980 fra
.me
.REG
[6] = fra
.me
.REG
[6];
2981 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
2982 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2983 fra
.me
.REG
[7] = CALL_native_interface___ni_metamodel___MMImportedCast___in_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2984 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]);
2985 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
2986 if (!once_value_6
) {
2987 fra
.me
.REG
[7] = BOX_NativeString(";\n");
2989 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
2990 once_value_6
= fra
.me
.REG
[7];
2991 register_static_object(&once_value_6
);
2992 } else fra
.me
.REG
[7] = once_value_6
;
2993 fra
.me
.REG
[7] = fra
.me
.REG
[7];
2994 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
2995 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2996 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
2997 /* native_interface/frontier.nit:366 */
2998 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2999 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3000 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3001 if (UNTAG_Bool(REGB0
)) {
3002 /* native_interface/frontier.nit:367 */
3003 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]);
3005 /* native_interface/frontier.nit:371 */
3006 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3007 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3008 if (UNTAG_Bool(REGB0
)) {
3009 /* native_interface/frontier.nit:372 */
3010 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3011 CALL_native_interface___frontier___MMType___compile_check_isa(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1], fra
.me
.REG
[3]);
3013 /* native_interface/frontier.nit:375 */
3014 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3016 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3017 if (!once_value_7
) {
3018 fra
.me
.REG
[7] = BOX_NativeString("");
3020 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3021 once_value_7
= fra
.me
.REG
[7];
3022 register_static_object(&once_value_7
);
3023 } else fra
.me
.REG
[7] = once_value_7
;
3024 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3025 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3026 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3027 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]);
3028 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3029 if (!once_value_8
) {
3030 fra
.me
.REG
[3] = BOX_NativeString(";\n");
3032 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3033 once_value_8
= fra
.me
.REG
[3];
3034 register_static_object(&once_value_8
);
3035 } else fra
.me
.REG
[3] = once_value_8
;
3036 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3037 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3038 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3039 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3040 /* native_interface/frontier.nit:377 */
3041 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3043 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3044 if (!once_value_9
) {
3045 fra
.me
.REG
[3] = BOX_NativeString("return ");
3047 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3048 once_value_9
= fra
.me
.REG
[3];
3049 register_static_object(&once_value_9
);
3050 } else fra
.me
.REG
[3] = once_value_9
;
3051 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3052 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3053 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3054 if (!once_value_10
) {
3055 fra
.me
.REG
[2] = BOX_NativeString(";\n");
3057 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3058 once_value_10
= fra
.me
.REG
[2];
3059 register_static_object(&once_value_10
);
3060 } else fra
.me
.REG
[2] = once_value_10
;
3061 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3062 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3063 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3064 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3065 /* native_interface/frontier.nit:379 */
3068 stack_frame_head
= fra
.me
.prev
;
3069 return fra
.me
.REG
[1];
3071 val_t
native_interface___frontier___MMImportedCast___compile_is(val_t p0
, val_t p1
){
3072 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3075 static val_t once_value_1
; /* Once value */
3076 static val_t once_value_2
; /* Once value */
3077 static val_t once_value_3
; /* Once value */
3078 static val_t once_value_4
; /* Once value */
3079 static val_t once_value_5
; /* Once value */
3080 static val_t once_value_6
; /* Once value */
3081 static val_t once_value_7
; /* Once value */
3082 static val_t once_value_8
; /* Once value */
3083 static val_t once_value_9
; /* Once value */
3084 static val_t once_value_10
; /* Once value */
3085 static val_t once_value_11
; /* Once value */
3086 static val_t once_value_12
; /* Once value */
3087 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3088 fra
.me
.file
= LOCATE_native_interface___frontier
;
3090 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___compile_is
;
3091 fra
.me
.has_broke
= 0;
3092 fra
.me
.REG_size
= 7;
3093 fra
.me
.nitni_local_ref_head
= NULL
;
3094 fra
.me
.REG
[0] = NIT_NULL
;
3095 fra
.me
.REG
[1] = NIT_NULL
;
3096 fra
.me
.REG
[2] = NIT_NULL
;
3097 fra
.me
.REG
[3] = NIT_NULL
;
3098 fra
.me
.REG
[4] = NIT_NULL
;
3099 fra
.me
.REG
[5] = NIT_NULL
;
3100 fra
.me
.REG
[6] = NIT_NULL
;
3103 /* native_interface/frontier.nit:386 */
3104 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]);
3105 fra
.me
.REG
[1] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[1]);
3106 /* native_interface/frontier.nit:388 */
3107 if (!once_value_1
) {
3108 fra
.me
.REG
[2] = BOX_NativeString("temp");
3110 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3111 once_value_1
= fra
.me
.REG
[2];
3112 register_static_object(&once_value_1
);
3113 } else fra
.me
.REG
[2] = once_value_1
;
3114 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3115 /* native_interface/frontier.nit:389 */
3116 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3118 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3119 if (!once_value_2
) {
3120 fra
.me
.REG
[5] = BOX_NativeString("val_t ");
3122 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3123 once_value_2
= fra
.me
.REG
[5];
3124 register_static_object(&once_value_2
);
3125 } else fra
.me
.REG
[5] = once_value_2
;
3126 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3127 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3128 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3129 if (!once_value_3
) {
3130 fra
.me
.REG
[5] = BOX_NativeString(";\n");
3132 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3133 once_value_3
= fra
.me
.REG
[5];
3134 register_static_object(&once_value_3
);
3135 } else fra
.me
.REG
[5] = once_value_3
;
3136 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3137 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3138 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3139 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3140 /* native_interface/frontier.nit:391 */
3141 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3143 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3144 if (!once_value_4
) {
3145 fra
.me
.REG
[5] = BOX_NativeString("");
3147 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3148 once_value_4
= fra
.me
.REG
[5];
3149 register_static_object(&once_value_4
);
3150 } else fra
.me
.REG
[5] = once_value_4
;
3151 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3152 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3153 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3154 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMImportedCast___in_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3155 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]);
3156 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3157 if (!once_value_5
) {
3158 fra
.me
.REG
[6] = BOX_NativeString(";\n");
3160 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3161 once_value_5
= fra
.me
.REG
[6];
3162 register_static_object(&once_value_5
);
3163 } else fra
.me
.REG
[6] = once_value_5
;
3164 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3165 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3166 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3167 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3168 /* native_interface/frontier.nit:393 */
3169 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_nullable_to_not_null(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3170 if (UNTAG_Bool(REGB0
)) {
3171 /* native_interface/frontier.nit:394 */
3172 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3173 if (UNTAG_Bool(REGB0
)) {
3174 /* native_interface/frontier.nit:395 */
3175 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3177 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3178 if (!once_value_6
) {
3179 fra
.me
.REG
[6] = BOX_NativeString("if ( ! ISNULL(");
3180 REGB0
= TAG_Int(14);
3181 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3182 once_value_6
= fra
.me
.REG
[6];
3183 register_static_object(&once_value_6
);
3184 } else fra
.me
.REG
[6] = once_value_6
;
3185 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3186 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
3187 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3188 if (!once_value_7
) {
3189 fra
.me
.REG
[6] = BOX_NativeString(") ) return 0;\n");
3190 REGB0
= TAG_Int(14);
3191 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3192 once_value_7
= fra
.me
.REG
[6];
3193 register_static_object(&once_value_7
);
3194 } else fra
.me
.REG
[6] = once_value_7
;
3195 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3196 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
3197 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3198 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3200 /* native_interface/frontier.nit:397 */
3201 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3203 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3204 if (!once_value_8
) {
3205 fra
.me
.REG
[6] = BOX_NativeString("if ( ISNULL(");
3206 REGB0
= TAG_Int(12);
3207 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3208 once_value_8
= fra
.me
.REG
[6];
3209 register_static_object(&once_value_8
);
3210 } else fra
.me
.REG
[6] = once_value_8
;
3211 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3212 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3213 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3214 if (!once_value_9
) {
3215 fra
.me
.REG
[6] = BOX_NativeString(") ) return 0;\n");
3216 REGB0
= TAG_Int(14);
3217 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3218 once_value_9
= fra
.me
.REG
[6];
3219 register_static_object(&once_value_9
);
3220 } else fra
.me
.REG
[6] = once_value_9
;
3221 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3222 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3223 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3224 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3227 /* native_interface/frontier.nit:401 */
3228 REGB0
= CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3229 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3230 if (UNTAG_Bool(REGB0
)) {
3231 /* native_interface/frontier.nit:402 */
3232 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3234 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3235 if (!once_value_10
) {
3236 fra
.me
.REG
[6] = BOX_NativeString("if ( ! ");
3238 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3239 once_value_10
= fra
.me
.REG
[6];
3240 register_static_object(&once_value_10
);
3241 } else fra
.me
.REG
[6] = once_value_10
;
3242 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3243 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
3244 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3245 fra
.me
.REG
[2] = CALL_native_interface___frontier___MMType___compile_condition_isa(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3247 if (!once_value_11
) {
3248 fra
.me
.REG
[2] = BOX_NativeString(" ) return 0;\n");
3249 REGB0
= TAG_Int(13);
3250 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3251 once_value_11
= fra
.me
.REG
[2];
3252 register_static_object(&once_value_11
);
3253 } else fra
.me
.REG
[2] = once_value_11
;
3254 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3255 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3256 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3257 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3259 /* native_interface/frontier.nit:405 */
3260 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3261 if (!once_value_12
) {
3262 fra
.me
.REG
[3] = BOX_NativeString("return 1;\n");
3263 REGB0
= TAG_Int(10);
3264 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3265 once_value_12
= fra
.me
.REG
[3];
3266 register_static_object(&once_value_12
);
3267 } else fra
.me
.REG
[3] = once_value_12
;
3268 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3269 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3270 /* native_interface/frontier.nit:407 */
3273 stack_frame_head
= fra
.me
.prev
;
3274 return fra
.me
.REG
[1];
3276 void native_interface___frontier___MMImportedCast___compile_check_is_not_null(val_t p0
, val_t p1
, val_t p2
){
3277 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3280 static val_t once_value_1
; /* Once value */
3281 static val_t once_value_2
; /* Once value */
3282 static val_t once_value_3
; /* Once value */
3283 static val_t once_value_4
; /* Once value */
3284 static val_t once_value_5
; /* Once value */
3285 static val_t once_value_6
; /* Once value */
3286 static val_t once_value_7
; /* Once value */
3287 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3288 fra
.me
.file
= LOCATE_native_interface___frontier
;
3290 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___compile_check_is_not_null
;
3291 fra
.me
.has_broke
= 0;
3292 fra
.me
.REG_size
= 6;
3293 fra
.me
.nitni_local_ref_head
= NULL
;
3294 fra
.me
.REG
[0] = NIT_NULL
;
3295 fra
.me
.REG
[1] = NIT_NULL
;
3296 fra
.me
.REG
[2] = NIT_NULL
;
3297 fra
.me
.REG
[3] = NIT_NULL
;
3298 fra
.me
.REG
[4] = NIT_NULL
;
3299 fra
.me
.REG
[5] = NIT_NULL
;
3303 /* native_interface/frontier.nit:414 */
3304 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3306 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3307 if (!once_value_1
) {
3308 fra
.me
.REG
[5] = BOX_NativeString("if ( ISNULL(");
3309 REGB0
= TAG_Int(12);
3310 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3311 once_value_1
= fra
.me
.REG
[5];
3312 register_static_object(&once_value_1
);
3313 } else fra
.me
.REG
[5] = once_value_1
;
3314 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3315 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3316 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3317 if (!once_value_2
) {
3318 fra
.me
.REG
[2] = BOX_NativeString(") ){");
3320 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3321 once_value_2
= fra
.me
.REG
[2];
3322 register_static_object(&once_value_2
);
3323 } else fra
.me
.REG
[2] = once_value_2
;
3324 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3325 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3326 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3327 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3328 /* native_interface/frontier.nit:415 */
3329 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3331 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3332 if (!once_value_3
) {
3333 fra
.me
.REG
[2] = BOX_NativeString("\tfprintf( stderr, \"Casting from ");
3334 REGB0
= TAG_Int(32);
3335 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3336 once_value_3
= fra
.me
.REG
[2];
3337 register_static_object(&once_value_3
);
3338 } else fra
.me
.REG
[2] = once_value_3
;
3339 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3340 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3341 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3342 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3343 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3344 if (!once_value_4
) {
3345 fra
.me
.REG
[2] = BOX_NativeString(" to ");
3347 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3348 once_value_4
= fra
.me
.REG
[2];
3349 register_static_object(&once_value_4
);
3350 } else fra
.me
.REG
[2] = once_value_4
;
3351 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3352 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3353 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3354 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3356 if (!once_value_5
) {
3357 fra
.me
.REG
[0] = BOX_NativeString(" failed because value is null.\" );\n");
3358 REGB0
= TAG_Int(35);
3359 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
3360 once_value_5
= fra
.me
.REG
[0];
3361 register_static_object(&once_value_5
);
3362 } else fra
.me
.REG
[0] = once_value_5
;
3363 fra
.me
.REG
[0] = fra
.me
.REG
[0];
3364 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3365 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3366 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3367 /* native_interface/frontier.nit:416 */
3368 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3369 if (!once_value_6
) {
3370 fra
.me
.REG
[4] = BOX_NativeString("\tabort();\n");
3371 REGB0
= TAG_Int(10);
3372 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3373 once_value_6
= fra
.me
.REG
[4];
3374 register_static_object(&once_value_6
);
3375 } else fra
.me
.REG
[4] = once_value_6
;
3376 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3377 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3378 /* native_interface/frontier.nit:417 */
3379 fra
.me
.REG
[1] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3380 if (!once_value_7
) {
3381 fra
.me
.REG
[4] = BOX_NativeString("}");
3383 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3384 once_value_7
= fra
.me
.REG
[4];
3385 register_static_object(&once_value_7
);
3386 } else fra
.me
.REG
[4] = once_value_7
;
3387 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3388 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3389 stack_frame_head
= fra
.me
.prev
;
3392 val_t
native_interface___frontier___MMImportedCast_____eqeq(val_t p0
, val_t p1
){
3393 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3397 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3398 fra
.me
.file
= LOCATE_native_interface___frontier
;
3400 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast_____eqeq
;
3401 fra
.me
.has_broke
= 0;
3402 fra
.me
.REG_size
= 4;
3403 fra
.me
.nitni_local_ref_head
= NULL
;
3404 fra
.me
.REG
[0] = NIT_NULL
;
3405 fra
.me
.REG
[1] = NIT_NULL
;
3406 fra
.me
.REG
[2] = NIT_NULL
;
3407 fra
.me
.REG
[3] = NIT_NULL
;
3410 /* native_interface/frontier.nit:422 */
3411 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*/;
3412 if (UNTAG_Bool(REGB0
)) {
3413 /* native_interface/frontier.nit:423 */
3414 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
3415 if (UNTAG_Bool(REGB0
)) {
3416 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 423);
3418 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3419 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3420 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
3421 if (UNTAG_Bool(REGB0
)) {
3423 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3427 /* native_interface/frontier.nit:422 */
3428 REGB1
= TAG_Bool(false);
3431 if (UNTAG_Bool(REGB0
)) {
3432 /* native_interface/frontier.nit:423 */
3433 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
3434 if (UNTAG_Bool(REGB0
)) {
3435 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 423);
3437 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3438 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3439 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[0]));
3440 if (UNTAG_Bool(REGB0
)) {
3442 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3446 /* native_interface/frontier.nit:422 */
3447 REGB1
= TAG_Bool(false);
3452 stack_frame_head
= fra
.me
.prev
;
3455 val_t
native_interface___frontier___MMImportedCast___hash(val_t p0
){
3456 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3460 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3461 fra
.me
.file
= LOCATE_native_interface___frontier
;
3463 fra
.me
.meth
= LOCATE_native_interface___frontier___MMImportedCast___hash
;
3464 fra
.me
.has_broke
= 0;
3465 fra
.me
.REG_size
= 2;
3466 fra
.me
.nitni_local_ref_head
= NULL
;
3467 fra
.me
.REG
[0] = NIT_NULL
;
3468 fra
.me
.REG
[1] = NIT_NULL
;
3470 /* native_interface/frontier.nit:427 */
3471 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMImportedCast___from(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3472 REGB0
= CALL_standard___hash___Object___hash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3473 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMImportedCast___to(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3474 REGB1
= CALL_standard___hash___Object___hash(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3475 /* ../lib/standard/kernel.nit:235 */
3476 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
3477 /* native_interface/frontier.nit:427 */
3480 stack_frame_head
= fra
.me
.prev
;
3483 void native_interface___frontier___MMType___compile_check_isa(val_t p0
, val_t p1
, val_t p2
){
3484 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3487 static val_t once_value_1
; /* Once value */
3488 static val_t once_value_2
; /* Once value */
3489 static val_t once_value_3
; /* Once value */
3490 static val_t once_value_4
; /* Once value */
3491 static val_t once_value_5
; /* Once value */
3492 static val_t once_value_6
; /* Once value */
3493 static val_t once_value_7
; /* Once value */
3494 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3495 fra
.me
.file
= LOCATE_native_interface___frontier
;
3497 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_check_isa
;
3498 fra
.me
.has_broke
= 0;
3499 fra
.me
.REG_size
= 6;
3500 fra
.me
.nitni_local_ref_head
= NULL
;
3501 fra
.me
.REG
[0] = NIT_NULL
;
3502 fra
.me
.REG
[1] = NIT_NULL
;
3503 fra
.me
.REG
[2] = NIT_NULL
;
3504 fra
.me
.REG
[3] = NIT_NULL
;
3505 fra
.me
.REG
[4] = NIT_NULL
;
3506 fra
.me
.REG
[5] = NIT_NULL
;
3510 /* native_interface/frontier.nit:438 */
3511 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3513 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3514 if (!once_value_1
) {
3515 fra
.me
.REG
[5] = BOX_NativeString("if ( ! ");
3517 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3518 once_value_1
= fra
.me
.REG
[5];
3519 register_static_object(&once_value_1
);
3520 } else fra
.me
.REG
[5] = once_value_1
;
3521 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3522 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3523 fra
.me
.REG
[2] = CALL_native_interface___frontier___MMType___compile_condition_isa(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3524 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3525 if (!once_value_2
) {
3526 fra
.me
.REG
[2] = BOX_NativeString(" ){\n");
3528 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3529 once_value_2
= fra
.me
.REG
[2];
3530 register_static_object(&once_value_2
);
3531 } else fra
.me
.REG
[2] = once_value_2
;
3532 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3534 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3535 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3536 /* native_interface/frontier.nit:439 */
3537 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3539 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3540 if (!once_value_3
) {
3541 fra
.me
.REG
[2] = BOX_NativeString("\tfprintf( stderr, \"Casting to ");
3542 REGB0
= TAG_Int(30);
3543 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3544 once_value_3
= fra
.me
.REG
[2];
3545 register_static_object(&once_value_3
);
3546 } else fra
.me
.REG
[2] = once_value_3
;
3547 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3548 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3549 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3550 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3551 if (!once_value_4
) {
3552 fra
.me
.REG
[2] = BOX_NativeString(" failed because value is not a ");
3553 REGB0
= TAG_Int(31);
3554 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3555 once_value_4
= fra
.me
.REG
[2];
3556 register_static_object(&once_value_4
);
3557 } else fra
.me
.REG
[2] = once_value_4
;
3558 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3559 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3560 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3561 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3562 if (!once_value_5
) {
3563 fra
.me
.REG
[0] = BOX_NativeString(".\" );\n");
3565 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
3566 once_value_5
= fra
.me
.REG
[0];
3567 register_static_object(&once_value_5
);
3568 } else fra
.me
.REG
[0] = once_value_5
;
3569 fra
.me
.REG
[0] = fra
.me
.REG
[0];
3570 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3571 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3572 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3573 /* native_interface/frontier.nit:440 */
3574 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3575 if (!once_value_6
) {
3576 fra
.me
.REG
[4] = BOX_NativeString("\tabort();\n");
3577 REGB0
= TAG_Int(10);
3578 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3579 once_value_6
= fra
.me
.REG
[4];
3580 register_static_object(&once_value_6
);
3581 } else fra
.me
.REG
[4] = once_value_6
;
3582 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3583 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3584 /* native_interface/frontier.nit:441 */
3585 fra
.me
.REG
[1] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3586 if (!once_value_7
) {
3587 fra
.me
.REG
[4] = BOX_NativeString("}\n");
3589 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3590 once_value_7
= fra
.me
.REG
[4];
3591 register_static_object(&once_value_7
);
3592 } else fra
.me
.REG
[4] = once_value_7
;
3593 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3594 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3595 stack_frame_head
= fra
.me
.prev
;
3598 val_t
native_interface___frontier___MMType___compile_condition_isa(val_t p0
, val_t p1
){
3599 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3602 static val_t once_value_1
; /* Once value */
3603 static val_t once_value_2
; /* Once value */
3604 static val_t once_value_3
; /* Once value */
3605 static val_t once_value_4
; /* Once value */
3606 static val_t once_value_5
; /* Once value */
3607 static val_t once_value_6
; /* Once value */
3608 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3609 fra
.me
.file
= LOCATE_native_interface___frontier
;
3611 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_condition_isa
;
3612 fra
.me
.has_broke
= 0;
3613 fra
.me
.REG_size
= 4;
3614 fra
.me
.nitni_local_ref_head
= NULL
;
3615 fra
.me
.REG
[0] = NIT_NULL
;
3616 fra
.me
.REG
[1] = NIT_NULL
;
3617 fra
.me
.REG
[2] = NIT_NULL
;
3618 fra
.me
.REG
[3] = NIT_NULL
;
3621 /* native_interface/frontier.nit:448 */
3622 REGB0
= TAG_Int(11);
3623 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3624 if (!once_value_1
) {
3625 fra
.me
.REG
[3] = BOX_NativeString("( ISOBJ( ");
3627 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3628 once_value_1
= fra
.me
.REG
[3];
3629 register_static_object(&once_value_1
);
3630 } else fra
.me
.REG
[3] = once_value_1
;
3631 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3632 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3633 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3634 if (!once_value_2
) {
3635 fra
.me
.REG
[3] = BOX_NativeString(" ) ? OBJISA( ");
3636 REGB0
= TAG_Int(13);
3637 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3638 once_value_2
= fra
.me
.REG
[3];
3639 register_static_object(&once_value_2
);
3640 } else fra
.me
.REG
[3] = once_value_2
;
3641 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3642 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3643 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3644 if (!once_value_3
) {
3645 fra
.me
.REG
[3] = BOX_NativeString(", ");
3647 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3648 once_value_3
= fra
.me
.REG
[3];
3649 register_static_object(&once_value_3
);
3650 } else fra
.me
.REG
[3] = once_value_3
;
3651 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3652 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3653 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3654 fra
.me
.REG
[3] = CALL_compiling___compiling_base___MMLocalClass___cname(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3655 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3656 if (!once_value_4
) {
3657 fra
.me
.REG
[3] = BOX_NativeString(" ): VALISA( ");
3658 REGB0
= TAG_Int(12);
3659 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3660 once_value_4
= fra
.me
.REG
[3];
3661 register_static_object(&once_value_4
);
3662 } else fra
.me
.REG
[3] = once_value_4
;
3663 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3664 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3665 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3666 if (!once_value_5
) {
3667 fra
.me
.REG
[1] = BOX_NativeString(", ");
3669 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
3670 once_value_5
= fra
.me
.REG
[1];
3671 register_static_object(&once_value_5
);
3672 } else fra
.me
.REG
[1] = once_value_5
;
3673 fra
.me
.REG
[1] = fra
.me
.REG
[1];
3674 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3675 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3676 fra
.me
.REG
[0] = CALL_compiling___compiling_base___MMLocalClass___cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3677 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3678 if (!once_value_6
) {
3679 fra
.me
.REG
[0] = BOX_NativeString(" ) )");
3681 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
3682 once_value_6
= fra
.me
.REG
[0];
3683 register_static_object(&once_value_6
);
3684 } else fra
.me
.REG
[0] = once_value_6
;
3685 fra
.me
.REG
[0] = fra
.me
.REG
[0];
3686 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3687 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3690 stack_frame_head
= fra
.me
.prev
;
3691 return fra
.me
.REG
[2];
3693 void native_interface___frontier___MMType___compile_to_frontier(val_t p0
, val_t p1
){
3694 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3698 static val_t once_value_1
; /* Once value */
3699 static val_t once_value_2
; /* Once value */
3700 static val_t once_value_3
; /* Once value */
3701 static val_t once_value_4
; /* Once value */
3702 static val_t once_value_5
; /* Once value */
3703 static val_t once_value_6
; /* Once value */
3704 static val_t once_value_7
; /* Once value */
3705 static val_t once_value_8
; /* Once value */
3706 static val_t once_value_9
; /* Once value */
3707 static val_t once_value_10
; /* Once value */
3708 static val_t once_value_11
; /* Once value */
3709 static val_t once_value_12
; /* Once value */
3710 static val_t once_value_13
; /* Once value */
3711 static val_t once_value_14
; /* Once value */
3712 static val_t once_value_15
; /* Once value */
3713 static val_t once_value_16
; /* Once value */
3714 static val_t once_value_17
; /* Once value */
3715 static val_t once_value_18
; /* Once value */
3716 static val_t once_value_19
; /* Once value */
3717 static val_t once_value_20
; /* Once value */
3718 static val_t once_value_21
; /* Once value */
3719 static val_t once_value_22
; /* Once value */
3720 static val_t once_value_23
; /* Once value */
3721 static val_t once_value_24
; /* Once value */
3722 static val_t once_value_25
; /* Once value */
3723 static val_t once_value_26
; /* Once value */
3724 static val_t once_value_27
; /* Once value */
3725 static val_t once_value_28
; /* Once value */
3726 static val_t once_value_29
; /* Once value */
3727 static val_t once_value_30
; /* Once value */
3728 static val_t once_value_31
; /* Once value */
3729 static val_t once_value_32
; /* Once value */
3730 static val_t once_value_33
; /* Once value */
3731 static val_t once_value_34
; /* Once value */
3732 static val_t once_value_35
; /* Once value */
3733 static val_t once_value_36
; /* 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___MMType___compile_to_frontier
;
3738 fra
.me
.has_broke
= 0;
3739 fra
.me
.REG_size
= 7;
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
;
3750 /* native_interface/frontier.nit:455 */
3751 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3752 fra
.me
.REG
[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3753 /* native_interface/frontier.nit:456 */
3754 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3755 if (UNTAG_Bool(REGB0
)) {
3757 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3758 if (UNTAG_Bool(REGB1
)) {
3759 REGB1
= TAG_Bool(false);
3762 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3766 if (UNTAG_Bool(REGB0
)) {
3767 REGB0
= TAG_Bool(true);
3769 REGB1
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3772 if (UNTAG_Bool(REGB0
)) {
3773 /* native_interface/frontier.nit:457 */
3774 fra
.me
.REG
[2] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3775 /* native_interface/frontier.nit:458 */
3777 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3778 if (!once_value_1
) {
3779 fra
.me
.REG
[4] = BOX_NativeString("");
3781 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3782 once_value_1
= fra
.me
.REG
[4];
3783 register_static_object(&once_value_1
);
3784 } else fra
.me
.REG
[4] = once_value_1
;
3785 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3786 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3787 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3788 fra
.me
.REG
[4] = CALL_standard___string___AbstractString___to_upper(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3789 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3790 if (!once_value_2
) {
3791 fra
.me
.REG
[4] = BOX_NativeString("_TYPE");
3793 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3794 once_value_2
= fra
.me
.REG
[4];
3795 register_static_object(&once_value_2
);
3796 } else fra
.me
.REG
[4] = once_value_2
;
3797 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3798 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3799 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3800 /* native_interface/frontier.nit:461 */
3801 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3803 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3804 if (!once_value_3
) {
3805 fra
.me
.REG
[6] = BOX_NativeString("#ifndef ");
3807 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3808 once_value_3
= fra
.me
.REG
[6];
3809 register_static_object(&once_value_3
);
3810 } else fra
.me
.REG
[6] = once_value_3
;
3811 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3812 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3813 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3814 if (!once_value_4
) {
3815 fra
.me
.REG
[6] = BOX_NativeString("\n");
3817 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3818 once_value_4
= fra
.me
.REG
[6];
3819 register_static_object(&once_value_4
);
3820 } else fra
.me
.REG
[6] = once_value_4
;
3821 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3822 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3823 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3824 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3825 /* native_interface/frontier.nit:462 */
3826 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3828 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3829 if (!once_value_5
) {
3830 fra
.me
.REG
[6] = BOX_NativeString("#define ");
3832 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3833 once_value_5
= fra
.me
.REG
[6];
3834 register_static_object(&once_value_5
);
3835 } else fra
.me
.REG
[6] = once_value_5
;
3836 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3837 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
3838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3839 if (!once_value_6
) {
3840 fra
.me
.REG
[3] = BOX_NativeString("\n");
3842 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3843 once_value_6
= fra
.me
.REG
[3];
3844 register_static_object(&once_value_6
);
3845 } else fra
.me
.REG
[3] = once_value_6
;
3846 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3848 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3849 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3850 /* native_interface/frontier.nit:463 */
3851 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3853 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3854 if (!once_value_7
) {
3855 fra
.me
.REG
[3] = BOX_NativeString("struct s_");
3857 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3858 once_value_7
= fra
.me
.REG
[3];
3859 register_static_object(&once_value_7
);
3860 } else fra
.me
.REG
[3] = once_value_7
;
3861 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3863 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
3864 if (!once_value_8
) {
3865 fra
.me
.REG
[3] = BOX_NativeString("{\n");
3867 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3868 once_value_8
= fra
.me
.REG
[3];
3869 register_static_object(&once_value_8
);
3870 } else fra
.me
.REG
[3] = once_value_8
;
3871 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3872 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3873 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3874 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3875 /* native_interface/frontier.nit:464 */
3876 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3877 if (!once_value_9
) {
3878 fra
.me
.REG
[4] = BOX_NativeString("\t\tstruct nitni_ref ref; /* real ref struct, must be first */\n");
3879 REGB0
= TAG_Int(61);
3880 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3881 once_value_9
= fra
.me
.REG
[4];
3882 register_static_object(&once_value_9
);
3883 } else fra
.me
.REG
[4] = once_value_9
;
3884 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3885 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3886 /* native_interface/frontier.nit:465 */
3887 fra
.me
.REG
[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3888 if (!once_value_10
) {
3889 fra
.me
.REG
[5] = BOX_NativeString("};\n");
3891 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3892 once_value_10
= fra
.me
.REG
[5];
3893 register_static_object(&once_value_10
);
3894 } else fra
.me
.REG
[5] = once_value_10
;
3895 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3896 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3897 /* native_interface/frontier.nit:466 */
3898 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3900 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3901 if (!once_value_11
) {
3902 fra
.me
.REG
[3] = BOX_NativeString("typedef struct s_");
3903 REGB0
= TAG_Int(17);
3904 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3905 once_value_11
= fra
.me
.REG
[3];
3906 register_static_object(&once_value_11
);
3907 } else fra
.me
.REG
[3] = once_value_11
;
3908 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3909 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3910 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3911 if (!once_value_12
) {
3912 fra
.me
.REG
[3] = BOX_NativeString(" *");
3914 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3915 once_value_12
= fra
.me
.REG
[3];
3916 register_static_object(&once_value_12
);
3917 } else fra
.me
.REG
[3] = once_value_12
;
3918 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3919 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3920 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3921 if (!once_value_13
) {
3922 fra
.me
.REG
[3] = BOX_NativeString(";\n");
3924 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3925 once_value_13
= fra
.me
.REG
[3];
3926 register_static_object(&once_value_13
);
3927 } else fra
.me
.REG
[3] = once_value_13
;
3928 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3929 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3930 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3931 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3932 /* native_interface/frontier.nit:469 */
3933 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3934 if (UNTAG_Bool(REGB0
)) {
3935 /* native_interface/frontier.nit:470 */
3936 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3937 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]);
3938 /* native_interface/frontier.nit:472 */
3939 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3941 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3942 if (!once_value_14
) {
3943 fra
.me
.REG
[6] = BOX_NativeString("#ifndef ");
3945 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3946 once_value_14
= fra
.me
.REG
[6];
3947 register_static_object(&once_value_14
);
3948 } else fra
.me
.REG
[6] = once_value_14
;
3949 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3950 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3951 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMType___friendly_null_getter(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3952 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3953 if (!once_value_15
) {
3954 fra
.me
.REG
[6] = BOX_NativeString("\n");
3956 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3957 once_value_15
= fra
.me
.REG
[6];
3958 register_static_object(&once_value_15
);
3959 } else fra
.me
.REG
[6] = once_value_15
;
3960 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3961 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3962 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3963 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3964 /* native_interface/frontier.nit:473 */
3965 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3967 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3968 if (!once_value_16
) {
3969 fra
.me
.REG
[6] = BOX_NativeString("#define ");
3971 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3972 once_value_16
= fra
.me
.REG
[6];
3973 register_static_object(&once_value_16
);
3974 } else fra
.me
.REG
[6] = once_value_16
;
3975 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3976 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3977 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMType___friendly_null_getter(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3978 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3979 if (!once_value_17
) {
3980 fra
.me
.REG
[6] = BOX_NativeString(" ");
3982 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3983 once_value_17
= fra
.me
.REG
[6];
3984 register_static_object(&once_value_17
);
3985 } else fra
.me
.REG
[6] = once_value_17
;
3986 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3987 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3988 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3989 if (!once_value_18
) {
3990 fra
.me
.REG
[6] = BOX_NativeString("\n");
3992 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3993 once_value_18
= fra
.me
.REG
[6];
3994 register_static_object(&once_value_18
);
3995 } else fra
.me
.REG
[6] = once_value_18
;
3996 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3997 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3998 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3999 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
4000 /* native_interface/frontier.nit:474 */
4001 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4002 if (!once_value_19
) {
4003 fra
.me
.REG
[3] = BOX_NativeString("#endif\n");
4005 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4006 once_value_19
= fra
.me
.REG
[3];
4007 register_static_object(&once_value_19
);
4008 } else fra
.me
.REG
[3] = once_value_19
;
4009 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4010 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4011 /* native_interface/frontier.nit:476 */
4012 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4014 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4015 if (!once_value_20
) {
4016 fra
.me
.REG
[6] = BOX_NativeString("");
4018 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4019 once_value_20
= fra
.me
.REG
[6];
4020 register_static_object(&once_value_20
);
4021 } else fra
.me
.REG
[6] = once_value_20
;
4022 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4023 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4024 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4025 if (!once_value_21
) {
4026 fra
.me
.REG
[6] = BOX_NativeString(" ");
4028 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4029 once_value_21
= fra
.me
.REG
[6];
4030 register_static_object(&once_value_21
);
4031 } else fra
.me
.REG
[6] = once_value_21
;
4032 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4033 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4034 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4035 if (!once_value_22
) {
4036 fra
.me
.REG
[6] = BOX_NativeString("();\n");
4038 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4039 once_value_22
= fra
.me
.REG
[6];
4040 register_static_object(&once_value_22
);
4041 } else fra
.me
.REG
[6] = once_value_22
;
4042 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4043 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4044 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4045 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
4046 /* native_interface/frontier.nit:478 */
4048 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4049 if (!once_value_23
) {
4050 fra
.me
.REG
[3] = BOX_NativeString("");
4052 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4053 once_value_23
= fra
.me
.REG
[3];
4054 register_static_object(&once_value_23
);
4055 } else fra
.me
.REG
[3] = once_value_23
;
4056 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4057 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4058 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4059 if (!once_value_24
) {
4060 fra
.me
.REG
[2] = BOX_NativeString(" ");
4062 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4063 once_value_24
= fra
.me
.REG
[2];
4064 register_static_object(&once_value_24
);
4065 } else fra
.me
.REG
[2] = once_value_24
;
4066 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4067 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4068 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4069 if (!once_value_25
) {
4070 fra
.me
.REG
[4] = BOX_NativeString("()");
4072 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4073 once_value_25
= fra
.me
.REG
[4];
4074 register_static_object(&once_value_25
);
4075 } else fra
.me
.REG
[4] = once_value_25
;
4076 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4077 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4078 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4079 fra
.me
.REG
[5] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[5]);
4080 /* native_interface/frontier.nit:479 */
4081 if (!once_value_26
) {
4082 fra
.me
.REG
[4] = BOX_NativeString("n");
4084 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4085 once_value_26
= fra
.me
.REG
[4];
4086 register_static_object(&once_value_26
);
4087 } else fra
.me
.REG
[4] = once_value_26
;
4088 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4089 REGB0
= TAG_Bool(true);
4090 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
);
4091 /* native_interface/frontier.nit:480 */
4092 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4093 if (!once_value_27
) {
4094 fra
.me
.REG
[2] = BOX_NativeString("return n;\n");
4095 REGB0
= TAG_Int(10);
4096 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4097 once_value_27
= fra
.me
.REG
[2];
4098 register_static_object(&once_value_27
);
4099 } else fra
.me
.REG
[2] = once_value_27
;
4100 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4101 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4102 /* native_interface/frontier.nit:481 */
4103 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4104 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4105 CALL_compiling___compiling_writer___Writer___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
4107 /* native_interface/frontier.nit:485 */
4109 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4110 if (!once_value_28
) {
4111 fra
.me
.REG
[2] = BOX_NativeString("");
4113 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4114 once_value_28
= fra
.me
.REG
[2];
4115 register_static_object(&once_value_28
);
4116 } else fra
.me
.REG
[2] = once_value_28
;
4117 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4118 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4119 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4120 fra
.me
.REG
[2] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4121 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4122 if (!once_value_29
) {
4123 fra
.me
.REG
[2] = BOX_NativeString("_incr_ref");
4125 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4126 once_value_29
= fra
.me
.REG
[2];
4127 register_static_object(&once_value_29
);
4128 } else fra
.me
.REG
[2] = once_value_29
;
4129 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4130 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
4131 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4132 /* native_interface/frontier.nit:486 */
4133 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4135 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4136 if (!once_value_30
) {
4137 fra
.me
.REG
[3] = BOX_NativeString("#define ");
4139 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4140 once_value_30
= fra
.me
.REG
[3];
4141 register_static_object(&once_value_30
);
4142 } else fra
.me
.REG
[3] = once_value_30
;
4143 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4144 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4145 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4146 if (!once_value_31
) {
4147 fra
.me
.REG
[5] = BOX_NativeString("( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )\n");
4148 REGB0
= TAG_Int(54);
4149 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4150 once_value_31
= fra
.me
.REG
[5];
4151 register_static_object(&once_value_31
);
4152 } else fra
.me
.REG
[5] = once_value_31
;
4153 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4154 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4155 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4156 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4157 /* native_interface/frontier.nit:489 */
4159 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4160 if (!once_value_32
) {
4161 fra
.me
.REG
[2] = BOX_NativeString("");
4163 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4164 once_value_32
= fra
.me
.REG
[2];
4165 register_static_object(&once_value_32
);
4166 } else fra
.me
.REG
[2] = once_value_32
;
4167 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4168 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4169 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4170 fra
.me
.REG
[0] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4171 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
4172 if (!once_value_33
) {
4173 fra
.me
.REG
[0] = BOX_NativeString("_decr_ref");
4175 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4176 once_value_33
= fra
.me
.REG
[0];
4177 register_static_object(&once_value_33
);
4178 } else fra
.me
.REG
[0] = once_value_33
;
4179 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4180 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
4181 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4182 /* native_interface/frontier.nit:490 */
4183 fra
.me
.REG
[0] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4185 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4186 if (!once_value_34
) {
4187 fra
.me
.REG
[5] = BOX_NativeString("#define ");
4189 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4190 once_value_34
= fra
.me
.REG
[5];
4191 register_static_object(&once_value_34
);
4192 } else fra
.me
.REG
[5] = once_value_34
;
4193 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4194 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
4195 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4196 if (!once_value_35
) {
4197 fra
.me
.REG
[4] = BOX_NativeString("( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )\n");
4198 REGB0
= TAG_Int(54);
4199 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4200 once_value_35
= fra
.me
.REG
[4];
4201 register_static_object(&once_value_35
);
4202 } else fra
.me
.REG
[4] = once_value_35
;
4203 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4204 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4205 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4206 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
4207 /* native_interface/frontier.nit:492 */
4208 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4209 if (!once_value_36
) {
4210 fra
.me
.REG
[2] = BOX_NativeString("#endif\n");
4212 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4213 once_value_36
= fra
.me
.REG
[2];
4214 register_static_object(&once_value_36
);
4215 } else fra
.me
.REG
[2] = once_value_36
;
4216 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4217 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4219 stack_frame_head
= fra
.me
.prev
;
4222 void native_interface___frontier___MMType___compile_new_local_ref(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
4223 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4227 static val_t once_value_1
; /* Once value */
4228 static val_t once_value_2
; /* Once value */
4229 static val_t once_value_3
; /* Once value */
4230 static val_t once_value_4
; /* Once value */
4231 static val_t once_value_5
; /* Once value */
4232 static val_t once_value_6
; /* Once value */
4233 static val_t once_value_7
; /* Once value */
4234 static val_t once_value_8
; /* Once value */
4235 static val_t once_value_9
; /* Once value */
4236 static val_t once_value_10
; /* Once value */
4237 static val_t once_value_11
; /* Once value */
4238 static val_t once_value_12
; /* Once value */
4239 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4240 fra
.me
.file
= LOCATE_native_interface___frontier
;
4242 fra
.me
.meth
= LOCATE_native_interface___frontier___MMType___compile_new_local_ref
;
4243 fra
.me
.has_broke
= 0;
4244 fra
.me
.REG_size
= 7;
4245 fra
.me
.nitni_local_ref_head
= NULL
;
4246 fra
.me
.REG
[0] = NIT_NULL
;
4247 fra
.me
.REG
[1] = NIT_NULL
;
4248 fra
.me
.REG
[2] = NIT_NULL
;
4249 fra
.me
.REG
[3] = NIT_NULL
;
4250 fra
.me
.REG
[4] = NIT_NULL
;
4251 fra
.me
.REG
[5] = NIT_NULL
;
4252 fra
.me
.REG
[6] = NIT_NULL
;
4257 /* native_interface/frontier.nit:498 */
4258 fra
.me
.REG
[3] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4259 /* native_interface/frontier.nit:500 */
4260 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4262 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
4263 if (!once_value_1
) {
4264 fra
.me
.REG
[6] = BOX_NativeString("");
4266 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
4267 once_value_1
= fra
.me
.REG
[6];
4268 register_static_object(&once_value_1
);
4269 } else fra
.me
.REG
[6] = once_value_1
;
4270 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4271 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4272 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4273 if (!once_value_2
) {
4274 fra
.me
.REG
[6] = BOX_NativeString(" ");
4276 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
4277 once_value_2
= fra
.me
.REG
[6];
4278 register_static_object(&once_value_2
);
4279 } else fra
.me
.REG
[6] = once_value_2
;
4280 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4281 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4282 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
4283 if (!once_value_3
) {
4284 fra
.me
.REG
[6] = BOX_NativeString(";\n");
4286 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
4287 once_value_3
= fra
.me
.REG
[6];
4288 register_static_object(&once_value_3
);
4289 } else fra
.me
.REG
[6] = once_value_3
;
4290 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4291 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4292 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4293 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4294 /* native_interface/frontier.nit:501 */
4295 REGB1
= CALL_native_interface___ni_metamodel___MMType___uses_nitni_ref(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4296 if (UNTAG_Bool(REGB1
)) {
4297 /* native_interface/frontier.nit:502 */
4298 fra
.me
.REG
[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4300 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
4301 if (!once_value_4
) {
4302 fra
.me
.REG
[4] = BOX_NativeString("");
4304 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
4305 once_value_4
= fra
.me
.REG
[4];
4306 register_static_object(&once_value_4
);
4307 } else fra
.me
.REG
[4] = once_value_4
;
4308 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4309 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4310 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
4311 if (!once_value_5
) {
4312 fra
.me
.REG
[4] = BOX_NativeString(" = malloc( sizeof( struct s_");
4313 REGB1
= TAG_Int(28);
4314 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
4315 once_value_5
= fra
.me
.REG
[4];
4316 register_static_object(&once_value_5
);
4317 } else fra
.me
.REG
[4] = once_value_5
;
4318 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4319 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4320 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4321 if (!once_value_6
) {
4322 fra
.me
.REG
[3] = BOX_NativeString(" ) );\n");
4324 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
4325 once_value_6
= fra
.me
.REG
[3];
4326 register_static_object(&once_value_6
);
4327 } else fra
.me
.REG
[3] = once_value_6
;
4328 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4329 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4330 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4331 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
4332 /* native_interface/frontier.nit:503 */
4333 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4335 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
4336 if (!once_value_7
) {
4337 fra
.me
.REG
[3] = BOX_NativeString("");
4339 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
4340 once_value_7
= fra
.me
.REG
[3];
4341 register_static_object(&once_value_7
);
4342 } else fra
.me
.REG
[3] = once_value_7
;
4343 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4344 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
4345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
4346 if (!once_value_8
) {
4347 fra
.me
.REG
[3] = BOX_NativeString("->ref.val = NIT_NULL;\n");
4348 REGB1
= TAG_Int(22);
4349 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
4350 once_value_8
= fra
.me
.REG
[3];
4351 register_static_object(&once_value_8
);
4352 } else fra
.me
.REG
[3] = once_value_8
;
4353 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
4355 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4356 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4357 /* native_interface/frontier.nit:504 */
4358 fra
.me
.REG
[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4360 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
4361 if (!once_value_9
) {
4362 fra
.me
.REG
[3] = BOX_NativeString("");
4364 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
4365 once_value_9
= fra
.me
.REG
[3];
4366 register_static_object(&once_value_9
);
4367 } else fra
.me
.REG
[3] = once_value_9
;
4368 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4369 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4370 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
4371 if (!once_value_10
) {
4372 fra
.me
.REG
[3] = BOX_NativeString("->ref.count = 0;\n");
4373 REGB1
= TAG_Int(17);
4374 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
4375 once_value_10
= fra
.me
.REG
[3];
4376 register_static_object(&once_value_10
);
4377 } else fra
.me
.REG
[3] = once_value_10
;
4378 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4379 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4380 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4381 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
4382 /* native_interface/frontier.nit:505 */
4383 if (UNTAG_Bool(REGB0
)) {
4384 /* native_interface/frontier.nit:506 */
4385 fra
.me
.REG
[2] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4387 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4388 if (!once_value_11
) {
4389 fra
.me
.REG
[0] = BOX_NativeString("nitni_local_ref_add( (struct nitni_ref *)");
4390 REGB0
= TAG_Int(41);
4391 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4392 once_value_11
= fra
.me
.REG
[0];
4393 register_static_object(&once_value_11
);
4394 } else fra
.me
.REG
[0] = once_value_11
;
4395 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4396 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4397 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
4398 if (!once_value_12
) {
4399 fra
.me
.REG
[1] = BOX_NativeString(" );\n");
4401 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
4402 once_value_12
= fra
.me
.REG
[1];
4403 register_static_object(&once_value_12
);
4404 } else fra
.me
.REG
[1] = once_value_12
;
4405 fra
.me
.REG
[1] = fra
.me
.REG
[1];
4406 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
4407 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4408 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
4411 stack_frame_head
= fra
.me
.prev
;
4414 void native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier(val_t p0
, val_t p1
){
4415 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
4420 static val_t once_value_1
; /* Once value */
4421 static val_t once_value_2
; /* Once value */
4422 static val_t once_value_3
; /* Once value */
4423 static val_t once_value_4
; /* Once value */
4424 static val_t once_value_5
; /* Once value */
4425 static val_t once_value_6
; /* Once value */
4426 static val_t once_value_7
; /* Once value */
4427 static val_t once_value_8
; /* Once value */
4428 static val_t once_value_9
; /* Once value */
4429 static val_t once_value_10
; /* Once value */
4430 static val_t once_value_11
; /* Once value */
4431 static val_t once_value_12
; /* Once value */
4432 static val_t once_value_13
; /* Once value */
4433 static val_t once_value_14
; /* Once value */
4434 static val_t once_value_15
; /* Once value */
4435 static val_t once_value_16
; /* Once value */
4436 static val_t once_value_17
; /* Once value */
4437 static val_t once_value_18
; /* Once value */
4438 static val_t once_value_19
; /* Once value */
4439 static val_t once_value_20
; /* Once value */
4440 static val_t once_value_21
; /* Once value */
4441 static val_t once_value_22
; /* Once value */
4442 static val_t once_value_23
; /* Once value */
4443 static val_t once_value_24
; /* Once value */
4444 static val_t once_value_26
; /* Once value */
4445 static val_t once_value_27
; /* Once value */
4446 static val_t once_value_28
; /* Once value */
4447 static val_t once_value_29
; /* Once value */
4448 static val_t once_value_30
; /* Once value */
4449 static val_t once_value_31
; /* Once value */
4450 static val_t once_value_32
; /* Once value */
4451 static val_t once_value_33
; /* Once value */
4452 static val_t once_value_34
; /* Once value */
4453 static val_t once_value_35
; /* Once value */
4454 static val_t once_value_36
; /* Once value */
4455 static val_t once_value_37
; /* Once value */
4456 static val_t once_value_38
; /* Once value */
4457 static val_t once_value_39
; /* Once value */
4458 static val_t once_value_40
; /* Once value */
4459 static val_t once_value_41
; /* Once value */
4460 static val_t once_value_42
; /* Once value */
4461 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4462 fra
.me
.file
= LOCATE_native_interface___frontier
;
4464 fra
.me
.meth
= LOCATE_native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier
;
4465 fra
.me
.has_broke
= 0;
4466 fra
.me
.REG_size
= 11;
4467 fra
.me
.nitni_local_ref_head
= NULL
;
4468 fra
.me
.REG
[0] = NIT_NULL
;
4469 fra
.me
.REG
[1] = NIT_NULL
;
4470 fra
.me
.REG
[2] = NIT_NULL
;
4471 fra
.me
.REG
[3] = NIT_NULL
;
4472 fra
.me
.REG
[4] = NIT_NULL
;
4473 fra
.me
.REG
[5] = NIT_NULL
;
4474 fra
.me
.REG
[6] = NIT_NULL
;
4475 fra
.me
.REG
[7] = NIT_NULL
;
4476 fra
.me
.REG
[8] = NIT_NULL
;
4477 fra
.me
.REG
[9] = NIT_NULL
;
4478 fra
.me
.REG
[10] = NIT_NULL
;
4481 /* native_interface/frontier.nit:516 */
4482 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4484 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4485 if (!once_value_1
) {
4486 fra
.me
.REG
[4] = BOX_NativeString("/* friendly for ");
4487 REGB0
= TAG_Int(16);
4488 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4489 once_value_1
= fra
.me
.REG
[4];
4490 register_static_object(&once_value_1
);
4491 } else fra
.me
.REG
[4] = once_value_1
;
4492 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4493 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4494 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4495 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4496 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4497 if (!once_value_2
) {
4498 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
4500 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4501 once_value_2
= fra
.me
.REG
[4];
4502 register_static_object(&once_value_2
);
4503 } else fra
.me
.REG
[4] = once_value_2
;
4504 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4505 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4506 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4507 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4508 /* native_interface/frontier.nit:517 */
4509 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4511 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4512 if (!once_value_3
) {
4513 fra
.me
.REG
[4] = BOX_NativeString("");
4515 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4516 once_value_3
= fra
.me
.REG
[4];
4517 register_static_object(&once_value_3
);
4518 } else fra
.me
.REG
[4] = once_value_3
;
4519 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4520 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4521 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4522 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4523 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4524 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]);
4525 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
4526 if (!once_value_4
) {
4527 fra
.me
.REG
[6] = BOX_NativeString(";\n");
4529 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4530 once_value_4
= fra
.me
.REG
[6];
4531 register_static_object(&once_value_4
);
4532 } else fra
.me
.REG
[6] = once_value_4
;
4533 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4534 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
4535 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4536 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4537 /* native_interface/frontier.nit:521 */
4538 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4540 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4541 if (!once_value_5
) {
4542 fra
.me
.REG
[6] = BOX_NativeString("#ifndef ");
4544 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4545 once_value_5
= fra
.me
.REG
[6];
4546 register_static_object(&once_value_5
);
4547 } else fra
.me
.REG
[6] = once_value_5
;
4548 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4550 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4551 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4552 fra
.me
.REG
[5] = CALL_primitive_info___MMMethod___friendly_extern_name(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
4553 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
4554 if (!once_value_6
) {
4555 fra
.me
.REG
[5] = BOX_NativeString("\n");
4557 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4558 once_value_6
= fra
.me
.REG
[5];
4559 register_static_object(&once_value_6
);
4560 } else fra
.me
.REG
[5] = once_value_6
;
4561 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4562 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
4563 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4564 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4565 /* native_interface/frontier.nit:522 */
4566 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4568 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4569 if (!once_value_7
) {
4570 fra
.me
.REG
[5] = BOX_NativeString("#define ");
4572 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4573 once_value_7
= fra
.me
.REG
[5];
4574 register_static_object(&once_value_7
);
4575 } else fra
.me
.REG
[5] = once_value_7
;
4576 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4577 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
4578 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4579 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4580 fra
.me
.REG
[6] = CALL_primitive_info___MMMethod___friendly_extern_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4581 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
4582 if (!once_value_8
) {
4583 fra
.me
.REG
[6] = BOX_NativeString(" ");
4585 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4586 once_value_8
= fra
.me
.REG
[6];
4587 register_static_object(&once_value_8
);
4588 } else fra
.me
.REG
[6] = once_value_8
;
4589 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4590 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
4591 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4592 fra
.me
.REG
[5] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4593 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4594 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]);
4595 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4596 if (!once_value_9
) {
4597 fra
.me
.REG
[4] = BOX_NativeString("\n");
4599 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4600 once_value_9
= fra
.me
.REG
[4];
4601 register_static_object(&once_value_9
);
4602 } else fra
.me
.REG
[4] = once_value_9
;
4603 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4604 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4605 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4606 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4607 /* native_interface/frontier.nit:523 */
4608 fra
.me
.REG
[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4609 if (!once_value_10
) {
4610 fra
.me
.REG
[3] = BOX_NativeString("#endif\n");
4612 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
4613 once_value_10
= fra
.me
.REG
[3];
4614 register_static_object(&once_value_10
);
4615 } else fra
.me
.REG
[3] = once_value_10
;
4616 fra
.me
.REG
[3] = fra
.me
.REG
[3];
4617 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4618 /* native_interface/frontier.nit:526 */
4619 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4621 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4622 if (!once_value_11
) {
4623 fra
.me
.REG
[4] = BOX_NativeString("/* friendly for ");
4624 REGB0
= TAG_Int(16);
4625 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4626 once_value_11
= fra
.me
.REG
[4];
4627 register_static_object(&once_value_11
);
4628 } else fra
.me
.REG
[4] = once_value_11
;
4629 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4631 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4632 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4633 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4634 if (!once_value_12
) {
4635 fra
.me
.REG
[4] = BOX_NativeString(" */\n");
4637 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4638 once_value_12
= fra
.me
.REG
[4];
4639 register_static_object(&once_value_12
);
4640 } else fra
.me
.REG
[4] = once_value_12
;
4641 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4642 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4643 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4644 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4645 /* native_interface/frontier.nit:528 */
4646 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4647 fra
.me
.REG
[3] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4648 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4649 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]);
4650 fra
.me
.REG
[4] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra
.me
.REG
[4]);
4651 /* native_interface/frontier.nit:531 */
4652 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
4653 /* native_interface/frontier.nit:534 */
4654 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4655 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4656 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4657 if (UNTAG_Bool(REGB0
)) {
4658 /* native_interface/frontier.nit:535 */
4659 if (!once_value_13
) {
4660 fra
.me
.REG
[2] = BOX_NativeString("recv___nit");
4661 REGB0
= TAG_Int(10);
4662 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
4663 once_value_13
= fra
.me
.REG
[2];
4664 register_static_object(&once_value_13
);
4665 } else fra
.me
.REG
[2] = once_value_13
;
4666 fra
.me
.REG
[2] = fra
.me
.REG
[2];
4667 /* native_interface/frontier.nit:536 */
4668 fra
.me
.REG
[5] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4670 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4671 if (!once_value_14
) {
4672 fra
.me
.REG
[7] = BOX_NativeString("val_t ");
4674 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4675 once_value_14
= fra
.me
.REG
[7];
4676 register_static_object(&once_value_14
);
4677 } else fra
.me
.REG
[7] = once_value_14
;
4678 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4679 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4680 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
4681 if (!once_value_15
) {
4682 fra
.me
.REG
[7] = BOX_NativeString(";\n");
4684 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4685 once_value_15
= fra
.me
.REG
[7];
4686 register_static_object(&once_value_15
);
4687 } else fra
.me
.REG
[7] = once_value_15
;
4688 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4690 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4691 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4692 /* native_interface/frontier.nit:537 */
4693 fra
.me
.REG
[6] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4695 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4696 if (!once_value_16
) {
4697 fra
.me
.REG
[7] = BOX_NativeString("");
4699 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4700 once_value_16
= fra
.me
.REG
[7];
4701 register_static_object(&once_value_16
);
4702 } else fra
.me
.REG
[7] = once_value_16
;
4703 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4704 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4705 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4706 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4707 if (!once_value_17
) {
4708 fra
.me
.REG
[8] = BOX_NativeString("recv");
4710 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
4711 once_value_17
= fra
.me
.REG
[8];
4712 register_static_object(&once_value_17
);
4713 } else fra
.me
.REG
[8] = once_value_17
;
4714 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4715 fra
.me
.REG
[8] = CALL_native_interface___ni_metamodel___MMType___assign_from_friendly(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2], fra
.me
.REG
[8]);
4716 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[8]);
4717 if (!once_value_18
) {
4718 fra
.me
.REG
[8] = BOX_NativeString(";\n");
4720 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
4721 once_value_18
= fra
.me
.REG
[8];
4722 register_static_object(&once_value_18
);
4723 } else fra
.me
.REG
[8] = once_value_18
;
4724 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4725 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[8]);
4726 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4727 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
4728 /* native_interface/frontier.nit:538 */
4729 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4731 /* native_interface/frontier.nit:541 */
4732 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMExplicitImport___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4733 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4734 /* ../lib/standard/collection/array.nit:269 */
4736 /* ../lib/standard/collection/array.nit:270 */
4737 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4738 if (UNTAG_Bool(REGB1
)) {
4740 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
4742 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4743 /* ../lib/standard/collection/array.nit:271 */
4744 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
4745 /* ../lib/standard/collection/array.nit:272 */
4747 /* ../lib/standard/collection/array.nit:24 */
4748 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4749 if (UNTAG_Bool(REGB1
)) {
4751 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4753 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4754 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
4755 if (UNTAG_Bool(REGB2
)) {
4757 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4759 /* ../lib/standard/kernel.nit:232 */
4760 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
4761 /* ../lib/standard/collection/array.nit:272 */
4762 if (UNTAG_Bool(REGB1
)) {
4763 /* ../lib/standard/collection/array.nit:273 */
4764 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4765 if (UNTAG_Bool(REGB1
)) {
4766 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
4768 /* ../lib/standard/collection/array.nit:718 */
4769 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
4770 /* native_interface/frontier.nit:542 */
4772 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
4773 if (!once_value_19
) {
4774 fra
.me
.REG
[7] = BOX_NativeString("");
4776 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB1
);
4777 once_value_19
= fra
.me
.REG
[7];
4778 register_static_object(&once_value_19
);
4779 } else fra
.me
.REG
[7] = once_value_19
;
4780 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4781 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
4782 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMParam___name(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4783 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
4785 if (!once_value_20
) {
4786 fra
.me
.REG
[7] = BOX_NativeString("___nit");
4788 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB1
);
4789 once_value_20
= fra
.me
.REG
[7];
4790 register_static_object(&once_value_20
);
4791 } else fra
.me
.REG
[7] = once_value_20
;
4792 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4793 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
4794 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
4795 /* native_interface/frontier.nit:543 */
4796 fra
.me
.REG
[7] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4798 fra
.me
.REG
[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
4799 if (!once_value_21
) {
4800 fra
.me
.REG
[10] = BOX_NativeString("val_t ");
4802 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB1
);
4803 once_value_21
= fra
.me
.REG
[10];
4804 register_static_object(&once_value_21
);
4805 } else fra
.me
.REG
[10] = once_value_21
;
4806 fra
.me
.REG
[10] = fra
.me
.REG
[10];
4807 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
4808 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
4809 if (!once_value_22
) {
4810 fra
.me
.REG
[10] = BOX_NativeString(";\n");
4812 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB1
);
4813 once_value_22
= fra
.me
.REG
[10];
4814 register_static_object(&once_value_22
);
4815 } else fra
.me
.REG
[10] = once_value_22
;
4816 fra
.me
.REG
[10] = fra
.me
.REG
[10];
4817 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
4818 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
4819 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
4820 /* native_interface/frontier.nit:544 */
4821 fra
.me
.REG
[9] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4823 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
4824 if (!once_value_23
) {
4825 fra
.me
.REG
[10] = BOX_NativeString("");
4827 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB1
);
4828 once_value_23
= fra
.me
.REG
[10];
4829 register_static_object(&once_value_23
);
4830 } else fra
.me
.REG
[10] = once_value_23
;
4831 fra
.me
.REG
[10] = fra
.me
.REG
[10];
4832 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[10]);
4833 fra
.me
.REG
[10] = CALL_metamodel___static_type___MMParam___mmtype(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4834 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMParam___name(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4835 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4836 fra
.me
.REG
[6] = CALL_native_interface___ni_metamodel___MMType___assign_from_friendly(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[8], fra
.me
.REG
[6]);
4837 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
4838 if (!once_value_24
) {
4839 fra
.me
.REG
[6] = BOX_NativeString(";\n");
4841 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
4842 once_value_24
= fra
.me
.REG
[6];
4843 register_static_object(&once_value_24
);
4844 } else fra
.me
.REG
[6] = once_value_24
;
4845 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4846 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
4847 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4848 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[7]);
4849 /* native_interface/frontier.nit:545 */
4850 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[8]);
4851 /* ../lib/standard/collection/array.nit:274 */
4853 /* ../lib/standard/kernel.nit:235 */
4854 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
4855 /* ../lib/standard/collection/array.nit:274 */
4858 /* ../lib/standard/collection/array.nit:272 */
4863 /* native_interface/frontier.nit:549 */
4864 fra
.me
.REG
[5] = NIT_NULL
;
4865 /* native_interface/frontier.nit:552 */
4866 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4867 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4868 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4869 if (UNTAG_Bool(REGB0
)) {
4870 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 552);
4872 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4873 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4874 if (UNTAG_Bool(REGB0
)) {
4876 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4877 if (UNTAG_Bool(REGB1
)) {
4878 REGB1
= TAG_Bool(false);
4881 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4885 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4886 if (UNTAG_Bool(REGB0
)) {
4887 /* native_interface/frontier.nit:553 */
4888 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4889 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4890 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4891 if (UNTAG_Bool(REGB0
)) {
4892 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 553);
4894 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4895 fra
.me
.REG
[5] = fra
.me
.REG
[2];
4897 /* native_interface/frontier.nit:554 */
4898 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4899 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4900 if (UNTAG_Bool(REGB0
)) {
4901 /* native_interface/frontier.nit:555 */
4902 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4903 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4904 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4905 fra
.me
.REG
[5] = fra
.me
.REG
[2];
4908 /* native_interface/frontier.nit:558 */
4909 fra
.me
.REG
[2] = NEW_Buffer_standard___string___Buffer___init();
4910 /* native_interface/frontier.nit:559 */
4911 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4912 if (UNTAG_Bool(REGB0
)) {
4914 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4915 if (UNTAG_Bool(REGB1
)) {
4916 REGB1
= TAG_Bool(false);
4919 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
4923 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4924 if (UNTAG_Bool(REGB0
)) {
4925 /* native_interface/frontier.nit:560 */
4926 if (!once_value_26
) {
4927 fra
.me
.REG
[8] = BOX_NativeString("result___nitni");
4928 REGB0
= TAG_Int(14);
4929 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
4930 once_value_26
= fra
.me
.REG
[8];
4931 register_static_object(&once_value_26
);
4932 } else fra
.me
.REG
[8] = once_value_26
;
4933 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4934 REGB0
= TAG_Bool(true);
4935 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4936 if (UNTAG_Bool(REGB1
)) {
4937 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 560);
4939 CALL_native_interface___frontier___MMType___compile_new_local_ref(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[8], fra
.me
.REG
[4], REGB0
);
4940 /* native_interface/frontier.nit:561 */
4941 fra
.me
.REG
[8] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4942 if (!once_value_27
) {
4943 fra
.me
.REG
[7] = BOX_NativeString("val_t result___nit;\n");
4944 REGB0
= TAG_Int(20);
4945 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4946 once_value_27
= fra
.me
.REG
[7];
4947 register_static_object(&once_value_27
);
4948 } else fra
.me
.REG
[7] = once_value_27
;
4949 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4950 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
4951 /* native_interface/frontier.nit:562 */
4952 if (!once_value_28
) {
4953 fra
.me
.REG
[7] = BOX_NativeString("result___nit = ");
4954 REGB0
= TAG_Int(15);
4955 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4956 once_value_28
= fra
.me
.REG
[7];
4957 register_static_object(&once_value_28
);
4958 } else fra
.me
.REG
[7] = once_value_28
;
4959 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4960 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[7]);
4962 /* native_interface/frontier.nit:566 */
4963 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4964 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4965 if (UNTAG_Bool(REGB0
)) {
4966 /* native_interface/frontier.nit:567 */
4968 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4969 if (!once_value_29
) {
4970 fra
.me
.REG
[8] = BOX_NativeString("NEW_");
4972 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
4973 once_value_29
= fra
.me
.REG
[8];
4974 register_static_object(&once_value_29
);
4975 } else fra
.me
.REG
[8] = once_value_29
;
4976 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4977 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
4978 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4979 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
4980 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
4981 if (!once_value_30
) {
4982 fra
.me
.REG
[8] = BOX_NativeString("_");
4984 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
4985 once_value_30
= fra
.me
.REG
[8];
4986 register_static_object(&once_value_30
);
4987 } else fra
.me
.REG
[8] = once_value_30
;
4988 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4989 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
4990 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4991 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
4992 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
4993 fra
.me
.REG
[8] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
4994 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
4995 if (!once_value_31
) {
4996 fra
.me
.REG
[8] = BOX_NativeString("");
4998 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
4999 once_value_31
= fra
.me
.REG
[8];
5000 register_static_object(&once_value_31
);
5001 } else fra
.me
.REG
[8] = once_value_31
;
5002 fra
.me
.REG
[8] = fra
.me
.REG
[8];
5003 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5004 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5005 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[7]);
5007 /* native_interface/frontier.nit:569 */
5009 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5010 if (!once_value_32
) {
5011 fra
.me
.REG
[8] = BOX_NativeString("");
5013 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
5014 once_value_32
= fra
.me
.REG
[8];
5015 register_static_object(&once_value_32
);
5016 } else fra
.me
.REG
[8] = once_value_32
;
5017 fra
.me
.REG
[8] = fra
.me
.REG
[8];
5018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5019 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5020 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5021 fra
.me
.REG
[0] = CALL_compiling___compiling_base___MMGlobalProperty___meth_call(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5022 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
5023 if (!once_value_33
) {
5024 fra
.me
.REG
[0] = BOX_NativeString("( recv___nit )");
5025 REGB0
= TAG_Int(14);
5026 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5027 once_value_33
= fra
.me
.REG
[0];
5028 register_static_object(&once_value_33
);
5029 } else fra
.me
.REG
[0] = once_value_33
;
5030 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5031 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
5032 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5033 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[7]);
5035 /* native_interface/frontier.nit:572 */
5037 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5038 if (!once_value_34
) {
5039 fra
.me
.REG
[0] = BOX_NativeString("( ");
5041 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5042 once_value_34
= fra
.me
.REG
[0];
5043 register_static_object(&once_value_34
);
5044 } else fra
.me
.REG
[0] = once_value_34
;
5045 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5046 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
5047 if (!once_value_35
) {
5048 fra
.me
.REG
[0] = BOX_NativeString(", ");
5050 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5051 once_value_35
= fra
.me
.REG
[0];
5052 register_static_object(&once_value_35
);
5053 } else fra
.me
.REG
[0] = once_value_35
;
5054 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5055 fra
.me
.REG
[0] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
5056 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
5057 if (!once_value_36
) {
5058 fra
.me
.REG
[0] = BOX_NativeString(" );\n");
5060 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5061 once_value_36
= fra
.me
.REG
[0];
5062 register_static_object(&once_value_36
);
5063 } else fra
.me
.REG
[0] = once_value_36
;
5064 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5065 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0]);
5066 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5067 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[7]);
5068 /* native_interface/frontier.nit:574 */
5069 fra
.me
.REG
[7] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5070 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5071 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
5072 /* native_interface/frontier.nit:577 */
5073 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5074 if (UNTAG_Bool(REGB0
)) {
5076 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5077 if (UNTAG_Bool(REGB1
)) {
5078 REGB1
= TAG_Bool(false);
5081 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5085 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5086 if (UNTAG_Bool(REGB0
)) {
5087 /* native_interface/frontier.nit:578 */
5088 if (!once_value_37
) {
5089 fra
.me
.REG
[2] = BOX_NativeString("result___nitni");
5090 REGB0
= TAG_Int(14);
5091 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
5092 once_value_37
= fra
.me
.REG
[2];
5093 register_static_object(&once_value_37
);
5094 } else fra
.me
.REG
[2] = once_value_37
;
5095 fra
.me
.REG
[2] = fra
.me
.REG
[2];
5096 /* native_interface/frontier.nit:579 */
5097 if (!once_value_38
) {
5098 fra
.me
.REG
[7] = BOX_NativeString("result___nit");
5099 REGB0
= TAG_Int(12);
5100 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5101 once_value_38
= fra
.me
.REG
[7];
5102 register_static_object(&once_value_38
);
5103 } else fra
.me
.REG
[7] = once_value_38
;
5104 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5105 /* native_interface/frontier.nit:581 */
5106 fra
.me
.REG
[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5108 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5109 if (!once_value_39
) {
5110 fra
.me
.REG
[8] = BOX_NativeString("");
5112 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
5113 once_value_39
= fra
.me
.REG
[8];
5114 register_static_object(&once_value_39
);
5115 } else fra
.me
.REG
[8] = once_value_39
;
5116 fra
.me
.REG
[8] = fra
.me
.REG
[8];
5117 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[8]);
5118 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5119 if (UNTAG_Bool(REGB0
)) {
5120 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 581);
5122 fra
.me
.REG
[7] = CALL_native_interface___ni_metamodel___MMType___assign_to_friendly(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2], fra
.me
.REG
[7]);
5123 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
5124 if (!once_value_40
) {
5125 fra
.me
.REG
[7] = BOX_NativeString(";\n");
5127 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5128 once_value_40
= fra
.me
.REG
[7];
5129 register_static_object(&once_value_40
);
5130 } else fra
.me
.REG
[7] = once_value_40
;
5131 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
5133 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5134 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5135 /* native_interface/frontier.nit:582 */
5136 fra
.me
.REG
[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5138 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5139 if (!once_value_41
) {
5140 fra
.me
.REG
[7] = BOX_NativeString("return ");
5142 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5143 once_value_41
= fra
.me
.REG
[7];
5144 register_static_object(&once_value_41
);
5145 } else fra
.me
.REG
[7] = once_value_41
;
5146 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5147 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[7]);
5148 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
5149 if (!once_value_42
) {
5150 fra
.me
.REG
[2] = BOX_NativeString(";\n");
5152 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
5153 once_value_42
= fra
.me
.REG
[2];
5154 register_static_object(&once_value_42
);
5155 } else fra
.me
.REG
[2] = once_value_42
;
5156 fra
.me
.REG
[2] = fra
.me
.REG
[2];
5157 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
5158 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5159 CALL_compiling___compiling_writer___Writer___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
5161 /* native_interface/frontier.nit:585 */
5162 fra
.me
.REG
[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5163 fra
.me
.REG
[4] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5164 CALL_compiling___compiling_writer___Writer___append(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5165 stack_frame_head
= fra
.me
.prev
;
5168 val_t
native_interface___frontier___MMExplicitImport___hash(val_t p0
){
5169 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5173 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5174 fra
.me
.file
= LOCATE_native_interface___frontier
;
5176 fra
.me
.meth
= LOCATE_native_interface___frontier___MMExplicitImport___hash
;
5177 fra
.me
.has_broke
= 0;
5178 fra
.me
.REG_size
= 2;
5179 fra
.me
.nitni_local_ref_head
= NULL
;
5180 fra
.me
.REG
[0] = NIT_NULL
;
5181 fra
.me
.REG
[1] = NIT_NULL
;
5183 /* native_interface/frontier.nit:590 */
5184 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5185 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5186 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5187 REGB0
= CALL_standard___hash___Object___hash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5188 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5189 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5190 REGB1
= CALL_standard___hash___Object___hash(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5191 /* ../lib/standard/kernel.nit:235 */
5192 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5193 /* native_interface/frontier.nit:590 */
5196 stack_frame_head
= fra
.me
.prev
;
5199 val_t
native_interface___frontier___MMExplicitImport_____eqeq(val_t p0
, val_t p1
){
5200 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5204 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5205 fra
.me
.file
= LOCATE_native_interface___frontier
;
5207 fra
.me
.meth
= LOCATE_native_interface___frontier___MMExplicitImport_____eqeq
;
5208 fra
.me
.has_broke
= 0;
5209 fra
.me
.REG_size
= 4;
5210 fra
.me
.nitni_local_ref_head
= NULL
;
5211 fra
.me
.REG
[0] = NIT_NULL
;
5212 fra
.me
.REG
[1] = NIT_NULL
;
5213 fra
.me
.REG
[2] = NIT_NULL
;
5214 fra
.me
.REG
[3] = NIT_NULL
;
5217 /* native_interface/frontier.nit:594 */
5218 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*/;
5219 if (UNTAG_Bool(REGB0
)) {
5220 /* native_interface/frontier.nit:595 */
5221 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5222 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
5223 if (UNTAG_Bool(REGB0
)) {
5224 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 595);
5226 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5227 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
5228 if (UNTAG_Bool(REGB0
)) {
5230 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5234 /* native_interface/frontier.nit:594 */
5235 REGB1
= TAG_Bool(false);
5238 if (UNTAG_Bool(REGB0
)) {
5239 /* native_interface/frontier.nit:595 */
5240 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5241 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
5242 if (UNTAG_Bool(REGB0
)) {
5243 nit_abort("Reciever is null", NULL
, LOCATE_native_interface___frontier
, 595);
5245 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5246 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[1]));
5247 if (UNTAG_Bool(REGB0
)) {
5249 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5253 /* native_interface/frontier.nit:594 */
5254 REGB1
= TAG_Bool(false);
5259 stack_frame_head
= fra
.me
.prev
;