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 array__Array__init(var1
); /* Direct call array#Array#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", 331);
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>*/;
121 CONTINUE_label
: (void)0;
123 BREAK_label
: (void)0;
124 var23
= NEW_string_search__Match(&type_string_search__Match
);
126 var24
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__Object__to_s
]))(var_s
) /* to_s on <var_s:Text>*/;
129 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
130 var27
= var_s
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_s:Text> */
136 { /* Inline kernel#Int#- (var25,var_i) on <var25:Int> */
137 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
138 /* <var_i:Int> isa OTHER */
139 var30
= 1; /* easy <var_i:Int> isa OTHER*/
140 if (unlikely(!var30
)) {
141 var_class_name33
= type_kernel__Int
.name
;
142 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33
);
143 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
146 var34
= var25
- var_i
;
153 string_search__Match__init(var23
, var24
, var_i
, var28
); /* Direct call string_search#Match#init on <var23:Match>*/
156 array__Array__add(var_res
, var23
); /* Direct call array#Array#add on <var_res:Array[Match]>*/
163 /* method string_search#Pattern#split_in for (self: Object, Text): Array[Match] */
164 val
* VIRTUAL_string_search__Pattern__split_in(val
* self
, val
* p0
) {
165 val
* var
/* : Array[Match] */;
166 val
* var1
/* : Array[Match] */;
167 var1
= string_search__Pattern__split_in(self
, p0
);
172 /* method string_search#Match#string for (self: Match): String */
173 val
* string_search__Match__string(val
* self
) {
174 val
* var
/* : String */;
175 val
* var1
/* : String */;
176 var1
= self
->attrs
[COLOR_string_search__Match___string
].val
; /* _string on <self:Match> */
177 if (unlikely(var1
== NULL
)) {
178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
179 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 240);
186 /* method string_search#Match#string for (self: Object): String */
187 val
* VIRTUAL_string_search__Match__string(val
* self
) {
188 val
* var
/* : String */;
189 val
* var1
/* : String */;
190 val
* var3
/* : String */;
191 { /* Inline string_search#Match#string (self) on <self:Object(Match)> */
192 var3
= self
->attrs
[COLOR_string_search__Match___string
].val
; /* _string on <self:Object(Match)> */
193 if (unlikely(var3
== NULL
)) {
194 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
195 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 240);
205 /* method string_search#Match#string= for (self: Match, String) */
206 void string_search__Match__string_61d(val
* self
, val
* p0
) {
207 self
->attrs
[COLOR_string_search__Match___string
].val
= p0
; /* _string on <self:Match> */
210 /* method string_search#Match#string= for (self: Object, String) */
211 void VIRTUAL_string_search__Match__string_61d(val
* self
, val
* p0
) {
212 { /* Inline string_search#Match#string= (self,p0) on <self:Object(Match)> */
213 self
->attrs
[COLOR_string_search__Match___string
].val
= p0
; /* _string on <self:Object(Match)> */
218 /* method string_search#Match#from for (self: Match): Int */
219 long string_search__Match__from(val
* self
) {
220 long var
/* : Int */;
221 long var1
/* : Int */;
222 var1
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
227 /* method string_search#Match#from for (self: Object): Int */
228 long VIRTUAL_string_search__Match__from(val
* self
) {
229 long var
/* : Int */;
230 long var1
/* : Int */;
231 long var3
/* : Int */;
232 { /* Inline string_search#Match#from (self) on <self:Object(Match)> */
233 var3
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Object(Match)> */
241 /* method string_search#Match#from= for (self: Match, Int) */
242 void string_search__Match__from_61d(val
* self
, long p0
) {
243 self
->attrs
[COLOR_string_search__Match___from
].l
= p0
; /* _from on <self:Match> */
246 /* method string_search#Match#from= for (self: Object, Int) */
247 void VIRTUAL_string_search__Match__from_61d(val
* self
, long p0
) {
248 { /* Inline string_search#Match#from= (self,p0) on <self:Object(Match)> */
249 self
->attrs
[COLOR_string_search__Match___from
].l
= p0
; /* _from on <self:Object(Match)> */
254 /* method string_search#Match#length for (self: Match): Int */
255 long string_search__Match__length(val
* self
) {
256 long var
/* : Int */;
257 long var1
/* : Int */;
258 var1
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
263 /* method string_search#Match#length for (self: Object): Int */
264 long VIRTUAL_string_search__Match__length(val
* self
) {
265 long var
/* : Int */;
266 long var1
/* : Int */;
267 long var3
/* : Int */;
268 { /* Inline string_search#Match#length (self) on <self:Object(Match)> */
269 var3
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Object(Match)> */
277 /* method string_search#Match#length= for (self: Match, Int) */
278 void string_search__Match__length_61d(val
* self
, long p0
) {
279 self
->attrs
[COLOR_string_search__Match___length
].l
= p0
; /* _length on <self:Match> */
282 /* method string_search#Match#length= for (self: Object, Int) */
283 void VIRTUAL_string_search__Match__length_61d(val
* self
, long p0
) {
284 { /* Inline string_search#Match#length= (self,p0) on <self:Object(Match)> */
285 self
->attrs
[COLOR_string_search__Match___length
].l
= p0
; /* _length on <self:Object(Match)> */
290 /* method string_search#Match#after for (self: Match): Int */
291 long string_search__Match__after(val
* self
) {
292 long var
/* : Int */;
293 long var1
/* : Int */;
294 long var3
/* : Int */;
295 long var4
/* : Int */;
296 long var6
/* : Int */;
297 long var7
/* : Int */;
298 short int var9
/* : Bool */;
301 const char* var_class_name
;
302 long var10
/* : Int */;
304 { /* Inline string_search#Match#from (self) on <self:Match> */
305 var3
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
311 { /* Inline string_search#Match#length (self) on <self:Match> */
312 var6
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
318 { /* Inline kernel#Int#+ (var1,var4) on <var1:Int> */
319 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
320 /* <var4:Int> isa OTHER */
321 var9
= 1; /* easy <var4:Int> isa OTHER*/
322 if (unlikely(!var9
)) {
323 var_class_name
= type_kernel__Int
.name
;
324 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
325 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
339 /* method string_search#Match#after for (self: Object): Int */
340 long VIRTUAL_string_search__Match__after(val
* self
) {
341 long var
/* : Int */;
342 long var1
/* : Int */;
343 var1
= string_search__Match__after(self
);
348 /* method string_search#Match#to_s for (self: Match): String */
349 val
* string_search__Match__to_s(val
* self
) {
350 val
* var
/* : String */;
351 val
* var1
/* : String */;
352 val
* var3
/* : String */;
353 long var4
/* : Int */;
354 long var6
/* : Int */;
355 long var7
/* : Int */;
356 long var9
/* : Int */;
357 val
* var10
/* : String */;
359 { /* Inline string_search#Match#string (self) on <self:Match> */
360 var3
= self
->attrs
[COLOR_string_search__Match___string
].val
; /* _string on <self:Match> */
361 if (unlikely(var3
== NULL
)) {
362 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
363 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 240);
371 { /* Inline string_search#Match#from (self) on <self:Match> */
372 var6
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
378 { /* Inline string_search#Match#length (self) on <self:Match> */
379 var9
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
385 var10
= string__FlatString__substring(var1
, var4
, var7
);
392 /* method string_search#Match#to_s for (self: Object): String */
393 val
* VIRTUAL_string_search__Match__to_s(val
* self
) {
394 val
* var
/* : String */;
395 val
* var1
/* : String */;
396 var1
= string_search__Match__to_s(self
);
401 /* method string_search#Match#init for (self: Match, String, Int, Int) */
402 void string_search__Match__init(val
* self
, val
* p0
, long p1
, long p2
) {
403 val
* var_s
/* var s: String */;
404 long var_f
/* var f: Int */;
405 long var_len
/* var len: Int */;
406 long var
/* : Int */;
407 short int var1
/* : Bool */;
408 short int var3
/* : Bool */;
411 const char* var_class_name
;
412 short int var4
/* : Bool */;
413 long var5
/* : Int */;
414 short int var6
/* : Bool */;
415 short int var8
/* : Bool */;
418 const char* var_class_name11
;
419 short int var12
/* : Bool */;
420 long var13
/* : Int */;
421 short int var15
/* : Bool */;
424 const char* var_class_name18
;
425 long var19
/* : Int */;
426 long var20
/* : Int */;
427 long var22
/* : Int */;
428 short int var23
/* : Bool */;
429 short int var25
/* : Bool */;
432 const char* var_class_name28
;
433 short int var29
/* : Bool */;
439 { /* Inline kernel#Int#>= (var_len,var) on <var_len:Int> */
440 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
441 /* <var:Int> isa OTHER */
442 var3
= 1; /* easy <var:Int> isa OTHER*/
443 if (unlikely(!var3
)) {
444 var_class_name
= type_kernel__Int
.name
;
445 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
446 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
449 var4
= var_len
>= var
;
455 if (unlikely(!var1
)) {
456 PRINT_ERROR("Runtime error: %s", "Assert \'positive_length\' failed");
457 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 259);
462 { /* Inline kernel#Int#>= (var_f,var5) on <var_f:Int> */
463 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
464 /* <var5:Int> isa OTHER */
465 var8
= 1; /* easy <var5:Int> isa OTHER*/
466 if (unlikely(!var8
)) {
467 var_class_name11
= type_kernel__Int
.name
;
468 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11
);
469 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
472 var12
= var_f
>= var5
;
478 if (unlikely(!var6
)) {
479 PRINT_ERROR("Runtime error: %s", "Assert \'valid_from\' failed");
480 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 260);
484 { /* Inline kernel#Int#+ (var_f,var_len) on <var_f:Int> */
485 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
486 /* <var_len:Int> isa OTHER */
487 var15
= 1; /* easy <var_len:Int> isa OTHER*/
488 if (unlikely(!var15
)) {
489 var_class_name18
= type_kernel__Int
.name
;
490 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18
);
491 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
494 var19
= var_f
+ var_len
;
501 { /* Inline string#FlatText#length (var_s) on <var_s:String> */
502 var22
= var_s
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_s:String> */
508 { /* Inline kernel#Int#<= (var13,var20) on <var13:Int> */
509 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
510 /* <var20:Int> isa OTHER */
511 var25
= 1; /* easy <var20:Int> isa OTHER*/
512 if (unlikely(!var25
)) {
513 var_class_name28
= type_kernel__Int
.name
;
514 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28
);
515 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
518 var29
= var13
<= var20
;
524 if (unlikely(!var23
)) {
525 PRINT_ERROR("Runtime error: %s", "Assert \'valid_after\' failed");
526 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 261);
530 { /* Inline string_search#Match#string= (self,var_s) on <self:Match> */
531 self
->attrs
[COLOR_string_search__Match___string
].val
= var_s
; /* _string on <self:Match> */
536 { /* Inline string_search#Match#from= (self,var_f) on <self:Match> */
537 self
->attrs
[COLOR_string_search__Match___from
].l
= var_f
; /* _from on <self:Match> */
542 { /* Inline string_search#Match#length= (self,var_len) on <self:Match> */
543 self
->attrs
[COLOR_string_search__Match___length
].l
= var_len
; /* _length on <self:Match> */
549 /* method string_search#Match#init for (self: Object, String, Int, Int) */
550 void VIRTUAL_string_search__Match__init(val
* self
, val
* p0
, long p1
, long p2
) {
551 string_search__Match__init(self
, p0
, p1
, p2
); /* Direct call string_search#Match#init on <self:Object(Match)>*/
554 /* method string_search#Char#search_index_in for (self: Char, Text, Int): Int */
555 long string_search__Char__search_index_in(char self
, val
* p0
, long p1
) {
556 long var
/* : Int */;
557 val
* var_s
/* var s: Text */;
558 long var_from
/* var from: Int */;
559 long var1
/* : Int */;
560 long var3
/* : Int */;
561 long var_stop
/* var stop: Int */;
562 short int var4
/* : Bool */;
563 short int var6
/* : Bool */;
566 const char* var_class_name
;
567 short int var7
/* : Bool */;
568 val
* var8
/* : SequenceRead[Char] */;
569 val
* var9
/* : nullable Object */;
570 short int var10
/* : Bool */;
571 short int var11
/* : Bool */;
572 short int var13
/* : Bool */;
573 char var14
/* : Char */;
574 long var15
/* : Int */;
575 long var16
/* : Int */;
576 short int var18
/* : Bool */;
579 const char* var_class_name21
;
580 long var22
/* : Int */;
581 long var23
/* : Int */;
582 long var24
/* : Int */;
583 long var26
/* : Int */;
587 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
588 var3
= var_s
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_s:Text> */
596 { /* Inline kernel#Int#< (var_from,var_stop) on <var_from:Int> */
597 /* Covariant cast for argument 0 (i) <var_stop:Int> isa OTHER */
598 /* <var_stop:Int> isa OTHER */
599 var6
= 1; /* easy <var_stop:Int> isa OTHER*/
600 if (unlikely(!var6
)) {
601 var_class_name
= type_kernel__Int
.name
;
602 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
603 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
606 var7
= var_from
< var_stop
;
614 var8
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__Text__chars
]))(var_s
) /* chars on <var_s:Text>*/;
617 var9
= ((val
* (*)(val
*, long))(var8
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var8
, var_from
) /* [] on <var8:SequenceRead[Char]>*/;
620 { /* Inline kernel#Char#== (var9,self) on <var9:nullable Object(Char)> */
621 var13
= (var9
!= NULL
) && (var9
->class == &class_kernel__Char
);
623 var14
= ((struct instance_kernel__Char
*)var9
)->value
; /* autounbox from nullable Object to Char */;
624 var13
= (var14
== self
);
639 { /* Inline kernel#Int#+ (var_from,var15) on <var_from:Int> */
640 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
641 /* <var15:Int> isa OTHER */
642 var18
= 1; /* easy <var15:Int> isa OTHER*/
643 if (unlikely(!var18
)) {
644 var_class_name21
= type_kernel__Int
.name
;
645 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21
);
646 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
649 var22
= var_from
+ var15
;
656 CONTINUE_label
: (void)0;
658 BREAK_label
: (void)0;
661 { /* Inline kernel#Int#unary - (var23) on <var23:Int> */
673 /* method string_search#Char#search_index_in for (self: Object, Text, Int): Int */
674 long VIRTUAL_string_search__Char__search_index_in(val
* self
, val
* p0
, long p1
) {
675 long var
/* : Int */;
676 long var1
/* : Int */;
677 char var2
/* : Char */;
678 var2
= ((struct instance_kernel__Char
*)self
)->value
; /* autounbox from Object to Char */;
679 var1
= string_search__Char__search_index_in(var2
, p0
, p1
);
684 /* method string_search#Char#search_in for (self: Char, Text, Int): nullable Match */
685 val
* string_search__Char__search_in(char self
, val
* p0
, long p1
) {
686 val
* var
/* : nullable Match */;
687 val
* var_s
/* var s: Text */;
688 long var_from
/* var from: Int */;
689 long var1
/* : Int */;
690 long var_pos
/* var pos: Int */;
691 long var2
/* : Int */;
692 short int var3
/* : Bool */;
693 short int var5
/* : Bool */;
696 const char* var_class_name
;
697 short int var6
/* : Bool */;
698 val
* var7
/* : null */;
699 val
* var8
/* : Match */;
700 val
* var9
/* : String */;
701 long var10
/* : Int */;
705 var1
= string_search__Char__search_index_in(self
, var_s
, var_from
);
710 { /* Inline kernel#Int#< (var_pos,var2) on <var_pos:Int> */
711 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
712 /* <var2:Int> isa OTHER */
713 var5
= 1; /* easy <var2:Int> isa OTHER*/
714 if (unlikely(!var5
)) {
715 var_class_name
= type_kernel__Int
.name
;
716 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
717 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
720 var6
= var_pos
< var2
;
731 var8
= NEW_string_search__Match(&type_string_search__Match
);
733 var9
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__Object__to_s
]))(var_s
) /* to_s on <var_s:Text>*/;
737 string_search__Match__init(var8
, var9
, var_pos
, var10
); /* Direct call string_search#Match#init on <var8:Match>*/
745 /* method string_search#Char#search_in for (self: Object, Text, Int): nullable Match */
746 val
* VIRTUAL_string_search__Char__search_in(val
* self
, val
* p0
, long p1
) {
747 val
* var
/* : nullable Match */;
748 val
* var1
/* : nullable Match */;
749 char var2
/* : Char */;
750 var2
= ((struct instance_kernel__Char
*)self
)->value
; /* autounbox from Object to Char */;
751 var1
= string_search__Char__search_in(var2
, p0
, p1
);
756 /* method string_search#Text#search_index_in for (self: Text, Text, Int): Int */
757 long string_search__Text__search_index_in(val
* self
, val
* p0
, long p1
) {
758 long var
/* : Int */;
759 val
* var_s
/* var s: Text */;
760 long var_from
/* var from: Int */;
761 long var1
/* : Int */;
762 short int var2
/* : Bool */;
763 short int var4
/* : Bool */;
766 const char* var_class_name
;
767 short int var5
/* : Bool */;
768 long var6
/* : Int */;
769 long var8
/* : Int */;
770 long var9
/* : Int */;
771 long var11
/* : Int */;
772 long var12
/* : Int */;
773 short int var14
/* : Bool */;
776 const char* var_class_name17
;
777 long var18
/* : Int */;
778 long var19
/* : Int */;
779 long var20
/* : Int */;
780 short int var22
/* : Bool */;
783 const char* var_class_name25
;
784 long var26
/* : Int */;
785 long var_stop
/* var stop: Int */;
786 short int var27
/* : Bool */;
787 short int var29
/* : Bool */;
790 const char* var_class_name32
;
791 short int var33
/* : Bool */;
792 long var34
/* : Int */;
793 long var36
/* : Int */;
794 long var37
/* : Int */;
795 long var38
/* : Int */;
796 short int var40
/* : Bool */;
799 const char* var_class_name43
;
800 long var44
/* : Int */;
801 long var_i
/* var i: Int */;
802 short int var45
/* : Bool */;
803 long var46
/* : Int */;
804 short int var47
/* : Bool */;
805 short int var49
/* : Bool */;
808 const char* var_class_name52
;
809 short int var53
/* : Bool */;
810 short int var_
/* var : Bool */;
811 val
* var54
/* : SequenceRead[Char] */;
812 val
* var55
/* : nullable Object */;
813 val
* var56
/* : SequenceRead[Char] */;
814 long var57
/* : Int */;
815 short int var59
/* : Bool */;
818 const char* var_class_name62
;
819 long var63
/* : Int */;
820 val
* var64
/* : nullable Object */;
821 short int var65
/* : Bool */;
822 short int var66
/* : Bool */;
823 short int var68
/* : Bool */;
824 long var69
/* : Int */;
825 long var70
/* : Int */;
826 short int var72
/* : Bool */;
829 const char* var_class_name75
;
830 long var76
/* : Int */;
831 long var77
/* : Int */;
832 short int var78
/* : Bool */;
833 short int var80
/* : Bool */;
836 const char* var_class_name83
;
837 short int var84
/* : Bool */;
838 long var85
/* : Int */;
839 long var86
/* : Int */;
840 short int var88
/* : Bool */;
843 const char* var_class_name91
;
844 long var92
/* : Int */;
845 long var94
/* : Int */;
846 long var95
/* : Int */;
847 long var97
/* : Int */;
852 { /* Inline kernel#Int#>= (var_from,var1) on <var_from:Int> */
853 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
854 /* <var1:Int> isa OTHER */
855 var4
= 1; /* easy <var1:Int> isa OTHER*/
856 if (unlikely(!var4
)) {
857 var_class_name
= type_kernel__Int
.name
;
858 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
859 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
862 var5
= var_from
>= var1
;
868 if (unlikely(!var2
)) {
869 PRINT_ERROR("Runtime error: %s", "Assert failed");
870 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 297);
874 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
875 var8
= var_s
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_s:Text> */
881 { /* Inline string#FlatText#length (self) on <self:Text> */
882 var11
= self
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <self:Text> */
888 { /* Inline kernel#Int#- (var6,var9) on <var6:Int> */
889 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
890 /* <var9:Int> isa OTHER */
891 var14
= 1; /* easy <var9:Int> isa OTHER*/
892 if (unlikely(!var14
)) {
893 var_class_name17
= type_kernel__Int
.name
;
894 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17
);
895 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
906 { /* Inline kernel#Int#+ (var12,var19) on <var12:Int> */
907 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
908 /* <var19:Int> isa OTHER */
909 var22
= 1; /* easy <var19:Int> isa OTHER*/
910 if (unlikely(!var22
)) {
911 var_class_name25
= type_kernel__Int
.name
;
912 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25
);
913 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
916 var26
= var12
+ var19
;
925 { /* Inline kernel#Int#< (var_from,var_stop) on <var_from:Int> */
926 /* Covariant cast for argument 0 (i) <var_stop:Int> isa OTHER */
927 /* <var_stop:Int> isa OTHER */
928 var29
= 1; /* easy <var_stop:Int> isa OTHER*/
929 if (unlikely(!var29
)) {
930 var_class_name32
= type_kernel__Int
.name
;
931 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32
);
932 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
935 var33
= var_from
< var_stop
;
943 { /* Inline string#FlatText#length (self) on <self:Text> */
944 var36
= self
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <self:Text> */
951 { /* Inline kernel#Int#- (var34,var37) on <var34:Int> */
952 /* Covariant cast for argument 0 (i) <var37:Int> isa OTHER */
953 /* <var37:Int> isa OTHER */
954 var40
= 1; /* easy <var37:Int> isa OTHER*/
955 if (unlikely(!var40
)) {
956 var_class_name43
= type_kernel__Int
.name
;
957 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43
);
958 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
961 var44
= var34
- var37
;
971 { /* Inline kernel#Int#>= (var_i,var46) on <var_i:Int> */
972 /* Covariant cast for argument 0 (i) <var46:Int> isa OTHER */
973 /* <var46:Int> isa OTHER */
974 var49
= 1; /* easy <var46:Int> isa OTHER*/
975 if (unlikely(!var49
)) {
976 var_class_name52
= type_kernel__Int
.name
;
977 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52
);
978 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
981 var53
= var_i
>= var46
;
990 var54
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_string__Text__chars
]))(self
) /* chars on <self:Text>*/;
993 var55
= ((val
* (*)(val
*, long))(var54
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var54
, var_i
) /* [] on <var54:SequenceRead[Char]>*/;
996 var56
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__Text__chars
]))(var_s
) /* chars on <var_s:Text>*/;
999 { /* Inline kernel#Int#+ (var_i,var_from) on <var_i:Int> */
1000 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1001 /* <var_from:Int> isa OTHER */
1002 var59
= 1; /* easy <var_from:Int> isa OTHER*/
1003 if (unlikely(!var59
)) {
1004 var_class_name62
= type_kernel__Int
.name
;
1005 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62
);
1006 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1009 var63
= var_i
+ var_from
;
1012 RET_LABEL58
:(void)0;
1016 var64
= ((val
* (*)(val
*, long))(var56
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var56
, var57
) /* [] on <var56:SequenceRead[Char]>*/;
1019 { /* Inline kernel#Char#== (var55,var64) on <var55:nullable Object(Char)> */
1020 var68
= var55
== var64
|| (((struct instance_kernel__Char
*)var55
)->value
== ((struct instance_kernel__Char
*)var64
)->value
);
1023 RET_LABEL67
:(void)0;
1034 { /* Inline kernel#Int#- (var_i,var69) on <var_i:Int> */
1035 /* Covariant cast for argument 0 (i) <var69:Int> isa OTHER */
1036 /* <var69:Int> isa OTHER */
1037 var72
= 1; /* easy <var69:Int> isa OTHER*/
1038 if (unlikely(!var72
)) {
1039 var_class_name75
= type_kernel__Int
.name
;
1040 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75
);
1041 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1044 var76
= var_i
- var69
;
1047 RET_LABEL71
:(void)0;
1051 CONTINUE_label
: (void)0;
1053 BREAK_label
: (void)0;
1056 { /* Inline kernel#Int#< (var_i,var77) on <var_i:Int> */
1057 /* Covariant cast for argument 0 (i) <var77:Int> isa OTHER */
1058 /* <var77:Int> isa OTHER */
1059 var80
= 1; /* easy <var77:Int> isa OTHER*/
1060 if (unlikely(!var80
)) {
1061 var_class_name83
= type_kernel__Int
.name
;
1062 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name83
);
1063 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
1066 var84
= var_i
< var77
;
1069 RET_LABEL79
:(void)0;
1079 { /* Inline kernel#Int#+ (var_from,var85) on <var_from:Int> */
1080 /* Covariant cast for argument 0 (i) <var85:Int> isa OTHER */
1081 /* <var85:Int> isa OTHER */
1082 var88
= 1; /* easy <var85:Int> isa OTHER*/
1083 if (unlikely(!var88
)) {
1084 var_class_name91
= type_kernel__Int
.name
;
1085 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91
);
1086 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1089 var92
= var_from
+ var85
;
1092 RET_LABEL87
:(void)0;
1096 CONTINUE_label93
: (void)0;
1098 BREAK_label93
: (void)0;
1101 { /* Inline kernel#Int#unary - (var94) on <var94:Int> */
1105 RET_LABEL96
:(void)0;
1113 /* method string_search#Text#search_index_in for (self: Object, Text, Int): Int */
1114 long VIRTUAL_string_search__Text__search_index_in(val
* self
, val
* p0
, long p1
) {
1115 long var
/* : Int */;
1116 long var1
/* : Int */;
1117 var1
= string_search__Text__search_index_in(self
, p0
, p1
);
1122 /* method string_search#Text#search_in for (self: Text, Text, Int): nullable Match */
1123 val
* string_search__Text__search_in(val
* self
, val
* p0
, long p1
) {
1124 val
* var
/* : nullable Match */;
1125 val
* var_s
/* var s: Text */;
1126 long var_from
/* var from: Int */;
1127 long var1
/* : Int */;
1128 long var_pos
/* var pos: Int */;
1129 long var2
/* : Int */;
1130 short int var3
/* : Bool */;
1131 short int var5
/* : Bool */;
1134 const char* var_class_name
;
1135 short int var6
/* : Bool */;
1136 val
* var7
/* : null */;
1137 val
* var8
/* : Match */;
1138 val
* var9
/* : String */;
1139 long var10
/* : Int */;
1140 long var12
/* : Int */;
1144 var1
= string_search__Text__search_index_in(self
, var_s
, var_from
);
1149 { /* Inline kernel#Int#< (var_pos,var2) on <var_pos:Int> */
1150 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
1151 /* <var2:Int> isa OTHER */
1152 var5
= 1; /* easy <var2:Int> isa OTHER*/
1153 if (unlikely(!var5
)) {
1154 var_class_name
= type_kernel__Int
.name
;
1155 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1156 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
1159 var6
= var_pos
< var2
;
1170 var8
= NEW_string_search__Match(&type_string_search__Match
);
1172 var9
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__Object__to_s
]))(var_s
) /* to_s on <var_s:Text>*/;
1175 { /* Inline string#FlatText#length (self) on <self:Text> */
1176 var12
= self
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <self:Text> */
1178 RET_LABEL11
:(void)0;
1182 string_search__Match__init(var8
, var9
, var_pos
, var10
); /* Direct call string_search#Match#init on <var8:Match>*/
1190 /* method string_search#Text#search_in for (self: Object, Text, Int): nullable Match */
1191 val
* VIRTUAL_string_search__Text__search_in(val
* self
, val
* p0
, long p1
) {
1192 val
* var
/* : nullable Match */;
1193 val
* var1
/* : nullable Match */;
1194 var1
= string_search__Text__search_in(self
, p0
, p1
);
1199 /* method string_search#Text#split for (self: Text, Pattern): Array[Text] */
1200 val
* string_search__Text__split(val
* self
, val
* p0
) {
1201 val
* var
/* : Array[Text] */;
1202 val
* var_p
/* var p: Pattern */;
1203 val
* var1
/* : Array[Match] */;
1204 val
* var_matches
/* var matches: Array[Match] */;
1205 val
* var2
/* : Array[Text] */;
1206 long var3
/* : Int */;
1207 val
* var_res
/* var res: Array[Text] */;
1208 val
* var4
/* : ArrayIterator[nullable Object] */;
1209 short int var5
/* : Bool */;
1210 val
* var6
/* : nullable Object */;
1211 val
* var_m
/* var m: Match */;
1212 val
* var7
/* : String */;
1213 short int var8
/* : Bool */;
1216 const struct type
* type_struct
;
1217 const char* var_class_name
;
1220 var1
= string_search__Pattern__split_in(var_p
, self
);
1223 var2
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arraystring__Text_VTSELFTYPE
]);
1225 var3
= array__AbstractArrayRead__length(var_matches
);
1228 array__Array__with_capacity(var2
, var3
); /* Direct call array#Array#with_capacity on <var2:Array[Text]>*/
1232 var4
= array__AbstractArrayRead__iterator(var_matches
);
1236 var5
= array__ArrayIterator__is_ok(var4
);
1240 var6
= array__ArrayIterator__item(var4
);
1244 var7
= string_search__Match__to_s(var_m
);
1246 /* <var7:String> isa SELFTYPE */
1247 type_struct
= self
->type
->resolution_table
->types
[COLOR_string__Text_VTSELFTYPE
];
1248 cltype
= type_struct
->color
;
1249 idtype
= type_struct
->id
;
1250 if(cltype
>= var7
->type
->table_size
) {
1253 var8
= var7
->type
->type_table
[cltype
] == idtype
;
1255 if (unlikely(!var8
)) {
1256 var_class_name
= var7
== NULL ?
"null" : var7
->type
->name
;
1257 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name
);
1258 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string_search.nit", 351);
1262 array__Array__add(var_res
, var7
); /* Direct call array#Array#add on <var_res:Array[Text]>*/
1264 CONTINUE_label
: (void)0;
1266 array__ArrayIterator__next(var4
); /* Direct call array#ArrayIterator#next on <var4:ArrayIterator[nullable Object]>*/
1269 BREAK_label
: (void)0;
1275 /* method string_search#Text#split for (self: Object, Pattern): Array[Text] */
1276 val
* VIRTUAL_string_search__Text__split(val
* self
, val
* p0
) {
1277 val
* var
/* : Array[Text] */;
1278 val
* var1
/* : Array[Text] */;
1279 var1
= string_search__Text__split(self
, p0
);
1284 /* method string_search#Text#split_with for (self: Text, Pattern): Array[Text] */
1285 val
* string_search__Text__split_with(val
* self
, val
* p0
) {
1286 val
* var
/* : Array[Text] */;
1287 val
* var_p
/* var p: Pattern */;
1288 val
* var1
/* : Array[Text] */;
1291 var1
= string_search__Text__split(self
, var_p
);
1298 /* method string_search#Text#split_with for (self: Object, Pattern): Array[Text] */
1299 val
* VIRTUAL_string_search__Text__split_with(val
* self
, val
* p0
) {
1300 val
* var
/* : Array[Text] */;
1301 val
* var1
/* : Array[Text] */;
1302 var1
= string_search__Text__split_with(self
, p0
);