xref: /Lucene/lucene/analysis/common/src/java/org/tartarus/snowball/ext/LithuanianStemmer.java (revision 0b1d8ccba6cf394f707a09217813a25ec1504e50)
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