1 /* This file was generated automatically by the Snowball to ISO C compiler */
2 /* http://snowballstem.org/ */
3 
4 #include "header.h"
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 extern int turkish_UTF_8_stem(struct SN_env * z);
10 #ifdef __cplusplus
11 }
12 #endif
13 static int r_stem_suffix_chain_before_ki(struct SN_env * z);
14 static int r_stem_noun_suffixes(struct SN_env * z);
15 static int r_stem_nominal_verb_suffixes(struct SN_env * z);
16 static int r_postlude(struct SN_env * z);
17 static int r_post_process_last_consonants(struct SN_env * z);
18 static int r_more_than_one_syllable_word(struct SN_env * z);
19 static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z);
20 static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z);
21 static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z);
22 static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z);
23 static int r_mark_ysA(struct SN_env * z);
24 static int r_mark_ymUs_(struct SN_env * z);
25 static int r_mark_yken(struct SN_env * z);
26 static int r_mark_yDU(struct SN_env * z);
27 static int r_mark_yUz(struct SN_env * z);
28 static int r_mark_yUm(struct SN_env * z);
29 static int r_mark_yU(struct SN_env * z);
30 static int r_mark_ylA(struct SN_env * z);
31 static int r_mark_yA(struct SN_env * z);
32 static int r_mark_possessives(struct SN_env * z);
33 static int r_mark_sUnUz(struct SN_env * z);
34 static int r_mark_sUn(struct SN_env * z);
35 static int r_mark_sU(struct SN_env * z);
36 static int r_mark_nUz(struct SN_env * z);
37 static int r_mark_nUn(struct SN_env * z);
38 static int r_mark_nU(struct SN_env * z);
39 static int r_mark_ndAn(struct SN_env * z);
40 static int r_mark_ndA(struct SN_env * z);
41 static int r_mark_ncA(struct SN_env * z);
42 static int r_mark_nA(struct SN_env * z);
43 static int r_mark_lArI(struct SN_env * z);
44 static int r_mark_lAr(struct SN_env * z);
45 static int r_mark_ki(struct SN_env * z);
46 static int r_mark_DUr(struct SN_env * z);
47 static int r_mark_DAn(struct SN_env * z);
48 static int r_mark_DA(struct SN_env * z);
49 static int r_mark_cAsInA(struct SN_env * z);
50 static int r_is_reserved_word(struct SN_env * z);
51 static int r_check_vowel_harmony(struct SN_env * z);
52 static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z);
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56 
57 
58 extern struct SN_env * turkish_UTF_8_create_env(void);
59 extern void turkish_UTF_8_close_env(struct SN_env * z);
60 
61 
62 #ifdef __cplusplus
63 }
64 #endif
65 static const symbol s_0_0[1] = { 'm' };
66 static const symbol s_0_1[1] = { 'n' };
67 static const symbol s_0_2[3] = { 'm', 'i', 'z' };
68 static const symbol s_0_3[3] = { 'n', 'i', 'z' };
69 static const symbol s_0_4[3] = { 'm', 'u', 'z' };
70 static const symbol s_0_5[3] = { 'n', 'u', 'z' };
71 static const symbol s_0_6[4] = { 'm', 0xC4, 0xB1, 'z' };
72 static const symbol s_0_7[4] = { 'n', 0xC4, 0xB1, 'z' };
73 static const symbol s_0_8[4] = { 'm', 0xC3, 0xBC, 'z' };
74 static const symbol s_0_9[4] = { 'n', 0xC3, 0xBC, 'z' };
75 
76 static const struct among a_0[10] =
77 {
78 /*  0 */ { 1, s_0_0, -1, -1, 0},
79 /*  1 */ { 1, s_0_1, -1, -1, 0},
80 /*  2 */ { 3, s_0_2, -1, -1, 0},
81 /*  3 */ { 3, s_0_3, -1, -1, 0},
82 /*  4 */ { 3, s_0_4, -1, -1, 0},
83 /*  5 */ { 3, s_0_5, -1, -1, 0},
84 /*  6 */ { 4, s_0_6, -1, -1, 0},
85 /*  7 */ { 4, s_0_7, -1, -1, 0},
86 /*  8 */ { 4, s_0_8, -1, -1, 0},
87 /*  9 */ { 4, s_0_9, -1, -1, 0}
88 };
89 
90 static const symbol s_1_0[4] = { 'l', 'e', 'r', 'i' };
91 static const symbol s_1_1[5] = { 'l', 'a', 'r', 0xC4, 0xB1 };
92 
93 static const struct among a_1[2] =
94 {
95 /*  0 */ { 4, s_1_0, -1, -1, 0},
96 /*  1 */ { 5, s_1_1, -1, -1, 0}
97 };
98 
99 static const symbol s_2_0[2] = { 'n', 'i' };
100 static const symbol s_2_1[2] = { 'n', 'u' };
101 static const symbol s_2_2[3] = { 'n', 0xC4, 0xB1 };
102 static const symbol s_2_3[3] = { 'n', 0xC3, 0xBC };
103 
104 static const struct among a_2[4] =
105 {
106 /*  0 */ { 2, s_2_0, -1, -1, 0},
107 /*  1 */ { 2, s_2_1, -1, -1, 0},
108 /*  2 */ { 3, s_2_2, -1, -1, 0},
109 /*  3 */ { 3, s_2_3, -1, -1, 0}
110 };
111 
112 static const symbol s_3_0[2] = { 'i', 'n' };
113 static const symbol s_3_1[2] = { 'u', 'n' };
114 static const symbol s_3_2[3] = { 0xC4, 0xB1, 'n' };
115 static const symbol s_3_3[3] = { 0xC3, 0xBC, 'n' };
116 
117 static const struct among a_3[4] =
118 {
119 /*  0 */ { 2, s_3_0, -1, -1, 0},
120 /*  1 */ { 2, s_3_1, -1, -1, 0},
121 /*  2 */ { 3, s_3_2, -1, -1, 0},
122 /*  3 */ { 3, s_3_3, -1, -1, 0}
123 };
124 
125 static const symbol s_4_0[1] = { 'a' };
126 static const symbol s_4_1[1] = { 'e' };
127 
128 static const struct among a_4[2] =
129 {
130 /*  0 */ { 1, s_4_0, -1, -1, 0},
131 /*  1 */ { 1, s_4_1, -1, -1, 0}
132 };
133 
134 static const symbol s_5_0[2] = { 'n', 'a' };
135 static const symbol s_5_1[2] = { 'n', 'e' };
136 
137 static const struct among a_5[2] =
138 {
139 /*  0 */ { 2, s_5_0, -1, -1, 0},
140 /*  1 */ { 2, s_5_1, -1, -1, 0}
141 };
142 
143 static const symbol s_6_0[2] = { 'd', 'a' };
144 static const symbol s_6_1[2] = { 't', 'a' };
145 static const symbol s_6_2[2] = { 'd', 'e' };
146 static const symbol s_6_3[2] = { 't', 'e' };
147 
148 static const struct among a_6[4] =
r_mark_regions(struct SN_env * z)149 {
150 /*  0 */ { 2, s_6_0, -1, -1, 0},
151 /*  1 */ { 2, s_6_1, -1, -1, 0},
152 /*  2 */ { 2, s_6_2, -1, -1, 0},
153 /*  3 */ { 2, s_6_3, -1, -1, 0}
154 };
155 
156 static const symbol s_7_0[3] = { 'n', 'd', 'a' };
157 static const symbol s_7_1[3] = { 'n', 'd', 'e' };
158 
159 static const struct among a_7[2] =
160 {
161 /*  0 */ { 3, s_7_0, -1, -1, 0},
162 /*  1 */ { 3, s_7_1, -1, -1, 0}
163 };
164 
165 static const symbol s_8_0[3] = { 'd', 'a', 'n' };
166 static const symbol s_8_1[3] = { 't', 'a', 'n' };
167 static const symbol s_8_2[3] = { 'd', 'e', 'n' };
168 static const symbol s_8_3[3] = { 't', 'e', 'n' };
169 
170 static const struct among a_8[4] =
171 {
172 /*  0 */ { 3, s_8_0, -1, -1, 0},
r_main_suffix(struct SN_env * z)173 /*  1 */ { 3, s_8_1, -1, -1, 0},
174 /*  2 */ { 3, s_8_2, -1, -1, 0},
175 /*  3 */ { 3, s_8_3, -1, -1, 0}
176 };
177 
178 static const symbol s_9_0[4] = { 'n', 'd', 'a', 'n' };
179 static const symbol s_9_1[4] = { 'n', 'd', 'e', 'n' };
180 
181 static const struct among a_9[2] =
182 {
183 /*  0 */ { 4, s_9_0, -1, -1, 0},
184 /*  1 */ { 4, s_9_1, -1, -1, 0}
185 };
186 
187 static const symbol s_10_0[2] = { 'l', 'a' };
188 static const symbol s_10_1[2] = { 'l', 'e' };
189 
190 static const struct among a_10[2] =
191 {
192 /*  0 */ { 2, s_10_0, -1, -1, 0},
193 /*  1 */ { 2, s_10_1, -1, -1, 0}
194 };
195 
196 static const symbol s_11_0[2] = { 'c', 'a' };
197 static const symbol s_11_1[2] = { 'c', 'e' };
198 
199 static const struct among a_11[2] =
200 {
201 /*  0 */ { 2, s_11_0, -1, -1, 0},
r_consonant_pair(struct SN_env * z)202 /*  1 */ { 2, s_11_1, -1, -1, 0}
203 };
204 
205 static const symbol s_12_0[2] = { 'i', 'm' };
206 static const symbol s_12_1[2] = { 'u', 'm' };
207 static const symbol s_12_2[3] = { 0xC4, 0xB1, 'm' };
208 static const symbol s_12_3[3] = { 0xC3, 0xBC, 'm' };
209 
210 static const struct among a_12[4] =
211 {
212 /*  0 */ { 2, s_12_0, -1, -1, 0},
213 /*  1 */ { 2, s_12_1, -1, -1, 0},
214 /*  2 */ { 3, s_12_2, -1, -1, 0},
215 /*  3 */ { 3, s_12_3, -1, -1, 0}
216 };
217 
218 static const symbol s_13_0[3] = { 's', 'i', 'n' };
219 static const symbol s_13_1[3] = { 's', 'u', 'n' };
220 static const symbol s_13_2[4] = { 's', 0xC4, 0xB1, 'n' };
221 static const symbol s_13_3[4] = { 's', 0xC3, 0xBC, 'n' };
222 
223 static const struct among a_13[4] =
224 {
225 /*  0 */ { 3, s_13_0, -1, -1, 0},
r_other_suffix(struct SN_env * z)226 /*  1 */ { 3, s_13_1, -1, -1, 0},
227 /*  2 */ { 4, s_13_2, -1, -1, 0},
228 /*  3 */ { 4, s_13_3, -1, -1, 0}
229 };
230 
231 static const symbol s_14_0[2] = { 'i', 'z' };
232 static const symbol s_14_1[2] = { 'u', 'z' };
233 static const symbol s_14_2[3] = { 0xC4, 0xB1, 'z' };
234 static const symbol s_14_3[3] = { 0xC3, 0xBC, 'z' };
235 
236 static const struct among a_14[4] =
237 {
238 /*  0 */ { 2, s_14_0, -1, -1, 0},
239 /*  1 */ { 2, s_14_1, -1, -1, 0},
240 /*  2 */ { 3, s_14_2, -1, -1, 0},
241 /*  3 */ { 3, s_14_3, -1, -1, 0}
242 };
243 
244 static const symbol s_15_0[5] = { 's', 'i', 'n', 'i', 'z' };
245 static const symbol s_15_1[5] = { 's', 'u', 'n', 'u', 'z' };
246 static const symbol s_15_2[7] = { 's', 0xC4, 0xB1, 'n', 0xC4, 0xB1, 'z' };
247 static const symbol s_15_3[7] = { 's', 0xC3, 0xBC, 'n', 0xC3, 0xBC, 'z' };
248 
249 static const struct among a_15[4] =
250 {
251 /*  0 */ { 5, s_15_0, -1, -1, 0},
252 /*  1 */ { 5, s_15_1, -1, -1, 0},
253 /*  2 */ { 7, s_15_2, -1, -1, 0},
254 /*  3 */ { 7, s_15_3, -1, -1, 0}
255 };
256 
257 static const symbol s_16_0[3] = { 'l', 'a', 'r' };
258 static const symbol s_16_1[3] = { 'l', 'e', 'r' };
swedish_UTF_8_stem(struct SN_env * z)259 
260 static const struct among a_16[2] =
261 {
262 /*  0 */ { 3, s_16_0, -1, -1, 0},
263 /*  1 */ { 3, s_16_1, -1, -1, 0}
264 };
265 
266 static const symbol s_17_0[3] = { 'n', 'i', 'z' };
267 static const symbol s_17_1[3] = { 'n', 'u', 'z' };
268 static const symbol s_17_2[4] = { 'n', 0xC4, 0xB1, 'z' };
269 static const symbol s_17_3[4] = { 'n', 0xC3, 0xBC, 'z' };
270 
271 static const struct among a_17[4] =
272 {
273 /*  0 */ { 3, s_17_0, -1, -1, 0},
274 /*  1 */ { 3, s_17_1, -1, -1, 0},
275 /*  2 */ { 4, s_17_2, -1, -1, 0},
276 /*  3 */ { 4, s_17_3, -1, -1, 0}
277 };
278 
279 static const symbol s_18_0[3] = { 'd', 'i', 'r' };
280 static const symbol s_18_1[3] = { 't', 'i', 'r' };
281 static const symbol s_18_2[3] = { 'd', 'u', 'r' };
282 static const symbol s_18_3[3] = { 't', 'u', 'r' };
283 static const symbol s_18_4[4] = { 'd', 0xC4, 0xB1, 'r' };
284 static const symbol s_18_5[4] = { 't', 0xC4, 0xB1, 'r' };
285 static const symbol s_18_6[4] = { 'd', 0xC3, 0xBC, 'r' };
286 static const symbol s_18_7[4] = { 't', 0xC3, 0xBC, 'r' };
287 
288 static const struct among a_18[8] =
289 {
290 /*  0 */ { 3, s_18_0, -1, -1, 0},
291 /*  1 */ { 3, s_18_1, -1, -1, 0},
292 /*  2 */ { 3, s_18_2, -1, -1, 0},
293 /*  3 */ { 3, s_18_3, -1, -1, 0},
294 /*  4 */ { 4, s_18_4, -1, -1, 0},
295 /*  5 */ { 4, s_18_5, -1, -1, 0},
296 /*  6 */ { 4, s_18_6, -1, -1, 0},
297 /*  7 */ { 4, s_18_7, -1, -1, 0}
swedish_UTF_8_create_env(void)298 };
299 
swedish_UTF_8_close_env(struct SN_env * z)300 static const symbol s_19_0[7] = { 'c', 'a', 's', 0xC4, 0xB1, 'n', 'a' };
301 static const symbol s_19_1[6] = { 'c', 'e', 's', 'i', 'n', 'e' };
302 
303 static const struct among a_19[2] =
304 {
305 /*  0 */ { 7, s_19_0, -1, -1, 0},
306 /*  1 */ { 6, s_19_1, -1, -1, 0}
307 };
308 
309 static const symbol s_20_0[2] = { 'd', 'i' };
310 static const symbol s_20_1[2] = { 't', 'i' };
311 static const symbol s_20_2[3] = { 'd', 'i', 'k' };
312 static const symbol s_20_3[3] = { 't', 'i', 'k' };
313 static const symbol s_20_4[3] = { 'd', 'u', 'k' };
314 static const symbol s_20_5[3] = { 't', 'u', 'k' };
315 static const symbol s_20_6[4] = { 'd', 0xC4, 0xB1, 'k' };
316 static const symbol s_20_7[4] = { 't', 0xC4, 0xB1, 'k' };
317 static const symbol s_20_8[4] = { 'd', 0xC3, 0xBC, 'k' };
318 static const symbol s_20_9[4] = { 't', 0xC3, 0xBC, 'k' };
319 static const symbol s_20_10[3] = { 'd', 'i', 'm' };
320 static const symbol s_20_11[3] = { 't', 'i', 'm' };
321 static const symbol s_20_12[3] = { 'd', 'u', 'm' };
322 static const symbol s_20_13[3] = { 't', 'u', 'm' };
323 static const symbol s_20_14[4] = { 'd', 0xC4, 0xB1, 'm' };
324 static const symbol s_20_15[4] = { 't', 0xC4, 0xB1, 'm' };
325 static const symbol s_20_16[4] = { 'd', 0xC3, 0xBC, 'm' };
326 static const symbol s_20_17[4] = { 't', 0xC3, 0xBC, 'm' };
327 static const symbol s_20_18[3] = { 'd', 'i', 'n' };
328 static const symbol s_20_19[3] = { 't', 'i', 'n' };
329 static const symbol s_20_20[3] = { 'd', 'u', 'n' };
330 static const symbol s_20_21[3] = { 't', 'u', 'n' };
331 static const symbol s_20_22[4] = { 'd', 0xC4, 0xB1, 'n' };
332 static const symbol s_20_23[4] = { 't', 0xC4, 0xB1, 'n' };
333 static const symbol s_20_24[4] = { 'd', 0xC3, 0xBC, 'n' };
334 static const symbol s_20_25[4] = { 't', 0xC3, 0xBC, 'n' };
335 static const symbol s_20_26[2] = { 'd', 'u' };
336 static const symbol s_20_27[2] = { 't', 'u' };
337 static const symbol s_20_28[3] = { 'd', 0xC4, 0xB1 };
338 static const symbol s_20_29[3] = { 't', 0xC4, 0xB1 };
339 static const symbol s_20_30[3] = { 'd', 0xC3, 0xBC };
340 static const symbol s_20_31[3] = { 't', 0xC3, 0xBC };
341 
342 static const struct among a_20[32] =
343 {
344 /*  0 */ { 2, s_20_0, -1, -1, 0},
345 /*  1 */ { 2, s_20_1, -1, -1, 0},
346 /*  2 */ { 3, s_20_2, -1, -1, 0},
347 /*  3 */ { 3, s_20_3, -1, -1, 0},
348 /*  4 */ { 3, s_20_4, -1, -1, 0},
349 /*  5 */ { 3, s_20_5, -1, -1, 0},
350 /*  6 */ { 4, s_20_6, -1, -1, 0},
351 /*  7 */ { 4, s_20_7, -1, -1, 0},
352 /*  8 */ { 4, s_20_8, -1, -1, 0},
353 /*  9 */ { 4, s_20_9, -1, -1, 0},
354 /* 10 */ { 3, s_20_10, -1, -1, 0},
355 /* 11 */ { 3, s_20_11, -1, -1, 0},
356 /* 12 */ { 3, s_20_12, -1, -1, 0},
357 /* 13 */ { 3, s_20_13, -1, -1, 0},
358 /* 14 */ { 4, s_20_14, -1, -1, 0},
359 /* 15 */ { 4, s_20_15, -1, -1, 0},
360 /* 16 */ { 4, s_20_16, -1, -1, 0},
361 /* 17 */ { 4, s_20_17, -1, -1, 0},
362 /* 18 */ { 3, s_20_18, -1, -1, 0},
363 /* 19 */ { 3, s_20_19, -1, -1, 0},
364 /* 20 */ { 3, s_20_20, -1, -1, 0},
365 /* 21 */ { 3, s_20_21, -1, -1, 0},
366 /* 22 */ { 4, s_20_22, -1, -1, 0},
367 /* 23 */ { 4, s_20_23, -1, -1, 0},
368 /* 24 */ { 4, s_20_24, -1, -1, 0},
369 /* 25 */ { 4, s_20_25, -1, -1, 0},
370 /* 26 */ { 2, s_20_26, -1, -1, 0},
371 /* 27 */ { 2, s_20_27, -1, -1, 0},
372 /* 28 */ { 3, s_20_28, -1, -1, 0},
373 /* 29 */ { 3, s_20_29, -1, -1, 0},
374 /* 30 */ { 3, s_20_30, -1, -1, 0},
375 /* 31 */ { 3, s_20_31, -1, -1, 0}
376 };
377 
378 static const symbol s_21_0[2] = { 's', 'a' };
379 static const symbol s_21_1[2] = { 's', 'e' };
380 static const symbol s_21_2[3] = { 's', 'a', 'k' };
381 static const symbol s_21_3[3] = { 's', 'e', 'k' };
382 static const symbol s_21_4[3] = { 's', 'a', 'm' };
383 static const symbol s_21_5[3] = { 's', 'e', 'm' };
384 static const symbol s_21_6[3] = { 's', 'a', 'n' };
385 static const symbol s_21_7[3] = { 's', 'e', 'n' };
386 
387 static const struct among a_21[8] =
388 {
389 /*  0 */ { 2, s_21_0, -1, -1, 0},
390 /*  1 */ { 2, s_21_1, -1, -1, 0},
391 /*  2 */ { 3, s_21_2, -1, -1, 0},
392 /*  3 */ { 3, s_21_3, -1, -1, 0},
393 /*  4 */ { 3, s_21_4, -1, -1, 0},
394 /*  5 */ { 3, s_21_5, -1, -1, 0},
395 /*  6 */ { 3, s_21_6, -1, -1, 0},
396 /*  7 */ { 3, s_21_7, -1, -1, 0}
397 };
398 
399 static const symbol s_22_0[4] = { 'm', 'i', 0xC5, 0x9F };
400 static const symbol s_22_1[4] = { 'm', 'u', 0xC5, 0x9F };
401 static const symbol s_22_2[5] = { 'm', 0xC4, 0xB1, 0xC5, 0x9F };
402 static const symbol s_22_3[5] = { 'm', 0xC3, 0xBC, 0xC5, 0x9F };
403 
404 static const struct among a_22[4] =
405 {
406 /*  0 */ { 4, s_22_0, -1, -1, 0},
407 /*  1 */ { 4, s_22_1, -1, -1, 0},
408 /*  2 */ { 5, s_22_2, -1, -1, 0},
409 /*  3 */ { 5, s_22_3, -1, -1, 0}
410 };
411 
412 static const symbol s_23_0[1] = { 'b' };
413 static const symbol s_23_1[1] = { 'c' };
414 static const symbol s_23_2[1] = { 'd' };
415 static const symbol s_23_3[2] = { 0xC4, 0x9F };
416 
417 static const struct among a_23[4] =
418 {
419 /*  0 */ { 1, s_23_0, -1, 1, 0},
420 /*  1 */ { 1, s_23_1, -1, 2, 0},
421 /*  2 */ { 1, s_23_2, -1, 3, 0},
422 /*  3 */ { 2, s_23_3, -1, 4, 0}
423 };
424 
425 static const unsigned char g_vowel[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 };
426 
427 static const unsigned char g_U[] = { 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1 };
428 
429 static const unsigned char g_vowel1[] = { 1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
430 
431 static const unsigned char g_vowel2[] = { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 };
432 
433 static const unsigned char g_vowel3[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
434 
435 static const unsigned char g_vowel4[] = { 17 };
436 
437 static const unsigned char g_vowel5[] = { 65 };
438 
439 static const unsigned char g_vowel6[] = { 65 };
440 
441 static const symbol s_0[] = { 0xC4, 0xB1 };
442 static const symbol s_1[] = { 0xC3, 0xB6 };
443 static const symbol s_2[] = { 0xC3, 0xBC };
444 static const symbol s_3[] = { 'k', 'i' };
445 static const symbol s_4[] = { 'k', 'e', 'n' };
446 static const symbol s_5[] = { 'p' };
447 static const symbol s_6[] = { 0xC3, 0xA7 };
448 static const symbol s_7[] = { 't' };
449 static const symbol s_8[] = { 'k' };
450 static const symbol s_9[] = { 0xC4, 0xB1 };
451 static const symbol s_10[] = { 0xC4, 0xB1 };
452 static const symbol s_11[] = { 'i' };
453 static const symbol s_12[] = { 'u' };
454 static const symbol s_13[] = { 0xC3, 0xB6 };
455 static const symbol s_14[] = { 0xC3, 0xBC };
456 static const symbol s_15[] = { 0xC3, 0xBC };
457 static const symbol s_16[] = { 'a', 'd' };
458 static const symbol s_17[] = { 's', 'o', 'y' };
459 
460 static int r_check_vowel_harmony(struct SN_env * z) { /* backwardmode */
461     {   int m_test1 = z->l - z->c; /* test, line 110 */
462         if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0; /* goto */ /* grouping vowel, line 112 */
463         {   int m2 = z->l - z->c; (void)m2; /* or, line 114 */
464             if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab1; /* literal, line 114 */
465             z->c--;
466             if (out_grouping_b_U(z, g_vowel1, 97, 305, 1) < 0) goto lab1; /* goto */ /* grouping vowel1, line 114 */
467             goto lab0;
468         lab1:
469             z->c = z->l - m2;
470             if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab2; /* literal, line 115 */
471             z->c--;
472             if (out_grouping_b_U(z, g_vowel2, 101, 252, 1) < 0) goto lab2; /* goto */ /* grouping vowel2, line 115 */
473             goto lab0;
474         lab2:
475             z->c = z->l - m2;
476             if (!(eq_s_b(z, 2, s_0))) goto lab3; /* literal, line 116 */
477             if (out_grouping_b_U(z, g_vowel3, 97, 305, 1) < 0) goto lab3; /* goto */ /* grouping vowel3, line 116 */
478             goto lab0;
479         lab3:
480             z->c = z->l - m2;
481             if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab4; /* literal, line 117 */
482             z->c--;
483             if (out_grouping_b_U(z, g_vowel4, 101, 105, 1) < 0) goto lab4; /* goto */ /* grouping vowel4, line 117 */
484             goto lab0;
485         lab4:
486             z->c = z->l - m2;
487             if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 118 */
488             z->c--;
489             if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab5; /* goto */ /* grouping vowel5, line 118 */
490             goto lab0;
491         lab5:
492             z->c = z->l - m2;
493             if (!(eq_s_b(z, 2, s_1))) goto lab6; /* literal, line 119 */
494             if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) goto lab6; /* goto */ /* grouping vowel6, line 119 */
495             goto lab0;
496         lab6:
497             z->c = z->l - m2;
498             if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab7; /* literal, line 120 */
499             z->c--;
500             if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab7; /* goto */ /* grouping vowel5, line 120 */
501             goto lab0;
502         lab7:
503             z->c = z->l - m2;
504             if (!(eq_s_b(z, 2, s_2))) return 0; /* literal, line 121 */
505             if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) return 0; /* goto */ /* grouping vowel6, line 121 */
506         }
507     lab0:
508         z->c = z->l - m_test1;
509     }
510     return 1;
511 }
512 
513 static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z) { /* backwardmode */
514     {   int m1 = z->l - z->c; (void)m1; /* or, line 132 */
515         if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab1; /* literal, line 131 */
516         z->c--;
517         {   int m_test2 = z->l - z->c; /* test, line 131 */
518             if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; /* grouping vowel, line 131 */
519             z->c = z->l - m_test2;
520         }
521         goto lab0;
522     lab1:
523         z->c = z->l - m1;
524         {   int m3 = z->l - z->c; (void)m3; /* not, line 133 */
525             {   int m_test4 = z->l - z->c; /* test, line 133 */
526                 if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab2; /* literal, line 133 */
527                 z->c--;
528                 z->c = z->l - m_test4;
529             }
530             return 0;
531         lab2:
532             z->c = z->l - m3;
533         }
534         {   int m_test5 = z->l - z->c; /* test, line 133 */
535             {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
536                 if (ret < 0) return 0;
537                 z->c = ret; /* next, line 133 */
538             }
539             if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; /* grouping vowel, line 133 */
540             z->c = z->l - m_test5;
541         }
542     }
543 lab0:
544     return 1;
545 }
546 
547 static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z) { /* backwardmode */
548     {   int m1 = z->l - z->c; (void)m1; /* or, line 143 */
549         if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 142 */
550         z->c--;
551         {   int m_test2 = z->l - z->c; /* test, line 142 */
552             if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; /* grouping vowel, line 142 */
553             z->c = z->l - m_test2;
554         }
555         goto lab0;
556     lab1:
557         z->c = z->l - m1;
558         {   int m3 = z->l - z->c; (void)m3; /* not, line 144 */
559             {   int m_test4 = z->l - z->c; /* test, line 144 */
560                 if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab2; /* literal, line 144 */
561                 z->c--;
562                 z->c = z->l - m_test4;
563             }
564             return 0;
565         lab2:
566             z->c = z->l - m3;
567         }
568         {   int m_test5 = z->l - z->c; /* test, line 144 */
569             {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
570                 if (ret < 0) return 0;
571                 z->c = ret; /* next, line 144 */
572             }
573             if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; /* grouping vowel, line 144 */
574             z->c = z->l - m_test5;
575         }
576     }
577 lab0:
578     return 1;
579 }
580 
581 static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z) { /* backwardmode */
582     {   int m1 = z->l - z->c; (void)m1; /* or, line 153 */
583         if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 152 */
584         z->c--;
585         {   int m_test2 = z->l - z->c; /* test, line 152 */
586             if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; /* grouping vowel, line 152 */
587             z->c = z->l - m_test2;
588         }
589         goto lab0;
590     lab1:
591         z->c = z->l - m1;
592         {   int m3 = z->l - z->c; (void)m3; /* not, line 154 */
593             {   int m_test4 = z->l - z->c; /* test, line 154 */
594                 if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab2; /* literal, line 154 */
595                 z->c--;
596                 z->c = z->l - m_test4;
597             }
598             return 0;
599         lab2:
600             z->c = z->l - m3;
601         }
602         {   int m_test5 = z->l - z->c; /* test, line 154 */
603             {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
604                 if (ret < 0) return 0;
605                 z->c = ret; /* next, line 154 */
606             }
607             if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; /* grouping vowel, line 154 */
608             z->c = z->l - m_test5;
609         }
610     }
611 lab0:
612     return 1;
613 }
614 
615 static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z) { /* backwardmode */
616     {   int m1 = z->l - z->c; (void)m1; /* or, line 159 */
617         if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab1; /* grouping U, line 158 */
618         {   int m_test2 = z->l - z->c; /* test, line 158 */
619             if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; /* non vowel, line 158 */
620             z->c = z->l - m_test2;
621         }
622         goto lab0;
623     lab1:
624         z->c = z->l - m1;
625         {   int m3 = z->l - z->c; (void)m3; /* not, line 160 */
626             {   int m_test4 = z->l - z->c; /* test, line 160 */
627                 if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab2; /* grouping U, line 160 */
628                 z->c = z->l - m_test4;
629             }
630             return 0;
631         lab2:
632             z->c = z->l - m3;
633         }
634         {   int m_test5 = z->l - z->c; /* test, line 160 */
635             {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
636                 if (ret < 0) return 0;
637                 z->c = ret; /* next, line 160 */
638             }
639             if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; /* non vowel, line 160 */
640             z->c = z->l - m_test5;
641         }
642     }
643 lab0:
644     return 1;
645 }
646 
647 static int r_mark_possessives(struct SN_env * z) { /* backwardmode */
648     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((67133440 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 165 */
649     if (!(find_among_b(z, a_0, 10))) return 0;
650     {   int ret = r_mark_suffix_with_optional_U_vowel(z); /* call mark_suffix_with_optional_U_vowel, line 167 */
651         if (ret <= 0) return ret;
652     }
653     return 1;
654 }
655 
656 static int r_mark_sU(struct SN_env * z) { /* backwardmode */
657     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 171 */
658         if (ret <= 0) return ret;
659     }
660     if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0; /* grouping U, line 172 */
661     {   int ret = r_mark_suffix_with_optional_s_consonant(z); /* call mark_suffix_with_optional_s_consonant, line 173 */
662         if (ret <= 0) return ret;
663     }
664     return 1;
665 }
666 
667 static int r_mark_lArI(struct SN_env * z) { /* backwardmode */
668     if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 177)) return 0; /* among, line 177 */
669     if (!(find_among_b(z, a_1, 2))) return 0;
670     return 1;
671 }
672 
673 static int r_mark_yU(struct SN_env * z) { /* backwardmode */
674     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 181 */
675         if (ret <= 0) return ret;
676     }
677     if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0; /* grouping U, line 182 */
678     {   int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 183 */
679         if (ret <= 0) return ret;
680     }
681     return 1;
682 }
683 
684 static int r_mark_nU(struct SN_env * z) { /* backwardmode */
685     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 187 */
686         if (ret <= 0) return ret;
687     }
688     if (!(find_among_b(z, a_2, 4))) return 0; /* among, line 188 */
689     return 1;
690 }
691 
692 static int r_mark_nUn(struct SN_env * z) { /* backwardmode */
693     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 192 */
694         if (ret <= 0) return ret;
695     }
696     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 110) return 0; /* among, line 193 */
697     if (!(find_among_b(z, a_3, 4))) return 0;
698     {   int ret = r_mark_suffix_with_optional_n_consonant(z); /* call mark_suffix_with_optional_n_consonant, line 194 */
699         if (ret <= 0) return ret;
700     }
701     return 1;
702 }
703 
704 static int r_mark_yA(struct SN_env * z) { /* backwardmode */
705     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 198 */
706         if (ret <= 0) return ret;
707     }
708     if (z->c <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 199 */
709     if (!(find_among_b(z, a_4, 2))) return 0;
710     {   int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 200 */
711         if (ret <= 0) return ret;
712     }
713     return 1;
714 }
715 
716 static int r_mark_nA(struct SN_env * z) { /* backwardmode */
717     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 204 */
718         if (ret <= 0) return ret;
719     }
720     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 205 */
721     if (!(find_among_b(z, a_5, 2))) return 0;
722     return 1;
723 }
724 
725 static int r_mark_DA(struct SN_env * z) { /* backwardmode */
726     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 209 */
727         if (ret <= 0) return ret;
728     }
729     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 210 */
730     if (!(find_among_b(z, a_6, 4))) return 0;
731     return 1;
732 }
733 
734 static int r_mark_ndA(struct SN_env * z) { /* backwardmode */
735     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 214 */
736         if (ret <= 0) return ret;
737     }
738     if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 215 */
739     if (!(find_among_b(z, a_7, 2))) return 0;
740     return 1;
741 }
742 
743 static int r_mark_DAn(struct SN_env * z) { /* backwardmode */
744     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 219 */
745         if (ret <= 0) return ret;
746     }
747     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0; /* among, line 220 */
748     if (!(find_among_b(z, a_8, 4))) return 0;
749     return 1;
750 }
751 
752 static int r_mark_ndAn(struct SN_env * z) { /* backwardmode */
753     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 224 */
754         if (ret <= 0) return ret;
755     }
756     if (z->c - 3 <= z->lb || z->p[z->c - 1] != 110) return 0; /* among, line 225 */
757     if (!(find_among_b(z, a_9, 2))) return 0;
758     return 1;
759 }
760 
761 static int r_mark_ylA(struct SN_env * z) { /* backwardmode */
762     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 229 */
763         if (ret <= 0) return ret;
764     }
765     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 230 */
766     if (!(find_among_b(z, a_10, 2))) return 0;
767     {   int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 231 */
768         if (ret <= 0) return ret;
769     }
770     return 1;
771 }
772 
773 static int r_mark_ki(struct SN_env * z) { /* backwardmode */
774     if (!(eq_s_b(z, 2, s_3))) return 0; /* literal, line 235 */
775     return 1;
776 }
777 
778 static int r_mark_ncA(struct SN_env * z) { /* backwardmode */
779     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 239 */
780         if (ret <= 0) return ret;
781     }
782     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 240 */
783     if (!(find_among_b(z, a_11, 2))) return 0;
784     {   int ret = r_mark_suffix_with_optional_n_consonant(z); /* call mark_suffix_with_optional_n_consonant, line 241 */
785         if (ret <= 0) return ret;
786     }
787     return 1;
788 }
789 
790 static int r_mark_yUm(struct SN_env * z) { /* backwardmode */
791     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 245 */
792         if (ret <= 0) return ret;
793     }
794     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 109) return 0; /* among, line 246 */
795     if (!(find_among_b(z, a_12, 4))) return 0;
796     {   int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 247 */
797         if (ret <= 0) return ret;
798     }
799     return 1;
800 }
801 
802 static int r_mark_sUn(struct SN_env * z) { /* backwardmode */
803     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 251 */
804         if (ret <= 0) return ret;
805     }
806     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0; /* among, line 252 */
807     if (!(find_among_b(z, a_13, 4))) return 0;
808     return 1;
809 }
810 
811 static int r_mark_yUz(struct SN_env * z) { /* backwardmode */
812     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 256 */
813         if (ret <= 0) return ret;
814     }
815     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 122) return 0; /* among, line 257 */
816     if (!(find_among_b(z, a_14, 4))) return 0;
817     {   int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 258 */
818         if (ret <= 0) return ret;
819     }
820     return 1;
821 }
822 
823 static int r_mark_sUnUz(struct SN_env * z) { /* backwardmode */
824     if (z->c - 4 <= z->lb || z->p[z->c - 1] != 122) return 0; /* among, line 262 */
825     if (!(find_among_b(z, a_15, 4))) return 0;
826     return 1;
827 }
828 
829 static int r_mark_lAr(struct SN_env * z) { /* backwardmode */
830     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 266 */
831         if (ret <= 0) return ret;
832     }
833     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0; /* among, line 267 */
834     if (!(find_among_b(z, a_16, 2))) return 0;
835     return 1;
836 }
837 
838 static int r_mark_nUz(struct SN_env * z) { /* backwardmode */
839     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 271 */
840         if (ret <= 0) return ret;
841     }
842     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 122) return 0; /* among, line 272 */
843     if (!(find_among_b(z, a_17, 4))) return 0;
844     return 1;
845 }
846 
847 static int r_mark_DUr(struct SN_env * z) { /* backwardmode */
848     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 276 */
849         if (ret <= 0) return ret;
850     }
851     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0; /* among, line 277 */
852     if (!(find_among_b(z, a_18, 8))) return 0;
853     return 1;
854 }
855 
856 static int r_mark_cAsInA(struct SN_env * z) { /* backwardmode */
857     if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 281 */
858     if (!(find_among_b(z, a_19, 2))) return 0;
859     return 1;
860 }
861 
862 static int r_mark_yDU(struct SN_env * z) { /* backwardmode */
863     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 285 */
864         if (ret <= 0) return ret;
865     }
866     if (!(find_among_b(z, a_20, 32))) return 0; /* among, line 286 */
867     {   int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 290 */
868         if (ret <= 0) return ret;
869     }
870     return 1;
871 }
872 
873 static int r_mark_ysA(struct SN_env * z) { /* backwardmode */
874     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((26658 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 295 */
875     if (!(find_among_b(z, a_21, 8))) return 0;
876     {   int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 296 */
877         if (ret <= 0) return ret;
878     }
879     return 1;
880 }
881 
882 static int r_mark_ymUs_(struct SN_env * z) { /* backwardmode */
883     {   int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 300 */
884         if (ret <= 0) return ret;
885     }
886     if (z->c - 3 <= z->lb || z->p[z->c - 1] != 159) return 0; /* among, line 301 */
887     if (!(find_among_b(z, a_22, 4))) return 0;
888     {   int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 302 */
889         if (ret <= 0) return ret;
890     }
891     return 1;
892 }
893 
894 static int r_mark_yken(struct SN_env * z) { /* backwardmode */
895     if (!(eq_s_b(z, 3, s_4))) return 0; /* literal, line 306 */
896     {   int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 306 */
897         if (ret <= 0) return ret;
898     }
899     return 1;
900 }
901 
902 static int r_stem_nominal_verb_suffixes(struct SN_env * z) { /* backwardmode */
903     z->ket = z->c; /* [, line 310 */
904     z->B[0] = 1; /* set continue_stemming_noun_suffixes, line 311 */
905     {   int m1 = z->l - z->c; (void)m1; /* or, line 313 */
906         {   int m2 = z->l - z->c; (void)m2; /* or, line 312 */
907             {   int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 312 */
908                 if (ret == 0) goto lab3;
909                 if (ret < 0) return ret;
910             }
911             goto lab2;
912         lab3:
913             z->c = z->l - m2;
914             {   int ret = r_mark_yDU(z); /* call mark_yDU, line 312 */
915                 if (ret == 0) goto lab4;
916                 if (ret < 0) return ret;
917             }
918             goto lab2;
919         lab4:
920             z->c = z->l - m2;
921             {   int ret = r_mark_ysA(z); /* call mark_ysA, line 312 */
922                 if (ret == 0) goto lab5;
923                 if (ret < 0) return ret;
924             }
925             goto lab2;
926         lab5:
927             z->c = z->l - m2;
928             {   int ret = r_mark_yken(z); /* call mark_yken, line 312 */
929                 if (ret == 0) goto lab1;
930                 if (ret < 0) return ret;
931             }
932         }
933     lab2:
934         goto lab0;
935     lab1:
936         z->c = z->l - m1;
937         {   int ret = r_mark_cAsInA(z); /* call mark_cAsInA, line 314 */
938             if (ret == 0) goto lab6;
939             if (ret < 0) return ret;
940         }
941         {   int m3 = z->l - z->c; (void)m3; /* or, line 314 */
942             {   int ret = r_mark_sUnUz(z); /* call mark_sUnUz, line 314 */
943                 if (ret == 0) goto lab8;
944                 if (ret < 0) return ret;
945             }
946             goto lab7;
947         lab8:
948             z->c = z->l - m3;
949             {   int ret = r_mark_lAr(z); /* call mark_lAr, line 314 */
950                 if (ret == 0) goto lab9;
951                 if (ret < 0) return ret;
952             }
953             goto lab7;
954         lab9:
955             z->c = z->l - m3;
956             {   int ret = r_mark_yUm(z); /* call mark_yUm, line 314 */
957                 if (ret == 0) goto lab10;
958                 if (ret < 0) return ret;
959             }
960             goto lab7;
961         lab10:
962             z->c = z->l - m3;
963             {   int ret = r_mark_sUn(z); /* call mark_sUn, line 314 */
964                 if (ret == 0) goto lab11;
965                 if (ret < 0) return ret;
966             }
967             goto lab7;
968         lab11:
969             z->c = z->l - m3;
970             {   int ret = r_mark_yUz(z); /* call mark_yUz, line 314 */
971                 if (ret == 0) goto lab12;
972                 if (ret < 0) return ret;
973             }
974             goto lab7;
975         lab12:
976             z->c = z->l - m3;
977         }
978     lab7:
979         {   int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 314 */
980             if (ret == 0) goto lab6;
981             if (ret < 0) return ret;
982         }
983         goto lab0;
984     lab6:
985         z->c = z->l - m1;
986         {   int ret = r_mark_lAr(z); /* call mark_lAr, line 317 */
987             if (ret == 0) goto lab13;
988             if (ret < 0) return ret;
989         }
990         z->bra = z->c; /* ], line 317 */
991         {   int ret = slice_del(z); /* delete, line 317 */
992             if (ret < 0) return ret;
993         }
994         {   int m4 = z->l - z->c; (void)m4; /* try, line 317 */
995             z->ket = z->c; /* [, line 317 */
996             {   int m5 = z->l - z->c; (void)m5; /* or, line 317 */
997                 {   int ret = r_mark_DUr(z); /* call mark_DUr, line 317 */
998                     if (ret == 0) goto lab16;
999                     if (ret < 0) return ret;
1000                 }
1001                 goto lab15;
1002             lab16:
1003                 z->c = z->l - m5;
1004                 {   int ret = r_mark_yDU(z); /* call mark_yDU, line 317 */
1005                     if (ret == 0) goto lab17;
1006                     if (ret < 0) return ret;
1007                 }
1008                 goto lab15;
1009             lab17:
1010                 z->c = z->l - m5;
1011                 {   int ret = r_mark_ysA(z); /* call mark_ysA, line 317 */
1012                     if (ret == 0) goto lab18;
1013                     if (ret < 0) return ret;
1014                 }
1015                 goto lab15;
1016             lab18:
1017                 z->c = z->l - m5;
1018                 {   int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 317 */
1019                     if (ret == 0) { z->c = z->l - m4; goto lab14; }
1020                     if (ret < 0) return ret;
1021                 }
1022             }
1023         lab15:
1024         lab14:
1025             ;
1026         }
1027         z->B[0] = 0; /* unset continue_stemming_noun_suffixes, line 318 */
1028         goto lab0;
1029     lab13:
1030         z->c = z->l - m1;
1031         {   int ret = r_mark_nUz(z); /* call mark_nUz, line 321 */
1032             if (ret == 0) goto lab19;
1033             if (ret < 0) return ret;
1034         }
1035         {   int m6 = z->l - z->c; (void)m6; /* or, line 321 */
1036             {   int ret = r_mark_yDU(z); /* call mark_yDU, line 321 */
1037                 if (ret == 0) goto lab21;
1038                 if (ret < 0) return ret;
1039             }
1040             goto lab20;
1041         lab21:
1042             z->c = z->l - m6;
1043             {   int ret = r_mark_ysA(z); /* call mark_ysA, line 321 */
1044                 if (ret == 0) goto lab19;
1045                 if (ret < 0) return ret;
1046             }
1047         }
1048     lab20:
1049         goto lab0;
1050     lab19:
1051         z->c = z->l - m1;
1052         {   int m7 = z->l - z->c; (void)m7; /* or, line 323 */
1053             {   int ret = r_mark_sUnUz(z); /* call mark_sUnUz, line 323 */
1054                 if (ret == 0) goto lab24;
1055                 if (ret < 0) return ret;
1056             }
1057             goto lab23;
1058         lab24:
1059             z->c = z->l - m7;
1060             {   int ret = r_mark_yUz(z); /* call mark_yUz, line 323 */
1061                 if (ret == 0) goto lab25;
1062                 if (ret < 0) return ret;
1063             }
1064             goto lab23;
1065         lab25:
1066             z->c = z->l - m7;
1067             {   int ret = r_mark_sUn(z); /* call mark_sUn, line 323 */
1068                 if (ret == 0) goto lab26;
1069                 if (ret < 0) return ret;
1070             }
1071             goto lab23;
1072         lab26:
1073             z->c = z->l - m7;
1074             {   int ret = r_mark_yUm(z); /* call mark_yUm, line 323 */
1075                 if (ret == 0) goto lab22;
1076                 if (ret < 0) return ret;
1077             }
1078         }
1079     lab23:
1080         z->bra = z->c; /* ], line 323 */
1081         {   int ret = slice_del(z); /* delete, line 323 */
1082             if (ret < 0) return ret;
1083         }
1084         {   int m8 = z->l - z->c; (void)m8; /* try, line 323 */
1085             z->ket = z->c; /* [, line 323 */
1086             {   int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 323 */
1087                 if (ret == 0) { z->c = z->l - m8; goto lab27; }
1088                 if (ret < 0) return ret;
1089             }
1090         lab27:
1091             ;
1092         }
1093         goto lab0;
1094     lab22:
1095         z->c = z->l - m1;
1096         {   int ret = r_mark_DUr(z); /* call mark_DUr, line 325 */
1097             if (ret <= 0) return ret;
1098         }
1099         z->bra = z->c; /* ], line 325 */
1100         {   int ret = slice_del(z); /* delete, line 325 */
1101             if (ret < 0) return ret;
1102         }
1103         {   int m9 = z->l - z->c; (void)m9; /* try, line 325 */
1104             z->ket = z->c; /* [, line 325 */
1105             {   int m10 = z->l - z->c; (void)m10; /* or, line 325 */
1106                 {   int ret = r_mark_sUnUz(z); /* call mark_sUnUz, line 325 */
1107                     if (ret == 0) goto lab30;
1108                     if (ret < 0) return ret;
1109                 }
1110                 goto lab29;
1111             lab30:
1112                 z->c = z->l - m10;
1113                 {   int ret = r_mark_lAr(z); /* call mark_lAr, line 325 */
1114                     if (ret == 0) goto lab31;
1115                     if (ret < 0) return ret;
1116                 }
1117                 goto lab29;
1118             lab31:
1119                 z->c = z->l - m10;
1120                 {   int ret = r_mark_yUm(z); /* call mark_yUm, line 325 */
1121                     if (ret == 0) goto lab32;
1122                     if (ret < 0) return ret;
1123                 }
1124                 goto lab29;
1125             lab32:
1126                 z->c = z->l - m10;
1127                 {   int ret = r_mark_sUn(z); /* call mark_sUn, line 325 */
1128                     if (ret == 0) goto lab33;
1129                     if (ret < 0) return ret;
1130                 }
1131                 goto lab29;
1132             lab33:
1133                 z->c = z->l - m10;
1134                 {   int ret = r_mark_yUz(z); /* call mark_yUz, line 325 */
1135                     if (ret == 0) goto lab34;
1136                     if (ret < 0) return ret;
1137                 }
1138                 goto lab29;
1139             lab34:
1140                 z->c = z->l - m10;
1141             }
1142         lab29:
1143             {   int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 325 */
1144                 if (ret == 0) { z->c = z->l - m9; goto lab28; }
1145                 if (ret < 0) return ret;
1146             }
1147         lab28:
1148             ;
1149         }
1150     }
1151 lab0:
1152     z->bra = z->c; /* ], line 326 */
1153     {   int ret = slice_del(z); /* delete, line 326 */
1154         if (ret < 0) return ret;
1155     }
1156     return 1;
1157 }
1158 
1159 static int r_stem_suffix_chain_before_ki(struct SN_env * z) { /* backwardmode */
1160     z->ket = z->c; /* [, line 331 */
1161     {   int ret = r_mark_ki(z); /* call mark_ki, line 332 */
1162         if (ret <= 0) return ret;
1163     }
1164     {   int m1 = z->l - z->c; (void)m1; /* or, line 340 */
1165         {   int ret = r_mark_DA(z); /* call mark_DA, line 334 */
1166             if (ret == 0) goto lab1;
1167             if (ret < 0) return ret;
1168         }
1169         z->bra = z->c; /* ], line 334 */
1170         {   int ret = slice_del(z); /* delete, line 334 */
1171             if (ret < 0) return ret;
1172         }
1173         {   int m2 = z->l - z->c; (void)m2; /* try, line 334 */
1174             z->ket = z->c; /* [, line 334 */
1175             {   int m3 = z->l - z->c; (void)m3; /* or, line 336 */
1176                 {   int ret = r_mark_lAr(z); /* call mark_lAr, line 335 */
1177                     if (ret == 0) goto lab4;
1178                     if (ret < 0) return ret;
1179                 }
1180                 z->bra = z->c; /* ], line 335 */
1181                 {   int ret = slice_del(z); /* delete, line 335 */
1182                     if (ret < 0) return ret;
1183                 }
1184                 {   int m4 = z->l - z->c; (void)m4; /* try, line 335 */
1185                     {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 335 */
1186                         if (ret == 0) { z->c = z->l - m4; goto lab5; }
1187                         if (ret < 0) return ret;
1188                     }
1189                 lab5:
1190                     ;
1191                 }
1192                 goto lab3;
1193             lab4:
1194                 z->c = z->l - m3;
1195                 {   int ret = r_mark_possessives(z); /* call mark_possessives, line 337 */
1196                     if (ret == 0) { z->c = z->l - m2; goto lab2; }
1197                     if (ret < 0) return ret;
1198                 }
1199                 z->bra = z->c; /* ], line 337 */
1200                 {   int ret = slice_del(z); /* delete, line 337 */
1201                     if (ret < 0) return ret;
1202                 }
1203                 {   int m5 = z->l - z->c; (void)m5; /* try, line 337 */
1204                     z->ket = z->c; /* [, line 337 */
1205                     {   int ret = r_mark_lAr(z); /* call mark_lAr, line 337 */
1206                         if (ret == 0) { z->c = z->l - m5; goto lab6; }
1207                         if (ret < 0) return ret;
1208                     }
1209                     z->bra = z->c; /* ], line 337 */
1210                     {   int ret = slice_del(z); /* delete, line 337 */
1211                         if (ret < 0) return ret;
1212                     }
1213                     {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 337 */
1214                         if (ret == 0) { z->c = z->l - m5; goto lab6; }
1215                         if (ret < 0) return ret;
1216                     }
1217                 lab6:
1218                     ;
1219                 }
1220             }
1221         lab3:
1222         lab2:
1223             ;
1224         }
1225         goto lab0;
1226     lab1:
1227         z->c = z->l - m1;
1228         {   int ret = r_mark_nUn(z); /* call mark_nUn, line 341 */
1229             if (ret == 0) goto lab7;
1230             if (ret < 0) return ret;
1231         }
1232         z->bra = z->c; /* ], line 341 */
1233         {   int ret = slice_del(z); /* delete, line 341 */
1234             if (ret < 0) return ret;
1235         }
1236         {   int m6 = z->l - z->c; (void)m6; /* try, line 341 */
1237             z->ket = z->c; /* [, line 341 */
1238             {   int m7 = z->l - z->c; (void)m7; /* or, line 343 */
1239                 {   int ret = r_mark_lArI(z); /* call mark_lArI, line 342 */
1240                     if (ret == 0) goto lab10;
1241                     if (ret < 0) return ret;
1242                 }
1243                 z->bra = z->c; /* ], line 342 */
1244                 {   int ret = slice_del(z); /* delete, line 342 */
1245                     if (ret < 0) return ret;
1246                 }
1247                 goto lab9;
1248             lab10:
1249                 z->c = z->l - m7;
1250                 z->ket = z->c; /* [, line 344 */
1251                 {   int m8 = z->l - z->c; (void)m8; /* or, line 344 */
1252                     {   int ret = r_mark_possessives(z); /* call mark_possessives, line 344 */
1253                         if (ret == 0) goto lab13;
1254                         if (ret < 0) return ret;
1255                     }
1256                     goto lab12;
1257                 lab13:
1258                     z->c = z->l - m8;
1259                     {   int ret = r_mark_sU(z); /* call mark_sU, line 344 */
1260                         if (ret == 0) goto lab11;
1261                         if (ret < 0) return ret;
1262                     }
1263                 }
1264             lab12:
1265                 z->bra = z->c; /* ], line 344 */
1266                 {   int ret = slice_del(z); /* delete, line 344 */
1267                     if (ret < 0) return ret;
1268                 }
1269                 {   int m9 = z->l - z->c; (void)m9; /* try, line 344 */
1270                     z->ket = z->c; /* [, line 344 */
1271                     {   int ret = r_mark_lAr(z); /* call mark_lAr, line 344 */
1272                         if (ret == 0) { z->c = z->l - m9; goto lab14; }
1273                         if (ret < 0) return ret;
1274                     }
1275                     z->bra = z->c; /* ], line 344 */
1276                     {   int ret = slice_del(z); /* delete, line 344 */
1277                         if (ret < 0) return ret;
1278                     }
1279                     {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 344 */
1280                         if (ret == 0) { z->c = z->l - m9; goto lab14; }
1281                         if (ret < 0) return ret;
1282                     }
1283                 lab14:
1284                     ;
1285                 }
1286                 goto lab9;
1287             lab11:
1288                 z->c = z->l - m7;
1289                 {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 346 */
1290                     if (ret == 0) { z->c = z->l - m6; goto lab8; }
1291                     if (ret < 0) return ret;
1292                 }
1293             }
1294         lab9:
1295         lab8:
1296             ;
1297         }
1298         goto lab0;
1299     lab7:
1300         z->c = z->l - m1;
1301         {   int ret = r_mark_ndA(z); /* call mark_ndA, line 349 */
1302             if (ret <= 0) return ret;
1303         }
1304         {   int m10 = z->l - z->c; (void)m10; /* or, line 351 */
1305             {   int ret = r_mark_lArI(z); /* call mark_lArI, line 350 */
1306                 if (ret == 0) goto lab16;
1307                 if (ret < 0) return ret;
1308             }
1309             z->bra = z->c; /* ], line 350 */
1310             {   int ret = slice_del(z); /* delete, line 350 */
1311                 if (ret < 0) return ret;
1312             }
1313             goto lab15;
1314         lab16:
1315             z->c = z->l - m10;
1316             {   int ret = r_mark_sU(z); /* call mark_sU, line 352 */
1317                 if (ret == 0) goto lab17;
1318                 if (ret < 0) return ret;
1319             }
1320             z->bra = z->c; /* ], line 352 */
1321             {   int ret = slice_del(z); /* delete, line 352 */
1322                 if (ret < 0) return ret;
1323             }
1324             {   int m11 = z->l - z->c; (void)m11; /* try, line 352 */
1325                 z->ket = z->c; /* [, line 352 */
1326                 {   int ret = r_mark_lAr(z); /* call mark_lAr, line 352 */
1327                     if (ret == 0) { z->c = z->l - m11; goto lab18; }
1328                     if (ret < 0) return ret;
1329                 }
1330                 z->bra = z->c; /* ], line 352 */
1331                 {   int ret = slice_del(z); /* delete, line 352 */
1332                     if (ret < 0) return ret;
1333                 }
1334                 {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 352 */
1335                     if (ret == 0) { z->c = z->l - m11; goto lab18; }
1336                     if (ret < 0) return ret;
1337                 }
1338             lab18:
1339                 ;
1340             }
1341             goto lab15;
1342         lab17:
1343             z->c = z->l - m10;
1344             {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 354 */
1345                 if (ret <= 0) return ret;
1346             }
1347         }
1348     lab15:
1349         ;
1350     }
1351 lab0:
1352     return 1;
1353 }
1354 
1355 static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */
1356     {   int m1 = z->l - z->c; (void)m1; /* or, line 361 */
1357         z->ket = z->c; /* [, line 360 */
1358         {   int ret = r_mark_lAr(z); /* call mark_lAr, line 360 */
1359             if (ret == 0) goto lab1;
1360             if (ret < 0) return ret;
1361         }
1362         z->bra = z->c; /* ], line 360 */
1363         {   int ret = slice_del(z); /* delete, line 360 */
1364             if (ret < 0) return ret;
1365         }
1366         {   int m2 = z->l - z->c; (void)m2; /* try, line 360 */
1367             {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 360 */
1368                 if (ret == 0) { z->c = z->l - m2; goto lab2; }
1369                 if (ret < 0) return ret;
1370             }
1371         lab2:
1372             ;
1373         }
1374         goto lab0;
1375     lab1:
1376         z->c = z->l - m1;
1377         z->ket = z->c; /* [, line 362 */
1378         {   int ret = r_mark_ncA(z); /* call mark_ncA, line 362 */
1379             if (ret == 0) goto lab3;
1380             if (ret < 0) return ret;
1381         }
1382         z->bra = z->c; /* ], line 362 */
1383         {   int ret = slice_del(z); /* delete, line 362 */
1384             if (ret < 0) return ret;
1385         }
1386         {   int m3 = z->l - z->c; (void)m3; /* try, line 363 */
1387             {   int m4 = z->l - z->c; (void)m4; /* or, line 365 */
1388                 z->ket = z->c; /* [, line 364 */
1389                 {   int ret = r_mark_lArI(z); /* call mark_lArI, line 364 */
1390                     if (ret == 0) goto lab6;
1391                     if (ret < 0) return ret;
1392                 }
1393                 z->bra = z->c; /* ], line 364 */
1394                 {   int ret = slice_del(z); /* delete, line 364 */
1395                     if (ret < 0) return ret;
1396                 }
1397                 goto lab5;
1398             lab6:
1399                 z->c = z->l - m4;
1400                 z->ket = z->c; /* [, line 366 */
1401                 {   int m5 = z->l - z->c; (void)m5; /* or, line 366 */
1402                     {   int ret = r_mark_possessives(z); /* call mark_possessives, line 366 */
1403                         if (ret == 0) goto lab9;
1404                         if (ret < 0) return ret;
1405                     }
1406                     goto lab8;
1407                 lab9:
1408                     z->c = z->l - m5;
1409                     {   int ret = r_mark_sU(z); /* call mark_sU, line 366 */
1410                         if (ret == 0) goto lab7;
1411                         if (ret < 0) return ret;
1412                     }
1413                 }
1414             lab8:
1415                 z->bra = z->c; /* ], line 366 */
1416                 {   int ret = slice_del(z); /* delete, line 366 */
1417                     if (ret < 0) return ret;
1418                 }
1419                 {   int m6 = z->l - z->c; (void)m6; /* try, line 366 */
1420                     z->ket = z->c; /* [, line 366 */
1421                     {   int ret = r_mark_lAr(z); /* call mark_lAr, line 366 */
1422                         if (ret == 0) { z->c = z->l - m6; goto lab10; }
1423                         if (ret < 0) return ret;
1424                     }
1425                     z->bra = z->c; /* ], line 366 */
1426                     {   int ret = slice_del(z); /* delete, line 366 */
1427                         if (ret < 0) return ret;
1428                     }
1429                     {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 366 */
1430                         if (ret == 0) { z->c = z->l - m6; goto lab10; }
1431                         if (ret < 0) return ret;
1432                     }
1433                 lab10:
1434                     ;
1435                 }
1436                 goto lab5;
1437             lab7:
1438                 z->c = z->l - m4;
1439                 z->ket = z->c; /* [, line 368 */
1440                 {   int ret = r_mark_lAr(z); /* call mark_lAr, line 368 */
1441                     if (ret == 0) { z->c = z->l - m3; goto lab4; }
1442                     if (ret < 0) return ret;
1443                 }
1444                 z->bra = z->c; /* ], line 368 */
1445                 {   int ret = slice_del(z); /* delete, line 368 */
1446                     if (ret < 0) return ret;
1447                 }
1448                 {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 368 */
1449                     if (ret == 0) { z->c = z->l - m3; goto lab4; }
1450                     if (ret < 0) return ret;
1451                 }
1452             }
1453         lab5:
1454         lab4:
1455             ;
1456         }
1457         goto lab0;
1458     lab3:
1459         z->c = z->l - m1;
1460         z->ket = z->c; /* [, line 372 */
1461         {   int m7 = z->l - z->c; (void)m7; /* or, line 372 */
1462             {   int ret = r_mark_ndA(z); /* call mark_ndA, line 372 */
1463                 if (ret == 0) goto lab13;
1464                 if (ret < 0) return ret;
1465             }
1466             goto lab12;
1467         lab13:
1468             z->c = z->l - m7;
1469             {   int ret = r_mark_nA(z); /* call mark_nA, line 372 */
1470                 if (ret == 0) goto lab11;
1471                 if (ret < 0) return ret;
1472             }
1473         }
1474     lab12:
1475         {   int m8 = z->l - z->c; (void)m8; /* or, line 375 */
1476             {   int ret = r_mark_lArI(z); /* call mark_lArI, line 374 */
1477                 if (ret == 0) goto lab15;
1478                 if (ret < 0) return ret;
1479             }
1480             z->bra = z->c; /* ], line 374 */
1481             {   int ret = slice_del(z); /* delete, line 374 */
1482                 if (ret < 0) return ret;
1483             }
1484             goto lab14;
1485         lab15:
1486             z->c = z->l - m8;
1487             {   int ret = r_mark_sU(z); /* call mark_sU, line 376 */
1488                 if (ret == 0) goto lab16;
1489                 if (ret < 0) return ret;
1490             }
1491             z->bra = z->c; /* ], line 376 */
1492             {   int ret = slice_del(z); /* delete, line 376 */
1493                 if (ret < 0) return ret;
1494             }
1495             {   int m9 = z->l - z->c; (void)m9; /* try, line 376 */
1496                 z->ket = z->c; /* [, line 376 */
1497                 {   int ret = r_mark_lAr(z); /* call mark_lAr, line 376 */
1498                     if (ret == 0) { z->c = z->l - m9; goto lab17; }
1499                     if (ret < 0) return ret;
1500                 }
1501                 z->bra = z->c; /* ], line 376 */
1502                 {   int ret = slice_del(z); /* delete, line 376 */
1503                     if (ret < 0) return ret;
1504                 }
1505                 {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 376 */
1506                     if (ret == 0) { z->c = z->l - m9; goto lab17; }
1507                     if (ret < 0) return ret;
1508                 }
1509             lab17:
1510                 ;
1511             }
1512             goto lab14;
1513         lab16:
1514             z->c = z->l - m8;
1515             {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 378 */
1516                 if (ret == 0) goto lab11;
1517                 if (ret < 0) return ret;
1518             }
1519         }
1520     lab14:
1521         goto lab0;
1522     lab11:
1523         z->c = z->l - m1;
1524         z->ket = z->c; /* [, line 382 */
1525         {   int m10 = z->l - z->c; (void)m10; /* or, line 382 */
1526             {   int ret = r_mark_ndAn(z); /* call mark_ndAn, line 382 */
1527                 if (ret == 0) goto lab20;
1528                 if (ret < 0) return ret;
1529             }
1530             goto lab19;
1531         lab20:
1532             z->c = z->l - m10;
1533             {   int ret = r_mark_nU(z); /* call mark_nU, line 382 */
1534                 if (ret == 0) goto lab18;
1535                 if (ret < 0) return ret;
1536             }
1537         }
1538     lab19:
1539         {   int m11 = z->l - z->c; (void)m11; /* or, line 382 */
1540             {   int ret = r_mark_sU(z); /* call mark_sU, line 382 */
1541                 if (ret == 0) goto lab22;
1542                 if (ret < 0) return ret;
1543             }
1544             z->bra = z->c; /* ], line 382 */
1545             {   int ret = slice_del(z); /* delete, line 382 */
1546                 if (ret < 0) return ret;
1547             }
1548             {   int m12 = z->l - z->c; (void)m12; /* try, line 382 */
1549                 z->ket = z->c; /* [, line 382 */
1550                 {   int ret = r_mark_lAr(z); /* call mark_lAr, line 382 */
1551                     if (ret == 0) { z->c = z->l - m12; goto lab23; }
1552                     if (ret < 0) return ret;
1553                 }
1554                 z->bra = z->c; /* ], line 382 */
1555                 {   int ret = slice_del(z); /* delete, line 382 */
1556                     if (ret < 0) return ret;
1557                 }
1558                 {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 382 */
1559                     if (ret == 0) { z->c = z->l - m12; goto lab23; }
1560                     if (ret < 0) return ret;
1561                 }
1562             lab23:
1563                 ;
1564             }
1565             goto lab21;
1566         lab22:
1567             z->c = z->l - m11;
1568             {   int ret = r_mark_lArI(z); /* call mark_lArI, line 382 */
1569                 if (ret == 0) goto lab18;
1570                 if (ret < 0) return ret;
1571             }
1572         }
1573     lab21:
1574         goto lab0;
1575     lab18:
1576         z->c = z->l - m1;
1577         z->ket = z->c; /* [, line 384 */
1578         {   int ret = r_mark_DAn(z); /* call mark_DAn, line 384 */
1579             if (ret == 0) goto lab24;
1580             if (ret < 0) return ret;
1581         }
1582         z->bra = z->c; /* ], line 384 */
1583         {   int ret = slice_del(z); /* delete, line 384 */
1584             if (ret < 0) return ret;
1585         }
1586         {   int m13 = z->l - z->c; (void)m13; /* try, line 384 */
1587             z->ket = z->c; /* [, line 384 */
1588             {   int m14 = z->l - z->c; (void)m14; /* or, line 387 */
1589                 {   int ret = r_mark_possessives(z); /* call mark_possessives, line 386 */
1590                     if (ret == 0) goto lab27;
1591                     if (ret < 0) return ret;
1592                 }
1593                 z->bra = z->c; /* ], line 386 */
1594                 {   int ret = slice_del(z); /* delete, line 386 */
1595                     if (ret < 0) return ret;
1596                 }
1597                 {   int m15 = z->l - z->c; (void)m15; /* try, line 386 */
1598                     z->ket = z->c; /* [, line 386 */
1599                     {   int ret = r_mark_lAr(z); /* call mark_lAr, line 386 */
1600                         if (ret == 0) { z->c = z->l - m15; goto lab28; }
1601                         if (ret < 0) return ret;
1602                     }
1603                     z->bra = z->c; /* ], line 386 */
1604                     {   int ret = slice_del(z); /* delete, line 386 */
1605                         if (ret < 0) return ret;
1606                     }
1607                     {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 386 */
1608                         if (ret == 0) { z->c = z->l - m15; goto lab28; }
1609                         if (ret < 0) return ret;
1610                     }
1611                 lab28:
1612                     ;
1613                 }
1614                 goto lab26;
1615             lab27:
1616                 z->c = z->l - m14;
1617                 {   int ret = r_mark_lAr(z); /* call mark_lAr, line 388 */
1618                     if (ret == 0) goto lab29;
1619                     if (ret < 0) return ret;
1620                 }
1621                 z->bra = z->c; /* ], line 388 */
1622                 {   int ret = slice_del(z); /* delete, line 388 */
1623                     if (ret < 0) return ret;
1624                 }
1625                 {   int m16 = z->l - z->c; (void)m16; /* try, line 388 */
1626                     {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 388 */
1627                         if (ret == 0) { z->c = z->l - m16; goto lab30; }
1628                         if (ret < 0) return ret;
1629                     }
1630                 lab30:
1631                     ;
1632                 }
1633                 goto lab26;
1634             lab29:
1635                 z->c = z->l - m14;
1636                 {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 390 */
1637                     if (ret == 0) { z->c = z->l - m13; goto lab25; }
1638                     if (ret < 0) return ret;
1639                 }
1640             }
1641         lab26:
1642         lab25:
1643             ;
1644         }
1645         goto lab0;
1646     lab24:
1647         z->c = z->l - m1;
1648         z->ket = z->c; /* [, line 394 */
1649         {   int m17 = z->l - z->c; (void)m17; /* or, line 394 */
1650             {   int ret = r_mark_nUn(z); /* call mark_nUn, line 394 */
1651                 if (ret == 0) goto lab33;
1652                 if (ret < 0) return ret;
1653             }
1654             goto lab32;
1655         lab33:
1656             z->c = z->l - m17;
1657             {   int ret = r_mark_ylA(z); /* call mark_ylA, line 394 */
1658                 if (ret == 0) goto lab31;
1659                 if (ret < 0) return ret;
1660             }
1661         }
1662     lab32:
1663         z->bra = z->c; /* ], line 394 */
1664         {   int ret = slice_del(z); /* delete, line 394 */
1665             if (ret < 0) return ret;
1666         }
1667         {   int m18 = z->l - z->c; (void)m18; /* try, line 395 */
1668             {   int m19 = z->l - z->c; (void)m19; /* or, line 397 */
1669                 z->ket = z->c; /* [, line 396 */
1670                 {   int ret = r_mark_lAr(z); /* call mark_lAr, line 396 */
1671                     if (ret == 0) goto lab36;
1672                     if (ret < 0) return ret;
1673                 }
1674                 z->bra = z->c; /* ], line 396 */
1675                 {   int ret = slice_del(z); /* delete, line 396 */
1676                     if (ret < 0) return ret;
1677                 }
1678                 {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 396 */
1679                     if (ret == 0) goto lab36;
1680                     if (ret < 0) return ret;
1681                 }
1682                 goto lab35;
1683             lab36:
1684                 z->c = z->l - m19;
1685                 z->ket = z->c; /* [, line 398 */
1686                 {   int m20 = z->l - z->c; (void)m20; /* or, line 398 */
1687                     {   int ret = r_mark_possessives(z); /* call mark_possessives, line 398 */
1688                         if (ret == 0) goto lab39;
1689                         if (ret < 0) return ret;
1690                     }
1691                     goto lab38;
1692                 lab39:
1693                     z->c = z->l - m20;
1694                     {   int ret = r_mark_sU(z); /* call mark_sU, line 398 */
1695                         if (ret == 0) goto lab37;
1696                         if (ret < 0) return ret;
1697                     }
1698                 }
1699             lab38:
1700                 z->bra = z->c; /* ], line 398 */
1701                 {   int ret = slice_del(z); /* delete, line 398 */
1702                     if (ret < 0) return ret;
1703                 }
1704                 {   int m21 = z->l - z->c; (void)m21; /* try, line 398 */
1705                     z->ket = z->c; /* [, line 398 */
1706                     {   int ret = r_mark_lAr(z); /* call mark_lAr, line 398 */
1707                         if (ret == 0) { z->c = z->l - m21; goto lab40; }
1708                         if (ret < 0) return ret;
1709                     }
1710                     z->bra = z->c; /* ], line 398 */
1711                     {   int ret = slice_del(z); /* delete, line 398 */
1712                         if (ret < 0) return ret;
1713                     }
1714                     {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 398 */
1715                         if (ret == 0) { z->c = z->l - m21; goto lab40; }
1716                         if (ret < 0) return ret;
1717                     }
1718                 lab40:
1719                     ;
1720                 }
1721                 goto lab35;
1722             lab37:
1723                 z->c = z->l - m19;
1724                 {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 400 */
1725                     if (ret == 0) { z->c = z->l - m18; goto lab34; }
1726                     if (ret < 0) return ret;
1727                 }
1728             }
1729         lab35:
1730         lab34:
1731             ;
1732         }
1733         goto lab0;
1734     lab31:
1735         z->c = z->l - m1;
1736         z->ket = z->c; /* [, line 404 */
1737         {   int ret = r_mark_lArI(z); /* call mark_lArI, line 404 */
1738             if (ret == 0) goto lab41;
1739             if (ret < 0) return ret;
1740         }
1741         z->bra = z->c; /* ], line 404 */
1742         {   int ret = slice_del(z); /* delete, line 404 */
1743             if (ret < 0) return ret;
1744         }
1745         goto lab0;
1746     lab41:
1747         z->c = z->l - m1;
1748         {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 406 */
1749             if (ret == 0) goto lab42;
1750             if (ret < 0) return ret;
1751         }
1752         goto lab0;
1753     lab42:
1754         z->c = z->l - m1;
1755         z->ket = z->c; /* [, line 408 */
1756         {   int m22 = z->l - z->c; (void)m22; /* or, line 408 */
1757             {   int ret = r_mark_DA(z); /* call mark_DA, line 408 */
1758                 if (ret == 0) goto lab45;
1759                 if (ret < 0) return ret;
1760             }
1761             goto lab44;
1762         lab45:
1763             z->c = z->l - m22;
1764             {   int ret = r_mark_yU(z); /* call mark_yU, line 408 */
1765                 if (ret == 0) goto lab46;
1766                 if (ret < 0) return ret;
1767             }
1768             goto lab44;
1769         lab46:
1770             z->c = z->l - m22;
1771             {   int ret = r_mark_yA(z); /* call mark_yA, line 408 */
1772                 if (ret == 0) goto lab43;
1773                 if (ret < 0) return ret;
1774             }
1775         }
1776     lab44:
1777         z->bra = z->c; /* ], line 408 */
1778         {   int ret = slice_del(z); /* delete, line 408 */
1779             if (ret < 0) return ret;
1780         }
1781         {   int m23 = z->l - z->c; (void)m23; /* try, line 408 */
1782             z->ket = z->c; /* [, line 408 */
1783             {   int m24 = z->l - z->c; (void)m24; /* or, line 408 */
1784                 {   int ret = r_mark_possessives(z); /* call mark_possessives, line 408 */
1785                     if (ret == 0) goto lab49;
1786                     if (ret < 0) return ret;
1787                 }
1788                 z->bra = z->c; /* ], line 408 */
1789                 {   int ret = slice_del(z); /* delete, line 408 */
1790                     if (ret < 0) return ret;
1791                 }
1792                 {   int m25 = z->l - z->c; (void)m25; /* try, line 408 */
1793                     z->ket = z->c; /* [, line 408 */
1794                     {   int ret = r_mark_lAr(z); /* call mark_lAr, line 408 */
1795                         if (ret == 0) { z->c = z->l - m25; goto lab50; }
1796                         if (ret < 0) return ret;
1797                     }
1798                 lab50:
1799                     ;
1800                 }
1801                 goto lab48;
1802             lab49:
1803                 z->c = z->l - m24;
1804                 {   int ret = r_mark_lAr(z); /* call mark_lAr, line 408 */
1805                     if (ret == 0) { z->c = z->l - m23; goto lab47; }
1806                     if (ret < 0) return ret;
1807                 }
1808             }
1809         lab48:
1810             z->bra = z->c; /* ], line 408 */
1811             {   int ret = slice_del(z); /* delete, line 408 */
1812                 if (ret < 0) return ret;
1813             }
1814             z->ket = z->c; /* [, line 408 */
1815             {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 408 */
1816                 if (ret == 0) { z->c = z->l - m23; goto lab47; }
1817                 if (ret < 0) return ret;
1818             }
1819         lab47:
1820             ;
1821         }
1822         goto lab0;
1823     lab43:
1824         z->c = z->l - m1;
1825         z->ket = z->c; /* [, line 410 */
1826         {   int m26 = z->l - z->c; (void)m26; /* or, line 410 */
1827             {   int ret = r_mark_possessives(z); /* call mark_possessives, line 410 */
1828                 if (ret == 0) goto lab52;
1829                 if (ret < 0) return ret;
1830             }
1831             goto lab51;
1832         lab52:
1833             z->c = z->l - m26;
1834             {   int ret = r_mark_sU(z); /* call mark_sU, line 410 */
1835                 if (ret <= 0) return ret;
1836             }
1837         }
1838     lab51:
1839         z->bra = z->c; /* ], line 410 */
1840         {   int ret = slice_del(z); /* delete, line 410 */
1841             if (ret < 0) return ret;
1842         }
1843         {   int m27 = z->l - z->c; (void)m27; /* try, line 410 */
1844             z->ket = z->c; /* [, line 410 */
1845             {   int ret = r_mark_lAr(z); /* call mark_lAr, line 410 */
1846                 if (ret == 0) { z->c = z->l - m27; goto lab53; }
1847                 if (ret < 0) return ret;
1848             }
1849             z->bra = z->c; /* ], line 410 */
1850             {   int ret = slice_del(z); /* delete, line 410 */
1851                 if (ret < 0) return ret;
1852             }
1853             {   int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 410 */
1854                 if (ret == 0) { z->c = z->l - m27; goto lab53; }
1855                 if (ret < 0) return ret;
1856             }
1857         lab53:
1858             ;
1859         }
1860     }
1861 lab0:
1862     return 1;
1863 }
1864 
1865 static int r_post_process_last_consonants(struct SN_env * z) { /* backwardmode */
1866     int among_var;
1867     z->ket = z->c; /* [, line 414 */
1868     among_var = find_among_b(z, a_23, 4); /* substring, line 414 */
1869     if (!(among_var)) return 0;
1870     z->bra = z->c; /* ], line 414 */
1871     switch (among_var) { /* among, line 414 */
1872         case 1:
1873             {   int ret = slice_from_s(z, 1, s_5); /* <-, line 415 */
1874                 if (ret < 0) return ret;
1875             }
1876             break;
1877         case 2:
1878             {   int ret = slice_from_s(z, 2, s_6); /* <-, line 416 */
1879                 if (ret < 0) return ret;
1880             }
1881             break;
1882         case 3:
1883             {   int ret = slice_from_s(z, 1, s_7); /* <-, line 417 */
1884                 if (ret < 0) return ret;
1885             }
1886             break;
1887         case 4:
1888             {   int ret = slice_from_s(z, 1, s_8); /* <-, line 418 */
1889                 if (ret < 0) return ret;
1890             }
1891             break;
1892     }
1893     return 1;
1894 }
1895 
1896 static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) { /* backwardmode */
1897     {   int m_test1 = z->l - z->c; /* test, line 429 */
1898         {   int m2 = z->l - z->c; (void)m2; /* or, line 429 */
1899             if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab1; /* literal, line 429 */
1900             z->c--;
1901             goto lab0;
1902         lab1:
1903             z->c = z->l - m2;
1904             if (z->c <= z->lb || z->p[z->c - 1] != 'g') return 0; /* literal, line 429 */
1905             z->c--;
1906         }
1907     lab0:
1908         z->c = z->l - m_test1;
1909     }
1910     {   int m3 = z->l - z->c; (void)m3; /* or, line 431 */
1911         {   int m_test4 = z->l - z->c; /* test, line 430 */
1912             if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab3; /* goto */ /* grouping vowel, line 430 */
1913             {   int m5 = z->l - z->c; (void)m5; /* or, line 430 */
1914                 if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab5; /* literal, line 430 */
1915                 z->c--;
1916                 goto lab4;
1917             lab5:
1918                 z->c = z->l - m5;
1919                 if (!(eq_s_b(z, 2, s_9))) goto lab3; /* literal, line 430 */
1920             }
1921         lab4:
1922             z->c = z->l - m_test4;
1923         }
1924         {   int ret;
1925             {   int saved_c = z->c;
1926                 ret = insert_s(z, z->c, z->c, 2, s_10); /* <+, line 430 */
1927                 z->c = saved_c;
1928             }
1929             if (ret < 0) return ret;
1930         }
1931         goto lab2;
1932     lab3:
1933         z->c = z->l - m3;
1934         {   int m_test6 = z->l - z->c; /* test, line 432 */
1935             if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab6; /* goto */ /* grouping vowel, line 432 */
1936             {   int m7 = z->l - z->c; (void)m7; /* or, line 432 */
1937                 if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8; /* literal, line 432 */
1938                 z->c--;
1939                 goto lab7;
1940             lab8:
1941                 z->c = z->l - m7;
1942                 if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab6; /* literal, line 432 */
1943                 z->c--;
1944             }
1945         lab7:
1946             z->c = z->l - m_test6;
1947         }
1948         {   int ret;
1949             {   int saved_c = z->c;
1950                 ret = insert_s(z, z->c, z->c, 1, s_11); /* <+, line 432 */
1951                 z->c = saved_c;
1952             }
1953             if (ret < 0) return ret;
1954         }
1955         goto lab2;
1956     lab6:
1957         z->c = z->l - m3;
1958         {   int m_test8 = z->l - z->c; /* test, line 434 */
1959             if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab9; /* goto */ /* grouping vowel, line 434 */
1960             {   int m9 = z->l - z->c; (void)m9; /* or, line 434 */
1961                 if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab11; /* literal, line 434 */
1962                 z->c--;
1963                 goto lab10;
1964             lab11:
1965                 z->c = z->l - m9;
1966                 if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab9; /* literal, line 434 */
1967                 z->c--;
1968             }
1969         lab10:
1970             z->c = z->l - m_test8;
1971         }
1972         {   int ret;
1973             {   int saved_c = z->c;
1974                 ret = insert_s(z, z->c, z->c, 1, s_12); /* <+, line 434 */
1975                 z->c = saved_c;
1976             }
1977             if (ret < 0) return ret;
1978         }
1979         goto lab2;
1980     lab9:
1981         z->c = z->l - m3;
1982         {   int m_test10 = z->l - z->c; /* test, line 436 */
1983             if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0; /* goto */ /* grouping vowel, line 436 */
1984             {   int m11 = z->l - z->c; (void)m11; /* or, line 436 */
1985                 if (!(eq_s_b(z, 2, s_13))) goto lab13; /* literal, line 436 */
1986                 goto lab12;
1987             lab13:
1988                 z->c = z->l - m11;
1989                 if (!(eq_s_b(z, 2, s_14))) return 0; /* literal, line 436 */
1990             }
1991         lab12:
1992             z->c = z->l - m_test10;
1993         }
1994         {   int ret;
1995             {   int saved_c = z->c;
1996                 ret = insert_s(z, z->c, z->c, 2, s_15); /* <+, line 436 */
1997                 z->c = saved_c;
1998             }
1999             if (ret < 0) return ret;
2000         }
2001     }
2002 lab2:
2003     return 1;
2004 }
2005 
2006 static int r_is_reserved_word(struct SN_env * z) { /* backwardmode */
2007     if (!(eq_s_b(z, 2, s_16))) return 0; /* literal, line 440 */
2008     {   int m1 = z->l - z->c; (void)m1; /* try, line 440 */
2009         if (!(eq_s_b(z, 3, s_17))) { z->c = z->l - m1; goto lab0; } /* literal, line 440 */
2010     lab0:
2011         ;
2012     }
2013     if (z->c > z->lb) return 0; /* atlimit, line 440 */
2014     return 1;
2015 }
2016 
2017 static int r_more_than_one_syllable_word(struct SN_env * z) { /* forwardmode */
2018     {   int c_test1 = z->c; /* test, line 447 */
2019         {   int i = 2;
2020             while(1) { /* atleast, line 447 */
2021                 int c2 = z->c;
2022                 {    /* gopast */ /* grouping vowel, line 447 */
2023                     int ret = out_grouping_U(z, g_vowel, 97, 305, 1);
2024                     if (ret < 0) goto lab0;
2025                     z->c += ret;
2026                 }
2027                 i--;
2028                 continue;
2029             lab0:
2030                 z->c = c2;
2031                 break;
2032             }
2033             if (i > 0) return 0;
2034         }
2035         z->c = c_test1;
2036     }
2037     return 1;
2038 }
2039 
2040 static int r_postlude(struct SN_env * z) { /* forwardmode */
2041     z->lb = z->c; z->c = z->l; /* backwards, line 451 */
2042 
2043     {   int m1 = z->l - z->c; (void)m1; /* not, line 452 */
2044         {   int ret = r_is_reserved_word(z); /* call is_reserved_word, line 452 */
2045             if (ret == 0) goto lab0;
2046             if (ret < 0) return ret;
2047         }
2048         return 0;
2049     lab0:
2050         z->c = z->l - m1;
2051     }
2052     {   int m2 = z->l - z->c; (void)m2; /* do, line 453 */
2053         {   int ret = r_append_U_to_stems_ending_with_d_or_g(z); /* call append_U_to_stems_ending_with_d_or_g, line 453 */
2054             if (ret == 0) goto lab1;
2055             if (ret < 0) return ret;
2056         }
2057     lab1:
2058         z->c = z->l - m2;
2059     }
2060     {   int m3 = z->l - z->c; (void)m3; /* do, line 454 */
2061         {   int ret = r_post_process_last_consonants(z); /* call post_process_last_consonants, line 454 */
2062             if (ret == 0) goto lab2;
2063             if (ret < 0) return ret;
2064         }
2065     lab2:
2066         z->c = z->l - m3;
2067     }
2068     z->c = z->lb;
2069     return 1;
2070 }
2071 
2072 extern int turkish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
2073     {   int ret = r_more_than_one_syllable_word(z); /* call more_than_one_syllable_word, line 460 */
2074         if (ret <= 0) return ret;
2075     }
2076     z->lb = z->c; z->c = z->l; /* backwards, line 462 */
2077 
2078     {   int m1 = z->l - z->c; (void)m1; /* do, line 463 */
2079         {   int ret = r_stem_nominal_verb_suffixes(z); /* call stem_nominal_verb_suffixes, line 463 */
2080             if (ret == 0) goto lab0;
2081             if (ret < 0) return ret;
2082         }
2083     lab0:
2084         z->c = z->l - m1;
2085     }
2086     if (!(z->B[0])) return 0; /* Boolean test continue_stemming_noun_suffixes, line 464 */
2087     {   int m2 = z->l - z->c; (void)m2; /* do, line 465 */
2088         {   int ret = r_stem_noun_suffixes(z); /* call stem_noun_suffixes, line 465 */
2089             if (ret == 0) goto lab1;
2090             if (ret < 0) return ret;
2091         }
2092     lab1:
2093         z->c = z->l - m2;
2094     }
2095     z->c = z->lb;
2096     {   int ret = r_postlude(z); /* call postlude, line 468 */
2097         if (ret <= 0) return ret;
2098     }
2099     return 1;
2100 }
2101 
2102 extern struct SN_env * turkish_UTF_8_create_env(void) { return SN_create_env(0, 0, 1); }
2103 
2104 extern void turkish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
2105 
2106