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