tracker-0.16.2/src/libstemmer/stem_UTF_8_dutch.c

No issues found

  1 /*
  2  * Copyright (c) 2001, Dr Martin Porter
  3  * All rights reserved.
  4  *
  5  * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
  6  * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  7  * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  8  * Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  9  *
 10  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 11  */
 12 
 13 
 14 
 15 /* This file was generated automatically by the Snowball to ANSI C compiler */
 16 
 17 #include "header.h"
 18 
 19 extern int dutch_UTF_8_stem(struct SN_env * z);
 20 static int r_standard_suffix(struct SN_env * z);
 21 static int r_undouble(struct SN_env * z);
 22 static int r_R2(struct SN_env * z);
 23 static int r_R1(struct SN_env * z);
 24 static int r_mark_regions(struct SN_env * z);
 25 static int r_en_ending(struct SN_env * z);
 26 static int r_e_ending(struct SN_env * z);
 27 static int r_postlude(struct SN_env * z);
 28 static int r_prelude(struct SN_env * z);
 29 
 30 extern struct SN_env * dutch_UTF_8_create_env(void);
 31 extern void dutch_UTF_8_close_env(struct SN_env * z);
 32 
 33 static symbol s_0_1[2] = { 0xC3, 0xA1 };
 34 static symbol s_0_2[2] = { 0xC3, 0xA4 };
 35 static symbol s_0_3[2] = { 0xC3, 0xA9 };
 36 static symbol s_0_4[2] = { 0xC3, 0xAB };
 37 static symbol s_0_5[2] = { 0xC3, 0xAD };
 38 static symbol s_0_6[2] = { 0xC3, 0xAF };
 39 static symbol s_0_7[2] = { 0xC3, 0xB3 };
 40 static symbol s_0_8[2] = { 0xC3, 0xB6 };
 41 static symbol s_0_9[2] = { 0xC3, 0xBA };
 42 static symbol s_0_10[2] = { 0xC3, 0xBC };
 43 
 44 static struct among a_0[11] =
 45 {
 46 /*  0 */ { 0, 0, -1, 6, 0},
 47 /*  1 */ { 2, s_0_1, 0, 1, 0},
 48 /*  2 */ { 2, s_0_2, 0, 1, 0},
 49 /*  3 */ { 2, s_0_3, 0, 2, 0},
 50 /*  4 */ { 2, s_0_4, 0, 2, 0},
 51 /*  5 */ { 2, s_0_5, 0, 3, 0},
 52 /*  6 */ { 2, s_0_6, 0, 3, 0},
 53 /*  7 */ { 2, s_0_7, 0, 4, 0},
 54 /*  8 */ { 2, s_0_8, 0, 4, 0},
 55 /*  9 */ { 2, s_0_9, 0, 5, 0},
 56 /* 10 */ { 2, s_0_10, 0, 5, 0}
 57 };
 58 
 59 static symbol s_1_1[1] = { 'I' };
 60 static symbol s_1_2[1] = { 'Y' };
 61 
 62 static struct among a_1[3] =
 63 {
 64 /*  0 */ { 0, 0, -1, 3, 0},
 65 /*  1 */ { 1, s_1_1, 0, 2, 0},
 66 /*  2 */ { 1, s_1_2, 0, 1, 0}
 67 };
 68 
 69 static symbol s_2_0[2] = { 'd', 'd' };
 70 static symbol s_2_1[2] = { 'k', 'k' };
 71 static symbol s_2_2[2] = { 't', 't' };
 72 
 73 static struct among a_2[3] =
 74 {
 75 /*  0 */ { 2, s_2_0, -1, -1, 0},
 76 /*  1 */ { 2, s_2_1, -1, -1, 0},
 77 /*  2 */ { 2, s_2_2, -1, -1, 0}
 78 };
 79 
 80 static symbol s_3_0[3] = { 'e', 'n', 'e' };
 81 static symbol s_3_1[2] = { 's', 'e' };
 82 static symbol s_3_2[2] = { 'e', 'n' };
 83 static symbol s_3_3[5] = { 'h', 'e', 'd', 'e', 'n' };
 84 static symbol s_3_4[1] = { 's' };
 85 
 86 static struct among a_3[5] =
 87 {
 88 /*  0 */ { 3, s_3_0, -1, 2, 0},
 89 /*  1 */ { 2, s_3_1, -1, 3, 0},
 90 /*  2 */ { 2, s_3_2, -1, 2, 0},
 91 /*  3 */ { 5, s_3_3, 2, 1, 0},
 92 /*  4 */ { 1, s_3_4, -1, 3, 0}
 93 };
 94 
 95 static symbol s_4_0[3] = { 'e', 'n', 'd' };
 96 static symbol s_4_1[2] = { 'i', 'g' };
 97 static symbol s_4_2[3] = { 'i', 'n', 'g' };
 98 static symbol s_4_3[4] = { 'l', 'i', 'j', 'k' };
 99 static symbol s_4_4[4] = { 'b', 'a', 'a', 'r' };
100 static symbol s_4_5[3] = { 'b', 'a', 'r' };
101 
102 static struct among a_4[6] =
103 {
104 /*  0 */ { 3, s_4_0, -1, 1, 0},
105 /*  1 */ { 2, s_4_1, -1, 2, 0},
106 /*  2 */ { 3, s_4_2, -1, 1, 0},
107 /*  3 */ { 4, s_4_3, -1, 3, 0},
108 /*  4 */ { 4, s_4_4, -1, 4, 0},
109 /*  5 */ { 3, s_4_5, -1, 5, 0}
110 };
111 
112 static symbol s_5_0[2] = { 'a', 'a' };
113 static symbol s_5_1[2] = { 'e', 'e' };
114 static symbol s_5_2[2] = { 'o', 'o' };
115 static symbol s_5_3[2] = { 'u', 'u' };
116 
117 static struct among a_5[4] =
118 {
119 /*  0 */ { 2, s_5_0, -1, -1, 0},
120 /*  1 */ { 2, s_5_1, -1, -1, 0},
121 /*  2 */ { 2, s_5_2, -1, -1, 0},
122 /*  3 */ { 2, s_5_3, -1, -1, 0}
123 };
124 
125 static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
126 
127 static 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 };
128 
129 static unsigned char g_v_j[] = { 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
130 
131 static symbol s_0[] = { 'a' };
132 static symbol s_1[] = { 'e' };
133 static symbol s_2[] = { 'i' };
134 static symbol s_3[] = { 'o' };
135 static symbol s_4[] = { 'u' };
136 static symbol s_5[] = { 'y' };
137 static symbol s_6[] = { 'Y' };
138 static symbol s_7[] = { 'i' };
139 static symbol s_8[] = { 'I' };
140 static symbol s_9[] = { 'y' };
141 static symbol s_10[] = { 'Y' };
142 static symbol s_11[] = { 'y' };
143 static symbol s_12[] = { 'i' };
144 static symbol s_13[] = { 'e' };
145 static symbol s_14[] = { 'g', 'e', 'm' };
146 static symbol s_15[] = { 'h', 'e', 'i', 'd' };
147 static symbol s_16[] = { 'h', 'e', 'i', 'd' };
148 static symbol s_17[] = { 'c' };
149 static symbol s_18[] = { 'e', 'n' };
150 static symbol s_19[] = { 'i', 'g' };
151 static symbol s_20[] = { 'e' };
152 static symbol s_21[] = { 'e' };
153 
154 static int r_prelude(struct SN_env * z) {
155     int among_var;
156     {	int c_test = z->c; /* test, line 42 */
157 	while(1) { /* repeat, line 42 */
158 	    int c = z->c;
159 	    z->bra = z->c; /* [, line 43 */
160 	    among_var = find_among(z, a_0, 11); /* substring, line 43 */
161 	    if (!(among_var)) goto lab0;
162 	    z->ket = z->c; /* ], line 43 */
163 	    switch(among_var) {
164 		case 0: goto lab0;
165 		case 1:
166 		    {	int ret;
167 			ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
168 			if (ret < 0) return ret;
169 		    }
170 		    break;
171 		case 2:
172 		    {	int ret;
173 			ret = slice_from_s(z, 1, s_1); /* <-, line 47 */
174 			if (ret < 0) return ret;
175 		    }
176 		    break;
177 		case 3:
178 		    {	int ret;
179 			ret = slice_from_s(z, 1, s_2); /* <-, line 49 */
180 			if (ret < 0) return ret;
181 		    }
182 		    break;
183 		case 4:
184 		    {	int ret;
185 			ret = slice_from_s(z, 1, s_3); /* <-, line 51 */
186 			if (ret < 0) return ret;
187 		    }
188 		    break;
189 		case 5:
190 		    {	int ret;
191 			ret = slice_from_s(z, 1, s_4); /* <-, line 53 */
192 			if (ret < 0) return ret;
193 		    }
194 		    break;
195 		case 6:
196 		    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
197 			if (c < 0) goto lab0;
198 			z->c = c; /* next, line 54 */
199 		    }
200 		    break;
201 	    }
202 	    continue;
203 	lab0:
204 	    z->c = c;
205 	    break;
206 	}
207 	z->c = c_test;
208     }
209     {	int c = z->c; /* try, line 57 */
210 	z->bra = z->c; /* [, line 57 */
211 	if (!(eq_s(z, 1, s_5))) { z->c = c; goto lab1; }
212 	z->ket = z->c; /* ], line 57 */
213 	{   int ret;
214 	    ret = slice_from_s(z, 1, s_6); /* <-, line 57 */
215 	    if (ret < 0) return ret;
216 	}
217     lab1:
218 	;
219     }
220     while(1) { /* repeat, line 58 */
221 	int c = z->c;
222 	while(1) { /* goto, line 58 */
223 	    int c = z->c;
224 	    if (!(in_grouping_U(z, g_v, 97, 232))) goto lab3;
225 	    z->bra = z->c; /* [, line 59 */
226 	    {	int c = z->c; /* or, line 59 */
227 		if (!(eq_s(z, 1, s_7))) goto lab5;
228 		z->ket = z->c; /* ], line 59 */
229 		if (!(in_grouping_U(z, g_v, 97, 232))) goto lab5;
230 		{   int ret;
231 		    ret = slice_from_s(z, 1, s_8); /* <-, line 59 */
232 		    if (ret < 0) return ret;
233 		}
234 		goto lab4;
235 	    lab5:
236 		z->c = c;
237 		if (!(eq_s(z, 1, s_9))) goto lab3;
238 		z->ket = z->c; /* ], line 60 */
239 		{   int ret;
240 		    ret = slice_from_s(z, 1, s_10); /* <-, line 60 */
241 		    if (ret < 0) return ret;
242 		}
243 	    }
244 	lab4:
245 	    z->c = c;
246 	    break;
247 	lab3:
248 	    z->c = c;
249 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
250 		if (c < 0) goto lab2;
251 		z->c = c; /* goto, line 58 */
252 	    }
253 	}
254 	continue;
255     lab2:
256 	z->c = c;
257 	break;
258     }
259     return 1;
260 }
261 
262 static int r_mark_regions(struct SN_env * z) {
263     z->I[0] = z->l;
264     z->I[1] = z->l;
265     while(1) { /* gopast, line 69 */
266 	if (!(in_grouping_U(z, g_v, 97, 232))) goto lab0;
267 	break;
268     lab0:
269 	{   int c = skip_utf8(z->p, z->c, 0, z->l, 1);
270 	    if (c < 0) return 0;
271 	    z->c = c; /* gopast, line 69 */
272 	}
273     }
274     while(1) { /* gopast, line 69 */
275 	if (!(out_grouping_U(z, g_v, 97, 232))) goto lab1;
276 	break;
277     lab1:
278 	{   int c = skip_utf8(z->p, z->c, 0, z->l, 1);
279 	    if (c < 0) return 0;
280 	    z->c = c; /* gopast, line 69 */
281 	}
282     }
283     z->I[0] = z->c; /* setmark p1, line 69 */
284      /* try, line 70 */
285     if (!(z->I[0] < 3)) goto lab2;
286     z->I[0] = 3;
287 lab2:
288     while(1) { /* gopast, line 71 */
289 	if (!(in_grouping_U(z, g_v, 97, 232))) goto lab3;
290 	break;
291     lab3:
292 	{   int c = skip_utf8(z->p, z->c, 0, z->l, 1);
293 	    if (c < 0) return 0;
294 	    z->c = c; /* gopast, line 71 */
295 	}
296     }
297     while(1) { /* gopast, line 71 */
298 	if (!(out_grouping_U(z, g_v, 97, 232))) goto lab4;
299 	break;
300     lab4:
301 	{   int c = skip_utf8(z->p, z->c, 0, z->l, 1);
302 	    if (c < 0) return 0;
303 	    z->c = c; /* gopast, line 71 */
304 	}
305     }
306     z->I[1] = z->c; /* setmark p2, line 71 */
307     return 1;
308 }
309 
310 static int r_postlude(struct SN_env * z) {
311     int among_var;
312     while(1) { /* repeat, line 75 */
313 	int c = z->c;
314 	z->bra = z->c; /* [, line 77 */
315 	among_var = find_among(z, a_1, 3); /* substring, line 77 */
316 	if (!(among_var)) goto lab0;
317 	z->ket = z->c; /* ], line 77 */
318 	switch(among_var) {
319 	    case 0: goto lab0;
320 	    case 1:
321 		{   int ret;
322 		    ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
323 		    if (ret < 0) return ret;
324 		}
325 		break;
326 	    case 2:
327 		{   int ret;
328 		    ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
329 		    if (ret < 0) return ret;
330 		}
331 		break;
332 	    case 3:
333 		{   int c = skip_utf8(z->p, z->c, 0, z->l, 1);
334 		    if (c < 0) goto lab0;
335 		    z->c = c; /* next, line 80 */
336 		}
337 		break;
338 	}
339 	continue;
340     lab0:
341 	z->c = c;
342 	break;
343     }
344     return 1;
345 }
346 
347 static int r_R1(struct SN_env * z) {
348     if (!(z->I[0] <= z->c)) return 0;
349     return 1;
350 }
351 
352 static int r_R2(struct SN_env * z) {
353     if (!(z->I[1] <= z->c)) return 0;
354     return 1;
355 }
356 
357 static int r_undouble(struct SN_env * z) {
358     {	int m_test = z->l - z->c; /* test, line 91 */
359 	if (!(find_among_b(z, a_2, 3))) return 0; /* among, line 91 */
360 	z->c = z->l - m_test;
361     }
362     z->ket = z->c; /* [, line 91 */
363     {	int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
364 	if (c < 0) return 0;
365 	z->c = c; /* next, line 91 */
366     }
367     z->bra = z->c; /* ], line 91 */
368     {	int ret;
369 	ret = slice_del(z); /* delete, line 91 */
370 	if (ret < 0) return ret;
371     }
372     return 1;
373 }
374 
375 static int r_e_ending(struct SN_env * z) {
376     z->B[0] = 0; /* unset e_found, line 95 */
377     z->ket = z->c; /* [, line 96 */
378     if (!(eq_s_b(z, 1, s_13))) return 0;
379     z->bra = z->c; /* ], line 96 */
380     {	int ret = r_R1(z);
381 	if (ret == 0) return 0; /* call R1, line 96 */
382 	if (ret < 0) return ret;
383     }
384     {	int m_test = z->l - z->c; /* test, line 96 */
385 	if (!(out_grouping_b_U(z, g_v, 97, 232))) return 0;
386 	z->c = z->l - m_test;
387     }
388     {	int ret;
389 	ret = slice_del(z); /* delete, line 96 */
390 	if (ret < 0) return ret;
391     }
392     z->B[0] = 1; /* set e_found, line 97 */
393     {	int ret = r_undouble(z);
394 	if (ret == 0) return 0; /* call undouble, line 98 */
395 	if (ret < 0) return ret;
396     }
397     return 1;
398 }
399 
400 static int r_en_ending(struct SN_env * z) {
401     {	int ret = r_R1(z);
402 	if (ret == 0) return 0; /* call R1, line 102 */
403 	if (ret < 0) return ret;
404     }
405     {	int m = z->l - z->c; (void) m; /* and, line 102 */
406 	if (!(out_grouping_b_U(z, g_v, 97, 232))) return 0;
407 	z->c = z->l - m;
408 	{   int m = z->l - z->c; (void) m; /* not, line 102 */
409 	    if (!(eq_s_b(z, 3, s_14))) goto lab0;
410 	    return 0;
411 	lab0:
412 	    z->c = z->l - m;
413 	}
414     }
415     {	int ret;
416 	ret = slice_del(z); /* delete, line 102 */
417 	if (ret < 0) return ret;
418     }
419     {	int ret = r_undouble(z);
420 	if (ret == 0) return 0; /* call undouble, line 103 */
421 	if (ret < 0) return ret;
422     }
423     return 1;
424 }
425 
426 static int r_standard_suffix(struct SN_env * z) {
427     int among_var;
428     {	int m = z->l - z->c; (void) m; /* do, line 107 */
429 	z->ket = z->c; /* [, line 108 */
430 	among_var = find_among_b(z, a_3, 5); /* substring, line 108 */
431 	if (!(among_var)) goto lab0;
432 	z->bra = z->c; /* ], line 108 */
433 	switch(among_var) {
434 	    case 0: goto lab0;
435 	    case 1:
436 		{   int ret = r_R1(z);
437 		    if (ret == 0) goto lab0; /* call R1, line 110 */
438 		    if (ret < 0) return ret;
439 		}
440 		{   int ret;
441 		    ret = slice_from_s(z, 4, s_15); /* <-, line 110 */
442 		    if (ret < 0) return ret;
443 		}
444 		break;
445 	    case 2:
446 		{   int ret = r_en_ending(z);
447 		    if (ret == 0) goto lab0; /* call en_ending, line 113 */
448 		    if (ret < 0) return ret;
449 		}
450 		break;
451 	    case 3:
452 		{   int ret = r_R1(z);
453 		    if (ret == 0) goto lab0; /* call R1, line 116 */
454 		    if (ret < 0) return ret;
455 		}
456 		if (!(out_grouping_b_U(z, g_v_j, 97, 232))) goto lab0;
457 		{   int ret;
458 		    ret = slice_del(z); /* delete, line 116 */
459 		    if (ret < 0) return ret;
460 		}
461 		break;
462 	}
463     lab0:
464 	z->c = z->l - m;
465     }
466     {	int m = z->l - z->c; (void) m; /* do, line 120 */
467 	{   int ret = r_e_ending(z);
468 	    if (ret == 0) goto lab1; /* call e_ending, line 120 */
469 	    if (ret < 0) return ret;
470 	}
471     lab1:
472 	z->c = z->l - m;
473     }
474     {	int m = z->l - z->c; (void) m; /* do, line 122 */
475 	z->ket = z->c; /* [, line 122 */
476 	if (!(eq_s_b(z, 4, s_16))) goto lab2;
477 	z->bra = z->c; /* ], line 122 */
478 	{   int ret = r_R2(z);
479 	    if (ret == 0) goto lab2; /* call R2, line 122 */
480 	    if (ret < 0) return ret;
481 	}
482 	{   int m = z->l - z->c; (void) m; /* not, line 122 */
483 	    if (!(eq_s_b(z, 1, s_17))) goto lab3;
484 	    goto lab2;
485 	lab3:
486 	    z->c = z->l - m;
487 	}
488 	{   int ret;
489 	    ret = slice_del(z); /* delete, line 122 */
490 	    if (ret < 0) return ret;
491 	}
492 	z->ket = z->c; /* [, line 123 */
493 	if (!(eq_s_b(z, 2, s_18))) goto lab2;
494 	z->bra = z->c; /* ], line 123 */
495 	{   int ret = r_en_ending(z);
496 	    if (ret == 0) goto lab2; /* call en_ending, line 123 */
497 	    if (ret < 0) return ret;
498 	}
499     lab2:
500 	z->c = z->l - m;
501     }
502     {	int m = z->l - z->c; (void) m; /* do, line 126 */
503 	z->ket = z->c; /* [, line 127 */
504 	among_var = find_among_b(z, a_4, 6); /* substring, line 127 */
505 	if (!(among_var)) goto lab4;
506 	z->bra = z->c; /* ], line 127 */
507 	switch(among_var) {
508 	    case 0: goto lab4;
509 	    case 1:
510 		{   int ret = r_R2(z);
511 		    if (ret == 0) goto lab4; /* call R2, line 129 */
512 		    if (ret < 0) return ret;
513 		}
514 		{   int ret;
515 		    ret = slice_del(z); /* delete, line 129 */
516 		    if (ret < 0) return ret;
517 		}
518 		{   int m = z->l - z->c; (void) m; /* or, line 130 */
519 		    z->ket = z->c; /* [, line 130 */
520 		    if (!(eq_s_b(z, 2, s_19))) goto lab6;
521 		    z->bra = z->c; /* ], line 130 */
522 		    {	int ret = r_R2(z);
523 			if (ret == 0) goto lab6; /* call R2, line 130 */
524 			if (ret < 0) return ret;
525 		    }
526 		    {	int m = z->l - z->c; (void) m; /* not, line 130 */
527 			if (!(eq_s_b(z, 1, s_20))) goto lab7;
528 			goto lab6;
529 		    lab7:
530 			z->c = z->l - m;
531 		    }
532 		    {	int ret;
533 			ret = slice_del(z); /* delete, line 130 */
534 			if (ret < 0) return ret;
535 		    }
536 		    goto lab5;
537 		lab6:
538 		    z->c = z->l - m;
539 		    {	int ret = r_undouble(z);
540 			if (ret == 0) goto lab4; /* call undouble, line 130 */
541 			if (ret < 0) return ret;
542 		    }
543 		}
544 	    lab5:
545 		break;
546 	    case 2:
547 		{   int ret = r_R2(z);
548 		    if (ret == 0) goto lab4; /* call R2, line 133 */
549 		    if (ret < 0) return ret;
550 		}
551 		{   int m = z->l - z->c; (void) m; /* not, line 133 */
552 		    if (!(eq_s_b(z, 1, s_21))) goto lab8;
553 		    goto lab4;
554 		lab8:
555 		    z->c = z->l - m;
556 		}
557 		{   int ret;
558 		    ret = slice_del(z); /* delete, line 133 */
559 		    if (ret < 0) return ret;
560 		}
561 		break;
562 	    case 3:
563 		{   int ret = r_R2(z);
564 		    if (ret == 0) goto lab4; /* call R2, line 136 */
565 		    if (ret < 0) return ret;
566 		}
567 		{   int ret;
568 		    ret = slice_del(z); /* delete, line 136 */
569 		    if (ret < 0) return ret;
570 		}
571 		{   int ret = r_e_ending(z);
572 		    if (ret == 0) goto lab4; /* call e_ending, line 136 */
573 		    if (ret < 0) return ret;
574 		}
575 		break;
576 	    case 4:
577 		{   int ret = r_R2(z);
578 		    if (ret == 0) goto lab4; /* call R2, line 139 */
579 		    if (ret < 0) return ret;
580 		}
581 		{   int ret;
582 		    ret = slice_del(z); /* delete, line 139 */
583 		    if (ret < 0) return ret;
584 		}
585 		break;
586 	    case 5:
587 		{   int ret = r_R2(z);
588 		    if (ret == 0) goto lab4; /* call R2, line 142 */
589 		    if (ret < 0) return ret;
590 		}
591 		if (!(z->B[0])) goto lab4; /* Boolean test e_found, line 142 */
592 		{   int ret;
593 		    ret = slice_del(z); /* delete, line 142 */
594 		    if (ret < 0) return ret;
595 		}
596 		break;
597 	}
598     lab4:
599 	z->c = z->l - m;
600     }
601     {	int m = z->l - z->c; (void) m; /* do, line 146 */
602 	if (!(out_grouping_b_U(z, g_v_I, 73, 232))) goto lab9;
603 	{   int m_test = z->l - z->c; /* test, line 148 */
604 	    if (!(find_among_b(z, a_5, 4))) goto lab9; /* among, line 149 */
605 	    if (!(out_grouping_b_U(z, g_v, 97, 232))) goto lab9;
606 	    z->c = z->l - m_test;
607 	}
608 	z->ket = z->c; /* [, line 152 */
609 	{   int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
610 	    if (c < 0) goto lab9;
611 	    z->c = c; /* next, line 152 */
612 	}
613 	z->bra = z->c; /* ], line 152 */
614 	{   int ret;
615 	    ret = slice_del(z); /* delete, line 152 */
616 	    if (ret < 0) return ret;
617 	}
618     lab9:
619 	z->c = z->l - m;
620     }
621     return 1;
622 }
623 
624 extern int dutch_UTF_8_stem(struct SN_env * z) {
625     {	int c = z->c; /* do, line 159 */
626 	{   int ret = r_prelude(z);
627 	    if (ret == 0) goto lab0; /* call prelude, line 159 */
628 	    if (ret < 0) return ret;
629 	}
630     lab0:
631 	z->c = c;
632     }
633     {	int c = z->c; /* do, line 160 */
634 	{   int ret = r_mark_regions(z);
635 	    if (ret == 0) goto lab1; /* call mark_regions, line 160 */
636 	    if (ret < 0) return ret;
637 	}
638     lab1:
639 	z->c = c;
640     }
641     z->lb = z->c; z->c = z->l; /* backwards, line 161 */
642 
643     {	int m = z->l - z->c; (void) m; /* do, line 162 */
644 	{   int ret = r_standard_suffix(z);
645 	    if (ret == 0) goto lab2; /* call standard_suffix, line 162 */
646 	    if (ret < 0) return ret;
647 	}
648     lab2:
649 	z->c = z->l - m;
650     }
651     z->c = z->lb;
652     {	int c = z->c; /* do, line 163 */
653 	{   int ret = r_postlude(z);
654 	    if (ret == 0) goto lab3; /* call postlude, line 163 */
655 	    if (ret < 0) return ret;
656 	}
657     lab3:
658 	z->c = c;
659     }
660     return 1;
661 }
662 
663 extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); }
664 
665 extern void dutch_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }