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