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