xref: /Lucene/lucene/analysis/common/src/java/org/tartarus/snowball/ext/ArmenianStemmer.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 ArmenianStemmer 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("\u0580\u0578\u0580\u0564", -1, 1),
21     new Among("\u0565\u0580\u0578\u0580\u0564", 0, 1),
22     new Among("\u0561\u056C\u056B", -1, 1),
23     new Among("\u0561\u056F\u056B", -1, 1),
24     new Among("\u0578\u0580\u0561\u056F", -1, 1),
25     new Among("\u0565\u0572", -1, 1),
26     new Among("\u0561\u056F\u0561\u0576", -1, 1),
27     new Among("\u0561\u0580\u0561\u0576", -1, 1),
28     new Among("\u0565\u0576", -1, 1),
29     new Among("\u0565\u056F\u0565\u0576", 8, 1),
30     new Among("\u0565\u0580\u0565\u0576", 8, 1),
31     new Among("\u0578\u0580\u0567\u0576", -1, 1),
32     new Among("\u056B\u0576", -1, 1),
33     new Among("\u0563\u056B\u0576", 12, 1),
34     new Among("\u0578\u057E\u056B\u0576", 12, 1),
35     new Among("\u056C\u0561\u0575\u0576", -1, 1),
36     new Among("\u057E\u0578\u0582\u0576", -1, 1),
37     new Among("\u057A\u0565\u057D", -1, 1),
38     new Among("\u056B\u057E", -1, 1),
39     new Among("\u0561\u057F", -1, 1),
40     new Among("\u0561\u057E\u0565\u057F", -1, 1),
41     new Among("\u056F\u0578\u057F", -1, 1),
42     new Among("\u0562\u0561\u0580", -1, 1)
43   };
44 
45   private static final Among a_1[] = {
46     new Among("\u0561", -1, 1),
47     new Among("\u0561\u0581\u0561", 0, 1),
48     new Among("\u0565\u0581\u0561", 0, 1),
49     new Among("\u057E\u0565", -1, 1),
50     new Among("\u0561\u0581\u0580\u056B", -1, 1),
51     new Among("\u0561\u0581\u056B", -1, 1),
52     new Among("\u0565\u0581\u056B", -1, 1),
53     new Among("\u057E\u0565\u0581\u056B", 6, 1),
54     new Among("\u0561\u056C", -1, 1),
55     new Among("\u0568\u0561\u056C", 8, 1),
56     new Among("\u0561\u0576\u0561\u056C", 8, 1),
57     new Among("\u0565\u0576\u0561\u056C", 8, 1),
58     new Among("\u0561\u0581\u0576\u0561\u056C", 8, 1),
59     new Among("\u0565\u056C", -1, 1),
60     new Among("\u0568\u0565\u056C", 13, 1),
61     new Among("\u0576\u0565\u056C", 13, 1),
62     new Among("\u0581\u0576\u0565\u056C", 15, 1),
63     new Among("\u0565\u0581\u0576\u0565\u056C", 16, 1),
64     new Among("\u0579\u0565\u056C", 13, 1),
65     new Among("\u057E\u0565\u056C", 13, 1),
66     new Among("\u0561\u0581\u057E\u0565\u056C", 19, 1),
67     new Among("\u0565\u0581\u057E\u0565\u056C", 19, 1),
68     new Among("\u057F\u0565\u056C", 13, 1),
69     new Among("\u0561\u057F\u0565\u056C", 22, 1),
70     new Among("\u0578\u057F\u0565\u056C", 22, 1),
71     new Among("\u056F\u0578\u057F\u0565\u056C", 24, 1),
72     new Among("\u057E\u0561\u056E", -1, 1),
73     new Among("\u0578\u0582\u0574", -1, 1),
74     new Among("\u057E\u0578\u0582\u0574", 27, 1),
75     new Among("\u0561\u0576", -1, 1),
76     new Among("\u0581\u0561\u0576", 29, 1),
77     new Among("\u0561\u0581\u0561\u0576", 30, 1),
78     new Among("\u0561\u0581\u0580\u056B\u0576", -1, 1),
79     new Among("\u0561\u0581\u056B\u0576", -1, 1),
80     new Among("\u0565\u0581\u056B\u0576", -1, 1),
81     new Among("\u057E\u0565\u0581\u056B\u0576", 34, 1),
82     new Among("\u0561\u056C\u056B\u057D", -1, 1),
83     new Among("\u0565\u056C\u056B\u057D", -1, 1),
84     new Among("\u0561\u057E", -1, 1),
85     new Among("\u0561\u0581\u0561\u057E", 38, 1),
86     new Among("\u0565\u0581\u0561\u057E", 38, 1),
87     new Among("\u0561\u056C\u0578\u057E", -1, 1),
88     new Among("\u0565\u056C\u0578\u057E", -1, 1),
89     new Among("\u0561\u0580", -1, 1),
90     new Among("\u0561\u0581\u0561\u0580", 43, 1),
91     new Among("\u0565\u0581\u0561\u0580", 43, 1),
92     new Among("\u0561\u0581\u0580\u056B\u0580", -1, 1),
93     new Among("\u0561\u0581\u056B\u0580", -1, 1),
94     new Among("\u0565\u0581\u056B\u0580", -1, 1),
95     new Among("\u057E\u0565\u0581\u056B\u0580", 48, 1),
96     new Among("\u0561\u0581", -1, 1),
97     new Among("\u0565\u0581", -1, 1),
98     new Among("\u0561\u0581\u0580\u0565\u0581", 51, 1),
99     new Among("\u0561\u056C\u0578\u0582\u0581", -1, 1),
100     new Among("\u0565\u056C\u0578\u0582\u0581", -1, 1),
101     new Among("\u0561\u056C\u0578\u0582", -1, 1),
102     new Among("\u0565\u056C\u0578\u0582", -1, 1),
103     new Among("\u0561\u0584", -1, 1),
104     new Among("\u0581\u0561\u0584", 57, 1),
105     new Among("\u0561\u0581\u0561\u0584", 58, 1),
106     new Among("\u0561\u0581\u0580\u056B\u0584", -1, 1),
107     new Among("\u0561\u0581\u056B\u0584", -1, 1),
108     new Among("\u0565\u0581\u056B\u0584", -1, 1),
109     new Among("\u057E\u0565\u0581\u056B\u0584", 62, 1),
110     new Among("\u0561\u0576\u0584", -1, 1),
111     new Among("\u0581\u0561\u0576\u0584", 64, 1),
112     new Among("\u0561\u0581\u0561\u0576\u0584", 65, 1),
113     new Among("\u0561\u0581\u0580\u056B\u0576\u0584", -1, 1),
114     new Among("\u0561\u0581\u056B\u0576\u0584", -1, 1),
115     new Among("\u0565\u0581\u056B\u0576\u0584", -1, 1),
116     new Among("\u057E\u0565\u0581\u056B\u0576\u0584", 69, 1)
117   };
118 
119   private static final Among a_2[] = {
120     new Among("\u0578\u0580\u0564", -1, 1),
121     new Among("\u0578\u0582\u0575\u0569", -1, 1),
122     new Among("\u0578\u0582\u0570\u056B", -1, 1),
123     new Among("\u0581\u056B", -1, 1),
124     new Among("\u056B\u056C", -1, 1),
125     new Among("\u0561\u056F", -1, 1),
126     new Among("\u0575\u0561\u056F", 5, 1),
127     new Among("\u0561\u0576\u0561\u056F", 5, 1),
128     new Among("\u056B\u056F", -1, 1),
129     new Among("\u0578\u0582\u056F", -1, 1),
130     new Among("\u0561\u0576", -1, 1),
131     new Among("\u057A\u0561\u0576", 10, 1),
132     new Among("\u057D\u057F\u0561\u0576", 10, 1),
133     new Among("\u0561\u0580\u0561\u0576", 10, 1),
134     new Among("\u0565\u0572\u0567\u0576", -1, 1),
135     new Among("\u0575\u0578\u0582\u0576", -1, 1),
136     new Among("\u0578\u0582\u0569\u0575\u0578\u0582\u0576", 15, 1),
137     new Among("\u0561\u056E\u0578", -1, 1),
138     new Among("\u056B\u0579", -1, 1),
139     new Among("\u0578\u0582\u057D", -1, 1),
140     new Among("\u0578\u0582\u057D\u057F", -1, 1),
141     new Among("\u0563\u0561\u0580", -1, 1),
142     new Among("\u057E\u0578\u0580", -1, 1),
143     new Among("\u0561\u057E\u0578\u0580", 22, 1),
144     new Among("\u0578\u0581", -1, 1),
145     new Among("\u0561\u0576\u0585\u0581", -1, 1),
146     new Among("\u0578\u0582", -1, 1),
147     new Among("\u0584", -1, 1),
148     new Among("\u0579\u0565\u0584", 27, 1),
149     new Among("\u056B\u0584", 27, 1),
150     new Among("\u0561\u056C\u056B\u0584", 29, 1),
151     new Among("\u0561\u0576\u056B\u0584", 29, 1),
152     new Among("\u057E\u0561\u056E\u0584", 27, 1),
153     new Among("\u0578\u0582\u0575\u0584", 27, 1),
154     new Among("\u0565\u0576\u0584", 27, 1),
155     new Among("\u0578\u0576\u0584", 27, 1),
156     new Among("\u0578\u0582\u0576\u0584", 27, 1),
157     new Among("\u0574\u0578\u0582\u0576\u0584", 36, 1),
158     new Among("\u056B\u0579\u0584", 27, 1),
159     new Among("\u0561\u0580\u0584", 27, 1)
160   };
161 
162   private static final Among a_3[] = {
163     new Among("\u057D\u0561", -1, 1),
164     new Among("\u057E\u0561", -1, 1),
165     new Among("\u0561\u0574\u0562", -1, 1),
166     new Among("\u0564", -1, 1),
167     new Among("\u0561\u0576\u0564", 3, 1),
168     new Among("\u0578\u0582\u0569\u0575\u0561\u0576\u0564", 4, 1),
169     new Among("\u057E\u0561\u0576\u0564", 4, 1),
170     new Among("\u0578\u057B\u0564", 3, 1),
171     new Among("\u0565\u0580\u0564", 3, 1),
172     new Among("\u0576\u0565\u0580\u0564", 8, 1),
173     new Among("\u0578\u0582\u0564", 3, 1),
174     new Among("\u0568", -1, 1),
175     new Among("\u0561\u0576\u0568", 11, 1),
176     new Among("\u0578\u0582\u0569\u0575\u0561\u0576\u0568", 12, 1),
177     new Among("\u057E\u0561\u0576\u0568", 12, 1),
178     new Among("\u0578\u057B\u0568", 11, 1),
179     new Among("\u0565\u0580\u0568", 11, 1),
180     new Among("\u0576\u0565\u0580\u0568", 16, 1),
181     new Among("\u056B", -1, 1),
182     new Among("\u057E\u056B", 18, 1),
183     new Among("\u0565\u0580\u056B", 18, 1),
184     new Among("\u0576\u0565\u0580\u056B", 20, 1),
185     new Among("\u0561\u0576\u0578\u0582\u0574", -1, 1),
186     new Among("\u0565\u0580\u0578\u0582\u0574", -1, 1),
187     new Among("\u0576\u0565\u0580\u0578\u0582\u0574", 23, 1),
188     new Among("\u0576", -1, 1),
189     new Among("\u0561\u0576", 25, 1),
190     new Among("\u0578\u0582\u0569\u0575\u0561\u0576", 26, 1),
191     new Among("\u057E\u0561\u0576", 26, 1),
192     new Among("\u056B\u0576", 25, 1),
193     new Among("\u0565\u0580\u056B\u0576", 29, 1),
194     new Among("\u0576\u0565\u0580\u056B\u0576", 30, 1),
195     new Among("\u0578\u0582\u0569\u0575\u0561\u0576\u0576", 25, 1),
196     new Among("\u0565\u0580\u0576", 25, 1),
197     new Among("\u0576\u0565\u0580\u0576", 33, 1),
198     new Among("\u0578\u0582\u0576", 25, 1),
199     new Among("\u0578\u057B", -1, 1),
200     new Among("\u0578\u0582\u0569\u0575\u0561\u0576\u057D", -1, 1),
201     new Among("\u057E\u0561\u0576\u057D", -1, 1),
202     new Among("\u0578\u057B\u057D", -1, 1),
203     new Among("\u0578\u057E", -1, 1),
204     new Among("\u0561\u0576\u0578\u057E", 40, 1),
205     new Among("\u057E\u0578\u057E", 40, 1),
206     new Among("\u0565\u0580\u0578\u057E", 40, 1),
207     new Among("\u0576\u0565\u0580\u0578\u057E", 43, 1),
208     new Among("\u0565\u0580", -1, 1),
209     new Among("\u0576\u0565\u0580", 45, 1),
210     new Among("\u0581", -1, 1),
211     new Among("\u056B\u0581", 47, 1),
212     new Among("\u057E\u0561\u0576\u056B\u0581", 48, 1),
213     new Among("\u0578\u057B\u056B\u0581", 48, 1),
214     new Among("\u057E\u056B\u0581", 48, 1),
215     new Among("\u0565\u0580\u056B\u0581", 48, 1),
216     new Among("\u0576\u0565\u0580\u056B\u0581", 52, 1),
217     new Among("\u0581\u056B\u0581", 48, 1),
218     new Among("\u0578\u0581", 47, 1),
219     new Among("\u0578\u0582\u0581", 47, 1)
220   };
221 
222   private static final char g_v[] = {209, 4, 128, 0, 18};
223 
224   private int I_p2;
225   private int I_pV;
226 
r_mark_regions()227   private boolean r_mark_regions() {
228     I_pV = limit;
229     I_p2 = limit;
230     int v_1 = cursor;
231     lab0:
232     {
233       golab1:
234       while (true) {
235         lab2:
236         {
237           if (!(in_grouping(g_v, 1377, 1413))) {
238             break lab2;
239           }
240           break golab1;
241         }
242         if (cursor >= limit) {
243           break lab0;
244         }
245         cursor++;
246       }
247       I_pV = cursor;
248       golab3:
249       while (true) {
250         lab4:
251         {
252           if (!(out_grouping(g_v, 1377, 1413))) {
253             break lab4;
254           }
255           break golab3;
256         }
257         if (cursor >= limit) {
258           break lab0;
259         }
260         cursor++;
261       }
262       golab5:
263       while (true) {
264         lab6:
265         {
266           if (!(in_grouping(g_v, 1377, 1413))) {
267             break lab6;
268           }
269           break golab5;
270         }
271         if (cursor >= limit) {
272           break lab0;
273         }
274         cursor++;
275       }
276       golab7:
277       while (true) {
278         lab8:
279         {
280           if (!(out_grouping(g_v, 1377, 1413))) {
281             break lab8;
282           }
283           break golab7;
284         }
285         if (cursor >= limit) {
286           break lab0;
287         }
288         cursor++;
289       }
290       I_p2 = cursor;
291     }
292     cursor = v_1;
293     return true;
294   }
295 
r_R2()296   private boolean r_R2() {
297     if (!(I_p2 <= cursor)) {
298       return false;
299     }
300     return true;
301   }
302 
r_adjective()303   private boolean r_adjective() {
304     ket = cursor;
305     if (find_among_b(a_0) == 0) {
306       return false;
307     }
308     bra = cursor;
309     slice_del();
310     return true;
311   }
312 
r_verb()313   private boolean r_verb() {
314     ket = cursor;
315     if (find_among_b(a_1) == 0) {
316       return false;
317     }
318     bra = cursor;
319     slice_del();
320     return true;
321   }
322 
r_noun()323   private boolean r_noun() {
324     ket = cursor;
325     if (find_among_b(a_2) == 0) {
326       return false;
327     }
328     bra = cursor;
329     slice_del();
330     return true;
331   }
332 
r_ending()333   private boolean r_ending() {
334     ket = cursor;
335     if (find_among_b(a_3) == 0) {
336       return false;
337     }
338     bra = cursor;
339     if (!r_R2()) {
340       return false;
341     }
342     slice_del();
343     return true;
344   }
345 
346   @Override
stem()347   public boolean stem() {
348     r_mark_regions();
349     limit_backward = cursor;
350     cursor = limit;
351     if (cursor < I_pV) {
352       return false;
353     }
354     int v_3 = limit_backward;
355     limit_backward = I_pV;
356     int v_4 = limit - cursor;
357     r_ending();
358     cursor = limit - v_4;
359     int v_5 = limit - cursor;
360     r_verb();
361     cursor = limit - v_5;
362     int v_6 = limit - cursor;
363     r_adjective();
364     cursor = limit - v_6;
365     int v_7 = limit - cursor;
366     r_noun();
367     cursor = limit - v_7;
368     limit_backward = v_3;
369     cursor = limit_backward;
370     return true;
371   }
372 
373   @Override
equals(Object o)374   public boolean equals(Object o) {
375     return o instanceof ArmenianStemmer;
376   }
377 
378   @Override
hashCode()379   public int hashCode() {
380     return ArmenianStemmer.class.getName().hashCode();
381   }
382 }
383