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] */;
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 */;
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 */;
41 const char* var_class_name33
;
42 long var34
/* : Int */;
44 var1
= NEW_array__Array(&type_array__Arraystring_search__Match
);
46 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:Array[Match]>*/;
53 var4
= ((val
* (*)(val
*, val
*, long))(self
->class->vft
[COLOR_string_search__Pattern__search_in
]))(self
, var_s
, var3
) /* search_in on <self:Pattern>*/;
58 if (var_match
== NULL
) {
59 var6
= 0; /* is null */
61 var6
= 1; /* arg is null and recv is not */
64 { /* Inline kernel#Object#!= (var_match,var5) on <var_match:nullable Match> */
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)>*/;
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)> */
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", 377);
96 var18
= var12
- var_i
;
103 var19
= NEW_string_search__Match(&type_string_search__Match
);
105 var20
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__Object__to_s
]))(var_s
) /* to_s on <var_s:Text>*/;
108 string_search__Match__init(var19
, var20
, var_i
, var_len
); /* Direct call string_search#Match#init on <var19:Match>*/
111 array__Array__add(var_res
, var19
); /* Direct call array#Array#add on <var_res:Array[Match]>*/
114 var21
= string_search__Match__after(var_match
);
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>*/;
125 BREAK_label
: (void)0;
126 var23
= NEW_string_search__Match(&type_string_search__Match
);
128 var24
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__Object__to_s
]))(var_s
) /* to_s on <var_s:Text>*/;
131 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
132 var27
= var_s
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_s:Text> */
138 { /* Inline kernel#Int#- (var25,var_i) on <var25:Int> */
139 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
140 /* <var_i:Int> isa OTHER */
141 var30
= 1; /* easy <var_i:Int> isa OTHER*/
142 if (unlikely(!var30
)) {
143 var_class_name33
= type_kernel__Int
.name
;
144 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33
);
145 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
148 var34
= var25
- var_i
;
155 string_search__Match__init(var23
, var24
, var_i
, var28
); /* Direct call string_search#Match#init on <var23:Match>*/
158 array__Array__add(var_res
, var23
); /* Direct call array#Array#add on <var_res:Array[Match]>*/
165 /* method string_search#Pattern#split_in for (self: Object, Text): Array[Match] */
166 val
* VIRTUAL_string_search__Pattern__split_in(val
* self
, val
* p0
) {
167 val
* var
/* : Array[Match] */;
168 val
* var1
/* : Array[Match] */;
169 var1
= string_search__Pattern__split_in(self
, p0
);
174 /* method string_search#Match#string for (self: Match): String */
175 val
* string_search__Match__string(val
* self
) {
176 val
* var
/* : String */;
177 val
* var1
/* : String */;
178 var1
= self
->attrs
[COLOR_string_search__Match___string
].val
; /* _string on <self:Match> */
179 if (unlikely(var1
== NULL
)) {
180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
181 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string_search.nit", 242);
188 /* method string_search#Match#string for (self: Object): String */
189 val
* VIRTUAL_string_search__Match__string(val
* self
) {
190 val
* var
/* : String */;
191 val
* var1
/* : String */;
192 val
* var3
/* : String */;
193 { /* Inline string_search#Match#string (self) on <self:Object(Match)> */
194 var3
= self
->attrs
[COLOR_string_search__Match___string
].val
; /* _string on <self:Object(Match)> */
195 if (unlikely(var3
== NULL
)) {
196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
197 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string_search.nit", 242);
207 /* method string_search#Match#string= for (self: Match, String) */
208 void string_search__Match__string_61d(val
* self
, val
* p0
) {
209 self
->attrs
[COLOR_string_search__Match___string
].val
= p0
; /* _string on <self:Match> */
212 /* method string_search#Match#string= for (self: Object, String) */
213 void VIRTUAL_string_search__Match__string_61d(val
* self
, val
* p0
) {
214 { /* Inline string_search#Match#string= (self,p0) on <self:Object(Match)> */
215 self
->attrs
[COLOR_string_search__Match___string
].val
= p0
; /* _string on <self:Object(Match)> */
220 /* method string_search#Match#from for (self: Match): Int */
221 long string_search__Match__from(val
* self
) {
222 long var
/* : Int */;
223 long var1
/* : Int */;
224 var1
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
229 /* method string_search#Match#from for (self: Object): Int */
230 long VIRTUAL_string_search__Match__from(val
* self
) {
231 long var
/* : Int */;
232 long var1
/* : Int */;
233 long var3
/* : Int */;
234 { /* Inline string_search#Match#from (self) on <self:Object(Match)> */
235 var3
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Object(Match)> */
243 /* method string_search#Match#from= for (self: Match, Int) */
244 void string_search__Match__from_61d(val
* self
, long p0
) {
245 self
->attrs
[COLOR_string_search__Match___from
].l
= p0
; /* _from on <self:Match> */
248 /* method string_search#Match#from= for (self: Object, Int) */
249 void VIRTUAL_string_search__Match__from_61d(val
* self
, long p0
) {
250 { /* Inline string_search#Match#from= (self,p0) on <self:Object(Match)> */
251 self
->attrs
[COLOR_string_search__Match___from
].l
= p0
; /* _from on <self:Object(Match)> */
256 /* method string_search#Match#length for (self: Match): Int */
257 long string_search__Match__length(val
* self
) {
258 long var
/* : Int */;
259 long var1
/* : Int */;
260 var1
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
265 /* method string_search#Match#length for (self: Object): Int */
266 long VIRTUAL_string_search__Match__length(val
* self
) {
267 long var
/* : Int */;
268 long var1
/* : Int */;
269 long var3
/* : Int */;
270 { /* Inline string_search#Match#length (self) on <self:Object(Match)> */
271 var3
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Object(Match)> */
279 /* method string_search#Match#length= for (self: Match, Int) */
280 void string_search__Match__length_61d(val
* self
, long p0
) {
281 self
->attrs
[COLOR_string_search__Match___length
].l
= p0
; /* _length on <self:Match> */
284 /* method string_search#Match#length= for (self: Object, Int) */
285 void VIRTUAL_string_search__Match__length_61d(val
* self
, long p0
) {
286 { /* Inline string_search#Match#length= (self,p0) on <self:Object(Match)> */
287 self
->attrs
[COLOR_string_search__Match___length
].l
= p0
; /* _length on <self:Object(Match)> */
292 /* method string_search#Match#after for (self: Match): Int */
293 long string_search__Match__after(val
* self
) {
294 long var
/* : Int */;
295 long var1
/* : Int */;
296 long var3
/* : Int */;
297 long var4
/* : Int */;
298 long var6
/* : Int */;
299 long var7
/* : Int */;
300 short int var9
/* : Bool */;
303 const char* var_class_name
;
304 long var10
/* : Int */;
306 { /* Inline string_search#Match#from (self) on <self:Match> */
307 var3
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
313 { /* Inline string_search#Match#length (self) on <self:Match> */
314 var6
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
320 { /* Inline kernel#Int#+ (var1,var4) on <var1:Int> */
321 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
322 /* <var4:Int> isa OTHER */
323 var9
= 1; /* easy <var4:Int> isa OTHER*/
324 if (unlikely(!var9
)) {
325 var_class_name
= type_kernel__Int
.name
;
326 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
327 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
341 /* method string_search#Match#after for (self: Object): Int */
342 long VIRTUAL_string_search__Match__after(val
* self
) {
343 long var
/* : Int */;
344 long var1
/* : Int */;
345 var1
= string_search__Match__after(self
);
350 /* method string_search#Match#to_s for (self: Match): String */
351 val
* string_search__Match__to_s(val
* self
) {
352 val
* var
/* : String */;
353 val
* var1
/* : String */;
354 val
* var3
/* : String */;
355 long var4
/* : Int */;
356 long var6
/* : Int */;
357 long var7
/* : Int */;
358 long var9
/* : Int */;
359 val
* var10
/* : String */;
361 { /* Inline string_search#Match#string (self) on <self:Match> */
362 var3
= self
->attrs
[COLOR_string_search__Match___string
].val
; /* _string on <self:Match> */
363 if (unlikely(var3
== NULL
)) {
364 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
365 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string_search.nit", 242);
373 { /* Inline string_search#Match#from (self) on <self:Match> */
374 var6
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
380 { /* Inline string_search#Match#length (self) on <self:Match> */
381 var9
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
387 var10
= string__FlatString__substring(var1
, var4
, var7
);
394 /* method string_search#Match#to_s for (self: Object): String */
395 val
* VIRTUAL_string_search__Match__to_s(val
* self
) {
396 val
* var
/* : String */;
397 val
* var1
/* : String */;
398 var1
= string_search__Match__to_s(self
);
403 /* method string_search#Match#init for (self: Match, String, Int, Int) */
404 void string_search__Match__init(val
* self
, val
* p0
, long p1
, long p2
) {
405 val
* var_s
/* var s: String */;
406 long var_f
/* var f: Int */;
407 long var_len
/* var len: Int */;
408 long var
/* : Int */;
409 short int var1
/* : Bool */;
410 short int var3
/* : Bool */;
413 const char* var_class_name
;
414 short int var4
/* : Bool */;
415 long var5
/* : Int */;
416 short int var6
/* : Bool */;
417 short int var8
/* : Bool */;
420 const char* var_class_name11
;
421 short int var12
/* : Bool */;
422 long var13
/* : Int */;
423 short int var15
/* : Bool */;
426 const char* var_class_name18
;
427 long var19
/* : Int */;
428 long var20
/* : Int */;
429 long var22
/* : Int */;
430 short int var23
/* : Bool */;
431 short int var25
/* : Bool */;
434 const char* var_class_name28
;
435 short int var29
/* : Bool */;
441 { /* Inline kernel#Int#>= (var_len,var) on <var_len:Int> */
442 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
443 /* <var:Int> isa OTHER */
444 var3
= 1; /* easy <var:Int> isa OTHER*/
445 if (unlikely(!var3
)) {
446 var_class_name
= type_kernel__Int
.name
;
447 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
448 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
451 var4
= var_len
>= var
;
457 if (unlikely(!var1
)) {
458 PRINT_ERROR("Runtime error: %s", "Assert \'positive_length\' failed");
459 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string_search.nit", 261);
464 { /* Inline kernel#Int#>= (var_f,var5) on <var_f:Int> */
465 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
466 /* <var5:Int> isa OTHER */
467 var8
= 1; /* easy <var5:Int> isa OTHER*/
468 if (unlikely(!var8
)) {
469 var_class_name11
= type_kernel__Int
.name
;
470 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11
);
471 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
474 var12
= var_f
>= var5
;
480 if (unlikely(!var6
)) {
481 PRINT_ERROR("Runtime error: %s", "Assert \'valid_from\' failed");
482 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string_search.nit", 262);
486 { /* Inline kernel#Int#+ (var_f,var_len) on <var_f:Int> */
487 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
488 /* <var_len:Int> isa OTHER */
489 var15
= 1; /* easy <var_len:Int> isa OTHER*/
490 if (unlikely(!var15
)) {
491 var_class_name18
= type_kernel__Int
.name
;
492 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18
);
493 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
496 var19
= var_f
+ var_len
;
503 { /* Inline string#FlatText#length (var_s) on <var_s:String> */
504 var22
= var_s
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_s:String> */
510 { /* Inline kernel#Int#<= (var13,var20) on <var13:Int> */
511 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
512 /* <var20:Int> isa OTHER */
513 var25
= 1; /* easy <var20:Int> isa OTHER*/
514 if (unlikely(!var25
)) {
515 var_class_name28
= type_kernel__Int
.name
;
516 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28
);
517 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
520 var29
= var13
<= var20
;
526 if (unlikely(!var23
)) {
527 PRINT_ERROR("Runtime error: %s", "Assert \'valid_after\' failed");
528 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string_search.nit", 263);
532 { /* Inline string_search#Match#string= (self,var_s) on <self:Match> */
533 self
->attrs
[COLOR_string_search__Match___string
].val
= var_s
; /* _string on <self:Match> */
538 { /* Inline string_search#Match#from= (self,var_f) on <self:Match> */
539 self
->attrs
[COLOR_string_search__Match___from
].l
= var_f
; /* _from on <self:Match> */
544 { /* Inline string_search#Match#length= (self,var_len) on <self:Match> */
545 self
->attrs
[COLOR_string_search__Match___length
].l
= var_len
; /* _length on <self:Match> */
551 /* method string_search#Match#init for (self: Object, String, Int, Int) */
552 void VIRTUAL_string_search__Match__init(val
* self
, val
* p0
, long p1
, long p2
) {
553 string_search__Match__init(self
, p0
, p1
, p2
); /* Direct call string_search#Match#init on <self:Object(Match)>*/
556 /* method string_search#Char#search_index_in for (self: Char, Text, Int): Int */
557 long string_search__Char__search_index_in(char self
, val
* p0
, long p1
) {
558 long var
/* : Int */;
559 val
* var_s
/* var s: Text */;
560 long var_from
/* var from: Int */;
561 long var1
/* : Int */;
562 long var3
/* : Int */;
563 long var_stop
/* var stop: Int */;
564 short int var4
/* : Bool */;
565 short int var6
/* : Bool */;
568 const char* var_class_name
;
569 short int var7
/* : Bool */;
570 val
* var8
/* : SequenceRead[Char] */;
571 val
* var9
/* : nullable Object */;
572 short int var10
/* : Bool */;
573 short int var11
/* : Bool */;
574 short int var13
/* : Bool */;
575 char var14
/* : Char */;
576 long var15
/* : Int */;
577 long var16
/* : Int */;
578 short int var18
/* : Bool */;
581 const char* var_class_name21
;
582 long var22
/* : Int */;
583 long var23
/* : Int */;
584 long var24
/* : Int */;
585 long var26
/* : Int */;
589 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
590 var3
= var_s
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_s:Text> */
598 { /* Inline kernel#Int#< (var_from,var_stop) on <var_from:Int> */
599 /* Covariant cast for argument 0 (i) <var_stop:Int> isa OTHER */
600 /* <var_stop:Int> isa OTHER */
601 var6
= 1; /* easy <var_stop:Int> isa OTHER*/
602 if (unlikely(!var6
)) {
603 var_class_name
= type_kernel__Int
.name
;
604 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
605 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
608 var7
= var_from
< var_stop
;
616 var8
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__Text__chars
]))(var_s
) /* chars on <var_s:Text>*/;
619 var9
= ((val
* (*)(val
*, long))(var8
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var8
, var_from
) /* [] on <var8:SequenceRead[Char]>*/;
622 { /* Inline kernel#Char#== (var9,self) on <var9:nullable Object(Char)> */
623 var13
= (var9
!= NULL
) && (var9
->class == &class_kernel__Char
);
625 var14
= ((struct instance_kernel__Char
*)var9
)->value
; /* autounbox from nullable Object to Char */;
626 var13
= (var14
== self
);
641 { /* Inline kernel#Int#+ (var_from,var15) on <var_from:Int> */
642 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
643 /* <var15:Int> isa OTHER */
644 var18
= 1; /* easy <var15:Int> isa OTHER*/
645 if (unlikely(!var18
)) {
646 var_class_name21
= type_kernel__Int
.name
;
647 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21
);
648 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
651 var22
= var_from
+ var15
;
662 BREAK_label
: (void)0;
665 { /* Inline kernel#Int#unary - (var23) on <var23:Int> */
677 /* method string_search#Char#search_index_in for (self: Object, Text, Int): Int */
678 long VIRTUAL_string_search__Char__search_index_in(val
* self
, val
* p0
, long p1
) {
679 long var
/* : Int */;
680 long var1
/* : Int */;
681 char var2
/* : Char */;
682 var2
= ((struct instance_kernel__Char
*)self
)->value
; /* autounbox from Object to Char */;
683 var1
= string_search__Char__search_index_in(var2
, p0
, p1
);
688 /* method string_search#Char#search_in for (self: Char, Text, Int): nullable Match */
689 val
* string_search__Char__search_in(char self
, val
* p0
, long p1
) {
690 val
* var
/* : nullable Match */;
691 val
* var_s
/* var s: Text */;
692 long var_from
/* var from: Int */;
693 long var1
/* : Int */;
694 long var_pos
/* var pos: Int */;
695 long var2
/* : Int */;
696 short int var3
/* : Bool */;
697 short int var5
/* : Bool */;
700 const char* var_class_name
;
701 short int var6
/* : Bool */;
702 val
* var7
/* : null */;
703 val
* var8
/* : Match */;
704 val
* var9
/* : String */;
705 long var10
/* : Int */;
709 var1
= string_search__Char__search_index_in(self
, var_s
, var_from
);
714 { /* Inline kernel#Int#< (var_pos,var2) on <var_pos:Int> */
715 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
716 /* <var2:Int> isa OTHER */
717 var5
= 1; /* easy <var2:Int> isa OTHER*/
718 if (unlikely(!var5
)) {
719 var_class_name
= type_kernel__Int
.name
;
720 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
721 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
724 var6
= var_pos
< var2
;
735 var8
= NEW_string_search__Match(&type_string_search__Match
);
737 var9
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__Object__to_s
]))(var_s
) /* to_s on <var_s:Text>*/;
741 string_search__Match__init(var8
, var9
, var_pos
, var10
); /* Direct call string_search#Match#init on <var8:Match>*/
749 /* method string_search#Char#search_in for (self: Object, Text, Int): nullable Match */
750 val
* VIRTUAL_string_search__Char__search_in(val
* self
, val
* p0
, long p1
) {
751 val
* var
/* : nullable Match */;
752 val
* var1
/* : nullable Match */;
753 char var2
/* : Char */;
754 var2
= ((struct instance_kernel__Char
*)self
)->value
; /* autounbox from Object to Char */;
755 var1
= string_search__Char__search_in(var2
, p0
, p1
);
760 /* method string_search#Text#search_index_in for (self: Text, Text, Int): Int */
761 long string_search__Text__search_index_in(val
* self
, val
* p0
, long p1
) {
762 long var
/* : Int */;
763 val
* var_s
/* var s: Text */;
764 long var_from
/* var from: Int */;
765 long var1
/* : Int */;
766 short int var2
/* : Bool */;
767 short int var4
/* : Bool */;
770 const char* var_class_name
;
771 short int var5
/* : Bool */;
772 long var6
/* : Int */;
773 long var8
/* : Int */;
774 long var9
/* : Int */;
775 long var11
/* : Int */;
776 long var12
/* : Int */;
777 short int var14
/* : Bool */;
780 const char* var_class_name17
;
781 long var18
/* : Int */;
782 long var19
/* : Int */;
783 long var20
/* : Int */;
784 short int var22
/* : Bool */;
787 const char* var_class_name25
;
788 long var26
/* : Int */;
789 long var_stop
/* var stop: Int */;
790 short int var27
/* : Bool */;
791 short int var29
/* : Bool */;
794 const char* var_class_name32
;
795 short int var33
/* : Bool */;
796 long var34
/* : Int */;
797 long var36
/* : Int */;
798 long var37
/* : Int */;
799 long var38
/* : Int */;
800 short int var40
/* : Bool */;
803 const char* var_class_name43
;
804 long var44
/* : Int */;
805 long var_i
/* var i: Int */;
806 short int var45
/* : Bool */;
807 long var46
/* : Int */;
808 short int var47
/* : Bool */;
809 short int var49
/* : Bool */;
812 const char* var_class_name52
;
813 short int var53
/* : Bool */;
814 short int var_
/* var : Bool */;
815 val
* var54
/* : SequenceRead[Char] */;
816 val
* var55
/* : nullable Object */;
817 val
* var56
/* : SequenceRead[Char] */;
818 long var57
/* : Int */;
819 short int var59
/* : Bool */;
822 const char* var_class_name62
;
823 long var63
/* : Int */;
824 val
* var64
/* : nullable Object */;
825 short int var65
/* : Bool */;
826 short int var66
/* : Bool */;
827 short int var68
/* : Bool */;
828 long var69
/* : Int */;
829 long var70
/* : Int */;
830 short int var72
/* : Bool */;
833 const char* var_class_name75
;
834 long var76
/* : Int */;
835 long var77
/* : Int */;
836 short int var78
/* : Bool */;
837 short int var80
/* : Bool */;
840 const char* var_class_name83
;
841 short int var84
/* : Bool */;
842 long var85
/* : Int */;
843 long var86
/* : Int */;
844 short int var88
/* : Bool */;
847 const char* var_class_name91
;
848 long var92
/* : Int */;
849 long var94
/* : Int */;
850 long var95
/* : Int */;
851 long var97
/* : Int */;
856 { /* Inline kernel#Int#>= (var_from,var1) on <var_from:Int> */
857 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
858 /* <var1:Int> isa OTHER */
859 var4
= 1; /* easy <var1:Int> isa OTHER*/
860 if (unlikely(!var4
)) {
861 var_class_name
= type_kernel__Int
.name
;
862 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
863 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
866 var5
= var_from
>= var1
;
872 if (unlikely(!var2
)) {
873 PRINT_ERROR("Runtime error: %s", "Assert failed");
874 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string_search.nit", 299);
878 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
879 var8
= var_s
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_s:Text> */
885 { /* Inline string#FlatText#length (self) on <self:Text> */
886 var11
= self
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <self:Text> */
892 { /* Inline kernel#Int#- (var6,var9) on <var6:Int> */
893 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
894 /* <var9:Int> isa OTHER */
895 var14
= 1; /* easy <var9:Int> isa OTHER*/
896 if (unlikely(!var14
)) {
897 var_class_name17
= type_kernel__Int
.name
;
898 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17
);
899 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
910 { /* Inline kernel#Int#+ (var12,var19) on <var12:Int> */
911 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
912 /* <var19:Int> isa OTHER */
913 var22
= 1; /* easy <var19:Int> isa OTHER*/
914 if (unlikely(!var22
)) {
915 var_class_name25
= type_kernel__Int
.name
;
916 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25
);
917 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
920 var26
= var12
+ var19
;
929 { /* Inline kernel#Int#< (var_from,var_stop) on <var_from:Int> */
930 /* Covariant cast for argument 0 (i) <var_stop:Int> isa OTHER */
931 /* <var_stop:Int> isa OTHER */
932 var29
= 1; /* easy <var_stop:Int> isa OTHER*/
933 if (unlikely(!var29
)) {
934 var_class_name32
= type_kernel__Int
.name
;
935 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32
);
936 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
939 var33
= var_from
< var_stop
;
947 { /* Inline string#FlatText#length (self) on <self:Text> */
948 var36
= self
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <self:Text> */
955 { /* Inline kernel#Int#- (var34,var37) on <var34:Int> */
956 /* Covariant cast for argument 0 (i) <var37:Int> isa OTHER */
957 /* <var37:Int> isa OTHER */
958 var40
= 1; /* easy <var37:Int> isa OTHER*/
959 if (unlikely(!var40
)) {
960 var_class_name43
= type_kernel__Int
.name
;
961 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43
);
962 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
965 var44
= var34
- var37
;
975 { /* Inline kernel#Int#>= (var_i,var46) on <var_i:Int> */
976 /* Covariant cast for argument 0 (i) <var46:Int> isa OTHER */
977 /* <var46:Int> isa OTHER */
978 var49
= 1; /* easy <var46:Int> isa OTHER*/
979 if (unlikely(!var49
)) {
980 var_class_name52
= type_kernel__Int
.name
;
981 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52
);
982 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
985 var53
= var_i
>= var46
;
994 var54
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_string__Text__chars
]))(self
) /* chars on <self:Text>*/;
997 var55
= ((val
* (*)(val
*, long))(var54
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var54
, var_i
) /* [] on <var54:SequenceRead[Char]>*/;
1000 var56
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__Text__chars
]))(var_s
) /* chars on <var_s:Text>*/;
1003 { /* Inline kernel#Int#+ (var_i,var_from) on <var_i:Int> */
1004 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1005 /* <var_from:Int> isa OTHER */
1006 var59
= 1; /* easy <var_from:Int> isa OTHER*/
1007 if (unlikely(!var59
)) {
1008 var_class_name62
= type_kernel__Int
.name
;
1009 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62
);
1010 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
1013 var63
= var_i
+ var_from
;
1016 RET_LABEL58
:(void)0;
1020 var64
= ((val
* (*)(val
*, long))(var56
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var56
, var57
) /* [] on <var56:SequenceRead[Char]>*/;
1023 { /* Inline kernel#Char#== (var55,var64) on <var55:nullable Object(Char)> */
1024 var68
= var55
== var64
|| (((struct instance_kernel__Char
*)var55
)->value
== ((struct instance_kernel__Char
*)var64
)->value
);
1027 RET_LABEL67
:(void)0;
1038 { /* Inline kernel#Int#- (var_i,var69) on <var_i:Int> */
1039 /* Covariant cast for argument 0 (i) <var69:Int> isa OTHER */
1040 /* <var69:Int> isa OTHER */
1041 var72
= 1; /* easy <var69:Int> isa OTHER*/
1042 if (unlikely(!var72
)) {
1043 var_class_name75
= type_kernel__Int
.name
;
1044 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75
);
1045 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
1048 var76
= var_i
- var69
;
1051 RET_LABEL71
:(void)0;
1059 BREAK_label
: (void)0;
1062 { /* Inline kernel#Int#< (var_i,var77) on <var_i:Int> */
1063 /* Covariant cast for argument 0 (i) <var77:Int> isa OTHER */
1064 /* <var77:Int> isa OTHER */
1065 var80
= 1; /* easy <var77:Int> isa OTHER*/
1066 if (unlikely(!var80
)) {
1067 var_class_name83
= type_kernel__Int
.name
;
1068 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name83
);
1069 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
1072 var84
= var_i
< var77
;
1075 RET_LABEL79
:(void)0;
1085 { /* Inline kernel#Int#+ (var_from,var85) on <var_from:Int> */
1086 /* Covariant cast for argument 0 (i) <var85:Int> isa OTHER */
1087 /* <var85:Int> isa OTHER */
1088 var88
= 1; /* easy <var85:Int> isa OTHER*/
1089 if (unlikely(!var88
)) {
1090 var_class_name91
= type_kernel__Int
.name
;
1091 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91
);
1092 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
1095 var92
= var_from
+ var85
;
1098 RET_LABEL87
:(void)0;
1106 BREAK_label93
: (void)0;
1109 { /* Inline kernel#Int#unary - (var94) on <var94:Int> */
1113 RET_LABEL96
:(void)0;
1121 /* method string_search#Text#search_index_in for (self: Object, Text, Int): Int */
1122 long VIRTUAL_string_search__Text__search_index_in(val
* self
, val
* p0
, long p1
) {
1123 long var
/* : Int */;
1124 long var1
/* : Int */;
1125 var1
= string_search__Text__search_index_in(self
, p0
, p1
);
1130 /* method string_search#Text#search_in for (self: Text, Text, Int): nullable Match */
1131 val
* string_search__Text__search_in(val
* self
, val
* p0
, long p1
) {
1132 val
* var
/* : nullable Match */;
1133 val
* var_s
/* var s: Text */;
1134 long var_from
/* var from: Int */;
1135 long var1
/* : Int */;
1136 long var_pos
/* var pos: Int */;
1137 long var2
/* : Int */;
1138 short int var3
/* : Bool */;
1139 short int var5
/* : Bool */;
1142 const char* var_class_name
;
1143 short int var6
/* : Bool */;
1144 val
* var7
/* : null */;
1145 val
* var8
/* : Match */;
1146 val
* var9
/* : String */;
1147 long var10
/* : Int */;
1148 long var12
/* : Int */;
1152 var1
= string_search__Text__search_index_in(self
, var_s
, var_from
);
1157 { /* Inline kernel#Int#< (var_pos,var2) on <var_pos:Int> */
1158 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
1159 /* <var2:Int> isa OTHER */
1160 var5
= 1; /* easy <var2:Int> isa OTHER*/
1161 if (unlikely(!var5
)) {
1162 var_class_name
= type_kernel__Int
.name
;
1163 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1164 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
1167 var6
= var_pos
< var2
;
1178 var8
= NEW_string_search__Match(&type_string_search__Match
);
1180 var9
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__Object__to_s
]))(var_s
) /* to_s on <var_s:Text>*/;
1183 { /* Inline string#FlatText#length (self) on <self:Text> */
1184 var12
= self
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <self:Text> */
1186 RET_LABEL11
:(void)0;
1190 string_search__Match__init(var8
, var9
, var_pos
, var10
); /* Direct call string_search#Match#init on <var8:Match>*/
1198 /* method string_search#Text#search_in for (self: Object, Text, Int): nullable Match */
1199 val
* VIRTUAL_string_search__Text__search_in(val
* self
, val
* p0
, long p1
) {
1200 val
* var
/* : nullable Match */;
1201 val
* var1
/* : nullable Match */;
1202 var1
= string_search__Text__search_in(self
, p0
, p1
);
1207 /* method string_search#Text#split for (self: Text, Pattern): Array[Text] */
1208 val
* string_search__Text__split(val
* self
, val
* p0
) {
1209 val
* var
/* : Array[Text] */;
1210 val
* var_p
/* var p: Pattern */;
1211 val
* var1
/* : Array[Match] */;
1212 val
* var_matches
/* var matches: Array[Match] */;
1213 val
* var2
/* : Array[Text] */;
1214 long var3
/* : Int */;
1215 long var5
/* : Int */;
1216 val
* var_res
/* var res: Array[Text] */;
1217 val
* var_
/* var : Array[Match] */;
1218 val
* var6
/* : ArrayIterator[nullable Object] */;
1219 val
* var_7
/* var : ArrayIterator[Match] */;
1220 short int var8
/* : Bool */;
1221 val
* var9
/* : nullable Object */;
1222 val
* var_m
/* var m: Match */;
1223 val
* var10
/* : String */;
1224 short int var11
/* : Bool */;
1227 const struct type
* type_struct
;
1228 const char* var_class_name
;
1231 var1
= string_search__Pattern__split_in(var_p
, self
);
1234 var2
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arraystring__Text_VTSELFTYPE
]);
1236 { /* Inline array#AbstractArrayRead#length (var_matches) on <var_matches:Array[Match]> */
1237 var5
= var_matches
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_matches:Array[Match]> */
1243 array__Array__with_capacity(var2
, var3
); /* Direct call array#Array#with_capacity on <var2:Array[Text]>*/
1248 var6
= array__AbstractArrayRead__iterator(var_
);
1253 var8
= array__ArrayIterator__is_ok(var_7
);
1257 var9
= array__ArrayIterator__item(var_7
);
1261 var10
= string_search__Match__to_s(var_m
);
1263 /* <var10:String> isa SELFTYPE */
1264 type_struct
= self
->type
->resolution_table
->types
[COLOR_string__Text_VTSELFTYPE
];
1265 cltype
= type_struct
->color
;
1266 idtype
= type_struct
->id
;
1267 if(cltype
>= var10
->type
->table_size
) {
1270 var11
= var10
->type
->type_table
[cltype
] == idtype
;
1272 if (unlikely(!var11
)) {
1273 var_class_name
= var10
== NULL ?
"null" : var10
->type
->name
;
1274 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name
);
1275 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string_search.nit", 353);
1279 array__Array__add(var_res
, var10
); /* Direct call array#Array#add on <var_res:Array[Text]>*/
1282 array__ArrayIterator__next(var_7
); /* Direct call array#ArrayIterator#next on <var_7:ArrayIterator[Match]>*/
1288 BREAK_label
: (void)0;
1290 { /* Inline abstract_collection#Iterator#finish (var_7) on <var_7:ArrayIterator[Match]> */
1291 RET_LABEL12
:(void)0;
1299 /* method string_search#Text#split for (self: Object, Pattern): Array[Text] */
1300 val
* VIRTUAL_string_search__Text__split(val
* self
, val
* p0
) {
1301 val
* var
/* : Array[Text] */;
1302 val
* var1
/* : Array[Text] */;
1303 var1
= string_search__Text__split(self
, p0
);
1308 /* method string_search#Text#split_with for (self: Text, Pattern): Array[Text] */
1309 val
* string_search__Text__split_with(val
* self
, val
* p0
) {
1310 val
* var
/* : Array[Text] */;
1311 val
* var_p
/* var p: Pattern */;
1312 val
* var1
/* : Array[Text] */;
1315 var1
= string_search__Text__split(self
, var_p
);
1322 /* method string_search#Text#split_with for (self: Object, Pattern): Array[Text] */
1323 val
* VIRTUAL_string_search__Text__split_with(val
* self
, val
* p0
) {
1324 val
* var
/* : Array[Text] */;
1325 val
* var1
/* : Array[Text] */;
1326 var1
= string_search__Text__split_with(self
, p0
);
1331 /* method string_search#Text#split_once_on for (self: Text, Pattern): Array[Text] */
1332 val
* string_search__Text__split_once_on(val
* self
, val
* p0
) {
1333 val
* var
/* : Array[Text] */;
1334 val
* var_p
/* var p: Pattern */;
1335 long var1
/* : Int */;
1336 val
* var2
/* : nullable Match */;
1337 val
* var_m
/* var m: nullable Match */;
1338 val
* var3
/* : null */;
1339 short int var4
/* : Bool */;
1340 short int var5
/* : Bool */;
1341 val
* var_other
/* var other: nullable Object */;
1342 short int var7
/* : Bool */;
1343 short int var9
/* : Bool */;
1344 val
* var10
/* : Array[Text] */;
1345 long var11
/* : Int */;
1346 val
* var_
/* var : Array[Text] */;
1347 val
* var12
/* : Array[Text] */;
1348 long var13
/* : Int */;
1349 long var14
/* : Int */;
1350 long var16
/* : Int */;
1351 val
* var17
/* : Text */;
1352 long var18
/* : Int */;
1353 val
* var19
/* : Text */;
1354 val
* var20
/* : Array[nullable Object] */;
1355 long var21
/* : Int */;
1356 val
* var22
/* : NativeArray[nullable Object] */;
1360 var2
= ((val
* (*)(val
*, val
*, long))(var_p
->class->vft
[COLOR_string_search__Pattern__search_in
]))(var_p
, self
, var1
) /* search_in on <var_p:Pattern>*/;
1364 if (var_m
== NULL
) {
1365 var4
= 1; /* is null */
1367 var4
= 0; /* arg is null but recv is not */
1370 { /* Inline kernel#Object#== (var_m,var3) on <var_m:nullable Match> */
1373 { /* Inline kernel#Object#is_same_instance (var_m,var_other) on <var_m:nullable Match(Match)> */
1374 var9
= var_m
== var_other
;
1387 var10
= NEW_array__Array(&type_array__Arraystring__Text
);
1390 array__Array__with_capacity(var10
, var11
); /* Direct call array#Array#with_capacity on <var10:Array[Text]>*/
1394 array__AbstractArray__push(var_
, self
); /* Direct call array#AbstractArray#push on <var_:Array[Text]>*/
1400 var12
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arraystring__Text_VTSELFTYPE
]);
1403 { /* Inline string_search#Match#from (var_m) on <var_m:nullable Match(Match)> */
1404 var16
= var_m
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <var_m:nullable Match(Match)> */
1406 RET_LABEL15
:(void)0;
1410 var17
= ((val
* (*)(val
*, long, long))(self
->class->vft
[COLOR_string__Text__substring
]))(self
, var13
, var14
) /* substring on <self:Text>*/;
1413 var18
= string_search__Match__after(var_m
);
1416 var19
= string__Text__substring_from(self
, var18
);
1418 var20
= NEW_array__Array(var12
->type
->resolution_table
->types
[COLOR_array__Arrayarray__Array_FT0
]);
1419 { /* var20 = array_instance Array[E] */
1421 var22
= NEW_array__NativeArray(var21
, var12
->type
->resolution_table
->types
[COLOR_array__NativeArrayarray__Array_FT0
]);
1422 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var17
;
1423 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var19
;
1425 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[nullable Object]>*/;
1429 array__Array__with_items(var12
, var20
); /* Direct call array#Array#with_items on <var12:Array[Text]>*/
1436 /* method string_search#Text#split_once_on for (self: Object, Pattern): Array[Text] */
1437 val
* VIRTUAL_string_search__Text__split_once_on(val
* self
, val
* p0
) {
1438 val
* var
/* : Array[Text] */;
1439 val
* var1
/* : Array[Text] */;
1440 var1
= string_search__Text__split_once_on(self
, p0
);