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