1// Generated by Snowball 2.1.0 - https://snowballstem.org/ 2 3/**@constructor*/ 4TurkishStemmer = function() { 5 var base = new BaseStemmer(); 6 /** @const */ var a_0 = [ 7 ["m", -1, -1], 8 ["n", -1, -1], 9 ["miz", -1, -1], 10 ["niz", -1, -1], 11 ["muz", -1, -1], 12 ["nuz", -1, -1], 13 ["m\u00FCz", -1, -1], 14 ["n\u00FCz", -1, -1], 15 ["m\u0131z", -1, -1], 16 ["n\u0131z", -1, -1] 17 ]; 18 19 /** @const */ var a_1 = [ 20 ["leri", -1, -1], 21 ["lar\u0131", -1, -1] 22 ]; 23 24 /** @const */ var a_2 = [ 25 ["ni", -1, -1], 26 ["nu", -1, -1], 27 ["n\u00FC", -1, -1], 28 ["n\u0131", -1, -1] 29 ]; 30 31 /** @const */ var a_3 = [ 32 ["in", -1, -1], 33 ["un", -1, -1], 34 ["\u00FCn", -1, -1], 35 ["\u0131n", -1, -1] 36 ]; 37 38 /** @const */ var a_4 = [ 39 ["a", -1, -1], 40 ["e", -1, -1] 41 ]; 42 43 /** @const */ var a_5 = [ 44 ["na", -1, -1], 45 ["ne", -1, -1] 46 ]; 47 48 /** @const */ var a_6 = [ 49 ["da", -1, -1], 50 ["ta", -1, -1], 51 ["de", -1, -1], 52 ["te", -1, -1] 53 ]; 54 55 /** @const */ var a_7 = [ 56 ["nda", -1, -1], 57 ["nde", -1, -1] 58 ]; 59 60 /** @const */ var a_8 = [ 61 ["dan", -1, -1], 62 ["tan", -1, -1], 63 ["den", -1, -1], 64 ["ten", -1, -1] 65 ]; 66 67 /** @const */ var a_9 = [ 68 ["ndan", -1, -1], 69 ["nden", -1, -1] 70 ]; 71 72 /** @const */ var a_10 = [ 73 ["la", -1, -1], 74 ["le", -1, -1] 75 ]; 76 77 /** @const */ var a_11 = [ 78 ["ca", -1, -1], 79 ["ce", -1, -1] 80 ]; 81 82 /** @const */ var a_12 = [ 83 ["im", -1, -1], 84 ["um", -1, -1], 85 ["\u00FCm", -1, -1], 86 ["\u0131m", -1, -1] 87 ]; 88 89 /** @const */ var a_13 = [ 90 ["sin", -1, -1], 91 ["sun", -1, -1], 92 ["s\u00FCn", -1, -1], 93 ["s\u0131n", -1, -1] 94 ]; 95 96 /** @const */ var a_14 = [ 97 ["iz", -1, -1], 98 ["uz", -1, -1], 99 ["\u00FCz", -1, -1], 100 ["\u0131z", -1, -1] 101 ]; 102 103 /** @const */ var a_15 = [ 104 ["siniz", -1, -1], 105 ["sunuz", -1, -1], 106 ["s\u00FCn\u00FCz", -1, -1], 107 ["s\u0131n\u0131z", -1, -1] 108 ]; 109 110 /** @const */ var a_16 = [ 111 ["lar", -1, -1], 112 ["ler", -1, -1] 113 ]; 114 115 /** @const */ var a_17 = [ 116 ["niz", -1, -1], 117 ["nuz", -1, -1], 118 ["n\u00FCz", -1, -1], 119 ["n\u0131z", -1, -1] 120 ]; 121 122 /** @const */ var a_18 = [ 123 ["dir", -1, -1], 124 ["tir", -1, -1], 125 ["dur", -1, -1], 126 ["tur", -1, -1], 127 ["d\u00FCr", -1, -1], 128 ["t\u00FCr", -1, -1], 129 ["d\u0131r", -1, -1], 130 ["t\u0131r", -1, -1] 131 ]; 132 133 /** @const */ var a_19 = [ 134 ["cas\u0131na", -1, -1], 135 ["cesine", -1, -1] 136 ]; 137 138 /** @const */ var a_20 = [ 139 ["di", -1, -1], 140 ["ti", -1, -1], 141 ["dik", -1, -1], 142 ["tik", -1, -1], 143 ["duk", -1, -1], 144 ["tuk", -1, -1], 145 ["d\u00FCk", -1, -1], 146 ["t\u00FCk", -1, -1], 147 ["d\u0131k", -1, -1], 148 ["t\u0131k", -1, -1], 149 ["dim", -1, -1], 150 ["tim", -1, -1], 151 ["dum", -1, -1], 152 ["tum", -1, -1], 153 ["d\u00FCm", -1, -1], 154 ["t\u00FCm", -1, -1], 155 ["d\u0131m", -1, -1], 156 ["t\u0131m", -1, -1], 157 ["din", -1, -1], 158 ["tin", -1, -1], 159 ["dun", -1, -1], 160 ["tun", -1, -1], 161 ["d\u00FCn", -1, -1], 162 ["t\u00FCn", -1, -1], 163 ["d\u0131n", -1, -1], 164 ["t\u0131n", -1, -1], 165 ["du", -1, -1], 166 ["tu", -1, -1], 167 ["d\u00FC", -1, -1], 168 ["t\u00FC", -1, -1], 169 ["d\u0131", -1, -1], 170 ["t\u0131", -1, -1] 171 ]; 172 173 /** @const */ var a_21 = [ 174 ["sa", -1, -1], 175 ["se", -1, -1], 176 ["sak", -1, -1], 177 ["sek", -1, -1], 178 ["sam", -1, -1], 179 ["sem", -1, -1], 180 ["san", -1, -1], 181 ["sen", -1, -1] 182 ]; 183 184 /** @const */ var a_22 = [ 185 ["mi\u015F", -1, -1], 186 ["mu\u015F", -1, -1], 187 ["m\u00FC\u015F", -1, -1], 188 ["m\u0131\u015F", -1, -1] 189 ]; 190 191 /** @const */ var a_23 = [ 192 ["b", -1, 1], 193 ["c", -1, 2], 194 ["d", -1, 3], 195 ["\u011F", -1, 4] 196 ]; 197 198 /** @const */ var /** Array<int> */ 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]; 199 200 /** @const */ var /** Array<int> */ 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]; 201 202 /** @const */ var /** Array<int> */ 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]; 203 204 /** @const */ var /** Array<int> */ g_vowel2 = [17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130]; 205 206 /** @const */ var /** Array<int> */ 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]; 207 208 /** @const */ var /** Array<int> */ g_vowel4 = [17]; 209 210 /** @const */ var /** Array<int> */ g_vowel5 = [65]; 211 212 /** @const */ var /** Array<int> */ g_vowel6 = [65]; 213 214 var /** boolean */ B_continue_stemming_noun_suffixes = false; 215 216 217 /** @return {boolean} */ 218 function r_check_vowel_harmony() { 219 var /** number */ v_1 = base.limit - base.cursor; 220 golab0: while(true) 221 { 222 var /** number */ v_2 = base.limit - base.cursor; 223 lab1: { 224 if (!(base.in_grouping_b(g_vowel, 97, 305))) 225 { 226 break lab1; 227 } 228 base.cursor = base.limit - v_2; 229 break golab0; 230 } 231 base.cursor = base.limit - v_2; 232 if (base.cursor <= base.limit_backward) 233 { 234 return false; 235 } 236 base.cursor--; 237 } 238 lab2: { 239 var /** number */ v_3 = base.limit - base.cursor; 240 lab3: { 241 if (!(base.eq_s_b("a"))) 242 { 243 break lab3; 244 } 245 golab4: while(true) 246 { 247 var /** number */ v_4 = base.limit - base.cursor; 248 lab5: { 249 if (!(base.in_grouping_b(g_vowel1, 97, 305))) 250 { 251 break lab5; 252 } 253 base.cursor = base.limit - v_4; 254 break golab4; 255 } 256 base.cursor = base.limit - v_4; 257 if (base.cursor <= base.limit_backward) 258 { 259 break lab3; 260 } 261 base.cursor--; 262 } 263 break lab2; 264 } 265 base.cursor = base.limit - v_3; 266 lab6: { 267 if (!(base.eq_s_b("e"))) 268 { 269 break lab6; 270 } 271 golab7: while(true) 272 { 273 var /** number */ v_5 = base.limit - base.cursor; 274 lab8: { 275 if (!(base.in_grouping_b(g_vowel2, 101, 252))) 276 { 277 break lab8; 278 } 279 base.cursor = base.limit - v_5; 280 break golab7; 281 } 282 base.cursor = base.limit - v_5; 283 if (base.cursor <= base.limit_backward) 284 { 285 break lab6; 286 } 287 base.cursor--; 288 } 289 break lab2; 290 } 291 base.cursor = base.limit - v_3; 292 lab9: { 293 if (!(base.eq_s_b("\u0131"))) 294 { 295 break lab9; 296 } 297 golab10: while(true) 298 { 299 var /** number */ v_6 = base.limit - base.cursor; 300 lab11: { 301 if (!(base.in_grouping_b(g_vowel3, 97, 305))) 302 { 303 break lab11; 304 } 305 base.cursor = base.limit - v_6; 306 break golab10; 307 } 308 base.cursor = base.limit - v_6; 309 if (base.cursor <= base.limit_backward) 310 { 311 break lab9; 312 } 313 base.cursor--; 314 } 315 break lab2; 316 } 317 base.cursor = base.limit - v_3; 318 lab12: { 319 if (!(base.eq_s_b("i"))) 320 { 321 break lab12; 322 } 323 golab13: while(true) 324 { 325 var /** number */ v_7 = base.limit - base.cursor; 326 lab14: { 327 if (!(base.in_grouping_b(g_vowel4, 101, 105))) 328 { 329 break lab14; 330 } 331 base.cursor = base.limit - v_7; 332 break golab13; 333 } 334 base.cursor = base.limit - v_7; 335 if (base.cursor <= base.limit_backward) 336 { 337 break lab12; 338 } 339 base.cursor--; 340 } 341 break lab2; 342 } 343 base.cursor = base.limit - v_3; 344 lab15: { 345 if (!(base.eq_s_b("o"))) 346 { 347 break lab15; 348 } 349 golab16: while(true) 350 { 351 var /** number */ v_8 = base.limit - base.cursor; 352 lab17: { 353 if (!(base.in_grouping_b(g_vowel5, 111, 117))) 354 { 355 break lab17; 356 } 357 base.cursor = base.limit - v_8; 358 break golab16; 359 } 360 base.cursor = base.limit - v_8; 361 if (base.cursor <= base.limit_backward) 362 { 363 break lab15; 364 } 365 base.cursor--; 366 } 367 break lab2; 368 } 369 base.cursor = base.limit - v_3; 370 lab18: { 371 if (!(base.eq_s_b("\u00F6"))) 372 { 373 break lab18; 374 } 375 golab19: while(true) 376 { 377 var /** number */ v_9 = base.limit - base.cursor; 378 lab20: { 379 if (!(base.in_grouping_b(g_vowel6, 246, 252))) 380 { 381 break lab20; 382 } 383 base.cursor = base.limit - v_9; 384 break golab19; 385 } 386 base.cursor = base.limit - v_9; 387 if (base.cursor <= base.limit_backward) 388 { 389 break lab18; 390 } 391 base.cursor--; 392 } 393 break lab2; 394 } 395 base.cursor = base.limit - v_3; 396 lab21: { 397 if (!(base.eq_s_b("u"))) 398 { 399 break lab21; 400 } 401 golab22: while(true) 402 { 403 var /** number */ v_10 = base.limit - base.cursor; 404 lab23: { 405 if (!(base.in_grouping_b(g_vowel5, 111, 117))) 406 { 407 break lab23; 408 } 409 base.cursor = base.limit - v_10; 410 break golab22; 411 } 412 base.cursor = base.limit - v_10; 413 if (base.cursor <= base.limit_backward) 414 { 415 break lab21; 416 } 417 base.cursor--; 418 } 419 break lab2; 420 } 421 base.cursor = base.limit - v_3; 422 if (!(base.eq_s_b("\u00FC"))) 423 { 424 return false; 425 } 426 golab24: while(true) 427 { 428 var /** number */ v_11 = base.limit - base.cursor; 429 lab25: { 430 if (!(base.in_grouping_b(g_vowel6, 246, 252))) 431 { 432 break lab25; 433 } 434 base.cursor = base.limit - v_11; 435 break golab24; 436 } 437 base.cursor = base.limit - v_11; 438 if (base.cursor <= base.limit_backward) 439 { 440 return false; 441 } 442 base.cursor--; 443 } 444 } 445 base.cursor = base.limit - v_1; 446 return true; 447 }; 448 449 /** @return {boolean} */ 450 function r_mark_suffix_with_optional_n_consonant() { 451 lab0: { 452 var /** number */ v_1 = base.limit - base.cursor; 453 lab1: { 454 if (!(base.eq_s_b("n"))) 455 { 456 break lab1; 457 } 458 var /** number */ v_2 = base.limit - base.cursor; 459 if (!(base.in_grouping_b(g_vowel, 97, 305))) 460 { 461 break lab1; 462 } 463 base.cursor = base.limit - v_2; 464 break lab0; 465 } 466 base.cursor = base.limit - v_1; 467 { 468 var /** number */ v_3 = base.limit - base.cursor; 469 lab2: { 470 var /** number */ v_4 = base.limit - base.cursor; 471 if (!(base.eq_s_b("n"))) 472 { 473 break lab2; 474 } 475 base.cursor = base.limit - v_4; 476 return false; 477 } 478 base.cursor = base.limit - v_3; 479 } 480 var /** number */ v_5 = base.limit - base.cursor; 481 if (base.cursor <= base.limit_backward) 482 { 483 return false; 484 } 485 base.cursor--; 486 if (!(base.in_grouping_b(g_vowel, 97, 305))) 487 { 488 return false; 489 } 490 base.cursor = base.limit - v_5; 491 } 492 return true; 493 }; 494 495 /** @return {boolean} */ 496 function r_mark_suffix_with_optional_s_consonant() { 497 lab0: { 498 var /** number */ v_1 = base.limit - base.cursor; 499 lab1: { 500 if (!(base.eq_s_b("s"))) 501 { 502 break lab1; 503 } 504 var /** number */ v_2 = base.limit - base.cursor; 505 if (!(base.in_grouping_b(g_vowel, 97, 305))) 506 { 507 break lab1; 508 } 509 base.cursor = base.limit - v_2; 510 break lab0; 511 } 512 base.cursor = base.limit - v_1; 513 { 514 var /** number */ v_3 = base.limit - base.cursor; 515 lab2: { 516 var /** number */ v_4 = base.limit - base.cursor; 517 if (!(base.eq_s_b("s"))) 518 { 519 break lab2; 520 } 521 base.cursor = base.limit - v_4; 522 return false; 523 } 524 base.cursor = base.limit - v_3; 525 } 526 var /** number */ v_5 = base.limit - base.cursor; 527 if (base.cursor <= base.limit_backward) 528 { 529 return false; 530 } 531 base.cursor--; 532 if (!(base.in_grouping_b(g_vowel, 97, 305))) 533 { 534 return false; 535 } 536 base.cursor = base.limit - v_5; 537 } 538 return true; 539 }; 540 541 /** @return {boolean} */ 542 function r_mark_suffix_with_optional_y_consonant() { 543 lab0: { 544 var /** number */ v_1 = base.limit - base.cursor; 545 lab1: { 546 if (!(base.eq_s_b("y"))) 547 { 548 break lab1; 549 } 550 var /** number */ v_2 = base.limit - base.cursor; 551 if (!(base.in_grouping_b(g_vowel, 97, 305))) 552 { 553 break lab1; 554 } 555 base.cursor = base.limit - v_2; 556 break lab0; 557 } 558 base.cursor = base.limit - v_1; 559 { 560 var /** number */ v_3 = base.limit - base.cursor; 561 lab2: { 562 var /** number */ v_4 = base.limit - base.cursor; 563 if (!(base.eq_s_b("y"))) 564 { 565 break lab2; 566 } 567 base.cursor = base.limit - v_4; 568 return false; 569 } 570 base.cursor = base.limit - v_3; 571 } 572 var /** number */ v_5 = base.limit - base.cursor; 573 if (base.cursor <= base.limit_backward) 574 { 575 return false; 576 } 577 base.cursor--; 578 if (!(base.in_grouping_b(g_vowel, 97, 305))) 579 { 580 return false; 581 } 582 base.cursor = base.limit - v_5; 583 } 584 return true; 585 }; 586 587 /** @return {boolean} */ 588 function r_mark_suffix_with_optional_U_vowel() { 589 lab0: { 590 var /** number */ v_1 = base.limit - base.cursor; 591 lab1: { 592 if (!(base.in_grouping_b(g_U, 105, 305))) 593 { 594 break lab1; 595 } 596 var /** number */ v_2 = base.limit - base.cursor; 597 if (!(base.out_grouping_b(g_vowel, 97, 305))) 598 { 599 break lab1; 600 } 601 base.cursor = base.limit - v_2; 602 break lab0; 603 } 604 base.cursor = base.limit - v_1; 605 { 606 var /** number */ v_3 = base.limit - base.cursor; 607 lab2: { 608 var /** number */ v_4 = base.limit - base.cursor; 609 if (!(base.in_grouping_b(g_U, 105, 305))) 610 { 611 break lab2; 612 } 613 base.cursor = base.limit - v_4; 614 return false; 615 } 616 base.cursor = base.limit - v_3; 617 } 618 var /** number */ v_5 = base.limit - base.cursor; 619 if (base.cursor <= base.limit_backward) 620 { 621 return false; 622 } 623 base.cursor--; 624 if (!(base.out_grouping_b(g_vowel, 97, 305))) 625 { 626 return false; 627 } 628 base.cursor = base.limit - v_5; 629 } 630 return true; 631 }; 632 633 /** @return {boolean} */ 634 function r_mark_possessives() { 635 if (base.find_among_b(a_0) == 0) 636 { 637 return false; 638 } 639 if (!r_mark_suffix_with_optional_U_vowel()) 640 { 641 return false; 642 } 643 return true; 644 }; 645 646 /** @return {boolean} */ 647 function r_mark_sU() { 648 if (!r_check_vowel_harmony()) 649 { 650 return false; 651 } 652 if (!(base.in_grouping_b(g_U, 105, 305))) 653 { 654 return false; 655 } 656 if (!r_mark_suffix_with_optional_s_consonant()) 657 { 658 return false; 659 } 660 return true; 661 }; 662 663 /** @return {boolean} */ 664 function r_mark_lArI() { 665 if (base.find_among_b(a_1) == 0) 666 { 667 return false; 668 } 669 return true; 670 }; 671 672 /** @return {boolean} */ 673 function r_mark_yU() { 674 if (!r_check_vowel_harmony()) 675 { 676 return false; 677 } 678 if (!(base.in_grouping_b(g_U, 105, 305))) 679 { 680 return false; 681 } 682 if (!r_mark_suffix_with_optional_y_consonant()) 683 { 684 return false; 685 } 686 return true; 687 }; 688 689 /** @return {boolean} */ 690 function r_mark_nU() { 691 if (!r_check_vowel_harmony()) 692 { 693 return false; 694 } 695 if (base.find_among_b(a_2) == 0) 696 { 697 return false; 698 } 699 return true; 700 }; 701 702 /** @return {boolean} */ 703 function r_mark_nUn() { 704 if (!r_check_vowel_harmony()) 705 { 706 return false; 707 } 708 if (base.find_among_b(a_3) == 0) 709 { 710 return false; 711 } 712 if (!r_mark_suffix_with_optional_n_consonant()) 713 { 714 return false; 715 } 716 return true; 717 }; 718 719 /** @return {boolean} */ 720 function r_mark_yA() { 721 if (!r_check_vowel_harmony()) 722 { 723 return false; 724 } 725 if (base.find_among_b(a_4) == 0) 726 { 727 return false; 728 } 729 if (!r_mark_suffix_with_optional_y_consonant()) 730 { 731 return false; 732 } 733 return true; 734 }; 735 736 /** @return {boolean} */ 737 function r_mark_nA() { 738 if (!r_check_vowel_harmony()) 739 { 740 return false; 741 } 742 if (base.find_among_b(a_5) == 0) 743 { 744 return false; 745 } 746 return true; 747 }; 748 749 /** @return {boolean} */ 750 function r_mark_DA() { 751 if (!r_check_vowel_harmony()) 752 { 753 return false; 754 } 755 if (base.find_among_b(a_6) == 0) 756 { 757 return false; 758 } 759 return true; 760 }; 761 762 /** @return {boolean} */ 763 function r_mark_ndA() { 764 if (!r_check_vowel_harmony()) 765 { 766 return false; 767 } 768 if (base.find_among_b(a_7) == 0) 769 { 770 return false; 771 } 772 return true; 773 }; 774 775 /** @return {boolean} */ 776 function r_mark_DAn() { 777 if (!r_check_vowel_harmony()) 778 { 779 return false; 780 } 781 if (base.find_among_b(a_8) == 0) 782 { 783 return false; 784 } 785 return true; 786 }; 787 788 /** @return {boolean} */ 789 function r_mark_ndAn() { 790 if (!r_check_vowel_harmony()) 791 { 792 return false; 793 } 794 if (base.find_among_b(a_9) == 0) 795 { 796 return false; 797 } 798 return true; 799 }; 800 801 /** @return {boolean} */ 802 function r_mark_ylA() { 803 if (!r_check_vowel_harmony()) 804 { 805 return false; 806 } 807 if (base.find_among_b(a_10) == 0) 808 { 809 return false; 810 } 811 if (!r_mark_suffix_with_optional_y_consonant()) 812 { 813 return false; 814 } 815 return true; 816 }; 817 818 /** @return {boolean} */ 819 function r_mark_ki() { 820 if (!(base.eq_s_b("ki"))) 821 { 822 return false; 823 } 824 return true; 825 }; 826 827 /** @return {boolean} */ 828 function r_mark_ncA() { 829 if (!r_check_vowel_harmony()) 830 { 831 return false; 832 } 833 if (base.find_among_b(a_11) == 0) 834 { 835 return false; 836 } 837 if (!r_mark_suffix_with_optional_n_consonant()) 838 { 839 return false; 840 } 841 return true; 842 }; 843 844 /** @return {boolean} */ 845 function r_mark_yUm() { 846 if (!r_check_vowel_harmony()) 847 { 848 return false; 849 } 850 if (base.find_among_b(a_12) == 0) 851 { 852 return false; 853 } 854 if (!r_mark_suffix_with_optional_y_consonant()) 855 { 856 return false; 857 } 858 return true; 859 }; 860 861 /** @return {boolean} */ 862 function r_mark_sUn() { 863 if (!r_check_vowel_harmony()) 864 { 865 return false; 866 } 867 if (base.find_among_b(a_13) == 0) 868 { 869 return false; 870 } 871 return true; 872 }; 873 874 /** @return {boolean} */ 875 function r_mark_yUz() { 876 if (!r_check_vowel_harmony()) 877 { 878 return false; 879 } 880 if (base.find_among_b(a_14) == 0) 881 { 882 return false; 883 } 884 if (!r_mark_suffix_with_optional_y_consonant()) 885 { 886 return false; 887 } 888 return true; 889 }; 890 891 /** @return {boolean} */ 892 function r_mark_sUnUz() { 893 if (base.find_among_b(a_15) == 0) 894 { 895 return false; 896 } 897 return true; 898 }; 899 900 /** @return {boolean} */ 901 function r_mark_lAr() { 902 if (!r_check_vowel_harmony()) 903 { 904 return false; 905 } 906 if (base.find_among_b(a_16) == 0) 907 { 908 return false; 909 } 910 return true; 911 }; 912 913 /** @return {boolean} */ 914 function r_mark_nUz() { 915 if (!r_check_vowel_harmony()) 916 { 917 return false; 918 } 919 if (base.find_among_b(a_17) == 0) 920 { 921 return false; 922 } 923 return true; 924 }; 925 926 /** @return {boolean} */ 927 function r_mark_DUr() { 928 if (!r_check_vowel_harmony()) 929 { 930 return false; 931 } 932 if (base.find_among_b(a_18) == 0) 933 { 934 return false; 935 } 936 return true; 937 }; 938 939 /** @return {boolean} */ 940 function r_mark_cAsInA() { 941 if (base.find_among_b(a_19) == 0) 942 { 943 return false; 944 } 945 return true; 946 }; 947 948 /** @return {boolean} */ 949 function r_mark_yDU() { 950 if (!r_check_vowel_harmony()) 951 { 952 return false; 953 } 954 if (base.find_among_b(a_20) == 0) 955 { 956 return false; 957 } 958 if (!r_mark_suffix_with_optional_y_consonant()) 959 { 960 return false; 961 } 962 return true; 963 }; 964 965 /** @return {boolean} */ 966 function r_mark_ysA() { 967 if (base.find_among_b(a_21) == 0) 968 { 969 return false; 970 } 971 if (!r_mark_suffix_with_optional_y_consonant()) 972 { 973 return false; 974 } 975 return true; 976 }; 977 978 /** @return {boolean} */ 979 function r_mark_ymUs_() { 980 if (!r_check_vowel_harmony()) 981 { 982 return false; 983 } 984 if (base.find_among_b(a_22) == 0) 985 { 986 return false; 987 } 988 if (!r_mark_suffix_with_optional_y_consonant()) 989 { 990 return false; 991 } 992 return true; 993 }; 994 995 /** @return {boolean} */ 996 function r_mark_yken() { 997 if (!(base.eq_s_b("ken"))) 998 { 999 return false; 1000 } 1001 if (!r_mark_suffix_with_optional_y_consonant()) 1002 { 1003 return false; 1004 } 1005 return true; 1006 }; 1007 1008 /** @return {boolean} */ 1009 function r_stem_nominal_verb_suffixes() { 1010 base.ket = base.cursor; 1011 B_continue_stemming_noun_suffixes = true; 1012 lab0: { 1013 var /** number */ v_1 = base.limit - base.cursor; 1014 lab1: { 1015 lab2: { 1016 var /** number */ v_2 = base.limit - base.cursor; 1017 lab3: { 1018 if (!r_mark_ymUs_()) 1019 { 1020 break lab3; 1021 } 1022 break lab2; 1023 } 1024 base.cursor = base.limit - v_2; 1025 lab4: { 1026 if (!r_mark_yDU()) 1027 { 1028 break lab4; 1029 } 1030 break lab2; 1031 } 1032 base.cursor = base.limit - v_2; 1033 lab5: { 1034 if (!r_mark_ysA()) 1035 { 1036 break lab5; 1037 } 1038 break lab2; 1039 } 1040 base.cursor = base.limit - v_2; 1041 if (!r_mark_yken()) 1042 { 1043 break lab1; 1044 } 1045 } 1046 break lab0; 1047 } 1048 base.cursor = base.limit - v_1; 1049 lab6: { 1050 if (!r_mark_cAsInA()) 1051 { 1052 break lab6; 1053 } 1054 lab7: { 1055 var /** number */ v_3 = base.limit - base.cursor; 1056 lab8: { 1057 if (!r_mark_sUnUz()) 1058 { 1059 break lab8; 1060 } 1061 break lab7; 1062 } 1063 base.cursor = base.limit - v_3; 1064 lab9: { 1065 if (!r_mark_lAr()) 1066 { 1067 break lab9; 1068 } 1069 break lab7; 1070 } 1071 base.cursor = base.limit - v_3; 1072 lab10: { 1073 if (!r_mark_yUm()) 1074 { 1075 break lab10; 1076 } 1077 break lab7; 1078 } 1079 base.cursor = base.limit - v_3; 1080 lab11: { 1081 if (!r_mark_sUn()) 1082 { 1083 break lab11; 1084 } 1085 break lab7; 1086 } 1087 base.cursor = base.limit - v_3; 1088 lab12: { 1089 if (!r_mark_yUz()) 1090 { 1091 break lab12; 1092 } 1093 break lab7; 1094 } 1095 base.cursor = base.limit - v_3; 1096 } 1097 if (!r_mark_ymUs_()) 1098 { 1099 break lab6; 1100 } 1101 break lab0; 1102 } 1103 base.cursor = base.limit - v_1; 1104 lab13: { 1105 if (!r_mark_lAr()) 1106 { 1107 break lab13; 1108 } 1109 base.bra = base.cursor; 1110 if (!base.slice_del()) 1111 { 1112 return false; 1113 } 1114 var /** number */ v_4 = base.limit - base.cursor; 1115 lab14: { 1116 base.ket = base.cursor; 1117 lab15: { 1118 var /** number */ v_5 = base.limit - base.cursor; 1119 lab16: { 1120 if (!r_mark_DUr()) 1121 { 1122 break lab16; 1123 } 1124 break lab15; 1125 } 1126 base.cursor = base.limit - v_5; 1127 lab17: { 1128 if (!r_mark_yDU()) 1129 { 1130 break lab17; 1131 } 1132 break lab15; 1133 } 1134 base.cursor = base.limit - v_5; 1135 lab18: { 1136 if (!r_mark_ysA()) 1137 { 1138 break lab18; 1139 } 1140 break lab15; 1141 } 1142 base.cursor = base.limit - v_5; 1143 if (!r_mark_ymUs_()) 1144 { 1145 base.cursor = base.limit - v_4; 1146 break lab14; 1147 } 1148 } 1149 } 1150 B_continue_stemming_noun_suffixes = false; 1151 break lab0; 1152 } 1153 base.cursor = base.limit - v_1; 1154 lab19: { 1155 if (!r_mark_nUz()) 1156 { 1157 break lab19; 1158 } 1159 lab20: { 1160 var /** number */ v_6 = base.limit - base.cursor; 1161 lab21: { 1162 if (!r_mark_yDU()) 1163 { 1164 break lab21; 1165 } 1166 break lab20; 1167 } 1168 base.cursor = base.limit - v_6; 1169 if (!r_mark_ysA()) 1170 { 1171 break lab19; 1172 } 1173 } 1174 break lab0; 1175 } 1176 base.cursor = base.limit - v_1; 1177 lab22: { 1178 lab23: { 1179 var /** number */ v_7 = base.limit - base.cursor; 1180 lab24: { 1181 if (!r_mark_sUnUz()) 1182 { 1183 break lab24; 1184 } 1185 break lab23; 1186 } 1187 base.cursor = base.limit - v_7; 1188 lab25: { 1189 if (!r_mark_yUz()) 1190 { 1191 break lab25; 1192 } 1193 break lab23; 1194 } 1195 base.cursor = base.limit - v_7; 1196 lab26: { 1197 if (!r_mark_sUn()) 1198 { 1199 break lab26; 1200 } 1201 break lab23; 1202 } 1203 base.cursor = base.limit - v_7; 1204 if (!r_mark_yUm()) 1205 { 1206 break lab22; 1207 } 1208 } 1209 base.bra = base.cursor; 1210 if (!base.slice_del()) 1211 { 1212 return false; 1213 } 1214 var /** number */ v_8 = base.limit - base.cursor; 1215 lab27: { 1216 base.ket = base.cursor; 1217 if (!r_mark_ymUs_()) 1218 { 1219 base.cursor = base.limit - v_8; 1220 break lab27; 1221 } 1222 } 1223 break lab0; 1224 } 1225 base.cursor = base.limit - v_1; 1226 if (!r_mark_DUr()) 1227 { 1228 return false; 1229 } 1230 base.bra = base.cursor; 1231 if (!base.slice_del()) 1232 { 1233 return false; 1234 } 1235 var /** number */ v_9 = base.limit - base.cursor; 1236 lab28: { 1237 base.ket = base.cursor; 1238 lab29: { 1239 var /** number */ v_10 = base.limit - base.cursor; 1240 lab30: { 1241 if (!r_mark_sUnUz()) 1242 { 1243 break lab30; 1244 } 1245 break lab29; 1246 } 1247 base.cursor = base.limit - v_10; 1248 lab31: { 1249 if (!r_mark_lAr()) 1250 { 1251 break lab31; 1252 } 1253 break lab29; 1254 } 1255 base.cursor = base.limit - v_10; 1256 lab32: { 1257 if (!r_mark_yUm()) 1258 { 1259 break lab32; 1260 } 1261 break lab29; 1262 } 1263 base.cursor = base.limit - v_10; 1264 lab33: { 1265 if (!r_mark_sUn()) 1266 { 1267 break lab33; 1268 } 1269 break lab29; 1270 } 1271 base.cursor = base.limit - v_10; 1272 lab34: { 1273 if (!r_mark_yUz()) 1274 { 1275 break lab34; 1276 } 1277 break lab29; 1278 } 1279 base.cursor = base.limit - v_10; 1280 } 1281 if (!r_mark_ymUs_()) 1282 { 1283 base.cursor = base.limit - v_9; 1284 break lab28; 1285 } 1286 } 1287 } 1288 base.bra = base.cursor; 1289 if (!base.slice_del()) 1290 { 1291 return false; 1292 } 1293 return true; 1294 }; 1295 1296 /** @return {boolean} */ 1297 function r_stem_suffix_chain_before_ki() { 1298 base.ket = base.cursor; 1299 if (!r_mark_ki()) 1300 { 1301 return false; 1302 } 1303 lab0: { 1304 var /** number */ v_1 = base.limit - base.cursor; 1305 lab1: { 1306 if (!r_mark_DA()) 1307 { 1308 break lab1; 1309 } 1310 base.bra = base.cursor; 1311 if (!base.slice_del()) 1312 { 1313 return false; 1314 } 1315 var /** number */ v_2 = base.limit - base.cursor; 1316 lab2: { 1317 base.ket = base.cursor; 1318 lab3: { 1319 var /** number */ v_3 = base.limit - base.cursor; 1320 lab4: { 1321 if (!r_mark_lAr()) 1322 { 1323 break lab4; 1324 } 1325 base.bra = base.cursor; 1326 if (!base.slice_del()) 1327 { 1328 return false; 1329 } 1330 var /** number */ v_4 = base.limit - base.cursor; 1331 lab5: { 1332 if (!r_stem_suffix_chain_before_ki()) 1333 { 1334 base.cursor = base.limit - v_4; 1335 break lab5; 1336 } 1337 } 1338 break lab3; 1339 } 1340 base.cursor = base.limit - v_3; 1341 if (!r_mark_possessives()) 1342 { 1343 base.cursor = base.limit - v_2; 1344 break lab2; 1345 } 1346 base.bra = base.cursor; 1347 if (!base.slice_del()) 1348 { 1349 return false; 1350 } 1351 var /** number */ v_5 = base.limit - base.cursor; 1352 lab6: { 1353 base.ket = base.cursor; 1354 if (!r_mark_lAr()) 1355 { 1356 base.cursor = base.limit - v_5; 1357 break lab6; 1358 } 1359 base.bra = base.cursor; 1360 if (!base.slice_del()) 1361 { 1362 return false; 1363 } 1364 if (!r_stem_suffix_chain_before_ki()) 1365 { 1366 base.cursor = base.limit - v_5; 1367 break lab6; 1368 } 1369 } 1370 } 1371 } 1372 break lab0; 1373 } 1374 base.cursor = base.limit - v_1; 1375 lab7: { 1376 if (!r_mark_nUn()) 1377 { 1378 break lab7; 1379 } 1380 base.bra = base.cursor; 1381 if (!base.slice_del()) 1382 { 1383 return false; 1384 } 1385 var /** number */ v_6 = base.limit - base.cursor; 1386 lab8: { 1387 base.ket = base.cursor; 1388 lab9: { 1389 var /** number */ v_7 = base.limit - base.cursor; 1390 lab10: { 1391 if (!r_mark_lArI()) 1392 { 1393 break lab10; 1394 } 1395 base.bra = base.cursor; 1396 if (!base.slice_del()) 1397 { 1398 return false; 1399 } 1400 break lab9; 1401 } 1402 base.cursor = base.limit - v_7; 1403 lab11: { 1404 base.ket = base.cursor; 1405 lab12: { 1406 var /** number */ v_8 = base.limit - base.cursor; 1407 lab13: { 1408 if (!r_mark_possessives()) 1409 { 1410 break lab13; 1411 } 1412 break lab12; 1413 } 1414 base.cursor = base.limit - v_8; 1415 if (!r_mark_sU()) 1416 { 1417 break lab11; 1418 } 1419 } 1420 base.bra = base.cursor; 1421 if (!base.slice_del()) 1422 { 1423 return false; 1424 } 1425 var /** number */ v_9 = base.limit - base.cursor; 1426 lab14: { 1427 base.ket = base.cursor; 1428 if (!r_mark_lAr()) 1429 { 1430 base.cursor = base.limit - v_9; 1431 break lab14; 1432 } 1433 base.bra = base.cursor; 1434 if (!base.slice_del()) 1435 { 1436 return false; 1437 } 1438 if (!r_stem_suffix_chain_before_ki()) 1439 { 1440 base.cursor = base.limit - v_9; 1441 break lab14; 1442 } 1443 } 1444 break lab9; 1445 } 1446 base.cursor = base.limit - v_7; 1447 if (!r_stem_suffix_chain_before_ki()) 1448 { 1449 base.cursor = base.limit - v_6; 1450 break lab8; 1451 } 1452 } 1453 } 1454 break lab0; 1455 } 1456 base.cursor = base.limit - v_1; 1457 if (!r_mark_ndA()) 1458 { 1459 return false; 1460 } 1461 lab15: { 1462 var /** number */ v_10 = base.limit - base.cursor; 1463 lab16: { 1464 if (!r_mark_lArI()) 1465 { 1466 break lab16; 1467 } 1468 base.bra = base.cursor; 1469 if (!base.slice_del()) 1470 { 1471 return false; 1472 } 1473 break lab15; 1474 } 1475 base.cursor = base.limit - v_10; 1476 lab17: { 1477 if (!r_mark_sU()) 1478 { 1479 break lab17; 1480 } 1481 base.bra = base.cursor; 1482 if (!base.slice_del()) 1483 { 1484 return false; 1485 } 1486 var /** number */ v_11 = base.limit - base.cursor; 1487 lab18: { 1488 base.ket = base.cursor; 1489 if (!r_mark_lAr()) 1490 { 1491 base.cursor = base.limit - v_11; 1492 break lab18; 1493 } 1494 base.bra = base.cursor; 1495 if (!base.slice_del()) 1496 { 1497 return false; 1498 } 1499 if (!r_stem_suffix_chain_before_ki()) 1500 { 1501 base.cursor = base.limit - v_11; 1502 break lab18; 1503 } 1504 } 1505 break lab15; 1506 } 1507 base.cursor = base.limit - v_10; 1508 if (!r_stem_suffix_chain_before_ki()) 1509 { 1510 return false; 1511 } 1512 } 1513 } 1514 return true; 1515 }; 1516 1517 /** @return {boolean} */ 1518 function r_stem_noun_suffixes() { 1519 lab0: { 1520 var /** number */ v_1 = base.limit - base.cursor; 1521 lab1: { 1522 base.ket = base.cursor; 1523 if (!r_mark_lAr()) 1524 { 1525 break lab1; 1526 } 1527 base.bra = base.cursor; 1528 if (!base.slice_del()) 1529 { 1530 return false; 1531 } 1532 var /** number */ v_2 = base.limit - base.cursor; 1533 lab2: { 1534 if (!r_stem_suffix_chain_before_ki()) 1535 { 1536 base.cursor = base.limit - v_2; 1537 break lab2; 1538 } 1539 } 1540 break lab0; 1541 } 1542 base.cursor = base.limit - v_1; 1543 lab3: { 1544 base.ket = base.cursor; 1545 if (!r_mark_ncA()) 1546 { 1547 break lab3; 1548 } 1549 base.bra = base.cursor; 1550 if (!base.slice_del()) 1551 { 1552 return false; 1553 } 1554 var /** number */ v_3 = base.limit - base.cursor; 1555 lab4: { 1556 lab5: { 1557 var /** number */ v_4 = base.limit - base.cursor; 1558 lab6: { 1559 base.ket = base.cursor; 1560 if (!r_mark_lArI()) 1561 { 1562 break lab6; 1563 } 1564 base.bra = base.cursor; 1565 if (!base.slice_del()) 1566 { 1567 return false; 1568 } 1569 break lab5; 1570 } 1571 base.cursor = base.limit - v_4; 1572 lab7: { 1573 base.ket = base.cursor; 1574 lab8: { 1575 var /** number */ v_5 = base.limit - base.cursor; 1576 lab9: { 1577 if (!r_mark_possessives()) 1578 { 1579 break lab9; 1580 } 1581 break lab8; 1582 } 1583 base.cursor = base.limit - v_5; 1584 if (!r_mark_sU()) 1585 { 1586 break lab7; 1587 } 1588 } 1589 base.bra = base.cursor; 1590 if (!base.slice_del()) 1591 { 1592 return false; 1593 } 1594 var /** number */ v_6 = base.limit - base.cursor; 1595 lab10: { 1596 base.ket = base.cursor; 1597 if (!r_mark_lAr()) 1598 { 1599 base.cursor = base.limit - v_6; 1600 break lab10; 1601 } 1602 base.bra = base.cursor; 1603 if (!base.slice_del()) 1604 { 1605 return false; 1606 } 1607 if (!r_stem_suffix_chain_before_ki()) 1608 { 1609 base.cursor = base.limit - v_6; 1610 break lab10; 1611 } 1612 } 1613 break lab5; 1614 } 1615 base.cursor = base.limit - v_4; 1616 base.ket = base.cursor; 1617 if (!r_mark_lAr()) 1618 { 1619 base.cursor = base.limit - v_3; 1620 break lab4; 1621 } 1622 base.bra = base.cursor; 1623 if (!base.slice_del()) 1624 { 1625 return false; 1626 } 1627 if (!r_stem_suffix_chain_before_ki()) 1628 { 1629 base.cursor = base.limit - v_3; 1630 break lab4; 1631 } 1632 } 1633 } 1634 break lab0; 1635 } 1636 base.cursor = base.limit - v_1; 1637 lab11: { 1638 base.ket = base.cursor; 1639 lab12: { 1640 var /** number */ v_7 = base.limit - base.cursor; 1641 lab13: { 1642 if (!r_mark_ndA()) 1643 { 1644 break lab13; 1645 } 1646 break lab12; 1647 } 1648 base.cursor = base.limit - v_7; 1649 if (!r_mark_nA()) 1650 { 1651 break lab11; 1652 } 1653 } 1654 lab14: { 1655 var /** number */ v_8 = base.limit - base.cursor; 1656 lab15: { 1657 if (!r_mark_lArI()) 1658 { 1659 break lab15; 1660 } 1661 base.bra = base.cursor; 1662 if (!base.slice_del()) 1663 { 1664 return false; 1665 } 1666 break lab14; 1667 } 1668 base.cursor = base.limit - v_8; 1669 lab16: { 1670 if (!r_mark_sU()) 1671 { 1672 break lab16; 1673 } 1674 base.bra = base.cursor; 1675 if (!base.slice_del()) 1676 { 1677 return false; 1678 } 1679 var /** number */ v_9 = base.limit - base.cursor; 1680 lab17: { 1681 base.ket = base.cursor; 1682 if (!r_mark_lAr()) 1683 { 1684 base.cursor = base.limit - v_9; 1685 break lab17; 1686 } 1687 base.bra = base.cursor; 1688 if (!base.slice_del()) 1689 { 1690 return false; 1691 } 1692 if (!r_stem_suffix_chain_before_ki()) 1693 { 1694 base.cursor = base.limit - v_9; 1695 break lab17; 1696 } 1697 } 1698 break lab14; 1699 } 1700 base.cursor = base.limit - v_8; 1701 if (!r_stem_suffix_chain_before_ki()) 1702 { 1703 break lab11; 1704 } 1705 } 1706 break lab0; 1707 } 1708 base.cursor = base.limit - v_1; 1709 lab18: { 1710 base.ket = base.cursor; 1711 lab19: { 1712 var /** number */ v_10 = base.limit - base.cursor; 1713 lab20: { 1714 if (!r_mark_ndAn()) 1715 { 1716 break lab20; 1717 } 1718 break lab19; 1719 } 1720 base.cursor = base.limit - v_10; 1721 if (!r_mark_nU()) 1722 { 1723 break lab18; 1724 } 1725 } 1726 lab21: { 1727 var /** number */ v_11 = base.limit - base.cursor; 1728 lab22: { 1729 if (!r_mark_sU()) 1730 { 1731 break lab22; 1732 } 1733 base.bra = base.cursor; 1734 if (!base.slice_del()) 1735 { 1736 return false; 1737 } 1738 var /** number */ v_12 = base.limit - base.cursor; 1739 lab23: { 1740 base.ket = base.cursor; 1741 if (!r_mark_lAr()) 1742 { 1743 base.cursor = base.limit - v_12; 1744 break lab23; 1745 } 1746 base.bra = base.cursor; 1747 if (!base.slice_del()) 1748 { 1749 return false; 1750 } 1751 if (!r_stem_suffix_chain_before_ki()) 1752 { 1753 base.cursor = base.limit - v_12; 1754 break lab23; 1755 } 1756 } 1757 break lab21; 1758 } 1759 base.cursor = base.limit - v_11; 1760 if (!r_mark_lArI()) 1761 { 1762 break lab18; 1763 } 1764 } 1765 break lab0; 1766 } 1767 base.cursor = base.limit - v_1; 1768 lab24: { 1769 base.ket = base.cursor; 1770 if (!r_mark_DAn()) 1771 { 1772 break lab24; 1773 } 1774 base.bra = base.cursor; 1775 if (!base.slice_del()) 1776 { 1777 return false; 1778 } 1779 var /** number */ v_13 = base.limit - base.cursor; 1780 lab25: { 1781 base.ket = base.cursor; 1782 lab26: { 1783 var /** number */ v_14 = base.limit - base.cursor; 1784 lab27: { 1785 if (!r_mark_possessives()) 1786 { 1787 break lab27; 1788 } 1789 base.bra = base.cursor; 1790 if (!base.slice_del()) 1791 { 1792 return false; 1793 } 1794 var /** number */ v_15 = base.limit - base.cursor; 1795 lab28: { 1796 base.ket = base.cursor; 1797 if (!r_mark_lAr()) 1798 { 1799 base.cursor = base.limit - v_15; 1800 break lab28; 1801 } 1802 base.bra = base.cursor; 1803 if (!base.slice_del()) 1804 { 1805 return false; 1806 } 1807 if (!r_stem_suffix_chain_before_ki()) 1808 { 1809 base.cursor = base.limit - v_15; 1810 break lab28; 1811 } 1812 } 1813 break lab26; 1814 } 1815 base.cursor = base.limit - v_14; 1816 lab29: { 1817 if (!r_mark_lAr()) 1818 { 1819 break lab29; 1820 } 1821 base.bra = base.cursor; 1822 if (!base.slice_del()) 1823 { 1824 return false; 1825 } 1826 var /** number */ v_16 = base.limit - base.cursor; 1827 lab30: { 1828 if (!r_stem_suffix_chain_before_ki()) 1829 { 1830 base.cursor = base.limit - v_16; 1831 break lab30; 1832 } 1833 } 1834 break lab26; 1835 } 1836 base.cursor = base.limit - v_14; 1837 if (!r_stem_suffix_chain_before_ki()) 1838 { 1839 base.cursor = base.limit - v_13; 1840 break lab25; 1841 } 1842 } 1843 } 1844 break lab0; 1845 } 1846 base.cursor = base.limit - v_1; 1847 lab31: { 1848 base.ket = base.cursor; 1849 lab32: { 1850 var /** number */ v_17 = base.limit - base.cursor; 1851 lab33: { 1852 if (!r_mark_nUn()) 1853 { 1854 break lab33; 1855 } 1856 break lab32; 1857 } 1858 base.cursor = base.limit - v_17; 1859 if (!r_mark_ylA()) 1860 { 1861 break lab31; 1862 } 1863 } 1864 base.bra = base.cursor; 1865 if (!base.slice_del()) 1866 { 1867 return false; 1868 } 1869 var /** number */ v_18 = base.limit - base.cursor; 1870 lab34: { 1871 lab35: { 1872 var /** number */ v_19 = base.limit - base.cursor; 1873 lab36: { 1874 base.ket = base.cursor; 1875 if (!r_mark_lAr()) 1876 { 1877 break lab36; 1878 } 1879 base.bra = base.cursor; 1880 if (!base.slice_del()) 1881 { 1882 return false; 1883 } 1884 if (!r_stem_suffix_chain_before_ki()) 1885 { 1886 break lab36; 1887 } 1888 break lab35; 1889 } 1890 base.cursor = base.limit - v_19; 1891 lab37: { 1892 base.ket = base.cursor; 1893 lab38: { 1894 var /** number */ v_20 = base.limit - base.cursor; 1895 lab39: { 1896 if (!r_mark_possessives()) 1897 { 1898 break lab39; 1899 } 1900 break lab38; 1901 } 1902 base.cursor = base.limit - v_20; 1903 if (!r_mark_sU()) 1904 { 1905 break lab37; 1906 } 1907 } 1908 base.bra = base.cursor; 1909 if (!base.slice_del()) 1910 { 1911 return false; 1912 } 1913 var /** number */ v_21 = base.limit - base.cursor; 1914 lab40: { 1915 base.ket = base.cursor; 1916 if (!r_mark_lAr()) 1917 { 1918 base.cursor = base.limit - v_21; 1919 break lab40; 1920 } 1921 base.bra = base.cursor; 1922 if (!base.slice_del()) 1923 { 1924 return false; 1925 } 1926 if (!r_stem_suffix_chain_before_ki()) 1927 { 1928 base.cursor = base.limit - v_21; 1929 break lab40; 1930 } 1931 } 1932 break lab35; 1933 } 1934 base.cursor = base.limit - v_19; 1935 if (!r_stem_suffix_chain_before_ki()) 1936 { 1937 base.cursor = base.limit - v_18; 1938 break lab34; 1939 } 1940 } 1941 } 1942 break lab0; 1943 } 1944 base.cursor = base.limit - v_1; 1945 lab41: { 1946 base.ket = base.cursor; 1947 if (!r_mark_lArI()) 1948 { 1949 break lab41; 1950 } 1951 base.bra = base.cursor; 1952 if (!base.slice_del()) 1953 { 1954 return false; 1955 } 1956 break lab0; 1957 } 1958 base.cursor = base.limit - v_1; 1959 lab42: { 1960 if (!r_stem_suffix_chain_before_ki()) 1961 { 1962 break lab42; 1963 } 1964 break lab0; 1965 } 1966 base.cursor = base.limit - v_1; 1967 lab43: { 1968 base.ket = base.cursor; 1969 lab44: { 1970 var /** number */ v_22 = base.limit - base.cursor; 1971 lab45: { 1972 if (!r_mark_DA()) 1973 { 1974 break lab45; 1975 } 1976 break lab44; 1977 } 1978 base.cursor = base.limit - v_22; 1979 lab46: { 1980 if (!r_mark_yU()) 1981 { 1982 break lab46; 1983 } 1984 break lab44; 1985 } 1986 base.cursor = base.limit - v_22; 1987 if (!r_mark_yA()) 1988 { 1989 break lab43; 1990 } 1991 } 1992 base.bra = base.cursor; 1993 if (!base.slice_del()) 1994 { 1995 return false; 1996 } 1997 var /** number */ v_23 = base.limit - base.cursor; 1998 lab47: { 1999 base.ket = base.cursor; 2000 lab48: { 2001 var /** number */ v_24 = base.limit - base.cursor; 2002 lab49: { 2003 if (!r_mark_possessives()) 2004 { 2005 break lab49; 2006 } 2007 base.bra = base.cursor; 2008 if (!base.slice_del()) 2009 { 2010 return false; 2011 } 2012 var /** number */ v_25 = base.limit - base.cursor; 2013 lab50: { 2014 base.ket = base.cursor; 2015 if (!r_mark_lAr()) 2016 { 2017 base.cursor = base.limit - v_25; 2018 break lab50; 2019 } 2020 } 2021 break lab48; 2022 } 2023 base.cursor = base.limit - v_24; 2024 if (!r_mark_lAr()) 2025 { 2026 base.cursor = base.limit - v_23; 2027 break lab47; 2028 } 2029 } 2030 base.bra = base.cursor; 2031 if (!base.slice_del()) 2032 { 2033 return false; 2034 } 2035 base.ket = base.cursor; 2036 if (!r_stem_suffix_chain_before_ki()) 2037 { 2038 base.cursor = base.limit - v_23; 2039 break lab47; 2040 } 2041 } 2042 break lab0; 2043 } 2044 base.cursor = base.limit - v_1; 2045 base.ket = base.cursor; 2046 lab51: { 2047 var /** number */ v_26 = base.limit - base.cursor; 2048 lab52: { 2049 if (!r_mark_possessives()) 2050 { 2051 break lab52; 2052 } 2053 break lab51; 2054 } 2055 base.cursor = base.limit - v_26; 2056 if (!r_mark_sU()) 2057 { 2058 return false; 2059 } 2060 } 2061 base.bra = base.cursor; 2062 if (!base.slice_del()) 2063 { 2064 return false; 2065 } 2066 var /** number */ v_27 = base.limit - base.cursor; 2067 lab53: { 2068 base.ket = base.cursor; 2069 if (!r_mark_lAr()) 2070 { 2071 base.cursor = base.limit - v_27; 2072 break lab53; 2073 } 2074 base.bra = base.cursor; 2075 if (!base.slice_del()) 2076 { 2077 return false; 2078 } 2079 if (!r_stem_suffix_chain_before_ki()) 2080 { 2081 base.cursor = base.limit - v_27; 2082 break lab53; 2083 } 2084 } 2085 } 2086 return true; 2087 }; 2088 2089 /** @return {boolean} */ 2090 function r_post_process_last_consonants() { 2091 var /** number */ among_var; 2092 base.ket = base.cursor; 2093 among_var = base.find_among_b(a_23); 2094 if (among_var == 0) 2095 { 2096 return false; 2097 } 2098 base.bra = base.cursor; 2099 switch (among_var) { 2100 case 1: 2101 if (!base.slice_from("p")) 2102 { 2103 return false; 2104 } 2105 break; 2106 case 2: 2107 if (!base.slice_from("\u00E7")) 2108 { 2109 return false; 2110 } 2111 break; 2112 case 3: 2113 if (!base.slice_from("t")) 2114 { 2115 return false; 2116 } 2117 break; 2118 case 4: 2119 if (!base.slice_from("k")) 2120 { 2121 return false; 2122 } 2123 break; 2124 } 2125 return true; 2126 }; 2127 2128 /** @return {boolean} */ 2129 function r_append_U_to_stems_ending_with_d_or_g() { 2130 var /** number */ v_1 = base.limit - base.cursor; 2131 lab0: { 2132 var /** number */ v_2 = base.limit - base.cursor; 2133 lab1: { 2134 if (!(base.eq_s_b("d"))) 2135 { 2136 break lab1; 2137 } 2138 break lab0; 2139 } 2140 base.cursor = base.limit - v_2; 2141 if (!(base.eq_s_b("g"))) 2142 { 2143 return false; 2144 } 2145 } 2146 base.cursor = base.limit - v_1; 2147 lab2: { 2148 var /** number */ v_3 = base.limit - base.cursor; 2149 lab3: { 2150 var /** number */ v_4 = base.limit - base.cursor; 2151 golab4: while(true) 2152 { 2153 var /** number */ v_5 = base.limit - base.cursor; 2154 lab5: { 2155 if (!(base.in_grouping_b(g_vowel, 97, 305))) 2156 { 2157 break lab5; 2158 } 2159 base.cursor = base.limit - v_5; 2160 break golab4; 2161 } 2162 base.cursor = base.limit - v_5; 2163 if (base.cursor <= base.limit_backward) 2164 { 2165 break lab3; 2166 } 2167 base.cursor--; 2168 } 2169 lab6: { 2170 var /** number */ v_6 = base.limit - base.cursor; 2171 lab7: { 2172 if (!(base.eq_s_b("a"))) 2173 { 2174 break lab7; 2175 } 2176 break lab6; 2177 } 2178 base.cursor = base.limit - v_6; 2179 if (!(base.eq_s_b("\u0131"))) 2180 { 2181 break lab3; 2182 } 2183 } 2184 base.cursor = base.limit - v_4; 2185 { 2186 var /** number */ c1 = base.cursor; 2187 base.insert(base.cursor, base.cursor, "\u0131"); 2188 base.cursor = c1; 2189 } 2190 break lab2; 2191 } 2192 base.cursor = base.limit - v_3; 2193 lab8: { 2194 var /** number */ v_7 = base.limit - base.cursor; 2195 golab9: while(true) 2196 { 2197 var /** number */ v_8 = base.limit - base.cursor; 2198 lab10: { 2199 if (!(base.in_grouping_b(g_vowel, 97, 305))) 2200 { 2201 break lab10; 2202 } 2203 base.cursor = base.limit - v_8; 2204 break golab9; 2205 } 2206 base.cursor = base.limit - v_8; 2207 if (base.cursor <= base.limit_backward) 2208 { 2209 break lab8; 2210 } 2211 base.cursor--; 2212 } 2213 lab11: { 2214 var /** number */ v_9 = base.limit - base.cursor; 2215 lab12: { 2216 if (!(base.eq_s_b("e"))) 2217 { 2218 break lab12; 2219 } 2220 break lab11; 2221 } 2222 base.cursor = base.limit - v_9; 2223 if (!(base.eq_s_b("i"))) 2224 { 2225 break lab8; 2226 } 2227 } 2228 base.cursor = base.limit - v_7; 2229 { 2230 var /** number */ c2 = base.cursor; 2231 base.insert(base.cursor, base.cursor, "i"); 2232 base.cursor = c2; 2233 } 2234 break lab2; 2235 } 2236 base.cursor = base.limit - v_3; 2237 lab13: { 2238 var /** number */ v_10 = base.limit - base.cursor; 2239 golab14: while(true) 2240 { 2241 var /** number */ v_11 = base.limit - base.cursor; 2242 lab15: { 2243 if (!(base.in_grouping_b(g_vowel, 97, 305))) 2244 { 2245 break lab15; 2246 } 2247 base.cursor = base.limit - v_11; 2248 break golab14; 2249 } 2250 base.cursor = base.limit - v_11; 2251 if (base.cursor <= base.limit_backward) 2252 { 2253 break lab13; 2254 } 2255 base.cursor--; 2256 } 2257 lab16: { 2258 var /** number */ v_12 = base.limit - base.cursor; 2259 lab17: { 2260 if (!(base.eq_s_b("o"))) 2261 { 2262 break lab17; 2263 } 2264 break lab16; 2265 } 2266 base.cursor = base.limit - v_12; 2267 if (!(base.eq_s_b("u"))) 2268 { 2269 break lab13; 2270 } 2271 } 2272 base.cursor = base.limit - v_10; 2273 { 2274 var /** number */ c3 = base.cursor; 2275 base.insert(base.cursor, base.cursor, "u"); 2276 base.cursor = c3; 2277 } 2278 break lab2; 2279 } 2280 base.cursor = base.limit - v_3; 2281 var /** number */ v_13 = base.limit - base.cursor; 2282 golab18: while(true) 2283 { 2284 var /** number */ v_14 = base.limit - base.cursor; 2285 lab19: { 2286 if (!(base.in_grouping_b(g_vowel, 97, 305))) 2287 { 2288 break lab19; 2289 } 2290 base.cursor = base.limit - v_14; 2291 break golab18; 2292 } 2293 base.cursor = base.limit - v_14; 2294 if (base.cursor <= base.limit_backward) 2295 { 2296 return false; 2297 } 2298 base.cursor--; 2299 } 2300 lab20: { 2301 var /** number */ v_15 = base.limit - base.cursor; 2302 lab21: { 2303 if (!(base.eq_s_b("\u00F6"))) 2304 { 2305 break lab21; 2306 } 2307 break lab20; 2308 } 2309 base.cursor = base.limit - v_15; 2310 if (!(base.eq_s_b("\u00FC"))) 2311 { 2312 return false; 2313 } 2314 } 2315 base.cursor = base.limit - v_13; 2316 { 2317 var /** number */ c4 = base.cursor; 2318 base.insert(base.cursor, base.cursor, "\u00FC"); 2319 base.cursor = c4; 2320 } 2321 } 2322 return true; 2323 }; 2324 2325 /** @return {boolean} */ 2326 function r_is_reserved_word() { 2327 if (!(base.eq_s_b("ad"))) 2328 { 2329 return false; 2330 } 2331 var /** number */ v_1 = base.limit - base.cursor; 2332 lab0: { 2333 if (!(base.eq_s_b("soy"))) 2334 { 2335 base.cursor = base.limit - v_1; 2336 break lab0; 2337 } 2338 } 2339 if (base.cursor > base.limit_backward) 2340 { 2341 return false; 2342 } 2343 return true; 2344 }; 2345 2346 /** @return {boolean} */ 2347 function r_more_than_one_syllable_word() { 2348 var /** number */ v_1 = base.cursor; 2349 { 2350 var v_2 = 2; 2351 while(true) 2352 { 2353 var /** number */ v_3 = base.cursor; 2354 lab0: { 2355 golab1: while(true) 2356 { 2357 lab2: { 2358 if (!(base.in_grouping(g_vowel, 97, 305))) 2359 { 2360 break lab2; 2361 } 2362 break golab1; 2363 } 2364 if (base.cursor >= base.limit) 2365 { 2366 break lab0; 2367 } 2368 base.cursor++; 2369 } 2370 v_2--; 2371 continue; 2372 } 2373 base.cursor = v_3; 2374 break; 2375 } 2376 if (v_2 > 0) 2377 { 2378 return false; 2379 } 2380 } 2381 base.cursor = v_1; 2382 return true; 2383 }; 2384 2385 /** @return {boolean} */ 2386 function r_postlude() { 2387 base.limit_backward = base.cursor; base.cursor = base.limit; 2388 { 2389 var /** number */ v_1 = base.limit - base.cursor; 2390 lab0: { 2391 if (!r_is_reserved_word()) 2392 { 2393 break lab0; 2394 } 2395 return false; 2396 } 2397 base.cursor = base.limit - v_1; 2398 } 2399 var /** number */ v_2 = base.limit - base.cursor; 2400 r_append_U_to_stems_ending_with_d_or_g(); 2401 base.cursor = base.limit - v_2; 2402 var /** number */ v_3 = base.limit - base.cursor; 2403 r_post_process_last_consonants(); 2404 base.cursor = base.limit - v_3; 2405 base.cursor = base.limit_backward; 2406 return true; 2407 }; 2408 2409 this.stem = /** @return {boolean} */ function() { 2410 if (!r_more_than_one_syllable_word()) 2411 { 2412 return false; 2413 } 2414 base.limit_backward = base.cursor; base.cursor = base.limit; 2415 var /** number */ v_1 = base.limit - base.cursor; 2416 r_stem_nominal_verb_suffixes(); 2417 base.cursor = base.limit - v_1; 2418 if (!B_continue_stemming_noun_suffixes) 2419 { 2420 return false; 2421 } 2422 var /** number */ v_2 = base.limit - base.cursor; 2423 r_stem_noun_suffixes(); 2424 base.cursor = base.limit - v_2; 2425 base.cursor = base.limit_backward; 2426 if (!r_postlude()) 2427 { 2428 return false; 2429 } 2430 return true; 2431 }; 2432 2433 /**@return{string}*/ 2434 this['stemWord'] = function(/**string*/word) { 2435 base.setCurrent(word); 2436 this.stem(); 2437 return base.getCurrent(); 2438 }; 2439}; 2440