1 #include "string_search.sep.0.h"
2 /* method string_search#Pattern#search_index_in for (self: Pattern, String, Int): Int */
3 long string_search__Pattern__search_index_in(val
* self
, val
* p0
, long p1
) {
5 const char* var_class_name
;
6 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
7 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "search_index_in", var_class_name
);
8 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 20);
13 /* method string_search#Pattern#search_index_in for (self: Object, String, Int): Int */
14 long VIRTUAL_string_search__Pattern__search_index_in(val
* self
, val
* p0
, long p1
) {
16 long var1
/* : Int */;
17 var1
= string_search__Pattern__search_index_in(self
, p0
, p1
);
22 /* method string_search#Pattern#search_in for (self: Pattern, String, Int): nullable Match */
23 val
* string_search__Pattern__search_in(val
* self
, val
* p0
, long p1
) {
24 val
* var
/* : nullable Match */;
25 const char* var_class_name
;
26 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
27 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "search_in", var_class_name
);
28 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 25);
33 /* method string_search#Pattern#search_in for (self: Object, String, Int): nullable Match */
34 val
* VIRTUAL_string_search__Pattern__search_in(val
* self
, val
* p0
, long p1
) {
35 val
* var
/* : nullable Match */;
36 val
* var1
/* : nullable Match */;
37 var1
= string_search__Pattern__search_in(self
, p0
, p1
);
42 /* method string_search#Pattern#search_all_in for (self: Pattern, String): Array[Match] */
43 val
* string_search__Pattern__search_all_in(val
* self
, val
* p0
) {
44 val
* var
/* : Array[Match] */;
45 val
* var_s
/* var s: String */;
46 val
* var1
/* : Array[Match] */;
47 val
* var_res
/* var res: Array[Match] */;
48 long var2
/* : Int */;
49 val
* var3
/* : nullable Match */;
50 val
* var_match
/* var match: nullable Match */;
51 val
* var4
/* : null */;
52 short int var5
/* : Bool */;
53 long var6
/* : Int */;
54 val
* var7
/* : nullable Match */;
56 var1
= NEW_array__Array(&type_array__Arraystring_search__Match
);
57 ((void (*)(val
*))(var1
->class->vft
[COLOR_array__Array__init
]))(var1
) /* init on <var1:Array[Match]>*/;
60 var3
= ((val
* (*)(val
*, val
*, long))(self
->class->vft
[COLOR_string_search__Pattern__search_in
]))(self
, var_s
, var2
) /* search_in on <self:Pattern>*/;
64 if (var_match
== NULL
) {
65 var5
= 0; /* is null */
67 var5
= 1; /* arg is null and recv is not */
70 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var_match
) /* add on <var_res:Array[Match]>*/;
71 var6
= ((long (*)(val
*))(var_match
->class->vft
[COLOR_string_search__Match__after
]))(var_match
) /* after on <var_match:nullable Match(Match)>*/;
72 var7
= ((val
* (*)(val
*, val
*, long))(self
->class->vft
[COLOR_string_search__Pattern__search_in
]))(self
, var_s
, var6
) /* search_in on <self:Pattern>*/;
74 CONTINUE_label
: (void)0;
82 /* method string_search#Pattern#search_all_in for (self: Object, String): Array[Match] */
83 val
* VIRTUAL_string_search__Pattern__search_all_in(val
* self
, val
* p0
) {
84 val
* var
/* : Array[Match] */;
85 val
* var1
/* : Array[Match] */;
86 var1
= string_search__Pattern__search_all_in(self
, p0
);
91 /* method string_search#Pattern#split_in for (self: Pattern, String): Array[Match] */
92 val
* string_search__Pattern__split_in(val
* self
, val
* p0
) {
93 val
* var
/* : Array[Match] */;
94 val
* var_s
/* var s: String */;
95 val
* var1
/* : Array[Match] */;
96 val
* var_res
/* var res: Array[Match] */;
97 long var2
/* : Int */;
98 long var_i
/* var i: Int */;
99 long var3
/* : Int */;
100 val
* var4
/* : nullable Match */;
101 val
* var_match
/* var match: nullable Match */;
102 val
* var5
/* : null */;
103 short int var6
/* : Bool */;
104 long var7
/* : Int */;
105 long var8
/* : Int */;
106 long var10
/* : Int */;
107 long var_len
/* var len: Int */;
108 val
* var11
/* : Match */;
109 long var12
/* : Int */;
110 val
* var13
/* : nullable Match */;
111 val
* var14
/* : Match */;
112 long var15
/* : Int */;
113 long var16
/* : Int */;
114 long var18
/* : Int */;
116 var1
= NEW_array__Array(&type_array__Arraystring_search__Match
);
117 ((void (*)(val
*))(var1
->class->vft
[COLOR_array__Array__init
]))(var1
) /* init on <var1:Array[Match]>*/;
122 var4
= ((val
* (*)(val
*, val
*, long))(self
->class->vft
[COLOR_string_search__Pattern__search_in
]))(self
, var_s
, var3
) /* search_in on <self:Pattern>*/;
126 if (var_match
== NULL
) {
127 var6
= 0; /* is null */
129 var6
= 1; /* arg is null and recv is not */
132 var7
= ((long (*)(val
*))(var_match
->class->vft
[COLOR_string_search__Match__from
]))(var_match
) /* from on <var_match:nullable Match(Match)>*/;
133 { /* Inline kernel#Int#- (var7,var_i) */
134 var10
= var7
- var_i
;
140 var11
= NEW_string_search__Match(&type_string_search__Match
);
141 ((void (*)(val
*, val
*, long, long))(var11
->class->vft
[COLOR_string_search__Match__init
]))(var11
, var_s
, var_i
, var_len
) /* init on <var11:Match>*/;
142 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var11
) /* add on <var_res:Array[Match]>*/;
143 var12
= ((long (*)(val
*))(var_match
->class->vft
[COLOR_string_search__Match__after
]))(var_match
) /* after on <var_match:nullable Match(Match)>*/;
145 var13
= ((val
* (*)(val
*, val
*, long))(self
->class->vft
[COLOR_string_search__Pattern__search_in
]))(self
, var_s
, var_i
) /* search_in on <self:Pattern>*/;
147 CONTINUE_label
: (void)0;
149 BREAK_label
: (void)0;
150 var14
= NEW_string_search__Match(&type_string_search__Match
);
151 var15
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
152 { /* Inline kernel#Int#- (var15,var_i) */
153 var18
= var15
- var_i
;
158 ((void (*)(val
*, val
*, long, long))(var14
->class->vft
[COLOR_string_search__Match__init
]))(var14
, var_s
, var_i
, var16
) /* init on <var14:Match>*/;
159 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var14
) /* add on <var_res:Array[Match]>*/;
165 /* method string_search#Pattern#split_in for (self: Object, String): 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#BM_Pattern#to_s for (self: BM_Pattern): String */
175 val
* string_search__BM_Pattern__to_s(val
* self
) {
176 val
* var
/* : String */;
177 val
* var1
/* : String */;
178 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
180 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
181 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 67);
189 /* method string_search#BM_Pattern#to_s for (self: Object): String */
190 val
* VIRTUAL_string_search__BM_Pattern__to_s(val
* self
) {
191 val
* var
/* : String */;
192 val
* var1
/* : String */;
193 var1
= string_search__BM_Pattern__to_s(self
);
198 /* method string_search#BM_Pattern#search_index_in for (self: BM_Pattern, String, Int): Int */
199 long string_search__BM_Pattern__search_index_in(val
* self
, val
* p0
, long p1
) {
200 long var
/* : Int */;
201 val
* var_s
/* var s: String */;
202 long var_from
/* var from: Int */;
203 long var1
/* : Int */;
204 short int var2
/* : Bool */;
205 short int var4
/* : Bool */;
208 const char* var_class_name
;
209 short int var5
/* : Bool */;
210 long var6
/* : Int */;
211 long var_n
/* var n: Int */;
212 long var7
/* : Int */;
213 long var_m
/* var m: Int */;
214 long var_j
/* var j: Int */;
215 long var8
/* : Int */;
216 long var10
/* : Int */;
217 long var11
/* : Int */;
218 long var12
/* : Int */;
219 long var14
/* : Int */;
220 short int var15
/* : Bool */;
221 short int var17
/* : Bool */;
224 const char* var_class_name20
;
225 short int var21
/* : Bool */;
226 long var22
/* : Int */;
227 long var23
/* : Int */;
228 long var25
/* : Int */;
229 long var_i
/* var i: Int */;
230 short int var26
/* : Bool */;
231 long var27
/* : Int */;
232 short int var28
/* : Bool */;
233 short int var30
/* : Bool */;
236 const char* var_class_name33
;
237 short int var34
/* : Bool */;
238 short int var_
/* var : Bool */;
239 val
* var35
/* : String */;
240 val
* var36
/* : StringCharView */;
241 val
* var37
/* : nullable Object */;
242 val
* var38
/* : StringCharView */;
243 long var39
/* : Int */;
244 long var41
/* : Int */;
245 val
* var42
/* : nullable Object */;
246 short int var43
/* : Bool */;
247 short int var45
/* : Bool */;
248 long var46
/* : Int */;
249 long var47
/* : Int */;
250 long var49
/* : Int */;
251 long var50
/* : Int */;
252 short int var51
/* : Bool */;
253 short int var53
/* : Bool */;
256 const char* var_class_name56
;
257 short int var57
/* : Bool */;
258 val
* var58
/* : Array[Int] */;
259 val
* var59
/* : nullable Object */;
260 long var60
/* : Int */;
261 long var_gs
/* var gs: Int */;
262 val
* var61
/* : StringCharView */;
263 long var62
/* : Int */;
264 long var64
/* : Int */;
265 val
* var65
/* : nullable Object */;
266 long var66
/* : Int */;
267 char var67
/* : Char */;
268 long var68
/* : Int */;
269 long var70
/* : Int */;
270 long var71
/* : Int */;
271 long var72
/* : Int */;
272 long var74
/* : Int */;
273 long var75
/* : Int */;
274 long var77
/* : Int */;
275 long var_bc
/* var bc: Int */;
276 short int var78
/* : Bool */;
277 short int var80
/* : Bool */;
280 const char* var_class_name83
;
281 short int var84
/* : Bool */;
282 long var85
/* : Int */;
283 long var87
/* : Int */;
284 long var88
/* : Int */;
285 long var90
/* : Int */;
286 long var92
/* : Int */;
287 long var93
/* : Int */;
288 long var95
/* : Int */;
292 { /* Inline kernel#Int#>= (var_from,var1) */
293 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
294 /* <var1:Int> isa OTHER */
295 var4
= 1; /* easy <var1:Int> isa OTHER*/
297 var_class_name
= type_kernel__Int
.name
;
298 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
299 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
302 var5
= var_from
>= var1
;
308 fprintf(stderr
, "Runtime error: %s", "Assert failed");
309 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 72);
312 var6
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
314 var7
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
318 { /* Inline kernel#Int#- (var_n,var_m) */
319 var10
= var_n
- var_m
;
325 { /* Inline kernel#Int#+ (var8,var11) */
326 var14
= var8
+ var11
;
331 { /* Inline kernel#Int#< (var_j,var12) */
332 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
333 /* <var12:Int> isa OTHER */
334 var17
= 1; /* easy <var12:Int> isa OTHER*/
336 var_class_name20
= type_kernel__Int
.name
;
337 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20
);
338 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
341 var21
= var_j
< var12
;
348 { /* Inline kernel#Int#- (var_m,var22) */
349 var25
= var_m
- var22
;
357 { /* Inline kernel#Int#>= (var_i,var27) */
358 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
359 /* <var27:Int> isa OTHER */
360 var30
= 1; /* easy <var27:Int> isa OTHER*/
362 var_class_name33
= type_kernel__Int
.name
;
363 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33
);
364 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
367 var34
= var_i
>= var27
;
374 var35
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
376 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
377 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 79);
380 var36
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_string__AbstractString__chars
]))(var35
) /* chars on <var35:String>*/;
381 var37
= ((val
* (*)(val
*, long))(var36
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var36
, var_i
) /* [] on <var36:StringCharView>*/;
382 var38
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__AbstractString__chars
]))(var_s
) /* chars on <var_s:String>*/;
383 { /* Inline kernel#Int#+ (var_i,var_j) */
384 var41
= var_i
+ var_j
;
389 var42
= ((val
* (*)(val
*, long))(var38
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var38
, var39
) /* [] on <var38:StringCharView>*/;
390 { /* Inline kernel#Char#== (var37,var42) */
391 var45
= var37
== var42
|| (((struct instance_kernel__Char
*)var37
)->value
== ((struct instance_kernel__Char
*)var42
)->value
);
402 { /* Inline kernel#Int#- (var_i,var46) */
403 var49
= var_i
- var46
;
409 CONTINUE_label
: (void)0;
411 BREAK_label
: (void)0;
413 { /* Inline kernel#Int#< (var_i,var50) */
414 /* Covariant cast for argument 0 (i) <var50:Int> isa OTHER */
415 /* <var50:Int> isa OTHER */
416 var53
= 1; /* easy <var50:Int> isa OTHER*/
418 var_class_name56
= type_kernel__Int
.name
;
419 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56
);
420 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
423 var57
= var_i
< var50
;
432 var58
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
434 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
435 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 83);
438 var59
= ((val
* (*)(val
*, long))(var58
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var58
, var_i
) /* [] on <var58:Array[Int]>*/;
439 var60
= ((struct instance_kernel__Int
*)var59
)->value
; /* autounbox from nullable Object to Int */;
441 var61
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__AbstractString__chars
]))(var_s
) /* chars on <var_s:String>*/;
442 { /* Inline kernel#Int#+ (var_i,var_j) */
443 var64
= var_i
+ var_j
;
448 var65
= ((val
* (*)(val
*, long))(var61
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var61
, var62
) /* [] on <var61:StringCharView>*/;
449 var67
= ((struct instance_kernel__Char
*)var65
)->value
; /* autounbox from nullable Object to Char */;
450 var66
= ((long (*)(val
*, char))(self
->class->vft
[COLOR_string_search__BM_Pattern__bc
]))(self
, var67
) /* bc on <self:BM_Pattern>*/;
451 { /* Inline kernel#Int#- (var66,var_m) */
452 var70
= var66
- var_m
;
458 { /* Inline kernel#Int#+ (var68,var71) */
459 var74
= var68
+ var71
;
464 { /* Inline kernel#Int#+ (var72,var_i) */
465 var77
= var72
+ var_i
;
471 { /* Inline kernel#Int#> (var_gs,var_bc) */
472 /* Covariant cast for argument 0 (i) <var_bc:Int> isa OTHER */
473 /* <var_bc:Int> isa OTHER */
474 var80
= 1; /* easy <var_bc:Int> isa OTHER*/
476 var_class_name83
= type_kernel__Int
.name
;
477 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name83
);
478 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
481 var84
= var_gs
> var_bc
;
487 { /* Inline kernel#Int#+ (var_j,var_gs) */
488 var87
= var_j
+ var_gs
;
495 { /* Inline kernel#Int#+ (var_j,var_bc) */
496 var90
= var_j
+ var_bc
;
504 CONTINUE_label91
: (void)0;
506 BREAK_label91
: (void)0;
508 { /* Inline kernel#Int#unary - (var92) */
519 /* method string_search#BM_Pattern#search_index_in for (self: Object, String, Int): Int */
520 long VIRTUAL_string_search__BM_Pattern__search_index_in(val
* self
, val
* p0
, long p1
) {
521 long var
/* : Int */;
522 long var1
/* : Int */;
523 var1
= string_search__BM_Pattern__search_index_in(self
, p0
, p1
);
528 /* method string_search#BM_Pattern#search_in for (self: BM_Pattern, String, Int): nullable Match */
529 val
* string_search__BM_Pattern__search_in(val
* self
, val
* p0
, long p1
) {
530 val
* var
/* : nullable Match */;
531 val
* var_s
/* var s: String */;
532 long var_from
/* var from: Int */;
533 long var1
/* : Int */;
534 long var_to
/* var to: Int */;
535 long var2
/* : Int */;
536 short int var3
/* : Bool */;
537 short int var5
/* : Bool */;
540 const char* var_class_name
;
541 short int var6
/* : Bool */;
542 val
* var7
/* : null */;
543 val
* var8
/* : Match */;
544 long var9
/* : Int */;
547 var1
= ((long (*)(val
*, val
*, long))(self
->class->vft
[COLOR_string_search__Pattern__search_index_in
]))(self
, var_s
, var_from
) /* search_index_in on <self:BM_Pattern>*/;
550 { /* Inline kernel#Int#< (var_to,var2) */
551 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
552 /* <var2:Int> isa OTHER */
553 var5
= 1; /* easy <var2:Int> isa OTHER*/
555 var_class_name
= type_kernel__Int
.name
;
556 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
557 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
560 var6
= var_to
< var2
;
570 var8
= NEW_string_search__Match(&type_string_search__Match
);
571 var9
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
572 ((void (*)(val
*, val
*, long, long))(var8
->class->vft
[COLOR_string_search__Match__init
]))(var8
, var_s
, var_to
, var9
) /* init on <var8:Match>*/;
579 /* method string_search#BM_Pattern#search_in for (self: Object, String, Int): nullable Match */
580 val
* VIRTUAL_string_search__BM_Pattern__search_in(val
* self
, val
* p0
, long p1
) {
581 val
* var
/* : nullable Match */;
582 val
* var1
/* : nullable Match */;
583 var1
= string_search__BM_Pattern__search_in(self
, p0
, p1
);
588 /* method string_search#BM_Pattern#init for (self: BM_Pattern, String) */
589 void string_search__BM_Pattern__init(val
* self
, val
* p0
) {
590 val
* var_motif
/* var motif: String */;
591 long var
/* : Int */;
592 val
* var1
/* : Array[Int] */;
593 long var2
/* : Int */;
594 val
* var3
/* : ArrayMap[Char, Int] */;
596 self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
= var_motif
; /* _motif on <self:BM_Pattern> */
597 var
= ((long (*)(val
*))(var_motif
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_motif
) /* length on <var_motif:String>*/;
598 self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
= var
; /* _length on <self:BM_Pattern> */
599 var1
= NEW_array__Array(&type_array__Arraykernel__Int
);
600 var2
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
601 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Int]>*/;
602 self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
= var1
; /* _gs on <self:BM_Pattern> */
603 var3
= NEW_array__ArrayMap(&type_array__ArrayMapkernel__Charkernel__Int
);
604 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__ArrayMap__init
]))(var3
) /* init on <var3:ArrayMap[Char, Int]>*/;
605 self
->attrs
[COLOR_string_search__BM_Pattern___bc_table
].val
= var3
; /* _bc_table on <self:BM_Pattern> */
606 ((void (*)(val
*))(self
->class->vft
[COLOR_string_search__BM_Pattern__compute_gs
]))(self
) /* compute_gs on <self:BM_Pattern>*/;
607 ((void (*)(val
*))(self
->class->vft
[COLOR_string_search__BM_Pattern__compute_bc
]))(self
) /* compute_bc on <self:BM_Pattern>*/;
610 /* method string_search#BM_Pattern#init for (self: Object, String) */
611 void VIRTUAL_string_search__BM_Pattern__init(val
* self
, val
* p0
) {
612 string_search__BM_Pattern__init(self
, p0
);
615 /* method string_search#BM_Pattern#bc for (self: BM_Pattern, Char): Int */
616 long string_search__BM_Pattern__bc(val
* self
, char p0
) {
617 long var
/* : Int */;
618 char var_e
/* var e: Char */;
619 val
* var1
/* : Map[Char, Int] */;
620 short int var2
/* : Bool */;
621 val
* var3
/* : Object */;
622 val
* var4
/* : Map[Char, Int] */;
623 val
* var5
/* : nullable Object */;
624 val
* var6
/* : Object */;
625 long var7
/* : Int */;
626 long var8
/* : Int */;
628 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___bc_table
].val
; /* _bc_table on <self:BM_Pattern> */
630 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _bc_table");
631 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 126);
634 var3
= BOX_kernel__Char(var_e
); /* autobox from Char to Object */
635 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var3
) /* has_key on <var1:Map[Char, Int]>*/;
637 var4
= self
->attrs
[COLOR_string_search__BM_Pattern___bc_table
].val
; /* _bc_table on <self:BM_Pattern> */
639 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _bc_table");
640 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 127);
643 var6
= BOX_kernel__Char(var_e
); /* autobox from Char to Object */
644 var5
= ((val
* (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var4
, var6
) /* [] on <var4:Map[Char, Int]>*/;
645 var7
= ((struct instance_kernel__Int
*)var5
)->value
; /* autounbox from nullable Object to Int */;
649 var8
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
656 /* method string_search#BM_Pattern#bc for (self: Object, Char): Int */
657 long VIRTUAL_string_search__BM_Pattern__bc(val
* self
, char p0
) {
658 long var
/* : Int */;
659 long var1
/* : Int */;
660 var1
= string_search__BM_Pattern__bc(self
, p0
);
665 /* method string_search#BM_Pattern#compute_bc for (self: BM_Pattern) */
666 void string_search__BM_Pattern__compute_bc(val
* self
) {
667 val
* var
/* : String */;
668 val
* var_x
/* var x: String */;
669 long var1
/* : Int */;
670 long var_m
/* var m: Int */;
671 long var2
/* : Int */;
672 long var_i
/* var i: Int */;
673 long var3
/* : Int */;
674 long var4
/* : Int */;
675 long var6
/* : Int */;
676 short int var7
/* : Bool */;
677 short int var9
/* : Bool */;
680 const char* var_class_name
;
681 short int var10
/* : Bool */;
682 val
* var11
/* : Map[Char, Int] */;
683 val
* var12
/* : StringCharView */;
684 val
* var13
/* : nullable Object */;
685 long var14
/* : Int */;
686 long var16
/* : Int */;
687 long var17
/* : Int */;
688 long var18
/* : Int */;
689 long var20
/* : Int */;
690 val
* var21
/* : nullable Object */;
691 long var22
/* : Int */;
692 long var23
/* : Int */;
693 long var25
/* : Int */;
694 var
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
696 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
697 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 141);
701 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
707 { /* Inline kernel#Int#- (var_m,var3) */
713 { /* Inline kernel#Int#< (var_i,var4) */
714 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
715 /* <var4:Int> isa OTHER */
716 var9
= 1; /* easy <var4:Int> isa OTHER*/
718 var_class_name
= type_kernel__Int
.name
;
719 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
720 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
723 var10
= var_i
< var4
;
729 var11
= self
->attrs
[COLOR_string_search__BM_Pattern___bc_table
].val
; /* _bc_table on <self:BM_Pattern> */
731 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _bc_table");
732 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 145);
735 var12
= ((val
* (*)(val
*))(var_x
->class->vft
[COLOR_string__AbstractString__chars
]))(var_x
) /* chars on <var_x:String>*/;
736 var13
= ((val
* (*)(val
*, long))(var12
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var12
, var_i
) /* [] on <var12:StringCharView>*/;
737 { /* Inline kernel#Int#- (var_m,var_i) */
738 var16
= var_m
- var_i
;
744 { /* Inline kernel#Int#- (var14,var17) */
745 var20
= var14
- var17
;
750 var21
= BOX_kernel__Int(var18
); /* autobox from Int to nullable Object */
751 ((void (*)(val
*, val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var11
, var13
, var21
) /* []= on <var11:Map[Char, Int]>*/;
753 { /* Inline kernel#Int#+ (var_i,var22) */
754 var25
= var_i
+ var22
;
760 CONTINUE_label
: (void)0;
762 BREAK_label
: (void)0;
765 /* method string_search#BM_Pattern#compute_bc for (self: Object) */
766 void VIRTUAL_string_search__BM_Pattern__compute_bc(val
* self
) {
767 string_search__BM_Pattern__compute_bc(self
);
770 /* method string_search#BM_Pattern#suffixes for (self: BM_Pattern): Array[Int] */
771 val
* string_search__BM_Pattern__suffixes(val
* self
) {
772 val
* var
/* : Array[Int] */;
773 val
* var1
/* : String */;
774 val
* var_x
/* var x: String */;
775 long var2
/* : Int */;
776 long var_m
/* var m: Int */;
777 val
* var3
/* : Array[Int] */;
778 val
* var4
/* : nullable Object */;
779 val
* var_suff
/* var suff: Array[Int] */;
780 long var5
/* : Int */;
781 long var_f
/* var f: Int */;
782 long var6
/* : Int */;
783 long var7
/* : Int */;
784 long var9
/* : Int */;
785 long var_g
/* var g: Int */;
786 long var10
/* : Int */;
787 long var11
/* : Int */;
788 long var13
/* : Int */;
789 long var_i
/* var i: Int */;
790 long var14
/* : Int */;
791 short int var15
/* : Bool */;
792 short int var17
/* : Bool */;
795 const char* var_class_name
;
796 short int var18
/* : Bool */;
797 short int var19
/* : Bool */;
798 short int var20
/* : Bool */;
799 short int var22
/* : Bool */;
802 const char* var_class_name25
;
803 short int var26
/* : Bool */;
804 short int var_
/* var : Bool */;
805 long var27
/* : Int */;
806 long var29
/* : Int */;
807 long var30
/* : Int */;
808 long var31
/* : Int */;
809 long var33
/* : Int */;
810 long var34
/* : Int */;
811 long var36
/* : Int */;
812 val
* var37
/* : nullable Object */;
813 long var38
/* : Int */;
814 long var40
/* : Int */;
815 short int var41
/* : Bool */;
816 short int var43
/* : Bool */;
819 const char* var_class_name46
;
820 long var47
/* : Int */;
821 short int var48
/* : Bool */;
822 long var49
/* : Int */;
823 long var51
/* : Int */;
824 long var52
/* : Int */;
825 long var53
/* : Int */;
826 long var55
/* : Int */;
827 long var56
/* : Int */;
828 long var58
/* : Int */;
829 val
* var59
/* : nullable Object */;
830 short int var60
/* : Bool */;
831 short int var62
/* : Bool */;
834 const char* var_class_name65
;
835 short int var66
/* : Bool */;
836 short int var67
/* : Bool */;
837 long var68
/* : Int */;
838 short int var69
/* : Bool */;
839 short int var71
/* : Bool */;
842 const char* var_class_name74
;
843 short int var75
/* : Bool */;
844 short int var_76
/* var : Bool */;
845 val
* var77
/* : StringCharView */;
846 val
* var78
/* : nullable Object */;
847 val
* var79
/* : StringCharView */;
848 long var80
/* : Int */;
849 long var82
/* : Int */;
850 long var83
/* : Int */;
851 long var84
/* : Int */;
852 long var86
/* : Int */;
853 long var87
/* : Int */;
854 long var89
/* : Int */;
855 val
* var90
/* : nullable Object */;
856 short int var91
/* : Bool */;
857 short int var93
/* : Bool */;
858 long var94
/* : Int */;
859 long var95
/* : Int */;
860 long var97
/* : Int */;
861 long var98
/* : Int */;
862 long var100
/* : Int */;
863 val
* var101
/* : nullable Object */;
864 long var102
/* : Int */;
865 long var103
/* : Int */;
866 long var105
/* : Int */;
867 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
869 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
870 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 152);
874 var2
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
876 var3
= NEW_array__Array(&type_array__Arraykernel__Int
);
877 var4
= BOX_kernel__Int(var_m
); /* autobox from Int to nullable Object */
878 ((void (*)(val
*, val
*, long))(var3
->class->vft
[COLOR_array__Array__filled_with
]))(var3
, var4
, var_m
) /* filled_with on <var3:Array[Int]>*/;
883 { /* Inline kernel#Int#- (var_m,var6) */
891 { /* Inline kernel#Int#- (var_m,var10) */
892 var13
= var_m
- var10
;
900 { /* Inline kernel#Int#>= (var_i,var14) */
901 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
902 /* <var14:Int> isa OTHER */
903 var17
= 1; /* easy <var14:Int> isa OTHER*/
905 var_class_name
= type_kernel__Int
.name
;
906 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
907 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
910 var18
= var_i
>= var14
;
916 { /* Inline kernel#Int#> (var_i,var_g) */
917 /* Covariant cast for argument 0 (i) <var_g:Int> isa OTHER */
918 /* <var_g:Int> isa OTHER */
919 var22
= 1; /* easy <var_g:Int> isa OTHER*/
921 var_class_name25
= type_kernel__Int
.name
;
922 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25
);
923 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
926 var26
= var_i
> var_g
;
933 { /* Inline kernel#Int#+ (var_i,var_m) */
934 var29
= var_i
+ var_m
;
940 { /* Inline kernel#Int#- (var27,var30) */
941 var33
= var27
- var30
;
946 { /* Inline kernel#Int#- (var31,var_f) */
947 var36
= var31
- var_f
;
952 var37
= ((val
* (*)(val
*, long))(var_suff
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_suff
, var34
) /* [] on <var_suff:Array[Int]>*/;
953 { /* Inline kernel#Int#- (var_i,var_g) */
954 var40
= var_i
- var_g
;
959 { /* Inline kernel#Int#< (var37,var38) */
960 /* Covariant cast for argument 0 (i) <var38:Int> isa OTHER */
961 /* <var38:Int> isa OTHER */
962 var43
= 1; /* easy <var38:Int> isa OTHER*/
964 var_class_name46
= type_kernel__Int
.name
;
965 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46
);
966 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
969 var47
= ((struct instance_kernel__Int
*)var37
)->value
; /* autounbox from nullable Object to Int */;
970 var48
= var47
< var38
;
980 { /* Inline kernel#Int#+ (var_i,var_m) */
981 var51
= var_i
+ var_m
;
987 { /* Inline kernel#Int#- (var49,var52) */
988 var55
= var49
- var52
;
993 { /* Inline kernel#Int#- (var53,var_f) */
994 var58
= var53
- var_f
;
999 var59
= ((val
* (*)(val
*, long))(var_suff
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_suff
, var56
) /* [] on <var_suff:Array[Int]>*/;
1000 ((void (*)(val
*, long, val
*))(var_suff
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_suff
, var_i
, var59
) /* []= on <var_suff:Array[Int]>*/;
1002 { /* Inline kernel#Int#< (var_i,var_g) */
1003 /* Covariant cast for argument 0 (i) <var_g:Int> isa OTHER */
1004 /* <var_g:Int> isa OTHER */
1005 var62
= 1; /* easy <var_g:Int> isa OTHER*/
1007 var_class_name65
= type_kernel__Int
.name
;
1008 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65
);
1009 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
1012 var66
= var_i
< var_g
;
1015 RET_LABEL61
:(void)0;
1024 { /* Inline kernel#Int#>= (var_g,var68) */
1025 /* Covariant cast for argument 0 (i) <var68:Int> isa OTHER */
1026 /* <var68:Int> isa OTHER */
1027 var71
= 1; /* easy <var68:Int> isa OTHER*/
1029 var_class_name74
= type_kernel__Int
.name
;
1030 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name74
);
1031 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
1034 var75
= var_g
>= var68
;
1037 RET_LABEL70
:(void)0;
1041 var77
= ((val
* (*)(val
*))(var_x
->class->vft
[COLOR_string__AbstractString__chars
]))(var_x
) /* chars on <var_x:String>*/;
1042 var78
= ((val
* (*)(val
*, long))(var77
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var77
, var_g
) /* [] on <var77:StringCharView>*/;
1043 var79
= ((val
* (*)(val
*))(var_x
->class->vft
[COLOR_string__AbstractString__chars
]))(var_x
) /* chars on <var_x:String>*/;
1044 { /* Inline kernel#Int#+ (var_g,var_m) */
1045 var82
= var_g
+ var_m
;
1048 RET_LABEL81
:(void)0;
1051 { /* Inline kernel#Int#- (var80,var83) */
1052 var86
= var80
- var83
;
1055 RET_LABEL85
:(void)0;
1057 { /* Inline kernel#Int#- (var84,var_f) */
1058 var89
= var84
- var_f
;
1061 RET_LABEL88
:(void)0;
1063 var90
= ((val
* (*)(val
*, long))(var79
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var79
, var87
) /* [] on <var79:StringCharView>*/;
1064 { /* Inline kernel#Char#== (var78,var90) */
1065 var93
= var78
== var90
|| (((struct instance_kernel__Char
*)var78
)->value
== ((struct instance_kernel__Char
*)var90
)->value
);
1068 RET_LABEL92
:(void)0;
1076 { /* Inline kernel#Int#- (var_g,var94) */
1077 var97
= var_g
- var94
;
1080 RET_LABEL96
:(void)0;
1083 CONTINUE_label
: (void)0;
1085 BREAK_label
: (void)0;
1086 { /* Inline kernel#Int#- (var_f,var_g) */
1087 var100
= var_f
- var_g
;
1090 RET_LABEL99
:(void)0;
1092 var101
= BOX_kernel__Int(var98
); /* autobox from Int to nullable Object */
1093 ((void (*)(val
*, long, val
*))(var_suff
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_suff
, var_i
, var101
) /* []= on <var_suff:Array[Int]>*/;
1096 { /* Inline kernel#Int#- (var_i,var102) */
1097 var105
= var_i
- var102
;
1100 RET_LABEL104
:(void)0;
1103 CONTINUE_label106
: (void)0;
1105 BREAK_label106
: (void)0;
1111 /* method string_search#BM_Pattern#suffixes for (self: Object): Array[Int] */
1112 val
* VIRTUAL_string_search__BM_Pattern__suffixes(val
* self
) {
1113 val
* var
/* : Array[Int] */;
1114 val
* var1
/* : Array[Int] */;
1115 var1
= string_search__BM_Pattern__suffixes(self
);
1120 /* method string_search#BM_Pattern#compute_gs for (self: BM_Pattern) */
1121 void string_search__BM_Pattern__compute_gs(val
* self
) {
1122 val
* var
/* : String */;
1123 val
* var_x
/* var x: String */;
1124 long var1
/* : Int */;
1125 long var_m
/* var m: Int */;
1126 val
* var2
/* : Array[Int] */;
1127 val
* var_suff
/* var suff: Array[Int] */;
1128 long var3
/* : Int */;
1129 long var_i
/* var i: Int */;
1130 short int var4
/* : Bool */;
1131 short int var6
/* : Bool */;
1134 const char* var_class_name
;
1135 short int var7
/* : Bool */;
1136 val
* var8
/* : Array[Int] */;
1137 val
* var9
/* : nullable Object */;
1138 long var10
/* : Int */;
1139 long var11
/* : Int */;
1140 long var13
/* : Int */;
1141 long var14
/* : Int */;
1142 long var_j
/* var j: Int */;
1143 long var15
/* : Int */;
1144 long var16
/* : Int */;
1145 long var18
/* : Int */;
1146 long var19
/* : Int */;
1147 long var20
/* : Int */;
1148 long var22
/* : Int */;
1149 short int var23
/* : Bool */;
1150 short int var25
/* : Bool */;
1153 const char* var_class_name28
;
1154 short int var29
/* : Bool */;
1155 short int var30
/* : Bool */;
1156 long var31
/* : Int */;
1157 long var32
/* : Int */;
1158 long var34
/* : Int */;
1159 short int var35
/* : Bool */;
1160 short int var37
/* : Bool */;
1161 short int var_
/* var : Bool */;
1162 val
* var38
/* : nullable Object */;
1163 long var39
/* : Int */;
1164 long var40
/* : Int */;
1165 long var42
/* : Int */;
1166 short int var43
/* : Bool */;
1167 short int var45
/* : Bool */;
1168 long var46
/* : Int */;
1169 long var47
/* : Int */;
1170 long var48
/* : Int */;
1171 long var50
/* : Int */;
1172 long var51
/* : Int */;
1173 long var53
/* : Int */;
1174 short int var54
/* : Bool */;
1175 short int var56
/* : Bool */;
1178 const char* var_class_name59
;
1179 short int var60
/* : Bool */;
1180 val
* var61
/* : Array[Int] */;
1181 val
* var62
/* : nullable Object */;
1182 short int var63
/* : Bool */;
1183 short int var65
/* : Bool */;
1184 long var66
/* : Int */;
1185 val
* var67
/* : Array[Int] */;
1186 long var68
/* : Int */;
1187 long var69
/* : Int */;
1188 long var71
/* : Int */;
1189 long var72
/* : Int */;
1190 long var74
/* : Int */;
1191 val
* var75
/* : nullable Object */;
1192 long var76
/* : Int */;
1193 long var77
/* : Int */;
1194 long var79
/* : Int */;
1195 long var81
/* : Int */;
1196 long var82
/* : Int */;
1197 long var84
/* : Int */;
1198 long var86
/* : Int */;
1199 long var87
/* : Int */;
1200 long var88
/* : Int */;
1201 long var90
/* : Int */;
1202 short int var91
/* : Bool */;
1203 short int var93
/* : Bool */;
1206 const char* var_class_name96
;
1207 short int var97
/* : Bool */;
1208 val
* var98
/* : Array[Int] */;
1209 long var99
/* : Int */;
1210 long var100
/* : Int */;
1211 long var102
/* : Int */;
1212 val
* var103
/* : nullable Object */;
1213 long var104
/* : Int */;
1214 long var106
/* : Int */;
1215 long var107
/* : Int */;
1216 long var108
/* : Int */;
1217 long var109
/* : Int */;
1218 long var111
/* : Int */;
1219 long var112
/* : Int */;
1220 long var114
/* : Int */;
1221 val
* var115
/* : nullable Object */;
1222 long var116
/* : Int */;
1223 long var117
/* : Int */;
1224 long var119
/* : Int */;
1225 var
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
1227 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
1228 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 175);
1232 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
1234 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_string_search__BM_Pattern__suffixes
]))(self
) /* suffixes on <self:BM_Pattern>*/;
1239 { /* Inline kernel#Int#< (var_i,var_m) */
1240 /* Covariant cast for argument 0 (i) <var_m:Int> isa OTHER */
1241 /* <var_m:Int> isa OTHER */
1242 var6
= 1; /* easy <var_m:Int> isa OTHER*/
1244 var_class_name
= type_kernel__Int
.name
;
1245 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1246 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
1249 var7
= var_i
< var_m
;
1255 var8
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
1257 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
1258 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 180);
1261 var9
= BOX_kernel__Int(var_m
); /* autobox from Int to nullable Object */
1262 ((void (*)(val
*, long, val
*))(var8
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var8
, var_i
, var9
) /* []= on <var8:Array[Int]>*/;
1264 { /* Inline kernel#Int#+ (var_i,var10) */
1265 var13
= var_i
+ var10
;
1268 RET_LABEL12
:(void)0;
1271 CONTINUE_label
: (void)0;
1273 BREAK_label
: (void)0;
1277 { /* Inline kernel#Int#- (var_m,var15) */
1278 var18
= var_m
- var15
;
1281 RET_LABEL17
:(void)0;
1286 { /* Inline kernel#Int#unary - (var19) */
1290 RET_LABEL21
:(void)0;
1292 { /* Inline kernel#Int#>= (var_i,var20) */
1293 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
1294 /* <var20:Int> isa OTHER */
1295 var25
= 1; /* easy <var20:Int> isa OTHER*/
1297 var_class_name28
= type_kernel__Int
.name
;
1298 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28
);
1299 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
1302 var29
= var_i
>= var20
;
1305 RET_LABEL24
:(void)0;
1309 { /* Inline kernel#Int#unary - (var31) */
1313 RET_LABEL33
:(void)0;
1315 { /* Inline kernel#Int#== (var_i,var32) */
1316 var37
= var_i
== var32
;
1319 RET_LABEL36
:(void)0;
1325 var38
= ((val
* (*)(val
*, long))(var_suff
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_suff
, var_i
) /* [] on <var_suff:Array[Int]>*/;
1327 { /* Inline kernel#Int#+ (var_i,var39) */
1328 var42
= var_i
+ var39
;
1331 RET_LABEL41
:(void)0;
1333 { /* Inline kernel#Int#== (var38,var40) */
1334 var45
= (var38
!= NULL
) && (var38
->class == &class_kernel__Int
);
1336 var46
= ((struct instance_kernel__Int
*)var38
)->value
; /* autounbox from nullable Object to Int */;
1337 var45
= (var46
== var40
);
1341 RET_LABEL44
:(void)0;
1348 { /* Inline kernel#Int#- (var_m,var47) */
1349 var50
= var_m
- var47
;
1352 RET_LABEL49
:(void)0;
1354 { /* Inline kernel#Int#- (var48,var_i) */
1355 var53
= var48
- var_i
;
1358 RET_LABEL52
:(void)0;
1360 { /* Inline kernel#Int#< (var_j,var51) */
1361 /* Covariant cast for argument 0 (i) <var51:Int> isa OTHER */
1362 /* <var51:Int> isa OTHER */
1363 var56
= 1; /* easy <var51:Int> isa OTHER*/
1365 var_class_name59
= type_kernel__Int
.name
;
1366 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59
);
1367 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
1370 var60
= var_j
< var51
;
1373 RET_LABEL55
:(void)0;
1376 var61
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
1377 if (var61
== NULL
) {
1378 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
1379 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 188);
1382 var62
= ((val
* (*)(val
*, long))(var61
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var61
, var_j
) /* [] on <var61:Array[Int]>*/;
1383 { /* Inline kernel#Int#== (var62,var_m) */
1384 var65
= (var62
!= NULL
) && (var62
->class == &class_kernel__Int
);
1386 var66
= ((struct instance_kernel__Int
*)var62
)->value
; /* autounbox from nullable Object to Int */;
1387 var65
= (var66
== var_m
);
1391 RET_LABEL64
:(void)0;
1394 var67
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
1395 if (var67
== NULL
) {
1396 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
1397 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 188);
1401 { /* Inline kernel#Int#- (var_m,var68) */
1402 var71
= var_m
- var68
;
1405 RET_LABEL70
:(void)0;
1407 { /* Inline kernel#Int#- (var69,var_i) */
1408 var74
= var69
- var_i
;
1411 RET_LABEL73
:(void)0;
1413 var75
= BOX_kernel__Int(var72
); /* autobox from Int to nullable Object */
1414 ((void (*)(val
*, long, val
*))(var67
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var67
, var_j
, var75
) /* []= on <var67:Array[Int]>*/;
1418 { /* Inline kernel#Int#+ (var_j,var76) */
1419 var79
= var_j
+ var76
;
1422 RET_LABEL78
:(void)0;
1425 CONTINUE_label80
: (void)0;
1427 BREAK_label80
: (void)0;
1431 { /* Inline kernel#Int#- (var_i,var81) */
1432 var84
= var_i
- var81
;
1435 RET_LABEL83
:(void)0;
1438 CONTINUE_label85
: (void)0;
1440 BREAK_label85
: (void)0;
1445 { /* Inline kernel#Int#- (var_m,var87) */
1446 var90
= var_m
- var87
;
1449 RET_LABEL89
:(void)0;
1451 { /* Inline kernel#Int#< (var_i,var88) */
1452 /* Covariant cast for argument 0 (i) <var88:Int> isa OTHER */
1453 /* <var88:Int> isa OTHER */
1454 var93
= 1; /* easy <var88:Int> isa OTHER*/
1456 var_class_name96
= type_kernel__Int
.name
;
1457 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name96
);
1458 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
1461 var97
= var_i
< var88
;
1464 RET_LABEL92
:(void)0;
1467 var98
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
1468 if (var98
== NULL
) {
1469 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
1470 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 196);
1474 { /* Inline kernel#Int#- (var_m,var99) */
1475 var102
= var_m
- var99
;
1478 RET_LABEL101
:(void)0;
1480 var103
= ((val
* (*)(val
*, long))(var_suff
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_suff
, var_i
) /* [] on <var_suff:Array[Int]>*/;
1481 { /* Inline kernel#Int#- (var100,var103) */
1482 var106
= ((struct instance_kernel__Int
*)var103
)->value
; /* autounbox from nullable Object to Int */;
1483 var107
= var100
- var106
;
1486 RET_LABEL105
:(void)0;
1489 { /* Inline kernel#Int#- (var_m,var108) */
1490 var111
= var_m
- var108
;
1493 RET_LABEL110
:(void)0;
1495 { /* Inline kernel#Int#- (var109,var_i) */
1496 var114
= var109
- var_i
;
1499 RET_LABEL113
:(void)0;
1501 var115
= BOX_kernel__Int(var112
); /* autobox from Int to nullable Object */
1502 ((void (*)(val
*, long, val
*))(var98
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var98
, var104
, var115
) /* []= on <var98:Array[Int]>*/;
1504 { /* Inline kernel#Int#+ (var_i,var116) */
1505 var119
= var_i
+ var116
;
1508 RET_LABEL118
:(void)0;
1511 CONTINUE_label120
: (void)0;
1513 BREAK_label120
: (void)0;
1516 /* method string_search#BM_Pattern#compute_gs for (self: Object) */
1517 void VIRTUAL_string_search__BM_Pattern__compute_gs(val
* self
) {
1518 string_search__BM_Pattern__compute_gs(self
);
1521 /* method string_search#BM_Pattern#hash for (self: BM_Pattern): Int */
1522 long string_search__BM_Pattern__hash(val
* self
) {
1523 long var
/* : Int */;
1524 val
* var1
/* : String */;
1525 long var2
/* : Int */;
1526 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
1528 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
1529 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 201);
1532 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__hash
]))(var1
) /* hash on <var1:String>*/;
1538 /* method string_search#BM_Pattern#hash for (self: Object): Int */
1539 long VIRTUAL_string_search__BM_Pattern__hash(val
* self
) {
1540 long var
/* : Int */;
1541 long var1
/* : Int */;
1542 var1
= string_search__BM_Pattern__hash(self
);
1547 /* method string_search#BM_Pattern#== for (self: BM_Pattern, nullable Object): Bool */
1548 short int string_search__BM_Pattern___61d_61d(val
* self
, val
* p0
) {
1549 short int var
/* : Bool */;
1550 val
* var_o
/* var o: nullable Object */;
1551 short int var1
/* : Bool */;
1552 short int var2
/* : Bool */;
1555 short int var_
/* var : Bool */;
1556 val
* var3
/* : String */;
1557 val
* var4
/* : String */;
1558 short int var5
/* : Bool */;
1560 /* <var_o:nullable Object> isa BM_Pattern */
1561 cltype
= type_string_search__BM_Pattern
.color
;
1562 idtype
= type_string_search__BM_Pattern
.id
;
1566 if(cltype
>= var_o
->type
->table_size
) {
1569 var2
= var_o
->type
->type_table
[cltype
] == idtype
;
1574 var3
= var_o
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <var_o:nullable Object(BM_Pattern)> */
1576 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
1577 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 202);
1580 var4
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
1582 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
1583 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 202);
1586 var5
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var3
, var4
) /* == on <var3:String>*/;
1596 /* method string_search#BM_Pattern#== for (self: Object, nullable Object): Bool */
1597 short int VIRTUAL_string_search__BM_Pattern___61d_61d(val
* self
, val
* p0
) {
1598 short int var
/* : Bool */;
1599 short int var1
/* : Bool */;
1600 var1
= string_search__BM_Pattern___61d_61d(self
, p0
);
1605 /* method string_search#Match#string for (self: Match): String */
1606 val
* string_search__Match__string(val
* self
) {
1607 val
* var
/* : String */;
1608 val
* var1
/* : String */;
1609 var1
= self
->attrs
[COLOR_string_search__Match___string
].val
; /* _string on <self:Match> */
1611 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _string");
1612 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 207);
1619 /* method string_search#Match#string for (self: Object): String */
1620 val
* VIRTUAL_string_search__Match__string(val
* self
) {
1621 val
* var
/* : String */;
1622 val
* var1
/* : String */;
1623 var1
= string_search__Match__string(self
);
1628 /* method string_search#Match#from for (self: Match): Int */
1629 long string_search__Match__from(val
* self
) {
1630 long var
/* : Int */;
1631 long var1
/* : Int */;
1632 var1
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
1637 /* method string_search#Match#from for (self: Object): Int */
1638 long VIRTUAL_string_search__Match__from(val
* self
) {
1639 long var
/* : Int */;
1640 long var1
/* : Int */;
1641 var1
= string_search__Match__from(self
);
1646 /* method string_search#Match#length for (self: Match): Int */
1647 long string_search__Match__length(val
* self
) {
1648 long var
/* : Int */;
1649 long var1
/* : Int */;
1650 var1
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
1655 /* method string_search#Match#length for (self: Object): Int */
1656 long VIRTUAL_string_search__Match__length(val
* self
) {
1657 long var
/* : Int */;
1658 long var1
/* : Int */;
1659 var1
= string_search__Match__length(self
);
1664 /* method string_search#Match#after for (self: Match): Int */
1665 long string_search__Match__after(val
* self
) {
1666 long var
/* : Int */;
1667 long var1
/* : Int */;
1668 long var2
/* : Int */;
1669 long var3
/* : Int */;
1670 long var5
/* : Int */;
1671 var1
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
1672 var2
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
1673 { /* Inline kernel#Int#+ (var1,var2) */
1684 /* method string_search#Match#after for (self: Object): Int */
1685 long VIRTUAL_string_search__Match__after(val
* self
) {
1686 long var
/* : Int */;
1687 long var1
/* : Int */;
1688 var1
= string_search__Match__after(self
);
1693 /* method string_search#Match#to_s for (self: Match): String */
1694 val
* string_search__Match__to_s(val
* self
) {
1695 val
* var
/* : String */;
1696 val
* var1
/* : String */;
1697 long var2
/* : Int */;
1698 long var3
/* : Int */;
1699 val
* var4
/* : String */;
1700 var1
= self
->attrs
[COLOR_string_search__Match___string
].val
; /* _string on <self:Match> */
1702 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _string");
1703 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 221);
1706 var2
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
1707 var3
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
1708 var4
= ((val
* (*)(val
*, long, long))(var1
->class->vft
[COLOR_string__AbstractString__substring
]))(var1
, var2
, var3
) /* substring on <var1:String>*/;
1714 /* method string_search#Match#to_s for (self: Object): String */
1715 val
* VIRTUAL_string_search__Match__to_s(val
* self
) {
1716 val
* var
/* : String */;
1717 val
* var1
/* : String */;
1718 var1
= string_search__Match__to_s(self
);
1723 /* method string_search#Match#init for (self: Match, String, Int, Int) */
1724 void string_search__Match__init(val
* self
, val
* p0
, long p1
, long p2
) {
1725 val
* var_s
/* var s: String */;
1726 long var_f
/* var f: Int */;
1727 long var_len
/* var len: Int */;
1728 long var
/* : Int */;
1729 short int var1
/* : Bool */;
1730 short int var3
/* : Bool */;
1733 const char* var_class_name
;
1734 short int var4
/* : Bool */;
1735 long var5
/* : Int */;
1736 short int var6
/* : Bool */;
1737 short int var8
/* : Bool */;
1740 const char* var_class_name11
;
1741 short int var12
/* : Bool */;
1742 long var13
/* : Int */;
1743 long var15
/* : Int */;
1744 long var16
/* : Int */;
1745 short int var17
/* : Bool */;
1746 short int var19
/* : Bool */;
1749 const char* var_class_name22
;
1750 short int var23
/* : Bool */;
1755 { /* Inline kernel#Int#>= (var_len,var) */
1756 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
1757 /* <var:Int> isa OTHER */
1758 var3
= 1; /* easy <var:Int> isa OTHER*/
1760 var_class_name
= type_kernel__Int
.name
;
1761 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1762 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
1765 var4
= var_len
>= var
;
1771 fprintf(stderr
, "Runtime error: %s", "Assert \'positive_length\' failed");
1772 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 226);
1776 { /* Inline kernel#Int#>= (var_f,var5) */
1777 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
1778 /* <var5:Int> isa OTHER */
1779 var8
= 1; /* easy <var5:Int> isa OTHER*/
1781 var_class_name11
= type_kernel__Int
.name
;
1782 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11
);
1783 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
1786 var12
= var_f
>= var5
;
1792 fprintf(stderr
, "Runtime error: %s", "Assert \'valid_from\' failed");
1793 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 227);
1796 { /* Inline kernel#Int#+ (var_f,var_len) */
1797 var15
= var_f
+ var_len
;
1800 RET_LABEL14
:(void)0;
1802 var16
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
1803 { /* Inline kernel#Int#<= (var13,var16) */
1804 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
1805 /* <var16:Int> isa OTHER */
1806 var19
= 1; /* easy <var16:Int> isa OTHER*/
1808 var_class_name22
= type_kernel__Int
.name
;
1809 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22
);
1810 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
1813 var23
= var13
<= var16
;
1816 RET_LABEL18
:(void)0;
1819 fprintf(stderr
, "Runtime error: %s", "Assert \'valid_after\' failed");
1820 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 228);
1823 self
->attrs
[COLOR_string_search__Match___string
].val
= var_s
; /* _string on <self:Match> */
1824 self
->attrs
[COLOR_string_search__Match___from
].l
= var_f
; /* _from on <self:Match> */
1825 self
->attrs
[COLOR_string_search__Match___length
].l
= var_len
; /* _length on <self:Match> */
1828 /* method string_search#Match#init for (self: Object, String, Int, Int) */
1829 void VIRTUAL_string_search__Match__init(val
* self
, val
* p0
, long p1
, long p2
) {
1830 string_search__Match__init(self
, p0
, p1
, p2
);
1833 /* method string_search#Char#search_index_in for (self: Char, String, Int): Int */
1834 long string_search__Char__search_index_in(char self
, val
* p0
, long p1
) {
1835 long var
/* : Int */;
1836 val
* var_s
/* var s: String */;
1837 long var_from
/* var from: Int */;
1838 long var1
/* : Int */;
1839 long var_stop
/* var stop: Int */;
1840 short int var2
/* : Bool */;
1841 short int var4
/* : Bool */;
1844 const char* var_class_name
;
1845 short int var5
/* : Bool */;
1846 val
* var6
/* : StringCharView */;
1847 val
* var7
/* : nullable Object */;
1848 short int var8
/* : Bool */;
1849 short int var10
/* : Bool */;
1850 char var11
/* : Char */;
1851 long var12
/* : Int */;
1852 long var13
/* : Int */;
1853 long var15
/* : Int */;
1854 long var16
/* : Int */;
1855 long var17
/* : Int */;
1856 long var19
/* : Int */;
1859 var1
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
1862 { /* Inline kernel#Int#< (var_from,var_stop) */
1863 /* Covariant cast for argument 0 (i) <var_stop:Int> isa OTHER */
1864 /* <var_stop:Int> isa OTHER */
1865 var4
= 1; /* easy <var_stop:Int> isa OTHER*/
1867 var_class_name
= type_kernel__Int
.name
;
1868 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1869 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
1872 var5
= var_from
< var_stop
;
1878 var6
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__AbstractString__chars
]))(var_s
) /* chars on <var_s:String>*/;
1879 var7
= ((val
* (*)(val
*, long))(var6
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var6
, var_from
) /* [] on <var6:StringCharView>*/;
1880 { /* Inline kernel#Char#== (var7,self) */
1881 var10
= (var7
!= NULL
) && (var7
->class == &class_kernel__Char
);
1883 var11
= ((struct instance_kernel__Char
*)var7
)->value
; /* autounbox from nullable Object to Char */;
1884 var10
= (var11
== self
);
1896 { /* Inline kernel#Int#+ (var_from,var12) */
1897 var15
= var_from
+ var12
;
1900 RET_LABEL14
:(void)0;
1903 CONTINUE_label
: (void)0;
1905 BREAK_label
: (void)0;
1907 { /* Inline kernel#Int#unary - (var16) */
1911 RET_LABEL18
:(void)0;
1918 /* method string_search#Char#search_index_in for (self: Object, String, Int): Int */
1919 long VIRTUAL_string_search__Char__search_index_in(val
* self
, val
* p0
, long p1
) {
1920 long var
/* : Int */;
1921 long var1
/* : Int */;
1922 char var2
/* : Char */;
1923 var2
= ((struct instance_kernel__Char
*)self
)->value
; /* autounbox from Object to Char */;
1924 var1
= string_search__Char__search_index_in(var2
, p0
, p1
);
1929 /* method string_search#Char#search_in for (self: Char, String, Int): nullable Match */
1930 val
* string_search__Char__search_in(char self
, val
* p0
, long p1
) {
1931 val
* var
/* : nullable Match */;
1932 val
* var_s
/* var s: String */;
1933 long var_from
/* var from: Int */;
1934 long var1
/* : Int */;
1935 long var_pos
/* var pos: Int */;
1936 long var2
/* : Int */;
1937 short int var3
/* : Bool */;
1938 short int var5
/* : Bool */;
1941 const char* var_class_name
;
1942 short int var6
/* : Bool */;
1943 val
* var7
/* : null */;
1944 val
* var8
/* : Match */;
1945 long var9
/* : Int */;
1948 var1
= string_search__Char__search_index_in(self
, var_s
, var_from
);
1951 { /* Inline kernel#Int#< (var_pos,var2) */
1952 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
1953 /* <var2:Int> isa OTHER */
1954 var5
= 1; /* easy <var2:Int> isa OTHER*/
1956 var_class_name
= type_kernel__Int
.name
;
1957 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1958 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
1961 var6
= var_pos
< var2
;
1971 var8
= NEW_string_search__Match(&type_string_search__Match
);
1973 ((void (*)(val
*, val
*, long, long))(var8
->class->vft
[COLOR_string_search__Match__init
]))(var8
, var_s
, var_pos
, var9
) /* init on <var8:Match>*/;
1980 /* method string_search#Char#search_in for (self: Object, String, Int): nullable Match */
1981 val
* VIRTUAL_string_search__Char__search_in(val
* self
, val
* p0
, long p1
) {
1982 val
* var
/* : nullable Match */;
1983 val
* var1
/* : nullable Match */;
1984 char var2
/* : Char */;
1985 var2
= ((struct instance_kernel__Char
*)self
)->value
; /* autounbox from Object to Char */;
1986 var1
= string_search__Char__search_in(var2
, p0
, p1
);
1991 /* method string_search#String#search_index_in for (self: String, String, Int): Int */
1992 long string_search__String__search_index_in(val
* self
, val
* p0
, long p1
) {
1993 long var
/* : Int */;
1994 val
* var_s
/* var s: String */;
1995 long var_from
/* var from: Int */;
1996 long var1
/* : Int */;
1997 short int var2
/* : Bool */;
1998 short int var4
/* : Bool */;
2001 const char* var_class_name
;
2002 short int var5
/* : Bool */;
2003 long var6
/* : Int */;
2004 long var7
/* : Int */;
2005 long var8
/* : Int */;
2006 long var10
/* : Int */;
2007 long var11
/* : Int */;
2008 long var12
/* : Int */;
2009 long var14
/* : Int */;
2010 long var_stop
/* var stop: Int */;
2011 short int var15
/* : Bool */;
2012 short int var17
/* : Bool */;
2015 const char* var_class_name20
;
2016 short int var21
/* : Bool */;
2017 long var22
/* : Int */;
2018 long var23
/* : Int */;
2019 long var24
/* : Int */;
2020 long var26
/* : Int */;
2021 long var_i
/* var i: Int */;
2022 short int var27
/* : Bool */;
2023 long var28
/* : Int */;
2024 short int var29
/* : Bool */;
2025 short int var31
/* : Bool */;
2028 const char* var_class_name34
;
2029 short int var35
/* : Bool */;
2030 short int var_
/* var : Bool */;
2031 val
* var36
/* : StringCharView */;
2032 val
* var37
/* : nullable Object */;
2033 val
* var38
/* : StringCharView */;
2034 long var39
/* : Int */;
2035 long var41
/* : Int */;
2036 val
* var42
/* : nullable Object */;
2037 short int var43
/* : Bool */;
2038 short int var45
/* : Bool */;
2039 long var46
/* : Int */;
2040 long var47
/* : Int */;
2041 long var49
/* : Int */;
2042 long var50
/* : Int */;
2043 short int var51
/* : Bool */;
2044 short int var53
/* : Bool */;
2047 const char* var_class_name56
;
2048 short int var57
/* : Bool */;
2049 long var58
/* : Int */;
2050 long var59
/* : Int */;
2051 long var61
/* : Int */;
2052 long var63
/* : Int */;
2053 long var64
/* : Int */;
2054 long var66
/* : Int */;
2058 { /* Inline kernel#Int#>= (var_from,var1) */
2059 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
2060 /* <var1:Int> isa OTHER */
2061 var4
= 1; /* easy <var1:Int> isa OTHER*/
2063 var_class_name
= type_kernel__Int
.name
;
2064 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2065 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
2068 var5
= var_from
>= var1
;
2074 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2075 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 264);
2078 var6
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
2079 var7
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:String>*/;
2080 { /* Inline kernel#Int#- (var6,var7) */
2081 var10
= var6
- var7
;
2087 { /* Inline kernel#Int#+ (var8,var11) */
2088 var14
= var8
+ var11
;
2091 RET_LABEL13
:(void)0;
2095 { /* Inline kernel#Int#< (var_from,var_stop) */
2096 /* Covariant cast for argument 0 (i) <var_stop:Int> isa OTHER */
2097 /* <var_stop:Int> isa OTHER */
2098 var17
= 1; /* easy <var_stop:Int> isa OTHER*/
2100 var_class_name20
= type_kernel__Int
.name
;
2101 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20
);
2102 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2105 var21
= var_from
< var_stop
;
2108 RET_LABEL16
:(void)0;
2111 var22
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:String>*/;
2113 { /* Inline kernel#Int#- (var22,var23) */
2114 var26
= var22
- var23
;
2117 RET_LABEL25
:(void)0;
2122 { /* Inline kernel#Int#>= (var_i,var28) */
2123 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
2124 /* <var28:Int> isa OTHER */
2125 var31
= 1; /* easy <var28:Int> isa OTHER*/
2127 var_class_name34
= type_kernel__Int
.name
;
2128 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34
);
2129 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
2132 var35
= var_i
>= var28
;
2135 RET_LABEL30
:(void)0;
2139 var36
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_string__AbstractString__chars
]))(self
) /* chars on <self:String>*/;
2140 var37
= ((val
* (*)(val
*, long))(var36
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var36
, var_i
) /* [] on <var36:StringCharView>*/;
2141 var38
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__AbstractString__chars
]))(var_s
) /* chars on <var_s:String>*/;
2142 { /* Inline kernel#Int#+ (var_i,var_from) */
2143 var41
= var_i
+ var_from
;
2146 RET_LABEL40
:(void)0;
2148 var42
= ((val
* (*)(val
*, long))(var38
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var38
, var39
) /* [] on <var38:StringCharView>*/;
2149 { /* Inline kernel#Char#== (var37,var42) */
2150 var45
= var37
== var42
|| (((struct instance_kernel__Char
*)var37
)->value
== ((struct instance_kernel__Char
*)var42
)->value
);
2153 RET_LABEL44
:(void)0;
2161 { /* Inline kernel#Int#- (var_i,var46) */
2162 var49
= var_i
- var46
;
2165 RET_LABEL48
:(void)0;
2168 CONTINUE_label
: (void)0;
2170 BREAK_label
: (void)0;
2172 { /* Inline kernel#Int#< (var_i,var50) */
2173 /* Covariant cast for argument 0 (i) <var50:Int> isa OTHER */
2174 /* <var50:Int> isa OTHER */
2175 var53
= 1; /* easy <var50:Int> isa OTHER*/
2177 var_class_name56
= type_kernel__Int
.name
;
2178 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56
);
2179 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2182 var57
= var_i
< var50
;
2185 RET_LABEL52
:(void)0;
2193 { /* Inline kernel#Int#+ (var_from,var58) */
2194 var61
= var_from
+ var58
;
2197 RET_LABEL60
:(void)0;
2200 CONTINUE_label62
: (void)0;
2202 BREAK_label62
: (void)0;
2204 { /* Inline kernel#Int#unary - (var63) */
2208 RET_LABEL65
:(void)0;
2215 /* method string_search#String#search_index_in for (self: Object, String, Int): Int */
2216 long VIRTUAL_string_search__String__search_index_in(val
* self
, val
* p0
, long p1
) {
2217 long var
/* : Int */;
2218 long var1
/* : Int */;
2219 var1
= string_search__String__search_index_in(self
, p0
, p1
);
2224 /* method string_search#String#search_in for (self: String, String, Int): nullable Match */
2225 val
* string_search__String__search_in(val
* self
, val
* p0
, long p1
) {
2226 val
* var
/* : nullable Match */;
2227 val
* var_s
/* var s: String */;
2228 long var_from
/* var from: Int */;
2229 long var1
/* : Int */;
2230 long var_pos
/* var pos: Int */;
2231 long var2
/* : Int */;
2232 short int var3
/* : Bool */;
2233 short int var5
/* : Bool */;
2236 const char* var_class_name
;
2237 short int var6
/* : Bool */;
2238 val
* var7
/* : null */;
2239 val
* var8
/* : Match */;
2240 long var9
/* : Int */;
2243 var1
= ((long (*)(val
*, val
*, long))(self
->class->vft
[COLOR_string_search__Pattern__search_index_in
]))(self
, var_s
, var_from
) /* search_index_in on <self:String>*/;
2246 { /* Inline kernel#Int#< (var_pos,var2) */
2247 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
2248 /* <var2:Int> isa OTHER */
2249 var5
= 1; /* easy <var2:Int> isa OTHER*/
2251 var_class_name
= type_kernel__Int
.name
;
2252 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2253 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2256 var6
= var_pos
< var2
;
2266 var8
= NEW_string_search__Match(&type_string_search__Match
);
2267 var9
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:String>*/;
2268 ((void (*)(val
*, val
*, long, long))(var8
->class->vft
[COLOR_string_search__Match__init
]))(var8
, var_s
, var_pos
, var9
) /* init on <var8:Match>*/;
2275 /* method string_search#String#search_in for (self: Object, String, Int): nullable Match */
2276 val
* VIRTUAL_string_search__String__search_in(val
* self
, val
* p0
, long p1
) {
2277 val
* var
/* : nullable Match */;
2278 val
* var1
/* : nullable Match */;
2279 var1
= string_search__String__search_in(self
, p0
, p1
);
2284 /* method string_search#String#search for (self: String, Pattern): nullable Match */
2285 val
* string_search__String__search(val
* self
, val
* p0
) {
2286 val
* var
/* : nullable Match */;
2287 val
* var_p
/* var p: Pattern */;
2288 long var1
/* : Int */;
2289 val
* var2
/* : nullable Match */;
2292 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>*/;
2298 /* method string_search#String#search for (self: Object, Pattern): nullable Match */
2299 val
* VIRTUAL_string_search__String__search(val
* self
, val
* p0
) {
2300 val
* var
/* : nullable Match */;
2301 val
* var1
/* : nullable Match */;
2302 var1
= string_search__String__search(self
, p0
);
2307 /* method string_search#String#search_from for (self: String, Pattern, Int): nullable Match */
2308 val
* string_search__String__search_from(val
* self
, val
* p0
, long p1
) {
2309 val
* var
/* : nullable Match */;
2310 val
* var_p
/* var p: Pattern */;
2311 long var_from
/* var from: Int */;
2312 val
* var1
/* : nullable Match */;
2315 var1
= ((val
* (*)(val
*, val
*, long))(var_p
->class->vft
[COLOR_string_search__Pattern__search_in
]))(var_p
, self
, var_from
) /* search_in on <var_p:Pattern>*/;
2321 /* method string_search#String#search_from for (self: Object, Pattern, Int): nullable Match */
2322 val
* VIRTUAL_string_search__String__search_from(val
* self
, val
* p0
, long p1
) {
2323 val
* var
/* : nullable Match */;
2324 val
* var1
/* : nullable Match */;
2325 var1
= string_search__String__search_from(self
, p0
, p1
);
2330 /* method string_search#String#search_all for (self: String, Pattern): Array[Match] */
2331 val
* string_search__String__search_all(val
* self
, val
* p0
) {
2332 val
* var
/* : Array[Match] */;
2333 val
* var_p
/* var p: Pattern */;
2334 val
* var1
/* : Array[Match] */;
2336 var1
= ((val
* (*)(val
*, val
*))(var_p
->class->vft
[COLOR_string_search__Pattern__search_all_in
]))(var_p
, self
) /* search_all_in on <var_p:Pattern>*/;
2342 /* method string_search#String#search_all for (self: Object, Pattern): Array[Match] */
2343 val
* VIRTUAL_string_search__String__search_all(val
* self
, val
* p0
) {
2344 val
* var
/* : Array[Match] */;
2345 val
* var1
/* : Array[Match] */;
2346 var1
= string_search__String__search_all(self
, p0
);
2351 /* method string_search#String#split for (self: String, Pattern): Array[String] */
2352 val
* string_search__String__split(val
* self
, val
* p0
) {
2353 val
* var
/* : Array[String] */;
2354 val
* var_p
/* var p: Pattern */;
2355 val
* var1
/* : Array[Match] */;
2356 val
* var_matches
/* var matches: Array[Match] */;
2357 val
* var2
/* : Array[String] */;
2358 long var3
/* : Int */;
2359 val
* var_res
/* var res: Array[String] */;
2360 val
* var4
/* : Iterator[nullable Object] */;
2361 short int var5
/* : Bool */;
2362 val
* var6
/* : nullable Object */;
2363 val
* var_m
/* var m: Match */;
2364 val
* var7
/* : String */;
2366 var1
= ((val
* (*)(val
*, val
*))(var_p
->class->vft
[COLOR_string_search__Pattern__split_in
]))(var_p
, self
) /* split_in on <var_p:Pattern>*/;
2368 var2
= NEW_array__Array(&type_array__Arraystring__String
);
2369 var3
= ((long (*)(val
*))(var_matches
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_matches
) /* length on <var_matches:Array[Match]>*/;
2370 ((void (*)(val
*, long))(var2
->class->vft
[COLOR_array__Array__with_capacity
]))(var2
, var3
) /* with_capacity on <var2:Array[String]>*/;
2372 var4
= ((val
* (*)(val
*))(var_matches
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_matches
) /* iterator on <var_matches:Array[Match]>*/;
2374 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
2376 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
2378 var7
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_string__Object__to_s
]))(var_m
) /* to_s on <var_m:Match>*/;
2379 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var7
) /* add on <var_res:Array[String]>*/;
2380 CONTINUE_label
: (void)0;
2381 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
2383 BREAK_label
: (void)0;
2389 /* method string_search#String#split for (self: Object, Pattern): Array[String] */
2390 val
* VIRTUAL_string_search__String__split(val
* self
, val
* p0
) {
2391 val
* var
/* : Array[String] */;
2392 val
* var1
/* : Array[String] */;
2393 var1
= string_search__String__split(self
, p0
);
2398 /* method string_search#String#split_with for (self: String, Pattern): Array[String] */
2399 val
* string_search__String__split_with(val
* self
, val
* p0
) {
2400 val
* var
/* : Array[String] */;
2401 val
* var_p
/* var p: Pattern */;
2402 val
* var1
/* : Array[String] */;
2404 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_string_search__String__split
]))(self
, var_p
) /* split on <self:String>*/;
2410 /* method string_search#String#split_with for (self: Object, Pattern): Array[String] */
2411 val
* VIRTUAL_string_search__String__split_with(val
* self
, val
* p0
) {
2412 val
* var
/* : Array[String] */;
2413 val
* var1
/* : Array[String] */;
2414 var1
= string_search__String__split_with(self
, p0
);
2419 /* method string_search#String#replace for (self: String, Pattern, String): String */
2420 val
* string_search__String__replace(val
* self
, val
* p0
, val
* p1
) {
2421 val
* var
/* : String */;
2422 val
* var_p
/* var p: Pattern */;
2423 val
* var_string
/* var string: String */;
2424 val
* var1
/* : Array[String] */;
2425 val
* var2
/* : String */;
2428 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_string_search__String__split_with
]))(self
, var_p
) /* split_with on <self:String>*/;
2429 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_string__Collection__join
]))(var1
, var_string
) /* join on <var1:Array[String]>*/;
2435 /* method string_search#String#replace for (self: Object, Pattern, String): String */
2436 val
* VIRTUAL_string_search__String__replace(val
* self
, val
* p0
, val
* p1
) {
2437 val
* var
/* : String */;
2438 val
* var1
/* : String */;
2439 var1
= string_search__String__replace(self
, p0
, p1
);
2444 /* method string_search#String#html_escape for (self: String): String */
2445 val
* string_search__String__html_escape(val
* self
) {
2446 val
* var
/* : String */;
2447 val
* var_ret
/* var ret: String */;
2448 val
* var1
/* : StringCharView */;
2449 char var2
/* : Char */;
2450 short int var3
/* : Bool */;
2451 val
* var4
/* : nullable Object */;
2452 char var5
/* : Char */;
2453 static val
* varonce
;
2454 val
* var6
/* : String */;
2455 char* var7
/* : NativeString */;
2456 long var8
/* : Int */;
2457 val
* var9
/* : String */;
2458 val
* var10
/* : String */;
2459 val
* var11
/* : Pattern */;
2460 val
* var12
/* : StringCharView */;
2461 char var13
/* : Char */;
2462 short int var14
/* : Bool */;
2463 val
* var15
/* : nullable Object */;
2464 char var16
/* : Char */;
2465 static val
* varonce17
;
2466 val
* var18
/* : String */;
2467 char* var19
/* : NativeString */;
2468 long var20
/* : Int */;
2469 val
* var21
/* : String */;
2470 val
* var22
/* : String */;
2471 val
* var23
/* : Pattern */;
2472 val
* var24
/* : StringCharView */;
2473 char var25
/* : Char */;
2474 short int var26
/* : Bool */;
2475 val
* var27
/* : nullable Object */;
2476 char var28
/* : Char */;
2477 static val
* varonce29
;
2478 val
* var30
/* : String */;
2479 char* var31
/* : NativeString */;
2480 long var32
/* : Int */;
2481 val
* var33
/* : String */;
2482 val
* var34
/* : String */;
2483 val
* var35
/* : Pattern */;
2484 val
* var36
/* : StringCharView */;
2485 char var37
/* : Char */;
2486 short int var38
/* : Bool */;
2487 val
* var39
/* : nullable Object */;
2488 char var40
/* : Char */;
2489 static val
* varonce41
;
2490 val
* var42
/* : String */;
2491 char* var43
/* : NativeString */;
2492 long var44
/* : Int */;
2493 val
* var45
/* : String */;
2494 val
* var46
/* : String */;
2495 val
* var47
/* : Pattern */;
2497 var1
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_string__AbstractString__chars
]))(var_ret
) /* chars on <var_ret:String>*/;
2499 var4
= BOX_kernel__Char(var2
); /* autobox from Char to nullable Object */
2500 var3
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var1
, var4
) /* has on <var1:StringCharView>*/;
2508 var9
= string__NativeString__to_s_with_length(var7
, var8
);
2512 var11
= BOX_kernel__Char(var5
); /* autobox from Char to Pattern */
2513 var10
= ((val
* (*)(val
*, val
*, val
*))(var_ret
->class->vft
[COLOR_string_search__String__replace
]))(var_ret
, var11
, var6
) /* replace on <var_ret:String>*/;
2517 var12
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_string__AbstractString__chars
]))(var_ret
) /* chars on <var_ret:String>*/;
2519 var15
= BOX_kernel__Char(var13
); /* autobox from Char to nullable Object */
2520 var14
= ((short int (*)(val
*, val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var12
, var15
) /* has on <var12:StringCharView>*/;
2528 var21
= string__NativeString__to_s_with_length(var19
, var20
);
2532 var23
= BOX_kernel__Char(var16
); /* autobox from Char to Pattern */
2533 var22
= ((val
* (*)(val
*, val
*, val
*))(var_ret
->class->vft
[COLOR_string_search__String__replace
]))(var_ret
, var23
, var18
) /* replace on <var_ret:String>*/;
2537 var24
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_string__AbstractString__chars
]))(var_ret
) /* chars on <var_ret:String>*/;
2539 var27
= BOX_kernel__Char(var25
); /* autobox from Char to nullable Object */
2540 var26
= ((short int (*)(val
*, val
*))(var24
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var24
, var27
) /* has on <var24:StringCharView>*/;
2548 var33
= string__NativeString__to_s_with_length(var31
, var32
);
2552 var35
= BOX_kernel__Char(var28
); /* autobox from Char to Pattern */
2553 var34
= ((val
* (*)(val
*, val
*, val
*))(var_ret
->class->vft
[COLOR_string_search__String__replace
]))(var_ret
, var35
, var30
) /* replace on <var_ret:String>*/;
2557 var36
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_string__AbstractString__chars
]))(var_ret
) /* chars on <var_ret:String>*/;
2559 var39
= BOX_kernel__Char(var37
); /* autobox from Char to nullable Object */
2560 var38
= ((short int (*)(val
*, val
*))(var36
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var36
, var39
) /* has on <var36:StringCharView>*/;
2568 var45
= string__NativeString__to_s_with_length(var43
, var44
);
2572 var47
= BOX_kernel__Char(var40
); /* autobox from Char to Pattern */
2573 var46
= ((val
* (*)(val
*, val
*, val
*))(var_ret
->class->vft
[COLOR_string_search__String__replace
]))(var_ret
, var47
, var42
) /* replace on <var_ret:String>*/;
2582 /* method string_search#String#html_escape for (self: Object): String */
2583 val
* VIRTUAL_string_search__String__html_escape(val
* self
) {
2584 val
* var
/* : String */;
2585 val
* var1
/* : String */;
2586 var1
= string_search__String__html_escape(self
);