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