ni: intro of frontier files between nit code and extern code
[nit.git] / c_src / ni_metamodel._sep.c
1 /* This C file is generated by NIT to compile module ni_metamodel. */
2 #include "ni_metamodel._sep.h"
3 val_t ni_metamodel___MMType___friendly_extern_name(val_t p0){
4 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 static val_t once_value_1; /* Once value */
9 static val_t once_value_2; /* Once value */
10 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11 fra.me.file = LOCATE_ni_metamodel;
12 fra.me.line = 26;
13 fra.me.meth = LOCATE_ni_metamodel___MMType___friendly_extern_name;
14 fra.me.has_broke = 0;
15 fra.me.REG_size = 4;
16 fra.me.REG[0] = NIT_NULL;
17 fra.me.REG[1] = NIT_NULL;
18 fra.me.REG[2] = NIT_NULL;
19 fra.me.REG[3] = NIT_NULL;
20 fra.me.REG[0] = p0;
21 /* ./native_interface//ni_metamodel.nit:30 */
22 fra.me.REG[1] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
23 fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]);
24 /* ./native_interface//ni_metamodel.nit:31 */
25 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
26 if (UNTAG_Bool(REGB0)) {
27 /* ./native_interface//ni_metamodel.nit:32 */
28 REGB0 = TAG_Int(3);
29 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
30 if (!once_value_1) {
31 fra.me.REG[3] = BOX_NativeString("nullable_");
32 REGB0 = TAG_Int(9);
33 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
34 once_value_1 = fra.me.REG[3];
35 register_static_object(&once_value_1);
36 } else fra.me.REG[3] = once_value_1;
37 fra.me.REG[3] = fra.me.REG[3];
38 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
39 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
40 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
41 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
42 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
43 if (!once_value_2) {
44 fra.me.REG[3] = BOX_NativeString("");
45 REGB0 = TAG_Int(0);
46 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
47 once_value_2 = fra.me.REG[3];
48 register_static_object(&once_value_2);
49 } else fra.me.REG[3] = once_value_2;
50 fra.me.REG[3] = fra.me.REG[3];
51 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
52 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
53 goto label3;
54 } else {
55 /* ./native_interface//ni_metamodel.nit:33 */
56 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
57 if (UNTAG_Bool(REGB0)) {
58 } else {
59 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
60 if (UNTAG_Bool(REGB1)) {
61 REGB1 = TAG_Bool(false);
62 REGB0 = REGB1;
63 } else {
64 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
65 REGB0 = REGB1;
66 }
67 }
68 if (UNTAG_Bool(REGB0)) {
69 /* ./native_interface//ni_metamodel.nit:34 */
70 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
71 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
72 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
73 fra.me.REG[2] = fra.me.REG[3];
74 goto label3;
75 } else {
76 /* ./native_interface//ni_metamodel.nit:35 */
77 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
78 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
79 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[3])(fra.me.REG[3]);
80 if (UNTAG_Bool(REGB0)) {
81 /* ./native_interface//ni_metamodel.nit:36 */
82 fra.me.REG[0] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
83 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
84 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
85 fra.me.REG[2] = fra.me.REG[0];
86 goto label3;
87 } else {
88 /* ./native_interface//ni_metamodel.nit:38 */
89 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
90 if (UNTAG_Bool(REGB0)) {
91 nit_abort("Reciever is null", NULL, LOCATE_ni_metamodel, 38);
92 }
93 fra.me.REG[1] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[1])(fra.me.REG[1]);
94 fra.me.REG[2] = fra.me.REG[1];
95 goto label3;
96 }
97 }
98 }
99 label3: while(0);
100 stack_frame_head = fra.me.prev;
101 return fra.me.REG[2];
102 }
103 val_t ni_metamodel___MMType___from_native(val_t p0, val_t p1){
104 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
105 val_t REGB0;
106 val_t REGB1;
107 val_t tmp;
108 static val_t once_value_2; /* Once value */
109 static val_t once_value_3; /* Once value */
110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
111 fra.me.file = LOCATE_ni_metamodel;
112 fra.me.line = 42;
113 fra.me.meth = LOCATE_ni_metamodel___MMType___from_native;
114 fra.me.has_broke = 0;
115 fra.me.REG_size = 5;
116 fra.me.REG[0] = NIT_NULL;
117 fra.me.REG[1] = NIT_NULL;
118 fra.me.REG[2] = NIT_NULL;
119 fra.me.REG[3] = NIT_NULL;
120 fra.me.REG[4] = NIT_NULL;
121 fra.me.REG[0] = p0;
122 fra.me.REG[1] = p1;
123 /* ./native_interface//ni_metamodel.nit:45 */
124 fra.me.REG[2] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
125 fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
126 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
127 if (UNTAG_Bool(REGB0)) {
128 } else {
129 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
130 if (UNTAG_Bool(REGB1)) {
131 REGB1 = TAG_Bool(false);
132 REGB0 = REGB1;
133 } else {
134 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
135 REGB0 = REGB1;
136 }
137 }
138 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
139 if (UNTAG_Bool(REGB0)) {
140 REGB0 = TAG_Bool(true);
141 } else {
142 fra.me.REG[2] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
143 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
144 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[2])(fra.me.REG[2]);
145 REGB0 = REGB1;
146 }
147 if (UNTAG_Bool(REGB0)) {
148 /* ./native_interface//ni_metamodel.nit:46 */
149 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
150 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
151 } else {
152 /* ./native_interface//ni_metamodel.nit:45 */
153 REGB1 = TAG_Bool(false);
154 REGB0 = REGB1;
155 }
156 if (UNTAG_Bool(REGB0)) {
157 /* ./native_interface//ni_metamodel.nit:47 */
158 fra.me.REG[2] = CALL_primitive_info___MMType___boxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
159 goto label1;
160 } else {
161 /* ./native_interface//ni_metamodel.nit:49 */
162 REGB0 = TAG_Int(3);
163 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
164 if (!once_value_2) {
165 fra.me.REG[4] = BOX_NativeString("");
166 REGB0 = TAG_Int(0);
167 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
168 once_value_2 = fra.me.REG[4];
169 register_static_object(&once_value_2);
170 } else fra.me.REG[4] = once_value_2;
171 fra.me.REG[4] = fra.me.REG[4];
172 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
173 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
174 if (!once_value_3) {
175 fra.me.REG[1] = BOX_NativeString(".v");
176 REGB0 = TAG_Int(2);
177 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
178 once_value_3 = fra.me.REG[1];
179 register_static_object(&once_value_3);
180 } else fra.me.REG[1] = once_value_3;
181 fra.me.REG[1] = fra.me.REG[1];
182 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
183 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
184 /* ./native_interface//ni_metamodel.nit:51 */
185 fra.me.REG[3] = CALL_primitive_info___MMType___boxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
186 fra.me.REG[2] = fra.me.REG[3];
187 goto label1;
188 }
189 label1: while(0);
190 stack_frame_head = fra.me.prev;
191 return fra.me.REG[2];
192 }
193 val_t ni_metamodel___MMType___assign_to_friendly(val_t p0, val_t p1, val_t p2){
194 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
195 val_t REGB0;
196 val_t REGB1;
197 val_t tmp;
198 static val_t once_value_1; /* Once value */
199 static val_t once_value_2; /* Once value */
200 static val_t once_value_3; /* Once value */
201 static val_t once_value_5; /* Once value */
202 static val_t once_value_6; /* Once value */
203 static val_t once_value_7; /* Once value */
204 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
205 fra.me.file = LOCATE_ni_metamodel;
206 fra.me.line = 55;
207 fra.me.meth = LOCATE_ni_metamodel___MMType___assign_to_friendly;
208 fra.me.has_broke = 0;
209 fra.me.REG_size = 6;
210 fra.me.REG[0] = NIT_NULL;
211 fra.me.REG[1] = NIT_NULL;
212 fra.me.REG[2] = NIT_NULL;
213 fra.me.REG[3] = NIT_NULL;
214 fra.me.REG[4] = NIT_NULL;
215 fra.me.REG[5] = NIT_NULL;
216 fra.me.REG[0] = p0;
217 fra.me.REG[1] = p1;
218 fra.me.REG[2] = p2;
219 /* ./native_interface//ni_metamodel.nit:59 */
220 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
221 fra.me.REG[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[3])(fra.me.REG[3]);
222 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
223 if (UNTAG_Bool(REGB0)) {
224 } else {
225 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
226 if (UNTAG_Bool(REGB1)) {
227 REGB1 = TAG_Bool(false);
228 REGB0 = REGB1;
229 } else {
230 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
231 REGB0 = REGB1;
232 }
233 }
234 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
235 if (UNTAG_Bool(REGB0)) {
236 REGB0 = TAG_Bool(true);
237 } else {
238 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
239 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
240 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[3])(fra.me.REG[3]);
241 REGB0 = REGB1;
242 }
243 if (UNTAG_Bool(REGB0)) {
244 /* ./native_interface//ni_metamodel.nit:60 */
245 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
246 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
247 } else {
248 /* ./native_interface//ni_metamodel.nit:59 */
249 REGB1 = TAG_Bool(false);
250 REGB0 = REGB1;
251 }
252 if (UNTAG_Bool(REGB0)) {
253 /* ./native_interface//ni_metamodel.nit:61 */
254 REGB0 = TAG_Int(5);
255 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
256 if (!once_value_1) {
257 fra.me.REG[4] = BOX_NativeString("");
258 REGB0 = TAG_Int(0);
259 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
260 once_value_1 = fra.me.REG[4];
261 register_static_object(&once_value_1);
262 } else fra.me.REG[4] = once_value_1;
263 fra.me.REG[4] = fra.me.REG[4];
264 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
265 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
266 if (!once_value_2) {
267 fra.me.REG[4] = BOX_NativeString(" = ");
268 REGB0 = TAG_Int(3);
269 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
270 once_value_2 = fra.me.REG[4];
271 register_static_object(&once_value_2);
272 } else fra.me.REG[4] = once_value_2;
273 fra.me.REG[4] = fra.me.REG[4];
274 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
275 fra.me.REG[4] = CALL_primitive_info___MMType___unboxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
276 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
277 if (!once_value_3) {
278 fra.me.REG[4] = BOX_NativeString("");
279 REGB0 = TAG_Int(0);
280 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
281 once_value_3 = fra.me.REG[4];
282 register_static_object(&once_value_3);
283 } else fra.me.REG[4] = once_value_3;
284 fra.me.REG[4] = fra.me.REG[4];
285 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
286 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
287 goto label4;
288 } else {
289 /* ./native_interface//ni_metamodel.nit:63 */
290 REGB0 = TAG_Int(5);
291 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
292 if (!once_value_5) {
293 fra.me.REG[5] = BOX_NativeString("");
294 REGB0 = TAG_Int(0);
295 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
296 once_value_5 = fra.me.REG[5];
297 register_static_object(&once_value_5);
298 } else fra.me.REG[5] = once_value_5;
299 fra.me.REG[5] = fra.me.REG[5];
300 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
301 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
302 if (!once_value_6) {
303 fra.me.REG[1] = BOX_NativeString(".v = ");
304 REGB0 = TAG_Int(5);
305 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
306 once_value_6 = fra.me.REG[1];
307 register_static_object(&once_value_6);
308 } else fra.me.REG[1] = once_value_6;
309 fra.me.REG[1] = fra.me.REG[1];
310 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
311 fra.me.REG[2] = CALL_primitive_info___MMType___unboxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
312 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
313 if (!once_value_7) {
314 fra.me.REG[2] = BOX_NativeString("");
315 REGB0 = TAG_Int(0);
316 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
317 once_value_7 = fra.me.REG[2];
318 register_static_object(&once_value_7);
319 } else fra.me.REG[2] = once_value_7;
320 fra.me.REG[2] = fra.me.REG[2];
321 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
322 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
323 fra.me.REG[3] = fra.me.REG[4];
324 goto label4;
325 }
326 label4: while(0);
327 stack_frame_head = fra.me.prev;
328 return fra.me.REG[3];
329 }
330 val_t ni_metamodel___MMType___assign_from_friendly(val_t p0, val_t p1, val_t p2){
331 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
332 val_t REGB0;
333 val_t REGB1;
334 val_t tmp;
335 static val_t once_value_1; /* Once value */
336 static val_t once_value_2; /* Once value */
337 static val_t once_value_3; /* Once value */
338 static val_t once_value_5; /* Once value */
339 static val_t once_value_6; /* Once value */
340 static val_t once_value_7; /* Once value */
341 static val_t once_value_8; /* Once value */
342 static val_t once_value_9; /* Once value */
343 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
344 fra.me.file = LOCATE_ni_metamodel;
345 fra.me.line = 67;
346 fra.me.meth = LOCATE_ni_metamodel___MMType___assign_from_friendly;
347 fra.me.has_broke = 0;
348 fra.me.REG_size = 5;
349 fra.me.REG[0] = NIT_NULL;
350 fra.me.REG[1] = NIT_NULL;
351 fra.me.REG[2] = NIT_NULL;
352 fra.me.REG[3] = NIT_NULL;
353 fra.me.REG[4] = NIT_NULL;
354 fra.me.REG[0] = p0;
355 fra.me.REG[1] = p1;
356 fra.me.REG[2] = p2;
357 /* ./native_interface//ni_metamodel.nit:71 */
358 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
359 fra.me.REG[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[3])(fra.me.REG[3]);
360 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
361 if (UNTAG_Bool(REGB0)) {
362 } else {
363 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
364 if (UNTAG_Bool(REGB1)) {
365 REGB1 = TAG_Bool(false);
366 REGB0 = REGB1;
367 } else {
368 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
369 REGB0 = REGB1;
370 }
371 }
372 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
373 if (UNTAG_Bool(REGB0)) {
374 REGB0 = TAG_Bool(true);
375 } else {
376 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
377 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
378 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[3])(fra.me.REG[3]);
379 REGB0 = REGB1;
380 }
381 if (UNTAG_Bool(REGB0)) {
382 /* ./native_interface//ni_metamodel.nit:72 */
383 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
384 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
385 } else {
386 /* ./native_interface//ni_metamodel.nit:71 */
387 REGB1 = TAG_Bool(false);
388 REGB0 = REGB1;
389 }
390 if (UNTAG_Bool(REGB0)) {
391 /* ./native_interface//ni_metamodel.nit:73 */
392 REGB0 = TAG_Int(5);
393 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
394 if (!once_value_1) {
395 fra.me.REG[4] = BOX_NativeString("");
396 REGB0 = TAG_Int(0);
397 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
398 once_value_1 = fra.me.REG[4];
399 register_static_object(&once_value_1);
400 } else fra.me.REG[4] = once_value_1;
401 fra.me.REG[4] = fra.me.REG[4];
402 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
403 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
404 if (!once_value_2) {
405 fra.me.REG[4] = BOX_NativeString(" = ");
406 REGB0 = TAG_Int(3);
407 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
408 once_value_2 = fra.me.REG[4];
409 register_static_object(&once_value_2);
410 } else fra.me.REG[4] = once_value_2;
411 fra.me.REG[4] = fra.me.REG[4];
412 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
413 fra.me.REG[0] = CALL_primitive_info___MMType___boxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
414 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
415 if (!once_value_3) {
416 fra.me.REG[0] = BOX_NativeString("");
417 REGB0 = TAG_Int(0);
418 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
419 once_value_3 = fra.me.REG[0];
420 register_static_object(&once_value_3);
421 } else fra.me.REG[0] = once_value_3;
422 fra.me.REG[0] = fra.me.REG[0];
423 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
424 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
425 goto label4;
426 } else {
427 /* ./native_interface//ni_metamodel.nit:75 */
428 REGB0 = TAG_Int(5);
429 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
430 if (!once_value_5) {
431 fra.me.REG[4] = BOX_NativeString("");
432 REGB0 = TAG_Int(0);
433 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
434 once_value_5 = fra.me.REG[4];
435 register_static_object(&once_value_5);
436 } else fra.me.REG[4] = once_value_5;
437 fra.me.REG[4] = fra.me.REG[4];
438 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
439 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
440 if (!once_value_6) {
441 fra.me.REG[1] = BOX_NativeString(" = ");
442 REGB0 = TAG_Int(3);
443 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
444 once_value_6 = fra.me.REG[1];
445 register_static_object(&once_value_6);
446 } else fra.me.REG[1] = once_value_6;
447 fra.me.REG[1] = fra.me.REG[1];
448 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
449 REGB0 = TAG_Int(3);
450 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
451 if (!once_value_7) {
452 fra.me.REG[4] = BOX_NativeString("");
453 REGB0 = TAG_Int(0);
454 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
455 once_value_7 = fra.me.REG[4];
456 register_static_object(&once_value_7);
457 } else fra.me.REG[4] = once_value_7;
458 fra.me.REG[4] = fra.me.REG[4];
459 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
460 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
461 if (!once_value_8) {
462 fra.me.REG[2] = BOX_NativeString(".v");
463 REGB0 = TAG_Int(2);
464 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
465 once_value_8 = fra.me.REG[2];
466 register_static_object(&once_value_8);
467 } else fra.me.REG[2] = once_value_8;
468 fra.me.REG[2] = fra.me.REG[2];
469 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
470 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
471 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
472 if (!once_value_9) {
473 fra.me.REG[1] = BOX_NativeString("");
474 REGB0 = TAG_Int(0);
475 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
476 once_value_9 = fra.me.REG[1];
477 register_static_object(&once_value_9);
478 } else fra.me.REG[1] = once_value_9;
479 fra.me.REG[1] = fra.me.REG[1];
480 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
481 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
482 fra.me.REG[3] = fra.me.REG[0];
483 goto label4;
484 }
485 label4: while(0);
486 stack_frame_head = fra.me.prev;
487 return fra.me.REG[3];
488 }
489 val_t ni_metamodel___MMMethod___local_friendly_name_from(val_t p0, val_t p1, val_t p2){
490 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
491 val_t REGB0;
492 val_t tmp;
493 static val_t once_value_1; /* Once value */
494 static val_t once_value_2; /* Once value */
495 static val_t once_value_3; /* Once value */
496 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
497 fra.me.file = LOCATE_ni_metamodel;
498 fra.me.line = 81;
499 fra.me.meth = LOCATE_ni_metamodel___MMMethod___local_friendly_name_from;
500 fra.me.has_broke = 0;
501 fra.me.REG_size = 5;
502 fra.me.REG[0] = NIT_NULL;
503 fra.me.REG[1] = NIT_NULL;
504 fra.me.REG[2] = NIT_NULL;
505 fra.me.REG[3] = NIT_NULL;
506 fra.me.REG[4] = NIT_NULL;
507 fra.me.REG[0] = p0;
508 fra.me.REG[1] = p1;
509 fra.me.REG[2] = p2;
510 /* ./native_interface//ni_metamodel.nit:85 */
511 REGB0 = TAG_Int(5);
512 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
513 if (!once_value_1) {
514 fra.me.REG[4] = BOX_NativeString("");
515 REGB0 = TAG_Int(0);
516 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
517 once_value_1 = fra.me.REG[4];
518 register_static_object(&once_value_1);
519 } else fra.me.REG[4] = once_value_1;
520 fra.me.REG[4] = fra.me.REG[4];
521 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
522 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
523 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
524 if (!once_value_2) {
525 fra.me.REG[1] = BOX_NativeString("_");
526 REGB0 = TAG_Int(1);
527 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
528 once_value_2 = fra.me.REG[1];
529 register_static_object(&once_value_2);
530 } else fra.me.REG[1] = once_value_2;
531 fra.me.REG[1] = fra.me.REG[1];
532 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
533 fra.me.REG[2] = CALL_mmbuilder___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
534 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
535 if (!once_value_3) {
536 fra.me.REG[2] = BOX_NativeString("");
537 REGB0 = TAG_Int(0);
538 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
539 once_value_3 = fra.me.REG[2];
540 register_static_object(&once_value_3);
541 } else fra.me.REG[2] = once_value_3;
542 fra.me.REG[2] = fra.me.REG[2];
543 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
544 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
545 goto label4;
546 label4: while(0);
547 stack_frame_head = fra.me.prev;
548 return fra.me.REG[3];
549 }
550 val_t ni_metamodel___MMMethod___friendly_super_cname(val_t p0){
551 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
552 val_t REGB0;
553 val_t tmp;
554 static val_t once_value_1; /* Once value */
555 static val_t once_value_2; /* Once value */
556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
557 fra.me.file = LOCATE_ni_metamodel;
558 fra.me.line = 88;
559 fra.me.meth = LOCATE_ni_metamodel___MMMethod___friendly_super_cname;
560 fra.me.has_broke = 0;
561 fra.me.REG_size = 3;
562 fra.me.REG[0] = NIT_NULL;
563 fra.me.REG[1] = NIT_NULL;
564 fra.me.REG[2] = NIT_NULL;
565 fra.me.REG[0] = p0;
566 /* ./native_interface//ni_metamodel.nit:90 */
567 REGB0 = TAG_Int(3);
568 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
569 if (!once_value_1) {
570 fra.me.REG[2] = BOX_NativeString("");
571 REGB0 = TAG_Int(0);
572 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
573 once_value_1 = fra.me.REG[2];
574 register_static_object(&once_value_1);
575 } else fra.me.REG[2] = once_value_1;
576 fra.me.REG[2] = fra.me.REG[2];
577 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
578 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
579 fra.me.REG[2] = CALL_mmbuilder___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
580 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
581 if (!once_value_2) {
582 fra.me.REG[2] = BOX_NativeString("___super");
583 REGB0 = TAG_Int(8);
584 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
585 once_value_2 = fra.me.REG[2];
586 register_static_object(&once_value_2);
587 } else fra.me.REG[2] = once_value_2;
588 fra.me.REG[2] = fra.me.REG[2];
589 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
590 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
591 goto label3;
592 label3: while(0);
593 stack_frame_head = fra.me.prev;
594 return fra.me.REG[1];
595 }
596 val_t ni_metamodel___MMMethod___local_friendly_super_name_from(val_t p0, val_t p1){
597 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
598 val_t REGB0;
599 val_t tmp;
600 static val_t once_value_1; /* Once value */
601 static val_t once_value_2; /* Once value */
602 static val_t once_value_3; /* Once value */
603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
604 fra.me.file = LOCATE_ni_metamodel;
605 fra.me.line = 93;
606 fra.me.meth = LOCATE_ni_metamodel___MMMethod___local_friendly_super_name_from;
607 fra.me.has_broke = 0;
608 fra.me.REG_size = 4;
609 fra.me.REG[0] = NIT_NULL;
610 fra.me.REG[1] = NIT_NULL;
611 fra.me.REG[2] = NIT_NULL;
612 fra.me.REG[3] = NIT_NULL;
613 fra.me.REG[0] = p0;
614 fra.me.REG[1] = p1;
615 /* ./native_interface//ni_metamodel.nit:95 */
616 REGB0 = TAG_Int(5);
617 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
618 if (!once_value_1) {
619 fra.me.REG[3] = BOX_NativeString("");
620 REGB0 = TAG_Int(0);
621 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
622 once_value_1 = fra.me.REG[3];
623 register_static_object(&once_value_1);
624 } else fra.me.REG[3] = once_value_1;
625 fra.me.REG[3] = fra.me.REG[3];
626 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
627 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
628 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
629 if (!once_value_2) {
630 fra.me.REG[1] = BOX_NativeString("_");
631 REGB0 = TAG_Int(1);
632 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
633 once_value_2 = fra.me.REG[1];
634 register_static_object(&once_value_2);
635 } else fra.me.REG[1] = once_value_2;
636 fra.me.REG[1] = fra.me.REG[1];
637 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
638 fra.me.REG[0] = CALL_ni_metamodel___MMMethod___friendly_super_cname(fra.me.REG[0])(fra.me.REG[0]);
639 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
640 if (!once_value_3) {
641 fra.me.REG[0] = BOX_NativeString("");
642 REGB0 = TAG_Int(0);
643 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
644 once_value_3 = fra.me.REG[0];
645 register_static_object(&once_value_3);
646 } else fra.me.REG[0] = once_value_3;
647 fra.me.REG[0] = fra.me.REG[0];
648 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
649 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
650 goto label4;
651 label4: while(0);
652 stack_frame_head = fra.me.prev;
653 return fra.me.REG[2];
654 }
655 val_t ni_metamodel___MMMethod___friendly_cparams(val_t p0, val_t p1){
656 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
657 val_t REGB0;
658 val_t REGB1;
659 val_t tmp;
660 static val_t once_value_1; /* Once value */
661 static val_t once_value_2; /* Once value */
662 static val_t once_value_3; /* Once value */
663 static val_t once_value_4; /* Once value */
664 static val_t once_value_5; /* Once value */
665 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
666 fra.me.file = LOCATE_ni_metamodel;
667 fra.me.line = 98;
668 fra.me.meth = LOCATE_ni_metamodel___MMMethod___friendly_cparams;
669 fra.me.has_broke = 0;
670 fra.me.REG_size = 6;
671 fra.me.REG[0] = NIT_NULL;
672 fra.me.REG[1] = NIT_NULL;
673 fra.me.REG[2] = NIT_NULL;
674 fra.me.REG[3] = NIT_NULL;
675 fra.me.REG[4] = NIT_NULL;
676 fra.me.REG[5] = NIT_NULL;
677 fra.me.REG[0] = p0;
678 fra.me.REG[1] = p1;
679 /* ./native_interface//ni_metamodel.nit:100 */
680 fra.me.REG[2] = NEW_List_list___List___init();
681 /* ./native_interface//ni_metamodel.nit:102 */
682 REGB0 = CALL_syntax_base___MMLocalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
683 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
684 if (UNTAG_Bool(REGB0)) {
685 /* ./native_interface//ni_metamodel.nit:103 */
686 REGB0 = TAG_Int(3);
687 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
688 if (!once_value_1) {
689 fra.me.REG[4] = BOX_NativeString("");
690 REGB0 = TAG_Int(0);
691 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
692 once_value_1 = fra.me.REG[4];
693 register_static_object(&once_value_1);
694 } else fra.me.REG[4] = once_value_1;
695 fra.me.REG[4] = fra.me.REG[4];
696 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
697 fra.me.REG[1] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
698 fra.me.REG[1] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[1])(fra.me.REG[1]);
699 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
700 if (!once_value_2) {
701 fra.me.REG[1] = BOX_NativeString(" recv");
702 REGB0 = TAG_Int(5);
703 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
704 once_value_2 = fra.me.REG[1];
705 register_static_object(&once_value_2);
706 } else fra.me.REG[1] = once_value_2;
707 fra.me.REG[1] = fra.me.REG[1];
708 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
709 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
710 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
711 }
712 /* ./native_interface//ni_metamodel.nit:106 */
713 fra.me.REG[0] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
714 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
715 if (UNTAG_Bool(REGB0)) {
716 nit_abort("Reciever is null", NULL, LOCATE_ni_metamodel, 106);
717 }
718 fra.me.REG[0] = CALL_static_type___MMSignature___params(fra.me.REG[0])(fra.me.REG[0]);
719 /* ./../lib/standard//collection//array.nit:234 */
720 REGB0 = TAG_Int(0);
721 /* ./../lib/standard//collection//array.nit:235 */
722 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
723 if (UNTAG_Bool(REGB1)) {
724 } else {
725 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
726 }
727 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
728 /* ./../lib/standard//collection//array.nit:236 */
729 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[0]);
730 /* ./../lib/standard//collection//array.nit:237 */
731 while(1) {
732 /* ./../lib/standard//collection//array.nit:23 */
733 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
734 if (UNTAG_Bool(REGB1)) {
735 } else {
736 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
737 }
738 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
739 /* ./../lib/standard//kernel.nit:212 */
740 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
741 /* ./../lib/standard//collection//array.nit:237 */
742 if (UNTAG_Bool(REGB1)) {
743 /* ./../lib/standard//collection//array.nit:238 */
744 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
745 if (UNTAG_Bool(REGB1)) {
746 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
747 }
748 /* ./../lib/standard//collection//array.nit:654 */
749 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
750 /* ./native_interface//ni_metamodel.nit:107 */
751 REGB1 = TAG_Int(5);
752 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
753 if (!once_value_3) {
754 fra.me.REG[5] = BOX_NativeString("");
755 REGB1 = TAG_Int(0);
756 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
757 once_value_3 = fra.me.REG[5];
758 register_static_object(&once_value_3);
759 } else fra.me.REG[5] = once_value_3;
760 fra.me.REG[5] = fra.me.REG[5];
761 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
762 fra.me.REG[5] = CALL_static_type___MMParam___mmtype(fra.me.REG[1])(fra.me.REG[1]);
763 fra.me.REG[5] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[5])(fra.me.REG[5]);
764 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
765 if (!once_value_4) {
766 fra.me.REG[5] = BOX_NativeString(" ");
767 REGB1 = TAG_Int(1);
768 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
769 once_value_4 = fra.me.REG[5];
770 register_static_object(&once_value_4);
771 } else fra.me.REG[5] = once_value_4;
772 fra.me.REG[5] = fra.me.REG[5];
773 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
774 fra.me.REG[1] = CALL_static_type___MMParam___name(fra.me.REG[1])(fra.me.REG[1]);
775 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
776 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
777 if (!once_value_5) {
778 fra.me.REG[1] = BOX_NativeString("");
779 REGB1 = TAG_Int(0);
780 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
781 once_value_5 = fra.me.REG[1];
782 register_static_object(&once_value_5);
783 } else fra.me.REG[1] = once_value_5;
784 fra.me.REG[1] = fra.me.REG[1];
785 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
786 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
787 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
788 /* ./../lib/standard//collection//array.nit:239 */
789 REGB1 = TAG_Int(1);
790 /* ./../lib/standard//kernel.nit:215 */
791 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
792 /* ./../lib/standard//collection//array.nit:239 */
793 REGB0 = REGB1;
794 } else {
795 /* ./../lib/standard//collection//array.nit:237 */
796 goto label6;
797 }
798 }
799 label6: while(0);
800 /* ./native_interface//ni_metamodel.nit:110 */
801 goto label7;
802 label7: while(0);
803 stack_frame_head = fra.me.prev;
804 return fra.me.REG[2];
805 }
806 val_t ni_metamodel___MMMethod___csignature_with_suffix(val_t p0, val_t p1, val_t p2){
807 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
808 val_t REGB0;
809 val_t tmp;
810 static val_t once_value_1; /* Once value */
811 static val_t once_value_2; /* Once value */
812 static val_t once_value_3; /* Once value */
813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
814 fra.me.file = LOCATE_ni_metamodel;
815 fra.me.line = 113;
816 fra.me.meth = LOCATE_ni_metamodel___MMMethod___csignature_with_suffix;
817 fra.me.has_broke = 0;
818 fra.me.REG_size = 5;
819 fra.me.REG[0] = NIT_NULL;
820 fra.me.REG[1] = NIT_NULL;
821 fra.me.REG[2] = NIT_NULL;
822 fra.me.REG[3] = NIT_NULL;
823 fra.me.REG[4] = NIT_NULL;
824 fra.me.REG[0] = p0;
825 fra.me.REG[1] = p1;
826 fra.me.REG[2] = p2;
827 /* ./native_interface//ni_metamodel.nit:115 */
828 REGB0 = TAG_Int(5);
829 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
830 if (!once_value_1) {
831 fra.me.REG[4] = BOX_NativeString("");
832 REGB0 = TAG_Int(0);
833 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
834 once_value_1 = fra.me.REG[4];
835 register_static_object(&once_value_1);
836 } else fra.me.REG[4] = once_value_1;
837 fra.me.REG[4] = fra.me.REG[4];
838 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
839 fra.me.REG[4] = CALL_mmbuilder___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
840 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
841 if (!once_value_2) {
842 fra.me.REG[4] = BOX_NativeString("");
843 REGB0 = TAG_Int(0);
844 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
845 once_value_2 = fra.me.REG[4];
846 register_static_object(&once_value_2);
847 } else fra.me.REG[4] = once_value_2;
848 fra.me.REG[4] = fra.me.REG[4];
849 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
850 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
851 if (!once_value_3) {
852 fra.me.REG[1] = BOX_NativeString("");
853 REGB0 = TAG_Int(0);
854 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
855 once_value_3 = fra.me.REG[1];
856 register_static_object(&once_value_3);
857 } else fra.me.REG[1] = once_value_3;
858 fra.me.REG[1] = fra.me.REG[1];
859 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
860 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
861 /* ./native_interface//ni_metamodel.nit:117 */
862 fra.me.REG[2] = CALL_ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
863 goto label4;
864 label4: while(0);
865 stack_frame_head = fra.me.prev;
866 return fra.me.REG[2];
867 }
868 val_t ni_metamodel___MMMethod___csignature_with_name(val_t p0, val_t p1, val_t p2){
869 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
870 val_t REGB0;
871 val_t REGB1;
872 val_t tmp;
873 static val_t once_value_1; /* Once value */
874 static val_t once_value_2; /* Once value */
875 static val_t once_value_3; /* Once value */
876 static val_t once_value_4; /* Once value */
877 static val_t once_value_5; /* Once value */
878 static val_t once_value_6; /* Once value */
879 static val_t once_value_7; /* Once value */
880 static val_t once_value_8; /* Once value */
881 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
882 fra.me.file = LOCATE_ni_metamodel;
883 fra.me.line = 120;
884 fra.me.meth = LOCATE_ni_metamodel___MMMethod___csignature_with_name;
885 fra.me.has_broke = 0;
886 fra.me.REG_size = 6;
887 fra.me.REG[0] = NIT_NULL;
888 fra.me.REG[1] = NIT_NULL;
889 fra.me.REG[2] = NIT_NULL;
890 fra.me.REG[3] = NIT_NULL;
891 fra.me.REG[4] = NIT_NULL;
892 fra.me.REG[5] = NIT_NULL;
893 fra.me.REG[0] = p0;
894 fra.me.REG[1] = p1;
895 fra.me.REG[2] = p2;
896 /* ./native_interface//ni_metamodel.nit:122 */
897 fra.me.REG[3] = NEW_Buffer_string___Buffer___init();
898 /* ./native_interface//ni_metamodel.nit:125 */
899 fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
900 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
901 if (UNTAG_Bool(REGB0)) {
902 nit_abort("Reciever is null", NULL, LOCATE_ni_metamodel, 125);
903 }
904 fra.me.REG[4] = CALL_static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
905 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
906 if (UNTAG_Bool(REGB0)) {
907 } else {
908 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
909 if (UNTAG_Bool(REGB1)) {
910 REGB1 = TAG_Bool(false);
911 REGB0 = REGB1;
912 } else {
913 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
914 REGB0 = REGB1;
915 }
916 }
917 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
918 if (UNTAG_Bool(REGB0)) {
919 /* ./native_interface//ni_metamodel.nit:126 */
920 REGB0 = TAG_Int(3);
921 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
922 if (!once_value_1) {
923 fra.me.REG[5] = BOX_NativeString("");
924 REGB0 = TAG_Int(0);
925 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
926 once_value_1 = fra.me.REG[5];
927 register_static_object(&once_value_1);
928 } else fra.me.REG[5] = once_value_1;
929 fra.me.REG[5] = fra.me.REG[5];
930 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
931 fra.me.REG[5] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
932 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
933 if (UNTAG_Bool(REGB0)) {
934 nit_abort("Reciever is null", NULL, LOCATE_ni_metamodel, 126);
935 }
936 fra.me.REG[5] = CALL_static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
937 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
938 if (UNTAG_Bool(REGB0)) {
939 nit_abort("Reciever is null", NULL, LOCATE_ni_metamodel, 126);
940 }
941 fra.me.REG[5] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[5])(fra.me.REG[5]);
942 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
943 if (!once_value_2) {
944 fra.me.REG[5] = BOX_NativeString(" ");
945 REGB0 = TAG_Int(1);
946 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
947 once_value_2 = fra.me.REG[5];
948 register_static_object(&once_value_2);
949 } else fra.me.REG[5] = once_value_2;
950 fra.me.REG[5] = fra.me.REG[5];
951 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
952 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
953 CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
954 } else {
955 /* ./native_interface//ni_metamodel.nit:127 */
956 REGB0 = CALL_syntax_base___MMLocalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
957 if (UNTAG_Bool(REGB0)) {
958 /* ./native_interface//ni_metamodel.nit:128 */
959 REGB0 = TAG_Int(3);
960 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
961 if (!once_value_3) {
962 fra.me.REG[5] = BOX_NativeString("");
963 REGB0 = TAG_Int(0);
964 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
965 once_value_3 = fra.me.REG[5];
966 register_static_object(&once_value_3);
967 } else fra.me.REG[5] = once_value_3;
968 fra.me.REG[5] = fra.me.REG[5];
969 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
970 fra.me.REG[5] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]);
971 fra.me.REG[5] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[5])(fra.me.REG[5]);
972 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
973 if (!once_value_4) {
974 fra.me.REG[5] = BOX_NativeString(" ");
975 REGB0 = TAG_Int(1);
976 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
977 once_value_4 = fra.me.REG[5];
978 register_static_object(&once_value_4);
979 } else fra.me.REG[5] = once_value_4;
980 fra.me.REG[5] = fra.me.REG[5];
981 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
982 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
983 CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
984 } else {
985 /* ./native_interface//ni_metamodel.nit:130 */
986 if (!once_value_5) {
987 fra.me.REG[4] = BOX_NativeString("void ");
988 REGB0 = TAG_Int(5);
989 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
990 once_value_5 = fra.me.REG[4];
991 register_static_object(&once_value_5);
992 } else fra.me.REG[4] = once_value_5;
993 fra.me.REG[4] = fra.me.REG[4];
994 CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
995 }
996 }
997 /* ./native_interface//ni_metamodel.nit:134 */
998 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
999 if (UNTAG_Bool(REGB0)) {
1000 } else {
1001 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1002 if (UNTAG_Bool(REGB1)) {
1003 REGB1 = TAG_Bool(false);
1004 REGB0 = REGB1;
1005 } else {
1006 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1007 REGB0 = REGB1;
1008 }
1009 }
1010 if (UNTAG_Bool(REGB0)) {
1011 /* ./native_interface//ni_metamodel.nit:135 */
1012 fra.me.REG[4] = CALL_mmbuilder___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1013 CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1014 } else {
1015 /* ./native_interface//ni_metamodel.nit:137 */
1016 CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1017 }
1018 /* ./native_interface//ni_metamodel.nit:141 */
1019 fra.me.REG[2] = CALL_ni_metamodel___MMMethod___friendly_cparams(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1020 /* ./native_interface//ni_metamodel.nit:143 */
1021 REGB0 = TAG_Int(3);
1022 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
1023 if (!once_value_6) {
1024 fra.me.REG[1] = BOX_NativeString("( ");
1025 REGB0 = TAG_Int(2);
1026 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1027 once_value_6 = fra.me.REG[1];
1028 register_static_object(&once_value_6);
1029 } else fra.me.REG[1] = once_value_6;
1030 fra.me.REG[1] = fra.me.REG[1];
1031 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1032 if (!once_value_7) {
1033 fra.me.REG[1] = BOX_NativeString(", ");
1034 REGB0 = TAG_Int(2);
1035 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1036 once_value_7 = fra.me.REG[1];
1037 register_static_object(&once_value_7);
1038 } else fra.me.REG[1] = once_value_7;
1039 fra.me.REG[1] = fra.me.REG[1];
1040 fra.me.REG[1] = CALL_string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1041 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1042 if (!once_value_8) {
1043 fra.me.REG[1] = BOX_NativeString(" )");
1044 REGB0 = TAG_Int(2);
1045 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1046 once_value_8 = fra.me.REG[1];
1047 register_static_object(&once_value_8);
1048 } else fra.me.REG[1] = once_value_8;
1049 fra.me.REG[1] = fra.me.REG[1];
1050 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1051 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1052 CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1053 /* ./native_interface//ni_metamodel.nit:145 */
1054 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1055 goto label9;
1056 label9: while(0);
1057 stack_frame_head = fra.me.prev;
1058 return fra.me.REG[3];
1059 }
1060 val_t ni_metamodel___MMMethod___friendly_csignature(val_t p0, val_t p1){
1061 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1062 val_t tmp;
1063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1064 fra.me.file = LOCATE_ni_metamodel;
1065 fra.me.line = 148;
1066 fra.me.meth = LOCATE_ni_metamodel___MMMethod___friendly_csignature;
1067 fra.me.has_broke = 0;
1068 fra.me.REG_size = 2;
1069 fra.me.REG[0] = NIT_NULL;
1070 fra.me.REG[1] = NIT_NULL;
1071 fra.me.REG[0] = p0;
1072 fra.me.REG[1] = p1;
1073 /* ./native_interface//ni_metamodel.nit:150 */
1074 fra.me.REG[1] = CALL_ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
1075 goto label1;
1076 label1: while(0);
1077 stack_frame_head = fra.me.prev;
1078 return fra.me.REG[1];
1079 }
1080 val_t ni_metamodel___MMMethod___frontier_csignature_from(val_t p0, val_t p1, val_t p2){
1081 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1082 val_t tmp;
1083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1084 fra.me.file = LOCATE_ni_metamodel;
1085 fra.me.line = 153;
1086 fra.me.meth = LOCATE_ni_metamodel___MMMethod___frontier_csignature_from;
1087 fra.me.has_broke = 0;
1088 fra.me.REG_size = 3;
1089 fra.me.REG[0] = NIT_NULL;
1090 fra.me.REG[1] = NIT_NULL;
1091 fra.me.REG[2] = NIT_NULL;
1092 fra.me.REG[0] = p0;
1093 fra.me.REG[1] = p1;
1094 fra.me.REG[2] = p2;
1095 /* ./native_interface//ni_metamodel.nit:155 */
1096 fra.me.REG[1] = CALL_ni_metamodel___MMMethod___local_friendly_name_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1097 fra.me.REG[2] = CALL_ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1098 goto label1;
1099 label1: while(0);
1100 stack_frame_head = fra.me.prev;
1101 return fra.me.REG[2];
1102 }
1103 val_t ni_metamodel___MMMethod___friendly_super_csignature(val_t p0){
1104 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1105 val_t REGB0;
1106 val_t tmp;
1107 static val_t once_value_1; /* Once value */
1108 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1109 fra.me.file = LOCATE_ni_metamodel;
1110 fra.me.line = 158;
1111 fra.me.meth = LOCATE_ni_metamodel___MMMethod___friendly_super_csignature;
1112 fra.me.has_broke = 0;
1113 fra.me.REG_size = 3;
1114 fra.me.REG[0] = NIT_NULL;
1115 fra.me.REG[1] = NIT_NULL;
1116 fra.me.REG[2] = NIT_NULL;
1117 fra.me.REG[0] = p0;
1118 /* ./native_interface//ni_metamodel.nit:160 */
1119 if (!once_value_1) {
1120 fra.me.REG[1] = BOX_NativeString("___super");
1121 REGB0 = TAG_Int(8);
1122 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1123 once_value_1 = fra.me.REG[1];
1124 register_static_object(&once_value_1);
1125 } else fra.me.REG[1] = once_value_1;
1126 fra.me.REG[1] = fra.me.REG[1];
1127 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1128 fra.me.REG[2] = CALL_ni_metamodel___MMMethod___csignature_with_suffix(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1129 goto label2;
1130 label2: while(0);
1131 stack_frame_head = fra.me.prev;
1132 return fra.me.REG[2];
1133 }
1134 val_t ni_metamodel___MMMethod___frontier_super_csignature_from(val_t p0, val_t p1){
1135 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1136 val_t tmp;
1137 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1138 fra.me.file = LOCATE_ni_metamodel;
1139 fra.me.line = 163;
1140 fra.me.meth = LOCATE_ni_metamodel___MMMethod___frontier_super_csignature_from;
1141 fra.me.has_broke = 0;
1142 fra.me.REG_size = 3;
1143 fra.me.REG[0] = NIT_NULL;
1144 fra.me.REG[1] = NIT_NULL;
1145 fra.me.REG[2] = NIT_NULL;
1146 fra.me.REG[0] = p0;
1147 fra.me.REG[1] = p1;
1148 /* ./native_interface//ni_metamodel.nit:165 */
1149 fra.me.REG[1] = CALL_ni_metamodel___MMMethod___local_friendly_super_name_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1150 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1151 fra.me.REG[2] = CALL_ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1152 goto label1;
1153 label1: while(0);
1154 stack_frame_head = fra.me.prev;
1155 return fra.me.REG[2];
1156 }
1157 val_t ni_metamodel___MMMethod___impl_csignature(val_t p0){
1158 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1159 val_t REGB0;
1160 val_t tmp;
1161 static val_t once_value_1; /* Once value */
1162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1163 fra.me.file = LOCATE_ni_metamodel;
1164 fra.me.line = 168;
1165 fra.me.meth = LOCATE_ni_metamodel___MMMethod___impl_csignature;
1166 fra.me.has_broke = 0;
1167 fra.me.REG_size = 3;
1168 fra.me.REG[0] = NIT_NULL;
1169 fra.me.REG[1] = NIT_NULL;
1170 fra.me.REG[2] = NIT_NULL;
1171 fra.me.REG[0] = p0;
1172 /* ./native_interface//ni_metamodel.nit:170 */
1173 if (!once_value_1) {
1174 fra.me.REG[1] = BOX_NativeString("___impl");
1175 REGB0 = TAG_Int(7);
1176 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1177 once_value_1 = fra.me.REG[1];
1178 register_static_object(&once_value_1);
1179 } else fra.me.REG[1] = once_value_1;
1180 fra.me.REG[1] = fra.me.REG[1];
1181 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1182 fra.me.REG[2] = CALL_ni_metamodel___MMMethod___csignature_with_suffix(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1183 goto label2;
1184 label2: while(0);
1185 stack_frame_head = fra.me.prev;
1186 return fra.me.REG[2];
1187 }
1188 val_t ni_metamodel___MMMethod___cparams(val_t p0){
1189 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1190 val_t REGB0;
1191 val_t REGB1;
1192 val_t tmp;
1193 static val_t once_value_1; /* Once value */
1194 static val_t once_value_2; /* Once value */
1195 static val_t once_value_3; /* Once value */
1196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1197 fra.me.file = LOCATE_ni_metamodel;
1198 fra.me.line = 173;
1199 fra.me.meth = LOCATE_ni_metamodel___MMMethod___cparams;
1200 fra.me.has_broke = 0;
1201 fra.me.REG_size = 6;
1202 fra.me.REG[0] = NIT_NULL;
1203 fra.me.REG[1] = NIT_NULL;
1204 fra.me.REG[2] = NIT_NULL;
1205 fra.me.REG[3] = NIT_NULL;
1206 fra.me.REG[4] = NIT_NULL;
1207 fra.me.REG[5] = NIT_NULL;
1208 fra.me.REG[0] = p0;
1209 /* ./native_interface//ni_metamodel.nit:176 */
1210 fra.me.REG[1] = NEW_List_list___List___init();
1211 /* ./native_interface//ni_metamodel.nit:178 */
1212 REGB0 = CALL_syntax_base___MMLocalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
1213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1214 if (UNTAG_Bool(REGB0)) {
1215 /* ./native_interface//ni_metamodel.nit:179 */
1216 if (!once_value_1) {
1217 fra.me.REG[2] = BOX_NativeString("val_t recv");
1218 REGB0 = TAG_Int(10);
1219 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1220 once_value_1 = fra.me.REG[2];
1221 register_static_object(&once_value_1);
1222 } else fra.me.REG[2] = once_value_1;
1223 fra.me.REG[2] = fra.me.REG[2];
1224 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1225 }
1226 /* ./native_interface//ni_metamodel.nit:182 */
1227 fra.me.REG[0] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
1228 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1229 if (UNTAG_Bool(REGB0)) {
1230 nit_abort("Reciever is null", NULL, LOCATE_ni_metamodel, 182);
1231 }
1232 fra.me.REG[0] = CALL_static_type___MMSignature___params(fra.me.REG[0])(fra.me.REG[0]);
1233 /* ./../lib/standard//collection//array.nit:234 */
1234 REGB0 = TAG_Int(0);
1235 /* ./../lib/standard//collection//array.nit:235 */
1236 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1237 if (UNTAG_Bool(REGB1)) {
1238 } else {
1239 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
1240 }
1241 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1242 /* ./../lib/standard//collection//array.nit:236 */
1243 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[0]);
1244 /* ./../lib/standard//collection//array.nit:237 */
1245 while(1) {
1246 /* ./../lib/standard//collection//array.nit:23 */
1247 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1248 if (UNTAG_Bool(REGB1)) {
1249 } else {
1250 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1251 }
1252 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1253 /* ./../lib/standard//kernel.nit:212 */
1254 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1255 /* ./../lib/standard//collection//array.nit:237 */
1256 if (UNTAG_Bool(REGB1)) {
1257 /* ./../lib/standard//collection//array.nit:238 */
1258 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1259 if (UNTAG_Bool(REGB1)) {
1260 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
1261 }
1262 /* ./../lib/standard//collection//array.nit:654 */
1263 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1264 /* ./native_interface//ni_metamodel.nit:183 */
1265 REGB1 = TAG_Int(3);
1266 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
1267 if (!once_value_2) {
1268 fra.me.REG[5] = BOX_NativeString("val_t ");
1269 REGB1 = TAG_Int(6);
1270 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
1271 once_value_2 = fra.me.REG[5];
1272 register_static_object(&once_value_2);
1273 } else fra.me.REG[5] = once_value_2;
1274 fra.me.REG[5] = fra.me.REG[5];
1275 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1276 fra.me.REG[3] = CALL_static_type___MMParam___name(fra.me.REG[3])(fra.me.REG[3]);
1277 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1278 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1279 if (!once_value_3) {
1280 fra.me.REG[3] = BOX_NativeString("");
1281 REGB1 = TAG_Int(0);
1282 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
1283 once_value_3 = fra.me.REG[3];
1284 register_static_object(&once_value_3);
1285 } else fra.me.REG[3] = once_value_3;
1286 fra.me.REG[3] = fra.me.REG[3];
1287 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1288 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1289 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1290 /* ./../lib/standard//collection//array.nit:239 */
1291 REGB1 = TAG_Int(1);
1292 /* ./../lib/standard//kernel.nit:215 */
1293 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1294 /* ./../lib/standard//collection//array.nit:239 */
1295 REGB0 = REGB1;
1296 } else {
1297 /* ./../lib/standard//collection//array.nit:237 */
1298 goto label4;
1299 }
1300 }
1301 label4: while(0);
1302 /* ./native_interface//ni_metamodel.nit:186 */
1303 goto label5;
1304 label5: while(0);
1305 stack_frame_head = fra.me.prev;
1306 return fra.me.REG[1];
1307 }
1308 val_t ni_metamodel___MMMethod___out_csignature(val_t p0){
1309 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1310 val_t REGB0;
1311 val_t REGB1;
1312 val_t tmp;
1313 static val_t once_value_1; /* Once value */
1314 static val_t once_value_2; /* Once value */
1315 static val_t once_value_3; /* Once value */
1316 static val_t once_value_4; /* Once value */
1317 static val_t once_value_5; /* Once value */
1318 static val_t once_value_6; /* Once value */
1319 static val_t once_value_7; /* Once value */
1320 static val_t once_value_8; /* Once value */
1321 static val_t once_value_9; /* Once value */
1322 static val_t once_value_10; /* Once value */
1323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1324 fra.me.file = LOCATE_ni_metamodel;
1325 fra.me.line = 189;
1326 fra.me.meth = LOCATE_ni_metamodel___MMMethod___out_csignature;
1327 fra.me.has_broke = 0;
1328 fra.me.REG_size = 4;
1329 fra.me.REG[0] = NIT_NULL;
1330 fra.me.REG[1] = NIT_NULL;
1331 fra.me.REG[2] = NIT_NULL;
1332 fra.me.REG[3] = NIT_NULL;
1333 fra.me.REG[0] = p0;
1334 /* ./native_interface//ni_metamodel.nit:191 */
1335 fra.me.REG[1] = NEW_Buffer_string___Buffer___init();
1336 /* ./native_interface//ni_metamodel.nit:194 */
1337 fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
1338 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1339 if (UNTAG_Bool(REGB0)) {
1340 nit_abort("Reciever is null", NULL, LOCATE_ni_metamodel, 194);
1341 }
1342 fra.me.REG[2] = CALL_static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]);
1343 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1344 if (UNTAG_Bool(REGB0)) {
1345 } else {
1346 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1347 if (UNTAG_Bool(REGB1)) {
1348 REGB1 = TAG_Bool(false);
1349 REGB0 = REGB1;
1350 } else {
1351 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1352 REGB0 = REGB1;
1353 }
1354 }
1355 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1356 if (UNTAG_Bool(REGB0)) {
1357 REGB0 = TAG_Bool(true);
1358 } else {
1359 REGB1 = CALL_syntax_base___MMLocalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
1360 REGB0 = REGB1;
1361 }
1362 if (UNTAG_Bool(REGB0)) {
1363 /* ./native_interface//ni_metamodel.nit:195 */
1364 if (!once_value_1) {
1365 fra.me.REG[2] = BOX_NativeString("val_t ");
1366 REGB0 = TAG_Int(6);
1367 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1368 once_value_1 = fra.me.REG[2];
1369 register_static_object(&once_value_1);
1370 } else fra.me.REG[2] = once_value_1;
1371 fra.me.REG[2] = fra.me.REG[2];
1372 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1373 } else {
1374 /* ./native_interface//ni_metamodel.nit:197 */
1375 if (!once_value_2) {
1376 fra.me.REG[2] = BOX_NativeString("void ");
1377 REGB0 = TAG_Int(5);
1378 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1379 once_value_2 = fra.me.REG[2];
1380 register_static_object(&once_value_2);
1381 } else fra.me.REG[2] = once_value_2;
1382 fra.me.REG[2] = fra.me.REG[2];
1383 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1384 }
1385 /* ./native_interface//ni_metamodel.nit:201 */
1386 REGB0 = CALL_syntax_base___MMLocalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
1387 if (UNTAG_Bool(REGB0)) {
1388 /* ./native_interface//ni_metamodel.nit:202 */
1389 REGB0 = TAG_Int(5);
1390 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
1391 if (!once_value_3) {
1392 fra.me.REG[3] = BOX_NativeString("NEW_");
1393 REGB0 = TAG_Int(4);
1394 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1395 once_value_3 = fra.me.REG[3];
1396 register_static_object(&once_value_3);
1397 } else fra.me.REG[3] = once_value_3;
1398 fra.me.REG[3] = fra.me.REG[3];
1399 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1400 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1401 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1402 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1403 if (!once_value_4) {
1404 fra.me.REG[3] = BOX_NativeString("_");
1405 REGB0 = TAG_Int(1);
1406 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1407 once_value_4 = fra.me.REG[3];
1408 register_static_object(&once_value_4);
1409 } else fra.me.REG[3] = once_value_4;
1410 fra.me.REG[3] = fra.me.REG[3];
1411 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1412 fra.me.REG[3] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
1413 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1414 if (!once_value_5) {
1415 fra.me.REG[3] = BOX_NativeString("");
1416 REGB0 = TAG_Int(0);
1417 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1418 once_value_5 = fra.me.REG[3];
1419 register_static_object(&once_value_5);
1420 } else fra.me.REG[3] = once_value_5;
1421 fra.me.REG[3] = fra.me.REG[3];
1422 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1423 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1424 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1425 } else {
1426 /* ./native_interface//ni_metamodel.nit:204 */
1427 REGB0 = TAG_Int(3);
1428 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
1429 if (!once_value_6) {
1430 fra.me.REG[3] = BOX_NativeString("");
1431 REGB0 = TAG_Int(0);
1432 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1433 once_value_6 = fra.me.REG[3];
1434 register_static_object(&once_value_6);
1435 } else fra.me.REG[3] = once_value_6;
1436 fra.me.REG[3] = fra.me.REG[3];
1437 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1438 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1439 fra.me.REG[3] = CALL_mmbuilder___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1440 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1441 if (!once_value_7) {
1442 fra.me.REG[3] = BOX_NativeString("___out");
1443 REGB0 = TAG_Int(6);
1444 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1445 once_value_7 = fra.me.REG[3];
1446 register_static_object(&once_value_7);
1447 } else fra.me.REG[3] = once_value_7;
1448 fra.me.REG[3] = fra.me.REG[3];
1449 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1450 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1451 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1452 }
1453 /* ./native_interface//ni_metamodel.nit:208 */
1454 REGB0 = TAG_Int(3);
1455 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
1456 if (!once_value_8) {
1457 fra.me.REG[3] = BOX_NativeString("( ");
1458 REGB0 = TAG_Int(2);
1459 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1460 once_value_8 = fra.me.REG[3];
1461 register_static_object(&once_value_8);
1462 } else fra.me.REG[3] = once_value_8;
1463 fra.me.REG[3] = fra.me.REG[3];
1464 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1465 fra.me.REG[0] = CALL_ni_metamodel___MMMethod___cparams(fra.me.REG[0])(fra.me.REG[0]);
1466 if (!once_value_9) {
1467 fra.me.REG[3] = BOX_NativeString(", ");
1468 REGB0 = TAG_Int(2);
1469 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1470 once_value_9 = fra.me.REG[3];
1471 register_static_object(&once_value_9);
1472 } else fra.me.REG[3] = once_value_9;
1473 fra.me.REG[3] = fra.me.REG[3];
1474 fra.me.REG[3] = CALL_string___Collection___join(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1475 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1476 if (!once_value_10) {
1477 fra.me.REG[3] = BOX_NativeString(" )");
1478 REGB0 = TAG_Int(2);
1479 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1480 once_value_10 = fra.me.REG[3];
1481 register_static_object(&once_value_10);
1482 } else fra.me.REG[3] = once_value_10;
1483 fra.me.REG[3] = fra.me.REG[3];
1484 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1485 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1486 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1487 /* ./native_interface//ni_metamodel.nit:210 */
1488 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1489 goto label11;
1490 label11: while(0);
1491 stack_frame_head = fra.me.prev;
1492 return fra.me.REG[1];
1493 }
1494 val_t ni_metamodel___MMImportedCast___in_name(val_t p0){
1495 struct {struct stack_frame_t me;} fra;
1496 val_t REGB0;
1497 val_t tmp;
1498 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1499 fra.me.file = LOCATE_ni_metamodel;
1500 fra.me.line = 216;
1501 fra.me.meth = LOCATE_ni_metamodel___MMImportedCast___in_name;
1502 fra.me.has_broke = 0;
1503 fra.me.REG_size = 1;
1504 fra.me.REG[0] = NIT_NULL;
1505 fra.me.REG[0] = p0;
1506 /* ./native_interface//ni_metamodel.nit:216 */
1507 REGB0 = TAG_Bool(ATTR_ni_metamodel___MMImportedCast_____atin_name(fra.me.REG[0])!=NIT_NULL);
1508 if (UNTAG_Bool(REGB0)) {
1509 } else {
1510 nit_abort("Uninitialized attribute %s", "@in_name", LOCATE_ni_metamodel, 216);
1511 }
1512 fra.me.REG[0] = ATTR_ni_metamodel___MMImportedCast_____atin_name(fra.me.REG[0]);
1513 stack_frame_head = fra.me.prev;
1514 return fra.me.REG[0];
1515 }
1516 void ni_metamodel___MMImportedCast___in_name__eq(val_t p0, val_t p1){
1517 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1518 val_t tmp;
1519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1520 fra.me.file = LOCATE_ni_metamodel;
1521 fra.me.line = 216;
1522 fra.me.meth = LOCATE_ni_metamodel___MMImportedCast___in_name__eq;
1523 fra.me.has_broke = 0;
1524 fra.me.REG_size = 2;
1525 fra.me.REG[0] = NIT_NULL;
1526 fra.me.REG[1] = NIT_NULL;
1527 fra.me.REG[0] = p0;
1528 fra.me.REG[1] = p1;
1529 /* ./native_interface//ni_metamodel.nit:216 */
1530 ATTR_ni_metamodel___MMImportedCast_____atin_name(fra.me.REG[0]) = fra.me.REG[1];
1531 stack_frame_head = fra.me.prev;
1532 return;
1533 }
1534 val_t ni_metamodel___MMImportedCast___as_friendly_extern_name(val_t p0){
1535 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1536 val_t REGB0;
1537 val_t tmp;
1538 static val_t once_value_1; /* Once value */
1539 static val_t once_value_2; /* Once value */
1540 static val_t once_value_4; /* Once value */
1541 static val_t once_value_5; /* Once value */
1542 static val_t once_value_6; /* Once value */
1543 static val_t once_value_7; /* Once value */
1544 static val_t once_value_8; /* Once value */
1545 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1546 fra.me.file = LOCATE_ni_metamodel;
1547 fra.me.line = 218;
1548 fra.me.meth = LOCATE_ni_metamodel___MMImportedCast___as_friendly_extern_name;
1549 fra.me.has_broke = 0;
1550 fra.me.REG_size = 4;
1551 fra.me.REG[0] = NIT_NULL;
1552 fra.me.REG[1] = NIT_NULL;
1553 fra.me.REG[2] = NIT_NULL;
1554 fra.me.REG[3] = NIT_NULL;
1555 fra.me.REG[0] = p0;
1556 /* ./native_interface//ni_metamodel.nit:219 */
1557 REGB0 = CALL_static_type___MMImportedCast___is_about_nullable_only(fra.me.REG[0])(fra.me.REG[0]);
1558 if (UNTAG_Bool(REGB0)) {
1559 /* ./native_interface//ni_metamodel.nit:220 */
1560 REGB0 = CALL_static_type___MMImportedCast___is_not_null_to_nullable(fra.me.REG[0])(fra.me.REG[0]);
1561 if (UNTAG_Bool(REGB0)) {
1562 /* ./native_interface//ni_metamodel.nit:222 */
1563 REGB0 = TAG_Int(3);
1564 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
1565 if (!once_value_1) {
1566 fra.me.REG[2] = BOX_NativeString("");
1567 REGB0 = TAG_Int(0);
1568 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1569 once_value_1 = fra.me.REG[2];
1570 register_static_object(&once_value_1);
1571 } else fra.me.REG[2] = once_value_1;
1572 fra.me.REG[2] = fra.me.REG[2];
1573 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1574 fra.me.REG[2] = CALL_static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
1575 fra.me.REG[2] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[2])(fra.me.REG[2]);
1576 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1577 if (!once_value_2) {
1578 fra.me.REG[2] = BOX_NativeString("_as_nullable");
1579 REGB0 = TAG_Int(12);
1580 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1581 once_value_2 = fra.me.REG[2];
1582 register_static_object(&once_value_2);
1583 } else fra.me.REG[2] = once_value_2;
1584 fra.me.REG[2] = fra.me.REG[2];
1585 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1586 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1587 goto label3;
1588 } else {
1589 /* ./native_interface//ni_metamodel.nit:223 */
1590 REGB0 = CALL_static_type___MMImportedCast___is_nullable_to_not_null(fra.me.REG[0])(fra.me.REG[0]);
1591 if (UNTAG_Bool(REGB0)) {
1592 /* ./native_interface//ni_metamodel.nit:225 */
1593 REGB0 = TAG_Int(3);
1594 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
1595 if (!once_value_4) {
1596 fra.me.REG[3] = BOX_NativeString("");
1597 REGB0 = TAG_Int(0);
1598 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1599 once_value_4 = fra.me.REG[3];
1600 register_static_object(&once_value_4);
1601 } else fra.me.REG[3] = once_value_4;
1602 fra.me.REG[3] = fra.me.REG[3];
1603 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1604 fra.me.REG[3] = CALL_static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
1605 fra.me.REG[3] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[3])(fra.me.REG[3]);
1606 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1607 if (!once_value_5) {
1608 fra.me.REG[3] = BOX_NativeString("_as_not_null");
1609 REGB0 = TAG_Int(12);
1610 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1611 once_value_5 = fra.me.REG[3];
1612 register_static_object(&once_value_5);
1613 } else fra.me.REG[3] = once_value_5;
1614 fra.me.REG[3] = fra.me.REG[3];
1615 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1616 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1617 fra.me.REG[1] = fra.me.REG[2];
1618 goto label3;
1619 } else {
1620 /* ./native_interface//ni_metamodel.nit:227 */
1621 nit_abort("Aborted", NULL, LOCATE_ni_metamodel, 227);
1622 }
1623 }
1624 } else {
1625 /* ./native_interface//ni_metamodel.nit:231 */
1626 REGB0 = TAG_Int(5);
1627 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
1628 if (!once_value_6) {
1629 fra.me.REG[3] = BOX_NativeString("");
1630 REGB0 = TAG_Int(0);
1631 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1632 once_value_6 = fra.me.REG[3];
1633 register_static_object(&once_value_6);
1634 } else fra.me.REG[3] = once_value_6;
1635 fra.me.REG[3] = fra.me.REG[3];
1636 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1637 fra.me.REG[3] = CALL_static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
1638 fra.me.REG[3] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[3])(fra.me.REG[3]);
1639 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1640 if (!once_value_7) {
1641 fra.me.REG[3] = BOX_NativeString("_as_");
1642 REGB0 = TAG_Int(4);
1643 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1644 once_value_7 = fra.me.REG[3];
1645 register_static_object(&once_value_7);
1646 } else fra.me.REG[3] = once_value_7;
1647 fra.me.REG[3] = fra.me.REG[3];
1648 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1649 fra.me.REG[0] = CALL_static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
1650 fra.me.REG[0] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0]);
1651 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1652 if (!once_value_8) {
1653 fra.me.REG[0] = BOX_NativeString("");
1654 REGB0 = TAG_Int(0);
1655 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1656 once_value_8 = fra.me.REG[0];
1657 register_static_object(&once_value_8);
1658 } else fra.me.REG[0] = once_value_8;
1659 fra.me.REG[0] = fra.me.REG[0];
1660 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1661 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1662 fra.me.REG[1] = fra.me.REG[2];
1663 goto label3;
1664 }
1665 label3: while(0);
1666 stack_frame_head = fra.me.prev;
1667 return fra.me.REG[1];
1668 }
1669 val_t ni_metamodel___MMImportedCast___as_local_cname(val_t p0, val_t p1){
1670 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1671 val_t REGB0;
1672 val_t tmp;
1673 static val_t once_value_1; /* Once value */
1674 static val_t once_value_2; /* Once value */
1675 static val_t once_value_3; /* Once value */
1676 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1677 fra.me.file = LOCATE_ni_metamodel;
1678 fra.me.line = 235;
1679 fra.me.meth = LOCATE_ni_metamodel___MMImportedCast___as_local_cname;
1680 fra.me.has_broke = 0;
1681 fra.me.REG_size = 4;
1682 fra.me.REG[0] = NIT_NULL;
1683 fra.me.REG[1] = NIT_NULL;
1684 fra.me.REG[2] = NIT_NULL;
1685 fra.me.REG[3] = NIT_NULL;
1686 fra.me.REG[0] = p0;
1687 fra.me.REG[1] = p1;
1688 /* ./native_interface//ni_metamodel.nit:236 */
1689 REGB0 = TAG_Int(5);
1690 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
1691 if (!once_value_1) {
1692 fra.me.REG[3] = BOX_NativeString("");
1693 REGB0 = TAG_Int(0);
1694 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1695 once_value_1 = fra.me.REG[3];
1696 register_static_object(&once_value_1);
1697 } else fra.me.REG[3] = once_value_1;
1698 fra.me.REG[3] = fra.me.REG[3];
1699 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1700 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1701 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1702 if (!once_value_2) {
1703 fra.me.REG[1] = BOX_NativeString("_");
1704 REGB0 = TAG_Int(1);
1705 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1706 once_value_2 = fra.me.REG[1];
1707 register_static_object(&once_value_2);
1708 } else fra.me.REG[1] = once_value_2;
1709 fra.me.REG[1] = fra.me.REG[1];
1710 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1711 fra.me.REG[0] = CALL_ni_metamodel___MMImportedCast___as_friendly_extern_name(fra.me.REG[0])(fra.me.REG[0]);
1712 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1713 if (!once_value_3) {
1714 fra.me.REG[0] = BOX_NativeString("");
1715 REGB0 = TAG_Int(0);
1716 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1717 once_value_3 = fra.me.REG[0];
1718 register_static_object(&once_value_3);
1719 } else fra.me.REG[0] = once_value_3;
1720 fra.me.REG[0] = fra.me.REG[0];
1721 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1722 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1723 goto label4;
1724 label4: while(0);
1725 stack_frame_head = fra.me.prev;
1726 return fra.me.REG[2];
1727 }
1728 val_t ni_metamodel___MMImportedCast___as_local_csignature(val_t p0, val_t p1){
1729 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1730 val_t REGB0;
1731 val_t tmp;
1732 static val_t once_value_1; /* Once value */
1733 static val_t once_value_2; /* Once value */
1734 static val_t once_value_3; /* Once value */
1735 static val_t once_value_4; /* Once value */
1736 static val_t once_value_5; /* Once value */
1737 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1738 fra.me.file = LOCATE_ni_metamodel;
1739 fra.me.line = 239;
1740 fra.me.meth = LOCATE_ni_metamodel___MMImportedCast___as_local_csignature;
1741 fra.me.has_broke = 0;
1742 fra.me.REG_size = 4;
1743 fra.me.REG[0] = NIT_NULL;
1744 fra.me.REG[1] = NIT_NULL;
1745 fra.me.REG[2] = NIT_NULL;
1746 fra.me.REG[3] = NIT_NULL;
1747 fra.me.REG[0] = p0;
1748 fra.me.REG[1] = p1;
1749 /* ./native_interface//ni_metamodel.nit:241 */
1750 REGB0 = TAG_Int(9);
1751 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
1752 if (!once_value_1) {
1753 fra.me.REG[3] = BOX_NativeString("");
1754 REGB0 = TAG_Int(0);
1755 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1756 once_value_1 = fra.me.REG[3];
1757 register_static_object(&once_value_1);
1758 } else fra.me.REG[3] = once_value_1;
1759 fra.me.REG[3] = fra.me.REG[3];
1760 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1761 fra.me.REG[3] = CALL_static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
1762 fra.me.REG[3] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[3])(fra.me.REG[3]);
1763 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1764 if (!once_value_2) {
1765 fra.me.REG[3] = BOX_NativeString(" ");
1766 REGB0 = TAG_Int(1);
1767 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1768 once_value_2 = fra.me.REG[3];
1769 register_static_object(&once_value_2);
1770 } else fra.me.REG[3] = once_value_2;
1771 fra.me.REG[3] = fra.me.REG[3];
1772 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1773 fra.me.REG[1] = CALL_ni_metamodel___MMImportedCast___as_local_cname(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1774 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1775 if (!once_value_3) {
1776 fra.me.REG[1] = BOX_NativeString("( ");
1777 REGB0 = TAG_Int(2);
1778 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1779 once_value_3 = fra.me.REG[1];
1780 register_static_object(&once_value_3);
1781 } else fra.me.REG[1] = once_value_3;
1782 fra.me.REG[1] = fra.me.REG[1];
1783 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1784 fra.me.REG[1] = CALL_static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
1785 fra.me.REG[1] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[1])(fra.me.REG[1]);
1786 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1787 if (!once_value_4) {
1788 fra.me.REG[1] = BOX_NativeString(" ");
1789 REGB0 = TAG_Int(1);
1790 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1791 once_value_4 = fra.me.REG[1];
1792 register_static_object(&once_value_4);
1793 } else fra.me.REG[1] = once_value_4;
1794 fra.me.REG[1] = fra.me.REG[1];
1795 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1796 fra.me.REG[0] = CALL_ni_metamodel___MMImportedCast___in_name(fra.me.REG[0])(fra.me.REG[0]);
1797 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1798 if (!once_value_5) {
1799 fra.me.REG[0] = BOX_NativeString(" )");
1800 REGB0 = TAG_Int(2);
1801 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1802 once_value_5 = fra.me.REG[0];
1803 register_static_object(&once_value_5);
1804 } else fra.me.REG[0] = once_value_5;
1805 fra.me.REG[0] = fra.me.REG[0];
1806 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1807 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1808 goto label6;
1809 label6: while(0);
1810 stack_frame_head = fra.me.prev;
1811 return fra.me.REG[2];
1812 }
1813 val_t ni_metamodel___MMImportedCast___as_friendly_csignature(val_t p0){
1814 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1815 val_t REGB0;
1816 val_t tmp;
1817 static val_t once_value_1; /* Once value */
1818 static val_t once_value_2; /* Once value */
1819 static val_t once_value_3; /* Once value */
1820 static val_t once_value_4; /* Once value */
1821 static val_t once_value_5; /* Once value */
1822 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1823 fra.me.file = LOCATE_ni_metamodel;
1824 fra.me.line = 244;
1825 fra.me.meth = LOCATE_ni_metamodel___MMImportedCast___as_friendly_csignature;
1826 fra.me.has_broke = 0;
1827 fra.me.REG_size = 3;
1828 fra.me.REG[0] = NIT_NULL;
1829 fra.me.REG[1] = NIT_NULL;
1830 fra.me.REG[2] = NIT_NULL;
1831 fra.me.REG[0] = p0;
1832 /* ./native_interface//ni_metamodel.nit:246 */
1833 REGB0 = TAG_Int(9);
1834 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
1835 if (!once_value_1) {
1836 fra.me.REG[2] = BOX_NativeString("");
1837 REGB0 = TAG_Int(0);
1838 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1839 once_value_1 = fra.me.REG[2];
1840 register_static_object(&once_value_1);
1841 } else fra.me.REG[2] = once_value_1;
1842 fra.me.REG[2] = fra.me.REG[2];
1843 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1844 fra.me.REG[2] = CALL_static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
1845 fra.me.REG[2] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[2])(fra.me.REG[2]);
1846 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1847 if (!once_value_2) {
1848 fra.me.REG[2] = BOX_NativeString(" ");
1849 REGB0 = TAG_Int(1);
1850 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1851 once_value_2 = fra.me.REG[2];
1852 register_static_object(&once_value_2);
1853 } else fra.me.REG[2] = once_value_2;
1854 fra.me.REG[2] = fra.me.REG[2];
1855 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1856 fra.me.REG[2] = CALL_ni_metamodel___MMImportedCast___as_friendly_extern_name(fra.me.REG[0])(fra.me.REG[0]);
1857 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1858 if (!once_value_3) {
1859 fra.me.REG[2] = BOX_NativeString("( ");
1860 REGB0 = TAG_Int(2);
1861 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1862 once_value_3 = fra.me.REG[2];
1863 register_static_object(&once_value_3);
1864 } else fra.me.REG[2] = once_value_3;
1865 fra.me.REG[2] = fra.me.REG[2];
1866 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1867 fra.me.REG[2] = CALL_static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
1868 fra.me.REG[2] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[2])(fra.me.REG[2]);
1869 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1870 if (!once_value_4) {
1871 fra.me.REG[2] = BOX_NativeString(" ");
1872 REGB0 = TAG_Int(1);
1873 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1874 once_value_4 = fra.me.REG[2];
1875 register_static_object(&once_value_4);
1876 } else fra.me.REG[2] = once_value_4;
1877 fra.me.REG[2] = fra.me.REG[2];
1878 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1879 fra.me.REG[0] = CALL_ni_metamodel___MMImportedCast___in_name(fra.me.REG[0])(fra.me.REG[0]);
1880 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1881 if (!once_value_5) {
1882 fra.me.REG[0] = BOX_NativeString(" )");
1883 REGB0 = TAG_Int(2);
1884 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1885 once_value_5 = fra.me.REG[0];
1886 register_static_object(&once_value_5);
1887 } else fra.me.REG[0] = once_value_5;
1888 fra.me.REG[0] = fra.me.REG[0];
1889 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1890 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1891 goto label6;
1892 label6: while(0);
1893 stack_frame_head = fra.me.prev;
1894 return fra.me.REG[1];
1895 }
1896 val_t ni_metamodel___MMImportedCast___is_a_friendly_extern_name(val_t p0){
1897 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1898 val_t REGB0;
1899 val_t tmp;
1900 static val_t once_value_1; /* Once value */
1901 static val_t once_value_2; /* Once value */
1902 static val_t once_value_4; /* Once value */
1903 static val_t once_value_5; /* Once value */
1904 static val_t once_value_6; /* Once value */
1905 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1906 fra.me.file = LOCATE_ni_metamodel;
1907 fra.me.line = 249;
1908 fra.me.meth = LOCATE_ni_metamodel___MMImportedCast___is_a_friendly_extern_name;
1909 fra.me.has_broke = 0;
1910 fra.me.REG_size = 4;
1911 fra.me.REG[0] = NIT_NULL;
1912 fra.me.REG[1] = NIT_NULL;
1913 fra.me.REG[2] = NIT_NULL;
1914 fra.me.REG[3] = NIT_NULL;
1915 fra.me.REG[0] = p0;
1916 /* ./native_interface//ni_metamodel.nit:250 */
1917 REGB0 = CALL_static_type___MMImportedCast___is_about_nullable_only(fra.me.REG[0])(fra.me.REG[0]);
1918 if (UNTAG_Bool(REGB0)) {
1919 /* ./native_interface//ni_metamodel.nit:251 */
1920 REGB0 = CALL_static_type___MMImportedCast___is_not_null_to_nullable(fra.me.REG[0])(fra.me.REG[0]);
1921 if (UNTAG_Bool(REGB0)) {
1922 /* ./native_interface//ni_metamodel.nit:252 */
1923 nit_abort("Aborted", NULL, LOCATE_ni_metamodel, 252);
1924 } else {
1925 /* ./native_interface//ni_metamodel.nit:253 */
1926 REGB0 = CALL_static_type___MMImportedCast___is_nullable_to_not_null(fra.me.REG[0])(fra.me.REG[0]);
1927 if (UNTAG_Bool(REGB0)) {
1928 /* ./native_interface//ni_metamodel.nit:256 */
1929 REGB0 = TAG_Int(3);
1930 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
1931 if (!once_value_1) {
1932 fra.me.REG[2] = BOX_NativeString("");
1933 REGB0 = TAG_Int(0);
1934 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1935 once_value_1 = fra.me.REG[2];
1936 register_static_object(&once_value_1);
1937 } else fra.me.REG[2] = once_value_1;
1938 fra.me.REG[2] = fra.me.REG[2];
1939 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1940 fra.me.REG[2] = CALL_static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
1941 fra.me.REG[2] = CALL_static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
1942 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1943 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1944 if (!once_value_2) {
1945 fra.me.REG[2] = BOX_NativeString("_is_null");
1946 REGB0 = TAG_Int(8);
1947 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1948 once_value_2 = fra.me.REG[2];
1949 register_static_object(&once_value_2);
1950 } else fra.me.REG[2] = once_value_2;
1951 fra.me.REG[2] = fra.me.REG[2];
1952 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1953 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1954 goto label3;
1955 } else {
1956 /* ./native_interface//ni_metamodel.nit:258 */
1957 nit_abort("Aborted", NULL, LOCATE_ni_metamodel, 258);
1958 }
1959 }
1960 } else {
1961 /* ./native_interface//ni_metamodel.nit:262 */
1962 REGB0 = TAG_Int(5);
1963 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
1964 if (!once_value_4) {
1965 fra.me.REG[3] = BOX_NativeString("");
1966 REGB0 = TAG_Int(0);
1967 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1968 once_value_4 = fra.me.REG[3];
1969 register_static_object(&once_value_4);
1970 } else fra.me.REG[3] = once_value_4;
1971 fra.me.REG[3] = fra.me.REG[3];
1972 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1973 fra.me.REG[3] = CALL_static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
1974 fra.me.REG[3] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[3])(fra.me.REG[3]);
1975 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1976 if (!once_value_5) {
1977 fra.me.REG[3] = BOX_NativeString("_is_a_");
1978 REGB0 = TAG_Int(6);
1979 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1980 once_value_5 = fra.me.REG[3];
1981 register_static_object(&once_value_5);
1982 } else fra.me.REG[3] = once_value_5;
1983 fra.me.REG[3] = fra.me.REG[3];
1984 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1985 fra.me.REG[0] = CALL_static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
1986 fra.me.REG[0] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0]);
1987 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1988 if (!once_value_6) {
1989 fra.me.REG[0] = BOX_NativeString("");
1990 REGB0 = TAG_Int(0);
1991 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1992 once_value_6 = fra.me.REG[0];
1993 register_static_object(&once_value_6);
1994 } else fra.me.REG[0] = once_value_6;
1995 fra.me.REG[0] = fra.me.REG[0];
1996 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1997 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1998 fra.me.REG[1] = fra.me.REG[2];
1999 goto label3;
2000 }
2001 label3: while(0);
2002 stack_frame_head = fra.me.prev;
2003 return fra.me.REG[1];
2004 }
2005 val_t ni_metamodel___MMImportedCast___is_a_local_cname(val_t p0, val_t p1){
2006 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2007 val_t REGB0;
2008 val_t tmp;
2009 static val_t once_value_1; /* Once value */
2010 static val_t once_value_2; /* Once value */
2011 static val_t once_value_3; /* Once value */
2012 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2013 fra.me.file = LOCATE_ni_metamodel;
2014 fra.me.line = 266;
2015 fra.me.meth = LOCATE_ni_metamodel___MMImportedCast___is_a_local_cname;
2016 fra.me.has_broke = 0;
2017 fra.me.REG_size = 4;
2018 fra.me.REG[0] = NIT_NULL;
2019 fra.me.REG[1] = NIT_NULL;
2020 fra.me.REG[2] = NIT_NULL;
2021 fra.me.REG[3] = NIT_NULL;
2022 fra.me.REG[0] = p0;
2023 fra.me.REG[1] = p1;
2024 /* ./native_interface//ni_metamodel.nit:267 */
2025 REGB0 = TAG_Int(5);
2026 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
2027 if (!once_value_1) {
2028 fra.me.REG[3] = BOX_NativeString("");
2029 REGB0 = TAG_Int(0);
2030 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2031 once_value_1 = fra.me.REG[3];
2032 register_static_object(&once_value_1);
2033 } else fra.me.REG[3] = once_value_1;
2034 fra.me.REG[3] = fra.me.REG[3];
2035 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2036 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2037 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2038 if (!once_value_2) {
2039 fra.me.REG[1] = BOX_NativeString("_");
2040 REGB0 = TAG_Int(1);
2041 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
2042 once_value_2 = fra.me.REG[1];
2043 register_static_object(&once_value_2);
2044 } else fra.me.REG[1] = once_value_2;
2045 fra.me.REG[1] = fra.me.REG[1];
2046 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2047 fra.me.REG[0] = CALL_ni_metamodel___MMImportedCast___is_a_friendly_extern_name(fra.me.REG[0])(fra.me.REG[0]);
2048 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2049 if (!once_value_3) {
2050 fra.me.REG[0] = BOX_NativeString("");
2051 REGB0 = TAG_Int(0);
2052 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2053 once_value_3 = fra.me.REG[0];
2054 register_static_object(&once_value_3);
2055 } else fra.me.REG[0] = once_value_3;
2056 fra.me.REG[0] = fra.me.REG[0];
2057 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2058 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2059 goto label4;
2060 label4: while(0);
2061 stack_frame_head = fra.me.prev;
2062 return fra.me.REG[2];
2063 }
2064 val_t ni_metamodel___MMImportedCast___is_a_local_csignature(val_t p0, val_t p1){
2065 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2066 val_t REGB0;
2067 val_t tmp;
2068 static val_t once_value_1; /* Once value */
2069 static val_t once_value_2; /* Once value */
2070 static val_t once_value_3; /* Once value */
2071 static val_t once_value_4; /* Once value */
2072 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2073 fra.me.file = LOCATE_ni_metamodel;
2074 fra.me.line = 270;
2075 fra.me.meth = LOCATE_ni_metamodel___MMImportedCast___is_a_local_csignature;
2076 fra.me.has_broke = 0;
2077 fra.me.REG_size = 4;
2078 fra.me.REG[0] = NIT_NULL;
2079 fra.me.REG[1] = NIT_NULL;
2080 fra.me.REG[2] = NIT_NULL;
2081 fra.me.REG[3] = NIT_NULL;
2082 fra.me.REG[0] = p0;
2083 fra.me.REG[1] = p1;
2084 /* ./native_interface//ni_metamodel.nit:274 */
2085 REGB0 = TAG_Int(7);
2086 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
2087 if (!once_value_1) {
2088 fra.me.REG[3] = BOX_NativeString("int ");
2089 REGB0 = TAG_Int(4);
2090 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2091 once_value_1 = fra.me.REG[3];
2092 register_static_object(&once_value_1);
2093 } else fra.me.REG[3] = once_value_1;
2094 fra.me.REG[3] = fra.me.REG[3];
2095 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2096 fra.me.REG[1] = CALL_ni_metamodel___MMImportedCast___is_a_local_cname(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2097 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2098 if (!once_value_2) {
2099 fra.me.REG[1] = BOX_NativeString("( ");
2100 REGB0 = TAG_Int(2);
2101 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
2102 once_value_2 = fra.me.REG[1];
2103 register_static_object(&once_value_2);
2104 } else fra.me.REG[1] = once_value_2;
2105 fra.me.REG[1] = fra.me.REG[1];
2106 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2107 fra.me.REG[1] = CALL_static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
2108 fra.me.REG[1] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[1])(fra.me.REG[1]);
2109 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2110 if (!once_value_3) {
2111 fra.me.REG[1] = BOX_NativeString(" ");
2112 REGB0 = TAG_Int(1);
2113 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
2114 once_value_3 = fra.me.REG[1];
2115 register_static_object(&once_value_3);
2116 } else fra.me.REG[1] = once_value_3;
2117 fra.me.REG[1] = fra.me.REG[1];
2118 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2119 fra.me.REG[0] = CALL_ni_metamodel___MMImportedCast___in_name(fra.me.REG[0])(fra.me.REG[0]);
2120 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2121 if (!once_value_4) {
2122 fra.me.REG[0] = BOX_NativeString(" )");
2123 REGB0 = TAG_Int(2);
2124 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2125 once_value_4 = fra.me.REG[0];
2126 register_static_object(&once_value_4);
2127 } else fra.me.REG[0] = once_value_4;
2128 fra.me.REG[0] = fra.me.REG[0];
2129 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2130 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2131 goto label5;
2132 label5: while(0);
2133 stack_frame_head = fra.me.prev;
2134 return fra.me.REG[2];
2135 }
2136 val_t ni_metamodel___MMImportedCast___is_a_friendly_csignature(val_t p0){
2137 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2138 val_t REGB0;
2139 val_t tmp;
2140 static val_t once_value_1; /* Once value */
2141 static val_t once_value_2; /* Once value */
2142 static val_t once_value_3; /* Once value */
2143 static val_t once_value_4; /* Once value */
2144 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2145 fra.me.file = LOCATE_ni_metamodel;
2146 fra.me.line = 277;
2147 fra.me.meth = LOCATE_ni_metamodel___MMImportedCast___is_a_friendly_csignature;
2148 fra.me.has_broke = 0;
2149 fra.me.REG_size = 3;
2150 fra.me.REG[0] = NIT_NULL;
2151 fra.me.REG[1] = NIT_NULL;
2152 fra.me.REG[2] = NIT_NULL;
2153 fra.me.REG[0] = p0;
2154 /* ./native_interface//ni_metamodel.nit:279 */
2155 REGB0 = TAG_Int(7);
2156 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
2157 if (!once_value_1) {
2158 fra.me.REG[2] = BOX_NativeString("int ");
2159 REGB0 = TAG_Int(4);
2160 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
2161 once_value_1 = fra.me.REG[2];
2162 register_static_object(&once_value_1);
2163 } else fra.me.REG[2] = once_value_1;
2164 fra.me.REG[2] = fra.me.REG[2];
2165 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2166 fra.me.REG[2] = CALL_ni_metamodel___MMImportedCast___is_a_friendly_extern_name(fra.me.REG[0])(fra.me.REG[0]);
2167 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2168 if (!once_value_2) {
2169 fra.me.REG[2] = BOX_NativeString("( ");
2170 REGB0 = TAG_Int(2);
2171 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
2172 once_value_2 = fra.me.REG[2];
2173 register_static_object(&once_value_2);
2174 } else fra.me.REG[2] = once_value_2;
2175 fra.me.REG[2] = fra.me.REG[2];
2176 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2177 fra.me.REG[2] = CALL_static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
2178 fra.me.REG[2] = CALL_ni_metamodel___MMType___friendly_extern_name(fra.me.REG[2])(fra.me.REG[2]);
2179 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2180 if (!once_value_3) {
2181 fra.me.REG[2] = BOX_NativeString(" ");
2182 REGB0 = TAG_Int(1);
2183 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
2184 once_value_3 = fra.me.REG[2];
2185 register_static_object(&once_value_3);
2186 } else fra.me.REG[2] = once_value_3;
2187 fra.me.REG[2] = fra.me.REG[2];
2188 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2189 fra.me.REG[0] = CALL_ni_metamodel___MMImportedCast___in_name(fra.me.REG[0])(fra.me.REG[0]);
2190 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2191 if (!once_value_4) {
2192 fra.me.REG[0] = BOX_NativeString(" )");
2193 REGB0 = TAG_Int(2);
2194 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2195 once_value_4 = fra.me.REG[0];
2196 register_static_object(&once_value_4);
2197 } else fra.me.REG[0] = once_value_4;
2198 fra.me.REG[0] = fra.me.REG[0];
2199 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2200 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2201 goto label5;
2202 label5: while(0);
2203 stack_frame_head = fra.me.prev;
2204 return fra.me.REG[1];
2205 }
2206 val_t ni_metamodel___MMImportedCast___hash(val_t p0){
2207 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2208 val_t REGB0;
2209 val_t REGB1;
2210 val_t tmp;
2211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2212 fra.me.file = LOCATE_ni_metamodel;
2213 fra.me.line = 282;
2214 fra.me.meth = LOCATE_ni_metamodel___MMImportedCast___hash;
2215 fra.me.has_broke = 0;
2216 fra.me.REG_size = 2;
2217 fra.me.REG[0] = NIT_NULL;
2218 fra.me.REG[1] = NIT_NULL;
2219 fra.me.REG[0] = p0;
2220 /* ./native_interface//ni_metamodel.nit:284 */
2221 fra.me.REG[1] = CALL_static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
2222 REGB0 = CALL_hash___Object___hash(fra.me.REG[1])(fra.me.REG[1]);
2223 fra.me.REG[0] = CALL_static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
2224 REGB1 = CALL_hash___Object___hash(fra.me.REG[0])(fra.me.REG[0]);
2225 /* ./../lib/standard//kernel.nit:215 */
2226 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2227 /* ./native_interface//ni_metamodel.nit:284 */
2228 goto label1;
2229 label1: while(0);
2230 stack_frame_head = fra.me.prev;
2231 return REGB1;
2232 }