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
/* : nullable Object */;
241 long var37
/* : Int */;
242 long var39
/* : Int */;
243 val
* var40
/* : nullable Object */;
244 short int var41
/* : Bool */;
245 short int var43
/* : Bool */;
246 long var44
/* : Int */;
247 long var45
/* : Int */;
248 long var47
/* : Int */;
249 long var48
/* : Int */;
250 short int var49
/* : Bool */;
251 short int var51
/* : Bool */;
254 const char* var_class_name54
;
255 short int var55
/* : Bool */;
256 val
* var56
/* : Array[Int] */;
257 val
* var57
/* : nullable Object */;
258 long var58
/* : Int */;
259 long var_gs
/* var gs: Int */;
260 long var59
/* : Int */;
261 long var61
/* : Int */;
262 val
* var62
/* : nullable Object */;
263 long var63
/* : Int */;
264 char var64
/* : Char */;
265 long var65
/* : Int */;
266 long var67
/* : Int */;
267 long var68
/* : Int */;
268 long var69
/* : Int */;
269 long var71
/* : Int */;
270 long var72
/* : Int */;
271 long var74
/* : Int */;
272 long var_bc
/* var bc: Int */;
273 short int var75
/* : Bool */;
274 short int var77
/* : Bool */;
277 const char* var_class_name80
;
278 short int var81
/* : Bool */;
279 long var82
/* : Int */;
280 long var84
/* : Int */;
281 long var85
/* : Int */;
282 long var87
/* : Int */;
283 long var89
/* : Int */;
284 long var90
/* : Int */;
285 long var92
/* : Int */;
289 { /* Inline kernel#Int#>= (var_from,var1) */
290 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
291 /* <var1:Int> isa OTHER */
292 var4
= 1; /* easy <var1:Int> isa OTHER*/
294 var_class_name
= type_kernel__Int
.name
;
295 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
296 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
299 var5
= var_from
>= var1
;
305 fprintf(stderr
, "Runtime error: %s", "Assert failed");
306 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 72);
309 var6
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
311 var7
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
315 { /* Inline kernel#Int#- (var_n,var_m) */
316 var10
= var_n
- var_m
;
322 { /* Inline kernel#Int#+ (var8,var11) */
323 var14
= var8
+ var11
;
328 { /* Inline kernel#Int#< (var_j,var12) */
329 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
330 /* <var12:Int> isa OTHER */
331 var17
= 1; /* easy <var12:Int> isa OTHER*/
333 var_class_name20
= type_kernel__Int
.name
;
334 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20
);
335 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
338 var21
= var_j
< var12
;
345 { /* Inline kernel#Int#- (var_m,var22) */
346 var25
= var_m
- var22
;
354 { /* Inline kernel#Int#>= (var_i,var27) */
355 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
356 /* <var27:Int> isa OTHER */
357 var30
= 1; /* easy <var27:Int> isa OTHER*/
359 var_class_name33
= type_kernel__Int
.name
;
360 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33
);
361 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
364 var34
= var_i
>= var27
;
371 var35
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
373 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
374 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 79);
377 var36
= ((val
* (*)(val
*, long))(var35
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var35
, var_i
) /* [] on <var35:String>*/;
378 { /* Inline kernel#Int#+ (var_i,var_j) */
379 var39
= var_i
+ var_j
;
384 var40
= ((val
* (*)(val
*, long))(var_s
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_s
, var37
) /* [] on <var_s:String>*/;
385 { /* Inline kernel#Char#== (var36,var40) */
386 var43
= var36
== var40
|| (((struct instance_kernel__Char
*)var36
)->value
== ((struct instance_kernel__Char
*)var40
)->value
);
397 { /* Inline kernel#Int#- (var_i,var44) */
398 var47
= var_i
- var44
;
404 CONTINUE_label
: (void)0;
406 BREAK_label
: (void)0;
408 { /* Inline kernel#Int#< (var_i,var48) */
409 /* Covariant cast for argument 0 (i) <var48:Int> isa OTHER */
410 /* <var48:Int> isa OTHER */
411 var51
= 1; /* easy <var48:Int> isa OTHER*/
413 var_class_name54
= type_kernel__Int
.name
;
414 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name54
);
415 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
418 var55
= var_i
< var48
;
427 var56
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
429 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
430 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 83);
433 var57
= ((val
* (*)(val
*, long))(var56
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var56
, var_i
) /* [] on <var56:Array[Int]>*/;
434 var58
= ((struct instance_kernel__Int
*)var57
)->value
; /* autounbox from nullable Object to Int */;
436 { /* Inline kernel#Int#+ (var_i,var_j) */
437 var61
= var_i
+ var_j
;
442 var62
= ((val
* (*)(val
*, long))(var_s
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_s
, var59
) /* [] on <var_s:String>*/;
443 var64
= ((struct instance_kernel__Char
*)var62
)->value
; /* autounbox from nullable Object to Char */;
444 var63
= ((long (*)(val
*, char))(self
->class->vft
[COLOR_string_search__BM_Pattern__bc
]))(self
, var64
) /* bc on <self:BM_Pattern>*/;
445 { /* Inline kernel#Int#- (var63,var_m) */
446 var67
= var63
- var_m
;
452 { /* Inline kernel#Int#+ (var65,var68) */
453 var71
= var65
+ var68
;
458 { /* Inline kernel#Int#+ (var69,var_i) */
459 var74
= var69
+ var_i
;
465 { /* Inline kernel#Int#> (var_gs,var_bc) */
466 /* Covariant cast for argument 0 (i) <var_bc:Int> isa OTHER */
467 /* <var_bc:Int> isa OTHER */
468 var77
= 1; /* easy <var_bc:Int> isa OTHER*/
470 var_class_name80
= type_kernel__Int
.name
;
471 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name80
);
472 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
475 var81
= var_gs
> var_bc
;
481 { /* Inline kernel#Int#+ (var_j,var_gs) */
482 var84
= var_j
+ var_gs
;
489 { /* Inline kernel#Int#+ (var_j,var_bc) */
490 var87
= var_j
+ var_bc
;
498 CONTINUE_label88
: (void)0;
500 BREAK_label88
: (void)0;
502 { /* Inline kernel#Int#unary - (var89) */
513 /* method string_search#BM_Pattern#search_index_in for (self: Object, String, Int): Int */
514 long VIRTUAL_string_search__BM_Pattern__search_index_in(val
* self
, val
* p0
, long p1
) {
515 long var
/* : Int */;
516 long var1
/* : Int */;
517 var1
= string_search__BM_Pattern__search_index_in(self
, p0
, p1
);
522 /* method string_search#BM_Pattern#search_in for (self: BM_Pattern, String, Int): nullable Match */
523 val
* string_search__BM_Pattern__search_in(val
* self
, val
* p0
, long p1
) {
524 val
* var
/* : nullable Match */;
525 val
* var_s
/* var s: String */;
526 long var_from
/* var from: Int */;
527 long var1
/* : Int */;
528 long var_to
/* var to: Int */;
529 long var2
/* : Int */;
530 short int var3
/* : Bool */;
531 short int var5
/* : Bool */;
534 const char* var_class_name
;
535 short int var6
/* : Bool */;
536 val
* var7
/* : null */;
537 val
* var8
/* : Match */;
538 long var9
/* : Int */;
541 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>*/;
544 { /* Inline kernel#Int#< (var_to,var2) */
545 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
546 /* <var2:Int> isa OTHER */
547 var5
= 1; /* easy <var2:Int> isa OTHER*/
549 var_class_name
= type_kernel__Int
.name
;
550 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
551 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
554 var6
= var_to
< var2
;
564 var8
= NEW_string_search__Match(&type_string_search__Match
);
565 var9
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
566 ((void (*)(val
*, val
*, long, long))(var8
->class->vft
[COLOR_string_search__Match__init
]))(var8
, var_s
, var_to
, var9
) /* init on <var8:Match>*/;
573 /* method string_search#BM_Pattern#search_in for (self: Object, String, Int): nullable Match */
574 val
* VIRTUAL_string_search__BM_Pattern__search_in(val
* self
, val
* p0
, long p1
) {
575 val
* var
/* : nullable Match */;
576 val
* var1
/* : nullable Match */;
577 var1
= string_search__BM_Pattern__search_in(self
, p0
, p1
);
582 /* method string_search#BM_Pattern#init for (self: BM_Pattern, String) */
583 void string_search__BM_Pattern__init(val
* self
, val
* p0
) {
584 val
* var_motif
/* var motif: String */;
585 long var
/* : Int */;
586 val
* var1
/* : Array[Int] */;
587 long var2
/* : Int */;
588 val
* var3
/* : ArrayMap[Char, Int] */;
590 self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
= var_motif
; /* _motif on <self:BM_Pattern> */
591 var
= ((long (*)(val
*))(var_motif
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_motif
) /* length on <var_motif:String>*/;
592 self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
= var
; /* _length on <self:BM_Pattern> */
593 var1
= NEW_array__Array(&type_array__Arraykernel__Int
);
594 var2
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
595 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Int]>*/;
596 self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
= var1
; /* _gs on <self:BM_Pattern> */
597 var3
= NEW_array__ArrayMap(&type_array__ArrayMapkernel__Charkernel__Int
);
598 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__ArrayMap__init
]))(var3
) /* init on <var3:ArrayMap[Char, Int]>*/;
599 self
->attrs
[COLOR_string_search__BM_Pattern___bc_table
].val
= var3
; /* _bc_table on <self:BM_Pattern> */
600 ((void (*)(val
*))(self
->class->vft
[COLOR_string_search__BM_Pattern__compute_gs
]))(self
) /* compute_gs on <self:BM_Pattern>*/;
601 ((void (*)(val
*))(self
->class->vft
[COLOR_string_search__BM_Pattern__compute_bc
]))(self
) /* compute_bc on <self:BM_Pattern>*/;
604 /* method string_search#BM_Pattern#init for (self: Object, String) */
605 void VIRTUAL_string_search__BM_Pattern__init(val
* self
, val
* p0
) {
606 string_search__BM_Pattern__init(self
, p0
);
609 /* method string_search#BM_Pattern#bc for (self: BM_Pattern, Char): Int */
610 long string_search__BM_Pattern__bc(val
* self
, char p0
) {
611 long var
/* : Int */;
612 char var_e
/* var e: Char */;
613 val
* var1
/* : Map[Char, Int] */;
614 short int var2
/* : Bool */;
615 val
* var3
/* : Object */;
616 val
* var4
/* : Map[Char, Int] */;
617 val
* var5
/* : nullable Object */;
618 val
* var6
/* : Object */;
619 long var7
/* : Int */;
620 long var8
/* : Int */;
622 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___bc_table
].val
; /* _bc_table on <self:BM_Pattern> */
624 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _bc_table");
625 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 126);
628 var3
= BOX_kernel__Char(var_e
); /* autobox from Char to Object */
629 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var3
) /* has_key on <var1:Map[Char, Int]>*/;
631 var4
= self
->attrs
[COLOR_string_search__BM_Pattern___bc_table
].val
; /* _bc_table on <self:BM_Pattern> */
633 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _bc_table");
634 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 127);
637 var6
= BOX_kernel__Char(var_e
); /* autobox from Char to Object */
638 var5
= ((val
* (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var4
, var6
) /* [] on <var4:Map[Char, Int]>*/;
639 var7
= ((struct instance_kernel__Int
*)var5
)->value
; /* autounbox from nullable Object to Int */;
643 var8
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
650 /* method string_search#BM_Pattern#bc for (self: Object, Char): Int */
651 long VIRTUAL_string_search__BM_Pattern__bc(val
* self
, char p0
) {
652 long var
/* : Int */;
653 long var1
/* : Int */;
654 var1
= string_search__BM_Pattern__bc(self
, p0
);
659 /* method string_search#BM_Pattern#compute_bc for (self: BM_Pattern) */
660 void string_search__BM_Pattern__compute_bc(val
* self
) {
661 val
* var
/* : String */;
662 val
* var_x
/* var x: String */;
663 long var1
/* : Int */;
664 long var_m
/* var m: Int */;
665 long var2
/* : Int */;
666 long var_i
/* var i: Int */;
667 long var3
/* : Int */;
668 long var4
/* : Int */;
669 long var6
/* : Int */;
670 short int var7
/* : Bool */;
671 short int var9
/* : Bool */;
674 const char* var_class_name
;
675 short int var10
/* : Bool */;
676 val
* var11
/* : Map[Char, Int] */;
677 val
* var12
/* : nullable Object */;
678 long var13
/* : Int */;
679 long var15
/* : Int */;
680 long var16
/* : Int */;
681 long var17
/* : Int */;
682 long var19
/* : Int */;
683 val
* var20
/* : nullable Object */;
684 long var21
/* : Int */;
685 long var22
/* : Int */;
686 long var24
/* : Int */;
687 var
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
689 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
690 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 141);
694 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
700 { /* Inline kernel#Int#- (var_m,var3) */
706 { /* Inline kernel#Int#< (var_i,var4) */
707 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
708 /* <var4:Int> isa OTHER */
709 var9
= 1; /* easy <var4:Int> isa OTHER*/
711 var_class_name
= type_kernel__Int
.name
;
712 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
713 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
716 var10
= var_i
< var4
;
722 var11
= self
->attrs
[COLOR_string_search__BM_Pattern___bc_table
].val
; /* _bc_table on <self:BM_Pattern> */
724 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _bc_table");
725 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 145);
728 var12
= ((val
* (*)(val
*, long))(var_x
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_x
, var_i
) /* [] on <var_x:String>*/;
729 { /* Inline kernel#Int#- (var_m,var_i) */
730 var15
= var_m
- var_i
;
736 { /* Inline kernel#Int#- (var13,var16) */
737 var19
= var13
- var16
;
742 var20
= BOX_kernel__Int(var17
); /* autobox from Int to nullable Object */
743 ((void (*)(val
*, val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var11
, var12
, var20
) /* []= on <var11:Map[Char, Int]>*/;
745 { /* Inline kernel#Int#+ (var_i,var21) */
746 var24
= var_i
+ var21
;
752 CONTINUE_label
: (void)0;
754 BREAK_label
: (void)0;
757 /* method string_search#BM_Pattern#compute_bc for (self: Object) */
758 void VIRTUAL_string_search__BM_Pattern__compute_bc(val
* self
) {
759 string_search__BM_Pattern__compute_bc(self
);
762 /* method string_search#BM_Pattern#suffixes for (self: BM_Pattern): Array[Int] */
763 val
* string_search__BM_Pattern__suffixes(val
* self
) {
764 val
* var
/* : Array[Int] */;
765 val
* var1
/* : String */;
766 val
* var_x
/* var x: String */;
767 long var2
/* : Int */;
768 long var_m
/* var m: Int */;
769 val
* var3
/* : Array[Int] */;
770 val
* var4
/* : nullable Object */;
771 val
* var_suff
/* var suff: Array[Int] */;
772 long var5
/* : Int */;
773 long var_f
/* var f: Int */;
774 long var6
/* : Int */;
775 long var7
/* : Int */;
776 long var9
/* : Int */;
777 long var_g
/* var g: Int */;
778 long var10
/* : Int */;
779 long var11
/* : Int */;
780 long var13
/* : Int */;
781 long var_i
/* var i: Int */;
782 long var14
/* : Int */;
783 short int var15
/* : Bool */;
784 short int var17
/* : Bool */;
787 const char* var_class_name
;
788 short int var18
/* : Bool */;
789 short int var19
/* : Bool */;
790 short int var20
/* : Bool */;
791 short int var22
/* : Bool */;
794 const char* var_class_name25
;
795 short int var26
/* : Bool */;
796 short int var_
/* var : Bool */;
797 long var27
/* : Int */;
798 long var29
/* : Int */;
799 long var30
/* : Int */;
800 long var31
/* : Int */;
801 long var33
/* : Int */;
802 long var34
/* : Int */;
803 long var36
/* : Int */;
804 val
* var37
/* : nullable Object */;
805 long var38
/* : Int */;
806 long var40
/* : Int */;
807 short int var41
/* : Bool */;
808 short int var43
/* : Bool */;
811 const char* var_class_name46
;
812 long var47
/* : Int */;
813 short int var48
/* : Bool */;
814 long var49
/* : Int */;
815 long var51
/* : Int */;
816 long var52
/* : Int */;
817 long var53
/* : Int */;
818 long var55
/* : Int */;
819 long var56
/* : Int */;
820 long var58
/* : Int */;
821 val
* var59
/* : nullable Object */;
822 short int var60
/* : Bool */;
823 short int var62
/* : Bool */;
826 const char* var_class_name65
;
827 short int var66
/* : Bool */;
828 short int var67
/* : Bool */;
829 long var68
/* : Int */;
830 short int var69
/* : Bool */;
831 short int var71
/* : Bool */;
834 const char* var_class_name74
;
835 short int var75
/* : Bool */;
836 short int var_76
/* var : Bool */;
837 val
* var77
/* : nullable Object */;
838 long var78
/* : Int */;
839 long var80
/* : Int */;
840 long var81
/* : Int */;
841 long var82
/* : Int */;
842 long var84
/* : Int */;
843 long var85
/* : Int */;
844 long var87
/* : Int */;
845 val
* var88
/* : nullable Object */;
846 short int var89
/* : Bool */;
847 short int var91
/* : Bool */;
848 long var92
/* : Int */;
849 long var93
/* : Int */;
850 long var95
/* : Int */;
851 long var96
/* : Int */;
852 long var98
/* : Int */;
853 val
* var99
/* : nullable Object */;
854 long var100
/* : Int */;
855 long var101
/* : Int */;
856 long var103
/* : Int */;
857 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
859 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
860 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 152);
864 var2
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
866 var3
= NEW_array__Array(&type_array__Arraykernel__Int
);
867 var4
= BOX_kernel__Int(var_m
); /* autobox from Int to nullable Object */
868 ((void (*)(val
*, val
*, long))(var3
->class->vft
[COLOR_array__Array__filled_with
]))(var3
, var4
, var_m
) /* filled_with on <var3:Array[Int]>*/;
873 { /* Inline kernel#Int#- (var_m,var6) */
881 { /* Inline kernel#Int#- (var_m,var10) */
882 var13
= var_m
- var10
;
890 { /* Inline kernel#Int#>= (var_i,var14) */
891 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
892 /* <var14:Int> isa OTHER */
893 var17
= 1; /* easy <var14:Int> isa OTHER*/
895 var_class_name
= type_kernel__Int
.name
;
896 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
897 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
900 var18
= var_i
>= var14
;
906 { /* Inline kernel#Int#> (var_i,var_g) */
907 /* Covariant cast for argument 0 (i) <var_g:Int> isa OTHER */
908 /* <var_g:Int> isa OTHER */
909 var22
= 1; /* easy <var_g:Int> isa OTHER*/
911 var_class_name25
= type_kernel__Int
.name
;
912 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25
);
913 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
916 var26
= var_i
> var_g
;
923 { /* Inline kernel#Int#+ (var_i,var_m) */
924 var29
= var_i
+ var_m
;
930 { /* Inline kernel#Int#- (var27,var30) */
931 var33
= var27
- var30
;
936 { /* Inline kernel#Int#- (var31,var_f) */
937 var36
= var31
- var_f
;
942 var37
= ((val
* (*)(val
*, long))(var_suff
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_suff
, var34
) /* [] on <var_suff:Array[Int]>*/;
943 { /* Inline kernel#Int#- (var_i,var_g) */
944 var40
= var_i
- var_g
;
949 { /* Inline kernel#Int#< (var37,var38) */
950 /* Covariant cast for argument 0 (i) <var38:Int> isa OTHER */
951 /* <var38:Int> isa OTHER */
952 var43
= 1; /* easy <var38:Int> isa OTHER*/
954 var_class_name46
= type_kernel__Int
.name
;
955 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46
);
956 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
959 var47
= ((struct instance_kernel__Int
*)var37
)->value
; /* autounbox from nullable Object to Int */;
960 var48
= var47
< var38
;
970 { /* Inline kernel#Int#+ (var_i,var_m) */
971 var51
= var_i
+ var_m
;
977 { /* Inline kernel#Int#- (var49,var52) */
978 var55
= var49
- var52
;
983 { /* Inline kernel#Int#- (var53,var_f) */
984 var58
= var53
- var_f
;
989 var59
= ((val
* (*)(val
*, long))(var_suff
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_suff
, var56
) /* [] on <var_suff:Array[Int]>*/;
990 ((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]>*/;
992 { /* Inline kernel#Int#< (var_i,var_g) */
993 /* Covariant cast for argument 0 (i) <var_g:Int> isa OTHER */
994 /* <var_g:Int> isa OTHER */
995 var62
= 1; /* easy <var_g:Int> isa OTHER*/
997 var_class_name65
= type_kernel__Int
.name
;
998 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65
);
999 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1002 var66
= var_i
< var_g
;
1005 RET_LABEL61
:(void)0;
1014 { /* Inline kernel#Int#>= (var_g,var68) */
1015 /* Covariant cast for argument 0 (i) <var68:Int> isa OTHER */
1016 /* <var68:Int> isa OTHER */
1017 var71
= 1; /* easy <var68:Int> isa OTHER*/
1019 var_class_name74
= type_kernel__Int
.name
;
1020 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name74
);
1021 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
1024 var75
= var_g
>= var68
;
1027 RET_LABEL70
:(void)0;
1031 var77
= ((val
* (*)(val
*, long))(var_x
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_x
, var_g
) /* [] on <var_x:String>*/;
1032 { /* Inline kernel#Int#+ (var_g,var_m) */
1033 var80
= var_g
+ var_m
;
1036 RET_LABEL79
:(void)0;
1039 { /* Inline kernel#Int#- (var78,var81) */
1040 var84
= var78
- var81
;
1043 RET_LABEL83
:(void)0;
1045 { /* Inline kernel#Int#- (var82,var_f) */
1046 var87
= var82
- var_f
;
1049 RET_LABEL86
:(void)0;
1051 var88
= ((val
* (*)(val
*, long))(var_x
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_x
, var85
) /* [] on <var_x:String>*/;
1052 { /* Inline kernel#Char#== (var77,var88) */
1053 var91
= var77
== var88
|| (((struct instance_kernel__Char
*)var77
)->value
== ((struct instance_kernel__Char
*)var88
)->value
);
1056 RET_LABEL90
:(void)0;
1064 { /* Inline kernel#Int#- (var_g,var92) */
1065 var95
= var_g
- var92
;
1068 RET_LABEL94
:(void)0;
1071 CONTINUE_label
: (void)0;
1073 BREAK_label
: (void)0;
1074 { /* Inline kernel#Int#- (var_f,var_g) */
1075 var98
= var_f
- var_g
;
1078 RET_LABEL97
:(void)0;
1080 var99
= BOX_kernel__Int(var96
); /* autobox from Int to nullable Object */
1081 ((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]>*/;
1084 { /* Inline kernel#Int#- (var_i,var100) */
1085 var103
= var_i
- var100
;
1088 RET_LABEL102
:(void)0;
1091 CONTINUE_label104
: (void)0;
1093 BREAK_label104
: (void)0;
1099 /* method string_search#BM_Pattern#suffixes for (self: Object): Array[Int] */
1100 val
* VIRTUAL_string_search__BM_Pattern__suffixes(val
* self
) {
1101 val
* var
/* : Array[Int] */;
1102 val
* var1
/* : Array[Int] */;
1103 var1
= string_search__BM_Pattern__suffixes(self
);
1108 /* method string_search#BM_Pattern#compute_gs for (self: BM_Pattern) */
1109 void string_search__BM_Pattern__compute_gs(val
* self
) {
1110 val
* var
/* : String */;
1111 val
* var_x
/* var x: String */;
1112 long var1
/* : Int */;
1113 long var_m
/* var m: Int */;
1114 val
* var2
/* : Array[Int] */;
1115 val
* var_suff
/* var suff: Array[Int] */;
1116 long var3
/* : Int */;
1117 long var_i
/* var i: Int */;
1118 short int var4
/* : Bool */;
1119 short int var6
/* : Bool */;
1122 const char* var_class_name
;
1123 short int var7
/* : Bool */;
1124 val
* var8
/* : Array[Int] */;
1125 val
* var9
/* : nullable Object */;
1126 long var10
/* : Int */;
1127 long var11
/* : Int */;
1128 long var13
/* : Int */;
1129 long var14
/* : Int */;
1130 long var_j
/* var j: Int */;
1131 long var15
/* : Int */;
1132 long var16
/* : Int */;
1133 long var18
/* : Int */;
1134 long var19
/* : Int */;
1135 long var20
/* : Int */;
1136 long var22
/* : Int */;
1137 short int var23
/* : Bool */;
1138 short int var25
/* : Bool */;
1141 const char* var_class_name28
;
1142 short int var29
/* : Bool */;
1143 short int var30
/* : Bool */;
1144 long var31
/* : Int */;
1145 long var32
/* : Int */;
1146 long var34
/* : Int */;
1147 short int var35
/* : Bool */;
1148 short int var37
/* : Bool */;
1149 short int var_
/* var : Bool */;
1150 val
* var38
/* : nullable Object */;
1151 long var39
/* : Int */;
1152 long var40
/* : Int */;
1153 long var42
/* : Int */;
1154 short int var43
/* : Bool */;
1155 short int var45
/* : Bool */;
1156 long var46
/* : Int */;
1157 long var47
/* : Int */;
1158 long var48
/* : Int */;
1159 long var50
/* : Int */;
1160 long var51
/* : Int */;
1161 long var53
/* : Int */;
1162 short int var54
/* : Bool */;
1163 short int var56
/* : Bool */;
1166 const char* var_class_name59
;
1167 short int var60
/* : Bool */;
1168 val
* var61
/* : Array[Int] */;
1169 val
* var62
/* : nullable Object */;
1170 short int var63
/* : Bool */;
1171 short int var65
/* : Bool */;
1172 long var66
/* : Int */;
1173 val
* var67
/* : Array[Int] */;
1174 long var68
/* : Int */;
1175 long var69
/* : Int */;
1176 long var71
/* : Int */;
1177 long var72
/* : Int */;
1178 long var74
/* : Int */;
1179 val
* var75
/* : nullable Object */;
1180 long var76
/* : Int */;
1181 long var77
/* : Int */;
1182 long var79
/* : Int */;
1183 long var81
/* : Int */;
1184 long var82
/* : Int */;
1185 long var84
/* : Int */;
1186 long var86
/* : Int */;
1187 long var87
/* : Int */;
1188 long var88
/* : Int */;
1189 long var90
/* : Int */;
1190 short int var91
/* : Bool */;
1191 short int var93
/* : Bool */;
1194 const char* var_class_name96
;
1195 short int var97
/* : Bool */;
1196 val
* var98
/* : Array[Int] */;
1197 long var99
/* : Int */;
1198 long var100
/* : Int */;
1199 long var102
/* : Int */;
1200 val
* var103
/* : nullable Object */;
1201 long var104
/* : Int */;
1202 long var106
/* : Int */;
1203 long var107
/* : Int */;
1204 long var108
/* : Int */;
1205 long var109
/* : Int */;
1206 long var111
/* : Int */;
1207 long var112
/* : Int */;
1208 long var114
/* : Int */;
1209 val
* var115
/* : nullable Object */;
1210 long var116
/* : Int */;
1211 long var117
/* : Int */;
1212 long var119
/* : Int */;
1213 var
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
1215 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
1216 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 175);
1220 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___length
].l
; /* _length on <self:BM_Pattern> */
1222 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_string_search__BM_Pattern__suffixes
]))(self
) /* suffixes on <self:BM_Pattern>*/;
1227 { /* Inline kernel#Int#< (var_i,var_m) */
1228 /* Covariant cast for argument 0 (i) <var_m:Int> isa OTHER */
1229 /* <var_m:Int> isa OTHER */
1230 var6
= 1; /* easy <var_m:Int> isa OTHER*/
1232 var_class_name
= type_kernel__Int
.name
;
1233 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1234 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1237 var7
= var_i
< var_m
;
1243 var8
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
1245 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
1246 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 180);
1249 var9
= BOX_kernel__Int(var_m
); /* autobox from Int to nullable Object */
1250 ((void (*)(val
*, long, val
*))(var8
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var8
, var_i
, var9
) /* []= on <var8:Array[Int]>*/;
1252 { /* Inline kernel#Int#+ (var_i,var10) */
1253 var13
= var_i
+ var10
;
1256 RET_LABEL12
:(void)0;
1259 CONTINUE_label
: (void)0;
1261 BREAK_label
: (void)0;
1265 { /* Inline kernel#Int#- (var_m,var15) */
1266 var18
= var_m
- var15
;
1269 RET_LABEL17
:(void)0;
1274 { /* Inline kernel#Int#unary - (var19) */
1278 RET_LABEL21
:(void)0;
1280 { /* Inline kernel#Int#>= (var_i,var20) */
1281 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
1282 /* <var20:Int> isa OTHER */
1283 var25
= 1; /* easy <var20:Int> isa OTHER*/
1285 var_class_name28
= type_kernel__Int
.name
;
1286 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28
);
1287 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
1290 var29
= var_i
>= var20
;
1293 RET_LABEL24
:(void)0;
1297 { /* Inline kernel#Int#unary - (var31) */
1301 RET_LABEL33
:(void)0;
1303 { /* Inline kernel#Int#== (var_i,var32) */
1304 var37
= var_i
== var32
;
1307 RET_LABEL36
:(void)0;
1313 var38
= ((val
* (*)(val
*, long))(var_suff
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_suff
, var_i
) /* [] on <var_suff:Array[Int]>*/;
1315 { /* Inline kernel#Int#+ (var_i,var39) */
1316 var42
= var_i
+ var39
;
1319 RET_LABEL41
:(void)0;
1321 { /* Inline kernel#Int#== (var38,var40) */
1322 var45
= (var38
!= NULL
) && (var38
->class == &class_kernel__Int
);
1324 var46
= ((struct instance_kernel__Int
*)var38
)->value
; /* autounbox from nullable Object to Int */;
1325 var45
= (var46
== var40
);
1329 RET_LABEL44
:(void)0;
1336 { /* Inline kernel#Int#- (var_m,var47) */
1337 var50
= var_m
- var47
;
1340 RET_LABEL49
:(void)0;
1342 { /* Inline kernel#Int#- (var48,var_i) */
1343 var53
= var48
- var_i
;
1346 RET_LABEL52
:(void)0;
1348 { /* Inline kernel#Int#< (var_j,var51) */
1349 /* Covariant cast for argument 0 (i) <var51:Int> isa OTHER */
1350 /* <var51:Int> isa OTHER */
1351 var56
= 1; /* easy <var51:Int> isa OTHER*/
1353 var_class_name59
= type_kernel__Int
.name
;
1354 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59
);
1355 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1358 var60
= var_j
< var51
;
1361 RET_LABEL55
:(void)0;
1364 var61
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
1365 if (var61
== NULL
) {
1366 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
1367 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 188);
1370 var62
= ((val
* (*)(val
*, long))(var61
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var61
, var_j
) /* [] on <var61:Array[Int]>*/;
1371 { /* Inline kernel#Int#== (var62,var_m) */
1372 var65
= (var62
!= NULL
) && (var62
->class == &class_kernel__Int
);
1374 var66
= ((struct instance_kernel__Int
*)var62
)->value
; /* autounbox from nullable Object to Int */;
1375 var65
= (var66
== var_m
);
1379 RET_LABEL64
:(void)0;
1382 var67
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
1383 if (var67
== NULL
) {
1384 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
1385 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 188);
1389 { /* Inline kernel#Int#- (var_m,var68) */
1390 var71
= var_m
- var68
;
1393 RET_LABEL70
:(void)0;
1395 { /* Inline kernel#Int#- (var69,var_i) */
1396 var74
= var69
- var_i
;
1399 RET_LABEL73
:(void)0;
1401 var75
= BOX_kernel__Int(var72
); /* autobox from Int to nullable Object */
1402 ((void (*)(val
*, long, val
*))(var67
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var67
, var_j
, var75
) /* []= on <var67:Array[Int]>*/;
1406 { /* Inline kernel#Int#+ (var_j,var76) */
1407 var79
= var_j
+ var76
;
1410 RET_LABEL78
:(void)0;
1413 CONTINUE_label80
: (void)0;
1415 BREAK_label80
: (void)0;
1419 { /* Inline kernel#Int#- (var_i,var81) */
1420 var84
= var_i
- var81
;
1423 RET_LABEL83
:(void)0;
1426 CONTINUE_label85
: (void)0;
1428 BREAK_label85
: (void)0;
1433 { /* Inline kernel#Int#- (var_m,var87) */
1434 var90
= var_m
- var87
;
1437 RET_LABEL89
:(void)0;
1439 { /* Inline kernel#Int#< (var_i,var88) */
1440 /* Covariant cast for argument 0 (i) <var88:Int> isa OTHER */
1441 /* <var88:Int> isa OTHER */
1442 var93
= 1; /* easy <var88:Int> isa OTHER*/
1444 var_class_name96
= type_kernel__Int
.name
;
1445 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name96
);
1446 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1449 var97
= var_i
< var88
;
1452 RET_LABEL92
:(void)0;
1455 var98
= self
->attrs
[COLOR_string_search__BM_Pattern___gs
].val
; /* _gs on <self:BM_Pattern> */
1456 if (var98
== NULL
) {
1457 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _gs");
1458 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 196);
1462 { /* Inline kernel#Int#- (var_m,var99) */
1463 var102
= var_m
- var99
;
1466 RET_LABEL101
:(void)0;
1468 var103
= ((val
* (*)(val
*, long))(var_suff
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_suff
, var_i
) /* [] on <var_suff:Array[Int]>*/;
1469 { /* Inline kernel#Int#- (var100,var103) */
1470 var106
= ((struct instance_kernel__Int
*)var103
)->value
; /* autounbox from nullable Object to Int */;
1471 var107
= var100
- var106
;
1474 RET_LABEL105
:(void)0;
1477 { /* Inline kernel#Int#- (var_m,var108) */
1478 var111
= var_m
- var108
;
1481 RET_LABEL110
:(void)0;
1483 { /* Inline kernel#Int#- (var109,var_i) */
1484 var114
= var109
- var_i
;
1487 RET_LABEL113
:(void)0;
1489 var115
= BOX_kernel__Int(var112
); /* autobox from Int to nullable Object */
1490 ((void (*)(val
*, long, val
*))(var98
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var98
, var104
, var115
) /* []= on <var98:Array[Int]>*/;
1492 { /* Inline kernel#Int#+ (var_i,var116) */
1493 var119
= var_i
+ var116
;
1496 RET_LABEL118
:(void)0;
1499 CONTINUE_label120
: (void)0;
1501 BREAK_label120
: (void)0;
1504 /* method string_search#BM_Pattern#compute_gs for (self: Object) */
1505 void VIRTUAL_string_search__BM_Pattern__compute_gs(val
* self
) {
1506 string_search__BM_Pattern__compute_gs(self
);
1509 /* method string_search#BM_Pattern#hash for (self: BM_Pattern): Int */
1510 long string_search__BM_Pattern__hash(val
* self
) {
1511 long var
/* : Int */;
1512 val
* var1
/* : String */;
1513 long var2
/* : Int */;
1514 var1
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
1516 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
1517 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 201);
1520 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__hash
]))(var1
) /* hash on <var1:String>*/;
1526 /* method string_search#BM_Pattern#hash for (self: Object): Int */
1527 long VIRTUAL_string_search__BM_Pattern__hash(val
* self
) {
1528 long var
/* : Int */;
1529 long var1
/* : Int */;
1530 var1
= string_search__BM_Pattern__hash(self
);
1535 /* method string_search#BM_Pattern#== for (self: BM_Pattern, nullable Object): Bool */
1536 short int string_search__BM_Pattern___61d_61d(val
* self
, val
* p0
) {
1537 short int var
/* : Bool */;
1538 val
* var_o
/* var o: nullable Object */;
1539 short int var1
/* : Bool */;
1540 short int var2
/* : Bool */;
1543 short int var_
/* var : Bool */;
1544 val
* var3
/* : String */;
1545 val
* var4
/* : String */;
1546 short int var5
/* : Bool */;
1548 /* <var_o:nullable Object> isa BM_Pattern */
1549 cltype
= type_string_search__BM_Pattern
.color
;
1550 idtype
= type_string_search__BM_Pattern
.id
;
1554 if(cltype
>= var_o
->type
->table_size
) {
1557 var2
= var_o
->type
->type_table
[cltype
] == idtype
;
1562 var3
= var_o
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <var_o:nullable Object(BM_Pattern)> */
1564 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
1565 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 202);
1568 var4
= self
->attrs
[COLOR_string_search__BM_Pattern___motif
].val
; /* _motif on <self:BM_Pattern> */
1570 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _motif");
1571 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 202);
1574 var5
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var3
, var4
) /* == on <var3:String>*/;
1584 /* method string_search#BM_Pattern#== for (self: Object, nullable Object): Bool */
1585 short int VIRTUAL_string_search__BM_Pattern___61d_61d(val
* self
, val
* p0
) {
1586 short int var
/* : Bool */;
1587 short int var1
/* : Bool */;
1588 var1
= string_search__BM_Pattern___61d_61d(self
, p0
);
1593 /* method string_search#Match#string for (self: Match): String */
1594 val
* string_search__Match__string(val
* self
) {
1595 val
* var
/* : String */;
1596 val
* var1
/* : String */;
1597 var1
= self
->attrs
[COLOR_string_search__Match___string
].val
; /* _string on <self:Match> */
1599 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _string");
1600 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 207);
1607 /* method string_search#Match#string for (self: Object): String */
1608 val
* VIRTUAL_string_search__Match__string(val
* self
) {
1609 val
* var
/* : String */;
1610 val
* var1
/* : String */;
1611 var1
= string_search__Match__string(self
);
1616 /* method string_search#Match#from for (self: Match): Int */
1617 long string_search__Match__from(val
* self
) {
1618 long var
/* : Int */;
1619 long var1
/* : Int */;
1620 var1
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
1625 /* method string_search#Match#from for (self: Object): Int */
1626 long VIRTUAL_string_search__Match__from(val
* self
) {
1627 long var
/* : Int */;
1628 long var1
/* : Int */;
1629 var1
= string_search__Match__from(self
);
1634 /* method string_search#Match#length for (self: Match): Int */
1635 long string_search__Match__length(val
* self
) {
1636 long var
/* : Int */;
1637 long var1
/* : Int */;
1638 var1
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
1643 /* method string_search#Match#length for (self: Object): Int */
1644 long VIRTUAL_string_search__Match__length(val
* self
) {
1645 long var
/* : Int */;
1646 long var1
/* : Int */;
1647 var1
= string_search__Match__length(self
);
1652 /* method string_search#Match#after for (self: Match): Int */
1653 long string_search__Match__after(val
* self
) {
1654 long var
/* : Int */;
1655 long var1
/* : Int */;
1656 long var2
/* : Int */;
1657 long var3
/* : Int */;
1658 long var5
/* : Int */;
1659 var1
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
1660 var2
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
1661 { /* Inline kernel#Int#+ (var1,var2) */
1672 /* method string_search#Match#after for (self: Object): Int */
1673 long VIRTUAL_string_search__Match__after(val
* self
) {
1674 long var
/* : Int */;
1675 long var1
/* : Int */;
1676 var1
= string_search__Match__after(self
);
1681 /* method string_search#Match#to_s for (self: Match): String */
1682 val
* string_search__Match__to_s(val
* self
) {
1683 val
* var
/* : String */;
1684 val
* var1
/* : String */;
1685 long var2
/* : Int */;
1686 long var3
/* : Int */;
1687 val
* var4
/* : String */;
1688 var1
= self
->attrs
[COLOR_string_search__Match___string
].val
; /* _string on <self:Match> */
1690 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _string");
1691 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 221);
1694 var2
= self
->attrs
[COLOR_string_search__Match___from
].l
; /* _from on <self:Match> */
1695 var3
= self
->attrs
[COLOR_string_search__Match___length
].l
; /* _length on <self:Match> */
1696 var4
= ((val
* (*)(val
*, long, long))(var1
->class->vft
[COLOR_string__AbstractString__substring
]))(var1
, var2
, var3
) /* substring on <var1:String>*/;
1702 /* method string_search#Match#to_s for (self: Object): String */
1703 val
* VIRTUAL_string_search__Match__to_s(val
* self
) {
1704 val
* var
/* : String */;
1705 val
* var1
/* : String */;
1706 var1
= string_search__Match__to_s(self
);
1711 /* method string_search#Match#init for (self: Match, String, Int, Int) */
1712 void string_search__Match__init(val
* self
, val
* p0
, long p1
, long p2
) {
1713 val
* var_s
/* var s: String */;
1714 long var_f
/* var f: Int */;
1715 long var_len
/* var len: Int */;
1716 long var
/* : Int */;
1717 short int var1
/* : Bool */;
1718 short int var3
/* : Bool */;
1721 const char* var_class_name
;
1722 short int var4
/* : Bool */;
1723 long var5
/* : Int */;
1724 short int var6
/* : Bool */;
1725 short int var8
/* : Bool */;
1728 const char* var_class_name11
;
1729 short int var12
/* : Bool */;
1730 long var13
/* : Int */;
1731 long var15
/* : Int */;
1732 long var16
/* : Int */;
1733 short int var17
/* : Bool */;
1734 short int var19
/* : Bool */;
1737 const char* var_class_name22
;
1738 short int var23
/* : Bool */;
1743 { /* Inline kernel#Int#>= (var_len,var) */
1744 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
1745 /* <var:Int> isa OTHER */
1746 var3
= 1; /* easy <var:Int> isa OTHER*/
1748 var_class_name
= type_kernel__Int
.name
;
1749 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1750 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
1753 var4
= var_len
>= var
;
1759 fprintf(stderr
, "Runtime error: %s", "Assert \'positive_length\' failed");
1760 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 226);
1764 { /* Inline kernel#Int#>= (var_f,var5) */
1765 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
1766 /* <var5:Int> isa OTHER */
1767 var8
= 1; /* easy <var5:Int> isa OTHER*/
1769 var_class_name11
= type_kernel__Int
.name
;
1770 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11
);
1771 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
1774 var12
= var_f
>= var5
;
1780 fprintf(stderr
, "Runtime error: %s", "Assert \'valid_from\' failed");
1781 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 227);
1784 { /* Inline kernel#Int#+ (var_f,var_len) */
1785 var15
= var_f
+ var_len
;
1788 RET_LABEL14
:(void)0;
1790 var16
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
1791 { /* Inline kernel#Int#<= (var13,var16) */
1792 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
1793 /* <var16:Int> isa OTHER */
1794 var19
= 1; /* easy <var16:Int> isa OTHER*/
1796 var_class_name22
= type_kernel__Int
.name
;
1797 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22
);
1798 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
1801 var23
= var13
<= var16
;
1804 RET_LABEL18
:(void)0;
1807 fprintf(stderr
, "Runtime error: %s", "Assert \'valid_after\' failed");
1808 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 228);
1811 self
->attrs
[COLOR_string_search__Match___string
].val
= var_s
; /* _string on <self:Match> */
1812 self
->attrs
[COLOR_string_search__Match___from
].l
= var_f
; /* _from on <self:Match> */
1813 self
->attrs
[COLOR_string_search__Match___length
].l
= var_len
; /* _length on <self:Match> */
1816 /* method string_search#Match#init for (self: Object, String, Int, Int) */
1817 void VIRTUAL_string_search__Match__init(val
* self
, val
* p0
, long p1
, long p2
) {
1818 string_search__Match__init(self
, p0
, p1
, p2
);
1821 /* method string_search#Char#search_index_in for (self: Char, String, Int): Int */
1822 long string_search__Char__search_index_in(char self
, val
* p0
, long p1
) {
1823 long var
/* : Int */;
1824 val
* var_s
/* var s: String */;
1825 long var_from
/* var from: Int */;
1826 long var1
/* : Int */;
1827 long var_stop
/* var stop: Int */;
1828 short int var2
/* : Bool */;
1829 short int var4
/* : Bool */;
1832 const char* var_class_name
;
1833 short int var5
/* : Bool */;
1834 val
* var6
/* : nullable Object */;
1835 short int var7
/* : Bool */;
1836 short int var9
/* : Bool */;
1837 char var10
/* : Char */;
1838 long var11
/* : Int */;
1839 long var12
/* : Int */;
1840 long var14
/* : Int */;
1841 long var15
/* : Int */;
1842 long var16
/* : Int */;
1843 long var18
/* : Int */;
1846 var1
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
1849 { /* Inline kernel#Int#< (var_from,var_stop) */
1850 /* Covariant cast for argument 0 (i) <var_stop:Int> isa OTHER */
1851 /* <var_stop:Int> isa OTHER */
1852 var4
= 1; /* easy <var_stop:Int> isa OTHER*/
1854 var_class_name
= type_kernel__Int
.name
;
1855 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1856 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1859 var5
= var_from
< var_stop
;
1865 var6
= ((val
* (*)(val
*, long))(var_s
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_s
, var_from
) /* [] on <var_s:String>*/;
1866 { /* Inline kernel#Char#== (var6,self) */
1867 var9
= (var6
!= NULL
) && (var6
->class == &class_kernel__Char
);
1869 var10
= ((struct instance_kernel__Char
*)var6
)->value
; /* autounbox from nullable Object to Char */;
1870 var9
= (var10
== self
);
1882 { /* Inline kernel#Int#+ (var_from,var11) */
1883 var14
= var_from
+ var11
;
1886 RET_LABEL13
:(void)0;
1889 CONTINUE_label
: (void)0;
1891 BREAK_label
: (void)0;
1893 { /* Inline kernel#Int#unary - (var15) */
1897 RET_LABEL17
:(void)0;
1904 /* method string_search#Char#search_index_in for (self: Object, String, Int): Int */
1905 long VIRTUAL_string_search__Char__search_index_in(val
* self
, val
* p0
, long p1
) {
1906 long var
/* : Int */;
1907 long var1
/* : Int */;
1908 char var2
/* : Char */;
1909 var2
= ((struct instance_kernel__Char
*)self
)->value
; /* autounbox from Object to Char */;
1910 var1
= string_search__Char__search_index_in(var2
, p0
, p1
);
1915 /* method string_search#Char#search_in for (self: Char, String, Int): nullable Match */
1916 val
* string_search__Char__search_in(char self
, val
* p0
, long p1
) {
1917 val
* var
/* : nullable Match */;
1918 val
* var_s
/* var s: String */;
1919 long var_from
/* var from: Int */;
1920 long var1
/* : Int */;
1921 long var_pos
/* var pos: Int */;
1922 long var2
/* : Int */;
1923 short int var3
/* : Bool */;
1924 short int var5
/* : Bool */;
1927 const char* var_class_name
;
1928 short int var6
/* : Bool */;
1929 val
* var7
/* : null */;
1930 val
* var8
/* : Match */;
1931 long var9
/* : Int */;
1934 var1
= string_search__Char__search_index_in(self
, var_s
, var_from
);
1937 { /* Inline kernel#Int#< (var_pos,var2) */
1938 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
1939 /* <var2:Int> isa OTHER */
1940 var5
= 1; /* easy <var2:Int> isa OTHER*/
1942 var_class_name
= type_kernel__Int
.name
;
1943 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1944 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1947 var6
= var_pos
< var2
;
1957 var8
= NEW_string_search__Match(&type_string_search__Match
);
1959 ((void (*)(val
*, val
*, long, long))(var8
->class->vft
[COLOR_string_search__Match__init
]))(var8
, var_s
, var_pos
, var9
) /* init on <var8:Match>*/;
1966 /* method string_search#Char#search_in for (self: Object, String, Int): nullable Match */
1967 val
* VIRTUAL_string_search__Char__search_in(val
* self
, val
* p0
, long p1
) {
1968 val
* var
/* : nullable Match */;
1969 val
* var1
/* : nullable Match */;
1970 char var2
/* : Char */;
1971 var2
= ((struct instance_kernel__Char
*)self
)->value
; /* autounbox from Object to Char */;
1972 var1
= string_search__Char__search_in(var2
, p0
, p1
);
1977 /* method string_search#String#search_index_in for (self: String, String, Int): Int */
1978 long string_search__String__search_index_in(val
* self
, val
* p0
, long p1
) {
1979 long var
/* : Int */;
1980 val
* var_s
/* var s: String */;
1981 long var_from
/* var from: Int */;
1982 long var1
/* : Int */;
1983 short int var2
/* : Bool */;
1984 short int var4
/* : Bool */;
1987 const char* var_class_name
;
1988 short int var5
/* : Bool */;
1989 long var6
/* : Int */;
1990 long var7
/* : Int */;
1991 long var8
/* : Int */;
1992 long var10
/* : Int */;
1993 long var11
/* : Int */;
1994 long var12
/* : Int */;
1995 long var14
/* : Int */;
1996 long var_stop
/* var stop: Int */;
1997 short int var15
/* : Bool */;
1998 short int var17
/* : Bool */;
2001 const char* var_class_name20
;
2002 short int var21
/* : Bool */;
2003 long var22
/* : Int */;
2004 long var23
/* : Int */;
2005 long var24
/* : Int */;
2006 long var26
/* : Int */;
2007 long var_i
/* var i: Int */;
2008 short int var27
/* : Bool */;
2009 long var28
/* : Int */;
2010 short int var29
/* : Bool */;
2011 short int var31
/* : Bool */;
2014 const char* var_class_name34
;
2015 short int var35
/* : Bool */;
2016 short int var_
/* var : Bool */;
2017 val
* var36
/* : nullable Object */;
2018 long var37
/* : Int */;
2019 long var39
/* : Int */;
2020 val
* var40
/* : nullable Object */;
2021 short int var41
/* : Bool */;
2022 short int var43
/* : Bool */;
2023 long var44
/* : Int */;
2024 long var45
/* : Int */;
2025 long var47
/* : Int */;
2026 long var48
/* : Int */;
2027 short int var49
/* : Bool */;
2028 short int var51
/* : Bool */;
2031 const char* var_class_name54
;
2032 short int var55
/* : Bool */;
2033 long var56
/* : Int */;
2034 long var57
/* : Int */;
2035 long var59
/* : Int */;
2036 long var61
/* : Int */;
2037 long var62
/* : Int */;
2038 long var64
/* : Int */;
2042 { /* Inline kernel#Int#>= (var_from,var1) */
2043 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
2044 /* <var1:Int> isa OTHER */
2045 var4
= 1; /* easy <var1:Int> isa OTHER*/
2047 var_class_name
= type_kernel__Int
.name
;
2048 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2049 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
2052 var5
= var_from
>= var1
;
2058 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2059 fprintf(stderr
, " (%s:%d)\n", "lib/standard/string_search.nit", 264);
2062 var6
= ((long (*)(val
*))(var_s
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_s
) /* length on <var_s:String>*/;
2063 var7
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:String>*/;
2064 { /* Inline kernel#Int#- (var6,var7) */
2065 var10
= var6
- var7
;
2071 { /* Inline kernel#Int#+ (var8,var11) */
2072 var14
= var8
+ var11
;
2075 RET_LABEL13
:(void)0;
2079 { /* Inline kernel#Int#< (var_from,var_stop) */
2080 /* Covariant cast for argument 0 (i) <var_stop:Int> isa OTHER */
2081 /* <var_stop:Int> isa OTHER */
2082 var17
= 1; /* easy <var_stop:Int> isa OTHER*/
2084 var_class_name20
= type_kernel__Int
.name
;
2085 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20
);
2086 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
2089 var21
= var_from
< var_stop
;
2092 RET_LABEL16
:(void)0;
2095 var22
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:String>*/;
2097 { /* Inline kernel#Int#- (var22,var23) */
2098 var26
= var22
- var23
;
2101 RET_LABEL25
:(void)0;
2106 { /* Inline kernel#Int#>= (var_i,var28) */
2107 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
2108 /* <var28:Int> isa OTHER */
2109 var31
= 1; /* easy <var28:Int> isa OTHER*/
2111 var_class_name34
= type_kernel__Int
.name
;
2112 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34
);
2113 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
2116 var35
= var_i
>= var28
;
2119 RET_LABEL30
:(void)0;
2123 var36
= ((val
* (*)(val
*, long))(self
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(self
, var_i
) /* [] on <self:String>*/;
2124 { /* Inline kernel#Int#+ (var_i,var_from) */
2125 var39
= var_i
+ var_from
;
2128 RET_LABEL38
:(void)0;
2130 var40
= ((val
* (*)(val
*, long))(var_s
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_s
, var37
) /* [] on <var_s:String>*/;
2131 { /* Inline kernel#Char#== (var36,var40) */
2132 var43
= var36
== var40
|| (((struct instance_kernel__Char
*)var36
)->value
== ((struct instance_kernel__Char
*)var40
)->value
);
2135 RET_LABEL42
:(void)0;
2143 { /* Inline kernel#Int#- (var_i,var44) */
2144 var47
= var_i
- var44
;
2147 RET_LABEL46
:(void)0;
2150 CONTINUE_label
: (void)0;
2152 BREAK_label
: (void)0;
2154 { /* Inline kernel#Int#< (var_i,var48) */
2155 /* Covariant cast for argument 0 (i) <var48:Int> isa OTHER */
2156 /* <var48:Int> isa OTHER */
2157 var51
= 1; /* easy <var48:Int> isa OTHER*/
2159 var_class_name54
= type_kernel__Int
.name
;
2160 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name54
);
2161 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
2164 var55
= var_i
< var48
;
2167 RET_LABEL50
:(void)0;
2175 { /* Inline kernel#Int#+ (var_from,var56) */
2176 var59
= var_from
+ var56
;
2179 RET_LABEL58
:(void)0;
2182 CONTINUE_label60
: (void)0;
2184 BREAK_label60
: (void)0;
2186 { /* Inline kernel#Int#unary - (var61) */
2190 RET_LABEL63
:(void)0;
2197 /* method string_search#String#search_index_in for (self: Object, String, Int): Int */
2198 long VIRTUAL_string_search__String__search_index_in(val
* self
, val
* p0
, long p1
) {
2199 long var
/* : Int */;
2200 long var1
/* : Int */;
2201 var1
= string_search__String__search_index_in(self
, p0
, p1
);
2206 /* method string_search#String#search_in for (self: String, String, Int): nullable Match */
2207 val
* string_search__String__search_in(val
* self
, val
* p0
, long p1
) {
2208 val
* var
/* : nullable Match */;
2209 val
* var_s
/* var s: String */;
2210 long var_from
/* var from: Int */;
2211 long var1
/* : Int */;
2212 long var_pos
/* var pos: Int */;
2213 long var2
/* : Int */;
2214 short int var3
/* : Bool */;
2215 short int var5
/* : Bool */;
2218 const char* var_class_name
;
2219 short int var6
/* : Bool */;
2220 val
* var7
/* : null */;
2221 val
* var8
/* : Match */;
2222 long var9
/* : Int */;
2225 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>*/;
2228 { /* Inline kernel#Int#< (var_pos,var2) */
2229 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
2230 /* <var2:Int> isa OTHER */
2231 var5
= 1; /* easy <var2:Int> isa OTHER*/
2233 var_class_name
= type_kernel__Int
.name
;
2234 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2235 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
2238 var6
= var_pos
< var2
;
2248 var8
= NEW_string_search__Match(&type_string_search__Match
);
2249 var9
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:String>*/;
2250 ((void (*)(val
*, val
*, long, long))(var8
->class->vft
[COLOR_string_search__Match__init
]))(var8
, var_s
, var_pos
, var9
) /* init on <var8:Match>*/;
2257 /* method string_search#String#search_in for (self: Object, String, Int): nullable Match */
2258 val
* VIRTUAL_string_search__String__search_in(val
* self
, val
* p0
, long p1
) {
2259 val
* var
/* : nullable Match */;
2260 val
* var1
/* : nullable Match */;
2261 var1
= string_search__String__search_in(self
, p0
, p1
);
2266 /* method string_search#String#search for (self: String, Pattern): nullable Match */
2267 val
* string_search__String__search(val
* self
, val
* p0
) {
2268 val
* var
/* : nullable Match */;
2269 val
* var_p
/* var p: Pattern */;
2270 long var1
/* : Int */;
2271 val
* var2
/* : nullable Match */;
2274 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>*/;
2280 /* method string_search#String#search for (self: Object, Pattern): nullable Match */
2281 val
* VIRTUAL_string_search__String__search(val
* self
, val
* p0
) {
2282 val
* var
/* : nullable Match */;
2283 val
* var1
/* : nullable Match */;
2284 var1
= string_search__String__search(self
, p0
);
2289 /* method string_search#String#search_from for (self: String, Pattern, Int): nullable Match */
2290 val
* string_search__String__search_from(val
* self
, val
* p0
, long p1
) {
2291 val
* var
/* : nullable Match */;
2292 val
* var_p
/* var p: Pattern */;
2293 long var_from
/* var from: Int */;
2294 val
* var1
/* : nullable Match */;
2297 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>*/;
2303 /* method string_search#String#search_from for (self: Object, Pattern, Int): nullable Match */
2304 val
* VIRTUAL_string_search__String__search_from(val
* self
, val
* p0
, long p1
) {
2305 val
* var
/* : nullable Match */;
2306 val
* var1
/* : nullable Match */;
2307 var1
= string_search__String__search_from(self
, p0
, p1
);
2312 /* method string_search#String#search_all for (self: String, Pattern): Array[Match] */
2313 val
* string_search__String__search_all(val
* self
, val
* p0
) {
2314 val
* var
/* : Array[Match] */;
2315 val
* var_p
/* var p: Pattern */;
2316 val
* var1
/* : Array[Match] */;
2318 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>*/;
2324 /* method string_search#String#search_all for (self: Object, Pattern): Array[Match] */
2325 val
* VIRTUAL_string_search__String__search_all(val
* self
, val
* p0
) {
2326 val
* var
/* : Array[Match] */;
2327 val
* var1
/* : Array[Match] */;
2328 var1
= string_search__String__search_all(self
, p0
);
2333 /* method string_search#String#split for (self: String, Pattern): Array[String] */
2334 val
* string_search__String__split(val
* self
, val
* p0
) {
2335 val
* var
/* : Array[String] */;
2336 val
* var_p
/* var p: Pattern */;
2337 val
* var1
/* : Array[Match] */;
2338 val
* var_matches
/* var matches: Array[Match] */;
2339 val
* var2
/* : Array[String] */;
2340 long var3
/* : Int */;
2341 val
* var_res
/* var res: Array[String] */;
2342 val
* var4
/* : Iterator[nullable Object] */;
2343 short int var5
/* : Bool */;
2344 val
* var6
/* : nullable Object */;
2345 val
* var_m
/* var m: Match */;
2346 val
* var7
/* : String */;
2348 var1
= ((val
* (*)(val
*, val
*))(var_p
->class->vft
[COLOR_string_search__Pattern__split_in
]))(var_p
, self
) /* split_in on <var_p:Pattern>*/;
2350 var2
= NEW_array__Array(&type_array__Arraystring__String
);
2351 var3
= ((long (*)(val
*))(var_matches
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_matches
) /* length on <var_matches:Array[Match]>*/;
2352 ((void (*)(val
*, long))(var2
->class->vft
[COLOR_array__Array__with_capacity
]))(var2
, var3
) /* with_capacity on <var2:Array[String]>*/;
2354 var4
= ((val
* (*)(val
*))(var_matches
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_matches
) /* iterator on <var_matches:Array[Match]>*/;
2356 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
2358 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
2360 var7
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_string__Object__to_s
]))(var_m
) /* to_s on <var_m:Match>*/;
2361 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var7
) /* add on <var_res:Array[String]>*/;
2362 CONTINUE_label
: (void)0;
2363 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
2365 BREAK_label
: (void)0;
2371 /* method string_search#String#split for (self: Object, Pattern): Array[String] */
2372 val
* VIRTUAL_string_search__String__split(val
* self
, val
* p0
) {
2373 val
* var
/* : Array[String] */;
2374 val
* var1
/* : Array[String] */;
2375 var1
= string_search__String__split(self
, p0
);
2380 /* method string_search#String#split_with for (self: String, Pattern): Array[String] */
2381 val
* string_search__String__split_with(val
* self
, val
* p0
) {
2382 val
* var
/* : Array[String] */;
2383 val
* var_p
/* var p: Pattern */;
2384 val
* var1
/* : Array[String] */;
2386 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_string_search__String__split
]))(self
, var_p
) /* split on <self:String>*/;
2392 /* method string_search#String#split_with for (self: Object, Pattern): Array[String] */
2393 val
* VIRTUAL_string_search__String__split_with(val
* self
, val
* p0
) {
2394 val
* var
/* : Array[String] */;
2395 val
* var1
/* : Array[String] */;
2396 var1
= string_search__String__split_with(self
, p0
);
2401 /* method string_search#String#replace for (self: String, Pattern, String): String */
2402 val
* string_search__String__replace(val
* self
, val
* p0
, val
* p1
) {
2403 val
* var
/* : String */;
2404 val
* var_p
/* var p: Pattern */;
2405 val
* var_string
/* var string: String */;
2406 val
* var1
/* : Array[String] */;
2407 val
* var2
/* : String */;
2410 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_string_search__String__split_with
]))(self
, var_p
) /* split_with on <self:String>*/;
2411 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_string__Collection__join
]))(var1
, var_string
) /* join on <var1:Array[String]>*/;
2417 /* method string_search#String#replace for (self: Object, Pattern, String): String */
2418 val
* VIRTUAL_string_search__String__replace(val
* self
, val
* p0
, val
* p1
) {
2419 val
* var
/* : String */;
2420 val
* var1
/* : String */;
2421 var1
= string_search__String__replace(self
, p0
, p1
);
2426 /* method string_search#String#html_escape for (self: String): String */
2427 val
* string_search__String__html_escape(val
* self
) {
2428 val
* var
/* : String */;
2429 val
* var_ret
/* var ret: String */;
2430 char var1
/* : Char */;
2431 short int var2
/* : Bool */;
2432 val
* var3
/* : nullable Object */;
2433 char var4
/* : Char */;
2434 static val
* varonce
;
2435 val
* var5
/* : String */;
2436 char* var6
/* : NativeString */;
2437 long var7
/* : Int */;
2438 val
* var8
/* : String */;
2439 val
* var9
/* : String */;
2440 val
* var10
/* : Pattern */;
2441 char var11
/* : Char */;
2442 short int var12
/* : Bool */;
2443 val
* var13
/* : nullable Object */;
2444 char var14
/* : Char */;
2445 static val
* varonce15
;
2446 val
* var16
/* : String */;
2447 char* var17
/* : NativeString */;
2448 long var18
/* : Int */;
2449 val
* var19
/* : String */;
2450 val
* var20
/* : String */;
2451 val
* var21
/* : Pattern */;
2452 char var22
/* : Char */;
2453 short int var23
/* : Bool */;
2454 val
* var24
/* : nullable Object */;
2455 char var25
/* : Char */;
2456 static val
* varonce26
;
2457 val
* var27
/* : String */;
2458 char* var28
/* : NativeString */;
2459 long var29
/* : Int */;
2460 val
* var30
/* : String */;
2461 val
* var31
/* : String */;
2462 val
* var32
/* : Pattern */;
2463 char var33
/* : Char */;
2464 short int var34
/* : Bool */;
2465 val
* var35
/* : nullable Object */;
2466 char var36
/* : Char */;
2467 static val
* varonce37
;
2468 val
* var38
/* : String */;
2469 char* var39
/* : NativeString */;
2470 long var40
/* : Int */;
2471 val
* var41
/* : String */;
2472 val
* var42
/* : String */;
2473 val
* var43
/* : Pattern */;
2476 var3
= BOX_kernel__Char(var1
); /* autobox from Char to nullable Object */
2477 var2
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_ret
, var3
) /* has on <var_ret:String>*/;
2485 var8
= string__NativeString__to_s_with_length(var6
, var7
);
2489 var10
= BOX_kernel__Char(var4
); /* autobox from Char to Pattern */
2490 var9
= ((val
* (*)(val
*, val
*, val
*))(var_ret
->class->vft
[COLOR_string_search__String__replace
]))(var_ret
, var10
, var5
) /* replace on <var_ret:String>*/;
2495 var13
= BOX_kernel__Char(var11
); /* autobox from Char to nullable Object */
2496 var12
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_ret
, var13
) /* has on <var_ret:String>*/;
2504 var19
= string__NativeString__to_s_with_length(var17
, var18
);
2508 var21
= BOX_kernel__Char(var14
); /* autobox from Char to Pattern */
2509 var20
= ((val
* (*)(val
*, val
*, val
*))(var_ret
->class->vft
[COLOR_string_search__String__replace
]))(var_ret
, var21
, var16
) /* replace on <var_ret:String>*/;
2514 var24
= BOX_kernel__Char(var22
); /* autobox from Char to nullable Object */
2515 var23
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_ret
, var24
) /* has on <var_ret:String>*/;
2523 var30
= string__NativeString__to_s_with_length(var28
, var29
);
2527 var32
= BOX_kernel__Char(var25
); /* autobox from Char to Pattern */
2528 var31
= ((val
* (*)(val
*, val
*, val
*))(var_ret
->class->vft
[COLOR_string_search__String__replace
]))(var_ret
, var32
, var27
) /* replace on <var_ret:String>*/;
2533 var35
= BOX_kernel__Char(var33
); /* autobox from Char to nullable Object */
2534 var34
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_ret
, var35
) /* has on <var_ret:String>*/;
2542 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2546 var43
= BOX_kernel__Char(var36
); /* autobox from Char to Pattern */
2547 var42
= ((val
* (*)(val
*, val
*, val
*))(var_ret
->class->vft
[COLOR_string_search__String__replace
]))(var_ret
, var43
, var38
) /* replace on <var_ret:String>*/;
2556 /* method string_search#String#html_escape for (self: Object): String */
2557 val
* VIRTUAL_string_search__String__html_escape(val
* self
) {
2558 val
* var
/* : String */;
2559 val
* var1
/* : String */;
2560 var1
= string_search__String__html_escape(self
);