private int rule21()

in lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekStemmer.java [782:878]


  private int rule21(char[] s, int len) {
    if (len > 9 && endsWith(s, len, "ιοντουσαν")) return len - 9;

    if (len > 8
        && (endsWith(s, len, "ιομασταν")
            || endsWith(s, len, "ιοσασταν")
            || endsWith(s, len, "ιουμαστε")
            || endsWith(s, len, "οντουσαν"))) return len - 8;

    if (len > 7
        && (endsWith(s, len, "ιεμαστε")
            || endsWith(s, len, "ιεσαστε")
            || endsWith(s, len, "ιομουνα")
            || endsWith(s, len, "ιοσαστε")
            || endsWith(s, len, "ιοσουνα")
            || endsWith(s, len, "ιουνται")
            || endsWith(s, len, "ιουνταν")
            || endsWith(s, len, "ηθηκατε")
            || endsWith(s, len, "ομασταν")
            || endsWith(s, len, "οσασταν")
            || endsWith(s, len, "ουμαστε"))) return len - 7;

    if (len > 6
        && (endsWith(s, len, "ιομουν")
            || endsWith(s, len, "ιονταν")
            || endsWith(s, len, "ιοσουν")
            || endsWith(s, len, "ηθειτε")
            || endsWith(s, len, "ηθηκαν")
            || endsWith(s, len, "ομουνα")
            || endsWith(s, len, "οσαστε")
            || endsWith(s, len, "οσουνα")
            || endsWith(s, len, "ουνται")
            || endsWith(s, len, "ουνταν")
            || endsWith(s, len, "ουσατε"))) return len - 6;

    if (len > 5
        && (endsWith(s, len, "αγατε")
            || endsWith(s, len, "ιεμαι")
            || endsWith(s, len, "ιεται")
            || endsWith(s, len, "ιεσαι")
            || endsWith(s, len, "ιοταν")
            || endsWith(s, len, "ιουμα")
            || endsWith(s, len, "ηθεισ")
            || endsWith(s, len, "ηθουν")
            || endsWith(s, len, "ηκατε")
            || endsWith(s, len, "ησατε")
            || endsWith(s, len, "ησουν")
            || endsWith(s, len, "ομουν")
            || endsWith(s, len, "ονται")
            || endsWith(s, len, "ονταν")
            || endsWith(s, len, "οσουν")
            || endsWith(s, len, "ουμαι")
            || endsWith(s, len, "ουσαν"))) return len - 5;

    if (len > 4
        && (endsWith(s, len, "αγαν")
            || endsWith(s, len, "αμαι")
            || endsWith(s, len, "ασαι")
            || endsWith(s, len, "αται")
            || endsWith(s, len, "ειτε")
            || endsWith(s, len, "εσαι")
            || endsWith(s, len, "εται")
            || endsWith(s, len, "ηδεσ")
            || endsWith(s, len, "ηδων")
            || endsWith(s, len, "ηθει")
            || endsWith(s, len, "ηκαν")
            || endsWith(s, len, "ησαν")
            || endsWith(s, len, "ησει")
            || endsWith(s, len, "ησεσ")
            || endsWith(s, len, "ομαι")
            || endsWith(s, len, "οταν"))) return len - 4;

    if (len > 3
        && (endsWith(s, len, "αει")
            || endsWith(s, len, "εισ")
            || endsWith(s, len, "ηθω")
            || endsWith(s, len, "ησω")
            || endsWith(s, len, "ουν")
            || endsWith(s, len, "ουσ"))) return len - 3;

    if (len > 2
        && (endsWith(s, len, "αν")
            || endsWith(s, len, "ασ")
            || endsWith(s, len, "αω")
            || endsWith(s, len, "ει")
            || endsWith(s, len, "εσ")
            || endsWith(s, len, "ησ")
            || endsWith(s, len, "οι")
            || endsWith(s, len, "οσ")
            || endsWith(s, len, "ου")
            || endsWith(s, len, "υσ")
            || endsWith(s, len, "ων"))) return len - 2;

    if (len > 1 && endsWithVowel(s, len)) return len - 1;

    return len;
  }