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