2 /* This file was generated automatically by the Snowball to ANSI C compiler */
9 extern int turkish_UTF_8_stem(struct SN_env
* z
);
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
);
58 extern struct SN_env
* turkish_UTF_8_create_env(void);
59 extern void turkish_UTF_8_close_env(struct SN_env
* z
);
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' };
76 static const struct among a_0
[10] =
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}
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 };
93 static const struct among a_1
[2] =
95 /* 0 */ { 4, s_1_0
, -1, -1, 0},
96 /* 1 */ { 5, s_1_1
, -1, -1, 0}
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 };
104 static const struct among a_2
[4] =
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}
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' };
117 static const struct among a_3
[4] =
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}
125 static const symbol s_4_0
[1] = { 'a' };
126 static const symbol s_4_1
[1] = { 'e' };
128 static const struct among a_4
[2] =
130 /* 0 */ { 1, s_4_0
, -1, -1, 0},
131 /* 1 */ { 1, s_4_1
, -1, -1, 0}
134 static const symbol s_5_0
[2] = { 'n', 'a' };
135 static const symbol s_5_1
[2] = { 'n', 'e' };
137 static const struct among a_5
[2] =
139 /* 0 */ { 2, s_5_0
, -1, -1, 0},
140 /* 1 */ { 2, s_5_1
, -1, -1, 0}
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' };
148 static const struct among a_6
[4] =
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}
156 static const symbol s_7_0
[3] = { 'n', 'd', 'a' };
157 static const symbol s_7_1
[3] = { 'n', 'd', 'e' };
159 static const struct among a_7
[2] =
161 /* 0 */ { 3, s_7_0
, -1, -1, 0},
162 /* 1 */ { 3, s_7_1
, -1, -1, 0}
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' };
170 static const struct among a_8
[4] =
172 /* 0 */ { 3, s_8_0
, -1, -1, 0},
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}
178 static const symbol s_9_0
[4] = { 'n', 'd', 'a', 'n' };
179 static const symbol s_9_1
[4] = { 'n', 'd', 'e', 'n' };
181 static const struct among a_9
[2] =
183 /* 0 */ { 4, s_9_0
, -1, -1, 0},
184 /* 1 */ { 4, s_9_1
, -1, -1, 0}
187 static const symbol s_10_0
[2] = { 'l', 'a' };
188 static const symbol s_10_1
[2] = { 'l', 'e' };
190 static const struct among a_10
[2] =
192 /* 0 */ { 2, s_10_0
, -1, -1, 0},
193 /* 1 */ { 2, s_10_1
, -1, -1, 0}
196 static const symbol s_11_0
[2] = { 'c', 'a' };
197 static const symbol s_11_1
[2] = { 'c', 'e' };
199 static const struct among a_11
[2] =
201 /* 0 */ { 2, s_11_0
, -1, -1, 0},
202 /* 1 */ { 2, s_11_1
, -1, -1, 0}
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' };
210 static const struct among a_12
[4] =
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}
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' };
223 static const struct among a_13
[4] =
225 /* 0 */ { 3, s_13_0
, -1, -1, 0},
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}
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' };
236 static const struct among a_14
[4] =
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}
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' };
249 static const struct among a_15
[4] =
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}
257 static const symbol s_16_0
[3] = { 'l', 'a', 'r' };
258 static const symbol s_16_1
[3] = { 'l', 'e', 'r' };
260 static const struct among a_16
[2] =
262 /* 0 */ { 3, s_16_0
, -1, -1, 0},
263 /* 1 */ { 3, s_16_1
, -1, -1, 0}
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' };
271 static const struct among a_17
[4] =
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}
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' };
288 static const struct among a_18
[8] =
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}
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' };
303 static const struct among a_19
[2] =
305 /* 0 */ { 7, s_19_0
, -1, -1, 0},
306 /* 1 */ { 6, s_19_1
, -1, -1, 0}
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 };
342 static const struct among a_20
[32] =
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}
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' };
387 static const struct among a_21
[8] =
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}
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 };
404 static const struct among a_22
[4] =
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}
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 };
417 static const struct among a_23
[4] =
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}
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 };
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 };
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 };
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 };
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 };
435 static const unsigned char g_vowel4
[] = { 17 };
437 static const unsigned char g_vowel5
[] = { 65 };
439 static const unsigned char g_vowel6
[] = { 65 };
441 static const symbol s_0
[] = { 'a' };
442 static const symbol s_1
[] = { 'e' };
443 static const symbol s_2
[] = { 0xC4, 0xB1 };
444 static const symbol s_3
[] = { 'i' };
445 static const symbol s_4
[] = { 'o' };
446 static const symbol s_5
[] = { 0xC3, 0xB6 };
447 static const symbol s_6
[] = { 'u' };
448 static const symbol s_7
[] = { 0xC3, 0xBC };
449 static const symbol s_8
[] = { 'n' };
450 static const symbol s_9
[] = { 'n' };
451 static const symbol s_10
[] = { 's' };
452 static const symbol s_11
[] = { 's' };
453 static const symbol s_12
[] = { 'y' };
454 static const symbol s_13
[] = { 'y' };
455 static const symbol s_14
[] = { 'k', 'i' };
456 static const symbol s_15
[] = { 'k', 'e', 'n' };
457 static const symbol s_16
[] = { 'p' };
458 static const symbol s_17
[] = { 0xC3, 0xA7 };
459 static const symbol s_18
[] = { 't' };
460 static const symbol s_19
[] = { 'k' };
461 static const symbol s_20
[] = { 'd' };
462 static const symbol s_21
[] = { 'g' };
463 static const symbol s_22
[] = { 'a' };
464 static const symbol s_23
[] = { 0xC4, 0xB1 };
465 static const symbol s_24
[] = { 0xC4, 0xB1 };
466 static const symbol s_25
[] = { 'e' };
467 static const symbol s_26
[] = { 'i' };
468 static const symbol s_27
[] = { 'i' };
469 static const symbol s_28
[] = { 'o' };
470 static const symbol s_29
[] = { 'u' };
471 static const symbol s_30
[] = { 'u' };
472 static const symbol s_31
[] = { 0xC3, 0xB6 };
473 static const symbol s_32
[] = { 0xC3, 0xBC };
474 static const symbol s_33
[] = { 0xC3, 0xBC };
475 static const symbol s_34
[] = { 'a', 'd' };
476 static const symbol s_35
[] = { 's', 'o', 'y', 'a', 'd' };
478 static int r_check_vowel_harmony(struct SN_env
* z
) {
479 { int m_test
= z
->l
- z
->c
; /* test, line 112 */
480 if (out_grouping_b_U(z
, g_vowel
, 97, 305, 1) < 0) return 0; /* goto */ /* grouping vowel, line 114 */
481 { int m1
= z
->l
- z
->c
; (void)m1
; /* or, line 116 */
482 if (!(eq_s_b(z
, 1, s_0
))) goto lab1
;
483 if (out_grouping_b_U(z
, g_vowel1
, 97, 305, 1) < 0) goto lab1
; /* goto */ /* grouping vowel1, line 116 */
487 if (!(eq_s_b(z
, 1, s_1
))) goto lab2
;
488 if (out_grouping_b_U(z
, g_vowel2
, 101, 252, 1) < 0) goto lab2
; /* goto */ /* grouping vowel2, line 117 */
492 if (!(eq_s_b(z
, 2, s_2
))) goto lab3
;
493 if (out_grouping_b_U(z
, g_vowel3
, 97, 305, 1) < 0) goto lab3
; /* goto */ /* grouping vowel3, line 118 */
497 if (!(eq_s_b(z
, 1, s_3
))) goto lab4
;
498 if (out_grouping_b_U(z
, g_vowel4
, 101, 105, 1) < 0) goto lab4
; /* goto */ /* grouping vowel4, line 119 */
502 if (!(eq_s_b(z
, 1, s_4
))) goto lab5
;
503 if (out_grouping_b_U(z
, g_vowel5
, 111, 117, 1) < 0) goto lab5
; /* goto */ /* grouping vowel5, line 120 */
507 if (!(eq_s_b(z
, 2, s_5
))) goto lab6
;
508 if (out_grouping_b_U(z
, g_vowel6
, 246, 252, 1) < 0) goto lab6
; /* goto */ /* grouping vowel6, line 121 */
512 if (!(eq_s_b(z
, 1, s_6
))) goto lab7
;
513 if (out_grouping_b_U(z
, g_vowel5
, 111, 117, 1) < 0) goto lab7
; /* goto */ /* grouping vowel5, line 122 */
517 if (!(eq_s_b(z
, 2, s_7
))) return 0;
518 if (out_grouping_b_U(z
, g_vowel6
, 246, 252, 1) < 0) return 0; /* goto */ /* grouping vowel6, line 123 */
521 z
->c
= z
->l
- m_test
;
526 static int r_mark_suffix_with_optional_n_consonant(struct SN_env
* z
) {
527 { int m1
= z
->l
- z
->c
; (void)m1
; /* or, line 134 */
528 { int m_test
= z
->l
- z
->c
; /* test, line 133 */
529 if (!(eq_s_b(z
, 1, s_8
))) goto lab1
;
530 z
->c
= z
->l
- m_test
;
532 { int ret
= skip_utf8(z
->p
, z
->c
, z
->lb
, 0, -1);
533 if (ret
< 0) goto lab1
;
534 z
->c
= ret
; /* next, line 133 */
536 { int m_test
= z
->l
- z
->c
; /* test, line 133 */
537 if (in_grouping_b_U(z
, g_vowel
, 97, 305, 0)) goto lab1
;
538 z
->c
= z
->l
- m_test
;
543 { int m2
= z
->l
- z
->c
; (void)m2
; /* not, line 135 */
544 { int m_test
= z
->l
- z
->c
; /* test, line 135 */
545 if (!(eq_s_b(z
, 1, s_9
))) goto lab2
;
546 z
->c
= z
->l
- m_test
;
552 { int m_test
= z
->l
- z
->c
; /* test, line 135 */
553 { int ret
= skip_utf8(z
->p
, z
->c
, z
->lb
, 0, -1);
554 if (ret
< 0) return 0;
555 z
->c
= ret
; /* next, line 135 */
557 { int m_test
= z
->l
- z
->c
; /* test, line 135 */
558 if (in_grouping_b_U(z
, g_vowel
, 97, 305, 0)) return 0;
559 z
->c
= z
->l
- m_test
;
561 z
->c
= z
->l
- m_test
;
568 static int r_mark_suffix_with_optional_s_consonant(struct SN_env
* z
) {
569 { int m1
= z
->l
- z
->c
; (void)m1
; /* or, line 145 */
570 { int m_test
= z
->l
- z
->c
; /* test, line 144 */
571 if (!(eq_s_b(z
, 1, s_10
))) goto lab1
;
572 z
->c
= z
->l
- m_test
;
574 { int ret
= skip_utf8(z
->p
, z
->c
, z
->lb
, 0, -1);
575 if (ret
< 0) goto lab1
;
576 z
->c
= ret
; /* next, line 144 */
578 { int m_test
= z
->l
- z
->c
; /* test, line 144 */
579 if (in_grouping_b_U(z
, g_vowel
, 97, 305, 0)) goto lab1
;
580 z
->c
= z
->l
- m_test
;
585 { int m2
= z
->l
- z
->c
; (void)m2
; /* not, line 146 */
586 { int m_test
= z
->l
- z
->c
; /* test, line 146 */
587 if (!(eq_s_b(z
, 1, s_11
))) goto lab2
;
588 z
->c
= z
->l
- m_test
;
594 { int m_test
= z
->l
- z
->c
; /* test, line 146 */
595 { int ret
= skip_utf8(z
->p
, z
->c
, z
->lb
, 0, -1);
596 if (ret
< 0) return 0;
597 z
->c
= ret
; /* next, line 146 */
599 { int m_test
= z
->l
- z
->c
; /* test, line 146 */
600 if (in_grouping_b_U(z
, g_vowel
, 97, 305, 0)) return 0;
601 z
->c
= z
->l
- m_test
;
603 z
->c
= z
->l
- m_test
;
610 static int r_mark_suffix_with_optional_y_consonant(struct SN_env
* z
) {
611 { int m1
= z
->l
- z
->c
; (void)m1
; /* or, line 155 */
612 { int m_test
= z
->l
- z
->c
; /* test, line 154 */
613 if (!(eq_s_b(z
, 1, s_12
))) goto lab1
;
614 z
->c
= z
->l
- m_test
;
616 { int ret
= skip_utf8(z
->p
, z
->c
, z
->lb
, 0, -1);
617 if (ret
< 0) goto lab1
;
618 z
->c
= ret
; /* next, line 154 */
620 { int m_test
= z
->l
- z
->c
; /* test, line 154 */
621 if (in_grouping_b_U(z
, g_vowel
, 97, 305, 0)) goto lab1
;
622 z
->c
= z
->l
- m_test
;
627 { int m2
= z
->l
- z
->c
; (void)m2
; /* not, line 156 */
628 { int m_test
= z
->l
- z
->c
; /* test, line 156 */
629 if (!(eq_s_b(z
, 1, s_13
))) goto lab2
;
630 z
->c
= z
->l
- m_test
;
636 { int m_test
= z
->l
- z
->c
; /* test, line 156 */
637 { int ret
= skip_utf8(z
->p
, z
->c
, z
->lb
, 0, -1);
638 if (ret
< 0) return 0;
639 z
->c
= ret
; /* next, line 156 */
641 { int m_test
= z
->l
- z
->c
; /* test, line 156 */
642 if (in_grouping_b_U(z
, g_vowel
, 97, 305, 0)) return 0;
643 z
->c
= z
->l
- m_test
;
645 z
->c
= z
->l
- m_test
;
652 static int r_mark_suffix_with_optional_U_vowel(struct SN_env
* z
) {
653 { int m1
= z
->l
- z
->c
; (void)m1
; /* or, line 161 */
654 { int m_test
= z
->l
- z
->c
; /* test, line 160 */
655 if (in_grouping_b_U(z
, g_U
, 105, 305, 0)) goto lab1
;
656 z
->c
= z
->l
- m_test
;
658 { int ret
= skip_utf8(z
->p
, z
->c
, z
->lb
, 0, -1);
659 if (ret
< 0) goto lab1
;
660 z
->c
= ret
; /* next, line 160 */
662 { int m_test
= z
->l
- z
->c
; /* test, line 160 */
663 if (out_grouping_b_U(z
, g_vowel
, 97, 305, 0)) goto lab1
;
664 z
->c
= z
->l
- m_test
;
669 { int m2
= z
->l
- z
->c
; (void)m2
; /* not, line 162 */
670 { int m_test
= z
->l
- z
->c
; /* test, line 162 */
671 if (in_grouping_b_U(z
, g_U
, 105, 305, 0)) goto lab2
;
672 z
->c
= z
->l
- m_test
;
678 { int m_test
= z
->l
- z
->c
; /* test, line 162 */
679 { int ret
= skip_utf8(z
->p
, z
->c
, z
->lb
, 0, -1);
680 if (ret
< 0) return 0;
681 z
->c
= ret
; /* next, line 162 */
683 { int m_test
= z
->l
- z
->c
; /* test, line 162 */
684 if (out_grouping_b_U(z
, g_vowel
, 97, 305, 0)) return 0;
685 z
->c
= z
->l
- m_test
;
687 z
->c
= z
->l
- m_test
;
694 static int r_mark_possessives(struct SN_env
* z
) {
695 if (z
->c
<= z
->lb
|| z
->p
[z
->c
- 1] >> 5 != 3 || !((67133440 >> (z
->p
[z
->c
- 1] & 0x1f)) & 1)) return 0;
696 if (!(find_among_b(z
, a_0
, 10))) return 0; /* among, line 167 */
697 { int ret
= r_mark_suffix_with_optional_U_vowel(z
);
698 if (ret
== 0) return 0; /* call mark_suffix_with_optional_U_vowel, line 169 */
699 if (ret
< 0) return ret
;
704 static int r_mark_sU(struct SN_env
* z
) {
705 { int ret
= r_check_vowel_harmony(z
);
706 if (ret
== 0) return 0; /* call check_vowel_harmony, line 173 */
707 if (ret
< 0) return ret
;
709 if (in_grouping_b_U(z
, g_U
, 105, 305, 0)) return 0;
710 { int ret
= r_mark_suffix_with_optional_s_consonant(z
);
711 if (ret
== 0) return 0; /* call mark_suffix_with_optional_s_consonant, line 175 */
712 if (ret
< 0) return ret
;
717 static int r_mark_lArI(struct SN_env
* z
) {
718 if (z
->c
- 3 <= z
->lb
|| (z
->p
[z
->c
- 1] != 105 && z
->p
[z
->c
- 1] != 177)) return 0;
719 if (!(find_among_b(z
, a_1
, 2))) return 0; /* among, line 179 */
723 static int r_mark_yU(struct SN_env
* z
) {
724 { int ret
= r_check_vowel_harmony(z
);
725 if (ret
== 0) return 0; /* call check_vowel_harmony, line 183 */
726 if (ret
< 0) return ret
;
728 if (in_grouping_b_U(z
, g_U
, 105, 305, 0)) return 0;
729 { int ret
= r_mark_suffix_with_optional_y_consonant(z
);
730 if (ret
== 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 185 */
731 if (ret
< 0) return ret
;
736 static int r_mark_nU(struct SN_env
* z
) {
737 { int ret
= r_check_vowel_harmony(z
);
738 if (ret
== 0) return 0; /* call check_vowel_harmony, line 189 */
739 if (ret
< 0) return ret
;
741 if (!(find_among_b(z
, a_2
, 4))) return 0; /* among, line 190 */
745 static int r_mark_nUn(struct SN_env
* z
) {
746 { int ret
= r_check_vowel_harmony(z
);
747 if (ret
== 0) return 0; /* call check_vowel_harmony, line 194 */
748 if (ret
< 0) return ret
;
750 if (z
->c
- 1 <= z
->lb
|| z
->p
[z
->c
- 1] != 110) return 0;
751 if (!(find_among_b(z
, a_3
, 4))) return 0; /* among, line 195 */
752 { int ret
= r_mark_suffix_with_optional_n_consonant(z
);
753 if (ret
== 0) return 0; /* call mark_suffix_with_optional_n_consonant, line 196 */
754 if (ret
< 0) return ret
;
759 static int r_mark_yA(struct SN_env
* z
) {
760 { int ret
= r_check_vowel_harmony(z
);
761 if (ret
== 0) return 0; /* call check_vowel_harmony, line 200 */
762 if (ret
< 0) return ret
;
764 if (z
->c
<= z
->lb
|| (z
->p
[z
->c
- 1] != 97 && z
->p
[z
->c
- 1] != 101)) return 0;
765 if (!(find_among_b(z
, a_4
, 2))) return 0; /* among, line 201 */
766 { int ret
= r_mark_suffix_with_optional_y_consonant(z
);
767 if (ret
== 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 202 */
768 if (ret
< 0) return ret
;
773 static int r_mark_nA(struct SN_env
* z
) {
774 { int ret
= r_check_vowel_harmony(z
);
775 if (ret
== 0) return 0; /* call check_vowel_harmony, line 206 */
776 if (ret
< 0) return ret
;
778 if (z
->c
- 1 <= z
->lb
|| (z
->p
[z
->c
- 1] != 97 && z
->p
[z
->c
- 1] != 101)) return 0;
779 if (!(find_among_b(z
, a_5
, 2))) return 0; /* among, line 207 */
783 static int r_mark_DA(struct SN_env
* z
) {
784 { int ret
= r_check_vowel_harmony(z
);
785 if (ret
== 0) return 0; /* call check_vowel_harmony, line 211 */
786 if (ret
< 0) return ret
;
788 if (z
->c
- 1 <= z
->lb
|| (z
->p
[z
->c
- 1] != 97 && z
->p
[z
->c
- 1] != 101)) return 0;
789 if (!(find_among_b(z
, a_6
, 4))) return 0; /* among, line 212 */
793 static int r_mark_ndA(struct SN_env
* z
) {
794 { int ret
= r_check_vowel_harmony(z
);
795 if (ret
== 0) return 0; /* call check_vowel_harmony, line 216 */
796 if (ret
< 0) return ret
;
798 if (z
->c
- 2 <= z
->lb
|| (z
->p
[z
->c
- 1] != 97 && z
->p
[z
->c
- 1] != 101)) return 0;
799 if (!(find_among_b(z
, a_7
, 2))) return 0; /* among, line 217 */
803 static int r_mark_DAn(struct SN_env
* z
) {
804 { int ret
= r_check_vowel_harmony(z
);
805 if (ret
== 0) return 0; /* call check_vowel_harmony, line 221 */
806 if (ret
< 0) return ret
;
808 if (z
->c
- 2 <= z
->lb
|| z
->p
[z
->c
- 1] != 110) return 0;
809 if (!(find_among_b(z
, a_8
, 4))) return 0; /* among, line 222 */
813 static int r_mark_ndAn(struct SN_env
* z
) {
814 { int ret
= r_check_vowel_harmony(z
);
815 if (ret
== 0) return 0; /* call check_vowel_harmony, line 226 */
816 if (ret
< 0) return ret
;
818 if (z
->c
- 3 <= z
->lb
|| z
->p
[z
->c
- 1] != 110) return 0;
819 if (!(find_among_b(z
, a_9
, 2))) return 0; /* among, line 227 */
823 static int r_mark_ylA(struct SN_env
* z
) {
824 { int ret
= r_check_vowel_harmony(z
);
825 if (ret
== 0) return 0; /* call check_vowel_harmony, line 231 */
826 if (ret
< 0) return ret
;
828 if (z
->c
- 1 <= z
->lb
|| (z
->p
[z
->c
- 1] != 97 && z
->p
[z
->c
- 1] != 101)) return 0;
829 if (!(find_among_b(z
, a_10
, 2))) return 0; /* among, line 232 */
830 { int ret
= r_mark_suffix_with_optional_y_consonant(z
);
831 if (ret
== 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 233 */
832 if (ret
< 0) return ret
;
837 static int r_mark_ki(struct SN_env
* z
) {
838 if (!(eq_s_b(z
, 2, s_14
))) return 0;
842 static int r_mark_ncA(struct SN_env
* z
) {
843 { int ret
= r_check_vowel_harmony(z
);
844 if (ret
== 0) return 0; /* call check_vowel_harmony, line 241 */
845 if (ret
< 0) return ret
;
847 if (z
->c
- 1 <= z
->lb
|| (z
->p
[z
->c
- 1] != 97 && z
->p
[z
->c
- 1] != 101)) return 0;
848 if (!(find_among_b(z
, a_11
, 2))) return 0; /* among, line 242 */
849 { int ret
= r_mark_suffix_with_optional_n_consonant(z
);
850 if (ret
== 0) return 0; /* call mark_suffix_with_optional_n_consonant, line 243 */
851 if (ret
< 0) return ret
;
856 static int r_mark_yUm(struct SN_env
* z
) {
857 { int ret
= r_check_vowel_harmony(z
);
858 if (ret
== 0) return 0; /* call check_vowel_harmony, line 247 */
859 if (ret
< 0) return ret
;
861 if (z
->c
- 1 <= z
->lb
|| z
->p
[z
->c
- 1] != 109) return 0;
862 if (!(find_among_b(z
, a_12
, 4))) return 0; /* among, line 248 */
863 { int ret
= r_mark_suffix_with_optional_y_consonant(z
);
864 if (ret
== 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 249 */
865 if (ret
< 0) return ret
;
870 static int r_mark_sUn(struct SN_env
* z
) {
871 { int ret
= r_check_vowel_harmony(z
);
872 if (ret
== 0) return 0; /* call check_vowel_harmony, line 253 */
873 if (ret
< 0) return ret
;
875 if (z
->c
- 2 <= z
->lb
|| z
->p
[z
->c
- 1] != 110) return 0;
876 if (!(find_among_b(z
, a_13
, 4))) return 0; /* among, line 254 */
880 static int r_mark_yUz(struct SN_env
* z
) {
881 { int ret
= r_check_vowel_harmony(z
);
882 if (ret
== 0) return 0; /* call check_vowel_harmony, line 258 */
883 if (ret
< 0) return ret
;
885 if (z
->c
- 1 <= z
->lb
|| z
->p
[z
->c
- 1] != 122) return 0;
886 if (!(find_among_b(z
, a_14
, 4))) return 0; /* among, line 259 */
887 { int ret
= r_mark_suffix_with_optional_y_consonant(z
);
888 if (ret
== 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 260 */
889 if (ret
< 0) return ret
;
894 static int r_mark_sUnUz(struct SN_env
* z
) {
895 if (z
->c
- 4 <= z
->lb
|| z
->p
[z
->c
- 1] != 122) return 0;
896 if (!(find_among_b(z
, a_15
, 4))) return 0; /* among, line 264 */
900 static int r_mark_lAr(struct SN_env
* z
) {
901 { int ret
= r_check_vowel_harmony(z
);
902 if (ret
== 0) return 0; /* call check_vowel_harmony, line 268 */
903 if (ret
< 0) return ret
;
905 if (z
->c
- 2 <= z
->lb
|| z
->p
[z
->c
- 1] != 114) return 0;
906 if (!(find_among_b(z
, a_16
, 2))) return 0; /* among, line 269 */
910 static int r_mark_nUz(struct SN_env
* z
) {
911 { int ret
= r_check_vowel_harmony(z
);
912 if (ret
== 0) return 0; /* call check_vowel_harmony, line 273 */
913 if (ret
< 0) return ret
;
915 if (z
->c
- 2 <= z
->lb
|| z
->p
[z
->c
- 1] != 122) return 0;
916 if (!(find_among_b(z
, a_17
, 4))) return 0; /* among, line 274 */
920 static int r_mark_DUr(struct SN_env
* z
) {
921 { int ret
= r_check_vowel_harmony(z
);
922 if (ret
== 0) return 0; /* call check_vowel_harmony, line 278 */
923 if (ret
< 0) return ret
;
925 if (z
->c
- 2 <= z
->lb
|| z
->p
[z
->c
- 1] != 114) return 0;
926 if (!(find_among_b(z
, a_18
, 8))) return 0; /* among, line 279 */
930 static int r_mark_cAsInA(struct SN_env
* z
) {
931 if (z
->c
- 5 <= z
->lb
|| (z
->p
[z
->c
- 1] != 97 && z
->p
[z
->c
- 1] != 101)) return 0;
932 if (!(find_among_b(z
, a_19
, 2))) return 0; /* among, line 283 */
936 static int r_mark_yDU(struct SN_env
* z
) {
937 { int ret
= r_check_vowel_harmony(z
);
938 if (ret
== 0) return 0; /* call check_vowel_harmony, line 287 */
939 if (ret
< 0) return ret
;
941 if (!(find_among_b(z
, a_20
, 32))) return 0; /* among, line 288 */
942 { int ret
= r_mark_suffix_with_optional_y_consonant(z
);
943 if (ret
== 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 292 */
944 if (ret
< 0) return ret
;
949 static int r_mark_ysA(struct SN_env
* z
) {
950 if (z
->c
- 1 <= z
->lb
|| z
->p
[z
->c
- 1] >> 5 != 3 || !((26658 >> (z
->p
[z
->c
- 1] & 0x1f)) & 1)) return 0;
951 if (!(find_among_b(z
, a_21
, 8))) return 0; /* among, line 297 */
952 { int ret
= r_mark_suffix_with_optional_y_consonant(z
);
953 if (ret
== 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 298 */
954 if (ret
< 0) return ret
;
959 static int r_mark_ymUs_(struct SN_env
* z
) {
960 { int ret
= r_check_vowel_harmony(z
);
961 if (ret
== 0) return 0; /* call check_vowel_harmony, line 302 */
962 if (ret
< 0) return ret
;
964 if (z
->c
- 3 <= z
->lb
|| z
->p
[z
->c
- 1] != 159) return 0;
965 if (!(find_among_b(z
, a_22
, 4))) return 0; /* among, line 303 */
966 { int ret
= r_mark_suffix_with_optional_y_consonant(z
);
967 if (ret
== 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 304 */
968 if (ret
< 0) return ret
;
973 static int r_mark_yken(struct SN_env
* z
) {
974 if (!(eq_s_b(z
, 3, s_15
))) return 0;
975 { int ret
= r_mark_suffix_with_optional_y_consonant(z
);
976 if (ret
== 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 308 */
977 if (ret
< 0) return ret
;
982 static int r_stem_nominal_verb_suffixes(struct SN_env
* z
) {
983 z
->ket
= z
->c
; /* [, line 312 */
984 z
->B
[0] = 1; /* set continue_stemming_noun_suffixes, line 313 */
985 { int m1
= z
->l
- z
->c
; (void)m1
; /* or, line 315 */
986 { int m2
= z
->l
- z
->c
; (void)m2
; /* or, line 314 */
987 { int ret
= r_mark_ymUs_(z
);
988 if (ret
== 0) goto lab3
; /* call mark_ymUs_, line 314 */
989 if (ret
< 0) return ret
;
994 { int ret
= r_mark_yDU(z
);
995 if (ret
== 0) goto lab4
; /* call mark_yDU, line 314 */
996 if (ret
< 0) return ret
;
1001 { int ret
= r_mark_ysA(z
);
1002 if (ret
== 0) goto lab5
; /* call mark_ysA, line 314 */
1003 if (ret
< 0) return ret
;
1008 { int ret
= r_mark_yken(z
);
1009 if (ret
== 0) goto lab1
; /* call mark_yken, line 314 */
1010 if (ret
< 0) return ret
;
1017 { int ret
= r_mark_cAsInA(z
);
1018 if (ret
== 0) goto lab6
; /* call mark_cAsInA, line 316 */
1019 if (ret
< 0) return ret
;
1021 { int m3
= z
->l
- z
->c
; (void)m3
; /* or, line 316 */
1022 { int ret
= r_mark_sUnUz(z
);
1023 if (ret
== 0) goto lab8
; /* call mark_sUnUz, line 316 */
1024 if (ret
< 0) return ret
;
1029 { int ret
= r_mark_lAr(z
);
1030 if (ret
== 0) goto lab9
; /* call mark_lAr, line 316 */
1031 if (ret
< 0) return ret
;
1036 { int ret
= r_mark_yUm(z
);
1037 if (ret
== 0) goto lab10
; /* call mark_yUm, line 316 */
1038 if (ret
< 0) return ret
;
1043 { int ret
= r_mark_sUn(z
);
1044 if (ret
== 0) goto lab11
; /* call mark_sUn, line 316 */
1045 if (ret
< 0) return ret
;
1050 { int ret
= r_mark_yUz(z
);
1051 if (ret
== 0) goto lab12
; /* call mark_yUz, line 316 */
1052 if (ret
< 0) return ret
;
1059 { int ret
= r_mark_ymUs_(z
);
1060 if (ret
== 0) goto lab6
; /* call mark_ymUs_, line 316 */
1061 if (ret
< 0) return ret
;
1066 { int ret
= r_mark_lAr(z
);
1067 if (ret
== 0) goto lab13
; /* call mark_lAr, line 319 */
1068 if (ret
< 0) return ret
;
1070 z
->bra
= z
->c
; /* ], line 319 */
1071 { int ret
= slice_del(z
); /* delete, line 319 */
1072 if (ret
< 0) return ret
;
1074 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 319 */
1075 z
->ket
= z
->c
; /* [, line 319 */
1076 { int m4
= z
->l
- z
->c
; (void)m4
; /* or, line 319 */
1077 { int ret
= r_mark_DUr(z
);
1078 if (ret
== 0) goto lab16
; /* call mark_DUr, line 319 */
1079 if (ret
< 0) return ret
;
1084 { int ret
= r_mark_yDU(z
);
1085 if (ret
== 0) goto lab17
; /* call mark_yDU, line 319 */
1086 if (ret
< 0) return ret
;
1091 { int ret
= r_mark_ysA(z
);
1092 if (ret
== 0) goto lab18
; /* call mark_ysA, line 319 */
1093 if (ret
< 0) return ret
;
1098 { int ret
= r_mark_ymUs_(z
);
1099 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab14
; } /* call mark_ymUs_, line 319 */
1100 if (ret
< 0) return ret
;
1107 z
->B
[0] = 0; /* unset continue_stemming_noun_suffixes, line 320 */
1111 { int ret
= r_mark_nUz(z
);
1112 if (ret
== 0) goto lab19
; /* call mark_nUz, line 323 */
1113 if (ret
< 0) return ret
;
1115 { int m5
= z
->l
- z
->c
; (void)m5
; /* or, line 323 */
1116 { int ret
= r_mark_yDU(z
);
1117 if (ret
== 0) goto lab21
; /* call mark_yDU, line 323 */
1118 if (ret
< 0) return ret
;
1123 { int ret
= r_mark_ysA(z
);
1124 if (ret
== 0) goto lab19
; /* call mark_ysA, line 323 */
1125 if (ret
< 0) return ret
;
1132 { int m6
= z
->l
- z
->c
; (void)m6
; /* or, line 325 */
1133 { int ret
= r_mark_sUnUz(z
);
1134 if (ret
== 0) goto lab24
; /* call mark_sUnUz, line 325 */
1135 if (ret
< 0) return ret
;
1140 { int ret
= r_mark_yUz(z
);
1141 if (ret
== 0) goto lab25
; /* call mark_yUz, line 325 */
1142 if (ret
< 0) return ret
;
1147 { int ret
= r_mark_sUn(z
);
1148 if (ret
== 0) goto lab26
; /* call mark_sUn, line 325 */
1149 if (ret
< 0) return ret
;
1154 { int ret
= r_mark_yUm(z
);
1155 if (ret
== 0) goto lab22
; /* call mark_yUm, line 325 */
1156 if (ret
< 0) return ret
;
1160 z
->bra
= z
->c
; /* ], line 325 */
1161 { int ret
= slice_del(z
); /* delete, line 325 */
1162 if (ret
< 0) return ret
;
1164 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 325 */
1165 z
->ket
= z
->c
; /* [, line 325 */
1166 { int ret
= r_mark_ymUs_(z
);
1167 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab27
; } /* call mark_ymUs_, line 325 */
1168 if (ret
< 0) return ret
;
1176 { int ret
= r_mark_DUr(z
);
1177 if (ret
== 0) return 0; /* call mark_DUr, line 327 */
1178 if (ret
< 0) return ret
;
1180 z
->bra
= z
->c
; /* ], line 327 */
1181 { int ret
= slice_del(z
); /* delete, line 327 */
1182 if (ret
< 0) return ret
;
1184 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 327 */
1185 z
->ket
= z
->c
; /* [, line 327 */
1186 { int m7
= z
->l
- z
->c
; (void)m7
; /* or, line 327 */
1187 { int ret
= r_mark_sUnUz(z
);
1188 if (ret
== 0) goto lab30
; /* call mark_sUnUz, line 327 */
1189 if (ret
< 0) return ret
;
1194 { int ret
= r_mark_lAr(z
);
1195 if (ret
== 0) goto lab31
; /* call mark_lAr, line 327 */
1196 if (ret
< 0) return ret
;
1201 { int ret
= r_mark_yUm(z
);
1202 if (ret
== 0) goto lab32
; /* call mark_yUm, line 327 */
1203 if (ret
< 0) return ret
;
1208 { int ret
= r_mark_sUn(z
);
1209 if (ret
== 0) goto lab33
; /* call mark_sUn, line 327 */
1210 if (ret
< 0) return ret
;
1215 { int ret
= r_mark_yUz(z
);
1216 if (ret
== 0) goto lab34
; /* call mark_yUz, line 327 */
1217 if (ret
< 0) return ret
;
1224 { int ret
= r_mark_ymUs_(z
);
1225 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab28
; } /* call mark_ymUs_, line 327 */
1226 if (ret
< 0) return ret
;
1233 z
->bra
= z
->c
; /* ], line 328 */
1234 { int ret
= slice_del(z
); /* delete, line 328 */
1235 if (ret
< 0) return ret
;
1240 static int r_stem_suffix_chain_before_ki(struct SN_env
* z
) {
1241 z
->ket
= z
->c
; /* [, line 333 */
1242 { int ret
= r_mark_ki(z
);
1243 if (ret
== 0) return 0; /* call mark_ki, line 334 */
1244 if (ret
< 0) return ret
;
1246 { int m1
= z
->l
- z
->c
; (void)m1
; /* or, line 342 */
1247 { int ret
= r_mark_DA(z
);
1248 if (ret
== 0) goto lab1
; /* call mark_DA, line 336 */
1249 if (ret
< 0) return ret
;
1251 z
->bra
= z
->c
; /* ], line 336 */
1252 { int ret
= slice_del(z
); /* delete, line 336 */
1253 if (ret
< 0) return ret
;
1255 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 336 */
1256 z
->ket
= z
->c
; /* [, line 336 */
1257 { int m2
= z
->l
- z
->c
; (void)m2
; /* or, line 338 */
1258 { int ret
= r_mark_lAr(z
);
1259 if (ret
== 0) goto lab4
; /* call mark_lAr, line 337 */
1260 if (ret
< 0) return ret
;
1262 z
->bra
= z
->c
; /* ], line 337 */
1263 { int ret
= slice_del(z
); /* delete, line 337 */
1264 if (ret
< 0) return ret
;
1266 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 337 */
1267 { int ret
= r_stem_suffix_chain_before_ki(z
);
1268 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab5
; } /* call stem_suffix_chain_before_ki, line 337 */
1269 if (ret
< 0) return ret
;
1277 { int ret
= r_mark_possessives(z
);
1278 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab2
; } /* call mark_possessives, line 339 */
1279 if (ret
< 0) return ret
;
1281 z
->bra
= z
->c
; /* ], line 339 */
1282 { int ret
= slice_del(z
); /* delete, line 339 */
1283 if (ret
< 0) return ret
;
1285 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 339 */
1286 z
->ket
= z
->c
; /* [, line 339 */
1287 { int ret
= r_mark_lAr(z
);
1288 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab6
; } /* call mark_lAr, line 339 */
1289 if (ret
< 0) return ret
;
1291 z
->bra
= z
->c
; /* ], line 339 */
1292 { int ret
= slice_del(z
); /* delete, line 339 */
1293 if (ret
< 0) return ret
;
1295 { int ret
= r_stem_suffix_chain_before_ki(z
);
1296 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab6
; } /* call stem_suffix_chain_before_ki, line 339 */
1297 if (ret
< 0) return ret
;
1310 { int ret
= r_mark_nUn(z
);
1311 if (ret
== 0) goto lab7
; /* call mark_nUn, line 343 */
1312 if (ret
< 0) return ret
;
1314 z
->bra
= z
->c
; /* ], line 343 */
1315 { int ret
= slice_del(z
); /* delete, line 343 */
1316 if (ret
< 0) return ret
;
1318 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 343 */
1319 z
->ket
= z
->c
; /* [, line 343 */
1320 { int m3
= z
->l
- z
->c
; (void)m3
; /* or, line 345 */
1321 { int ret
= r_mark_lArI(z
);
1322 if (ret
== 0) goto lab10
; /* call mark_lArI, line 344 */
1323 if (ret
< 0) return ret
;
1325 z
->bra
= z
->c
; /* ], line 344 */
1326 { int ret
= slice_del(z
); /* delete, line 344 */
1327 if (ret
< 0) return ret
;
1332 z
->ket
= z
->c
; /* [, line 346 */
1333 { int m4
= z
->l
- z
->c
; (void)m4
; /* or, line 346 */
1334 { int ret
= r_mark_possessives(z
);
1335 if (ret
== 0) goto lab13
; /* call mark_possessives, line 346 */
1336 if (ret
< 0) return ret
;
1341 { int ret
= r_mark_sU(z
);
1342 if (ret
== 0) goto lab11
; /* call mark_sU, line 346 */
1343 if (ret
< 0) return ret
;
1347 z
->bra
= z
->c
; /* ], line 346 */
1348 { int ret
= slice_del(z
); /* delete, line 346 */
1349 if (ret
< 0) return ret
;
1351 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 346 */
1352 z
->ket
= z
->c
; /* [, line 346 */
1353 { int ret
= r_mark_lAr(z
);
1354 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab14
; } /* call mark_lAr, line 346 */
1355 if (ret
< 0) return ret
;
1357 z
->bra
= z
->c
; /* ], line 346 */
1358 { int ret
= slice_del(z
); /* delete, line 346 */
1359 if (ret
< 0) return ret
;
1361 { int ret
= r_stem_suffix_chain_before_ki(z
);
1362 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab14
; } /* call stem_suffix_chain_before_ki, line 346 */
1363 if (ret
< 0) return ret
;
1371 { int ret
= r_stem_suffix_chain_before_ki(z
);
1372 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab8
; } /* call stem_suffix_chain_before_ki, line 348 */
1373 if (ret
< 0) return ret
;
1383 { int ret
= r_mark_ndA(z
);
1384 if (ret
== 0) return 0; /* call mark_ndA, line 351 */
1385 if (ret
< 0) return ret
;
1387 { int m5
= z
->l
- z
->c
; (void)m5
; /* or, line 353 */
1388 { int ret
= r_mark_lArI(z
);
1389 if (ret
== 0) goto lab16
; /* call mark_lArI, line 352 */
1390 if (ret
< 0) return ret
;
1392 z
->bra
= z
->c
; /* ], line 352 */
1393 { int ret
= slice_del(z
); /* delete, line 352 */
1394 if (ret
< 0) return ret
;
1399 { int ret
= r_mark_sU(z
);
1400 if (ret
== 0) goto lab17
; /* call mark_sU, line 354 */
1401 if (ret
< 0) return ret
;
1403 z
->bra
= z
->c
; /* ], line 354 */
1404 { int ret
= slice_del(z
); /* delete, line 354 */
1405 if (ret
< 0) return ret
;
1407 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 354 */
1408 z
->ket
= z
->c
; /* [, line 354 */
1409 { int ret
= r_mark_lAr(z
);
1410 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab18
; } /* call mark_lAr, line 354 */
1411 if (ret
< 0) return ret
;
1413 z
->bra
= z
->c
; /* ], line 354 */
1414 { int ret
= slice_del(z
); /* delete, line 354 */
1415 if (ret
< 0) return ret
;
1417 { int ret
= r_stem_suffix_chain_before_ki(z
);
1418 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab18
; } /* call stem_suffix_chain_before_ki, line 354 */
1419 if (ret
< 0) return ret
;
1427 { int ret
= r_stem_suffix_chain_before_ki(z
);
1428 if (ret
== 0) return 0; /* call stem_suffix_chain_before_ki, line 356 */
1429 if (ret
< 0) return ret
;
1439 static int r_stem_noun_suffixes(struct SN_env
* z
) {
1440 { int m1
= z
->l
- z
->c
; (void)m1
; /* or, line 363 */
1441 z
->ket
= z
->c
; /* [, line 362 */
1442 { int ret
= r_mark_lAr(z
);
1443 if (ret
== 0) goto lab1
; /* call mark_lAr, line 362 */
1444 if (ret
< 0) return ret
;
1446 z
->bra
= z
->c
; /* ], line 362 */
1447 { int ret
= slice_del(z
); /* delete, line 362 */
1448 if (ret
< 0) return ret
;
1450 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 362 */
1451 { int ret
= r_stem_suffix_chain_before_ki(z
);
1452 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab2
; } /* call stem_suffix_chain_before_ki, line 362 */
1453 if (ret
< 0) return ret
;
1461 z
->ket
= z
->c
; /* [, line 364 */
1462 { int ret
= r_mark_ncA(z
);
1463 if (ret
== 0) goto lab3
; /* call mark_ncA, line 364 */
1464 if (ret
< 0) return ret
;
1466 z
->bra
= z
->c
; /* ], line 364 */
1467 { int ret
= slice_del(z
); /* delete, line 364 */
1468 if (ret
< 0) return ret
;
1470 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 365 */
1471 { int m2
= z
->l
- z
->c
; (void)m2
; /* or, line 367 */
1472 z
->ket
= z
->c
; /* [, line 366 */
1473 { int ret
= r_mark_lArI(z
);
1474 if (ret
== 0) goto lab6
; /* call mark_lArI, line 366 */
1475 if (ret
< 0) return ret
;
1477 z
->bra
= z
->c
; /* ], line 366 */
1478 { int ret
= slice_del(z
); /* delete, line 366 */
1479 if (ret
< 0) return ret
;
1484 z
->ket
= z
->c
; /* [, line 368 */
1485 { int m3
= z
->l
- z
->c
; (void)m3
; /* or, line 368 */
1486 { int ret
= r_mark_possessives(z
);
1487 if (ret
== 0) goto lab9
; /* call mark_possessives, line 368 */
1488 if (ret
< 0) return ret
;
1493 { int ret
= r_mark_sU(z
);
1494 if (ret
== 0) goto lab7
; /* call mark_sU, line 368 */
1495 if (ret
< 0) return ret
;
1499 z
->bra
= z
->c
; /* ], line 368 */
1500 { int ret
= slice_del(z
); /* delete, line 368 */
1501 if (ret
< 0) return ret
;
1503 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 368 */
1504 z
->ket
= z
->c
; /* [, line 368 */
1505 { int ret
= r_mark_lAr(z
);
1506 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab10
; } /* call mark_lAr, line 368 */
1507 if (ret
< 0) return ret
;
1509 z
->bra
= z
->c
; /* ], line 368 */
1510 { int ret
= slice_del(z
); /* delete, line 368 */
1511 if (ret
< 0) return ret
;
1513 { int ret
= r_stem_suffix_chain_before_ki(z
);
1514 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab10
; } /* call stem_suffix_chain_before_ki, line 368 */
1515 if (ret
< 0) return ret
;
1523 z
->ket
= z
->c
; /* [, line 370 */
1524 { int ret
= r_mark_lAr(z
);
1525 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab4
; } /* call mark_lAr, line 370 */
1526 if (ret
< 0) return ret
;
1528 z
->bra
= z
->c
; /* ], line 370 */
1529 { int ret
= slice_del(z
); /* delete, line 370 */
1530 if (ret
< 0) return ret
;
1532 { int ret
= r_stem_suffix_chain_before_ki(z
);
1533 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab4
; } /* call stem_suffix_chain_before_ki, line 370 */
1534 if (ret
< 0) return ret
;
1544 z
->ket
= z
->c
; /* [, line 374 */
1545 { int m4
= z
->l
- z
->c
; (void)m4
; /* or, line 374 */
1546 { int ret
= r_mark_ndA(z
);
1547 if (ret
== 0) goto lab13
; /* call mark_ndA, line 374 */
1548 if (ret
< 0) return ret
;
1553 { int ret
= r_mark_nA(z
);
1554 if (ret
== 0) goto lab11
; /* call mark_nA, line 374 */
1555 if (ret
< 0) return ret
;
1559 { int m5
= z
->l
- z
->c
; (void)m5
; /* or, line 377 */
1560 { int ret
= r_mark_lArI(z
);
1561 if (ret
== 0) goto lab15
; /* call mark_lArI, line 376 */
1562 if (ret
< 0) return ret
;
1564 z
->bra
= z
->c
; /* ], line 376 */
1565 { int ret
= slice_del(z
); /* delete, line 376 */
1566 if (ret
< 0) return ret
;
1571 { int ret
= r_mark_sU(z
);
1572 if (ret
== 0) goto lab16
; /* call mark_sU, line 378 */
1573 if (ret
< 0) return ret
;
1575 z
->bra
= z
->c
; /* ], line 378 */
1576 { int ret
= slice_del(z
); /* delete, line 378 */
1577 if (ret
< 0) return ret
;
1579 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 378 */
1580 z
->ket
= z
->c
; /* [, line 378 */
1581 { int ret
= r_mark_lAr(z
);
1582 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab17
; } /* call mark_lAr, line 378 */
1583 if (ret
< 0) return ret
;
1585 z
->bra
= z
->c
; /* ], line 378 */
1586 { int ret
= slice_del(z
); /* delete, line 378 */
1587 if (ret
< 0) return ret
;
1589 { int ret
= r_stem_suffix_chain_before_ki(z
);
1590 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab17
; } /* call stem_suffix_chain_before_ki, line 378 */
1591 if (ret
< 0) return ret
;
1599 { int ret
= r_stem_suffix_chain_before_ki(z
);
1600 if (ret
== 0) goto lab11
; /* call stem_suffix_chain_before_ki, line 380 */
1601 if (ret
< 0) return ret
;
1608 z
->ket
= z
->c
; /* [, line 384 */
1609 { int m6
= z
->l
- z
->c
; (void)m6
; /* or, line 384 */
1610 { int ret
= r_mark_ndAn(z
);
1611 if (ret
== 0) goto lab20
; /* call mark_ndAn, line 384 */
1612 if (ret
< 0) return ret
;
1617 { int ret
= r_mark_nU(z
);
1618 if (ret
== 0) goto lab18
; /* call mark_nU, line 384 */
1619 if (ret
< 0) return ret
;
1623 { int m7
= z
->l
- z
->c
; (void)m7
; /* or, line 384 */
1624 { int ret
= r_mark_sU(z
);
1625 if (ret
== 0) goto lab22
; /* call mark_sU, line 384 */
1626 if (ret
< 0) return ret
;
1628 z
->bra
= z
->c
; /* ], line 384 */
1629 { int ret
= slice_del(z
); /* delete, line 384 */
1630 if (ret
< 0) return ret
;
1632 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 384 */
1633 z
->ket
= z
->c
; /* [, line 384 */
1634 { int ret
= r_mark_lAr(z
);
1635 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab23
; } /* call mark_lAr, line 384 */
1636 if (ret
< 0) return ret
;
1638 z
->bra
= z
->c
; /* ], line 384 */
1639 { int ret
= slice_del(z
); /* delete, line 384 */
1640 if (ret
< 0) return ret
;
1642 { int ret
= r_stem_suffix_chain_before_ki(z
);
1643 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab23
; } /* call stem_suffix_chain_before_ki, line 384 */
1644 if (ret
< 0) return ret
;
1652 { int ret
= r_mark_lArI(z
);
1653 if (ret
== 0) goto lab18
; /* call mark_lArI, line 384 */
1654 if (ret
< 0) return ret
;
1661 z
->ket
= z
->c
; /* [, line 386 */
1662 { int ret
= r_mark_DAn(z
);
1663 if (ret
== 0) goto lab24
; /* call mark_DAn, line 386 */
1664 if (ret
< 0) return ret
;
1666 z
->bra
= z
->c
; /* ], line 386 */
1667 { int ret
= slice_del(z
); /* delete, line 386 */
1668 if (ret
< 0) return ret
;
1670 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 386 */
1671 z
->ket
= z
->c
; /* [, line 386 */
1672 { int m8
= z
->l
- z
->c
; (void)m8
; /* or, line 389 */
1673 { int ret
= r_mark_possessives(z
);
1674 if (ret
== 0) goto lab27
; /* call mark_possessives, line 388 */
1675 if (ret
< 0) return ret
;
1677 z
->bra
= z
->c
; /* ], line 388 */
1678 { int ret
= slice_del(z
); /* delete, line 388 */
1679 if (ret
< 0) return ret
;
1681 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 388 */
1682 z
->ket
= z
->c
; /* [, line 388 */
1683 { int ret
= r_mark_lAr(z
);
1684 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab28
; } /* call mark_lAr, line 388 */
1685 if (ret
< 0) return ret
;
1687 z
->bra
= z
->c
; /* ], line 388 */
1688 { int ret
= slice_del(z
); /* delete, line 388 */
1689 if (ret
< 0) return ret
;
1691 { int ret
= r_stem_suffix_chain_before_ki(z
);
1692 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab28
; } /* call stem_suffix_chain_before_ki, line 388 */
1693 if (ret
< 0) return ret
;
1701 { int ret
= r_mark_lAr(z
);
1702 if (ret
== 0) goto lab29
; /* call mark_lAr, line 390 */
1703 if (ret
< 0) return ret
;
1705 z
->bra
= z
->c
; /* ], line 390 */
1706 { int ret
= slice_del(z
); /* delete, line 390 */
1707 if (ret
< 0) return ret
;
1709 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 390 */
1710 { int ret
= r_stem_suffix_chain_before_ki(z
);
1711 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab30
; } /* call stem_suffix_chain_before_ki, line 390 */
1712 if (ret
< 0) return ret
;
1720 { int ret
= r_stem_suffix_chain_before_ki(z
);
1721 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab25
; } /* call stem_suffix_chain_before_ki, line 392 */
1722 if (ret
< 0) return ret
;
1732 z
->ket
= z
->c
; /* [, line 396 */
1733 { int m9
= z
->l
- z
->c
; (void)m9
; /* or, line 396 */
1734 { int ret
= r_mark_nUn(z
);
1735 if (ret
== 0) goto lab33
; /* call mark_nUn, line 396 */
1736 if (ret
< 0) return ret
;
1741 { int ret
= r_mark_ylA(z
);
1742 if (ret
== 0) goto lab31
; /* call mark_ylA, line 396 */
1743 if (ret
< 0) return ret
;
1747 z
->bra
= z
->c
; /* ], line 396 */
1748 { int ret
= slice_del(z
); /* delete, line 396 */
1749 if (ret
< 0) return ret
;
1751 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 397 */
1752 { int m10
= z
->l
- z
->c
; (void)m10
; /* or, line 399 */
1753 z
->ket
= z
->c
; /* [, line 398 */
1754 { int ret
= r_mark_lAr(z
);
1755 if (ret
== 0) goto lab36
; /* call mark_lAr, line 398 */
1756 if (ret
< 0) return ret
;
1758 z
->bra
= z
->c
; /* ], line 398 */
1759 { int ret
= slice_del(z
); /* delete, line 398 */
1760 if (ret
< 0) return ret
;
1762 { int ret
= r_stem_suffix_chain_before_ki(z
);
1763 if (ret
== 0) goto lab36
; /* call stem_suffix_chain_before_ki, line 398 */
1764 if (ret
< 0) return ret
;
1769 z
->ket
= z
->c
; /* [, line 400 */
1770 { int m11
= z
->l
- z
->c
; (void)m11
; /* or, line 400 */
1771 { int ret
= r_mark_possessives(z
);
1772 if (ret
== 0) goto lab39
; /* call mark_possessives, line 400 */
1773 if (ret
< 0) return ret
;
1778 { int ret
= r_mark_sU(z
);
1779 if (ret
== 0) goto lab37
; /* call mark_sU, line 400 */
1780 if (ret
< 0) return ret
;
1784 z
->bra
= z
->c
; /* ], line 400 */
1785 { int ret
= slice_del(z
); /* delete, line 400 */
1786 if (ret
< 0) return ret
;
1788 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 400 */
1789 z
->ket
= z
->c
; /* [, line 400 */
1790 { int ret
= r_mark_lAr(z
);
1791 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab40
; } /* call mark_lAr, line 400 */
1792 if (ret
< 0) return ret
;
1794 z
->bra
= z
->c
; /* ], line 400 */
1795 { int ret
= slice_del(z
); /* delete, line 400 */
1796 if (ret
< 0) return ret
;
1798 { int ret
= r_stem_suffix_chain_before_ki(z
);
1799 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab40
; } /* call stem_suffix_chain_before_ki, line 400 */
1800 if (ret
< 0) return ret
;
1808 { int ret
= r_stem_suffix_chain_before_ki(z
);
1809 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab34
; } /* call stem_suffix_chain_before_ki, line 402 */
1810 if (ret
< 0) return ret
;
1820 z
->ket
= z
->c
; /* [, line 406 */
1821 { int ret
= r_mark_lArI(z
);
1822 if (ret
== 0) goto lab41
; /* call mark_lArI, line 406 */
1823 if (ret
< 0) return ret
;
1825 z
->bra
= z
->c
; /* ], line 406 */
1826 { int ret
= slice_del(z
); /* delete, line 406 */
1827 if (ret
< 0) return ret
;
1832 { int ret
= r_stem_suffix_chain_before_ki(z
);
1833 if (ret
== 0) goto lab42
; /* call stem_suffix_chain_before_ki, line 408 */
1834 if (ret
< 0) return ret
;
1839 z
->ket
= z
->c
; /* [, line 410 */
1840 { int m12
= z
->l
- z
->c
; (void)m12
; /* or, line 410 */
1841 { int ret
= r_mark_DA(z
);
1842 if (ret
== 0) goto lab45
; /* call mark_DA, line 410 */
1843 if (ret
< 0) return ret
;
1848 { int ret
= r_mark_yU(z
);
1849 if (ret
== 0) goto lab46
; /* call mark_yU, line 410 */
1850 if (ret
< 0) return ret
;
1855 { int ret
= r_mark_yA(z
);
1856 if (ret
== 0) goto lab43
; /* call mark_yA, line 410 */
1857 if (ret
< 0) return ret
;
1861 z
->bra
= z
->c
; /* ], line 410 */
1862 { int ret
= slice_del(z
); /* delete, line 410 */
1863 if (ret
< 0) return ret
;
1865 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 410 */
1866 z
->ket
= z
->c
; /* [, line 410 */
1867 { int m13
= z
->l
- z
->c
; (void)m13
; /* or, line 410 */
1868 { int ret
= r_mark_possessives(z
);
1869 if (ret
== 0) goto lab49
; /* call mark_possessives, line 410 */
1870 if (ret
< 0) return ret
;
1872 z
->bra
= z
->c
; /* ], line 410 */
1873 { int ret
= slice_del(z
); /* delete, line 410 */
1874 if (ret
< 0) return ret
;
1876 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 410 */
1877 z
->ket
= z
->c
; /* [, line 410 */
1878 { int ret
= r_mark_lAr(z
);
1879 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab50
; } /* call mark_lAr, line 410 */
1880 if (ret
< 0) return ret
;
1888 { int ret
= r_mark_lAr(z
);
1889 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab47
; } /* call mark_lAr, line 410 */
1890 if (ret
< 0) return ret
;
1894 z
->bra
= z
->c
; /* ], line 410 */
1895 { int ret
= slice_del(z
); /* delete, line 410 */
1896 if (ret
< 0) return ret
;
1898 z
->ket
= z
->c
; /* [, line 410 */
1899 { int ret
= r_stem_suffix_chain_before_ki(z
);
1900 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab47
; } /* call stem_suffix_chain_before_ki, line 410 */
1901 if (ret
< 0) return ret
;
1909 z
->ket
= z
->c
; /* [, line 412 */
1910 { int m14
= z
->l
- z
->c
; (void)m14
; /* or, line 412 */
1911 { int ret
= r_mark_possessives(z
);
1912 if (ret
== 0) goto lab52
; /* call mark_possessives, line 412 */
1913 if (ret
< 0) return ret
;
1918 { int ret
= r_mark_sU(z
);
1919 if (ret
== 0) return 0; /* call mark_sU, line 412 */
1920 if (ret
< 0) return ret
;
1924 z
->bra
= z
->c
; /* ], line 412 */
1925 { int ret
= slice_del(z
); /* delete, line 412 */
1926 if (ret
< 0) return ret
;
1928 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 412 */
1929 z
->ket
= z
->c
; /* [, line 412 */
1930 { int ret
= r_mark_lAr(z
);
1931 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab53
; } /* call mark_lAr, line 412 */
1932 if (ret
< 0) return ret
;
1934 z
->bra
= z
->c
; /* ], line 412 */
1935 { int ret
= slice_del(z
); /* delete, line 412 */
1936 if (ret
< 0) return ret
;
1938 { int ret
= r_stem_suffix_chain_before_ki(z
);
1939 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab53
; } /* call stem_suffix_chain_before_ki, line 412 */
1940 if (ret
< 0) return ret
;
1950 static int r_post_process_last_consonants(struct SN_env
* z
) {
1952 z
->ket
= z
->c
; /* [, line 416 */
1953 among_var
= find_among_b(z
, a_23
, 4); /* substring, line 416 */
1954 if (!(among_var
)) return 0;
1955 z
->bra
= z
->c
; /* ], line 416 */
1959 { int ret
= slice_from_s(z
, 1, s_16
); /* <-, line 417 */
1960 if (ret
< 0) return ret
;
1964 { int ret
= slice_from_s(z
, 2, s_17
); /* <-, line 418 */
1965 if (ret
< 0) return ret
;
1969 { int ret
= slice_from_s(z
, 1, s_18
); /* <-, line 419 */
1970 if (ret
< 0) return ret
;
1974 { int ret
= slice_from_s(z
, 1, s_19
); /* <-, line 420 */
1975 if (ret
< 0) return ret
;
1982 static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env
* z
) {
1983 { int m_test
= z
->l
- z
->c
; /* test, line 431 */
1984 { int m1
= z
->l
- z
->c
; (void)m1
; /* or, line 431 */
1985 if (!(eq_s_b(z
, 1, s_20
))) goto lab1
;
1989 if (!(eq_s_b(z
, 1, s_21
))) return 0;
1992 z
->c
= z
->l
- m_test
;
1994 { int m2
= z
->l
- z
->c
; (void)m2
; /* or, line 433 */
1995 { int m_test
= z
->l
- z
->c
; /* test, line 432 */
1996 if (out_grouping_b_U(z
, g_vowel
, 97, 305, 1) < 0) goto lab3
; /* goto */ /* grouping vowel, line 432 */
1997 { int m3
= z
->l
- z
->c
; (void)m3
; /* or, line 432 */
1998 if (!(eq_s_b(z
, 1, s_22
))) goto lab5
;
2002 if (!(eq_s_b(z
, 2, s_23
))) goto lab3
;
2005 z
->c
= z
->l
- m_test
;
2007 { int c_keep
= z
->c
;
2008 int ret
= insert_s(z
, z
->c
, z
->c
, 2, s_24
); /* <+, line 432 */
2010 if (ret
< 0) return ret
;
2015 { int m_test
= z
->l
- z
->c
; /* test, line 434 */
2016 if (out_grouping_b_U(z
, g_vowel
, 97, 305, 1) < 0) goto lab6
; /* goto */ /* grouping vowel, line 434 */
2017 { int m4
= z
->l
- z
->c
; (void)m4
; /* or, line 434 */
2018 if (!(eq_s_b(z
, 1, s_25
))) goto lab8
;
2022 if (!(eq_s_b(z
, 1, s_26
))) goto lab6
;
2025 z
->c
= z
->l
- m_test
;
2027 { int c_keep
= z
->c
;
2028 int ret
= insert_s(z
, z
->c
, z
->c
, 1, s_27
); /* <+, line 434 */
2030 if (ret
< 0) return ret
;
2035 { int m_test
= z
->l
- z
->c
; /* test, line 436 */
2036 if (out_grouping_b_U(z
, g_vowel
, 97, 305, 1) < 0) goto lab9
; /* goto */ /* grouping vowel, line 436 */
2037 { int m5
= z
->l
- z
->c
; (void)m5
; /* or, line 436 */
2038 if (!(eq_s_b(z
, 1, s_28
))) goto lab11
;
2042 if (!(eq_s_b(z
, 1, s_29
))) goto lab9
;
2045 z
->c
= z
->l
- m_test
;
2047 { int c_keep
= z
->c
;
2048 int ret
= insert_s(z
, z
->c
, z
->c
, 1, s_30
); /* <+, line 436 */
2050 if (ret
< 0) return ret
;
2055 { int m_test
= z
->l
- z
->c
; /* test, line 438 */
2056 if (out_grouping_b_U(z
, g_vowel
, 97, 305, 1) < 0) return 0; /* goto */ /* grouping vowel, line 438 */
2057 { int m6
= z
->l
- z
->c
; (void)m6
; /* or, line 438 */
2058 if (!(eq_s_b(z
, 2, s_31
))) goto lab13
;
2062 if (!(eq_s_b(z
, 2, s_32
))) return 0;
2065 z
->c
= z
->l
- m_test
;
2067 { int c_keep
= z
->c
;
2068 int ret
= insert_s(z
, z
->c
, z
->c
, 2, s_33
); /* <+, line 438 */
2070 if (ret
< 0) return ret
;
2077 static int r_more_than_one_syllable_word(struct SN_env
* z
) {
2078 { int c_test
= z
->c
; /* test, line 446 */
2080 while(1) { /* atleast, line 446 */
2082 { /* gopast */ /* grouping vowel, line 446 */
2083 int ret
= out_grouping_U(z
, g_vowel
, 97, 305, 1);
2084 if (ret
< 0) goto lab0
;
2093 if (i
> 0) return 0;
2100 static int r_is_reserved_word(struct SN_env
* z
) {
2101 { int c1
= z
->c
; /* or, line 451 */
2102 { int c_test
= z
->c
; /* test, line 450 */
2103 while(1) { /* gopast, line 450 */
2104 if (!(eq_s(z
, 2, s_34
))) goto lab2
;
2107 { int ret
= skip_utf8(z
->p
, z
->c
, 0, z
->l
, 1);
2108 if (ret
< 0) goto lab1
;
2109 z
->c
= ret
; /* gopast, line 450 */
2113 if (!(z
->I
[0] == z
->l
)) goto lab1
;
2119 { int c_test
= z
->c
; /* test, line 452 */
2120 while(1) { /* gopast, line 452 */
2121 if (!(eq_s(z
, 5, s_35
))) goto lab3
;
2124 { int ret
= skip_utf8(z
->p
, z
->c
, 0, z
->l
, 1);
2125 if (ret
< 0) return 0;
2126 z
->c
= ret
; /* gopast, line 452 */
2130 if (!(z
->I
[0] == z
->l
)) return 0;
2138 static int r_postlude(struct SN_env
* z
) {
2139 { int c1
= z
->c
; /* not, line 456 */
2140 { int ret
= r_is_reserved_word(z
);
2141 if (ret
== 0) goto lab0
; /* call is_reserved_word, line 456 */
2142 if (ret
< 0) return ret
;
2148 z
->lb
= z
->c
; z
->c
= z
->l
; /* backwards, line 457 */
2150 { int m2
= z
->l
- z
->c
; (void)m2
; /* do, line 458 */
2151 { int ret
= r_append_U_to_stems_ending_with_d_or_g(z
);
2152 if (ret
== 0) goto lab1
; /* call append_U_to_stems_ending_with_d_or_g, line 458 */
2153 if (ret
< 0) return ret
;
2158 { int m3
= z
->l
- z
->c
; (void)m3
; /* do, line 459 */
2159 { int ret
= r_post_process_last_consonants(z
);
2160 if (ret
== 0) goto lab2
; /* call post_process_last_consonants, line 459 */
2161 if (ret
< 0) return ret
;
2170 extern int turkish_UTF_8_stem(struct SN_env
* z
) {
2171 { int ret
= r_more_than_one_syllable_word(z
);
2172 if (ret
== 0) return 0; /* call more_than_one_syllable_word, line 465 */
2173 if (ret
< 0) return ret
;
2175 z
->lb
= z
->c
; z
->c
= z
->l
; /* backwards, line 467 */
2177 { int m1
= z
->l
- z
->c
; (void)m1
; /* do, line 468 */
2178 { int ret
= r_stem_nominal_verb_suffixes(z
);
2179 if (ret
== 0) goto lab0
; /* call stem_nominal_verb_suffixes, line 468 */
2180 if (ret
< 0) return ret
;
2185 if (!(z
->B
[0])) return 0; /* Boolean test continue_stemming_noun_suffixes, line 469 */
2186 { int m2
= z
->l
- z
->c
; (void)m2
; /* do, line 470 */
2187 { int ret
= r_stem_noun_suffixes(z
);
2188 if (ret
== 0) goto lab1
; /* call stem_noun_suffixes, line 470 */
2189 if (ret
< 0) return ret
;
2195 { int ret
= r_postlude(z
);
2196 if (ret
== 0) return 0; /* call postlude, line 473 */
2197 if (ret
< 0) return ret
;
2202 extern struct SN_env
* turkish_UTF_8_create_env(void) { return SN_create_env(0, 1, 1); }
2204 extern void turkish_UTF_8_close_env(struct SN_env
* z
) { SN_close_env(z
, 0); }