#![allow(non_upper_case_globals)]
#![allow(non_snake_case)]
#![allow(unused_variables)]
#![allow(unused_mut)]
use snowball::SnowballEnv;
use snowball::Among;
static A_0: &'static [Among<Context>; 8] = &[
Among("cs", -1, -1, None),
Among("dzs", -1, -1, None),
Among("gy", -1, -1, None),
Among("ly", -1, -1, None),
Among("ny", -1, -1, None),
Among("sz", -1, -1, None),
Among("ty", -1, -1, None),
Among("zs", -1, -1, None),
];
static A_1: &'static [Among<Context>; 2] = &[
Among("\u{00E1}", -1, 1, None),
Among("\u{00E9}", -1, 2, None),
];
static A_2: &'static [Among<Context>; 23] = &[
Among("bb", -1, -1, None),
Among("cc", -1, -1, None),
Among("dd", -1, -1, None),
Among("ff", -1, -1, None),
Among("gg", -1, -1, None),
Among("jj", -1, -1, None),
Among("kk", -1, -1, None),
Among("ll", -1, -1, None),
Among("mm", -1, -1, None),
Among("nn", -1, -1, None),
Among("pp", -1, -1, None),
Among("rr", -1, -1, None),
Among("ccs", -1, -1, None),
Among("ss", -1, -1, None),
Among("zzs", -1, -1, None),
Among("tt", -1, -1, None),
Among("vv", -1, -1, None),
Among("ggy", -1, -1, None),
Among("lly", -1, -1, None),
Among("nny", -1, -1, None),
Among("tty", -1, -1, None),
Among("ssz", -1, -1, None),
Among("zz", -1, -1, None),
];
static A_3: &'static [Among<Context>; 2] = &[
Among("al", -1, 1, None),
Among("el", -1, 2, None),
];
static A_4: &'static [Among<Context>; 44] = &[
Among("ba", -1, -1, None),
Among("ra", -1, -1, None),
Among("be", -1, -1, None),
Among("re", -1, -1, None),
Among("ig", -1, -1, None),
Among("nak", -1, -1, None),
Among("nek", -1, -1, None),
Among("val", -1, -1, None),
Among("vel", -1, -1, None),
Among("ul", -1, -1, None),
Among("b\u{0151}l", -1, -1, None),
Among("r\u{0151}l", -1, -1, None),
Among("t\u{0151}l", -1, -1, None),
Among("n\u{00E1}l", -1, -1, None),
Among("n\u{00E9}l", -1, -1, None),
Among("b\u{00F3}l", -1, -1, None),
Among("r\u{00F3}l", -1, -1, None),
Among("t\u{00F3}l", -1, -1, None),
Among("\u{00FC}l", -1, -1, None),
Among("n", -1, -1, None),
Among("an", 19, -1, None),
Among("ban", 20, -1, None),
Among("en", 19, -1, None),
Among("ben", 22, -1, None),
Among("k\u{00E9}ppen", 22, -1, None),
Among("on", 19, -1, None),
Among("\u{00F6}n", 19, -1, None),
Among("k\u{00E9}pp", -1, -1, None),
Among("kor", -1, -1, None),
Among("t", -1, -1, None),
Among("at", 29, -1, None),
Among("et", 29, -1, None),
Among("k\u{00E9}nt", 29, -1, None),
Among("ank\u{00E9}nt", 32, -1, None),
Among("enk\u{00E9}nt", 32, -1, None),
Among("onk\u{00E9}nt", 32, -1, None),
Among("ot", 29, -1, None),
Among("\u{00E9}rt", 29, -1, None),
Among("\u{00F6}t", 29, -1, None),
Among("hez", -1, -1, None),
Among("hoz", -1, -1, None),
Among("h\u{00F6}z", -1, -1, None),
Among("v\u{00E1}", -1, -1, None),
Among("v\u{00E9}", -1, -1, None),
];
static A_5: &'static [Among<Context>; 3] = &[
Among("\u{00E1}n", -1, 2, None),
Among("\u{00E9}n", -1, 1, None),
Among("\u{00E1}nk\u{00E9}nt", -1, 3, None),
];
static A_6: &'static [Among<Context>; 6] = &[
Among("stul", -1, 2, None),
Among("astul", 0, 1, None),
Among("\u{00E1}stul", 0, 3, None),
Among("st\u{00FC}l", -1, 2, None),
Among("est\u{00FC}l", 3, 1, None),
Among("\u{00E9}st\u{00FC}l", 3, 4, None),
];
static A_7: &'static [Among<Context>; 2] = &[
Among("\u{00E1}", -1, 1, None),
Among("\u{00E9}", -1, 2, None),
];
static A_8: &'static [Among<Context>; 7] = &[
Among("k", -1, 7, None),
Among("ak", 0, 4, None),
Among("ek", 0, 6, None),
Among("ok", 0, 5, None),
Among("\u{00E1}k", 0, 1, None),
Among("\u{00E9}k", 0, 2, None),
Among("\u{00F6}k", 0, 3, None),
];
static A_9: &'static [Among<Context>; 12] = &[
Among("\u{00E9}i", -1, 7, None),
Among("\u{00E1}\u{00E9}i", 0, 6, None),
Among("\u{00E9}\u{00E9}i", 0, 5, None),
Among("\u{00E9}", -1, 9, None),
Among("k\u{00E9}", 3, 4, None),
Among("ak\u{00E9}", 4, 1, None),
Among("ek\u{00E9}", 4, 1, None),
Among("ok\u{00E9}", 4, 1, None),
Among("\u{00E1}k\u{00E9}", 4, 3, None),
Among("\u{00E9}k\u{00E9}", 4, 2, None),
Among("\u{00F6}k\u{00E9}", 4, 1, None),
Among("\u{00E9}\u{00E9}", 3, 8, None),
];
static A_10: &'static [Among<Context>; 31] = &[
Among("a", -1, 18, None),
Among("ja", 0, 17, None),
Among("d", -1, 16, None),
Among("ad", 2, 13, None),
Among("ed", 2, 13, None),
Among("od", 2, 13, None),
Among("\u{00E1}d", 2, 14, None),
Among("\u{00E9}d", 2, 15, None),
Among("\u{00F6}d", 2, 13, None),
Among("e", -1, 18, None),
Among("je", 9, 17, None),
Among("nk", -1, 4, None),
Among("unk", 11, 1, None),
Among("\u{00E1}nk", 11, 2, None),
Among("\u{00E9}nk", 11, 3, None),
Among("\u{00FC}nk", 11, 1, None),
Among("uk", -1, 8, None),
Among("juk", 16, 7, None),
Among("\u{00E1}juk", 17, 5, None),
Among("\u{00FC}k", -1, 8, None),
Among("j\u{00FC}k", 19, 7, None),
Among("\u{00E9}j\u{00FC}k", 20, 6, None),
Among("m", -1, 12, None),
Among("am", 22, 9, None),
Among("em", 22, 9, None),
Among("om", 22, 9, None),
Among("\u{00E1}m", 22, 10, None),
Among("\u{00E9}m", 22, 11, None),
Among("o", -1, 18, None),
Among("\u{00E1}", -1, 19, None),
Among("\u{00E9}", -1, 20, None),
];
static A_11: &'static [Among<Context>; 42] = &[
Among("id", -1, 10, None),
Among("aid", 0, 9, None),
Among("jaid", 1, 6, None),
Among("eid", 0, 9, None),
Among("jeid", 3, 6, None),
Among("\u{00E1}id", 0, 7, None),
Among("\u{00E9}id", 0, 8, None),
Among("i", -1, 15, None),
Among("ai", 7, 14, None),
Among("jai", 8, 11, None),
Among("ei", 7, 14, None),
Among("jei", 10, 11, None),
Among("\u{00E1}i", 7, 12, None),
Among("\u{00E9}i", 7, 13, None),
Among("itek", -1, 24, None),
Among("eitek", 14, 21, None),
Among("jeitek", 15, 20, None),
Among("\u{00E9}itek", 14, 23, None),
Among("ik", -1, 29, None),
Among("aik", 18, 26, None),
Among("jaik", 19, 25, None),
Among("eik", 18, 26, None),
Among("jeik", 21, 25, None),
Among("\u{00E1}ik", 18, 27, None),
Among("\u{00E9}ik", 18, 28, None),
Among("ink", -1, 20, None),
Among("aink", 25, 17, None),
Among("jaink", 26, 16, None),
Among("eink", 25, 17, None),
Among("jeink", 28, 16, None),
Among("\u{00E1}ink", 25, 18, None),
Among("\u{00E9}ink", 25, 19, None),
Among("aitok", -1, 21, None),
Among("jaitok", 32, 20, None),
Among("\u{00E1}itok", -1, 22, None),
Among("im", -1, 5, None),
Among("aim", 35, 4, None),
Among("jaim", 36, 1, None),
Among("eim", 35, 4, None),
Among("jeim", 38, 1, None),
Among("\u{00E1}im", 35, 2, None),
Among("\u{00E9}im", 35, 3, None),
];
static G_v: &'static [u8; 35] = &[17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 36, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1];
#[derive(Clone)]
struct Context {
i_p1: usize,
}
fn r_mark_regions(env: &mut SnowballEnv, context: &mut Context) -> bool {
context.i_p1 = env.limit;
'lab0: loop {
let v_1 = env.cursor;
'lab1: loop {
if !env.in_grouping(G_v, 97, 369) {
break 'lab1;
}
'golab2: loop {
let v_2 = env.cursor;
'lab3: loop {
if !env.out_grouping(G_v, 97, 369) {
break 'lab3;
}
env.cursor = v_2;
break 'golab2;
}
env.cursor = v_2;
if env.cursor >= env.limit {
break 'lab1;
}
env.next_char();
}
'lab4: loop {
let v_3 = env.cursor;
'lab5: loop {
if env.find_among(A_0, context) == 0 {
break 'lab5;
}
break 'lab4;
}
env.cursor = v_3;
if env.cursor >= env.limit {
break 'lab1;
}
env.next_char();
break 'lab4;
}
context.i_p1 = env.cursor;
break 'lab0;
}
env.cursor = v_1;
if !env.out_grouping(G_v, 97, 369) {
return false;
}
'golab6: loop {
'lab7: loop {
if !env.in_grouping(G_v, 97, 369) {
break 'lab7;
}
break 'golab6;
}
if env.cursor >= env.limit {
return false;
}
env.next_char();
}
context.i_p1 = env.cursor;
break 'lab0;
}
return true;
}
fn r_R1(env: &mut SnowballEnv, context: &mut Context) -> bool {
if !(context.i_p1 <= env.cursor){
return false;
}
return true;
}
fn r_v_ending(env: &mut SnowballEnv, context: &mut Context) -> bool {
let mut among_var;
env.ket = env.cursor;
among_var = env.find_among_b(A_1, context);
if among_var == 0 {
return false;
}
env.bra = env.cursor;
if !r_R1(env, context) {
return false;
}
if among_var == 0 {
return false;
} else if among_var == 1 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 2 {
if !env.slice_from("e") {
return false;
}
}
return true;
}
fn r_double(env: &mut SnowballEnv, context: &mut Context) -> bool {
let v_1 = env.limit - env.cursor;
if env.find_among_b(A_2, context) == 0 {
return false;
}
env.cursor = env.limit - v_1;
return true;
}
fn r_undouble(env: &mut SnowballEnv, context: &mut Context) -> bool {
if env.cursor <= env.limit_backward {
return false;
}
env.previous_char();
env.ket = env.cursor;
let c = env.byte_index_for_hop(-1);
if env.limit_backward as i32 > c || c > env.limit as i32 {
return false;
}
env.cursor = c as usize;
env.bra = env.cursor;
if !env.slice_del() {
return false;
}
return true;
}
fn r_instrum(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;
if !r_R1(env, context) {
return false;
}
if among_var == 0 {
return false;
} else if among_var == 1 {
if !r_double(env, context) {
return false;
}
} else if among_var == 2 {
if !r_double(env, context) {
return false;
}
}
if !env.slice_del() {
return false;
}
if !r_undouble(env, context) {
return false;
}
return true;
}
fn r_case(env: &mut SnowballEnv, context: &mut Context) -> bool {
env.ket = env.cursor;
if env.find_among_b(A_4, context) == 0 {
return false;
}
env.bra = env.cursor;
if !r_R1(env, context) {
return false;
}
if !env.slice_del() {
return false;
}
if !r_v_ending(env, context) {
return false;
}
return true;
}
fn r_case_special(env: &mut SnowballEnv, context: &mut Context) -> bool {
let mut among_var;
env.ket = env.cursor;
among_var = env.find_among_b(A_5, context);
if among_var == 0 {
return false;
}
env.bra = env.cursor;
if !r_R1(env, context) {
return false;
}
if among_var == 0 {
return false;
} else if among_var == 1 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 2 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 3 {
if !env.slice_from("a") {
return false;
}
}
return true;
}
fn r_case_other(env: &mut SnowballEnv, context: &mut Context) -> bool {
let mut among_var;
env.ket = env.cursor;
among_var = env.find_among_b(A_6, context);
if among_var == 0 {
return false;
}
env.bra = env.cursor;
if !r_R1(env, context) {
return false;
}
if among_var == 0 {
return false;
} else if among_var == 1 {
if !env.slice_del() {
return false;
}
} else if among_var == 2 {
if !env.slice_del() {
return false;
}
} else if among_var == 3 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 4 {
if !env.slice_from("e") {
return false;
}
}
return true;
}
fn r_factive(env: &mut SnowballEnv, context: &mut Context) -> bool {
let mut among_var;
env.ket = env.cursor;
among_var = env.find_among_b(A_7, context);
if among_var == 0 {
return false;
}
env.bra = env.cursor;
if !r_R1(env, context) {
return false;
}
if among_var == 0 {
return false;
} else if among_var == 1 {
if !r_double(env, context) {
return false;
}
} else if among_var == 2 {
if !r_double(env, context) {
return false;
}
}
if !env.slice_del() {
return false;
}
if !r_undouble(env, context) {
return false;
}
return true;
}
fn r_plural(env: &mut SnowballEnv, context: &mut Context) -> bool {
let mut among_var;
env.ket = env.cursor;
among_var = env.find_among_b(A_8, context);
if among_var == 0 {
return false;
}
env.bra = env.cursor;
if !r_R1(env, context) {
return false;
}
if among_var == 0 {
return false;
} else if among_var == 1 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 2 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 3 {
if !env.slice_del() {
return false;
}
} else if among_var == 4 {
if !env.slice_del() {
return false;
}
} else if among_var == 5 {
if !env.slice_del() {
return false;
}
} else if among_var == 6 {
if !env.slice_del() {
return false;
}
} else if among_var == 7 {
if !env.slice_del() {
return false;
}
}
return true;
}
fn r_owned(env: &mut SnowballEnv, context: &mut Context) -> bool {
let mut among_var;
env.ket = env.cursor;
among_var = env.find_among_b(A_9, context);
if among_var == 0 {
return false;
}
env.bra = env.cursor;
if !r_R1(env, context) {
return false;
}
if among_var == 0 {
return false;
} else if among_var == 1 {
if !env.slice_del() {
return false;
}
} else if among_var == 2 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 3 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 4 {
if !env.slice_del() {
return false;
}
} else if among_var == 5 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 6 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 7 {
if !env.slice_del() {
return false;
}
} else if among_var == 8 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 9 {
if !env.slice_del() {
return false;
}
}
return true;
}
fn r_sing_owner(env: &mut SnowballEnv, context: &mut Context) -> bool {
let mut among_var;
env.ket = env.cursor;
among_var = env.find_among_b(A_10, context);
if among_var == 0 {
return false;
}
env.bra = env.cursor;
if !r_R1(env, context) {
return false;
}
if among_var == 0 {
return false;
} else if among_var == 1 {
if !env.slice_del() {
return false;
}
} else if among_var == 2 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 3 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 4 {
if !env.slice_del() {
return false;
}
} else if among_var == 5 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 6 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 7 {
if !env.slice_del() {
return false;
}
} else if among_var == 8 {
if !env.slice_del() {
return false;
}
} else if among_var == 9 {
if !env.slice_del() {
return false;
}
} else if among_var == 10 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 11 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 12 {
if !env.slice_del() {
return false;
}
} else if among_var == 13 {
if !env.slice_del() {
return false;
}
} else if among_var == 14 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 15 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 16 {
if !env.slice_del() {
return false;
}
} else if among_var == 17 {
if !env.slice_del() {
return false;
}
} else if among_var == 18 {
if !env.slice_del() {
return false;
}
} else if among_var == 19 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 20 {
if !env.slice_from("e") {
return false;
}
}
return true;
}
fn r_plur_owner(env: &mut SnowballEnv, context: &mut Context) -> bool {
let mut among_var;
env.ket = env.cursor;
among_var = env.find_among_b(A_11, context);
if among_var == 0 {
return false;
}
env.bra = env.cursor;
if !r_R1(env, context) {
return false;
}
if among_var == 0 {
return false;
} else if among_var == 1 {
if !env.slice_del() {
return false;
}
} else if among_var == 2 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 3 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 4 {
if !env.slice_del() {
return false;
}
} else if among_var == 5 {
if !env.slice_del() {
return false;
}
} else if among_var == 6 {
if !env.slice_del() {
return false;
}
} else if among_var == 7 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 8 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 9 {
if !env.slice_del() {
return false;
}
} else if among_var == 10 {
if !env.slice_del() {
return false;
}
} else if among_var == 11 {
if !env.slice_del() {
return false;
}
} else if among_var == 12 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 13 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 14 {
if !env.slice_del() {
return false;
}
} else if among_var == 15 {
if !env.slice_del() {
return false;
}
} else if among_var == 16 {
if !env.slice_del() {
return false;
}
} else if among_var == 17 {
if !env.slice_del() {
return false;
}
} else if among_var == 18 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 19 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 20 {
if !env.slice_del() {
return false;
}
} else if among_var == 21 {
if !env.slice_del() {
return false;
}
} else if among_var == 22 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 23 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 24 {
if !env.slice_del() {
return false;
}
} else if among_var == 25 {
if !env.slice_del() {
return false;
}
} else if among_var == 26 {
if !env.slice_del() {
return false;
}
} else if among_var == 27 {
if !env.slice_from("a") {
return false;
}
} else if among_var == 28 {
if !env.slice_from("e") {
return false;
}
} else if among_var == 29 {
if !env.slice_del() {
return false;
}
}
return true;
}
pub fn stem(env: &mut SnowballEnv) -> bool {
let mut context = &mut Context {
i_p1: 0,
};
let v_1 = env.cursor;
'lab0: loop {
if !r_mark_regions(env, context) {
break 'lab0;
}
break 'lab0;
}
env.cursor = v_1;
env.limit_backward = env.cursor;
env.cursor = env.limit;
let v_2 = env.limit - env.cursor;
'lab1: loop {
if !r_instrum(env, context) {
break 'lab1;
}
break 'lab1;
}
env.cursor = env.limit - v_2;
let v_3 = env.limit - env.cursor;
'lab2: loop {
if !r_case(env, context) {
break 'lab2;
}
break 'lab2;
}
env.cursor = env.limit - v_3;
let v_4 = env.limit - env.cursor;
'lab3: loop {
if !r_case_special(env, context) {
break 'lab3;
}
break 'lab3;
}
env.cursor = env.limit - v_4;
let v_5 = env.limit - env.cursor;
'lab4: loop {
if !r_case_other(env, context) {
break 'lab4;
}
break 'lab4;
}
env.cursor = env.limit - v_5;
let v_6 = env.limit - env.cursor;
'lab5: loop {
if !r_factive(env, context) {
break 'lab5;
}
break 'lab5;
}
env.cursor = env.limit - v_6;
let v_7 = env.limit - env.cursor;
'lab6: loop {
if !r_owned(env, context) {
break 'lab6;
}
break 'lab6;
}
env.cursor = env.limit - v_7;
let v_8 = env.limit - env.cursor;
'lab7: loop {
if !r_sing_owner(env, context) {
break 'lab7;
}
break 'lab7;
}
env.cursor = env.limit - v_8;
let v_9 = env.limit - env.cursor;
'lab8: loop {
if !r_plur_owner(env, context) {
break 'lab8;
}
break 'lab8;
}
env.cursor = env.limit - v_9;
let v_10 = env.limit - env.cursor;
'lab9: loop {
if !r_plural(env, context) {
break 'lab9;
}
break 'lab9;
}
env.cursor = env.limit - v_10;
env.cursor = env.limit_backward;
return true;
}