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