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