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