in src/Lucene.Net.Analysis.Common/Analysis/Br/BrazilianStemmer.cs [432:673]
private bool Step1()
{
if (CT is null)
{
return false;
}
// suffix length = 7
if (Suffix(CT, "uciones") && Suffix(R2, "uciones"))
{
CT = ReplaceSuffix(CT, "uciones", "u");
return true;
}
// suffix length = 6
if (CT.Length >= 6)
{
if (Suffix(CT, "imentos") && Suffix(R2, "imentos"))
{
CT = RemoveSuffix(CT, "imentos");
return true;
}
if (Suffix(CT, "amentos") && Suffix(R2, "amentos"))
{
CT = RemoveSuffix(CT, "amentos");
return true;
}
if (Suffix(CT, "adores") && Suffix(R2, "adores"))
{
CT = RemoveSuffix(CT, "adores");
return true;
}
if (Suffix(CT, "adoras") && Suffix(R2, "adoras"))
{
CT = RemoveSuffix(CT, "adoras");
return true;
}
if (Suffix(CT, "logias") && Suffix(R2, "logias"))
{
ReplaceSuffix(CT, "logias", "log");
return true;
}
if (Suffix(CT, "encias") && Suffix(R2, "encias"))
{
CT = ReplaceSuffix(CT, "encias", "ente");
return true;
}
if (Suffix(CT, "amente") && Suffix(R1, "amente"))
{
CT = RemoveSuffix(CT, "amente");
return true;
}
if (Suffix(CT, "idades") && Suffix(R2, "idades"))
{
CT = RemoveSuffix(CT, "idades");
return true;
}
}
// suffix length = 5
if (CT.Length >= 5)
{
if (Suffix(CT, "acoes") && Suffix(R2, "acoes"))
{
CT = RemoveSuffix(CT, "acoes");
return true;
}
if (Suffix(CT, "imento") && Suffix(R2, "imento"))
{
CT = RemoveSuffix(CT, "imento");
return true;
}
if (Suffix(CT, "amento") && Suffix(R2, "amento"))
{
CT = RemoveSuffix(CT, "amento");
return true;
}
if (Suffix(CT, "adora") && Suffix(R2, "adora"))
{
CT = RemoveSuffix(CT, "adora");
return true;
}
if (Suffix(CT, "ismos") && Suffix(R2, "ismos"))
{
CT = RemoveSuffix(CT, "ismos");
return true;
}
if (Suffix(CT, "istas") && Suffix(R2, "istas"))
{
CT = RemoveSuffix(CT, "istas");
return true;
}
if (Suffix(CT, "logia") && Suffix(R2, "logia"))
{
CT = ReplaceSuffix(CT, "logia", "log");
return true;
}
if (Suffix(CT, "ucion") && Suffix(R2, "ucion"))
{
CT = ReplaceSuffix(CT, "ucion", "u");
return true;
}
if (Suffix(CT, "encia") && Suffix(R2, "encia"))
{
CT = ReplaceSuffix(CT, "encia", "ente");
return true;
}
if (Suffix(CT, "mente") && Suffix(R2, "mente"))
{
CT = RemoveSuffix(CT, "mente");
return true;
}
if (Suffix(CT, "idade") && Suffix(R2, "idade"))
{
CT = RemoveSuffix(CT, "idade");
return true;
}
}
// suffix length = 4
if (CT.Length >= 4)
{
if (Suffix(CT, "acao") && Suffix(R2, "acao"))
{
CT = RemoveSuffix(CT, "acao");
return true;
}
if (Suffix(CT, "ezas") && Suffix(R2, "ezas"))
{
CT = RemoveSuffix(CT, "ezas");
return true;
}
if (Suffix(CT, "icos") && Suffix(R2, "icos"))
{
CT = RemoveSuffix(CT, "icos");
return true;
}
if (Suffix(CT, "icas") && Suffix(R2, "icas"))
{
CT = RemoveSuffix(CT, "icas");
return true;
}
if (Suffix(CT, "ismo") && Suffix(R2, "ismo"))
{
CT = RemoveSuffix(CT, "ismo");
return true;
}
if (Suffix(CT, "avel") && Suffix(R2, "avel"))
{
CT = RemoveSuffix(CT, "avel");
return true;
}
if (Suffix(CT, "ivel") && Suffix(R2, "ivel"))
{
CT = RemoveSuffix(CT, "ivel");
return true;
}
if (Suffix(CT, "ista") && Suffix(R2, "ista"))
{
CT = RemoveSuffix(CT, "ista");
return true;
}
if (Suffix(CT, "osos") && Suffix(R2, "osos"))
{
CT = RemoveSuffix(CT, "osos");
return true;
}
if (Suffix(CT, "osas") && Suffix(R2, "osas"))
{
CT = RemoveSuffix(CT, "osas");
return true;
}
if (Suffix(CT, "ador") && Suffix(R2, "ador"))
{
CT = RemoveSuffix(CT, "ador");
return true;
}
if (Suffix(CT, "ivas") && Suffix(R2, "ivas"))
{
CT = RemoveSuffix(CT, "ivas");
return true;
}
if (Suffix(CT, "ivos") && Suffix(R2, "ivos"))
{
CT = RemoveSuffix(CT, "ivos");
return true;
}
if (Suffix(CT, "iras") && Suffix(RV, "iras") && SuffixPreceded(CT, "iras", "e"))
{
CT = ReplaceSuffix(CT, "iras", "ir");
return true;
}
}
// suffix length = 3
if (CT.Length >= 3)
{
if (Suffix(CT, "eza") && Suffix(R2, "eza"))
{
CT = RemoveSuffix(CT, "eza");
return true;
}
if (Suffix(CT, "ico") && Suffix(R2, "ico"))
{
CT = RemoveSuffix(CT, "ico");
return true;
}
if (Suffix(CT, "ica") && Suffix(R2, "ica"))
{
CT = RemoveSuffix(CT, "ica");
return true;
}
if (Suffix(CT, "oso") && Suffix(R2, "oso"))
{
CT = RemoveSuffix(CT, "oso");
return true;
}
if (Suffix(CT, "osa") && Suffix(R2, "osa"))
{
CT = RemoveSuffix(CT, "osa");
return true;
}
if (Suffix(CT, "iva") && Suffix(R2, "iva"))
{
CT = RemoveSuffix(CT, "iva");
return true;
}
if (Suffix(CT, "ivo") && Suffix(R2, "ivo"))
{
CT = RemoveSuffix(CT, "ivo");
return true;
}
if (Suffix(CT, "ira") && Suffix(RV, "ira") && SuffixPreceded(CT, "ira", "e"))
{
CT = ReplaceSuffix(CT, "ira", "ir");
return true;
}
}
// no ending was removed by step1
return false;
}