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 LithuanianStemmer 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("a", -1, -1), 21 new Among("ia", 0, -1), 22 new Among("eria", 1, -1), 23 new Among("osna", 0, -1), 24 new Among("iosna", 3, -1), 25 new Among("uosna", 3, -1), 26 new Among("iuosna", 5, -1), 27 new Among("ysna", 0, -1), 28 new Among("\u0117sna", 0, -1), 29 new Among("e", -1, -1), 30 new Among("ie", 9, -1), 31 new Among("enie", 10, -1), 32 new Among("erie", 10, -1), 33 new Among("oje", 9, -1), 34 new Among("ioje", 13, -1), 35 new Among("uje", 9, -1), 36 new Among("iuje", 15, -1), 37 new Among("yje", 9, -1), 38 new Among("enyje", 17, -1), 39 new Among("eryje", 17, -1), 40 new Among("\u0117je", 9, -1), 41 new Among("ame", 9, -1), 42 new Among("iame", 21, -1), 43 new Among("sime", 9, -1), 44 new Among("ome", 9, -1), 45 new Among("\u0117me", 9, -1), 46 new Among("tum\u0117me", 25, -1), 47 new Among("ose", 9, -1), 48 new Among("iose", 27, -1), 49 new Among("uose", 27, -1), 50 new Among("iuose", 29, -1), 51 new Among("yse", 9, -1), 52 new Among("enyse", 31, -1), 53 new Among("eryse", 31, -1), 54 new Among("\u0117se", 9, -1), 55 new Among("ate", 9, -1), 56 new Among("iate", 35, -1), 57 new Among("ite", 9, -1), 58 new Among("kite", 37, -1), 59 new Among("site", 37, -1), 60 new Among("ote", 9, -1), 61 new Among("tute", 9, -1), 62 new Among("\u0117te", 9, -1), 63 new Among("tum\u0117te", 42, -1), 64 new Among("i", -1, -1), 65 new Among("ai", 44, -1), 66 new Among("iai", 45, -1), 67 new Among("eriai", 46, -1), 68 new Among("ei", 44, -1), 69 new Among("tumei", 48, -1), 70 new Among("ki", 44, -1), 71 new Among("imi", 44, -1), 72 new Among("erimi", 51, -1), 73 new Among("umi", 44, -1), 74 new Among("iumi", 53, -1), 75 new Among("si", 44, -1), 76 new Among("asi", 55, -1), 77 new Among("iasi", 56, -1), 78 new Among("esi", 55, -1), 79 new Among("iesi", 58, -1), 80 new Among("siesi", 59, -1), 81 new Among("isi", 55, -1), 82 new Among("aisi", 61, -1), 83 new Among("eisi", 61, -1), 84 new Among("tumeisi", 63, -1), 85 new Among("uisi", 61, -1), 86 new Among("osi", 55, -1), 87 new Among("\u0117josi", 66, -1), 88 new Among("uosi", 66, -1), 89 new Among("iuosi", 68, -1), 90 new Among("siuosi", 69, -1), 91 new Among("usi", 55, -1), 92 new Among("ausi", 71, -1), 93 new Among("\u010Diausi", 72, -1), 94 new Among("\u0105si", 55, -1), 95 new Among("\u0117si", 55, -1), 96 new Among("\u0173si", 55, -1), 97 new Among("t\u0173si", 76, -1), 98 new Among("ti", 44, -1), 99 new Among("enti", 78, -1), 100 new Among("inti", 78, -1), 101 new Among("oti", 78, -1), 102 new Among("ioti", 81, -1), 103 new Among("uoti", 81, -1), 104 new Among("iuoti", 83, -1), 105 new Among("auti", 78, -1), 106 new Among("iauti", 85, -1), 107 new Among("yti", 78, -1), 108 new Among("\u0117ti", 78, -1), 109 new Among("tel\u0117ti", 88, -1), 110 new Among("in\u0117ti", 88, -1), 111 new Among("ter\u0117ti", 88, -1), 112 new Among("ui", 44, -1), 113 new Among("iui", 92, -1), 114 new Among("eniui", 93, -1), 115 new Among("oj", -1, -1), 116 new Among("\u0117j", -1, -1), 117 new Among("k", -1, -1), 118 new Among("am", -1, -1), 119 new Among("iam", 98, -1), 120 new Among("iem", -1, -1), 121 new Among("im", -1, -1), 122 new Among("sim", 101, -1), 123 new Among("om", -1, -1), 124 new Among("tum", -1, -1), 125 new Among("\u0117m", -1, -1), 126 new Among("tum\u0117m", 105, -1), 127 new Among("an", -1, -1), 128 new Among("on", -1, -1), 129 new Among("ion", 108, -1), 130 new Among("un", -1, -1), 131 new Among("iun", 110, -1), 132 new Among("\u0117n", -1, -1), 133 new Among("o", -1, -1), 134 new Among("io", 113, -1), 135 new Among("enio", 114, -1), 136 new Among("\u0117jo", 113, -1), 137 new Among("uo", 113, -1), 138 new Among("s", -1, -1), 139 new Among("as", 118, -1), 140 new Among("ias", 119, -1), 141 new Among("es", 118, -1), 142 new Among("ies", 121, -1), 143 new Among("is", 118, -1), 144 new Among("ais", 123, -1), 145 new Among("iais", 124, -1), 146 new Among("tumeis", 123, -1), 147 new Among("imis", 123, -1), 148 new Among("enimis", 127, -1), 149 new Among("omis", 123, -1), 150 new Among("iomis", 129, -1), 151 new Among("umis", 123, -1), 152 new Among("\u0117mis", 123, -1), 153 new Among("enis", 123, -1), 154 new Among("asis", 123, -1), 155 new Among("ysis", 123, -1), 156 new Among("ams", 118, -1), 157 new Among("iams", 136, -1), 158 new Among("iems", 118, -1), 159 new Among("ims", 118, -1), 160 new Among("enims", 139, -1), 161 new Among("erims", 139, -1), 162 new Among("oms", 118, -1), 163 new Among("ioms", 142, -1), 164 new Among("ums", 118, -1), 165 new Among("\u0117ms", 118, -1), 166 new Among("ens", 118, -1), 167 new Among("os", 118, -1), 168 new Among("ios", 147, -1), 169 new Among("uos", 147, -1), 170 new Among("iuos", 149, -1), 171 new Among("ers", 118, -1), 172 new Among("us", 118, -1), 173 new Among("aus", 152, -1), 174 new Among("iaus", 153, -1), 175 new Among("ius", 152, -1), 176 new Among("ys", 118, -1), 177 new Among("enys", 156, -1), 178 new Among("erys", 156, -1), 179 new Among("\u0105s", 118, -1), 180 new Among("i\u0105s", 159, -1), 181 new Among("\u0117s", 118, -1), 182 new Among("am\u0117s", 161, -1), 183 new Among("iam\u0117s", 162, -1), 184 new Among("im\u0117s", 161, -1), 185 new Among("kim\u0117s", 164, -1), 186 new Among("sim\u0117s", 164, -1), 187 new Among("om\u0117s", 161, -1), 188 new Among("\u0117m\u0117s", 161, -1), 189 new Among("tum\u0117m\u0117s", 168, -1), 190 new Among("at\u0117s", 161, -1), 191 new Among("iat\u0117s", 170, -1), 192 new Among("sit\u0117s", 161, -1), 193 new Among("ot\u0117s", 161, -1), 194 new Among("\u0117t\u0117s", 161, -1), 195 new Among("tum\u0117t\u0117s", 174, -1), 196 new Among("\u012Fs", 118, -1), 197 new Among("\u016Bs", 118, -1), 198 new Among("t\u0173s", 118, -1), 199 new Among("at", -1, -1), 200 new Among("iat", 179, -1), 201 new Among("it", -1, -1), 202 new Among("sit", 181, -1), 203 new Among("ot", -1, -1), 204 new Among("\u0117t", -1, -1), 205 new Among("tum\u0117t", 184, -1), 206 new Among("u", -1, -1), 207 new Among("au", 186, -1), 208 new Among("iau", 187, -1), 209 new Among("\u010Diau", 188, -1), 210 new Among("iu", 186, -1), 211 new Among("eniu", 190, -1), 212 new Among("siu", 190, -1), 213 new Among("y", -1, -1), 214 new Among("\u0105", -1, -1), 215 new Among("i\u0105", 194, -1), 216 new Among("\u0117", -1, -1), 217 new Among("\u0119", -1, -1), 218 new Among("\u012F", -1, -1), 219 new Among("en\u012F", 198, -1), 220 new Among("er\u012F", 198, -1), 221 new Among("\u0173", -1, -1), 222 new Among("i\u0173", 201, -1), 223 new Among("er\u0173", 201, -1) 224 }; 225 226 private static final Among a_1[] = { 227 new Among("ing", -1, -1), 228 new Among("aj", -1, -1), 229 new Among("iaj", 1, -1), 230 new Among("iej", -1, -1), 231 new Among("oj", -1, -1), 232 new Among("ioj", 4, -1), 233 new Among("uoj", 4, -1), 234 new Among("iuoj", 6, -1), 235 new Among("auj", -1, -1), 236 new Among("\u0105j", -1, -1), 237 new Among("i\u0105j", 9, -1), 238 new Among("\u0117j", -1, -1), 239 new Among("\u0173j", -1, -1), 240 new Among("i\u0173j", 12, -1), 241 new Among("ok", -1, -1), 242 new Among("iok", 14, -1), 243 new Among("iuk", -1, -1), 244 new Among("uliuk", 16, -1), 245 new Among("u\u010Diuk", 16, -1), 246 new Among("i\u0161k", -1, -1), 247 new Among("iul", -1, -1), 248 new Among("yl", -1, -1), 249 new Among("\u0117l", -1, -1), 250 new Among("am", -1, -1), 251 new Among("dam", 23, -1), 252 new Among("jam", 23, -1), 253 new Among("zgan", -1, -1), 254 new Among("ain", -1, -1), 255 new Among("esn", -1, -1), 256 new Among("op", -1, -1), 257 new Among("iop", 29, -1), 258 new Among("ias", -1, -1), 259 new Among("ies", -1, -1), 260 new Among("ais", -1, -1), 261 new Among("iais", 33, -1), 262 new Among("os", -1, -1), 263 new Among("ios", 35, -1), 264 new Among("uos", 35, -1), 265 new Among("iuos", 37, -1), 266 new Among("aus", -1, -1), 267 new Among("iaus", 39, -1), 268 new Among("\u0105s", -1, -1), 269 new Among("i\u0105s", 41, -1), 270 new Among("\u0119s", -1, -1), 271 new Among("ut\u0117ait", -1, -1), 272 new Among("ant", -1, -1), 273 new Among("iant", 45, -1), 274 new Among("siant", 46, -1), 275 new Among("int", -1, -1), 276 new Among("ot", -1, -1), 277 new Among("uot", 49, -1), 278 new Among("iuot", 50, -1), 279 new Among("yt", -1, -1), 280 new Among("\u0117t", -1, -1), 281 new Among("yk\u0161t", -1, -1), 282 new Among("iau", -1, -1), 283 new Among("dav", -1, -1), 284 new Among("sv", -1, -1), 285 new Among("\u0161v", -1, -1), 286 new Among("yk\u0161\u010D", -1, -1), 287 new Among("\u0119", -1, -1), 288 new Among("\u0117j\u0119", 60, -1) 289 }; 290 291 private static final Among a_2[] = { 292 new Among("ojime", -1, 7), 293 new Among("\u0117jime", -1, 3), 294 new Among("avime", -1, 6), 295 new Among("okate", -1, 8), 296 new Among("aite", -1, 1), 297 new Among("uote", -1, 2), 298 new Among("asius", -1, 5), 299 new Among("okat\u0117s", -1, 8), 300 new Among("ait\u0117s", -1, 1), 301 new Among("uot\u0117s", -1, 2), 302 new Among("esiu", -1, 4) 303 }; 304 305 private static final Among a_3[] = {new Among("\u010D", -1, 1), new Among("d\u017E", -1, 2)}; 306 307 private static final Among a_4[] = {new Among("gd", -1, 1)}; 308 309 private static final char g_v[] = { 310 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 64, 1, 0, 64, 0, 0, 0, 0, 311 0, 0, 0, 4, 4 312 }; 313 314 private int I_p1; 315 r_R1()316 private boolean r_R1() { 317 if (!(I_p1 <= cursor)) { 318 return false; 319 } 320 return true; 321 } 322 r_step1()323 private boolean r_step1() { 324 if (cursor < I_p1) { 325 return false; 326 } 327 int v_2 = limit_backward; 328 limit_backward = I_p1; 329 ket = cursor; 330 if (find_among_b(a_0) == 0) { 331 limit_backward = v_2; 332 return false; 333 } 334 bra = cursor; 335 limit_backward = v_2; 336 if (!r_R1()) { 337 return false; 338 } 339 slice_del(); 340 return true; 341 } 342 r_step2()343 private boolean r_step2() { 344 while (true) { 345 int v_1 = limit - cursor; 346 lab0: 347 { 348 if (cursor < I_p1) { 349 break lab0; 350 } 351 int v_3 = limit_backward; 352 limit_backward = I_p1; 353 ket = cursor; 354 if (find_among_b(a_1) == 0) { 355 limit_backward = v_3; 356 break lab0; 357 } 358 bra = cursor; 359 limit_backward = v_3; 360 slice_del(); 361 continue; 362 } 363 cursor = limit - v_1; 364 break; 365 } 366 return true; 367 } 368 r_fix_conflicts()369 private boolean r_fix_conflicts() { 370 int among_var; 371 ket = cursor; 372 among_var = find_among_b(a_2); 373 if (among_var == 0) { 374 return false; 375 } 376 bra = cursor; 377 switch (among_var) { 378 case 1: 379 slice_from("ait\u0117"); 380 break; 381 case 2: 382 slice_from("uot\u0117"); 383 break; 384 case 3: 385 slice_from("\u0117jimas"); 386 break; 387 case 4: 388 slice_from("esys"); 389 break; 390 case 5: 391 slice_from("asys"); 392 break; 393 case 6: 394 slice_from("avimas"); 395 break; 396 case 7: 397 slice_from("ojimas"); 398 break; 399 case 8: 400 slice_from("okat\u0117"); 401 break; 402 } 403 return true; 404 } 405 r_fix_chdz()406 private boolean r_fix_chdz() { 407 int among_var; 408 ket = cursor; 409 among_var = find_among_b(a_3); 410 if (among_var == 0) { 411 return false; 412 } 413 bra = cursor; 414 switch (among_var) { 415 case 1: 416 slice_from("t"); 417 break; 418 case 2: 419 slice_from("d"); 420 break; 421 } 422 return true; 423 } 424 r_fix_gd()425 private boolean r_fix_gd() { 426 ket = cursor; 427 if (find_among_b(a_4) == 0) { 428 return false; 429 } 430 bra = cursor; 431 slice_from("g"); 432 return true; 433 } 434 435 @Override stem()436 public boolean stem() { 437 I_p1 = limit; 438 int v_1 = cursor; 439 lab0: 440 { 441 int v_2 = cursor; 442 lab1: 443 { 444 int v_3 = cursor; 445 if (!(eq_s("a"))) { 446 cursor = v_2; 447 break lab1; 448 } 449 cursor = v_3; 450 if (!(limit > 6)) { 451 cursor = v_2; 452 break lab1; 453 } 454 { 455 int c = cursor + 1; 456 if (0 > c || c > limit) { 457 cursor = v_2; 458 break lab1; 459 } 460 cursor = c; 461 } 462 } 463 golab2: 464 while (true) { 465 lab3: 466 { 467 if (!(in_grouping(g_v, 97, 371))) { 468 break lab3; 469 } 470 break golab2; 471 } 472 if (cursor >= limit) { 473 break lab0; 474 } 475 cursor++; 476 } 477 golab4: 478 while (true) { 479 lab5: 480 { 481 if (!(out_grouping(g_v, 97, 371))) { 482 break lab5; 483 } 484 break golab4; 485 } 486 if (cursor >= limit) { 487 break lab0; 488 } 489 cursor++; 490 } 491 I_p1 = cursor; 492 } 493 cursor = v_1; 494 limit_backward = cursor; 495 cursor = limit; 496 int v_6 = limit - cursor; 497 r_fix_conflicts(); 498 cursor = limit - v_6; 499 int v_7 = limit - cursor; 500 r_step1(); 501 cursor = limit - v_7; 502 int v_8 = limit - cursor; 503 r_fix_chdz(); 504 cursor = limit - v_8; 505 int v_9 = limit - cursor; 506 r_step2(); 507 cursor = limit - v_9; 508 int v_10 = limit - cursor; 509 r_fix_chdz(); 510 cursor = limit - v_10; 511 int v_11 = limit - cursor; 512 r_fix_gd(); 513 cursor = limit - v_11; 514 cursor = limit_backward; 515 return true; 516 } 517 518 @Override equals(Object o)519 public boolean equals(Object o) { 520 return o instanceof LithuanianStemmer; 521 } 522 523 @Override hashCode()524 public int hashCode() { 525 return LithuanianStemmer.class.getName().hashCode(); 526 } 527 } 528