xapian-core  2.0.0
turkish.cc
Go to the documentation of this file.
1 /* Generated from turkish.sbl by Snowball 3.0.0 - https://snowballstem.org/ */
2 
3 #include <config.h>
4 
5 #define SNOWBALL_RUNTIME_THROW_EXCEPTIONS
6 #include "turkish.h"
7 
8 #include <stddef.h>
9 
11 
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_remove_proper_noun_suffix(struct SN_env * z);
16 static int r_postlude(struct SN_env * z);
17 static int r_post_process_last_consonants(struct SN_env * z);
18 static int r_more_than_one_syllable_word(struct SN_env * z);
19 static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z);
20 static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z);
21 static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z);
22 static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z);
23 static int r_mark_ysA(struct SN_env * z);
24 static int r_mark_ymUs_(struct SN_env * z);
25 static int r_mark_yken(struct SN_env * z);
26 static int r_mark_yDU(struct SN_env * z);
27 static int r_mark_yUz(struct SN_env * z);
28 static int r_mark_yUm(struct SN_env * z);
29 static int r_mark_yU(struct SN_env * z);
30 static int r_mark_ylA(struct SN_env * z);
31 static int r_mark_yA(struct SN_env * z);
32 static int r_mark_possessives(struct SN_env * z);
33 static int r_mark_sUnUz(struct SN_env * z);
34 static int r_mark_sUn(struct SN_env * z);
35 static int r_mark_sU(struct SN_env * z);
36 static int r_mark_nUz(struct SN_env * z);
37 static int r_mark_nUn(struct SN_env * z);
38 static int r_mark_nU(struct SN_env * z);
39 static int r_mark_ndAn(struct SN_env * z);
40 static int r_mark_ndA(struct SN_env * z);
41 static int r_mark_ncA(struct SN_env * z);
42 static int r_mark_nA(struct SN_env * z);
43 static int r_mark_lArI(struct SN_env * z);
44 static int r_mark_lAr(struct SN_env * z);
45 static int r_mark_ki(struct SN_env * z);
46 static int r_mark_DUr(struct SN_env * z);
47 static int r_mark_DAn(struct SN_env * z);
48 static int r_mark_DA(struct SN_env * z);
49 static int r_mark_cAsInA(struct SN_env * z);
50 static int r_is_reserved_word(struct SN_env * z);
51 static int r_check_vowel_harmony(struct SN_env * z);
52 static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z);
53 
54 static const symbol s_0[] = { 0xC4, 0xB1 };
55 static const symbol s_1[] = { 0xC3, 0xB6 };
56 static const symbol s_2[] = { 0xC3, 0xBC };
57 static const symbol s_3[] = { 'k', 'i' };
58 static const symbol s_4[] = { 'k', 'e', 'n' };
59 static const symbol s_5[] = { 'p' };
60 static const symbol s_6[] = { 0xC3, 0xA7 };
61 static const symbol s_7[] = { 't' };
62 static const symbol s_8[] = { 'k' };
63 static const symbol s_9[] = { 0xC4, 0xB1 };
64 static const symbol s_10[] = { 0xC4, 0xB1 };
65 static const symbol s_11[] = { 'i' };
66 static const symbol s_12[] = { 'u' };
67 static const symbol s_13[] = { 0xC3, 0xB6 };
68 static const symbol s_14[] = { 0xC3, 0xBC };
69 static const symbol s_15[] = { 0xC3, 0xBC };
70 static const symbol s_16[] = { 'a', 'd' };
71 static const symbol s_17[] = { 's', 'o', 'y' };
72 
73 static const symbol s_0_0[1] = { 'm' };
74 static const symbol s_0_1[1] = { 'n' };
75 static const symbol s_0_2[3] = { 'm', 'i', 'z' };
76 static const symbol s_0_3[3] = { 'n', 'i', 'z' };
77 static const symbol s_0_4[3] = { 'm', 'u', 'z' };
78 static const symbol s_0_5[3] = { 'n', 'u', 'z' };
79 static const symbol s_0_6[4] = { 'm', 0xC4, 0xB1, 'z' };
80 static const symbol s_0_7[4] = { 'n', 0xC4, 0xB1, 'z' };
81 static const symbol s_0_8[4] = { 'm', 0xC3, 0xBC, 'z' };
82 static const symbol s_0_9[4] = { 'n', 0xC3, 0xBC, 'z' };
83 static const struct among a_0[10] = {
84 { 1, s_0_0, 0, -1, 0},
85 { 1, s_0_1, 0, -1, 0},
86 { 3, s_0_2, 0, -1, 0},
87 { 3, s_0_3, 0, -1, 0},
88 { 3, s_0_4, 0, -1, 0},
89 { 3, s_0_5, 0, -1, 0},
90 { 4, s_0_6, 0, -1, 0},
91 { 4, s_0_7, 0, -1, 0},
92 { 4, s_0_8, 0, -1, 0},
93 { 4, s_0_9, 0, -1, 0}
94 };
95 
96 static const symbol s_1_0[4] = { 'l', 'e', 'r', 'i' };
97 static const symbol s_1_1[5] = { 'l', 'a', 'r', 0xC4, 0xB1 };
98 static const struct among a_1[2] = {
99 { 4, s_1_0, 0, -1, 0},
100 { 5, s_1_1, 0, -1, 0}
101 };
102 
103 static const symbol s_2_0[2] = { 'n', 'i' };
104 static const symbol s_2_1[2] = { 'n', 'u' };
105 static const symbol s_2_2[3] = { 'n', 0xC4, 0xB1 };
106 static const symbol s_2_3[3] = { 'n', 0xC3, 0xBC };
107 static const struct among a_2[4] = {
108 { 2, s_2_0, 0, -1, 0},
109 { 2, s_2_1, 0, -1, 0},
110 { 3, s_2_2, 0, -1, 0},
111 { 3, s_2_3, 0, -1, 0}
112 };
113 
114 static const symbol s_3_0[2] = { 'i', 'n' };
115 static const symbol s_3_1[2] = { 'u', 'n' };
116 static const symbol s_3_2[3] = { 0xC4, 0xB1, 'n' };
117 static const symbol s_3_3[3] = { 0xC3, 0xBC, 'n' };
118 static const struct among a_3[4] = {
119 { 2, s_3_0, 0, -1, 0},
120 { 2, s_3_1, 0, -1, 0},
121 { 3, s_3_2, 0, -1, 0},
122 { 3, s_3_3, 0, -1, 0}
123 };
124 
125 static const symbol s_5_0[2] = { 'n', 'a' };
126 static const symbol s_5_1[2] = { 'n', 'e' };
127 static const struct among a_5[2] = {
128 { 2, s_5_0, 0, -1, 0},
129 { 2, s_5_1, 0, -1, 0}
130 };
131 
132 static const symbol s_6_0[2] = { 'd', 'a' };
133 static const symbol s_6_1[2] = { 't', 'a' };
134 static const symbol s_6_2[2] = { 'd', 'e' };
135 static const symbol s_6_3[2] = { 't', 'e' };
136 static const struct among a_6[4] = {
137 { 2, s_6_0, 0, -1, 0},
138 { 2, s_6_1, 0, -1, 0},
139 { 2, s_6_2, 0, -1, 0},
140 { 2, s_6_3, 0, -1, 0}
141 };
142 
143 static const symbol s_7_0[3] = { 'n', 'd', 'a' };
144 static const symbol s_7_1[3] = { 'n', 'd', 'e' };
145 static const struct among a_7[2] = {
146 { 3, s_7_0, 0, -1, 0},
147 { 3, s_7_1, 0, -1, 0}
148 };
149 
150 static const symbol s_8_0[3] = { 'd', 'a', 'n' };
151 static const symbol s_8_1[3] = { 't', 'a', 'n' };
152 static const symbol s_8_2[3] = { 'd', 'e', 'n' };
153 static const symbol s_8_3[3] = { 't', 'e', 'n' };
154 static const struct among a_8[4] = {
155 { 3, s_8_0, 0, -1, 0},
156 { 3, s_8_1, 0, -1, 0},
157 { 3, s_8_2, 0, -1, 0},
158 { 3, s_8_3, 0, -1, 0}
159 };
160 
161 static const symbol s_9_0[4] = { 'n', 'd', 'a', 'n' };
162 static const symbol s_9_1[4] = { 'n', 'd', 'e', 'n' };
163 static const struct among a_9[2] = {
164 { 4, s_9_0, 0, -1, 0},
165 { 4, s_9_1, 0, -1, 0}
166 };
167 
168 static const symbol s_10_0[2] = { 'l', 'a' };
169 static const symbol s_10_1[2] = { 'l', 'e' };
170 static const struct among a_10[2] = {
171 { 2, s_10_0, 0, -1, 0},
172 { 2, s_10_1, 0, -1, 0}
173 };
174 
175 static const symbol s_11_0[2] = { 'c', 'a' };
176 static const symbol s_11_1[2] = { 'c', 'e' };
177 static const struct among a_11[2] = {
178 { 2, s_11_0, 0, -1, 0},
179 { 2, s_11_1, 0, -1, 0}
180 };
181 
182 static const symbol s_12_0[2] = { 'i', 'm' };
183 static const symbol s_12_1[2] = { 'u', 'm' };
184 static const symbol s_12_2[3] = { 0xC4, 0xB1, 'm' };
185 static const symbol s_12_3[3] = { 0xC3, 0xBC, 'm' };
186 static const struct among a_12[4] = {
187 { 2, s_12_0, 0, -1, 0},
188 { 2, s_12_1, 0, -1, 0},
189 { 3, s_12_2, 0, -1, 0},
190 { 3, s_12_3, 0, -1, 0}
191 };
192 
193 static const symbol s_13_0[3] = { 's', 'i', 'n' };
194 static const symbol s_13_1[3] = { 's', 'u', 'n' };
195 static const symbol s_13_2[4] = { 's', 0xC4, 0xB1, 'n' };
196 static const symbol s_13_3[4] = { 's', 0xC3, 0xBC, 'n' };
197 static const struct among a_13[4] = {
198 { 3, s_13_0, 0, -1, 0},
199 { 3, s_13_1, 0, -1, 0},
200 { 4, s_13_2, 0, -1, 0},
201 { 4, s_13_3, 0, -1, 0}
202 };
203 
204 static const symbol s_14_0[2] = { 'i', 'z' };
205 static const symbol s_14_1[2] = { 'u', 'z' };
206 static const symbol s_14_2[3] = { 0xC4, 0xB1, 'z' };
207 static const symbol s_14_3[3] = { 0xC3, 0xBC, 'z' };
208 static const struct among a_14[4] = {
209 { 2, s_14_0, 0, -1, 0},
210 { 2, s_14_1, 0, -1, 0},
211 { 3, s_14_2, 0, -1, 0},
212 { 3, s_14_3, 0, -1, 0}
213 };
214 
215 static const symbol s_15_0[5] = { 's', 'i', 'n', 'i', 'z' };
216 static const symbol s_15_1[5] = { 's', 'u', 'n', 'u', 'z' };
217 static const symbol s_15_2[7] = { 's', 0xC4, 0xB1, 'n', 0xC4, 0xB1, 'z' };
218 static const symbol s_15_3[7] = { 's', 0xC3, 0xBC, 'n', 0xC3, 0xBC, 'z' };
219 static const struct among a_15[4] = {
220 { 5, s_15_0, 0, -1, 0},
221 { 5, s_15_1, 0, -1, 0},
222 { 7, s_15_2, 0, -1, 0},
223 { 7, s_15_3, 0, -1, 0}
224 };
225 
226 static const symbol s_16_0[3] = { 'l', 'a', 'r' };
227 static const symbol s_16_1[3] = { 'l', 'e', 'r' };
228 static const struct among a_16[2] = {
229 { 3, s_16_0, 0, -1, 0},
230 { 3, s_16_1, 0, -1, 0}
231 };
232 
233 static const symbol s_17_0[3] = { 'n', 'i', 'z' };
234 static const symbol s_17_1[3] = { 'n', 'u', 'z' };
235 static const symbol s_17_2[4] = { 'n', 0xC4, 0xB1, 'z' };
236 static const symbol s_17_3[4] = { 'n', 0xC3, 0xBC, 'z' };
237 static const struct among a_17[4] = {
238 { 3, s_17_0, 0, -1, 0},
239 { 3, s_17_1, 0, -1, 0},
240 { 4, s_17_2, 0, -1, 0},
241 { 4, s_17_3, 0, -1, 0}
242 };
243 
244 static const symbol s_18_0[3] = { 'd', 'i', 'r' };
245 static const symbol s_18_1[3] = { 't', 'i', 'r' };
246 static const symbol s_18_2[3] = { 'd', 'u', 'r' };
247 static const symbol s_18_3[3] = { 't', 'u', 'r' };
248 static const symbol s_18_4[4] = { 'd', 0xC4, 0xB1, 'r' };
249 static const symbol s_18_5[4] = { 't', 0xC4, 0xB1, 'r' };
250 static const symbol s_18_6[4] = { 'd', 0xC3, 0xBC, 'r' };
251 static const symbol s_18_7[4] = { 't', 0xC3, 0xBC, 'r' };
252 static const struct among a_18[8] = {
253 { 3, s_18_0, 0, -1, 0},
254 { 3, s_18_1, 0, -1, 0},
255 { 3, s_18_2, 0, -1, 0},
256 { 3, s_18_3, 0, -1, 0},
257 { 4, s_18_4, 0, -1, 0},
258 { 4, s_18_5, 0, -1, 0},
259 { 4, s_18_6, 0, -1, 0},
260 { 4, s_18_7, 0, -1, 0}
261 };
262 
263 static const symbol s_19_0[7] = { 'c', 'a', 's', 0xC4, 0xB1, 'n', 'a' };
264 static const symbol s_19_1[6] = { 'c', 'e', 's', 'i', 'n', 'e' };
265 static const struct among a_19[2] = {
266 { 7, s_19_0, 0, -1, 0},
267 { 6, s_19_1, 0, -1, 0}
268 };
269 
270 static const symbol s_20_0[2] = { 'd', 'i' };
271 static const symbol s_20_1[2] = { 't', 'i' };
272 static const symbol s_20_2[3] = { 'd', 'i', 'k' };
273 static const symbol s_20_3[3] = { 't', 'i', 'k' };
274 static const symbol s_20_4[3] = { 'd', 'u', 'k' };
275 static const symbol s_20_5[3] = { 't', 'u', 'k' };
276 static const symbol s_20_6[4] = { 'd', 0xC4, 0xB1, 'k' };
277 static const symbol s_20_7[4] = { 't', 0xC4, 0xB1, 'k' };
278 static const symbol s_20_8[4] = { 'd', 0xC3, 0xBC, 'k' };
279 static const symbol s_20_9[4] = { 't', 0xC3, 0xBC, 'k' };
280 static const symbol s_20_10[3] = { 'd', 'i', 'm' };
281 static const symbol s_20_11[3] = { 't', 'i', 'm' };
282 static const symbol s_20_12[3] = { 'd', 'u', 'm' };
283 static const symbol s_20_13[3] = { 't', 'u', 'm' };
284 static const symbol s_20_14[4] = { 'd', 0xC4, 0xB1, 'm' };
285 static const symbol s_20_15[4] = { 't', 0xC4, 0xB1, 'm' };
286 static const symbol s_20_16[4] = { 'd', 0xC3, 0xBC, 'm' };
287 static const symbol s_20_17[4] = { 't', 0xC3, 0xBC, 'm' };
288 static const symbol s_20_18[3] = { 'd', 'i', 'n' };
289 static const symbol s_20_19[3] = { 't', 'i', 'n' };
290 static const symbol s_20_20[3] = { 'd', 'u', 'n' };
291 static const symbol s_20_21[3] = { 't', 'u', 'n' };
292 static const symbol s_20_22[4] = { 'd', 0xC4, 0xB1, 'n' };
293 static const symbol s_20_23[4] = { 't', 0xC4, 0xB1, 'n' };
294 static const symbol s_20_24[4] = { 'd', 0xC3, 0xBC, 'n' };
295 static const symbol s_20_25[4] = { 't', 0xC3, 0xBC, 'n' };
296 static const symbol s_20_26[2] = { 'd', 'u' };
297 static const symbol s_20_27[2] = { 't', 'u' };
298 static const symbol s_20_28[3] = { 'd', 0xC4, 0xB1 };
299 static const symbol s_20_29[3] = { 't', 0xC4, 0xB1 };
300 static const symbol s_20_30[3] = { 'd', 0xC3, 0xBC };
301 static const symbol s_20_31[3] = { 't', 0xC3, 0xBC };
302 static const struct among a_20[32] = {
303 { 2, s_20_0, 0, -1, 0},
304 { 2, s_20_1, 0, -1, 0},
305 { 3, s_20_2, 0, -1, 0},
306 { 3, s_20_3, 0, -1, 0},
307 { 3, s_20_4, 0, -1, 0},
308 { 3, s_20_5, 0, -1, 0},
309 { 4, s_20_6, 0, -1, 0},
310 { 4, s_20_7, 0, -1, 0},
311 { 4, s_20_8, 0, -1, 0},
312 { 4, s_20_9, 0, -1, 0},
313 { 3, s_20_10, 0, -1, 0},
314 { 3, s_20_11, 0, -1, 0},
315 { 3, s_20_12, 0, -1, 0},
316 { 3, s_20_13, 0, -1, 0},
317 { 4, s_20_14, 0, -1, 0},
318 { 4, s_20_15, 0, -1, 0},
319 { 4, s_20_16, 0, -1, 0},
320 { 4, s_20_17, 0, -1, 0},
321 { 3, s_20_18, 0, -1, 0},
322 { 3, s_20_19, 0, -1, 0},
323 { 3, s_20_20, 0, -1, 0},
324 { 3, s_20_21, 0, -1, 0},
325 { 4, s_20_22, 0, -1, 0},
326 { 4, s_20_23, 0, -1, 0},
327 { 4, s_20_24, 0, -1, 0},
328 { 4, s_20_25, 0, -1, 0},
329 { 2, s_20_26, 0, -1, 0},
330 { 2, s_20_27, 0, -1, 0},
331 { 3, s_20_28, 0, -1, 0},
332 { 3, s_20_29, 0, -1, 0},
333 { 3, s_20_30, 0, -1, 0},
334 { 3, s_20_31, 0, -1, 0}
335 };
336 
337 static const symbol s_21_0[2] = { 's', 'a' };
338 static const symbol s_21_1[2] = { 's', 'e' };
339 static const symbol s_21_2[3] = { 's', 'a', 'k' };
340 static const symbol s_21_3[3] = { 's', 'e', 'k' };
341 static const symbol s_21_4[3] = { 's', 'a', 'm' };
342 static const symbol s_21_5[3] = { 's', 'e', 'm' };
343 static const symbol s_21_6[3] = { 's', 'a', 'n' };
344 static const symbol s_21_7[3] = { 's', 'e', 'n' };
345 static const struct among a_21[8] = {
346 { 2, s_21_0, 0, -1, 0},
347 { 2, s_21_1, 0, -1, 0},
348 { 3, s_21_2, 0, -1, 0},
349 { 3, s_21_3, 0, -1, 0},
350 { 3, s_21_4, 0, -1, 0},
351 { 3, s_21_5, 0, -1, 0},
352 { 3, s_21_6, 0, -1, 0},
353 { 3, s_21_7, 0, -1, 0}
354 };
355 
356 static const symbol s_22_0[4] = { 'm', 'i', 0xC5, 0x9F };
357 static const symbol s_22_1[4] = { 'm', 'u', 0xC5, 0x9F };
358 static const symbol s_22_2[5] = { 'm', 0xC4, 0xB1, 0xC5, 0x9F };
359 static const symbol s_22_3[5] = { 'm', 0xC3, 0xBC, 0xC5, 0x9F };
360 static const struct among a_22[4] = {
361 { 4, s_22_0, 0, -1, 0},
362 { 4, s_22_1, 0, -1, 0},
363 { 5, s_22_2, 0, -1, 0},
364 { 5, s_22_3, 0, -1, 0}
365 };
366 
367 static const symbol s_23_0[1] = { 'b' };
368 static const symbol s_23_1[1] = { 'c' };
369 static const symbol s_23_2[1] = { 'd' };
370 static const symbol s_23_3[2] = { 0xC4, 0x9F };
371 static const struct among a_23[4] = {
372 { 1, s_23_0, 0, 1, 0},
373 { 1, s_23_1, 0, 2, 0},
374 { 1, s_23_2, 0, 3, 0},
375 { 2, s_23_3, 0, 4, 0}
376 };
377 
378 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 };
379 
380 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 };
381 
382 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 };
383 
384 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 };
385 
386 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 };
387 
388 static const unsigned char g_vowel4[] = { 17 };
389 
390 static const unsigned char g_vowel5[] = { 65 };
391 
392 static const unsigned char g_vowel6[] = { 65 };
393 
394 static int r_check_vowel_harmony(struct SN_env * z) {
395  {
396  int v_1 = z->l - z->c;
397  if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
398  do {
399  int v_2 = z->l - z->c;
400  if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab0;
401  z->c--;
402  if (out_grouping_b_U(z, g_vowel1, 97, 305, 1) < 0) goto lab0;
403  break;
404  lab0:
405  z->c = z->l - v_2;
406  if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab1;
407  z->c--;
408  if (out_grouping_b_U(z, g_vowel2, 101, 252, 1) < 0) goto lab1;
409  break;
410  lab1:
411  z->c = z->l - v_2;
412  if (!(eq_s_b(z, 2, s_0))) goto lab2;
413  if (out_grouping_b_U(z, g_vowel3, 97, 305, 1) < 0) goto lab2;
414  break;
415  lab2:
416  z->c = z->l - v_2;
417  if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab3;
418  z->c--;
419  if (out_grouping_b_U(z, g_vowel4, 101, 105, 1) < 0) goto lab3;
420  break;
421  lab3:
422  z->c = z->l - v_2;
423  if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4;
424  z->c--;
425  if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab4;
426  break;
427  lab4:
428  z->c = z->l - v_2;
429  if (!(eq_s_b(z, 2, s_1))) goto lab5;
430  if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) goto lab5;
431  break;
432  lab5:
433  z->c = z->l - v_2;
434  if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab6;
435  z->c--;
436  if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab6;
437  break;
438  lab6:
439  z->c = z->l - v_2;
440  if (!(eq_s_b(z, 2, s_2))) return 0;
441  if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) return 0;
442  } while (0);
443  z->c = z->l - v_1;
444  }
445  return 1;
446 }
447 
449  do {
450  int v_1 = z->l - z->c;
451  if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab0;
452  z->c--;
453  {
454  int v_2 = z->l - z->c;
455  if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab0;
456  z->c = z->l - v_2;
457  }
458  break;
459  lab0:
460  z->c = z->l - v_1;
461  {
462  int v_3 = z->l - z->c;
463  if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab1;
464  z->c--;
465  return 0;
466  lab1:
467  z->c = z->l - v_3;
468  }
469  {
470  int v_4 = z->l - z->c;
471  {
472  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
473  if (ret < 0) return 0;
474  z->c = ret;
475  }
476  if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
477  z->c = z->l - v_4;
478  }
479  } while (0);
480  return 1;
481 }
482 
484  do {
485  int v_1 = z->l - z->c;
486  if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0;
487  z->c--;
488  {
489  int v_2 = z->l - z->c;
490  if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab0;
491  z->c = z->l - v_2;
492  }
493  break;
494  lab0:
495  z->c = z->l - v_1;
496  {
497  int v_3 = z->l - z->c;
498  if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
499  z->c--;
500  return 0;
501  lab1:
502  z->c = z->l - v_3;
503  }
504  {
505  int v_4 = z->l - z->c;
506  {
507  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
508  if (ret < 0) return 0;
509  z->c = ret;
510  }
511  if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
512  z->c = z->l - v_4;
513  }
514  } while (0);
515  return 1;
516 }
517 
519  do {
520  int v_1 = z->l - z->c;
521  if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab0;
522  z->c--;
523  {
524  int v_2 = z->l - z->c;
525  if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab0;
526  z->c = z->l - v_2;
527  }
528  break;
529  lab0:
530  z->c = z->l - v_1;
531  {
532  int v_3 = z->l - z->c;
533  if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
534  z->c--;
535  return 0;
536  lab1:
537  z->c = z->l - v_3;
538  }
539  {
540  int v_4 = z->l - z->c;
541  {
542  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
543  if (ret < 0) return 0;
544  z->c = ret;
545  }
546  if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
547  z->c = z->l - v_4;
548  }
549  } while (0);
550  return 1;
551 }
552 
554  do {
555  int v_1 = z->l - z->c;
556  if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab0;
557  {
558  int v_2 = z->l - z->c;
559  if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab0;
560  z->c = z->l - v_2;
561  }
562  break;
563  lab0:
564  z->c = z->l - v_1;
565  {
566  int v_3 = z->l - z->c;
567  if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab1;
568  return 0;
569  lab1:
570  z->c = z->l - v_3;
571  }
572  {
573  int v_4 = z->l - z->c;
574  {
575  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
576  if (ret < 0) return 0;
577  z->c = ret;
578  }
579  if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
580  z->c = z->l - v_4;
581  }
582  } while (0);
583  return 1;
584 }
585 
586 static int r_mark_possessives(struct SN_env * z) {
587  if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((67133440 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
588  if (!find_among_b(z, a_0, 10, 0)) return 0;
590 }
591 
592 static int r_mark_sU(struct SN_env * z) {
593  {
594  int ret = r_check_vowel_harmony(z);
595  if (ret == 0) return ret;
596  }
597  if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0;
599 }
600 
601 static int r_mark_lArI(struct SN_env * z) {
602  if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 177)) return 0;
603  return find_among_b(z, a_1, 2, 0) != 0;
604 }
605 
606 static int r_mark_yU(struct SN_env * z) {
607  {
608  int ret = r_check_vowel_harmony(z);
609  if (ret == 0) return ret;
610  }
611  if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0;
613 }
614 
615 static int r_mark_nU(struct SN_env * z) {
616  {
617  int ret = r_check_vowel_harmony(z);
618  if (ret == 0) return ret;
619  }
620  return find_among_b(z, a_2, 4, 0) != 0;
621 }
622 
623 static int r_mark_nUn(struct SN_env * z) {
624  {
625  int ret = r_check_vowel_harmony(z);
626  if (ret == 0) return ret;
627  }
628  if (z->c - 1 <= z->lb || z->p[z->c - 1] != 110) return 0;
629  if (!find_among_b(z, a_3, 4, 0)) return 0;
631 }
632 
633 static int r_mark_yA(struct SN_env * z) {
634  {
635  int ret = r_check_vowel_harmony(z);
636  if (ret == 0) return ret;
637  }
638  if (z->c <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
639  z->c--;
641 }
642 
643 static int r_mark_nA(struct SN_env * z) {
644  {
645  int ret = r_check_vowel_harmony(z);
646  if (ret == 0) return ret;
647  }
648  if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
649  return find_among_b(z, a_5, 2, 0) != 0;
650 }
651 
652 static int r_mark_DA(struct SN_env * z) {
653  {
654  int ret = r_check_vowel_harmony(z);
655  if (ret == 0) return ret;
656  }
657  if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
658  return find_among_b(z, a_6, 4, 0) != 0;
659 }
660 
661 static int r_mark_ndA(struct SN_env * z) {
662  {
663  int ret = r_check_vowel_harmony(z);
664  if (ret == 0) return ret;
665  }
666  if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
667  return find_among_b(z, a_7, 2, 0) != 0;
668 }
669 
670 static int r_mark_DAn(struct SN_env * z) {
671  {
672  int ret = r_check_vowel_harmony(z);
673  if (ret == 0) return ret;
674  }
675  if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
676  return find_among_b(z, a_8, 4, 0) != 0;
677 }
678 
679 static int r_mark_ndAn(struct SN_env * z) {
680  {
681  int ret = r_check_vowel_harmony(z);
682  if (ret == 0) return ret;
683  }
684  if (z->c - 3 <= z->lb || z->p[z->c - 1] != 110) return 0;
685  return find_among_b(z, a_9, 2, 0) != 0;
686 }
687 
688 static int r_mark_ylA(struct SN_env * z) {
689  {
690  int ret = r_check_vowel_harmony(z);
691  if (ret == 0) return ret;
692  }
693  if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
694  if (!find_among_b(z, a_10, 2, 0)) return 0;
696 }
697 
698 static int r_mark_ki(struct SN_env * z) {
699  return eq_s_b(z, 2, s_3);
700 }
701 
702 static int r_mark_ncA(struct SN_env * z) {
703  {
704  int ret = r_check_vowel_harmony(z);
705  if (ret == 0) return ret;
706  }
707  if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
708  if (!find_among_b(z, a_11, 2, 0)) return 0;
710 }
711 
712 static int r_mark_yUm(struct SN_env * z) {
713  {
714  int ret = r_check_vowel_harmony(z);
715  if (ret == 0) return ret;
716  }
717  if (z->c - 1 <= z->lb || z->p[z->c - 1] != 109) return 0;
718  if (!find_among_b(z, a_12, 4, 0)) return 0;
720 }
721 
722 static int r_mark_sUn(struct SN_env * z) {
723  {
724  int ret = r_check_vowel_harmony(z);
725  if (ret == 0) return ret;
726  }
727  if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
728  return find_among_b(z, a_13, 4, 0) != 0;
729 }
730 
731 static int r_mark_yUz(struct SN_env * z) {
732  {
733  int ret = r_check_vowel_harmony(z);
734  if (ret == 0) return ret;
735  }
736  if (z->c - 1 <= z->lb || z->p[z->c - 1] != 122) return 0;
737  if (!find_among_b(z, a_14, 4, 0)) return 0;
739 }
740 
741 static int r_mark_sUnUz(struct SN_env * z) {
742  if (z->c - 4 <= z->lb || z->p[z->c - 1] != 122) return 0;
743  return find_among_b(z, a_15, 4, 0) != 0;
744 }
745 
746 static int r_mark_lAr(struct SN_env * z) {
747  {
748  int ret = r_check_vowel_harmony(z);
749  if (ret == 0) return ret;
750  }
751  if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
752  return find_among_b(z, a_16, 2, 0) != 0;
753 }
754 
755 static int r_mark_nUz(struct SN_env * z) {
756  {
757  int ret = r_check_vowel_harmony(z);
758  if (ret == 0) return ret;
759  }
760  if (z->c - 2 <= z->lb || z->p[z->c - 1] != 122) return 0;
761  return find_among_b(z, a_17, 4, 0) != 0;
762 }
763 
764 static int r_mark_DUr(struct SN_env * z) {
765  {
766  int ret = r_check_vowel_harmony(z);
767  if (ret == 0) return ret;
768  }
769  if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
770  return find_among_b(z, a_18, 8, 0) != 0;
771 }
772 
773 static int r_mark_cAsInA(struct SN_env * z) {
774  if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
775  return find_among_b(z, a_19, 2, 0) != 0;
776 }
777 
778 static int r_mark_yDU(struct SN_env * z) {
779  {
780  int ret = r_check_vowel_harmony(z);
781  if (ret == 0) return ret;
782  }
783  if (!find_among_b(z, a_20, 32, 0)) return 0;
785 }
786 
787 static int r_mark_ysA(struct SN_env * z) {
788  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((26658 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
789  if (!find_among_b(z, a_21, 8, 0)) return 0;
791 }
792 
793 static int r_mark_ymUs_(struct SN_env * z) {
794  {
795  int ret = r_check_vowel_harmony(z);
796  if (ret == 0) return ret;
797  }
798  if (z->c - 3 <= z->lb || z->p[z->c - 1] != 159) return 0;
799  if (!find_among_b(z, a_22, 4, 0)) return 0;
801 }
802 
803 static int r_mark_yken(struct SN_env * z) {
804  if (!(eq_s_b(z, 3, s_4))) return 0;
806 }
807 
808 static int r_stem_nominal_verb_suffixes(struct SN_env * z) {
809  z->ket = z->c;
810  ((SN_local *)z)->b_continue_stemming_noun_suffixes = true;
811  do {
812  int v_1 = z->l - z->c;
813  do {
814  int v_2 = z->l - z->c;
815  if (!r_mark_ymUs_(z)) goto lab1;
816  break;
817  lab1:
818  z->c = z->l - v_2;
819  if (!r_mark_yDU(z)) goto lab2;
820  break;
821  lab2:
822  z->c = z->l - v_2;
823  if (!r_mark_ysA(z)) goto lab3;
824  break;
825  lab3:
826  z->c = z->l - v_2;
827  if (!r_mark_yken(z)) goto lab0;
828  } while (0);
829  break;
830  lab0:
831  z->c = z->l - v_1;
832  if (!r_mark_cAsInA(z)) goto lab4;
833  do {
834  int v_3 = z->l - z->c;
835  if (!r_mark_sUnUz(z)) goto lab5;
836  break;
837  lab5:
838  z->c = z->l - v_3;
839  if (!r_mark_lAr(z)) goto lab6;
840  break;
841  lab6:
842  z->c = z->l - v_3;
843  if (!r_mark_yUm(z)) goto lab7;
844  break;
845  lab7:
846  z->c = z->l - v_3;
847  if (!r_mark_sUn(z)) goto lab8;
848  break;
849  lab8:
850  z->c = z->l - v_3;
851  if (!r_mark_yUz(z)) goto lab9;
852  break;
853  lab9:
854  z->c = z->l - v_3;
855  } while (0);
856  if (!r_mark_ymUs_(z)) goto lab4;
857  break;
858  lab4:
859  z->c = z->l - v_1;
860  if (!r_mark_lAr(z)) goto lab10;
861  z->bra = z->c;
862  slice_del(z);
863  {
864  int v_4 = z->l - z->c;
865  z->ket = z->c;
866  do {
867  int v_5 = z->l - z->c;
868  if (!r_mark_DUr(z)) goto lab12;
869  break;
870  lab12:
871  z->c = z->l - v_5;
872  if (!r_mark_yDU(z)) goto lab13;
873  break;
874  lab13:
875  z->c = z->l - v_5;
876  if (!r_mark_ysA(z)) goto lab14;
877  break;
878  lab14:
879  z->c = z->l - v_5;
880  if (!r_mark_ymUs_(z)) { z->c = z->l - v_4; goto lab11; }
881  } while (0);
882  lab11:
883  ;
884  }
885  ((SN_local *)z)->b_continue_stemming_noun_suffixes = false;
886  break;
887  lab10:
888  z->c = z->l - v_1;
889  if (!r_mark_nUz(z)) goto lab15;
890  do {
891  int v_6 = z->l - z->c;
892  if (!r_mark_yDU(z)) goto lab16;
893  break;
894  lab16:
895  z->c = z->l - v_6;
896  if (!r_mark_ysA(z)) goto lab15;
897  } while (0);
898  break;
899  lab15:
900  z->c = z->l - v_1;
901  do {
902  int v_7 = z->l - z->c;
903  if (!r_mark_sUnUz(z)) goto lab18;
904  break;
905  lab18:
906  z->c = z->l - v_7;
907  if (!r_mark_yUz(z)) goto lab19;
908  break;
909  lab19:
910  z->c = z->l - v_7;
911  if (!r_mark_sUn(z)) goto lab20;
912  break;
913  lab20:
914  z->c = z->l - v_7;
915  if (!r_mark_yUm(z)) goto lab17;
916  } while (0);
917  z->bra = z->c;
918  slice_del(z);
919  {
920  int v_8 = z->l - z->c;
921  z->ket = z->c;
922  if (!r_mark_ymUs_(z)) { z->c = z->l - v_8; goto lab21; }
923  lab21:
924  ;
925  }
926  break;
927  lab17:
928  z->c = z->l - v_1;
929  {
930  int ret = r_mark_DUr(z);
931  if (ret == 0) return ret;
932  }
933  z->bra = z->c;
934  slice_del(z);
935  {
936  int v_9 = z->l - z->c;
937  z->ket = z->c;
938  do {
939  int v_10 = z->l - z->c;
940  if (!r_mark_sUnUz(z)) goto lab23;
941  break;
942  lab23:
943  z->c = z->l - v_10;
944  if (!r_mark_lAr(z)) goto lab24;
945  break;
946  lab24:
947  z->c = z->l - v_10;
948  if (!r_mark_yUm(z)) goto lab25;
949  break;
950  lab25:
951  z->c = z->l - v_10;
952  if (!r_mark_sUn(z)) goto lab26;
953  break;
954  lab26:
955  z->c = z->l - v_10;
956  if (!r_mark_yUz(z)) goto lab27;
957  break;
958  lab27:
959  z->c = z->l - v_10;
960  } while (0);
961  if (!r_mark_ymUs_(z)) { z->c = z->l - v_9; goto lab22; }
962  lab22:
963  ;
964  }
965  } while (0);
966  z->bra = z->c;
967  slice_del(z);
968  return 1;
969 }
970 
971 static int r_stem_suffix_chain_before_ki(struct SN_env * z) {
972  z->ket = z->c;
973  {
974  int ret = r_mark_ki(z);
975  if (ret == 0) return ret;
976  }
977  do {
978  int v_1 = z->l - z->c;
979  if (!r_mark_DA(z)) goto lab0;
980  z->bra = z->c;
981  slice_del(z);
982  {
983  int v_2 = z->l - z->c;
984  z->ket = z->c;
985  do {
986  int v_3 = z->l - z->c;
987  if (!r_mark_lAr(z)) goto lab2;
988  z->bra = z->c;
989  slice_del(z);
990  {
991  int v_4 = z->l - z->c;
992  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_4; goto lab3; }
993  lab3:
994  ;
995  }
996  break;
997  lab2:
998  z->c = z->l - v_3;
999  if (!r_mark_possessives(z)) { z->c = z->l - v_2; goto lab1; }
1000  z->bra = z->c;
1001  slice_del(z);
1002  {
1003  int v_5 = z->l - z->c;
1004  z->ket = z->c;
1005  if (!r_mark_lAr(z)) { z->c = z->l - v_5; goto lab4; }
1006  z->bra = z->c;
1007  slice_del(z);
1008  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_5; goto lab4; }
1009  lab4:
1010  ;
1011  }
1012  } while (0);
1013  lab1:
1014  ;
1015  }
1016  break;
1017  lab0:
1018  z->c = z->l - v_1;
1019  if (!r_mark_nUn(z)) goto lab5;
1020  z->bra = z->c;
1021  slice_del(z);
1022  {
1023  int v_6 = z->l - z->c;
1024  z->ket = z->c;
1025  do {
1026  int v_7 = z->l - z->c;
1027  if (!r_mark_lArI(z)) goto lab7;
1028  z->bra = z->c;
1029  slice_del(z);
1030  break;
1031  lab7:
1032  z->c = z->l - v_7;
1033  z->ket = z->c;
1034  do {
1035  int v_8 = z->l - z->c;
1036  if (!r_mark_possessives(z)) goto lab9;
1037  break;
1038  lab9:
1039  z->c = z->l - v_8;
1040  if (!r_mark_sU(z)) goto lab8;
1041  } while (0);
1042  z->bra = z->c;
1043  slice_del(z);
1044  {
1045  int v_9 = z->l - z->c;
1046  z->ket = z->c;
1047  if (!r_mark_lAr(z)) { z->c = z->l - v_9; goto lab10; }
1048  z->bra = z->c;
1049  slice_del(z);
1050  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_9; goto lab10; }
1051  lab10:
1052  ;
1053  }
1054  break;
1055  lab8:
1056  z->c = z->l - v_7;
1057  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_6; goto lab6; }
1058  } while (0);
1059  lab6:
1060  ;
1061  }
1062  break;
1063  lab5:
1064  z->c = z->l - v_1;
1065  {
1066  int ret = r_mark_ndA(z);
1067  if (ret == 0) return ret;
1068  }
1069  do {
1070  int v_10 = z->l - z->c;
1071  if (!r_mark_lArI(z)) goto lab11;
1072  z->bra = z->c;
1073  slice_del(z);
1074  break;
1075  lab11:
1076  z->c = z->l - v_10;
1077  if (!r_mark_sU(z)) goto lab12;
1078  z->bra = z->c;
1079  slice_del(z);
1080  {
1081  int v_11 = z->l - z->c;
1082  z->ket = z->c;
1083  if (!r_mark_lAr(z)) { z->c = z->l - v_11; goto lab13; }
1084  z->bra = z->c;
1085  slice_del(z);
1086  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_11; goto lab13; }
1087  lab13:
1088  ;
1089  }
1090  break;
1091  lab12:
1092  z->c = z->l - v_10;
1093  {
1094  int ret = r_stem_suffix_chain_before_ki(z);
1095  if (ret == 0) return ret;
1096  }
1097  } while (0);
1098  } while (0);
1099  return 1;
1100 }
1101 
1102 static int r_stem_noun_suffixes(struct SN_env * z) {
1103  do {
1104  int v_1 = z->l - z->c;
1105  z->ket = z->c;
1106  if (!r_mark_lAr(z)) goto lab0;
1107  z->bra = z->c;
1108  slice_del(z);
1109  {
1110  int v_2 = z->l - z->c;
1111  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_2; goto lab1; }
1112  lab1:
1113  ;
1114  }
1115  break;
1116  lab0:
1117  z->c = z->l - v_1;
1118  z->ket = z->c;
1119  if (!r_mark_ncA(z)) goto lab2;
1120  z->bra = z->c;
1121  slice_del(z);
1122  {
1123  int v_3 = z->l - z->c;
1124  do {
1125  int v_4 = z->l - z->c;
1126  z->ket = z->c;
1127  if (!r_mark_lArI(z)) goto lab4;
1128  z->bra = z->c;
1129  slice_del(z);
1130  break;
1131  lab4:
1132  z->c = z->l - v_4;
1133  z->ket = z->c;
1134  do {
1135  int v_5 = z->l - z->c;
1136  if (!r_mark_possessives(z)) goto lab6;
1137  break;
1138  lab6:
1139  z->c = z->l - v_5;
1140  if (!r_mark_sU(z)) goto lab5;
1141  } while (0);
1142  z->bra = z->c;
1143  slice_del(z);
1144  {
1145  int v_6 = z->l - z->c;
1146  z->ket = z->c;
1147  if (!r_mark_lAr(z)) { z->c = z->l - v_6; goto lab7; }
1148  z->bra = z->c;
1149  slice_del(z);
1150  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_6; goto lab7; }
1151  lab7:
1152  ;
1153  }
1154  break;
1155  lab5:
1156  z->c = z->l - v_4;
1157  z->ket = z->c;
1158  if (!r_mark_lAr(z)) { z->c = z->l - v_3; goto lab3; }
1159  z->bra = z->c;
1160  slice_del(z);
1161  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_3; goto lab3; }
1162  } while (0);
1163  lab3:
1164  ;
1165  }
1166  break;
1167  lab2:
1168  z->c = z->l - v_1;
1169  z->ket = z->c;
1170  do {
1171  int v_7 = z->l - z->c;
1172  if (!r_mark_ndA(z)) goto lab9;
1173  break;
1174  lab9:
1175  z->c = z->l - v_7;
1176  if (!r_mark_nA(z)) goto lab8;
1177  } while (0);
1178  do {
1179  int v_8 = z->l - z->c;
1180  if (!r_mark_lArI(z)) goto lab10;
1181  z->bra = z->c;
1182  slice_del(z);
1183  break;
1184  lab10:
1185  z->c = z->l - v_8;
1186  if (!r_mark_sU(z)) goto lab11;
1187  z->bra = z->c;
1188  slice_del(z);
1189  {
1190  int v_9 = z->l - z->c;
1191  z->ket = z->c;
1192  if (!r_mark_lAr(z)) { z->c = z->l - v_9; goto lab12; }
1193  z->bra = z->c;
1194  slice_del(z);
1195  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_9; goto lab12; }
1196  lab12:
1197  ;
1198  }
1199  break;
1200  lab11:
1201  z->c = z->l - v_8;
1202  if (!r_stem_suffix_chain_before_ki(z)) goto lab8;
1203  } while (0);
1204  break;
1205  lab8:
1206  z->c = z->l - v_1;
1207  z->ket = z->c;
1208  do {
1209  int v_10 = z->l - z->c;
1210  if (!r_mark_ndAn(z)) goto lab14;
1211  break;
1212  lab14:
1213  z->c = z->l - v_10;
1214  if (!r_mark_nU(z)) goto lab13;
1215  } while (0);
1216  do {
1217  int v_11 = z->l - z->c;
1218  if (!r_mark_sU(z)) goto lab15;
1219  z->bra = z->c;
1220  slice_del(z);
1221  {
1222  int v_12 = z->l - z->c;
1223  z->ket = z->c;
1224  if (!r_mark_lAr(z)) { z->c = z->l - v_12; goto lab16; }
1225  z->bra = z->c;
1226  slice_del(z);
1227  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_12; goto lab16; }
1228  lab16:
1229  ;
1230  }
1231  break;
1232  lab15:
1233  z->c = z->l - v_11;
1234  if (!r_mark_lArI(z)) goto lab13;
1235  } while (0);
1236  break;
1237  lab13:
1238  z->c = z->l - v_1;
1239  z->ket = z->c;
1240  if (!r_mark_DAn(z)) goto lab17;
1241  z->bra = z->c;
1242  slice_del(z);
1243  {
1244  int v_13 = z->l - z->c;
1245  z->ket = z->c;
1246  do {
1247  int v_14 = z->l - z->c;
1248  if (!r_mark_possessives(z)) goto lab19;
1249  z->bra = z->c;
1250  slice_del(z);
1251  {
1252  int v_15 = z->l - z->c;
1253  z->ket = z->c;
1254  if (!r_mark_lAr(z)) { z->c = z->l - v_15; goto lab20; }
1255  z->bra = z->c;
1256  slice_del(z);
1257  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_15; goto lab20; }
1258  lab20:
1259  ;
1260  }
1261  break;
1262  lab19:
1263  z->c = z->l - v_14;
1264  if (!r_mark_lAr(z)) goto lab21;
1265  z->bra = z->c;
1266  slice_del(z);
1267  {
1268  int v_16 = z->l - z->c;
1269  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_16; goto lab22; }
1270  lab22:
1271  ;
1272  }
1273  break;
1274  lab21:
1275  z->c = z->l - v_14;
1276  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_13; goto lab18; }
1277  } while (0);
1278  lab18:
1279  ;
1280  }
1281  break;
1282  lab17:
1283  z->c = z->l - v_1;
1284  z->ket = z->c;
1285  do {
1286  int v_17 = z->l - z->c;
1287  if (!r_mark_nUn(z)) goto lab24;
1288  break;
1289  lab24:
1290  z->c = z->l - v_17;
1291  if (!r_mark_ylA(z)) goto lab23;
1292  } while (0);
1293  z->bra = z->c;
1294  slice_del(z);
1295  {
1296  int v_18 = z->l - z->c;
1297  do {
1298  int v_19 = z->l - z->c;
1299  z->ket = z->c;
1300  if (!r_mark_lAr(z)) goto lab26;
1301  z->bra = z->c;
1302  slice_del(z);
1303  if (!r_stem_suffix_chain_before_ki(z)) goto lab26;
1304  break;
1305  lab26:
1306  z->c = z->l - v_19;
1307  z->ket = z->c;
1308  do {
1309  int v_20 = z->l - z->c;
1310  if (!r_mark_possessives(z)) goto lab28;
1311  break;
1312  lab28:
1313  z->c = z->l - v_20;
1314  if (!r_mark_sU(z)) goto lab27;
1315  } while (0);
1316  z->bra = z->c;
1317  slice_del(z);
1318  {
1319  int v_21 = z->l - z->c;
1320  z->ket = z->c;
1321  if (!r_mark_lAr(z)) { z->c = z->l - v_21; goto lab29; }
1322  z->bra = z->c;
1323  slice_del(z);
1324  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_21; goto lab29; }
1325  lab29:
1326  ;
1327  }
1328  break;
1329  lab27:
1330  z->c = z->l - v_19;
1331  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_18; goto lab25; }
1332  } while (0);
1333  lab25:
1334  ;
1335  }
1336  break;
1337  lab23:
1338  z->c = z->l - v_1;
1339  z->ket = z->c;
1340  if (!r_mark_lArI(z)) goto lab30;
1341  z->bra = z->c;
1342  slice_del(z);
1343  break;
1344  lab30:
1345  z->c = z->l - v_1;
1346  if (!r_stem_suffix_chain_before_ki(z)) goto lab31;
1347  break;
1348  lab31:
1349  z->c = z->l - v_1;
1350  z->ket = z->c;
1351  do {
1352  int v_22 = z->l - z->c;
1353  if (!r_mark_DA(z)) goto lab33;
1354  break;
1355  lab33:
1356  z->c = z->l - v_22;
1357  if (!r_mark_yU(z)) goto lab34;
1358  break;
1359  lab34:
1360  z->c = z->l - v_22;
1361  if (!r_mark_yA(z)) goto lab32;
1362  } while (0);
1363  z->bra = z->c;
1364  slice_del(z);
1365  {
1366  int v_23 = z->l - z->c;
1367  z->ket = z->c;
1368  do {
1369  int v_24 = z->l - z->c;
1370  if (!r_mark_possessives(z)) goto lab36;
1371  z->bra = z->c;
1372  slice_del(z);
1373  {
1374  int v_25 = z->l - z->c;
1375  z->ket = z->c;
1376  if (!r_mark_lAr(z)) { z->c = z->l - v_25; goto lab37; }
1377  lab37:
1378  ;
1379  }
1380  break;
1381  lab36:
1382  z->c = z->l - v_24;
1383  if (!r_mark_lAr(z)) { z->c = z->l - v_23; goto lab35; }
1384  } while (0);
1385  z->bra = z->c;
1386  slice_del(z);
1387  z->ket = z->c;
1388  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_23; goto lab35; }
1389  lab35:
1390  ;
1391  }
1392  break;
1393  lab32:
1394  z->c = z->l - v_1;
1395  z->ket = z->c;
1396  do {
1397  int v_26 = z->l - z->c;
1398  if (!r_mark_possessives(z)) goto lab38;
1399  break;
1400  lab38:
1401  z->c = z->l - v_26;
1402  {
1403  int ret = r_mark_sU(z);
1404  if (ret == 0) return ret;
1405  }
1406  } while (0);
1407  z->bra = z->c;
1408  slice_del(z);
1409  {
1410  int v_27 = z->l - z->c;
1411  z->ket = z->c;
1412  if (!r_mark_lAr(z)) { z->c = z->l - v_27; goto lab39; }
1413  z->bra = z->c;
1414  slice_del(z);
1415  if (!r_stem_suffix_chain_before_ki(z)) { z->c = z->l - v_27; goto lab39; }
1416  lab39:
1417  ;
1418  }
1419  } while (0);
1420  return 1;
1421 }
1422 
1423 static int r_post_process_last_consonants(struct SN_env * z) {
1424  int among_var;
1425  z->ket = z->c;
1426  among_var = find_among_b(z, a_23, 4, 0);
1427  if (!among_var) return 0;
1428  z->bra = z->c;
1429  switch (among_var) {
1430  case 1:
1431  slice_from_s(z, 1, s_5);
1432  break;
1433  case 2:
1434  slice_from_s(z, 2, s_6);
1435  break;
1436  case 3:
1437  slice_from_s(z, 1, s_7);
1438  break;
1439  case 4:
1440  slice_from_s(z, 1, s_8);
1441  break;
1442  }
1443  return 1;
1444 }
1445 
1447  z->ket = z->c;
1448  z->bra = z->c;
1449  do {
1450  int v_1 = z->l - z->c;
1451  if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab0;
1452  z->c--;
1453  break;
1454  lab0:
1455  z->c = z->l - v_1;
1456  if (z->c <= z->lb || z->p[z->c - 1] != 'g') return 0;
1457  z->c--;
1458  } while (0);
1459  if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
1460  do {
1461  int v_2 = z->l - z->c;
1462  do {
1463  int v_3 = z->l - z->c;
1464  if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab2;
1465  z->c--;
1466  break;
1467  lab2:
1468  z->c = z->l - v_3;
1469  if (!(eq_s_b(z, 2, s_9))) goto lab1;
1470  } while (0);
1471  slice_from_s(z, 2, s_10);
1472  break;
1473  lab1:
1474  z->c = z->l - v_2;
1475  do {
1476  int v_4 = z->l - z->c;
1477  if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab4;
1478  z->c--;
1479  break;
1480  lab4:
1481  z->c = z->l - v_4;
1482  if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab3;
1483  z->c--;
1484  } while (0);
1485  slice_from_s(z, 1, s_11);
1486  break;
1487  lab3:
1488  z->c = z->l - v_2;
1489  do {
1490  int v_5 = z->l - z->c;
1491  if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab6;
1492  z->c--;
1493  break;
1494  lab6:
1495  z->c = z->l - v_5;
1496  if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab5;
1497  z->c--;
1498  } while (0);
1499  slice_from_s(z, 1, s_12);
1500  break;
1501  lab5:
1502  z->c = z->l - v_2;
1503  do {
1504  int v_6 = z->l - z->c;
1505  if (!(eq_s_b(z, 2, s_13))) goto lab7;
1506  break;
1507  lab7:
1508  z->c = z->l - v_6;
1509  if (!(eq_s_b(z, 2, s_14))) return 0;
1510  } while (0);
1511  slice_from_s(z, 2, s_15);
1512  } while (0);
1513  return 1;
1514 }
1515 
1516 static int r_is_reserved_word(struct SN_env * z) {
1517  if (!(eq_s_b(z, 2, s_16))) return 0;
1518  {
1519  int v_1 = z->l - z->c;
1520  if (!(eq_s_b(z, 3, s_17))) { z->c = z->l - v_1; goto lab0; }
1521  lab0:
1522  ;
1523  }
1524  if (z->c > z->lb) return 0;
1525  return 1;
1526 }
1527 
1528 static int r_remove_proper_noun_suffix(struct SN_env * z) {
1529  {
1530  int v_1 = z->c;
1531  z->bra = z->c;
1532  while (1) {
1533  int v_2 = z->c;
1534  {
1535  int v_3 = z->c;
1536  if (z->c == z->l || z->p[z->c] != '\'') goto lab2;
1537  z->c++;
1538  goto lab1;
1539  lab2:
1540  z->c = v_3;
1541  }
1542  z->c = v_2;
1543  break;
1544  lab1:
1545  z->c = v_2;
1546  {
1547  int ret = skip_utf8(z->p, z->c, z->l, 1);
1548  if (ret < 0) goto lab0;
1549  z->c = ret;
1550  }
1551  }
1552  z->ket = z->c;
1553  slice_del(z);
1554  lab0:
1555  z->c = v_1;
1556  }
1557  {
1558  int v_4 = z->c;
1559  {
1560  int ret = skip_utf8(z->p, z->c, z->l, 2);
1561  if (ret < 0) goto lab3;
1562  z->c = ret;
1563  }
1564  while (1) {
1565  int v_5 = z->c;
1566  if (z->c == z->l || z->p[z->c] != '\'') goto lab4;
1567  z->c++;
1568  z->c = v_5;
1569  break;
1570  lab4:
1571  z->c = v_5;
1572  {
1573  int ret = skip_utf8(z->p, z->c, z->l, 1);
1574  if (ret < 0) goto lab3;
1575  z->c = ret;
1576  }
1577  }
1578  z->bra = z->c;
1579  z->c = z->l;
1580  z->ket = z->c;
1581  slice_del(z);
1582  lab3:
1583  z->c = v_4;
1584  }
1585  return 1;
1586 }
1587 
1588 static int r_more_than_one_syllable_word(struct SN_env * z) {
1589  {
1590  int v_1 = z->c;
1591  {
1592  int i; for (i = 2; i > 0; i--) {
1593  {
1594  int ret = out_grouping_U(z, g_vowel, 97, 305, 1);
1595  if (ret < 0) return 0;
1596  z->c += ret;
1597  }
1598  }
1599  }
1600  z->c = v_1;
1601  }
1602  return 1;
1603 }
1604 
1605 static int r_postlude(struct SN_env * z) {
1606  z->lb = z->c; z->c = z->l;
1607  {
1608  int v_1 = z->l - z->c;
1609  if (!r_is_reserved_word(z)) goto lab0;
1610  return 0;
1611  lab0:
1612  z->c = z->l - v_1;
1613  }
1614  {
1615  int v_2 = z->l - z->c;
1617  z->c = z->l - v_2;
1618  }
1619  {
1620  int v_3 = z->l - z->c;
1622  z->c = z->l - v_3;
1623  }
1624  z->c = z->lb;
1625  return 1;
1626 }
1627 
1630  {
1631  int ret = r_more_than_one_syllable_word(z);
1632  if (ret == 0) return ret;
1633  }
1634  z->lb = z->c; z->c = z->l;
1635  {
1636  int v_1 = z->l - z->c;
1638  z->c = z->l - v_1;
1639  }
1640  if (!((SN_local *)z)->b_continue_stemming_noun_suffixes) return 0;
1641  {
1642  int v_2 = z->l - z->c;
1644  z->c = z->l - v_2;
1645  }
1646  z->c = z->lb;
1647  return r_postlude(z);
1648 }
unsigned char symbol
Definition: api.h:4
static int stem(struct SN_env *z)
Definition: turkish.cc:1628
int out_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.cc:164
SNOWBALL_ERR slice_from_s(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.cc:439
int in_grouping_b_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.cc:152
int skip_b_utf8(const symbol *p, int c, int limit, int n)
Definition: utilities.cc:75
int eq_s_b(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.cc:243
SNOWBALL_ERR slice_del(struct SN_env *z)
Definition: utilities.cc:450
int out_grouping_b_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.cc:176
int skip_utf8(const symbol *p, int c, int limit, int n)
Definition: utilities.cc:50
int find_among_b(struct SN_env *z, const struct among *v, int v_size, int(*)(struct SN_env *))
Definition: utilities.cc:322
Definition: api.h:15
int lb
Definition: api.h:17
symbol * p
Definition: api.h:16
int ket
Definition: api.h:17
int c
Definition: api.h:17
int bra
Definition: api.h:17
int l
Definition: api.h:17
Definition: header.h:256
static const symbol s_22_0[4]
Definition: turkish.cc:356
static const symbol s_20_21[3]
Definition: turkish.cc:291
static int r_mark_ymUs_(struct SN_env *z)
Definition: turkish.cc:793
static int r_remove_proper_noun_suffix(struct SN_env *z)
Definition: turkish.cc:1528
static const symbol s_2[]
Definition: turkish.cc:56
static const symbol s_13_3[4]
Definition: turkish.cc:196
static int r_mark_suffix_with_optional_n_consonant(struct SN_env *z)
Definition: turkish.cc:448
static int r_mark_nUz(struct SN_env *z)
Definition: turkish.cc:755
static const symbol s_0_2[3]
Definition: turkish.cc:75
static const symbol s_20_26[2]
Definition: turkish.cc:296
static const symbol s_11_1[2]
Definition: turkish.cc:176
static int r_mark_yken(struct SN_env *z)
Definition: turkish.cc:803
static const symbol s_4[]
Definition: turkish.cc:58
static const symbol s_20_0[2]
Definition: turkish.cc:270
static int r_is_reserved_word(struct SN_env *z)
Definition: turkish.cc:1516
static const struct among a_8[4]
Definition: turkish.cc:154
static const symbol s_3_2[3]
Definition: turkish.cc:116
static const symbol s_12_0[2]
Definition: turkish.cc:182
static const struct among a_19[2]
Definition: turkish.cc:265
static const struct among a_12[4]
Definition: turkish.cc:186
static const symbol s_20_24[4]
Definition: turkish.cc:294
static const struct among a_17[4]
Definition: turkish.cc:237
static const symbol s_17_3[4]
Definition: turkish.cc:236
static const symbol s_15_2[7]
Definition: turkish.cc:217
static const symbol s_0_5[3]
Definition: turkish.cc:78
static int r_mark_suffix_with_optional_s_consonant(struct SN_env *z)
Definition: turkish.cc:483
static const symbol s_20_13[3]
Definition: turkish.cc:283
static const unsigned char g_vowel5[]
Definition: turkish.cc:390
static int r_mark_nUn(struct SN_env *z)
Definition: turkish.cc:623
static const symbol s_0_3[3]
Definition: turkish.cc:76
static int r_mark_yUm(struct SN_env *z)
Definition: turkish.cc:712
static const symbol s_3_1[2]
Definition: turkish.cc:115
static const symbol s_13_0[3]
Definition: turkish.cc:193
static const symbol s_0_0[1]
Definition: turkish.cc:73
static int r_mark_sUn(struct SN_env *z)
Definition: turkish.cc:722
static const symbol s_5_0[2]
Definition: turkish.cc:125
static const symbol s_21_3[3]
Definition: turkish.cc:340
static const struct among a_7[2]
Definition: turkish.cc:145
static const symbol s_20_10[3]
Definition: turkish.cc:280
static const symbol s_21_1[2]
Definition: turkish.cc:338
static const symbol s_20_14[4]
Definition: turkish.cc:284
static const unsigned char g_vowel2[]
Definition: turkish.cc:384
static const symbol s_2_3[3]
Definition: turkish.cc:106
static const symbol s_19_0[7]
Definition: turkish.cc:263
static const symbol s_2_0[2]
Definition: turkish.cc:103
static const struct among a_6[4]
Definition: turkish.cc:136
static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env *z)
Definition: turkish.cc:1446
static const struct among a_16[2]
Definition: turkish.cc:228
static const symbol s_20_22[4]
Definition: turkish.cc:292
static const symbol s_20_17[4]
Definition: turkish.cc:287
static const symbol s_18_7[4]
Definition: turkish.cc:251
static const struct among a_3[4]
Definition: turkish.cc:118
static const symbol s_6[]
Definition: turkish.cc:60
static const symbol s_21_6[3]
Definition: turkish.cc:343
static int r_mark_DA(struct SN_env *z)
Definition: turkish.cc:652
static const symbol s_3[]
Definition: turkish.cc:57
static const symbol s_3_0[2]
Definition: turkish.cc:114
static const symbol s_15_0[5]
Definition: turkish.cc:215
static const symbol s_19_1[6]
Definition: turkish.cc:264
static const symbol s_12_3[3]
Definition: turkish.cc:185
static const symbol s_20_6[4]
Definition: turkish.cc:276
static const symbol s_18_2[3]
Definition: turkish.cc:246
static const symbol s_20_3[3]
Definition: turkish.cc:273
static int r_mark_ylA(struct SN_env *z)
Definition: turkish.cc:688
static const struct among a_22[4]
Definition: turkish.cc:360
static const symbol s_20_31[3]
Definition: turkish.cc:301
static int r_mark_yA(struct SN_env *z)
Definition: turkish.cc:633
static const symbol s_7_1[3]
Definition: turkish.cc:144
static int r_mark_ndA(struct SN_env *z)
Definition: turkish.cc:661
static const symbol s_18_4[4]
Definition: turkish.cc:248
static const symbol s_18_1[3]
Definition: turkish.cc:245
static int r_mark_sU(struct SN_env *z)
Definition: turkish.cc:592
static const struct among a_23[4]
Definition: turkish.cc:371
static const symbol s_20_8[4]
Definition: turkish.cc:278
static const struct among a_5[2]
Definition: turkish.cc:127
static const symbol s_7[]
Definition: turkish.cc:61
static const symbol s_8_0[3]
Definition: turkish.cc:150
static const symbol s_13[]
Definition: turkish.cc:67
static int r_mark_yU(struct SN_env *z)
Definition: turkish.cc:606
static const symbol s_8_2[3]
Definition: turkish.cc:152
static const symbol s_23_1[1]
Definition: turkish.cc:368
static int r_mark_nA(struct SN_env *z)
Definition: turkish.cc:643
static int r_mark_yUz(struct SN_env *z)
Definition: turkish.cc:731
static const symbol s_20_27[2]
Definition: turkish.cc:297
static const symbol s_23_2[1]
Definition: turkish.cc:369
static const symbol s_18_3[3]
Definition: turkish.cc:247
static const symbol s_13_1[3]
Definition: turkish.cc:194
static const symbol s_20_19[3]
Definition: turkish.cc:289
static const symbol s_20_30[3]
Definition: turkish.cc:300
static const symbol s_17_0[3]
Definition: turkish.cc:233
static const struct among a_11[2]
Definition: turkish.cc:177
static const symbol s_14_0[2]
Definition: turkish.cc:204
static int r_mark_cAsInA(struct SN_env *z)
Definition: turkish.cc:773
static const struct among a_10[2]
Definition: turkish.cc:170
static const symbol s_18_0[3]
Definition: turkish.cc:244
static const symbol s_16_1[3]
Definition: turkish.cc:227
static const symbol s_10_1[2]
Definition: turkish.cc:169
static const symbol s_12_1[2]
Definition: turkish.cc:183
static const symbol s_21_5[3]
Definition: turkish.cc:342
static const symbol s_0_6[4]
Definition: turkish.cc:79
static const symbol s_0_9[4]
Definition: turkish.cc:82
static int r_mark_DAn(struct SN_env *z)
Definition: turkish.cc:670
static const symbol s_7_0[3]
Definition: turkish.cc:143
static int r_mark_lArI(struct SN_env *z)
Definition: turkish.cc:601
static const symbol s_20_4[3]
Definition: turkish.cc:274
static int r_check_vowel_harmony(struct SN_env *z)
Definition: turkish.cc:394
static int r_mark_ndAn(struct SN_env *z)
Definition: turkish.cc:679
static const struct among a_1[2]
Definition: turkish.cc:98
static const symbol s_8_1[3]
Definition: turkish.cc:151
static const symbol s_21_0[2]
Definition: turkish.cc:337
static const symbol s_22_1[4]
Definition: turkish.cc:357
static const symbol s_6_2[2]
Definition: turkish.cc:134
static int r_mark_suffix_with_optional_y_consonant(struct SN_env *z)
Definition: turkish.cc:518
static const symbol s_15_3[7]
Definition: turkish.cc:218
static const struct among a_14[4]
Definition: turkish.cc:208
static const symbol s_20_2[3]
Definition: turkish.cc:272
static const symbol s_20_23[4]
Definition: turkish.cc:293
static const symbol s_20_25[4]
Definition: turkish.cc:295
static const symbol s_17_2[4]
Definition: turkish.cc:235
static int r_mark_ki(struct SN_env *z)
Definition: turkish.cc:698
static const symbol s_16[]
Definition: turkish.cc:70
static int r_postlude(struct SN_env *z)
Definition: turkish.cc:1605
static const symbol s_14[]
Definition: turkish.cc:68
static const unsigned char g_vowel1[]
Definition: turkish.cc:382
static const struct among a_20[32]
Definition: turkish.cc:302
static int r_mark_DUr(struct SN_env *z)
Definition: turkish.cc:764
static const symbol s_15_1[5]
Definition: turkish.cc:216
static const symbol s_9_0[4]
Definition: turkish.cc:161
static int r_stem_nominal_verb_suffixes(struct SN_env *z)
Definition: turkish.cc:808
static const struct among a_18[8]
Definition: turkish.cc:252
static const struct among a_15[4]
Definition: turkish.cc:219
static const symbol s_0_7[4]
Definition: turkish.cc:80
static const symbol s_10[]
Definition: turkish.cc:64
static int r_mark_yDU(struct SN_env *z)
Definition: turkish.cc:778
static const struct among a_2[4]
Definition: turkish.cc:107
static const symbol s_1[]
Definition: turkish.cc:55
static const symbol s_20_9[4]
Definition: turkish.cc:279
static const symbol s_21_7[3]
Definition: turkish.cc:344
static const symbol s_9_1[4]
Definition: turkish.cc:162
static const symbol s_20_28[3]
Definition: turkish.cc:298
static const struct among a_13[4]
Definition: turkish.cc:197
static const symbol s_14_2[3]
Definition: turkish.cc:206
static const symbol s_20_20[3]
Definition: turkish.cc:290
static const symbol s_3_3[3]
Definition: turkish.cc:117
Xapian::Internal::Snowball::Turkish::SN_local SN_local
Definition: turkish.cc:10
static const struct among a_9[2]
Definition: turkish.cc:163
static const symbol s_17_1[3]
Definition: turkish.cc:234
static const symbol s_2_2[3]
Definition: turkish.cc:105
static const symbol s_20_1[2]
Definition: turkish.cc:271
static int r_mark_lAr(struct SN_env *z)
Definition: turkish.cc:746
static int r_mark_ysA(struct SN_env *z)
Definition: turkish.cc:787
static const symbol s_20_5[3]
Definition: turkish.cc:275
static const symbol s_11[]
Definition: turkish.cc:65
static const symbol s_12[]
Definition: turkish.cc:66
static int r_stem_suffix_chain_before_ki(struct SN_env *z)
Definition: turkish.cc:971
static const symbol s_6_1[2]
Definition: turkish.cc:133
static const unsigned char g_U[]
Definition: turkish.cc:380
static const symbol s_20_18[3]
Definition: turkish.cc:288
static const symbol s_6_3[2]
Definition: turkish.cc:135
static int r_mark_suffix_with_optional_U_vowel(struct SN_env *z)
Definition: turkish.cc:553
static const unsigned char g_vowel6[]
Definition: turkish.cc:392
static int r_mark_nU(struct SN_env *z)
Definition: turkish.cc:615
static const struct among a_21[8]
Definition: turkish.cc:345
static const symbol s_21_4[3]
Definition: turkish.cc:341
static const symbol s_20_7[4]
Definition: turkish.cc:277
static const symbol s_23_0[1]
Definition: turkish.cc:367
static const symbol s_0_1[1]
Definition: turkish.cc:74
static const symbol s_0_8[4]
Definition: turkish.cc:81
static int r_more_than_one_syllable_word(struct SN_env *z)
Definition: turkish.cc:1588
static int r_mark_possessives(struct SN_env *z)
Definition: turkish.cc:586
static const symbol s_10_0[2]
Definition: turkish.cc:168
static const struct among a_0[10]
Definition: turkish.cc:83
static const symbol s_22_2[5]
Definition: turkish.cc:358
static int r_mark_ncA(struct SN_env *z)
Definition: turkish.cc:702
static const symbol s_20_12[3]
Definition: turkish.cc:282
static const symbol s_5_1[2]
Definition: turkish.cc:126
static const symbol s_18_5[4]
Definition: turkish.cc:249
static const symbol s_1_1[5]
Definition: turkish.cc:97
static const symbol s_20_29[3]
Definition: turkish.cc:299
static const symbol s_18_6[4]
Definition: turkish.cc:250
static const symbol s_17[]
Definition: turkish.cc:71
static const unsigned char g_vowel4[]
Definition: turkish.cc:388
static int r_post_process_last_consonants(struct SN_env *z)
Definition: turkish.cc:1423
static int r_stem_noun_suffixes(struct SN_env *z)
Definition: turkish.cc:1102
static const symbol s_22_3[5]
Definition: turkish.cc:359
static const symbol s_14_1[2]
Definition: turkish.cc:205
static const symbol s_13_2[4]
Definition: turkish.cc:195
static int r_mark_sUnUz(struct SN_env *z)
Definition: turkish.cc:741
static const symbol s_16_0[3]
Definition: turkish.cc:226
static const unsigned char g_vowel[]
Definition: turkish.cc:378
static const symbol s_21_2[3]
Definition: turkish.cc:339
static const symbol s_2_1[2]
Definition: turkish.cc:104
static const symbol s_14_3[3]
Definition: turkish.cc:207
static const unsigned char g_vowel3[]
Definition: turkish.cc:386
static const symbol s_6_0[2]
Definition: turkish.cc:132
static const symbol s_12_2[3]
Definition: turkish.cc:184
static const symbol s_8[]
Definition: turkish.cc:62
static const symbol s_9[]
Definition: turkish.cc:63
static const symbol s_20_15[4]
Definition: turkish.cc:285
static const symbol s_5[]
Definition: turkish.cc:59
static const symbol s_20_16[4]
Definition: turkish.cc:286
static const symbol s_20_11[3]
Definition: turkish.cc:281
static const symbol s_15[]
Definition: turkish.cc:69
static const symbol s_8_3[3]
Definition: turkish.cc:153
static const symbol s_11_0[2]
Definition: turkish.cc:175
static const symbol s_1_0[4]
Definition: turkish.cc:96
static const symbol s_23_3[2]
Definition: turkish.cc:370
static const symbol s_0[]
Definition: turkish.cc:54
static const symbol s_0_4[3]
Definition: turkish.cc:77