int stem()

in lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniStemmer.java [31:100]


  int stem(char[] s, int len) {
    // postposition
    if (len > 5 && endsWith(s, len, "دا")) {
      len -= 2;
    } else if (len > 4 && endsWith(s, len, "نا")) {
      len--;
    } else if (len > 6 && endsWith(s, len, "ەوە")) {
      len -= 3;
    }

    // possessive pronoun
    if (len > 6
        && (endsWith(s, len, "مان") || endsWith(s, len, "یان") || endsWith(s, len, "تان"))) {
      len -= 3;
    }

    // indefinite singular ezafe
    if (len > 6 && endsWith(s, len, "ێکی")) {
      return len - 3;
    } else if (len > 7 && endsWith(s, len, "یەکی")) {
      return len - 4;
    }
    // indefinite singular
    if (len > 5 && endsWith(s, len, "ێک")) {
      return len - 2;
    } else if (len > 6 && endsWith(s, len, "یەک")) {
      return len - 3;
    }
    // definite singular
    else if (len > 6 && endsWith(s, len, "ەکە")) {
      return len - 3;
    } else if (len > 5 && endsWith(s, len, "کە")) {
      return len - 2;
    }
    // definite plural
    else if (len > 7 && endsWith(s, len, "ەکان")) {
      return len - 4;
    } else if (len > 6 && endsWith(s, len, "کان")) {
      return len - 3;
    }
    // indefinite plural ezafe
    else if (len > 7 && endsWith(s, len, "یانی")) {
      return len - 4;
    } else if (len > 6 && endsWith(s, len, "انی")) {
      return len - 3;
    }
    // indefinite plural
    else if (len > 6 && endsWith(s, len, "یان")) {
      return len - 3;
    } else if (len > 5 && endsWith(s, len, "ان")) {
      return len - 2;
    }
    // demonstrative plural
    else if (len > 7 && endsWith(s, len, "یانە")) {
      return len - 4;
    } else if (len > 6 && endsWith(s, len, "انە")) {
      return len - 3;
    }
    // demonstrative singular
    else if (len > 5 && (endsWith(s, len, "ایە") || endsWith(s, len, "ەیە"))) {
      return len - 2;
    } else if (len > 4 && endsWith(s, len, "ە")) {
      return len - 1;
    }
    // absolute singular ezafe
    else if (len > 4 && endsWith(s, len, "ی")) {
      return len - 1;
    }
    return len;
  }