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