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