| // This file was generated automatically by the Snowball to Java compiler |
| // http://snowballstem.org/ |
| |
| package org.tartarus.snowball.ext; |
| |
| import org.tartarus.snowball.Among; |
| |
| /** |
| * This class was automatically generated by a Snowball to Java compiler |
| * It implements the stemming algorithm defined by a snowball script. |
| */ |
| |
| @SuppressWarnings("unused") public class ArabicStemmer extends org.tartarus.snowball.SnowballProgram { |
| |
| private static final long serialVersionUID = 1L; |
| |
| /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup(); |
| |
| private final static Among a_0[] = { |
| new Among("\u0640", -1, 2, "", methodObject), |
| new Among("\u064B", -1, 1, "", methodObject), |
| new Among("\u064C", -1, 1, "", methodObject), |
| new Among("\u064D", -1, 1, "", methodObject), |
| new Among("\u064E", -1, 1, "", methodObject), |
| new Among("\u064F", -1, 1, "", methodObject), |
| new Among("\u0650", -1, 1, "", methodObject), |
| new Among("\u0651", -1, 1, "", methodObject), |
| new Among("\u0652", -1, 1, "", methodObject), |
| new Among("\u0660", -1, 3, "", methodObject), |
| new Among("\u0661", -1, 4, "", methodObject), |
| new Among("\u0662", -1, 5, "", methodObject), |
| new Among("\u0663", -1, 6, "", methodObject), |
| new Among("\u0664", -1, 7, "", methodObject), |
| new Among("\u0665", -1, 8, "", methodObject), |
| new Among("\u0666", -1, 9, "", methodObject), |
| new Among("\u0667", -1, 10, "", methodObject), |
| new Among("\u0668", -1, 11, "", methodObject), |
| new Among("\u0669", -1, 12, "", methodObject), |
| new Among("\uFE80", -1, 13, "", methodObject), |
| new Among("\uFE81", -1, 17, "", methodObject), |
| new Among("\uFE82", -1, 17, "", methodObject), |
| new Among("\uFE83", -1, 14, "", methodObject), |
| new Among("\uFE84", -1, 14, "", methodObject), |
| new Among("\uFE85", -1, 18, "", methodObject), |
| new Among("\uFE86", -1, 18, "", methodObject), |
| new Among("\uFE87", -1, 15, "", methodObject), |
| new Among("\uFE88", -1, 15, "", methodObject), |
| new Among("\uFE89", -1, 16, "", methodObject), |
| new Among("\uFE8A", -1, 16, "", methodObject), |
| new Among("\uFE8B", -1, 16, "", methodObject), |
| new Among("\uFE8C", -1, 16, "", methodObject), |
| new Among("\uFE8D", -1, 19, "", methodObject), |
| new Among("\uFE8E", -1, 19, "", methodObject), |
| new Among("\uFE8F", -1, 20, "", methodObject), |
| new Among("\uFE90", -1, 20, "", methodObject), |
| new Among("\uFE91", -1, 20, "", methodObject), |
| new Among("\uFE92", -1, 20, "", methodObject), |
| new Among("\uFE93", -1, 21, "", methodObject), |
| new Among("\uFE94", -1, 21, "", methodObject), |
| new Among("\uFE95", -1, 22, "", methodObject), |
| new Among("\uFE96", -1, 22, "", methodObject), |
| new Among("\uFE97", -1, 22, "", methodObject), |
| new Among("\uFE98", -1, 22, "", methodObject), |
| new Among("\uFE99", -1, 23, "", methodObject), |
| new Among("\uFE9A", -1, 23, "", methodObject), |
| new Among("\uFE9B", -1, 23, "", methodObject), |
| new Among("\uFE9C", -1, 23, "", methodObject), |
| new Among("\uFE9D", -1, 24, "", methodObject), |
| new Among("\uFE9E", -1, 24, "", methodObject), |
| new Among("\uFE9F", -1, 24, "", methodObject), |
| new Among("\uFEA0", -1, 24, "", methodObject), |
| new Among("\uFEA1", -1, 25, "", methodObject), |
| new Among("\uFEA2", -1, 25, "", methodObject), |
| new Among("\uFEA3", -1, 25, "", methodObject), |
| new Among("\uFEA4", -1, 25, "", methodObject), |
| new Among("\uFEA5", -1, 26, "", methodObject), |
| new Among("\uFEA6", -1, 26, "", methodObject), |
| new Among("\uFEA7", -1, 26, "", methodObject), |
| new Among("\uFEA8", -1, 26, "", methodObject), |
| new Among("\uFEA9", -1, 27, "", methodObject), |
| new Among("\uFEAA", -1, 27, "", methodObject), |
| new Among("\uFEAB", -1, 28, "", methodObject), |
| new Among("\uFEAC", -1, 28, "", methodObject), |
| new Among("\uFEAD", -1, 29, "", methodObject), |
| new Among("\uFEAE", -1, 29, "", methodObject), |
| new Among("\uFEAF", -1, 30, "", methodObject), |
| new Among("\uFEB0", -1, 30, "", methodObject), |
| new Among("\uFEB1", -1, 31, "", methodObject), |
| new Among("\uFEB2", -1, 31, "", methodObject), |
| new Among("\uFEB3", -1, 31, "", methodObject), |
| new Among("\uFEB4", -1, 31, "", methodObject), |
| new Among("\uFEB5", -1, 32, "", methodObject), |
| new Among("\uFEB6", -1, 32, "", methodObject), |
| new Among("\uFEB7", -1, 32, "", methodObject), |
| new Among("\uFEB8", -1, 32, "", methodObject), |
| new Among("\uFEB9", -1, 33, "", methodObject), |
| new Among("\uFEBA", -1, 33, "", methodObject), |
| new Among("\uFEBB", -1, 33, "", methodObject), |
| new Among("\uFEBC", -1, 33, "", methodObject), |
| new Among("\uFEBD", -1, 34, "", methodObject), |
| new Among("\uFEBE", -1, 34, "", methodObject), |
| new Among("\uFEBF", -1, 34, "", methodObject), |
| new Among("\uFEC0", -1, 34, "", methodObject), |
| new Among("\uFEC1", -1, 35, "", methodObject), |
| new Among("\uFEC2", -1, 35, "", methodObject), |
| new Among("\uFEC3", -1, 35, "", methodObject), |
| new Among("\uFEC4", -1, 35, "", methodObject), |
| new Among("\uFEC5", -1, 36, "", methodObject), |
| new Among("\uFEC6", -1, 36, "", methodObject), |
| new Among("\uFEC7", -1, 36, "", methodObject), |
| new Among("\uFEC8", -1, 36, "", methodObject), |
| new Among("\uFEC9", -1, 37, "", methodObject), |
| new Among("\uFECA", -1, 37, "", methodObject), |
| new Among("\uFECB", -1, 37, "", methodObject), |
| new Among("\uFECC", -1, 37, "", methodObject), |
| new Among("\uFECD", -1, 38, "", methodObject), |
| new Among("\uFECE", -1, 38, "", methodObject), |
| new Among("\uFECF", -1, 38, "", methodObject), |
| new Among("\uFED0", -1, 38, "", methodObject), |
| new Among("\uFED1", -1, 39, "", methodObject), |
| new Among("\uFED2", -1, 39, "", methodObject), |
| new Among("\uFED3", -1, 39, "", methodObject), |
| new Among("\uFED4", -1, 39, "", methodObject), |
| new Among("\uFED5", -1, 40, "", methodObject), |
| new Among("\uFED6", -1, 40, "", methodObject), |
| new Among("\uFED7", -1, 40, "", methodObject), |
| new Among("\uFED8", -1, 40, "", methodObject), |
| new Among("\uFED9", -1, 41, "", methodObject), |
| new Among("\uFEDA", -1, 41, "", methodObject), |
| new Among("\uFEDB", -1, 41, "", methodObject), |
| new Among("\uFEDC", -1, 41, "", methodObject), |
| new Among("\uFEDD", -1, 42, "", methodObject), |
| new Among("\uFEDE", -1, 42, "", methodObject), |
| new Among("\uFEDF", -1, 42, "", methodObject), |
| new Among("\uFEE0", -1, 42, "", methodObject), |
| new Among("\uFEE1", -1, 43, "", methodObject), |
| new Among("\uFEE2", -1, 43, "", methodObject), |
| new Among("\uFEE3", -1, 43, "", methodObject), |
| new Among("\uFEE4", -1, 43, "", methodObject), |
| new Among("\uFEE5", -1, 44, "", methodObject), |
| new Among("\uFEE6", -1, 44, "", methodObject), |
| new Among("\uFEE7", -1, 44, "", methodObject), |
| new Among("\uFEE8", -1, 44, "", methodObject), |
| new Among("\uFEE9", -1, 45, "", methodObject), |
| new Among("\uFEEA", -1, 45, "", methodObject), |
| new Among("\uFEEB", -1, 45, "", methodObject), |
| new Among("\uFEEC", -1, 45, "", methodObject), |
| new Among("\uFEED", -1, 46, "", methodObject), |
| new Among("\uFEEE", -1, 46, "", methodObject), |
| new Among("\uFEEF", -1, 47, "", methodObject), |
| new Among("\uFEF0", -1, 47, "", methodObject), |
| new Among("\uFEF1", -1, 48, "", methodObject), |
| new Among("\uFEF2", -1, 48, "", methodObject), |
| new Among("\uFEF3", -1, 48, "", methodObject), |
| new Among("\uFEF4", -1, 48, "", methodObject), |
| new Among("\uFEF5", -1, 52, "", methodObject), |
| new Among("\uFEF6", -1, 52, "", methodObject), |
| new Among("\uFEF7", -1, 50, "", methodObject), |
| new Among("\uFEF8", -1, 50, "", methodObject), |
| new Among("\uFEF9", -1, 51, "", methodObject), |
| new Among("\uFEFA", -1, 51, "", methodObject), |
| new Among("\uFEFB", -1, 49, "", methodObject), |
| new Among("\uFEFC", -1, 49, "", methodObject) |
| }; |
| |
| private final static Among a_1[] = { |
| new Among("\u0622", -1, 1, "", methodObject), |
| new Among("\u0623", -1, 1, "", methodObject), |
| new Among("\u0624", -1, 2, "", methodObject), |
| new Among("\u0625", -1, 1, "", methodObject), |
| new Among("\u0626", -1, 3, "", methodObject) |
| }; |
| |
| private final static Among a_2[] = { |
| new Among("\u0622", -1, 1, "", methodObject), |
| new Among("\u0623", -1, 1, "", methodObject), |
| new Among("\u0624", -1, 2, "", methodObject), |
| new Among("\u0625", -1, 1, "", methodObject), |
| new Among("\u0626", -1, 3, "", methodObject) |
| }; |
| |
| private final static Among a_3[] = { |
| new Among("\u0627\u0644", -1, 2, "", methodObject), |
| new Among("\u0628\u0627\u0644", -1, 1, "", methodObject), |
| new Among("\u0643\u0627\u0644", -1, 1, "", methodObject), |
| new Among("\u0644\u0644", -1, 2, "", methodObject) |
| }; |
| |
| private final static Among a_4[] = { |
| new Among("\u0623\u0622", -1, 2, "", methodObject), |
| new Among("\u0623\u0623", -1, 1, "", methodObject), |
| new Among("\u0623\u0624", -1, 3, "", methodObject), |
| new Among("\u0623\u0625", -1, 5, "", methodObject), |
| new Among("\u0623\u0627", -1, 4, "", methodObject) |
| }; |
| |
| private final static Among a_5[] = { |
| new Among("\u0641", -1, 1, "", methodObject), |
| new Among("\u0648", -1, 2, "", methodObject) |
| }; |
| |
| private final static Among a_6[] = { |
| new Among("\u0627\u0644", -1, 2, "", methodObject), |
| new Among("\u0628\u0627\u0644", -1, 1, "", methodObject), |
| new Among("\u0643\u0627\u0644", -1, 1, "", methodObject), |
| new Among("\u0644\u0644", -1, 2, "", methodObject) |
| }; |
| |
| private final static Among a_7[] = { |
| new Among("\u0628", -1, 1, "", methodObject), |
| new Among("\u0628\u0628", 0, 2, "", methodObject), |
| new Among("\u0643\u0643", -1, 3, "", methodObject) |
| }; |
| |
| private final static Among a_8[] = { |
| new Among("\u0633\u0623", -1, 4, "", methodObject), |
| new Among("\u0633\u062A", -1, 2, "", methodObject), |
| new Among("\u0633\u0646", -1, 3, "", methodObject), |
| new Among("\u0633\u064A", -1, 1, "", methodObject) |
| }; |
| |
| private final static Among a_9[] = { |
| new Among("\u062A\u0633\u062A", -1, 1, "", methodObject), |
| new Among("\u0646\u0633\u062A", -1, 1, "", methodObject), |
| new Among("\u064A\u0633\u062A", -1, 1, "", methodObject) |
| }; |
| |
| private final static Among a_10[] = { |
| new Among("\u0643\u0645\u0627", -1, 3, "", methodObject), |
| new Among("\u0647\u0645\u0627", -1, 3, "", methodObject), |
| new Among("\u0646\u0627", -1, 2, "", methodObject), |
| new Among("\u0647\u0627", -1, 2, "", methodObject), |
| new Among("\u0643", -1, 1, "", methodObject), |
| new Among("\u0643\u0645", -1, 2, "", methodObject), |
| new Among("\u0647\u0645", -1, 2, "", methodObject), |
| new Among("\u0647\u0646", -1, 2, "", methodObject), |
| new Among("\u0647", -1, 1, "", methodObject), |
| new Among("\u064A", -1, 1, "", methodObject) |
| }; |
| |
| private final static Among a_11[] = { |
| new Among("\u0646", -1, 1, "", methodObject) |
| }; |
| |
| private final static Among a_12[] = { |
| new Among("\u0627", -1, 1, "", methodObject), |
| new Among("\u0648", -1, 1, "", methodObject), |
| new Among("\u064A", -1, 1, "", methodObject) |
| }; |
| |
| private final static Among a_13[] = { |
| new Among("\u0627\u062A", -1, 1, "", methodObject) |
| }; |
| |
| private final static Among a_14[] = { |
| new Among("\u062A", -1, 1, "", methodObject) |
| }; |
| |
| private final static Among a_15[] = { |
| new Among("\u0629", -1, 1, "", methodObject) |
| }; |
| |
| private final static Among a_16[] = { |
| new Among("\u064A", -1, 1, "", methodObject) |
| }; |
| |
| private final static Among a_17[] = { |
| new Among("\u0643\u0645\u0627", -1, 3, "", methodObject), |
| new Among("\u0647\u0645\u0627", -1, 3, "", methodObject), |
| new Among("\u0646\u0627", -1, 2, "", methodObject), |
| new Among("\u0647\u0627", -1, 2, "", methodObject), |
| new Among("\u0643", -1, 1, "", methodObject), |
| new Among("\u0643\u0645", -1, 2, "", methodObject), |
| new Among("\u0647\u0645", -1, 2, "", methodObject), |
| new Among("\u0643\u0646", -1, 2, "", methodObject), |
| new Among("\u0647\u0646", -1, 2, "", methodObject), |
| new Among("\u0647", -1, 1, "", methodObject), |
| new Among("\u0643\u0645\u0648", -1, 3, "", methodObject), |
| new Among("\u0646\u064A", -1, 2, "", methodObject) |
| }; |
| |
| private final static Among a_18[] = { |
| new Among("\u0627", -1, 2, "", methodObject), |
| new Among("\u062A\u0627", 0, 3, "", methodObject), |
| new Among("\u062A\u0645\u0627", 0, 5, "", methodObject), |
| new Among("\u0646\u0627", 0, 3, "", methodObject), |
| new Among("\u062A", -1, 1, "", methodObject), |
| new Among("\u0646", -1, 2, "", methodObject), |
| new Among("\u0627\u0646", 5, 4, "", methodObject), |
| new Among("\u062A\u0646", 5, 3, "", methodObject), |
| new Among("\u0648\u0646", 5, 4, "", methodObject), |
| new Among("\u064A\u0646", 5, 4, "", methodObject), |
| new Among("\u064A", -1, 2, "", methodObject) |
| }; |
| |
| private final static Among a_19[] = { |
| new Among("\u0648\u0627", -1, 1, "", methodObject), |
| new Among("\u062A\u0645", -1, 1, "", methodObject) |
| }; |
| |
| private final static Among a_20[] = { |
| new Among("\u0648", -1, 1, "", methodObject), |
| new Among("\u062A\u0645\u0648", 0, 2, "", methodObject) |
| }; |
| |
| private final static Among a_21[] = { |
| new Among("\u0649", -1, 1, "", methodObject) |
| }; |
| |
| private boolean B_is_defined; |
| private boolean B_is_verb; |
| private boolean B_is_noun; |
| private int I_word_len; |
| |
| |
| private boolean r_Normalize_pre() { |
| int among_var; |
| // (, line 251 |
| // loop, line 252 |
| for (int v_1 = getCurrent().length(); v_1 > 0; v_1--) |
| { |
| // (, line 252 |
| // or, line 316 |
| lab0: do { |
| int v_2 = cursor; |
| lab1: do { |
| // (, line 253 |
| // [, line 254 |
| bra = cursor; |
| // substring, line 254 |
| among_var = find_among(a_0, a_0.length); |
| if (among_var == 0) |
| { |
| break lab1; |
| } |
| // ], line 254 |
| ket = cursor; |
| switch (among_var) { |
| case 0: |
| break lab1; |
| case 1: |
| // (, line 255 |
| // delete, line 255 |
| slice_del(); |
| break; |
| case 2: |
| // (, line 256 |
| // delete, line 256 |
| slice_del(); |
| break; |
| case 3: |
| // (, line 259 |
| // <-, line 259 |
| slice_from("0"); |
| break; |
| case 4: |
| // (, line 260 |
| // <-, line 260 |
| slice_from("1"); |
| break; |
| case 5: |
| // (, line 261 |
| // <-, line 261 |
| slice_from("2"); |
| break; |
| case 6: |
| // (, line 262 |
| // <-, line 262 |
| slice_from("3"); |
| break; |
| case 7: |
| // (, line 263 |
| // <-, line 263 |
| slice_from("4"); |
| break; |
| case 8: |
| // (, line 264 |
| // <-, line 264 |
| slice_from("5"); |
| break; |
| case 9: |
| // (, line 265 |
| // <-, line 265 |
| slice_from("6"); |
| break; |
| case 10: |
| // (, line 266 |
| // <-, line 266 |
| slice_from("7"); |
| break; |
| case 11: |
| // (, line 267 |
| // <-, line 267 |
| slice_from("8"); |
| break; |
| case 12: |
| // (, line 268 |
| // <-, line 268 |
| slice_from("9"); |
| break; |
| case 13: |
| // (, line 271 |
| // <-, line 271 |
| slice_from("\u0621"); |
| break; |
| case 14: |
| // (, line 272 |
| // <-, line 272 |
| slice_from("\u0623"); |
| break; |
| case 15: |
| // (, line 273 |
| // <-, line 273 |
| slice_from("\u0625"); |
| break; |
| case 16: |
| // (, line 274 |
| // <-, line 274 |
| slice_from("\u0626"); |
| break; |
| case 17: |
| // (, line 275 |
| // <-, line 275 |
| slice_from("\u0622"); |
| break; |
| case 18: |
| // (, line 276 |
| // <-, line 276 |
| slice_from("\u0624"); |
| break; |
| case 19: |
| // (, line 277 |
| // <-, line 277 |
| slice_from("\u0627"); |
| break; |
| case 20: |
| // (, line 278 |
| // <-, line 278 |
| slice_from("\u0628"); |
| break; |
| case 21: |
| // (, line 279 |
| // <-, line 279 |
| slice_from("\u0629"); |
| break; |
| case 22: |
| // (, line 280 |
| // <-, line 280 |
| slice_from("\u062A"); |
| break; |
| case 23: |
| // (, line 281 |
| // <-, line 281 |
| slice_from("\u062B"); |
| break; |
| case 24: |
| // (, line 282 |
| // <-, line 282 |
| slice_from("\u062C"); |
| break; |
| case 25: |
| // (, line 283 |
| // <-, line 283 |
| slice_from("\u062D"); |
| break; |
| case 26: |
| // (, line 284 |
| // <-, line 284 |
| slice_from("\u062E"); |
| break; |
| case 27: |
| // (, line 285 |
| // <-, line 285 |
| slice_from("\u062F"); |
| break; |
| case 28: |
| // (, line 286 |
| // <-, line 286 |
| slice_from("\u0630"); |
| break; |
| case 29: |
| // (, line 287 |
| // <-, line 287 |
| slice_from("\u0631"); |
| break; |
| case 30: |
| // (, line 288 |
| // <-, line 288 |
| slice_from("\u0632"); |
| break; |
| case 31: |
| // (, line 289 |
| // <-, line 289 |
| slice_from("\u0633"); |
| break; |
| case 32: |
| // (, line 290 |
| // <-, line 290 |
| slice_from("\u0634"); |
| break; |
| case 33: |
| // (, line 291 |
| // <-, line 291 |
| slice_from("\u0635"); |
| break; |
| case 34: |
| // (, line 292 |
| // <-, line 292 |
| slice_from("\u0636"); |
| break; |
| case 35: |
| // (, line 293 |
| // <-, line 293 |
| slice_from("\u0637"); |
| break; |
| case 36: |
| // (, line 294 |
| // <-, line 294 |
| slice_from("\u0638"); |
| break; |
| case 37: |
| // (, line 295 |
| // <-, line 295 |
| slice_from("\u0639"); |
| break; |
| case 38: |
| // (, line 296 |
| // <-, line 296 |
| slice_from("\u063A"); |
| break; |
| case 39: |
| // (, line 297 |
| // <-, line 297 |
| slice_from("\u0641"); |
| break; |
| case 40: |
| // (, line 298 |
| // <-, line 298 |
| slice_from("\u0642"); |
| break; |
| case 41: |
| // (, line 299 |
| // <-, line 299 |
| slice_from("\u0643"); |
| break; |
| case 42: |
| // (, line 300 |
| // <-, line 300 |
| slice_from("\u0644"); |
| break; |
| case 43: |
| // (, line 301 |
| // <-, line 301 |
| slice_from("\u0645"); |
| break; |
| case 44: |
| // (, line 302 |
| // <-, line 302 |
| slice_from("\u0646"); |
| break; |
| case 45: |
| // (, line 303 |
| // <-, line 303 |
| slice_from("\u0647"); |
| break; |
| case 46: |
| // (, line 304 |
| // <-, line 304 |
| slice_from("\u0648"); |
| break; |
| case 47: |
| // (, line 305 |
| // <-, line 305 |
| slice_from("\u0649"); |
| break; |
| case 48: |
| // (, line 306 |
| // <-, line 306 |
| slice_from("\u064A"); |
| break; |
| case 49: |
| // (, line 309 |
| // <-, line 309 |
| slice_from("\u0644\u0627"); |
| break; |
| case 50: |
| // (, line 310 |
| // <-, line 310 |
| slice_from("\u0644\u0623"); |
| break; |
| case 51: |
| // (, line 311 |
| // <-, line 311 |
| slice_from("\u0644\u0625"); |
| break; |
| case 52: |
| // (, line 312 |
| // <-, line 312 |
| slice_from("\u0644\u0622"); |
| break; |
| } |
| break lab0; |
| } while (false); |
| cursor = v_2; |
| // next, line 317 |
| if (cursor >= limit) |
| { |
| return false; |
| } |
| cursor++; |
| } while (false); |
| } |
| return true; |
| } |
| |
| private boolean r_Normalize_post() { |
| int among_var; |
| // (, line 321 |
| // do, line 323 |
| int v_1 = cursor; |
| lab0: do { |
| // (, line 323 |
| // backwards, line 325 |
| limit_backward = cursor; |
| cursor = limit; |
| // (, line 325 |
| // [, line 326 |
| ket = cursor; |
| // substring, line 326 |
| among_var = find_among_b(a_1, a_1.length); |
| if (among_var == 0) |
| { |
| break lab0; |
| } |
| // ], line 326 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| break lab0; |
| case 1: |
| // (, line 327 |
| // <-, line 327 |
| slice_from("\u0621"); |
| break; |
| case 2: |
| // (, line 328 |
| // <-, line 328 |
| slice_from("\u0621"); |
| break; |
| case 3: |
| // (, line 329 |
| // <-, line 329 |
| slice_from("\u0621"); |
| break; |
| } |
| cursor = limit_backward; |
| } while (false); |
| cursor = v_1; |
| // do, line 334 |
| int v_2 = cursor; |
| lab1: do { |
| // loop, line 334 |
| for (int v_3 = I_word_len; v_3 > 0; v_3--) |
| { |
| // (, line 334 |
| // or, line 343 |
| lab2: do { |
| int v_4 = cursor; |
| lab3: do { |
| // (, line 335 |
| // [, line 337 |
| bra = cursor; |
| // substring, line 337 |
| among_var = find_among(a_2, a_2.length); |
| if (among_var == 0) |
| { |
| break lab3; |
| } |
| // ], line 337 |
| ket = cursor; |
| switch (among_var) { |
| case 0: |
| break lab3; |
| case 1: |
| // (, line 338 |
| // <-, line 338 |
| slice_from("\u0627"); |
| break; |
| case 2: |
| // (, line 339 |
| // <-, line 339 |
| slice_from("\u0648"); |
| break; |
| case 3: |
| // (, line 340 |
| // <-, line 340 |
| slice_from("\u064A"); |
| break; |
| } |
| break lab2; |
| } while (false); |
| cursor = v_4; |
| // next, line 344 |
| if (cursor >= limit) |
| { |
| break lab1; |
| } |
| cursor++; |
| } while (false); |
| } |
| } while (false); |
| cursor = v_2; |
| return true; |
| } |
| |
| private boolean r_Checks1() { |
| int among_var; |
| // (, line 349 |
| I_word_len = getCurrent().length(); |
| // [, line 351 |
| bra = cursor; |
| // substring, line 351 |
| among_var = find_among(a_3, a_3.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 351 |
| ket = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 352 |
| if (!(I_word_len > 4)) |
| { |
| return false; |
| } |
| // set is_noun, line 352 |
| B_is_noun = true; |
| // unset is_verb, line 352 |
| B_is_verb = false; |
| // set is_defined, line 352 |
| B_is_defined = true; |
| break; |
| case 2: |
| // (, line 353 |
| if (!(I_word_len > 3)) |
| { |
| return false; |
| } |
| // set is_noun, line 353 |
| B_is_noun = true; |
| // unset is_verb, line 353 |
| B_is_verb = false; |
| // set is_defined, line 353 |
| B_is_defined = true; |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Prefix_Step1() { |
| int among_var; |
| // (, line 359 |
| I_word_len = getCurrent().length(); |
| // [, line 361 |
| bra = cursor; |
| // substring, line 361 |
| among_var = find_among(a_4, a_4.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 361 |
| ket = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 362 |
| if (!(I_word_len > 3)) |
| { |
| return false; |
| } |
| // <-, line 362 |
| slice_from("\u0623"); |
| break; |
| case 2: |
| // (, line 363 |
| if (!(I_word_len > 3)) |
| { |
| return false; |
| } |
| // <-, line 363 |
| slice_from("\u0622"); |
| break; |
| case 3: |
| // (, line 364 |
| if (!(I_word_len > 3)) |
| { |
| return false; |
| } |
| // <-, line 364 |
| slice_from("\u0623"); |
| break; |
| case 4: |
| // (, line 365 |
| if (!(I_word_len > 3)) |
| { |
| return false; |
| } |
| // <-, line 365 |
| slice_from("\u0627"); |
| break; |
| case 5: |
| // (, line 366 |
| if (!(I_word_len > 3)) |
| { |
| return false; |
| } |
| // <-, line 366 |
| slice_from("\u0625"); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Prefix_Step2() { |
| int among_var; |
| // (, line 371 |
| I_word_len = getCurrent().length(); |
| // not, line 373 |
| { |
| int v_1 = cursor; |
| lab0: do { |
| // literal, line 373 |
| if (!(eq_s("\u0641\u0627".length(),"\u0641\u0627"))) |
| { |
| break lab0; |
| } |
| return false; |
| } while (false); |
| cursor = v_1; |
| } |
| // not, line 374 |
| { |
| int v_2 = cursor; |
| lab1: do { |
| // literal, line 374 |
| if (!(eq_s("\u0648\u0627".length(),"\u0648\u0627"))) |
| { |
| break lab1; |
| } |
| return false; |
| } while (false); |
| cursor = v_2; |
| } |
| // [, line 375 |
| bra = cursor; |
| // substring, line 375 |
| among_var = find_among(a_5, a_5.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 375 |
| ket = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 376 |
| if (!(I_word_len > 3)) |
| { |
| return false; |
| } |
| // delete, line 376 |
| slice_del(); |
| break; |
| case 2: |
| // (, line 377 |
| if (!(I_word_len > 3)) |
| { |
| return false; |
| } |
| // delete, line 377 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Prefix_Step3a_Noun() { |
| int among_var; |
| // (, line 381 |
| I_word_len = getCurrent().length(); |
| // [, line 383 |
| bra = cursor; |
| // substring, line 383 |
| among_var = find_among(a_6, a_6.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 383 |
| ket = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 384 |
| if (!(I_word_len > 5)) |
| { |
| return false; |
| } |
| // delete, line 384 |
| slice_del(); |
| break; |
| case 2: |
| // (, line 385 |
| if (!(I_word_len > 4)) |
| { |
| return false; |
| } |
| // delete, line 385 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Prefix_Step3b_Noun() { |
| int among_var; |
| // (, line 389 |
| I_word_len = getCurrent().length(); |
| // not, line 391 |
| { |
| int v_1 = cursor; |
| lab0: do { |
| // literal, line 391 |
| if (!(eq_s("\u0628\u0627".length(),"\u0628\u0627"))) |
| { |
| break lab0; |
| } |
| return false; |
| } while (false); |
| cursor = v_1; |
| } |
| // [, line 392 |
| bra = cursor; |
| // substring, line 392 |
| among_var = find_among(a_7, a_7.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 392 |
| ket = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 393 |
| if (!(I_word_len > 3)) |
| { |
| return false; |
| } |
| // delete, line 393 |
| slice_del(); |
| break; |
| case 2: |
| // (, line 395 |
| if (!(I_word_len > 3)) |
| { |
| return false; |
| } |
| // <-, line 395 |
| slice_from("\u0628"); |
| break; |
| case 3: |
| // (, line 396 |
| if (!(I_word_len > 3)) |
| { |
| return false; |
| } |
| // <-, line 396 |
| slice_from("\u0643"); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Prefix_Step3_Verb() { |
| int among_var; |
| // (, line 401 |
| I_word_len = getCurrent().length(); |
| // [, line 403 |
| bra = cursor; |
| // substring, line 403 |
| among_var = find_among(a_8, a_8.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 403 |
| ket = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 405 |
| if (!(I_word_len > 4)) |
| { |
| return false; |
| } |
| // <-, line 405 |
| slice_from("\u064A"); |
| break; |
| case 2: |
| // (, line 406 |
| if (!(I_word_len > 4)) |
| { |
| return false; |
| } |
| // <-, line 406 |
| slice_from("\u062A"); |
| break; |
| case 3: |
| // (, line 407 |
| if (!(I_word_len > 4)) |
| { |
| return false; |
| } |
| // <-, line 407 |
| slice_from("\u0646"); |
| break; |
| case 4: |
| // (, line 408 |
| if (!(I_word_len > 4)) |
| { |
| return false; |
| } |
| // <-, line 408 |
| slice_from("\u0623"); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Prefix_Step4_Verb() { |
| int among_var; |
| // (, line 412 |
| I_word_len = getCurrent().length(); |
| // [, line 414 |
| bra = cursor; |
| // substring, line 414 |
| among_var = find_among(a_9, a_9.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 414 |
| ket = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 415 |
| if (!(I_word_len > 4)) |
| { |
| return false; |
| } |
| // set is_verb, line 415 |
| B_is_verb = true; |
| // unset is_noun, line 415 |
| B_is_noun = false; |
| // <-, line 415 |
| slice_from("\u0627\u0633\u062A"); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Suffix_Noun_Step1a() { |
| int among_var; |
| // (, line 422 |
| I_word_len = getCurrent().length(); |
| // [, line 424 |
| ket = cursor; |
| // substring, line 424 |
| among_var = find_among_b(a_10, a_10.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 424 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 425 |
| if (!(I_word_len >= 4)) |
| { |
| return false; |
| } |
| // delete, line 425 |
| slice_del(); |
| break; |
| case 2: |
| // (, line 426 |
| if (!(I_word_len >= 5)) |
| { |
| return false; |
| } |
| // delete, line 426 |
| slice_del(); |
| break; |
| case 3: |
| // (, line 427 |
| if (!(I_word_len >= 6)) |
| { |
| return false; |
| } |
| // delete, line 427 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Suffix_Noun_Step1b() { |
| int among_var; |
| // (, line 430 |
| I_word_len = getCurrent().length(); |
| // [, line 432 |
| ket = cursor; |
| // substring, line 432 |
| among_var = find_among_b(a_11, a_11.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 432 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 433 |
| if (!(I_word_len > 5)) |
| { |
| return false; |
| } |
| // delete, line 433 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Suffix_Noun_Step2a() { |
| int among_var; |
| // (, line 437 |
| I_word_len = getCurrent().length(); |
| // [, line 439 |
| ket = cursor; |
| // substring, line 439 |
| among_var = find_among_b(a_12, a_12.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 439 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 440 |
| if (!(I_word_len > 4)) |
| { |
| return false; |
| } |
| // delete, line 440 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Suffix_Noun_Step2b() { |
| int among_var; |
| // (, line 444 |
| I_word_len = getCurrent().length(); |
| // [, line 446 |
| ket = cursor; |
| // substring, line 446 |
| among_var = find_among_b(a_13, a_13.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 446 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 447 |
| if (!(I_word_len >= 5)) |
| { |
| return false; |
| } |
| // delete, line 447 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Suffix_Noun_Step2c1() { |
| int among_var; |
| // (, line 451 |
| I_word_len = getCurrent().length(); |
| // [, line 453 |
| ket = cursor; |
| // substring, line 453 |
| among_var = find_among_b(a_14, a_14.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 453 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 454 |
| if (!(I_word_len >= 4)) |
| { |
| return false; |
| } |
| // delete, line 454 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Suffix_Noun_Step2c2() { |
| int among_var; |
| // (, line 457 |
| I_word_len = getCurrent().length(); |
| // [, line 459 |
| ket = cursor; |
| // substring, line 459 |
| among_var = find_among_b(a_15, a_15.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 459 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 460 |
| if (!(I_word_len >= 4)) |
| { |
| return false; |
| } |
| // delete, line 460 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Suffix_Noun_Step3() { |
| int among_var; |
| // (, line 463 |
| I_word_len = getCurrent().length(); |
| // [, line 465 |
| ket = cursor; |
| // substring, line 465 |
| among_var = find_among_b(a_16, a_16.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 465 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 466 |
| if (!(I_word_len >= 3)) |
| { |
| return false; |
| } |
| // delete, line 466 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Suffix_Verb_Step1() { |
| int among_var; |
| // (, line 470 |
| I_word_len = getCurrent().length(); |
| // [, line 472 |
| ket = cursor; |
| // substring, line 472 |
| among_var = find_among_b(a_17, a_17.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 472 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 473 |
| if (!(I_word_len >= 4)) |
| { |
| return false; |
| } |
| // delete, line 473 |
| slice_del(); |
| break; |
| case 2: |
| // (, line 474 |
| if (!(I_word_len >= 5)) |
| { |
| return false; |
| } |
| // delete, line 474 |
| slice_del(); |
| break; |
| case 3: |
| // (, line 475 |
| if (!(I_word_len >= 6)) |
| { |
| return false; |
| } |
| // delete, line 475 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Suffix_Verb_Step2a() { |
| int among_var; |
| // (, line 478 |
| I_word_len = getCurrent().length(); |
| // [, line 480 |
| ket = cursor; |
| // substring, line 480 |
| among_var = find_among_b(a_18, a_18.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 480 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 481 |
| if (!(I_word_len >= 4)) |
| { |
| return false; |
| } |
| // delete, line 481 |
| slice_del(); |
| break; |
| case 2: |
| // (, line 482 |
| if (!(I_word_len >= 4)) |
| { |
| return false; |
| } |
| // delete, line 482 |
| slice_del(); |
| break; |
| case 3: |
| // (, line 483 |
| if (!(I_word_len >= 5)) |
| { |
| return false; |
| } |
| // delete, line 483 |
| slice_del(); |
| break; |
| case 4: |
| // (, line 484 |
| if (!(I_word_len > 5)) |
| { |
| return false; |
| } |
| // delete, line 484 |
| slice_del(); |
| break; |
| case 5: |
| // (, line 485 |
| if (!(I_word_len >= 6)) |
| { |
| return false; |
| } |
| // delete, line 485 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Suffix_Verb_Step2b() { |
| int among_var; |
| // (, line 489 |
| I_word_len = getCurrent().length(); |
| // [, line 491 |
| ket = cursor; |
| // substring, line 491 |
| among_var = find_among_b(a_19, a_19.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 491 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 492 |
| if (!(I_word_len >= 5)) |
| { |
| return false; |
| } |
| // delete, line 492 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Suffix_Verb_Step2c() { |
| int among_var; |
| // (, line 497 |
| I_word_len = getCurrent().length(); |
| // [, line 499 |
| ket = cursor; |
| // substring, line 499 |
| among_var = find_among_b(a_20, a_20.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 499 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 500 |
| if (!(I_word_len >= 4)) |
| { |
| return false; |
| } |
| // delete, line 500 |
| slice_del(); |
| break; |
| case 2: |
| // (, line 501 |
| if (!(I_word_len >= 6)) |
| { |
| return false; |
| } |
| // delete, line 501 |
| slice_del(); |
| break; |
| } |
| return true; |
| } |
| |
| private boolean r_Suffix_All_alef_maqsura() { |
| int among_var; |
| // (, line 505 |
| I_word_len = getCurrent().length(); |
| // [, line 507 |
| ket = cursor; |
| // substring, line 507 |
| among_var = find_among_b(a_21, a_21.length); |
| if (among_var == 0) |
| { |
| return false; |
| } |
| // ], line 507 |
| bra = cursor; |
| switch (among_var) { |
| case 0: |
| return false; |
| case 1: |
| // (, line 508 |
| // <-, line 508 |
| slice_from("\u064A"); |
| break; |
| } |
| return true; |
| } |
| |
| public boolean stem() { |
| // (, line 515 |
| // set is_noun, line 517 |
| B_is_noun = true; |
| // set is_verb, line 518 |
| B_is_verb = true; |
| // unset is_defined, line 519 |
| B_is_defined = false; |
| // do, line 522 |
| int v_1 = cursor; |
| lab0: do { |
| // call Checks1, line 522 |
| if (!r_Checks1()) |
| { |
| break lab0; |
| } |
| } while (false); |
| cursor = v_1; |
| // do, line 525 |
| int v_2 = cursor; |
| lab1: do { |
| // call Normalize_pre, line 525 |
| if (!r_Normalize_pre()) |
| { |
| break lab1; |
| } |
| } while (false); |
| cursor = v_2; |
| // backwards, line 528 |
| limit_backward = cursor; |
| cursor = limit; |
| // (, line 528 |
| // do, line 530 |
| int v_3 = limit - cursor; |
| lab2: do { |
| // (, line 530 |
| // or, line 544 |
| lab3: do { |
| int v_4 = limit - cursor; |
| lab4: do { |
| // (, line 532 |
| // Boolean test is_verb, line 533 |
| if (!(B_is_verb)) |
| { |
| break lab4; |
| } |
| // (, line 534 |
| // or, line 539 |
| lab5: do { |
| int v_5 = limit - cursor; |
| lab6: do { |
| // (, line 535 |
| // (, line 536 |
| // atleast, line 536 |
| { |
| int v_6 = 1; |
| // atleast, line 536 |
| replab7: while(true) |
| { |
| int v_7 = limit - cursor; |
| lab8: do { |
| // call Suffix_Verb_Step1, line 536 |
| if (!r_Suffix_Verb_Step1()) |
| { |
| break lab8; |
| } |
| v_6--; |
| continue replab7; |
| } while (false); |
| cursor = limit - v_7; |
| break replab7; |
| } |
| if (v_6 > 0) |
| { |
| break lab6; |
| } |
| } |
| // (, line 537 |
| // or, line 537 |
| lab9: do { |
| int v_8 = limit - cursor; |
| lab10: do { |
| // call Suffix_Verb_Step2a, line 537 |
| if (!r_Suffix_Verb_Step2a()) |
| { |
| break lab10; |
| } |
| break lab9; |
| } while (false); |
| cursor = limit - v_8; |
| lab11: do { |
| // call Suffix_Verb_Step2c, line 537 |
| if (!r_Suffix_Verb_Step2c()) |
| { |
| break lab11; |
| } |
| break lab9; |
| } while (false); |
| cursor = limit - v_8; |
| // next, line 537 |
| if (cursor <= limit_backward) |
| { |
| break lab6; |
| } |
| cursor--; |
| } while (false); |
| break lab5; |
| } while (false); |
| cursor = limit - v_5; |
| lab12: do { |
| // call Suffix_Verb_Step2b, line 539 |
| if (!r_Suffix_Verb_Step2b()) |
| { |
| break lab12; |
| } |
| break lab5; |
| } while (false); |
| cursor = limit - v_5; |
| // call Suffix_Verb_Step2a, line 540 |
| if (!r_Suffix_Verb_Step2a()) |
| { |
| break lab4; |
| } |
| } while (false); |
| break lab3; |
| } while (false); |
| cursor = limit - v_4; |
| lab13: do { |
| // (, line 544 |
| // Boolean test is_noun, line 545 |
| if (!(B_is_noun)) |
| { |
| break lab13; |
| } |
| // (, line 546 |
| // try, line 548 |
| int v_9 = limit - cursor; |
| lab14: do { |
| // (, line 548 |
| // or, line 550 |
| lab15: do { |
| int v_10 = limit - cursor; |
| lab16: do { |
| // call Suffix_Noun_Step2c2, line 549 |
| if (!r_Suffix_Noun_Step2c2()) |
| { |
| break lab16; |
| } |
| break lab15; |
| } while (false); |
| cursor = limit - v_10; |
| lab17: do { |
| // (, line 550 |
| // not, line 550 |
| lab18: do { |
| // Boolean test is_defined, line 550 |
| if (!(B_is_defined)) |
| { |
| break lab18; |
| } |
| break lab17; |
| } while (false); |
| // call Suffix_Noun_Step1a, line 550 |
| if (!r_Suffix_Noun_Step1a()) |
| { |
| break lab17; |
| } |
| // (, line 550 |
| // or, line 552 |
| lab19: do { |
| int v_12 = limit - cursor; |
| lab20: do { |
| // call Suffix_Noun_Step2a, line 551 |
| if (!r_Suffix_Noun_Step2a()) |
| { |
| break lab20; |
| } |
| break lab19; |
| } while (false); |
| cursor = limit - v_12; |
| lab21: do { |
| // call Suffix_Noun_Step2b, line 552 |
| if (!r_Suffix_Noun_Step2b()) |
| { |
| break lab21; |
| } |
| break lab19; |
| } while (false); |
| cursor = limit - v_12; |
| lab22: do { |
| // call Suffix_Noun_Step2c1, line 553 |
| if (!r_Suffix_Noun_Step2c1()) |
| { |
| break lab22; |
| } |
| break lab19; |
| } while (false); |
| cursor = limit - v_12; |
| // next, line 554 |
| if (cursor <= limit_backward) |
| { |
| break lab17; |
| } |
| cursor--; |
| } while (false); |
| break lab15; |
| } while (false); |
| cursor = limit - v_10; |
| lab23: do { |
| // (, line 555 |
| // call Suffix_Noun_Step1b, line 555 |
| if (!r_Suffix_Noun_Step1b()) |
| { |
| break lab23; |
| } |
| // (, line 555 |
| // or, line 557 |
| lab24: do { |
| int v_13 = limit - cursor; |
| lab25: do { |
| // call Suffix_Noun_Step2a, line 556 |
| if (!r_Suffix_Noun_Step2a()) |
| { |
| break lab25; |
| } |
| break lab24; |
| } while (false); |
| cursor = limit - v_13; |
| lab26: do { |
| // call Suffix_Noun_Step2b, line 557 |
| if (!r_Suffix_Noun_Step2b()) |
| { |
| break lab26; |
| } |
| break lab24; |
| } while (false); |
| cursor = limit - v_13; |
| // call Suffix_Noun_Step2c1, line 558 |
| if (!r_Suffix_Noun_Step2c1()) |
| { |
| break lab23; |
| } |
| } while (false); |
| break lab15; |
| } while (false); |
| cursor = limit - v_10; |
| lab27: do { |
| // (, line 559 |
| // not, line 559 |
| lab28: do { |
| // Boolean test is_defined, line 559 |
| if (!(B_is_defined)) |
| { |
| break lab28; |
| } |
| break lab27; |
| } while (false); |
| // call Suffix_Noun_Step2a, line 559 |
| if (!r_Suffix_Noun_Step2a()) |
| { |
| break lab27; |
| } |
| break lab15; |
| } while (false); |
| cursor = limit - v_10; |
| // (, line 560 |
| // call Suffix_Noun_Step2b, line 560 |
| if (!r_Suffix_Noun_Step2b()) |
| { |
| cursor = limit - v_9; |
| break lab14; |
| } |
| } while (false); |
| } while (false); |
| // call Suffix_Noun_Step3, line 562 |
| if (!r_Suffix_Noun_Step3()) |
| { |
| break lab13; |
| } |
| break lab3; |
| } while (false); |
| cursor = limit - v_4; |
| // call Suffix_All_alef_maqsura, line 568 |
| if (!r_Suffix_All_alef_maqsura()) |
| { |
| break lab2; |
| } |
| } while (false); |
| } while (false); |
| cursor = limit - v_3; |
| cursor = limit_backward; |
| // do, line 573 |
| int v_15 = cursor; |
| lab29: do { |
| // (, line 573 |
| // try, line 574 |
| int v_16 = cursor; |
| lab30: do { |
| // call Prefix_Step1, line 574 |
| if (!r_Prefix_Step1()) |
| { |
| cursor = v_16; |
| break lab30; |
| } |
| } while (false); |
| // try, line 575 |
| int v_17 = cursor; |
| lab31: do { |
| // call Prefix_Step2, line 575 |
| if (!r_Prefix_Step2()) |
| { |
| cursor = v_17; |
| break lab31; |
| } |
| } while (false); |
| // (, line 576 |
| // or, line 577 |
| lab32: do { |
| int v_18 = cursor; |
| lab33: do { |
| // call Prefix_Step3a_Noun, line 576 |
| if (!r_Prefix_Step3a_Noun()) |
| { |
| break lab33; |
| } |
| break lab32; |
| } while (false); |
| cursor = v_18; |
| lab34: do { |
| // (, line 577 |
| // Boolean test is_noun, line 577 |
| if (!(B_is_noun)) |
| { |
| break lab34; |
| } |
| // call Prefix_Step3b_Noun, line 577 |
| if (!r_Prefix_Step3b_Noun()) |
| { |
| break lab34; |
| } |
| break lab32; |
| } while (false); |
| cursor = v_18; |
| // (, line 578 |
| // Boolean test is_verb, line 578 |
| if (!(B_is_verb)) |
| { |
| break lab29; |
| } |
| // try, line 578 |
| int v_19 = cursor; |
| lab35: do { |
| // call Prefix_Step3_Verb, line 578 |
| if (!r_Prefix_Step3_Verb()) |
| { |
| cursor = v_19; |
| break lab35; |
| } |
| } while (false); |
| // call Prefix_Step4_Verb, line 578 |
| if (!r_Prefix_Step4_Verb()) |
| { |
| break lab29; |
| } |
| } while (false); |
| } while (false); |
| cursor = v_15; |
| // do, line 583 |
| int v_20 = cursor; |
| lab36: do { |
| // call Normalize_post, line 583 |
| if (!r_Normalize_post()) |
| { |
| break lab36; |
| } |
| } while (false); |
| cursor = v_20; |
| return true; |
| } |
| |
| public boolean equals( Object o ) { |
| return o instanceof ArabicStemmer; |
| } |
| |
| public int hashCode() { |
| return ArabicStemmer.class.getName().hashCode(); |
| } |
| |
| |
| |
| } |