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