| // Generated by Snowball 2.0.0 - https://snowballstem.org/ |
| |
| package org.tartarus.snowball.ext; |
| |
| import org.tartarus.snowball.Among; |
| |
| /** |
| * This class implements the stemming algorithm defined by a snowball script. |
| * <p> |
| * Generated by Snowball 2.0.0 - https://snowballstem.org/ |
| * </p> |
| */ |
| @SuppressWarnings("unused") |
| public class LithuanianStemmer extends org.tartarus.snowball.SnowballStemmer { |
| |
| private static final long serialVersionUID = 1L; |
| private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup(); |
| |
| private final static Among a_0[] = { |
| new Among("a", -1, -1), |
| new Among("ia", 0, -1), |
| new Among("eria", 1, -1), |
| new Among("osna", 0, -1), |
| new Among("iosna", 3, -1), |
| new Among("uosna", 3, -1), |
| new Among("iuosna", 5, -1), |
| new Among("ysna", 0, -1), |
| new Among("\u0117sna", 0, -1), |
| new Among("e", -1, -1), |
| new Among("ie", 9, -1), |
| new Among("enie", 10, -1), |
| new Among("erie", 10, -1), |
| new Among("oje", 9, -1), |
| new Among("ioje", 13, -1), |
| new Among("uje", 9, -1), |
| new Among("iuje", 15, -1), |
| new Among("yje", 9, -1), |
| new Among("enyje", 17, -1), |
| new Among("eryje", 17, -1), |
| new Among("\u0117je", 9, -1), |
| new Among("ame", 9, -1), |
| new Among("iame", 21, -1), |
| new Among("sime", 9, -1), |
| new Among("ome", 9, -1), |
| new Among("\u0117me", 9, -1), |
| new Among("tum\u0117me", 25, -1), |
| new Among("ose", 9, -1), |
| new Among("iose", 27, -1), |
| new Among("uose", 27, -1), |
| new Among("iuose", 29, -1), |
| new Among("yse", 9, -1), |
| new Among("enyse", 31, -1), |
| new Among("eryse", 31, -1), |
| new Among("\u0117se", 9, -1), |
| new Among("ate", 9, -1), |
| new Among("iate", 35, -1), |
| new Among("ite", 9, -1), |
| new Among("kite", 37, -1), |
| new Among("site", 37, -1), |
| new Among("ote", 9, -1), |
| new Among("tute", 9, -1), |
| new Among("\u0117te", 9, -1), |
| new Among("tum\u0117te", 42, -1), |
| new Among("i", -1, -1), |
| new Among("ai", 44, -1), |
| new Among("iai", 45, -1), |
| new Among("eriai", 46, -1), |
| new Among("ei", 44, -1), |
| new Among("tumei", 48, -1), |
| new Among("ki", 44, -1), |
| new Among("imi", 44, -1), |
| new Among("erimi", 51, -1), |
| new Among("umi", 44, -1), |
| new Among("iumi", 53, -1), |
| new Among("si", 44, -1), |
| new Among("asi", 55, -1), |
| new Among("iasi", 56, -1), |
| new Among("esi", 55, -1), |
| new Among("iesi", 58, -1), |
| new Among("siesi", 59, -1), |
| new Among("isi", 55, -1), |
| new Among("aisi", 61, -1), |
| new Among("eisi", 61, -1), |
| new Among("tumeisi", 63, -1), |
| new Among("uisi", 61, -1), |
| new Among("osi", 55, -1), |
| new Among("\u0117josi", 66, -1), |
| new Among("uosi", 66, -1), |
| new Among("iuosi", 68, -1), |
| new Among("siuosi", 69, -1), |
| new Among("usi", 55, -1), |
| new Among("ausi", 71, -1), |
| new Among("\u010Diausi", 72, -1), |
| new Among("\u0105si", 55, -1), |
| new Among("\u0117si", 55, -1), |
| new Among("\u0173si", 55, -1), |
| new Among("t\u0173si", 76, -1), |
| new Among("ti", 44, -1), |
| new Among("enti", 78, -1), |
| new Among("inti", 78, -1), |
| new Among("oti", 78, -1), |
| new Among("ioti", 81, -1), |
| new Among("uoti", 81, -1), |
| new Among("iuoti", 83, -1), |
| new Among("auti", 78, -1), |
| new Among("iauti", 85, -1), |
| new Among("yti", 78, -1), |
| new Among("\u0117ti", 78, -1), |
| new Among("tel\u0117ti", 88, -1), |
| new Among("in\u0117ti", 88, -1), |
| new Among("ter\u0117ti", 88, -1), |
| new Among("ui", 44, -1), |
| new Among("iui", 92, -1), |
| new Among("eniui", 93, -1), |
| new Among("oj", -1, -1), |
| new Among("\u0117j", -1, -1), |
| new Among("k", -1, -1), |
| new Among("am", -1, -1), |
| new Among("iam", 98, -1), |
| new Among("iem", -1, -1), |
| new Among("im", -1, -1), |
| new Among("sim", 101, -1), |
| new Among("om", -1, -1), |
| new Among("tum", -1, -1), |
| new Among("\u0117m", -1, -1), |
| new Among("tum\u0117m", 105, -1), |
| new Among("an", -1, -1), |
| new Among("on", -1, -1), |
| new Among("ion", 108, -1), |
| new Among("un", -1, -1), |
| new Among("iun", 110, -1), |
| new Among("\u0117n", -1, -1), |
| new Among("o", -1, -1), |
| new Among("io", 113, -1), |
| new Among("enio", 114, -1), |
| new Among("\u0117jo", 113, -1), |
| new Among("uo", 113, -1), |
| new Among("s", -1, -1), |
| new Among("as", 118, -1), |
| new Among("ias", 119, -1), |
| new Among("es", 118, -1), |
| new Among("ies", 121, -1), |
| new Among("is", 118, -1), |
| new Among("ais", 123, -1), |
| new Among("iais", 124, -1), |
| new Among("tumeis", 123, -1), |
| new Among("imis", 123, -1), |
| new Among("enimis", 127, -1), |
| new Among("omis", 123, -1), |
| new Among("iomis", 129, -1), |
| new Among("umis", 123, -1), |
| new Among("\u0117mis", 123, -1), |
| new Among("enis", 123, -1), |
| new Among("asis", 123, -1), |
| new Among("ysis", 123, -1), |
| new Among("ams", 118, -1), |
| new Among("iams", 136, -1), |
| new Among("iems", 118, -1), |
| new Among("ims", 118, -1), |
| new Among("enims", 139, -1), |
| new Among("erims", 139, -1), |
| new Among("oms", 118, -1), |
| new Among("ioms", 142, -1), |
| new Among("ums", 118, -1), |
| new Among("\u0117ms", 118, -1), |
| new Among("ens", 118, -1), |
| new Among("os", 118, -1), |
| new Among("ios", 147, -1), |
| new Among("uos", 147, -1), |
| new Among("iuos", 149, -1), |
| new Among("ers", 118, -1), |
| new Among("us", 118, -1), |
| new Among("aus", 152, -1), |
| new Among("iaus", 153, -1), |
| new Among("ius", 152, -1), |
| new Among("ys", 118, -1), |
| new Among("enys", 156, -1), |
| new Among("erys", 156, -1), |
| new Among("\u0105s", 118, -1), |
| new Among("i\u0105s", 159, -1), |
| new Among("\u0117s", 118, -1), |
| new Among("am\u0117s", 161, -1), |
| new Among("iam\u0117s", 162, -1), |
| new Among("im\u0117s", 161, -1), |
| new Among("kim\u0117s", 164, -1), |
| new Among("sim\u0117s", 164, -1), |
| new Among("om\u0117s", 161, -1), |
| new Among("\u0117m\u0117s", 161, -1), |
| new Among("tum\u0117m\u0117s", 168, -1), |
| new Among("at\u0117s", 161, -1), |
| new Among("iat\u0117s", 170, -1), |
| new Among("sit\u0117s", 161, -1), |
| new Among("ot\u0117s", 161, -1), |
| new Among("\u0117t\u0117s", 161, -1), |
| new Among("tum\u0117t\u0117s", 174, -1), |
| new Among("\u012Fs", 118, -1), |
| new Among("\u016Bs", 118, -1), |
| new Among("t\u0173s", 118, -1), |
| new Among("at", -1, -1), |
| new Among("iat", 179, -1), |
| new Among("it", -1, -1), |
| new Among("sit", 181, -1), |
| new Among("ot", -1, -1), |
| new Among("\u0117t", -1, -1), |
| new Among("tum\u0117t", 184, -1), |
| new Among("u", -1, -1), |
| new Among("au", 186, -1), |
| new Among("iau", 187, -1), |
| new Among("\u010Diau", 188, -1), |
| new Among("iu", 186, -1), |
| new Among("eniu", 190, -1), |
| new Among("siu", 190, -1), |
| new Among("y", -1, -1), |
| new Among("\u0105", -1, -1), |
| new Among("i\u0105", 194, -1), |
| new Among("\u0117", -1, -1), |
| new Among("\u0119", -1, -1), |
| new Among("\u012F", -1, -1), |
| new Among("en\u012F", 198, -1), |
| new Among("er\u012F", 198, -1), |
| new Among("\u0173", -1, -1), |
| new Among("i\u0173", 201, -1), |
| new Among("er\u0173", 201, -1) |
| }; |
| |
| private final static Among a_1[] = { |
| new Among("ing", -1, -1), |
| new Among("aj", -1, -1), |
| new Among("iaj", 1, -1), |
| new Among("iej", -1, -1), |
| new Among("oj", -1, -1), |
| new Among("ioj", 4, -1), |
| new Among("uoj", 4, -1), |
| new Among("iuoj", 6, -1), |
| new Among("auj", -1, -1), |
| new Among("\u0105j", -1, -1), |
| new Among("i\u0105j", 9, -1), |
| new Among("\u0117j", -1, -1), |
| new Among("\u0173j", -1, -1), |
| new Among("i\u0173j", 12, -1), |
| new Among("ok", -1, -1), |
| new Among("iok", 14, -1), |
| new Among("iuk", -1, -1), |
| new Among("uliuk", 16, -1), |
| new Among("u\u010Diuk", 16, -1), |
| new Among("i\u0161k", -1, -1), |
| new Among("iul", -1, -1), |
| new Among("yl", -1, -1), |
| new Among("\u0117l", -1, -1), |
| new Among("am", -1, -1), |
| new Among("dam", 23, -1), |
| new Among("jam", 23, -1), |
| new Among("zgan", -1, -1), |
| new Among("ain", -1, -1), |
| new Among("esn", -1, -1), |
| new Among("op", -1, -1), |
| new Among("iop", 29, -1), |
| new Among("ias", -1, -1), |
| new Among("ies", -1, -1), |
| new Among("ais", -1, -1), |
| new Among("iais", 33, -1), |
| new Among("os", -1, -1), |
| new Among("ios", 35, -1), |
| new Among("uos", 35, -1), |
| new Among("iuos", 37, -1), |
| new Among("aus", -1, -1), |
| new Among("iaus", 39, -1), |
| new Among("\u0105s", -1, -1), |
| new Among("i\u0105s", 41, -1), |
| new Among("\u0119s", -1, -1), |
| new Among("ut\u0117ait", -1, -1), |
| new Among("ant", -1, -1), |
| new Among("iant", 45, -1), |
| new Among("siant", 46, -1), |
| new Among("int", -1, -1), |
| new Among("ot", -1, -1), |
| new Among("uot", 49, -1), |
| new Among("iuot", 50, -1), |
| new Among("yt", -1, -1), |
| new Among("\u0117t", -1, -1), |
| new Among("yk\u0161t", -1, -1), |
| new Among("iau", -1, -1), |
| new Among("dav", -1, -1), |
| new Among("sv", -1, -1), |
| new Among("\u0161v", -1, -1), |
| new Among("yk\u0161\u010D", -1, -1), |
| new Among("\u0119", -1, -1), |
| new Among("\u0117j\u0119", 60, -1) |
| }; |
| |
| private final static Among a_2[] = { |
| new Among("ojime", -1, 7), |
| new Among("\u0117jime", -1, 3), |
| new Among("avime", -1, 6), |
| new Among("okate", -1, 8), |
| new Among("aite", -1, 1), |
| new Among("uote", -1, 2), |
| new Among("asius", -1, 5), |
| new Among("okat\u0117s", -1, 8), |
| new Among("ait\u0117s", -1, 1), |
| new Among("uot\u0117s", -1, 2), |
| new Among("esiu", -1, 4) |
| }; |
| |
| private final static Among a_3[] = { |
| new Among("\u010D", -1, 1), |
| new Among("d\u017E", -1, 2) |
| }; |
| |
| private final static Among a_4[] = { |
| new Among("gd", -1, 1) |
| }; |
| |
| private static final char g_v[] = {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, 0, 0, 0, 4, 4 }; |
| |
| private int I_p1; |
| |
| |
| private boolean r_R1() { |
| if (!(I_p1 <= cursor)) |
| { |
| return false; |
| } |
| return true; |
| } |
| |
| private boolean r_step1() { |
| if (cursor < I_p1) |
| { |
| return false; |
| } |
| int v_2 = limit_backward; |
| limit_backward = I_p1; |
| ket = cursor; |
| if (find_among_b(a_0) == 0) |
| { |
| limit_backward = v_2; |
| return false; |
| } |
| bra = cursor; |
| limit_backward = v_2; |
| if (!r_R1()) |
| { |
| return false; |
| } |
| slice_del(); |
| return true; |
| } |
| |
| private boolean r_step2() { |
| while(true) |
| { |
| int v_1 = limit - cursor; |
| lab0: { |
| if (cursor < I_p1) |
| { |
| break lab0; |
| } |
| int v_3 = limit_backward; |
| limit_backward = I_p1; |
| ket = cursor; |
| if (find_among_b(a_1) == 0) |
| { |
| limit_backward = v_3; |
| break lab0; |
| } |
| bra = cursor; |
| limit_backward = v_3; |
| slice_del(); |
| continue; |
| } |
| cursor = limit - v_1; |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_fix_conflicts() { |
| int among_var; |
| ket = cursor; |
| among_var = find_among_b(a_2); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| bra = cursor; |
| switch (among_var) { |
| case 1: |
| slice_from("ait\u0117"); |
| break; |
| case 2: |
| slice_from("uot\u0117"); |
| break; |
| case 3: |
| slice_from("\u0117jimas"); |
| break; |
| case 4: |
| slice_from("esys"); |
| break; |
| case 5: |
| slice_from("asys"); |
| break; |
| case 6: |
| slice_from("avimas"); |
| break; |
| case 7: |
| slice_from("ojimas"); |
| break; |
| case 8: |
| slice_from("okat\u0117"); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_fix_chdz() { |
| int among_var; |
| ket = cursor; |
| among_var = find_among_b(a_3); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| bra = cursor; |
| switch (among_var) { |
| case 1: |
| slice_from("t"); |
| break; |
| case 2: |
| slice_from("d"); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_fix_gd() { |
| ket = cursor; |
| if (find_among_b(a_4) == 0) |
| { |
| return false; |
| } |
| bra = cursor; |
| slice_from("g"); |
| return true; |
| } |
| |
| public boolean stem() { |
| I_p1 = limit; |
| int v_1 = cursor; |
| lab0: { |
| int v_2 = cursor; |
| lab1: { |
| int v_3 = cursor; |
| if (!(eq_s("a"))) |
| { |
| cursor = v_2; |
| break lab1; |
| } |
| cursor = v_3; |
| if (!(limit > 6)) |
| { |
| cursor = v_2; |
| break lab1; |
| } |
| { |
| int c = cursor + 1; |
| if (0 > c || c > limit) |
| { |
| cursor = v_2; |
| break lab1; |
| } |
| cursor = c; |
| } |
| } |
| golab2: while(true) |
| { |
| lab3: { |
| if (!(in_grouping(g_v, 97, 371))) |
| { |
| break lab3; |
| } |
| break golab2; |
| } |
| if (cursor >= limit) |
| { |
| break lab0; |
| } |
| cursor++; |
| } |
| golab4: while(true) |
| { |
| lab5: { |
| if (!(out_grouping(g_v, 97, 371))) |
| { |
| break lab5; |
| } |
| break golab4; |
| } |
| if (cursor >= limit) |
| { |
| break lab0; |
| } |
| cursor++; |
| } |
| I_p1 = cursor; |
| } |
| cursor = v_1; |
| limit_backward = cursor; |
| cursor = limit; |
| int v_6 = limit - cursor; |
| r_fix_conflicts(); |
| cursor = limit - v_6; |
| int v_7 = limit - cursor; |
| r_step1(); |
| cursor = limit - v_7; |
| int v_8 = limit - cursor; |
| r_fix_chdz(); |
| cursor = limit - v_8; |
| int v_9 = limit - cursor; |
| r_step2(); |
| cursor = limit - v_9; |
| int v_10 = limit - cursor; |
| r_fix_chdz(); |
| cursor = limit - v_10; |
| int v_11 = limit - cursor; |
| r_fix_gd(); |
| cursor = limit - v_11; |
| cursor = limit_backward; |
| return true; |
| } |
| |
| @Override |
| public boolean equals( Object o ) { |
| return o instanceof LithuanianStemmer; |
| } |
| |
| @Override |
| public int hashCode() { |
| return LithuanianStemmer.class.getName().hashCode(); |
| } |
| |
| |
| |
| } |
| |