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