PostgreSQL Source Code git master
stem_ISO_8859_1_dutch_porter.c
Go to the documentation of this file.
1/* Generated from dutch_porter.sbl by Snowball 3.0.0 - https://snowballstem.org/ */
2
4
5#include <stddef.h>
6
7#include "snowball_runtime.h"
8
9struct SN_local {
10 struct SN_env z;
11 int i_p2;
12 int i_p1;
13 unsigned char b_e_found;
14};
15
16typedef struct SN_local SN_local;
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21extern int dutch_porter_ISO_8859_1_stem(struct SN_env * z);
22#ifdef __cplusplus
23}
24#endif
25
26static int r_standard_suffix(struct SN_env * z);
27static int r_undouble(struct SN_env * z);
28static int r_R2(struct SN_env * z);
29static int r_R1(struct SN_env * z);
30static int r_mark_regions(struct SN_env * z);
31static int r_en_ending(struct SN_env * z);
32static int r_e_ending(struct SN_env * z);
33static int r_postlude(struct SN_env * z);
34static int r_prelude(struct SN_env * z);
35
36static const symbol s_0[] = { 'a' };
37static const symbol s_1[] = { 'e' };
38static const symbol s_2[] = { 'i' };
39static const symbol s_3[] = { 'o' };
40static const symbol s_4[] = { 'u' };
41static const symbol s_5[] = { 'Y' };
42static const symbol s_6[] = { 'I' };
43static const symbol s_7[] = { 'Y' };
44static const symbol s_8[] = { 'y' };
45static const symbol s_9[] = { 'i' };
46static const symbol s_10[] = { 'g', 'e', 'm' };
47static const symbol s_11[] = { 'h', 'e', 'i', 'd' };
48static const symbol s_12[] = { 'h', 'e', 'i', 'd' };
49static const symbol s_13[] = { 'e', 'n' };
50static const symbol s_14[] = { 'i', 'g' };
51
52static const symbol s_0_1[1] = { 0xE1 };
53static const symbol s_0_2[1] = { 0xE4 };
54static const symbol s_0_3[1] = { 0xE9 };
55static const symbol s_0_4[1] = { 0xEB };
56static const symbol s_0_5[1] = { 0xED };
57static const symbol s_0_6[1] = { 0xEF };
58static const symbol s_0_7[1] = { 0xF3 };
59static const symbol s_0_8[1] = { 0xF6 };
60static const symbol s_0_9[1] = { 0xFA };
61static const symbol s_0_10[1] = { 0xFC };
62static const struct among a_0[11] = {
63{ 0, 0, 0, 6, 0},
64{ 1, s_0_1, -1, 1, 0},
65{ 1, s_0_2, -2, 1, 0},
66{ 1, s_0_3, -3, 2, 0},
67{ 1, s_0_4, -4, 2, 0},
68{ 1, s_0_5, -5, 3, 0},
69{ 1, s_0_6, -6, 3, 0},
70{ 1, s_0_7, -7, 4, 0},
71{ 1, s_0_8, -8, 4, 0},
72{ 1, s_0_9, -9, 5, 0},
73{ 1, s_0_10, -10, 5, 0}
74};
75
76static const symbol s_1_1[1] = { 'I' };
77static const symbol s_1_2[1] = { 'Y' };
78static const struct among a_1[3] = {
79{ 0, 0, 0, 3, 0},
80{ 1, s_1_1, -1, 2, 0},
81{ 1, s_1_2, -2, 1, 0}
82};
83
84static const symbol s_2_0[2] = { 'd', 'd' };
85static const symbol s_2_1[2] = { 'k', 'k' };
86static const symbol s_2_2[2] = { 't', 't' };
87static const struct among a_2[3] = {
88{ 2, s_2_0, 0, -1, 0},
89{ 2, s_2_1, 0, -1, 0},
90{ 2, s_2_2, 0, -1, 0}
91};
92
93static const symbol s_3_0[3] = { 'e', 'n', 'e' };
94static const symbol s_3_1[2] = { 's', 'e' };
95static const symbol s_3_2[2] = { 'e', 'n' };
96static const symbol s_3_3[5] = { 'h', 'e', 'd', 'e', 'n' };
97static const symbol s_3_4[1] = { 's' };
98static const struct among a_3[5] = {
99{ 3, s_3_0, 0, 2, 0},
100{ 2, s_3_1, 0, 3, 0},
101{ 2, s_3_2, 0, 2, 0},
102{ 5, s_3_3, -1, 1, 0},
103{ 1, s_3_4, 0, 3, 0}
104};
105
106static const symbol s_4_0[3] = { 'e', 'n', 'd' };
107static const symbol s_4_1[2] = { 'i', 'g' };
108static const symbol s_4_2[3] = { 'i', 'n', 'g' };
109static const symbol s_4_3[4] = { 'l', 'i', 'j', 'k' };
110static const symbol s_4_4[4] = { 'b', 'a', 'a', 'r' };
111static const symbol s_4_5[3] = { 'b', 'a', 'r' };
112static const struct among a_4[6] = {
113{ 3, s_4_0, 0, 1, 0},
114{ 2, s_4_1, 0, 2, 0},
115{ 3, s_4_2, 0, 1, 0},
116{ 4, s_4_3, 0, 3, 0},
117{ 4, s_4_4, 0, 4, 0},
118{ 3, s_4_5, 0, 5, 0}
119};
120
121static const symbol s_5_0[2] = { 'a', 'a' };
122static const symbol s_5_1[2] = { 'e', 'e' };
123static const symbol s_5_2[2] = { 'o', 'o' };
124static const symbol s_5_3[2] = { 'u', 'u' };
125static const struct among a_5[4] = {
126{ 2, s_5_0, 0, -1, 0},
127{ 2, s_5_1, 0, -1, 0},
128{ 2, s_5_2, 0, -1, 0},
129{ 2, s_5_3, 0, -1, 0}
130};
131
132static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
133
134static const unsigned char g_v_I[] = { 1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
135
136static const unsigned char g_v_j[] = { 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
137
138static int r_prelude(struct SN_env * z) {
139 int among_var;
140 {
141 int v_1 = z->c;
142 while (1) {
143 int v_2 = z->c;
144 z->bra = z->c;
145 if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else
146 among_var = find_among(z, a_0, 11, 0);
147 z->ket = z->c;
148 switch (among_var) {
149 case 1:
150 {
151 int ret = slice_from_s(z, 1, s_0);
152 if (ret < 0) return ret;
153 }
154 break;
155 case 2:
156 {
157 int ret = slice_from_s(z, 1, s_1);
158 if (ret < 0) return ret;
159 }
160 break;
161 case 3:
162 {
163 int ret = slice_from_s(z, 1, s_2);
164 if (ret < 0) return ret;
165 }
166 break;
167 case 4:
168 {
169 int ret = slice_from_s(z, 1, s_3);
170 if (ret < 0) return ret;
171 }
172 break;
173 case 5:
174 {
175 int ret = slice_from_s(z, 1, s_4);
176 if (ret < 0) return ret;
177 }
178 break;
179 case 6:
180 if (z->c >= z->l) goto lab0;
181 z->c++;
182 break;
183 }
184 continue;
185 lab0:
186 z->c = v_2;
187 break;
188 }
189 z->c = v_1;
190 }
191 {
192 int v_3 = z->c;
193 z->bra = z->c;
194 if (z->c == z->l || z->p[z->c] != 'y') { z->c = v_3; goto lab1; }
195 z->c++;
196 z->ket = z->c;
197 {
198 int ret = slice_from_s(z, 1, s_5);
199 if (ret < 0) return ret;
200 }
201 lab1:
202 ;
203 }
204 while (1) {
205 int v_4 = z->c;
206 {
207 int ret = out_grouping(z, g_v, 97, 232, 1);
208 if (ret < 0) goto lab2;
209 z->c += ret;
210 }
211 {
212 int v_5 = z->c;
213 z->bra = z->c;
214 do {
215 int v_6 = z->c;
216 if (z->c == z->l || z->p[z->c] != 'i') goto lab4;
217 z->c++;
218 z->ket = z->c;
219 {
220 int v_7 = z->c;
221 if (in_grouping(z, g_v, 97, 232, 0)) goto lab5;
222 {
223 int ret = slice_from_s(z, 1, s_6);
224 if (ret < 0) return ret;
225 }
226 lab5:
227 z->c = v_7;
228 }
229 break;
230 lab4:
231 z->c = v_6;
232 if (z->c == z->l || z->p[z->c] != 'y') { z->c = v_5; goto lab3; }
233 z->c++;
234 z->ket = z->c;
235 {
236 int ret = slice_from_s(z, 1, s_7);
237 if (ret < 0) return ret;
238 }
239 } while (0);
240 lab3:
241 ;
242 }
243 continue;
244 lab2:
245 z->c = v_4;
246 break;
247 }
248 return 1;
249}
250
251static int r_mark_regions(struct SN_env * z) {
252 int i_x;
253 ((SN_local *)z)->i_p1 = z->l;
254 ((SN_local *)z)->i_p2 = z->l;
255 {
256 int v_1 = z->c;
257 if (z->c + 3 > z->l) return 0;
258 z->c += 3;
259 i_x = z->c;
260 z->c = v_1;
261 }
262 {
263 int ret = out_grouping(z, g_v, 97, 232, 1);
264 if (ret < 0) return 0;
265 z->c += ret;
266 }
267 {
268 int ret = in_grouping(z, g_v, 97, 232, 1);
269 if (ret < 0) return 0;
270 z->c += ret;
271 }
272 ((SN_local *)z)->i_p1 = z->c;
273 if (((SN_local *)z)->i_p1 >= i_x) goto lab0;
274 ((SN_local *)z)->i_p1 = i_x;
275lab0:
276 {
277 int ret = out_grouping(z, g_v, 97, 232, 1);
278 if (ret < 0) return 0;
279 z->c += ret;
280 }
281 {
282 int ret = in_grouping(z, g_v, 97, 232, 1);
283 if (ret < 0) return 0;
284 z->c += ret;
285 }
286 ((SN_local *)z)->i_p2 = z->c;
287 return 1;
288}
289
290static int r_postlude(struct SN_env * z) {
291 int among_var;
292 while (1) {
293 int v_1 = z->c;
294 z->bra = z->c;
295 if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
296 among_var = find_among(z, a_1, 3, 0);
297 z->ket = z->c;
298 switch (among_var) {
299 case 1:
300 {
301 int ret = slice_from_s(z, 1, s_8);
302 if (ret < 0) return ret;
303 }
304 break;
305 case 2:
306 {
307 int ret = slice_from_s(z, 1, s_9);
308 if (ret < 0) return ret;
309 }
310 break;
311 case 3:
312 if (z->c >= z->l) goto lab0;
313 z->c++;
314 break;
315 }
316 continue;
317 lab0:
318 z->c = v_1;
319 break;
320 }
321 return 1;
322}
323
324static int r_R1(struct SN_env * z) {
325 return ((SN_local *)z)->i_p1 <= z->c;
326}
327
328static int r_R2(struct SN_env * z) {
329 return ((SN_local *)z)->i_p2 <= z->c;
330}
331
332static int r_undouble(struct SN_env * z) {
333 {
334 int v_1 = z->l - z->c;
335 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
336 if (!find_among_b(z, a_2, 3, 0)) return 0;
337 z->c = z->l - v_1;
338 }
339 z->ket = z->c;
340 if (z->c <= z->lb) return 0;
341 z->c--;
342 z->bra = z->c;
343 {
344 int ret = slice_del(z);
345 if (ret < 0) return ret;
346 }
347 return 1;
348}
349
350static int r_e_ending(struct SN_env * z) {
351 ((SN_local *)z)->b_e_found = 0;
352 z->ket = z->c;
353 if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
354 z->c--;
355 z->bra = z->c;
356 {
357 int ret = r_R1(z);
358 if (ret <= 0) return ret;
359 }
360 {
361 int v_1 = z->l - z->c;
362 if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
363 z->c = z->l - v_1;
364 }
365 {
366 int ret = slice_del(z);
367 if (ret < 0) return ret;
368 }
369 ((SN_local *)z)->b_e_found = 1;
370 return r_undouble(z);
371}
372
373static int r_en_ending(struct SN_env * z) {
374 {
375 int ret = r_R1(z);
376 if (ret <= 0) return ret;
377 }
378 {
379 int v_1 = z->l - z->c;
380 if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
381 z->c = z->l - v_1;
382 {
383 int v_2 = z->l - z->c;
384 if (!(eq_s_b(z, 3, s_10))) goto lab0;
385 return 0;
386 lab0:
387 z->c = z->l - v_2;
388 }
389 }
390 {
391 int ret = slice_del(z);
392 if (ret < 0) return ret;
393 }
394 return r_undouble(z);
395}
396
397static int r_standard_suffix(struct SN_env * z) {
398 int among_var;
399 {
400 int v_1 = z->l - z->c;
401 z->ket = z->c;
402 if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
403 among_var = find_among_b(z, a_3, 5, 0);
404 if (!among_var) goto lab0;
405 z->bra = z->c;
406 switch (among_var) {
407 case 1:
408 {
409 int ret = r_R1(z);
410 if (ret == 0) goto lab0;
411 if (ret < 0) return ret;
412 }
413 {
414 int ret = slice_from_s(z, 4, s_11);
415 if (ret < 0) return ret;
416 }
417 break;
418 case 2:
419 {
420 int ret = r_en_ending(z);
421 if (ret == 0) goto lab0;
422 if (ret < 0) return ret;
423 }
424 break;
425 case 3:
426 {
427 int ret = r_R1(z);
428 if (ret == 0) goto lab0;
429 if (ret < 0) return ret;
430 }
431 if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0;
432 {
433 int ret = slice_del(z);
434 if (ret < 0) return ret;
435 }
436 break;
437 }
438 lab0:
439 z->c = z->l - v_1;
440 }
441 {
442 int v_2 = z->l - z->c;
443 {
444 int ret = r_e_ending(z);
445 if (ret < 0) return ret;
446 }
447 z->c = z->l - v_2;
448 }
449 {
450 int v_3 = z->l - z->c;
451 z->ket = z->c;
452 if (!(eq_s_b(z, 4, s_12))) goto lab1;
453 z->bra = z->c;
454 {
455 int ret = r_R2(z);
456 if (ret == 0) goto lab1;
457 if (ret < 0) return ret;
458 }
459 {
460 int v_4 = z->l - z->c;
461 if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2;
462 z->c--;
463 goto lab1;
464 lab2:
465 z->c = z->l - v_4;
466 }
467 {
468 int ret = slice_del(z);
469 if (ret < 0) return ret;
470 }
471 z->ket = z->c;
472 if (!(eq_s_b(z, 2, s_13))) goto lab1;
473 z->bra = z->c;
474 {
475 int ret = r_en_ending(z);
476 if (ret == 0) goto lab1;
477 if (ret < 0) return ret;
478 }
479 lab1:
480 z->c = z->l - v_3;
481 }
482 {
483 int v_5 = z->l - z->c;
484 z->ket = z->c;
485 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
486 among_var = find_among_b(z, a_4, 6, 0);
487 if (!among_var) goto lab3;
488 z->bra = z->c;
489 switch (among_var) {
490 case 1:
491 {
492 int ret = r_R2(z);
493 if (ret == 0) goto lab3;
494 if (ret < 0) return ret;
495 }
496 {
497 int ret = slice_del(z);
498 if (ret < 0) return ret;
499 }
500 do {
501 int v_6 = z->l - z->c;
502 z->ket = z->c;
503 if (!(eq_s_b(z, 2, s_14))) goto lab4;
504 z->bra = z->c;
505 {
506 int ret = r_R2(z);
507 if (ret == 0) goto lab4;
508 if (ret < 0) return ret;
509 }
510 {
511 int v_7 = z->l - z->c;
512 if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5;
513 z->c--;
514 goto lab4;
515 lab5:
516 z->c = z->l - v_7;
517 }
518 {
519 int ret = slice_del(z);
520 if (ret < 0) return ret;
521 }
522 break;
523 lab4:
524 z->c = z->l - v_6;
525 {
526 int ret = r_undouble(z);
527 if (ret == 0) goto lab3;
528 if (ret < 0) return ret;
529 }
530 } while (0);
531 break;
532 case 2:
533 {
534 int ret = r_R2(z);
535 if (ret == 0) goto lab3;
536 if (ret < 0) return ret;
537 }
538 {
539 int v_8 = z->l - z->c;
540 if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
541 z->c--;
542 goto lab3;
543 lab6:
544 z->c = z->l - v_8;
545 }
546 {
547 int ret = slice_del(z);
548 if (ret < 0) return ret;
549 }
550 break;
551 case 3:
552 {
553 int ret = r_R2(z);
554 if (ret == 0) goto lab3;
555 if (ret < 0) return ret;
556 }
557 {
558 int ret = slice_del(z);
559 if (ret < 0) return ret;
560 }
561 {
562 int ret = r_e_ending(z);
563 if (ret == 0) goto lab3;
564 if (ret < 0) return ret;
565 }
566 break;
567 case 4:
568 {
569 int ret = r_R2(z);
570 if (ret == 0) goto lab3;
571 if (ret < 0) return ret;
572 }
573 {
574 int ret = slice_del(z);
575 if (ret < 0) return ret;
576 }
577 break;
578 case 5:
579 {
580 int ret = r_R2(z);
581 if (ret == 0) goto lab3;
582 if (ret < 0) return ret;
583 }
584 if (!((SN_local *)z)->b_e_found) goto lab3;
585 {
586 int ret = slice_del(z);
587 if (ret < 0) return ret;
588 }
589 break;
590 }
591 lab3:
592 z->c = z->l - v_5;
593 }
594 {
595 int v_9 = z->l - z->c;
596 if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab7;
597 {
598 int v_10 = z->l - z->c;
599 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab7;
600 if (!find_among_b(z, a_5, 4, 0)) goto lab7;
601 if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab7;
602 z->c = z->l - v_10;
603 }
604 z->ket = z->c;
605 if (z->c <= z->lb) goto lab7;
606 z->c--;
607 z->bra = z->c;
608 {
609 int ret = slice_del(z);
610 if (ret < 0) return ret;
611 }
612 lab7:
613 z->c = z->l - v_9;
614 }
615 return 1;
616}
617
618extern int dutch_porter_ISO_8859_1_stem(struct SN_env * z) {
619 {
620 int v_1 = z->c;
621 {
622 int ret = r_prelude(z);
623 if (ret < 0) return ret;
624 }
625 z->c = v_1;
626 }
627 {
628 int v_2 = z->c;
629 {
630 int ret = r_mark_regions(z);
631 if (ret < 0) return ret;
632 }
633 z->c = v_2;
634 }
635 z->lb = z->c; z->c = z->l;
636 {
637 int ret = r_standard_suffix(z);
638 if (ret < 0) return ret;
639 }
640 z->c = z->lb;
641 {
642 int v_3 = z->c;
643 {
644 int ret = r_postlude(z);
645 if (ret < 0) return ret;
646 }
647 z->c = v_3;
648 }
649 return 1;
650}
651
653 struct SN_env * z = SN_new_env(sizeof(SN_local));
654 if (z) {
655 ((SN_local *)z)->i_p2 = 0;
656 ((SN_local *)z)->i_p1 = 0;
657 ((SN_local *)z)->b_e_found = 0;
658 }
659 return z;
660}
661
663 SN_delete_env(z);
664}
665
void SN_delete_env(struct SN_env *z)
Definition: api.c:18
struct SN_env * SN_new_env(int alloc_size)
Definition: api.c:5
unsigned char symbol
Definition: api.h:4
static const struct among a_5[4]
static const symbol s_0_8[1]
static const symbol s_2[]
static const symbol s_2_2[2]
static const symbol s_4[]
static const unsigned char g_v_I[]
static const unsigned char g_v_j[]
static const symbol s_5_3[2]
static const symbol s_4_3[4]
static const symbol s_3_1[2]
static const symbol s_5_0[2]
static const symbol s_0_2[1]
static int r_standard_suffix(struct SN_env *z)
static int r_en_ending(struct SN_env *z)
static const symbol s_4_1[2]
static const symbol s_4_4[4]
static const symbol s_2_0[2]
static const struct among a_4[6]
static const symbol s_6[]
static const symbol s_0_6[1]
static const symbol s_3[]
static const symbol s_3_0[3]
struct SN_env * dutch_porter_ISO_8859_1_create_env(void)
static int r_R2(struct SN_env *z)
static const symbol s_7[]
static const symbol s_13[]
static const symbol s_0_4[1]
static int r_undouble(struct SN_env *z)
static const symbol s_0_9[1]
int dutch_porter_ISO_8859_1_stem(struct SN_env *z)
static const symbol s_4_5[3]
static const symbol s_0_10[1]
static int r_R1(struct SN_env *z)
static const symbol s_1_2[1]
static int r_postlude(struct SN_env *z)
static const symbol s_14[]
static int r_prelude(struct SN_env *z)
static const symbol s_0_7[1]
static const symbol s_10[]
static const symbol s_1_1[1]
static const struct among a_1[3]
static const symbol s_1[]
static const symbol s_0_5[1]
static const struct among a_2[3]
static const symbol s_5_2[2]
static const symbol s_3_3[5]
static int r_mark_regions(struct SN_env *z)
static const symbol s_11[]
static const symbol s_12[]
static const struct among a_0[11]
static const symbol s_0_3[1]
static const symbol s_0_1[1]
static const symbol s_3_4[1]
static const struct among a_3[5]
static const symbol s_5_1[2]
static int r_e_ending(struct SN_env *z)
void dutch_porter_ISO_8859_1_close_env(struct SN_env *z)
static const symbol s_2_1[2]
static const unsigned char g_v[]
static const symbol s_8[]
static const symbol s_9[]
static const symbol s_3_2[2]
static const symbol s_5[]
static const symbol s_4_2[3]
static const symbol s_4_0[3]
static const symbol s_0[]
Definition: api.h:15
int lb
Definition: api.h:17
symbol * p
Definition: api.h:16
int ket
Definition: api.h:17
int c
Definition: api.h:17
int bra
Definition: api.h:17
int l
Definition: api.h:17
unsigned char b_e_found
struct SN_env z
SNOWBALL_ERR slice_from_s(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.c:432
int in_grouping(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.c:183
int out_grouping_b(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.c:219
int find_among_b(struct SN_env *z, const struct among *v, int v_size, int(*call_among_func)(struct SN_env *))
Definition: utilities.c:315
int eq_s_b(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.c:236
int out_grouping(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.c:207
SNOWBALL_ERR slice_del(struct SN_env *z)
Definition: utilities.c:443
int find_among(struct SN_env *z, const struct among *v, int v_size, int(*call_among_func)(struct SN_env *))
Definition: utilities.c:249