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