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