27c18d516a74a6c08343e4bbc797c8954f0edf09
[nit.git] / c_src / standard___string_search._sep.c
1 /* This C file is generated by NIT to compile module standard___string_search. */
2 #include "standard___string_search._sep.h"
3 val_t standard___string_search___Pattern___search_index_in(val_t p0, val_t p1, val_t p2){
4 struct {struct stack_frame_t me;} fra;
5 val_t tmp;
6 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7 fra.me.file = LOCATE_standard___string_search;
8 fra.me.line = 21;
9 fra.me.meth = LOCATE_standard___string_search___Pattern___search_index_in;
10 fra.me.has_broke = 0;
11 fra.me.REG_size = 0;
12 /* ./../lib/standard//string_search.nit:21 */
13 nit_abort("Deferred method called", NULL, LOCATE_standard___string_search, 21);
14 stack_frame_head = fra.me.prev;
15 return NIT_NULL;
16 }
17 val_t standard___string_search___Pattern___search_in(val_t p0, val_t p1, val_t p2){
18 struct {struct stack_frame_t me;} fra;
19 val_t tmp;
20 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21 fra.me.file = LOCATE_standard___string_search;
22 fra.me.line = 26;
23 fra.me.meth = LOCATE_standard___string_search___Pattern___search_in;
24 fra.me.has_broke = 0;
25 fra.me.REG_size = 0;
26 /* ./../lib/standard//string_search.nit:26 */
27 nit_abort("Deferred method called", NULL, LOCATE_standard___string_search, 26);
28 stack_frame_head = fra.me.prev;
29 return NIT_NULL;
30 }
31 val_t standard___string_search___Pattern___search_all_in(val_t p0, val_t p1){
32 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33 val_t REGB0;
34 val_t REGB1;
35 val_t tmp;
36 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37 fra.me.file = LOCATE_standard___string_search;
38 fra.me.line = 30;
39 fra.me.meth = LOCATE_standard___string_search___Pattern___search_all_in;
40 fra.me.has_broke = 0;
41 fra.me.REG_size = 5;
42 fra.me.REG[0] = NIT_NULL;
43 fra.me.REG[1] = NIT_NULL;
44 fra.me.REG[2] = NIT_NULL;
45 fra.me.REG[3] = NIT_NULL;
46 fra.me.REG[4] = NIT_NULL;
47 fra.me.REG[0] = p0;
48 fra.me.REG[1] = p1;
49 /* ./../lib/standard//string_search.nit:33 */
50 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
51 /* ./../lib/standard//string_search.nit:34 */
52 REGB0 = TAG_Int(0);
53 fra.me.REG[3] = CALL_standard___string_search___Pattern___search_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
54 /* ./../lib/standard//string_search.nit:35 */
55 while(1) {
56 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
57 if (UNTAG_Bool(REGB0)) {
58 } else {
59 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
60 if (UNTAG_Bool(REGB1)) {
61 REGB1 = TAG_Bool(false);
62 REGB0 = REGB1;
63 } else {
64 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
65 REGB0 = REGB1;
66 }
67 }
68 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
69 if (UNTAG_Bool(REGB0)) {
70 /* ./../lib/standard//string_search.nit:36 */
71 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
72 /* ./../lib/standard//string_search.nit:37 */
73 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
74 if (UNTAG_Bool(REGB0)) {
75 nit_abort("Reciever is null", NULL, LOCATE_standard___string_search, 37);
76 }
77 REGB0 = CALL_standard___string_search___Match___after(fra.me.REG[3])(fra.me.REG[3]);
78 fra.me.REG[4] = CALL_standard___string_search___Pattern___search_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
79 fra.me.REG[3] = fra.me.REG[4];
80 } else {
81 /* ./../lib/standard//string_search.nit:35 */
82 goto label1;
83 }
84 }
85 label1: while(0);
86 /* ./../lib/standard//string_search.nit:39 */
87 goto label2;
88 label2: while(0);
89 stack_frame_head = fra.me.prev;
90 return fra.me.REG[2];
91 }
92 val_t standard___string_search___Pattern___split_in(val_t p0, val_t p1){
93 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
94 val_t REGB0;
95 val_t REGB1;
96 val_t REGB2;
97 val_t tmp;
98 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
99 fra.me.file = LOCATE_standard___string_search;
100 fra.me.line = 42;
101 fra.me.meth = LOCATE_standard___string_search___Pattern___split_in;
102 fra.me.has_broke = 0;
103 fra.me.REG_size = 5;
104 fra.me.REG[0] = NIT_NULL;
105 fra.me.REG[1] = NIT_NULL;
106 fra.me.REG[2] = NIT_NULL;
107 fra.me.REG[3] = NIT_NULL;
108 fra.me.REG[4] = NIT_NULL;
109 fra.me.REG[0] = p0;
110 fra.me.REG[1] = p1;
111 /* ./../lib/standard//string_search.nit:45 */
112 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
113 /* ./../lib/standard//string_search.nit:46 */
114 REGB0 = TAG_Int(0);
115 /* ./../lib/standard//string_search.nit:47 */
116 REGB1 = TAG_Int(0);
117 fra.me.REG[3] = CALL_standard___string_search___Pattern___search_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB1);
118 /* ./../lib/standard//string_search.nit:48 */
119 while(1) {
120 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
121 if (UNTAG_Bool(REGB1)) {
122 } else {
123 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
124 if (UNTAG_Bool(REGB2)) {
125 REGB2 = TAG_Bool(false);
126 REGB1 = REGB2;
127 } else {
128 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
129 REGB1 = REGB2;
130 }
131 }
132 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
133 if (UNTAG_Bool(REGB1)) {
134 /* ./../lib/standard//string_search.nit:50 */
135 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
136 if (UNTAG_Bool(REGB1)) {
137 nit_abort("Reciever is null", NULL, LOCATE_standard___string_search, 50);
138 }
139 REGB1 = CALL_standard___string_search___Match___from(fra.me.REG[3])(fra.me.REG[3]);
140 /* ./../lib/standard//kernel.nit:237 */
141 REGB1 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
142 /* ./../lib/standard//string_search.nit:51 */
143 fra.me.REG[4] = NEW_Match_standard___string_search___Match___init(fra.me.REG[1], REGB0, REGB1);
144 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
145 /* ./../lib/standard//string_search.nit:52 */
146 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
147 if (UNTAG_Bool(REGB1)) {
148 nit_abort("Reciever is null", NULL, LOCATE_standard___string_search, 52);
149 }
150 REGB1 = CALL_standard___string_search___Match___after(fra.me.REG[3])(fra.me.REG[3]);
151 REGB0 = REGB1;
152 /* ./../lib/standard//string_search.nit:53 */
153 fra.me.REG[4] = CALL_standard___string_search___Pattern___search_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
154 fra.me.REG[3] = fra.me.REG[4];
155 } else {
156 /* ./../lib/standard//string_search.nit:48 */
157 goto label1;
158 }
159 }
160 label1: while(0);
161 /* ./../lib/standard//collection//array.nit:24 */
162 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
163 if (UNTAG_Bool(REGB1)) {
164 } else {
165 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
166 }
167 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
168 /* ./../lib/standard//kernel.nit:237 */
169 REGB1 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
170 /* ./../lib/standard//string_search.nit:56 */
171 fra.me.REG[1] = NEW_Match_standard___string_search___Match___init(fra.me.REG[1], REGB0, REGB1);
172 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
173 /* ./../lib/standard//string_search.nit:57 */
174 goto label2;
175 label2: while(0);
176 stack_frame_head = fra.me.prev;
177 return fra.me.REG[2];
178 }
179 val_t standard___string_search___BM_Pattern___to_s(val_t p0){
180 struct {struct stack_frame_t me;} fra;
181 val_t REGB0;
182 val_t tmp;
183 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
184 fra.me.file = LOCATE_standard___string_search;
185 fra.me.line = 68;
186 fra.me.meth = LOCATE_standard___string_search___BM_Pattern___to_s;
187 fra.me.has_broke = 0;
188 fra.me.REG_size = 1;
189 fra.me.REG[0] = NIT_NULL;
190 fra.me.REG[0] = p0;
191 /* ./../lib/standard//string_search.nit:68 */
192 REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
193 if (UNTAG_Bool(REGB0)) {
194 } else {
195 nit_abort("Uninitialized attribute %s", "_motif", LOCATE_standard___string_search, 68);
196 }
197 fra.me.REG[0] = ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0]);
198 goto label1;
199 label1: while(0);
200 stack_frame_head = fra.me.prev;
201 return fra.me.REG[0];
202 }
203 val_t standard___string_search___BM_Pattern___search_index_in(val_t p0, val_t p1, val_t p2){
204 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
205 val_t REGB0;
206 val_t REGB1;
207 val_t REGB2;
208 val_t REGB3;
209 val_t REGB4;
210 val_t REGB5;
211 val_t REGB6;
212 val_t REGB7;
213 val_t tmp;
214 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
215 fra.me.file = LOCATE_standard___string_search;
216 fra.me.line = 70;
217 fra.me.meth = LOCATE_standard___string_search___BM_Pattern___search_index_in;
218 fra.me.has_broke = 0;
219 fra.me.REG_size = 3;
220 fra.me.REG[0] = NIT_NULL;
221 fra.me.REG[1] = NIT_NULL;
222 fra.me.REG[2] = NIT_NULL;
223 fra.me.REG[0] = p0;
224 fra.me.REG[1] = p1;
225 REGB0 = p2;
226 /* ./../lib/standard//string_search.nit:73 */
227 REGB1 = TAG_Int(0);
228 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
229 if (UNTAG_Bool(REGB2)) {
230 } else {
231 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
232 }
233 /* ./../lib/standard//kernel.nit:233 */
234 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
235 /* ./../lib/standard//string_search.nit:73 */
236 if (UNTAG_Bool(REGB1)) {
237 } else {
238 nit_abort("Assert failed", NULL, LOCATE_standard___string_search, 73);
239 }
240 /* ./../lib/standard//collection//array.nit:24 */
241 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
242 if (UNTAG_Bool(REGB1)) {
243 } else {
244 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
245 }
246 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
247 /* ./../lib/standard//string_search.nit:75 */
248 REGB2 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
249 if (UNTAG_Bool(REGB2)) {
250 } else {
251 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 75);
252 }
253 REGB2 = ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]);
254 /* ./../lib/standard//string_search.nit:78 */
255 while(1) {
256 /* ./../lib/standard//kernel.nit:237 */
257 REGB3 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
258 /* ./../lib/standard//string_search.nit:78 */
259 REGB4 = TAG_Int(1);
260 /* ./../lib/standard//kernel.nit:235 */
261 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
262 REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
263 if (UNTAG_Bool(REGB3)) {
264 } else {
265 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
266 }
267 /* ./../lib/standard//kernel.nit:232 */
268 REGB4 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB4));
269 /* ./../lib/standard//string_search.nit:78 */
270 if (UNTAG_Bool(REGB4)) {
271 /* ./../lib/standard//string_search.nit:79 */
272 REGB4 = TAG_Int(1);
273 /* ./../lib/standard//kernel.nit:237 */
274 REGB4 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB4));
275 /* ./../lib/standard//string_search.nit:80 */
276 while(1) {
277 REGB3 = TAG_Int(0);
278 REGB5 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
279 if (UNTAG_Bool(REGB5)) {
280 } else {
281 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
282 }
283 /* ./../lib/standard//kernel.nit:233 */
284 REGB3 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB3));
285 /* ./../lib/standard//string_search.nit:80 */
286 if (UNTAG_Bool(REGB3)) {
287 REGB3 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
288 if (UNTAG_Bool(REGB3)) {
289 } else {
290 nit_abort("Uninitialized attribute %s", "_motif", LOCATE_standard___string_search, 80);
291 }
292 fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0]);
293 REGB3 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB4);
294 /* ./../lib/standard//kernel.nit:235 */
295 REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB0));
296 /* ./../lib/standard//string_search.nit:80 */
297 REGB5 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB5);
298 REGB6 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB5));
299 if (UNTAG_Bool(REGB6)) {
300 } else {
301 /* ./../lib/standard//kernel.nit:378 */
302 REGB5 = TAG_Bool((REGB3)==(REGB5));
303 /* ./../lib/standard//string_search.nit:80 */
304 REGB6 = REGB5;
305 }
306 } else {
307 REGB5 = TAG_Bool(false);
308 REGB6 = REGB5;
309 }
310 if (UNTAG_Bool(REGB6)) {
311 REGB6 = TAG_Int(1);
312 /* ./../lib/standard//kernel.nit:237 */
313 REGB6 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB6));
314 /* ./../lib/standard//string_search.nit:80 */
315 REGB4 = REGB6;
316 } else {
317 goto label1;
318 }
319 }
320 label1: while(0);
321 /* ./../lib/standard//string_search.nit:81 */
322 REGB6 = TAG_Int(0);
323 REGB5 = TAG_Bool(VAL_ISA(REGB6, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
324 if (UNTAG_Bool(REGB5)) {
325 } else {
326 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
327 }
328 /* ./../lib/standard//kernel.nit:232 */
329 REGB6 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB6));
330 /* ./../lib/standard//string_search.nit:81 */
331 if (UNTAG_Bool(REGB6)) {
332 /* ./../lib/standard//string_search.nit:82 */
333 REGB6 = REGB0;
334 goto label2;
335 } else {
336 /* ./../lib/standard//string_search.nit:84 */
337 REGB5 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
338 if (UNTAG_Bool(REGB5)) {
339 } else {
340 nit_abort("Uninitialized attribute %s", "_gs", LOCATE_standard___string_search, 84);
341 }
342 fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0]);
343 /* ./../lib/standard//collection//array.nit:278 */
344 REGB5 = REGB4;
345 /* ./../lib/standard//collection//array.nit:280 */
346 REGB3 = TAG_Int(0);
347 REGB7 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
348 if (UNTAG_Bool(REGB7)) {
349 } else {
350 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
351 }
352 /* ./../lib/standard//kernel.nit:233 */
353 REGB3 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB3));
354 /* ./../lib/standard//collection//array.nit:280 */
355 if (UNTAG_Bool(REGB3)) {
356 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
357 if (UNTAG_Bool(REGB3)) {
358 } else {
359 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
360 }
361 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
362 REGB7 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
363 if (UNTAG_Bool(REGB7)) {
364 } else {
365 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
366 }
367 /* ./../lib/standard//kernel.nit:232 */
368 REGB3 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB3));
369 } else {
370 /* ./../lib/standard//collection//array.nit:280 */
371 REGB7 = TAG_Bool(false);
372 REGB3 = REGB7;
373 }
374 if (UNTAG_Bool(REGB3)) {
375 } else {
376 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
377 }
378 /* ./../lib/standard//collection//array.nit:281 */
379 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
380 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
381 if (UNTAG_Bool(REGB3)) {
382 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
383 }
384 /* ./../lib/standard//collection//array.nit:718 */
385 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
386 /* ./../lib/standard//collection//array.nit:281 */
387 goto label3;
388 label3: while(0);
389 /* ./../lib/standard//string_search.nit:84 */
390 REGB5 = fra.me.REG[2];
391 /* ./../lib/standard//kernel.nit:235 */
392 REGB3 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB0));
393 /* ./../lib/standard//string_search.nit:85 */
394 REGB3 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB3);
395 REGB3 = CALL_standard___string_search___BM_Pattern___bc(fra.me.REG[0])(fra.me.REG[0], REGB3);
396 /* ./../lib/standard//kernel.nit:237 */
397 REGB3 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB2));
398 /* ./../lib/standard//string_search.nit:85 */
399 REGB7 = TAG_Int(1);
400 /* ./../lib/standard//kernel.nit:235 */
401 REGB7 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB7));
402 REGB4 = TAG_Int(UNTAG_Int(REGB7)+UNTAG_Int(REGB4));
403 REGB7 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
404 if (UNTAG_Bool(REGB7)) {
405 } else {
406 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
407 }
408 /* ./../lib/standard//kernel.nit:234 */
409 REGB7 = TAG_Bool(UNTAG_Int(REGB5)>UNTAG_Int(REGB4));
410 /* ./../lib/standard//string_search.nit:87 */
411 if (UNTAG_Bool(REGB7)) {
412 /* ./../lib/standard//kernel.nit:235 */
413 REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
414 /* ./../lib/standard//string_search.nit:88 */
415 REGB0 = REGB5;
416 } else {
417 /* ./../lib/standard//kernel.nit:235 */
418 REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
419 /* ./../lib/standard//string_search.nit:90 */
420 REGB0 = REGB4;
421 }
422 }
423 } else {
424 /* ./../lib/standard//string_search.nit:78 */
425 goto label4;
426 }
427 }
428 label4: while(0);
429 /* ./../lib/standard//string_search.nit:94 */
430 REGB0 = TAG_Int(1);
431 /* ./../lib/standard//kernel.nit:236 */
432 REGB0 = TAG_Int(-UNTAG_Int(REGB0));
433 /* ./../lib/standard//string_search.nit:94 */
434 REGB6 = REGB0;
435 goto label2;
436 label2: while(0);
437 stack_frame_head = fra.me.prev;
438 return REGB6;
439 }
440 val_t standard___string_search___BM_Pattern___search_in(val_t p0, val_t p1, val_t p2){
441 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
442 val_t REGB0;
443 val_t REGB1;
444 val_t REGB2;
445 val_t tmp;
446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
447 fra.me.file = LOCATE_standard___string_search;
448 fra.me.line = 97;
449 fra.me.meth = LOCATE_standard___string_search___BM_Pattern___search_in;
450 fra.me.has_broke = 0;
451 fra.me.REG_size = 3;
452 fra.me.REG[0] = NIT_NULL;
453 fra.me.REG[1] = NIT_NULL;
454 fra.me.REG[2] = NIT_NULL;
455 fra.me.REG[0] = p0;
456 fra.me.REG[1] = p1;
457 REGB0 = p2;
458 /* ./../lib/standard//string_search.nit:100 */
459 REGB0 = CALL_standard___string_search___Pattern___search_index_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
460 /* ./../lib/standard//string_search.nit:101 */
461 REGB1 = TAG_Int(0);
462 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
463 if (UNTAG_Bool(REGB2)) {
464 } else {
465 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
466 }
467 /* ./../lib/standard//kernel.nit:232 */
468 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
469 /* ./../lib/standard//string_search.nit:101 */
470 if (UNTAG_Bool(REGB1)) {
471 /* ./../lib/standard//string_search.nit:102 */
472 fra.me.REG[2] = NIT_NULL;
473 goto label1;
474 } else {
475 /* ./../lib/standard//string_search.nit:104 */
476 REGB1 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
477 if (UNTAG_Bool(REGB1)) {
478 } else {
479 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 104);
480 }
481 REGB1 = ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]);
482 fra.me.REG[1] = NEW_Match_standard___string_search___Match___init(fra.me.REG[1], REGB0, REGB1);
483 fra.me.REG[2] = fra.me.REG[1];
484 goto label1;
485 }
486 label1: while(0);
487 stack_frame_head = fra.me.prev;
488 return fra.me.REG[2];
489 }
490 void standard___string_search___BM_Pattern___init(val_t p0, val_t p1, int* init_table){
491 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___string_search___BM_Pattern].i;
492 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
493 val_t REGB0;
494 val_t tmp;
495 if (init_table[itpos0]) return;
496 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
497 fra.me.file = LOCATE_standard___string_search;
498 fra.me.line = 108;
499 fra.me.meth = LOCATE_standard___string_search___BM_Pattern___init;
500 fra.me.has_broke = 0;
501 fra.me.REG_size = 2;
502 fra.me.REG[0] = NIT_NULL;
503 fra.me.REG[1] = NIT_NULL;
504 fra.me.REG[0] = p0;
505 fra.me.REG[1] = p1;
506 /* ./../lib/standard//string_search.nit:111 */
507 ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0]) = fra.me.REG[1];
508 /* ./../lib/standard//collection//array.nit:24 */
509 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
510 if (UNTAG_Bool(REGB0)) {
511 } else {
512 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
513 }
514 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
515 /* ./../lib/standard//string_search.nit:112 */
516 ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]) = REGB0;
517 /* ./../lib/standard//string_search.nit:113 */
518 REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
519 if (UNTAG_Bool(REGB0)) {
520 } else {
521 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 113);
522 }
523 REGB0 = ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]);
524 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
525 ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0]) = fra.me.REG[1];
526 /* ./../lib/standard//string_search.nit:114 */
527 fra.me.REG[1] = NEW_ArrayMap_standard___collection___array___ArrayMap___init();
528 ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0]) = fra.me.REG[1];
529 /* ./../lib/standard//string_search.nit:115 */
530 CALL_standard___string_search___BM_Pattern___compute_gs(fra.me.REG[0])(fra.me.REG[0]);
531 /* ./../lib/standard//string_search.nit:116 */
532 CALL_standard___string_search___BM_Pattern___compute_bc(fra.me.REG[0])(fra.me.REG[0]);
533 stack_frame_head = fra.me.prev;
534 init_table[itpos0] = 1;
535 return;
536 }
537 val_t standard___string_search___BM_Pattern___bc(val_t p0, val_t p1){
538 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
539 val_t REGB0;
540 val_t REGB1;
541 val_t tmp;
542 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
543 fra.me.file = LOCATE_standard___string_search;
544 fra.me.line = 125;
545 fra.me.meth = LOCATE_standard___string_search___BM_Pattern___bc;
546 fra.me.has_broke = 0;
547 fra.me.REG_size = 2;
548 fra.me.REG[0] = NIT_NULL;
549 fra.me.REG[1] = NIT_NULL;
550 fra.me.REG[0] = p0;
551 REGB0 = p1;
552 /* ./../lib/standard//string_search.nit:127 */
553 REGB1 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0])!=NIT_NULL);
554 if (UNTAG_Bool(REGB1)) {
555 } else {
556 nit_abort("Uninitialized attribute %s", "_bc_table", LOCATE_standard___string_search, 127);
557 }
558 fra.me.REG[1] = ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0]);
559 REGB1 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[1])(fra.me.REG[1], REGB0);
560 if (UNTAG_Bool(REGB1)) {
561 /* ./../lib/standard//string_search.nit:128 */
562 REGB1 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0])!=NIT_NULL);
563 if (UNTAG_Bool(REGB1)) {
564 } else {
565 nit_abort("Uninitialized attribute %s", "_bc_table", LOCATE_standard___string_search, 128);
566 }
567 fra.me.REG[1] = ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0]);
568 fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB0);
569 REGB0 = fra.me.REG[1];
570 goto label1;
571 } else {
572 /* ./../lib/standard//string_search.nit:130 */
573 REGB1 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
574 if (UNTAG_Bool(REGB1)) {
575 } else {
576 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 130);
577 }
578 REGB1 = ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]);
579 REGB0 = REGB1;
580 goto label1;
581 }
582 label1: while(0);
583 stack_frame_head = fra.me.prev;
584 return REGB0;
585 }
586 void standard___string_search___BM_Pattern___compute_bc(val_t p0){
587 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
588 val_t REGB0;
589 val_t REGB1;
590 val_t REGB2;
591 val_t REGB3;
592 val_t REGB4;
593 val_t tmp;
594 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
595 fra.me.file = LOCATE_standard___string_search;
596 fra.me.line = 140;
597 fra.me.meth = LOCATE_standard___string_search___BM_Pattern___compute_bc;
598 fra.me.has_broke = 0;
599 fra.me.REG_size = 3;
600 fra.me.REG[0] = NIT_NULL;
601 fra.me.REG[1] = NIT_NULL;
602 fra.me.REG[2] = NIT_NULL;
603 fra.me.REG[0] = p0;
604 /* ./../lib/standard//string_search.nit:142 */
605 REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
606 if (UNTAG_Bool(REGB0)) {
607 } else {
608 nit_abort("Uninitialized attribute %s", "_motif", LOCATE_standard___string_search, 142);
609 }
610 fra.me.REG[1] = ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0]);
611 /* ./../lib/standard//string_search.nit:143 */
612 REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
613 if (UNTAG_Bool(REGB0)) {
614 } else {
615 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 143);
616 }
617 REGB0 = ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]);
618 /* ./../lib/standard//string_search.nit:144 */
619 REGB1 = TAG_Int(0);
620 /* ./../lib/standard//string_search.nit:145 */
621 while(1) {
622 REGB2 = TAG_Int(1);
623 /* ./../lib/standard//kernel.nit:237 */
624 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
625 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
626 if (UNTAG_Bool(REGB3)) {
627 } else {
628 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
629 }
630 /* ./../lib/standard//kernel.nit:232 */
631 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
632 /* ./../lib/standard//string_search.nit:145 */
633 if (UNTAG_Bool(REGB2)) {
634 /* ./../lib/standard//string_search.nit:146 */
635 REGB2 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0])!=NIT_NULL);
636 if (UNTAG_Bool(REGB2)) {
637 } else {
638 nit_abort("Uninitialized attribute %s", "_bc_table", LOCATE_standard___string_search, 146);
639 }
640 fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0]);
641 REGB2 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB1);
642 /* ./../lib/standard//kernel.nit:237 */
643 REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
644 /* ./../lib/standard//string_search.nit:146 */
645 REGB4 = TAG_Int(1);
646 /* ./../lib/standard//kernel.nit:237 */
647 REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
648 /* ./../lib/standard//string_search.nit:146 */
649 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB4);
650 /* ./../lib/standard//string_search.nit:147 */
651 REGB4 = TAG_Int(1);
652 /* ./../lib/standard//kernel.nit:235 */
653 REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
654 /* ./../lib/standard//string_search.nit:147 */
655 REGB1 = REGB4;
656 } else {
657 /* ./../lib/standard//string_search.nit:145 */
658 goto label1;
659 }
660 }
661 label1: while(0);
662 stack_frame_head = fra.me.prev;
663 return;
664 }
665 val_t standard___string_search___BM_Pattern___suffixes(val_t p0){
666 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
667 val_t REGB0;
668 val_t REGB1;
669 val_t REGB2;
670 val_t REGB3;
671 val_t REGB4;
672 val_t REGB5;
673 val_t REGB6;
674 val_t tmp;
675 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
676 fra.me.file = LOCATE_standard___string_search;
677 fra.me.line = 151;
678 fra.me.meth = LOCATE_standard___string_search___BM_Pattern___suffixes;
679 fra.me.has_broke = 0;
680 fra.me.REG_size = 3;
681 fra.me.REG[0] = NIT_NULL;
682 fra.me.REG[1] = NIT_NULL;
683 fra.me.REG[2] = NIT_NULL;
684 fra.me.REG[0] = p0;
685 /* ./../lib/standard//string_search.nit:153 */
686 REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
687 if (UNTAG_Bool(REGB0)) {
688 } else {
689 nit_abort("Uninitialized attribute %s", "_motif", LOCATE_standard___string_search, 153);
690 }
691 fra.me.REG[1] = ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0]);
692 /* ./../lib/standard//string_search.nit:154 */
693 REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
694 if (UNTAG_Bool(REGB0)) {
695 } else {
696 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 154);
697 }
698 REGB0 = ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]);
699 /* ./../lib/standard//string_search.nit:155 */
700 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___filled_with(REGB0, REGB0);
701 /* ./../lib/standard//string_search.nit:157 */
702 REGB1 = TAG_Int(0);
703 /* ./../lib/standard//string_search.nit:158 */
704 REGB2 = TAG_Int(1);
705 /* ./../lib/standard//kernel.nit:237 */
706 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
707 /* ./../lib/standard//string_search.nit:159 */
708 REGB3 = TAG_Int(2);
709 /* ./../lib/standard//kernel.nit:237 */
710 REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB3));
711 /* ./../lib/standard//string_search.nit:160 */
712 while(1) {
713 REGB4 = TAG_Int(0);
714 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
715 if (UNTAG_Bool(REGB5)) {
716 } else {
717 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
718 }
719 /* ./../lib/standard//kernel.nit:233 */
720 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
721 /* ./../lib/standard//string_search.nit:160 */
722 if (UNTAG_Bool(REGB4)) {
723 REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
724 if (UNTAG_Bool(REGB4)) {
725 } else {
726 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
727 }
728 /* ./../lib/standard//kernel.nit:234 */
729 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
730 /* ./../lib/standard//string_search.nit:161 */
731 if (UNTAG_Bool(REGB4)) {
732 /* ./../lib/standard//kernel.nit:235 */
733 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
734 /* ./../lib/standard//string_search.nit:161 */
735 REGB5 = TAG_Int(1);
736 /* ./../lib/standard//kernel.nit:237 */
737 REGB5 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB5));
738 REGB5 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB1));
739 /* ./../lib/standard//collection//array.nit:278 */
740 fra.me.REG[2] = fra.me.REG[0];
741 /* ./../lib/standard//collection//array.nit:280 */
742 REGB4 = TAG_Int(0);
743 REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
744 if (UNTAG_Bool(REGB6)) {
745 } else {
746 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
747 }
748 /* ./../lib/standard//kernel.nit:233 */
749 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
750 /* ./../lib/standard//collection//array.nit:280 */
751 if (UNTAG_Bool(REGB4)) {
752 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
753 if (UNTAG_Bool(REGB4)) {
754 } else {
755 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
756 }
757 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
758 REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
759 if (UNTAG_Bool(REGB6)) {
760 } else {
761 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
762 }
763 /* ./../lib/standard//kernel.nit:232 */
764 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
765 } else {
766 /* ./../lib/standard//collection//array.nit:280 */
767 REGB6 = TAG_Bool(false);
768 REGB4 = REGB6;
769 }
770 if (UNTAG_Bool(REGB4)) {
771 } else {
772 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
773 }
774 /* ./../lib/standard//collection//array.nit:281 */
775 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
776 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
777 if (UNTAG_Bool(REGB4)) {
778 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
779 }
780 /* ./../lib/standard//collection//array.nit:718 */
781 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
782 /* ./../lib/standard//collection//array.nit:281 */
783 goto label1;
784 label1: while(0);
785 /* ./../lib/standard//kernel.nit:237 */
786 REGB5 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB2));
787 /* ./../lib/standard//string_search.nit:161 */
788 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
789 if (UNTAG_Bool(REGB4)) {
790 nit_abort("Reciever is null", NULL, LOCATE_standard___string_search, 161);
791 }
792 REGB4 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(fra.me.REG[2]), VTID_standard___kernel___Comparable___OTHER(fra.me.REG[2]))) /*cast OTHER*/;
793 if (UNTAG_Bool(REGB4)) {
794 } else {
795 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
796 }
797 /* ./../lib/standard//kernel.nit:232 */
798 REGB5 = TAG_Bool(UNTAG_Int(fra.me.REG[2])<UNTAG_Int(REGB5));
799 } else {
800 /* ./../lib/standard//string_search.nit:161 */
801 REGB4 = TAG_Bool(false);
802 REGB5 = REGB4;
803 }
804 if (UNTAG_Bool(REGB5)) {
805 /* ./../lib/standard//kernel.nit:235 */
806 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
807 /* ./../lib/standard//string_search.nit:162 */
808 REGB4 = TAG_Int(1);
809 /* ./../lib/standard//kernel.nit:237 */
810 REGB4 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB4));
811 REGB4 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB1));
812 /* ./../lib/standard//collection//array.nit:278 */
813 fra.me.REG[2] = fra.me.REG[0];
814 /* ./../lib/standard//collection//array.nit:280 */
815 REGB5 = TAG_Int(0);
816 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
817 if (UNTAG_Bool(REGB6)) {
818 } else {
819 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
820 }
821 /* ./../lib/standard//kernel.nit:233 */
822 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
823 /* ./../lib/standard//collection//array.nit:280 */
824 if (UNTAG_Bool(REGB5)) {
825 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
826 if (UNTAG_Bool(REGB5)) {
827 } else {
828 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
829 }
830 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
831 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
832 if (UNTAG_Bool(REGB6)) {
833 } else {
834 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
835 }
836 /* ./../lib/standard//kernel.nit:232 */
837 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
838 } else {
839 /* ./../lib/standard//collection//array.nit:280 */
840 REGB6 = TAG_Bool(false);
841 REGB5 = REGB6;
842 }
843 if (UNTAG_Bool(REGB5)) {
844 } else {
845 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
846 }
847 /* ./../lib/standard//collection//array.nit:281 */
848 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
849 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
850 if (UNTAG_Bool(REGB5)) {
851 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
852 }
853 /* ./../lib/standard//collection//array.nit:718 */
854 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
855 /* ./../lib/standard//collection//array.nit:281 */
856 goto label2;
857 label2: while(0);
858 /* ./../lib/standard//string_search.nit:162 */
859 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[2]);
860 } else {
861 REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
862 if (UNTAG_Bool(REGB4)) {
863 } else {
864 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
865 }
866 /* ./../lib/standard//kernel.nit:232 */
867 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
868 /* ./../lib/standard//string_search.nit:164 */
869 if (UNTAG_Bool(REGB4)) {
870 REGB2 = REGB3;
871 }
872 /* ./../lib/standard//string_search.nit:165 */
873 REGB1 = REGB3;
874 /* ./../lib/standard//string_search.nit:166 */
875 while(1) {
876 REGB4 = TAG_Int(0);
877 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
878 if (UNTAG_Bool(REGB5)) {
879 } else {
880 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
881 }
882 /* ./../lib/standard//kernel.nit:233 */
883 REGB4 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB4));
884 /* ./../lib/standard//string_search.nit:166 */
885 if (UNTAG_Bool(REGB4)) {
886 REGB4 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB2);
887 /* ./../lib/standard//kernel.nit:235 */
888 REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
889 /* ./../lib/standard//string_search.nit:166 */
890 REGB6 = TAG_Int(1);
891 /* ./../lib/standard//kernel.nit:237 */
892 REGB6 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB6));
893 REGB6 = TAG_Int(UNTAG_Int(REGB6)-UNTAG_Int(REGB1));
894 /* ./../lib/standard//string_search.nit:166 */
895 REGB6 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB6);
896 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB6));
897 if (UNTAG_Bool(REGB5)) {
898 } else {
899 /* ./../lib/standard//kernel.nit:378 */
900 REGB6 = TAG_Bool((REGB4)==(REGB6));
901 /* ./../lib/standard//string_search.nit:166 */
902 REGB5 = REGB6;
903 }
904 } else {
905 REGB6 = TAG_Bool(false);
906 REGB5 = REGB6;
907 }
908 if (UNTAG_Bool(REGB5)) {
909 REGB5 = TAG_Int(1);
910 /* ./../lib/standard//kernel.nit:237 */
911 REGB5 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB5));
912 /* ./../lib/standard//string_search.nit:166 */
913 REGB2 = REGB5;
914 } else {
915 goto label3;
916 }
917 }
918 label3: while(0);
919 /* ./../lib/standard//kernel.nit:237 */
920 REGB5 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
921 /* ./../lib/standard//string_search.nit:167 */
922 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, REGB5);
923 }
924 /* ./../lib/standard//string_search.nit:169 */
925 REGB5 = TAG_Int(1);
926 /* ./../lib/standard//kernel.nit:237 */
927 REGB5 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB5));
928 /* ./../lib/standard//string_search.nit:169 */
929 REGB3 = REGB5;
930 } else {
931 /* ./../lib/standard//string_search.nit:160 */
932 goto label4;
933 }
934 }
935 label4: while(0);
936 /* ./../lib/standard//string_search.nit:171 */
937 goto label5;
938 label5: while(0);
939 stack_frame_head = fra.me.prev;
940 return fra.me.REG[0];
941 }
942 void standard___string_search___BM_Pattern___compute_gs(val_t p0){
943 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
944 val_t REGB0;
945 val_t REGB1;
946 val_t REGB2;
947 val_t REGB3;
948 val_t REGB4;
949 val_t REGB5;
950 val_t REGB6;
951 val_t tmp;
952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
953 fra.me.file = LOCATE_standard___string_search;
954 fra.me.line = 174;
955 fra.me.meth = LOCATE_standard___string_search___BM_Pattern___compute_gs;
956 fra.me.has_broke = 0;
957 fra.me.REG_size = 4;
958 fra.me.REG[0] = NIT_NULL;
959 fra.me.REG[1] = NIT_NULL;
960 fra.me.REG[2] = NIT_NULL;
961 fra.me.REG[3] = NIT_NULL;
962 fra.me.REG[0] = p0;
963 /* ./../lib/standard//string_search.nit:176 */
964 REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
965 if (UNTAG_Bool(REGB0)) {
966 } else {
967 nit_abort("Uninitialized attribute %s", "_motif", LOCATE_standard___string_search, 176);
968 }
969 fra.me.REG[1] = ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0]);
970 /* ./../lib/standard//string_search.nit:177 */
971 REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
972 if (UNTAG_Bool(REGB0)) {
973 } else {
974 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 177);
975 }
976 REGB0 = ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]);
977 /* ./../lib/standard//string_search.nit:178 */
978 fra.me.REG[1] = CALL_standard___string_search___BM_Pattern___suffixes(fra.me.REG[0])(fra.me.REG[0]);
979 /* ./../lib/standard//string_search.nit:179 */
980 REGB1 = TAG_Int(0);
981 /* ./../lib/standard//string_search.nit:180 */
982 while(1) {
983 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
984 if (UNTAG_Bool(REGB2)) {
985 } else {
986 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
987 }
988 /* ./../lib/standard//kernel.nit:232 */
989 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
990 /* ./../lib/standard//string_search.nit:180 */
991 if (UNTAG_Bool(REGB2)) {
992 /* ./../lib/standard//string_search.nit:181 */
993 REGB2 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
994 if (UNTAG_Bool(REGB2)) {
995 } else {
996 nit_abort("Uninitialized attribute %s", "_gs", LOCATE_standard___string_search, 181);
997 }
998 fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0]);
999 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB1, REGB0);
1000 /* ./../lib/standard//string_search.nit:182 */
1001 REGB2 = TAG_Int(1);
1002 /* ./../lib/standard//kernel.nit:235 */
1003 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1004 /* ./../lib/standard//string_search.nit:182 */
1005 REGB1 = REGB2;
1006 } else {
1007 /* ./../lib/standard//string_search.nit:180 */
1008 goto label1;
1009 }
1010 }
1011 label1: while(0);
1012 /* ./../lib/standard//string_search.nit:184 */
1013 REGB2 = TAG_Int(0);
1014 /* ./../lib/standard//string_search.nit:185 */
1015 REGB3 = TAG_Int(1);
1016 /* ./../lib/standard//kernel.nit:237 */
1017 REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB3));
1018 /* ./../lib/standard//string_search.nit:185 */
1019 REGB1 = REGB3;
1020 /* ./../lib/standard//string_search.nit:186 */
1021 while(1) {
1022 REGB3 = TAG_Int(1);
1023 /* ./../lib/standard//kernel.nit:236 */
1024 REGB3 = TAG_Int(-UNTAG_Int(REGB3));
1025 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1026 if (UNTAG_Bool(REGB4)) {
1027 } else {
1028 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1029 }
1030 /* ./../lib/standard//kernel.nit:233 */
1031 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB3));
1032 /* ./../lib/standard//string_search.nit:186 */
1033 if (UNTAG_Bool(REGB3)) {
1034 /* ./../lib/standard//string_search.nit:187 */
1035 REGB3 = TAG_Int(1);
1036 /* ./../lib/standard//kernel.nit:236 */
1037 REGB3 = TAG_Int(-UNTAG_Int(REGB3));
1038 /* ./../lib/standard//string_search.nit:187 */
1039 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB3));
1040 if (UNTAG_Bool(REGB4)) {
1041 } else {
1042 /* ./../lib/standard//kernel.nit:227 */
1043 REGB3 = TAG_Bool((REGB1)==(REGB3));
1044 /* ./../lib/standard//string_search.nit:187 */
1045 REGB4 = REGB3;
1046 }
1047 if (UNTAG_Bool(REGB4)) {
1048 REGB4 = TAG_Bool(true);
1049 } else {
1050 /* ./../lib/standard//collection//array.nit:278 */
1051 fra.me.REG[2] = fra.me.REG[1];
1052 REGB3 = REGB1;
1053 /* ./../lib/standard//collection//array.nit:280 */
1054 REGB5 = TAG_Int(0);
1055 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1056 if (UNTAG_Bool(REGB6)) {
1057 } else {
1058 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1059 }
1060 /* ./../lib/standard//kernel.nit:233 */
1061 REGB5 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB5));
1062 /* ./../lib/standard//collection//array.nit:280 */
1063 if (UNTAG_Bool(REGB5)) {
1064 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1065 if (UNTAG_Bool(REGB5)) {
1066 } else {
1067 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
1068 }
1069 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1070 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1071 if (UNTAG_Bool(REGB6)) {
1072 } else {
1073 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1074 }
1075 /* ./../lib/standard//kernel.nit:232 */
1076 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
1077 } else {
1078 /* ./../lib/standard//collection//array.nit:280 */
1079 REGB6 = TAG_Bool(false);
1080 REGB5 = REGB6;
1081 }
1082 if (UNTAG_Bool(REGB5)) {
1083 } else {
1084 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
1085 }
1086 /* ./../lib/standard//collection//array.nit:281 */
1087 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
1088 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1089 if (UNTAG_Bool(REGB5)) {
1090 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
1091 }
1092 /* ./../lib/standard//collection//array.nit:718 */
1093 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
1094 /* ./../lib/standard//collection//array.nit:281 */
1095 goto label2;
1096 label2: while(0);
1097 /* ./../lib/standard//string_search.nit:187 */
1098 REGB3 = TAG_Int(1);
1099 /* ./../lib/standard//kernel.nit:235 */
1100 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
1101 /* ./../lib/standard//string_search.nit:187 */
1102 REGB5 = TAG_Bool(IS_EQUAL_ON(REGB3,fra.me.REG[2]));
1103 if (UNTAG_Bool(REGB5)) {
1104 } else {
1105 REGB6 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1106 if (UNTAG_Bool(REGB6)) {
1107 REGB6 = TAG_Bool(false);
1108 REGB5 = REGB6;
1109 } else {
1110 /* ./../lib/standard//kernel.nit:227 */
1111 REGB3 = TAG_Bool((fra.me.REG[2])==(REGB3));
1112 /* ./../lib/standard//string_search.nit:187 */
1113 REGB5 = REGB3;
1114 }
1115 }
1116 REGB4 = REGB5;
1117 }
1118 if (UNTAG_Bool(REGB4)) {
1119 /* ./../lib/standard//string_search.nit:188 */
1120 while(1) {
1121 REGB4 = TAG_Int(1);
1122 /* ./../lib/standard//kernel.nit:237 */
1123 REGB4 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB4));
1124 REGB4 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB1));
1125 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1126 if (UNTAG_Bool(REGB5)) {
1127 } else {
1128 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1129 }
1130 /* ./../lib/standard//kernel.nit:232 */
1131 REGB4 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB4));
1132 /* ./../lib/standard//string_search.nit:188 */
1133 if (UNTAG_Bool(REGB4)) {
1134 /* ./../lib/standard//string_search.nit:189 */
1135 REGB4 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
1136 if (UNTAG_Bool(REGB4)) {
1137 } else {
1138 nit_abort("Uninitialized attribute %s", "_gs", LOCATE_standard___string_search, 189);
1139 }
1140 fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0]);
1141 /* ./../lib/standard//collection//array.nit:278 */
1142 REGB4 = REGB2;
1143 /* ./../lib/standard//collection//array.nit:280 */
1144 REGB5 = TAG_Int(0);
1145 REGB3 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
1146 if (UNTAG_Bool(REGB3)) {
1147 } else {
1148 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1149 }
1150 /* ./../lib/standard//kernel.nit:233 */
1151 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
1152 /* ./../lib/standard//collection//array.nit:280 */
1153 if (UNTAG_Bool(REGB5)) {
1154 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1155 if (UNTAG_Bool(REGB5)) {
1156 } else {
1157 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
1158 }
1159 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1160 REGB3 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
1161 if (UNTAG_Bool(REGB3)) {
1162 } else {
1163 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1164 }
1165 /* ./../lib/standard//kernel.nit:232 */
1166 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
1167 } else {
1168 /* ./../lib/standard//collection//array.nit:280 */
1169 REGB3 = TAG_Bool(false);
1170 REGB5 = REGB3;
1171 }
1172 if (UNTAG_Bool(REGB5)) {
1173 } else {
1174 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
1175 }
1176 /* ./../lib/standard//collection//array.nit:281 */
1177 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
1178 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1179 if (UNTAG_Bool(REGB5)) {
1180 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
1181 }
1182 /* ./../lib/standard//collection//array.nit:718 */
1183 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
1184 /* ./../lib/standard//collection//array.nit:281 */
1185 goto label3;
1186 label3: while(0);
1187 /* ./../lib/standard//string_search.nit:189 */
1188 REGB4 = TAG_Bool(IS_EQUAL_ON(REGB0,fra.me.REG[2]));
1189 if (UNTAG_Bool(REGB4)) {
1190 } else {
1191 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1192 if (UNTAG_Bool(REGB5)) {
1193 REGB5 = TAG_Bool(false);
1194 REGB4 = REGB5;
1195 } else {
1196 /* ./../lib/standard//kernel.nit:227 */
1197 REGB5 = TAG_Bool((fra.me.REG[2])==(REGB0));
1198 /* ./../lib/standard//string_search.nit:189 */
1199 REGB4 = REGB5;
1200 }
1201 }
1202 if (UNTAG_Bool(REGB4)) {
1203 REGB4 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
1204 if (UNTAG_Bool(REGB4)) {
1205 } else {
1206 nit_abort("Uninitialized attribute %s", "_gs", LOCATE_standard___string_search, 189);
1207 }
1208 fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0]);
1209 REGB4 = TAG_Int(1);
1210 /* ./../lib/standard//kernel.nit:237 */
1211 REGB4 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB4));
1212 REGB4 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB1));
1213 /* ./../lib/standard//string_search.nit:189 */
1214 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB4);
1215 }
1216 /* ./../lib/standard//string_search.nit:190 */
1217 REGB4 = TAG_Int(1);
1218 /* ./../lib/standard//kernel.nit:235 */
1219 REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
1220 /* ./../lib/standard//string_search.nit:190 */
1221 REGB2 = REGB4;
1222 } else {
1223 /* ./../lib/standard//string_search.nit:188 */
1224 goto label4;
1225 }
1226 }
1227 label4: while(0);
1228 }
1229 /* ./../lib/standard//string_search.nit:193 */
1230 REGB4 = TAG_Int(1);
1231 /* ./../lib/standard//kernel.nit:237 */
1232 REGB4 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB4));
1233 /* ./../lib/standard//string_search.nit:193 */
1234 REGB1 = REGB4;
1235 } else {
1236 /* ./../lib/standard//string_search.nit:186 */
1237 goto label5;
1238 }
1239 }
1240 label5: while(0);
1241 /* ./../lib/standard//string_search.nit:195 */
1242 REGB2 = TAG_Int(0);
1243 REGB1 = REGB2;
1244 /* ./../lib/standard//string_search.nit:196 */
1245 while(1) {
1246 REGB2 = TAG_Int(1);
1247 /* ./../lib/standard//kernel.nit:237 */
1248 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
1249 REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1250 if (UNTAG_Bool(REGB4)) {
1251 } else {
1252 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1253 }
1254 /* ./../lib/standard//kernel.nit:232 */
1255 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1256 /* ./../lib/standard//string_search.nit:196 */
1257 if (UNTAG_Bool(REGB2)) {
1258 /* ./../lib/standard//string_search.nit:197 */
1259 REGB2 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
1260 if (UNTAG_Bool(REGB2)) {
1261 } else {
1262 nit_abort("Uninitialized attribute %s", "_gs", LOCATE_standard___string_search, 197);
1263 }
1264 fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0]);
1265 REGB2 = TAG_Int(1);
1266 /* ./../lib/standard//kernel.nit:237 */
1267 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
1268 /* ./../lib/standard//collection//array.nit:278 */
1269 fra.me.REG[3] = fra.me.REG[1];
1270 REGB4 = REGB1;
1271 /* ./../lib/standard//collection//array.nit:280 */
1272 REGB5 = TAG_Int(0);
1273 REGB3 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
1274 if (UNTAG_Bool(REGB3)) {
1275 } else {
1276 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1277 }
1278 /* ./../lib/standard//kernel.nit:233 */
1279 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
1280 /* ./../lib/standard//collection//array.nit:280 */
1281 if (UNTAG_Bool(REGB5)) {
1282 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1283 if (UNTAG_Bool(REGB5)) {
1284 } else {
1285 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
1286 }
1287 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1288 REGB3 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
1289 if (UNTAG_Bool(REGB3)) {
1290 } else {
1291 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1292 }
1293 /* ./../lib/standard//kernel.nit:232 */
1294 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
1295 } else {
1296 /* ./../lib/standard//collection//array.nit:280 */
1297 REGB3 = TAG_Bool(false);
1298 REGB5 = REGB3;
1299 }
1300 if (UNTAG_Bool(REGB5)) {
1301 } else {
1302 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
1303 }
1304 /* ./../lib/standard//collection//array.nit:281 */
1305 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1306 REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1307 if (UNTAG_Bool(REGB5)) {
1308 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
1309 }
1310 /* ./../lib/standard//collection//array.nit:718 */
1311 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
1312 /* ./../lib/standard//collection//array.nit:281 */
1313 goto label6;
1314 label6: while(0);
1315 /* ./../lib/standard//kernel.nit:237 */
1316 REGB2 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(fra.me.REG[3]));
1317 /* ./../lib/standard//string_search.nit:197 */
1318 REGB4 = TAG_Int(1);
1319 /* ./../lib/standard//kernel.nit:237 */
1320 REGB4 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB4));
1321 REGB4 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB1));
1322 /* ./../lib/standard//string_search.nit:197 */
1323 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB4);
1324 /* ./../lib/standard//string_search.nit:198 */
1325 REGB4 = TAG_Int(1);
1326 /* ./../lib/standard//kernel.nit:235 */
1327 REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
1328 /* ./../lib/standard//string_search.nit:198 */
1329 REGB1 = REGB4;
1330 } else {
1331 /* ./../lib/standard//string_search.nit:196 */
1332 goto label7;
1333 }
1334 }
1335 label7: while(0);
1336 stack_frame_head = fra.me.prev;
1337 return;
1338 }
1339 val_t standard___string_search___Match___string(val_t p0){
1340 struct {struct stack_frame_t me;} fra;
1341 val_t REGB0;
1342 val_t tmp;
1343 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1344 fra.me.file = LOCATE_standard___string_search;
1345 fra.me.line = 205;
1346 fra.me.meth = LOCATE_standard___string_search___Match___string;
1347 fra.me.has_broke = 0;
1348 fra.me.REG_size = 1;
1349 fra.me.REG[0] = NIT_NULL;
1350 fra.me.REG[0] = p0;
1351 /* ./../lib/standard//string_search.nit:205 */
1352 REGB0 = TAG_Bool(ATTR_standard___string_search___Match____string(fra.me.REG[0])!=NIT_NULL);
1353 if (UNTAG_Bool(REGB0)) {
1354 } else {
1355 nit_abort("Uninitialized attribute %s", "_string", LOCATE_standard___string_search, 205);
1356 }
1357 fra.me.REG[0] = ATTR_standard___string_search___Match____string(fra.me.REG[0]);
1358 stack_frame_head = fra.me.prev;
1359 return fra.me.REG[0];
1360 }
1361 val_t standard___string_search___Match___from(val_t p0){
1362 struct {struct stack_frame_t me;} fra;
1363 val_t REGB0;
1364 val_t tmp;
1365 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1366 fra.me.file = LOCATE_standard___string_search;
1367 fra.me.line = 208;
1368 fra.me.meth = LOCATE_standard___string_search___Match___from;
1369 fra.me.has_broke = 0;
1370 fra.me.REG_size = 1;
1371 fra.me.REG[0] = NIT_NULL;
1372 fra.me.REG[0] = p0;
1373 /* ./../lib/standard//string_search.nit:208 */
1374 REGB0 = TAG_Bool(ATTR_standard___string_search___Match____from(fra.me.REG[0])!=NIT_NULL);
1375 if (UNTAG_Bool(REGB0)) {
1376 } else {
1377 nit_abort("Uninitialized attribute %s", "_from", LOCATE_standard___string_search, 208);
1378 }
1379 REGB0 = ATTR_standard___string_search___Match____from(fra.me.REG[0]);
1380 stack_frame_head = fra.me.prev;
1381 return REGB0;
1382 }
1383 val_t standard___string_search___Match___length(val_t p0){
1384 struct {struct stack_frame_t me;} fra;
1385 val_t REGB0;
1386 val_t tmp;
1387 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1388 fra.me.file = LOCATE_standard___string_search;
1389 fra.me.line = 211;
1390 fra.me.meth = LOCATE_standard___string_search___Match___length;
1391 fra.me.has_broke = 0;
1392 fra.me.REG_size = 1;
1393 fra.me.REG[0] = NIT_NULL;
1394 fra.me.REG[0] = p0;
1395 /* ./../lib/standard//string_search.nit:211 */
1396 REGB0 = TAG_Bool(ATTR_standard___string_search___Match____length(fra.me.REG[0])!=NIT_NULL);
1397 if (UNTAG_Bool(REGB0)) {
1398 } else {
1399 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 211);
1400 }
1401 REGB0 = ATTR_standard___string_search___Match____length(fra.me.REG[0]);
1402 stack_frame_head = fra.me.prev;
1403 return REGB0;
1404 }
1405 val_t standard___string_search___Match___after(val_t p0){
1406 struct {struct stack_frame_t me;} fra;
1407 val_t REGB0;
1408 val_t REGB1;
1409 val_t tmp;
1410 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1411 fra.me.file = LOCATE_standard___string_search;
1412 fra.me.line = 214;
1413 fra.me.meth = LOCATE_standard___string_search___Match___after;
1414 fra.me.has_broke = 0;
1415 fra.me.REG_size = 1;
1416 fra.me.REG[0] = NIT_NULL;
1417 fra.me.REG[0] = p0;
1418 /* ./../lib/standard//string_search.nit:216 */
1419 REGB0 = TAG_Bool(ATTR_standard___string_search___Match____from(fra.me.REG[0])!=NIT_NULL);
1420 if (UNTAG_Bool(REGB0)) {
1421 } else {
1422 nit_abort("Uninitialized attribute %s", "_from", LOCATE_standard___string_search, 216);
1423 }
1424 REGB0 = ATTR_standard___string_search___Match____from(fra.me.REG[0]);
1425 REGB1 = TAG_Bool(ATTR_standard___string_search___Match____length(fra.me.REG[0])!=NIT_NULL);
1426 if (UNTAG_Bool(REGB1)) {
1427 } else {
1428 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 216);
1429 }
1430 REGB1 = ATTR_standard___string_search___Match____length(fra.me.REG[0]);
1431 /* ./../lib/standard//kernel.nit:235 */
1432 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1433 /* ./../lib/standard//string_search.nit:216 */
1434 goto label1;
1435 label1: while(0);
1436 stack_frame_head = fra.me.prev;
1437 return REGB1;
1438 }
1439 val_t standard___string_search___Match___to_s(val_t p0){
1440 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1441 val_t REGB0;
1442 val_t REGB1;
1443 val_t tmp;
1444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1445 fra.me.file = LOCATE_standard___string_search;
1446 fra.me.line = 218;
1447 fra.me.meth = LOCATE_standard___string_search___Match___to_s;
1448 fra.me.has_broke = 0;
1449 fra.me.REG_size = 2;
1450 fra.me.REG[0] = NIT_NULL;
1451 fra.me.REG[1] = NIT_NULL;
1452 fra.me.REG[0] = p0;
1453 /* ./../lib/standard//string_search.nit:219 */
1454 REGB0 = TAG_Bool(ATTR_standard___string_search___Match____string(fra.me.REG[0])!=NIT_NULL);
1455 if (UNTAG_Bool(REGB0)) {
1456 } else {
1457 nit_abort("Uninitialized attribute %s", "_string", LOCATE_standard___string_search, 219);
1458 }
1459 fra.me.REG[1] = ATTR_standard___string_search___Match____string(fra.me.REG[0]);
1460 REGB0 = TAG_Bool(ATTR_standard___string_search___Match____from(fra.me.REG[0])!=NIT_NULL);
1461 if (UNTAG_Bool(REGB0)) {
1462 } else {
1463 nit_abort("Uninitialized attribute %s", "_from", LOCATE_standard___string_search, 219);
1464 }
1465 REGB0 = ATTR_standard___string_search___Match____from(fra.me.REG[0]);
1466 REGB1 = TAG_Bool(ATTR_standard___string_search___Match____length(fra.me.REG[0])!=NIT_NULL);
1467 if (UNTAG_Bool(REGB1)) {
1468 } else {
1469 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 219);
1470 }
1471 REGB1 = ATTR_standard___string_search___Match____length(fra.me.REG[0]);
1472 fra.me.REG[1] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB1);
1473 goto label1;
1474 label1: while(0);
1475 stack_frame_head = fra.me.prev;
1476 return fra.me.REG[1];
1477 }
1478 void standard___string_search___Match___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1479 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___string_search___Match].i;
1480 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1481 val_t REGB0;
1482 val_t REGB1;
1483 val_t REGB2;
1484 val_t REGB3;
1485 val_t REGB4;
1486 val_t tmp;
1487 if (init_table[itpos1]) return;
1488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1489 fra.me.file = LOCATE_standard___string_search;
1490 fra.me.line = 221;
1491 fra.me.meth = LOCATE_standard___string_search___Match___init;
1492 fra.me.has_broke = 0;
1493 fra.me.REG_size = 2;
1494 fra.me.REG[0] = NIT_NULL;
1495 fra.me.REG[1] = NIT_NULL;
1496 fra.me.REG[0] = p0;
1497 fra.me.REG[1] = p1;
1498 REGB0 = p2;
1499 REGB1 = p3;
1500 /* ./../lib/standard//string_search.nit:224 */
1501 REGB2 = TAG_Int(0);
1502 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1503 if (UNTAG_Bool(REGB3)) {
1504 } else {
1505 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1506 }
1507 /* ./../lib/standard//kernel.nit:233 */
1508 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
1509 /* ./../lib/standard//string_search.nit:224 */
1510 if (UNTAG_Bool(REGB2)) {
1511 } else {
1512 nit_abort("Assert %s failed", "'positive_length'", LOCATE_standard___string_search, 224);
1513 }
1514 /* ./../lib/standard//string_search.nit:225 */
1515 REGB2 = TAG_Int(0);
1516 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1517 if (UNTAG_Bool(REGB3)) {
1518 } else {
1519 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1520 }
1521 /* ./../lib/standard//kernel.nit:233 */
1522 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
1523 /* ./../lib/standard//string_search.nit:225 */
1524 if (UNTAG_Bool(REGB2)) {
1525 } else {
1526 nit_abort("Assert %s failed", "'valid_from'", LOCATE_standard___string_search, 225);
1527 }
1528 /* ./../lib/standard//kernel.nit:235 */
1529 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1530 /* ./../lib/standard//collection//array.nit:24 */
1531 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1532 if (UNTAG_Bool(REGB3)) {
1533 } else {
1534 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1535 }
1536 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1537 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1538 if (UNTAG_Bool(REGB4)) {
1539 } else {
1540 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1541 }
1542 /* ./../lib/standard//kernel.nit:231 */
1543 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB3));
1544 /* ./../lib/standard//string_search.nit:226 */
1545 if (UNTAG_Bool(REGB3)) {
1546 } else {
1547 nit_abort("Assert %s failed", "'valid_after'", LOCATE_standard___string_search, 226);
1548 }
1549 /* ./../lib/standard//string_search.nit:227 */
1550 ATTR_standard___string_search___Match____string(fra.me.REG[0]) = fra.me.REG[1];
1551 /* ./../lib/standard//string_search.nit:228 */
1552 ATTR_standard___string_search___Match____from(fra.me.REG[0]) = REGB0;
1553 /* ./../lib/standard//string_search.nit:229 */
1554 ATTR_standard___string_search___Match____length(fra.me.REG[0]) = REGB1;
1555 stack_frame_head = fra.me.prev;
1556 init_table[itpos1] = 1;
1557 return;
1558 }
1559 val_t standard___string_search___Char___search_index_in(val_t p0, val_t p1, val_t p2){
1560 struct {struct stack_frame_t me;} fra;
1561 val_t REGB0;
1562 val_t REGB1;
1563 val_t REGB2;
1564 val_t REGB3;
1565 val_t REGB4;
1566 val_t tmp;
1567 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1568 fra.me.file = LOCATE_standard___string_search;
1569 fra.me.line = 236;
1570 fra.me.meth = LOCATE_standard___string_search___Char___search_index_in;
1571 fra.me.has_broke = 0;
1572 fra.me.REG_size = 1;
1573 fra.me.REG[0] = NIT_NULL;
1574 REGB0 = p0;
1575 fra.me.REG[0] = p1;
1576 REGB1 = p2;
1577 /* ./../lib/standard//collection//array.nit:24 */
1578 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1579 if (UNTAG_Bool(REGB2)) {
1580 } else {
1581 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1582 }
1583 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1584 /* ./../lib/standard//string_search.nit:239 */
1585 while(1) {
1586 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1587 if (UNTAG_Bool(REGB3)) {
1588 } else {
1589 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1590 }
1591 /* ./../lib/standard//kernel.nit:232 */
1592 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1593 /* ./../lib/standard//string_search.nit:239 */
1594 if (UNTAG_Bool(REGB3)) {
1595 /* ./../lib/standard//string_search.nit:240 */
1596 REGB3 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
1597 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB0));
1598 if (UNTAG_Bool(REGB4)) {
1599 } else {
1600 /* ./../lib/standard//kernel.nit:378 */
1601 REGB3 = TAG_Bool((REGB3)==(REGB0));
1602 /* ./../lib/standard//string_search.nit:240 */
1603 REGB4 = REGB3;
1604 }
1605 if (UNTAG_Bool(REGB4)) {
1606 REGB4 = REGB1;
1607 goto label1;
1608 }
1609 /* ./../lib/standard//string_search.nit:241 */
1610 REGB3 = TAG_Int(1);
1611 /* ./../lib/standard//kernel.nit:235 */
1612 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
1613 /* ./../lib/standard//string_search.nit:241 */
1614 REGB1 = REGB3;
1615 } else {
1616 /* ./../lib/standard//string_search.nit:239 */
1617 goto label2;
1618 }
1619 }
1620 label2: while(0);
1621 /* ./../lib/standard//string_search.nit:243 */
1622 REGB1 = TAG_Int(1);
1623 /* ./../lib/standard//kernel.nit:236 */
1624 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
1625 /* ./../lib/standard//string_search.nit:243 */
1626 REGB4 = REGB1;
1627 goto label1;
1628 label1: while(0);
1629 stack_frame_head = fra.me.prev;
1630 return REGB4;
1631 }
1632 val_t standard___string_search___Char___search_in(val_t p0, val_t p1, val_t p2){
1633 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1634 val_t REGB0;
1635 val_t REGB1;
1636 val_t REGB2;
1637 val_t tmp;
1638 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1639 fra.me.file = LOCATE_standard___string_search;
1640 fra.me.line = 246;
1641 fra.me.meth = LOCATE_standard___string_search___Char___search_in;
1642 fra.me.has_broke = 0;
1643 fra.me.REG_size = 2;
1644 fra.me.REG[0] = NIT_NULL;
1645 fra.me.REG[1] = NIT_NULL;
1646 REGB0 = p0;
1647 fra.me.REG[0] = p1;
1648 REGB1 = p2;
1649 /* ./../lib/standard//string_search.nit:248 */
1650 REGB1 = CALL_standard___string_search___Pattern___search_index_in(REGB0)(REGB0, fra.me.REG[0], REGB1);
1651 /* ./../lib/standard//string_search.nit:249 */
1652 REGB0 = TAG_Int(0);
1653 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1654 if (UNTAG_Bool(REGB2)) {
1655 } else {
1656 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1657 }
1658 /* ./../lib/standard//kernel.nit:232 */
1659 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
1660 /* ./../lib/standard//string_search.nit:249 */
1661 if (UNTAG_Bool(REGB0)) {
1662 /* ./../lib/standard//string_search.nit:250 */
1663 fra.me.REG[1] = NIT_NULL;
1664 goto label1;
1665 } else {
1666 /* ./../lib/standard//string_search.nit:252 */
1667 REGB0 = TAG_Int(1);
1668 fra.me.REG[0] = NEW_Match_standard___string_search___Match___init(fra.me.REG[0], REGB1, REGB0);
1669 fra.me.REG[1] = fra.me.REG[0];
1670 goto label1;
1671 }
1672 label1: while(0);
1673 stack_frame_head = fra.me.prev;
1674 return fra.me.REG[1];
1675 }
1676 val_t standard___string_search___String___search_index_in(val_t p0, val_t p1, val_t p2){
1677 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1678 val_t REGB0;
1679 val_t REGB1;
1680 val_t REGB2;
1681 val_t REGB3;
1682 val_t REGB4;
1683 val_t REGB5;
1684 val_t tmp;
1685 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1686 fra.me.file = LOCATE_standard___string_search;
1687 fra.me.line = 260;
1688 fra.me.meth = LOCATE_standard___string_search___String___search_index_in;
1689 fra.me.has_broke = 0;
1690 fra.me.REG_size = 2;
1691 fra.me.REG[0] = NIT_NULL;
1692 fra.me.REG[1] = NIT_NULL;
1693 fra.me.REG[0] = p0;
1694 fra.me.REG[1] = p1;
1695 REGB0 = p2;
1696 /* ./../lib/standard//string_search.nit:262 */
1697 REGB1 = TAG_Int(0);
1698 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1699 if (UNTAG_Bool(REGB2)) {
1700 } else {
1701 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1702 }
1703 /* ./../lib/standard//kernel.nit:233 */
1704 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1705 /* ./../lib/standard//string_search.nit:262 */
1706 if (UNTAG_Bool(REGB1)) {
1707 } else {
1708 nit_abort("Assert failed", NULL, LOCATE_standard___string_search, 262);
1709 }
1710 /* ./../lib/standard//collection//array.nit:24 */
1711 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1712 if (UNTAG_Bool(REGB1)) {
1713 } else {
1714 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1715 }
1716 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1717 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1718 if (UNTAG_Bool(REGB2)) {
1719 } else {
1720 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1721 }
1722 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1723 /* ./../lib/standard//kernel.nit:237 */
1724 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
1725 /* ./../lib/standard//string_search.nit:263 */
1726 REGB1 = TAG_Int(1);
1727 /* ./../lib/standard//kernel.nit:235 */
1728 REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
1729 /* ./../lib/standard//string_search.nit:264 */
1730 while(1) {
1731 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1732 if (UNTAG_Bool(REGB2)) {
1733 } else {
1734 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1735 }
1736 /* ./../lib/standard//kernel.nit:232 */
1737 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1738 /* ./../lib/standard//string_search.nit:264 */
1739 if (UNTAG_Bool(REGB2)) {
1740 /* ./../lib/standard//collection//array.nit:24 */
1741 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1742 if (UNTAG_Bool(REGB2)) {
1743 } else {
1744 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1745 }
1746 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1747 /* ./../lib/standard//string_search.nit:265 */
1748 REGB3 = TAG_Int(1);
1749 /* ./../lib/standard//kernel.nit:237 */
1750 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
1751 /* ./../lib/standard//string_search.nit:266 */
1752 while(1) {
1753 REGB2 = TAG_Int(0);
1754 REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1755 if (UNTAG_Bool(REGB4)) {
1756 } else {
1757 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1758 }
1759 /* ./../lib/standard//kernel.nit:233 */
1760 REGB2 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB2));
1761 /* ./../lib/standard//string_search.nit:266 */
1762 if (UNTAG_Bool(REGB2)) {
1763 REGB2 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB3);
1764 /* ./../lib/standard//kernel.nit:235 */
1765 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
1766 /* ./../lib/standard//string_search.nit:266 */
1767 REGB4 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB4);
1768 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB4));
1769 if (UNTAG_Bool(REGB5)) {
1770 } else {
1771 /* ./../lib/standard//kernel.nit:378 */
1772 REGB4 = TAG_Bool((REGB2)==(REGB4));
1773 /* ./../lib/standard//string_search.nit:266 */
1774 REGB5 = REGB4;
1775 }
1776 } else {
1777 REGB4 = TAG_Bool(false);
1778 REGB5 = REGB4;
1779 }
1780 if (UNTAG_Bool(REGB5)) {
1781 REGB5 = TAG_Int(1);
1782 /* ./../lib/standard//kernel.nit:237 */
1783 REGB5 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB5));
1784 /* ./../lib/standard//string_search.nit:266 */
1785 REGB3 = REGB5;
1786 } else {
1787 goto label1;
1788 }
1789 }
1790 label1: while(0);
1791 /* ./../lib/standard//string_search.nit:268 */
1792 REGB5 = TAG_Int(0);
1793 REGB4 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1794 if (UNTAG_Bool(REGB4)) {
1795 } else {
1796 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1797 }
1798 /* ./../lib/standard//kernel.nit:232 */
1799 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
1800 /* ./../lib/standard//string_search.nit:268 */
1801 if (UNTAG_Bool(REGB5)) {
1802 REGB5 = REGB0;
1803 goto label2;
1804 }
1805 /* ./../lib/standard//string_search.nit:270 */
1806 REGB3 = TAG_Int(1);
1807 /* ./../lib/standard//kernel.nit:235 */
1808 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
1809 /* ./../lib/standard//string_search.nit:270 */
1810 REGB0 = REGB3;
1811 } else {
1812 /* ./../lib/standard//string_search.nit:264 */
1813 goto label3;
1814 }
1815 }
1816 label3: while(0);
1817 /* ./../lib/standard//string_search.nit:272 */
1818 REGB0 = TAG_Int(1);
1819 /* ./../lib/standard//kernel.nit:236 */
1820 REGB0 = TAG_Int(-UNTAG_Int(REGB0));
1821 /* ./../lib/standard//string_search.nit:272 */
1822 REGB5 = REGB0;
1823 goto label2;
1824 label2: while(0);
1825 stack_frame_head = fra.me.prev;
1826 return REGB5;
1827 }
1828 val_t standard___string_search___String___search_in(val_t p0, val_t p1, val_t p2){
1829 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1830 val_t REGB0;
1831 val_t REGB1;
1832 val_t REGB2;
1833 val_t tmp;
1834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1835 fra.me.file = LOCATE_standard___string_search;
1836 fra.me.line = 275;
1837 fra.me.meth = LOCATE_standard___string_search___String___search_in;
1838 fra.me.has_broke = 0;
1839 fra.me.REG_size = 3;
1840 fra.me.REG[0] = NIT_NULL;
1841 fra.me.REG[1] = NIT_NULL;
1842 fra.me.REG[2] = NIT_NULL;
1843 fra.me.REG[0] = p0;
1844 fra.me.REG[1] = p1;
1845 REGB0 = p2;
1846 /* ./../lib/standard//string_search.nit:277 */
1847 REGB0 = CALL_standard___string_search___Pattern___search_index_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
1848 /* ./../lib/standard//string_search.nit:278 */
1849 REGB1 = TAG_Int(0);
1850 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1851 if (UNTAG_Bool(REGB2)) {
1852 } else {
1853 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1854 }
1855 /* ./../lib/standard//kernel.nit:232 */
1856 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1857 /* ./../lib/standard//string_search.nit:278 */
1858 if (UNTAG_Bool(REGB1)) {
1859 /* ./../lib/standard//string_search.nit:279 */
1860 fra.me.REG[2] = NIT_NULL;
1861 goto label1;
1862 } else {
1863 /* ./../lib/standard//collection//array.nit:24 */
1864 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1865 if (UNTAG_Bool(REGB1)) {
1866 } else {
1867 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1868 }
1869 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1870 /* ./../lib/standard//string_search.nit:281 */
1871 fra.me.REG[1] = NEW_Match_standard___string_search___Match___init(fra.me.REG[1], REGB0, REGB1);
1872 fra.me.REG[2] = fra.me.REG[1];
1873 goto label1;
1874 }
1875 label1: while(0);
1876 stack_frame_head = fra.me.prev;
1877 return fra.me.REG[2];
1878 }
1879 val_t standard___string_search___String___search(val_t p0, val_t p1){
1880 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1881 val_t REGB0;
1882 val_t tmp;
1883 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1884 fra.me.file = LOCATE_standard___string_search;
1885 fra.me.line = 285;
1886 fra.me.meth = LOCATE_standard___string_search___String___search;
1887 fra.me.has_broke = 0;
1888 fra.me.REG_size = 2;
1889 fra.me.REG[0] = NIT_NULL;
1890 fra.me.REG[1] = NIT_NULL;
1891 fra.me.REG[0] = p0;
1892 fra.me.REG[1] = p1;
1893 /* ./../lib/standard//string_search.nit:286 */
1894 REGB0 = TAG_Int(0);
1895 fra.me.REG[0] = CALL_standard___string_search___Pattern___search_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], REGB0);
1896 goto label1;
1897 label1: while(0);
1898 stack_frame_head = fra.me.prev;
1899 return fra.me.REG[0];
1900 }
1901 val_t standard___string_search___String___search_from(val_t p0, val_t p1, val_t p2){
1902 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1903 val_t REGB0;
1904 val_t tmp;
1905 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1906 fra.me.file = LOCATE_standard___string_search;
1907 fra.me.line = 288;
1908 fra.me.meth = LOCATE_standard___string_search___String___search_from;
1909 fra.me.has_broke = 0;
1910 fra.me.REG_size = 2;
1911 fra.me.REG[0] = NIT_NULL;
1912 fra.me.REG[1] = NIT_NULL;
1913 fra.me.REG[0] = p0;
1914 fra.me.REG[1] = p1;
1915 REGB0 = p2;
1916 /* ./../lib/standard//string_search.nit:291 */
1917 fra.me.REG[0] = CALL_standard___string_search___Pattern___search_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], REGB0);
1918 goto label1;
1919 label1: while(0);
1920 stack_frame_head = fra.me.prev;
1921 return fra.me.REG[0];
1922 }
1923 val_t standard___string_search___String___search_all(val_t p0, val_t p1){
1924 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1925 val_t tmp;
1926 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1927 fra.me.file = LOCATE_standard___string_search;
1928 fra.me.line = 293;
1929 fra.me.meth = LOCATE_standard___string_search___String___search_all;
1930 fra.me.has_broke = 0;
1931 fra.me.REG_size = 2;
1932 fra.me.REG[0] = NIT_NULL;
1933 fra.me.REG[1] = NIT_NULL;
1934 fra.me.REG[0] = p0;
1935 fra.me.REG[1] = p1;
1936 /* ./../lib/standard//string_search.nit:300 */
1937 fra.me.REG[0] = CALL_standard___string_search___Pattern___search_all_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1938 goto label1;
1939 label1: while(0);
1940 stack_frame_head = fra.me.prev;
1941 return fra.me.REG[0];
1942 }
1943 val_t standard___string_search___String___split_with(val_t p0, val_t p1){
1944 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1945 val_t REGB0;
1946 val_t REGB1;
1947 val_t REGB2;
1948 val_t tmp;
1949 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1950 fra.me.file = LOCATE_standard___string_search;
1951 fra.me.line = 302;
1952 fra.me.meth = LOCATE_standard___string_search___String___split_with;
1953 fra.me.has_broke = 0;
1954 fra.me.REG_size = 4;
1955 fra.me.REG[0] = NIT_NULL;
1956 fra.me.REG[1] = NIT_NULL;
1957 fra.me.REG[2] = NIT_NULL;
1958 fra.me.REG[3] = NIT_NULL;
1959 fra.me.REG[0] = p0;
1960 fra.me.REG[1] = p1;
1961 /* ./../lib/standard//string_search.nit:306 */
1962 fra.me.REG[0] = CALL_standard___string_search___Pattern___split_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1963 /* ./../lib/standard//collection//array.nit:24 */
1964 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1965 if (UNTAG_Bool(REGB0)) {
1966 } else {
1967 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1968 }
1969 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1970 /* ./../lib/standard//string_search.nit:307 */
1971 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1972 /* ./../lib/standard//collection//array.nit:269 */
1973 REGB0 = TAG_Int(0);
1974 /* ./../lib/standard//collection//array.nit:270 */
1975 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1976 if (UNTAG_Bool(REGB1)) {
1977 } else {
1978 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1979 }
1980 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1981 /* ./../lib/standard//collection//array.nit:271 */
1982 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1983 /* ./../lib/standard//collection//array.nit:272 */
1984 while(1) {
1985 /* ./../lib/standard//collection//array.nit:24 */
1986 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1987 if (UNTAG_Bool(REGB1)) {
1988 } else {
1989 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1990 }
1991 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1992 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1993 if (UNTAG_Bool(REGB2)) {
1994 } else {
1995 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1996 }
1997 /* ./../lib/standard//kernel.nit:232 */
1998 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1999 /* ./../lib/standard//collection//array.nit:272 */
2000 if (UNTAG_Bool(REGB1)) {
2001 /* ./../lib/standard//collection//array.nit:273 */
2002 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2003 if (UNTAG_Bool(REGB1)) {
2004 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
2005 }
2006 /* ./../lib/standard//collection//array.nit:718 */
2007 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
2008 /* ./../lib/standard//string_search.nit:308 */
2009 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2010 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2011 /* ./../lib/standard//collection//array.nit:274 */
2012 REGB1 = TAG_Int(1);
2013 /* ./../lib/standard//kernel.nit:235 */
2014 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2015 /* ./../lib/standard//collection//array.nit:274 */
2016 REGB0 = REGB1;
2017 } else {
2018 /* ./../lib/standard//collection//array.nit:272 */
2019 goto label1;
2020 }
2021 }
2022 label1: while(0);
2023 /* ./../lib/standard//string_search.nit:309 */
2024 goto label2;
2025 label2: while(0);
2026 stack_frame_head = fra.me.prev;
2027 return fra.me.REG[1];
2028 }
2029 val_t standard___string_search___String___split(val_t p0){
2030 struct {struct stack_frame_t me;} fra;
2031 val_t REGB0;
2032 val_t tmp;
2033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2034 fra.me.file = LOCATE_standard___string_search;
2035 fra.me.line = 312;
2036 fra.me.meth = LOCATE_standard___string_search___String___split;
2037 fra.me.has_broke = 0;
2038 fra.me.REG_size = 1;
2039 fra.me.REG[0] = NIT_NULL;
2040 fra.me.REG[0] = p0;
2041 /* ./../lib/standard//string_search.nit:314 */
2042 REGB0 = TAG_Char('\n');
2043 fra.me.REG[0] = CALL_standard___string_search___String___split_with(fra.me.REG[0])(fra.me.REG[0], REGB0);
2044 goto label1;
2045 label1: while(0);
2046 stack_frame_head = fra.me.prev;
2047 return fra.me.REG[0];
2048 }
2049 val_t standard___string_search___String___replace(val_t p0, val_t p1, val_t p2){
2050 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2051 val_t tmp;
2052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2053 fra.me.file = LOCATE_standard___string_search;
2054 fra.me.line = 316;
2055 fra.me.meth = LOCATE_standard___string_search___String___replace;
2056 fra.me.has_broke = 0;
2057 fra.me.REG_size = 3;
2058 fra.me.REG[0] = NIT_NULL;
2059 fra.me.REG[1] = NIT_NULL;
2060 fra.me.REG[2] = NIT_NULL;
2061 fra.me.REG[0] = p0;
2062 fra.me.REG[1] = p1;
2063 fra.me.REG[2] = p2;
2064 /* ./../lib/standard//string_search.nit:322 */
2065 fra.me.REG[1] = CALL_standard___string_search___String___split_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2066 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2067 goto label1;
2068 label1: while(0);
2069 stack_frame_head = fra.me.prev;
2070 return fra.me.REG[2];
2071 }
2072 val_t standard___string_search___String___html_escape(val_t p0){
2073 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2074 val_t REGB0;
2075 val_t REGB1;
2076 val_t tmp;
2077 static val_t once_value_1; /* Once value */
2078 static val_t once_value_2; /* Once value */
2079 static val_t once_value_3; /* Once value */
2080 static val_t once_value_4; /* Once value */
2081 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2082 fra.me.file = LOCATE_standard___string_search;
2083 fra.me.line = 325;
2084 fra.me.meth = LOCATE_standard___string_search___String___html_escape;
2085 fra.me.has_broke = 0;
2086 fra.me.REG_size = 2;
2087 fra.me.REG[0] = NIT_NULL;
2088 fra.me.REG[1] = NIT_NULL;
2089 fra.me.REG[0] = p0;
2090 /* ./../lib/standard//string_search.nit:331 */
2091 REGB0 = TAG_Char('&');
2092 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], REGB0);
2093 if (UNTAG_Bool(REGB0)) {
2094 REGB0 = TAG_Char('&');
2095 if (!once_value_1) {
2096 fra.me.REG[1] = BOX_NativeString("&amp;");
2097 REGB1 = TAG_Int(5);
2098 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
2099 once_value_1 = fra.me.REG[1];
2100 register_static_object(&once_value_1);
2101 } else fra.me.REG[1] = once_value_1;
2102 fra.me.REG[1] = fra.me.REG[1];
2103 fra.me.REG[1] = CALL_standard___string_search___String___replace(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
2104 fra.me.REG[0] = fra.me.REG[1];
2105 }
2106 /* ./../lib/standard//string_search.nit:332 */
2107 REGB0 = TAG_Char('<');
2108 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], REGB0);
2109 if (UNTAG_Bool(REGB0)) {
2110 REGB0 = TAG_Char('<');
2111 if (!once_value_2) {
2112 fra.me.REG[1] = BOX_NativeString("&lt;");
2113 REGB1 = TAG_Int(4);
2114 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
2115 once_value_2 = fra.me.REG[1];
2116 register_static_object(&once_value_2);
2117 } else fra.me.REG[1] = once_value_2;
2118 fra.me.REG[1] = fra.me.REG[1];
2119 fra.me.REG[1] = CALL_standard___string_search___String___replace(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
2120 fra.me.REG[0] = fra.me.REG[1];
2121 }
2122 /* ./../lib/standard//string_search.nit:333 */
2123 REGB0 = TAG_Char('>');
2124 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], REGB0);
2125 if (UNTAG_Bool(REGB0)) {
2126 REGB0 = TAG_Char('>');
2127 if (!once_value_3) {
2128 fra.me.REG[1] = BOX_NativeString("&gt;");
2129 REGB1 = TAG_Int(4);
2130 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
2131 once_value_3 = fra.me.REG[1];
2132 register_static_object(&once_value_3);
2133 } else fra.me.REG[1] = once_value_3;
2134 fra.me.REG[1] = fra.me.REG[1];
2135 fra.me.REG[1] = CALL_standard___string_search___String___replace(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
2136 fra.me.REG[0] = fra.me.REG[1];
2137 }
2138 /* ./../lib/standard//string_search.nit:334 */
2139 REGB0 = TAG_Char('"');
2140 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], REGB0);
2141 if (UNTAG_Bool(REGB0)) {
2142 REGB0 = TAG_Char('"');
2143 if (!once_value_4) {
2144 fra.me.REG[1] = BOX_NativeString("&quot;");
2145 REGB1 = TAG_Int(6);
2146 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
2147 once_value_4 = fra.me.REG[1];
2148 register_static_object(&once_value_4);
2149 } else fra.me.REG[1] = once_value_4;
2150 fra.me.REG[1] = fra.me.REG[1];
2151 fra.me.REG[1] = CALL_standard___string_search___String___replace(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
2152 fra.me.REG[0] = fra.me.REG[1];
2153 }
2154 /* ./../lib/standard//string_search.nit:335 */
2155 goto label5;
2156 label5: while(0);
2157 stack_frame_head = fra.me.prev;
2158 return fra.me.REG[0];
2159 }