1# Generated by Snowball 2.2.0 - https://snowballstem.org/ 2 3from .basestemmer import BaseStemmer 4from .among import Among 5 6 7class TurkishStemmer(BaseStemmer): 8 ''' 9 This class implements the stemming algorithm defined by a snowball script. 10 Generated by Snowball 2.2.0 - https://snowballstem.org/ 11 ''' 12 13 a_0 = [ 14 Among(u"m", -1, -1), 15 Among(u"n", -1, -1), 16 Among(u"miz", -1, -1), 17 Among(u"niz", -1, -1), 18 Among(u"muz", -1, -1), 19 Among(u"nuz", -1, -1), 20 Among(u"m\u00FCz", -1, -1), 21 Among(u"n\u00FCz", -1, -1), 22 Among(u"m\u0131z", -1, -1), 23 Among(u"n\u0131z", -1, -1) 24 ] 25 26 a_1 = [ 27 Among(u"leri", -1, -1), 28 Among(u"lar\u0131", -1, -1) 29 ] 30 31 a_2 = [ 32 Among(u"ni", -1, -1), 33 Among(u"nu", -1, -1), 34 Among(u"n\u00FC", -1, -1), 35 Among(u"n\u0131", -1, -1) 36 ] 37 38 a_3 = [ 39 Among(u"in", -1, -1), 40 Among(u"un", -1, -1), 41 Among(u"\u00FCn", -1, -1), 42 Among(u"\u0131n", -1, -1) 43 ] 44 45 a_4 = [ 46 Among(u"a", -1, -1), 47 Among(u"e", -1, -1) 48 ] 49 50 a_5 = [ 51 Among(u"na", -1, -1), 52 Among(u"ne", -1, -1) 53 ] 54 55 a_6 = [ 56 Among(u"da", -1, -1), 57 Among(u"ta", -1, -1), 58 Among(u"de", -1, -1), 59 Among(u"te", -1, -1) 60 ] 61 62 a_7 = [ 63 Among(u"nda", -1, -1), 64 Among(u"nde", -1, -1) 65 ] 66 67 a_8 = [ 68 Among(u"dan", -1, -1), 69 Among(u"tan", -1, -1), 70 Among(u"den", -1, -1), 71 Among(u"ten", -1, -1) 72 ] 73 74 a_9 = [ 75 Among(u"ndan", -1, -1), 76 Among(u"nden", -1, -1) 77 ] 78 79 a_10 = [ 80 Among(u"la", -1, -1), 81 Among(u"le", -1, -1) 82 ] 83 84 a_11 = [ 85 Among(u"ca", -1, -1), 86 Among(u"ce", -1, -1) 87 ] 88 89 a_12 = [ 90 Among(u"im", -1, -1), 91 Among(u"um", -1, -1), 92 Among(u"\u00FCm", -1, -1), 93 Among(u"\u0131m", -1, -1) 94 ] 95 96 a_13 = [ 97 Among(u"sin", -1, -1), 98 Among(u"sun", -1, -1), 99 Among(u"s\u00FCn", -1, -1), 100 Among(u"s\u0131n", -1, -1) 101 ] 102 103 a_14 = [ 104 Among(u"iz", -1, -1), 105 Among(u"uz", -1, -1), 106 Among(u"\u00FCz", -1, -1), 107 Among(u"\u0131z", -1, -1) 108 ] 109 110 a_15 = [ 111 Among(u"siniz", -1, -1), 112 Among(u"sunuz", -1, -1), 113 Among(u"s\u00FCn\u00FCz", -1, -1), 114 Among(u"s\u0131n\u0131z", -1, -1) 115 ] 116 117 a_16 = [ 118 Among(u"lar", -1, -1), 119 Among(u"ler", -1, -1) 120 ] 121 122 a_17 = [ 123 Among(u"niz", -1, -1), 124 Among(u"nuz", -1, -1), 125 Among(u"n\u00FCz", -1, -1), 126 Among(u"n\u0131z", -1, -1) 127 ] 128 129 a_18 = [ 130 Among(u"dir", -1, -1), 131 Among(u"tir", -1, -1), 132 Among(u"dur", -1, -1), 133 Among(u"tur", -1, -1), 134 Among(u"d\u00FCr", -1, -1), 135 Among(u"t\u00FCr", -1, -1), 136 Among(u"d\u0131r", -1, -1), 137 Among(u"t\u0131r", -1, -1) 138 ] 139 140 a_19 = [ 141 Among(u"cas\u0131na", -1, -1), 142 Among(u"cesine", -1, -1) 143 ] 144 145 a_20 = [ 146 Among(u"di", -1, -1), 147 Among(u"ti", -1, -1), 148 Among(u"dik", -1, -1), 149 Among(u"tik", -1, -1), 150 Among(u"duk", -1, -1), 151 Among(u"tuk", -1, -1), 152 Among(u"d\u00FCk", -1, -1), 153 Among(u"t\u00FCk", -1, -1), 154 Among(u"d\u0131k", -1, -1), 155 Among(u"t\u0131k", -1, -1), 156 Among(u"dim", -1, -1), 157 Among(u"tim", -1, -1), 158 Among(u"dum", -1, -1), 159 Among(u"tum", -1, -1), 160 Among(u"d\u00FCm", -1, -1), 161 Among(u"t\u00FCm", -1, -1), 162 Among(u"d\u0131m", -1, -1), 163 Among(u"t\u0131m", -1, -1), 164 Among(u"din", -1, -1), 165 Among(u"tin", -1, -1), 166 Among(u"dun", -1, -1), 167 Among(u"tun", -1, -1), 168 Among(u"d\u00FCn", -1, -1), 169 Among(u"t\u00FCn", -1, -1), 170 Among(u"d\u0131n", -1, -1), 171 Among(u"t\u0131n", -1, -1), 172 Among(u"du", -1, -1), 173 Among(u"tu", -1, -1), 174 Among(u"d\u00FC", -1, -1), 175 Among(u"t\u00FC", -1, -1), 176 Among(u"d\u0131", -1, -1), 177 Among(u"t\u0131", -1, -1) 178 ] 179 180 a_21 = [ 181 Among(u"sa", -1, -1), 182 Among(u"se", -1, -1), 183 Among(u"sak", -1, -1), 184 Among(u"sek", -1, -1), 185 Among(u"sam", -1, -1), 186 Among(u"sem", -1, -1), 187 Among(u"san", -1, -1), 188 Among(u"sen", -1, -1) 189 ] 190 191 a_22 = [ 192 Among(u"mi\u015F", -1, -1), 193 Among(u"mu\u015F", -1, -1), 194 Among(u"m\u00FC\u015F", -1, -1), 195 Among(u"m\u0131\u015F", -1, -1) 196 ] 197 198 a_23 = [ 199 Among(u"b", -1, 1), 200 Among(u"c", -1, 2), 201 Among(u"d", -1, 3), 202 Among(u"\u011F", -1, 4) 203 ] 204 205 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] 206 207 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] 208 209 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] 210 211 g_vowel2 = [17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130] 212 213 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] 214 215 g_vowel4 = [17] 216 217 g_vowel5 = [65] 218 219 g_vowel6 = [65] 220 221 B_continue_stemming_noun_suffixes = False 222 223 def __r_check_vowel_harmony(self): 224 v_1 = self.limit - self.cursor 225 if not self.go_out_grouping_b(TurkishStemmer.g_vowel, 97, 305): 226 return False 227 try: 228 v_2 = self.limit - self.cursor 229 try: 230 if not self.eq_s_b(u"a"): 231 raise lab1() 232 if not self.go_out_grouping_b(TurkishStemmer.g_vowel1, 97, 305): 233 raise lab1() 234 raise lab0() 235 except lab1: pass 236 self.cursor = self.limit - v_2 237 try: 238 if not self.eq_s_b(u"e"): 239 raise lab2() 240 if not self.go_out_grouping_b(TurkishStemmer.g_vowel2, 101, 252): 241 raise lab2() 242 raise lab0() 243 except lab2: pass 244 self.cursor = self.limit - v_2 245 try: 246 if not self.eq_s_b(u"\u0131"): 247 raise lab3() 248 if not self.go_out_grouping_b(TurkishStemmer.g_vowel3, 97, 305): 249 raise lab3() 250 raise lab0() 251 except lab3: pass 252 self.cursor = self.limit - v_2 253 try: 254 if not self.eq_s_b(u"i"): 255 raise lab4() 256 if not self.go_out_grouping_b(TurkishStemmer.g_vowel4, 101, 105): 257 raise lab4() 258 raise lab0() 259 except lab4: pass 260 self.cursor = self.limit - v_2 261 try: 262 if not self.eq_s_b(u"o"): 263 raise lab5() 264 if not self.go_out_grouping_b(TurkishStemmer.g_vowel5, 111, 117): 265 raise lab5() 266 raise lab0() 267 except lab5: pass 268 self.cursor = self.limit - v_2 269 try: 270 if not self.eq_s_b(u"\u00F6"): 271 raise lab6() 272 if not self.go_out_grouping_b(TurkishStemmer.g_vowel6, 246, 252): 273 raise lab6() 274 raise lab0() 275 except lab6: pass 276 self.cursor = self.limit - v_2 277 try: 278 if not self.eq_s_b(u"u"): 279 raise lab7() 280 if not self.go_out_grouping_b(TurkishStemmer.g_vowel5, 111, 117): 281 raise lab7() 282 raise lab0() 283 except lab7: pass 284 self.cursor = self.limit - v_2 285 if not self.eq_s_b(u"\u00FC"): 286 return False 287 if not self.go_out_grouping_b(TurkishStemmer.g_vowel6, 246, 252): 288 return False 289 except lab0: pass 290 self.cursor = self.limit - v_1 291 return True 292 293 def __r_mark_suffix_with_optional_n_consonant(self): 294 try: 295 v_1 = self.limit - self.cursor 296 try: 297 if not self.eq_s_b(u"n"): 298 raise lab1() 299 v_2 = self.limit - self.cursor 300 if not self.in_grouping_b(TurkishStemmer.g_vowel, 97, 305): 301 raise lab1() 302 self.cursor = self.limit - v_2 303 raise lab0() 304 except lab1: pass 305 self.cursor = self.limit - v_1 306 v_3 = self.limit - self.cursor 307 try: 308 v_4 = self.limit - self.cursor 309 if not self.eq_s_b(u"n"): 310 raise lab2() 311 self.cursor = self.limit - v_4 312 return False 313 except lab2: pass 314 self.cursor = self.limit - v_3 315 v_5 = self.limit - self.cursor 316 if self.cursor <= self.limit_backward: 317 return False 318 self.cursor -= 1 319 if not self.in_grouping_b(TurkishStemmer.g_vowel, 97, 305): 320 return False 321 self.cursor = self.limit - v_5 322 except lab0: pass 323 return True 324 325 def __r_mark_suffix_with_optional_s_consonant(self): 326 try: 327 v_1 = self.limit - self.cursor 328 try: 329 if not self.eq_s_b(u"s"): 330 raise lab1() 331 v_2 = self.limit - self.cursor 332 if not self.in_grouping_b(TurkishStemmer.g_vowel, 97, 305): 333 raise lab1() 334 self.cursor = self.limit - v_2 335 raise lab0() 336 except lab1: pass 337 self.cursor = self.limit - v_1 338 v_3 = self.limit - self.cursor 339 try: 340 v_4 = self.limit - self.cursor 341 if not self.eq_s_b(u"s"): 342 raise lab2() 343 self.cursor = self.limit - v_4 344 return False 345 except lab2: pass 346 self.cursor = self.limit - v_3 347 v_5 = self.limit - self.cursor 348 if self.cursor <= self.limit_backward: 349 return False 350 self.cursor -= 1 351 if not self.in_grouping_b(TurkishStemmer.g_vowel, 97, 305): 352 return False 353 self.cursor = self.limit - v_5 354 except lab0: pass 355 return True 356 357 def __r_mark_suffix_with_optional_y_consonant(self): 358 try: 359 v_1 = self.limit - self.cursor 360 try: 361 if not self.eq_s_b(u"y"): 362 raise lab1() 363 v_2 = self.limit - self.cursor 364 if not self.in_grouping_b(TurkishStemmer.g_vowel, 97, 305): 365 raise lab1() 366 self.cursor = self.limit - v_2 367 raise lab0() 368 except lab1: pass 369 self.cursor = self.limit - v_1 370 v_3 = self.limit - self.cursor 371 try: 372 v_4 = self.limit - self.cursor 373 if not self.eq_s_b(u"y"): 374 raise lab2() 375 self.cursor = self.limit - v_4 376 return False 377 except lab2: pass 378 self.cursor = self.limit - v_3 379 v_5 = self.limit - self.cursor 380 if self.cursor <= self.limit_backward: 381 return False 382 self.cursor -= 1 383 if not self.in_grouping_b(TurkishStemmer.g_vowel, 97, 305): 384 return False 385 self.cursor = self.limit - v_5 386 except lab0: pass 387 return True 388 389 def __r_mark_suffix_with_optional_U_vowel(self): 390 try: 391 v_1 = self.limit - self.cursor 392 try: 393 if not self.in_grouping_b(TurkishStemmer.g_U, 105, 305): 394 raise lab1() 395 v_2 = self.limit - self.cursor 396 if not self.out_grouping_b(TurkishStemmer.g_vowel, 97, 305): 397 raise lab1() 398 self.cursor = self.limit - v_2 399 raise lab0() 400 except lab1: pass 401 self.cursor = self.limit - v_1 402 v_3 = self.limit - self.cursor 403 try: 404 v_4 = self.limit - self.cursor 405 if not self.in_grouping_b(TurkishStemmer.g_U, 105, 305): 406 raise lab2() 407 self.cursor = self.limit - v_4 408 return False 409 except lab2: pass 410 self.cursor = self.limit - v_3 411 v_5 = self.limit - self.cursor 412 if self.cursor <= self.limit_backward: 413 return False 414 self.cursor -= 1 415 if not self.out_grouping_b(TurkishStemmer.g_vowel, 97, 305): 416 return False 417 self.cursor = self.limit - v_5 418 except lab0: pass 419 return True 420 421 def __r_mark_possessives(self): 422 if self.find_among_b(TurkishStemmer.a_0) == 0: 423 return False 424 if not self.__r_mark_suffix_with_optional_U_vowel(): 425 return False 426 return True 427 428 def __r_mark_sU(self): 429 if not self.__r_check_vowel_harmony(): 430 return False 431 if not self.in_grouping_b(TurkishStemmer.g_U, 105, 305): 432 return False 433 if not self.__r_mark_suffix_with_optional_s_consonant(): 434 return False 435 return True 436 437 def __r_mark_lArI(self): 438 if self.find_among_b(TurkishStemmer.a_1) == 0: 439 return False 440 return True 441 442 def __r_mark_yU(self): 443 if not self.__r_check_vowel_harmony(): 444 return False 445 if not self.in_grouping_b(TurkishStemmer.g_U, 105, 305): 446 return False 447 if not self.__r_mark_suffix_with_optional_y_consonant(): 448 return False 449 return True 450 451 def __r_mark_nU(self): 452 if not self.__r_check_vowel_harmony(): 453 return False 454 if self.find_among_b(TurkishStemmer.a_2) == 0: 455 return False 456 return True 457 458 def __r_mark_nUn(self): 459 if not self.__r_check_vowel_harmony(): 460 return False 461 if self.find_among_b(TurkishStemmer.a_3) == 0: 462 return False 463 if not self.__r_mark_suffix_with_optional_n_consonant(): 464 return False 465 return True 466 467 def __r_mark_yA(self): 468 if not self.__r_check_vowel_harmony(): 469 return False 470 if self.find_among_b(TurkishStemmer.a_4) == 0: 471 return False 472 if not self.__r_mark_suffix_with_optional_y_consonant(): 473 return False 474 return True 475 476 def __r_mark_nA(self): 477 if not self.__r_check_vowel_harmony(): 478 return False 479 if self.find_among_b(TurkishStemmer.a_5) == 0: 480 return False 481 return True 482 483 def __r_mark_DA(self): 484 if not self.__r_check_vowel_harmony(): 485 return False 486 if self.find_among_b(TurkishStemmer.a_6) == 0: 487 return False 488 return True 489 490 def __r_mark_ndA(self): 491 if not self.__r_check_vowel_harmony(): 492 return False 493 if self.find_among_b(TurkishStemmer.a_7) == 0: 494 return False 495 return True 496 497 def __r_mark_DAn(self): 498 if not self.__r_check_vowel_harmony(): 499 return False 500 if self.find_among_b(TurkishStemmer.a_8) == 0: 501 return False 502 return True 503 504 def __r_mark_ndAn(self): 505 if not self.__r_check_vowel_harmony(): 506 return False 507 if self.find_among_b(TurkishStemmer.a_9) == 0: 508 return False 509 return True 510 511 def __r_mark_ylA(self): 512 if not self.__r_check_vowel_harmony(): 513 return False 514 if self.find_among_b(TurkishStemmer.a_10) == 0: 515 return False 516 if not self.__r_mark_suffix_with_optional_y_consonant(): 517 return False 518 return True 519 520 def __r_mark_ki(self): 521 if not self.eq_s_b(u"ki"): 522 return False 523 return True 524 525 def __r_mark_ncA(self): 526 if not self.__r_check_vowel_harmony(): 527 return False 528 if self.find_among_b(TurkishStemmer.a_11) == 0: 529 return False 530 if not self.__r_mark_suffix_with_optional_n_consonant(): 531 return False 532 return True 533 534 def __r_mark_yUm(self): 535 if not self.__r_check_vowel_harmony(): 536 return False 537 if self.find_among_b(TurkishStemmer.a_12) == 0: 538 return False 539 if not self.__r_mark_suffix_with_optional_y_consonant(): 540 return False 541 return True 542 543 def __r_mark_sUn(self): 544 if not self.__r_check_vowel_harmony(): 545 return False 546 if self.find_among_b(TurkishStemmer.a_13) == 0: 547 return False 548 return True 549 550 def __r_mark_yUz(self): 551 if not self.__r_check_vowel_harmony(): 552 return False 553 if self.find_among_b(TurkishStemmer.a_14) == 0: 554 return False 555 if not self.__r_mark_suffix_with_optional_y_consonant(): 556 return False 557 return True 558 559 def __r_mark_sUnUz(self): 560 if self.find_among_b(TurkishStemmer.a_15) == 0: 561 return False 562 return True 563 564 def __r_mark_lAr(self): 565 if not self.__r_check_vowel_harmony(): 566 return False 567 if self.find_among_b(TurkishStemmer.a_16) == 0: 568 return False 569 return True 570 571 def __r_mark_nUz(self): 572 if not self.__r_check_vowel_harmony(): 573 return False 574 if self.find_among_b(TurkishStemmer.a_17) == 0: 575 return False 576 return True 577 578 def __r_mark_DUr(self): 579 if not self.__r_check_vowel_harmony(): 580 return False 581 if self.find_among_b(TurkishStemmer.a_18) == 0: 582 return False 583 return True 584 585 def __r_mark_cAsInA(self): 586 if self.find_among_b(TurkishStemmer.a_19) == 0: 587 return False 588 return True 589 590 def __r_mark_yDU(self): 591 if not self.__r_check_vowel_harmony(): 592 return False 593 if self.find_among_b(TurkishStemmer.a_20) == 0: 594 return False 595 if not self.__r_mark_suffix_with_optional_y_consonant(): 596 return False 597 return True 598 599 def __r_mark_ysA(self): 600 if self.find_among_b(TurkishStemmer.a_21) == 0: 601 return False 602 if not self.__r_mark_suffix_with_optional_y_consonant(): 603 return False 604 return True 605 606 def __r_mark_ymUs_(self): 607 if not self.__r_check_vowel_harmony(): 608 return False 609 if self.find_among_b(TurkishStemmer.a_22) == 0: 610 return False 611 if not self.__r_mark_suffix_with_optional_y_consonant(): 612 return False 613 return True 614 615 def __r_mark_yken(self): 616 if not self.eq_s_b(u"ken"): 617 return False 618 if not self.__r_mark_suffix_with_optional_y_consonant(): 619 return False 620 return True 621 622 def __r_stem_nominal_verb_suffixes(self): 623 self.ket = self.cursor 624 self.B_continue_stemming_noun_suffixes = True 625 try: 626 v_1 = self.limit - self.cursor 627 try: 628 try: 629 v_2 = self.limit - self.cursor 630 try: 631 if not self.__r_mark_ymUs_(): 632 raise lab3() 633 raise lab2() 634 except lab3: pass 635 self.cursor = self.limit - v_2 636 try: 637 if not self.__r_mark_yDU(): 638 raise lab4() 639 raise lab2() 640 except lab4: pass 641 self.cursor = self.limit - v_2 642 try: 643 if not self.__r_mark_ysA(): 644 raise lab5() 645 raise lab2() 646 except lab5: pass 647 self.cursor = self.limit - v_2 648 if not self.__r_mark_yken(): 649 raise lab1() 650 except lab2: pass 651 raise lab0() 652 except lab1: pass 653 self.cursor = self.limit - v_1 654 try: 655 if not self.__r_mark_cAsInA(): 656 raise lab6() 657 try: 658 v_3 = self.limit - self.cursor 659 try: 660 if not self.__r_mark_sUnUz(): 661 raise lab8() 662 raise lab7() 663 except lab8: pass 664 self.cursor = self.limit - v_3 665 try: 666 if not self.__r_mark_lAr(): 667 raise lab9() 668 raise lab7() 669 except lab9: pass 670 self.cursor = self.limit - v_3 671 try: 672 if not self.__r_mark_yUm(): 673 raise lab10() 674 raise lab7() 675 except lab10: pass 676 self.cursor = self.limit - v_3 677 try: 678 if not self.__r_mark_sUn(): 679 raise lab11() 680 raise lab7() 681 except lab11: pass 682 self.cursor = self.limit - v_3 683 try: 684 if not self.__r_mark_yUz(): 685 raise lab12() 686 raise lab7() 687 except lab12: pass 688 self.cursor = self.limit - v_3 689 except lab7: pass 690 if not self.__r_mark_ymUs_(): 691 raise lab6() 692 raise lab0() 693 except lab6: pass 694 self.cursor = self.limit - v_1 695 try: 696 if not self.__r_mark_lAr(): 697 raise lab13() 698 self.bra = self.cursor 699 if not self.slice_del(): 700 return False 701 702 v_4 = self.limit - self.cursor 703 try: 704 self.ket = self.cursor 705 try: 706 v_5 = self.limit - self.cursor 707 try: 708 if not self.__r_mark_DUr(): 709 raise lab16() 710 raise lab15() 711 except lab16: pass 712 self.cursor = self.limit - v_5 713 try: 714 if not self.__r_mark_yDU(): 715 raise lab17() 716 raise lab15() 717 except lab17: pass 718 self.cursor = self.limit - v_5 719 try: 720 if not self.__r_mark_ysA(): 721 raise lab18() 722 raise lab15() 723 except lab18: pass 724 self.cursor = self.limit - v_5 725 if not self.__r_mark_ymUs_(): 726 self.cursor = self.limit - v_4 727 raise lab14() 728 except lab15: pass 729 except lab14: pass 730 self.B_continue_stemming_noun_suffixes = False 731 raise lab0() 732 except lab13: pass 733 self.cursor = self.limit - v_1 734 try: 735 if not self.__r_mark_nUz(): 736 raise lab19() 737 try: 738 v_6 = self.limit - self.cursor 739 try: 740 if not self.__r_mark_yDU(): 741 raise lab21() 742 raise lab20() 743 except lab21: pass 744 self.cursor = self.limit - v_6 745 if not self.__r_mark_ysA(): 746 raise lab19() 747 except lab20: pass 748 raise lab0() 749 except lab19: pass 750 self.cursor = self.limit - v_1 751 try: 752 try: 753 v_7 = self.limit - self.cursor 754 try: 755 if not self.__r_mark_sUnUz(): 756 raise lab24() 757 raise lab23() 758 except lab24: pass 759 self.cursor = self.limit - v_7 760 try: 761 if not self.__r_mark_yUz(): 762 raise lab25() 763 raise lab23() 764 except lab25: pass 765 self.cursor = self.limit - v_7 766 try: 767 if not self.__r_mark_sUn(): 768 raise lab26() 769 raise lab23() 770 except lab26: pass 771 self.cursor = self.limit - v_7 772 if not self.__r_mark_yUm(): 773 raise lab22() 774 except lab23: pass 775 self.bra = self.cursor 776 if not self.slice_del(): 777 return False 778 779 v_8 = self.limit - self.cursor 780 try: 781 self.ket = self.cursor 782 if not self.__r_mark_ymUs_(): 783 self.cursor = self.limit - v_8 784 raise lab27() 785 except lab27: pass 786 raise lab0() 787 except lab22: pass 788 self.cursor = self.limit - v_1 789 if not self.__r_mark_DUr(): 790 return False 791 self.bra = self.cursor 792 if not self.slice_del(): 793 return False 794 795 v_9 = self.limit - self.cursor 796 try: 797 self.ket = self.cursor 798 try: 799 v_10 = self.limit - self.cursor 800 try: 801 if not self.__r_mark_sUnUz(): 802 raise lab30() 803 raise lab29() 804 except lab30: pass 805 self.cursor = self.limit - v_10 806 try: 807 if not self.__r_mark_lAr(): 808 raise lab31() 809 raise lab29() 810 except lab31: pass 811 self.cursor = self.limit - v_10 812 try: 813 if not self.__r_mark_yUm(): 814 raise lab32() 815 raise lab29() 816 except lab32: pass 817 self.cursor = self.limit - v_10 818 try: 819 if not self.__r_mark_sUn(): 820 raise lab33() 821 raise lab29() 822 except lab33: pass 823 self.cursor = self.limit - v_10 824 try: 825 if not self.__r_mark_yUz(): 826 raise lab34() 827 raise lab29() 828 except lab34: pass 829 self.cursor = self.limit - v_10 830 except lab29: pass 831 if not self.__r_mark_ymUs_(): 832 self.cursor = self.limit - v_9 833 raise lab28() 834 except lab28: pass 835 except lab0: pass 836 self.bra = self.cursor 837 if not self.slice_del(): 838 return False 839 840 return True 841 842 def __r_stem_suffix_chain_before_ki(self): 843 self.ket = self.cursor 844 if not self.__r_mark_ki(): 845 return False 846 try: 847 v_1 = self.limit - self.cursor 848 try: 849 if not self.__r_mark_DA(): 850 raise lab1() 851 self.bra = self.cursor 852 if not self.slice_del(): 853 return False 854 855 v_2 = self.limit - self.cursor 856 try: 857 self.ket = self.cursor 858 try: 859 v_3 = self.limit - self.cursor 860 try: 861 if not self.__r_mark_lAr(): 862 raise lab4() 863 self.bra = self.cursor 864 if not self.slice_del(): 865 return False 866 867 v_4 = self.limit - self.cursor 868 try: 869 if not self.__r_stem_suffix_chain_before_ki(): 870 self.cursor = self.limit - v_4 871 raise lab5() 872 except lab5: pass 873 raise lab3() 874 except lab4: pass 875 self.cursor = self.limit - v_3 876 if not self.__r_mark_possessives(): 877 self.cursor = self.limit - v_2 878 raise lab2() 879 self.bra = self.cursor 880 if not self.slice_del(): 881 return False 882 883 v_5 = self.limit - self.cursor 884 try: 885 self.ket = self.cursor 886 if not self.__r_mark_lAr(): 887 self.cursor = self.limit - v_5 888 raise lab6() 889 self.bra = self.cursor 890 if not self.slice_del(): 891 return False 892 893 if not self.__r_stem_suffix_chain_before_ki(): 894 self.cursor = self.limit - v_5 895 raise lab6() 896 except lab6: pass 897 except lab3: pass 898 except lab2: pass 899 raise lab0() 900 except lab1: pass 901 self.cursor = self.limit - v_1 902 try: 903 if not self.__r_mark_nUn(): 904 raise lab7() 905 self.bra = self.cursor 906 if not self.slice_del(): 907 return False 908 909 v_6 = self.limit - self.cursor 910 try: 911 self.ket = self.cursor 912 try: 913 v_7 = self.limit - self.cursor 914 try: 915 if not self.__r_mark_lArI(): 916 raise lab10() 917 self.bra = self.cursor 918 if not self.slice_del(): 919 return False 920 921 raise lab9() 922 except lab10: pass 923 self.cursor = self.limit - v_7 924 try: 925 self.ket = self.cursor 926 try: 927 v_8 = self.limit - self.cursor 928 try: 929 if not self.__r_mark_possessives(): 930 raise lab13() 931 raise lab12() 932 except lab13: pass 933 self.cursor = self.limit - v_8 934 if not self.__r_mark_sU(): 935 raise lab11() 936 except lab12: pass 937 self.bra = self.cursor 938 if not self.slice_del(): 939 return False 940 941 v_9 = self.limit - self.cursor 942 try: 943 self.ket = self.cursor 944 if not self.__r_mark_lAr(): 945 self.cursor = self.limit - v_9 946 raise lab14() 947 self.bra = self.cursor 948 if not self.slice_del(): 949 return False 950 951 if not self.__r_stem_suffix_chain_before_ki(): 952 self.cursor = self.limit - v_9 953 raise lab14() 954 except lab14: pass 955 raise lab9() 956 except lab11: pass 957 self.cursor = self.limit - v_7 958 if not self.__r_stem_suffix_chain_before_ki(): 959 self.cursor = self.limit - v_6 960 raise lab8() 961 except lab9: pass 962 except lab8: pass 963 raise lab0() 964 except lab7: pass 965 self.cursor = self.limit - v_1 966 if not self.__r_mark_ndA(): 967 return False 968 try: 969 v_10 = self.limit - self.cursor 970 try: 971 if not self.__r_mark_lArI(): 972 raise lab16() 973 self.bra = self.cursor 974 if not self.slice_del(): 975 return False 976 977 raise lab15() 978 except lab16: pass 979 self.cursor = self.limit - v_10 980 try: 981 if not self.__r_mark_sU(): 982 raise lab17() 983 self.bra = self.cursor 984 if not self.slice_del(): 985 return False 986 987 v_11 = self.limit - self.cursor 988 try: 989 self.ket = self.cursor 990 if not self.__r_mark_lAr(): 991 self.cursor = self.limit - v_11 992 raise lab18() 993 self.bra = self.cursor 994 if not self.slice_del(): 995 return False 996 997 if not self.__r_stem_suffix_chain_before_ki(): 998 self.cursor = self.limit - v_11 999 raise lab18() 1000 except lab18: pass 1001 raise lab15() 1002 except lab17: pass 1003 self.cursor = self.limit - v_10 1004 if not self.__r_stem_suffix_chain_before_ki(): 1005 return False 1006 except lab15: pass 1007 except lab0: pass 1008 return True 1009 1010 def __r_stem_noun_suffixes(self): 1011 try: 1012 v_1 = self.limit - self.cursor 1013 try: 1014 self.ket = self.cursor 1015 if not self.__r_mark_lAr(): 1016 raise lab1() 1017 self.bra = self.cursor 1018 if not self.slice_del(): 1019 return False 1020 1021 v_2 = self.limit - self.cursor 1022 try: 1023 if not self.__r_stem_suffix_chain_before_ki(): 1024 self.cursor = self.limit - v_2 1025 raise lab2() 1026 except lab2: pass 1027 raise lab0() 1028 except lab1: pass 1029 self.cursor = self.limit - v_1 1030 try: 1031 self.ket = self.cursor 1032 if not self.__r_mark_ncA(): 1033 raise lab3() 1034 self.bra = self.cursor 1035 if not self.slice_del(): 1036 return False 1037 1038 v_3 = self.limit - self.cursor 1039 try: 1040 try: 1041 v_4 = self.limit - self.cursor 1042 try: 1043 self.ket = self.cursor 1044 if not self.__r_mark_lArI(): 1045 raise lab6() 1046 self.bra = self.cursor 1047 if not self.slice_del(): 1048 return False 1049 1050 raise lab5() 1051 except lab6: pass 1052 self.cursor = self.limit - v_4 1053 try: 1054 self.ket = self.cursor 1055 try: 1056 v_5 = self.limit - self.cursor 1057 try: 1058 if not self.__r_mark_possessives(): 1059 raise lab9() 1060 raise lab8() 1061 except lab9: pass 1062 self.cursor = self.limit - v_5 1063 if not self.__r_mark_sU(): 1064 raise lab7() 1065 except lab8: pass 1066 self.bra = self.cursor 1067 if not self.slice_del(): 1068 return False 1069 1070 v_6 = self.limit - self.cursor 1071 try: 1072 self.ket = self.cursor 1073 if not self.__r_mark_lAr(): 1074 self.cursor = self.limit - v_6 1075 raise lab10() 1076 self.bra = self.cursor 1077 if not self.slice_del(): 1078 return False 1079 1080 if not self.__r_stem_suffix_chain_before_ki(): 1081 self.cursor = self.limit - v_6 1082 raise lab10() 1083 except lab10: pass 1084 raise lab5() 1085 except lab7: pass 1086 self.cursor = self.limit - v_4 1087 self.ket = self.cursor 1088 if not self.__r_mark_lAr(): 1089 self.cursor = self.limit - v_3 1090 raise lab4() 1091 self.bra = self.cursor 1092 if not self.slice_del(): 1093 return False 1094 1095 if not self.__r_stem_suffix_chain_before_ki(): 1096 self.cursor = self.limit - v_3 1097 raise lab4() 1098 except lab5: pass 1099 except lab4: pass 1100 raise lab0() 1101 except lab3: pass 1102 self.cursor = self.limit - v_1 1103 try: 1104 self.ket = self.cursor 1105 try: 1106 v_7 = self.limit - self.cursor 1107 try: 1108 if not self.__r_mark_ndA(): 1109 raise lab13() 1110 raise lab12() 1111 except lab13: pass 1112 self.cursor = self.limit - v_7 1113 if not self.__r_mark_nA(): 1114 raise lab11() 1115 except lab12: pass 1116 try: 1117 v_8 = self.limit - self.cursor 1118 try: 1119 if not self.__r_mark_lArI(): 1120 raise lab15() 1121 self.bra = self.cursor 1122 if not self.slice_del(): 1123 return False 1124 1125 raise lab14() 1126 except lab15: pass 1127 self.cursor = self.limit - v_8 1128 try: 1129 if not self.__r_mark_sU(): 1130 raise lab16() 1131 self.bra = self.cursor 1132 if not self.slice_del(): 1133 return False 1134 1135 v_9 = self.limit - self.cursor 1136 try: 1137 self.ket = self.cursor 1138 if not self.__r_mark_lAr(): 1139 self.cursor = self.limit - v_9 1140 raise lab17() 1141 self.bra = self.cursor 1142 if not self.slice_del(): 1143 return False 1144 1145 if not self.__r_stem_suffix_chain_before_ki(): 1146 self.cursor = self.limit - v_9 1147 raise lab17() 1148 except lab17: pass 1149 raise lab14() 1150 except lab16: pass 1151 self.cursor = self.limit - v_8 1152 if not self.__r_stem_suffix_chain_before_ki(): 1153 raise lab11() 1154 except lab14: pass 1155 raise lab0() 1156 except lab11: pass 1157 self.cursor = self.limit - v_1 1158 try: 1159 self.ket = self.cursor 1160 try: 1161 v_10 = self.limit - self.cursor 1162 try: 1163 if not self.__r_mark_ndAn(): 1164 raise lab20() 1165 raise lab19() 1166 except lab20: pass 1167 self.cursor = self.limit - v_10 1168 if not self.__r_mark_nU(): 1169 raise lab18() 1170 except lab19: pass 1171 try: 1172 v_11 = self.limit - self.cursor 1173 try: 1174 if not self.__r_mark_sU(): 1175 raise lab22() 1176 self.bra = self.cursor 1177 if not self.slice_del(): 1178 return False 1179 1180 v_12 = self.limit - self.cursor 1181 try: 1182 self.ket = self.cursor 1183 if not self.__r_mark_lAr(): 1184 self.cursor = self.limit - v_12 1185 raise lab23() 1186 self.bra = self.cursor 1187 if not self.slice_del(): 1188 return False 1189 1190 if not self.__r_stem_suffix_chain_before_ki(): 1191 self.cursor = self.limit - v_12 1192 raise lab23() 1193 except lab23: pass 1194 raise lab21() 1195 except lab22: pass 1196 self.cursor = self.limit - v_11 1197 if not self.__r_mark_lArI(): 1198 raise lab18() 1199 except lab21: pass 1200 raise lab0() 1201 except lab18: pass 1202 self.cursor = self.limit - v_1 1203 try: 1204 self.ket = self.cursor 1205 if not self.__r_mark_DAn(): 1206 raise lab24() 1207 self.bra = self.cursor 1208 if not self.slice_del(): 1209 return False 1210 1211 v_13 = self.limit - self.cursor 1212 try: 1213 self.ket = self.cursor 1214 try: 1215 v_14 = self.limit - self.cursor 1216 try: 1217 if not self.__r_mark_possessives(): 1218 raise lab27() 1219 self.bra = self.cursor 1220 if not self.slice_del(): 1221 return False 1222 1223 v_15 = self.limit - self.cursor 1224 try: 1225 self.ket = self.cursor 1226 if not self.__r_mark_lAr(): 1227 self.cursor = self.limit - v_15 1228 raise lab28() 1229 self.bra = self.cursor 1230 if not self.slice_del(): 1231 return False 1232 1233 if not self.__r_stem_suffix_chain_before_ki(): 1234 self.cursor = self.limit - v_15 1235 raise lab28() 1236 except lab28: pass 1237 raise lab26() 1238 except lab27: pass 1239 self.cursor = self.limit - v_14 1240 try: 1241 if not self.__r_mark_lAr(): 1242 raise lab29() 1243 self.bra = self.cursor 1244 if not self.slice_del(): 1245 return False 1246 1247 v_16 = self.limit - self.cursor 1248 try: 1249 if not self.__r_stem_suffix_chain_before_ki(): 1250 self.cursor = self.limit - v_16 1251 raise lab30() 1252 except lab30: pass 1253 raise lab26() 1254 except lab29: pass 1255 self.cursor = self.limit - v_14 1256 if not self.__r_stem_suffix_chain_before_ki(): 1257 self.cursor = self.limit - v_13 1258 raise lab25() 1259 except lab26: pass 1260 except lab25: pass 1261 raise lab0() 1262 except lab24: pass 1263 self.cursor = self.limit - v_1 1264 try: 1265 self.ket = self.cursor 1266 try: 1267 v_17 = self.limit - self.cursor 1268 try: 1269 if not self.__r_mark_nUn(): 1270 raise lab33() 1271 raise lab32() 1272 except lab33: pass 1273 self.cursor = self.limit - v_17 1274 if not self.__r_mark_ylA(): 1275 raise lab31() 1276 except lab32: pass 1277 self.bra = self.cursor 1278 if not self.slice_del(): 1279 return False 1280 1281 v_18 = self.limit - self.cursor 1282 try: 1283 try: 1284 v_19 = self.limit - self.cursor 1285 try: 1286 self.ket = self.cursor 1287 if not self.__r_mark_lAr(): 1288 raise lab36() 1289 self.bra = self.cursor 1290 if not self.slice_del(): 1291 return False 1292 1293 if not self.__r_stem_suffix_chain_before_ki(): 1294 raise lab36() 1295 raise lab35() 1296 except lab36: pass 1297 self.cursor = self.limit - v_19 1298 try: 1299 self.ket = self.cursor 1300 try: 1301 v_20 = self.limit - self.cursor 1302 try: 1303 if not self.__r_mark_possessives(): 1304 raise lab39() 1305 raise lab38() 1306 except lab39: pass 1307 self.cursor = self.limit - v_20 1308 if not self.__r_mark_sU(): 1309 raise lab37() 1310 except lab38: pass 1311 self.bra = self.cursor 1312 if not self.slice_del(): 1313 return False 1314 1315 v_21 = self.limit - self.cursor 1316 try: 1317 self.ket = self.cursor 1318 if not self.__r_mark_lAr(): 1319 self.cursor = self.limit - v_21 1320 raise lab40() 1321 self.bra = self.cursor 1322 if not self.slice_del(): 1323 return False 1324 1325 if not self.__r_stem_suffix_chain_before_ki(): 1326 self.cursor = self.limit - v_21 1327 raise lab40() 1328 except lab40: pass 1329 raise lab35() 1330 except lab37: pass 1331 self.cursor = self.limit - v_19 1332 if not self.__r_stem_suffix_chain_before_ki(): 1333 self.cursor = self.limit - v_18 1334 raise lab34() 1335 except lab35: pass 1336 except lab34: pass 1337 raise lab0() 1338 except lab31: pass 1339 self.cursor = self.limit - v_1 1340 try: 1341 self.ket = self.cursor 1342 if not self.__r_mark_lArI(): 1343 raise lab41() 1344 self.bra = self.cursor 1345 if not self.slice_del(): 1346 return False 1347 1348 raise lab0() 1349 except lab41: pass 1350 self.cursor = self.limit - v_1 1351 try: 1352 if not self.__r_stem_suffix_chain_before_ki(): 1353 raise lab42() 1354 raise lab0() 1355 except lab42: pass 1356 self.cursor = self.limit - v_1 1357 try: 1358 self.ket = self.cursor 1359 try: 1360 v_22 = self.limit - self.cursor 1361 try: 1362 if not self.__r_mark_DA(): 1363 raise lab45() 1364 raise lab44() 1365 except lab45: pass 1366 self.cursor = self.limit - v_22 1367 try: 1368 if not self.__r_mark_yU(): 1369 raise lab46() 1370 raise lab44() 1371 except lab46: pass 1372 self.cursor = self.limit - v_22 1373 if not self.__r_mark_yA(): 1374 raise lab43() 1375 except lab44: pass 1376 self.bra = self.cursor 1377 if not self.slice_del(): 1378 return False 1379 1380 v_23 = self.limit - self.cursor 1381 try: 1382 self.ket = self.cursor 1383 try: 1384 v_24 = self.limit - self.cursor 1385 try: 1386 if not self.__r_mark_possessives(): 1387 raise lab49() 1388 self.bra = self.cursor 1389 if not self.slice_del(): 1390 return False 1391 1392 v_25 = self.limit - self.cursor 1393 try: 1394 self.ket = self.cursor 1395 if not self.__r_mark_lAr(): 1396 self.cursor = self.limit - v_25 1397 raise lab50() 1398 except lab50: pass 1399 raise lab48() 1400 except lab49: pass 1401 self.cursor = self.limit - v_24 1402 if not self.__r_mark_lAr(): 1403 self.cursor = self.limit - v_23 1404 raise lab47() 1405 except lab48: pass 1406 self.bra = self.cursor 1407 if not self.slice_del(): 1408 return False 1409 1410 self.ket = self.cursor 1411 if not self.__r_stem_suffix_chain_before_ki(): 1412 self.cursor = self.limit - v_23 1413 raise lab47() 1414 except lab47: pass 1415 raise lab0() 1416 except lab43: pass 1417 self.cursor = self.limit - v_1 1418 self.ket = self.cursor 1419 try: 1420 v_26 = self.limit - self.cursor 1421 try: 1422 if not self.__r_mark_possessives(): 1423 raise lab52() 1424 raise lab51() 1425 except lab52: pass 1426 self.cursor = self.limit - v_26 1427 if not self.__r_mark_sU(): 1428 return False 1429 except lab51: pass 1430 self.bra = self.cursor 1431 if not self.slice_del(): 1432 return False 1433 1434 v_27 = self.limit - self.cursor 1435 try: 1436 self.ket = self.cursor 1437 if not self.__r_mark_lAr(): 1438 self.cursor = self.limit - v_27 1439 raise lab53() 1440 self.bra = self.cursor 1441 if not self.slice_del(): 1442 return False 1443 1444 if not self.__r_stem_suffix_chain_before_ki(): 1445 self.cursor = self.limit - v_27 1446 raise lab53() 1447 except lab53: pass 1448 except lab0: pass 1449 return True 1450 1451 def __r_post_process_last_consonants(self): 1452 self.ket = self.cursor 1453 among_var = self.find_among_b(TurkishStemmer.a_23) 1454 if among_var == 0: 1455 return False 1456 self.bra = self.cursor 1457 if among_var == 1: 1458 if not self.slice_from(u"p"): 1459 return False 1460 elif among_var == 2: 1461 if not self.slice_from(u"\u00E7"): 1462 return False 1463 elif among_var == 3: 1464 if not self.slice_from(u"t"): 1465 return False 1466 else: 1467 if not self.slice_from(u"k"): 1468 return False 1469 return True 1470 1471 def __r_append_U_to_stems_ending_with_d_or_g(self): 1472 v_1 = self.limit - self.cursor 1473 try: 1474 v_2 = self.limit - self.cursor 1475 try: 1476 if not self.eq_s_b(u"d"): 1477 raise lab1() 1478 raise lab0() 1479 except lab1: pass 1480 self.cursor = self.limit - v_2 1481 if not self.eq_s_b(u"g"): 1482 return False 1483 except lab0: pass 1484 self.cursor = self.limit - v_1 1485 try: 1486 v_3 = self.limit - self.cursor 1487 try: 1488 v_4 = self.limit - self.cursor 1489 if not self.go_out_grouping_b(TurkishStemmer.g_vowel, 97, 305): 1490 raise lab3() 1491 try: 1492 v_5 = self.limit - self.cursor 1493 try: 1494 if not self.eq_s_b(u"a"): 1495 raise lab5() 1496 raise lab4() 1497 except lab5: pass 1498 self.cursor = self.limit - v_5 1499 if not self.eq_s_b(u"\u0131"): 1500 raise lab3() 1501 except lab4: pass 1502 self.cursor = self.limit - v_4 1503 c = self.cursor 1504 self.insert(self.cursor, self.cursor, u"\u0131") 1505 self.cursor = c 1506 raise lab2() 1507 except lab3: pass 1508 self.cursor = self.limit - v_3 1509 try: 1510 v_6 = self.limit - self.cursor 1511 if not self.go_out_grouping_b(TurkishStemmer.g_vowel, 97, 305): 1512 raise lab6() 1513 try: 1514 v_7 = self.limit - self.cursor 1515 try: 1516 if not self.eq_s_b(u"e"): 1517 raise lab8() 1518 raise lab7() 1519 except lab8: pass 1520 self.cursor = self.limit - v_7 1521 if not self.eq_s_b(u"i"): 1522 raise lab6() 1523 except lab7: pass 1524 self.cursor = self.limit - v_6 1525 c = self.cursor 1526 self.insert(self.cursor, self.cursor, u"i") 1527 self.cursor = c 1528 raise lab2() 1529 except lab6: pass 1530 self.cursor = self.limit - v_3 1531 try: 1532 v_8 = self.limit - self.cursor 1533 if not self.go_out_grouping_b(TurkishStemmer.g_vowel, 97, 305): 1534 raise lab9() 1535 try: 1536 v_9 = self.limit - self.cursor 1537 try: 1538 if not self.eq_s_b(u"o"): 1539 raise lab11() 1540 raise lab10() 1541 except lab11: pass 1542 self.cursor = self.limit - v_9 1543 if not self.eq_s_b(u"u"): 1544 raise lab9() 1545 except lab10: pass 1546 self.cursor = self.limit - v_8 1547 c = self.cursor 1548 self.insert(self.cursor, self.cursor, u"u") 1549 self.cursor = c 1550 raise lab2() 1551 except lab9: pass 1552 self.cursor = self.limit - v_3 1553 v_10 = self.limit - self.cursor 1554 if not self.go_out_grouping_b(TurkishStemmer.g_vowel, 97, 305): 1555 return False 1556 try: 1557 v_11 = self.limit - self.cursor 1558 try: 1559 if not self.eq_s_b(u"\u00F6"): 1560 raise lab13() 1561 raise lab12() 1562 except lab13: pass 1563 self.cursor = self.limit - v_11 1564 if not self.eq_s_b(u"\u00FC"): 1565 return False 1566 except lab12: pass 1567 self.cursor = self.limit - v_10 1568 c = self.cursor 1569 self.insert(self.cursor, self.cursor, u"\u00FC") 1570 self.cursor = c 1571 except lab2: pass 1572 return True 1573 1574 def __r_is_reserved_word(self): 1575 if not self.eq_s_b(u"ad"): 1576 return False 1577 v_1 = self.limit - self.cursor 1578 try: 1579 if not self.eq_s_b(u"soy"): 1580 self.cursor = self.limit - v_1 1581 raise lab0() 1582 except lab0: pass 1583 if self.cursor > self.limit_backward: 1584 return False 1585 return True 1586 1587 def __r_more_than_one_syllable_word(self): 1588 v_1 = self.cursor 1589 v_2 = 2 1590 while True: 1591 v_3 = self.cursor 1592 try: 1593 if not self.go_out_grouping(TurkishStemmer.g_vowel, 97, 305): 1594 raise lab0() 1595 self.cursor += 1 1596 v_2 -= 1 1597 continue 1598 except lab0: pass 1599 self.cursor = v_3 1600 break 1601 if v_2 > 0: 1602 return False 1603 self.cursor = v_1 1604 return True 1605 1606 def __r_postlude(self): 1607 self.limit_backward = self.cursor 1608 self.cursor = self.limit 1609 v_1 = self.limit - self.cursor 1610 try: 1611 if not self.__r_is_reserved_word(): 1612 raise lab0() 1613 return False 1614 except lab0: pass 1615 self.cursor = self.limit - v_1 1616 v_2 = self.limit - self.cursor 1617 self.__r_append_U_to_stems_ending_with_d_or_g() 1618 self.cursor = self.limit - v_2 1619 v_3 = self.limit - self.cursor 1620 self.__r_post_process_last_consonants() 1621 self.cursor = self.limit - v_3 1622 self.cursor = self.limit_backward 1623 return True 1624 1625 def _stem(self): 1626 if not self.__r_more_than_one_syllable_word(): 1627 return False 1628 self.limit_backward = self.cursor 1629 self.cursor = self.limit 1630 v_1 = self.limit - self.cursor 1631 self.__r_stem_nominal_verb_suffixes() 1632 self.cursor = self.limit - v_1 1633 if not self.B_continue_stemming_noun_suffixes: 1634 return False 1635 v_2 = self.limit - self.cursor 1636 self.__r_stem_noun_suffixes() 1637 self.cursor = self.limit - v_2 1638 self.cursor = self.limit_backward 1639 if not self.__r_postlude(): 1640 return False 1641 return True 1642 1643 1644class lab0(BaseException): pass 1645 1646 1647class lab1(BaseException): pass 1648 1649 1650class lab2(BaseException): pass 1651 1652 1653class lab3(BaseException): pass 1654 1655 1656class lab4(BaseException): pass 1657 1658 1659class lab5(BaseException): pass 1660 1661 1662class lab6(BaseException): pass 1663 1664 1665class lab7(BaseException): pass 1666 1667 1668class lab8(BaseException): pass 1669 1670 1671class lab9(BaseException): pass 1672 1673 1674class lab10(BaseException): pass 1675 1676 1677class lab11(BaseException): pass 1678 1679 1680class lab12(BaseException): pass 1681 1682 1683class lab13(BaseException): pass 1684 1685 1686class lab14(BaseException): pass 1687 1688 1689class lab15(BaseException): pass 1690 1691 1692class lab16(BaseException): pass 1693 1694 1695class lab17(BaseException): pass 1696 1697 1698class lab18(BaseException): pass 1699 1700 1701class lab19(BaseException): pass 1702 1703 1704class lab20(BaseException): pass 1705 1706 1707class lab21(BaseException): pass 1708 1709 1710class lab22(BaseException): pass 1711 1712 1713class lab23(BaseException): pass 1714 1715 1716class lab24(BaseException): pass 1717 1718 1719class lab25(BaseException): pass 1720 1721 1722class lab26(BaseException): pass 1723 1724 1725class lab27(BaseException): pass 1726 1727 1728class lab28(BaseException): pass 1729 1730 1731class lab29(BaseException): pass 1732 1733 1734class lab30(BaseException): pass 1735 1736 1737class lab31(BaseException): pass 1738 1739 1740class lab32(BaseException): pass 1741 1742 1743class lab33(BaseException): pass 1744 1745 1746class lab34(BaseException): pass 1747 1748 1749class lab35(BaseException): pass 1750 1751 1752class lab36(BaseException): pass 1753 1754 1755class lab37(BaseException): pass 1756 1757 1758class lab38(BaseException): pass 1759 1760 1761class lab39(BaseException): pass 1762 1763 1764class lab40(BaseException): pass 1765 1766 1767class lab41(BaseException): pass 1768 1769 1770class lab42(BaseException): pass 1771 1772 1773class lab43(BaseException): pass 1774 1775 1776class lab44(BaseException): pass 1777 1778 1779class lab45(BaseException): pass 1780 1781 1782class lab46(BaseException): pass 1783 1784 1785class lab47(BaseException): pass 1786 1787 1788class lab48(BaseException): pass 1789 1790 1791class lab49(BaseException): pass 1792 1793 1794class lab50(BaseException): pass 1795 1796 1797class lab51(BaseException): pass 1798 1799 1800class lab52(BaseException): pass 1801 1802 1803class lab53(BaseException): pass 1804