languages/turkish.cc

Go to the documentation of this file.
00001 /* This file was generated automatically by the Snowball to ISO C++ compiler */
00002 
00003 #include <limits.h>
00004 #include "turkish.h"
00005 
00006 static const symbol s_pool[] = {
00007 #define s_0_0 0
00008 'm',
00009 #define s_0_1 1
00010 'n',
00011 #define s_0_2 2
00012 'm', 'i', 'z',
00013 #define s_0_3 5
00014 'n', 'i', 'z',
00015 #define s_0_4 8
00016 'm', 'u', 'z',
00017 #define s_0_5 11
00018 'n', 'u', 'z',
00019 #define s_0_6 14
00020 'm', 0xC4, 0xB1, 'z',
00021 #define s_0_7 18
00022 'n', 0xC4, 0xB1, 'z',
00023 #define s_0_8 22
00024 'm', 0xC3, 0xBC, 'z',
00025 #define s_0_9 26
00026 'n', 0xC3, 0xBC, 'z',
00027 #define s_1_0 30
00028 'l', 'e', 'r', 'i',
00029 #define s_1_1 34
00030 'l', 'a', 'r', 0xC4, 0xB1,
00031 #define s_2_0 39
00032 'n', 'i',
00033 #define s_2_1 41
00034 'n', 'u',
00035 #define s_2_2 43
00036 'n', 0xC4, 0xB1,
00037 #define s_2_3 46
00038 'n', 0xC3, 0xBC,
00039 #define s_3_0 49
00040 'i', 'n',
00041 #define s_3_1 51
00042 'u', 'n',
00043 #define s_3_2 53
00044 0xC4, 0xB1, 'n',
00045 #define s_3_3 56
00046 0xC3, 0xBC, 'n',
00047 #define s_4_0 59
00048 'a',
00049 #define s_4_1 60
00050 'e',
00051 #define s_5_0 61
00052 'n', 'a',
00053 #define s_5_1 63
00054 'n', 'e',
00055 #define s_6_0 65
00056 'd', 'a',
00057 #define s_6_1 67
00058 't', 'a',
00059 #define s_6_2 69
00060 'd', 'e',
00061 #define s_6_3 71
00062 't', 'e',
00063 #define s_7_0 73
00064 'n', 'd', 'a',
00065 #define s_7_1 76
00066 'n', 'd', 'e',
00067 #define s_8_0 79
00068 'd', 'a', 'n',
00069 #define s_8_1 82
00070 't', 'a', 'n',
00071 #define s_8_2 85
00072 'd', 'e', 'n',
00073 #define s_8_3 88
00074 't', 'e', 'n',
00075 #define s_9_0 91
00076 'n', 'd', 'a', 'n',
00077 #define s_9_1 95
00078 'n', 'd', 'e', 'n',
00079 #define s_10_0 99
00080 'l', 'a',
00081 #define s_10_1 101
00082 'l', 'e',
00083 #define s_11_0 103
00084 'c', 'a',
00085 #define s_11_1 105
00086 'c', 'e',
00087 #define s_12_0 107
00088 'i', 'm',
00089 #define s_12_1 109
00090 'u', 'm',
00091 #define s_12_2 111
00092 0xC4, 0xB1, 'm',
00093 #define s_12_3 114
00094 0xC3, 0xBC, 'm',
00095 #define s_13_0 117
00096 's', 'i', 'n',
00097 #define s_13_1 120
00098 's', 'u', 'n',
00099 #define s_13_2 123
00100 's', 0xC4, 0xB1, 'n',
00101 #define s_13_3 127
00102 's', 0xC3, 0xBC, 'n',
00103 #define s_14_0 131
00104 'i', 'z',
00105 #define s_14_1 133
00106 'u', 'z',
00107 #define s_14_2 135
00108 0xC4, 0xB1, 'z',
00109 #define s_14_3 138
00110 0xC3, 0xBC, 'z',
00111 #define s_15_0 141
00112 's', 'i', 'n', 'i', 'z',
00113 #define s_15_1 146
00114 's', 'u', 'n', 'u', 'z',
00115 #define s_15_2 151
00116 's', 0xC4, 0xB1, 'n', 0xC4, 0xB1, 'z',
00117 #define s_15_3 158
00118 's', 0xC3, 0xBC, 'n', 0xC3, 0xBC, 'z',
00119 #define s_16_0 165
00120 'l', 'a', 'r',
00121 #define s_16_1 168
00122 'l', 'e', 'r',
00123 #define s_17_0 171
00124 'n', 'i', 'z',
00125 #define s_17_1 174
00126 'n', 'u', 'z',
00127 #define s_17_2 177
00128 'n', 0xC4, 0xB1, 'z',
00129 #define s_17_3 181
00130 'n', 0xC3, 0xBC, 'z',
00131 #define s_18_0 185
00132 'd', 'i', 'r',
00133 #define s_18_1 188
00134 't', 'i', 'r',
00135 #define s_18_2 191
00136 'd', 'u', 'r',
00137 #define s_18_3 194
00138 't', 'u', 'r',
00139 #define s_18_4 197
00140 'd', 0xC4, 0xB1, 'r',
00141 #define s_18_5 201
00142 't', 0xC4, 0xB1, 'r',
00143 #define s_18_6 205
00144 'd', 0xC3, 0xBC, 'r',
00145 #define s_18_7 209
00146 't', 0xC3, 0xBC, 'r',
00147 #define s_19_0 213
00148 'c', 'a', 's', 0xC4, 0xB1, 'n', 'a',
00149 #define s_19_1 220
00150 'c', 'e', 's', 'i', 'n', 'e',
00151 #define s_20_0 226
00152 'd', 'i',
00153 #define s_20_1 228
00154 't', 'i',
00155 #define s_20_2 230
00156 'd', 'i', 'k',
00157 #define s_20_3 233
00158 't', 'i', 'k',
00159 #define s_20_4 236
00160 'd', 'u', 'k',
00161 #define s_20_5 239
00162 't', 'u', 'k',
00163 #define s_20_6 242
00164 'd', 0xC4, 0xB1, 'k',
00165 #define s_20_7 246
00166 't', 0xC4, 0xB1, 'k',
00167 #define s_20_8 250
00168 'd', 0xC3, 0xBC, 'k',
00169 #define s_20_9 254
00170 't', 0xC3, 0xBC, 'k',
00171 #define s_20_10 258
00172 'd', 'i', 'm',
00173 #define s_20_11 261
00174 't', 'i', 'm',
00175 #define s_20_12 264
00176 'd', 'u', 'm',
00177 #define s_20_13 267
00178 't', 'u', 'm',
00179 #define s_20_14 270
00180 'd', 0xC4, 0xB1, 'm',
00181 #define s_20_15 274
00182 't', 0xC4, 0xB1, 'm',
00183 #define s_20_16 278
00184 'd', 0xC3, 0xBC, 'm',
00185 #define s_20_17 282
00186 't', 0xC3, 0xBC, 'm',
00187 #define s_20_18 286
00188 'd', 'i', 'n',
00189 #define s_20_19 289
00190 't', 'i', 'n',
00191 #define s_20_20 292
00192 'd', 'u', 'n',
00193 #define s_20_21 295
00194 't', 'u', 'n',
00195 #define s_20_22 298
00196 'd', 0xC4, 0xB1, 'n',
00197 #define s_20_23 302
00198 't', 0xC4, 0xB1, 'n',
00199 #define s_20_24 306
00200 'd', 0xC3, 0xBC, 'n',
00201 #define s_20_25 310
00202 't', 0xC3, 0xBC, 'n',
00203 #define s_20_26 314
00204 'd', 'u',
00205 #define s_20_27 316
00206 't', 'u',
00207 #define s_20_28 318
00208 'd', 0xC4, 0xB1,
00209 #define s_20_29 321
00210 't', 0xC4, 0xB1,
00211 #define s_20_30 324
00212 'd', 0xC3, 0xBC,
00213 #define s_20_31 327
00214 't', 0xC3, 0xBC,
00215 #define s_21_0 330
00216 's', 'a',
00217 #define s_21_1 332
00218 's', 'e',
00219 #define s_21_2 334
00220 's', 'a', 'k',
00221 #define s_21_3 337
00222 's', 'e', 'k',
00223 #define s_21_4 340
00224 's', 'a', 'm',
00225 #define s_21_5 343
00226 's', 'e', 'm',
00227 #define s_21_6 346
00228 's', 'a', 'n',
00229 #define s_21_7 349
00230 's', 'e', 'n',
00231 #define s_22_0 352
00232 'm', 'i', 0xC5, 0x9F,
00233 #define s_22_1 356
00234 'm', 'u', 0xC5, 0x9F,
00235 #define s_22_2 360
00236 'm', 0xC4, 0xB1, 0xC5, 0x9F,
00237 #define s_22_3 365
00238 'm', 0xC3, 0xBC, 0xC5, 0x9F,
00239 #define s_23_0 370
00240 'b',
00241 #define s_23_1 371
00242 'c',
00243 #define s_23_2 372
00244 'd',
00245 #define s_23_3 373
00246 0xC4, 0x9F,
00247 };
00248 
00249 
00250 static const struct among a_0[10] =
00251 {
00252 /*  0 */ { 1, s_0_0, -1, -1},
00253 /*  1 */ { 1, s_0_1, -1, -1},
00254 /*  2 */ { 3, s_0_2, -1, -1},
00255 /*  3 */ { 3, s_0_3, -1, -1},
00256 /*  4 */ { 3, s_0_4, -1, -1},
00257 /*  5 */ { 3, s_0_5, -1, -1},
00258 /*  6 */ { 4, s_0_6, -1, -1},
00259 /*  7 */ { 4, s_0_7, -1, -1},
00260 /*  8 */ { 4, s_0_8, -1, -1},
00261 /*  9 */ { 4, s_0_9, -1, -1}
00262 };
00263 
00264 
00265 static const struct among a_1[2] =
00266 {
00267 /*  0 */ { 4, s_1_0, -1, -1},
00268 /*  1 */ { 5, s_1_1, -1, -1}
00269 };
00270 
00271 
00272 static const struct among a_2[4] =
00273 {
00274 /*  0 */ { 2, s_2_0, -1, -1},
00275 /*  1 */ { 2, s_2_1, -1, -1},
00276 /*  2 */ { 3, s_2_2, -1, -1},
00277 /*  3 */ { 3, s_2_3, -1, -1}
00278 };
00279 
00280 
00281 static const struct among a_3[4] =
00282 {
00283 /*  0 */ { 2, s_3_0, -1, -1},
00284 /*  1 */ { 2, s_3_1, -1, -1},
00285 /*  2 */ { 3, s_3_2, -1, -1},
00286 /*  3 */ { 3, s_3_3, -1, -1}
00287 };
00288 
00289 
00290 static const struct among a_4[2] =
00291 {
00292 /*  0 */ { 1, s_4_0, -1, -1},
00293 /*  1 */ { 1, s_4_1, -1, -1}
00294 };
00295 
00296 
00297 static const struct among a_5[2] =
00298 {
00299 /*  0 */ { 2, s_5_0, -1, -1},
00300 /*  1 */ { 2, s_5_1, -1, -1}
00301 };
00302 
00303 
00304 static const struct among a_6[4] =
00305 {
00306 /*  0 */ { 2, s_6_0, -1, -1},
00307 /*  1 */ { 2, s_6_1, -1, -1},
00308 /*  2 */ { 2, s_6_2, -1, -1},
00309 /*  3 */ { 2, s_6_3, -1, -1}
00310 };
00311 
00312 
00313 static const struct among a_7[2] =
00314 {
00315 /*  0 */ { 3, s_7_0, -1, -1},
00316 /*  1 */ { 3, s_7_1, -1, -1}
00317 };
00318 
00319 
00320 static const struct among a_8[4] =
00321 {
00322 /*  0 */ { 3, s_8_0, -1, -1},
00323 /*  1 */ { 3, s_8_1, -1, -1},
00324 /*  2 */ { 3, s_8_2, -1, -1},
00325 /*  3 */ { 3, s_8_3, -1, -1}
00326 };
00327 
00328 
00329 static const struct among a_9[2] =
00330 {
00331 /*  0 */ { 4, s_9_0, -1, -1},
00332 /*  1 */ { 4, s_9_1, -1, -1}
00333 };
00334 
00335 
00336 static const struct among a_10[2] =
00337 {
00338 /*  0 */ { 2, s_10_0, -1, -1},
00339 /*  1 */ { 2, s_10_1, -1, -1}
00340 };
00341 
00342 
00343 static const struct among a_11[2] =
00344 {
00345 /*  0 */ { 2, s_11_0, -1, -1},
00346 /*  1 */ { 2, s_11_1, -1, -1}
00347 };
00348 
00349 
00350 static const struct among a_12[4] =
00351 {
00352 /*  0 */ { 2, s_12_0, -1, -1},
00353 /*  1 */ { 2, s_12_1, -1, -1},
00354 /*  2 */ { 3, s_12_2, -1, -1},
00355 /*  3 */ { 3, s_12_3, -1, -1}
00356 };
00357 
00358 
00359 static const struct among a_13[4] =
00360 {
00361 /*  0 */ { 3, s_13_0, -1, -1},
00362 /*  1 */ { 3, s_13_1, -1, -1},
00363 /*  2 */ { 4, s_13_2, -1, -1},
00364 /*  3 */ { 4, s_13_3, -1, -1}
00365 };
00366 
00367 
00368 static const struct among a_14[4] =
00369 {
00370 /*  0 */ { 2, s_14_0, -1, -1},
00371 /*  1 */ { 2, s_14_1, -1, -1},
00372 /*  2 */ { 3, s_14_2, -1, -1},
00373 /*  3 */ { 3, s_14_3, -1, -1}
00374 };
00375 
00376 
00377 static const struct among a_15[4] =
00378 {
00379 /*  0 */ { 5, s_15_0, -1, -1},
00380 /*  1 */ { 5, s_15_1, -1, -1},
00381 /*  2 */ { 7, s_15_2, -1, -1},
00382 /*  3 */ { 7, s_15_3, -1, -1}
00383 };
00384 
00385 
00386 static const struct among a_16[2] =
00387 {
00388 /*  0 */ { 3, s_16_0, -1, -1},
00389 /*  1 */ { 3, s_16_1, -1, -1}
00390 };
00391 
00392 
00393 static const struct among a_17[4] =
00394 {
00395 /*  0 */ { 3, s_17_0, -1, -1},
00396 /*  1 */ { 3, s_17_1, -1, -1},
00397 /*  2 */ { 4, s_17_2, -1, -1},
00398 /*  3 */ { 4, s_17_3, -1, -1}
00399 };
00400 
00401 
00402 static const struct among a_18[8] =
00403 {
00404 /*  0 */ { 3, s_18_0, -1, -1},
00405 /*  1 */ { 3, s_18_1, -1, -1},
00406 /*  2 */ { 3, s_18_2, -1, -1},
00407 /*  3 */ { 3, s_18_3, -1, -1},
00408 /*  4 */ { 4, s_18_4, -1, -1},
00409 /*  5 */ { 4, s_18_5, -1, -1},
00410 /*  6 */ { 4, s_18_6, -1, -1},
00411 /*  7 */ { 4, s_18_7, -1, -1}
00412 };
00413 
00414 
00415 static const struct among a_19[2] =
00416 {
00417 /*  0 */ { 7, s_19_0, -1, -1},
00418 /*  1 */ { 6, s_19_1, -1, -1}
00419 };
00420 
00421 
00422 static const struct among a_20[32] =
00423 {
00424 /*  0 */ { 2, s_20_0, -1, -1},
00425 /*  1 */ { 2, s_20_1, -1, -1},
00426 /*  2 */ { 3, s_20_2, -1, -1},
00427 /*  3 */ { 3, s_20_3, -1, -1},
00428 /*  4 */ { 3, s_20_4, -1, -1},
00429 /*  5 */ { 3, s_20_5, -1, -1},
00430 /*  6 */ { 4, s_20_6, -1, -1},
00431 /*  7 */ { 4, s_20_7, -1, -1},
00432 /*  8 */ { 4, s_20_8, -1, -1},
00433 /*  9 */ { 4, s_20_9, -1, -1},
00434 /* 10 */ { 3, s_20_10, -1, -1},
00435 /* 11 */ { 3, s_20_11, -1, -1},
00436 /* 12 */ { 3, s_20_12, -1, -1},
00437 /* 13 */ { 3, s_20_13, -1, -1},
00438 /* 14 */ { 4, s_20_14, -1, -1},
00439 /* 15 */ { 4, s_20_15, -1, -1},
00440 /* 16 */ { 4, s_20_16, -1, -1},
00441 /* 17 */ { 4, s_20_17, -1, -1},
00442 /* 18 */ { 3, s_20_18, -1, -1},
00443 /* 19 */ { 3, s_20_19, -1, -1},
00444 /* 20 */ { 3, s_20_20, -1, -1},
00445 /* 21 */ { 3, s_20_21, -1, -1},
00446 /* 22 */ { 4, s_20_22, -1, -1},
00447 /* 23 */ { 4, s_20_23, -1, -1},
00448 /* 24 */ { 4, s_20_24, -1, -1},
00449 /* 25 */ { 4, s_20_25, -1, -1},
00450 /* 26 */ { 2, s_20_26, -1, -1},
00451 /* 27 */ { 2, s_20_27, -1, -1},
00452 /* 28 */ { 3, s_20_28, -1, -1},
00453 /* 29 */ { 3, s_20_29, -1, -1},
00454 /* 30 */ { 3, s_20_30, -1, -1},
00455 /* 31 */ { 3, s_20_31, -1, -1}
00456 };
00457 
00458 
00459 static const struct among a_21[8] =
00460 {
00461 /*  0 */ { 2, s_21_0, -1, -1},
00462 /*  1 */ { 2, s_21_1, -1, -1},
00463 /*  2 */ { 3, s_21_2, -1, -1},
00464 /*  3 */ { 3, s_21_3, -1, -1},
00465 /*  4 */ { 3, s_21_4, -1, -1},
00466 /*  5 */ { 3, s_21_5, -1, -1},
00467 /*  6 */ { 3, s_21_6, -1, -1},
00468 /*  7 */ { 3, s_21_7, -1, -1}
00469 };
00470 
00471 
00472 static const struct among a_22[4] =
00473 {
00474 /*  0 */ { 4, s_22_0, -1, -1},
00475 /*  1 */ { 4, s_22_1, -1, -1},
00476 /*  2 */ { 5, s_22_2, -1, -1},
00477 /*  3 */ { 5, s_22_3, -1, -1}
00478 };
00479 
00480 
00481 static const struct among a_23[4] =
00482 {
00483 /*  0 */ { 1, s_23_0, -1, 1},
00484 /*  1 */ { 1, s_23_1, -1, 2},
00485 /*  2 */ { 1, s_23_2, -1, 3},
00486 /*  3 */ { 2, s_23_3, -1, 4}
00487 };
00488 
00489 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 };
00490 
00491 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 };
00492 
00493 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 };
00494 
00495 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 };
00496 
00497 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 };
00498 
00499 static const unsigned char g_vowel4[] = { 17 };
00500 
00501 static const unsigned char g_vowel5[] = { 65 };
00502 
00503 static const unsigned char g_vowel6[] = { 65 };
00504 
00505 static const symbol s_0[] = { 0xC4, 0xB1 };
00506 static const symbol s_1[] = { 0xC3, 0xB6 };
00507 static const symbol s_2[] = { 0xC3, 0xBC };
00508 static const symbol s_3[] = { 'k', 'i' };
00509 static const symbol s_4[] = { 'k', 'e', 'n' };
00510 static const symbol s_5[] = { 'p' };
00511 static const symbol s_6[] = { 0xC3, 0xA7 };
00512 static const symbol s_7[] = { 't' };
00513 static const symbol s_8[] = { 'k' };
00514 static const symbol s_9[] = { 0xC4, 0xB1 };
00515 static const symbol s_10[] = { 0xC4, 0xB1 };
00516 static const symbol s_11[] = { 'i' };
00517 static const symbol s_12[] = { 'u' };
00518 static const symbol s_13[] = { 0xC3, 0xB6 };
00519 static const symbol s_14[] = { 0xC3, 0xBC };
00520 static const symbol s_15[] = { 0xC3, 0xBC };
00521 static const symbol s_16[] = { 'a', 'd' };
00522 static const symbol s_17[] = { 's', 'o', 'y', 'a', 'd' };
00523 
00524 int Xapian::InternalStemTurkish::r_check_vowel_harmony() { /* backwardmode */
00525     {   int m_test1 = l - c; /* test, line 112 */
00526         if (out_grouping_b_U(g_vowel, 97, 305, 1) < 0) return 0; /* goto */ /* grouping vowel, line 114 */
00527         {   int m2 = l - c; (void)m2; /* or, line 116 */
00528             if (c <= lb || p[c - 1] != 'a') goto lab1;
00529             c--;
00530             if (out_grouping_b_U(g_vowel1, 97, 305, 1) < 0) goto lab1; /* goto */ /* grouping vowel1, line 116 */
00531             goto lab0;
00532         lab1:
00533             c = l - m2;
00534             if (c <= lb || p[c - 1] != 'e') goto lab2;
00535             c--;
00536             if (out_grouping_b_U(g_vowel2, 101, 252, 1) < 0) goto lab2; /* goto */ /* grouping vowel2, line 117 */
00537             goto lab0;
00538         lab2:
00539             c = l - m2;
00540             if (!(eq_s_b(2, s_0))) goto lab3; /* literal, line 118 */
00541             if (out_grouping_b_U(g_vowel3, 97, 305, 1) < 0) goto lab3; /* goto */ /* grouping vowel3, line 118 */
00542             goto lab0;
00543         lab3:
00544             c = l - m2;
00545             if (c <= lb || p[c - 1] != 'i') goto lab4;
00546             c--;
00547             if (out_grouping_b_U(g_vowel4, 101, 105, 1) < 0) goto lab4; /* goto */ /* grouping vowel4, line 119 */
00548             goto lab0;
00549         lab4:
00550             c = l - m2;
00551             if (c <= lb || p[c - 1] != 'o') goto lab5;
00552             c--;
00553             if (out_grouping_b_U(g_vowel5, 111, 117, 1) < 0) goto lab5; /* goto */ /* grouping vowel5, line 120 */
00554             goto lab0;
00555         lab5:
00556             c = l - m2;
00557             if (!(eq_s_b(2, s_1))) goto lab6; /* literal, line 121 */
00558             if (out_grouping_b_U(g_vowel6, 246, 252, 1) < 0) goto lab6; /* goto */ /* grouping vowel6, line 121 */
00559             goto lab0;
00560         lab6:
00561             c = l - m2;
00562             if (c <= lb || p[c - 1] != 'u') goto lab7;
00563             c--;
00564             if (out_grouping_b_U(g_vowel5, 111, 117, 1) < 0) goto lab7; /* goto */ /* grouping vowel5, line 122 */
00565             goto lab0;
00566         lab7:
00567             c = l - m2;
00568             if (!(eq_s_b(2, s_2))) return 0; /* literal, line 123 */
00569             if (out_grouping_b_U(g_vowel6, 246, 252, 1) < 0) return 0; /* goto */ /* grouping vowel6, line 123 */
00570         }
00571     lab0:
00572         c = l - m_test1;
00573     }
00574     return 1;
00575 }
00576 
00577 int Xapian::InternalStemTurkish::r_mark_suffix_with_optional_n_consonant() { /* backwardmode */
00578     {   int m1 = l - c; (void)m1; /* or, line 134 */
00579         if (c <= lb || p[c - 1] != 'n') goto lab1;
00580         c--;
00581         {   int m_test2 = l - c; /* test, line 133 */
00582             if (in_grouping_b_U(g_vowel, 97, 305, 0)) goto lab1; /* grouping vowel, line 133 */
00583             c = l - m_test2;
00584         }
00585         goto lab0;
00586     lab1:
00587         c = l - m1;
00588         {   int m3 = l - c; (void)m3; /* not, line 135 */
00589             {   int m_test4 = l - c; /* test, line 135 */
00590                 if (c <= lb || p[c - 1] != 'n') goto lab2;
00591                 c--;
00592                 c = l - m_test4;
00593             }
00594             return 0;
00595         lab2:
00596             c = l - m3;
00597         }
00598         {   int m_test5 = l - c; /* test, line 135 */
00599             {   int ret = skip_utf8(p, c, lb, 0, -1);
00600                 if (ret < 0) return 0;
00601                 c = ret; /* next, line 135 */
00602             }
00603             if (in_grouping_b_U(g_vowel, 97, 305, 0)) return 0; /* grouping vowel, line 135 */
00604             c = l - m_test5;
00605         }
00606     }
00607 lab0:
00608     return 1;
00609 }
00610 
00611 int Xapian::InternalStemTurkish::r_mark_suffix_with_optional_s_consonant() { /* backwardmode */
00612     {   int m1 = l - c; (void)m1; /* or, line 145 */
00613         if (c <= lb || p[c - 1] != 's') goto lab1;
00614         c--;
00615         {   int m_test2 = l - c; /* test, line 144 */
00616             if (in_grouping_b_U(g_vowel, 97, 305, 0)) goto lab1; /* grouping vowel, line 144 */
00617             c = l - m_test2;
00618         }
00619         goto lab0;
00620     lab1:
00621         c = l - m1;
00622         {   int m3 = l - c; (void)m3; /* not, line 146 */
00623             {   int m_test4 = l - c; /* test, line 146 */
00624                 if (c <= lb || p[c - 1] != 's') goto lab2;
00625                 c--;
00626                 c = l - m_test4;
00627             }
00628             return 0;
00629         lab2:
00630             c = l - m3;
00631         }
00632         {   int m_test5 = l - c; /* test, line 146 */
00633             {   int ret = skip_utf8(p, c, lb, 0, -1);
00634                 if (ret < 0) return 0;
00635                 c = ret; /* next, line 146 */
00636             }
00637             if (in_grouping_b_U(g_vowel, 97, 305, 0)) return 0; /* grouping vowel, line 146 */
00638             c = l - m_test5;
00639         }
00640     }
00641 lab0:
00642     return 1;
00643 }
00644 
00645 int Xapian::InternalStemTurkish::r_mark_suffix_with_optional_y_consonant() { /* backwardmode */
00646     {   int m1 = l - c; (void)m1; /* or, line 155 */
00647         if (c <= lb || p[c - 1] != 'y') goto lab1;
00648         c--;
00649         {   int m_test2 = l - c; /* test, line 154 */
00650             if (in_grouping_b_U(g_vowel, 97, 305, 0)) goto lab1; /* grouping vowel, line 154 */
00651             c = l - m_test2;
00652         }
00653         goto lab0;
00654     lab1:
00655         c = l - m1;
00656         {   int m3 = l - c; (void)m3; /* not, line 156 */
00657             {   int m_test4 = l - c; /* test, line 156 */
00658                 if (c <= lb || p[c - 1] != 'y') goto lab2;
00659                 c--;
00660                 c = l - m_test4;
00661             }
00662             return 0;
00663         lab2:
00664             c = l - m3;
00665         }
00666         {   int m_test5 = l - c; /* test, line 156 */
00667             {   int ret = skip_utf8(p, c, lb, 0, -1);
00668                 if (ret < 0) return 0;
00669                 c = ret; /* next, line 156 */
00670             }
00671             if (in_grouping_b_U(g_vowel, 97, 305, 0)) return 0; /* grouping vowel, line 156 */
00672             c = l - m_test5;
00673         }
00674     }
00675 lab0:
00676     return 1;
00677 }
00678 
00679 int Xapian::InternalStemTurkish::r_mark_suffix_with_optional_U_vowel() { /* backwardmode */
00680     {   int m1 = l - c; (void)m1; /* or, line 161 */
00681         if (in_grouping_b_U(g_U, 105, 305, 0)) goto lab1; /* grouping U, line 160 */
00682         {   int m_test2 = l - c; /* test, line 160 */
00683             if (out_grouping_b_U(g_vowel, 97, 305, 0)) goto lab1; /* non vowel, line 160 */
00684             c = l - m_test2;
00685         }
00686         goto lab0;
00687     lab1:
00688         c = l - m1;
00689         {   int m3 = l - c; (void)m3; /* not, line 162 */
00690             {   int m_test4 = l - c; /* test, line 162 */
00691                 if (in_grouping_b_U(g_U, 105, 305, 0)) goto lab2; /* grouping U, line 162 */
00692                 c = l - m_test4;
00693             }
00694             return 0;
00695         lab2:
00696             c = l - m3;
00697         }
00698         {   int m_test5 = l - c; /* test, line 162 */
00699             {   int ret = skip_utf8(p, c, lb, 0, -1);
00700                 if (ret < 0) return 0;
00701                 c = ret; /* next, line 162 */
00702             }
00703             if (out_grouping_b_U(g_vowel, 97, 305, 0)) return 0; /* non vowel, line 162 */
00704             c = l - m_test5;
00705         }
00706     }
00707 lab0:
00708     return 1;
00709 }
00710 
00711 int Xapian::InternalStemTurkish::r_mark_possessives() { /* backwardmode */
00712     if (c <= lb || p[c - 1] >> 5 != 3 || !((67133440 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* among, line 167 */
00713     if (!(find_among_b(s_pool, a_0, 10, 0, 0))) return 0;
00714     {   int ret = r_mark_suffix_with_optional_U_vowel(); /* call mark_suffix_with_optional_U_vowel, line 169 */
00715         if (ret <= 0) return ret;
00716     }
00717     return 1;
00718 }
00719 
00720 int Xapian::InternalStemTurkish::r_mark_sU() { /* backwardmode */
00721     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 173 */
00722         if (ret <= 0) return ret;
00723     }
00724     if (in_grouping_b_U(g_U, 105, 305, 0)) return 0; /* grouping U, line 174 */
00725     {   int ret = r_mark_suffix_with_optional_s_consonant(); /* call mark_suffix_with_optional_s_consonant, line 175 */
00726         if (ret <= 0) return ret;
00727     }
00728     return 1;
00729 }
00730 
00731 int Xapian::InternalStemTurkish::r_mark_lArI() { /* backwardmode */
00732     if (c - 3 <= lb || (p[c - 1] != 105 && p[c - 1] != 177)) return 0; /* among, line 179 */
00733     if (!(find_among_b(s_pool, a_1, 2, 0, 0))) return 0;
00734     return 1;
00735 }
00736 
00737 int Xapian::InternalStemTurkish::r_mark_yU() { /* backwardmode */
00738     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 183 */
00739         if (ret <= 0) return ret;
00740     }
00741     if (in_grouping_b_U(g_U, 105, 305, 0)) return 0; /* grouping U, line 184 */
00742     {   int ret = r_mark_suffix_with_optional_y_consonant(); /* call mark_suffix_with_optional_y_consonant, line 185 */
00743         if (ret <= 0) return ret;
00744     }
00745     return 1;
00746 }
00747 
00748 int Xapian::InternalStemTurkish::r_mark_nU() { /* backwardmode */
00749     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 189 */
00750         if (ret <= 0) return ret;
00751     }
00752     if (!(find_among_b(s_pool, a_2, 4, 0, 0))) return 0; /* among, line 190 */
00753     return 1;
00754 }
00755 
00756 int Xapian::InternalStemTurkish::r_mark_nUn() { /* backwardmode */
00757     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 194 */
00758         if (ret <= 0) return ret;
00759     }
00760     if (c - 1 <= lb || p[c - 1] != 110) return 0; /* among, line 195 */
00761     if (!(find_among_b(s_pool, a_3, 4, 0, 0))) return 0;
00762     {   int ret = r_mark_suffix_with_optional_n_consonant(); /* call mark_suffix_with_optional_n_consonant, line 196 */
00763         if (ret <= 0) return ret;
00764     }
00765     return 1;
00766 }
00767 
00768 int Xapian::InternalStemTurkish::r_mark_yA() { /* backwardmode */
00769     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 200 */
00770         if (ret <= 0) return ret;
00771     }
00772     if (c <= lb || (p[c - 1] != 97 && p[c - 1] != 101)) return 0; /* among, line 201 */
00773     if (!(find_among_b(s_pool, a_4, 2, 0, 0))) return 0;
00774     {   int ret = r_mark_suffix_with_optional_y_consonant(); /* call mark_suffix_with_optional_y_consonant, line 202 */
00775         if (ret <= 0) return ret;
00776     }
00777     return 1;
00778 }
00779 
00780 int Xapian::InternalStemTurkish::r_mark_nA() { /* backwardmode */
00781     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 206 */
00782         if (ret <= 0) return ret;
00783     }
00784     if (c - 1 <= lb || (p[c - 1] != 97 && p[c - 1] != 101)) return 0; /* among, line 207 */
00785     if (!(find_among_b(s_pool, a_5, 2, 0, 0))) return 0;
00786     return 1;
00787 }
00788 
00789 int Xapian::InternalStemTurkish::r_mark_DA() { /* backwardmode */
00790     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 211 */
00791         if (ret <= 0) return ret;
00792     }
00793     if (c - 1 <= lb || (p[c - 1] != 97 && p[c - 1] != 101)) return 0; /* among, line 212 */
00794     if (!(find_among_b(s_pool, a_6, 4, 0, 0))) return 0;
00795     return 1;
00796 }
00797 
00798 int Xapian::InternalStemTurkish::r_mark_ndA() { /* backwardmode */
00799     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 216 */
00800         if (ret <= 0) return ret;
00801     }
00802     if (c - 2 <= lb || (p[c - 1] != 97 && p[c - 1] != 101)) return 0; /* among, line 217 */
00803     if (!(find_among_b(s_pool, a_7, 2, 0, 0))) return 0;
00804     return 1;
00805 }
00806 
00807 int Xapian::InternalStemTurkish::r_mark_DAn() { /* backwardmode */
00808     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 221 */
00809         if (ret <= 0) return ret;
00810     }
00811     if (c - 2 <= lb || p[c - 1] != 110) return 0; /* among, line 222 */
00812     if (!(find_among_b(s_pool, a_8, 4, 0, 0))) return 0;
00813     return 1;
00814 }
00815 
00816 int Xapian::InternalStemTurkish::r_mark_ndAn() { /* backwardmode */
00817     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 226 */
00818         if (ret <= 0) return ret;
00819     }
00820     if (c - 3 <= lb || p[c - 1] != 110) return 0; /* among, line 227 */
00821     if (!(find_among_b(s_pool, a_9, 2, 0, 0))) return 0;
00822     return 1;
00823 }
00824 
00825 int Xapian::InternalStemTurkish::r_mark_ylA() { /* backwardmode */
00826     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 231 */
00827         if (ret <= 0) return ret;
00828     }
00829     if (c - 1 <= lb || (p[c - 1] != 97 && p[c - 1] != 101)) return 0; /* among, line 232 */
00830     if (!(find_among_b(s_pool, a_10, 2, 0, 0))) return 0;
00831     {   int ret = r_mark_suffix_with_optional_y_consonant(); /* call mark_suffix_with_optional_y_consonant, line 233 */
00832         if (ret <= 0) return ret;
00833     }
00834     return 1;
00835 }
00836 
00837 int Xapian::InternalStemTurkish::r_mark_ki() { /* backwardmode */
00838     if (!(eq_s_b(2, s_3))) return 0; /* literal, line 237 */
00839     return 1;
00840 }
00841 
00842 int Xapian::InternalStemTurkish::r_mark_ncA() { /* backwardmode */
00843     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 241 */
00844         if (ret <= 0) return ret;
00845     }
00846     if (c - 1 <= lb || (p[c - 1] != 97 && p[c - 1] != 101)) return 0; /* among, line 242 */
00847     if (!(find_among_b(s_pool, a_11, 2, 0, 0))) return 0;
00848     {   int ret = r_mark_suffix_with_optional_n_consonant(); /* call mark_suffix_with_optional_n_consonant, line 243 */
00849         if (ret <= 0) return ret;
00850     }
00851     return 1;
00852 }
00853 
00854 int Xapian::InternalStemTurkish::r_mark_yUm() { /* backwardmode */
00855     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 247 */
00856         if (ret <= 0) return ret;
00857     }
00858     if (c - 1 <= lb || p[c - 1] != 109) return 0; /* among, line 248 */
00859     if (!(find_among_b(s_pool, a_12, 4, 0, 0))) return 0;
00860     {   int ret = r_mark_suffix_with_optional_y_consonant(); /* call mark_suffix_with_optional_y_consonant, line 249 */
00861         if (ret <= 0) return ret;
00862     }
00863     return 1;
00864 }
00865 
00866 int Xapian::InternalStemTurkish::r_mark_sUn() { /* backwardmode */
00867     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 253 */
00868         if (ret <= 0) return ret;
00869     }
00870     if (c - 2 <= lb || p[c - 1] != 110) return 0; /* among, line 254 */
00871     if (!(find_among_b(s_pool, a_13, 4, 0, 0))) return 0;
00872     return 1;
00873 }
00874 
00875 int Xapian::InternalStemTurkish::r_mark_yUz() { /* backwardmode */
00876     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 258 */
00877         if (ret <= 0) return ret;
00878     }
00879     if (c - 1 <= lb || p[c - 1] != 122) return 0; /* among, line 259 */
00880     if (!(find_among_b(s_pool, a_14, 4, 0, 0))) return 0;
00881     {   int ret = r_mark_suffix_with_optional_y_consonant(); /* call mark_suffix_with_optional_y_consonant, line 260 */
00882         if (ret <= 0) return ret;
00883     }
00884     return 1;
00885 }
00886 
00887 int Xapian::InternalStemTurkish::r_mark_sUnUz() { /* backwardmode */
00888     if (c - 4 <= lb || p[c - 1] != 122) return 0; /* among, line 264 */
00889     if (!(find_among_b(s_pool, a_15, 4, 0, 0))) return 0;
00890     return 1;
00891 }
00892 
00893 int Xapian::InternalStemTurkish::r_mark_lAr() { /* backwardmode */
00894     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 268 */
00895         if (ret <= 0) return ret;
00896     }
00897     if (c - 2 <= lb || p[c - 1] != 114) return 0; /* among, line 269 */
00898     if (!(find_among_b(s_pool, a_16, 2, 0, 0))) return 0;
00899     return 1;
00900 }
00901 
00902 int Xapian::InternalStemTurkish::r_mark_nUz() { /* backwardmode */
00903     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 273 */
00904         if (ret <= 0) return ret;
00905     }
00906     if (c - 2 <= lb || p[c - 1] != 122) return 0; /* among, line 274 */
00907     if (!(find_among_b(s_pool, a_17, 4, 0, 0))) return 0;
00908     return 1;
00909 }
00910 
00911 int Xapian::InternalStemTurkish::r_mark_DUr() { /* backwardmode */
00912     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 278 */
00913         if (ret <= 0) return ret;
00914     }
00915     if (c - 2 <= lb || p[c - 1] != 114) return 0; /* among, line 279 */
00916     if (!(find_among_b(s_pool, a_18, 8, 0, 0))) return 0;
00917     return 1;
00918 }
00919 
00920 int Xapian::InternalStemTurkish::r_mark_cAsInA() { /* backwardmode */
00921     if (c - 5 <= lb || (p[c - 1] != 97 && p[c - 1] != 101)) return 0; /* among, line 283 */
00922     if (!(find_among_b(s_pool, a_19, 2, 0, 0))) return 0;
00923     return 1;
00924 }
00925 
00926 int Xapian::InternalStemTurkish::r_mark_yDU() { /* backwardmode */
00927     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 287 */
00928         if (ret <= 0) return ret;
00929     }
00930     if (!(find_among_b(s_pool, a_20, 32, 0, 0))) return 0; /* among, line 288 */
00931     {   int ret = r_mark_suffix_with_optional_y_consonant(); /* call mark_suffix_with_optional_y_consonant, line 292 */
00932         if (ret <= 0) return ret;
00933     }
00934     return 1;
00935 }
00936 
00937 int Xapian::InternalStemTurkish::r_mark_ysA() { /* backwardmode */
00938     if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((26658 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* among, line 297 */
00939     if (!(find_among_b(s_pool, a_21, 8, 0, 0))) return 0;
00940     {   int ret = r_mark_suffix_with_optional_y_consonant(); /* call mark_suffix_with_optional_y_consonant, line 298 */
00941         if (ret <= 0) return ret;
00942     }
00943     return 1;
00944 }
00945 
00946 int Xapian::InternalStemTurkish::r_mark_ymUs_() { /* backwardmode */
00947     {   int ret = r_check_vowel_harmony(); /* call check_vowel_harmony, line 302 */
00948         if (ret <= 0) return ret;
00949     }
00950     if (c - 3 <= lb || p[c - 1] != 159) return 0; /* among, line 303 */
00951     if (!(find_among_b(s_pool, a_22, 4, 0, 0))) return 0;
00952     {   int ret = r_mark_suffix_with_optional_y_consonant(); /* call mark_suffix_with_optional_y_consonant, line 304 */
00953         if (ret <= 0) return ret;
00954     }
00955     return 1;
00956 }
00957 
00958 int Xapian::InternalStemTurkish::r_mark_yken() { /* backwardmode */
00959     if (!(eq_s_b(3, s_4))) return 0; /* literal, line 308 */
00960     {   int ret = r_mark_suffix_with_optional_y_consonant(); /* call mark_suffix_with_optional_y_consonant, line 308 */
00961         if (ret <= 0) return ret;
00962     }
00963     return 1;
00964 }
00965 
00966 int Xapian::InternalStemTurkish::r_stem_nominal_verb_suffixes() { /* backwardmode */
00967     ket = c; /* [, line 312 */
00968     B_continue_stemming_noun_suffixes = 1; /* set continue_stemming_noun_suffixes, line 313 */
00969     {   int m1 = l - c; (void)m1; /* or, line 315 */
00970         {   int m2 = l - c; (void)m2; /* or, line 314 */
00971             {   int ret = r_mark_ymUs_(); /* call mark_ymUs_, line 314 */
00972                 if (ret == 0) goto lab3;
00973                 if (ret < 0) return ret;
00974             }
00975             goto lab2;
00976         lab3:
00977             c = l - m2;
00978             {   int ret = r_mark_yDU(); /* call mark_yDU, line 314 */
00979                 if (ret == 0) goto lab4;
00980                 if (ret < 0) return ret;
00981             }
00982             goto lab2;
00983         lab4:
00984             c = l - m2;
00985             {   int ret = r_mark_ysA(); /* call mark_ysA, line 314 */
00986                 if (ret == 0) goto lab5;
00987                 if (ret < 0) return ret;
00988             }
00989             goto lab2;
00990         lab5:
00991             c = l - m2;
00992             {   int ret = r_mark_yken(); /* call mark_yken, line 314 */
00993                 if (ret == 0) goto lab1;
00994                 if (ret < 0) return ret;
00995             }
00996         }
00997     lab2:
00998         goto lab0;
00999     lab1:
01000         c = l - m1;
01001         {   int ret = r_mark_cAsInA(); /* call mark_cAsInA, line 316 */
01002             if (ret == 0) goto lab6;
01003             if (ret < 0) return ret;
01004         }
01005         {   int m3 = l - c; (void)m3; /* or, line 316 */
01006             {   int ret = r_mark_sUnUz(); /* call mark_sUnUz, line 316 */
01007                 if (ret == 0) goto lab8;
01008                 if (ret < 0) return ret;
01009             }
01010             goto lab7;
01011         lab8:
01012             c = l - m3;
01013             {   int ret = r_mark_lAr(); /* call mark_lAr, line 316 */
01014                 if (ret == 0) goto lab9;
01015                 if (ret < 0) return ret;
01016             }
01017             goto lab7;
01018         lab9:
01019             c = l - m3;
01020             {   int ret = r_mark_yUm(); /* call mark_yUm, line 316 */
01021                 if (ret == 0) goto lab10;
01022                 if (ret < 0) return ret;
01023             }
01024             goto lab7;
01025         lab10:
01026             c = l - m3;
01027             {   int ret = r_mark_sUn(); /* call mark_sUn, line 316 */
01028                 if (ret == 0) goto lab11;
01029                 if (ret < 0) return ret;
01030             }
01031             goto lab7;
01032         lab11:
01033             c = l - m3;
01034             {   int ret = r_mark_yUz(); /* call mark_yUz, line 316 */
01035                 if (ret == 0) goto lab12;
01036                 if (ret < 0) return ret;
01037             }
01038             goto lab7;
01039         lab12:
01040             c = l - m3;
01041         }
01042     lab7:
01043         {   int ret = r_mark_ymUs_(); /* call mark_ymUs_, line 316 */
01044             if (ret == 0) goto lab6;
01045             if (ret < 0) return ret;
01046         }
01047         goto lab0;
01048     lab6:
01049         c = l - m1;
01050         {   int ret = r_mark_lAr(); /* call mark_lAr, line 319 */
01051             if (ret == 0) goto lab13;
01052             if (ret < 0) return ret;
01053         }
01054         bra = c; /* ], line 319 */
01055         if (slice_del() == -1) return -1; /* delete, line 319 */
01056         {   int m4 = l - c; (void)m4; /* try, line 319 */
01057             ket = c; /* [, line 319 */
01058             {   int m5 = l - c; (void)m5; /* or, line 319 */
01059                 {   int ret = r_mark_DUr(); /* call mark_DUr, line 319 */
01060                     if (ret == 0) goto lab16;
01061                     if (ret < 0) return ret;
01062                 }
01063                 goto lab15;
01064             lab16:
01065                 c = l - m5;
01066                 {   int ret = r_mark_yDU(); /* call mark_yDU, line 319 */
01067                     if (ret == 0) goto lab17;
01068                     if (ret < 0) return ret;
01069                 }
01070                 goto lab15;
01071             lab17:
01072                 c = l - m5;
01073                 {   int ret = r_mark_ysA(); /* call mark_ysA, line 319 */
01074                     if (ret == 0) goto lab18;
01075                     if (ret < 0) return ret;
01076                 }
01077                 goto lab15;
01078             lab18:
01079                 c = l - m5;
01080                 {   int ret = r_mark_ymUs_(); /* call mark_ymUs_, line 319 */
01081                     if (ret == 0) { c = l - m4; goto lab14; }
01082                     if (ret < 0) return ret;
01083                 }
01084             }
01085         lab15:
01086         lab14:
01087             ;
01088         }
01089         B_continue_stemming_noun_suffixes = 0; /* unset continue_stemming_noun_suffixes, line 320 */
01090         goto lab0;
01091     lab13:
01092         c = l - m1;
01093         {   int ret = r_mark_nUz(); /* call mark_nUz, line 323 */
01094             if (ret == 0) goto lab19;
01095             if (ret < 0) return ret;
01096         }
01097         {   int m6 = l - c; (void)m6; /* or, line 323 */
01098             {   int ret = r_mark_yDU(); /* call mark_yDU, line 323 */
01099                 if (ret == 0) goto lab21;
01100                 if (ret < 0) return ret;
01101             }
01102             goto lab20;
01103         lab21:
01104             c = l - m6;
01105             {   int ret = r_mark_ysA(); /* call mark_ysA, line 323 */
01106                 if (ret == 0) goto lab19;
01107                 if (ret < 0) return ret;
01108             }
01109         }
01110     lab20:
01111         goto lab0;
01112     lab19:
01113         c = l - m1;
01114         {   int m7 = l - c; (void)m7; /* or, line 325 */
01115             {   int ret = r_mark_sUnUz(); /* call mark_sUnUz, line 325 */
01116                 if (ret == 0) goto lab24;
01117                 if (ret < 0) return ret;
01118             }
01119             goto lab23;
01120         lab24:
01121             c = l - m7;
01122             {   int ret = r_mark_yUz(); /* call mark_yUz, line 325 */
01123                 if (ret == 0) goto lab25;
01124                 if (ret < 0) return ret;
01125             }
01126             goto lab23;
01127         lab25:
01128             c = l - m7;
01129             {   int ret = r_mark_sUn(); /* call mark_sUn, line 325 */
01130                 if (ret == 0) goto lab26;
01131                 if (ret < 0) return ret;
01132             }
01133             goto lab23;
01134         lab26:
01135             c = l - m7;
01136             {   int ret = r_mark_yUm(); /* call mark_yUm, line 325 */
01137                 if (ret == 0) goto lab22;
01138                 if (ret < 0) return ret;
01139             }
01140         }
01141     lab23:
01142         bra = c; /* ], line 325 */
01143         if (slice_del() == -1) return -1; /* delete, line 325 */
01144         {   int m8 = l - c; (void)m8; /* try, line 325 */
01145             ket = c; /* [, line 325 */
01146             {   int ret = r_mark_ymUs_(); /* call mark_ymUs_, line 325 */
01147                 if (ret == 0) { c = l - m8; goto lab27; }
01148                 if (ret < 0) return ret;
01149             }
01150         lab27:
01151             ;
01152         }
01153         goto lab0;
01154     lab22:
01155         c = l - m1;
01156         {   int ret = r_mark_DUr(); /* call mark_DUr, line 327 */
01157             if (ret <= 0) return ret;
01158         }
01159         bra = c; /* ], line 327 */
01160         if (slice_del() == -1) return -1; /* delete, line 327 */
01161         {   int m9 = l - c; (void)m9; /* try, line 327 */
01162             ket = c; /* [, line 327 */
01163             {   int m10 = l - c; (void)m10; /* or, line 327 */
01164                 {   int ret = r_mark_sUnUz(); /* call mark_sUnUz, line 327 */
01165                     if (ret == 0) goto lab30;
01166                     if (ret < 0) return ret;
01167                 }
01168                 goto lab29;
01169             lab30:
01170                 c = l - m10;
01171                 {   int ret = r_mark_lAr(); /* call mark_lAr, line 327 */
01172                     if (ret == 0) goto lab31;
01173                     if (ret < 0) return ret;
01174                 }
01175                 goto lab29;
01176             lab31:
01177                 c = l - m10;
01178                 {   int ret = r_mark_yUm(); /* call mark_yUm, line 327 */
01179                     if (ret == 0) goto lab32;
01180                     if (ret < 0) return ret;
01181                 }
01182                 goto lab29;
01183             lab32:
01184                 c = l - m10;
01185                 {   int ret = r_mark_sUn(); /* call mark_sUn, line 327 */
01186                     if (ret == 0) goto lab33;
01187                     if (ret < 0) return ret;
01188                 }
01189                 goto lab29;
01190             lab33:
01191                 c = l - m10;
01192                 {   int ret = r_mark_yUz(); /* call mark_yUz, line 327 */
01193                     if (ret == 0) goto lab34;
01194                     if (ret < 0) return ret;
01195                 }
01196                 goto lab29;
01197             lab34:
01198                 c = l - m10;
01199             }
01200         lab29:
01201             {   int ret = r_mark_ymUs_(); /* call mark_ymUs_, line 327 */
01202                 if (ret == 0) { c = l - m9; goto lab28; }
01203                 if (ret < 0) return ret;
01204             }
01205         lab28:
01206             ;
01207         }
01208     }
01209 lab0:
01210     bra = c; /* ], line 328 */
01211     if (slice_del() == -1) return -1; /* delete, line 328 */
01212     return 1;
01213 }
01214 
01215 int Xapian::InternalStemTurkish::r_stem_suffix_chain_before_ki() { /* backwardmode */
01216     ket = c; /* [, line 333 */
01217     {   int ret = r_mark_ki(); /* call mark_ki, line 334 */
01218         if (ret <= 0) return ret;
01219     }
01220     {   int m1 = l - c; (void)m1; /* or, line 342 */
01221         {   int ret = r_mark_DA(); /* call mark_DA, line 336 */
01222             if (ret == 0) goto lab1;
01223             if (ret < 0) return ret;
01224         }
01225         bra = c; /* ], line 336 */
01226         if (slice_del() == -1) return -1; /* delete, line 336 */
01227         {   int m2 = l - c; (void)m2; /* try, line 336 */
01228             ket = c; /* [, line 336 */
01229             {   int m3 = l - c; (void)m3; /* or, line 338 */
01230                 {   int ret = r_mark_lAr(); /* call mark_lAr, line 337 */
01231                     if (ret == 0) goto lab4;
01232                     if (ret < 0) return ret;
01233                 }
01234                 bra = c; /* ], line 337 */
01235                 if (slice_del() == -1) return -1; /* delete, line 337 */
01236                 {   int m4 = l - c; (void)m4; /* try, line 337 */
01237                     {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 337 */
01238                         if (ret == 0) { c = l - m4; goto lab5; }
01239                         if (ret < 0) return ret;
01240                     }
01241                 lab5:
01242                     ;
01243                 }
01244                 goto lab3;
01245             lab4:
01246                 c = l - m3;
01247                 {   int ret = r_mark_possessives(); /* call mark_possessives, line 339 */
01248                     if (ret == 0) { c = l - m2; goto lab2; }
01249                     if (ret < 0) return ret;
01250                 }
01251                 bra = c; /* ], line 339 */
01252                 if (slice_del() == -1) return -1; /* delete, line 339 */
01253                 {   int m5 = l - c; (void)m5; /* try, line 339 */
01254                     ket = c; /* [, line 339 */
01255                     {   int ret = r_mark_lAr(); /* call mark_lAr, line 339 */
01256                         if (ret == 0) { c = l - m5; goto lab6; }
01257                         if (ret < 0) return ret;
01258                     }
01259                     bra = c; /* ], line 339 */
01260                     if (slice_del() == -1) return -1; /* delete, line 339 */
01261                     {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 339 */
01262                         if (ret == 0) { c = l - m5; goto lab6; }
01263                         if (ret < 0) return ret;
01264                     }
01265                 lab6:
01266                     ;
01267                 }
01268             }
01269         lab3:
01270         lab2:
01271             ;
01272         }
01273         goto lab0;
01274     lab1:
01275         c = l - m1;
01276         {   int ret = r_mark_nUn(); /* call mark_nUn, line 343 */
01277             if (ret == 0) goto lab7;
01278             if (ret < 0) return ret;
01279         }
01280         bra = c; /* ], line 343 */
01281         if (slice_del() == -1) return -1; /* delete, line 343 */
01282         {   int m6 = l - c; (void)m6; /* try, line 343 */
01283             ket = c; /* [, line 343 */
01284             {   int m7 = l - c; (void)m7; /* or, line 345 */
01285                 {   int ret = r_mark_lArI(); /* call mark_lArI, line 344 */
01286                     if (ret == 0) goto lab10;
01287                     if (ret < 0) return ret;
01288                 }
01289                 bra = c; /* ], line 344 */
01290                 if (slice_del() == -1) return -1; /* delete, line 344 */
01291                 goto lab9;
01292             lab10:
01293                 c = l - m7;
01294                 ket = c; /* [, line 346 */
01295                 {   int m8 = l - c; (void)m8; /* or, line 346 */
01296                     {   int ret = r_mark_possessives(); /* call mark_possessives, line 346 */
01297                         if (ret == 0) goto lab13;
01298                         if (ret < 0) return ret;
01299                     }
01300                     goto lab12;
01301                 lab13:
01302                     c = l - m8;
01303                     {   int ret = r_mark_sU(); /* call mark_sU, line 346 */
01304                         if (ret == 0) goto lab11;
01305                         if (ret < 0) return ret;
01306                     }
01307                 }
01308             lab12:
01309                 bra = c; /* ], line 346 */
01310                 if (slice_del() == -1) return -1; /* delete, line 346 */
01311                 {   int m9 = l - c; (void)m9; /* try, line 346 */
01312                     ket = c; /* [, line 346 */
01313                     {   int ret = r_mark_lAr(); /* call mark_lAr, line 346 */
01314                         if (ret == 0) { c = l - m9; goto lab14; }
01315                         if (ret < 0) return ret;
01316                     }
01317                     bra = c; /* ], line 346 */
01318                     if (slice_del() == -1) return -1; /* delete, line 346 */
01319                     {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 346 */
01320                         if (ret == 0) { c = l - m9; goto lab14; }
01321                         if (ret < 0) return ret;
01322                     }
01323                 lab14:
01324                     ;
01325                 }
01326                 goto lab9;
01327             lab11:
01328                 c = l - m7;
01329                 {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 348 */
01330                     if (ret == 0) { c = l - m6; goto lab8; }
01331                     if (ret < 0) return ret;
01332                 }
01333             }
01334         lab9:
01335         lab8:
01336             ;
01337         }
01338         goto lab0;
01339     lab7:
01340         c = l - m1;
01341         {   int ret = r_mark_ndA(); /* call mark_ndA, line 351 */
01342             if (ret <= 0) return ret;
01343         }
01344         {   int m10 = l - c; (void)m10; /* or, line 353 */
01345             {   int ret = r_mark_lArI(); /* call mark_lArI, line 352 */
01346                 if (ret == 0) goto lab16;
01347                 if (ret < 0) return ret;
01348             }
01349             bra = c; /* ], line 352 */
01350             if (slice_del() == -1) return -1; /* delete, line 352 */
01351             goto lab15;
01352         lab16:
01353             c = l - m10;
01354             {   int ret = r_mark_sU(); /* call mark_sU, line 354 */
01355                 if (ret == 0) goto lab17;
01356                 if (ret < 0) return ret;
01357             }
01358             bra = c; /* ], line 354 */
01359             if (slice_del() == -1) return -1; /* delete, line 354 */
01360             {   int m11 = l - c; (void)m11; /* try, line 354 */
01361                 ket = c; /* [, line 354 */
01362                 {   int ret = r_mark_lAr(); /* call mark_lAr, line 354 */
01363                     if (ret == 0) { c = l - m11; goto lab18; }
01364                     if (ret < 0) return ret;
01365                 }
01366                 bra = c; /* ], line 354 */
01367                 if (slice_del() == -1) return -1; /* delete, line 354 */
01368                 {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 354 */
01369                     if (ret == 0) { c = l - m11; goto lab18; }
01370                     if (ret < 0) return ret;
01371                 }
01372             lab18:
01373                 ;
01374             }
01375             goto lab15;
01376         lab17:
01377             c = l - m10;
01378             {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 356 */
01379                 if (ret <= 0) return ret;
01380             }
01381         }
01382     lab15:
01383         ;
01384     }
01385 lab0:
01386     return 1;
01387 }
01388 
01389 int Xapian::InternalStemTurkish::r_stem_noun_suffixes() { /* backwardmode */
01390     {   int m1 = l - c; (void)m1; /* or, line 363 */
01391         ket = c; /* [, line 362 */
01392         {   int ret = r_mark_lAr(); /* call mark_lAr, line 362 */
01393             if (ret == 0) goto lab1;
01394             if (ret < 0) return ret;
01395         }
01396         bra = c; /* ], line 362 */
01397         if (slice_del() == -1) return -1; /* delete, line 362 */
01398         {   int m2 = l - c; (void)m2; /* try, line 362 */
01399             {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 362 */
01400                 if (ret == 0) { c = l - m2; goto lab2; }
01401                 if (ret < 0) return ret;
01402             }
01403         lab2:
01404             ;
01405         }
01406         goto lab0;
01407     lab1:
01408         c = l - m1;
01409         ket = c; /* [, line 364 */
01410         {   int ret = r_mark_ncA(); /* call mark_ncA, line 364 */
01411             if (ret == 0) goto lab3;
01412             if (ret < 0) return ret;
01413         }
01414         bra = c; /* ], line 364 */
01415         if (slice_del() == -1) return -1; /* delete, line 364 */
01416         {   int m3 = l - c; (void)m3; /* try, line 365 */
01417             {   int m4 = l - c; (void)m4; /* or, line 367 */
01418                 ket = c; /* [, line 366 */
01419                 {   int ret = r_mark_lArI(); /* call mark_lArI, line 366 */
01420                     if (ret == 0) goto lab6;
01421                     if (ret < 0) return ret;
01422                 }
01423                 bra = c; /* ], line 366 */
01424                 if (slice_del() == -1) return -1; /* delete, line 366 */
01425                 goto lab5;
01426             lab6:
01427                 c = l - m4;
01428                 ket = c; /* [, line 368 */
01429                 {   int m5 = l - c; (void)m5; /* or, line 368 */
01430                     {   int ret = r_mark_possessives(); /* call mark_possessives, line 368 */
01431                         if (ret == 0) goto lab9;
01432                         if (ret < 0) return ret;
01433                     }
01434                     goto lab8;
01435                 lab9:
01436                     c = l - m5;
01437                     {   int ret = r_mark_sU(); /* call mark_sU, line 368 */
01438                         if (ret == 0) goto lab7;
01439                         if (ret < 0) return ret;
01440                     }
01441                 }
01442             lab8:
01443                 bra = c; /* ], line 368 */
01444                 if (slice_del() == -1) return -1; /* delete, line 368 */
01445                 {   int m6 = l - c; (void)m6; /* try, line 368 */
01446                     ket = c; /* [, line 368 */
01447                     {   int ret = r_mark_lAr(); /* call mark_lAr, line 368 */
01448                         if (ret == 0) { c = l - m6; goto lab10; }
01449                         if (ret < 0) return ret;
01450                     }
01451                     bra = c; /* ], line 368 */
01452                     if (slice_del() == -1) return -1; /* delete, line 368 */
01453                     {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 368 */
01454                         if (ret == 0) { c = l - m6; goto lab10; }
01455                         if (ret < 0) return ret;
01456                     }
01457                 lab10:
01458                     ;
01459                 }
01460                 goto lab5;
01461             lab7:
01462                 c = l - m4;
01463                 ket = c; /* [, line 370 */
01464                 {   int ret = r_mark_lAr(); /* call mark_lAr, line 370 */
01465                     if (ret == 0) { c = l - m3; goto lab4; }
01466                     if (ret < 0) return ret;
01467                 }
01468                 bra = c; /* ], line 370 */
01469                 if (slice_del() == -1) return -1; /* delete, line 370 */
01470                 {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 370 */
01471                     if (ret == 0) { c = l - m3; goto lab4; }
01472                     if (ret < 0) return ret;
01473                 }
01474             }
01475         lab5:
01476         lab4:
01477             ;
01478         }
01479         goto lab0;
01480     lab3:
01481         c = l - m1;
01482         ket = c; /* [, line 374 */
01483         {   int m7 = l - c; (void)m7; /* or, line 374 */
01484             {   int ret = r_mark_ndA(); /* call mark_ndA, line 374 */
01485                 if (ret == 0) goto lab13;
01486                 if (ret < 0) return ret;
01487             }
01488             goto lab12;
01489         lab13:
01490             c = l - m7;
01491             {   int ret = r_mark_nA(); /* call mark_nA, line 374 */
01492                 if (ret == 0) goto lab11;
01493                 if (ret < 0) return ret;
01494             }
01495         }
01496     lab12:
01497         {   int m8 = l - c; (void)m8; /* or, line 377 */
01498             {   int ret = r_mark_lArI(); /* call mark_lArI, line 376 */
01499                 if (ret == 0) goto lab15;
01500                 if (ret < 0) return ret;
01501             }
01502             bra = c; /* ], line 376 */
01503             if (slice_del() == -1) return -1; /* delete, line 376 */
01504             goto lab14;
01505         lab15:
01506             c = l - m8;
01507             {   int ret = r_mark_sU(); /* call mark_sU, line 378 */
01508                 if (ret == 0) goto lab16;
01509                 if (ret < 0) return ret;
01510             }
01511             bra = c; /* ], line 378 */
01512             if (slice_del() == -1) return -1; /* delete, line 378 */
01513             {   int m9 = l - c; (void)m9; /* try, line 378 */
01514                 ket = c; /* [, line 378 */
01515                 {   int ret = r_mark_lAr(); /* call mark_lAr, line 378 */
01516                     if (ret == 0) { c = l - m9; goto lab17; }
01517                     if (ret < 0) return ret;
01518                 }
01519                 bra = c; /* ], line 378 */
01520                 if (slice_del() == -1) return -1; /* delete, line 378 */
01521                 {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 378 */
01522                     if (ret == 0) { c = l - m9; goto lab17; }
01523                     if (ret < 0) return ret;
01524                 }
01525             lab17:
01526                 ;
01527             }
01528             goto lab14;
01529         lab16:
01530             c = l - m8;
01531             {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 380 */
01532                 if (ret == 0) goto lab11;
01533                 if (ret < 0) return ret;
01534             }
01535         }
01536     lab14:
01537         goto lab0;
01538     lab11:
01539         c = l - m1;
01540         ket = c; /* [, line 384 */
01541         {   int m10 = l - c; (void)m10; /* or, line 384 */
01542             {   int ret = r_mark_ndAn(); /* call mark_ndAn, line 384 */
01543                 if (ret == 0) goto lab20;
01544                 if (ret < 0) return ret;
01545             }
01546             goto lab19;
01547         lab20:
01548             c = l - m10;
01549             {   int ret = r_mark_nU(); /* call mark_nU, line 384 */
01550                 if (ret == 0) goto lab18;
01551                 if (ret < 0) return ret;
01552             }
01553         }
01554     lab19:
01555         {   int m11 = l - c; (void)m11; /* or, line 384 */
01556             {   int ret = r_mark_sU(); /* call mark_sU, line 384 */
01557                 if (ret == 0) goto lab22;
01558                 if (ret < 0) return ret;
01559             }
01560             bra = c; /* ], line 384 */
01561             if (slice_del() == -1) return -1; /* delete, line 384 */
01562             {   int m12 = l - c; (void)m12; /* try, line 384 */
01563                 ket = c; /* [, line 384 */
01564                 {   int ret = r_mark_lAr(); /* call mark_lAr, line 384 */
01565                     if (ret == 0) { c = l - m12; goto lab23; }
01566                     if (ret < 0) return ret;
01567                 }
01568                 bra = c; /* ], line 384 */
01569                 if (slice_del() == -1) return -1; /* delete, line 384 */
01570                 {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 384 */
01571                     if (ret == 0) { c = l - m12; goto lab23; }
01572                     if (ret < 0) return ret;
01573                 }
01574             lab23:
01575                 ;
01576             }
01577             goto lab21;
01578         lab22:
01579             c = l - m11;
01580             {   int ret = r_mark_lArI(); /* call mark_lArI, line 384 */
01581                 if (ret == 0) goto lab18;
01582                 if (ret < 0) return ret;
01583             }
01584         }
01585     lab21:
01586         goto lab0;
01587     lab18:
01588         c = l - m1;
01589         ket = c; /* [, line 386 */
01590         {   int ret = r_mark_DAn(); /* call mark_DAn, line 386 */
01591             if (ret == 0) goto lab24;
01592             if (ret < 0) return ret;
01593         }
01594         bra = c; /* ], line 386 */
01595         if (slice_del() == -1) return -1; /* delete, line 386 */
01596         {   int m13 = l - c; (void)m13; /* try, line 386 */
01597             ket = c; /* [, line 386 */
01598             {   int m14 = l - c; (void)m14; /* or, line 389 */
01599                 {   int ret = r_mark_possessives(); /* call mark_possessives, line 388 */
01600                     if (ret == 0) goto lab27;
01601                     if (ret < 0) return ret;
01602                 }
01603                 bra = c; /* ], line 388 */
01604                 if (slice_del() == -1) return -1; /* delete, line 388 */
01605                 {   int m15 = l - c; (void)m15; /* try, line 388 */
01606                     ket = c; /* [, line 388 */
01607                     {   int ret = r_mark_lAr(); /* call mark_lAr, line 388 */
01608                         if (ret == 0) { c = l - m15; goto lab28; }
01609                         if (ret < 0) return ret;
01610                     }
01611                     bra = c; /* ], line 388 */
01612                     if (slice_del() == -1) return -1; /* delete, line 388 */
01613                     {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 388 */
01614                         if (ret == 0) { c = l - m15; goto lab28; }
01615                         if (ret < 0) return ret;
01616                     }
01617                 lab28:
01618                     ;
01619                 }
01620                 goto lab26;
01621             lab27:
01622                 c = l - m14;
01623                 {   int ret = r_mark_lAr(); /* call mark_lAr, line 390 */
01624                     if (ret == 0) goto lab29;
01625                     if (ret < 0) return ret;
01626                 }
01627                 bra = c; /* ], line 390 */
01628                 if (slice_del() == -1) return -1; /* delete, line 390 */
01629                 {   int m16 = l - c; (void)m16; /* try, line 390 */
01630                     {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 390 */
01631                         if (ret == 0) { c = l - m16; goto lab30; }
01632                         if (ret < 0) return ret;
01633                     }
01634                 lab30:
01635                     ;
01636                 }
01637                 goto lab26;
01638             lab29:
01639                 c = l - m14;
01640                 {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 392 */
01641                     if (ret == 0) { c = l - m13; goto lab25; }
01642                     if (ret < 0) return ret;
01643                 }
01644             }
01645         lab26:
01646         lab25:
01647             ;
01648         }
01649         goto lab0;
01650     lab24:
01651         c = l - m1;
01652         ket = c; /* [, line 396 */
01653         {   int m17 = l - c; (void)m17; /* or, line 396 */
01654             {   int ret = r_mark_nUn(); /* call mark_nUn, line 396 */
01655                 if (ret == 0) goto lab33;
01656                 if (ret < 0) return ret;
01657             }
01658             goto lab32;
01659         lab33:
01660             c = l - m17;
01661             {   int ret = r_mark_ylA(); /* call mark_ylA, line 396 */
01662                 if (ret == 0) goto lab31;
01663                 if (ret < 0) return ret;
01664             }
01665         }
01666     lab32:
01667         bra = c; /* ], line 396 */
01668         if (slice_del() == -1) return -1; /* delete, line 396 */
01669         {   int m18 = l - c; (void)m18; /* try, line 397 */
01670             {   int m19 = l - c; (void)m19; /* or, line 399 */
01671                 ket = c; /* [, line 398 */
01672                 {   int ret = r_mark_lAr(); /* call mark_lAr, line 398 */
01673                     if (ret == 0) goto lab36;
01674                     if (ret < 0) return ret;
01675                 }
01676                 bra = c; /* ], line 398 */
01677                 if (slice_del() == -1) return -1; /* delete, line 398 */
01678                 {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 398 */
01679                     if (ret == 0) goto lab36;
01680                     if (ret < 0) return ret;
01681                 }
01682                 goto lab35;
01683             lab36:
01684                 c = l - m19;
01685                 ket = c; /* [, line 400 */
01686                 {   int m20 = l - c; (void)m20; /* or, line 400 */
01687                     {   int ret = r_mark_possessives(); /* call mark_possessives, line 400 */
01688                         if (ret == 0) goto lab39;
01689                         if (ret < 0) return ret;
01690                     }
01691                     goto lab38;
01692                 lab39:
01693                     c = l - m20;
01694                     {   int ret = r_mark_sU(); /* call mark_sU, line 400 */
01695                         if (ret == 0) goto lab37;
01696                         if (ret < 0) return ret;
01697                     }
01698                 }
01699             lab38:
01700                 bra = c; /* ], line 400 */
01701                 if (slice_del() == -1) return -1; /* delete, line 400 */
01702                 {   int m21 = l - c; (void)m21; /* try, line 400 */
01703                     ket = c; /* [, line 400 */
01704                     {   int ret = r_mark_lAr(); /* call mark_lAr, line 400 */
01705                         if (ret == 0) { c = l - m21; goto lab40; }
01706                         if (ret < 0) return ret;
01707                     }
01708                     bra = c; /* ], line 400 */
01709                     if (slice_del() == -1) return -1; /* delete, line 400 */
01710                     {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 400 */
01711                         if (ret == 0) { c = l - m21; goto lab40; }
01712                         if (ret < 0) return ret;
01713                     }
01714                 lab40:
01715                     ;
01716                 }
01717                 goto lab35;
01718             lab37:
01719                 c = l - m19;
01720                 {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 402 */
01721                     if (ret == 0) { c = l - m18; goto lab34; }
01722                     if (ret < 0) return ret;
01723                 }
01724             }
01725         lab35:
01726         lab34:
01727             ;
01728         }
01729         goto lab0;
01730     lab31:
01731         c = l - m1;
01732         ket = c; /* [, line 406 */
01733         {   int ret = r_mark_lArI(); /* call mark_lArI, line 406 */
01734             if (ret == 0) goto lab41;
01735             if (ret < 0) return ret;
01736         }
01737         bra = c; /* ], line 406 */
01738         if (slice_del() == -1) return -1; /* delete, line 406 */
01739         goto lab0;
01740     lab41:
01741         c = l - m1;
01742         {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 408 */
01743             if (ret == 0) goto lab42;
01744             if (ret < 0) return ret;
01745         }
01746         goto lab0;
01747     lab42:
01748         c = l - m1;
01749         ket = c; /* [, line 410 */
01750         {   int m22 = l - c; (void)m22; /* or, line 410 */
01751             {   int ret = r_mark_DA(); /* call mark_DA, line 410 */
01752                 if (ret == 0) goto lab45;
01753                 if (ret < 0) return ret;
01754             }
01755             goto lab44;
01756         lab45:
01757             c = l - m22;
01758             {   int ret = r_mark_yU(); /* call mark_yU, line 410 */
01759                 if (ret == 0) goto lab46;
01760                 if (ret < 0) return ret;
01761             }
01762             goto lab44;
01763         lab46:
01764             c = l - m22;
01765             {   int ret = r_mark_yA(); /* call mark_yA, line 410 */
01766                 if (ret == 0) goto lab43;
01767                 if (ret < 0) return ret;
01768             }
01769         }
01770     lab44:
01771         bra = c; /* ], line 410 */
01772         if (slice_del() == -1) return -1; /* delete, line 410 */
01773         {   int m23 = l - c; (void)m23; /* try, line 410 */
01774             ket = c; /* [, line 410 */
01775             {   int m24 = l - c; (void)m24; /* or, line 410 */
01776                 {   int ret = r_mark_possessives(); /* call mark_possessives, line 410 */
01777                     if (ret == 0) goto lab49;
01778                     if (ret < 0) return ret;
01779                 }
01780                 bra = c; /* ], line 410 */
01781                 if (slice_del() == -1) return -1; /* delete, line 410 */
01782                 {   int m25 = l - c; (void)m25; /* try, line 410 */
01783                     ket = c; /* [, line 410 */
01784                     {   int ret = r_mark_lAr(); /* call mark_lAr, line 410 */
01785                         if (ret == 0) { c = l - m25; goto lab50; }
01786                         if (ret < 0) return ret;
01787                     }
01788                 lab50:
01789                     ;
01790                 }
01791                 goto lab48;
01792             lab49:
01793                 c = l - m24;
01794                 {   int ret = r_mark_lAr(); /* call mark_lAr, line 410 */
01795                     if (ret == 0) { c = l - m23; goto lab47; }
01796                     if (ret < 0) return ret;
01797                 }
01798             }
01799         lab48:
01800             bra = c; /* ], line 410 */
01801             if (slice_del() == -1) return -1; /* delete, line 410 */
01802             ket = c; /* [, line 410 */
01803             {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 410 */
01804                 if (ret == 0) { c = l - m23; goto lab47; }
01805                 if (ret < 0) return ret;
01806             }
01807         lab47:
01808             ;
01809         }
01810         goto lab0;
01811     lab43:
01812         c = l - m1;
01813         ket = c; /* [, line 412 */
01814         {   int m26 = l - c; (void)m26; /* or, line 412 */
01815             {   int ret = r_mark_possessives(); /* call mark_possessives, line 412 */
01816                 if (ret == 0) goto lab52;
01817                 if (ret < 0) return ret;
01818             }
01819             goto lab51;
01820         lab52:
01821             c = l - m26;
01822             {   int ret = r_mark_sU(); /* call mark_sU, line 412 */
01823                 if (ret <= 0) return ret;
01824             }
01825         }
01826     lab51:
01827         bra = c; /* ], line 412 */
01828         if (slice_del() == -1) return -1; /* delete, line 412 */
01829         {   int m27 = l - c; (void)m27; /* try, line 412 */
01830             ket = c; /* [, line 412 */
01831             {   int ret = r_mark_lAr(); /* call mark_lAr, line 412 */
01832                 if (ret == 0) { c = l - m27; goto lab53; }
01833                 if (ret < 0) return ret;
01834             }
01835             bra = c; /* ], line 412 */
01836             if (slice_del() == -1) return -1; /* delete, line 412 */
01837             {   int ret = r_stem_suffix_chain_before_ki(); /* call stem_suffix_chain_before_ki, line 412 */
01838                 if (ret == 0) { c = l - m27; goto lab53; }
01839                 if (ret < 0) return ret;
01840             }
01841         lab53:
01842             ;
01843         }
01844     }
01845 lab0:
01846     return 1;
01847 }
01848 
01849 int Xapian::InternalStemTurkish::r_post_process_last_consonants() { /* backwardmode */
01850     int among_var;
01851     ket = c; /* [, line 416 */
01852     among_var = find_among_b(s_pool, a_23, 4, 0, 0); /* substring, line 416 */
01853     if (!(among_var)) return 0;
01854     bra = c; /* ], line 416 */
01855     switch(among_var) { /* among, line 416 */
01856         case 0: return 0;
01857         case 1:
01858             {   int ret = slice_from_s(1, s_5); /* <-, line 417 */
01859                 if (ret < 0) return ret;
01860             }
01861             break;
01862         case 2:
01863             {   int ret = slice_from_s(2, s_6); /* <-, line 418 */
01864                 if (ret < 0) return ret;
01865             }
01866             break;
01867         case 3:
01868             {   int ret = slice_from_s(1, s_7); /* <-, line 419 */
01869                 if (ret < 0) return ret;
01870             }
01871             break;
01872         case 4:
01873             {   int ret = slice_from_s(1, s_8); /* <-, line 420 */
01874                 if (ret < 0) return ret;
01875             }
01876             break;
01877     }
01878     return 1;
01879 }
01880 
01881 int Xapian::InternalStemTurkish::r_append_U_to_stems_ending_with_d_or_g() { /* backwardmode */
01882     {   int m_test1 = l - c; /* test, line 431 */
01883         {   int m2 = l - c; (void)m2; /* or, line 431 */
01884             if (c <= lb || p[c - 1] != 'd') goto lab1;
01885             c--;
01886             goto lab0;
01887         lab1:
01888             c = l - m2;
01889             if (c <= lb || p[c - 1] != 'g') return 0;
01890             c--;
01891         }
01892     lab0:
01893         c = l - m_test1;
01894     }
01895     {   int m3 = l - c; (void)m3; /* or, line 433 */
01896         {   int m_test4 = l - c; /* test, line 432 */
01897             if (out_grouping_b_U(g_vowel, 97, 305, 1) < 0) goto lab3; /* goto */ /* grouping vowel, line 432 */
01898             {   int m5 = l - c; (void)m5; /* or, line 432 */
01899                 if (c <= lb || p[c - 1] != 'a') goto lab5;
01900                 c--;
01901                 goto lab4;
01902             lab5:
01903                 c = l - m5;
01904                 if (!(eq_s_b(2, s_9))) goto lab3; /* literal, line 432 */
01905             }
01906         lab4:
01907             c = l - m_test4;
01908         }
01909         {   int saved_c = c;
01910             insert_s(c, c, 2, s_10); /* <+, line 432 */
01911             c = saved_c;
01912         }
01913         goto lab2;
01914     lab3:
01915         c = l - m3;
01916         {   int m_test6 = l - c; /* test, line 434 */
01917             if (out_grouping_b_U(g_vowel, 97, 305, 1) < 0) goto lab6; /* goto */ /* grouping vowel, line 434 */
01918             {   int m7 = l - c; (void)m7; /* or, line 434 */
01919                 if (c <= lb || p[c - 1] != 'e') goto lab8;
01920                 c--;
01921                 goto lab7;
01922             lab8:
01923                 c = l - m7;
01924                 if (c <= lb || p[c - 1] != 'i') goto lab6;
01925                 c--;
01926             }
01927         lab7:
01928             c = l - m_test6;
01929         }
01930         {   int saved_c = c;
01931             insert_s(c, c, 1, s_11); /* <+, line 434 */
01932             c = saved_c;
01933         }
01934         goto lab2;
01935     lab6:
01936         c = l - m3;
01937         {   int m_test8 = l - c; /* test, line 436 */
01938             if (out_grouping_b_U(g_vowel, 97, 305, 1) < 0) goto lab9; /* goto */ /* grouping vowel, line 436 */
01939             {   int m9 = l - c; (void)m9; /* or, line 436 */
01940                 if (c <= lb || p[c - 1] != 'o') goto lab11;
01941                 c--;
01942                 goto lab10;
01943             lab11:
01944                 c = l - m9;
01945                 if (c <= lb || p[c - 1] != 'u') goto lab9;
01946                 c--;
01947             }
01948         lab10:
01949             c = l - m_test8;
01950         }
01951         {   int saved_c = c;
01952             insert_s(c, c, 1, s_12); /* <+, line 436 */
01953             c = saved_c;
01954         }
01955         goto lab2;
01956     lab9:
01957         c = l - m3;
01958         {   int m_test10 = l - c; /* test, line 438 */
01959             if (out_grouping_b_U(g_vowel, 97, 305, 1) < 0) return 0; /* goto */ /* grouping vowel, line 438 */
01960             {   int m11 = l - c; (void)m11; /* or, line 438 */
01961                 if (!(eq_s_b(2, s_13))) goto lab13; /* literal, line 438 */
01962                 goto lab12;
01963             lab13:
01964                 c = l - m11;
01965                 if (!(eq_s_b(2, s_14))) return 0; /* literal, line 438 */
01966             }
01967         lab12:
01968             c = l - m_test10;
01969         }
01970         {   int saved_c = c;
01971             insert_s(c, c, 2, s_15); /* <+, line 438 */
01972             c = saved_c;
01973         }
01974     }
01975 lab2:
01976     return 1;
01977 }
01978 
01979 int Xapian::InternalStemTurkish::r_more_than_one_syllable_word() { /* forwardmode */
01980     {   int c_test1 = c; /* test, line 446 */
01981         {   int i = 2;
01982             while(1) { /* atleast, line 446 */
01983                 int c2 = c;
01984                 {   int ret = out_grouping_U(g_vowel, 97, 305, 1); /* gopast */ /* grouping vowel, line 446 */
01985                     if (ret < 0) goto lab0;
01986                     c += ret;
01987                 }
01988                 i--;
01989                 continue;
01990             lab0:
01991                 c = c2;
01992                 break;
01993             }
01994             if (i > 0) return 0;
01995         }
01996         c = c_test1;
01997     }
01998     return 1;
01999 }
02000 
02001 int Xapian::InternalStemTurkish::r_is_reserved_word() { /* forwardmode */
02002     {   int c1 = c; /* or, line 451 */
02003         {   int c_test2 = c; /* test, line 450 */
02004             while(1) { /* gopast, line 450 */
02005                 if (!(eq_s(2, s_16))) goto lab2; /* literal, line 450 */
02006                 break;
02007             lab2:
02008                 {   int ret = skip_utf8(p, c, 0, l, 1);
02009                     if (ret < 0) goto lab1;
02010                     c = ret; /* gopast, line 450 */
02011                 }
02012             }
02013             I_strlen = 2; /* strlen = <integer expression>, line 450 */
02014             if (!(I_strlen == l)) goto lab1; /* strlen == <integer expression>, line 450 */
02015             c = c_test2;
02016         }
02017         goto lab0;
02018     lab1:
02019         c = c1;
02020         {   int c_test3 = c; /* test, line 452 */
02021             while(1) { /* gopast, line 452 */
02022                 if (!(eq_s(5, s_17))) goto lab3; /* literal, line 452 */
02023                 break;
02024             lab3:
02025                 {   int ret = skip_utf8(p, c, 0, l, 1);
02026                     if (ret < 0) return 0;
02027                     c = ret; /* gopast, line 452 */
02028                 }
02029             }
02030             I_strlen = 5; /* strlen = <integer expression>, line 452 */
02031             if (!(I_strlen == l)) return 0; /* strlen == <integer expression>, line 452 */
02032             c = c_test3;
02033         }
02034     }
02035 lab0:
02036     return 1;
02037 }
02038 
02039 int Xapian::InternalStemTurkish::r_postlude() { /* forwardmode */
02040     {   int c1 = c; /* not, line 456 */
02041         {   int ret = r_is_reserved_word(); /* call is_reserved_word, line 456 */
02042             if (ret == 0) goto lab0;
02043             if (ret < 0) return ret;
02044         }
02045         return 0;
02046     lab0:
02047         c = c1;
02048     }
02049     lb = c; c = l; /* backwards, line 457 */
02050 
02051     {   int m2 = l - c; (void)m2; /* do, line 458 */
02052         {   int ret = r_append_U_to_stems_ending_with_d_or_g(); /* call append_U_to_stems_ending_with_d_or_g, line 458 */
02053             if (ret == 0) goto lab1;
02054             if (ret < 0) return ret;
02055         }
02056     lab1:
02057         c = l - m2;
02058     }
02059     {   int m3 = l - c; (void)m3; /* do, line 459 */
02060         {   int ret = r_post_process_last_consonants(); /* call post_process_last_consonants, line 459 */
02061             if (ret == 0) goto lab2;
02062             if (ret < 0) return ret;
02063         }
02064     lab2:
02065         c = l - m3;
02066     }
02067     c = lb;
02068     return 1;
02069 }
02070 
02071 int Xapian::InternalStemTurkish::stem() { /* forwardmode */
02072     {   int ret = r_more_than_one_syllable_word(); /* call more_than_one_syllable_word, line 465 */
02073         if (ret <= 0) return ret;
02074     }
02075     lb = c; c = l; /* backwards, line 467 */
02076 
02077     {   int m1 = l - c; (void)m1; /* do, line 468 */
02078         {   int ret = r_stem_nominal_verb_suffixes(); /* call stem_nominal_verb_suffixes, line 468 */
02079             if (ret == 0) goto lab0;
02080             if (ret < 0) return ret;
02081         }
02082     lab0:
02083         c = l - m1;
02084     }
02085     if (!(B_continue_stemming_noun_suffixes)) return 0; /* Boolean test continue_stemming_noun_suffixes, line 469 */
02086     {   int m2 = l - c; (void)m2; /* do, line 470 */
02087         {   int ret = r_stem_noun_suffixes(); /* call stem_noun_suffixes, line 470 */
02088             if (ret == 0) goto lab1;
02089             if (ret < 0) return ret;
02090         }
02091     lab1:
02092         c = l - m2;
02093     }
02094     c = lb;
02095     {   int ret = r_postlude(); /* call postlude, line 473 */
02096         if (ret <= 0) return ret;
02097     }
02098     return 1;
02099 }
02100 
02101 Xapian::InternalStemTurkish::InternalStemTurkish()
02102     : B_continue_stemming_noun_suffixes(0), I_strlen(0)
02103 {
02104 }
02105 
02106 Xapian::InternalStemTurkish::~InternalStemTurkish()
02107 {
02108 }
02109 
02110 const char *
02111 Xapian::InternalStemTurkish::get_description() const
02112 {
02113     return "turkish";
02114 }

Documentation for Xapian (version 1.0.20).
Generated on 28 Apr 2010 by Doxygen 1.5.2.