Age Owner Branch data TLA Line data Source code
1 : : /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2 : :
3 : : #include "header.h"
4 : :
5 : : #ifdef __cplusplus
6 : : extern "C" {
7 : : #endif
8 : : extern int german_UTF_8_stem(struct SN_env * z);
9 : : #ifdef __cplusplus
10 : : }
11 : : #endif
12 : : static int r_standard_suffix(struct SN_env * z);
13 : : static int r_R2(struct SN_env * z);
14 : : static int r_R1(struct SN_env * z);
15 : : static int r_mark_regions(struct SN_env * z);
16 : : static int r_postlude(struct SN_env * z);
17 : : static int r_prelude(struct SN_env * z);
18 : : #ifdef __cplusplus
19 : : extern "C" {
20 : : #endif
21 : :
22 : :
23 : : extern struct SN_env * german_UTF_8_create_env(void);
24 : : extern void german_UTF_8_close_env(struct SN_env * z);
25 : :
26 : :
27 : : #ifdef __cplusplus
28 : : }
29 : : #endif
30 : : static const symbol s_0_1[1] = { 'U' };
31 : : static const symbol s_0_2[1] = { 'Y' };
32 : : static const symbol s_0_3[2] = { 0xC3, 0xA4 };
33 : : static const symbol s_0_4[2] = { 0xC3, 0xB6 };
34 : : static const symbol s_0_5[2] = { 0xC3, 0xBC };
35 : :
36 : : static const struct among a_0[6] =
37 : : {
38 : : { 0, 0, -1, 5, 0},
39 : : { 1, s_0_1, 0, 2, 0},
40 : : { 1, s_0_2, 0, 1, 0},
41 : : { 2, s_0_3, 0, 3, 0},
42 : : { 2, s_0_4, 0, 4, 0},
43 : : { 2, s_0_5, 0, 2, 0}
44 : : };
45 : :
46 : : static const symbol s_1_0[1] = { 'e' };
47 : : static const symbol s_1_1[2] = { 'e', 'm' };
48 : : static const symbol s_1_2[2] = { 'e', 'n' };
49 : : static const symbol s_1_3[3] = { 'e', 'r', 'n' };
50 : : static const symbol s_1_4[2] = { 'e', 'r' };
51 : : static const symbol s_1_5[1] = { 's' };
52 : : static const symbol s_1_6[2] = { 'e', 's' };
53 : :
54 : : static const struct among a_1[7] =
55 : : {
56 : : { 1, s_1_0, -1, 2, 0},
57 : : { 2, s_1_1, -1, 1, 0},
58 : : { 2, s_1_2, -1, 2, 0},
59 : : { 3, s_1_3, -1, 1, 0},
60 : : { 2, s_1_4, -1, 1, 0},
61 : : { 1, s_1_5, -1, 3, 0},
62 : : { 2, s_1_6, 5, 2, 0}
63 : : };
64 : :
65 : : static const symbol s_2_0[2] = { 'e', 'n' };
66 : : static const symbol s_2_1[2] = { 'e', 'r' };
67 : : static const symbol s_2_2[2] = { 's', 't' };
68 : : static const symbol s_2_3[3] = { 'e', 's', 't' };
69 : :
70 : : static const struct among a_2[4] =
71 : : {
72 : : { 2, s_2_0, -1, 1, 0},
73 : : { 2, s_2_1, -1, 1, 0},
74 : : { 2, s_2_2, -1, 2, 0},
75 : : { 3, s_2_3, 2, 1, 0}
76 : : };
77 : :
78 : : static const symbol s_3_0[2] = { 'i', 'g' };
79 : : static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
80 : :
81 : : static const struct among a_3[2] =
82 : : {
83 : : { 2, s_3_0, -1, 1, 0},
84 : : { 4, s_3_1, -1, 1, 0}
85 : : };
86 : :
87 : : static const symbol s_4_0[3] = { 'e', 'n', 'd' };
88 : : static const symbol s_4_1[2] = { 'i', 'g' };
89 : : static const symbol s_4_2[3] = { 'u', 'n', 'g' };
90 : : static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
91 : : static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
92 : : static const symbol s_4_5[2] = { 'i', 'k' };
93 : : static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
94 : : static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
95 : :
96 : : static const struct among a_4[8] =
97 : : {
98 : : { 3, s_4_0, -1, 1, 0},
99 : : { 2, s_4_1, -1, 2, 0},
100 : : { 3, s_4_2, -1, 1, 0},
101 : : { 4, s_4_3, -1, 3, 0},
102 : : { 4, s_4_4, -1, 2, 0},
103 : : { 2, s_4_5, -1, 2, 0},
104 : : { 4, s_4_6, -1, 3, 0},
105 : : { 4, s_4_7, -1, 4, 0}
106 : : };
107 : :
108 : : static 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 };
109 : :
110 : : static const unsigned char g_s_ending[] = { 117, 30, 5 };
111 : :
112 : : static const unsigned char g_st_ending[] = { 117, 30, 4 };
113 : :
114 : : static const symbol s_0[] = { 0xC3, 0x9F };
115 : : static const symbol s_1[] = { 's', 's' };
116 : : static const symbol s_2[] = { 'U' };
117 : : static const symbol s_3[] = { 'Y' };
118 : : static const symbol s_4[] = { 'y' };
119 : : static const symbol s_5[] = { 'u' };
120 : : static const symbol s_6[] = { 'a' };
121 : : static const symbol s_7[] = { 'o' };
122 : : static const symbol s_8[] = { 'n', 'i', 's' };
123 : : static const symbol s_9[] = { 'i', 'g' };
124 : : static const symbol s_10[] = { 'e', 'r' };
125 : : static const symbol s_11[] = { 'e', 'n' };
126 : :
1150 peter@eisentraut.org 127 :UBC 0 : static int r_prelude(struct SN_env * z) {
128 : 0 : { int c_test1 = z->c;
129 : 0 : while(1) {
130 : 0 : int c2 = z->c;
131 : 0 : { int c3 = z->c;
132 : 0 : z->bra = z->c;
133 [ # # ]: 0 : if (!(eq_s(z, 2, s_0))) goto lab2;
134 : 0 : z->ket = z->c;
135 : 0 : { int ret = slice_from_s(z, 2, s_1);
6081 tgl@sss.pgh.pa.us 136 [ # # ]: 0 : if (ret < 0) return ret;
137 : : }
138 : 0 : goto lab1;
139 : 0 : lab2:
2029 140 : 0 : z->c = c3;
1150 peter@eisentraut.org 141 : 0 : { int ret = skip_utf8(z->p, z->c, z->l, 1);
6081 tgl@sss.pgh.pa.us 142 [ # # ]: 0 : if (ret < 0) goto lab0;
1150 peter@eisentraut.org 143 : 0 : z->c = ret;
144 : : }
145 : : }
6081 tgl@sss.pgh.pa.us 146 : 0 : lab1:
147 : 0 : continue;
148 : 0 : lab0:
2029 149 : 0 : z->c = c2;
6081 150 : 0 : break;
151 : : }
2029 152 : 0 : z->c = c_test1;
153 : : }
1150 peter@eisentraut.org 154 : 0 : while(1) {
155 : 0 : int c4 = z->c;
156 : 0 : while(1) {
2029 tgl@sss.pgh.pa.us 157 : 0 : int c5 = z->c;
1150 peter@eisentraut.org 158 [ # # ]: 0 : if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
159 : 0 : z->bra = z->c;
160 : 0 : { int c6 = z->c;
161 [ # # # # ]: 0 : if (z->c == z->l || z->p[z->c] != 'u') goto lab6;
2029 tgl@sss.pgh.pa.us 162 : 0 : z->c++;
1150 peter@eisentraut.org 163 : 0 : z->ket = z->c;
164 [ # # ]: 0 : if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
165 : 0 : { int ret = slice_from_s(z, 1, s_2);
6081 tgl@sss.pgh.pa.us 166 [ # # ]: 0 : if (ret < 0) return ret;
167 : : }
168 : 0 : goto lab5;
169 : 0 : lab6:
2029 170 : 0 : z->c = c6;
1150 peter@eisentraut.org 171 [ # # # # ]: 0 : if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
2029 tgl@sss.pgh.pa.us 172 : 0 : z->c++;
1150 peter@eisentraut.org 173 : 0 : z->ket = z->c;
174 [ # # ]: 0 : if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
175 : 0 : { int ret = slice_from_s(z, 1, s_3);
6081 tgl@sss.pgh.pa.us 176 [ # # ]: 0 : if (ret < 0) return ret;
177 : : }
178 : : }
179 : 0 : lab5:
2029 180 : 0 : z->c = c5;
6081 181 : 0 : break;
182 : 0 : lab4:
2029 183 : 0 : z->c = c5;
1150 peter@eisentraut.org 184 : 0 : { int ret = skip_utf8(z->p, z->c, z->l, 1);
6081 tgl@sss.pgh.pa.us 185 [ # # ]: 0 : if (ret < 0) goto lab3;
1150 peter@eisentraut.org 186 : 0 : z->c = ret;
187 : : }
188 : : }
6081 tgl@sss.pgh.pa.us 189 : 0 : continue;
190 : 0 : lab3:
2029 191 : 0 : z->c = c4;
6081 192 : 0 : break;
193 : : }
194 : 0 : return 1;
195 : : }
196 : :
1150 peter@eisentraut.org 197 : 0 : static int r_mark_regions(struct SN_env * z) {
198 : 0 : z->I[2] = z->l;
199 : 0 : z->I[1] = z->l;
200 : 0 : { int c_test1 = z->c;
201 : 0 : { int ret = skip_utf8(z->p, z->c, z->l, 3);
6081 tgl@sss.pgh.pa.us 202 [ # # ]: 0 : if (ret < 0) return 0;
2029 203 : 0 : z->c = ret;
204 : : }
1150 peter@eisentraut.org 205 : 0 : z->I[0] = z->c;
2029 tgl@sss.pgh.pa.us 206 : 0 : z->c = c_test1;
207 : : }
208 : : {
6081 209 : 0 : int ret = out_grouping_U(z, g_v, 97, 252, 1);
210 [ # # ]: 0 : if (ret < 0) return 0;
211 : 0 : z->c += ret;
212 : : }
213 : : {
214 : 0 : int ret = in_grouping_U(z, g_v, 97, 252, 1);
215 [ # # ]: 0 : if (ret < 0) return 0;
216 : 0 : z->c += ret;
217 : : }
1150 peter@eisentraut.org 218 : 0 : z->I[2] = z->c;
219 : :
220 [ # # ]: 0 : if (!(z->I[2] < z->I[0])) goto lab0;
221 : 0 : z->I[2] = z->I[0];
6081 tgl@sss.pgh.pa.us 222 : 0 : lab0:
223 : : {
224 : 0 : int ret = out_grouping_U(z, g_v, 97, 252, 1);
225 [ # # ]: 0 : if (ret < 0) return 0;
226 : 0 : z->c += ret;
227 : : }
228 : : {
229 : 0 : int ret = in_grouping_U(z, g_v, 97, 252, 1);
230 [ # # ]: 0 : if (ret < 0) return 0;
231 : 0 : z->c += ret;
232 : : }
1150 peter@eisentraut.org 233 : 0 : z->I[1] = z->c;
6081 tgl@sss.pgh.pa.us 234 : 0 : return 1;
235 : : }
236 : :
1150 peter@eisentraut.org 237 : 0 : static int r_postlude(struct SN_env * z) {
238 : : int among_var;
239 : 0 : while(1) {
240 : 0 : int c1 = z->c;
241 : 0 : z->bra = z->c;
242 : 0 : among_var = find_among(z, a_0, 6);
6081 tgl@sss.pgh.pa.us 243 [ # # ]: 0 : if (!(among_var)) goto lab0;
1150 peter@eisentraut.org 244 : 0 : z->ket = z->c;
245 [ # # # # : 0 : switch (among_var) {
# # ]
6081 tgl@sss.pgh.pa.us 246 : 0 : case 1:
1150 peter@eisentraut.org 247 : 0 : { int ret = slice_from_s(z, 1, s_4);
6081 tgl@sss.pgh.pa.us 248 [ # # ]: 0 : if (ret < 0) return ret;
249 : : }
250 : 0 : break;
251 : 0 : case 2:
1150 peter@eisentraut.org 252 : 0 : { int ret = slice_from_s(z, 1, s_5);
6081 tgl@sss.pgh.pa.us 253 [ # # ]: 0 : if (ret < 0) return ret;
254 : : }
255 : 0 : break;
256 : 0 : case 3:
1150 peter@eisentraut.org 257 : 0 : { int ret = slice_from_s(z, 1, s_6);
6081 tgl@sss.pgh.pa.us 258 [ # # ]: 0 : if (ret < 0) return ret;
259 : : }
260 : 0 : break;
261 : 0 : case 4:
1150 peter@eisentraut.org 262 : 0 : { int ret = slice_from_s(z, 1, s_7);
6081 tgl@sss.pgh.pa.us 263 [ # # ]: 0 : if (ret < 0) return ret;
264 : : }
265 : 0 : break;
266 : 0 : case 5:
1150 peter@eisentraut.org 267 : 0 : { int ret = skip_utf8(z->p, z->c, z->l, 1);
6081 tgl@sss.pgh.pa.us 268 [ # # ]: 0 : if (ret < 0) goto lab0;
1150 peter@eisentraut.org 269 : 0 : z->c = ret;
270 : : }
6081 tgl@sss.pgh.pa.us 271 : 0 : break;
272 : : }
273 : 0 : continue;
274 : 0 : lab0:
275 : 0 : z->c = c1;
276 : 0 : break;
277 : : }
278 : 0 : return 1;
279 : : }
280 : :
1150 peter@eisentraut.org 281 : 0 : static int r_R1(struct SN_env * z) {
282 [ # # ]: 0 : if (!(z->I[2] <= z->c)) return 0;
6081 tgl@sss.pgh.pa.us 283 : 0 : return 1;
284 : : }
285 : :
1150 peter@eisentraut.org 286 : 0 : static int r_R2(struct SN_env * z) {
287 [ # # ]: 0 : if (!(z->I[1] <= z->c)) return 0;
6081 tgl@sss.pgh.pa.us 288 : 0 : return 1;
289 : : }
290 : :
1150 peter@eisentraut.org 291 : 0 : static int r_standard_suffix(struct SN_env * z) {
292 : : int among_var;
293 : 0 : { int m1 = z->l - z->c; (void)m1;
294 : 0 : z->ket = z->c;
295 [ # # # # : 0 : if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
# # ]
2029 tgl@sss.pgh.pa.us 296 : 0 : among_var = find_among_b(z, a_1, 7);
6081 297 [ # # ]: 0 : if (!(among_var)) goto lab0;
1150 peter@eisentraut.org 298 : 0 : z->bra = z->c;
299 : 0 : { int ret = r_R1(z);
2029 tgl@sss.pgh.pa.us 300 [ # # ]: 0 : if (ret == 0) goto lab0;
6081 301 [ # # ]: 0 : if (ret < 0) return ret;
302 : : }
1150 peter@eisentraut.org 303 [ # # # # ]: 0 : switch (among_var) {
6081 tgl@sss.pgh.pa.us 304 : 0 : case 1:
1150 peter@eisentraut.org 305 : 0 : { int ret = slice_del(z);
6081 tgl@sss.pgh.pa.us 306 [ # # ]: 0 : if (ret < 0) return ret;
307 : : }
308 : 0 : break;
309 : 0 : case 2:
1150 peter@eisentraut.org 310 : 0 : { int ret = slice_del(z);
2029 tgl@sss.pgh.pa.us 311 [ # # ]: 0 : if (ret < 0) return ret;
312 : : }
1150 peter@eisentraut.org 313 : 0 : { int m2 = z->l - z->c; (void)m2;
314 : 0 : z->ket = z->c;
315 [ # # # # ]: 0 : if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; }
2029 tgl@sss.pgh.pa.us 316 : 0 : z->c--;
1150 peter@eisentraut.org 317 : 0 : z->bra = z->c;
318 [ # # ]: 0 : if (!(eq_s_b(z, 3, s_8))) { z->c = z->l - m2; goto lab1; }
319 : 0 : { int ret = slice_del(z);
2029 tgl@sss.pgh.pa.us 320 [ # # ]: 0 : if (ret < 0) return ret;
321 : : }
322 : 0 : lab1:
323 : : ;
324 : : }
325 : 0 : break;
326 : 0 : case 3:
1150 peter@eisentraut.org 327 [ # # ]: 0 : if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab0;
328 : 0 : { int ret = slice_del(z);
6081 tgl@sss.pgh.pa.us 329 [ # # ]: 0 : if (ret < 0) return ret;
330 : : }
331 : 0 : break;
332 : : }
333 : 0 : lab0:
334 : 0 : z->c = z->l - m1;
335 : : }
1150 peter@eisentraut.org 336 : 0 : { int m3 = z->l - z->c; (void)m3;
337 : 0 : z->ket = z->c;
338 [ # # # # : 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
# # ]
2029 tgl@sss.pgh.pa.us 339 : 0 : among_var = find_among_b(z, a_2, 4);
340 [ # # ]: 0 : if (!(among_var)) goto lab2;
1150 peter@eisentraut.org 341 : 0 : z->bra = z->c;
342 : 0 : { int ret = r_R1(z);
2029 tgl@sss.pgh.pa.us 343 [ # # ]: 0 : if (ret == 0) goto lab2;
6081 344 [ # # ]: 0 : if (ret < 0) return ret;
345 : : }
1150 peter@eisentraut.org 346 [ # # # ]: 0 : switch (among_var) {
6081 tgl@sss.pgh.pa.us 347 : 0 : case 1:
1150 peter@eisentraut.org 348 : 0 : { int ret = slice_del(z);
6081 tgl@sss.pgh.pa.us 349 [ # # ]: 0 : if (ret < 0) return ret;
350 : : }
351 : 0 : break;
352 : 0 : case 2:
1150 peter@eisentraut.org 353 [ # # ]: 0 : if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab2;
354 : 0 : { int ret = skip_b_utf8(z->p, z->c, z->lb, 3);
2029 tgl@sss.pgh.pa.us 355 [ # # ]: 0 : if (ret < 0) goto lab2;
356 : 0 : z->c = ret;
357 : : }
1150 peter@eisentraut.org 358 : 0 : { int ret = slice_del(z);
6081 tgl@sss.pgh.pa.us 359 [ # # ]: 0 : if (ret < 0) return ret;
360 : : }
361 : 0 : break;
362 : : }
2029 363 : 0 : lab2:
364 : 0 : z->c = z->l - m3;
365 : : }
1150 peter@eisentraut.org 366 : 0 : { int m4 = z->l - z->c; (void)m4;
367 : 0 : z->ket = z->c;
368 [ # # # # : 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
# # ]
2029 tgl@sss.pgh.pa.us 369 : 0 : among_var = find_among_b(z, a_4, 8);
370 [ # # ]: 0 : if (!(among_var)) goto lab3;
1150 peter@eisentraut.org 371 : 0 : z->bra = z->c;
372 : 0 : { int ret = r_R2(z);
2029 tgl@sss.pgh.pa.us 373 [ # # ]: 0 : if (ret == 0) goto lab3;
6081 374 [ # # ]: 0 : if (ret < 0) return ret;
375 : : }
1150 peter@eisentraut.org 376 [ # # # # : 0 : switch (among_var) {
# ]
6081 tgl@sss.pgh.pa.us 377 : 0 : case 1:
1150 peter@eisentraut.org 378 : 0 : { int ret = slice_del(z);
6081 tgl@sss.pgh.pa.us 379 [ # # ]: 0 : if (ret < 0) return ret;
380 : : }
1150 peter@eisentraut.org 381 : 0 : { int m5 = z->l - z->c; (void)m5;
382 : 0 : z->ket = z->c;
383 [ # # ]: 0 : if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - m5; goto lab4; }
384 : 0 : z->bra = z->c;
385 : 0 : { int m6 = z->l - z->c; (void)m6;
386 [ # # # # ]: 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5;
2029 tgl@sss.pgh.pa.us 387 : 0 : z->c--;
388 : 0 : { z->c = z->l - m5; goto lab4; }
389 : 0 : lab5:
390 : 0 : z->c = z->l - m6;
391 : : }
1150 peter@eisentraut.org 392 : 0 : { int ret = r_R2(z);
2029 tgl@sss.pgh.pa.us 393 [ # # ]: 0 : if (ret == 0) { z->c = z->l - m5; goto lab4; }
6081 394 [ # # ]: 0 : if (ret < 0) return ret;
395 : : }
1150 peter@eisentraut.org 396 : 0 : { int ret = slice_del(z);
6081 tgl@sss.pgh.pa.us 397 [ # # ]: 0 : if (ret < 0) return ret;
398 : : }
2029 399 : 0 : lab4:
400 : : ;
401 : : }
6081 402 : 0 : break;
403 : 0 : case 2:
1150 peter@eisentraut.org 404 : 0 : { int m7 = z->l - z->c; (void)m7;
405 [ # # # # ]: 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
2029 tgl@sss.pgh.pa.us 406 : 0 : z->c--;
407 : 0 : goto lab3;
408 : 0 : lab6:
409 : 0 : z->c = z->l - m7;
410 : : }
1150 peter@eisentraut.org 411 : 0 : { int ret = slice_del(z);
6081 tgl@sss.pgh.pa.us 412 [ # # ]: 0 : if (ret < 0) return ret;
413 : : }
414 : 0 : break;
415 : 0 : case 3:
1150 peter@eisentraut.org 416 : 0 : { int ret = slice_del(z);
6081 tgl@sss.pgh.pa.us 417 [ # # ]: 0 : if (ret < 0) return ret;
418 : : }
1150 peter@eisentraut.org 419 : 0 : { int m8 = z->l - z->c; (void)m8;
420 : 0 : z->ket = z->c;
421 : 0 : { int m9 = z->l - z->c; (void)m9;
422 [ # # ]: 0 : if (!(eq_s_b(z, 2, s_10))) goto lab9;
2029 tgl@sss.pgh.pa.us 423 : 0 : goto lab8;
424 : 0 : lab9:
425 : 0 : z->c = z->l - m9;
1150 peter@eisentraut.org 426 [ # # ]: 0 : if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m8; goto lab7; }
427 : : }
2029 tgl@sss.pgh.pa.us 428 : 0 : lab8:
1150 peter@eisentraut.org 429 : 0 : z->bra = z->c;
430 : 0 : { int ret = r_R1(z);
2029 tgl@sss.pgh.pa.us 431 [ # # ]: 0 : if (ret == 0) { z->c = z->l - m8; goto lab7; }
6081 432 [ # # ]: 0 : if (ret < 0) return ret;
433 : : }
1150 peter@eisentraut.org 434 : 0 : { int ret = slice_del(z);
6081 tgl@sss.pgh.pa.us 435 [ # # ]: 0 : if (ret < 0) return ret;
436 : : }
2029 437 : 0 : lab7:
438 : : ;
439 : : }
6081 440 : 0 : break;
441 : 0 : case 4:
1150 peter@eisentraut.org 442 : 0 : { int ret = slice_del(z);
6081 tgl@sss.pgh.pa.us 443 [ # # ]: 0 : if (ret < 0) return ret;
444 : : }
1150 peter@eisentraut.org 445 : 0 : { int m10 = z->l - z->c; (void)m10;
446 : 0 : z->ket = z->c;
447 [ # # # # : 0 : if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; }
# # ]
2029 tgl@sss.pgh.pa.us 448 [ # # ]: 0 : if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; }
1150 peter@eisentraut.org 449 : 0 : z->bra = z->c;
450 : 0 : { int ret = r_R2(z);
2029 tgl@sss.pgh.pa.us 451 [ # # ]: 0 : if (ret == 0) { z->c = z->l - m10; goto lab10; }
6081 452 [ # # ]: 0 : if (ret < 0) return ret;
453 : : }
1150 peter@eisentraut.org 454 : 0 : { int ret = slice_del(z);
2029 tgl@sss.pgh.pa.us 455 [ # # ]: 0 : if (ret < 0) return ret;
456 : : }
457 : 0 : lab10:
458 : : ;
459 : : }
6081 460 : 0 : break;
461 : : }
2029 462 : 0 : lab3:
463 : 0 : z->c = z->l - m4;
464 : : }
6081 465 : 0 : return 1;
466 : : }
467 : :
1150 peter@eisentraut.org 468 : 0 : extern int german_UTF_8_stem(struct SN_env * z) {
469 : 0 : { int c1 = z->c;
470 : 0 : { int ret = r_prelude(z);
6081 tgl@sss.pgh.pa.us 471 [ # # ]: 0 : if (ret < 0) return ret;
472 : : }
473 : 0 : z->c = c1;
474 : : }
1150 peter@eisentraut.org 475 : 0 : { int c2 = z->c;
476 : 0 : { int ret = r_mark_regions(z);
6081 tgl@sss.pgh.pa.us 477 [ # # ]: 0 : if (ret < 0) return ret;
478 : : }
479 : 0 : z->c = c2;
480 : : }
1150 peter@eisentraut.org 481 : 0 : z->lb = z->c; z->c = z->l;
482 : :
483 : :
484 : 0 : { int ret = r_standard_suffix(z);
2029 tgl@sss.pgh.pa.us 485 [ # # ]: 0 : if (ret < 0) return ret;
486 : : }
6081 487 : 0 : z->c = z->lb;
1150 peter@eisentraut.org 488 : 0 : { int c3 = z->c;
489 : 0 : { int ret = r_postlude(z);
6081 tgl@sss.pgh.pa.us 490 [ # # ]: 0 : if (ret < 0) return ret;
491 : : }
2029 492 : 0 : z->c = c3;
493 : : }
6081 494 : 0 : return 1;
495 : : }
496 : :
1150 peter@eisentraut.org 497 : 0 : extern struct SN_env * german_UTF_8_create_env(void) { return SN_create_env(0, 3); }
498 : :
6081 tgl@sss.pgh.pa.us 499 : 0 : extern void german_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
500 : :
|