in lucene/analysis/common/src/java/org/apache/lucene/analysis/br/BrazilianStemmer.java [373:564]
private boolean step1() {
if (CT == 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;
}