c_src: Fix uname in Makefile
[nit.git] / c_src / string_search.sep.1.c
1 #include "string_search.sep.0.h"
2 /* method string_search#Pattern#split_in for (self: Pattern, Text): Array[Match] */
3 val* string_search__Pattern__split_in(val* self, val* p0) {
4 val* var /* : Array[Match] */;
5 val* var_s /* var s: Text */;
6 val* var1 /* : Array[Match] */;
7 val* var_res /* var res: Array[Match] */;
8 long var2 /* : Int */;
9 long var_i /* var i: Int */;
10 long var3 /* : Int */;
11 val* var4 /* : nullable Match */;
12 val* var_match /* var match: nullable Match */;
13 val* var5 /* : null */;
14 short int var6 /* : Bool */;
15 short int var7 /* : Bool */;
16 val* var_other /* var other: nullable Object */;
17 short int var9 /* : Bool */;
18 short int var10 /* : Bool */;
19 short int var11 /* : Bool */;
20 long var12 /* : Int */;
21 long var14 /* : Int */;
22 long var15 /* : Int */;
23 short int var17 /* : Bool */;
24 int cltype;
25 int idtype;
26 const char* var_class_name;
27 long var18 /* : Int */;
28 long var_len /* var len: Int */;
29 val* var19 /* : Match */;
30 val* var20 /* : String */;
31 long var21 /* : Int */;
32 val* var22 /* : nullable Match */;
33 val* var23 /* : Match */;
34 val* var24 /* : String */;
35 long var25 /* : Int */;
36 long var27 /* : Int */;
37 long var28 /* : Int */;
38 short int var30 /* : Bool */;
39 int cltype31;
40 int idtype32;
41 const char* var_class_name33;
42 long var34 /* : Int */;
43 var_s = p0;
44 var1 = NEW_array__Array(&type_array__Arraystring_search__Match);
45 {
46 array__Array__init(var1); /* Direct call array#Array#init on <var1:Array[Match]>*/
47 }
48 var_res = var1;
49 var2 = 0;
50 var_i = var2;
51 var3 = 0;
52 {
53 var4 = ((val* (*)(val*, val*, long))(self->class->vft[COLOR_string_search__Pattern__search_in]))(self, var_s, var3) /* search_in on <self:Pattern>*/;
54 }
55 var_match = var4;
56 for(;;) {
57 var5 = NULL;
58 if (var_match == NULL) {
59 var6 = 0; /* is null */
60 } else {
61 var6 = 1; /* arg is null and recv is not */
62 }
63 if (0) {
64 { /* Inline kernel#Object#!= (var_match,var5) on <var_match:nullable Match> */
65 var_other = var5;
66 {
67 var10 = ((short int (*)(val*, val*))(var_match->class->vft[COLOR_kernel__Object___61d_61d]))(var_match, var_other) /* == on <var_match:nullable Match(Match)>*/;
68 var9 = var10;
69 }
70 var11 = !var9;
71 var7 = var11;
72 goto RET_LABEL8;
73 RET_LABEL8:(void)0;
74 }
75 var6 = var7;
76 }
77 if (!var6) break;
78 {
79 { /* Inline string_search#Match#from (var_match) on <var_match:nullable Match(Match)> */
80 var14 = var_match->attrs[COLOR_string_search__Match___from].l; /* _from on <var_match:nullable Match(Match)> */
81 var12 = var14;
82 RET_LABEL13:(void)0;
83 }
84 }
85 {
86 { /* Inline kernel#Int#- (var12,var_i) on <var12:Int> */
87 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
88 /* <var_i:Int> isa OTHER */
89 var17 = 1; /* easy <var_i:Int> isa OTHER*/
90 if (unlikely(!var17)) {
91 var_class_name = type_kernel__Int.name;
92 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
93 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
94 show_backtrace(1);
95 }
96 var18 = var12 - var_i;
97 var15 = var18;
98 goto RET_LABEL16;
99 RET_LABEL16:(void)0;
100 }
101 }
102 var_len = var15;
103 var19 = NEW_string_search__Match(&type_string_search__Match);
104 {
105 var20 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Text>*/;
106 }
107 {
108 string_search__Match__init(var19, var20, var_i, var_len); /* Direct call string_search#Match#init on <var19:Match>*/
109 }
110 {
111 array__Array__add(var_res, var19); /* Direct call array#Array#add on <var_res:Array[Match]>*/
112 }
113 {
114 var21 = string_search__Match__after(var_match);
115 }
116 var_i = var21;
117 {
118 var22 = ((val* (*)(val*, val*, long))(self->class->vft[COLOR_string_search__Pattern__search_in]))(self, var_s, var_i) /* search_in on <self:Pattern>*/;
119 }
120 var_match = var22;
121 CONTINUE_label: (void)0;
122 }
123 BREAK_label: (void)0;
124 var23 = NEW_string_search__Match(&type_string_search__Match);
125 {
126 var24 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Text>*/;
127 }
128 {
129 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
130 var27 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:Text> */
131 var25 = var27;
132 RET_LABEL26:(void)0;
133 }
134 }
135 {
136 { /* Inline kernel#Int#- (var25,var_i) on <var25:Int> */
137 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
138 /* <var_i:Int> isa OTHER */
139 var30 = 1; /* easy <var_i:Int> isa OTHER*/
140 if (unlikely(!var30)) {
141 var_class_name33 = type_kernel__Int.name;
142 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
143 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
144 show_backtrace(1);
145 }
146 var34 = var25 - var_i;
147 var28 = var34;
148 goto RET_LABEL29;
149 RET_LABEL29:(void)0;
150 }
151 }
152 {
153 string_search__Match__init(var23, var24, var_i, var28); /* Direct call string_search#Match#init on <var23:Match>*/
154 }
155 {
156 array__Array__add(var_res, var23); /* Direct call array#Array#add on <var_res:Array[Match]>*/
157 }
158 var = var_res;
159 goto RET_LABEL;
160 RET_LABEL:;
161 return var;
162 }
163 /* method string_search#Pattern#split_in for (self: Object, Text): Array[Match] */
164 val* VIRTUAL_string_search__Pattern__split_in(val* self, val* p0) {
165 val* var /* : Array[Match] */;
166 val* var1 /* : Array[Match] */;
167 var1 = string_search__Pattern__split_in(self, p0);
168 var = var1;
169 RET_LABEL:;
170 return var;
171 }
172 /* method string_search#Match#string for (self: Match): String */
173 val* string_search__Match__string(val* self) {
174 val* var /* : String */;
175 val* var1 /* : String */;
176 var1 = self->attrs[COLOR_string_search__Match___string].val; /* _string on <self:Match> */
177 if (unlikely(var1 == NULL)) {
178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
179 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 240);
180 show_backtrace(1);
181 }
182 var = var1;
183 RET_LABEL:;
184 return var;
185 }
186 /* method string_search#Match#string for (self: Object): String */
187 val* VIRTUAL_string_search__Match__string(val* self) {
188 val* var /* : String */;
189 val* var1 /* : String */;
190 val* var3 /* : String */;
191 { /* Inline string_search#Match#string (self) on <self:Object(Match)> */
192 var3 = self->attrs[COLOR_string_search__Match___string].val; /* _string on <self:Object(Match)> */
193 if (unlikely(var3 == NULL)) {
194 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
195 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 240);
196 show_backtrace(1);
197 }
198 var1 = var3;
199 RET_LABEL2:(void)0;
200 }
201 var = var1;
202 RET_LABEL:;
203 return var;
204 }
205 /* method string_search#Match#string= for (self: Match, String) */
206 void string_search__Match__string_61d(val* self, val* p0) {
207 self->attrs[COLOR_string_search__Match___string].val = p0; /* _string on <self:Match> */
208 RET_LABEL:;
209 }
210 /* method string_search#Match#string= for (self: Object, String) */
211 void VIRTUAL_string_search__Match__string_61d(val* self, val* p0) {
212 { /* Inline string_search#Match#string= (self,p0) on <self:Object(Match)> */
213 self->attrs[COLOR_string_search__Match___string].val = p0; /* _string on <self:Object(Match)> */
214 RET_LABEL1:(void)0;
215 }
216 RET_LABEL:;
217 }
218 /* method string_search#Match#from for (self: Match): Int */
219 long string_search__Match__from(val* self) {
220 long var /* : Int */;
221 long var1 /* : Int */;
222 var1 = self->attrs[COLOR_string_search__Match___from].l; /* _from on <self:Match> */
223 var = var1;
224 RET_LABEL:;
225 return var;
226 }
227 /* method string_search#Match#from for (self: Object): Int */
228 long VIRTUAL_string_search__Match__from(val* self) {
229 long var /* : Int */;
230 long var1 /* : Int */;
231 long var3 /* : Int */;
232 { /* Inline string_search#Match#from (self) on <self:Object(Match)> */
233 var3 = self->attrs[COLOR_string_search__Match___from].l; /* _from on <self:Object(Match)> */
234 var1 = var3;
235 RET_LABEL2:(void)0;
236 }
237 var = var1;
238 RET_LABEL:;
239 return var;
240 }
241 /* method string_search#Match#from= for (self: Match, Int) */
242 void string_search__Match__from_61d(val* self, long p0) {
243 self->attrs[COLOR_string_search__Match___from].l = p0; /* _from on <self:Match> */
244 RET_LABEL:;
245 }
246 /* method string_search#Match#from= for (self: Object, Int) */
247 void VIRTUAL_string_search__Match__from_61d(val* self, long p0) {
248 { /* Inline string_search#Match#from= (self,p0) on <self:Object(Match)> */
249 self->attrs[COLOR_string_search__Match___from].l = p0; /* _from on <self:Object(Match)> */
250 RET_LABEL1:(void)0;
251 }
252 RET_LABEL:;
253 }
254 /* method string_search#Match#length for (self: Match): Int */
255 long string_search__Match__length(val* self) {
256 long var /* : Int */;
257 long var1 /* : Int */;
258 var1 = self->attrs[COLOR_string_search__Match___length].l; /* _length on <self:Match> */
259 var = var1;
260 RET_LABEL:;
261 return var;
262 }
263 /* method string_search#Match#length for (self: Object): Int */
264 long VIRTUAL_string_search__Match__length(val* self) {
265 long var /* : Int */;
266 long var1 /* : Int */;
267 long var3 /* : Int */;
268 { /* Inline string_search#Match#length (self) on <self:Object(Match)> */
269 var3 = self->attrs[COLOR_string_search__Match___length].l; /* _length on <self:Object(Match)> */
270 var1 = var3;
271 RET_LABEL2:(void)0;
272 }
273 var = var1;
274 RET_LABEL:;
275 return var;
276 }
277 /* method string_search#Match#length= for (self: Match, Int) */
278 void string_search__Match__length_61d(val* self, long p0) {
279 self->attrs[COLOR_string_search__Match___length].l = p0; /* _length on <self:Match> */
280 RET_LABEL:;
281 }
282 /* method string_search#Match#length= for (self: Object, Int) */
283 void VIRTUAL_string_search__Match__length_61d(val* self, long p0) {
284 { /* Inline string_search#Match#length= (self,p0) on <self:Object(Match)> */
285 self->attrs[COLOR_string_search__Match___length].l = p0; /* _length on <self:Object(Match)> */
286 RET_LABEL1:(void)0;
287 }
288 RET_LABEL:;
289 }
290 /* method string_search#Match#after for (self: Match): Int */
291 long string_search__Match__after(val* self) {
292 long var /* : Int */;
293 long var1 /* : Int */;
294 long var3 /* : Int */;
295 long var4 /* : Int */;
296 long var6 /* : Int */;
297 long var7 /* : Int */;
298 short int var9 /* : Bool */;
299 int cltype;
300 int idtype;
301 const char* var_class_name;
302 long var10 /* : Int */;
303 {
304 { /* Inline string_search#Match#from (self) on <self:Match> */
305 var3 = self->attrs[COLOR_string_search__Match___from].l; /* _from on <self:Match> */
306 var1 = var3;
307 RET_LABEL2:(void)0;
308 }
309 }
310 {
311 { /* Inline string_search#Match#length (self) on <self:Match> */
312 var6 = self->attrs[COLOR_string_search__Match___length].l; /* _length on <self:Match> */
313 var4 = var6;
314 RET_LABEL5:(void)0;
315 }
316 }
317 {
318 { /* Inline kernel#Int#+ (var1,var4) on <var1:Int> */
319 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
320 /* <var4:Int> isa OTHER */
321 var9 = 1; /* easy <var4:Int> isa OTHER*/
322 if (unlikely(!var9)) {
323 var_class_name = type_kernel__Int.name;
324 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
325 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
326 show_backtrace(1);
327 }
328 var10 = var1 + var4;
329 var7 = var10;
330 goto RET_LABEL8;
331 RET_LABEL8:(void)0;
332 }
333 }
334 var = var7;
335 goto RET_LABEL;
336 RET_LABEL:;
337 return var;
338 }
339 /* method string_search#Match#after for (self: Object): Int */
340 long VIRTUAL_string_search__Match__after(val* self) {
341 long var /* : Int */;
342 long var1 /* : Int */;
343 var1 = string_search__Match__after(self);
344 var = var1;
345 RET_LABEL:;
346 return var;
347 }
348 /* method string_search#Match#to_s for (self: Match): String */
349 val* string_search__Match__to_s(val* self) {
350 val* var /* : String */;
351 val* var1 /* : String */;
352 val* var3 /* : String */;
353 long var4 /* : Int */;
354 long var6 /* : Int */;
355 long var7 /* : Int */;
356 long var9 /* : Int */;
357 val* var10 /* : String */;
358 {
359 { /* Inline string_search#Match#string (self) on <self:Match> */
360 var3 = self->attrs[COLOR_string_search__Match___string].val; /* _string on <self:Match> */
361 if (unlikely(var3 == NULL)) {
362 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
363 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 240);
364 show_backtrace(1);
365 }
366 var1 = var3;
367 RET_LABEL2:(void)0;
368 }
369 }
370 {
371 { /* Inline string_search#Match#from (self) on <self:Match> */
372 var6 = self->attrs[COLOR_string_search__Match___from].l; /* _from on <self:Match> */
373 var4 = var6;
374 RET_LABEL5:(void)0;
375 }
376 }
377 {
378 { /* Inline string_search#Match#length (self) on <self:Match> */
379 var9 = self->attrs[COLOR_string_search__Match___length].l; /* _length on <self:Match> */
380 var7 = var9;
381 RET_LABEL8:(void)0;
382 }
383 }
384 {
385 var10 = string__FlatString__substring(var1, var4, var7);
386 }
387 var = var10;
388 goto RET_LABEL;
389 RET_LABEL:;
390 return var;
391 }
392 /* method string_search#Match#to_s for (self: Object): String */
393 val* VIRTUAL_string_search__Match__to_s(val* self) {
394 val* var /* : String */;
395 val* var1 /* : String */;
396 var1 = string_search__Match__to_s(self);
397 var = var1;
398 RET_LABEL:;
399 return var;
400 }
401 /* method string_search#Match#init for (self: Match, String, Int, Int) */
402 void string_search__Match__init(val* self, val* p0, long p1, long p2) {
403 val* var_s /* var s: String */;
404 long var_f /* var f: Int */;
405 long var_len /* var len: Int */;
406 long var /* : Int */;
407 short int var1 /* : Bool */;
408 short int var3 /* : Bool */;
409 int cltype;
410 int idtype;
411 const char* var_class_name;
412 short int var4 /* : Bool */;
413 long var5 /* : Int */;
414 short int var6 /* : Bool */;
415 short int var8 /* : Bool */;
416 int cltype9;
417 int idtype10;
418 const char* var_class_name11;
419 short int var12 /* : Bool */;
420 long var13 /* : Int */;
421 short int var15 /* : Bool */;
422 int cltype16;
423 int idtype17;
424 const char* var_class_name18;
425 long var19 /* : Int */;
426 long var20 /* : Int */;
427 long var22 /* : Int */;
428 short int var23 /* : Bool */;
429 short int var25 /* : Bool */;
430 int cltype26;
431 int idtype27;
432 const char* var_class_name28;
433 short int var29 /* : Bool */;
434 var_s = p0;
435 var_f = p1;
436 var_len = p2;
437 var = 0;
438 {
439 { /* Inline kernel#Int#>= (var_len,var) on <var_len:Int> */
440 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
441 /* <var:Int> isa OTHER */
442 var3 = 1; /* easy <var:Int> isa OTHER*/
443 if (unlikely(!var3)) {
444 var_class_name = type_kernel__Int.name;
445 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
446 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
447 show_backtrace(1);
448 }
449 var4 = var_len >= var;
450 var1 = var4;
451 goto RET_LABEL2;
452 RET_LABEL2:(void)0;
453 }
454 }
455 if (unlikely(!var1)) {
456 PRINT_ERROR("Runtime error: %s", "Assert \'positive_length\' failed");
457 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 259);
458 show_backtrace(1);
459 }
460 var5 = 0;
461 {
462 { /* Inline kernel#Int#>= (var_f,var5) on <var_f:Int> */
463 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
464 /* <var5:Int> isa OTHER */
465 var8 = 1; /* easy <var5:Int> isa OTHER*/
466 if (unlikely(!var8)) {
467 var_class_name11 = type_kernel__Int.name;
468 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
469 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
470 show_backtrace(1);
471 }
472 var12 = var_f >= var5;
473 var6 = var12;
474 goto RET_LABEL7;
475 RET_LABEL7:(void)0;
476 }
477 }
478 if (unlikely(!var6)) {
479 PRINT_ERROR("Runtime error: %s", "Assert \'valid_from\' failed");
480 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 260);
481 show_backtrace(1);
482 }
483 {
484 { /* Inline kernel#Int#+ (var_f,var_len) on <var_f:Int> */
485 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
486 /* <var_len:Int> isa OTHER */
487 var15 = 1; /* easy <var_len:Int> isa OTHER*/
488 if (unlikely(!var15)) {
489 var_class_name18 = type_kernel__Int.name;
490 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
491 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
492 show_backtrace(1);
493 }
494 var19 = var_f + var_len;
495 var13 = var19;
496 goto RET_LABEL14;
497 RET_LABEL14:(void)0;
498 }
499 }
500 {
501 { /* Inline string#FlatText#length (var_s) on <var_s:String> */
502 var22 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:String> */
503 var20 = var22;
504 RET_LABEL21:(void)0;
505 }
506 }
507 {
508 { /* Inline kernel#Int#<= (var13,var20) on <var13:Int> */
509 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
510 /* <var20:Int> isa OTHER */
511 var25 = 1; /* easy <var20:Int> isa OTHER*/
512 if (unlikely(!var25)) {
513 var_class_name28 = type_kernel__Int.name;
514 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
515 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
516 show_backtrace(1);
517 }
518 var29 = var13 <= var20;
519 var23 = var29;
520 goto RET_LABEL24;
521 RET_LABEL24:(void)0;
522 }
523 }
524 if (unlikely(!var23)) {
525 PRINT_ERROR("Runtime error: %s", "Assert \'valid_after\' failed");
526 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 261);
527 show_backtrace(1);
528 }
529 {
530 { /* Inline string_search#Match#string= (self,var_s) on <self:Match> */
531 self->attrs[COLOR_string_search__Match___string].val = var_s; /* _string on <self:Match> */
532 RET_LABEL30:(void)0;
533 }
534 }
535 {
536 { /* Inline string_search#Match#from= (self,var_f) on <self:Match> */
537 self->attrs[COLOR_string_search__Match___from].l = var_f; /* _from on <self:Match> */
538 RET_LABEL31:(void)0;
539 }
540 }
541 {
542 { /* Inline string_search#Match#length= (self,var_len) on <self:Match> */
543 self->attrs[COLOR_string_search__Match___length].l = var_len; /* _length on <self:Match> */
544 RET_LABEL32:(void)0;
545 }
546 }
547 RET_LABEL:;
548 }
549 /* method string_search#Match#init for (self: Object, String, Int, Int) */
550 void VIRTUAL_string_search__Match__init(val* self, val* p0, long p1, long p2) {
551 string_search__Match__init(self, p0, p1, p2); /* Direct call string_search#Match#init on <self:Object(Match)>*/
552 RET_LABEL:;
553 }
554 /* method string_search#Char#search_index_in for (self: Char, Text, Int): Int */
555 long string_search__Char__search_index_in(char self, val* p0, long p1) {
556 long var /* : Int */;
557 val* var_s /* var s: Text */;
558 long var_from /* var from: Int */;
559 long var1 /* : Int */;
560 long var3 /* : Int */;
561 long var_stop /* var stop: Int */;
562 short int var4 /* : Bool */;
563 short int var6 /* : Bool */;
564 int cltype;
565 int idtype;
566 const char* var_class_name;
567 short int var7 /* : Bool */;
568 val* var8 /* : SequenceRead[Char] */;
569 val* var9 /* : nullable Object */;
570 short int var10 /* : Bool */;
571 short int var11 /* : Bool */;
572 short int var13 /* : Bool */;
573 char var14 /* : Char */;
574 long var15 /* : Int */;
575 long var16 /* : Int */;
576 short int var18 /* : Bool */;
577 int cltype19;
578 int idtype20;
579 const char* var_class_name21;
580 long var22 /* : Int */;
581 long var23 /* : Int */;
582 long var24 /* : Int */;
583 long var26 /* : Int */;
584 var_s = p0;
585 var_from = p1;
586 {
587 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
588 var3 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:Text> */
589 var1 = var3;
590 RET_LABEL2:(void)0;
591 }
592 }
593 var_stop = var1;
594 for(;;) {
595 {
596 { /* Inline kernel#Int#< (var_from,var_stop) on <var_from:Int> */
597 /* Covariant cast for argument 0 (i) <var_stop:Int> isa OTHER */
598 /* <var_stop:Int> isa OTHER */
599 var6 = 1; /* easy <var_stop:Int> isa OTHER*/
600 if (unlikely(!var6)) {
601 var_class_name = type_kernel__Int.name;
602 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
603 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
604 show_backtrace(1);
605 }
606 var7 = var_from < var_stop;
607 var4 = var7;
608 goto RET_LABEL5;
609 RET_LABEL5:(void)0;
610 }
611 }
612 if (!var4) break;
613 {
614 var8 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Text__chars]))(var_s) /* chars on <var_s:Text>*/;
615 }
616 {
617 var9 = ((val* (*)(val*, long))(var8->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var8, var_from) /* [] on <var8:SequenceRead[Char]>*/;
618 }
619 {
620 { /* Inline kernel#Char#== (var9,self) on <var9:nullable Object(Char)> */
621 var13 = (var9 != NULL) && (var9->class == &class_kernel__Char);
622 if (var13) {
623 var14 = ((struct instance_kernel__Char*)var9)->value; /* autounbox from nullable Object to Char */;
624 var13 = (var14 == self);
625 }
626 var11 = var13;
627 goto RET_LABEL12;
628 RET_LABEL12:(void)0;
629 }
630 var10 = var11;
631 }
632 if (var10){
633 var = var_from;
634 goto RET_LABEL;
635 } else {
636 }
637 var15 = 1;
638 {
639 { /* Inline kernel#Int#+ (var_from,var15) on <var_from:Int> */
640 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
641 /* <var15:Int> isa OTHER */
642 var18 = 1; /* easy <var15:Int> isa OTHER*/
643 if (unlikely(!var18)) {
644 var_class_name21 = type_kernel__Int.name;
645 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
646 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
647 show_backtrace(1);
648 }
649 var22 = var_from + var15;
650 var16 = var22;
651 goto RET_LABEL17;
652 RET_LABEL17:(void)0;
653 }
654 }
655 var_from = var16;
656 CONTINUE_label: (void)0;
657 }
658 BREAK_label: (void)0;
659 var23 = 1;
660 {
661 { /* Inline kernel#Int#unary - (var23) on <var23:Int> */
662 var26 = -var23;
663 var24 = var26;
664 goto RET_LABEL25;
665 RET_LABEL25:(void)0;
666 }
667 }
668 var = var24;
669 goto RET_LABEL;
670 RET_LABEL:;
671 return var;
672 }
673 /* method string_search#Char#search_index_in for (self: Object, Text, Int): Int */
674 long VIRTUAL_string_search__Char__search_index_in(val* self, val* p0, long p1) {
675 long var /* : Int */;
676 long var1 /* : Int */;
677 char var2 /* : Char */;
678 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
679 var1 = string_search__Char__search_index_in(var2, p0, p1);
680 var = var1;
681 RET_LABEL:;
682 return var;
683 }
684 /* method string_search#Char#search_in for (self: Char, Text, Int): nullable Match */
685 val* string_search__Char__search_in(char self, val* p0, long p1) {
686 val* var /* : nullable Match */;
687 val* var_s /* var s: Text */;
688 long var_from /* var from: Int */;
689 long var1 /* : Int */;
690 long var_pos /* var pos: Int */;
691 long var2 /* : Int */;
692 short int var3 /* : Bool */;
693 short int var5 /* : Bool */;
694 int cltype;
695 int idtype;
696 const char* var_class_name;
697 short int var6 /* : Bool */;
698 val* var7 /* : null */;
699 val* var8 /* : Match */;
700 val* var9 /* : String */;
701 long var10 /* : Int */;
702 var_s = p0;
703 var_from = p1;
704 {
705 var1 = string_search__Char__search_index_in(self, var_s, var_from);
706 }
707 var_pos = var1;
708 var2 = 0;
709 {
710 { /* Inline kernel#Int#< (var_pos,var2) on <var_pos:Int> */
711 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
712 /* <var2:Int> isa OTHER */
713 var5 = 1; /* easy <var2:Int> isa OTHER*/
714 if (unlikely(!var5)) {
715 var_class_name = type_kernel__Int.name;
716 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
717 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
718 show_backtrace(1);
719 }
720 var6 = var_pos < var2;
721 var3 = var6;
722 goto RET_LABEL4;
723 RET_LABEL4:(void)0;
724 }
725 }
726 if (var3){
727 var7 = NULL;
728 var = var7;
729 goto RET_LABEL;
730 } else {
731 var8 = NEW_string_search__Match(&type_string_search__Match);
732 {
733 var9 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Text>*/;
734 }
735 var10 = 1;
736 {
737 string_search__Match__init(var8, var9, var_pos, var10); /* Direct call string_search#Match#init on <var8:Match>*/
738 }
739 var = var8;
740 goto RET_LABEL;
741 }
742 RET_LABEL:;
743 return var;
744 }
745 /* method string_search#Char#search_in for (self: Object, Text, Int): nullable Match */
746 val* VIRTUAL_string_search__Char__search_in(val* self, val* p0, long p1) {
747 val* var /* : nullable Match */;
748 val* var1 /* : nullable Match */;
749 char var2 /* : Char */;
750 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
751 var1 = string_search__Char__search_in(var2, p0, p1);
752 var = var1;
753 RET_LABEL:;
754 return var;
755 }
756 /* method string_search#Text#search_index_in for (self: Text, Text, Int): Int */
757 long string_search__Text__search_index_in(val* self, val* p0, long p1) {
758 long var /* : Int */;
759 val* var_s /* var s: Text */;
760 long var_from /* var from: Int */;
761 long var1 /* : Int */;
762 short int var2 /* : Bool */;
763 short int var4 /* : Bool */;
764 int cltype;
765 int idtype;
766 const char* var_class_name;
767 short int var5 /* : Bool */;
768 long var6 /* : Int */;
769 long var8 /* : Int */;
770 long var9 /* : Int */;
771 long var11 /* : Int */;
772 long var12 /* : Int */;
773 short int var14 /* : Bool */;
774 int cltype15;
775 int idtype16;
776 const char* var_class_name17;
777 long var18 /* : Int */;
778 long var19 /* : Int */;
779 long var20 /* : Int */;
780 short int var22 /* : Bool */;
781 int cltype23;
782 int idtype24;
783 const char* var_class_name25;
784 long var26 /* : Int */;
785 long var_stop /* var stop: Int */;
786 short int var27 /* : Bool */;
787 short int var29 /* : Bool */;
788 int cltype30;
789 int idtype31;
790 const char* var_class_name32;
791 short int var33 /* : Bool */;
792 long var34 /* : Int */;
793 long var36 /* : Int */;
794 long var37 /* : Int */;
795 long var38 /* : Int */;
796 short int var40 /* : Bool */;
797 int cltype41;
798 int idtype42;
799 const char* var_class_name43;
800 long var44 /* : Int */;
801 long var_i /* var i: Int */;
802 short int var45 /* : Bool */;
803 long var46 /* : Int */;
804 short int var47 /* : Bool */;
805 short int var49 /* : Bool */;
806 int cltype50;
807 int idtype51;
808 const char* var_class_name52;
809 short int var53 /* : Bool */;
810 short int var_ /* var : Bool */;
811 val* var54 /* : SequenceRead[Char] */;
812 val* var55 /* : nullable Object */;
813 val* var56 /* : SequenceRead[Char] */;
814 long var57 /* : Int */;
815 short int var59 /* : Bool */;
816 int cltype60;
817 int idtype61;
818 const char* var_class_name62;
819 long var63 /* : Int */;
820 val* var64 /* : nullable Object */;
821 short int var65 /* : Bool */;
822 short int var66 /* : Bool */;
823 short int var68 /* : Bool */;
824 long var69 /* : Int */;
825 long var70 /* : Int */;
826 short int var72 /* : Bool */;
827 int cltype73;
828 int idtype74;
829 const char* var_class_name75;
830 long var76 /* : Int */;
831 long var77 /* : Int */;
832 short int var78 /* : Bool */;
833 short int var80 /* : Bool */;
834 int cltype81;
835 int idtype82;
836 const char* var_class_name83;
837 short int var84 /* : Bool */;
838 long var85 /* : Int */;
839 long var86 /* : Int */;
840 short int var88 /* : Bool */;
841 int cltype89;
842 int idtype90;
843 const char* var_class_name91;
844 long var92 /* : Int */;
845 long var94 /* : Int */;
846 long var95 /* : Int */;
847 long var97 /* : Int */;
848 var_s = p0;
849 var_from = p1;
850 var1 = 0;
851 {
852 { /* Inline kernel#Int#>= (var_from,var1) on <var_from:Int> */
853 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
854 /* <var1:Int> isa OTHER */
855 var4 = 1; /* easy <var1:Int> isa OTHER*/
856 if (unlikely(!var4)) {
857 var_class_name = type_kernel__Int.name;
858 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
859 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
860 show_backtrace(1);
861 }
862 var5 = var_from >= var1;
863 var2 = var5;
864 goto RET_LABEL3;
865 RET_LABEL3:(void)0;
866 }
867 }
868 if (unlikely(!var2)) {
869 PRINT_ERROR("Runtime error: %s", "Assert failed");
870 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 297);
871 show_backtrace(1);
872 }
873 {
874 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
875 var8 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:Text> */
876 var6 = var8;
877 RET_LABEL7:(void)0;
878 }
879 }
880 {
881 { /* Inline string#FlatText#length (self) on <self:Text> */
882 var11 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:Text> */
883 var9 = var11;
884 RET_LABEL10:(void)0;
885 }
886 }
887 {
888 { /* Inline kernel#Int#- (var6,var9) on <var6:Int> */
889 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
890 /* <var9:Int> isa OTHER */
891 var14 = 1; /* easy <var9:Int> isa OTHER*/
892 if (unlikely(!var14)) {
893 var_class_name17 = type_kernel__Int.name;
894 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
895 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
896 show_backtrace(1);
897 }
898 var18 = var6 - var9;
899 var12 = var18;
900 goto RET_LABEL13;
901 RET_LABEL13:(void)0;
902 }
903 }
904 var19 = 1;
905 {
906 { /* Inline kernel#Int#+ (var12,var19) on <var12:Int> */
907 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
908 /* <var19:Int> isa OTHER */
909 var22 = 1; /* easy <var19:Int> isa OTHER*/
910 if (unlikely(!var22)) {
911 var_class_name25 = type_kernel__Int.name;
912 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
913 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
914 show_backtrace(1);
915 }
916 var26 = var12 + var19;
917 var20 = var26;
918 goto RET_LABEL21;
919 RET_LABEL21:(void)0;
920 }
921 }
922 var_stop = var20;
923 for(;;) {
924 {
925 { /* Inline kernel#Int#< (var_from,var_stop) on <var_from:Int> */
926 /* Covariant cast for argument 0 (i) <var_stop:Int> isa OTHER */
927 /* <var_stop:Int> isa OTHER */
928 var29 = 1; /* easy <var_stop:Int> isa OTHER*/
929 if (unlikely(!var29)) {
930 var_class_name32 = type_kernel__Int.name;
931 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
932 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
933 show_backtrace(1);
934 }
935 var33 = var_from < var_stop;
936 var27 = var33;
937 goto RET_LABEL28;
938 RET_LABEL28:(void)0;
939 }
940 }
941 if (!var27) break;
942 {
943 { /* Inline string#FlatText#length (self) on <self:Text> */
944 var36 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:Text> */
945 var34 = var36;
946 RET_LABEL35:(void)0;
947 }
948 }
949 var37 = 1;
950 {
951 { /* Inline kernel#Int#- (var34,var37) on <var34:Int> */
952 /* Covariant cast for argument 0 (i) <var37:Int> isa OTHER */
953 /* <var37:Int> isa OTHER */
954 var40 = 1; /* easy <var37:Int> isa OTHER*/
955 if (unlikely(!var40)) {
956 var_class_name43 = type_kernel__Int.name;
957 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
958 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
959 show_backtrace(1);
960 }
961 var44 = var34 - var37;
962 var38 = var44;
963 goto RET_LABEL39;
964 RET_LABEL39:(void)0;
965 }
966 }
967 var_i = var38;
968 for(;;) {
969 var46 = 0;
970 {
971 { /* Inline kernel#Int#>= (var_i,var46) on <var_i:Int> */
972 /* Covariant cast for argument 0 (i) <var46:Int> isa OTHER */
973 /* <var46:Int> isa OTHER */
974 var49 = 1; /* easy <var46:Int> isa OTHER*/
975 if (unlikely(!var49)) {
976 var_class_name52 = type_kernel__Int.name;
977 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
978 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
979 show_backtrace(1);
980 }
981 var53 = var_i >= var46;
982 var47 = var53;
983 goto RET_LABEL48;
984 RET_LABEL48:(void)0;
985 }
986 }
987 var_ = var47;
988 if (var47){
989 {
990 var54 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on <self:Text>*/;
991 }
992 {
993 var55 = ((val* (*)(val*, long))(var54->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var54, var_i) /* [] on <var54:SequenceRead[Char]>*/;
994 }
995 {
996 var56 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Text__chars]))(var_s) /* chars on <var_s:Text>*/;
997 }
998 {
999 { /* Inline kernel#Int#+ (var_i,var_from) on <var_i:Int> */
1000 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1001 /* <var_from:Int> isa OTHER */
1002 var59 = 1; /* easy <var_from:Int> isa OTHER*/
1003 if (unlikely(!var59)) {
1004 var_class_name62 = type_kernel__Int.name;
1005 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62);
1006 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1007 show_backtrace(1);
1008 }
1009 var63 = var_i + var_from;
1010 var57 = var63;
1011 goto RET_LABEL58;
1012 RET_LABEL58:(void)0;
1013 }
1014 }
1015 {
1016 var64 = ((val* (*)(val*, long))(var56->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var56, var57) /* [] on <var56:SequenceRead[Char]>*/;
1017 }
1018 {
1019 { /* Inline kernel#Char#== (var55,var64) on <var55:nullable Object(Char)> */
1020 var68 = var55 == var64 || (((struct instance_kernel__Char*)var55)->value == ((struct instance_kernel__Char*)var64)->value);
1021 var66 = var68;
1022 goto RET_LABEL67;
1023 RET_LABEL67:(void)0;
1024 }
1025 var65 = var66;
1026 }
1027 var45 = var65;
1028 } else {
1029 var45 = var_;
1030 }
1031 if (!var45) break;
1032 var69 = 1;
1033 {
1034 { /* Inline kernel#Int#- (var_i,var69) on <var_i:Int> */
1035 /* Covariant cast for argument 0 (i) <var69:Int> isa OTHER */
1036 /* <var69:Int> isa OTHER */
1037 var72 = 1; /* easy <var69:Int> isa OTHER*/
1038 if (unlikely(!var72)) {
1039 var_class_name75 = type_kernel__Int.name;
1040 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75);
1041 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1042 show_backtrace(1);
1043 }
1044 var76 = var_i - var69;
1045 var70 = var76;
1046 goto RET_LABEL71;
1047 RET_LABEL71:(void)0;
1048 }
1049 }
1050 var_i = var70;
1051 CONTINUE_label: (void)0;
1052 }
1053 BREAK_label: (void)0;
1054 var77 = 0;
1055 {
1056 { /* Inline kernel#Int#< (var_i,var77) on <var_i:Int> */
1057 /* Covariant cast for argument 0 (i) <var77:Int> isa OTHER */
1058 /* <var77:Int> isa OTHER */
1059 var80 = 1; /* easy <var77:Int> isa OTHER*/
1060 if (unlikely(!var80)) {
1061 var_class_name83 = type_kernel__Int.name;
1062 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name83);
1063 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
1064 show_backtrace(1);
1065 }
1066 var84 = var_i < var77;
1067 var78 = var84;
1068 goto RET_LABEL79;
1069 RET_LABEL79:(void)0;
1070 }
1071 }
1072 if (var78){
1073 var = var_from;
1074 goto RET_LABEL;
1075 } else {
1076 }
1077 var85 = 1;
1078 {
1079 { /* Inline kernel#Int#+ (var_from,var85) on <var_from:Int> */
1080 /* Covariant cast for argument 0 (i) <var85:Int> isa OTHER */
1081 /* <var85:Int> isa OTHER */
1082 var88 = 1; /* easy <var85:Int> isa OTHER*/
1083 if (unlikely(!var88)) {
1084 var_class_name91 = type_kernel__Int.name;
1085 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91);
1086 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1087 show_backtrace(1);
1088 }
1089 var92 = var_from + var85;
1090 var86 = var92;
1091 goto RET_LABEL87;
1092 RET_LABEL87:(void)0;
1093 }
1094 }
1095 var_from = var86;
1096 CONTINUE_label93: (void)0;
1097 }
1098 BREAK_label93: (void)0;
1099 var94 = 1;
1100 {
1101 { /* Inline kernel#Int#unary - (var94) on <var94:Int> */
1102 var97 = -var94;
1103 var95 = var97;
1104 goto RET_LABEL96;
1105 RET_LABEL96:(void)0;
1106 }
1107 }
1108 var = var95;
1109 goto RET_LABEL;
1110 RET_LABEL:;
1111 return var;
1112 }
1113 /* method string_search#Text#search_index_in for (self: Object, Text, Int): Int */
1114 long VIRTUAL_string_search__Text__search_index_in(val* self, val* p0, long p1) {
1115 long var /* : Int */;
1116 long var1 /* : Int */;
1117 var1 = string_search__Text__search_index_in(self, p0, p1);
1118 var = var1;
1119 RET_LABEL:;
1120 return var;
1121 }
1122 /* method string_search#Text#search_in for (self: Text, Text, Int): nullable Match */
1123 val* string_search__Text__search_in(val* self, val* p0, long p1) {
1124 val* var /* : nullable Match */;
1125 val* var_s /* var s: Text */;
1126 long var_from /* var from: Int */;
1127 long var1 /* : Int */;
1128 long var_pos /* var pos: Int */;
1129 long var2 /* : Int */;
1130 short int var3 /* : Bool */;
1131 short int var5 /* : Bool */;
1132 int cltype;
1133 int idtype;
1134 const char* var_class_name;
1135 short int var6 /* : Bool */;
1136 val* var7 /* : null */;
1137 val* var8 /* : Match */;
1138 val* var9 /* : String */;
1139 long var10 /* : Int */;
1140 long var12 /* : Int */;
1141 var_s = p0;
1142 var_from = p1;
1143 {
1144 var1 = string_search__Text__search_index_in(self, var_s, var_from);
1145 }
1146 var_pos = var1;
1147 var2 = 0;
1148 {
1149 { /* Inline kernel#Int#< (var_pos,var2) on <var_pos:Int> */
1150 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
1151 /* <var2:Int> isa OTHER */
1152 var5 = 1; /* easy <var2:Int> isa OTHER*/
1153 if (unlikely(!var5)) {
1154 var_class_name = type_kernel__Int.name;
1155 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1156 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
1157 show_backtrace(1);
1158 }
1159 var6 = var_pos < var2;
1160 var3 = var6;
1161 goto RET_LABEL4;
1162 RET_LABEL4:(void)0;
1163 }
1164 }
1165 if (var3){
1166 var7 = NULL;
1167 var = var7;
1168 goto RET_LABEL;
1169 } else {
1170 var8 = NEW_string_search__Match(&type_string_search__Match);
1171 {
1172 var9 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Text>*/;
1173 }
1174 {
1175 { /* Inline string#FlatText#length (self) on <self:Text> */
1176 var12 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:Text> */
1177 var10 = var12;
1178 RET_LABEL11:(void)0;
1179 }
1180 }
1181 {
1182 string_search__Match__init(var8, var9, var_pos, var10); /* Direct call string_search#Match#init on <var8:Match>*/
1183 }
1184 var = var8;
1185 goto RET_LABEL;
1186 }
1187 RET_LABEL:;
1188 return var;
1189 }
1190 /* method string_search#Text#search_in for (self: Object, Text, Int): nullable Match */
1191 val* VIRTUAL_string_search__Text__search_in(val* self, val* p0, long p1) {
1192 val* var /* : nullable Match */;
1193 val* var1 /* : nullable Match */;
1194 var1 = string_search__Text__search_in(self, p0, p1);
1195 var = var1;
1196 RET_LABEL:;
1197 return var;
1198 }
1199 /* method string_search#Text#split for (self: Text, Pattern): Array[Text] */
1200 val* string_search__Text__split(val* self, val* p0) {
1201 val* var /* : Array[Text] */;
1202 val* var_p /* var p: Pattern */;
1203 val* var1 /* : Array[Match] */;
1204 val* var_matches /* var matches: Array[Match] */;
1205 val* var2 /* : Array[Text] */;
1206 long var3 /* : Int */;
1207 val* var_res /* var res: Array[Text] */;
1208 val* var4 /* : ArrayIterator[nullable Object] */;
1209 short int var5 /* : Bool */;
1210 val* var6 /* : nullable Object */;
1211 val* var_m /* var m: Match */;
1212 val* var7 /* : String */;
1213 short int var8 /* : Bool */;
1214 int cltype;
1215 int idtype;
1216 const struct type* type_struct;
1217 const char* var_class_name;
1218 var_p = p0;
1219 {
1220 var1 = string_search__Pattern__split_in(var_p, self);
1221 }
1222 var_matches = var1;
1223 var2 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraystring__Text_VTSELFTYPE]);
1224 {
1225 var3 = array__AbstractArrayRead__length(var_matches);
1226 }
1227 {
1228 array__Array__with_capacity(var2, var3); /* Direct call array#Array#with_capacity on <var2:Array[Text]>*/
1229 }
1230 var_res = var2;
1231 {
1232 var4 = array__AbstractArrayRead__iterator(var_matches);
1233 }
1234 for(;;) {
1235 {
1236 var5 = array__ArrayIterator__is_ok(var4);
1237 }
1238 if(!var5) break;
1239 {
1240 var6 = array__ArrayIterator__item(var4);
1241 }
1242 var_m = var6;
1243 {
1244 var7 = string_search__Match__to_s(var_m);
1245 }
1246 /* <var7:String> isa SELFTYPE */
1247 type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE];
1248 cltype = type_struct->color;
1249 idtype = type_struct->id;
1250 if(cltype >= var7->type->table_size) {
1251 var8 = 0;
1252 } else {
1253 var8 = var7->type->type_table[cltype] == idtype;
1254 }
1255 if (unlikely(!var8)) {
1256 var_class_name = var7 == NULL ? "null" : var7->type->name;
1257 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name);
1258 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 351);
1259 show_backtrace(1);
1260 }
1261 {
1262 array__Array__add(var_res, var7); /* Direct call array#Array#add on <var_res:Array[Text]>*/
1263 }
1264 CONTINUE_label: (void)0;
1265 {
1266 array__ArrayIterator__next(var4); /* Direct call array#ArrayIterator#next on <var4:ArrayIterator[nullable Object]>*/
1267 }
1268 }
1269 BREAK_label: (void)0;
1270 var = var_res;
1271 goto RET_LABEL;
1272 RET_LABEL:;
1273 return var;
1274 }
1275 /* method string_search#Text#split for (self: Object, Pattern): Array[Text] */
1276 val* VIRTUAL_string_search__Text__split(val* self, val* p0) {
1277 val* var /* : Array[Text] */;
1278 val* var1 /* : Array[Text] */;
1279 var1 = string_search__Text__split(self, p0);
1280 var = var1;
1281 RET_LABEL:;
1282 return var;
1283 }
1284 /* method string_search#Text#split_with for (self: Text, Pattern): Array[Text] */
1285 val* string_search__Text__split_with(val* self, val* p0) {
1286 val* var /* : Array[Text] */;
1287 val* var_p /* var p: Pattern */;
1288 val* var1 /* : Array[Text] */;
1289 var_p = p0;
1290 {
1291 var1 = string_search__Text__split(self, var_p);
1292 }
1293 var = var1;
1294 goto RET_LABEL;
1295 RET_LABEL:;
1296 return var;
1297 }
1298 /* method string_search#Text#split_with for (self: Object, Pattern): Array[Text] */
1299 val* VIRTUAL_string_search__Text__split_with(val* self, val* p0) {
1300 val* var /* : Array[Text] */;
1301 val* var1 /* : Array[Text] */;
1302 var1 = string_search__Text__split_with(self, p0);
1303 var = var1;
1304 RET_LABEL:;
1305 return var;
1306 }