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