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]>*/;
58 CHECK_NEW_array__Array(var1
);
61 var3
= ((val
* (*)(val
*, val
*, long))(self
->class->vft
[COLOR_string_search__Pattern__search_in
]))(self
, var_s
, var2
) /* search_in on <self:Pattern>*/;
65 if (var_match
== NULL
) {
66 var5
= 0; /* is null */
68 var5
= 1; /* arg is null and recv is not */
71 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var_match
) /* add on <var_res:Array[Match]>*/;
72 var6
= ((long (*)(val
*))(var_match
->class->vft
[COLOR_string_search__Match__after
]))(var_match
) /* after on <var_match:nullable Match(Match)>*/;
73 var7
= ((val
* (*)(val
*, val
*, long))(self
->class->vft
[COLOR_string_search__Pattern__search_in
]))(self
, var_s
, var6
) /* search_in on <self:Pattern>*/;
75 CONTINUE_label
: (void)0;
83 /* method string_search#Pattern#search_all_in for (self: Object, String): Array[Match] */
84 val
* VIRTUAL_string_search__Pattern__search_all_in(val
* self
, val
* p0
) {
85 val
* var
/* : Array[Match] */;
86 val
* var1
/* : Array[Match] */;
87 var1
= string_search__Pattern__search_all_in(self
, p0
);
92 /* method string_search#Pattern#split_in for (self: Pattern, String): Array[Match] */
93 val
* string_search__Pattern__split_in(val
* self
, val
* p0
) {
94 val
* var
/* : Array[Match] */;
95 val
* var_s
/* var s: String */;
96 val
* var1
/* : Array[Match] */;
97 val
* var_res
/* var res: Array[Match] */;
98 long var2
/* : Int */;
99 long var_i
/* var i: Int */;
100 long var3
/* : Int */;
101 val
* var4
/* : nullable Match */;
102 val
* var_match
/* var match: nullable Match */;
103 val
* var5
/* : null */;
104 short int var6
/* : Bool */;
105 long var7
/* : Int */;
106 long var8
/* : Int */;
107 long var10
/* : Int */;
108 long var_len
/* var len: Int */;
109 val
* var11
/* : Match */;
110 long var12
/* : Int */;
111 val
* var13
/* : nullable Match */;
112 val
* var14
/* : Match */;
113 long var15
/* : Int */;
114 long var16
/* : Int */;
115 long var18
/* : Int */;
117 var1
= NEW_array__Array(&type_array__Arraystring_search__Match
);
118 ((void (*)(val
*))(var1
->class->vft
[COLOR_array__Array__init
]))(var1
) /* init on <var1:Array[Match]>*/;
119 CHECK_NEW_array__Array(var1
);
124 var4
= ((val
* (*)(val
*, val
*, long))(self
->class->vft
[COLOR_string_search__Pattern__search_in
]))(self
, var_s
, var3
) /* search_in on <self:Pattern>*/;
128 if (var_match
== NULL
) {
129 var6
= 0; /* is null */
131 var6
= 1; /* arg is null and recv is not */
134 var7
= ((long (*)(val
*))(var_match
->class->vft
[COLOR_string_search__Match__from
]))(var_match
) /* from on <var_match:nullable Match(Match)>*/;
135 { /* Inline kernel#Int#- (var7,var_i) */
136 var10
= var7
- var_i
;
142 var11
= NEW_string_search__Match(&type_string_search__Match
);
143 ((void (*)(val
*, val
*, long, long))(var11
->class->vft
[COLOR_string_search__Match__init
]))(var11
, var_s
, var_i
, var_len
) /* init on <var11:Match>*/;
144 CHECK_NEW_string_search__Match(var11
);
145 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var11
) /* add on <var_res:Array[Match]>*/;
146 var12
= ((long (*)(val
*))(var_match
->class->vft
[COLOR_string_search__Match__after
]))(var_match
) /* after on <var_match:nullable Match(Match)>*/;
148 var13
= ((val
* (*)(val
*, val
*, long))(self
->class->vft
[COLOR_string_search__Pattern__search_in
]))(self
, var_s
, var_i
) /* search_in on <self:Pattern>*/;
150 CONTINUE_label
: (void)0;
152 BREAK_label
: (void)0;
153 var14
= NEW_string_search__Match(&type_string_search__Match
);
154 var15
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
155 { /* Inline kernel#Int#- (var15,var_i) */
156 var18
= var15
- var_i
;
161 ((void (*)(val
*, val
*, long, long))(var14
->class->vft
[COLOR_string_search__Match__init
]))(var14
, var_s
, var_i
, var16
) /* init on <var14:Match>*/;
162 CHECK_NEW_string_search__Match(var14
);
163 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var14
) /* add on <var_res:Array[Match]>*/;
169 /* method string_search#Pattern#split_in for (self: Object, String): Array[Match] */
170 val
* VIRTUAL_string_search__Pattern__split_in(val
* self
, val
* p0
) {
171 val
* var
/* : Array[Match] */;
172 val
* var1
/* : Array[Match] */;
173 var1
= string_search__Pattern__split_in(self
, p0
);
178 /* method string_search#BM_Pattern#to_s for (self: BM_Pattern): String */
179 val
* string_search__BM_Pattern__to_s(val
* self
) {
180 val
* var
/* : String */;
181 val
* var1
/* : String */;
182 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
184 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
185 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 67);
193 /* method string_search#BM_Pattern#to_s for (self: Object): String */
194 val
* VIRTUAL_string_search__BM_Pattern__to_s(val
* self
) {
195 val
* var
/* : String */;
196 val
* var1
/* : String */;
197 var1
= string_search__BM_Pattern__to_s(self
);
202 /* method string_search#BM_Pattern#search_index_in for (self: BM_Pattern, String, Int): Int */
203 long string_search__BM_Pattern__search_index_in(val
* self
, val
* p0
, long p1
) {
204 long var
/* : Int */;
205 val
* var_s
/* var s: String */;
206 long var_from
/* var from: Int */;
207 long var1
/* : Int */;
208 short int var2
/* : Bool */;
209 short int var4
/* : Bool */;
212 const char* var_class_name
;
213 short int var5
/* : Bool */;
214 long var6
/* : Int */;
215 long var_n
/* var n: Int */;
216 long var7
/* : Int */;
217 long var_m
/* var m: Int */;
218 long var_j
/* var j: Int */;
219 long var8
/* : Int */;
220 long var10
/* : Int */;
221 long var11
/* : Int */;
222 long var12
/* : Int */;
223 long var14
/* : Int */;
224 short int var15
/* : Bool */;
225 short int var17
/* : Bool */;
228 const char* var_class_name20
;
229 short int var21
/* : Bool */;
230 long var22
/* : Int */;
231 long var23
/* : Int */;
232 long var25
/* : Int */;
233 long var_i
/* var i: Int */;
234 short int var26
/* : Bool */;
235 long var27
/* : Int */;
236 short int var28
/* : Bool */;
237 short int var30
/* : Bool */;
240 const char* var_class_name33
;
241 short int var34
/* : Bool */;
242 short int var_
/* var : Bool */;
243 val
* var35
/* : String */;
244 val
* var36
/* : nullable Object */;
245 long var37
/* : Int */;
246 long var39
/* : Int */;
247 val
* var40
/* : nullable Object */;
248 short int var41
/* : Bool */;
249 short int var43
/* : Bool */;
250 long var44
/* : Int */;
251 long var45
/* : Int */;
252 long var47
/* : Int */;
253 long var48
/* : Int */;
254 short int var49
/* : Bool */;
255 short int var51
/* : Bool */;
258 const char* var_class_name54
;
259 short int var55
/* : Bool */;
260 val
* var56
/* : Array[Int] */;
261 val
* var57
/* : nullable Object */;
262 long var58
/* : Int */;
263 long var_gs
/* var gs: Int */;
264 long var59
/* : Int */;
265 long var61
/* : Int */;
266 val
* var62
/* : nullable Object */;
267 long var63
/* : Int */;
268 char var64
/* : Char */;
269 long var65
/* : Int */;
270 long var67
/* : Int */;
271 long var68
/* : Int */;
272 long var69
/* : Int */;
273 long var71
/* : Int */;
274 long var72
/* : Int */;
275 long var74
/* : Int */;
276 long var_bc
/* var bc: Int */;
277 short int var75
/* : Bool */;
278 short int var77
/* : Bool */;
281 const char* var_class_name80
;
282 short int var81
/* : Bool */;
283 long var82
/* : Int */;
284 long var84
/* : Int */;
285 long var85
/* : Int */;
286 long var87
/* : Int */;
287 long var89
/* : Int */;
288 long var90
/* : Int */;
289 long var92
/* : Int */;
293 { /* Inline kernel#Int#>= (var_from,var1) */
294 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
295 /* <var1:Int> isa OTHER */
296 var4
= 1; /* easy <var1:Int> isa OTHER*/
298 var_class_name
= type_kernel__Int
.name
;
299 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
300 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
303 var5
= var_from
>= var1
;
309 fprintf(stderr
, "Runtime error: %s", "Assert failed");
310 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 72);
313 var6
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
315 var7
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
319 { /* Inline kernel#Int#- (var_n,var_m) */
320 var10
= var_n
- var_m
;
326 { /* Inline kernel#Int#+ (var8,var11) */
327 var14
= var8
+ var11
;
332 { /* Inline kernel#Int#< (var_j,var12) */
333 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
334 /* <var12:Int> isa OTHER */
335 var17
= 1; /* easy <var12:Int> isa OTHER*/
337 var_class_name20
= type_kernel__Int
.name
;
338 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20
);
339 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
342 var21
= var_j
< var12
;
349 { /* Inline kernel#Int#- (var_m,var22) */
350 var25
= var_m
- var22
;
358 { /* Inline kernel#Int#>= (var_i,var27) */
359 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
360 /* <var27:Int> isa OTHER */
361 var30
= 1; /* easy <var27:Int> isa OTHER*/
363 var_class_name33
= type_kernel__Int
.name
;
364 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33
);
365 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
368 var34
= var_i
>= var27
;
375 var35
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
377 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
378 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 79);
381 var36
= ((val
* (*)(val
*, long))(var35
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var35
, var_i
) /* [] on <var35:String>*/;
382 { /* Inline kernel#Int#+ (var_i,var_j) */
383 var39
= var_i
+ var_j
;
388 var40
= ((val
* (*)(val
*, long))(var_s
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_s
, var37
) /* [] on <var_s:String>*/;
389 { /* Inline kernel#Char#== (var36,var40) */
390 var43
= var36
== var40
|| (((struct instance_kernel__Char
*)var36
)->value
== ((struct instance_kernel__Char
*)var40
)->value
);
401 { /* Inline kernel#Int#- (var_i,var44) */
402 var47
= var_i
- var44
;
408 CONTINUE_label
: (void)0;
410 BREAK_label
: (void)0;
412 { /* Inline kernel#Int#< (var_i,var48) */
413 /* Covariant cast for argument 0 (i) <var48:Int> isa OTHER */
414 /* <var48:Int> isa OTHER */
415 var51
= 1; /* easy <var48:Int> isa OTHER*/
417 var_class_name54
= type_kernel__Int
.name
;
418 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name54
);
419 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
422 var55
= var_i
< var48
;
431 var56
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
433 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
434 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 83);
437 var57
= ((val
* (*)(val
*, long))(var56
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var56
, var_i
) /* [] on <var56:Array[Int]>*/;
438 var58
= ((struct instance_kernel__Int
*)var57
)->value
; /* autounbox from nullable Object to Int */;
440 { /* Inline kernel#Int#+ (var_i,var_j) */
441 var61
= var_i
+ var_j
;
446 var62
= ((val
* (*)(val
*, long))(var_s
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_s
, var59
) /* [] on <var_s:String>*/;
447 var64
= ((struct instance_kernel__Char
*)var62
)->value
; /* autounbox from nullable Object to Char */;
448 var63
= ((long (*)(val
*, char))(self
->class->vft
[COLOR_string_search__BM_Pattern__bc
]))(self
, var64
) /* bc on <self:BM_Pattern>*/;
449 { /* Inline kernel#Int#- (var63,var_m) */
450 var67
= var63
- var_m
;
456 { /* Inline kernel#Int#+ (var65,var68) */
457 var71
= var65
+ var68
;
462 { /* Inline kernel#Int#+ (var69,var_i) */
463 var74
= var69
+ var_i
;
469 { /* Inline kernel#Int#> (var_gs,var_bc) */
470 /* Covariant cast for argument 0 (i) <var_bc:Int> isa OTHER */
471 /* <var_bc:Int> isa OTHER */
472 var77
= 1; /* easy <var_bc:Int> isa OTHER*/
474 var_class_name80
= type_kernel__Int
.name
;
475 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name80
);
476 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
479 var81
= var_gs
> var_bc
;
485 { /* Inline kernel#Int#+ (var_j,var_gs) */
486 var84
= var_j
+ var_gs
;
493 { /* Inline kernel#Int#+ (var_j,var_bc) */
494 var87
= var_j
+ var_bc
;
502 CONTINUE_label88
: (void)0;
504 BREAK_label88
: (void)0;
506 { /* Inline kernel#Int#unary - (var89) */
517 /* method string_search#BM_Pattern#search_index_in for (self: Object, String, Int): Int */
518 long VIRTUAL_string_search__BM_Pattern__search_index_in(val
* self
, val
* p0
, long p1
) {
519 long var
/* : Int */;
520 long var1
/* : Int */;
521 var1
= string_search__BM_Pattern__search_index_in(self
, p0
, p1
);
526 /* method string_search#BM_Pattern#search_in for (self: BM_Pattern, String, Int): nullable Match */
527 val
* string_search__BM_Pattern__search_in(val
* self
, val
* p0
, long p1
) {
528 val
* var
/* : nullable Match */;
529 val
* var_s
/* var s: String */;
530 long var_from
/* var from: Int */;
531 long var1
/* : Int */;
532 long var_to
/* var to: Int */;
533 long var2
/* : Int */;
534 short int var3
/* : Bool */;
535 short int var5
/* : Bool */;
538 const char* var_class_name
;
539 short int var6
/* : Bool */;
540 val
* var7
/* : null */;
541 val
* var8
/* : Match */;
542 long var9
/* : Int */;
545 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>*/;
548 { /* Inline kernel#Int#< (var_to,var2) */
549 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
550 /* <var2:Int> isa OTHER */
551 var5
= 1; /* easy <var2:Int> isa OTHER*/
553 var_class_name
= type_kernel__Int
.name
;
554 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
555 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
558 var6
= var_to
< var2
;
568 var8
= NEW_string_search__Match(&type_string_search__Match
);
569 var9
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
570 ((void (*)(val
*, val
*, long, long))(var8
->class->vft
[COLOR_string_search__Match__init
]))(var8
, var_s
, var_to
, var9
) /* init on <var8:Match>*/;
571 CHECK_NEW_string_search__Match(var8
);
578 /* method string_search#BM_Pattern#search_in for (self: Object, String, Int): nullable Match */
579 val
* VIRTUAL_string_search__BM_Pattern__search_in(val
* self
, val
* p0
, long p1
) {
580 val
* var
/* : nullable Match */;
581 val
* var1
/* : nullable Match */;
582 var1
= string_search__BM_Pattern__search_in(self
, p0
, p1
);
587 /* method string_search#BM_Pattern#init for (self: BM_Pattern, String) */
588 void string_search__BM_Pattern__init(val
* self
, val
* p0
) {
589 val
* var_motif
/* var motif: String */;
590 long var
/* : Int */;
591 val
* var1
/* : Array[Int] */;
592 long var2
/* : Int */;
593 val
* var3
/* : ArrayMap[Char, Int] */;
595 self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
= var_motif
; /* _motif on <self:BM_Pattern> */
596 var
= ((long (*)(val
*))(var_motif
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_motif
) /* length on <var_motif:String>*/;
597 self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
= var
; /* _length on <self:BM_Pattern> */
598 var1
= NEW_array__Array(&type_array__Arraykernel__Int
);
599 var2
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
600 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Int]>*/;
601 CHECK_NEW_array__Array(var1
);
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 CHECK_NEW_array__ArrayMap(var3
);
606 self
->attrs
[COLOR_string_search__BM_Pattern___bc_table
].val
= var3
; /* _bc_table on <self:BM_Pattern> */
607 ((void (*)(val
*))(self
->class->vft
[COLOR_string_search__BM_Pattern__compute_gs
]))(self
) /* compute_gs on <self:BM_Pattern>*/;
608 ((void (*)(val
*))(self
->class->vft
[COLOR_string_search__BM_Pattern__compute_bc
]))(self
) /* compute_bc on <self:BM_Pattern>*/;
611 /* method string_search#BM_Pattern#init for (self: Object, String) */
612 void VIRTUAL_string_search__BM_Pattern__init(val
* self
, val
* p0
) {
613 string_search__BM_Pattern__init(self
, p0
);
616 /* method string_search#BM_Pattern#bc for (self: BM_Pattern, Char): Int */
617 long string_search__BM_Pattern__bc(val
* self
, char p0
) {
618 long var
/* : Int */;
619 char var_e
/* var e: Char */;
620 val
* var1
/* : Map[Char, Int] */;
621 short int var2
/* : Bool */;
622 val
* var3
/* : Object */;
623 val
* var4
/* : Map[Char, Int] */;
624 val
* var5
/* : nullable Object */;
625 val
* var6
/* : Object */;
626 long var7
/* : Int */;
627 long var8
/* : Int */;
629 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___bc_table
].val
; /* _bc_table on <self:BM_Pattern> */
631 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _bc_table");
632 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 126);
635 var3
= BOX_kernel__Char(var_e
); /* autobox from Char to Object */
636 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var3
) /* has_key on <var1:Map[Char, Int]>*/;
638 var4
= self
->attrs
[COLOR_string_search__BM_Pattern___bc_table
].val
; /* _bc_table on <self:BM_Pattern> */
640 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _bc_table");
641 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 127);
644 var6
= BOX_kernel__Char(var_e
); /* autobox from Char to Object */
645 var5
= ((val
* (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var4
, var6
) /* [] on <var4:Map[Char, Int]>*/;
646 var7
= ((struct instance_kernel__Int
*)var5
)->value
; /* autounbox from nullable Object to Int */;
650 var8
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
657 /* method string_search#BM_Pattern#bc for (self: Object, Char): Int */
658 long VIRTUAL_string_search__BM_Pattern__bc(val
* self
, char p0
) {
659 long var
/* : Int */;
660 long var1
/* : Int */;
661 var1
= string_search__BM_Pattern__bc(self
, p0
);
666 /* method string_search#BM_Pattern#compute_bc for (self: BM_Pattern) */
667 void string_search__BM_Pattern__compute_bc(val
* self
) {
668 val
* var
/* : String */;
669 val
* var_x
/* var x: String */;
670 long var1
/* : Int */;
671 long var_m
/* var m: Int */;
672 long var2
/* : Int */;
673 long var_i
/* var i: Int */;
674 long var3
/* : Int */;
675 long var4
/* : Int */;
676 long var6
/* : Int */;
677 short int var7
/* : Bool */;
678 short int var9
/* : Bool */;
681 const char* var_class_name
;
682 short int var10
/* : Bool */;
683 val
* var11
/* : Map[Char, Int] */;
684 val
* var12
/* : nullable Object */;
685 long var13
/* : Int */;
686 long var15
/* : Int */;
687 long var16
/* : Int */;
688 long var17
/* : Int */;
689 long var19
/* : Int */;
690 val
* var20
/* : nullable Object */;
691 long var21
/* : Int */;
692 long var22
/* : Int */;
693 long var24
/* : 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", 261);
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
*, long))(var_x
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_x
, var_i
) /* [] on <var_x:String>*/;
736 { /* Inline kernel#Int#- (var_m,var_i) */
737 var15
= var_m
- var_i
;
743 { /* Inline kernel#Int#- (var13,var16) */
744 var19
= var13
- var16
;
749 var20
= BOX_kernel__Int(var17
); /* autobox from Int to nullable Object */
750 ((void (*)(val
*, val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var11
, var12
, var20
) /* []= on <var11:Map[Char, Int]>*/;
752 { /* Inline kernel#Int#+ (var_i,var21) */
753 var24
= var_i
+ var21
;
759 CONTINUE_label
: (void)0;
761 BREAK_label
: (void)0;
764 /* method string_search#BM_Pattern#compute_bc for (self: Object) */
765 void VIRTUAL_string_search__BM_Pattern__compute_bc(val
* self
) {
766 string_search__BM_Pattern__compute_bc(self
);
769 /* method string_search#BM_Pattern#suffixes for (self: BM_Pattern): Array[Int] */
770 val
* string_search__BM_Pattern__suffixes(val
* self
) {
771 val
* var
/* : Array[Int] */;
772 val
* var1
/* : String */;
773 val
* var_x
/* var x: String */;
774 long var2
/* : Int */;
775 long var_m
/* var m: Int */;
776 val
* var3
/* : Array[Int] */;
777 val
* var4
/* : nullable Object */;
778 val
* var_suff
/* var suff: Array[Int] */;
779 long var5
/* : Int */;
780 long var_f
/* var f: Int */;
781 long var6
/* : Int */;
782 long var7
/* : Int */;
783 long var9
/* : Int */;
784 long var_g
/* var g: Int */;
785 long var10
/* : Int */;
786 long var11
/* : Int */;
787 long var13
/* : Int */;
788 long var_i
/* var i: Int */;
789 long var14
/* : Int */;
790 short int var15
/* : Bool */;
791 short int var17
/* : Bool */;
794 const char* var_class_name
;
795 short int var18
/* : Bool */;
796 short int var19
/* : Bool */;
797 short int var20
/* : Bool */;
798 short int var22
/* : Bool */;
801 const char* var_class_name25
;
802 short int var26
/* : Bool */;
803 short int var_
/* var : Bool */;
804 long var27
/* : Int */;
805 long var29
/* : Int */;
806 long var30
/* : Int */;
807 long var31
/* : Int */;
808 long var33
/* : Int */;
809 long var34
/* : Int */;
810 long var36
/* : Int */;
811 val
* var37
/* : nullable Object */;
812 long var38
/* : Int */;
813 long var40
/* : Int */;
814 short int var41
/* : Bool */;
815 short int var43
/* : Bool */;
818 const char* var_class_name46
;
819 long var47
/* : Int */;
820 short int var48
/* : Bool */;
821 long var49
/* : Int */;
822 long var51
/* : Int */;
823 long var52
/* : Int */;
824 long var53
/* : Int */;
825 long var55
/* : Int */;
826 long var56
/* : Int */;
827 long var58
/* : Int */;
828 val
* var59
/* : nullable Object */;
829 short int var60
/* : Bool */;
830 short int var62
/* : Bool */;
833 const char* var_class_name65
;
834 short int var66
/* : Bool */;
835 short int var67
/* : Bool */;
836 long var68
/* : Int */;
837 short int var69
/* : Bool */;
838 short int var71
/* : Bool */;
841 const char* var_class_name74
;
842 short int var75
/* : Bool */;
843 short int var_76
/* var : Bool */;
844 val
* var77
/* : nullable Object */;
845 long var78
/* : Int */;
846 long var80
/* : Int */;
847 long var81
/* : Int */;
848 long var82
/* : Int */;
849 long var84
/* : Int */;
850 long var85
/* : Int */;
851 long var87
/* : Int */;
852 val
* var88
/* : nullable Object */;
853 short int var89
/* : Bool */;
854 short int var91
/* : Bool */;
855 long var92
/* : Int */;
856 long var93
/* : Int */;
857 long var95
/* : Int */;
858 long var96
/* : Int */;
859 long var98
/* : Int */;
860 val
* var99
/* : nullable Object */;
861 long var100
/* : Int */;
862 long var101
/* : Int */;
863 long var103
/* : Int */;
864 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
866 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
867 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 152);
871 var2
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
873 var3
= NEW_array__Array(&type_array__Arraykernel__Int
);
874 var4
= BOX_kernel__Int(var_m
); /* autobox from Int to nullable Object */
875 ((void (*)(val
*, val
*, long))(var3
->class->vft
[COLOR_array__Array__filled_with
]))(var3
, var4
, var_m
) /* filled_with on <var3:Array[Int]>*/;
876 CHECK_NEW_array__Array(var3
);
881 { /* Inline kernel#Int#- (var_m,var6) */
889 { /* Inline kernel#Int#- (var_m,var10) */
890 var13
= var_m
- var10
;
898 { /* Inline kernel#Int#>= (var_i,var14) */
899 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
900 /* <var14:Int> isa OTHER */
901 var17
= 1; /* easy <var14:Int> isa OTHER*/
903 var_class_name
= type_kernel__Int
.name
;
904 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
905 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
908 var18
= var_i
>= var14
;
914 { /* Inline kernel#Int#> (var_i,var_g) */
915 /* Covariant cast for argument 0 (i) <var_g:Int> isa OTHER */
916 /* <var_g:Int> isa OTHER */
917 var22
= 1; /* easy <var_g:Int> isa OTHER*/
919 var_class_name25
= type_kernel__Int
.name
;
920 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25
);
921 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
924 var26
= var_i
> var_g
;
931 { /* Inline kernel#Int#+ (var_i,var_m) */
932 var29
= var_i
+ var_m
;
938 { /* Inline kernel#Int#- (var27,var30) */
939 var33
= var27
- var30
;
944 { /* Inline kernel#Int#- (var31,var_f) */
945 var36
= var31
- var_f
;
950 var37
= ((val
* (*)(val
*, long))(var_suff
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_suff
, var34
) /* [] on <var_suff:Array[Int]>*/;
951 { /* Inline kernel#Int#- (var_i,var_g) */
952 var40
= var_i
- var_g
;
957 { /* Inline kernel#Int#< (var37,var38) */
958 /* Covariant cast for argument 0 (i) <var38:Int> isa OTHER */
959 /* <var38:Int> isa OTHER */
960 var43
= 1; /* easy <var38:Int> isa OTHER*/
962 var_class_name46
= type_kernel__Int
.name
;
963 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46
);
964 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
967 var47
= ((struct instance_kernel__Int
*)var37
)->value
; /* autounbox from nullable Object to Int */;
968 var48
= var47
< var38
;
978 { /* Inline kernel#Int#+ (var_i,var_m) */
979 var51
= var_i
+ var_m
;
985 { /* Inline kernel#Int#- (var49,var52) */
986 var55
= var49
- var52
;
991 { /* Inline kernel#Int#- (var53,var_f) */
992 var58
= var53
- var_f
;
997 var59
= ((val
* (*)(val
*, long))(var_suff
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_suff
, var56
) /* [] on <var_suff:Array[Int]>*/;
998 ((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]>*/;
1000 { /* Inline kernel#Int#< (var_i,var_g) */
1001 /* Covariant cast for argument 0 (i) <var_g:Int> isa OTHER */
1002 /* <var_g:Int> isa OTHER */
1003 var62
= 1; /* easy <var_g:Int> isa OTHER*/
1005 var_class_name65
= type_kernel__Int
.name
;
1006 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65
);
1007 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1010 var66
= var_i
< var_g
;
1013 RET_LABEL61
:(void)0;
1022 { /* Inline kernel#Int#>= (var_g,var68) */
1023 /* Covariant cast for argument 0 (i) <var68:Int> isa OTHER */
1024 /* <var68:Int> isa OTHER */
1025 var71
= 1; /* easy <var68:Int> isa OTHER*/
1027 var_class_name74
= type_kernel__Int
.name
;
1028 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name74
);
1029 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
1032 var75
= var_g
>= var68
;
1035 RET_LABEL70
:(void)0;
1039 var77
= ((val
* (*)(val
*, long))(var_x
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_x
, var_g
) /* [] on <var_x:String>*/;
1040 { /* Inline kernel#Int#+ (var_g,var_m) */
1041 var80
= var_g
+ var_m
;
1044 RET_LABEL79
:(void)0;
1047 { /* Inline kernel#Int#- (var78,var81) */
1048 var84
= var78
- var81
;
1051 RET_LABEL83
:(void)0;
1053 { /* Inline kernel#Int#- (var82,var_f) */
1054 var87
= var82
- var_f
;
1057 RET_LABEL86
:(void)0;
1059 var88
= ((val
* (*)(val
*, long))(var_x
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_x
, var85
) /* [] on <var_x:String>*/;
1060 { /* Inline kernel#Char#== (var77,var88) */
1061 var91
= var77
== var88
|| (((struct instance_kernel__Char
*)var77
)->value
== ((struct instance_kernel__Char
*)var88
)->value
);
1064 RET_LABEL90
:(void)0;
1072 { /* Inline kernel#Int#- (var_g,var92) */
1073 var95
= var_g
- var92
;
1076 RET_LABEL94
:(void)0;
1079 CONTINUE_label
: (void)0;
1081 BREAK_label
: (void)0;
1082 { /* Inline kernel#Int#- (var_f,var_g) */
1083 var98
= var_f
- var_g
;
1086 RET_LABEL97
:(void)0;
1088 var99
= BOX_kernel__Int(var96
); /* autobox from Int to nullable Object */
1089 ((void (*)(val
*, long, val
*))(var_suff
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_suff
, var_i
, var99
) /* []= on <var_suff:Array[Int]>*/;
1092 { /* Inline kernel#Int#- (var_i,var100) */
1093 var103
= var_i
- var100
;
1096 RET_LABEL102
:(void)0;
1099 CONTINUE_label104
: (void)0;
1101 BREAK_label104
: (void)0;
1107 /* method string_search#BM_Pattern#suffixes for (self: Object): Array[Int] */
1108 val
* VIRTUAL_string_search__BM_Pattern__suffixes(val
* self
) {
1109 val
* var
/* : Array[Int] */;
1110 val
* var1
/* : Array[Int] */;
1111 var1
= string_search__BM_Pattern__suffixes(self
);
1116 /* method string_search#BM_Pattern#compute_gs for (self: BM_Pattern) */
1117 void string_search__BM_Pattern__compute_gs(val
* self
) {
1118 val
* var
/* : String */;
1119 val
* var_x
/* var x: String */;
1120 long var1
/* : Int */;
1121 long var_m
/* var m: Int */;
1122 val
* var2
/* : Array[Int] */;
1123 val
* var_suff
/* var suff: Array[Int] */;
1124 long var3
/* : Int */;
1125 long var_i
/* var i: Int */;
1126 short int var4
/* : Bool */;
1127 short int var6
/* : Bool */;
1130 const char* var_class_name
;
1131 short int var7
/* : Bool */;
1132 val
* var8
/* : Array[Int] */;
1133 val
* var9
/* : nullable Object */;
1134 long var10
/* : Int */;
1135 long var11
/* : Int */;
1136 long var13
/* : Int */;
1137 long var14
/* : Int */;
1138 long var_j
/* var j: Int */;
1139 long var15
/* : Int */;
1140 long var16
/* : Int */;
1141 long var18
/* : Int */;
1142 long var19
/* : Int */;
1143 long var20
/* : Int */;
1144 long var22
/* : Int */;
1145 short int var23
/* : Bool */;
1146 short int var25
/* : Bool */;
1149 const char* var_class_name28
;
1150 short int var29
/* : Bool */;
1151 short int var30
/* : Bool */;
1152 long var31
/* : Int */;
1153 long var32
/* : Int */;
1154 long var34
/* : Int */;
1155 short int var35
/* : Bool */;
1156 short int var37
/* : Bool */;
1157 short int var_
/* var : Bool */;
1158 val
* var38
/* : nullable Object */;
1159 long var39
/* : Int */;
1160 long var40
/* : Int */;
1161 long var42
/* : Int */;
1162 short int var43
/* : Bool */;
1163 short int var45
/* : Bool */;
1164 long var46
/* : Int */;
1165 long var47
/* : Int */;
1166 long var48
/* : Int */;
1167 long var50
/* : Int */;
1168 long var51
/* : Int */;
1169 long var53
/* : Int */;
1170 short int var54
/* : Bool */;
1171 short int var56
/* : Bool */;
1174 const char* var_class_name59
;
1175 short int var60
/* : Bool */;
1176 val
* var61
/* : Array[Int] */;
1177 val
* var62
/* : nullable Object */;
1178 short int var63
/* : Bool */;
1179 short int var65
/* : Bool */;
1180 long var66
/* : Int */;
1181 val
* var67
/* : Array[Int] */;
1182 long var68
/* : Int */;
1183 long var69
/* : Int */;
1184 long var71
/* : Int */;
1185 long var72
/* : Int */;
1186 long var74
/* : Int */;
1187 val
* var75
/* : nullable Object */;
1188 long var76
/* : Int */;
1189 long var77
/* : Int */;
1190 long var79
/* : Int */;
1191 long var81
/* : Int */;
1192 long var82
/* : Int */;
1193 long var84
/* : Int */;
1194 long var86
/* : Int */;
1195 long var87
/* : Int */;
1196 long var88
/* : Int */;
1197 long var90
/* : Int */;
1198 short int var91
/* : Bool */;
1199 short int var93
/* : Bool */;
1202 const char* var_class_name96
;
1203 short int var97
/* : Bool */;
1204 val
* var98
/* : Array[Int] */;
1205 long var99
/* : Int */;
1206 long var100
/* : Int */;
1207 long var102
/* : Int */;
1208 val
* var103
/* : nullable Object */;
1209 long var104
/* : Int */;
1210 long var106
/* : Int */;
1211 long var107
/* : Int */;
1212 long var108
/* : Int */;
1213 long var109
/* : Int */;
1214 long var111
/* : Int */;
1215 long var112
/* : Int */;
1216 long var114
/* : Int */;
1217 val
* var115
/* : nullable Object */;
1218 long var116
/* : Int */;
1219 long var117
/* : Int */;
1220 long var119
/* : Int */;
1221 var
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
1223 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
1224 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 175);
1228 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
1230 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_string_search__BM_Pattern__suffixes
]))(self
) /* suffixes on <self:BM_Pattern>*/;
1235 { /* Inline kernel#Int#< (var_i,var_m) */
1236 /* Covariant cast for argument 0 (i) <var_m:Int> isa OTHER */
1237 /* <var_m:Int> isa OTHER */
1238 var6
= 1; /* easy <var_m:Int> isa OTHER*/
1240 var_class_name
= type_kernel__Int
.name
;
1241 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1242 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1245 var7
= var_i
< var_m
;
1251 var8
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
1253 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
1254 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 180);
1257 var9
= BOX_kernel__Int(var_m
); /* autobox from Int to nullable Object */
1258 ((void (*)(val
*, long, val
*))(var8
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var8
, var_i
, var9
) /* []= on <var8:Array[Int]>*/;
1260 { /* Inline kernel#Int#+ (var_i,var10) */
1261 var13
= var_i
+ var10
;
1264 RET_LABEL12
:(void)0;
1267 CONTINUE_label
: (void)0;
1269 BREAK_label
: (void)0;
1273 { /* Inline kernel#Int#- (var_m,var15) */
1274 var18
= var_m
- var15
;
1277 RET_LABEL17
:(void)0;
1282 { /* Inline kernel#Int#unary - (var19) */
1286 RET_LABEL21
:(void)0;
1288 { /* Inline kernel#Int#>= (var_i,var20) */
1289 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
1290 /* <var20:Int> isa OTHER */
1291 var25
= 1; /* easy <var20:Int> isa OTHER*/
1293 var_class_name28
= type_kernel__Int
.name
;
1294 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28
);
1295 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
1298 var29
= var_i
>= var20
;
1301 RET_LABEL24
:(void)0;
1305 { /* Inline kernel#Int#unary - (var31) */
1309 RET_LABEL33
:(void)0;
1311 { /* Inline kernel#Int#== (var_i,var32) */
1312 var37
= var_i
== var32
;
1315 RET_LABEL36
:(void)0;
1321 var38
= ((val
* (*)(val
*, long))(var_suff
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_suff
, var_i
) /* [] on <var_suff:Array[Int]>*/;
1323 { /* Inline kernel#Int#+ (var_i,var39) */
1324 var42
= var_i
+ var39
;
1327 RET_LABEL41
:(void)0;
1329 { /* Inline kernel#Int#== (var38,var40) */
1330 var45
= (var38
!= NULL
) && (var38
->class == &class_kernel__Int
);
1332 var46
= ((struct instance_kernel__Int
*)var38
)->value
; /* autounbox from nullable Object to Int */;
1333 var45
= (var46
== var40
);
1337 RET_LABEL44
:(void)0;
1344 { /* Inline kernel#Int#- (var_m,var47) */
1345 var50
= var_m
- var47
;
1348 RET_LABEL49
:(void)0;
1350 { /* Inline kernel#Int#- (var48,var_i) */
1351 var53
= var48
- var_i
;
1354 RET_LABEL52
:(void)0;
1356 { /* Inline kernel#Int#< (var_j,var51) */
1357 /* Covariant cast for argument 0 (i) <var51:Int> isa OTHER */
1358 /* <var51:Int> isa OTHER */
1359 var56
= 1; /* easy <var51:Int> isa OTHER*/
1361 var_class_name59
= type_kernel__Int
.name
;
1362 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59
);
1363 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1366 var60
= var_j
< var51
;
1369 RET_LABEL55
:(void)0;
1372 var61
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
1373 if (var61
== NULL
) {
1374 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
1375 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 188);
1378 var62
= ((val
* (*)(val
*, long))(var61
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var61
, var_j
) /* [] on <var61:Array[Int]>*/;
1379 { /* Inline kernel#Int#== (var62,var_m) */
1380 var65
= (var62
!= NULL
) && (var62
->class == &class_kernel__Int
);
1382 var66
= ((struct instance_kernel__Int
*)var62
)->value
; /* autounbox from nullable Object to Int */;
1383 var65
= (var66
== var_m
);
1387 RET_LABEL64
:(void)0;
1390 var67
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
1391 if (var67
== NULL
) {
1392 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
1393 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 188);
1397 { /* Inline kernel#Int#- (var_m,var68) */
1398 var71
= var_m
- var68
;
1401 RET_LABEL70
:(void)0;
1403 { /* Inline kernel#Int#- (var69,var_i) */
1404 var74
= var69
- var_i
;
1407 RET_LABEL73
:(void)0;
1409 var75
= BOX_kernel__Int(var72
); /* autobox from Int to nullable Object */
1410 ((void (*)(val
*, long, val
*))(var67
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var67
, var_j
, var75
) /* []= on <var67:Array[Int]>*/;
1414 { /* Inline kernel#Int#+ (var_j,var76) */
1415 var79
= var_j
+ var76
;
1418 RET_LABEL78
:(void)0;
1421 CONTINUE_label80
: (void)0;
1423 BREAK_label80
: (void)0;
1427 { /* Inline kernel#Int#- (var_i,var81) */
1428 var84
= var_i
- var81
;
1431 RET_LABEL83
:(void)0;
1434 CONTINUE_label85
: (void)0;
1436 BREAK_label85
: (void)0;
1441 { /* Inline kernel#Int#- (var_m,var87) */
1442 var90
= var_m
- var87
;
1445 RET_LABEL89
:(void)0;
1447 { /* Inline kernel#Int#< (var_i,var88) */
1448 /* Covariant cast for argument 0 (i) <var88:Int> isa OTHER */
1449 /* <var88:Int> isa OTHER */
1450 var93
= 1; /* easy <var88:Int> isa OTHER*/
1452 var_class_name96
= type_kernel__Int
.name
;
1453 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name96
);
1454 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1457 var97
= var_i
< var88
;
1460 RET_LABEL92
:(void)0;
1463 var98
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
1464 if (var98
== NULL
) {
1465 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
1466 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 196);
1470 { /* Inline kernel#Int#- (var_m,var99) */
1471 var102
= var_m
- var99
;
1474 RET_LABEL101
:(void)0;
1476 var103
= ((val
* (*)(val
*, long))(var_suff
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_suff
, var_i
) /* [] on <var_suff:Array[Int]>*/;
1477 { /* Inline kernel#Int#- (var100,var103) */
1478 var106
= ((struct instance_kernel__Int
*)var103
)->value
; /* autounbox from nullable Object to Int */;
1479 var107
= var100
- var106
;
1482 RET_LABEL105
:(void)0;
1485 { /* Inline kernel#Int#- (var_m,var108) */
1486 var111
= var_m
- var108
;
1489 RET_LABEL110
:(void)0;
1491 { /* Inline kernel#Int#- (var109,var_i) */
1492 var114
= var109
- var_i
;
1495 RET_LABEL113
:(void)0;
1497 var115
= BOX_kernel__Int(var112
); /* autobox from Int to nullable Object */
1498 ((void (*)(val
*, long, val
*))(var98
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var98
, var104
, var115
) /* []= on <var98:Array[Int]>*/;
1500 { /* Inline kernel#Int#+ (var_i,var116) */
1501 var119
= var_i
+ var116
;
1504 RET_LABEL118
:(void)0;
1507 CONTINUE_label120
: (void)0;
1509 BREAK_label120
: (void)0;
1512 /* method string_search#BM_Pattern#compute_gs for (self: Object) */
1513 void VIRTUAL_string_search__BM_Pattern__compute_gs(val
* self
) {
1514 string_search__BM_Pattern__compute_gs(self
);
1517 /* method string_search#BM_Pattern#hash for (self: BM_Pattern): Int */
1518 long string_search__BM_Pattern__hash(val
* self
) {
1519 long var
/* : Int */;
1520 val
* var1
/* : String */;
1521 long var2
/* : Int */;
1522 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
1524 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
1525 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 201);
1528 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__hash
]))(var1
) /* hash on <var1:String>*/;
1534 /* method string_search#BM_Pattern#hash for (self: Object): Int */
1535 long VIRTUAL_string_search__BM_Pattern__hash(val
* self
) {
1536 long var
/* : Int */;
1537 long var1
/* : Int */;
1538 var1
= string_search__BM_Pattern__hash(self
);
1543 /* method string_search#BM_Pattern#== for (self: BM_Pattern, nullable Object): Bool */
1544 short int string_search__BM_Pattern___61d_61d(val
* self
, val
* p0
) {
1545 short int var
/* : Bool */;
1546 val
* var_o
/* var o: nullable Object */;
1547 short int var1
/* : Bool */;
1548 short int var2
/* : Bool */;
1551 short int var_
/* var : Bool */;
1552 val
* var3
/* : String */;
1553 val
* var4
/* : String */;
1554 short int var5
/* : Bool */;
1556 /* <var_o:nullable Object> isa BM_Pattern */
1557 cltype
= type_string_search__BM_Pattern
.color
;
1558 idtype
= type_string_search__BM_Pattern
.id
;
1562 if(cltype
>= var_o
->type
->table_size
) {
1565 var2
= var_o
->type
->type_table
[cltype
] == idtype
;
1570 var3
= var_o
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <var_o:nullable Object(BM_Pattern)> */
1572 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
1573 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 202);
1576 var4
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
1578 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
1579 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 202);
1582 var5
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var3
, var4
) /* == on <var3:String>*/;
1592 /* method string_search#BM_Pattern#== for (self: Object, nullable Object): Bool */
1593 short int VIRTUAL_string_search__BM_Pattern___61d_61d(val
* self
, val
* p0
) {
1594 short int var
/* : Bool */;
1595 short int var1
/* : Bool */;
1596 var1
= string_search__BM_Pattern___61d_61d(self
, p0
);
1601 /* method string_search#Match#string for (self: Match): String */
1602 val
* string_search__Match__string(val
* self
) {
1603 val
* var
/* : String */;
1604 val
* var1
/* : String */;
1605 var1
= self
->attrs
[COLOR_string_search__Match___string
].val
; /* _string on <self:Match> */
1607 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _string");
1608 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 207);
1615 /* method string_search#Match#string for (self: Object): String */
1616 val
* VIRTUAL_string_search__Match__string(val
* self
) {
1617 val
* var
/* : String */;
1618 val
* var1
/* : String */;
1619 var1
= string_search__Match__string(self
);
1624 /* method string_search#Match#from for (self: Match): Int */
1625 long string_search__Match__from(val
* self
) {
1626 long var
/* : Int */;
1627 long var1
/* : Int */;
1628 var1
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
1633 /* method string_search#Match#from for (self: Object): Int */
1634 long VIRTUAL_string_search__Match__from(val
* self
) {
1635 long var
/* : Int */;
1636 long var1
/* : Int */;
1637 var1
= string_search__Match__from(self
);
1642 /* method string_search#Match#length for (self: Match): Int */
1643 long string_search__Match__length(val
* self
) {
1644 long var
/* : Int */;
1645 long var1
/* : Int */;
1646 var1
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
1651 /* method string_search#Match#length for (self: Object): Int */
1652 long VIRTUAL_string_search__Match__length(val
* self
) {
1653 long var
/* : Int */;
1654 long var1
/* : Int */;
1655 var1
= string_search__Match__length(self
);
1660 /* method string_search#Match#after for (self: Match): Int */
1661 long string_search__Match__after(val
* self
) {
1662 long var
/* : Int */;
1663 long var1
/* : Int */;
1664 long var2
/* : Int */;
1665 long var3
/* : Int */;
1666 long var5
/* : Int */;
1667 var1
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
1668 var2
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
1669 { /* Inline kernel#Int#+ (var1,var2) */
1680 /* method string_search#Match#after for (self: Object): Int */
1681 long VIRTUAL_string_search__Match__after(val
* self
) {
1682 long var
/* : Int */;
1683 long var1
/* : Int */;
1684 var1
= string_search__Match__after(self
);
1689 /* method string_search#Match#to_s for (self: Match): String */
1690 val
* string_search__Match__to_s(val
* self
) {
1691 val
* var
/* : String */;
1692 val
* var1
/* : String */;
1693 long var2
/* : Int */;
1694 long var3
/* : Int */;
1695 val
* var4
/* : String */;
1696 var1
= self
->attrs
[COLOR_string_search__Match___string
].val
; /* _string on <self:Match> */
1698 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _string");
1699 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 221);
1702 var2
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
1703 var3
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
1704 var4
= ((val
* (*)(val
*, long, long))(var1
->class->vft
[COLOR_string__AbstractString__substring
]))(var1
, var2
, var3
) /* substring on <var1:String>*/;
1710 /* method string_search#Match#to_s for (self: Object): String */
1711 val
* VIRTUAL_string_search__Match__to_s(val
* self
) {
1712 val
* var
/* : String */;
1713 val
* var1
/* : String */;
1714 var1
= string_search__Match__to_s(self
);
1719 /* method string_search#Match#init for (self: Match, String, Int, Int) */
1720 void string_search__Match__init(val
* self
, val
* p0
, long p1
, long p2
) {
1721 val
* var_s
/* var s: String */;
1722 long var_f
/* var f: Int */;
1723 long var_len
/* var len: Int */;
1724 long var
/* : Int */;
1725 short int var1
/* : Bool */;
1726 short int var3
/* : Bool */;
1729 const char* var_class_name
;
1730 short int var4
/* : Bool */;
1731 long var5
/* : Int */;
1732 short int var6
/* : Bool */;
1733 short int var8
/* : Bool */;
1736 const char* var_class_name11
;
1737 short int var12
/* : Bool */;
1738 long var13
/* : Int */;
1739 long var15
/* : Int */;
1740 long var16
/* : Int */;
1741 short int var17
/* : Bool */;
1742 short int var19
/* : Bool */;
1745 const char* var_class_name22
;
1746 short int var23
/* : Bool */;
1751 { /* Inline kernel#Int#>= (var_len,var) */
1752 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
1753 /* <var:Int> isa OTHER */
1754 var3
= 1; /* easy <var:Int> isa OTHER*/
1756 var_class_name
= type_kernel__Int
.name
;
1757 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1758 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
1761 var4
= var_len
>= var
;
1767 fprintf(stderr
, "Runtime error: %s", "Assert \'positive_length\' failed");
1768 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 226);
1772 { /* Inline kernel#Int#>= (var_f,var5) */
1773 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
1774 /* <var5:Int> isa OTHER */
1775 var8
= 1; /* easy <var5:Int> isa OTHER*/
1777 var_class_name11
= type_kernel__Int
.name
;
1778 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11
);
1779 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
1782 var12
= var_f
>= var5
;
1788 fprintf(stderr
, "Runtime error: %s", "Assert \'valid_from\' failed");
1789 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 227);
1792 { /* Inline kernel#Int#+ (var_f,var_len) */
1793 var15
= var_f
+ var_len
;
1796 RET_LABEL14
:(void)0;
1798 var16
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
1799 { /* Inline kernel#Int#<= (var13,var16) */
1800 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
1801 /* <var16:Int> isa OTHER */
1802 var19
= 1; /* easy <var16:Int> isa OTHER*/
1804 var_class_name22
= type_kernel__Int
.name
;
1805 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22
);
1806 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
1809 var23
= var13
<= var16
;
1812 RET_LABEL18
:(void)0;
1815 fprintf(stderr
, "Runtime error: %s", "Assert \'valid_after\' failed");
1816 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 228);
1819 self
->attrs
[COLOR_string_search__Match___string
].val
= var_s
; /* _string on <self:Match> */
1820 self
->attrs
[COLOR_string_search__Match___from
].l
= var_f
; /* _from on <self:Match> */
1821 self
->attrs
[COLOR_string_search__Match___length
].l
= var_len
; /* _length on <self:Match> */
1824 /* method string_search#Match#init for (self: Object, String, Int, Int) */
1825 void VIRTUAL_string_search__Match__init(val
* self
, val
* p0
, long p1
, long p2
) {
1826 string_search__Match__init(self
, p0
, p1
, p2
);
1829 /* method string_search#Char#search_index_in for (self: Char, String, Int): Int */
1830 long string_search__Char__search_index_in(char self
, val
* p0
, long p1
) {
1831 long var
/* : Int */;
1832 val
* var_s
/* var s: String */;
1833 long var_from
/* var from: Int */;
1834 long var1
/* : Int */;
1835 long var_stop
/* var stop: Int */;
1836 short int var2
/* : Bool */;
1837 short int var4
/* : Bool */;
1840 const char* var_class_name
;
1841 short int var5
/* : Bool */;
1842 val
* var6
/* : nullable Object */;
1843 short int var7
/* : Bool */;
1844 short int var9
/* : Bool */;
1845 char var10
/* : Char */;
1846 long var11
/* : Int */;
1847 long var12
/* : Int */;
1848 long var14
/* : Int */;
1849 long var15
/* : Int */;
1850 long var16
/* : Int */;
1851 long var18
/* : Int */;
1854 var1
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
1857 { /* Inline kernel#Int#< (var_from,var_stop) */
1858 /* Covariant cast for argument 0 (i) <var_stop:Int> isa OTHER */
1859 /* <var_stop:Int> isa OTHER */
1860 var4
= 1; /* easy <var_stop:Int> isa OTHER*/
1862 var_class_name
= type_kernel__Int
.name
;
1863 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1864 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1867 var5
= var_from
< var_stop
;
1873 var6
= ((val
* (*)(val
*, long))(var_s
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_s
, var_from
) /* [] on <var_s:String>*/;
1874 { /* Inline kernel#Char#== (var6,self) */
1875 var9
= (var6
!= NULL
) && (var6
->class == &class_kernel__Char
);
1877 var10
= ((struct instance_kernel__Char
*)var6
)->value
; /* autounbox from nullable Object to Char */;
1878 var9
= (var10
== self
);
1890 { /* Inline kernel#Int#+ (var_from,var11) */
1891 var14
= var_from
+ var11
;
1894 RET_LABEL13
:(void)0;
1897 CONTINUE_label
: (void)0;
1899 BREAK_label
: (void)0;
1901 { /* Inline kernel#Int#unary - (var15) */
1905 RET_LABEL17
:(void)0;
1912 /* method string_search#Char#search_index_in for (self: Object, String, Int): Int */
1913 long VIRTUAL_string_search__Char__search_index_in(val
* self
, val
* p0
, long p1
) {
1914 long var
/* : Int */;
1915 long var1
/* : Int */;
1916 char var2
/* : Char */;
1917 var2
= ((struct instance_kernel__Char
*)self
)->value
; /* autounbox from Object to Char */;
1918 var1
= string_search__Char__search_index_in(var2
, p0
, p1
);
1923 /* method string_search#Char#search_in for (self: Char, String, Int): nullable Match */
1924 val
* string_search__Char__search_in(char self
, val
* p0
, long p1
) {
1925 val
* var
/* : nullable Match */;
1926 val
* var_s
/* var s: String */;
1927 long var_from
/* var from: Int */;
1928 long var1
/* : Int */;
1929 long var_pos
/* var pos: Int */;
1930 long var2
/* : Int */;
1931 short int var3
/* : Bool */;
1932 short int var5
/* : Bool */;
1935 const char* var_class_name
;
1936 short int var6
/* : Bool */;
1937 val
* var7
/* : null */;
1938 val
* var8
/* : Match */;
1939 long var9
/* : Int */;
1942 var1
= string_search__Char__search_index_in(self
, var_s
, var_from
);
1945 { /* Inline kernel#Int#< (var_pos,var2) */
1946 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
1947 /* <var2:Int> isa OTHER */
1948 var5
= 1; /* easy <var2:Int> isa OTHER*/
1950 var_class_name
= type_kernel__Int
.name
;
1951 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1952 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1955 var6
= var_pos
< var2
;
1965 var8
= NEW_string_search__Match(&type_string_search__Match
);
1967 ((void (*)(val
*, val
*, long, long))(var8
->class->vft
[COLOR_string_search__Match__init
]))(var8
, var_s
, var_pos
, var9
) /* init on <var8:Match>*/;
1968 CHECK_NEW_string_search__Match(var8
);
1975 /* method string_search#Char#search_in for (self: Object, String, Int): nullable Match */
1976 val
* VIRTUAL_string_search__Char__search_in(val
* self
, val
* p0
, long p1
) {
1977 val
* var
/* : nullable Match */;
1978 val
* var1
/* : nullable Match */;
1979 char var2
/* : Char */;
1980 var2
= ((struct instance_kernel__Char
*)self
)->value
; /* autounbox from Object to Char */;
1981 var1
= string_search__Char__search_in(var2
, p0
, p1
);
1986 /* method string_search#String#search_index_in for (self: String, String, Int): Int */
1987 long string_search__String__search_index_in(val
* self
, val
* p0
, long p1
) {
1988 long var
/* : Int */;
1989 val
* var_s
/* var s: String */;
1990 long var_from
/* var from: Int */;
1991 long var1
/* : Int */;
1992 short int var2
/* : Bool */;
1993 short int var4
/* : Bool */;
1996 const char* var_class_name
;
1997 short int var5
/* : Bool */;
1998 long var6
/* : Int */;
1999 long var7
/* : Int */;
2000 long var8
/* : Int */;
2001 long var10
/* : Int */;
2002 long var11
/* : Int */;
2003 long var12
/* : Int */;
2004 long var14
/* : Int */;
2005 long var_stop
/* var stop: Int */;
2006 short int var15
/* : Bool */;
2007 short int var17
/* : Bool */;
2010 const char* var_class_name20
;
2011 short int var21
/* : Bool */;
2012 long var22
/* : Int */;
2013 long var23
/* : Int */;
2014 long var24
/* : Int */;
2015 long var26
/* : Int */;
2016 long var_i
/* var i: Int */;
2017 short int var27
/* : Bool */;
2018 long var28
/* : Int */;
2019 short int var29
/* : Bool */;
2020 short int var31
/* : Bool */;
2023 const char* var_class_name34
;
2024 short int var35
/* : Bool */;
2025 short int var_
/* var : Bool */;
2026 val
* var36
/* : nullable Object */;
2027 long var37
/* : Int */;
2028 long var39
/* : Int */;
2029 val
* var40
/* : nullable Object */;
2030 short int var41
/* : Bool */;
2031 short int var43
/* : Bool */;
2032 long var44
/* : Int */;
2033 long var45
/* : Int */;
2034 long var47
/* : Int */;
2035 long var48
/* : Int */;
2036 short int var49
/* : Bool */;
2037 short int var51
/* : Bool */;
2040 const char* var_class_name54
;
2041 short int var55
/* : Bool */;
2042 long var56
/* : Int */;
2043 long var57
/* : Int */;
2044 long var59
/* : Int */;
2045 long var61
/* : Int */;
2046 long var62
/* : Int */;
2047 long var64
/* : Int */;
2051 { /* Inline kernel#Int#>= (var_from,var1) */
2052 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
2053 /* <var1:Int> isa OTHER */
2054 var4
= 1; /* easy <var1:Int> isa OTHER*/
2056 var_class_name
= type_kernel__Int
.name
;
2057 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2058 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
2061 var5
= var_from
>= var1
;
2067 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2068 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 264);
2071 var6
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
2072 var7
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:String>*/;
2073 { /* Inline kernel#Int#- (var6,var7) */
2074 var10
= var6
- var7
;
2080 { /* Inline kernel#Int#+ (var8,var11) */
2081 var14
= var8
+ var11
;
2084 RET_LABEL13
:(void)0;
2088 { /* Inline kernel#Int#< (var_from,var_stop) */
2089 /* Covariant cast for argument 0 (i) <var_stop:Int> isa OTHER */
2090 /* <var_stop:Int> isa OTHER */
2091 var17
= 1; /* easy <var_stop:Int> isa OTHER*/
2093 var_class_name20
= type_kernel__Int
.name
;
2094 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20
);
2095 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
2098 var21
= var_from
< var_stop
;
2101 RET_LABEL16
:(void)0;
2104 var22
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:String>*/;
2106 { /* Inline kernel#Int#- (var22,var23) */
2107 var26
= var22
- var23
;
2110 RET_LABEL25
:(void)0;
2115 { /* Inline kernel#Int#>= (var_i,var28) */
2116 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
2117 /* <var28:Int> isa OTHER */
2118 var31
= 1; /* easy <var28:Int> isa OTHER*/
2120 var_class_name34
= type_kernel__Int
.name
;
2121 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34
);
2122 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
2125 var35
= var_i
>= var28
;
2128 RET_LABEL30
:(void)0;
2132 var36
= ((val
* (*)(val
*, long))(self
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(self
, var_i
) /* [] on <self:String>*/;
2133 { /* Inline kernel#Int#+ (var_i,var_from) */
2134 var39
= var_i
+ var_from
;
2137 RET_LABEL38
:(void)0;
2139 var40
= ((val
* (*)(val
*, long))(var_s
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_s
, var37
) /* [] on <var_s:String>*/;
2140 { /* Inline kernel#Char#== (var36,var40) */
2141 var43
= var36
== var40
|| (((struct instance_kernel__Char
*)var36
)->value
== ((struct instance_kernel__Char
*)var40
)->value
);
2144 RET_LABEL42
:(void)0;
2152 { /* Inline kernel#Int#- (var_i,var44) */
2153 var47
= var_i
- var44
;
2156 RET_LABEL46
:(void)0;
2159 CONTINUE_label
: (void)0;
2161 BREAK_label
: (void)0;
2163 { /* Inline kernel#Int#< (var_i,var48) */
2164 /* Covariant cast for argument 0 (i) <var48:Int> isa OTHER */
2165 /* <var48:Int> isa OTHER */
2166 var51
= 1; /* easy <var48:Int> isa OTHER*/
2168 var_class_name54
= type_kernel__Int
.name
;
2169 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name54
);
2170 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
2173 var55
= var_i
< var48
;
2176 RET_LABEL50
:(void)0;
2184 { /* Inline kernel#Int#+ (var_from,var56) */
2185 var59
= var_from
+ var56
;
2188 RET_LABEL58
:(void)0;
2191 CONTINUE_label60
: (void)0;
2193 BREAK_label60
: (void)0;
2195 { /* Inline kernel#Int#unary - (var61) */
2199 RET_LABEL63
:(void)0;
2206 /* method string_search#String#search_index_in for (self: Object, String, Int): Int */
2207 long VIRTUAL_string_search__String__search_index_in(val
* self
, val
* p0
, long p1
) {
2208 long var
/* : Int */;
2209 long var1
/* : Int */;
2210 var1
= string_search__String__search_index_in(self
, p0
, p1
);
2215 /* method string_search#String#search_in for (self: String, String, Int): nullable Match */
2216 val
* string_search__String__search_in(val
* self
, val
* p0
, long p1
) {
2217 val
* var
/* : nullable Match */;
2218 val
* var_s
/* var s: String */;
2219 long var_from
/* var from: Int */;
2220 long var1
/* : Int */;
2221 long var_pos
/* var pos: Int */;
2222 long var2
/* : Int */;
2223 short int var3
/* : Bool */;
2224 short int var5
/* : Bool */;
2227 const char* var_class_name
;
2228 short int var6
/* : Bool */;
2229 val
* var7
/* : null */;
2230 val
* var8
/* : Match */;
2231 long var9
/* : Int */;
2234 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>*/;
2237 { /* Inline kernel#Int#< (var_pos,var2) */
2238 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
2239 /* <var2:Int> isa OTHER */
2240 var5
= 1; /* easy <var2:Int> isa OTHER*/
2242 var_class_name
= type_kernel__Int
.name
;
2243 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2244 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
2247 var6
= var_pos
< var2
;
2257 var8
= NEW_string_search__Match(&type_string_search__Match
);
2258 var9
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:String>*/;
2259 ((void (*)(val
*, val
*, long, long))(var8
->class->vft
[COLOR_string_search__Match__init
]))(var8
, var_s
, var_pos
, var9
) /* init on <var8:Match>*/;
2260 CHECK_NEW_string_search__Match(var8
);
2267 /* method string_search#String#search_in for (self: Object, String, Int): nullable Match */
2268 val
* VIRTUAL_string_search__String__search_in(val
* self
, val
* p0
, long p1
) {
2269 val
* var
/* : nullable Match */;
2270 val
* var1
/* : nullable Match */;
2271 var1
= string_search__String__search_in(self
, p0
, p1
);
2276 /* method string_search#String#search for (self: String, Pattern): nullable Match */
2277 val
* string_search__String__search(val
* self
, val
* p0
) {
2278 val
* var
/* : nullable Match */;
2279 val
* var_p
/* var p: Pattern */;
2280 long var1
/* : Int */;
2281 val
* var2
/* : nullable Match */;
2284 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>*/;
2290 /* method string_search#String#search for (self: Object, Pattern): nullable Match */
2291 val
* VIRTUAL_string_search__String__search(val
* self
, val
* p0
) {
2292 val
* var
/* : nullable Match */;
2293 val
* var1
/* : nullable Match */;
2294 var1
= string_search__String__search(self
, p0
);
2299 /* method string_search#String#search_from for (self: String, Pattern, Int): nullable Match */
2300 val
* string_search__String__search_from(val
* self
, val
* p0
, long p1
) {
2301 val
* var
/* : nullable Match */;
2302 val
* var_p
/* var p: Pattern */;
2303 long var_from
/* var from: Int */;
2304 val
* var1
/* : nullable Match */;
2307 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>*/;
2313 /* method string_search#String#search_from for (self: Object, Pattern, Int): nullable Match */
2314 val
* VIRTUAL_string_search__String__search_from(val
* self
, val
* p0
, long p1
) {
2315 val
* var
/* : nullable Match */;
2316 val
* var1
/* : nullable Match */;
2317 var1
= string_search__String__search_from(self
, p0
, p1
);
2322 /* method string_search#String#search_all for (self: String, Pattern): Array[Match] */
2323 val
* string_search__String__search_all(val
* self
, val
* p0
) {
2324 val
* var
/* : Array[Match] */;
2325 val
* var_p
/* var p: Pattern */;
2326 val
* var1
/* : Array[Match] */;
2328 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>*/;
2334 /* method string_search#String#search_all for (self: Object, Pattern): Array[Match] */
2335 val
* VIRTUAL_string_search__String__search_all(val
* self
, val
* p0
) {
2336 val
* var
/* : Array[Match] */;
2337 val
* var1
/* : Array[Match] */;
2338 var1
= string_search__String__search_all(self
, p0
);
2343 /* method string_search#String#split for (self: String, Pattern): Array[String] */
2344 val
* string_search__String__split(val
* self
, val
* p0
) {
2345 val
* var
/* : Array[String] */;
2346 val
* var_p
/* var p: Pattern */;
2347 val
* var1
/* : Array[Match] */;
2348 val
* var_matches
/* var matches: Array[Match] */;
2349 val
* var2
/* : Array[String] */;
2350 long var3
/* : Int */;
2351 val
* var_res
/* var res: Array[String] */;
2352 val
* var4
/* : Iterator[nullable Object] */;
2353 short int var5
/* : Bool */;
2354 val
* var6
/* : nullable Object */;
2355 val
* var_m
/* var m: Match */;
2356 val
* var7
/* : String */;
2358 var1
= ((val
* (*)(val
*, val
*))(var_p
->class->vft
[COLOR_string_search__Pattern__split_in
]))(var_p
, self
) /* split_in on <var_p:Pattern>*/;
2360 var2
= NEW_array__Array(&type_array__Arraystring__String
);
2361 var3
= ((long (*)(val
*))(var_matches
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_matches
) /* length on <var_matches:Array[Match]>*/;
2362 ((void (*)(val
*, long))(var2
->class->vft
[COLOR_array__Array__with_capacity
]))(var2
, var3
) /* with_capacity on <var2:Array[String]>*/;
2363 CHECK_NEW_array__Array(var2
);
2365 var4
= ((val
* (*)(val
*))(var_matches
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_matches
) /* iterator on <var_matches:Array[Match]>*/;
2367 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
2369 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
2371 var7
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_string__Object__to_s
]))(var_m
) /* to_s on <var_m:Match>*/;
2372 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var7
) /* add on <var_res:Array[String]>*/;
2373 CONTINUE_label
: (void)0;
2374 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
2376 BREAK_label
: (void)0;
2382 /* method string_search#String#split for (self: Object, Pattern): Array[String] */
2383 val
* VIRTUAL_string_search__String__split(val
* self
, val
* p0
) {
2384 val
* var
/* : Array[String] */;
2385 val
* var1
/* : Array[String] */;
2386 var1
= string_search__String__split(self
, p0
);
2391 /* method string_search#String#split_with for (self: String, Pattern): Array[String] */
2392 val
* string_search__String__split_with(val
* self
, val
* p0
) {
2393 val
* var
/* : Array[String] */;
2394 val
* var_p
/* var p: Pattern */;
2395 val
* var1
/* : Array[String] */;
2397 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_string_search__String__split
]))(self
, var_p
) /* split on <self:String>*/;
2403 /* method string_search#String#split_with for (self: Object, Pattern): Array[String] */
2404 val
* VIRTUAL_string_search__String__split_with(val
* self
, val
* p0
) {
2405 val
* var
/* : Array[String] */;
2406 val
* var1
/* : Array[String] */;
2407 var1
= string_search__String__split_with(self
, p0
);
2412 /* method string_search#String#replace for (self: String, Pattern, String): String */
2413 val
* string_search__String__replace(val
* self
, val
* p0
, val
* p1
) {
2414 val
* var
/* : String */;
2415 val
* var_p
/* var p: Pattern */;
2416 val
* var_string
/* var string: String */;
2417 val
* var1
/* : Array[String] */;
2418 val
* var2
/* : String */;
2421 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_string_search__String__split_with
]))(self
, var_p
) /* split_with on <self:String>*/;
2422 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_string__Collection__join
]))(var1
, var_string
) /* join on <var1:Array[String]>*/;
2428 /* method string_search#String#replace for (self: Object, Pattern, String): String */
2429 val
* VIRTUAL_string_search__String__replace(val
* self
, val
* p0
, val
* p1
) {
2430 val
* var
/* : String */;
2431 val
* var1
/* : String */;
2432 var1
= string_search__String__replace(self
, p0
, p1
);
2437 /* method string_search#String#html_escape for (self: String): String */
2438 val
* string_search__String__html_escape(val
* self
) {
2439 val
* var
/* : String */;
2440 val
* var_ret
/* var ret: String */;
2441 char var1
/* : Char */;
2442 short int var2
/* : Bool */;
2443 val
* var3
/* : nullable Object */;
2444 char var4
/* : Char */;
2445 static val
* varonce
;
2446 val
* var5
/* : String */;
2447 char* var6
/* : NativeString */;
2448 long var7
/* : Int */;
2449 val
* var8
/* : String */;
2450 val
* var9
/* : String */;
2451 val
* var10
/* : Pattern */;
2452 char var11
/* : Char */;
2453 short int var12
/* : Bool */;
2454 val
* var13
/* : nullable Object */;
2455 char var14
/* : Char */;
2456 static val
* varonce15
;
2457 val
* var16
/* : String */;
2458 char* var17
/* : NativeString */;
2459 long var18
/* : Int */;
2460 val
* var19
/* : String */;
2461 val
* var20
/* : String */;
2462 val
* var21
/* : Pattern */;
2463 char var22
/* : Char */;
2464 short int var23
/* : Bool */;
2465 val
* var24
/* : nullable Object */;
2466 char var25
/* : Char */;
2467 static val
* varonce26
;
2468 val
* var27
/* : String */;
2469 char* var28
/* : NativeString */;
2470 long var29
/* : Int */;
2471 val
* var30
/* : String */;
2472 val
* var31
/* : String */;
2473 val
* var32
/* : Pattern */;
2474 char var33
/* : Char */;
2475 short int var34
/* : Bool */;
2476 val
* var35
/* : nullable Object */;
2477 char var36
/* : Char */;
2478 static val
* varonce37
;
2479 val
* var38
/* : String */;
2480 char* var39
/* : NativeString */;
2481 long var40
/* : Int */;
2482 val
* var41
/* : String */;
2483 val
* var42
/* : String */;
2484 val
* var43
/* : Pattern */;
2487 var3
= BOX_kernel__Char(var1
); /* autobox from Char to nullable Object */
2488 var2
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_ret
, var3
) /* has on <var_ret:String>*/;
2496 var8
= string__NativeString__to_s_with_length(var6
, var7
);
2500 var10
= BOX_kernel__Char(var4
); /* autobox from Char to Pattern */
2501 var9
= ((val
* (*)(val
*, val
*, val
*))(var_ret
->class->vft
[COLOR_string_search__String__replace
]))(var_ret
, var10
, var5
) /* replace on <var_ret:String>*/;
2506 var13
= BOX_kernel__Char(var11
); /* autobox from Char to nullable Object */
2507 var12
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_ret
, var13
) /* has on <var_ret:String>*/;
2515 var19
= string__NativeString__to_s_with_length(var17
, var18
);
2519 var21
= BOX_kernel__Char(var14
); /* autobox from Char to Pattern */
2520 var20
= ((val
* (*)(val
*, val
*, val
*))(var_ret
->class->vft
[COLOR_string_search__String__replace
]))(var_ret
, var21
, var16
) /* replace on <var_ret:String>*/;
2525 var24
= BOX_kernel__Char(var22
); /* autobox from Char to nullable Object */
2526 var23
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_ret
, var24
) /* has on <var_ret:String>*/;
2534 var30
= string__NativeString__to_s_with_length(var28
, var29
);
2538 var32
= BOX_kernel__Char(var25
); /* autobox from Char to Pattern */
2539 var31
= ((val
* (*)(val
*, val
*, val
*))(var_ret
->class->vft
[COLOR_string_search__String__replace
]))(var_ret
, var32
, var27
) /* replace on <var_ret:String>*/;
2544 var35
= BOX_kernel__Char(var33
); /* autobox from Char to nullable Object */
2545 var34
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_ret
, var35
) /* has on <var_ret:String>*/;
2553 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2557 var43
= BOX_kernel__Char(var36
); /* autobox from Char to Pattern */
2558 var42
= ((val
* (*)(val
*, val
*, val
*))(var_ret
->class->vft
[COLOR_string_search__String__replace
]))(var_ret
, var43
, var38
) /* replace on <var_ret:String>*/;
2567 /* method string_search#String#html_escape for (self: Object): String */
2568 val
* VIRTUAL_string_search__String__html_escape(val
* self
) {
2569 val
* var
/* : String */;
2570 val
* var1
/* : String */;
2571 var1
= string_search__String__html_escape(self
);