Merge branch 'alexis/various-fixes' into wip
[nit.git] / c_src / string_search._sep.c
1 /* This C file is generated by NIT to compile module string_search. */
2 #include "string_search._sep.h"
3 val_t 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_string_search;
8 fra.me.line = 21;
9 fra.me.meth = LOCATE_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 fprintf(stderr, "Deferred method called");
14 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 21);
15 nit_exit(1);
16 stack_frame_head = fra.me.prev;
17 return NIT_NULL;
18 }
19 val_t string_search___Pattern___search_in(val_t p0, val_t p1, val_t p2){
20 struct {struct stack_frame_t me;} fra;
21 val_t tmp;
22 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23 fra.me.file = LOCATE_string_search;
24 fra.me.line = 26;
25 fra.me.meth = LOCATE_string_search___Pattern___search_in;
26 fra.me.has_broke = 0;
27 fra.me.REG_size = 0;
28 /* ./../lib/standard//string_search.nit:26 */
29 fprintf(stderr, "Deferred method called");
30 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 26);
31 nit_exit(1);
32 stack_frame_head = fra.me.prev;
33 return NIT_NULL;
34 }
35 val_t string_search___Pattern___search_all_in(val_t p0, val_t p1){
36 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
37 val_t REGB0;
38 val_t REGB1;
39 val_t tmp;
40 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41 fra.me.file = LOCATE_string_search;
42 fra.me.line = 30;
43 fra.me.meth = LOCATE_string_search___Pattern___search_all_in;
44 fra.me.has_broke = 0;
45 fra.me.REG_size = 5;
46 fra.me.REG[0] = NIT_NULL;
47 fra.me.REG[1] = NIT_NULL;
48 fra.me.REG[2] = NIT_NULL;
49 fra.me.REG[3] = NIT_NULL;
50 fra.me.REG[4] = NIT_NULL;
51 fra.me.REG[0] = p0;
52 fra.me.REG[1] = p1;
53 fra.me.REG[2] = NEW_Array_array___Array___init();
54 REGB0 = TAG_Int(0);
55 fra.me.REG[3] = CALL_string_search___Pattern___search_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
56 /* ./../lib/standard//string_search.nit:35 */
57 while(1) {
58 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
59 if (UNTAG_Bool(REGB0)) {
60 } else {
61 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
62 if (UNTAG_Bool(REGB1)) {
63 REGB1 = TAG_Bool(false);
64 REGB0 = REGB1;
65 } else {
66 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
67 REGB0 = REGB1;
68 }
69 }
70 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
71 if (UNTAG_Bool(REGB0)) {
72 /* ./../lib/standard//string_search.nit:36 */
73 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
74 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
75 /* ./../lib/standard//string_search.nit:37 */
76 if (UNTAG_Bool(REGB0)) {
77 fprintf(stderr, "Reciever is null");
78 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 37);
79 nit_exit(1);
80 }
81 REGB0 = CALL_string_search___Match___after(fra.me.REG[3])(fra.me.REG[3]);
82 fra.me.REG[4] = CALL_string_search___Pattern___search_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
83 fra.me.REG[3] = fra.me.REG[4];
84 } else {
85 /* ./../lib/standard//string_search.nit:35 */
86 goto label1;
87 }
88 }
89 label1: while(0);
90 /* ./../lib/standard//string_search.nit:39 */
91 goto label2;
92 label2: while(0);
93 stack_frame_head = fra.me.prev;
94 return fra.me.REG[2];
95 }
96 val_t string_search___Pattern___split_in(val_t p0, val_t p1){
97 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
98 val_t REGB0;
99 val_t REGB1;
100 val_t REGB2;
101 val_t tmp;
102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
103 fra.me.file = LOCATE_string_search;
104 fra.me.line = 42;
105 fra.me.meth = LOCATE_string_search___Pattern___split_in;
106 fra.me.has_broke = 0;
107 fra.me.REG_size = 5;
108 fra.me.REG[0] = NIT_NULL;
109 fra.me.REG[1] = NIT_NULL;
110 fra.me.REG[2] = NIT_NULL;
111 fra.me.REG[3] = NIT_NULL;
112 fra.me.REG[4] = NIT_NULL;
113 fra.me.REG[0] = p0;
114 fra.me.REG[1] = p1;
115 fra.me.REG[2] = NEW_Array_array___Array___init();
116 REGB0 = TAG_Int(0);
117 REGB1 = TAG_Int(0);
118 fra.me.REG[3] = CALL_string_search___Pattern___search_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB1);
119 /* ./../lib/standard//string_search.nit:48 */
120 while(1) {
121 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
122 if (UNTAG_Bool(REGB1)) {
123 } else {
124 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
125 if (UNTAG_Bool(REGB2)) {
126 REGB2 = TAG_Bool(false);
127 REGB1 = REGB2;
128 } else {
129 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
130 REGB1 = REGB2;
131 }
132 }
133 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
134 if (UNTAG_Bool(REGB1)) {
135 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
136 /* ./../lib/standard//string_search.nit:50 */
137 if (UNTAG_Bool(REGB1)) {
138 fprintf(stderr, "Reciever is null");
139 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 50);
140 nit_exit(1);
141 }
142 REGB1 = CALL_string_search___Match___from(fra.me.REG[3])(fra.me.REG[3]);
143 REGB1 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
144 fra.me.REG[4] = NEW_Match_string_search___Match___init(fra.me.REG[1], REGB0, REGB1);
145 /* ./../lib/standard//string_search.nit:51 */
146 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
147 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
148 /* ./../lib/standard//string_search.nit:52 */
149 if (UNTAG_Bool(REGB1)) {
150 fprintf(stderr, "Reciever is null");
151 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 52);
152 nit_exit(1);
153 }
154 REGB1 = CALL_string_search___Match___after(fra.me.REG[3])(fra.me.REG[3]);
155 REGB0 = REGB1;
156 fra.me.REG[4] = CALL_string_search___Pattern___search_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
157 fra.me.REG[3] = fra.me.REG[4];
158 /* ./../lib/standard//string_search.nit:53 */
159 } else {
160 /* ./../lib/standard//string_search.nit:48 */
161 goto label1;
162 }
163 }
164 label1: while(0);
165 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
166 /* ./../lib/standard//collection//array.nit:23 */
167 if (UNTAG_Bool(REGB1)) {
168 } else {
169 fprintf(stderr, "Uninitialized attribute %s", "_length");
170 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
171 nit_exit(1);
172 }
173 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
174 REGB1 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
175 fra.me.REG[1] = NEW_Match_string_search___Match___init(fra.me.REG[1], REGB0, REGB1);
176 /* ./../lib/standard//string_search.nit:56 */
177 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
178 /* ./../lib/standard//string_search.nit:57 */
179 goto label2;
180 label2: while(0);
181 stack_frame_head = fra.me.prev;
182 return fra.me.REG[2];
183 }
184 void string_search___Pattern___init(val_t p0, int* init_table){
185 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Pattern].i;
186 struct {struct stack_frame_t me;} fra;
187 val_t tmp;
188 if (init_table[itpos0]) return;
189 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
190 fra.me.file = LOCATE_string_search;
191 fra.me.line = 0;
192 fra.me.meth = LOCATE_string_search___Pattern___init;
193 fra.me.has_broke = 0;
194 fra.me.REG_size = 0;
195 stack_frame_head = fra.me.prev;
196 init_table[itpos0] = 1;
197 return;
198 }
199 val_t string_search___BM_Pattern___to_s(val_t p0){
200 struct {struct stack_frame_t me;} fra;
201 val_t REGB0;
202 val_t tmp;
203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
204 fra.me.file = LOCATE_string_search;
205 fra.me.line = 67;
206 fra.me.meth = LOCATE_string_search___BM_Pattern___to_s;
207 fra.me.has_broke = 0;
208 fra.me.REG_size = 1;
209 fra.me.REG[0] = NIT_NULL;
210 fra.me.REG[0] = p0;
211 REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
212 /* ./../lib/standard//string_search.nit:67 */
213 if (UNTAG_Bool(REGB0)) {
214 } else {
215 fprintf(stderr, "Uninitialized attribute %s", "_motif");
216 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 67);
217 nit_exit(1);
218 }
219 fra.me.REG[0] = ATTR_string_search___BM_Pattern____motif(fra.me.REG[0]);
220 goto label1;
221 label1: while(0);
222 stack_frame_head = fra.me.prev;
223 return fra.me.REG[0];
224 }
225 val_t string_search___BM_Pattern___search_index_in(val_t p0, val_t p1, val_t p2){
226 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
227 val_t REGB0;
228 val_t REGB1;
229 val_t REGB2;
230 val_t REGB3;
231 val_t REGB4;
232 val_t REGB5;
233 val_t REGB6;
234 val_t REGB7;
235 val_t tmp;
236 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
237 fra.me.file = LOCATE_string_search;
238 fra.me.line = 69;
239 fra.me.meth = LOCATE_string_search___BM_Pattern___search_index_in;
240 fra.me.has_broke = 0;
241 fra.me.REG_size = 3;
242 fra.me.REG[0] = NIT_NULL;
243 fra.me.REG[1] = NIT_NULL;
244 fra.me.REG[2] = NIT_NULL;
245 fra.me.REG[0] = p0;
246 fra.me.REG[1] = p1;
247 REGB0 = p2;
248 REGB1 = TAG_Int(0);
249 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
250 /* ./../lib/standard//string_search.nit:72 */
251 if (UNTAG_Bool(REGB1)) {
252 } else {
253 fprintf(stderr, "Assert failed");
254 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 72);
255 nit_exit(1);
256 }
257 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
258 /* ./../lib/standard//collection//array.nit:23 */
259 if (UNTAG_Bool(REGB1)) {
260 } else {
261 fprintf(stderr, "Uninitialized attribute %s", "_length");
262 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
263 nit_exit(1);
264 }
265 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
266 REGB2 = TAG_Bool(ATTR_string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
267 /* ./../lib/standard//string_search.nit:74 */
268 if (UNTAG_Bool(REGB2)) {
269 } else {
270 fprintf(stderr, "Uninitialized attribute %s", "_length");
271 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 74);
272 nit_exit(1);
273 }
274 REGB2 = ATTR_string_search___BM_Pattern____length(fra.me.REG[0]);
275 /* ./../lib/standard//string_search.nit:77 */
276 while(1) {
277 REGB3 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
278 REGB4 = TAG_Int(1);
279 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
280 REGB4 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB4));
281 /* ./../lib/standard//string_search.nit:77 */
282 if (UNTAG_Bool(REGB4)) {
283 REGB4 = TAG_Int(1);
284 REGB4 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB4));
285 /* ./../lib/standard//string_search.nit:79 */
286 while(1) {
287 REGB3 = TAG_Int(0);
288 REGB3 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB3));
289 /* ./../lib/standard//string_search.nit:79 */
290 if (UNTAG_Bool(REGB3)) {
291 REGB3 = TAG_Bool(ATTR_string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
292 if (UNTAG_Bool(REGB3)) {
293 } else {
294 fprintf(stderr, "Uninitialized attribute %s", "_motif");
295 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 79);
296 nit_exit(1);
297 }
298 fra.me.REG[2] = ATTR_string_search___BM_Pattern____motif(fra.me.REG[0]);
299 REGB3 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB4);
300 REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB0));
301 REGB5 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB5);
302 REGB6 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB5));
303 /* ./../lib/standard//string_search.nit:79 */
304 if (UNTAG_Bool(REGB6)) {
305 } else {
306 REGB5 = TAG_Bool((REGB3)==(REGB5));
307 REGB6 = REGB5;
308 /* ./../lib/standard//string_search.nit:79 */
309 }
310 } else {
311 REGB5 = TAG_Bool(false);
312 REGB6 = REGB5;
313 }
314 if (UNTAG_Bool(REGB6)) {
315 REGB6 = TAG_Int(1);
316 REGB6 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB6));
317 REGB4 = REGB6;
318 /* ./../lib/standard//string_search.nit:79 */
319 } else {
320 goto label1;
321 }
322 }
323 label1: while(0);
324 REGB6 = TAG_Int(0);
325 REGB6 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB6));
326 /* ./../lib/standard//string_search.nit:80 */
327 if (UNTAG_Bool(REGB6)) {
328 REGB6 = REGB0;
329 /* ./../lib/standard//string_search.nit:81 */
330 goto label2;
331 } else {
332 REGB5 = TAG_Bool(ATTR_string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
333 /* ./../lib/standard//string_search.nit:83 */
334 if (UNTAG_Bool(REGB5)) {
335 } else {
336 fprintf(stderr, "Uninitialized attribute %s", "_gs");
337 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 83);
338 nit_exit(1);
339 }
340 fra.me.REG[2] = ATTR_string_search___BM_Pattern____gs(fra.me.REG[0]);
341 REGB5 = REGB4;
342 REGB3 = TAG_Int(0);
343 REGB3 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB3));
344 /* ./../lib/standard//collection//array.nit:233 */
345 if (UNTAG_Bool(REGB3)) {
346 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
347 if (UNTAG_Bool(REGB3)) {
348 } else {
349 fprintf(stderr, "Uninitialized attribute %s", "_length");
350 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
351 nit_exit(1);
352 }
353 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
354 REGB3 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB3));
355 /* ./../lib/standard//collection//array.nit:233 */
356 } else {
357 REGB7 = TAG_Bool(false);
358 REGB3 = REGB7;
359 }
360 if (UNTAG_Bool(REGB3)) {
361 } else {
362 fprintf(stderr, "Assert %s failed", "'index'");
363 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
364 nit_exit(1);
365 }
366 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
367 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
368 /* ./../lib/standard//collection//array.nit:234 */
369 if (UNTAG_Bool(REGB3)) {
370 fprintf(stderr, "Reciever is null");
371 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
372 nit_exit(1);
373 }
374 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
375 /* ./../lib/standard//collection//array.nit:234 */
376 goto label3;
377 label3: while(0);
378 REGB5 = fra.me.REG[2];
379 REGB3 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB0));
380 REGB3 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB3);
381 REGB3 = CALL_string_search___BM_Pattern___bc(fra.me.REG[0])(fra.me.REG[0], REGB3);
382 REGB3 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB2));
383 REGB7 = TAG_Int(1);
384 REGB7 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB7));
385 REGB4 = TAG_Int(UNTAG_Int(REGB7)+UNTAG_Int(REGB4));
386 REGB7 = TAG_Bool(UNTAG_Int(REGB5)>UNTAG_Int(REGB4));
387 /* ./../lib/standard//string_search.nit:86 */
388 if (UNTAG_Bool(REGB7)) {
389 REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
390 REGB0 = REGB5;
391 /* ./../lib/standard//string_search.nit:87 */
392 } else {
393 REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
394 REGB0 = REGB4;
395 /* ./../lib/standard//string_search.nit:89 */
396 }
397 }
398 } else {
399 /* ./../lib/standard//string_search.nit:77 */
400 goto label4;
401 }
402 }
403 label4: while(0);
404 REGB0 = TAG_Int(1);
405 REGB0 = TAG_Int(-UNTAG_Int(REGB0));
406 REGB6 = REGB0;
407 /* ./../lib/standard//string_search.nit:93 */
408 goto label2;
409 label2: while(0);
410 stack_frame_head = fra.me.prev;
411 return REGB6;
412 }
413 val_t string_search___BM_Pattern___search_in(val_t p0, val_t p1, val_t p2){
414 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
415 val_t REGB0;
416 val_t REGB1;
417 val_t tmp;
418 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
419 fra.me.file = LOCATE_string_search;
420 fra.me.line = 96;
421 fra.me.meth = LOCATE_string_search___BM_Pattern___search_in;
422 fra.me.has_broke = 0;
423 fra.me.REG_size = 3;
424 fra.me.REG[0] = NIT_NULL;
425 fra.me.REG[1] = NIT_NULL;
426 fra.me.REG[2] = NIT_NULL;
427 fra.me.REG[0] = p0;
428 fra.me.REG[1] = p1;
429 REGB0 = p2;
430 REGB0 = CALL_string_search___Pattern___search_index_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
431 REGB1 = TAG_Int(0);
432 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
433 /* ./../lib/standard//string_search.nit:100 */
434 if (UNTAG_Bool(REGB1)) {
435 fra.me.REG[2] = NIT_NULL;
436 /* ./../lib/standard//string_search.nit:101 */
437 goto label1;
438 } else {
439 REGB1 = TAG_Bool(ATTR_string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
440 /* ./../lib/standard//string_search.nit:103 */
441 if (UNTAG_Bool(REGB1)) {
442 } else {
443 fprintf(stderr, "Uninitialized attribute %s", "_length");
444 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 103);
445 nit_exit(1);
446 }
447 REGB1 = ATTR_string_search___BM_Pattern____length(fra.me.REG[0]);
448 fra.me.REG[1] = NEW_Match_string_search___Match___init(fra.me.REG[1], REGB0, REGB1);
449 fra.me.REG[2] = fra.me.REG[1];
450 goto label1;
451 }
452 label1: while(0);
453 stack_frame_head = fra.me.prev;
454 return fra.me.REG[2];
455 }
456 void string_search___BM_Pattern___init(val_t p0, val_t p1, int* init_table){
457 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_BM_Pattern].i;
458 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
459 val_t REGB0;
460 val_t tmp;
461 if (init_table[itpos1]) return;
462 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
463 fra.me.file = LOCATE_string_search;
464 fra.me.line = 107;
465 fra.me.meth = LOCATE_string_search___BM_Pattern___init;
466 fra.me.has_broke = 0;
467 fra.me.REG_size = 3;
468 fra.me.REG[0] = NIT_NULL;
469 fra.me.REG[1] = NIT_NULL;
470 fra.me.REG[2] = NIT_NULL;
471 fra.me.REG[0] = p0;
472 fra.me.REG[1] = p1;
473 fra.me.REG[2] = fra.me.REG[0];
474 /* ./../lib/standard//string_search.nit:107 */
475 CALL_string_search___Pattern___init(fra.me.REG[0])(fra.me.REG[0], init_table);
476 /* ./../lib/standard//string_search.nit:110 */
477 ATTR_string_search___BM_Pattern____motif(fra.me.REG[2]) = fra.me.REG[1];
478 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
479 /* ./../lib/standard//collection//array.nit:23 */
480 if (UNTAG_Bool(REGB0)) {
481 } else {
482 fprintf(stderr, "Uninitialized attribute %s", "_length");
483 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
484 nit_exit(1);
485 }
486 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
487 /* ./../lib/standard//string_search.nit:111 */
488 ATTR_string_search___BM_Pattern____length(fra.me.REG[2]) = REGB0;
489 REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____length(fra.me.REG[2])!=NIT_NULL);
490 /* ./../lib/standard//string_search.nit:112 */
491 if (UNTAG_Bool(REGB0)) {
492 } else {
493 fprintf(stderr, "Uninitialized attribute %s", "_length");
494 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 112);
495 nit_exit(1);
496 }
497 REGB0 = ATTR_string_search___BM_Pattern____length(fra.me.REG[2]);
498 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
499 ATTR_string_search___BM_Pattern____gs(fra.me.REG[2]) = fra.me.REG[1];
500 fra.me.REG[1] = NEW_ArrayMap_array___ArrayMap___init();
501 /* ./../lib/standard//string_search.nit:113 */
502 ATTR_string_search___BM_Pattern____bc_table(fra.me.REG[2]) = fra.me.REG[1];
503 /* ./../lib/standard//string_search.nit:114 */
504 CALL_string_search___BM_Pattern___compute_gs(fra.me.REG[2])(fra.me.REG[2]);
505 /* ./../lib/standard//string_search.nit:115 */
506 CALL_string_search___BM_Pattern___compute_bc(fra.me.REG[2])(fra.me.REG[2]);
507 stack_frame_head = fra.me.prev;
508 init_table[itpos1] = 1;
509 return;
510 }
511 val_t string_search___BM_Pattern___bc(val_t p0, val_t p1){
512 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
513 val_t REGB0;
514 val_t REGB1;
515 val_t tmp;
516 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
517 fra.me.file = LOCATE_string_search;
518 fra.me.line = 124;
519 fra.me.meth = LOCATE_string_search___BM_Pattern___bc;
520 fra.me.has_broke = 0;
521 fra.me.REG_size = 2;
522 fra.me.REG[0] = NIT_NULL;
523 fra.me.REG[1] = NIT_NULL;
524 fra.me.REG[0] = p0;
525 REGB0 = p1;
526 REGB1 = TAG_Bool(ATTR_string_search___BM_Pattern____bc_table(fra.me.REG[0])!=NIT_NULL);
527 /* ./../lib/standard//string_search.nit:126 */
528 if (UNTAG_Bool(REGB1)) {
529 } else {
530 fprintf(stderr, "Uninitialized attribute %s", "_bc_table");
531 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 126);
532 nit_exit(1);
533 }
534 fra.me.REG[1] = ATTR_string_search___BM_Pattern____bc_table(fra.me.REG[0]);
535 REGB1 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[1])(fra.me.REG[1], REGB0);
536 if (UNTAG_Bool(REGB1)) {
537 REGB1 = TAG_Bool(ATTR_string_search___BM_Pattern____bc_table(fra.me.REG[0])!=NIT_NULL);
538 /* ./../lib/standard//string_search.nit:127 */
539 if (UNTAG_Bool(REGB1)) {
540 } else {
541 fprintf(stderr, "Uninitialized attribute %s", "_bc_table");
542 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 127);
543 nit_exit(1);
544 }
545 fra.me.REG[1] = ATTR_string_search___BM_Pattern____bc_table(fra.me.REG[0]);
546 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB0);
547 REGB0 = fra.me.REG[1];
548 goto label1;
549 } else {
550 REGB1 = TAG_Bool(ATTR_string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
551 /* ./../lib/standard//string_search.nit:129 */
552 if (UNTAG_Bool(REGB1)) {
553 } else {
554 fprintf(stderr, "Uninitialized attribute %s", "_length");
555 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 129);
556 nit_exit(1);
557 }
558 REGB1 = ATTR_string_search___BM_Pattern____length(fra.me.REG[0]);
559 REGB0 = REGB1;
560 goto label1;
561 }
562 label1: while(0);
563 stack_frame_head = fra.me.prev;
564 return REGB0;
565 }
566 void string_search___BM_Pattern___compute_bc(val_t p0){
567 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
568 val_t REGB0;
569 val_t REGB1;
570 val_t REGB2;
571 val_t REGB3;
572 val_t REGB4;
573 val_t tmp;
574 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
575 fra.me.file = LOCATE_string_search;
576 fra.me.line = 139;
577 fra.me.meth = LOCATE_string_search___BM_Pattern___compute_bc;
578 fra.me.has_broke = 0;
579 fra.me.REG_size = 3;
580 fra.me.REG[0] = NIT_NULL;
581 fra.me.REG[1] = NIT_NULL;
582 fra.me.REG[2] = NIT_NULL;
583 fra.me.REG[0] = p0;
584 REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
585 /* ./../lib/standard//string_search.nit:141 */
586 if (UNTAG_Bool(REGB0)) {
587 } else {
588 fprintf(stderr, "Uninitialized attribute %s", "_motif");
589 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 141);
590 nit_exit(1);
591 }
592 fra.me.REG[1] = ATTR_string_search___BM_Pattern____motif(fra.me.REG[0]);
593 REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
594 /* ./../lib/standard//string_search.nit:142 */
595 if (UNTAG_Bool(REGB0)) {
596 } else {
597 fprintf(stderr, "Uninitialized attribute %s", "_length");
598 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 142);
599 nit_exit(1);
600 }
601 REGB0 = ATTR_string_search___BM_Pattern____length(fra.me.REG[0]);
602 REGB1 = TAG_Int(0);
603 /* ./../lib/standard//string_search.nit:144 */
604 while(1) {
605 REGB2 = TAG_Int(1);
606 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
607 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
608 /* ./../lib/standard//string_search.nit:144 */
609 if (UNTAG_Bool(REGB2)) {
610 REGB2 = TAG_Bool(ATTR_string_search___BM_Pattern____bc_table(fra.me.REG[0])!=NIT_NULL);
611 /* ./../lib/standard//string_search.nit:145 */
612 if (UNTAG_Bool(REGB2)) {
613 } else {
614 fprintf(stderr, "Uninitialized attribute %s", "_bc_table");
615 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 145);
616 nit_exit(1);
617 }
618 fra.me.REG[2] = ATTR_string_search___BM_Pattern____bc_table(fra.me.REG[0]);
619 REGB2 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB1);
620 REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
621 REGB4 = TAG_Int(1);
622 REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
623 /* ./../lib/standard//string_search.nit:145 */
624 CALL_abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB4);
625 REGB4 = TAG_Int(1);
626 REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
627 REGB1 = REGB4;
628 /* ./../lib/standard//string_search.nit:146 */
629 } else {
630 /* ./../lib/standard//string_search.nit:144 */
631 goto label1;
632 }
633 }
634 label1: while(0);
635 stack_frame_head = fra.me.prev;
636 return;
637 }
638 val_t string_search___BM_Pattern___suffixes(val_t p0){
639 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
640 val_t REGB0;
641 val_t REGB1;
642 val_t REGB2;
643 val_t REGB3;
644 val_t REGB4;
645 val_t REGB5;
646 val_t REGB6;
647 val_t tmp;
648 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
649 fra.me.file = LOCATE_string_search;
650 fra.me.line = 150;
651 fra.me.meth = LOCATE_string_search___BM_Pattern___suffixes;
652 fra.me.has_broke = 0;
653 fra.me.REG_size = 3;
654 fra.me.REG[0] = NIT_NULL;
655 fra.me.REG[1] = NIT_NULL;
656 fra.me.REG[2] = NIT_NULL;
657 fra.me.REG[0] = p0;
658 REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
659 /* ./../lib/standard//string_search.nit:152 */
660 if (UNTAG_Bool(REGB0)) {
661 } else {
662 fprintf(stderr, "Uninitialized attribute %s", "_motif");
663 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 152);
664 nit_exit(1);
665 }
666 fra.me.REG[1] = ATTR_string_search___BM_Pattern____motif(fra.me.REG[0]);
667 REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
668 /* ./../lib/standard//string_search.nit:153 */
669 if (UNTAG_Bool(REGB0)) {
670 } else {
671 fprintf(stderr, "Uninitialized attribute %s", "_length");
672 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 153);
673 nit_exit(1);
674 }
675 REGB0 = ATTR_string_search___BM_Pattern____length(fra.me.REG[0]);
676 fra.me.REG[0] = NEW_Array_array___Array___filled_with(REGB0, REGB0);
677 REGB1 = TAG_Int(0);
678 REGB2 = TAG_Int(1);
679 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
680 REGB3 = TAG_Int(2);
681 REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB3));
682 /* ./../lib/standard//string_search.nit:159 */
683 while(1) {
684 REGB4 = TAG_Int(0);
685 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
686 /* ./../lib/standard//string_search.nit:159 */
687 if (UNTAG_Bool(REGB4)) {
688 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
689 /* ./../lib/standard//string_search.nit:160 */
690 if (UNTAG_Bool(REGB4)) {
691 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
692 REGB5 = TAG_Int(1);
693 REGB5 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB5));
694 REGB5 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB1));
695 fra.me.REG[2] = fra.me.REG[0];
696 REGB4 = TAG_Int(0);
697 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
698 /* ./../lib/standard//collection//array.nit:233 */
699 if (UNTAG_Bool(REGB4)) {
700 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
701 if (UNTAG_Bool(REGB4)) {
702 } else {
703 fprintf(stderr, "Uninitialized attribute %s", "_length");
704 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
705 nit_exit(1);
706 }
707 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
708 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
709 /* ./../lib/standard//collection//array.nit:233 */
710 } else {
711 REGB6 = TAG_Bool(false);
712 REGB4 = REGB6;
713 }
714 if (UNTAG_Bool(REGB4)) {
715 } else {
716 fprintf(stderr, "Assert %s failed", "'index'");
717 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
718 nit_exit(1);
719 }
720 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
721 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
722 /* ./../lib/standard//collection//array.nit:234 */
723 if (UNTAG_Bool(REGB4)) {
724 fprintf(stderr, "Reciever is null");
725 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
726 nit_exit(1);
727 }
728 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
729 /* ./../lib/standard//collection//array.nit:234 */
730 goto label1;
731 label1: while(0);
732 REGB5 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB2));
733 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
734 /* ./../lib/standard//string_search.nit:160 */
735 if (UNTAG_Bool(REGB4)) {
736 fprintf(stderr, "Reciever is null");
737 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 160);
738 nit_exit(1);
739 }
740 REGB5 = TAG_Bool(UNTAG_Int(fra.me.REG[2])<UNTAG_Int(REGB5));
741 /* ./../lib/standard//string_search.nit:160 */
742 } else {
743 REGB4 = TAG_Bool(false);
744 REGB5 = REGB4;
745 }
746 if (UNTAG_Bool(REGB5)) {
747 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
748 REGB4 = TAG_Int(1);
749 REGB4 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB4));
750 REGB4 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB1));
751 fra.me.REG[2] = fra.me.REG[0];
752 REGB5 = TAG_Int(0);
753 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
754 /* ./../lib/standard//collection//array.nit:233 */
755 if (UNTAG_Bool(REGB5)) {
756 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
757 if (UNTAG_Bool(REGB5)) {
758 } else {
759 fprintf(stderr, "Uninitialized attribute %s", "_length");
760 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
761 nit_exit(1);
762 }
763 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
764 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
765 /* ./../lib/standard//collection//array.nit:233 */
766 } else {
767 REGB6 = TAG_Bool(false);
768 REGB5 = REGB6;
769 }
770 if (UNTAG_Bool(REGB5)) {
771 } else {
772 fprintf(stderr, "Assert %s failed", "'index'");
773 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
774 nit_exit(1);
775 }
776 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
777 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
778 /* ./../lib/standard//collection//array.nit:234 */
779 if (UNTAG_Bool(REGB5)) {
780 fprintf(stderr, "Reciever is null");
781 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
782 nit_exit(1);
783 }
784 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
785 /* ./../lib/standard//collection//array.nit:234 */
786 goto label2;
787 label2: while(0);
788 /* ./../lib/standard//string_search.nit:161 */
789 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[2]);
790 } else {
791 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
792 /* ./../lib/standard//string_search.nit:163 */
793 if (UNTAG_Bool(REGB4)) {
794 REGB2 = REGB3;
795 }
796 REGB1 = REGB3;
797 /* ./../lib/standard//string_search.nit:165 */
798 while(1) {
799 REGB4 = TAG_Int(0);
800 REGB4 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB4));
801 /* ./../lib/standard//string_search.nit:165 */
802 if (UNTAG_Bool(REGB4)) {
803 REGB4 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB2);
804 REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
805 REGB6 = TAG_Int(1);
806 REGB6 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB6));
807 REGB6 = TAG_Int(UNTAG_Int(REGB6)-UNTAG_Int(REGB1));
808 REGB6 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB6);
809 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB6));
810 /* ./../lib/standard//string_search.nit:165 */
811 if (UNTAG_Bool(REGB5)) {
812 } else {
813 REGB6 = TAG_Bool((REGB4)==(REGB6));
814 REGB5 = REGB6;
815 /* ./../lib/standard//string_search.nit:165 */
816 }
817 } else {
818 REGB6 = TAG_Bool(false);
819 REGB5 = REGB6;
820 }
821 if (UNTAG_Bool(REGB5)) {
822 REGB5 = TAG_Int(1);
823 REGB5 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB5));
824 REGB2 = REGB5;
825 /* ./../lib/standard//string_search.nit:165 */
826 } else {
827 goto label3;
828 }
829 }
830 label3: while(0);
831 REGB5 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
832 /* ./../lib/standard//string_search.nit:166 */
833 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, REGB5);
834 }
835 REGB5 = TAG_Int(1);
836 REGB5 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB5));
837 REGB3 = REGB5;
838 /* ./../lib/standard//string_search.nit:168 */
839 } else {
840 /* ./../lib/standard//string_search.nit:159 */
841 goto label4;
842 }
843 }
844 label4: while(0);
845 /* ./../lib/standard//string_search.nit:170 */
846 goto label5;
847 label5: while(0);
848 stack_frame_head = fra.me.prev;
849 return fra.me.REG[0];
850 }
851 void string_search___BM_Pattern___compute_gs(val_t p0){
852 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
853 val_t REGB0;
854 val_t REGB1;
855 val_t REGB2;
856 val_t REGB3;
857 val_t REGB4;
858 val_t REGB5;
859 val_t REGB6;
860 val_t tmp;
861 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
862 fra.me.file = LOCATE_string_search;
863 fra.me.line = 173;
864 fra.me.meth = LOCATE_string_search___BM_Pattern___compute_gs;
865 fra.me.has_broke = 0;
866 fra.me.REG_size = 4;
867 fra.me.REG[0] = NIT_NULL;
868 fra.me.REG[1] = NIT_NULL;
869 fra.me.REG[2] = NIT_NULL;
870 fra.me.REG[3] = NIT_NULL;
871 fra.me.REG[0] = p0;
872 REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
873 /* ./../lib/standard//string_search.nit:175 */
874 if (UNTAG_Bool(REGB0)) {
875 } else {
876 fprintf(stderr, "Uninitialized attribute %s", "_motif");
877 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 175);
878 nit_exit(1);
879 }
880 fra.me.REG[1] = ATTR_string_search___BM_Pattern____motif(fra.me.REG[0]);
881 REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
882 /* ./../lib/standard//string_search.nit:176 */
883 if (UNTAG_Bool(REGB0)) {
884 } else {
885 fprintf(stderr, "Uninitialized attribute %s", "_length");
886 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 176);
887 nit_exit(1);
888 }
889 REGB0 = ATTR_string_search___BM_Pattern____length(fra.me.REG[0]);
890 fra.me.REG[1] = CALL_string_search___BM_Pattern___suffixes(fra.me.REG[0])(fra.me.REG[0]);
891 REGB1 = TAG_Int(0);
892 /* ./../lib/standard//string_search.nit:179 */
893 while(1) {
894 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
895 /* ./../lib/standard//string_search.nit:179 */
896 if (UNTAG_Bool(REGB2)) {
897 REGB2 = TAG_Bool(ATTR_string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
898 /* ./../lib/standard//string_search.nit:180 */
899 if (UNTAG_Bool(REGB2)) {
900 } else {
901 fprintf(stderr, "Uninitialized attribute %s", "_gs");
902 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 180);
903 nit_exit(1);
904 }
905 fra.me.REG[2] = ATTR_string_search___BM_Pattern____gs(fra.me.REG[0]);
906 CALL_abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB1, REGB0);
907 REGB2 = TAG_Int(1);
908 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
909 REGB1 = REGB2;
910 /* ./../lib/standard//string_search.nit:181 */
911 } else {
912 /* ./../lib/standard//string_search.nit:179 */
913 goto label1;
914 }
915 }
916 label1: while(0);
917 REGB2 = TAG_Int(0);
918 REGB3 = TAG_Int(1);
919 REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB3));
920 REGB1 = REGB3;
921 /* ./../lib/standard//string_search.nit:185 */
922 while(1) {
923 REGB3 = TAG_Int(1);
924 REGB3 = TAG_Int(-UNTAG_Int(REGB3));
925 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB3));
926 /* ./../lib/standard//string_search.nit:185 */
927 if (UNTAG_Bool(REGB3)) {
928 REGB3 = TAG_Int(1);
929 REGB3 = TAG_Int(-UNTAG_Int(REGB3));
930 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB3));
931 /* ./../lib/standard//string_search.nit:186 */
932 if (UNTAG_Bool(REGB4)) {
933 } else {
934 REGB3 = TAG_Bool((REGB1)==(REGB3));
935 REGB4 = REGB3;
936 /* ./../lib/standard//string_search.nit:186 */
937 }
938 if (UNTAG_Bool(REGB4)) {
939 REGB4 = TAG_Bool(true);
940 } else {
941 fra.me.REG[2] = fra.me.REG[1];
942 REGB3 = REGB1;
943 REGB5 = TAG_Int(0);
944 REGB5 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB5));
945 /* ./../lib/standard//collection//array.nit:233 */
946 if (UNTAG_Bool(REGB5)) {
947 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
948 if (UNTAG_Bool(REGB5)) {
949 } else {
950 fprintf(stderr, "Uninitialized attribute %s", "_length");
951 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
952 nit_exit(1);
953 }
954 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
955 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
956 /* ./../lib/standard//collection//array.nit:233 */
957 } else {
958 REGB6 = TAG_Bool(false);
959 REGB5 = REGB6;
960 }
961 if (UNTAG_Bool(REGB5)) {
962 } else {
963 fprintf(stderr, "Assert %s failed", "'index'");
964 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
965 nit_exit(1);
966 }
967 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
968 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
969 /* ./../lib/standard//collection//array.nit:234 */
970 if (UNTAG_Bool(REGB5)) {
971 fprintf(stderr, "Reciever is null");
972 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
973 nit_exit(1);
974 }
975 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
976 /* ./../lib/standard//collection//array.nit:234 */
977 goto label2;
978 label2: while(0);
979 REGB3 = TAG_Int(1);
980 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
981 REGB5 = TAG_Bool(IS_EQUAL_ON(REGB3,fra.me.REG[2]));
982 /* ./../lib/standard//string_search.nit:186 */
983 if (UNTAG_Bool(REGB5)) {
984 } else {
985 REGB6 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
986 if (UNTAG_Bool(REGB6)) {
987 REGB6 = TAG_Bool(false);
988 REGB5 = REGB6;
989 } else {
990 REGB3 = TAG_Bool((fra.me.REG[2])==(REGB3));
991 REGB5 = REGB3;
992 /* ./../lib/standard//string_search.nit:186 */
993 }
994 }
995 REGB4 = REGB5;
996 }
997 if (UNTAG_Bool(REGB4)) {
998 /* ./../lib/standard//string_search.nit:187 */
999 while(1) {
1000 REGB4 = TAG_Int(1);
1001 REGB4 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB4));
1002 REGB4 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB1));
1003 REGB4 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB4));
1004 /* ./../lib/standard//string_search.nit:187 */
1005 if (UNTAG_Bool(REGB4)) {
1006 REGB4 = TAG_Bool(ATTR_string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
1007 /* ./../lib/standard//string_search.nit:188 */
1008 if (UNTAG_Bool(REGB4)) {
1009 } else {
1010 fprintf(stderr, "Uninitialized attribute %s", "_gs");
1011 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 188);
1012 nit_exit(1);
1013 }
1014 fra.me.REG[2] = ATTR_string_search___BM_Pattern____gs(fra.me.REG[0]);
1015 REGB4 = REGB2;
1016 REGB5 = TAG_Int(0);
1017 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
1018 /* ./../lib/standard//collection//array.nit:233 */
1019 if (UNTAG_Bool(REGB5)) {
1020 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1021 if (UNTAG_Bool(REGB5)) {
1022 } else {
1023 fprintf(stderr, "Uninitialized attribute %s", "_length");
1024 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
1025 nit_exit(1);
1026 }
1027 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
1028 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
1029 /* ./../lib/standard//collection//array.nit:233 */
1030 } else {
1031 REGB3 = TAG_Bool(false);
1032 REGB5 = REGB3;
1033 }
1034 if (UNTAG_Bool(REGB5)) {
1035 } else {
1036 fprintf(stderr, "Assert %s failed", "'index'");
1037 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
1038 nit_exit(1);
1039 }
1040 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
1041 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1042 /* ./../lib/standard//collection//array.nit:234 */
1043 if (UNTAG_Bool(REGB5)) {
1044 fprintf(stderr, "Reciever is null");
1045 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
1046 nit_exit(1);
1047 }
1048 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
1049 /* ./../lib/standard//collection//array.nit:234 */
1050 goto label3;
1051 label3: while(0);
1052 REGB4 = TAG_Bool(IS_EQUAL_ON(REGB0,fra.me.REG[2]));
1053 /* ./../lib/standard//string_search.nit:188 */
1054 if (UNTAG_Bool(REGB4)) {
1055 } else {
1056 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1057 if (UNTAG_Bool(REGB5)) {
1058 REGB5 = TAG_Bool(false);
1059 REGB4 = REGB5;
1060 } else {
1061 REGB5 = TAG_Bool((fra.me.REG[2])==(REGB0));
1062 REGB4 = REGB5;
1063 /* ./../lib/standard//string_search.nit:188 */
1064 }
1065 }
1066 if (UNTAG_Bool(REGB4)) {
1067 REGB4 = TAG_Bool(ATTR_string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
1068 if (UNTAG_Bool(REGB4)) {
1069 } else {
1070 fprintf(stderr, "Uninitialized attribute %s", "_gs");
1071 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 188);
1072 nit_exit(1);
1073 }
1074 fra.me.REG[2] = ATTR_string_search___BM_Pattern____gs(fra.me.REG[0]);
1075 REGB4 = TAG_Int(1);
1076 REGB4 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB4));
1077 REGB4 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB1));
1078 /* ./../lib/standard//string_search.nit:188 */
1079 CALL_abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB4);
1080 }
1081 REGB4 = TAG_Int(1);
1082 REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
1083 REGB2 = REGB4;
1084 /* ./../lib/standard//string_search.nit:189 */
1085 } else {
1086 /* ./../lib/standard//string_search.nit:187 */
1087 goto label4;
1088 }
1089 }
1090 label4: while(0);
1091 }
1092 REGB4 = TAG_Int(1);
1093 REGB4 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB4));
1094 REGB1 = REGB4;
1095 /* ./../lib/standard//string_search.nit:192 */
1096 } else {
1097 /* ./../lib/standard//string_search.nit:185 */
1098 goto label5;
1099 }
1100 }
1101 label5: while(0);
1102 REGB2 = TAG_Int(0);
1103 REGB1 = REGB2;
1104 /* ./../lib/standard//string_search.nit:195 */
1105 while(1) {
1106 REGB2 = TAG_Int(1);
1107 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
1108 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1109 /* ./../lib/standard//string_search.nit:195 */
1110 if (UNTAG_Bool(REGB2)) {
1111 REGB2 = TAG_Bool(ATTR_string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
1112 /* ./../lib/standard//string_search.nit:196 */
1113 if (UNTAG_Bool(REGB2)) {
1114 } else {
1115 fprintf(stderr, "Uninitialized attribute %s", "_gs");
1116 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 196);
1117 nit_exit(1);
1118 }
1119 fra.me.REG[2] = ATTR_string_search___BM_Pattern____gs(fra.me.REG[0]);
1120 REGB2 = TAG_Int(1);
1121 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
1122 fra.me.REG[3] = fra.me.REG[1];
1123 REGB4 = REGB1;
1124 REGB5 = TAG_Int(0);
1125 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
1126 /* ./../lib/standard//collection//array.nit:233 */
1127 if (UNTAG_Bool(REGB5)) {
1128 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1129 if (UNTAG_Bool(REGB5)) {
1130 } else {
1131 fprintf(stderr, "Uninitialized attribute %s", "_length");
1132 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
1133 nit_exit(1);
1134 }
1135 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
1136 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
1137 /* ./../lib/standard//collection//array.nit:233 */
1138 } else {
1139 REGB3 = TAG_Bool(false);
1140 REGB5 = REGB3;
1141 }
1142 if (UNTAG_Bool(REGB5)) {
1143 } else {
1144 fprintf(stderr, "Assert %s failed", "'index'");
1145 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
1146 nit_exit(1);
1147 }
1148 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
1149 REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1150 /* ./../lib/standard//collection//array.nit:234 */
1151 if (UNTAG_Bool(REGB5)) {
1152 fprintf(stderr, "Reciever is null");
1153 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
1154 nit_exit(1);
1155 }
1156 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
1157 /* ./../lib/standard//collection//array.nit:234 */
1158 goto label6;
1159 label6: while(0);
1160 REGB2 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(fra.me.REG[3]));
1161 REGB4 = TAG_Int(1);
1162 REGB4 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB4));
1163 REGB4 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB1));
1164 /* ./../lib/standard//string_search.nit:196 */
1165 CALL_abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB4);
1166 REGB4 = TAG_Int(1);
1167 REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
1168 REGB1 = REGB4;
1169 /* ./../lib/standard//string_search.nit:197 */
1170 } else {
1171 /* ./../lib/standard//string_search.nit:195 */
1172 goto label7;
1173 }
1174 }
1175 label7: while(0);
1176 stack_frame_head = fra.me.prev;
1177 return;
1178 }
1179 val_t string_search___Match___to_s(val_t p0){
1180 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1181 val_t REGB0;
1182 val_t REGB1;
1183 val_t tmp;
1184 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1185 fra.me.file = LOCATE_string_search;
1186 fra.me.line = 217;
1187 fra.me.meth = LOCATE_string_search___Match___to_s;
1188 fra.me.has_broke = 0;
1189 fra.me.REG_size = 2;
1190 fra.me.REG[0] = NIT_NULL;
1191 fra.me.REG[1] = NIT_NULL;
1192 fra.me.REG[0] = p0;
1193 REGB0 = TAG_Bool(ATTR_string_search___Match____string(fra.me.REG[0])!=NIT_NULL);
1194 /* ./../lib/standard//string_search.nit:218 */
1195 if (UNTAG_Bool(REGB0)) {
1196 } else {
1197 fprintf(stderr, "Uninitialized attribute %s", "_string");
1198 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 218);
1199 nit_exit(1);
1200 }
1201 fra.me.REG[1] = ATTR_string_search___Match____string(fra.me.REG[0]);
1202 REGB0 = TAG_Bool(ATTR_string_search___Match____from(fra.me.REG[0])!=NIT_NULL);
1203 if (UNTAG_Bool(REGB0)) {
1204 } else {
1205 fprintf(stderr, "Uninitialized attribute %s", "_from");
1206 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 218);
1207 nit_exit(1);
1208 }
1209 REGB0 = ATTR_string_search___Match____from(fra.me.REG[0]);
1210 REGB1 = TAG_Bool(ATTR_string_search___Match____length(fra.me.REG[0])!=NIT_NULL);
1211 if (UNTAG_Bool(REGB1)) {
1212 } else {
1213 fprintf(stderr, "Uninitialized attribute %s", "_length");
1214 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 218);
1215 nit_exit(1);
1216 }
1217 REGB1 = ATTR_string_search___Match____length(fra.me.REG[0]);
1218 fra.me.REG[1] = CALL_string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB1);
1219 goto label1;
1220 label1: while(0);
1221 stack_frame_head = fra.me.prev;
1222 return fra.me.REG[1];
1223 }
1224 val_t string_search___Match___string(val_t p0){
1225 struct {struct stack_frame_t me;} fra;
1226 val_t REGB0;
1227 val_t tmp;
1228 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1229 fra.me.file = LOCATE_string_search;
1230 fra.me.line = 204;
1231 fra.me.meth = LOCATE_string_search___Match___string;
1232 fra.me.has_broke = 0;
1233 fra.me.REG_size = 1;
1234 fra.me.REG[0] = NIT_NULL;
1235 fra.me.REG[0] = p0;
1236 REGB0 = TAG_Bool(ATTR_string_search___Match____string(fra.me.REG[0])!=NIT_NULL);
1237 /* ./../lib/standard//string_search.nit:204 */
1238 if (UNTAG_Bool(REGB0)) {
1239 } else {
1240 fprintf(stderr, "Uninitialized attribute %s", "_string");
1241 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 204);
1242 nit_exit(1);
1243 }
1244 fra.me.REG[0] = ATTR_string_search___Match____string(fra.me.REG[0]);
1245 stack_frame_head = fra.me.prev;
1246 return fra.me.REG[0];
1247 }
1248 val_t string_search___Match___from(val_t p0){
1249 struct {struct stack_frame_t me;} fra;
1250 val_t REGB0;
1251 val_t tmp;
1252 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1253 fra.me.file = LOCATE_string_search;
1254 fra.me.line = 207;
1255 fra.me.meth = LOCATE_string_search___Match___from;
1256 fra.me.has_broke = 0;
1257 fra.me.REG_size = 1;
1258 fra.me.REG[0] = NIT_NULL;
1259 fra.me.REG[0] = p0;
1260 REGB0 = TAG_Bool(ATTR_string_search___Match____from(fra.me.REG[0])!=NIT_NULL);
1261 /* ./../lib/standard//string_search.nit:207 */
1262 if (UNTAG_Bool(REGB0)) {
1263 } else {
1264 fprintf(stderr, "Uninitialized attribute %s", "_from");
1265 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 207);
1266 nit_exit(1);
1267 }
1268 REGB0 = ATTR_string_search___Match____from(fra.me.REG[0]);
1269 stack_frame_head = fra.me.prev;
1270 return REGB0;
1271 }
1272 val_t string_search___Match___length(val_t p0){
1273 struct {struct stack_frame_t me;} fra;
1274 val_t REGB0;
1275 val_t tmp;
1276 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1277 fra.me.file = LOCATE_string_search;
1278 fra.me.line = 210;
1279 fra.me.meth = LOCATE_string_search___Match___length;
1280 fra.me.has_broke = 0;
1281 fra.me.REG_size = 1;
1282 fra.me.REG[0] = NIT_NULL;
1283 fra.me.REG[0] = p0;
1284 REGB0 = TAG_Bool(ATTR_string_search___Match____length(fra.me.REG[0])!=NIT_NULL);
1285 /* ./../lib/standard//string_search.nit:210 */
1286 if (UNTAG_Bool(REGB0)) {
1287 } else {
1288 fprintf(stderr, "Uninitialized attribute %s", "_length");
1289 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 210);
1290 nit_exit(1);
1291 }
1292 REGB0 = ATTR_string_search___Match____length(fra.me.REG[0]);
1293 stack_frame_head = fra.me.prev;
1294 return REGB0;
1295 }
1296 val_t string_search___Match___after(val_t p0){
1297 struct {struct stack_frame_t me;} fra;
1298 val_t REGB0;
1299 val_t REGB1;
1300 val_t tmp;
1301 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1302 fra.me.file = LOCATE_string_search;
1303 fra.me.line = 213;
1304 fra.me.meth = LOCATE_string_search___Match___after;
1305 fra.me.has_broke = 0;
1306 fra.me.REG_size = 1;
1307 fra.me.REG[0] = NIT_NULL;
1308 fra.me.REG[0] = p0;
1309 REGB0 = TAG_Bool(ATTR_string_search___Match____from(fra.me.REG[0])!=NIT_NULL);
1310 /* ./../lib/standard//string_search.nit:215 */
1311 if (UNTAG_Bool(REGB0)) {
1312 } else {
1313 fprintf(stderr, "Uninitialized attribute %s", "_from");
1314 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 215);
1315 nit_exit(1);
1316 }
1317 REGB0 = ATTR_string_search___Match____from(fra.me.REG[0]);
1318 REGB1 = TAG_Bool(ATTR_string_search___Match____length(fra.me.REG[0])!=NIT_NULL);
1319 if (UNTAG_Bool(REGB1)) {
1320 } else {
1321 fprintf(stderr, "Uninitialized attribute %s", "_length");
1322 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 215);
1323 nit_exit(1);
1324 }
1325 REGB1 = ATTR_string_search___Match____length(fra.me.REG[0]);
1326 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1327 /* ./../lib/standard//string_search.nit:215 */
1328 goto label1;
1329 label1: while(0);
1330 stack_frame_head = fra.me.prev;
1331 return REGB1;
1332 }
1333 void string_search___Match___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1334 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Match].i;
1335 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1336 val_t REGB0;
1337 val_t REGB1;
1338 val_t REGB2;
1339 val_t REGB3;
1340 val_t tmp;
1341 if (init_table[itpos2]) return;
1342 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1343 fra.me.file = LOCATE_string_search;
1344 fra.me.line = 220;
1345 fra.me.meth = LOCATE_string_search___Match___init;
1346 fra.me.has_broke = 0;
1347 fra.me.REG_size = 2;
1348 fra.me.REG[0] = NIT_NULL;
1349 fra.me.REG[1] = NIT_NULL;
1350 fra.me.REG[0] = p0;
1351 fra.me.REG[1] = p1;
1352 REGB0 = p2;
1353 REGB1 = p3;
1354 REGB2 = TAG_Int(0);
1355 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
1356 /* ./../lib/standard//string_search.nit:223 */
1357 if (UNTAG_Bool(REGB2)) {
1358 } else {
1359 fprintf(stderr, "Assert %s failed", "'positive_length'");
1360 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 223);
1361 nit_exit(1);
1362 }
1363 REGB2 = TAG_Int(0);
1364 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
1365 /* ./../lib/standard//string_search.nit:224 */
1366 if (UNTAG_Bool(REGB2)) {
1367 } else {
1368 fprintf(stderr, "Assert %s failed", "'valid_from'");
1369 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 224);
1370 nit_exit(1);
1371 }
1372 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1373 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1374 /* ./../lib/standard//collection//array.nit:23 */
1375 if (UNTAG_Bool(REGB3)) {
1376 } else {
1377 fprintf(stderr, "Uninitialized attribute %s", "_length");
1378 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1379 nit_exit(1);
1380 }
1381 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
1382 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB3));
1383 /* ./../lib/standard//string_search.nit:225 */
1384 if (UNTAG_Bool(REGB3)) {
1385 } else {
1386 fprintf(stderr, "Assert %s failed", "'valid_after'");
1387 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 225);
1388 nit_exit(1);
1389 }
1390 /* ./../lib/standard//string_search.nit:226 */
1391 ATTR_string_search___Match____string(fra.me.REG[0]) = fra.me.REG[1];
1392 /* ./../lib/standard//string_search.nit:227 */
1393 ATTR_string_search___Match____from(fra.me.REG[0]) = REGB0;
1394 /* ./../lib/standard//string_search.nit:228 */
1395 ATTR_string_search___Match____length(fra.me.REG[0]) = REGB1;
1396 stack_frame_head = fra.me.prev;
1397 init_table[itpos2] = 1;
1398 return;
1399 }
1400 val_t string_search___Char___search_index_in(val_t p0, val_t p1, val_t p2){
1401 struct {struct stack_frame_t me;} fra;
1402 val_t REGB0;
1403 val_t REGB1;
1404 val_t REGB2;
1405 val_t REGB3;
1406 val_t REGB4;
1407 val_t tmp;
1408 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1409 fra.me.file = LOCATE_string_search;
1410 fra.me.line = 234;
1411 fra.me.meth = LOCATE_string_search___Char___search_index_in;
1412 fra.me.has_broke = 0;
1413 fra.me.REG_size = 1;
1414 fra.me.REG[0] = NIT_NULL;
1415 REGB0 = p0;
1416 fra.me.REG[0] = p1;
1417 REGB1 = p2;
1418 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1419 /* ./../lib/standard//collection//array.nit:23 */
1420 if (UNTAG_Bool(REGB2)) {
1421 } else {
1422 fprintf(stderr, "Uninitialized attribute %s", "_length");
1423 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1424 nit_exit(1);
1425 }
1426 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1427 /* ./../lib/standard//string_search.nit:237 */
1428 while(1) {
1429 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1430 /* ./../lib/standard//string_search.nit:237 */
1431 if (UNTAG_Bool(REGB3)) {
1432 REGB3 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
1433 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB0));
1434 /* ./../lib/standard//string_search.nit:238 */
1435 if (UNTAG_Bool(REGB4)) {
1436 } else {
1437 REGB3 = TAG_Bool((REGB3)==(REGB0));
1438 REGB4 = REGB3;
1439 /* ./../lib/standard//string_search.nit:238 */
1440 }
1441 if (UNTAG_Bool(REGB4)) {
1442 REGB4 = REGB1;
1443 goto label1;
1444 }
1445 REGB3 = TAG_Int(1);
1446 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
1447 REGB1 = REGB3;
1448 /* ./../lib/standard//string_search.nit:239 */
1449 } else {
1450 /* ./../lib/standard//string_search.nit:237 */
1451 goto label2;
1452 }
1453 }
1454 label2: while(0);
1455 REGB1 = TAG_Int(1);
1456 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
1457 REGB4 = REGB1;
1458 /* ./../lib/standard//string_search.nit:241 */
1459 goto label1;
1460 label1: while(0);
1461 stack_frame_head = fra.me.prev;
1462 return REGB4;
1463 }
1464 val_t string_search___Char___search_in(val_t p0, val_t p1, val_t p2){
1465 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1466 val_t REGB0;
1467 val_t REGB1;
1468 val_t tmp;
1469 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1470 fra.me.file = LOCATE_string_search;
1471 fra.me.line = 244;
1472 fra.me.meth = LOCATE_string_search___Char___search_in;
1473 fra.me.has_broke = 0;
1474 fra.me.REG_size = 2;
1475 fra.me.REG[0] = NIT_NULL;
1476 fra.me.REG[1] = NIT_NULL;
1477 REGB0 = p0;
1478 fra.me.REG[0] = p1;
1479 REGB1 = p2;
1480 REGB1 = CALL_string_search___Pattern___search_index_in(REGB0)(REGB0, fra.me.REG[0], REGB1);
1481 REGB0 = TAG_Int(0);
1482 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
1483 /* ./../lib/standard//string_search.nit:247 */
1484 if (UNTAG_Bool(REGB0)) {
1485 fra.me.REG[1] = NIT_NULL;
1486 /* ./../lib/standard//string_search.nit:248 */
1487 goto label1;
1488 } else {
1489 REGB0 = TAG_Int(1);
1490 fra.me.REG[0] = NEW_Match_string_search___Match___init(fra.me.REG[0], REGB1, REGB0);
1491 fra.me.REG[1] = fra.me.REG[0];
1492 /* ./../lib/standard//string_search.nit:250 */
1493 goto label1;
1494 }
1495 label1: while(0);
1496 stack_frame_head = fra.me.prev;
1497 return fra.me.REG[1];
1498 }
1499 val_t string_search___String___search_index_in(val_t p0, val_t p1, val_t p2){
1500 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1501 val_t REGB0;
1502 val_t REGB1;
1503 val_t REGB2;
1504 val_t REGB3;
1505 val_t REGB4;
1506 val_t REGB5;
1507 val_t tmp;
1508 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1509 fra.me.file = LOCATE_string_search;
1510 fra.me.line = 257;
1511 fra.me.meth = LOCATE_string_search___String___search_index_in;
1512 fra.me.has_broke = 0;
1513 fra.me.REG_size = 2;
1514 fra.me.REG[0] = NIT_NULL;
1515 fra.me.REG[1] = NIT_NULL;
1516 fra.me.REG[0] = p0;
1517 fra.me.REG[1] = p1;
1518 REGB0 = p2;
1519 REGB1 = TAG_Int(0);
1520 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1521 /* ./../lib/standard//string_search.nit:259 */
1522 if (UNTAG_Bool(REGB1)) {
1523 } else {
1524 fprintf(stderr, "Assert failed");
1525 fprintf(stderr, " (%s:%d)\n", LOCATE_string_search, 259);
1526 nit_exit(1);
1527 }
1528 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1529 /* ./../lib/standard//collection//array.nit:23 */
1530 if (UNTAG_Bool(REGB1)) {
1531 } else {
1532 fprintf(stderr, "Uninitialized attribute %s", "_length");
1533 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1534 nit_exit(1);
1535 }
1536 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
1537 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1538 if (UNTAG_Bool(REGB2)) {
1539 } else {
1540 fprintf(stderr, "Uninitialized attribute %s", "_length");
1541 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1542 nit_exit(1);
1543 }
1544 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1545 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
1546 REGB1 = TAG_Int(1);
1547 REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
1548 /* ./../lib/standard//string_search.nit:261 */
1549 while(1) {
1550 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1551 /* ./../lib/standard//string_search.nit:261 */
1552 if (UNTAG_Bool(REGB2)) {
1553 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1554 /* ./../lib/standard//collection//array.nit:23 */
1555 if (UNTAG_Bool(REGB2)) {
1556 } else {
1557 fprintf(stderr, "Uninitialized attribute %s", "_length");
1558 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1559 nit_exit(1);
1560 }
1561 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1562 REGB3 = TAG_Int(1);
1563 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
1564 /* ./../lib/standard//string_search.nit:263 */
1565 while(1) {
1566 REGB2 = TAG_Int(0);
1567 REGB2 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB2));
1568 /* ./../lib/standard//string_search.nit:263 */
1569 if (UNTAG_Bool(REGB2)) {
1570 REGB2 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB3);
1571 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
1572 REGB4 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB4);
1573 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB4));
1574 /* ./../lib/standard//string_search.nit:263 */
1575 if (UNTAG_Bool(REGB5)) {
1576 } else {
1577 REGB4 = TAG_Bool((REGB2)==(REGB4));
1578 REGB5 = REGB4;
1579 /* ./../lib/standard//string_search.nit:263 */
1580 }
1581 } else {
1582 REGB4 = TAG_Bool(false);
1583 REGB5 = REGB4;
1584 }
1585 if (UNTAG_Bool(REGB5)) {
1586 REGB5 = TAG_Int(1);
1587 REGB5 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB5));
1588 REGB3 = REGB5;
1589 /* ./../lib/standard//string_search.nit:263 */
1590 } else {
1591 goto label1;
1592 }
1593 }
1594 label1: while(0);
1595 REGB5 = TAG_Int(0);
1596 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
1597 /* ./../lib/standard//string_search.nit:265 */
1598 if (UNTAG_Bool(REGB5)) {
1599 REGB5 = REGB0;
1600 goto label2;
1601 }
1602 REGB3 = TAG_Int(1);
1603 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
1604 REGB0 = REGB3;
1605 /* ./../lib/standard//string_search.nit:267 */
1606 } else {
1607 /* ./../lib/standard//string_search.nit:261 */
1608 goto label3;
1609 }
1610 }
1611 label3: while(0);
1612 REGB0 = TAG_Int(1);
1613 REGB0 = TAG_Int(-UNTAG_Int(REGB0));
1614 REGB5 = REGB0;
1615 /* ./../lib/standard//string_search.nit:269 */
1616 goto label2;
1617 label2: while(0);
1618 stack_frame_head = fra.me.prev;
1619 return REGB5;
1620 }
1621 val_t string_search___String___search_in(val_t p0, val_t p1, val_t p2){
1622 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1623 val_t REGB0;
1624 val_t REGB1;
1625 val_t tmp;
1626 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1627 fra.me.file = LOCATE_string_search;
1628 fra.me.line = 272;
1629 fra.me.meth = LOCATE_string_search___String___search_in;
1630 fra.me.has_broke = 0;
1631 fra.me.REG_size = 3;
1632 fra.me.REG[0] = NIT_NULL;
1633 fra.me.REG[1] = NIT_NULL;
1634 fra.me.REG[2] = NIT_NULL;
1635 fra.me.REG[0] = p0;
1636 fra.me.REG[1] = p1;
1637 REGB0 = p2;
1638 REGB0 = CALL_string_search___Pattern___search_index_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
1639 REGB1 = TAG_Int(0);
1640 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1641 /* ./../lib/standard//string_search.nit:275 */
1642 if (UNTAG_Bool(REGB1)) {
1643 fra.me.REG[2] = NIT_NULL;
1644 /* ./../lib/standard//string_search.nit:276 */
1645 goto label1;
1646 } else {
1647 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1648 /* ./../lib/standard//collection//array.nit:23 */
1649 if (UNTAG_Bool(REGB1)) {
1650 } else {
1651 fprintf(stderr, "Uninitialized attribute %s", "_length");
1652 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1653 nit_exit(1);
1654 }
1655 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1656 fra.me.REG[1] = NEW_Match_string_search___Match___init(fra.me.REG[1], REGB0, REGB1);
1657 fra.me.REG[2] = fra.me.REG[1];
1658 /* ./../lib/standard//string_search.nit:278 */
1659 goto label1;
1660 }
1661 label1: while(0);
1662 stack_frame_head = fra.me.prev;
1663 return fra.me.REG[2];
1664 }
1665 val_t string_search___String___search(val_t p0, val_t p1){
1666 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1667 val_t REGB0;
1668 val_t tmp;
1669 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1670 fra.me.file = LOCATE_string_search;
1671 fra.me.line = 282;
1672 fra.me.meth = LOCATE_string_search___String___search;
1673 fra.me.has_broke = 0;
1674 fra.me.REG_size = 2;
1675 fra.me.REG[0] = NIT_NULL;
1676 fra.me.REG[1] = NIT_NULL;
1677 fra.me.REG[0] = p0;
1678 fra.me.REG[1] = p1;
1679 REGB0 = TAG_Int(0);
1680 fra.me.REG[0] = CALL_string_search___Pattern___search_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], REGB0);
1681 /* ./../lib/standard//string_search.nit:283 */
1682 goto label1;
1683 label1: while(0);
1684 stack_frame_head = fra.me.prev;
1685 return fra.me.REG[0];
1686 }
1687 val_t string_search___String___search_from(val_t p0, val_t p1, val_t p2){
1688 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1689 val_t REGB0;
1690 val_t tmp;
1691 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1692 fra.me.file = LOCATE_string_search;
1693 fra.me.line = 285;
1694 fra.me.meth = LOCATE_string_search___String___search_from;
1695 fra.me.has_broke = 0;
1696 fra.me.REG_size = 2;
1697 fra.me.REG[0] = NIT_NULL;
1698 fra.me.REG[1] = NIT_NULL;
1699 fra.me.REG[0] = p0;
1700 fra.me.REG[1] = p1;
1701 REGB0 = p2;
1702 fra.me.REG[0] = CALL_string_search___Pattern___search_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], REGB0);
1703 /* ./../lib/standard//string_search.nit:288 */
1704 goto label1;
1705 label1: while(0);
1706 stack_frame_head = fra.me.prev;
1707 return fra.me.REG[0];
1708 }
1709 val_t string_search___String___search_all(val_t p0, val_t p1){
1710 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1711 val_t tmp;
1712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1713 fra.me.file = LOCATE_string_search;
1714 fra.me.line = 290;
1715 fra.me.meth = LOCATE_string_search___String___search_all;
1716 fra.me.has_broke = 0;
1717 fra.me.REG_size = 2;
1718 fra.me.REG[0] = NIT_NULL;
1719 fra.me.REG[1] = NIT_NULL;
1720 fra.me.REG[0] = p0;
1721 fra.me.REG[1] = p1;
1722 fra.me.REG[0] = CALL_string_search___Pattern___search_all_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1723 /* ./../lib/standard//string_search.nit:297 */
1724 goto label1;
1725 label1: while(0);
1726 stack_frame_head = fra.me.prev;
1727 return fra.me.REG[0];
1728 }
1729 val_t string_search___String___split_with(val_t p0, val_t p1){
1730 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1731 val_t REGB0;
1732 val_t tmp;
1733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1734 fra.me.file = LOCATE_string_search;
1735 fra.me.line = 299;
1736 fra.me.meth = LOCATE_string_search___String___split_with;
1737 fra.me.has_broke = 0;
1738 fra.me.REG_size = 3;
1739 fra.me.REG[0] = NIT_NULL;
1740 fra.me.REG[1] = NIT_NULL;
1741 fra.me.REG[2] = NIT_NULL;
1742 fra.me.REG[0] = p0;
1743 fra.me.REG[1] = p1;
1744 fra.me.REG[0] = CALL_string_search___Pattern___split_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1745 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1746 /* ./../lib/standard//collection//array.nit:23 */
1747 if (UNTAG_Bool(REGB0)) {
1748 } else {
1749 fprintf(stderr, "Uninitialized attribute %s", "_length");
1750 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1751 nit_exit(1);
1752 }
1753 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1754 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
1755 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
1756 /* ./../lib/standard//string_search.nit:305 */
1757 while(1) {
1758 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
1759 if (UNTAG_Bool(REGB0)) {
1760 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
1761 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1762 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
1763 } else {
1764 goto label1;
1765 }
1766 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
1767 }
1768 label1: while(0);
1769 /* ./../lib/standard//string_search.nit:306 */
1770 goto label2;
1771 label2: while(0);
1772 stack_frame_head = fra.me.prev;
1773 return fra.me.REG[1];
1774 }
1775 val_t string_search___String___split(val_t p0){
1776 struct {struct stack_frame_t me;} fra;
1777 val_t REGB0;
1778 val_t tmp;
1779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1780 fra.me.file = LOCATE_string_search;
1781 fra.me.line = 309;
1782 fra.me.meth = LOCATE_string_search___String___split;
1783 fra.me.has_broke = 0;
1784 fra.me.REG_size = 1;
1785 fra.me.REG[0] = NIT_NULL;
1786 fra.me.REG[0] = p0;
1787 REGB0 = TAG_Char('\n');
1788 fra.me.REG[0] = CALL_string_search___String___split_with(fra.me.REG[0])(fra.me.REG[0], REGB0);
1789 /* ./../lib/standard//string_search.nit:311 */
1790 goto label1;
1791 label1: while(0);
1792 stack_frame_head = fra.me.prev;
1793 return fra.me.REG[0];
1794 }