#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(unused_mut)]
#![allow(unused_parens)]
#![allow(unused_variables)]
use crate::snowball::Among;
use crate::snowball::SnowballEnv;
#[derive(Clone)]
struct Context {
i_p2: i32,
i_p1: i32,
}
static A_0: &'static [Among<Context>; 13] = &[
Among("", -1, 7, None),
Among("ยท", 0, 6, None),
Among("ร ", 0, 1, None),
Among("รก", 0, 1, None),
Among("รจ", 0, 2, None),
Among("รฉ", 0, 2, None),
Among("รฌ", 0, 3, None),
Among("รญ", 0, 3, None),
Among("รฏ", 0, 3, None),
Among("รฒ", 0, 4, None),
Among("รณ", 0, 4, None),
Among("รบ", 0, 5, None),
Among("รผ", 0, 5, None),
];
static A_1: &'static [Among<Context>; 39] = &[
Among("la", -1, 1, None),
Among("-la", 0, 1, None),
Among("sela", 0, 1, None),
Among("le", -1, 1, None),
Among("me", -1, 1, None),
Among("-me", 4, 1, None),
Among("se", -1, 1, None),
Among("-te", -1, 1, None),
Among("hi", -1, 1, None),
Among("'hi", 8, 1, None),
Among("li", -1, 1, None),
Among("-li", 10, 1, None),
Among("'l", -1, 1, None),
Among("'m", -1, 1, None),
Among("-m", -1, 1, None),
Among("'n", -1, 1, None),
Among("-n", -1, 1, None),
Among("ho", -1, 1, None),
Among("'ho", 17, 1, None),
Among("lo", -1, 1, None),
Among("selo", 19, 1, None),
Among("'s", -1, 1, None),
Among("las", -1, 1, None),
Among("selas", 22, 1, None),
Among("les", -1, 1, None),
Among("-les", 24, 1, None),
Among("'ls", -1, 1, None),
Among("-ls", -1, 1, None),
Among("'ns", -1, 1, None),
Among("-ns", -1, 1, None),
Among("ens", -1, 1, None),
Among("los", -1, 1, None),
Among("selos", 31, 1, None),
Among("nos", -1, 1, None),
Among("-nos", 33, 1, None),
Among("vos", -1, 1, None),
Among("us", -1, 1, None),
Among("-us", 36, 1, None),
Among("'t", -1, 1, None),
];
static A_2: &'static [Among<Context>; 200] = &[
Among("ica", -1, 4, None),
Among("lรณgica", 0, 3, None),
Among("enca", -1, 1, None),
Among("ada", -1, 2, None),
Among("ancia", -1, 1, None),
Among("encia", -1, 1, None),
Among("รจncia", -1, 1, None),
Among("รญcia", -1, 1, None),
Among("logia", -1, 3, None),
Among("inia", -1, 1, None),
Among("รญinia", 9, 1, None),
Among("eria", -1, 1, None),
Among("ร ria", -1, 1, None),
Among("atรฒria", -1, 1, None),
Among("alla", -1, 1, None),
Among("ella", -1, 1, None),
Among("รญvola", -1, 1, None),
Among("ima", -1, 1, None),
Among("รญssima", 17, 1, None),
Among("quรญssima", 18, 5, None),
Among("ana", -1, 1, None),
Among("ina", -1, 1, None),
Among("era", -1, 1, None),
Among("sfera", 22, 1, None),
Among("ora", -1, 1, None),
Among("dora", 24, 1, None),
Among("adora", 25, 1, None),
Among("adura", -1, 1, None),
Among("esa", -1, 1, None),
Among("osa", -1, 1, None),
Among("assa", -1, 1, None),
Among("essa", -1, 1, None),
Among("issa", -1, 1, None),
Among("eta", -1, 1, None),
Among("ita", -1, 1, None),
Among("ota", -1, 1, None),
Among("ista", -1, 1, None),
Among("ialista", 36, 1, None),
Among("ionista", 36, 1, None),
Among("iva", -1, 1, None),
Among("ativa", 39, 1, None),
Among("nรงa", -1, 1, None),
Among("logรญa", -1, 3, None),
Among("ic", -1, 4, None),
Among("รญstic", 43, 1, None),
Among("enc", -1, 1, None),
Among("esc", -1, 1, None),
Among("ud", -1, 1, None),
Among("atge", -1, 1, None),
Among("ble", -1, 1, None),
Among("able", 49, 1, None),
Among("ible", 49, 1, None),
Among("isme", -1, 1, None),
Among("ialisme", 52, 1, None),
Among("ionisme", 52, 1, None),
Among("ivisme", 52, 1, None),
Among("aire", -1, 1, None),
Among("icte", -1, 1, None),
Among("iste", -1, 1, None),
Among("ici", -1, 1, None),
Among("รญci", -1, 1, None),
Among("logi", -1, 3, None),
Among("ari", -1, 1, None),
Among("tori", -1, 1, None),
Among("al", -1, 1, None),
Among("il", -1, 1, None),
Among("all", -1, 1, None),
Among("ell", -1, 1, None),
Among("รญvol", -1, 1, None),
Among("isam", -1, 1, None),
Among("issem", -1, 1, None),
Among("รฌssem", -1, 1, None),
Among("รญssem", -1, 1, None),
Among("รญssim", -1, 1, None),
Among("quรญssim", 73, 5, None),
Among("amen", -1, 1, None),
Among("รฌssin", -1, 1, None),
Among("ar", -1, 1, None),
Among("ificar", 77, 1, None),
Among("egar", 77, 1, None),
Among("ejar", 77, 1, None),
Among("itar", 77, 1, None),
Among("itzar", 77, 1, None),
Among("fer", -1, 1, None),
Among("or", -1, 1, None),
Among("dor", 84, 1, None),
Among("dur", -1, 1, None),
Among("doras", -1, 1, None),
Among("ics", -1, 4, None),
Among("lรณgics", 88, 3, None),
Among("uds", -1, 1, None),
Among("nces", -1, 1, None),
Among("ades", -1, 2, None),
Among("ancies", -1, 1, None),
Among("encies", -1, 1, None),
Among("รจncies", -1, 1, None),
Among("รญcies", -1, 1, None),
Among("logies", -1, 3, None),
Among("inies", -1, 1, None),
Among("รญnies", -1, 1, None),
Among("eries", -1, 1, None),
Among("ร ries", -1, 1, None),
Among("atรฒries", -1, 1, None),
Among("bles", -1, 1, None),
Among("ables", 103, 1, None),
Among("ibles", 103, 1, None),
Among("imes", -1, 1, None),
Among("รญssimes", 106, 1, None),
Among("quรญssimes", 107, 5, None),
Among("formes", -1, 1, None),
Among("ismes", -1, 1, None),
Among("ialismes", 110, 1, None),
Among("ines", -1, 1, None),
Among("eres", -1, 1, None),
Among("ores", -1, 1, None),
Among("dores", 114, 1, None),
Among("idores", 115, 1, None),
Among("dures", -1, 1, None),
Among("eses", -1, 1, None),
Among("oses", -1, 1, None),
Among("asses", -1, 1, None),
Among("ictes", -1, 1, None),
Among("ites", -1, 1, None),
Among("otes", -1, 1, None),
Among("istes", -1, 1, None),
Among("ialistes", 124, 1, None),
Among("ionistes", 124, 1, None),
Among("iques", -1, 4, None),
Among("lรณgiques", 127, 3, None),
Among("ives", -1, 1, None),
Among("atives", 129, 1, None),
Among("logรญes", -1, 3, None),
Among("allengรผes", -1, 1, None),
Among("icis", -1, 1, None),
Among("รญcis", -1, 1, None),
Among("logis", -1, 3, None),
Among("aris", -1, 1, None),
Among("toris", -1, 1, None),
Among("ls", -1, 1, None),
Among("als", 138, 1, None),
Among("ells", 138, 1, None),
Among("ims", -1, 1, None),
Among("รญssims", 141, 1, None),
Among("quรญssims", 142, 5, None),
Among("ions", -1, 1, None),
Among("cions", 144, 1, None),
Among("acions", 145, 2, None),
Among("esos", -1, 1, None),
Among("osos", -1, 1, None),
Among("assos", -1, 1, None),
Among("issos", -1, 1, None),
Among("ers", -1, 1, None),
Among("ors", -1, 1, None),
Among("dors", 152, 1, None),
Among("adors", 153, 1, None),
Among("idors", 153, 1, None),
Among("ats", -1, 1, None),
Among("itats", 156, 1, None),
Among("bilitats", 157, 1, None),
Among("ivitats", 157, 1, None),
Among("ativitats", 159, 1, None),
Among("รฏtats", 156, 1, None),
Among("ets", -1, 1, None),
Among("ants", -1, 1, None),
Among("ents", -1, 1, None),
Among("ments", 164, 1, None),
Among("aments", 165, 1, None),
Among("ots", -1, 1, None),
Among("uts", -1, 1, None),
Among("ius", -1, 1, None),
Among("trius", 169, 1, None),
Among("atius", 169, 1, None),
Among("รจs", -1, 1, None),
Among("รฉs", -1, 1, None),
Among("รญs", -1, 1, None),
Among("dรญs", 174, 1, None),
Among("รณs", -1, 1, None),
Among("itat", -1, 1, None),
Among("bilitat", 177, 1, None),
Among("ivitat", 177, 1, None),
Among("ativitat", 179, 1, None),
Among("รฏtat", -1, 1, None),
Among("et", -1, 1, None),
Among("ant", -1, 1, None),
Among("ent", -1, 1, None),
Among("ient", 184, 1, None),
Among("ment", 184, 1, None),
Among("ament", 186, 1, None),
Among("isament", 187, 1, None),
Among("ot", -1, 1, None),
Among("isseu", -1, 1, None),
Among("รฌsseu", -1, 1, None),
Among("รญsseu", -1, 1, None),
Among("triu", -1, 1, None),
Among("รญssiu", -1, 1, None),
Among("atiu", -1, 1, None),
Among("รณ", -1, 1, None),
Among("iรณ", 196, 1, None),
Among("ciรณ", 197, 1, None),
Among("aciรณ", 198, 1, None),
];
static A_3: &'static [Among<Context>; 283] = &[
Among("aba", -1, 1, None),
Among("esca", -1, 1, None),
Among("isca", -1, 1, None),
Among("รฏsca", -1, 1, None),
Among("ada", -1, 1, None),
Among("ida", -1, 1, None),
Among("uda", -1, 1, None),
Among("รฏda", -1, 1, None),
Among("ia", -1, 1, None),
Among("aria", 8, 1, None),
Among("iria", 8, 1, None),
Among("ara", -1, 1, None),
Among("iera", -1, 1, None),
Among("ira", -1, 1, None),
Among("adora", -1, 1, None),
Among("รฏra", -1, 1, None),
Among("ava", -1, 1, None),
Among("ixa", -1, 1, None),
Among("itza", -1, 1, None),
Among("รญa", -1, 1, None),
Among("arรญa", 19, 1, None),
Among("erรญa", 19, 1, None),
Among("irรญa", 19, 1, None),
Among("รฏa", -1, 1, None),
Among("isc", -1, 1, None),
Among("รฏsc", -1, 1, None),
Among("ad", -1, 1, None),
Among("ed", -1, 1, None),
Among("id", -1, 1, None),
Among("ie", -1, 1, None),
Among("re", -1, 1, None),
Among("dre", 30, 1, None),
Among("ase", -1, 1, None),
Among("iese", -1, 1, None),
Among("aste", -1, 1, None),
Among("iste", -1, 1, None),
Among("ii", -1, 1, None),
Among("ini", -1, 1, None),
Among("esqui", -1, 1, None),
Among("eixi", -1, 1, None),
Among("itzi", -1, 1, None),
Among("am", -1, 1, None),
Among("em", -1, 1, None),
Among("arem", 42, 1, None),
Among("irem", 42, 1, None),
Among("ร rem", 42, 1, None),
Among("รญrem", 42, 1, None),
Among("ร ssem", 42, 1, None),
Among("รฉssem", 42, 1, None),
Among("iguem", 42, 1, None),
Among("รฏguem", 42, 1, None),
Among("avem", 42, 1, None),
Among("ร vem", 42, 1, None),
Among("รกvem", 42, 1, None),
Among("irรฌem", 42, 1, None),
Among("รญem", 42, 1, None),
Among("arรญem", 55, 1, None),
Among("irรญem", 55, 1, None),
Among("assim", -1, 1, None),
Among("essim", -1, 1, None),
Among("issim", -1, 1, None),
Among("ร ssim", -1, 1, None),
Among("รจssim", -1, 1, None),
Among("รฉssim", -1, 1, None),
Among("รญssim", -1, 1, None),
Among("รฏm", -1, 1, None),
Among("an", -1, 1, None),
Among("aban", 66, 1, None),
Among("arian", 66, 1, None),
Among("aran", 66, 1, None),
Among("ieran", 66, 1, None),
Among("iran", 66, 1, None),
Among("รญan", 66, 1, None),
Among("arรญan", 72, 1, None),
Among("erรญan", 72, 1, None),
Among("irรญan", 72, 1, None),
Among("en", -1, 1, None),
Among("ien", 76, 1, None),
Among("arien", 77, 1, None),
Among("irien", 77, 1, None),
Among("aren", 76, 1, None),
Among("eren", 76, 1, None),
Among("iren", 76, 1, None),
Among("ร ren", 76, 1, None),
Among("รฏren", 76, 1, None),
Among("asen", 76, 1, None),
Among("iesen", 76, 1, None),
Among("assen", 76, 1, None),
Among("essen", 76, 1, None),
Among("issen", 76, 1, None),
Among("รฉssen", 76, 1, None),
Among("รฏssen", 76, 1, None),
Among("esquen", 76, 1, None),
Among("isquen", 76, 1, None),
Among("รฏsquen", 76, 1, None),
Among("aven", 76, 1, None),
Among("ixen", 76, 1, None),
Among("eixen", 96, 1, None),
Among("รฏxen", 76, 1, None),
Among("รฏen", 76, 1, None),
Among("in", -1, 1, None),
Among("inin", 100, 1, None),
Among("sin", 100, 1, None),
Among("isin", 102, 1, None),
Among("assin", 102, 1, None),
Among("essin", 102, 1, None),
Among("issin", 102, 1, None),
Among("รฏssin", 102, 1, None),
Among("esquin", 100, 1, None),
Among("eixin", 100, 1, None),
Among("aron", -1, 1, None),
Among("ieron", -1, 1, None),
Among("arรกn", -1, 1, None),
Among("erรกn", -1, 1, None),
Among("irรกn", -1, 1, None),
Among("iรฏn", -1, 1, None),
Among("ado", -1, 1, None),
Among("ido", -1, 1, None),
Among("ando", -1, 2, None),
Among("iendo", -1, 1, None),
Among("io", -1, 1, None),
Among("ixo", -1, 1, None),
Among("eixo", 121, 1, None),
Among("รฏxo", -1, 1, None),
Among("itzo", -1, 1, None),
Among("ar", -1, 1, None),
Among("tzar", 125, 1, None),
Among("er", -1, 1, None),
Among("eixer", 127, 1, None),
Among("ir", -1, 1, None),
Among("ador", -1, 1, None),
Among("as", -1, 1, None),
Among("abas", 131, 1, None),
Among("adas", 131, 1, None),
Among("idas", 131, 1, None),
Among("aras", 131, 1, None),
Among("ieras", 131, 1, None),
Among("รญas", 131, 1, None),
Among("arรญas", 137, 1, None),
Among("erรญas", 137, 1, None),
Among("irรญas", 137, 1, None),
Among("ids", -1, 1, None),
Among("es", -1, 1, None),
Among("ades", 142, 1, None),
Among("ides", 142, 1, None),
Among("udes", 142, 1, None),
Among("รฏdes", 142, 1, None),
Among("atges", 142, 1, None),
Among("ies", 142, 1, None),
Among("aries", 148, 1, None),
Among("iries", 148, 1, None),
Among("ares", 142, 1, None),
Among("ires", 142, 1, None),
Among("adores", 142, 1, None),
Among("รฏres", 142, 1, None),
Among("ases", 142, 1, None),
Among("ieses", 142, 1, None),
Among("asses", 142, 1, None),
Among("esses", 142, 1, None),
Among("isses", 142, 1, None),
Among("รฏsses", 142, 1, None),
Among("ques", 142, 1, None),
Among("esques", 161, 1, None),
Among("รฏsques", 161, 1, None),
Among("aves", 142, 1, None),
Among("ixes", 142, 1, None),
Among("eixes", 165, 1, None),
Among("รฏxes", 142, 1, None),
Among("รฏes", 142, 1, None),
Among("abais", -1, 1, None),
Among("arais", -1, 1, None),
Among("ierais", -1, 1, None),
Among("รญais", -1, 1, None),
Among("arรญais", 172, 1, None),
Among("erรญais", 172, 1, None),
Among("irรญais", 172, 1, None),
Among("aseis", -1, 1, None),
Among("ieseis", -1, 1, None),
Among("asteis", -1, 1, None),
Among("isteis", -1, 1, None),
Among("inis", -1, 1, None),
Among("sis", -1, 1, None),
Among("isis", 181, 1, None),
Among("assis", 181, 1, None),
Among("essis", 181, 1, None),
Among("issis", 181, 1, None),
Among("รฏssis", 181, 1, None),
Among("esquis", -1, 1, None),
Among("eixis", -1, 1, None),
Among("itzis", -1, 1, None),
Among("รกis", -1, 1, None),
Among("arรฉis", -1, 1, None),
Among("erรฉis", -1, 1, None),
Among("irรฉis", -1, 1, None),
Among("ams", -1, 1, None),
Among("ados", -1, 1, None),
Among("idos", -1, 1, None),
Among("amos", -1, 1, None),
Among("รกbamos", 197, 1, None),
Among("รกramos", 197, 1, None),
Among("iรฉramos", 197, 1, None),
Among("รญamos", 197, 1, None),
Among("arรญamos", 201, 1, None),
Among("erรญamos", 201, 1, None),
Among("irรญamos", 201, 1, None),
Among("aremos", -1, 1, None),
Among("eremos", -1, 1, None),
Among("iremos", -1, 1, None),
Among("รกsemos", -1, 1, None),
Among("iรฉsemos", -1, 1, None),
Among("imos", -1, 1, None),
Among("adors", -1, 1, None),
Among("ass", -1, 1, None),
Among("erass", 212, 1, None),
Among("ess", -1, 1, None),
Among("ats", -1, 1, None),
Among("its", -1, 1, None),
Among("ents", -1, 1, None),
Among("ร s", -1, 1, None),
Among("arร s", 218, 1, None),
Among("irร s", 218, 1, None),
Among("arรกs", -1, 1, None),
Among("erรกs", -1, 1, None),
Among("irรกs", -1, 1, None),
Among("รฉs", -1, 1, None),
Among("arรฉs", 224, 1, None),
Among("รญs", -1, 1, None),
Among("iรฏs", -1, 1, None),
Among("at", -1, 1, None),
Among("it", -1, 1, None),
Among("ant", -1, 1, None),
Among("ent", -1, 1, None),
Among("int", -1, 1, None),
Among("ut", -1, 1, None),
Among("รฏt", -1, 1, None),
Among("au", -1, 1, None),
Among("erau", 235, 1, None),
Among("ieu", -1, 1, None),
Among("ineu", -1, 1, None),
Among("areu", -1, 1, None),
Among("ireu", -1, 1, None),
Among("ร reu", -1, 1, None),
Among("รญreu", -1, 1, None),
Among("asseu", -1, 1, None),
Among("esseu", -1, 1, None),
Among("eresseu", 244, 1, None),
Among("ร sseu", -1, 1, None),
Among("รฉsseu", -1, 1, None),
Among("igueu", -1, 1, None),
Among("รฏgueu", -1, 1, None),
Among("ร veu", -1, 1, None),
Among("รกveu", -1, 1, None),
Among("itzeu", -1, 1, None),
Among("รฌeu", -1, 1, None),
Among("irรฌeu", 253, 1, None),
Among("รญeu", -1, 1, None),
Among("arรญeu", 255, 1, None),
Among("irรญeu", 255, 1, None),
Among("assiu", -1, 1, None),
Among("issiu", -1, 1, None),
Among("ร ssiu", -1, 1, None),
Among("รจssiu", -1, 1, None),
Among("รฉssiu", -1, 1, None),
Among("รญssiu", -1, 1, None),
Among("รฏu", -1, 1, None),
Among("ix", -1, 1, None),
Among("eix", 265, 1, None),
Among("รฏx", -1, 1, None),
Among("itz", -1, 1, None),
Among("iร ", -1, 1, None),
Among("arร ", -1, 1, None),
Among("irร ", -1, 1, None),
Among("itzร ", -1, 1, None),
Among("arรก", -1, 1, None),
Among("erรก", -1, 1, None),
Among("irรก", -1, 1, None),
Among("irรจ", -1, 1, None),
Among("arรฉ", -1, 1, None),
Among("erรฉ", -1, 1, None),
Among("irรฉ", -1, 1, None),
Among("รญ", -1, 1, None),
Among("iรฏ", -1, 1, None),
Among("iรณ", -1, 1, None),
];
static A_4: &'static [Among<Context>; 22] = &[
Among("a", -1, 1, None),
Among("e", -1, 1, None),
Among("i", -1, 1, None),
Among("รฏn", -1, 1, None),
Among("o", -1, 1, None),
Among("ir", -1, 1, None),
Among("s", -1, 1, None),
Among("is", 6, 1, None),
Among("os", 6, 1, None),
Among("รฏs", 6, 1, None),
Among("it", -1, 1, None),
Among("eu", -1, 1, None),
Among("iu", -1, 1, None),
Among("iqu", -1, 2, None),
Among("itz", -1, 1, None),
Among("ร ", -1, 1, None),
Among("รก", -1, 1, None),
Among("รฉ", -1, 1, None),
Among("รฌ", -1, 1, None),
Among("รญ", -1, 1, None),
Among("รฏ", -1, 1, None),
Among("รณ", -1, 1, None),
];
static G_v: &'static [u8; 20] = &[
17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 129, 81, 6, 10,
];
fn r_mark_regions(env: &mut SnowballEnv, context: &mut Context) -> bool {
context.i_p1 = env.limit;
context.i_p2 = env.limit;
let v_1 = env.cursor;
'lab0: loop {
if !env.go_out_grouping(G_v, 97, 252) {
break 'lab0;
}
env.next_char();
if !env.go_in_grouping(G_v, 97, 252) {
break 'lab0;
}
env.next_char();
context.i_p1 = env.cursor;
if !env.go_out_grouping(G_v, 97, 252) {
break 'lab0;
}
env.next_char();
if !env.go_in_grouping(G_v, 97, 252) {
break 'lab0;
}
env.next_char();
context.i_p2 = env.cursor;
break 'lab0;
}
env.cursor = v_1;
return true;
}
fn r_cleaning(env: &mut SnowballEnv, context: &mut Context) -> bool {
let mut among_var;
'replab0: loop {
let v_1 = env.cursor;
'lab1: for _ in 0..1 {
env.bra = env.cursor;
if (env.cursor + 1 >= env.limit
|| env.current.as_bytes()[(env.cursor + 1) as usize] as u8 >> 5 != 5 as u8
|| ((344765187 as i32
>> (env.current.as_bytes()[(env.cursor + 1) as usize] as u8 & 0x1f))
& 1)
== 0)
{
among_var = 7;
} else {
among_var = env.find_among(A_0, context);
}
env.ket = env.cursor;
match among_var {
1 => {
env.slice_from("a");
}
2 => {
env.slice_from("e");
}
3 => {
env.slice_from("i");
}
4 => {
env.slice_from("o");
}
5 => {
env.slice_from("u");
}
6 => {
env.slice_from(".");
}
7 => {
if env.cursor >= env.limit {
break 'lab1;
}
env.next_char();
}
_ => (),
}
continue 'replab0;
}
env.cursor = v_1;
break 'replab0;
}
return true;
}
fn r_R1(env: &mut SnowballEnv, context: &mut Context) -> bool {
return context.i_p1 <= env.cursor;
}
fn r_R2(env: &mut SnowballEnv, context: &mut Context) -> bool {
return context.i_p2 <= env.cursor;
}
fn r_attached_pronoun(env: &mut SnowballEnv, context: &mut Context) -> bool {
env.ket = env.cursor;
if (env.cursor - 1 <= env.limit_backward
|| env.current.as_bytes()[(env.cursor - 1) as usize] as u8 >> 5 != 3 as u8
|| ((1634850 as i32 >> (env.current.as_bytes()[(env.cursor - 1) as usize] as u8 & 0x1f))
& 1)
== 0)
{
return false;
}
if env.find_among_b(A_1, context) == 0 {
return false;
}
env.bra = env.cursor;
if !r_R1(env, context) {
return false;
}
env.slice_del();
return true;
}
fn r_standard_suffix(env: &mut SnowballEnv, context: &mut Context) -> bool {
let mut among_var;
env.ket = env.cursor;
among_var = env.find_among_b(A_2, context);
if among_var == 0 {
return false;
}
env.bra = env.cursor;
match among_var {
1 => {
if !r_R1(env, context) {
return false;
}
env.slice_del();
}
2 => {
if !r_R2(env, context) {
return false;
}
env.slice_del();
}
3 => {
if !r_R2(env, context) {
return false;
}
env.slice_from("log");
}
4 => {
if !r_R2(env, context) {
return false;
}
env.slice_from("ic");
}
5 => {
if !r_R1(env, context) {
return false;
}
env.slice_from("c");
}
_ => (),
}
return true;
}
fn r_verb_suffix(env: &mut SnowballEnv, context: &mut Context) -> bool {
let mut among_var;
env.ket = env.cursor;
among_var = env.find_among_b(A_3, context);
if among_var == 0 {
return false;
}
env.bra = env.cursor;
match among_var {
1 => {
if !r_R1(env, context) {
return false;
}
env.slice_del();
}
2 => {
if !r_R2(env, context) {
return false;
}
env.slice_del();
}
_ => (),
}
return true;
}
fn r_residual_suffix(env: &mut SnowballEnv, context: &mut Context) -> bool {
let mut among_var;
env.ket = env.cursor;
among_var = env.find_among_b(A_4, context);
if among_var == 0 {
return false;
}
env.bra = env.cursor;
match among_var {
1 => {
if !r_R1(env, context) {
return false;
}
env.slice_del();
}
2 => {
if !r_R1(env, context) {
return false;
}
env.slice_from("ic");
}
_ => (),
}
return true;
}
pub fn stem(env: &mut SnowballEnv) -> bool {
let mut context = &mut Context { i_p2: 0, i_p1: 0 };
r_mark_regions(env, context);
env.limit_backward = env.cursor;
env.cursor = env.limit;
let v_1 = env.limit - env.cursor;
r_attached_pronoun(env, context);
env.cursor = env.limit - v_1;
let v_2 = env.limit - env.cursor;
'lab0: loop {
'lab1: loop {
let v_3 = env.limit - env.cursor;
'lab2: loop {
if !r_standard_suffix(env, context) {
break 'lab2;
}
break 'lab1;
}
env.cursor = env.limit - v_3;
if !r_verb_suffix(env, context) {
break 'lab0;
}
break 'lab1;
}
break 'lab0;
}
env.cursor = env.limit - v_2;
let v_4 = env.limit - env.cursor;
r_residual_suffix(env, context);
env.cursor = env.limit - v_4;
env.cursor = env.limit_backward;
let v_5 = env.cursor;
r_cleaning(env, context);
env.cursor = v_5;
return true;
}