in src/Lucene.Net.Analysis.Common/Analysis/El/GreekStemmer.cs [858:975]
private static int Rule21(char[] s, int len) // LUCENENET: CA1822: Mark members as static
{
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;
}