xref: /Lucene/lucene/analysis/common/src/java/org/tartarus/snowball/ext/LovinsStemmer.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 LovinsStemmer 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("d", -1, -1),
21     new Among("f", -1, -1),
22     new Among("ph", -1, -1),
23     new Among("th", -1, -1),
24     new Among("l", -1, -1),
25     new Among("er", -1, -1),
26     new Among("or", -1, -1),
27     new Among("es", -1, -1),
28     new Among("t", -1, -1)
29   };
30 
31   private static final Among a_1[] = {
32     new Among("s'", -1, 1, "r_A", methodObject),
33     new Among("a", -1, 1, "r_A", methodObject),
34     new Among("ia", 1, 1, "r_A", methodObject),
35     new Among("ata", 1, 1, "r_A", methodObject),
36     new Among("ic", -1, 1, "r_A", methodObject),
37     new Among("aic", 4, 1, "r_A", methodObject),
38     new Among("allic", 4, 1, "r_BB", methodObject),
39     new Among("aric", 4, 1, "r_A", methodObject),
40     new Among("atic", 4, 1, "r_B", methodObject),
41     new Among("itic", 4, 1, "r_H", methodObject),
42     new Among("antic", 4, 1, "r_C", methodObject),
43     new Among("istic", 4, 1, "r_A", methodObject),
44     new Among("alistic", 11, 1, "r_B", methodObject),
45     new Among("aristic", 11, 1, "r_A", methodObject),
46     new Among("ivistic", 11, 1, "r_A", methodObject),
47     new Among("ed", -1, 1, "r_E", methodObject),
48     new Among("anced", 15, 1, "r_B", methodObject),
49     new Among("enced", 15, 1, "r_A", methodObject),
50     new Among("ished", 15, 1, "r_A", methodObject),
51     new Among("ied", 15, 1, "r_A", methodObject),
52     new Among("ened", 15, 1, "r_E", methodObject),
53     new Among("ioned", 15, 1, "r_A", methodObject),
54     new Among("ated", 15, 1, "r_I", methodObject),
55     new Among("ented", 15, 1, "r_C", methodObject),
56     new Among("ized", 15, 1, "r_F", methodObject),
57     new Among("arized", 24, 1, "r_A", methodObject),
58     new Among("oid", -1, 1, "r_A", methodObject),
59     new Among("aroid", 26, 1, "r_A", methodObject),
60     new Among("hood", -1, 1, "r_A", methodObject),
61     new Among("ehood", 28, 1, "r_A", methodObject),
62     new Among("ihood", 28, 1, "r_A", methodObject),
63     new Among("elihood", 30, 1, "r_E", methodObject),
64     new Among("ward", -1, 1, "r_A", methodObject),
65     new Among("e", -1, 1, "r_A", methodObject),
66     new Among("ae", 33, 1, "r_A", methodObject),
67     new Among("ance", 33, 1, "r_B", methodObject),
68     new Among("icance", 35, 1, "r_A", methodObject),
69     new Among("ence", 33, 1, "r_A", methodObject),
70     new Among("ide", 33, 1, "r_L", methodObject),
71     new Among("icide", 38, 1, "r_A", methodObject),
72     new Among("otide", 38, 1, "r_A", methodObject),
73     new Among("age", 33, 1, "r_B", methodObject),
74     new Among("able", 33, 1, "r_A", methodObject),
75     new Among("atable", 42, 1, "r_A", methodObject),
76     new Among("izable", 42, 1, "r_E", methodObject),
77     new Among("arizable", 44, 1, "r_A", methodObject),
78     new Among("ible", 33, 1, "r_A", methodObject),
79     new Among("encible", 46, 1, "r_A", methodObject),
80     new Among("ene", 33, 1, "r_E", methodObject),
81     new Among("ine", 33, 1, "r_M", methodObject),
82     new Among("idine", 49, 1, "r_I", methodObject),
83     new Among("one", 33, 1, "r_R", methodObject),
84     new Among("ature", 33, 1, "r_E", methodObject),
85     new Among("eature", 52, 1, "r_Z", methodObject),
86     new Among("ese", 33, 1, "r_A", methodObject),
87     new Among("wise", 33, 1, "r_A", methodObject),
88     new Among("ate", 33, 1, "r_A", methodObject),
89     new Among("entiate", 56, 1, "r_A", methodObject),
90     new Among("inate", 56, 1, "r_A", methodObject),
91     new Among("ionate", 56, 1, "r_D", methodObject),
92     new Among("ite", 33, 1, "r_AA", methodObject),
93     new Among("ive", 33, 1, "r_A", methodObject),
94     new Among("ative", 61, 1, "r_A", methodObject),
95     new Among("ize", 33, 1, "r_F", methodObject),
96     new Among("alize", 63, 1, "r_A", methodObject),
97     new Among("icalize", 64, 1, "r_A", methodObject),
98     new Among("ialize", 64, 1, "r_A", methodObject),
99     new Among("entialize", 66, 1, "r_A", methodObject),
100     new Among("ionalize", 64, 1, "r_A", methodObject),
101     new Among("arize", 63, 1, "r_A", methodObject),
102     new Among("ing", -1, 1, "r_N", methodObject),
103     new Among("ancing", 70, 1, "r_B", methodObject),
104     new Among("encing", 70, 1, "r_A", methodObject),
105     new Among("aging", 70, 1, "r_B", methodObject),
106     new Among("ening", 70, 1, "r_E", methodObject),
107     new Among("ioning", 70, 1, "r_A", methodObject),
108     new Among("ating", 70, 1, "r_I", methodObject),
109     new Among("enting", 70, 1, "r_C", methodObject),
110     new Among("ying", 70, 1, "r_B", methodObject),
111     new Among("izing", 70, 1, "r_F", methodObject),
112     new Among("arizing", 79, 1, "r_A", methodObject),
113     new Among("ish", -1, 1, "r_C", methodObject),
114     new Among("yish", 81, 1, "r_A", methodObject),
115     new Among("i", -1, 1, "r_A", methodObject),
116     new Among("al", -1, 1, "r_BB", methodObject),
117     new Among("ical", 84, 1, "r_A", methodObject),
118     new Among("aical", 85, 1, "r_A", methodObject),
119     new Among("istical", 85, 1, "r_A", methodObject),
120     new Among("oidal", 84, 1, "r_A", methodObject),
121     new Among("eal", 84, 1, "r_Y", methodObject),
122     new Among("ial", 84, 1, "r_A", methodObject),
123     new Among("ancial", 90, 1, "r_A", methodObject),
124     new Among("arial", 90, 1, "r_A", methodObject),
125     new Among("ential", 90, 1, "r_A", methodObject),
126     new Among("ional", 84, 1, "r_A", methodObject),
127     new Among("ational", 94, 1, "r_B", methodObject),
128     new Among("izational", 95, 1, "r_A", methodObject),
129     new Among("ental", 84, 1, "r_A", methodObject),
130     new Among("ful", -1, 1, "r_A", methodObject),
131     new Among("eful", 98, 1, "r_A", methodObject),
132     new Among("iful", 98, 1, "r_A", methodObject),
133     new Among("yl", -1, 1, "r_R", methodObject),
134     new Among("ism", -1, 1, "r_B", methodObject),
135     new Among("icism", 102, 1, "r_A", methodObject),
136     new Among("oidism", 102, 1, "r_A", methodObject),
137     new Among("alism", 102, 1, "r_B", methodObject),
138     new Among("icalism", 105, 1, "r_A", methodObject),
139     new Among("ionalism", 105, 1, "r_A", methodObject),
140     new Among("inism", 102, 1, "r_J", methodObject),
141     new Among("ativism", 102, 1, "r_A", methodObject),
142     new Among("um", -1, 1, "r_U", methodObject),
143     new Among("ium", 110, 1, "r_A", methodObject),
144     new Among("ian", -1, 1, "r_A", methodObject),
145     new Among("ician", 112, 1, "r_A", methodObject),
146     new Among("en", -1, 1, "r_F", methodObject),
147     new Among("ogen", 114, 1, "r_A", methodObject),
148     new Among("on", -1, 1, "r_S", methodObject),
149     new Among("ion", 116, 1, "r_Q", methodObject),
150     new Among("ation", 117, 1, "r_B", methodObject),
151     new Among("ication", 118, 1, "r_G", methodObject),
152     new Among("entiation", 118, 1, "r_A", methodObject),
153     new Among("ination", 118, 1, "r_A", methodObject),
154     new Among("isation", 118, 1, "r_A", methodObject),
155     new Among("arisation", 122, 1, "r_A", methodObject),
156     new Among("entation", 118, 1, "r_A", methodObject),
157     new Among("ization", 118, 1, "r_F", methodObject),
158     new Among("arization", 125, 1, "r_A", methodObject),
159     new Among("action", 117, 1, "r_G", methodObject),
160     new Among("o", -1, 1, "r_A", methodObject),
161     new Among("ar", -1, 1, "r_X", methodObject),
162     new Among("ear", 129, 1, "r_Y", methodObject),
163     new Among("ier", -1, 1, "r_A", methodObject),
164     new Among("ariser", -1, 1, "r_A", methodObject),
165     new Among("izer", -1, 1, "r_F", methodObject),
166     new Among("arizer", 133, 1, "r_A", methodObject),
167     new Among("or", -1, 1, "r_T", methodObject),
168     new Among("ator", 135, 1, "r_A", methodObject),
169     new Among("s", -1, 1, "r_W", methodObject),
170     new Among("'s", 137, 1, "r_A", methodObject),
171     new Among("as", 137, 1, "r_B", methodObject),
172     new Among("ics", 137, 1, "r_A", methodObject),
173     new Among("istics", 140, 1, "r_A", methodObject),
174     new Among("es", 137, 1, "r_E", methodObject),
175     new Among("ances", 142, 1, "r_B", methodObject),
176     new Among("ences", 142, 1, "r_A", methodObject),
177     new Among("ides", 142, 1, "r_L", methodObject),
178     new Among("oides", 145, 1, "r_A", methodObject),
179     new Among("ages", 142, 1, "r_B", methodObject),
180     new Among("ies", 142, 1, "r_P", methodObject),
181     new Among("acies", 148, 1, "r_A", methodObject),
182     new Among("ancies", 148, 1, "r_A", methodObject),
183     new Among("encies", 148, 1, "r_A", methodObject),
184     new Among("aries", 148, 1, "r_A", methodObject),
185     new Among("ities", 148, 1, "r_A", methodObject),
186     new Among("alities", 153, 1, "r_A", methodObject),
187     new Among("ivities", 153, 1, "r_A", methodObject),
188     new Among("ines", 142, 1, "r_M", methodObject),
189     new Among("nesses", 142, 1, "r_A", methodObject),
190     new Among("ates", 142, 1, "r_A", methodObject),
191     new Among("atives", 142, 1, "r_A", methodObject),
192     new Among("ings", 137, 1, "r_N", methodObject),
193     new Among("is", 137, 1, "r_A", methodObject),
194     new Among("als", 137, 1, "r_BB", methodObject),
195     new Among("ials", 162, 1, "r_A", methodObject),
196     new Among("entials", 163, 1, "r_A", methodObject),
197     new Among("ionals", 162, 1, "r_A", methodObject),
198     new Among("isms", 137, 1, "r_B", methodObject),
199     new Among("ians", 137, 1, "r_A", methodObject),
200     new Among("icians", 167, 1, "r_A", methodObject),
201     new Among("ions", 137, 1, "r_B", methodObject),
202     new Among("ations", 169, 1, "r_B", methodObject),
203     new Among("arisations", 170, 1, "r_A", methodObject),
204     new Among("entations", 170, 1, "r_A", methodObject),
205     new Among("izations", 170, 1, "r_A", methodObject),
206     new Among("arizations", 173, 1, "r_A", methodObject),
207     new Among("ars", 137, 1, "r_O", methodObject),
208     new Among("iers", 137, 1, "r_A", methodObject),
209     new Among("izers", 137, 1, "r_F", methodObject),
210     new Among("ators", 137, 1, "r_A", methodObject),
211     new Among("less", 137, 1, "r_A", methodObject),
212     new Among("eless", 179, 1, "r_A", methodObject),
213     new Among("ness", 137, 1, "r_A", methodObject),
214     new Among("eness", 181, 1, "r_E", methodObject),
215     new Among("ableness", 182, 1, "r_A", methodObject),
216     new Among("eableness", 183, 1, "r_E", methodObject),
217     new Among("ibleness", 182, 1, "r_A", methodObject),
218     new Among("ateness", 182, 1, "r_A", methodObject),
219     new Among("iteness", 182, 1, "r_A", methodObject),
220     new Among("iveness", 182, 1, "r_A", methodObject),
221     new Among("ativeness", 188, 1, "r_A", methodObject),
222     new Among("ingness", 181, 1, "r_A", methodObject),
223     new Among("ishness", 181, 1, "r_A", methodObject),
224     new Among("iness", 181, 1, "r_A", methodObject),
225     new Among("ariness", 192, 1, "r_E", methodObject),
226     new Among("alness", 181, 1, "r_A", methodObject),
227     new Among("icalness", 194, 1, "r_A", methodObject),
228     new Among("antialness", 194, 1, "r_A", methodObject),
229     new Among("entialness", 194, 1, "r_A", methodObject),
230     new Among("ionalness", 194, 1, "r_A", methodObject),
231     new Among("fulness", 181, 1, "r_A", methodObject),
232     new Among("lessness", 181, 1, "r_A", methodObject),
233     new Among("ousness", 181, 1, "r_A", methodObject),
234     new Among("eousness", 201, 1, "r_A", methodObject),
235     new Among("iousness", 201, 1, "r_A", methodObject),
236     new Among("itousness", 201, 1, "r_A", methodObject),
237     new Among("entness", 181, 1, "r_A", methodObject),
238     new Among("ants", 137, 1, "r_B", methodObject),
239     new Among("ists", 137, 1, "r_A", methodObject),
240     new Among("icists", 207, 1, "r_A", methodObject),
241     new Among("us", 137, 1, "r_V", methodObject),
242     new Among("ous", 209, 1, "r_A", methodObject),
243     new Among("eous", 210, 1, "r_A", methodObject),
244     new Among("aceous", 211, 1, "r_A", methodObject),
245     new Among("antaneous", 211, 1, "r_A", methodObject),
246     new Among("ious", 210, 1, "r_A", methodObject),
247     new Among("acious", 214, 1, "r_B", methodObject),
248     new Among("itous", 210, 1, "r_A", methodObject),
249     new Among("ant", -1, 1, "r_B", methodObject),
250     new Among("icant", 217, 1, "r_A", methodObject),
251     new Among("ent", -1, 1, "r_C", methodObject),
252     new Among("ement", 219, 1, "r_A", methodObject),
253     new Among("izement", 220, 1, "r_A", methodObject),
254     new Among("ist", -1, 1, "r_A", methodObject),
255     new Among("icist", 222, 1, "r_A", methodObject),
256     new Among("alist", 222, 1, "r_A", methodObject),
257     new Among("icalist", 224, 1, "r_A", methodObject),
258     new Among("ialist", 224, 1, "r_A", methodObject),
259     new Among("ionist", 222, 1, "r_A", methodObject),
260     new Among("entist", 222, 1, "r_A", methodObject),
261     new Among("y", -1, 1, "r_B", methodObject),
262     new Among("acy", 229, 1, "r_A", methodObject),
263     new Among("ancy", 229, 1, "r_B", methodObject),
264     new Among("ency", 229, 1, "r_A", methodObject),
265     new Among("ly", 229, 1, "r_B", methodObject),
266     new Among("ealy", 233, 1, "r_Y", methodObject),
267     new Among("ably", 233, 1, "r_A", methodObject),
268     new Among("ibly", 233, 1, "r_A", methodObject),
269     new Among("edly", 233, 1, "r_E", methodObject),
270     new Among("iedly", 237, 1, "r_A", methodObject),
271     new Among("ely", 233, 1, "r_E", methodObject),
272     new Among("ately", 239, 1, "r_A", methodObject),
273     new Among("ively", 239, 1, "r_A", methodObject),
274     new Among("atively", 241, 1, "r_A", methodObject),
275     new Among("ingly", 233, 1, "r_B", methodObject),
276     new Among("atingly", 243, 1, "r_A", methodObject),
277     new Among("ily", 233, 1, "r_A", methodObject),
278     new Among("lily", 245, 1, "r_A", methodObject),
279     new Among("arily", 245, 1, "r_A", methodObject),
280     new Among("ally", 233, 1, "r_B", methodObject),
281     new Among("ically", 248, 1, "r_A", methodObject),
282     new Among("aically", 249, 1, "r_A", methodObject),
283     new Among("allically", 249, 1, "r_C", methodObject),
284     new Among("istically", 249, 1, "r_A", methodObject),
285     new Among("alistically", 252, 1, "r_B", methodObject),
286     new Among("oidally", 248, 1, "r_A", methodObject),
287     new Among("ially", 248, 1, "r_A", methodObject),
288     new Among("entially", 255, 1, "r_A", methodObject),
289     new Among("ionally", 248, 1, "r_A", methodObject),
290     new Among("ationally", 257, 1, "r_B", methodObject),
291     new Among("izationally", 258, 1, "r_B", methodObject),
292     new Among("entally", 248, 1, "r_A", methodObject),
293     new Among("fully", 233, 1, "r_A", methodObject),
294     new Among("efully", 261, 1, "r_A", methodObject),
295     new Among("ifully", 261, 1, "r_A", methodObject),
296     new Among("enly", 233, 1, "r_E", methodObject),
297     new Among("arly", 233, 1, "r_K", methodObject),
298     new Among("early", 265, 1, "r_Y", methodObject),
299     new Among("lessly", 233, 1, "r_A", methodObject),
300     new Among("ously", 233, 1, "r_A", methodObject),
301     new Among("eously", 268, 1, "r_A", methodObject),
302     new Among("iously", 268, 1, "r_A", methodObject),
303     new Among("ently", 233, 1, "r_A", methodObject),
304     new Among("ary", 229, 1, "r_F", methodObject),
305     new Among("ery", 229, 1, "r_E", methodObject),
306     new Among("icianry", 229, 1, "r_A", methodObject),
307     new Among("atory", 229, 1, "r_A", methodObject),
308     new Among("ity", 229, 1, "r_A", methodObject),
309     new Among("acity", 276, 1, "r_A", methodObject),
310     new Among("icity", 276, 1, "r_A", methodObject),
311     new Among("eity", 276, 1, "r_A", methodObject),
312     new Among("ality", 276, 1, "r_A", methodObject),
313     new Among("icality", 280, 1, "r_A", methodObject),
314     new Among("iality", 280, 1, "r_A", methodObject),
315     new Among("antiality", 282, 1, "r_A", methodObject),
316     new Among("entiality", 282, 1, "r_A", methodObject),
317     new Among("ionality", 280, 1, "r_A", methodObject),
318     new Among("elity", 276, 1, "r_A", methodObject),
319     new Among("ability", 276, 1, "r_A", methodObject),
320     new Among("izability", 287, 1, "r_A", methodObject),
321     new Among("arizability", 288, 1, "r_A", methodObject),
322     new Among("ibility", 276, 1, "r_A", methodObject),
323     new Among("inity", 276, 1, "r_CC", methodObject),
324     new Among("arity", 276, 1, "r_B", methodObject),
325     new Among("ivity", 276, 1, "r_A", methodObject)
326   };
327 
328   private static final Among a_2[] = {
329     new Among("bb", -1, -1),
330     new Among("dd", -1, -1),
331     new Among("gg", -1, -1),
332     new Among("ll", -1, -1),
333     new Among("mm", -1, -1),
334     new Among("nn", -1, -1),
335     new Among("pp", -1, -1),
336     new Among("rr", -1, -1),
337     new Among("ss", -1, -1),
338     new Among("tt", -1, -1)
339   };
340 
341   private static final Among a_3[] = {
342     new Among("uad", -1, 18),
343     new Among("vad", -1, 19),
344     new Among("cid", -1, 20),
345     new Among("lid", -1, 21),
346     new Among("erid", -1, 22),
347     new Among("pand", -1, 23),
348     new Among("end", -1, 24),
349     new Among("ond", -1, 25),
350     new Among("lud", -1, 26),
351     new Among("rud", -1, 27),
352     new Among("ul", -1, 9),
353     new Among("her", -1, 28),
354     new Among("metr", -1, 7),
355     new Among("istr", -1, 6),
356     new Among("urs", -1, 5),
357     new Among("uct", -1, 2),
358     new Among("et", -1, 32),
359     new Among("mit", -1, 29),
360     new Among("ent", -1, 30),
361     new Among("umpt", -1, 3),
362     new Among("rpt", -1, 4),
363     new Among("ert", -1, 31),
364     new Among("yt", -1, 33),
365     new Among("iev", -1, 1),
366     new Among("olv", -1, 8),
367     new Among("ax", -1, 14),
368     new Among("ex", -1, 15),
369     new Among("bex", 26, 10),
370     new Among("dex", 26, 11),
371     new Among("pex", 26, 12),
372     new Among("tex", 26, 13),
373     new Among("ix", -1, 16),
374     new Among("lux", -1, 17),
375     new Among("yz", -1, 33)
376   };
377 
r_A()378   public boolean r_A() {
379     {
380       int c = cursor - 2;
381       if (limit_backward > c || c > limit) {
382         return false;
383       }
384       cursor = c;
385     }
386     return true;
387   }
388 
r_B()389   public boolean r_B() {
390     {
391       int c = cursor - 3;
392       if (limit_backward > c || c > limit) {
393         return false;
394       }
395       cursor = c;
396     }
397     return true;
398   }
399 
r_C()400   public boolean r_C() {
401     {
402       int c = cursor - 4;
403       if (limit_backward > c || c > limit) {
404         return false;
405       }
406       cursor = c;
407     }
408     return true;
409   }
410 
r_D()411   public boolean r_D() {
412     {
413       int c = cursor - 5;
414       if (limit_backward > c || c > limit) {
415         return false;
416       }
417       cursor = c;
418     }
419     return true;
420   }
421 
r_E()422   public boolean r_E() {
423     int v_1 = limit - cursor;
424     {
425       int c = cursor - 2;
426       if (limit_backward > c || c > limit) {
427         return false;
428       }
429       cursor = c;
430     }
431     cursor = limit - v_1;
432     {
433       int v_2 = limit - cursor;
434       lab0:
435       {
436         if (!(eq_s_b("e"))) {
437           break lab0;
438         }
439         return false;
440       }
441       cursor = limit - v_2;
442     }
443     return true;
444   }
445 
r_F()446   public boolean r_F() {
447     int v_1 = limit - cursor;
448     {
449       int c = cursor - 3;
450       if (limit_backward > c || c > limit) {
451         return false;
452       }
453       cursor = c;
454     }
455     cursor = limit - v_1;
456     {
457       int v_2 = limit - cursor;
458       lab0:
459       {
460         if (!(eq_s_b("e"))) {
461           break lab0;
462         }
463         return false;
464       }
465       cursor = limit - v_2;
466     }
467     return true;
468   }
469 
r_G()470   public boolean r_G() {
471     int v_1 = limit - cursor;
472     {
473       int c = cursor - 3;
474       if (limit_backward > c || c > limit) {
475         return false;
476       }
477       cursor = c;
478     }
479     cursor = limit - v_1;
480     if (!(eq_s_b("f"))) {
481       return false;
482     }
483     return true;
484   }
485 
r_H()486   public boolean r_H() {
487     int v_1 = limit - cursor;
488     {
489       int c = cursor - 2;
490       if (limit_backward > c || c > limit) {
491         return false;
492       }
493       cursor = c;
494     }
495     cursor = limit - v_1;
496     lab0:
497     {
498       int v_2 = limit - cursor;
499       lab1:
500       {
501         if (!(eq_s_b("t"))) {
502           break lab1;
503         }
504         break lab0;
505       }
506       cursor = limit - v_2;
507       if (!(eq_s_b("ll"))) {
508         return false;
509       }
510     }
511     return true;
512   }
513 
r_I()514   public boolean r_I() {
515     int v_1 = limit - cursor;
516     {
517       int c = cursor - 2;
518       if (limit_backward > c || c > limit) {
519         return false;
520       }
521       cursor = c;
522     }
523     cursor = limit - v_1;
524     {
525       int v_2 = limit - cursor;
526       lab0:
527       {
528         if (!(eq_s_b("o"))) {
529           break lab0;
530         }
531         return false;
532       }
533       cursor = limit - v_2;
534     }
535     {
536       int v_3 = limit - cursor;
537       lab1:
538       {
539         if (!(eq_s_b("e"))) {
540           break lab1;
541         }
542         return false;
543       }
544       cursor = limit - v_3;
545     }
546     return true;
547   }
548 
r_J()549   public boolean r_J() {
550     int v_1 = limit - cursor;
551     {
552       int c = cursor - 2;
553       if (limit_backward > c || c > limit) {
554         return false;
555       }
556       cursor = c;
557     }
558     cursor = limit - v_1;
559     {
560       int v_2 = limit - cursor;
561       lab0:
562       {
563         if (!(eq_s_b("a"))) {
564           break lab0;
565         }
566         return false;
567       }
568       cursor = limit - v_2;
569     }
570     {
571       int v_3 = limit - cursor;
572       lab1:
573       {
574         if (!(eq_s_b("e"))) {
575           break lab1;
576         }
577         return false;
578       }
579       cursor = limit - v_3;
580     }
581     return true;
582   }
583 
r_K()584   public boolean r_K() {
585     int v_1 = limit - cursor;
586     {
587       int c = cursor - 3;
588       if (limit_backward > c || c > limit) {
589         return false;
590       }
591       cursor = c;
592     }
593     cursor = limit - v_1;
594     lab0:
595     {
596       int v_2 = limit - cursor;
597       lab1:
598       {
599         if (!(eq_s_b("l"))) {
600           break lab1;
601         }
602         break lab0;
603       }
604       cursor = limit - v_2;
605       lab2:
606       {
607         if (!(eq_s_b("i"))) {
608           break lab2;
609         }
610         break lab0;
611       }
612       cursor = limit - v_2;
613       if (!(eq_s_b("e"))) {
614         return false;
615       }
616       if (cursor <= limit_backward) {
617         return false;
618       }
619       cursor--;
620       if (!(eq_s_b("u"))) {
621         return false;
622       }
623     }
624     return true;
625   }
626 
r_L()627   public boolean r_L() {
628     int v_1 = limit - cursor;
629     {
630       int c = cursor - 2;
631       if (limit_backward > c || c > limit) {
632         return false;
633       }
634       cursor = c;
635     }
636     cursor = limit - v_1;
637     {
638       int v_2 = limit - cursor;
639       lab0:
640       {
641         if (!(eq_s_b("u"))) {
642           break lab0;
643         }
644         return false;
645       }
646       cursor = limit - v_2;
647     }
648     {
649       int v_3 = limit - cursor;
650       lab1:
651       {
652         if (!(eq_s_b("x"))) {
653           break lab1;
654         }
655         return false;
656       }
657       cursor = limit - v_3;
658     }
659     {
660       int v_4 = limit - cursor;
661       lab2:
662       {
663         if (!(eq_s_b("s"))) {
664           break lab2;
665         }
666         {
667           int v_5 = limit - cursor;
668           lab3:
669           {
670             if (!(eq_s_b("o"))) {
671               break lab3;
672             }
673             break lab2;
674           }
675           cursor = limit - v_5;
676         }
677         return false;
678       }
679       cursor = limit - v_4;
680     }
681     return true;
682   }
683 
r_M()684   public boolean r_M() {
685     int v_1 = limit - cursor;
686     {
687       int c = cursor - 2;
688       if (limit_backward > c || c > limit) {
689         return false;
690       }
691       cursor = c;
692     }
693     cursor = limit - v_1;
694     {
695       int v_2 = limit - cursor;
696       lab0:
697       {
698         if (!(eq_s_b("a"))) {
699           break lab0;
700         }
701         return false;
702       }
703       cursor = limit - v_2;
704     }
705     {
706       int v_3 = limit - cursor;
707       lab1:
708       {
709         if (!(eq_s_b("c"))) {
710           break lab1;
711         }
712         return false;
713       }
714       cursor = limit - v_3;
715     }
716     {
717       int v_4 = limit - cursor;
718       lab2:
719       {
720         if (!(eq_s_b("e"))) {
721           break lab2;
722         }
723         return false;
724       }
725       cursor = limit - v_4;
726     }
727     {
728       int v_5 = limit - cursor;
729       lab3:
730       {
731         if (!(eq_s_b("m"))) {
732           break lab3;
733         }
734         return false;
735       }
736       cursor = limit - v_5;
737     }
738     return true;
739   }
740 
r_N()741   public boolean r_N() {
742     int v_1 = limit - cursor;
743     {
744       int c = cursor - 3;
745       if (limit_backward > c || c > limit) {
746         return false;
747       }
748       cursor = c;
749     }
750     cursor = limit - v_1;
751     {
752       int c = cursor - 2;
753       if (limit_backward > c || c > limit) {
754         return false;
755       }
756       cursor = c;
757     }
758     lab0:
759     {
760       int v_2 = limit - cursor;
761       lab1:
762       {
763         {
764           int v_3 = limit - cursor;
765           lab2:
766           {
767             if (!(eq_s_b("s"))) {
768               break lab2;
769             }
770             break lab1;
771           }
772           cursor = limit - v_3;
773         }
774         break lab0;
775       }
776       cursor = limit - v_2;
777       {
778         int c = cursor - 2;
779         if (limit_backward > c || c > limit) {
780           return false;
781         }
782         cursor = c;
783       }
784     }
785     return true;
786   }
787 
r_O()788   public boolean r_O() {
789     int v_1 = limit - cursor;
790     {
791       int c = cursor - 2;
792       if (limit_backward > c || c > limit) {
793         return false;
794       }
795       cursor = c;
796     }
797     cursor = limit - v_1;
798     lab0:
799     {
800       int v_2 = limit - cursor;
801       lab1:
802       {
803         if (!(eq_s_b("l"))) {
804           break lab1;
805         }
806         break lab0;
807       }
808       cursor = limit - v_2;
809       if (!(eq_s_b("i"))) {
810         return false;
811       }
812     }
813     return true;
814   }
815 
r_P()816   public boolean r_P() {
817     int v_1 = limit - cursor;
818     {
819       int c = cursor - 2;
820       if (limit_backward > c || c > limit) {
821         return false;
822       }
823       cursor = c;
824     }
825     cursor = limit - v_1;
826     {
827       int v_2 = limit - cursor;
828       lab0:
829       {
830         if (!(eq_s_b("c"))) {
831           break lab0;
832         }
833         return false;
834       }
835       cursor = limit - v_2;
836     }
837     return true;
838   }
839 
r_Q()840   public boolean r_Q() {
841     int v_1 = limit - cursor;
842     {
843       int c = cursor - 2;
844       if (limit_backward > c || c > limit) {
845         return false;
846       }
847       cursor = c;
848     }
849     cursor = limit - v_1;
850     int v_2 = limit - cursor;
851     {
852       int c = cursor - 3;
853       if (limit_backward > c || c > limit) {
854         return false;
855       }
856       cursor = c;
857     }
858     cursor = limit - v_2;
859     {
860       int v_3 = limit - cursor;
861       lab0:
862       {
863         if (!(eq_s_b("l"))) {
864           break lab0;
865         }
866         return false;
867       }
868       cursor = limit - v_3;
869     }
870     {
871       int v_4 = limit - cursor;
872       lab1:
873       {
874         if (!(eq_s_b("n"))) {
875           break lab1;
876         }
877         return false;
878       }
879       cursor = limit - v_4;
880     }
881     return true;
882   }
883 
r_R()884   public boolean r_R() {
885     int v_1 = limit - cursor;
886     {
887       int c = cursor - 2;
888       if (limit_backward > c || c > limit) {
889         return false;
890       }
891       cursor = c;
892     }
893     cursor = limit - v_1;
894     lab0:
895     {
896       int v_2 = limit - cursor;
897       lab1:
898       {
899         if (!(eq_s_b("n"))) {
900           break lab1;
901         }
902         break lab0;
903       }
904       cursor = limit - v_2;
905       if (!(eq_s_b("r"))) {
906         return false;
907       }
908     }
909     return true;
910   }
911 
r_S()912   public boolean r_S() {
913     int v_1 = limit - cursor;
914     {
915       int c = cursor - 2;
916       if (limit_backward > c || c > limit) {
917         return false;
918       }
919       cursor = c;
920     }
921     cursor = limit - v_1;
922     lab0:
923     {
924       int v_2 = limit - cursor;
925       lab1:
926       {
927         if (!(eq_s_b("dr"))) {
928           break lab1;
929         }
930         break lab0;
931       }
932       cursor = limit - v_2;
933       if (!(eq_s_b("t"))) {
934         return false;
935       }
936       {
937         int v_3 = limit - cursor;
938         lab2:
939         {
940           if (!(eq_s_b("t"))) {
941             break lab2;
942           }
943           return false;
944         }
945         cursor = limit - v_3;
946       }
947     }
948     return true;
949   }
950 
r_T()951   public boolean r_T() {
952     int v_1 = limit - cursor;
953     {
954       int c = cursor - 2;
955       if (limit_backward > c || c > limit) {
956         return false;
957       }
958       cursor = c;
959     }
960     cursor = limit - v_1;
961     lab0:
962     {
963       int v_2 = limit - cursor;
964       lab1:
965       {
966         if (!(eq_s_b("s"))) {
967           break lab1;
968         }
969         break lab0;
970       }
971       cursor = limit - v_2;
972       if (!(eq_s_b("t"))) {
973         return false;
974       }
975       {
976         int v_3 = limit - cursor;
977         lab2:
978         {
979           if (!(eq_s_b("o"))) {
980             break lab2;
981           }
982           return false;
983         }
984         cursor = limit - v_3;
985       }
986     }
987     return true;
988   }
989 
r_U()990   public boolean r_U() {
991     int v_1 = limit - cursor;
992     {
993       int c = cursor - 2;
994       if (limit_backward > c || c > limit) {
995         return false;
996       }
997       cursor = c;
998     }
999     cursor = limit - v_1;
1000     lab0:
1001     {
1002       int v_2 = limit - cursor;
1003       lab1:
1004       {
1005         if (!(eq_s_b("l"))) {
1006           break lab1;
1007         }
1008         break lab0;
1009       }
1010       cursor = limit - v_2;
1011       lab2:
1012       {
1013         if (!(eq_s_b("m"))) {
1014           break lab2;
1015         }
1016         break lab0;
1017       }
1018       cursor = limit - v_2;
1019       lab3:
1020       {
1021         if (!(eq_s_b("n"))) {
1022           break lab3;
1023         }
1024         break lab0;
1025       }
1026       cursor = limit - v_2;
1027       if (!(eq_s_b("r"))) {
1028         return false;
1029       }
1030     }
1031     return true;
1032   }
1033 
r_V()1034   public boolean r_V() {
1035     int v_1 = limit - cursor;
1036     {
1037       int c = cursor - 2;
1038       if (limit_backward > c || c > limit) {
1039         return false;
1040       }
1041       cursor = c;
1042     }
1043     cursor = limit - v_1;
1044     if (!(eq_s_b("c"))) {
1045       return false;
1046     }
1047     return true;
1048   }
1049 
r_W()1050   public boolean r_W() {
1051     int v_1 = limit - cursor;
1052     {
1053       int c = cursor - 2;
1054       if (limit_backward > c || c > limit) {
1055         return false;
1056       }
1057       cursor = c;
1058     }
1059     cursor = limit - v_1;
1060     {
1061       int v_2 = limit - cursor;
1062       lab0:
1063       {
1064         if (!(eq_s_b("s"))) {
1065           break lab0;
1066         }
1067         return false;
1068       }
1069       cursor = limit - v_2;
1070     }
1071     {
1072       int v_3 = limit - cursor;
1073       lab1:
1074       {
1075         if (!(eq_s_b("u"))) {
1076           break lab1;
1077         }
1078         return false;
1079       }
1080       cursor = limit - v_3;
1081     }
1082     return true;
1083   }
1084 
r_X()1085   public boolean r_X() {
1086     int v_1 = limit - cursor;
1087     {
1088       int c = cursor - 2;
1089       if (limit_backward > c || c > limit) {
1090         return false;
1091       }
1092       cursor = c;
1093     }
1094     cursor = limit - v_1;
1095     lab0:
1096     {
1097       int v_2 = limit - cursor;
1098       lab1:
1099       {
1100         if (!(eq_s_b("l"))) {
1101           break lab1;
1102         }
1103         break lab0;
1104       }
1105       cursor = limit - v_2;
1106       lab2:
1107       {
1108         if (!(eq_s_b("i"))) {
1109           break lab2;
1110         }
1111         break lab0;
1112       }
1113       cursor = limit - v_2;
1114       if (!(eq_s_b("e"))) {
1115         return false;
1116       }
1117       if (cursor <= limit_backward) {
1118         return false;
1119       }
1120       cursor--;
1121       if (!(eq_s_b("u"))) {
1122         return false;
1123       }
1124     }
1125     return true;
1126   }
1127 
r_Y()1128   public boolean r_Y() {
1129     int v_1 = limit - cursor;
1130     {
1131       int c = cursor - 2;
1132       if (limit_backward > c || c > limit) {
1133         return false;
1134       }
1135       cursor = c;
1136     }
1137     cursor = limit - v_1;
1138     if (!(eq_s_b("in"))) {
1139       return false;
1140     }
1141     return true;
1142   }
1143 
r_Z()1144   public boolean r_Z() {
1145     int v_1 = limit - cursor;
1146     {
1147       int c = cursor - 2;
1148       if (limit_backward > c || c > limit) {
1149         return false;
1150       }
1151       cursor = c;
1152     }
1153     cursor = limit - v_1;
1154     {
1155       int v_2 = limit - cursor;
1156       lab0:
1157       {
1158         if (!(eq_s_b("f"))) {
1159           break lab0;
1160         }
1161         return false;
1162       }
1163       cursor = limit - v_2;
1164     }
1165     return true;
1166   }
1167 
r_AA()1168   public boolean r_AA() {
1169     int v_1 = limit - cursor;
1170     {
1171       int c = cursor - 2;
1172       if (limit_backward > c || c > limit) {
1173         return false;
1174       }
1175       cursor = c;
1176     }
1177     cursor = limit - v_1;
1178     if (find_among_b(a_0) == 0) {
1179       return false;
1180     }
1181     return true;
1182   }
1183 
r_BB()1184   public boolean r_BB() {
1185     int v_1 = limit - cursor;
1186     {
1187       int c = cursor - 3;
1188       if (limit_backward > c || c > limit) {
1189         return false;
1190       }
1191       cursor = c;
1192     }
1193     cursor = limit - v_1;
1194     {
1195       int v_2 = limit - cursor;
1196       lab0:
1197       {
1198         if (!(eq_s_b("met"))) {
1199           break lab0;
1200         }
1201         return false;
1202       }
1203       cursor = limit - v_2;
1204     }
1205     {
1206       int v_3 = limit - cursor;
1207       lab1:
1208       {
1209         if (!(eq_s_b("ryst"))) {
1210           break lab1;
1211         }
1212         return false;
1213       }
1214       cursor = limit - v_3;
1215     }
1216     return true;
1217   }
1218 
r_CC()1219   public boolean r_CC() {
1220     int v_1 = limit - cursor;
1221     {
1222       int c = cursor - 2;
1223       if (limit_backward > c || c > limit) {
1224         return false;
1225       }
1226       cursor = c;
1227     }
1228     cursor = limit - v_1;
1229     if (!(eq_s_b("l"))) {
1230       return false;
1231     }
1232     return true;
1233   }
1234 
r_endings()1235   private boolean r_endings() {
1236     ket = cursor;
1237     if (find_among_b(a_1) == 0) {
1238       return false;
1239     }
1240     bra = cursor;
1241     slice_del();
1242     return true;
1243   }
1244 
r_undouble()1245   private boolean r_undouble() {
1246     int v_1 = limit - cursor;
1247     if (find_among_b(a_2) == 0) {
1248       return false;
1249     }
1250     cursor = limit - v_1;
1251     ket = cursor;
1252     if (cursor <= limit_backward) {
1253       return false;
1254     }
1255     cursor--;
1256     bra = cursor;
1257     slice_del();
1258     return true;
1259   }
1260 
r_respell()1261   private boolean r_respell() {
1262     int among_var;
1263     ket = cursor;
1264     among_var = find_among_b(a_3);
1265     if (among_var == 0) {
1266       return false;
1267     }
1268     bra = cursor;
1269     switch (among_var) {
1270       case 1:
1271         slice_from("ief");
1272         break;
1273       case 2:
1274         slice_from("uc");
1275         break;
1276       case 3:
1277         slice_from("um");
1278         break;
1279       case 4:
1280         slice_from("rb");
1281         break;
1282       case 5:
1283         slice_from("ur");
1284         break;
1285       case 6:
1286         slice_from("ister");
1287         break;
1288       case 7:
1289         slice_from("meter");
1290         break;
1291       case 8:
1292         slice_from("olut");
1293         break;
1294       case 9:
1295         {
1296           int v_1 = limit - cursor;
1297           lab0:
1298           {
1299             if (!(eq_s_b("a"))) {
1300               break lab0;
1301             }
1302             return false;
1303           }
1304           cursor = limit - v_1;
1305         }
1306         {
1307           int v_2 = limit - cursor;
1308           lab1:
1309           {
1310             if (!(eq_s_b("i"))) {
1311               break lab1;
1312             }
1313             return false;
1314           }
1315           cursor = limit - v_2;
1316         }
1317         {
1318           int v_3 = limit - cursor;
1319           lab2:
1320           {
1321             if (!(eq_s_b("o"))) {
1322               break lab2;
1323             }
1324             return false;
1325           }
1326           cursor = limit - v_3;
1327         }
1328         slice_from("l");
1329         break;
1330       case 10:
1331         slice_from("bic");
1332         break;
1333       case 11:
1334         slice_from("dic");
1335         break;
1336       case 12:
1337         slice_from("pic");
1338         break;
1339       case 13:
1340         slice_from("tic");
1341         break;
1342       case 14:
1343         slice_from("ac");
1344         break;
1345       case 15:
1346         slice_from("ec");
1347         break;
1348       case 16:
1349         slice_from("ic");
1350         break;
1351       case 17:
1352         slice_from("luc");
1353         break;
1354       case 18:
1355         slice_from("uas");
1356         break;
1357       case 19:
1358         slice_from("vas");
1359         break;
1360       case 20:
1361         slice_from("cis");
1362         break;
1363       case 21:
1364         slice_from("lis");
1365         break;
1366       case 22:
1367         slice_from("eris");
1368         break;
1369       case 23:
1370         slice_from("pans");
1371         break;
1372       case 24:
1373         {
1374           int v_4 = limit - cursor;
1375           lab3:
1376           {
1377             if (!(eq_s_b("s"))) {
1378               break lab3;
1379             }
1380             return false;
1381           }
1382           cursor = limit - v_4;
1383         }
1384         slice_from("ens");
1385         break;
1386       case 25:
1387         slice_from("ons");
1388         break;
1389       case 26:
1390         slice_from("lus");
1391         break;
1392       case 27:
1393         slice_from("rus");
1394         break;
1395       case 28:
1396         {
1397           int v_5 = limit - cursor;
1398           lab4:
1399           {
1400             if (!(eq_s_b("p"))) {
1401               break lab4;
1402             }
1403             return false;
1404           }
1405           cursor = limit - v_5;
1406         }
1407         {
1408           int v_6 = limit - cursor;
1409           lab5:
1410           {
1411             if (!(eq_s_b("t"))) {
1412               break lab5;
1413             }
1414             return false;
1415           }
1416           cursor = limit - v_6;
1417         }
1418         slice_from("hes");
1419         break;
1420       case 29:
1421         slice_from("mis");
1422         break;
1423       case 30:
1424         {
1425           int v_7 = limit - cursor;
1426           lab6:
1427           {
1428             if (!(eq_s_b("m"))) {
1429               break lab6;
1430             }
1431             return false;
1432           }
1433           cursor = limit - v_7;
1434         }
1435         slice_from("ens");
1436         break;
1437       case 31:
1438         slice_from("ers");
1439         break;
1440       case 32:
1441         {
1442           int v_8 = limit - cursor;
1443           lab7:
1444           {
1445             if (!(eq_s_b("n"))) {
1446               break lab7;
1447             }
1448             return false;
1449           }
1450           cursor = limit - v_8;
1451         }
1452         slice_from("es");
1453         break;
1454       case 33:
1455         slice_from("ys");
1456         break;
1457     }
1458     return true;
1459   }
1460 
1461   @Override
stem()1462   public boolean stem() {
1463     limit_backward = cursor;
1464     cursor = limit;
1465     int v_1 = limit - cursor;
1466     r_endings();
1467     cursor = limit - v_1;
1468     int v_2 = limit - cursor;
1469     r_undouble();
1470     cursor = limit - v_2;
1471     int v_3 = limit - cursor;
1472     r_respell();
1473     cursor = limit - v_3;
1474     cursor = limit_backward;
1475     return true;
1476   }
1477 
1478   @Override
equals(Object o)1479   public boolean equals(Object o) {
1480     return o instanceof LovinsStemmer;
1481   }
1482 
1483   @Override
hashCode()1484   public int hashCode() {
1485     return LovinsStemmer.class.getName().hashCode();
1486   }
1487 }
1488