8e0e09f8c0bc259a02f98865fd12cf4385afeeda
[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:178 */
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_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
51 REGB2 = CALL_standard___collection___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_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
55 fra.me.REG[3] = CALL_standard___collection___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_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
67 /* ./primitive_info.nit:44 */
68 while(1) {
69 REGB2 = CALL_standard___collection___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_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[2])(fra.me.REG[2]);
73 /* ./primitive_info.nit:46 */
74 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
75 REGB2 = CALL_metamodel___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_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
79 fra.me.REG[3] = CALL_metamodel___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_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
82 REGB2 = CALL_metamodel___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_standard___collection___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_standard___collection___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_standard___collection___hash_collection___HashMap___init();
151 /* ./primitive_info.nit:64 */
152 REGB0 = TAG_Int(6);
153 fra.me.REG[1] = NEW_Array_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___collection___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_standard___collection___array___Array___with_capacity(REGB0);
211 REGB0 = TAG_Bool(true);
212 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0);
213 REGB0 = TAG_Bool(true);
214 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0);
215 REGB0 = TAG_Bool(true);
216 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0);
217 REGB0 = TAG_Bool(false);
218 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0);
219 REGB0 = TAG_Bool(false);
220 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0);
221 REGB0 = TAG_Bool(false);
222 CALL_standard___collection___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_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___collection___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
284 if (UNTAG_Bool(REGB1)) {
285 } else {
286 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
287 }
288 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
289 /* ./../lib/standard//kernel.nit:335 */
290 while(1) {
291 /* ./../lib/standard//kernel.nit:215 */
292 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
293 /* ./../lib/standard//kernel.nit:335 */
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:216 */
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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
307 if (UNTAG_Bool(REGB4)) {
308 } else {
309 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245);
310 }
311 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
312 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___array, 245);
322 }
323 /* ./../lib/standard//collection//array.nit:246 */
324 fra.me.REG[4] = ATTR_standard___collection___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_standard___collection___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_standard___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:216 */
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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
350 if (UNTAG_Bool(REGB4)) {
351 } else {
352 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245);
353 }
354 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
355 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___array, 245);
365 }
366 /* ./../lib/standard//collection//array.nit:246 */
367 fra.me.REG[5] = ATTR_standard___collection___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_standard___collection___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:216 */
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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
386 if (UNTAG_Bool(REGB3)) {
387 } else {
388 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245);
389 }
390 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
391 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___array, 245);
401 }
402 /* ./../lib/standard//collection//array.nit:246 */
403 fra.me.REG[6] = ATTR_standard___collection___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_standard___collection___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_standard___collection___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:337 */
418 REGB2 = TAG_Int(1);
419 /* ./../lib/standard//kernel.nit:218 */
420 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
421 /* ./../lib/standard//kernel.nit:337 */
422 REGB0 = REGB2;
423 } else {
424 /* ./../lib/standard//kernel.nit:335 */
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_primitive_info___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_metamodel___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_standard___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_standard___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_metamodel___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_metamodel___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_standard___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_metamodel___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_standard___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_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
699 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
700 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
701 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
702 CALL_standard___collection___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_standard___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_standard___collection___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_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
727 fra.me.REG[2] = CALL_standard___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_standard___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_metamodel___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_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
783 REGB0 = REGB1;
784 }
785 }
786 if (UNTAG_Bool(REGB0)) {
787 REGB0 = TAG_Bool(true);
788 } else {
789 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
790 REGB0 = REGB1;
791 }
792 if (UNTAG_Bool(REGB0)) {
793 /* ./primitive_info.nit:133 */
794 fra.me.REG[3] = fra.me.REG[1];
795 goto label1;
796 } else {
797 /* ./primitive_info.nit:134 */
798 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
799 if (UNTAG_Bool(REGB0)) {
800 nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 134);
801 }
802 REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]);
803 if (UNTAG_Bool(REGB0)) {
804 /* ./primitive_info.nit:135 */
805 REGB0 = TAG_Int(5);
806 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
807 if (!once_value_2) {
808 fra.me.REG[4] = BOX_NativeString("TAG_");
809 REGB0 = TAG_Int(4);
810 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
811 once_value_2 = fra.me.REG[4];
812 register_static_object(&once_value_2);
813 } else fra.me.REG[4] = once_value_2;
814 fra.me.REG[4] = fra.me.REG[4];
815 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
816 fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
817 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[4])(fra.me.REG[4]);
818 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
819 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
820 if (!once_value_3) {
821 fra.me.REG[4] = BOX_NativeString("(");
822 REGB0 = TAG_Int(1);
823 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
824 once_value_3 = fra.me.REG[4];
825 register_static_object(&once_value_3);
826 } else fra.me.REG[4] = once_value_3;
827 fra.me.REG[4] = fra.me.REG[4];
828 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
830 if (!once_value_4) {
831 fra.me.REG[4] = BOX_NativeString(")");
832 REGB0 = TAG_Int(1);
833 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
834 once_value_4 = fra.me.REG[4];
835 register_static_object(&once_value_4);
836 } else fra.me.REG[4] = once_value_4;
837 fra.me.REG[4] = fra.me.REG[4];
838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
839 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
840 fra.me.REG[3] = fra.me.REG[2];
841 goto label1;
842 } else {
843 /* ./primitive_info.nit:137 */
844 REGB0 = TAG_Int(5);
845 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
846 if (!once_value_5) {
847 fra.me.REG[4] = BOX_NativeString("BOX_");
848 REGB0 = TAG_Int(4);
849 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
850 once_value_5 = fra.me.REG[4];
851 register_static_object(&once_value_5);
852 } else fra.me.REG[4] = once_value_5;
853 fra.me.REG[4] = fra.me.REG[4];
854 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
855 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
856 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
857 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
858 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
859 if (!once_value_6) {
860 fra.me.REG[0] = BOX_NativeString("(");
861 REGB0 = TAG_Int(1);
862 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
863 once_value_6 = fra.me.REG[0];
864 register_static_object(&once_value_6);
865 } else fra.me.REG[0] = once_value_6;
866 fra.me.REG[0] = fra.me.REG[0];
867 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
868 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
869 if (!once_value_7) {
870 fra.me.REG[1] = BOX_NativeString(")");
871 REGB0 = TAG_Int(1);
872 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
873 once_value_7 = fra.me.REG[1];
874 register_static_object(&once_value_7);
875 } else fra.me.REG[1] = once_value_7;
876 fra.me.REG[1] = fra.me.REG[1];
877 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
878 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
879 fra.me.REG[3] = fra.me.REG[2];
880 goto label1;
881 }
882 }
883 label1: while(0);
884 stack_frame_head = fra.me.prev;
885 return fra.me.REG[3];
886 }
887 val_t primitive_info___MMType___unboxtype(val_t p0, val_t p1){
888 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
889 val_t REGB0;
890 val_t REGB1;
891 val_t tmp;
892 static val_t once_value_2; /* Once value */
893 static val_t once_value_3; /* Once value */
894 static val_t once_value_4; /* Once value */
895 static val_t once_value_5; /* Once value */
896 static val_t once_value_6; /* Once value */
897 static val_t once_value_7; /* Once value */
898 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
899 fra.me.file = LOCATE_primitive_info;
900 fra.me.line = 141;
901 fra.me.meth = LOCATE_primitive_info___MMType___unboxtype;
902 fra.me.has_broke = 0;
903 fra.me.REG_size = 5;
904 fra.me.REG[0] = NIT_NULL;
905 fra.me.REG[1] = NIT_NULL;
906 fra.me.REG[2] = NIT_NULL;
907 fra.me.REG[3] = NIT_NULL;
908 fra.me.REG[4] = NIT_NULL;
909 fra.me.REG[0] = p0;
910 fra.me.REG[1] = p1;
911 /* ./primitive_info.nit:145 */
912 fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
913 fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
914 /* ./primitive_info.nit:146 */
915 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
916 if (UNTAG_Bool(REGB0)) {
917 } else {
918 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
919 if (UNTAG_Bool(REGB1)) {
920 REGB1 = TAG_Bool(false);
921 REGB0 = REGB1;
922 } else {
923 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
924 REGB0 = REGB1;
925 }
926 }
927 if (UNTAG_Bool(REGB0)) {
928 REGB0 = TAG_Bool(true);
929 } else {
930 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
931 REGB0 = REGB1;
932 }
933 if (UNTAG_Bool(REGB0)) {
934 /* ./primitive_info.nit:147 */
935 fra.me.REG[3] = fra.me.REG[1];
936 goto label1;
937 } else {
938 /* ./primitive_info.nit:148 */
939 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
940 if (UNTAG_Bool(REGB0)) {
941 nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 148);
942 }
943 REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]);
944 if (UNTAG_Bool(REGB0)) {
945 /* ./primitive_info.nit:149 */
946 REGB0 = TAG_Int(5);
947 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
948 if (!once_value_2) {
949 fra.me.REG[4] = BOX_NativeString("UNTAG_");
950 REGB0 = TAG_Int(6);
951 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
952 once_value_2 = fra.me.REG[4];
953 register_static_object(&once_value_2);
954 } else fra.me.REG[4] = once_value_2;
955 fra.me.REG[4] = fra.me.REG[4];
956 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
957 fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
958 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[4])(fra.me.REG[4]);
959 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
960 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
961 if (!once_value_3) {
962 fra.me.REG[4] = BOX_NativeString("(");
963 REGB0 = TAG_Int(1);
964 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
965 once_value_3 = fra.me.REG[4];
966 register_static_object(&once_value_3);
967 } else fra.me.REG[4] = once_value_3;
968 fra.me.REG[4] = fra.me.REG[4];
969 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
970 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
971 if (!once_value_4) {
972 fra.me.REG[4] = BOX_NativeString(")");
973 REGB0 = TAG_Int(1);
974 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
975 once_value_4 = fra.me.REG[4];
976 register_static_object(&once_value_4);
977 } else fra.me.REG[4] = once_value_4;
978 fra.me.REG[4] = fra.me.REG[4];
979 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
980 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
981 fra.me.REG[3] = fra.me.REG[2];
982 goto label1;
983 } else {
984 /* ./primitive_info.nit:151 */
985 REGB0 = TAG_Int(5);
986 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
987 if (!once_value_5) {
988 fra.me.REG[4] = BOX_NativeString("UNBOX_");
989 REGB0 = TAG_Int(6);
990 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
991 once_value_5 = fra.me.REG[4];
992 register_static_object(&once_value_5);
993 } else fra.me.REG[4] = once_value_5;
994 fra.me.REG[4] = fra.me.REG[4];
995 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
996 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
997 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
998 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
999 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1000 if (!once_value_6) {
1001 fra.me.REG[0] = BOX_NativeString("(");
1002 REGB0 = TAG_Int(1);
1003 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1004 once_value_6 = fra.me.REG[0];
1005 register_static_object(&once_value_6);
1006 } else fra.me.REG[0] = once_value_6;
1007 fra.me.REG[0] = fra.me.REG[0];
1008 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1009 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1010 if (!once_value_7) {
1011 fra.me.REG[1] = BOX_NativeString(")");
1012 REGB0 = TAG_Int(1);
1013 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
1014 once_value_7 = fra.me.REG[1];
1015 register_static_object(&once_value_7);
1016 } else fra.me.REG[1] = once_value_7;
1017 fra.me.REG[1] = fra.me.REG[1];
1018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1019 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1020 fra.me.REG[3] = fra.me.REG[2];
1021 goto label1;
1022 }
1023 }
1024 label1: while(0);
1025 stack_frame_head = fra.me.prev;
1026 return fra.me.REG[3];
1027 }