c_src: update
[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.nitni_local_ref_head = NULL;
17 fra.me.REG[0] = NIT_NULL;
18 fra.me.REG[1] = NIT_NULL;
19 fra.me.REG[2] = NIT_NULL;
20 fra.me.REG[3] = NIT_NULL;
21 fra.me.REG[4] = NIT_NULL;
22 fra.me.REG[0] = p0;
23 /* primitive_info.nit:35 */
24 REGB0 = TAG_Bool(ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0])!=NIT_NULL);
25 if (UNTAG_Bool(REGB0)) {
26 } else {
27 nit_abort("Uninitialized attribute %s", "_primitive_info_b", LOCATE_primitive_info, 35);
28 }
29 REGB0 = ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]);
30 REGB1 = TAG_Bool(true);
31 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
32 if (UNTAG_Bool(REGB2)) {
33 } else {
34 /* ../lib/standard/kernel.nit:195 */
35 REGB1 = TAG_Bool((REGB0)==(REGB1));
36 /* primitive_info.nit:35 */
37 REGB2 = REGB1;
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:37 */
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[2] = fra.me.REG[2];
50 /* primitive_info.nit:38 */
51 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
52 REGB2 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
53 if (UNTAG_Bool(REGB2)) {
54 /* primitive_info.nit:39 */
55 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
56 fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
57 ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[3];
58 /* primitive_info.nit:40 */
59 REGB2 = TAG_Bool(true);
60 ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2;
61 /* primitive_info.nit:41 */
62 fra.me.REG[3] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]);
63 fra.me.REG[1] = fra.me.REG[3];
64 goto label1;
65 }
66 /* primitive_info.nit:43 */
67 fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[2])(fra.me.REG[2]);
68 /* primitive_info.nit:44 */
69 while(1) {
70 REGB2 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
71 if (UNTAG_Bool(REGB2)) {
72 /* primitive_info.nit:45 */
73 fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[2])(fra.me.REG[2]);
74 /* primitive_info.nit:46 */
75 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
76 REGB2 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
77 if (UNTAG_Bool(REGB2)) {
78 /* primitive_info.nit:47 */
79 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
80 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
81 /* primitive_info.nit:48 */
82 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
83 REGB2 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
84 if (UNTAG_Bool(REGB2)) {
85 /* primitive_info.nit:49 */
86 fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[2])(fra.me.REG[2]);
87 ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[3];
88 /* primitive_info.nit:50 */
89 REGB2 = TAG_Bool(true);
90 ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2;
91 /* primitive_info.nit:51 */
92 fra.me.REG[3] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]);
93 fra.me.REG[1] = fra.me.REG[3];
94 goto label1;
95 }
96 }
97 /* primitive_info.nit:54 */
98 CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[2])(fra.me.REG[2]);
99 } else {
100 /* primitive_info.nit:44 */
101 goto label3;
102 }
103 }
104 label3: while(0);
105 /* primitive_info.nit:56 */
106 REGB2 = TAG_Bool(true);
107 ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2;
108 /* primitive_info.nit:57 */
109 fra.me.REG[1] = NIT_NULL;
110 goto label1;
111 label1: while(0);
112 stack_frame_head = fra.me.prev;
113 return fra.me.REG[1];
114 }
115 val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){
116 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
117 val_t REGB0;
118 val_t REGB1;
119 val_t REGB2;
120 val_t REGB3;
121 val_t REGB4;
122 val_t REGB5;
123 val_t tmp;
124 static val_t once_value_1; /* Once value */
125 static val_t once_value_2; /* Once value */
126 static val_t once_value_3; /* Once value */
127 static val_t once_value_4; /* Once value */
128 static val_t once_value_5; /* Once value */
129 static val_t once_value_6; /* Once value */
130 static val_t once_value_7; /* Once value */
131 static val_t once_value_8; /* Once value */
132 static val_t once_value_9; /* Once value */
133 static val_t once_value_10; /* Once value */
134 static val_t once_value_11; /* Once value */
135 static val_t once_value_12; /* Once value */
136 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
137 fra.me.file = LOCATE_primitive_info;
138 fra.me.line = 60;
139 fra.me.meth = LOCATE_primitive_info___MMLocalClass___primitive_ctypes;
140 fra.me.has_broke = 0;
141 fra.me.REG_size = 7;
142 fra.me.nitni_local_ref_head = NULL;
143 fra.me.REG[0] = NIT_NULL;
144 fra.me.REG[1] = NIT_NULL;
145 fra.me.REG[2] = NIT_NULL;
146 fra.me.REG[3] = NIT_NULL;
147 fra.me.REG[4] = NIT_NULL;
148 fra.me.REG[5] = NIT_NULL;
149 fra.me.REG[6] = NIT_NULL;
150 fra.me.REG[0] = p0;
151 /* primitive_info.nit:63 */
152 fra.me.REG[0] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
153 /* primitive_info.nit:64 */
154 REGB0 = TAG_Int(6);
155 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
156 if (!once_value_1) {
157 fra.me.REG[2] = BOX_NativeString("Int");
158 REGB0 = TAG_Int(3);
159 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
160 once_value_1 = fra.me.REG[2];
161 register_static_object(&once_value_1);
162 } else fra.me.REG[2] = once_value_1;
163 fra.me.REG[2] = fra.me.REG[2];
164 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
165 if (!once_value_2) {
166 fra.me.REG[2] = BOX_NativeString("Char");
167 REGB0 = TAG_Int(4);
168 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
169 once_value_2 = fra.me.REG[2];
170 register_static_object(&once_value_2);
171 } else fra.me.REG[2] = once_value_2;
172 fra.me.REG[2] = fra.me.REG[2];
173 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
174 if (!once_value_3) {
175 fra.me.REG[2] = BOX_NativeString("Bool");
176 REGB0 = TAG_Int(4);
177 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
178 once_value_3 = fra.me.REG[2];
179 register_static_object(&once_value_3);
180 } else fra.me.REG[2] = once_value_3;
181 fra.me.REG[2] = fra.me.REG[2];
182 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
183 if (!once_value_4) {
184 fra.me.REG[2] = BOX_NativeString("Float");
185 REGB0 = TAG_Int(5);
186 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
187 once_value_4 = fra.me.REG[2];
188 register_static_object(&once_value_4);
189 } else fra.me.REG[2] = once_value_4;
190 fra.me.REG[2] = fra.me.REG[2];
191 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
192 if (!once_value_5) {
193 fra.me.REG[2] = BOX_NativeString("NativeString");
194 REGB0 = TAG_Int(12);
195 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
196 once_value_5 = fra.me.REG[2];
197 register_static_object(&once_value_5);
198 } else fra.me.REG[2] = once_value_5;
199 fra.me.REG[2] = fra.me.REG[2];
200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
201 if (!once_value_6) {
202 fra.me.REG[2] = BOX_NativeString("Pointer");
203 REGB0 = TAG_Int(7);
204 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
205 once_value_6 = fra.me.REG[2];
206 register_static_object(&once_value_6);
207 } else fra.me.REG[2] = once_value_6;
208 fra.me.REG[2] = fra.me.REG[2];
209 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
210 /* primitive_info.nit:65 */
211 REGB0 = TAG_Int(6);
212 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(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(true);
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 REGB0 = TAG_Bool(false);
224 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0);
225 /* primitive_info.nit:66 */
226 REGB0 = TAG_Int(6);
227 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
228 if (!once_value_7) {
229 fra.me.REG[4] = BOX_NativeString("bigint");
230 REGB0 = TAG_Int(6);
231 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
232 once_value_7 = fra.me.REG[4];
233 register_static_object(&once_value_7);
234 } else fra.me.REG[4] = once_value_7;
235 fra.me.REG[4] = fra.me.REG[4];
236 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
237 if (!once_value_8) {
238 fra.me.REG[4] = BOX_NativeString("char");
239 REGB0 = TAG_Int(4);
240 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
241 once_value_8 = fra.me.REG[4];
242 register_static_object(&once_value_8);
243 } else fra.me.REG[4] = once_value_8;
244 fra.me.REG[4] = fra.me.REG[4];
245 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
246 if (!once_value_9) {
247 fra.me.REG[4] = BOX_NativeString("int");
248 REGB0 = TAG_Int(3);
249 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
250 once_value_9 = fra.me.REG[4];
251 register_static_object(&once_value_9);
252 } else fra.me.REG[4] = once_value_9;
253 fra.me.REG[4] = fra.me.REG[4];
254 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
255 if (!once_value_10) {
256 fra.me.REG[4] = BOX_NativeString("float");
257 REGB0 = TAG_Int(5);
258 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
259 once_value_10 = fra.me.REG[4];
260 register_static_object(&once_value_10);
261 } else fra.me.REG[4] = once_value_10;
262 fra.me.REG[4] = fra.me.REG[4];
263 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
264 if (!once_value_11) {
265 fra.me.REG[4] = BOX_NativeString("char *");
266 REGB0 = TAG_Int(6);
267 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
268 once_value_11 = fra.me.REG[4];
269 register_static_object(&once_value_11);
270 } else fra.me.REG[4] = once_value_11;
271 fra.me.REG[4] = fra.me.REG[4];
272 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
273 if (!once_value_12) {
274 fra.me.REG[4] = BOX_NativeString("void *");
275 REGB0 = TAG_Int(6);
276 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
277 once_value_12 = fra.me.REG[4];
278 register_static_object(&once_value_12);
279 } else fra.me.REG[4] = once_value_12;
280 fra.me.REG[4] = fra.me.REG[4];
281 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
282 /* primitive_info.nit:67 */
283 REGB0 = TAG_Int(0);
284 /* ../lib/standard/collection/array.nit:24 */
285 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
286 if (UNTAG_Bool(REGB1)) {
287 } else {
288 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
289 }
290 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
291 /* ../lib/standard/kernel.nit:352 */
292 while(1) {
293 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
294 if (UNTAG_Bool(REGB2)) {
295 } else {
296 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
297 }
298 /* ../lib/standard/kernel.nit:232 */
299 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
300 /* ../lib/standard/kernel.nit:352 */
301 if (UNTAG_Bool(REGB2)) {
302 /* primitive_info.nit:67 */
303 REGB2 = REGB0;
304 /* ../lib/standard/collection/array.nit:278 */
305 fra.me.REG[4] = fra.me.REG[1];
306 REGB3 = REGB2;
307 /* ../lib/standard/collection/array.nit:280 */
308 REGB4 = TAG_Int(0);
309 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
310 if (UNTAG_Bool(REGB5)) {
311 } else {
312 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
313 }
314 /* ../lib/standard/kernel.nit:233 */
315 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
316 /* ../lib/standard/collection/array.nit:280 */
317 if (UNTAG_Bool(REGB4)) {
318 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
319 if (UNTAG_Bool(REGB4)) {
320 } else {
321 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
322 }
323 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
324 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
325 if (UNTAG_Bool(REGB5)) {
326 } else {
327 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
328 }
329 /* ../lib/standard/kernel.nit:232 */
330 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
331 } else {
332 /* ../lib/standard/collection/array.nit:280 */
333 REGB5 = TAG_Bool(false);
334 REGB4 = REGB5;
335 }
336 if (UNTAG_Bool(REGB4)) {
337 } else {
338 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
339 }
340 /* ../lib/standard/collection/array.nit:281 */
341 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
342 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
343 if (UNTAG_Bool(REGB4)) {
344 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
345 }
346 /* ../lib/standard/collection/array.nit:718 */
347 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
348 /* ../lib/standard/collection/array.nit:281 */
349 goto label13;
350 label13: while(0);
351 /* primitive_info.nit:68 */
352 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
353 if (UNTAG_Bool(REGB3)) {
354 nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 68);
355 }
356 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
357 /* ../lib/standard/collection/array.nit:278 */
358 fra.me.REG[5] = fra.me.REG[2];
359 REGB3 = REGB2;
360 /* ../lib/standard/collection/array.nit:280 */
361 REGB4 = TAG_Int(0);
362 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
363 if (UNTAG_Bool(REGB5)) {
364 } else {
365 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
366 }
367 /* ../lib/standard/kernel.nit:233 */
368 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
369 /* ../lib/standard/collection/array.nit:280 */
370 if (UNTAG_Bool(REGB4)) {
371 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
372 if (UNTAG_Bool(REGB4)) {
373 } else {
374 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
375 }
376 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
377 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
378 if (UNTAG_Bool(REGB5)) {
379 } else {
380 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
381 }
382 /* ../lib/standard/kernel.nit:232 */
383 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
384 } else {
385 /* ../lib/standard/collection/array.nit:280 */
386 REGB5 = TAG_Bool(false);
387 REGB4 = REGB5;
388 }
389 if (UNTAG_Bool(REGB4)) {
390 } else {
391 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
392 }
393 /* ../lib/standard/collection/array.nit:281 */
394 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
395 REGB4 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
396 if (UNTAG_Bool(REGB4)) {
397 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
398 }
399 /* ../lib/standard/collection/array.nit:718 */
400 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB3)];
401 /* ../lib/standard/collection/array.nit:281 */
402 goto label14;
403 label14: while(0);
404 /* ../lib/standard/collection/array.nit:278 */
405 fra.me.REG[6] = fra.me.REG[3];
406 /* ../lib/standard/collection/array.nit:280 */
407 REGB3 = TAG_Int(0);
408 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
409 if (UNTAG_Bool(REGB4)) {
410 } else {
411 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
412 }
413 /* ../lib/standard/kernel.nit:233 */
414 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
415 /* ../lib/standard/collection/array.nit:280 */
416 if (UNTAG_Bool(REGB3)) {
417 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
418 if (UNTAG_Bool(REGB3)) {
419 } else {
420 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
421 }
422 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
423 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
424 if (UNTAG_Bool(REGB4)) {
425 } else {
426 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
427 }
428 /* ../lib/standard/kernel.nit:232 */
429 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
430 } else {
431 /* ../lib/standard/collection/array.nit:280 */
432 REGB4 = TAG_Bool(false);
433 REGB3 = REGB4;
434 }
435 if (UNTAG_Bool(REGB3)) {
436 } else {
437 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
438 }
439 /* ../lib/standard/collection/array.nit:281 */
440 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
441 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
442 if (UNTAG_Bool(REGB3)) {
443 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
444 }
445 /* ../lib/standard/collection/array.nit:718 */
446 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
447 /* ../lib/standard/collection/array.nit:281 */
448 goto label15;
449 label15: while(0);
450 /* primitive_info.nit:69 */
451 fra.me.REG[6] = NEW_PrimitiveInfo_primitive_info___PrimitiveInfo___init(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
452 /* primitive_info.nit:70 */
453 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[6]);
454 /* ../lib/standard/kernel.nit:354 */
455 REGB2 = TAG_Int(1);
456 /* ../lib/standard/kernel.nit:235 */
457 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
458 /* ../lib/standard/kernel.nit:354 */
459 REGB0 = REGB2;
460 } else {
461 /* ../lib/standard/kernel.nit:352 */
462 goto label16;
463 }
464 }
465 label16: while(0);
466 /* primitive_info.nit:72 */
467 goto label17;
468 label17: while(0);
469 stack_frame_head = fra.me.prev;
470 return fra.me.REG[0];
471 }
472 val_t primitive_info___PrimitiveInfo___name(val_t p0){
473 struct {struct stack_frame_t me;} fra;
474 val_t REGB0;
475 val_t tmp;
476 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
477 fra.me.file = LOCATE_primitive_info;
478 fra.me.line = 78;
479 fra.me.meth = LOCATE_primitive_info___PrimitiveInfo___name;
480 fra.me.has_broke = 0;
481 fra.me.REG_size = 1;
482 fra.me.nitni_local_ref_head = NULL;
483 fra.me.REG[0] = NIT_NULL;
484 fra.me.REG[0] = p0;
485 /* primitive_info.nit:78 */
486 REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____name(fra.me.REG[0])!=NIT_NULL);
487 if (UNTAG_Bool(REGB0)) {
488 } else {
489 nit_abort("Uninitialized attribute %s", "_name", LOCATE_primitive_info, 78);
490 }
491 fra.me.REG[0] = ATTR_primitive_info___PrimitiveInfo____name(fra.me.REG[0]);
492 stack_frame_head = fra.me.prev;
493 return fra.me.REG[0];
494 }
495 val_t primitive_info___PrimitiveInfo___tagged(val_t p0){
496 struct {struct stack_frame_t me;} fra;
497 val_t REGB0;
498 val_t tmp;
499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
500 fra.me.file = LOCATE_primitive_info;
501 fra.me.line = 81;
502 fra.me.meth = LOCATE_primitive_info___PrimitiveInfo___tagged;
503 fra.me.has_broke = 0;
504 fra.me.REG_size = 1;
505 fra.me.nitni_local_ref_head = NULL;
506 fra.me.REG[0] = NIT_NULL;
507 fra.me.REG[0] = p0;
508 /* primitive_info.nit:81 */
509 REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____tagged(fra.me.REG[0])!=NIT_NULL);
510 if (UNTAG_Bool(REGB0)) {
511 } else {
512 nit_abort("Uninitialized attribute %s", "_tagged", LOCATE_primitive_info, 81);
513 }
514 REGB0 = ATTR_primitive_info___PrimitiveInfo____tagged(fra.me.REG[0]);
515 stack_frame_head = fra.me.prev;
516 return REGB0;
517 }
518 val_t primitive_info___PrimitiveInfo___cname(val_t p0){
519 struct {struct stack_frame_t me;} fra;
520 val_t REGB0;
521 val_t tmp;
522 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
523 fra.me.file = LOCATE_primitive_info;
524 fra.me.line = 84;
525 fra.me.meth = LOCATE_primitive_info___PrimitiveInfo___cname;
526 fra.me.has_broke = 0;
527 fra.me.REG_size = 1;
528 fra.me.nitni_local_ref_head = NULL;
529 fra.me.REG[0] = NIT_NULL;
530 fra.me.REG[0] = p0;
531 /* primitive_info.nit:84 */
532 REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____cname(fra.me.REG[0])!=NIT_NULL);
533 if (UNTAG_Bool(REGB0)) {
534 } else {
535 nit_abort("Uninitialized attribute %s", "_cname", LOCATE_primitive_info, 84);
536 }
537 fra.me.REG[0] = ATTR_primitive_info___PrimitiveInfo____cname(fra.me.REG[0]);
538 stack_frame_head = fra.me.prev;
539 return fra.me.REG[0];
540 }
541 void primitive_info___PrimitiveInfo___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
542 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_primitive_info___PrimitiveInfo].i;
543 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
544 val_t REGB0;
545 val_t tmp;
546 if (init_table[itpos0]) return;
547 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
548 fra.me.file = LOCATE_primitive_info;
549 fra.me.line = 87;
550 fra.me.meth = LOCATE_primitive_info___PrimitiveInfo___init;
551 fra.me.has_broke = 0;
552 fra.me.REG_size = 3;
553 fra.me.nitni_local_ref_head = NULL;
554 fra.me.REG[0] = NIT_NULL;
555 fra.me.REG[1] = NIT_NULL;
556 fra.me.REG[2] = NIT_NULL;
557 fra.me.REG[0] = p0;
558 fra.me.REG[1] = p1;
559 REGB0 = p2;
560 fra.me.REG[2] = p3;
561 /* primitive_info.nit:89 */
562 ATTR_primitive_info___PrimitiveInfo____name(fra.me.REG[0]) = fra.me.REG[1];
563 /* primitive_info.nit:90 */
564 ATTR_primitive_info___PrimitiveInfo____tagged(fra.me.REG[0]) = REGB0;
565 /* primitive_info.nit:91 */
566 ATTR_primitive_info___PrimitiveInfo____cname(fra.me.REG[0]) = fra.me.REG[2];
567 stack_frame_head = fra.me.prev;
568 init_table[itpos0] = 1;
569 return;
570 }
571 val_t primitive_info___MMType___cname(val_t p0){
572 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
573 val_t REGB0;
574 val_t REGB1;
575 val_t tmp;
576 static val_t once_value_1; /* Once value */
577 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
578 fra.me.file = LOCATE_primitive_info;
579 fra.me.line = 96;
580 fra.me.meth = LOCATE_primitive_info___MMType___cname;
581 fra.me.has_broke = 0;
582 fra.me.REG_size = 2;
583 fra.me.nitni_local_ref_head = NULL;
584 fra.me.REG[0] = NIT_NULL;
585 fra.me.REG[1] = NIT_NULL;
586 fra.me.REG[0] = p0;
587 /* primitive_info.nit:99 */
588 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
589 fra.me.REG[0] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
590 /* primitive_info.nit:100 */
591 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
592 if (UNTAG_Bool(REGB0)) {
593 } else {
594 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
595 if (UNTAG_Bool(REGB1)) {
596 REGB1 = TAG_Bool(false);
597 REGB0 = REGB1;
598 } else {
599 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
600 REGB0 = REGB1;
601 }
602 }
603 if (UNTAG_Bool(REGB0)) {
604 /* primitive_info.nit:101 */
605 if (!once_value_1) {
606 fra.me.REG[1] = BOX_NativeString("val_t");
607 REGB0 = TAG_Int(5);
608 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
609 once_value_1 = fra.me.REG[1];
610 register_static_object(&once_value_1);
611 } else fra.me.REG[1] = once_value_1;
612 fra.me.REG[1] = fra.me.REG[1];
613 goto label2;
614 } else {
615 /* primitive_info.nit:103 */
616 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
617 if (UNTAG_Bool(REGB0)) {
618 nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 103);
619 }
620 fra.me.REG[0] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[0])(fra.me.REG[0]);
621 fra.me.REG[1] = fra.me.REG[0];
622 goto label2;
623 }
624 label2: while(0);
625 stack_frame_head = fra.me.prev;
626 return fra.me.REG[1];
627 }
628 val_t primitive_info___MMType___is_tagged(val_t p0){
629 struct {struct stack_frame_t me;} fra;
630 val_t REGB0;
631 val_t REGB1;
632 val_t REGB2;
633 val_t tmp;
634 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
635 fra.me.file = LOCATE_primitive_info;
636 fra.me.line = 107;
637 fra.me.meth = LOCATE_primitive_info___MMType___is_tagged;
638 fra.me.has_broke = 0;
639 fra.me.REG_size = 1;
640 fra.me.nitni_local_ref_head = NULL;
641 fra.me.REG[0] = NIT_NULL;
642 fra.me.REG[0] = p0;
643 /* primitive_info.nit:110 */
644 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
645 if (UNTAG_Bool(REGB0)) {
646 REGB0 = TAG_Bool(false);
647 goto label1;
648 }
649 /* primitive_info.nit:111 */
650 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
651 fra.me.REG[0] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
652 /* primitive_info.nit:112 */
653 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
654 if (UNTAG_Bool(REGB1)) {
655 } else {
656 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
657 if (UNTAG_Bool(REGB2)) {
658 REGB2 = TAG_Bool(false);
659 REGB1 = REGB2;
660 } else {
661 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
662 REGB1 = REGB2;
663 }
664 }
665 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
666 if (UNTAG_Bool(REGB1)) {
667 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
668 if (UNTAG_Bool(REGB1)) {
669 nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 112);
670 }
671 REGB1 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[0])(fra.me.REG[0]);
672 } else {
673 REGB2 = TAG_Bool(false);
674 REGB1 = REGB2;
675 }
676 REGB0 = REGB1;
677 goto label1;
678 label1: while(0);
679 stack_frame_head = fra.me.prev;
680 return REGB0;
681 }
682 val_t primitive_info___MMType___default_cvalue(val_t p0){
683 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
684 val_t REGB0;
685 val_t REGB1;
686 val_t tmp;
687 static val_t once_value_1; /* Once value */
688 static val_t once_value_2; /* Once value */
689 static val_t once_value_3; /* Once value */
690 static val_t once_value_5; /* Once value */
691 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
692 fra.me.file = LOCATE_primitive_info;
693 fra.me.line = 115;
694 fra.me.meth = LOCATE_primitive_info___MMType___default_cvalue;
695 fra.me.has_broke = 0;
696 fra.me.REG_size = 4;
697 fra.me.nitni_local_ref_head = NULL;
698 fra.me.REG[0] = NIT_NULL;
699 fra.me.REG[1] = NIT_NULL;
700 fra.me.REG[2] = NIT_NULL;
701 fra.me.REG[3] = NIT_NULL;
702 fra.me.REG[0] = p0;
703 /* primitive_info.nit:119 */
704 fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
705 fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]);
706 /* primitive_info.nit:120 */
707 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
708 if (UNTAG_Bool(REGB0)) {
709 } else {
710 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
711 if (UNTAG_Bool(REGB1)) {
712 REGB1 = TAG_Bool(false);
713 REGB0 = REGB1;
714 } else {
715 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
716 REGB0 = REGB1;
717 }
718 }
719 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
720 if (UNTAG_Bool(REGB0)) {
721 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
722 if (UNTAG_Bool(REGB0)) {
723 nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 120);
724 }
725 REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[1])(fra.me.REG[1]);
726 } else {
727 REGB1 = TAG_Bool(false);
728 REGB0 = REGB1;
729 }
730 if (UNTAG_Bool(REGB0)) {
731 /* primitive_info.nit:121 */
732 REGB0 = TAG_Int(5);
733 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
734 if (!once_value_1) {
735 fra.me.REG[3] = BOX_NativeString("TAG_");
736 REGB0 = TAG_Int(4);
737 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
738 once_value_1 = fra.me.REG[3];
739 register_static_object(&once_value_1);
740 } else fra.me.REG[3] = once_value_1;
741 fra.me.REG[3] = fra.me.REG[3];
742 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
743 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
744 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
745 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
746 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
747 if (!once_value_2) {
748 fra.me.REG[0] = BOX_NativeString("((");
749 REGB0 = TAG_Int(2);
750 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
751 once_value_2 = fra.me.REG[0];
752 register_static_object(&once_value_2);
753 } else fra.me.REG[0] = once_value_2;
754 fra.me.REG[0] = fra.me.REG[0];
755 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
756 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
757 if (UNTAG_Bool(REGB0)) {
758 nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 121);
759 }
760 fra.me.REG[1] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[1])(fra.me.REG[1]);
761 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
762 if (!once_value_3) {
763 fra.me.REG[1] = BOX_NativeString(")0)");
764 REGB0 = TAG_Int(3);
765 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
766 once_value_3 = fra.me.REG[1];
767 register_static_object(&once_value_3);
768 } else fra.me.REG[1] = once_value_3;
769 fra.me.REG[1] = fra.me.REG[1];
770 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
771 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
772 goto label4;
773 } else {
774 /* primitive_info.nit:123 */
775 if (!once_value_5) {
776 fra.me.REG[1] = BOX_NativeString("NIT_NULL");
777 REGB0 = TAG_Int(8);
778 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
779 once_value_5 = fra.me.REG[1];
780 register_static_object(&once_value_5);
781 } else fra.me.REG[1] = once_value_5;
782 fra.me.REG[1] = fra.me.REG[1];
783 fra.me.REG[2] = fra.me.REG[1];
784 goto label4;
785 }
786 label4: while(0);
787 stack_frame_head = fra.me.prev;
788 return fra.me.REG[2];
789 }
790 val_t primitive_info___MMType___boxtype(val_t p0, val_t p1){
791 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
792 val_t REGB0;
793 val_t REGB1;
794 val_t tmp;
795 static val_t once_value_2; /* Once value */
796 static val_t once_value_3; /* Once value */
797 static val_t once_value_4; /* Once value */
798 static val_t once_value_5; /* Once value */
799 static val_t once_value_6; /* Once value */
800 static val_t once_value_7; /* Once value */
801 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
802 fra.me.file = LOCATE_primitive_info;
803 fra.me.line = 127;
804 fra.me.meth = LOCATE_primitive_info___MMType___boxtype;
805 fra.me.has_broke = 0;
806 fra.me.REG_size = 5;
807 fra.me.nitni_local_ref_head = NULL;
808 fra.me.REG[0] = NIT_NULL;
809 fra.me.REG[1] = NIT_NULL;
810 fra.me.REG[2] = NIT_NULL;
811 fra.me.REG[3] = NIT_NULL;
812 fra.me.REG[4] = NIT_NULL;
813 fra.me.REG[0] = p0;
814 fra.me.REG[1] = p1;
815 /* primitive_info.nit:131 */
816 fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
817 fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
818 /* primitive_info.nit:132 */
819 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
820 if (UNTAG_Bool(REGB0)) {
821 } else {
822 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
823 if (UNTAG_Bool(REGB1)) {
824 REGB1 = TAG_Bool(false);
825 REGB0 = REGB1;
826 } else {
827 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
828 REGB0 = REGB1;
829 }
830 }
831 if (UNTAG_Bool(REGB0)) {
832 REGB0 = TAG_Bool(true);
833 } else {
834 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
835 REGB0 = REGB1;
836 }
837 if (UNTAG_Bool(REGB0)) {
838 /* primitive_info.nit:133 */
839 fra.me.REG[3] = fra.me.REG[1];
840 goto label1;
841 } else {
842 /* primitive_info.nit:134 */
843 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
844 if (UNTAG_Bool(REGB0)) {
845 nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 134);
846 }
847 REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]);
848 if (UNTAG_Bool(REGB0)) {
849 /* primitive_info.nit:135 */
850 REGB0 = TAG_Int(5);
851 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
852 if (!once_value_2) {
853 fra.me.REG[4] = BOX_NativeString("TAG_");
854 REGB0 = TAG_Int(4);
855 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
856 once_value_2 = fra.me.REG[4];
857 register_static_object(&once_value_2);
858 } else fra.me.REG[4] = once_value_2;
859 fra.me.REG[4] = fra.me.REG[4];
860 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
861 fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
862 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[4])(fra.me.REG[4]);
863 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
864 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
865 if (!once_value_3) {
866 fra.me.REG[4] = BOX_NativeString("(");
867 REGB0 = TAG_Int(1);
868 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
869 once_value_3 = fra.me.REG[4];
870 register_static_object(&once_value_3);
871 } else fra.me.REG[4] = once_value_3;
872 fra.me.REG[4] = fra.me.REG[4];
873 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
874 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
875 if (!once_value_4) {
876 fra.me.REG[4] = BOX_NativeString(")");
877 REGB0 = TAG_Int(1);
878 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
879 once_value_4 = fra.me.REG[4];
880 register_static_object(&once_value_4);
881 } else fra.me.REG[4] = once_value_4;
882 fra.me.REG[4] = fra.me.REG[4];
883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
884 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
885 fra.me.REG[3] = fra.me.REG[2];
886 goto label1;
887 } else {
888 /* primitive_info.nit:137 */
889 REGB0 = TAG_Int(5);
890 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
891 if (!once_value_5) {
892 fra.me.REG[4] = BOX_NativeString("BOX_");
893 REGB0 = TAG_Int(4);
894 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
895 once_value_5 = fra.me.REG[4];
896 register_static_object(&once_value_5);
897 } else fra.me.REG[4] = once_value_5;
898 fra.me.REG[4] = fra.me.REG[4];
899 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
900 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
901 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
902 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
903 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
904 if (!once_value_6) {
905 fra.me.REG[0] = BOX_NativeString("(");
906 REGB0 = TAG_Int(1);
907 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
908 once_value_6 = fra.me.REG[0];
909 register_static_object(&once_value_6);
910 } else fra.me.REG[0] = once_value_6;
911 fra.me.REG[0] = fra.me.REG[0];
912 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
913 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
914 if (!once_value_7) {
915 fra.me.REG[1] = BOX_NativeString(")");
916 REGB0 = TAG_Int(1);
917 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
918 once_value_7 = fra.me.REG[1];
919 register_static_object(&once_value_7);
920 } else fra.me.REG[1] = once_value_7;
921 fra.me.REG[1] = fra.me.REG[1];
922 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
923 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
924 fra.me.REG[3] = fra.me.REG[2];
925 goto label1;
926 }
927 }
928 label1: while(0);
929 stack_frame_head = fra.me.prev;
930 return fra.me.REG[3];
931 }
932 val_t primitive_info___MMType___unboxtype(val_t p0, val_t p1){
933 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
934 val_t REGB0;
935 val_t REGB1;
936 val_t tmp;
937 static val_t once_value_2; /* Once value */
938 static val_t once_value_3; /* Once value */
939 static val_t once_value_4; /* Once value */
940 static val_t once_value_5; /* Once value */
941 static val_t once_value_6; /* Once value */
942 static val_t once_value_7; /* Once value */
943 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
944 fra.me.file = LOCATE_primitive_info;
945 fra.me.line = 141;
946 fra.me.meth = LOCATE_primitive_info___MMType___unboxtype;
947 fra.me.has_broke = 0;
948 fra.me.REG_size = 5;
949 fra.me.nitni_local_ref_head = NULL;
950 fra.me.REG[0] = NIT_NULL;
951 fra.me.REG[1] = NIT_NULL;
952 fra.me.REG[2] = NIT_NULL;
953 fra.me.REG[3] = NIT_NULL;
954 fra.me.REG[4] = NIT_NULL;
955 fra.me.REG[0] = p0;
956 fra.me.REG[1] = p1;
957 /* primitive_info.nit:145 */
958 fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
959 fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
960 /* primitive_info.nit:146 */
961 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
962 if (UNTAG_Bool(REGB0)) {
963 } else {
964 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
965 if (UNTAG_Bool(REGB1)) {
966 REGB1 = TAG_Bool(false);
967 REGB0 = REGB1;
968 } else {
969 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
970 REGB0 = REGB1;
971 }
972 }
973 if (UNTAG_Bool(REGB0)) {
974 REGB0 = TAG_Bool(true);
975 } else {
976 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
977 REGB0 = REGB1;
978 }
979 if (UNTAG_Bool(REGB0)) {
980 /* primitive_info.nit:147 */
981 fra.me.REG[3] = fra.me.REG[1];
982 goto label1;
983 } else {
984 /* primitive_info.nit:148 */
985 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
986 if (UNTAG_Bool(REGB0)) {
987 nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 148);
988 }
989 REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]);
990 if (UNTAG_Bool(REGB0)) {
991 /* primitive_info.nit:149 */
992 REGB0 = TAG_Int(5);
993 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
994 if (!once_value_2) {
995 fra.me.REG[4] = BOX_NativeString("UNTAG_");
996 REGB0 = TAG_Int(6);
997 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
998 once_value_2 = fra.me.REG[4];
999 register_static_object(&once_value_2);
1000 } else fra.me.REG[4] = once_value_2;
1001 fra.me.REG[4] = fra.me.REG[4];
1002 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1003 fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
1004 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[4])(fra.me.REG[4]);
1005 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1006 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1007 if (!once_value_3) {
1008 fra.me.REG[4] = BOX_NativeString("(");
1009 REGB0 = TAG_Int(1);
1010 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1011 once_value_3 = fra.me.REG[4];
1012 register_static_object(&once_value_3);
1013 } else fra.me.REG[4] = once_value_3;
1014 fra.me.REG[4] = fra.me.REG[4];
1015 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1016 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1017 if (!once_value_4) {
1018 fra.me.REG[4] = BOX_NativeString(")");
1019 REGB0 = TAG_Int(1);
1020 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1021 once_value_4 = fra.me.REG[4];
1022 register_static_object(&once_value_4);
1023 } else fra.me.REG[4] = once_value_4;
1024 fra.me.REG[4] = fra.me.REG[4];
1025 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1026 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1027 fra.me.REG[3] = fra.me.REG[2];
1028 goto label1;
1029 } else {
1030 /* primitive_info.nit:151 */
1031 REGB0 = TAG_Int(5);
1032 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1033 if (!once_value_5) {
1034 fra.me.REG[4] = BOX_NativeString("UNBOX_");
1035 REGB0 = TAG_Int(6);
1036 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1037 once_value_5 = fra.me.REG[4];
1038 register_static_object(&once_value_5);
1039 } else fra.me.REG[4] = once_value_5;
1040 fra.me.REG[4] = fra.me.REG[4];
1041 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1042 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
1043 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
1044 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1045 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1046 if (!once_value_6) {
1047 fra.me.REG[0] = BOX_NativeString("(");
1048 REGB0 = TAG_Int(1);
1049 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1050 once_value_6 = fra.me.REG[0];
1051 register_static_object(&once_value_6);
1052 } else fra.me.REG[0] = once_value_6;
1053 fra.me.REG[0] = fra.me.REG[0];
1054 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1055 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1056 if (!once_value_7) {
1057 fra.me.REG[1] = BOX_NativeString(")");
1058 REGB0 = TAG_Int(1);
1059 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
1060 once_value_7 = fra.me.REG[1];
1061 register_static_object(&once_value_7);
1062 } else fra.me.REG[1] = once_value_7;
1063 fra.me.REG[1] = fra.me.REG[1];
1064 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1065 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1066 fra.me.REG[3] = fra.me.REG[2];
1067 goto label1;
1068 }
1069 }
1070 label1: while(0);
1071 stack_frame_head = fra.me.prev;
1072 return fra.me.REG[3];
1073 }
1074 val_t primitive_info___MMMethod___default_extern_name(val_t p0){
1075 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1076 val_t REGB0;
1077 val_t tmp;
1078 static val_t once_value_1; /* Once value */
1079 static val_t once_value_2; /* Once value */
1080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1081 fra.me.file = LOCATE_primitive_info;
1082 fra.me.line = 157;
1083 fra.me.meth = LOCATE_primitive_info___MMMethod___default_extern_name;
1084 fra.me.has_broke = 0;
1085 fra.me.REG_size = 3;
1086 fra.me.nitni_local_ref_head = NULL;
1087 fra.me.REG[0] = NIT_NULL;
1088 fra.me.REG[1] = NIT_NULL;
1089 fra.me.REG[2] = NIT_NULL;
1090 fra.me.REG[0] = p0;
1091 /* primitive_info.nit:159 */
1092 REGB0 = TAG_Int(3);
1093 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1094 if (!once_value_1) {
1095 fra.me.REG[2] = BOX_NativeString("");
1096 REGB0 = TAG_Int(0);
1097 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1098 once_value_1 = fra.me.REG[2];
1099 register_static_object(&once_value_1);
1100 } else fra.me.REG[2] = once_value_1;
1101 fra.me.REG[2] = fra.me.REG[2];
1102 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1103 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1104 fra.me.REG[2] = CALL_primitive_info___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1105 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1106 if (!once_value_2) {
1107 fra.me.REG[2] = BOX_NativeString("___impl");
1108 REGB0 = TAG_Int(7);
1109 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1110 once_value_2 = fra.me.REG[2];
1111 register_static_object(&once_value_2);
1112 } else fra.me.REG[2] = once_value_2;
1113 fra.me.REG[2] = fra.me.REG[2];
1114 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1115 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1116 goto label3;
1117 label3: while(0);
1118 stack_frame_head = fra.me.prev;
1119 return fra.me.REG[1];
1120 }
1121 val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
1122 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1123 val_t REGB0;
1124 val_t REGB1;
1125 val_t REGB2;
1126 val_t tmp;
1127 static val_t once_value_1; /* Once value */
1128 static val_t once_value_2; /* Once value */
1129 static val_t once_value_3; /* Once value */
1130 static val_t once_value_4; /* Once value */
1131 static val_t once_value_5; /* Once value */
1132 static val_t once_value_6; /* Once value */
1133 static val_t once_value_7; /* Once value */
1134 static val_t once_value_8; /* Once value */
1135 static val_t once_value_9; /* Once value */
1136 static val_t once_value_10; /* Once value */
1137 static val_t once_value_11; /* Once value */
1138 static val_t once_value_12; /* Once value */
1139 static val_t once_value_13; /* Once value */
1140 static val_t once_value_14; /* Once value */
1141 static val_t once_value_15; /* Once value */
1142 static val_t once_value_16; /* Once value */
1143 static val_t once_value_17; /* Once value */
1144 static val_t once_value_18; /* Once value */
1145 static val_t once_value_19; /* Once value */
1146 static val_t once_value_20; /* Once value */
1147 static val_t once_value_21; /* Once value */
1148 static val_t once_value_22; /* Once value */
1149 static val_t once_value_23; /* Once value */
1150 static val_t once_value_24; /* Once value */
1151 static val_t once_value_25; /* Once value */
1152 static val_t once_value_26; /* Once value */
1153 static val_t once_value_27; /* Once value */
1154 static val_t once_value_28; /* Once value */
1155 static val_t once_value_29; /* Once value */
1156 static val_t once_value_30; /* Once value */
1157 static val_t once_value_31; /* Once value */
1158 static val_t once_value_32; /* Once value */
1159 static val_t once_value_33; /* Once value */
1160 static val_t once_value_34; /* Once value */
1161 static val_t once_value_35; /* Once value */
1162 static val_t once_value_36; /* Once value */
1163 static val_t once_value_37; /* Once value */
1164 static val_t once_value_39; /* Once value */
1165 static val_t once_value_40; /* Once value */
1166 static val_t once_value_41; /* Once value */
1167 static val_t once_value_42; /* Once value */
1168 static val_t once_value_43; /* Once value */
1169 static val_t once_value_44; /* Once value */
1170 static val_t once_value_45; /* Once value */
1171 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1172 fra.me.file = LOCATE_primitive_info;
1173 fra.me.line = 162;
1174 fra.me.meth = LOCATE_primitive_info___MMMethod___friendly_extern_name;
1175 fra.me.has_broke = 0;
1176 fra.me.REG_size = 6;
1177 fra.me.nitni_local_ref_head = NULL;
1178 fra.me.REG[0] = NIT_NULL;
1179 fra.me.REG[1] = NIT_NULL;
1180 fra.me.REG[2] = NIT_NULL;
1181 fra.me.REG[3] = NIT_NULL;
1182 fra.me.REG[4] = NIT_NULL;
1183 fra.me.REG[5] = NIT_NULL;
1184 fra.me.REG[0] = p0;
1185 fra.me.REG[1] = p1;
1186 /* primitive_info.nit:166 */
1187 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
1188 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
1189 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1190 if (UNTAG_Bool(REGB0)) {
1191 /* primitive_info.nit:168 */
1192 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
1193 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1194 /* primitive_info.nit:169 */
1195 if (!once_value_1) {
1196 fra.me.REG[3] = BOX_NativeString("+");
1197 REGB0 = TAG_Int(1);
1198 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1199 once_value_1 = fra.me.REG[3];
1200 register_static_object(&once_value_1);
1201 } else fra.me.REG[3] = once_value_1;
1202 fra.me.REG[3] = fra.me.REG[3];
1203 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
1204 if (UNTAG_Bool(REGB0)) {
1205 } else {
1206 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1207 REGB0 = REGB1;
1208 }
1209 if (UNTAG_Bool(REGB0)) {
1210 /* primitive_info.nit:170 */
1211 if (!once_value_2) {
1212 fra.me.REG[3] = BOX_NativeString("_plus");
1213 REGB0 = TAG_Int(5);
1214 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1215 once_value_2 = fra.me.REG[3];
1216 register_static_object(&once_value_2);
1217 } else fra.me.REG[3] = once_value_2;
1218 fra.me.REG[3] = fra.me.REG[3];
1219 } else {
1220 /* primitive_info.nit:171 */
1221 if (!once_value_3) {
1222 fra.me.REG[4] = BOX_NativeString("-");
1223 REGB0 = TAG_Int(1);
1224 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1225 once_value_3 = fra.me.REG[4];
1226 register_static_object(&once_value_3);
1227 } else fra.me.REG[4] = once_value_3;
1228 fra.me.REG[4] = fra.me.REG[4];
1229 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1230 if (UNTAG_Bool(REGB0)) {
1231 } else {
1232 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1233 REGB0 = REGB1;
1234 }
1235 if (UNTAG_Bool(REGB0)) {
1236 /* primitive_info.nit:172 */
1237 if (!once_value_4) {
1238 fra.me.REG[4] = BOX_NativeString("_minus");
1239 REGB0 = TAG_Int(6);
1240 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1241 once_value_4 = fra.me.REG[4];
1242 register_static_object(&once_value_4);
1243 } else fra.me.REG[4] = once_value_4;
1244 fra.me.REG[4] = fra.me.REG[4];
1245 fra.me.REG[3] = fra.me.REG[4];
1246 } else {
1247 /* primitive_info.nit:173 */
1248 if (!once_value_5) {
1249 fra.me.REG[4] = BOX_NativeString("*");
1250 REGB0 = TAG_Int(1);
1251 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1252 once_value_5 = fra.me.REG[4];
1253 register_static_object(&once_value_5);
1254 } else fra.me.REG[4] = once_value_5;
1255 fra.me.REG[4] = fra.me.REG[4];
1256 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1257 if (UNTAG_Bool(REGB0)) {
1258 } else {
1259 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1260 REGB0 = REGB1;
1261 }
1262 if (UNTAG_Bool(REGB0)) {
1263 /* primitive_info.nit:174 */
1264 if (!once_value_6) {
1265 fra.me.REG[4] = BOX_NativeString("_star");
1266 REGB0 = TAG_Int(5);
1267 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1268 once_value_6 = fra.me.REG[4];
1269 register_static_object(&once_value_6);
1270 } else fra.me.REG[4] = once_value_6;
1271 fra.me.REG[4] = fra.me.REG[4];
1272 fra.me.REG[3] = fra.me.REG[4];
1273 } else {
1274 /* primitive_info.nit:175 */
1275 if (!once_value_7) {
1276 fra.me.REG[4] = BOX_NativeString("/");
1277 REGB0 = TAG_Int(1);
1278 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1279 once_value_7 = fra.me.REG[4];
1280 register_static_object(&once_value_7);
1281 } else fra.me.REG[4] = once_value_7;
1282 fra.me.REG[4] = fra.me.REG[4];
1283 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1284 if (UNTAG_Bool(REGB0)) {
1285 } else {
1286 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1287 REGB0 = REGB1;
1288 }
1289 if (UNTAG_Bool(REGB0)) {
1290 /* primitive_info.nit:176 */
1291 if (!once_value_8) {
1292 fra.me.REG[4] = BOX_NativeString("_slash");
1293 REGB0 = TAG_Int(6);
1294 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1295 once_value_8 = fra.me.REG[4];
1296 register_static_object(&once_value_8);
1297 } else fra.me.REG[4] = once_value_8;
1298 fra.me.REG[4] = fra.me.REG[4];
1299 fra.me.REG[3] = fra.me.REG[4];
1300 } else {
1301 /* primitive_info.nit:177 */
1302 if (!once_value_9) {
1303 fra.me.REG[4] = BOX_NativeString("%");
1304 REGB0 = TAG_Int(1);
1305 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1306 once_value_9 = fra.me.REG[4];
1307 register_static_object(&once_value_9);
1308 } else fra.me.REG[4] = once_value_9;
1309 fra.me.REG[4] = fra.me.REG[4];
1310 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1311 if (UNTAG_Bool(REGB0)) {
1312 } else {
1313 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1314 REGB0 = REGB1;
1315 }
1316 if (UNTAG_Bool(REGB0)) {
1317 /* primitive_info.nit:178 */
1318 if (!once_value_10) {
1319 fra.me.REG[4] = BOX_NativeString("_percent");
1320 REGB0 = TAG_Int(8);
1321 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1322 once_value_10 = fra.me.REG[4];
1323 register_static_object(&once_value_10);
1324 } else fra.me.REG[4] = once_value_10;
1325 fra.me.REG[4] = fra.me.REG[4];
1326 fra.me.REG[3] = fra.me.REG[4];
1327 } else {
1328 /* primitive_info.nit:179 */
1329 if (!once_value_11) {
1330 fra.me.REG[4] = BOX_NativeString("[]");
1331 REGB0 = TAG_Int(2);
1332 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1333 once_value_11 = fra.me.REG[4];
1334 register_static_object(&once_value_11);
1335 } else fra.me.REG[4] = once_value_11;
1336 fra.me.REG[4] = fra.me.REG[4];
1337 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1338 if (UNTAG_Bool(REGB0)) {
1339 } else {
1340 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1341 REGB0 = REGB1;
1342 }
1343 if (UNTAG_Bool(REGB0)) {
1344 /* primitive_info.nit:180 */
1345 if (!once_value_12) {
1346 fra.me.REG[4] = BOX_NativeString("_index");
1347 REGB0 = TAG_Int(6);
1348 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1349 once_value_12 = fra.me.REG[4];
1350 register_static_object(&once_value_12);
1351 } else fra.me.REG[4] = once_value_12;
1352 fra.me.REG[4] = fra.me.REG[4];
1353 fra.me.REG[3] = fra.me.REG[4];
1354 } else {
1355 /* primitive_info.nit:181 */
1356 if (!once_value_13) {
1357 fra.me.REG[4] = BOX_NativeString("[]=");
1358 REGB0 = TAG_Int(3);
1359 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1360 once_value_13 = fra.me.REG[4];
1361 register_static_object(&once_value_13);
1362 } else fra.me.REG[4] = once_value_13;
1363 fra.me.REG[4] = fra.me.REG[4];
1364 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1365 if (UNTAG_Bool(REGB0)) {
1366 } else {
1367 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1368 REGB0 = REGB1;
1369 }
1370 if (UNTAG_Bool(REGB0)) {
1371 /* primitive_info.nit:182 */
1372 if (!once_value_14) {
1373 fra.me.REG[4] = BOX_NativeString("_index_assign");
1374 REGB0 = TAG_Int(13);
1375 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1376 once_value_14 = fra.me.REG[4];
1377 register_static_object(&once_value_14);
1378 } else fra.me.REG[4] = once_value_14;
1379 fra.me.REG[4] = fra.me.REG[4];
1380 fra.me.REG[3] = fra.me.REG[4];
1381 } else {
1382 /* primitive_info.nit:183 */
1383 if (!once_value_15) {
1384 fra.me.REG[4] = BOX_NativeString("==");
1385 REGB0 = TAG_Int(2);
1386 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1387 once_value_15 = fra.me.REG[4];
1388 register_static_object(&once_value_15);
1389 } else fra.me.REG[4] = once_value_15;
1390 fra.me.REG[4] = fra.me.REG[4];
1391 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1392 if (UNTAG_Bool(REGB0)) {
1393 } else {
1394 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1395 REGB0 = REGB1;
1396 }
1397 if (UNTAG_Bool(REGB0)) {
1398 /* primitive_info.nit:184 */
1399 if (!once_value_16) {
1400 fra.me.REG[4] = BOX_NativeString("_equal");
1401 REGB0 = TAG_Int(6);
1402 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1403 once_value_16 = fra.me.REG[4];
1404 register_static_object(&once_value_16);
1405 } else fra.me.REG[4] = once_value_16;
1406 fra.me.REG[4] = fra.me.REG[4];
1407 fra.me.REG[3] = fra.me.REG[4];
1408 } else {
1409 /* primitive_info.nit:185 */
1410 if (!once_value_17) {
1411 fra.me.REG[4] = BOX_NativeString("<");
1412 REGB0 = TAG_Int(1);
1413 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1414 once_value_17 = fra.me.REG[4];
1415 register_static_object(&once_value_17);
1416 } else fra.me.REG[4] = once_value_17;
1417 fra.me.REG[4] = fra.me.REG[4];
1418 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1419 if (UNTAG_Bool(REGB0)) {
1420 } else {
1421 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1422 REGB0 = REGB1;
1423 }
1424 if (UNTAG_Bool(REGB0)) {
1425 /* primitive_info.nit:186 */
1426 if (!once_value_18) {
1427 fra.me.REG[4] = BOX_NativeString("_less");
1428 REGB0 = TAG_Int(5);
1429 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1430 once_value_18 = fra.me.REG[4];
1431 register_static_object(&once_value_18);
1432 } else fra.me.REG[4] = once_value_18;
1433 fra.me.REG[4] = fra.me.REG[4];
1434 fra.me.REG[3] = fra.me.REG[4];
1435 } else {
1436 /* primitive_info.nit:187 */
1437 if (!once_value_19) {
1438 fra.me.REG[4] = BOX_NativeString(">");
1439 REGB0 = TAG_Int(1);
1440 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1441 once_value_19 = fra.me.REG[4];
1442 register_static_object(&once_value_19);
1443 } else fra.me.REG[4] = once_value_19;
1444 fra.me.REG[4] = fra.me.REG[4];
1445 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1446 if (UNTAG_Bool(REGB0)) {
1447 } else {
1448 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1449 REGB0 = REGB1;
1450 }
1451 if (UNTAG_Bool(REGB0)) {
1452 /* primitive_info.nit:188 */
1453 if (!once_value_20) {
1454 fra.me.REG[4] = BOX_NativeString("_greater");
1455 REGB0 = TAG_Int(8);
1456 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1457 once_value_20 = fra.me.REG[4];
1458 register_static_object(&once_value_20);
1459 } else fra.me.REG[4] = once_value_20;
1460 fra.me.REG[4] = fra.me.REG[4];
1461 fra.me.REG[3] = fra.me.REG[4];
1462 } else {
1463 /* primitive_info.nit:189 */
1464 if (!once_value_21) {
1465 fra.me.REG[4] = BOX_NativeString("<=");
1466 REGB0 = TAG_Int(2);
1467 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1468 once_value_21 = fra.me.REG[4];
1469 register_static_object(&once_value_21);
1470 } else fra.me.REG[4] = once_value_21;
1471 fra.me.REG[4] = fra.me.REG[4];
1472 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1473 if (UNTAG_Bool(REGB0)) {
1474 } else {
1475 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1476 REGB0 = REGB1;
1477 }
1478 if (UNTAG_Bool(REGB0)) {
1479 /* primitive_info.nit:190 */
1480 if (!once_value_22) {
1481 fra.me.REG[4] = BOX_NativeString("_less_or_equal");
1482 REGB0 = TAG_Int(14);
1483 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1484 once_value_22 = fra.me.REG[4];
1485 register_static_object(&once_value_22);
1486 } else fra.me.REG[4] = once_value_22;
1487 fra.me.REG[4] = fra.me.REG[4];
1488 fra.me.REG[3] = fra.me.REG[4];
1489 } else {
1490 /* primitive_info.nit:191 */
1491 if (!once_value_23) {
1492 fra.me.REG[4] = BOX_NativeString(">=");
1493 REGB0 = TAG_Int(2);
1494 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1495 once_value_23 = fra.me.REG[4];
1496 register_static_object(&once_value_23);
1497 } else fra.me.REG[4] = once_value_23;
1498 fra.me.REG[4] = fra.me.REG[4];
1499 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1500 if (UNTAG_Bool(REGB0)) {
1501 } else {
1502 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1503 REGB0 = REGB1;
1504 }
1505 if (UNTAG_Bool(REGB0)) {
1506 /* primitive_info.nit:192 */
1507 if (!once_value_24) {
1508 fra.me.REG[4] = BOX_NativeString("_ge");
1509 REGB0 = TAG_Int(3);
1510 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1511 once_value_24 = fra.me.REG[4];
1512 register_static_object(&once_value_24);
1513 } else fra.me.REG[4] = once_value_24;
1514 fra.me.REG[4] = fra.me.REG[4];
1515 fra.me.REG[3] = fra.me.REG[4];
1516 } else {
1517 /* primitive_info.nit:193 */
1518 if (!once_value_25) {
1519 fra.me.REG[4] = BOX_NativeString("!=");
1520 REGB0 = TAG_Int(2);
1521 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1522 once_value_25 = fra.me.REG[4];
1523 register_static_object(&once_value_25);
1524 } else fra.me.REG[4] = once_value_25;
1525 fra.me.REG[4] = fra.me.REG[4];
1526 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1527 if (UNTAG_Bool(REGB0)) {
1528 } else {
1529 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1530 REGB0 = REGB1;
1531 }
1532 if (UNTAG_Bool(REGB0)) {
1533 /* primitive_info.nit:194 */
1534 if (!once_value_26) {
1535 fra.me.REG[4] = BOX_NativeString("_not_equal");
1536 REGB0 = TAG_Int(10);
1537 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1538 once_value_26 = fra.me.REG[4];
1539 register_static_object(&once_value_26);
1540 } else fra.me.REG[4] = once_value_26;
1541 fra.me.REG[4] = fra.me.REG[4];
1542 fra.me.REG[3] = fra.me.REG[4];
1543 } else {
1544 /* primitive_info.nit:195 */
1545 if (!once_value_27) {
1546 fra.me.REG[4] = BOX_NativeString(">>");
1547 REGB0 = TAG_Int(2);
1548 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1549 once_value_27 = fra.me.REG[4];
1550 register_static_object(&once_value_27);
1551 } else fra.me.REG[4] = once_value_27;
1552 fra.me.REG[4] = fra.me.REG[4];
1553 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1554 if (UNTAG_Bool(REGB0)) {
1555 } else {
1556 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1557 REGB0 = REGB1;
1558 }
1559 if (UNTAG_Bool(REGB0)) {
1560 /* primitive_info.nit:196 */
1561 if (!once_value_28) {
1562 fra.me.REG[4] = BOX_NativeString("_right");
1563 REGB0 = TAG_Int(6);
1564 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1565 once_value_28 = fra.me.REG[4];
1566 register_static_object(&once_value_28);
1567 } else fra.me.REG[4] = once_value_28;
1568 fra.me.REG[4] = fra.me.REG[4];
1569 fra.me.REG[3] = fra.me.REG[4];
1570 } else {
1571 /* primitive_info.nit:197 */
1572 if (!once_value_29) {
1573 fra.me.REG[4] = BOX_NativeString("<<");
1574 REGB0 = TAG_Int(2);
1575 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1576 once_value_29 = fra.me.REG[4];
1577 register_static_object(&once_value_29);
1578 } else fra.me.REG[4] = once_value_29;
1579 fra.me.REG[4] = fra.me.REG[4];
1580 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1581 if (UNTAG_Bool(REGB0)) {
1582 } else {
1583 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1584 REGB0 = REGB1;
1585 }
1586 if (UNTAG_Bool(REGB0)) {
1587 /* primitive_info.nit:198 */
1588 if (!once_value_30) {
1589 fra.me.REG[4] = BOX_NativeString("_left");
1590 REGB0 = TAG_Int(5);
1591 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1592 once_value_30 = fra.me.REG[4];
1593 register_static_object(&once_value_30);
1594 } else fra.me.REG[4] = once_value_30;
1595 fra.me.REG[4] = fra.me.REG[4];
1596 fra.me.REG[3] = fra.me.REG[4];
1597 } else {
1598 /* primitive_info.nit:199 */
1599 if (!once_value_31) {
1600 fra.me.REG[4] = BOX_NativeString("<=>");
1601 REGB0 = TAG_Int(3);
1602 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1603 once_value_31 = fra.me.REG[4];
1604 register_static_object(&once_value_31);
1605 } else fra.me.REG[4] = once_value_31;
1606 fra.me.REG[4] = fra.me.REG[4];
1607 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
1608 if (UNTAG_Bool(REGB0)) {
1609 } else {
1610 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1611 REGB0 = REGB1;
1612 }
1613 if (UNTAG_Bool(REGB0)) {
1614 /* primitive_info.nit:200 */
1615 if (!once_value_32) {
1616 fra.me.REG[4] = BOX_NativeString("_starship");
1617 REGB0 = TAG_Int(9);
1618 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1619 once_value_32 = fra.me.REG[4];
1620 register_static_object(&once_value_32);
1621 } else fra.me.REG[4] = once_value_32;
1622 fra.me.REG[4] = fra.me.REG[4];
1623 fra.me.REG[3] = fra.me.REG[4];
1624 } else {
1625 /* ../lib/standard/collection/array.nit:24 */
1626 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1627 if (UNTAG_Bool(REGB0)) {
1628 } else {
1629 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1630 }
1631 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1632 /* primitive_info.nit:201 */
1633 REGB1 = TAG_Int(1);
1634 /* ../lib/standard/kernel.nit:237 */
1635 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
1636 /* primitive_info.nit:201 */
1637 REGB1 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB1);
1638 REGB0 = TAG_Char('=');
1639 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
1640 if (UNTAG_Bool(REGB2)) {
1641 } else {
1642 /* ../lib/standard/kernel.nit:378 */
1643 REGB0 = TAG_Bool((REGB1)==(REGB0));
1644 /* primitive_info.nit:201 */
1645 REGB2 = REGB0;
1646 }
1647 if (UNTAG_Bool(REGB2)) {
1648 /* primitive_info.nit:202 */
1649 REGB2 = TAG_Int(3);
1650 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
1651 if (!once_value_33) {
1652 fra.me.REG[5] = BOX_NativeString("");
1653 REGB2 = TAG_Int(0);
1654 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
1655 once_value_33 = fra.me.REG[5];
1656 register_static_object(&once_value_33);
1657 } else fra.me.REG[5] = once_value_33;
1658 fra.me.REG[5] = fra.me.REG[5];
1659 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1660 REGB2 = TAG_Int(0);
1661 /* ../lib/standard/collection/array.nit:24 */
1662 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1663 if (UNTAG_Bool(REGB0)) {
1664 } else {
1665 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1666 }
1667 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1668 /* primitive_info.nit:202 */
1669 REGB1 = TAG_Int(1);
1670 /* ../lib/standard/kernel.nit:237 */
1671 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
1672 /* primitive_info.nit:202 */
1673 fra.me.REG[5] = CALL_standard___string___AbstractString___substring(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB1);
1674 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1675 if (!once_value_34) {
1676 fra.me.REG[5] = BOX_NativeString("__assign");
1677 REGB1 = TAG_Int(8);
1678 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
1679 once_value_34 = fra.me.REG[5];
1680 register_static_object(&once_value_34);
1681 } else fra.me.REG[5] = once_value_34;
1682 fra.me.REG[5] = fra.me.REG[5];
1683 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1684 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1685 fra.me.REG[3] = fra.me.REG[4];
1686 } else {
1687 /* primitive_info.nit:204 */
1688 fra.me.REG[3] = fra.me.REG[2];
1689 }
1690 }
1691 }
1692 }
1693 }
1694 }
1695 }
1696 }
1697 }
1698 }
1699 }
1700 }
1701 }
1702 }
1703 }
1704 }
1705 }
1706 /* primitive_info.nit:207 */
1707 REGB1 = TAG_Int(5);
1708 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1709 if (!once_value_35) {
1710 fra.me.REG[4] = BOX_NativeString("");
1711 REGB1 = TAG_Int(0);
1712 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
1713 once_value_35 = fra.me.REG[4];
1714 register_static_object(&once_value_35);
1715 } else fra.me.REG[4] = once_value_35;
1716 fra.me.REG[4] = fra.me.REG[4];
1717 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1718 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]);
1719 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1720 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1721 if (!once_value_36) {
1722 fra.me.REG[4] = BOX_NativeString("_");
1723 REGB1 = TAG_Int(1);
1724 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
1725 once_value_36 = fra.me.REG[4];
1726 register_static_object(&once_value_36);
1727 } else fra.me.REG[4] = once_value_36;
1728 fra.me.REG[4] = fra.me.REG[4];
1729 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1730 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1731 if (!once_value_37) {
1732 fra.me.REG[3] = BOX_NativeString("");
1733 REGB1 = TAG_Int(0);
1734 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
1735 once_value_37 = fra.me.REG[3];
1736 register_static_object(&once_value_37);
1737 } else fra.me.REG[3] = once_value_37;
1738 fra.me.REG[3] = fra.me.REG[3];
1739 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1740 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1741 goto label38;
1742 } else {
1743 /* primitive_info.nit:209 */
1744 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
1745 if (!once_value_39) {
1746 if (!once_value_40) {
1747 fra.me.REG[4] = BOX_NativeString("init");
1748 REGB1 = TAG_Int(4);
1749 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
1750 once_value_40 = fra.me.REG[4];
1751 register_static_object(&once_value_40);
1752 } else fra.me.REG[4] = once_value_40;
1753 fra.me.REG[4] = fra.me.REG[4];
1754 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
1755 once_value_39 = fra.me.REG[4];
1756 register_static_object(&once_value_39);
1757 } else fra.me.REG[4] = once_value_39;
1758 fra.me.REG[4] = fra.me.REG[4];
1759 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
1760 if (UNTAG_Bool(REGB1)) {
1761 } else {
1762 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1763 REGB1 = REGB2;
1764 }
1765 if (UNTAG_Bool(REGB1)) {
1766 /* primitive_info.nit:210 */
1767 REGB1 = TAG_Int(3);
1768 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1769 if (!once_value_41) {
1770 fra.me.REG[3] = BOX_NativeString("new_");
1771 REGB1 = TAG_Int(4);
1772 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
1773 once_value_41 = fra.me.REG[3];
1774 register_static_object(&once_value_41);
1775 } else fra.me.REG[3] = once_value_41;
1776 fra.me.REG[3] = fra.me.REG[3];
1777 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1778 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]);
1779 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1780 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1781 if (!once_value_42) {
1782 fra.me.REG[3] = BOX_NativeString("");
1783 REGB1 = TAG_Int(0);
1784 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
1785 once_value_42 = fra.me.REG[3];
1786 register_static_object(&once_value_42);
1787 } else fra.me.REG[3] = once_value_42;
1788 fra.me.REG[3] = fra.me.REG[3];
1789 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1790 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1791 fra.me.REG[2] = fra.me.REG[4];
1792 goto label38;
1793 } else {
1794 /* primitive_info.nit:212 */
1795 REGB1 = TAG_Int(5);
1796 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1797 if (!once_value_43) {
1798 fra.me.REG[3] = BOX_NativeString("new_");
1799 REGB1 = TAG_Int(4);
1800 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
1801 once_value_43 = fra.me.REG[3];
1802 register_static_object(&once_value_43);
1803 } else fra.me.REG[3] = once_value_43;
1804 fra.me.REG[3] = fra.me.REG[3];
1805 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1806 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]);
1807 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1808 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
1809 if (!once_value_44) {
1810 fra.me.REG[1] = BOX_NativeString("_");
1811 REGB1 = TAG_Int(1);
1812 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
1813 once_value_44 = fra.me.REG[1];
1814 register_static_object(&once_value_44);
1815 } else fra.me.REG[1] = once_value_44;
1816 fra.me.REG[1] = fra.me.REG[1];
1817 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
1818 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
1819 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1820 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
1821 if (!once_value_45) {
1822 fra.me.REG[0] = BOX_NativeString("");
1823 REGB1 = TAG_Int(0);
1824 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
1825 once_value_45 = fra.me.REG[0];
1826 register_static_object(&once_value_45);
1827 } else fra.me.REG[0] = once_value_45;
1828 fra.me.REG[0] = fra.me.REG[0];
1829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
1830 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1831 fra.me.REG[2] = fra.me.REG[4];
1832 goto label38;
1833 }
1834 }
1835 label38: while(0);
1836 stack_frame_head = fra.me.prev;
1837 return fra.me.REG[2];
1838 }