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