Merge branch 'alexis/various-fixes' into wip
[nit.git] / c_src / primitive_info._sep.c
1 /* This C file is generated by NIT to compile module primitive_info. */
2 #include "primitive_info._sep.h"
3 val_t primitive_info___MMLocalClass___primitive_info(val_t p0){
4 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t REGB2;
8 val_t tmp;
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_primitive_info;
12 fra.me.line = 31;
13 fra.me.meth = LOCATE_primitive_info___MMLocalClass___primitive_info;
14 fra.me.has_broke = 0;
15 fra.me.REG_size = 5;
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[4] = NIT_NULL;
21 fra.me.REG[0] = p0;
22 REGB0 = TAG_Bool(ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0])!=NIT_NULL);
23 /* ./primitive_info.nit:36 */
24 if (UNTAG_Bool(REGB0)) {
25 } else {
26 fprintf(stderr, "Uninitialized attribute %s", "_primitive_info_b");
27 fprintf(stderr, " (%s:%d)\n", LOCATE_primitive_info, 36);
28 nit_exit(1);
29 }
30 REGB0 = ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]);
31 REGB1 = TAG_Bool(true);
32 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
33 if (UNTAG_Bool(REGB2)) {
34 } else {
35 REGB1 = TAG_Bool((REGB0)==(REGB1));
36 REGB2 = REGB1;
37 /* ./primitive_info.nit:36 */
38 }
39 if (UNTAG_Bool(REGB2)) {
40 fra.me.REG[1] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]);
41 goto label1;
42 }
43 /* ./primitive_info.nit:38 */
44 if (!once_value_2) {
45 fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_ctypes(fra.me.REG[0])(fra.me.REG[0]);
46 once_value_2 = fra.me.REG[2];
47 register_static_object(&once_value_2);
48 } else fra.me.REG[2] = once_value_2;
49 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
50 REGB2 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
51 /* ./primitive_info.nit:39 */
52 if (UNTAG_Bool(REGB2)) {
53 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
54 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
55 /* ./primitive_info.nit:40 */
56 ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[3];
57 REGB2 = TAG_Bool(true);
58 /* ./primitive_info.nit:41 */
59 ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2;
60 fra.me.REG[3] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]);
61 fra.me.REG[1] = fra.me.REG[3];
62 /* ./primitive_info.nit:42 */
63 goto label1;
64 }
65 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
66 /* ./primitive_info.nit:45 */
67 while(1) {
68 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
69 if (UNTAG_Bool(REGB2)) {
70 fra.me.REG[3] = CALL_abstract_collection___MapIterator___key(fra.me.REG[2])(fra.me.REG[2]);
71 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[0])(fra.me.REG[0]);
72 REGB2 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
73 /* ./primitive_info.nit:47 */
74 if (UNTAG_Bool(REGB2)) {
75 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[0])(fra.me.REG[0]);
76 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___class_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
77 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
78 REGB2 = CALL_partial_order___PartialOrderElement_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
79 /* ./primitive_info.nit:49 */
80 if (UNTAG_Bool(REGB2)) {
81 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
82 /* ./primitive_info.nit:50 */
83 ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[3];
84 REGB2 = TAG_Bool(true);
85 /* ./primitive_info.nit:51 */
86 ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2;
87 fra.me.REG[3] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]);
88 fra.me.REG[1] = fra.me.REG[3];
89 /* ./primitive_info.nit:52 */
90 goto label1;
91 }
92 }
93 /* ./primitive_info.nit:55 */
94 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
95 } else {
96 /* ./primitive_info.nit:45 */
97 goto label3;
98 }
99 }
100 label3: while(0);
101 REGB2 = TAG_Bool(true);
102 /* ./primitive_info.nit:57 */
103 ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2;
104 fra.me.REG[1] = NIT_NULL;
105 /* ./primitive_info.nit:58 */
106 goto label1;
107 label1: while(0);
108 stack_frame_head = fra.me.prev;
109 return fra.me.REG[1];
110 }
111 val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){
112 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
113 val_t REGB0;
114 val_t REGB1;
115 val_t REGB2;
116 val_t REGB3;
117 val_t tmp;
118 static val_t once_value_1; /* Once value */
119 static val_t once_value_2; /* Once value */
120 static val_t once_value_3; /* Once value */
121 static val_t once_value_4; /* Once value */
122 static val_t once_value_5; /* Once value */
123 static val_t once_value_6; /* Once value */
124 static val_t once_value_7; /* Once value */
125 static val_t once_value_8; /* Once value */
126 static val_t once_value_9; /* Once value */
127 static val_t once_value_10; /* Once value */
128 static val_t once_value_11; /* Once value */
129 static val_t once_value_12; /* Once value */
130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
131 fra.me.file = LOCATE_primitive_info;
132 fra.me.line = 61;
133 fra.me.meth = LOCATE_primitive_info___MMLocalClass___primitive_ctypes;
134 fra.me.has_broke = 0;
135 fra.me.REG_size = 8;
136 fra.me.REG[0] = NIT_NULL;
137 fra.me.REG[1] = NIT_NULL;
138 fra.me.REG[2] = NIT_NULL;
139 fra.me.REG[3] = NIT_NULL;
140 fra.me.REG[4] = NIT_NULL;
141 fra.me.REG[5] = NIT_NULL;
142 fra.me.REG[6] = NIT_NULL;
143 fra.me.REG[7] = NIT_NULL;
144 fra.me.REG[0] = p0;
145 fra.me.REG[0] = NEW_HashMap_hash_collection___HashMap___init();
146 REGB0 = TAG_Int(6);
147 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
148 /* ./primitive_info.nit:65 */
149 if (!once_value_1) {
150 fra.me.REG[2] = BOX_NativeString("Int");
151 REGB0 = TAG_Int(3);
152 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
153 once_value_1 = fra.me.REG[2];
154 register_static_object(&once_value_1);
155 } else fra.me.REG[2] = once_value_1;
156 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
157 if (!once_value_2) {
158 fra.me.REG[2] = BOX_NativeString("Char");
159 REGB0 = TAG_Int(4);
160 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
161 once_value_2 = fra.me.REG[2];
162 register_static_object(&once_value_2);
163 } else fra.me.REG[2] = once_value_2;
164 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
165 if (!once_value_3) {
166 fra.me.REG[2] = BOX_NativeString("Bool");
167 REGB0 = TAG_Int(4);
168 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
169 once_value_3 = fra.me.REG[2];
170 register_static_object(&once_value_3);
171 } else fra.me.REG[2] = once_value_3;
172 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
173 if (!once_value_4) {
174 fra.me.REG[2] = BOX_NativeString("Float");
175 REGB0 = TAG_Int(5);
176 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
177 once_value_4 = fra.me.REG[2];
178 register_static_object(&once_value_4);
179 } else fra.me.REG[2] = once_value_4;
180 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
181 if (!once_value_5) {
182 fra.me.REG[2] = BOX_NativeString("NativeString");
183 REGB0 = TAG_Int(12);
184 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
185 once_value_5 = fra.me.REG[2];
186 register_static_object(&once_value_5);
187 } else fra.me.REG[2] = once_value_5;
188 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
189 if (!once_value_6) {
190 fra.me.REG[2] = BOX_NativeString("Pointer");
191 REGB0 = TAG_Int(7);
192 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
193 once_value_6 = fra.me.REG[2];
194 register_static_object(&once_value_6);
195 } else fra.me.REG[2] = once_value_6;
196 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
197 REGB0 = TAG_Int(6);
198 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
199 REGB0 = TAG_Bool(true);
200 /* ./primitive_info.nit:66 */
201 array___Array___add(fra.me.REG[2], REGB0);
202 REGB0 = TAG_Bool(true);
203 array___Array___add(fra.me.REG[2], REGB0);
204 REGB0 = TAG_Bool(true);
205 array___Array___add(fra.me.REG[2], REGB0);
206 REGB0 = TAG_Bool(false);
207 array___Array___add(fra.me.REG[2], REGB0);
208 REGB0 = TAG_Bool(false);
209 array___Array___add(fra.me.REG[2], REGB0);
210 REGB0 = TAG_Bool(false);
211 array___Array___add(fra.me.REG[2], REGB0);
212 REGB0 = TAG_Int(6);
213 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
214 /* ./primitive_info.nit:67 */
215 if (!once_value_7) {
216 fra.me.REG[4] = BOX_NativeString("bigint");
217 REGB0 = TAG_Int(6);
218 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
219 once_value_7 = fra.me.REG[4];
220 register_static_object(&once_value_7);
221 } else fra.me.REG[4] = once_value_7;
222 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
223 if (!once_value_8) {
224 fra.me.REG[4] = BOX_NativeString("char");
225 REGB0 = TAG_Int(4);
226 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
227 once_value_8 = fra.me.REG[4];
228 register_static_object(&once_value_8);
229 } else fra.me.REG[4] = once_value_8;
230 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
231 if (!once_value_9) {
232 fra.me.REG[4] = BOX_NativeString("int");
233 REGB0 = TAG_Int(3);
234 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
235 once_value_9 = fra.me.REG[4];
236 register_static_object(&once_value_9);
237 } else fra.me.REG[4] = once_value_9;
238 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
239 if (!once_value_10) {
240 fra.me.REG[4] = BOX_NativeString("float");
241 REGB0 = TAG_Int(5);
242 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
243 once_value_10 = fra.me.REG[4];
244 register_static_object(&once_value_10);
245 } else fra.me.REG[4] = once_value_10;
246 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
247 if (!once_value_11) {
248 fra.me.REG[4] = BOX_NativeString("char *");
249 REGB0 = TAG_Int(6);
250 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
251 once_value_11 = fra.me.REG[4];
252 register_static_object(&once_value_11);
253 } else fra.me.REG[4] = once_value_11;
254 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
255 if (!once_value_12) {
256 fra.me.REG[4] = BOX_NativeString("void *");
257 REGB0 = TAG_Int(6);
258 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
259 once_value_12 = fra.me.REG[4];
260 register_static_object(&once_value_12);
261 } else fra.me.REG[4] = once_value_12;
262 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
263 REGB0 = TAG_Int(0);
264 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
265 /* ./../lib/standard//collection//array.nit:23 */
266 if (UNTAG_Bool(REGB1)) {
267 } else {
268 fprintf(stderr, "Uninitialized attribute %s", "_length");
269 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
270 nit_exit(1);
271 }
272 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
273 fra.me.REG[4] = NEW_Range_range___Range___without_last(REGB0, REGB1);
274 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
275 /* ./primitive_info.nit:68 */
276 while(1) {
277 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
278 if (UNTAG_Bool(REGB1)) {
279 REGB1 = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
280 fra.me.REG[5] = fra.me.REG[1];
281 REGB0 = REGB1;
282 REGB2 = TAG_Int(0);
283 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
284 /* ./../lib/standard//collection//array.nit:233 */
285 if (UNTAG_Bool(REGB2)) {
286 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
287 if (UNTAG_Bool(REGB2)) {
288 } else {
289 fprintf(stderr, "Uninitialized attribute %s", "_length");
290 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
291 nit_exit(1);
292 }
293 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
294 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
295 /* ./../lib/standard//collection//array.nit:233 */
296 } else {
297 REGB3 = TAG_Bool(false);
298 REGB2 = REGB3;
299 }
300 if (UNTAG_Bool(REGB2)) {
301 } else {
302 fprintf(stderr, "Assert %s failed", "'index'");
303 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
304 nit_exit(1);
305 }
306 fra.me.REG[5] = ATTR_array___Array____items(fra.me.REG[5]);
307 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
308 /* ./../lib/standard//collection//array.nit:234 */
309 if (UNTAG_Bool(REGB2)) {
310 fprintf(stderr, "Reciever is null");
311 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
312 nit_exit(1);
313 }
314 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
315 /* ./../lib/standard//collection//array.nit:234 */
316 goto label13;
317 label13: while(0);
318 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
319 /* ./primitive_info.nit:69 */
320 if (UNTAG_Bool(REGB0)) {
321 fprintf(stderr, "Reciever is null");
322 fprintf(stderr, " (%s:%d)\n", LOCATE_primitive_info, 69);
323 nit_exit(1);
324 }
325 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
326 fra.me.REG[6] = fra.me.REG[2];
327 REGB0 = REGB1;
328 REGB2 = TAG_Int(0);
329 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
330 /* ./../lib/standard//collection//array.nit:233 */
331 if (UNTAG_Bool(REGB2)) {
332 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
333 if (UNTAG_Bool(REGB2)) {
334 } else {
335 fprintf(stderr, "Uninitialized attribute %s", "_length");
336 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
337 nit_exit(1);
338 }
339 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
340 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
341 /* ./../lib/standard//collection//array.nit:233 */
342 } else {
343 REGB3 = TAG_Bool(false);
344 REGB2 = REGB3;
345 }
346 if (UNTAG_Bool(REGB2)) {
347 } else {
348 fprintf(stderr, "Assert %s failed", "'index'");
349 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
350 nit_exit(1);
351 }
352 fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[6]);
353 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
354 /* ./../lib/standard//collection//array.nit:234 */
355 if (UNTAG_Bool(REGB2)) {
356 fprintf(stderr, "Reciever is null");
357 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
358 nit_exit(1);
359 }
360 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
361 /* ./../lib/standard//collection//array.nit:234 */
362 goto label14;
363 label14: while(0);
364 fra.me.REG[7] = fra.me.REG[3];
365 REGB0 = TAG_Int(0);
366 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
367 /* ./../lib/standard//collection//array.nit:233 */
368 if (UNTAG_Bool(REGB0)) {
369 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
370 if (UNTAG_Bool(REGB0)) {
371 } else {
372 fprintf(stderr, "Uninitialized attribute %s", "_length");
373 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
374 nit_exit(1);
375 }
376 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
377 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
378 /* ./../lib/standard//collection//array.nit:233 */
379 } else {
380 REGB2 = TAG_Bool(false);
381 REGB0 = REGB2;
382 }
383 if (UNTAG_Bool(REGB0)) {
384 } else {
385 fprintf(stderr, "Assert %s failed", "'index'");
386 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
387 nit_exit(1);
388 }
389 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
390 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
391 /* ./../lib/standard//collection//array.nit:234 */
392 if (UNTAG_Bool(REGB0)) {
393 fprintf(stderr, "Reciever is null");
394 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
395 nit_exit(1);
396 }
397 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
398 /* ./../lib/standard//collection//array.nit:234 */
399 goto label15;
400 label15: while(0);
401 fra.me.REG[7] = NEW_PrimitiveInfo_primitive_info___PrimitiveInfo___init(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
402 /* ./primitive_info.nit:71 */
403 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[7]);
404 } else {
405 /* ./primitive_info.nit:68 */
406 goto label16;
407 }
408 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
409 }
410 label16: while(0);
411 /* ./primitive_info.nit:73 */
412 goto label17;
413 label17: while(0);
414 stack_frame_head = fra.me.prev;
415 return fra.me.REG[0];
416 }
417 val_t primitive_info___PrimitiveInfo___name(val_t p0){
418 struct {struct stack_frame_t me;} fra;
419 val_t REGB0;
420 val_t tmp;
421 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
422 fra.me.file = LOCATE_primitive_info;
423 fra.me.line = 79;
424 fra.me.meth = LOCATE_primitive_info___PrimitiveInfo___name;
425 fra.me.has_broke = 0;
426 fra.me.REG_size = 1;
427 fra.me.REG[0] = NIT_NULL;
428 fra.me.REG[0] = p0;
429 REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____name(fra.me.REG[0])!=NIT_NULL);
430 /* ./primitive_info.nit:79 */
431 if (UNTAG_Bool(REGB0)) {
432 } else {
433 fprintf(stderr, "Uninitialized attribute %s", "_name");
434 fprintf(stderr, " (%s:%d)\n", LOCATE_primitive_info, 79);
435 nit_exit(1);
436 }
437 fra.me.REG[0] = ATTR_primitive_info___PrimitiveInfo____name(fra.me.REG[0]);
438 stack_frame_head = fra.me.prev;
439 return fra.me.REG[0];
440 }
441 val_t primitive_info___PrimitiveInfo___tagged(val_t p0){
442 struct {struct stack_frame_t me;} fra;
443 val_t REGB0;
444 val_t tmp;
445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
446 fra.me.file = LOCATE_primitive_info;
447 fra.me.line = 82;
448 fra.me.meth = LOCATE_primitive_info___PrimitiveInfo___tagged;
449 fra.me.has_broke = 0;
450 fra.me.REG_size = 1;
451 fra.me.REG[0] = NIT_NULL;
452 fra.me.REG[0] = p0;
453 REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____tagged(fra.me.REG[0])!=NIT_NULL);
454 /* ./primitive_info.nit:82 */
455 if (UNTAG_Bool(REGB0)) {
456 } else {
457 fprintf(stderr, "Uninitialized attribute %s", "_tagged");
458 fprintf(stderr, " (%s:%d)\n", LOCATE_primitive_info, 82);
459 nit_exit(1);
460 }
461 REGB0 = ATTR_primitive_info___PrimitiveInfo____tagged(fra.me.REG[0]);
462 stack_frame_head = fra.me.prev;
463 return REGB0;
464 }
465 val_t primitive_info___PrimitiveInfo___cname(val_t p0){
466 struct {struct stack_frame_t me;} fra;
467 val_t REGB0;
468 val_t tmp;
469 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
470 fra.me.file = LOCATE_primitive_info;
471 fra.me.line = 85;
472 fra.me.meth = LOCATE_primitive_info___PrimitiveInfo___cname;
473 fra.me.has_broke = 0;
474 fra.me.REG_size = 1;
475 fra.me.REG[0] = NIT_NULL;
476 fra.me.REG[0] = p0;
477 REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____cname(fra.me.REG[0])!=NIT_NULL);
478 /* ./primitive_info.nit:85 */
479 if (UNTAG_Bool(REGB0)) {
480 } else {
481 fprintf(stderr, "Uninitialized attribute %s", "_cname");
482 fprintf(stderr, " (%s:%d)\n", LOCATE_primitive_info, 85);
483 nit_exit(1);
484 }
485 fra.me.REG[0] = ATTR_primitive_info___PrimitiveInfo____cname(fra.me.REG[0]);
486 stack_frame_head = fra.me.prev;
487 return fra.me.REG[0];
488 }
489 void primitive_info___PrimitiveInfo___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
490 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_PrimitiveInfo].i;
491 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
492 val_t REGB0;
493 val_t tmp;
494 if (init_table[itpos0]) return;
495 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
496 fra.me.file = LOCATE_primitive_info;
497 fra.me.line = 88;
498 fra.me.meth = LOCATE_primitive_info___PrimitiveInfo___init;
499 fra.me.has_broke = 0;
500 fra.me.REG_size = 3;
501 fra.me.REG[0] = NIT_NULL;
502 fra.me.REG[1] = NIT_NULL;
503 fra.me.REG[2] = NIT_NULL;
504 fra.me.REG[0] = p0;
505 fra.me.REG[1] = p1;
506 REGB0 = p2;
507 fra.me.REG[2] = p3;
508 /* ./primitive_info.nit:90 */
509 ATTR_primitive_info___PrimitiveInfo____name(fra.me.REG[0]) = fra.me.REG[1];
510 /* ./primitive_info.nit:91 */
511 ATTR_primitive_info___PrimitiveInfo____tagged(fra.me.REG[0]) = REGB0;
512 /* ./primitive_info.nit:92 */
513 ATTR_primitive_info___PrimitiveInfo____cname(fra.me.REG[0]) = fra.me.REG[2];
514 stack_frame_head = fra.me.prev;
515 init_table[itpos0] = 1;
516 return;
517 }
518 val_t primitive_info___MMType___cname(val_t p0){
519 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
520 val_t REGB0;
521 val_t REGB1;
522 val_t tmp;
523 static val_t once_value_1; /* Once value */
524 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
525 fra.me.file = LOCATE_primitive_info;
526 fra.me.line = 97;
527 fra.me.meth = LOCATE_primitive_info___MMType___cname;
528 fra.me.has_broke = 0;
529 fra.me.REG_size = 2;
530 fra.me.REG[0] = NIT_NULL;
531 fra.me.REG[1] = NIT_NULL;
532 fra.me.REG[0] = p0;
533 fra.me.REG[0] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
534 fra.me.REG[0] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
535 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
536 /* ./primitive_info.nit:101 */
537 if (UNTAG_Bool(REGB0)) {
538 } else {
539 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
540 if (UNTAG_Bool(REGB1)) {
541 REGB1 = TAG_Bool(false);
542 REGB0 = REGB1;
543 } else {
544 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
545 REGB0 = REGB1;
546 }
547 }
548 if (UNTAG_Bool(REGB0)) {
549 /* ./primitive_info.nit:102 */
550 if (!once_value_1) {
551 fra.me.REG[1] = BOX_NativeString("val_t");
552 REGB0 = TAG_Int(5);
553 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
554 once_value_1 = fra.me.REG[1];
555 register_static_object(&once_value_1);
556 } else fra.me.REG[1] = once_value_1;
557 goto label2;
558 } else {
559 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
560 /* ./primitive_info.nit:104 */
561 if (UNTAG_Bool(REGB0)) {
562 fprintf(stderr, "Reciever is null");
563 fprintf(stderr, " (%s:%d)\n", LOCATE_primitive_info, 104);
564 nit_exit(1);
565 }
566 fra.me.REG[0] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[0])(fra.me.REG[0]);
567 fra.me.REG[1] = fra.me.REG[0];
568 goto label2;
569 }
570 label2: while(0);
571 stack_frame_head = fra.me.prev;
572 return fra.me.REG[1];
573 }
574 val_t primitive_info___MMType___is_tagged(val_t p0){
575 struct {struct stack_frame_t me;} fra;
576 val_t REGB0;
577 val_t REGB1;
578 val_t REGB2;
579 val_t tmp;
580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
581 fra.me.file = LOCATE_primitive_info;
582 fra.me.line = 108;
583 fra.me.meth = LOCATE_primitive_info___MMType___is_tagged;
584 fra.me.has_broke = 0;
585 fra.me.REG_size = 1;
586 fra.me.REG[0] = NIT_NULL;
587 fra.me.REG[0] = p0;
588 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
589 /* ./primitive_info.nit:111 */
590 if (UNTAG_Bool(REGB0)) {
591 REGB0 = TAG_Bool(false);
592 goto label1;
593 }
594 fra.me.REG[0] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
595 fra.me.REG[0] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
596 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
597 /* ./primitive_info.nit:113 */
598 if (UNTAG_Bool(REGB1)) {
599 } else {
600 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
601 if (UNTAG_Bool(REGB2)) {
602 REGB2 = TAG_Bool(false);
603 REGB1 = REGB2;
604 } else {
605 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
606 REGB1 = REGB2;
607 }
608 }
609 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
610 if (UNTAG_Bool(REGB1)) {
611 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
612 if (UNTAG_Bool(REGB1)) {
613 fprintf(stderr, "Reciever is null");
614 fprintf(stderr, " (%s:%d)\n", LOCATE_primitive_info, 113);
615 nit_exit(1);
616 }
617 REGB1 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[0])(fra.me.REG[0]);
618 } else {
619 REGB2 = TAG_Bool(false);
620 REGB1 = REGB2;
621 }
622 REGB0 = REGB1;
623 goto label1;
624 label1: while(0);
625 stack_frame_head = fra.me.prev;
626 return REGB0;
627 }
628 val_t primitive_info___MMType___default_cvalue(val_t p0){
629 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
630 val_t REGB0;
631 val_t REGB1;
632 val_t tmp;
633 static val_t once_value_1; /* Once value */
634 static val_t once_value_2; /* Once value */
635 static val_t once_value_3; /* Once value */
636 static val_t once_value_5; /* Once value */
637 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
638 fra.me.file = LOCATE_primitive_info;
639 fra.me.line = 116;
640 fra.me.meth = LOCATE_primitive_info___MMType___default_cvalue;
641 fra.me.has_broke = 0;
642 fra.me.REG_size = 4;
643 fra.me.REG[0] = NIT_NULL;
644 fra.me.REG[1] = NIT_NULL;
645 fra.me.REG[2] = NIT_NULL;
646 fra.me.REG[3] = NIT_NULL;
647 fra.me.REG[0] = p0;
648 fra.me.REG[1] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
649 fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]);
650 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
651 /* ./primitive_info.nit:121 */
652 if (UNTAG_Bool(REGB0)) {
653 } else {
654 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
655 if (UNTAG_Bool(REGB1)) {
656 REGB1 = TAG_Bool(false);
657 REGB0 = REGB1;
658 } else {
659 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
660 REGB0 = REGB1;
661 }
662 }
663 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
664 if (UNTAG_Bool(REGB0)) {
665 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
666 if (UNTAG_Bool(REGB0)) {
667 fprintf(stderr, "Reciever is null");
668 fprintf(stderr, " (%s:%d)\n", LOCATE_primitive_info, 121);
669 nit_exit(1);
670 }
671 REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[1])(fra.me.REG[1]);
672 } else {
673 REGB1 = TAG_Bool(false);
674 REGB0 = REGB1;
675 }
676 if (UNTAG_Bool(REGB0)) {
677 REGB0 = TAG_Int(5);
678 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
679 /* ./primitive_info.nit:122 */
680 if (!once_value_1) {
681 fra.me.REG[3] = BOX_NativeString("TAG_");
682 REGB0 = TAG_Int(4);
683 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
684 once_value_1 = fra.me.REG[3];
685 register_static_object(&once_value_1);
686 } else fra.me.REG[3] = once_value_1;
687 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
688 fra.me.REG[0] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
689 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
690 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
691 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
692 if (!once_value_2) {
693 fra.me.REG[0] = BOX_NativeString("((");
694 REGB0 = TAG_Int(2);
695 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
696 once_value_2 = fra.me.REG[0];
697 register_static_object(&once_value_2);
698 } else fra.me.REG[0] = once_value_2;
699 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
700 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
701 if (UNTAG_Bool(REGB0)) {
702 fprintf(stderr, "Reciever is null");
703 fprintf(stderr, " (%s:%d)\n", LOCATE_primitive_info, 122);
704 nit_exit(1);
705 }
706 fra.me.REG[1] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[1])(fra.me.REG[1]);
707 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
708 if (!once_value_3) {
709 fra.me.REG[1] = BOX_NativeString(")0)");
710 REGB0 = TAG_Int(3);
711 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
712 once_value_3 = fra.me.REG[1];
713 register_static_object(&once_value_3);
714 } else fra.me.REG[1] = once_value_3;
715 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
716 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
717 goto label4;
718 } else {
719 /* ./primitive_info.nit:124 */
720 if (!once_value_5) {
721 fra.me.REG[1] = BOX_NativeString("NIT_NULL");
722 REGB0 = TAG_Int(8);
723 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
724 once_value_5 = fra.me.REG[1];
725 register_static_object(&once_value_5);
726 } else fra.me.REG[1] = once_value_5;
727 fra.me.REG[2] = fra.me.REG[1];
728 goto label4;
729 }
730 label4: while(0);
731 stack_frame_head = fra.me.prev;
732 return fra.me.REG[2];
733 }
734 val_t primitive_info___MMType___boxtype(val_t p0, val_t p1){
735 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
736 val_t REGB0;
737 val_t REGB1;
738 val_t tmp;
739 static val_t once_value_2; /* Once value */
740 static val_t once_value_3; /* Once value */
741 static val_t once_value_4; /* Once value */
742 static val_t once_value_5; /* Once value */
743 static val_t once_value_6; /* Once value */
744 static val_t once_value_7; /* Once value */
745 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
746 fra.me.file = LOCATE_primitive_info;
747 fra.me.line = 128;
748 fra.me.meth = LOCATE_primitive_info___MMType___boxtype;
749 fra.me.has_broke = 0;
750 fra.me.REG_size = 5;
751 fra.me.REG[0] = NIT_NULL;
752 fra.me.REG[1] = NIT_NULL;
753 fra.me.REG[2] = NIT_NULL;
754 fra.me.REG[3] = NIT_NULL;
755 fra.me.REG[4] = NIT_NULL;
756 fra.me.REG[0] = p0;
757 fra.me.REG[1] = p1;
758 fra.me.REG[2] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
759 fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
760 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
761 /* ./primitive_info.nit:133 */
762 if (UNTAG_Bool(REGB0)) {
763 } else {
764 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
765 if (UNTAG_Bool(REGB1)) {
766 REGB1 = TAG_Bool(false);
767 REGB0 = REGB1;
768 } else {
769 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
770 REGB0 = REGB1;
771 }
772 }
773 if (UNTAG_Bool(REGB0)) {
774 fra.me.REG[3] = fra.me.REG[1];
775 /* ./primitive_info.nit:134 */
776 goto label1;
777 } else {
778 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
779 /* ./primitive_info.nit:135 */
780 if (UNTAG_Bool(REGB0)) {
781 fprintf(stderr, "Reciever is null");
782 fprintf(stderr, " (%s:%d)\n", LOCATE_primitive_info, 135);
783 nit_exit(1);
784 }
785 REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]);
786 if (UNTAG_Bool(REGB0)) {
787 REGB0 = TAG_Int(5);
788 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
789 /* ./primitive_info.nit:136 */
790 if (!once_value_2) {
791 fra.me.REG[4] = BOX_NativeString("TAG_");
792 REGB0 = TAG_Int(4);
793 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
794 once_value_2 = fra.me.REG[4];
795 register_static_object(&once_value_2);
796 } else fra.me.REG[4] = once_value_2;
797 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
798 fra.me.REG[4] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
799 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[4])(fra.me.REG[4]);
800 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
801 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
802 if (!once_value_3) {
803 fra.me.REG[4] = BOX_NativeString("(");
804 REGB0 = TAG_Int(1);
805 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
806 once_value_3 = fra.me.REG[4];
807 register_static_object(&once_value_3);
808 } else fra.me.REG[4] = once_value_3;
809 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
810 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
811 if (!once_value_4) {
812 fra.me.REG[4] = BOX_NativeString(")");
813 REGB0 = TAG_Int(1);
814 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
815 once_value_4 = fra.me.REG[4];
816 register_static_object(&once_value_4);
817 } else fra.me.REG[4] = once_value_4;
818 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
819 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
820 fra.me.REG[3] = fra.me.REG[2];
821 goto label1;
822 } else {
823 REGB0 = TAG_Int(5);
824 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
825 /* ./primitive_info.nit:138 */
826 if (!once_value_5) {
827 fra.me.REG[4] = BOX_NativeString("BOX_");
828 REGB0 = TAG_Int(4);
829 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
830 once_value_5 = fra.me.REG[4];
831 register_static_object(&once_value_5);
832 } else fra.me.REG[4] = once_value_5;
833 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
834 fra.me.REG[0] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
835 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
836 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
837 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
838 if (!once_value_6) {
839 fra.me.REG[0] = BOX_NativeString("(");
840 REGB0 = TAG_Int(1);
841 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
842 once_value_6 = fra.me.REG[0];
843 register_static_object(&once_value_6);
844 } else fra.me.REG[0] = once_value_6;
845 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
846 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
847 if (!once_value_7) {
848 fra.me.REG[1] = BOX_NativeString(")");
849 REGB0 = TAG_Int(1);
850 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
851 once_value_7 = fra.me.REG[1];
852 register_static_object(&once_value_7);
853 } else fra.me.REG[1] = once_value_7;
854 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
855 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
856 fra.me.REG[3] = fra.me.REG[2];
857 goto label1;
858 }
859 }
860 label1: while(0);
861 stack_frame_head = fra.me.prev;
862 return fra.me.REG[3];
863 }
864 val_t primitive_info___MMType___unboxtype(val_t p0, val_t p1){
865 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
866 val_t REGB0;
867 val_t REGB1;
868 val_t tmp;
869 static val_t once_value_2; /* Once value */
870 static val_t once_value_3; /* Once value */
871 static val_t once_value_4; /* Once value */
872 static val_t once_value_5; /* Once value */
873 static val_t once_value_6; /* Once value */
874 static val_t once_value_7; /* Once value */
875 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
876 fra.me.file = LOCATE_primitive_info;
877 fra.me.line = 142;
878 fra.me.meth = LOCATE_primitive_info___MMType___unboxtype;
879 fra.me.has_broke = 0;
880 fra.me.REG_size = 5;
881 fra.me.REG[0] = NIT_NULL;
882 fra.me.REG[1] = NIT_NULL;
883 fra.me.REG[2] = NIT_NULL;
884 fra.me.REG[3] = NIT_NULL;
885 fra.me.REG[4] = NIT_NULL;
886 fra.me.REG[0] = p0;
887 fra.me.REG[1] = p1;
888 fra.me.REG[2] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
889 fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
890 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
891 /* ./primitive_info.nit:147 */
892 if (UNTAG_Bool(REGB0)) {
893 } else {
894 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
895 if (UNTAG_Bool(REGB1)) {
896 REGB1 = TAG_Bool(false);
897 REGB0 = REGB1;
898 } else {
899 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
900 REGB0 = REGB1;
901 }
902 }
903 if (UNTAG_Bool(REGB0)) {
904 fra.me.REG[3] = fra.me.REG[1];
905 /* ./primitive_info.nit:148 */
906 goto label1;
907 } else {
908 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
909 /* ./primitive_info.nit:149 */
910 if (UNTAG_Bool(REGB0)) {
911 fprintf(stderr, "Reciever is null");
912 fprintf(stderr, " (%s:%d)\n", LOCATE_primitive_info, 149);
913 nit_exit(1);
914 }
915 REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]);
916 if (UNTAG_Bool(REGB0)) {
917 REGB0 = TAG_Int(5);
918 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
919 /* ./primitive_info.nit:150 */
920 if (!once_value_2) {
921 fra.me.REG[4] = BOX_NativeString("UNTAG_");
922 REGB0 = TAG_Int(6);
923 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
924 once_value_2 = fra.me.REG[4];
925 register_static_object(&once_value_2);
926 } else fra.me.REG[4] = once_value_2;
927 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
928 fra.me.REG[4] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
929 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[4])(fra.me.REG[4]);
930 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
931 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
932 if (!once_value_3) {
933 fra.me.REG[4] = BOX_NativeString("(");
934 REGB0 = TAG_Int(1);
935 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
936 once_value_3 = fra.me.REG[4];
937 register_static_object(&once_value_3);
938 } else fra.me.REG[4] = once_value_3;
939 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
940 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
941 if (!once_value_4) {
942 fra.me.REG[4] = BOX_NativeString(")");
943 REGB0 = TAG_Int(1);
944 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
945 once_value_4 = fra.me.REG[4];
946 register_static_object(&once_value_4);
947 } else fra.me.REG[4] = once_value_4;
948 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
949 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
950 fra.me.REG[3] = fra.me.REG[2];
951 goto label1;
952 } else {
953 REGB0 = TAG_Int(5);
954 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
955 /* ./primitive_info.nit:152 */
956 if (!once_value_5) {
957 fra.me.REG[4] = BOX_NativeString("UNBOX_");
958 REGB0 = TAG_Int(6);
959 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
960 once_value_5 = fra.me.REG[4];
961 register_static_object(&once_value_5);
962 } else fra.me.REG[4] = once_value_5;
963 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
964 fra.me.REG[0] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
965 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
966 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
967 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
968 if (!once_value_6) {
969 fra.me.REG[0] = BOX_NativeString("(");
970 REGB0 = TAG_Int(1);
971 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
972 once_value_6 = fra.me.REG[0];
973 register_static_object(&once_value_6);
974 } else fra.me.REG[0] = once_value_6;
975 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
976 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
977 if (!once_value_7) {
978 fra.me.REG[1] = BOX_NativeString(")");
979 REGB0 = TAG_Int(1);
980 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
981 once_value_7 = fra.me.REG[1];
982 register_static_object(&once_value_7);
983 } else fra.me.REG[1] = once_value_7;
984 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
985 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
986 fra.me.REG[3] = fra.me.REG[2];
987 goto label1;
988 }
989 }
990 label1: while(0);
991 stack_frame_head = fra.me.prev;
992 return fra.me.REG[3];
993 }