Branch data Line data Source code
1 : : /* Generated from dutch_porter.sbl by Snowball 3.0.0 - https://snowballstem.org/ */
2 : :
3 : : #include "stem_ISO_8859_1_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_ISO_8859_1_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[1] = { 0xE1 };
53 : : static const symbol s_0_2[1] = { 0xE4 };
54 : : static const symbol s_0_3[1] = { 0xE9 };
55 : : static const symbol s_0_4[1] = { 0xEB };
56 : : static const symbol s_0_5[1] = { 0xED };
57 : : static const symbol s_0_6[1] = { 0xEF };
58 : : static const symbol s_0_7[1] = { 0xF3 };
59 : : static const symbol s_0_8[1] = { 0xF6 };
60 : : static const symbol s_0_9[1] = { 0xFA };
61 : : static const symbol s_0_10[1] = { 0xFC };
62 : : static 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 : :
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 : 0 : 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 >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 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 : : case 1:
150 : : {
151 : 0 : int ret = slice_from_s(z, 1, s_0);
152 [ # # ]: 0 : if (ret < 0) return ret;
153 [ # # ]: 0 : }
154 : 0 : break;
155 : : case 2:
156 : : {
157 : 0 : int ret = slice_from_s(z, 1, s_1);
158 [ # # ]: 0 : if (ret < 0) return ret;
159 [ # # ]: 0 : }
160 : 0 : break;
161 : : case 3:
162 : : {
163 : 0 : int ret = slice_from_s(z, 1, s_2);
164 [ # # ]: 0 : if (ret < 0) return ret;
165 [ # # ]: 0 : }
166 : 0 : break;
167 : : case 4:
168 : : {
169 : 0 : int ret = slice_from_s(z, 1, s_3);
170 [ # # ]: 0 : if (ret < 0) return ret;
171 [ # # ]: 0 : }
172 : 0 : break;
173 : : case 5:
174 : : {
175 : 0 : int ret = slice_from_s(z, 1, s_4);
176 [ # # ]: 0 : if (ret < 0) return ret;
177 [ # # ]: 0 : }
178 : 0 : break;
179 : : case 6:
180 [ # # ]: 0 : if (z->c >= z->l) goto lab0;
181 : 0 : z->c++;
182 : 0 : break;
183 : : }
184 : 0 : continue;
185 : : lab0:
186 : 0 : z->c = v_2;
187 : 0 : break;
188 [ # # # ]: 0 : }
189 : 0 : z->c = v_1;
190 [ # # ]: 0 : }
191 : : {
192 : 0 : int v_3 = z->c;
193 : 0 : z->bra = z->c;
194 [ # # # # ]: 0 : if (z->c == z->l || z->p[z->c] != 'y') { z->c = v_3; goto lab1; }
195 : 0 : z->c++;
196 : 0 : z->ket = z->c;
197 : : {
198 : 0 : int ret = slice_from_s(z, 1, s_5);
199 [ # # ]: 0 : if (ret < 0) return ret;
200 [ # # ]: 0 : }
201 : : lab1:
202 : : ;
203 [ # # ]: 0 : }
204 : 0 : while (1) {
205 : 0 : int v_4 = z->c;
206 : : {
207 : 0 : int ret = out_grouping(z, g_v, 97, 232, 1);
208 [ # # ]: 0 : if (ret < 0) goto lab2;
209 : 0 : z->c += ret;
210 [ # # # ]: 0 : }
211 : : {
212 : 0 : int v_5 = z->c;
213 : 0 : z->bra = z->c;
214 : 0 : do {
215 : 0 : int v_6 = z->c;
216 [ # # # # ]: 0 : if (z->c == z->l || z->p[z->c] != 'i') goto lab4;
217 : 0 : z->c++;
218 : 0 : z->ket = z->c;
219 : : {
220 : 0 : int v_7 = z->c;
221 [ # # ]: 0 : if (in_grouping(z, g_v, 97, 232, 0)) goto lab5;
222 : : {
223 : 0 : int ret = slice_from_s(z, 1, s_6);
224 [ # # ]: 0 : if (ret < 0) return ret;
225 [ # # ]: 0 : }
226 : : lab5:
227 : 0 : z->c = v_7;
228 [ # # ]: 0 : }
229 : 0 : break;
230 : : lab4:
231 : 0 : z->c = v_6;
232 [ # # # # ]: 0 : if (z->c == z->l || z->p[z->c] != 'y') { z->c = v_5; goto lab3; }
233 : 0 : z->c++;
234 : 0 : z->ket = z->c;
235 : : {
236 : 0 : int ret = slice_from_s(z, 1, s_7);
237 [ # # ]: 0 : if (ret < 0) return ret;
238 [ # # ]: 0 : }
239 [ # # # # ]: 0 : } while (0);
240 : : lab3:
241 : : ;
242 [ # # ]: 0 : }
243 : 0 : continue;
244 : : lab2:
245 : 0 : z->c = v_4;
246 : 0 : break;
247 [ # # # ]: 0 : }
248 : 0 : return 1;
249 : 0 : }
250 : :
251 : 0 : static int r_mark_regions(struct SN_env * z) {
252 : 0 : int i_x;
253 : 0 : ((SN_local *)z)->i_p1 = z->l;
254 : 0 : ((SN_local *)z)->i_p2 = z->l;
255 : : {
256 : 0 : int v_1 = z->c;
257 [ # # ]: 0 : if (z->c + 3 > z->l) return 0;
258 : 0 : z->c += 3;
259 : 0 : i_x = z->c;
260 : 0 : z->c = v_1;
261 [ # # ]: 0 : }
262 : : {
263 : 0 : int ret = out_grouping(z, g_v, 97, 232, 1);
264 [ # # ]: 0 : if (ret < 0) return 0;
265 : 0 : z->c += ret;
266 [ # # ]: 0 : }
267 : : {
268 : 0 : int ret = in_grouping(z, g_v, 97, 232, 1);
269 [ # # ]: 0 : if (ret < 0) return 0;
270 : 0 : z->c += ret;
271 [ # # ]: 0 : }
272 : 0 : ((SN_local *)z)->i_p1 = z->c;
273 [ # # ]: 0 : if (((SN_local *)z)->i_p1 >= i_x) goto lab0;
274 : 0 : ((SN_local *)z)->i_p1 = i_x;
275 : : lab0:
276 : : {
277 : 0 : int ret = out_grouping(z, g_v, 97, 232, 1);
278 [ # # ]: 0 : if (ret < 0) return 0;
279 : 0 : z->c += ret;
280 [ # # ]: 0 : }
281 : : {
282 : 0 : int ret = in_grouping(z, g_v, 97, 232, 1);
283 [ # # ]: 0 : if (ret < 0) return 0;
284 : 0 : z->c += ret;
285 [ # # ]: 0 : }
286 : 0 : ((SN_local *)z)->i_p2 = z->c;
287 : 0 : return 1;
288 : 0 : }
289 : :
290 : 0 : static int r_postlude(struct SN_env * z) {
291 : 0 : int among_var;
292 : 0 : while (1) {
293 : 0 : int v_1 = z->c;
294 : 0 : z->bra = z->c;
295 [ # # # # : 0 : if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
# # ]
296 : 0 : among_var = find_among(z, a_1, 3, 0);
297 : 0 : z->ket = z->c;
298 [ # # # # ]: 0 : switch (among_var) {
299 : : case 1:
300 : : {
301 : 0 : int ret = slice_from_s(z, 1, s_8);
302 [ # # ]: 0 : if (ret < 0) return ret;
303 [ # # ]: 0 : }
304 : 0 : break;
305 : : case 2:
306 : : {
307 : 0 : int ret = slice_from_s(z, 1, s_9);
308 [ # # ]: 0 : if (ret < 0) return ret;
309 [ # # ]: 0 : }
310 : 0 : break;
311 : : case 3:
312 [ # # ]: 0 : if (z->c >= z->l) goto lab0;
313 : 0 : z->c++;
314 : 0 : break;
315 : : }
316 : 0 : continue;
317 : : lab0:
318 : 0 : z->c = v_1;
319 : 0 : break;
320 [ # # # ]: 0 : }
321 : 0 : return 1;
322 : 0 : }
323 : :
324 : 0 : static int r_R1(struct SN_env * z) {
325 : 0 : return ((SN_local *)z)->i_p1 <= z->c;
326 : : }
327 : :
328 : 0 : static int r_R2(struct SN_env * z) {
329 : 0 : return ((SN_local *)z)->i_p2 <= z->c;
330 : : }
331 : :
332 : 0 : static int r_undouble(struct SN_env * z) {
333 : : {
334 : 0 : int v_1 = z->l - z->c;
335 [ # # # # : 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
# # ]
336 [ # # ]: 0 : if (!find_among_b(z, a_2, 3, 0)) return 0;
337 : 0 : z->c = z->l - v_1;
338 [ # # ]: 0 : }
339 : 0 : z->ket = z->c;
340 [ # # ]: 0 : if (z->c <= z->lb) return 0;
341 : 0 : z->c--;
342 : 0 : z->bra = z->c;
343 : : {
344 : 0 : int ret = slice_del(z);
345 [ # # ]: 0 : if (ret < 0) return ret;
346 [ # # ]: 0 : }
347 : 0 : return 1;
348 : 0 : }
349 : :
350 : 0 : static int r_e_ending(struct SN_env * z) {
351 : 0 : ((SN_local *)z)->b_e_found = 0;
352 : 0 : z->ket = z->c;
353 [ # # # # ]: 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
354 : 0 : z->c--;
355 : 0 : z->bra = z->c;
356 : : {
357 : 0 : int ret = r_R1(z);
358 [ # # ]: 0 : if (ret <= 0) return ret;
359 [ # # ]: 0 : }
360 : : {
361 : 0 : int v_1 = z->l - z->c;
362 [ # # ]: 0 : if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
363 : 0 : z->c = z->l - v_1;
364 [ # # ]: 0 : }
365 : : {
366 : 0 : int ret = slice_del(z);
367 [ # # ]: 0 : if (ret < 0) return ret;
368 [ # # ]: 0 : }
369 : 0 : ((SN_local *)z)->b_e_found = 1;
370 : 0 : return r_undouble(z);
371 : 0 : }
372 : :
373 : 0 : static int r_en_ending(struct SN_env * z) {
374 : : {
375 : 0 : int ret = r_R1(z);
376 [ # # ]: 0 : if (ret <= 0) return ret;
377 [ # # ]: 0 : }
378 : : {
379 : 0 : int v_1 = z->l - z->c;
380 [ # # ]: 0 : if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
381 : 0 : z->c = z->l - v_1;
382 : : {
383 : 0 : int v_2 = z->l - z->c;
384 [ # # ]: 0 : if (!(eq_s_b(z, 3, s_10))) goto lab0;
385 : 0 : return 0;
386 : : lab0:
387 : 0 : z->c = z->l - v_2;
388 [ # # ]: 0 : }
389 [ # # ]: 0 : }
390 : : {
391 : 0 : int ret = slice_del(z);
392 [ # # ]: 0 : if (ret < 0) return ret;
393 [ # # ]: 0 : }
394 : 0 : return r_undouble(z);
395 : 0 : }
396 : :
397 : 0 : static int r_standard_suffix(struct SN_env * z) {
398 : 0 : int among_var;
399 : : {
400 : 0 : int v_1 = z->l - z->c;
401 : 0 : z->ket = z->c;
402 [ # # # # : 0 : if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
# # ]
403 : 0 : among_var = find_among_b(z, a_3, 5, 0);
404 [ # # ]: 0 : if (!among_var) goto lab0;
405 : 0 : z->bra = z->c;
406 [ # # # # ]: 0 : switch (among_var) {
407 : : case 1:
408 : : {
409 : 0 : int ret = r_R1(z);
410 [ # # ]: 0 : if (ret == 0) goto lab0;
411 [ # # ]: 0 : if (ret < 0) return ret;
412 [ # # ]: 0 : }
413 : : {
414 : 0 : int ret = slice_from_s(z, 4, s_11);
415 [ # # ]: 0 : if (ret < 0) return ret;
416 [ # # ]: 0 : }
417 : 0 : break;
418 : : case 2:
419 : : {
420 : 0 : int ret = r_en_ending(z);
421 [ # # ]: 0 : if (ret == 0) goto lab0;
422 [ # # ]: 0 : if (ret < 0) return ret;
423 [ # # # ]: 0 : }
424 : 0 : break;
425 : : case 3:
426 : : {
427 : 0 : int ret = r_R1(z);
428 [ # # ]: 0 : if (ret == 0) goto lab0;
429 [ # # ]: 0 : if (ret < 0) return ret;
430 [ # # ]: 0 : }
431 [ # # ]: 0 : if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0;
432 : : {
433 : 0 : int ret = slice_del(z);
434 [ # # ]: 0 : if (ret < 0) return ret;
435 [ # # ]: 0 : }
436 : 0 : break;
437 : 0 : }
438 : : lab0:
439 : 0 : z->c = z->l - v_1;
440 [ # # ]: 0 : }
441 : : {
442 : 0 : int v_2 = z->l - z->c;
443 : : {
444 : 0 : int ret = r_e_ending(z);
445 [ # # ]: 0 : if (ret < 0) return ret;
446 [ # # ]: 0 : }
447 : 0 : z->c = z->l - v_2;
448 [ # # ]: 0 : }
449 : : {
450 : 0 : int v_3 = z->l - z->c;
451 : 0 : z->ket = z->c;
452 [ # # ]: 0 : if (!(eq_s_b(z, 4, s_12))) goto lab1;
453 : 0 : z->bra = z->c;
454 : : {
455 : 0 : int ret = r_R2(z);
456 [ # # ]: 0 : if (ret == 0) goto lab1;
457 [ # # ]: 0 : if (ret < 0) return ret;
458 [ # # # ]: 0 : }
459 : : {
460 : 0 : int v_4 = z->l - z->c;
461 [ # # # # ]: 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2;
462 : 0 : z->c--;
463 : 0 : goto lab1;
464 : : lab2:
465 : 0 : z->c = z->l - v_4;
466 [ # # ]: 0 : }
467 : : {
468 : 0 : int ret = slice_del(z);
469 [ # # ]: 0 : if (ret < 0) return ret;
470 [ # # ]: 0 : }
471 : 0 : z->ket = z->c;
472 [ # # ]: 0 : if (!(eq_s_b(z, 2, s_13))) goto lab1;
473 : 0 : z->bra = z->c;
474 : : {
475 : 0 : int ret = r_en_ending(z);
476 [ # # ]: 0 : if (ret == 0) goto lab1;
477 [ # # ]: 0 : if (ret < 0) return ret;
478 [ # # ]: 0 : }
479 : : lab1:
480 : 0 : z->c = z->l - v_3;
481 [ # # ]: 0 : }
482 : : {
483 : 0 : int v_5 = z->l - z->c;
484 : 0 : z->ket = z->c;
485 [ # # # # : 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
# # ]
486 : 0 : among_var = find_among_b(z, a_4, 6, 0);
487 [ # # ]: 0 : if (!among_var) goto lab3;
488 : 0 : z->bra = z->c;
489 [ # # # # : 0 : switch (among_var) {
# # ]
490 : : case 1:
491 : : {
492 : 0 : int ret = r_R2(z);
493 [ # # ]: 0 : if (ret == 0) goto lab3;
494 [ # # ]: 0 : if (ret < 0) return ret;
495 [ # # ]: 0 : }
496 : : {
497 : 0 : int ret = slice_del(z);
498 [ # # ]: 0 : if (ret < 0) return ret;
499 [ # # ]: 0 : }
500 : 0 : do {
501 : 0 : int v_6 = z->l - z->c;
502 : 0 : z->ket = z->c;
503 [ # # ]: 0 : if (!(eq_s_b(z, 2, s_14))) goto lab4;
504 : 0 : z->bra = z->c;
505 : : {
506 : 0 : int ret = r_R2(z);
507 [ # # ]: 0 : if (ret == 0) goto lab4;
508 [ # # ]: 0 : if (ret < 0) return ret;
509 [ # # # ]: 0 : }
510 : : {
511 : 0 : int v_7 = z->l - z->c;
512 [ # # # # ]: 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5;
513 : 0 : z->c--;
514 : 0 : goto lab4;
515 : : lab5:
516 : 0 : z->c = z->l - v_7;
517 [ # # ]: 0 : }
518 : : {
519 : 0 : int ret = slice_del(z);
520 [ # # ]: 0 : if (ret < 0) return ret;
521 [ # # ]: 0 : }
522 : 0 : break;
523 : : lab4:
524 : 0 : z->c = z->l - v_6;
525 : : {
526 : 0 : int ret = r_undouble(z);
527 [ # # ]: 0 : if (ret == 0) goto lab3;
528 [ # # ]: 0 : if (ret < 0) return ret;
529 [ # # ]: 0 : }
530 [ # # # ]: 0 : } while (0);
531 : 0 : break;
532 : : case 2:
533 : : {
534 : 0 : int ret = r_R2(z);
535 [ # # ]: 0 : if (ret == 0) goto lab3;
536 [ # # ]: 0 : if (ret < 0) return ret;
537 [ # # ]: 0 : }
538 : : {
539 : 0 : int v_8 = z->l - z->c;
540 [ # # # # ]: 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
541 : 0 : z->c--;
542 : 0 : goto lab3;
543 : : lab6:
544 : 0 : z->c = z->l - v_8;
545 [ # # ]: 0 : }
546 : : {
547 : 0 : int ret = slice_del(z);
548 [ # # ]: 0 : if (ret < 0) return ret;
549 [ # # ]: 0 : }
550 : 0 : break;
551 : : case 3:
552 : : {
553 : 0 : int ret = r_R2(z);
554 [ # # ]: 0 : if (ret == 0) goto lab3;
555 [ # # ]: 0 : if (ret < 0) return ret;
556 [ # # ]: 0 : }
557 : : {
558 : 0 : int ret = slice_del(z);
559 [ # # ]: 0 : if (ret < 0) return ret;
560 [ # # ]: 0 : }
561 : : {
562 : 0 : int ret = r_e_ending(z);
563 [ # # ]: 0 : if (ret == 0) goto lab3;
564 [ # # ]: 0 : if (ret < 0) return ret;
565 [ # # ]: 0 : }
566 : 0 : break;
567 : : case 4:
568 : : {
569 : 0 : int ret = r_R2(z);
570 [ # # ]: 0 : if (ret == 0) goto lab3;
571 [ # # ]: 0 : if (ret < 0) return ret;
572 [ # # # ]: 0 : }
573 : : {
574 : 0 : int ret = slice_del(z);
575 [ # # ]: 0 : if (ret < 0) return ret;
576 [ # # ]: 0 : }
577 : 0 : break;
578 : : case 5:
579 : : {
580 : 0 : int ret = r_R2(z);
581 [ # # ]: 0 : if (ret == 0) goto lab3;
582 [ # # ]: 0 : if (ret < 0) return ret;
583 [ # # ]: 0 : }
584 [ # # ]: 0 : if (!((SN_local *)z)->b_e_found) goto lab3;
585 : : {
586 : 0 : int ret = slice_del(z);
587 [ # # ]: 0 : if (ret < 0) return ret;
588 [ # # ]: 0 : }
589 : 0 : break;
590 : 0 : }
591 : : lab3:
592 : 0 : z->c = z->l - v_5;
593 [ # # ]: 0 : }
594 : : {
595 : 0 : int v_9 = z->l - z->c;
596 [ # # ]: 0 : if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab7;
597 : : {
598 : 0 : int v_10 = z->l - z->c;
599 [ # # # # : 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab7;
# # ]
600 [ # # ]: 0 : if (!find_among_b(z, a_5, 4, 0)) goto lab7;
601 [ # # ]: 0 : if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab7;
602 : 0 : z->c = z->l - v_10;
603 [ # # # ]: 0 : }
604 : 0 : z->ket = z->c;
605 [ # # ]: 0 : if (z->c <= z->lb) goto lab7;
606 : 0 : z->c--;
607 : 0 : z->bra = z->c;
608 : : {
609 : 0 : int ret = slice_del(z);
610 [ # # ]: 0 : if (ret < 0) return ret;
611 [ # # ]: 0 : }
612 : : lab7:
613 : 0 : z->c = z->l - v_9;
614 [ # # ]: 0 : }
615 : 0 : return 1;
616 : 0 : }
617 : :
618 : 0 : extern int dutch_porter_ISO_8859_1_stem(struct SN_env * z) {
619 : : {
620 : 0 : int v_1 = z->c;
621 : : {
622 : 0 : int ret = r_prelude(z);
623 [ # # ]: 0 : if (ret < 0) return ret;
624 [ # # ]: 0 : }
625 : 0 : z->c = v_1;
626 [ # # ]: 0 : }
627 : : {
628 : 0 : int v_2 = z->c;
629 : : {
630 : 0 : int ret = r_mark_regions(z);
631 [ # # ]: 0 : if (ret < 0) return ret;
632 [ # # ]: 0 : }
633 : 0 : z->c = v_2;
634 [ # # ]: 0 : }
635 : 0 : z->lb = z->c; z->c = z->l;
636 : : {
637 : 0 : int ret = r_standard_suffix(z);
638 [ # # ]: 0 : if (ret < 0) return ret;
639 [ # # ]: 0 : }
640 : 0 : z->c = z->lb;
641 : : {
642 : 0 : int v_3 = z->c;
643 : : {
644 : 0 : int ret = r_postlude(z);
645 [ # # ]: 0 : if (ret < 0) return ret;
646 [ # # ]: 0 : }
647 : 0 : z->c = v_3;
648 [ # # ]: 0 : }
649 : 0 : return 1;
650 : 0 : }
651 : :
652 : 0 : extern struct SN_env * dutch_porter_ISO_8859_1_create_env(void) {
653 : 0 : struct SN_env * z = SN_new_env(sizeof(SN_local));
654 [ # # ]: 0 : if (z) {
655 : 0 : ((SN_local *)z)->i_p2 = 0;
656 : 0 : ((SN_local *)z)->i_p1 = 0;
657 : 0 : ((SN_local *)z)->b_e_found = 0;
658 : 0 : }
659 : 0 : return z;
660 : 0 : }
661 : :
662 : 0 : extern void dutch_porter_ISO_8859_1_close_env(struct SN_env * z) {
663 : 0 : SN_delete_env(z);
664 : 0 : }
665 : :
|