in lucene/analysis/common/src/java/org/apache/lucene/analysis/hu/HungarianLightStemmer.java [97:148]
private int removeCase(char[] s, int len) {
if (len > 6 && endsWith(s, len, "kent")) return len - 4;
if (len > 5) {
if (endsWith(s, len, "nak")
|| endsWith(s, len, "nek")
|| endsWith(s, len, "val")
|| endsWith(s, len, "vel")
|| endsWith(s, len, "ert")
|| endsWith(s, len, "rol")
|| endsWith(s, len, "ban")
|| endsWith(s, len, "ben")
|| endsWith(s, len, "bol")
|| endsWith(s, len, "nal")
|| endsWith(s, len, "nel")
|| endsWith(s, len, "hoz")
|| endsWith(s, len, "hez")
|| endsWith(s, len, "tol")) return len - 3;
if (endsWith(s, len, "al") || endsWith(s, len, "el")) {
if (!isVowel(s[len - 3]) && s[len - 3] == s[len - 4]) return len - 3;
}
}
if (len > 4) {
if (endsWith(s, len, "at")
|| endsWith(s, len, "et")
|| endsWith(s, len, "ot")
|| endsWith(s, len, "va")
|| endsWith(s, len, "ve")
|| endsWith(s, len, "ra")
|| endsWith(s, len, "re")
|| endsWith(s, len, "ba")
|| endsWith(s, len, "be")
|| endsWith(s, len, "ul")
|| endsWith(s, len, "ig")) return len - 2;
if ((endsWith(s, len, "on") || endsWith(s, len, "en")) && !isVowel(s[len - 3]))
return len - 2;
switch (s[len - 1]) {
case 't':
case 'n':
return len - 1;
case 'a':
case 'e':
if (s[len - 2] == s[len - 3] && !isVowel(s[len - 2])) return len - 2;
}
}
return len;
}