xref: /Lucene/lucene/analysis/common/src/java/org/tartarus/snowball/ext/CatalanStemmer.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 CatalanStemmer 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("", -1, 7),
21     new Among("\u00B7", 0, 6),
22     new Among("\u00E0", 0, 1),
23     new Among("\u00E1", 0, 1),
24     new Among("\u00E8", 0, 2),
25     new Among("\u00E9", 0, 2),
26     new Among("\u00EC", 0, 3),
27     new Among("\u00ED", 0, 3),
28     new Among("\u00EF", 0, 3),
29     new Among("\u00F2", 0, 4),
30     new Among("\u00F3", 0, 4),
31     new Among("\u00FA", 0, 5),
32     new Among("\u00FC", 0, 5)
33   };
34 
35   private static final Among a_1[] = {
36     new Among("la", -1, 1),
37     new Among("-la", 0, 1),
38     new Among("sela", 0, 1),
39     new Among("le", -1, 1),
40     new Among("me", -1, 1),
41     new Among("-me", 4, 1),
42     new Among("se", -1, 1),
43     new Among("-te", -1, 1),
44     new Among("hi", -1, 1),
45     new Among("'hi", 8, 1),
46     new Among("li", -1, 1),
47     new Among("-li", 10, 1),
48     new Among("'l", -1, 1),
49     new Among("'m", -1, 1),
50     new Among("-m", -1, 1),
51     new Among("'n", -1, 1),
52     new Among("-n", -1, 1),
53     new Among("ho", -1, 1),
54     new Among("'ho", 17, 1),
55     new Among("lo", -1, 1),
56     new Among("selo", 19, 1),
57     new Among("'s", -1, 1),
58     new Among("las", -1, 1),
59     new Among("selas", 22, 1),
60     new Among("les", -1, 1),
61     new Among("-les", 24, 1),
62     new Among("'ls", -1, 1),
63     new Among("-ls", -1, 1),
64     new Among("'ns", -1, 1),
65     new Among("-ns", -1, 1),
66     new Among("ens", -1, 1),
67     new Among("los", -1, 1),
68     new Among("selos", 31, 1),
69     new Among("nos", -1, 1),
70     new Among("-nos", 33, 1),
71     new Among("vos", -1, 1),
72     new Among("us", -1, 1),
73     new Among("-us", 36, 1),
74     new Among("'t", -1, 1)
75   };
76 
77   private static final Among a_2[] = {
78     new Among("ica", -1, 4),
79     new Among("l\u00F3gica", 0, 3),
80     new Among("enca", -1, 1),
81     new Among("ada", -1, 2),
82     new Among("ancia", -1, 1),
83     new Among("encia", -1, 1),
84     new Among("\u00E8ncia", -1, 1),
85     new Among("\u00EDcia", -1, 1),
86     new Among("logia", -1, 3),
87     new Among("inia", -1, 1),
88     new Among("\u00EDinia", 9, 1),
89     new Among("eria", -1, 1),
90     new Among("\u00E0ria", -1, 1),
91     new Among("at\u00F2ria", -1, 1),
92     new Among("alla", -1, 1),
93     new Among("ella", -1, 1),
94     new Among("\u00EDvola", -1, 1),
95     new Among("ima", -1, 1),
96     new Among("\u00EDssima", 17, 1),
97     new Among("qu\u00EDssima", 18, 5),
98     new Among("ana", -1, 1),
99     new Among("ina", -1, 1),
100     new Among("era", -1, 1),
101     new Among("sfera", 22, 1),
102     new Among("ora", -1, 1),
103     new Among("dora", 24, 1),
104     new Among("adora", 25, 1),
105     new Among("adura", -1, 1),
106     new Among("esa", -1, 1),
107     new Among("osa", -1, 1),
108     new Among("assa", -1, 1),
109     new Among("essa", -1, 1),
110     new Among("issa", -1, 1),
111     new Among("eta", -1, 1),
112     new Among("ita", -1, 1),
113     new Among("ota", -1, 1),
114     new Among("ista", -1, 1),
115     new Among("ialista", 36, 1),
116     new Among("ionista", 36, 1),
117     new Among("iva", -1, 1),
118     new Among("ativa", 39, 1),
119     new Among("n\u00E7a", -1, 1),
120     new Among("log\u00EDa", -1, 3),
121     new Among("ic", -1, 4),
122     new Among("\u00EDstic", 43, 1),
123     new Among("enc", -1, 1),
124     new Among("esc", -1, 1),
125     new Among("ud", -1, 1),
126     new Among("atge", -1, 1),
127     new Among("ble", -1, 1),
128     new Among("able", 49, 1),
129     new Among("ible", 49, 1),
130     new Among("isme", -1, 1),
131     new Among("ialisme", 52, 1),
132     new Among("ionisme", 52, 1),
133     new Among("ivisme", 52, 1),
134     new Among("aire", -1, 1),
135     new Among("icte", -1, 1),
136     new Among("iste", -1, 1),
137     new Among("ici", -1, 1),
138     new Among("\u00EDci", -1, 1),
139     new Among("logi", -1, 3),
140     new Among("ari", -1, 1),
141     new Among("tori", -1, 1),
142     new Among("al", -1, 1),
143     new Among("il", -1, 1),
144     new Among("all", -1, 1),
145     new Among("ell", -1, 1),
146     new Among("\u00EDvol", -1, 1),
147     new Among("isam", -1, 1),
148     new Among("issem", -1, 1),
149     new Among("\u00ECssem", -1, 1),
150     new Among("\u00EDssem", -1, 1),
151     new Among("\u00EDssim", -1, 1),
152     new Among("qu\u00EDssim", 73, 5),
153     new Among("amen", -1, 1),
154     new Among("\u00ECssin", -1, 1),
155     new Among("ar", -1, 1),
156     new Among("ificar", 77, 1),
157     new Among("egar", 77, 1),
158     new Among("ejar", 77, 1),
159     new Among("itar", 77, 1),
160     new Among("itzar", 77, 1),
161     new Among("fer", -1, 1),
162     new Among("or", -1, 1),
163     new Among("dor", 84, 1),
164     new Among("dur", -1, 1),
165     new Among("doras", -1, 1),
166     new Among("ics", -1, 4),
167     new Among("l\u00F3gics", 88, 3),
168     new Among("uds", -1, 1),
169     new Among("nces", -1, 1),
170     new Among("ades", -1, 2),
171     new Among("ancies", -1, 1),
172     new Among("encies", -1, 1),
173     new Among("\u00E8ncies", -1, 1),
174     new Among("\u00EDcies", -1, 1),
175     new Among("logies", -1, 3),
176     new Among("inies", -1, 1),
177     new Among("\u00EDnies", -1, 1),
178     new Among("eries", -1, 1),
179     new Among("\u00E0ries", -1, 1),
180     new Among("at\u00F2ries", -1, 1),
181     new Among("bles", -1, 1),
182     new Among("ables", 103, 1),
183     new Among("ibles", 103, 1),
184     new Among("imes", -1, 1),
185     new Among("\u00EDssimes", 106, 1),
186     new Among("qu\u00EDssimes", 107, 5),
187     new Among("formes", -1, 1),
188     new Among("ismes", -1, 1),
189     new Among("ialismes", 110, 1),
190     new Among("ines", -1, 1),
191     new Among("eres", -1, 1),
192     new Among("ores", -1, 1),
193     new Among("dores", 114, 1),
194     new Among("idores", 115, 1),
195     new Among("dures", -1, 1),
196     new Among("eses", -1, 1),
197     new Among("oses", -1, 1),
198     new Among("asses", -1, 1),
199     new Among("ictes", -1, 1),
200     new Among("ites", -1, 1),
201     new Among("otes", -1, 1),
202     new Among("istes", -1, 1),
203     new Among("ialistes", 124, 1),
204     new Among("ionistes", 124, 1),
205     new Among("iques", -1, 4),
206     new Among("l\u00F3giques", 127, 3),
207     new Among("ives", -1, 1),
208     new Among("atives", 129, 1),
209     new Among("log\u00EDes", -1, 3),
210     new Among("alleng\u00FCes", -1, 1),
211     new Among("icis", -1, 1),
212     new Among("\u00EDcis", -1, 1),
213     new Among("logis", -1, 3),
214     new Among("aris", -1, 1),
215     new Among("toris", -1, 1),
216     new Among("ls", -1, 1),
217     new Among("als", 138, 1),
218     new Among("ells", 138, 1),
219     new Among("ims", -1, 1),
220     new Among("\u00EDssims", 141, 1),
221     new Among("qu\u00EDssims", 142, 5),
222     new Among("ions", -1, 1),
223     new Among("cions", 144, 1),
224     new Among("acions", 145, 2),
225     new Among("esos", -1, 1),
226     new Among("osos", -1, 1),
227     new Among("assos", -1, 1),
228     new Among("issos", -1, 1),
229     new Among("ers", -1, 1),
230     new Among("ors", -1, 1),
231     new Among("dors", 152, 1),
232     new Among("adors", 153, 1),
233     new Among("idors", 153, 1),
234     new Among("ats", -1, 1),
235     new Among("itats", 156, 1),
236     new Among("bilitats", 157, 1),
237     new Among("ivitats", 157, 1),
238     new Among("ativitats", 159, 1),
239     new Among("\u00EFtats", 156, 1),
240     new Among("ets", -1, 1),
241     new Among("ants", -1, 1),
242     new Among("ents", -1, 1),
243     new Among("ments", 164, 1),
244     new Among("aments", 165, 1),
245     new Among("ots", -1, 1),
246     new Among("uts", -1, 1),
247     new Among("ius", -1, 1),
248     new Among("trius", 169, 1),
249     new Among("atius", 169, 1),
250     new Among("\u00E8s", -1, 1),
251     new Among("\u00E9s", -1, 1),
252     new Among("\u00EDs", -1, 1),
253     new Among("d\u00EDs", 174, 1),
254     new Among("\u00F3s", -1, 1),
255     new Among("itat", -1, 1),
256     new Among("bilitat", 177, 1),
257     new Among("ivitat", 177, 1),
258     new Among("ativitat", 179, 1),
259     new Among("\u00EFtat", -1, 1),
260     new Among("et", -1, 1),
261     new Among("ant", -1, 1),
262     new Among("ent", -1, 1),
263     new Among("ient", 184, 1),
264     new Among("ment", 184, 1),
265     new Among("ament", 186, 1),
266     new Among("isament", 187, 1),
267     new Among("ot", -1, 1),
268     new Among("isseu", -1, 1),
269     new Among("\u00ECsseu", -1, 1),
270     new Among("\u00EDsseu", -1, 1),
271     new Among("triu", -1, 1),
272     new Among("\u00EDssiu", -1, 1),
273     new Among("atiu", -1, 1),
274     new Among("\u00F3", -1, 1),
275     new Among("i\u00F3", 196, 1),
276     new Among("ci\u00F3", 197, 1),
277     new Among("aci\u00F3", 198, 1)
278   };
279 
280   private static final Among a_3[] = {
281     new Among("aba", -1, 1),
282     new Among("esca", -1, 1),
283     new Among("isca", -1, 1),
284     new Among("\u00EFsca", -1, 1),
285     new Among("ada", -1, 1),
286     new Among("ida", -1, 1),
287     new Among("uda", -1, 1),
288     new Among("\u00EFda", -1, 1),
289     new Among("ia", -1, 1),
290     new Among("aria", 8, 1),
291     new Among("iria", 8, 1),
292     new Among("ara", -1, 1),
293     new Among("iera", -1, 1),
294     new Among("ira", -1, 1),
295     new Among("adora", -1, 1),
296     new Among("\u00EFra", -1, 1),
297     new Among("ava", -1, 1),
298     new Among("ixa", -1, 1),
299     new Among("itza", -1, 1),
300     new Among("\u00EDa", -1, 1),
301     new Among("ar\u00EDa", 19, 1),
302     new Among("er\u00EDa", 19, 1),
303     new Among("ir\u00EDa", 19, 1),
304     new Among("\u00EFa", -1, 1),
305     new Among("isc", -1, 1),
306     new Among("\u00EFsc", -1, 1),
307     new Among("ad", -1, 1),
308     new Among("ed", -1, 1),
309     new Among("id", -1, 1),
310     new Among("ie", -1, 1),
311     new Among("re", -1, 1),
312     new Among("dre", 30, 1),
313     new Among("ase", -1, 1),
314     new Among("iese", -1, 1),
315     new Among("aste", -1, 1),
316     new Among("iste", -1, 1),
317     new Among("ii", -1, 1),
318     new Among("ini", -1, 1),
319     new Among("esqui", -1, 1),
320     new Among("eixi", -1, 1),
321     new Among("itzi", -1, 1),
322     new Among("am", -1, 1),
323     new Among("em", -1, 1),
324     new Among("arem", 42, 1),
325     new Among("irem", 42, 1),
326     new Among("\u00E0rem", 42, 1),
327     new Among("\u00EDrem", 42, 1),
328     new Among("\u00E0ssem", 42, 1),
329     new Among("\u00E9ssem", 42, 1),
330     new Among("iguem", 42, 1),
331     new Among("\u00EFguem", 42, 1),
332     new Among("avem", 42, 1),
333     new Among("\u00E0vem", 42, 1),
334     new Among("\u00E1vem", 42, 1),
335     new Among("ir\u00ECem", 42, 1),
336     new Among("\u00EDem", 42, 1),
337     new Among("ar\u00EDem", 55, 1),
338     new Among("ir\u00EDem", 55, 1),
339     new Among("assim", -1, 1),
340     new Among("essim", -1, 1),
341     new Among("issim", -1, 1),
342     new Among("\u00E0ssim", -1, 1),
343     new Among("\u00E8ssim", -1, 1),
344     new Among("\u00E9ssim", -1, 1),
345     new Among("\u00EDssim", -1, 1),
346     new Among("\u00EFm", -1, 1),
347     new Among("an", -1, 1),
348     new Among("aban", 66, 1),
349     new Among("arian", 66, 1),
350     new Among("aran", 66, 1),
351     new Among("ieran", 66, 1),
352     new Among("iran", 66, 1),
353     new Among("\u00EDan", 66, 1),
354     new Among("ar\u00EDan", 72, 1),
355     new Among("er\u00EDan", 72, 1),
356     new Among("ir\u00EDan", 72, 1),
357     new Among("en", -1, 1),
358     new Among("ien", 76, 1),
359     new Among("arien", 77, 1),
360     new Among("irien", 77, 1),
361     new Among("aren", 76, 1),
362     new Among("eren", 76, 1),
363     new Among("iren", 76, 1),
364     new Among("\u00E0ren", 76, 1),
365     new Among("\u00EFren", 76, 1),
366     new Among("asen", 76, 1),
367     new Among("iesen", 76, 1),
368     new Among("assen", 76, 1),
369     new Among("essen", 76, 1),
370     new Among("issen", 76, 1),
371     new Among("\u00E9ssen", 76, 1),
372     new Among("\u00EFssen", 76, 1),
373     new Among("esquen", 76, 1),
374     new Among("isquen", 76, 1),
375     new Among("\u00EFsquen", 76, 1),
376     new Among("aven", 76, 1),
377     new Among("ixen", 76, 1),
378     new Among("eixen", 96, 1),
379     new Among("\u00EFxen", 76, 1),
380     new Among("\u00EFen", 76, 1),
381     new Among("in", -1, 1),
382     new Among("inin", 100, 1),
383     new Among("sin", 100, 1),
384     new Among("isin", 102, 1),
385     new Among("assin", 102, 1),
386     new Among("essin", 102, 1),
387     new Among("issin", 102, 1),
388     new Among("\u00EFssin", 102, 1),
389     new Among("esquin", 100, 1),
390     new Among("eixin", 100, 1),
391     new Among("aron", -1, 1),
392     new Among("ieron", -1, 1),
393     new Among("ar\u00E1n", -1, 1),
394     new Among("er\u00E1n", -1, 1),
395     new Among("ir\u00E1n", -1, 1),
396     new Among("i\u00EFn", -1, 1),
397     new Among("ado", -1, 1),
398     new Among("ido", -1, 1),
399     new Among("ando", -1, 2),
400     new Among("iendo", -1, 1),
401     new Among("io", -1, 1),
402     new Among("ixo", -1, 1),
403     new Among("eixo", 121, 1),
404     new Among("\u00EFxo", -1, 1),
405     new Among("itzo", -1, 1),
406     new Among("ar", -1, 1),
407     new Among("tzar", 125, 1),
408     new Among("er", -1, 1),
409     new Among("eixer", 127, 1),
410     new Among("ir", -1, 1),
411     new Among("ador", -1, 1),
412     new Among("as", -1, 1),
413     new Among("abas", 131, 1),
414     new Among("adas", 131, 1),
415     new Among("idas", 131, 1),
416     new Among("aras", 131, 1),
417     new Among("ieras", 131, 1),
418     new Among("\u00EDas", 131, 1),
419     new Among("ar\u00EDas", 137, 1),
420     new Among("er\u00EDas", 137, 1),
421     new Among("ir\u00EDas", 137, 1),
422     new Among("ids", -1, 1),
423     new Among("es", -1, 1),
424     new Among("ades", 142, 1),
425     new Among("ides", 142, 1),
426     new Among("udes", 142, 1),
427     new Among("\u00EFdes", 142, 1),
428     new Among("atges", 142, 1),
429     new Among("ies", 142, 1),
430     new Among("aries", 148, 1),
431     new Among("iries", 148, 1),
432     new Among("ares", 142, 1),
433     new Among("ires", 142, 1),
434     new Among("adores", 142, 1),
435     new Among("\u00EFres", 142, 1),
436     new Among("ases", 142, 1),
437     new Among("ieses", 142, 1),
438     new Among("asses", 142, 1),
439     new Among("esses", 142, 1),
440     new Among("isses", 142, 1),
441     new Among("\u00EFsses", 142, 1),
442     new Among("ques", 142, 1),
443     new Among("esques", 161, 1),
444     new Among("\u00EFsques", 161, 1),
445     new Among("aves", 142, 1),
446     new Among("ixes", 142, 1),
447     new Among("eixes", 165, 1),
448     new Among("\u00EFxes", 142, 1),
449     new Among("\u00EFes", 142, 1),
450     new Among("abais", -1, 1),
451     new Among("arais", -1, 1),
452     new Among("ierais", -1, 1),
453     new Among("\u00EDais", -1, 1),
454     new Among("ar\u00EDais", 172, 1),
455     new Among("er\u00EDais", 172, 1),
456     new Among("ir\u00EDais", 172, 1),
457     new Among("aseis", -1, 1),
458     new Among("ieseis", -1, 1),
459     new Among("asteis", -1, 1),
460     new Among("isteis", -1, 1),
461     new Among("inis", -1, 1),
462     new Among("sis", -1, 1),
463     new Among("isis", 181, 1),
464     new Among("assis", 181, 1),
465     new Among("essis", 181, 1),
466     new Among("issis", 181, 1),
467     new Among("\u00EFssis", 181, 1),
468     new Among("esquis", -1, 1),
469     new Among("eixis", -1, 1),
470     new Among("itzis", -1, 1),
471     new Among("\u00E1is", -1, 1),
472     new Among("ar\u00E9is", -1, 1),
473     new Among("er\u00E9is", -1, 1),
474     new Among("ir\u00E9is", -1, 1),
475     new Among("ams", -1, 1),
476     new Among("ados", -1, 1),
477     new Among("idos", -1, 1),
478     new Among("amos", -1, 1),
479     new Among("\u00E1bamos", 197, 1),
480     new Among("\u00E1ramos", 197, 1),
481     new Among("i\u00E9ramos", 197, 1),
482     new Among("\u00EDamos", 197, 1),
483     new Among("ar\u00EDamos", 201, 1),
484     new Among("er\u00EDamos", 201, 1),
485     new Among("ir\u00EDamos", 201, 1),
486     new Among("aremos", -1, 1),
487     new Among("eremos", -1, 1),
488     new Among("iremos", -1, 1),
489     new Among("\u00E1semos", -1, 1),
490     new Among("i\u00E9semos", -1, 1),
491     new Among("imos", -1, 1),
492     new Among("adors", -1, 1),
493     new Among("ass", -1, 1),
494     new Among("erass", 212, 1),
495     new Among("ess", -1, 1),
496     new Among("ats", -1, 1),
497     new Among("its", -1, 1),
498     new Among("ents", -1, 1),
499     new Among("\u00E0s", -1, 1),
500     new Among("ar\u00E0s", 218, 1),
501     new Among("ir\u00E0s", 218, 1),
502     new Among("ar\u00E1s", -1, 1),
503     new Among("er\u00E1s", -1, 1),
504     new Among("ir\u00E1s", -1, 1),
505     new Among("\u00E9s", -1, 1),
506     new Among("ar\u00E9s", 224, 1),
507     new Among("\u00EDs", -1, 1),
508     new Among("i\u00EFs", -1, 1),
509     new Among("at", -1, 1),
510     new Among("it", -1, 1),
511     new Among("ant", -1, 1),
512     new Among("ent", -1, 1),
513     new Among("int", -1, 1),
514     new Among("ut", -1, 1),
515     new Among("\u00EFt", -1, 1),
516     new Among("au", -1, 1),
517     new Among("erau", 235, 1),
518     new Among("ieu", -1, 1),
519     new Among("ineu", -1, 1),
520     new Among("areu", -1, 1),
521     new Among("ireu", -1, 1),
522     new Among("\u00E0reu", -1, 1),
523     new Among("\u00EDreu", -1, 1),
524     new Among("asseu", -1, 1),
525     new Among("esseu", -1, 1),
526     new Among("eresseu", 244, 1),
527     new Among("\u00E0sseu", -1, 1),
528     new Among("\u00E9sseu", -1, 1),
529     new Among("igueu", -1, 1),
530     new Among("\u00EFgueu", -1, 1),
531     new Among("\u00E0veu", -1, 1),
532     new Among("\u00E1veu", -1, 1),
533     new Among("itzeu", -1, 1),
534     new Among("\u00ECeu", -1, 1),
535     new Among("ir\u00ECeu", 253, 1),
536     new Among("\u00EDeu", -1, 1),
537     new Among("ar\u00EDeu", 255, 1),
538     new Among("ir\u00EDeu", 255, 1),
539     new Among("assiu", -1, 1),
540     new Among("issiu", -1, 1),
541     new Among("\u00E0ssiu", -1, 1),
542     new Among("\u00E8ssiu", -1, 1),
543     new Among("\u00E9ssiu", -1, 1),
544     new Among("\u00EDssiu", -1, 1),
545     new Among("\u00EFu", -1, 1),
546     new Among("ix", -1, 1),
547     new Among("eix", 265, 1),
548     new Among("\u00EFx", -1, 1),
549     new Among("itz", -1, 1),
550     new Among("i\u00E0", -1, 1),
551     new Among("ar\u00E0", -1, 1),
552     new Among("ir\u00E0", -1, 1),
553     new Among("itz\u00E0", -1, 1),
554     new Among("ar\u00E1", -1, 1),
555     new Among("er\u00E1", -1, 1),
556     new Among("ir\u00E1", -1, 1),
557     new Among("ir\u00E8", -1, 1),
558     new Among("ar\u00E9", -1, 1),
559     new Among("er\u00E9", -1, 1),
560     new Among("ir\u00E9", -1, 1),
561     new Among("\u00ED", -1, 1),
562     new Among("i\u00EF", -1, 1),
563     new Among("i\u00F3", -1, 1)
564   };
565 
566   private static final Among a_4[] = {
567     new Among("a", -1, 1),
568     new Among("e", -1, 1),
569     new Among("i", -1, 1),
570     new Among("\u00EFn", -1, 1),
571     new Among("o", -1, 1),
572     new Among("ir", -1, 1),
573     new Among("s", -1, 1),
574     new Among("is", 6, 1),
575     new Among("os", 6, 1),
576     new Among("\u00EFs", 6, 1),
577     new Among("it", -1, 1),
578     new Among("eu", -1, 1),
579     new Among("iu", -1, 1),
580     new Among("iqu", -1, 2),
581     new Among("itz", -1, 1),
582     new Among("\u00E0", -1, 1),
583     new Among("\u00E1", -1, 1),
584     new Among("\u00E9", -1, 1),
585     new Among("\u00EC", -1, 1),
586     new Among("\u00ED", -1, 1),
587     new Among("\u00EF", -1, 1),
588     new Among("\u00F3", -1, 1)
589   };
590 
591   private static final char g_v[] = {
592     17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 129, 81, 6, 10
593   };
594 
595   private int I_p2;
596   private int I_p1;
597 
r_mark_regions()598   private boolean r_mark_regions() {
599     I_p1 = limit;
600     I_p2 = limit;
601     int v_1 = cursor;
602     lab0:
603     {
604       golab1:
605       while (true) {
606         lab2:
607         {
608           if (!(in_grouping(g_v, 97, 252))) {
609             break lab2;
610           }
611           break golab1;
612         }
613         if (cursor >= limit) {
614           break lab0;
615         }
616         cursor++;
617       }
618       golab3:
619       while (true) {
620         lab4:
621         {
622           if (!(out_grouping(g_v, 97, 252))) {
623             break lab4;
624           }
625           break golab3;
626         }
627         if (cursor >= limit) {
628           break lab0;
629         }
630         cursor++;
631       }
632       I_p1 = cursor;
633       golab5:
634       while (true) {
635         lab6:
636         {
637           if (!(in_grouping(g_v, 97, 252))) {
638             break lab6;
639           }
640           break golab5;
641         }
642         if (cursor >= limit) {
643           break lab0;
644         }
645         cursor++;
646       }
647       golab7:
648       while (true) {
649         lab8:
650         {
651           if (!(out_grouping(g_v, 97, 252))) {
652             break lab8;
653           }
654           break golab7;
655         }
656         if (cursor >= limit) {
657           break lab0;
658         }
659         cursor++;
660       }
661       I_p2 = cursor;
662     }
663     cursor = v_1;
664     return true;
665   }
666 
r_cleaning()667   private boolean r_cleaning() {
668     int among_var;
669     while (true) {
670       int v_1 = cursor;
671       lab0:
672       {
673         bra = cursor;
674         among_var = find_among(a_0);
675         if (among_var == 0) {
676           break lab0;
677         }
678         ket = cursor;
679         switch (among_var) {
680           case 1:
681             slice_from("a");
682             break;
683           case 2:
684             slice_from("e");
685             break;
686           case 3:
687             slice_from("i");
688             break;
689           case 4:
690             slice_from("o");
691             break;
692           case 5:
693             slice_from("u");
694             break;
695           case 6:
696             slice_from(".");
697             break;
698           case 7:
699             if (cursor >= limit) {
700               break lab0;
701             }
702             cursor++;
703             break;
704         }
705         continue;
706       }
707       cursor = v_1;
708       break;
709     }
710     return true;
711   }
712 
r_R1()713   private boolean r_R1() {
714     if (!(I_p1 <= cursor)) {
715       return false;
716     }
717     return true;
718   }
719 
r_R2()720   private boolean r_R2() {
721     if (!(I_p2 <= cursor)) {
722       return false;
723     }
724     return true;
725   }
726 
r_attached_pronoun()727   private boolean r_attached_pronoun() {
728     ket = cursor;
729     if (find_among_b(a_1) == 0) {
730       return false;
731     }
732     bra = cursor;
733     if (!r_R1()) {
734       return false;
735     }
736     slice_del();
737     return true;
738   }
739 
r_standard_suffix()740   private boolean r_standard_suffix() {
741     int among_var;
742     ket = cursor;
743     among_var = find_among_b(a_2);
744     if (among_var == 0) {
745       return false;
746     }
747     bra = cursor;
748     switch (among_var) {
749       case 1:
750         if (!r_R1()) {
751           return false;
752         }
753         slice_del();
754         break;
755       case 2:
756         if (!r_R2()) {
757           return false;
758         }
759         slice_del();
760         break;
761       case 3:
762         if (!r_R2()) {
763           return false;
764         }
765         slice_from("log");
766         break;
767       case 4:
768         if (!r_R2()) {
769           return false;
770         }
771         slice_from("ic");
772         break;
773       case 5:
774         if (!r_R1()) {
775           return false;
776         }
777         slice_from("c");
778         break;
779     }
780     return true;
781   }
782 
r_verb_suffix()783   private boolean r_verb_suffix() {
784     int among_var;
785     ket = cursor;
786     among_var = find_among_b(a_3);
787     if (among_var == 0) {
788       return false;
789     }
790     bra = cursor;
791     switch (among_var) {
792       case 1:
793         if (!r_R1()) {
794           return false;
795         }
796         slice_del();
797         break;
798       case 2:
799         if (!r_R2()) {
800           return false;
801         }
802         slice_del();
803         break;
804     }
805     return true;
806   }
807 
r_residual_suffix()808   private boolean r_residual_suffix() {
809     int among_var;
810     ket = cursor;
811     among_var = find_among_b(a_4);
812     if (among_var == 0) {
813       return false;
814     }
815     bra = cursor;
816     switch (among_var) {
817       case 1:
818         if (!r_R1()) {
819           return false;
820         }
821         slice_del();
822         break;
823       case 2:
824         if (!r_R1()) {
825           return false;
826         }
827         slice_from("ic");
828         break;
829     }
830     return true;
831   }
832 
833   @Override
stem()834   public boolean stem() {
835     r_mark_regions();
836     limit_backward = cursor;
837     cursor = limit;
838     int v_2 = limit - cursor;
839     r_attached_pronoun();
840     cursor = limit - v_2;
841     int v_3 = limit - cursor;
842     lab0:
843     {
844       lab1:
845       {
846         int v_4 = limit - cursor;
847         lab2:
848         {
849           if (!r_standard_suffix()) {
850             break lab2;
851           }
852           break lab1;
853         }
854         cursor = limit - v_4;
855         if (!r_verb_suffix()) {
856           break lab0;
857         }
858       }
859     }
860     cursor = limit - v_3;
861     int v_5 = limit - cursor;
862     r_residual_suffix();
863     cursor = limit - v_5;
864     cursor = limit_backward;
865     int v_6 = cursor;
866     r_cleaning();
867     cursor = v_6;
868     return true;
869   }
870 
871   @Override
equals(Object o)872   public boolean equals(Object o) {
873     return o instanceof CatalanStemmer;
874   }
875 
876   @Override
hashCode()877   public int hashCode() {
878     return CatalanStemmer.class.getName().hashCode();
879   }
880 }
881