1 // Generated by Snowball 2.0.0 - https://snowballstem.org/ 2 3 package org.tartarus.snowball.ext; 4 5 import org.tartarus.snowball.Among; 6 7 /** 8 * This class implements the stemming algorithm defined by a snowball script. 9 * 10 * <p>Generated by Snowball 2.0.0 - https://snowballstem.org/ 11 */ 12 @SuppressWarnings("unused") 13 public class YiddishStemmer extends org.tartarus.snowball.SnowballStemmer { 14 15 private static final long serialVersionUID = 1L; 16 private static final java.lang.invoke.MethodHandles.Lookup methodObject = 17 java.lang.invoke.MethodHandles.lookup(); 18 19 private static final Among a_0[] = { 20 new Among("\u05D0\u05D3\u05D5\u05E8\u05DB", -1, 1), 21 new Among("\u05D0\u05D4\u05D9\u05E0", -1, 1), 22 new Among("\u05D0\u05D4\u05E2\u05E8", -1, 1), 23 new Among("\u05D0\u05D4\u05F2\u05DE", -1, 1), 24 new Among("\u05D0\u05D5\u05DE", -1, 1), 25 new Among("\u05D0\u05D5\u05E0\u05D8\u05E2\u05E8", -1, 1), 26 new Among("\u05D0\u05D9\u05D1\u05E2\u05E8", -1, 1), 27 new Among("\u05D0\u05E0", -1, 1), 28 new Among("\u05D0\u05E0\u05D8", 7, 1), 29 new Among("\u05D0\u05E0\u05D8\u05E7\u05E2\u05D2\u05E0", 8, 1), 30 new Among("\u05D0\u05E0\u05D9\u05D3\u05E2\u05E8", 7, 1), 31 new Among("\u05D0\u05E4", -1, 1), 32 new Among("\u05D0\u05E4\u05D9\u05E8", 11, 1), 33 new Among("\u05D0\u05E7\u05E2\u05D2\u05E0", -1, 1), 34 new Among("\u05D0\u05E8\u05D0\u05E4", -1, 1), 35 new Among("\u05D0\u05E8\u05D5\u05DE", -1, 1), 36 new Among("\u05D0\u05E8\u05D5\u05E0\u05D8\u05E2\u05E8", -1, 1), 37 new Among("\u05D0\u05E8\u05D9\u05D1\u05E2\u05E8", -1, 1), 38 new Among("\u05D0\u05E8\u05F1\u05E1", -1, 1), 39 new Among("\u05D0\u05E8\u05F1\u05E4", -1, 1), 40 new Among("\u05D0\u05E8\u05F2\u05E0", -1, 1), 41 new Among("\u05D0\u05F0\u05E2\u05E7", -1, 1), 42 new Among("\u05D0\u05F1\u05E1", -1, 1), 43 new Among("\u05D0\u05F1\u05E4", -1, 1), 44 new Among("\u05D0\u05F2\u05E0", -1, 1), 45 new Among("\u05D1\u05D0", -1, 1), 46 new Among("\u05D1\u05F2", -1, 1), 47 new Among("\u05D3\u05D5\u05E8\u05DB", -1, 1), 48 new Among("\u05D3\u05E2\u05E8", -1, 1), 49 new Among("\u05DE\u05D9\u05D8", -1, 1), 50 new Among("\u05E0\u05D0\u05DB", -1, 1), 51 new Among("\u05E4\u05D0\u05E8", -1, 1), 52 new Among("\u05E4\u05D0\u05E8\u05D1\u05F2", 31, 1), 53 new Among("\u05E4\u05D0\u05E8\u05F1\u05E1", 31, 1), 54 new Among("\u05E4\u05D5\u05E0\u05D0\u05E0\u05D3\u05E2\u05E8", -1, 1), 55 new Among("\u05E6\u05D5", -1, 1), 56 new Among("\u05E6\u05D5\u05D6\u05D0\u05DE\u05E2\u05E0", 35, 1), 57 new Among("\u05E6\u05D5\u05E0\u05F1\u05E4", 35, 1), 58 new Among("\u05E6\u05D5\u05E8\u05D9\u05E7", 35, 1), 59 new Among("\u05E6\u05E2", -1, 1) 60 }; 61 62 private static final Among a_1[] = { 63 new Among("\u05D3\u05D6\u05E9", -1, -1), 64 new Among("\u05E9\u05D8\u05E8", -1, -1), 65 new Among("\u05E9\u05D8\u05E9", -1, -1), 66 new Among("\u05E9\u05E4\u05E8", -1, -1) 67 }; 68 69 private static final Among a_2[] = { 70 new Among("\u05D5\u05E0\u05D2", -1, 1), 71 new Among("\u05E1\u05D8\u05D5", -1, 1), 72 new Among("\u05D8", -1, 1), 73 new Among("\u05D1\u05E8\u05D0\u05DB\u05D8", 2, 31), 74 new Among("\u05E1\u05D8", 2, 1), 75 new Among("\u05D9\u05E1\u05D8", 4, 1), 76 new Among("\u05D2\u05D9\u05E1\u05D8", 5, 33), 77 new Among("\u05E9\u05D9\u05E1\u05D8", 5, 33), 78 new Among("\u05E9\u05D0\u05E4\u05D8", 2, 1), 79 new Among("\u05D4\u05F2\u05D8", 2, 1), 80 new Among("\u05E7\u05F2\u05D8", 2, 1), 81 new Among("\u05D9\u05E7\u05F2\u05D8", 10, 1), 82 new Among("\u05DC\u05E2\u05DB", -1, 1), 83 new Among("\u05E2\u05DC\u05E2\u05DB", 12, 1), 84 new Among("\u05D9\u05D6\u05DE", -1, 1), 85 new Among("\u05D9\u05DE", -1, 1), 86 new Among("\u05E2\u05DE", -1, 1), 87 new Among("\u05E2\u05E0\u05E2\u05DE", 16, 3), 88 new Among("\u05D8\u05E2\u05E0\u05E2\u05DE", 17, 4), 89 new Among("\u05E0", -1, 1), 90 new Among("\u05E7\u05DC\u05D9\u05D1\u05E0", 19, 14), 91 new Among("\u05E8\u05D9\u05D1\u05E0", 19, 15), 92 new Among("\u05D8\u05E8\u05D9\u05D1\u05E0", 21, 12), 93 new Among("\u05E9\u05E8\u05D9\u05D1\u05E0", 21, 7), 94 new Among("\u05D4\u05F1\u05D1\u05E0", 19, 27), 95 new Among("\u05E9\u05F0\u05D9\u05D2\u05E0", 19, 17), 96 new Among("\u05D6\u05D5\u05E0\u05D2\u05E0", 19, 22), 97 new Among("\u05E9\u05DC\u05D5\u05E0\u05D2\u05E0", 19, 25), 98 new Among("\u05E6\u05F0\u05D5\u05E0\u05D2\u05E0", 19, 24), 99 new Among("\u05D1\u05F1\u05D2\u05E0", 19, 26), 100 new Among("\u05D1\u05D5\u05E0\u05D3\u05E0", 19, 20), 101 new Among("\u05F0\u05D9\u05D6\u05E0", 19, 11), 102 new Among("\u05D8\u05E0", 19, 4), 103 new Among("GE\u05D1\u05D9\u05D8\u05E0", 32, 9), 104 new Among("GE\u05DC\u05D9\u05D8\u05E0", 32, 13), 105 new Among("GE\u05DE\u05D9\u05D8\u05E0", 32, 8), 106 new Among("\u05E9\u05E0\u05D9\u05D8\u05E0", 32, 19), 107 new Among("\u05E1\u05D8\u05E0", 32, 1), 108 new Among("\u05D9\u05E1\u05D8\u05E0", 37, 1), 109 new Among("GE\u05D1\u05D9\u05E1\u05E0", 19, 10), 110 new Among("\u05E9\u05DE\u05D9\u05E1\u05E0", 19, 18), 111 new Among("GE\u05E8\u05D9\u05E1\u05E0", 19, 16), 112 new Among("\u05E2\u05E0", 19, 1), 113 new Among("\u05D2\u05D0\u05E0\u05D2\u05E2\u05E0", 42, 5), 114 new Among("\u05E2\u05DC\u05E2\u05E0", 42, 1), 115 new Among("\u05E0\u05D5\u05DE\u05E2\u05E0", 42, 6), 116 new Among("\u05D9\u05D6\u05DE\u05E2\u05E0", 42, 1), 117 new Among("\u05E9\u05D8\u05D0\u05E0\u05E2\u05E0", 42, 29), 118 new Among("\u05D8\u05E8\u05D5\u05E0\u05E7\u05E0", 19, 23), 119 new Among("\u05E4\u05D0\u05E8\u05DC\u05F1\u05E8\u05E0", 19, 28), 120 new Among("\u05E9\u05F0\u05F1\u05E8\u05E0", 19, 30), 121 new Among("\u05F0\u05D5\u05D8\u05E9\u05E0", 19, 21), 122 new Among("\u05D2\u05F2\u05E0", 19, 5), 123 new Among("\u05E1", -1, 1), 124 new Among("\u05D8\u05E1", 53, 4), 125 new Among("\u05E0\u05E1", 53, 1), 126 new Among("\u05D8\u05E0\u05E1", 55, 4), 127 new Among("\u05E2\u05E0\u05E1", 55, 3), 128 new Among("\u05E2\u05E1", 53, 1), 129 new Among("\u05D9\u05E2\u05E1", 58, 2), 130 new Among("\u05E2\u05DC\u05E2\u05E1", 58, 1), 131 new Among("\u05E2\u05E8\u05E1", 53, 1), 132 new Among("\u05E2\u05E0\u05E2\u05E8\u05E1", 61, 1), 133 new Among("\u05E2", -1, 1), 134 new Among("\u05D8\u05E2", 63, 4), 135 new Among("\u05E1\u05D8\u05E2", 64, 1), 136 new Among("\u05D9\u05E2", 63, -1), 137 new Among("\u05E2\u05DC\u05E2", 63, 1), 138 new Among("\u05E2\u05E0\u05E2", 63, 3), 139 new Among("\u05D8\u05E2\u05E0\u05E2", 68, 4), 140 new Among("\u05E2\u05E8", -1, 1), 141 new Among("\u05D8\u05E2\u05E8", 70, 4), 142 new Among("\u05E1\u05D8\u05E2\u05E8", 71, 1), 143 new Among("\u05E2\u05E0\u05E2\u05E8", 70, 3), 144 new Among("\u05D8\u05E2\u05E0\u05E2\u05E8", 73, 4), 145 new Among("\u05D5\u05EA", -1, 32) 146 }; 147 148 private static final Among a_3[] = { 149 new Among("\u05D5\u05E0\u05D2", -1, 1), 150 new Among("\u05E9\u05D0\u05E4\u05D8", -1, 1), 151 new Among("\u05D4\u05F2\u05D8", -1, 1), 152 new Among("\u05E7\u05F2\u05D8", -1, 1), 153 new Among("\u05D9\u05E7\u05F2\u05D8", 3, 1), 154 new Among("\u05DC", -1, 2) 155 }; 156 157 private static final Among a_4[] = { 158 new Among("\u05D9\u05D2", -1, 1), 159 new Among("\u05D9\u05E7", -1, 1), 160 new Among("\u05D3\u05D9\u05E7", 1, 1), 161 new Among("\u05E0\u05D3\u05D9\u05E7", 2, 1), 162 new Among("\u05E2\u05E0\u05D3\u05D9\u05E7", 3, 2), 163 new Among("\u05D1\u05DC\u05D9\u05E7", 1, -1), 164 new Among("\u05D2\u05DC\u05D9\u05E7", 1, -1), 165 new Among("\u05E0\u05D9\u05E7", 1, 1), 166 new Among("\u05D9\u05E9", -1, 1) 167 }; 168 169 private static final char g_niked[] = {255, 155, 6}; 170 171 private static final char g_vowel[] = {33, 2, 4, 0, 6}; 172 173 private static final char g_consonant[] = {239, 254, 253, 131}; 174 175 private int I_x; 176 private int I_p1; 177 r_prelude()178 private boolean r_prelude() { 179 int v_1 = cursor; 180 lab0: 181 { 182 while (true) { 183 int v_2 = cursor; 184 lab1: 185 { 186 golab2: 187 while (true) { 188 int v_3 = cursor; 189 lab3: 190 { 191 lab4: 192 { 193 int v_4 = cursor; 194 lab5: 195 { 196 bra = cursor; 197 if (!(eq_s("\u05D5\u05D5"))) { 198 break lab5; 199 } 200 ket = cursor; 201 { 202 int v_5 = cursor; 203 lab6: 204 { 205 if (!(eq_s("\u05BC"))) { 206 break lab6; 207 } 208 break lab5; 209 } 210 cursor = v_5; 211 } 212 slice_from("\u05F0"); 213 break lab4; 214 } 215 cursor = v_4; 216 lab7: 217 { 218 bra = cursor; 219 if (!(eq_s("\u05D5\u05D9"))) { 220 break lab7; 221 } 222 ket = cursor; 223 { 224 int v_6 = cursor; 225 lab8: 226 { 227 if (!(eq_s("\u05B4"))) { 228 break lab8; 229 } 230 break lab7; 231 } 232 cursor = v_6; 233 } 234 slice_from("\u05F1"); 235 break lab4; 236 } 237 cursor = v_4; 238 lab9: 239 { 240 bra = cursor; 241 if (!(eq_s("\u05D9\u05D9"))) { 242 break lab9; 243 } 244 ket = cursor; 245 { 246 int v_7 = cursor; 247 lab10: 248 { 249 if (!(eq_s("\u05B4"))) { 250 break lab10; 251 } 252 break lab9; 253 } 254 cursor = v_7; 255 } 256 slice_from("\u05F2"); 257 break lab4; 258 } 259 cursor = v_4; 260 lab11: 261 { 262 bra = cursor; 263 if (!(eq_s("\u05DA"))) { 264 break lab11; 265 } 266 ket = cursor; 267 slice_from("\u05DB"); 268 break lab4; 269 } 270 cursor = v_4; 271 lab12: 272 { 273 bra = cursor; 274 if (!(eq_s("\u05DD"))) { 275 break lab12; 276 } 277 ket = cursor; 278 slice_from("\u05DE"); 279 break lab4; 280 } 281 cursor = v_4; 282 lab13: 283 { 284 bra = cursor; 285 if (!(eq_s("\u05DF"))) { 286 break lab13; 287 } 288 ket = cursor; 289 slice_from("\u05E0"); 290 break lab4; 291 } 292 cursor = v_4; 293 lab14: 294 { 295 bra = cursor; 296 if (!(eq_s("\u05E3"))) { 297 break lab14; 298 } 299 ket = cursor; 300 slice_from("\u05E4"); 301 break lab4; 302 } 303 cursor = v_4; 304 bra = cursor; 305 if (!(eq_s("\u05E5"))) { 306 break lab3; 307 } 308 ket = cursor; 309 slice_from("\u05E6"); 310 } 311 cursor = v_3; 312 break golab2; 313 } 314 cursor = v_3; 315 if (cursor >= limit) { 316 break lab1; 317 } 318 cursor++; 319 } 320 continue; 321 } 322 cursor = v_2; 323 break; 324 } 325 } 326 cursor = v_1; 327 int v_8 = cursor; 328 lab15: 329 { 330 while (true) { 331 int v_9 = cursor; 332 lab16: 333 { 334 golab17: 335 while (true) { 336 int v_10 = cursor; 337 lab18: 338 { 339 bra = cursor; 340 if (!(in_grouping(g_niked, 1456, 1474))) { 341 break lab18; 342 } 343 ket = cursor; 344 slice_del(); 345 cursor = v_10; 346 break golab17; 347 } 348 cursor = v_10; 349 if (cursor >= limit) { 350 break lab16; 351 } 352 cursor++; 353 } 354 continue; 355 } 356 cursor = v_9; 357 break; 358 } 359 } 360 cursor = v_8; 361 return true; 362 } 363 r_mark_regions()364 private boolean r_mark_regions() { 365 I_p1 = limit; 366 int v_1 = cursor; 367 lab0: 368 { 369 bra = cursor; 370 if (!(eq_s("\u05D2\u05E2"))) { 371 cursor = v_1; 372 break lab0; 373 } 374 ket = cursor; 375 slice_from("GE"); 376 } 377 int v_2 = cursor; 378 lab1: 379 { 380 if (find_among(a_0) == 0) { 381 cursor = v_2; 382 break lab1; 383 } 384 lab2: 385 { 386 int v_3 = cursor; 387 lab3: 388 { 389 lab4: 390 { 391 int v_4 = cursor; 392 lab5: 393 { 394 if (!(eq_s("\u05E6\u05D5\u05D2\u05E0"))) { 395 break lab5; 396 } 397 break lab4; 398 } 399 cursor = v_4; 400 lab6: 401 { 402 if (!(eq_s("\u05E6\u05D5\u05E7\u05D8"))) { 403 break lab6; 404 } 405 break lab4; 406 } 407 cursor = v_4; 408 if (!(eq_s("\u05E6\u05D5\u05E7\u05E0"))) { 409 break lab3; 410 } 411 } 412 { 413 int v_5 = cursor; 414 lab7: 415 { 416 { 417 int c = cursor + 1; 418 if (0 > c || c > limit) { 419 break lab7; 420 } 421 cursor = c; 422 } 423 break lab3; 424 } 425 cursor = v_5; 426 } 427 { 428 int c = cursor + -4; 429 if (0 > c || c > limit) { 430 break lab3; 431 } 432 cursor = c; 433 } 434 break lab2; 435 } 436 cursor = v_3; 437 lab8: 438 { 439 bra = cursor; 440 if (!(eq_s("\u05D2\u05E2"))) { 441 break lab8; 442 } 443 ket = cursor; 444 slice_from("GE"); 445 break lab2; 446 } 447 cursor = v_3; 448 bra = cursor; 449 if (!(eq_s("\u05E6\u05D5"))) { 450 cursor = v_2; 451 break lab1; 452 } 453 ket = cursor; 454 slice_from("TSU"); 455 } 456 } 457 int v_6 = cursor; 458 { 459 int c = cursor + 3; 460 if (0 > c || c > limit) { 461 return false; 462 } 463 cursor = c; 464 } 465 I_x = cursor; 466 cursor = v_6; 467 int v_7 = cursor; 468 lab9: 469 { 470 if (find_among(a_1) == 0) { 471 cursor = v_7; 472 break lab9; 473 } 474 } 475 { 476 int v_8 = cursor; 477 lab10: 478 { 479 if (!(in_grouping(g_consonant, 1489, 1520))) { 480 break lab10; 481 } 482 if (!(in_grouping(g_consonant, 1489, 1520))) { 483 break lab10; 484 } 485 if (!(in_grouping(g_consonant, 1489, 1520))) { 486 break lab10; 487 } 488 I_p1 = cursor; 489 return false; 490 } 491 cursor = v_8; 492 } 493 golab11: 494 while (true) { 495 int v_9 = cursor; 496 lab12: 497 { 498 if (!(in_grouping(g_vowel, 1488, 1522))) { 499 break lab12; 500 } 501 cursor = v_9; 502 break golab11; 503 } 504 cursor = v_9; 505 if (cursor >= limit) { 506 return false; 507 } 508 cursor++; 509 } 510 while (true) { 511 lab13: 512 { 513 if (!(in_grouping(g_vowel, 1488, 1522))) { 514 break lab13; 515 } 516 continue; 517 } 518 break; 519 } 520 I_p1 = cursor; 521 lab14: 522 { 523 if (!(I_p1 < I_x)) { 524 break lab14; 525 } 526 I_p1 = I_x; 527 } 528 return true; 529 } 530 r_R1()531 private boolean r_R1() { 532 if (!(I_p1 <= cursor)) { 533 return false; 534 } 535 return true; 536 } 537 r_standard_suffix()538 private boolean r_standard_suffix() { 539 int among_var; 540 int v_1 = limit - cursor; 541 lab0: 542 { 543 ket = cursor; 544 among_var = find_among_b(a_2); 545 if (among_var == 0) { 546 break lab0; 547 } 548 bra = cursor; 549 switch (among_var) { 550 case 1: 551 if (!r_R1()) { 552 break lab0; 553 } 554 slice_del(); 555 break; 556 case 2: 557 if (!r_R1()) { 558 break lab0; 559 } 560 slice_from("\u05D9\u05E2"); 561 break; 562 case 3: 563 if (!r_R1()) { 564 break lab0; 565 } 566 slice_del(); 567 { 568 int v_2 = limit - cursor; 569 lab1: 570 { 571 ket = cursor; 572 if (!(eq_s_b("\u05D2\u05D0\u05E0\u05D2"))) { 573 break lab1; 574 } 575 bra = cursor; 576 slice_from("\u05D2\u05F2"); 577 break lab0; 578 } 579 cursor = limit - v_2; 580 } 581 { 582 int v_3 = limit - cursor; 583 lab2: 584 { 585 ket = cursor; 586 if (!(eq_s_b("\u05E0\u05D5\u05DE"))) { 587 break lab2; 588 } 589 bra = cursor; 590 slice_from("\u05E0\u05E2\u05DE"); 591 break lab0; 592 } 593 cursor = limit - v_3; 594 } 595 { 596 int v_4 = limit - cursor; 597 lab3: 598 { 599 ket = cursor; 600 if (!(eq_s_b("\u05DE\u05D9\u05D8"))) { 601 break lab3; 602 } 603 bra = cursor; 604 slice_from("\u05DE\u05F2\u05D3"); 605 break lab0; 606 } 607 cursor = limit - v_4; 608 } 609 { 610 int v_5 = limit - cursor; 611 lab4: 612 { 613 ket = cursor; 614 if (!(eq_s_b("\u05D1\u05D9\u05D8"))) { 615 break lab4; 616 } 617 bra = cursor; 618 slice_from("\u05D1\u05F2\u05D8"); 619 break lab0; 620 } 621 cursor = limit - v_5; 622 } 623 { 624 int v_6 = limit - cursor; 625 lab5: 626 { 627 ket = cursor; 628 if (!(eq_s_b("\u05D1\u05D9\u05E1"))) { 629 break lab5; 630 } 631 bra = cursor; 632 slice_from("\u05D1\u05F2\u05E1"); 633 break lab0; 634 } 635 cursor = limit - v_6; 636 } 637 { 638 int v_7 = limit - cursor; 639 lab6: 640 { 641 ket = cursor; 642 if (!(eq_s_b("\u05F0\u05D9\u05D6"))) { 643 break lab6; 644 } 645 bra = cursor; 646 slice_from("\u05F0\u05F2\u05D6"); 647 break lab0; 648 } 649 cursor = limit - v_7; 650 } 651 { 652 int v_8 = limit - cursor; 653 lab7: 654 { 655 ket = cursor; 656 if (!(eq_s_b("\u05D8\u05E8\u05D9\u05D1"))) { 657 break lab7; 658 } 659 bra = cursor; 660 slice_from("\u05D8\u05E8\u05F2\u05D1"); 661 break lab0; 662 } 663 cursor = limit - v_8; 664 } 665 { 666 int v_9 = limit - cursor; 667 lab8: 668 { 669 ket = cursor; 670 if (!(eq_s_b("\u05DC\u05D9\u05D8"))) { 671 break lab8; 672 } 673 bra = cursor; 674 slice_from("\u05DC\u05F2\u05D8"); 675 break lab0; 676 } 677 cursor = limit - v_9; 678 } 679 { 680 int v_10 = limit - cursor; 681 lab9: 682 { 683 ket = cursor; 684 if (!(eq_s_b("\u05E7\u05DC\u05D9\u05D1"))) { 685 break lab9; 686 } 687 bra = cursor; 688 slice_from("\u05E7\u05DC\u05F2\u05D1"); 689 break lab0; 690 } 691 cursor = limit - v_10; 692 } 693 { 694 int v_11 = limit - cursor; 695 lab10: 696 { 697 ket = cursor; 698 if (!(eq_s_b("\u05E8\u05D9\u05D1"))) { 699 break lab10; 700 } 701 bra = cursor; 702 slice_from("\u05E8\u05F2\u05D1"); 703 break lab0; 704 } 705 cursor = limit - v_11; 706 } 707 { 708 int v_12 = limit - cursor; 709 lab11: 710 { 711 ket = cursor; 712 if (!(eq_s_b("\u05E8\u05D9\u05E1"))) { 713 break lab11; 714 } 715 bra = cursor; 716 slice_from("\u05E8\u05F2\u05E1"); 717 break lab0; 718 } 719 cursor = limit - v_12; 720 } 721 { 722 int v_13 = limit - cursor; 723 lab12: 724 { 725 ket = cursor; 726 if (!(eq_s_b("\u05E9\u05F0\u05D9\u05D2"))) { 727 break lab12; 728 } 729 bra = cursor; 730 slice_from("\u05E9\u05F0\u05F2\u05D2"); 731 break lab0; 732 } 733 cursor = limit - v_13; 734 } 735 { 736 int v_14 = limit - cursor; 737 lab13: 738 { 739 ket = cursor; 740 if (!(eq_s_b("\u05E9\u05DE\u05D9\u05E1"))) { 741 break lab13; 742 } 743 bra = cursor; 744 slice_from("\u05E9\u05DE\u05F2\u05E1"); 745 break lab0; 746 } 747 cursor = limit - v_14; 748 } 749 { 750 int v_15 = limit - cursor; 751 lab14: 752 { 753 ket = cursor; 754 if (!(eq_s_b("\u05E9\u05E0\u05D9\u05D8"))) { 755 break lab14; 756 } 757 bra = cursor; 758 slice_from("\u05E9\u05E0\u05F2\u05D3"); 759 break lab0; 760 } 761 cursor = limit - v_15; 762 } 763 { 764 int v_16 = limit - cursor; 765 lab15: 766 { 767 ket = cursor; 768 if (!(eq_s_b("\u05E9\u05E8\u05D9\u05D1"))) { 769 break lab15; 770 } 771 bra = cursor; 772 slice_from("\u05E9\u05E8\u05F2\u05D1"); 773 break lab0; 774 } 775 cursor = limit - v_16; 776 } 777 { 778 int v_17 = limit - cursor; 779 lab16: 780 { 781 ket = cursor; 782 if (!(eq_s_b("\u05D1\u05D5\u05E0\u05D3"))) { 783 break lab16; 784 } 785 bra = cursor; 786 slice_from("\u05D1\u05D9\u05E0\u05D3"); 787 break lab0; 788 } 789 cursor = limit - v_17; 790 } 791 { 792 int v_18 = limit - cursor; 793 lab17: 794 { 795 ket = cursor; 796 if (!(eq_s_b("\u05F0\u05D5\u05D8\u05E9"))) { 797 break lab17; 798 } 799 bra = cursor; 800 slice_from("\u05F0\u05D9\u05D8\u05E9"); 801 break lab0; 802 } 803 cursor = limit - v_18; 804 } 805 { 806 int v_19 = limit - cursor; 807 lab18: 808 { 809 ket = cursor; 810 if (!(eq_s_b("\u05D6\u05D5\u05E0\u05D2"))) { 811 break lab18; 812 } 813 bra = cursor; 814 slice_from("\u05D6\u05D9\u05E0\u05D2"); 815 break lab0; 816 } 817 cursor = limit - v_19; 818 } 819 { 820 int v_20 = limit - cursor; 821 lab19: 822 { 823 ket = cursor; 824 if (!(eq_s_b("\u05D8\u05E8\u05D5\u05E0\u05E7"))) { 825 break lab19; 826 } 827 bra = cursor; 828 slice_from("\u05D8\u05E8\u05D9\u05E0\u05E7"); 829 break lab0; 830 } 831 cursor = limit - v_20; 832 } 833 { 834 int v_21 = limit - cursor; 835 lab20: 836 { 837 ket = cursor; 838 if (!(eq_s_b("\u05E6\u05F0\u05D5\u05E0\u05D2"))) { 839 break lab20; 840 } 841 bra = cursor; 842 slice_from("\u05E6\u05F0\u05D9\u05E0\u05D2"); 843 break lab0; 844 } 845 cursor = limit - v_21; 846 } 847 { 848 int v_22 = limit - cursor; 849 lab21: 850 { 851 ket = cursor; 852 if (!(eq_s_b("\u05E9\u05DC\u05D5\u05E0\u05D2"))) { 853 break lab21; 854 } 855 bra = cursor; 856 slice_from("\u05E9\u05DC\u05D9\u05E0\u05D2"); 857 break lab0; 858 } 859 cursor = limit - v_22; 860 } 861 { 862 int v_23 = limit - cursor; 863 lab22: 864 { 865 ket = cursor; 866 if (!(eq_s_b("\u05D1\u05F1\u05D2"))) { 867 break lab22; 868 } 869 bra = cursor; 870 slice_from("\u05D1\u05F2\u05D2"); 871 break lab0; 872 } 873 cursor = limit - v_23; 874 } 875 { 876 int v_24 = limit - cursor; 877 lab23: 878 { 879 ket = cursor; 880 if (!(eq_s_b("\u05D4\u05F1\u05D1"))) { 881 break lab23; 882 } 883 bra = cursor; 884 slice_from("\u05D4\u05F2\u05D1"); 885 break lab0; 886 } 887 cursor = limit - v_24; 888 } 889 { 890 int v_25 = limit - cursor; 891 lab24: 892 { 893 ket = cursor; 894 if (!(eq_s_b("\u05E4\u05D0\u05E8\u05DC\u05F1\u05E8"))) { 895 break lab24; 896 } 897 bra = cursor; 898 slice_from("\u05E4\u05D0\u05E8\u05DC\u05D9\u05E8"); 899 break lab0; 900 } 901 cursor = limit - v_25; 902 } 903 { 904 int v_26 = limit - cursor; 905 lab25: 906 { 907 ket = cursor; 908 if (!(eq_s_b("\u05E9\u05D8\u05D0\u05E0"))) { 909 break lab25; 910 } 911 bra = cursor; 912 slice_from("\u05E9\u05D8\u05F2"); 913 break lab0; 914 } 915 cursor = limit - v_26; 916 } 917 { 918 int v_27 = limit - cursor; 919 lab26: 920 { 921 ket = cursor; 922 if (!(eq_s_b("\u05E9\u05F0\u05F1\u05E8"))) { 923 break lab26; 924 } 925 bra = cursor; 926 slice_from("\u05E9\u05F0\u05E2\u05E8"); 927 break lab0; 928 } 929 cursor = limit - v_27; 930 } 931 break; 932 case 4: 933 { 934 int v_28 = limit - cursor; 935 lab27: 936 { 937 if (!r_R1()) { 938 break lab27; 939 } 940 slice_del(); 941 { 942 int v_29 = limit - cursor; 943 lab28: 944 { 945 ket = cursor; 946 lab29: 947 { 948 int v_30 = limit - cursor; 949 lab30: 950 { 951 if (!(eq_s_b("\u05D2\u05E2\u05D1\u05E8\u05D0\u05DB"))) { 952 break lab30; 953 } 954 break lab29; 955 } 956 cursor = limit - v_30; 957 if (!(eq_s_b("\u05D1\u05E8\u05D0\u05DB"))) { 958 break lab28; 959 } 960 } 961 bra = cursor; 962 slice_from("\u05D1\u05E8\u05E2\u05E0\u05D2"); 963 break lab27; 964 } 965 cursor = limit - v_29; 966 } 967 break lab0; 968 } 969 cursor = limit - v_28; 970 } 971 while (true) { 972 lab31: 973 { 974 { 975 int c = cursor - -1; 976 if (limit_backward > c || c > limit) { 977 break lab31; 978 } 979 cursor = c; 980 } 981 continue; 982 } 983 break; 984 } 985 ket = cursor; 986 lab32: 987 { 988 int v_32 = limit - cursor; 989 lab33: 990 { 991 if (!(eq_s_b("\u05E2\u05E0\u05E2\u05E8"))) { 992 break lab33; 993 } 994 break lab32; 995 } 996 cursor = limit - v_32; 997 lab34: 998 { 999 if (!(eq_s_b("\u05E2\u05E0\u05E2\u05DE"))) { 1000 break lab34; 1001 } 1002 break lab32; 1003 } 1004 cursor = limit - v_32; 1005 lab35: 1006 { 1007 if (!(eq_s_b("\u05E2\u05E0\u05E2"))) { 1008 break lab35; 1009 } 1010 break lab32; 1011 } 1012 cursor = limit - v_32; 1013 lab36: 1014 { 1015 if (!(eq_s_b("\u05E0"))) { 1016 break lab36; 1017 } 1018 break lab32; 1019 } 1020 cursor = limit - v_32; 1021 lab37: 1022 { 1023 if (!(eq_s_b("\u05E2\u05E8"))) { 1024 break lab37; 1025 } 1026 break lab32; 1027 } 1028 cursor = limit - v_32; 1029 lab38: 1030 { 1031 if (!(eq_s_b("\u05E0\u05E1"))) { 1032 break lab38; 1033 } 1034 break lab32; 1035 } 1036 cursor = limit - v_32; 1037 lab39: 1038 { 1039 if (!(eq_s_b("\u05E2"))) { 1040 break lab39; 1041 } 1042 break lab32; 1043 } 1044 cursor = limit - v_32; 1045 if (!(eq_s_b("\u05E1"))) { 1046 break lab0; 1047 } 1048 } 1049 bra = cursor; 1050 if (!r_R1()) { 1051 break lab0; 1052 } 1053 slice_del(); 1054 break; 1055 case 5: 1056 slice_from("\u05D2\u05F2"); 1057 break; 1058 case 6: 1059 slice_from("\u05E0\u05E2\u05DE"); 1060 break; 1061 case 7: 1062 slice_from("\u05E9\u05E8\u05F2\u05D1"); 1063 break; 1064 case 8: 1065 slice_from("\u05DE\u05F2\u05D3"); 1066 break; 1067 case 9: 1068 slice_from("\u05D1\u05F2\u05D8"); 1069 break; 1070 case 10: 1071 slice_from("\u05D1\u05F2\u05E1"); 1072 break; 1073 case 11: 1074 slice_from("\u05F0\u05F2\u05D6"); 1075 break; 1076 case 12: 1077 slice_from("\u05D8\u05E8\u05F2\u05D1"); 1078 break; 1079 case 13: 1080 slice_from("\u05DC\u05F2\u05D8"); 1081 break; 1082 case 14: 1083 slice_from("\u05E7\u05DC\u05F2\u05D1"); 1084 break; 1085 case 15: 1086 slice_from("\u05E8\u05F2\u05D1"); 1087 break; 1088 case 16: 1089 slice_from("\u05E8\u05F2\u05E1"); 1090 break; 1091 case 17: 1092 slice_from("\u05E9\u05F0\u05F2\u05D2"); 1093 break; 1094 case 18: 1095 slice_from("\u05E9\u05DE\u05F2\u05E1"); 1096 break; 1097 case 19: 1098 slice_from("\u05E9\u05E0\u05F2\u05D3"); 1099 break; 1100 case 20: 1101 slice_from("\u05D1\u05D9\u05E0\u05D3"); 1102 break; 1103 case 21: 1104 slice_from("\u05F0\u05D9\u05D8\u05E9"); 1105 break; 1106 case 22: 1107 slice_from("\u05D6\u05D9\u05E0\u05D2"); 1108 break; 1109 case 23: 1110 slice_from("\u05D8\u05E8\u05D9\u05E0\u05E7"); 1111 break; 1112 case 24: 1113 slice_from("\u05E6\u05F0\u05D9\u05E0\u05D2"); 1114 break; 1115 case 25: 1116 slice_from("\u05E9\u05DC\u05D9\u05E0\u05D2"); 1117 break; 1118 case 26: 1119 slice_from("\u05D1\u05F2\u05D2"); 1120 break; 1121 case 27: 1122 slice_from("\u05D4\u05F2\u05D1"); 1123 break; 1124 case 28: 1125 slice_from("\u05E4\u05D0\u05E8\u05DC\u05D9\u05E8"); 1126 break; 1127 case 29: 1128 slice_from("\u05E9\u05D8\u05F2"); 1129 break; 1130 case 30: 1131 slice_from("\u05E9\u05F0\u05E2\u05E8"); 1132 break; 1133 case 31: 1134 slice_from("\u05D1\u05E8\u05E2\u05E0\u05D2"); 1135 break; 1136 case 32: 1137 if (!r_R1()) { 1138 break lab0; 1139 } 1140 slice_from("\u05D4"); 1141 break; 1142 case 33: 1143 { 1144 int c = cursor - -4; 1145 if (limit_backward > c || c > limit) { 1146 break lab0; 1147 } 1148 cursor = c; 1149 } 1150 ket = cursor; 1151 if (!(eq_s_b("\u05D8"))) { 1152 break lab0; 1153 } 1154 bra = cursor; 1155 if (!r_R1()) { 1156 break lab0; 1157 } 1158 slice_del(); 1159 break; 1160 } 1161 } 1162 cursor = limit - v_1; 1163 int v_33 = limit - cursor; 1164 lab40: 1165 { 1166 ket = cursor; 1167 among_var = find_among_b(a_3); 1168 if (among_var == 0) { 1169 break lab40; 1170 } 1171 bra = cursor; 1172 switch (among_var) { 1173 case 1: 1174 if (!r_R1()) { 1175 break lab40; 1176 } 1177 slice_del(); 1178 break; 1179 case 2: 1180 if (!r_R1()) { 1181 break lab40; 1182 } 1183 if (!(in_grouping_b(g_consonant, 1489, 1520))) { 1184 break lab40; 1185 } 1186 slice_del(); 1187 break; 1188 } 1189 } 1190 cursor = limit - v_33; 1191 int v_34 = limit - cursor; 1192 lab41: 1193 { 1194 ket = cursor; 1195 among_var = find_among_b(a_4); 1196 if (among_var == 0) { 1197 break lab41; 1198 } 1199 bra = cursor; 1200 switch (among_var) { 1201 case 1: 1202 if (!r_R1()) { 1203 break lab41; 1204 } 1205 slice_del(); 1206 break; 1207 case 2: 1208 if (!r_R1()) { 1209 break lab41; 1210 } 1211 { 1212 int v_35 = limit - cursor; 1213 lab42: 1214 { 1215 int v_36 = limit - cursor; 1216 lab43: 1217 { 1218 int v_37 = limit - cursor; 1219 lab44: 1220 { 1221 if (!(eq_s_b("\u05E0\u05D2"))) { 1222 break lab44; 1223 } 1224 break lab43; 1225 } 1226 cursor = limit - v_37; 1227 lab45: 1228 { 1229 if (!(eq_s_b("\u05E0\u05E7"))) { 1230 break lab45; 1231 } 1232 break lab43; 1233 } 1234 cursor = limit - v_37; 1235 lab46: 1236 { 1237 if (!(eq_s_b("\u05E0"))) { 1238 break lab46; 1239 } 1240 break lab43; 1241 } 1242 cursor = limit - v_37; 1243 lab47: 1244 { 1245 if (!(eq_s_b("\u05DE"))) { 1246 break lab47; 1247 } 1248 break lab43; 1249 } 1250 cursor = limit - v_37; 1251 lab48: 1252 { 1253 if (!(eq_s_b("Lamed"))) { 1254 break lab48; 1255 } 1256 if (!(in_grouping_b(g_consonant, 1489, 1520))) { 1257 break lab48; 1258 } 1259 break lab43; 1260 } 1261 cursor = limit - v_37; 1262 if (!(in_grouping_b(g_vowel, 1488, 1522))) { 1263 break lab42; 1264 } 1265 } 1266 cursor = limit - v_36; 1267 slice_del(); 1268 break lab41; 1269 } 1270 cursor = limit - v_35; 1271 } 1272 { 1273 int c = cursor - -5; 1274 if (limit_backward > c || c > limit) { 1275 break lab41; 1276 } 1277 cursor = c; 1278 } 1279 if (!(eq_s_b("\u05E0\u05D3\u05D9\u05E7"))) { 1280 break lab41; 1281 } 1282 slice_del(); 1283 break; 1284 } 1285 } 1286 cursor = limit - v_34; 1287 int v_38 = limit - cursor; 1288 lab49: 1289 { 1290 while (true) { 1291 int v_39 = limit - cursor; 1292 lab50: 1293 { 1294 golab51: 1295 while (true) { 1296 int v_40 = limit - cursor; 1297 lab52: 1298 { 1299 ket = cursor; 1300 lab53: 1301 { 1302 int v_41 = limit - cursor; 1303 lab54: 1304 { 1305 if (!(eq_s_b("GE"))) { 1306 break lab54; 1307 } 1308 break lab53; 1309 } 1310 cursor = limit - v_41; 1311 if (!(eq_s_b("TSU"))) { 1312 break lab52; 1313 } 1314 } 1315 bra = cursor; 1316 slice_del(); 1317 cursor = limit - v_40; 1318 break golab51; 1319 } 1320 cursor = limit - v_40; 1321 if (cursor <= limit_backward) { 1322 break lab50; 1323 } 1324 cursor--; 1325 } 1326 continue; 1327 } 1328 cursor = limit - v_39; 1329 break; 1330 } 1331 } 1332 cursor = limit - v_38; 1333 return true; 1334 } 1335 1336 @Override stem()1337 public boolean stem() { 1338 r_prelude(); 1339 int v_2 = cursor; 1340 r_mark_regions(); 1341 cursor = v_2; 1342 limit_backward = cursor; 1343 cursor = limit; 1344 r_standard_suffix(); 1345 cursor = limit_backward; 1346 return true; 1347 } 1348 1349 @Override equals(Object o)1350 public boolean equals(Object o) { 1351 return o instanceof YiddishStemmer; 1352 } 1353 1354 @Override hashCode()1355 public int hashCode() { 1356 return YiddishStemmer.class.getName().hashCode(); 1357 } 1358 } 1359