| //! This file was generated automatically by the Snowball to Rust compiler |
| //! http://snowballstem.org/ |
| |
| #![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>; 3] = &[ |
| Among("", -1, 3, None), |
| Among("I", 0, 1, None), |
| Among("U", 0, 2, None), |
| ]; |
| |
| static A_1: &'static [Among<Context>; 16] = &[ |
| Among("ea", -1, 3, None), |
| Among("a\u{0163}ia", -1, 7, None), |
| Among("aua", -1, 2, None), |
| Among("iua", -1, 4, None), |
| Among("a\u{0163}ie", -1, 7, None), |
| Among("ele", -1, 3, None), |
| Among("ile", -1, 5, None), |
| Among("iile", 6, 4, None), |
| Among("iei", -1, 4, None), |
| Among("atei", -1, 6, None), |
| Among("ii", -1, 4, None), |
| Among("ului", -1, 1, None), |
| Among("ul", -1, 1, None), |
| Among("elor", -1, 3, None), |
| Among("ilor", -1, 4, None), |
| Among("iilor", 14, 4, None), |
| ]; |
| |
| static A_2: &'static [Among<Context>; 46] = &[ |
| Among("icala", -1, 4, None), |
| Among("iciva", -1, 4, None), |
| Among("ativa", -1, 5, None), |
| Among("itiva", -1, 6, None), |
| Among("icale", -1, 4, None), |
| Among("a\u{0163}iune", -1, 5, None), |
| Among("i\u{0163}iune", -1, 6, None), |
| Among("atoare", -1, 5, None), |
| Among("itoare", -1, 6, None), |
| Among("\u{0103}toare", -1, 5, None), |
| Among("icitate", -1, 4, None), |
| Among("abilitate", -1, 1, None), |
| Among("ibilitate", -1, 2, None), |
| Among("ivitate", -1, 3, None), |
| Among("icive", -1, 4, None), |
| Among("ative", -1, 5, None), |
| Among("itive", -1, 6, None), |
| Among("icali", -1, 4, None), |
| Among("atori", -1, 5, None), |
| Among("icatori", 18, 4, None), |
| Among("itori", -1, 6, None), |
| Among("\u{0103}tori", -1, 5, None), |
| Among("icitati", -1, 4, None), |
| Among("abilitati", -1, 1, None), |
| Among("ivitati", -1, 3, None), |
| Among("icivi", -1, 4, None), |
| Among("ativi", -1, 5, None), |
| Among("itivi", -1, 6, None), |
| Among("icit\u{0103}i", -1, 4, None), |
| Among("abilit\u{0103}i", -1, 1, None), |
| Among("ivit\u{0103}i", -1, 3, None), |
| Among("icit\u{0103}\u{0163}i", -1, 4, None), |
| Among("abilit\u{0103}\u{0163}i", -1, 1, None), |
| Among("ivit\u{0103}\u{0163}i", -1, 3, None), |
| Among("ical", -1, 4, None), |
| Among("ator", -1, 5, None), |
| Among("icator", 35, 4, None), |
| Among("itor", -1, 6, None), |
| Among("\u{0103}tor", -1, 5, None), |
| Among("iciv", -1, 4, None), |
| Among("ativ", -1, 5, None), |
| Among("itiv", -1, 6, None), |
| Among("ical\u{0103}", -1, 4, None), |
| Among("iciv\u{0103}", -1, 4, None), |
| Among("ativ\u{0103}", -1, 5, None), |
| Among("itiv\u{0103}", -1, 6, None), |
| ]; |
| |
| static A_3: &'static [Among<Context>; 62] = &[ |
| Among("ica", -1, 1, None), |
| Among("abila", -1, 1, None), |
| Among("ibila", -1, 1, None), |
| Among("oasa", -1, 1, None), |
| Among("ata", -1, 1, None), |
| Among("ita", -1, 1, None), |
| Among("anta", -1, 1, None), |
| Among("ista", -1, 3, None), |
| Among("uta", -1, 1, None), |
| Among("iva", -1, 1, None), |
| Among("ic", -1, 1, None), |
| Among("ice", -1, 1, None), |
| Among("abile", -1, 1, None), |
| Among("ibile", -1, 1, None), |
| Among("isme", -1, 3, None), |
| Among("iune", -1, 2, None), |
| Among("oase", -1, 1, None), |
| Among("ate", -1, 1, None), |
| Among("itate", 17, 1, None), |
| Among("ite", -1, 1, None), |
| Among("ante", -1, 1, None), |
| Among("iste", -1, 3, None), |
| Among("ute", -1, 1, None), |
| Among("ive", -1, 1, None), |
| Among("ici", -1, 1, None), |
| Among("abili", -1, 1, None), |
| Among("ibili", -1, 1, None), |
| Among("iuni", -1, 2, None), |
| Among("atori", -1, 1, None), |
| Among("osi", -1, 1, None), |
| Among("ati", -1, 1, None), |
| Among("itati", 30, 1, None), |
| Among("iti", -1, 1, None), |
| Among("anti", -1, 1, None), |
| Among("isti", -1, 3, None), |
| Among("uti", -1, 1, None), |
| Among("i\u{015F}ti", -1, 3, None), |
| Among("ivi", -1, 1, None), |
| Among("it\u{0103}i", -1, 1, None), |
| Among("o\u{015F}i", -1, 1, None), |
| Among("it\u{0103}\u{0163}i", -1, 1, None), |
| Among("abil", -1, 1, None), |
| Among("ibil", -1, 1, None), |
| Among("ism", -1, 3, None), |
| Among("ator", -1, 1, None), |
| Among("os", -1, 1, None), |
| Among("at", -1, 1, None), |
| Among("it", -1, 1, None), |
| Among("ant", -1, 1, None), |
| Among("ist", -1, 3, None), |
| Among("ut", -1, 1, None), |
| Among("iv", -1, 1, None), |
| Among("ic\u{0103}", -1, 1, None), |
| Among("abil\u{0103}", -1, 1, None), |
| Among("ibil\u{0103}", -1, 1, None), |
| Among("oas\u{0103}", -1, 1, None), |
| Among("at\u{0103}", -1, 1, None), |
| Among("it\u{0103}", -1, 1, None), |
| Among("ant\u{0103}", -1, 1, None), |
| Among("ist\u{0103}", -1, 3, None), |
| Among("ut\u{0103}", -1, 1, None), |
| Among("iv\u{0103}", -1, 1, None), |
| ]; |
| |
| static A_4: &'static [Among<Context>; 94] = &[ |
| Among("ea", -1, 1, None), |
| Among("ia", -1, 1, None), |
| Among("esc", -1, 1, None), |
| Among("\u{0103}sc", -1, 1, None), |
| Among("ind", -1, 1, None), |
| Among("\u{00E2}nd", -1, 1, None), |
| Among("are", -1, 1, None), |
| Among("ere", -1, 1, None), |
| Among("ire", -1, 1, None), |
| Among("\u{00E2}re", -1, 1, None), |
| Among("se", -1, 2, None), |
| Among("ase", 10, 1, None), |
| Among("sese", 10, 2, None), |
| Among("ise", 10, 1, None), |
| Among("use", 10, 1, None), |
| Among("\u{00E2}se", 10, 1, None), |
| Among("e\u{015F}te", -1, 1, None), |
| Among("\u{0103}\u{015F}te", -1, 1, None), |
| Among("eze", -1, 1, None), |
| Among("ai", -1, 1, None), |
| Among("eai", 19, 1, None), |
| Among("iai", 19, 1, None), |
| Among("sei", -1, 2, None), |
| Among("e\u{015F}ti", -1, 1, None), |
| Among("\u{0103}\u{015F}ti", -1, 1, None), |
| Among("ui", -1, 1, None), |
| Among("ezi", -1, 1, None), |
| Among("a\u{015F}i", -1, 1, None), |
| Among("se\u{015F}i", -1, 2, None), |
| Among("ase\u{015F}i", 28, 1, None), |
| Among("sese\u{015F}i", 28, 2, None), |
| Among("ise\u{015F}i", 28, 1, None), |
| Among("use\u{015F}i", 28, 1, None), |
| Among("\u{00E2}se\u{015F}i", 28, 1, None), |
| Among("i\u{015F}i", -1, 1, None), |
| Among("u\u{015F}i", -1, 1, None), |
| Among("\u{00E2}\u{015F}i", -1, 1, None), |
| Among("\u{00E2}i", -1, 1, None), |
| Among("a\u{0163}i", -1, 2, None), |
| Among("ea\u{0163}i", 38, 1, None), |
| Among("ia\u{0163}i", 38, 1, None), |
| Among("e\u{0163}i", -1, 2, None), |
| Among("i\u{0163}i", -1, 2, None), |
| Among("ar\u{0103}\u{0163}i", -1, 1, None), |
| Among("ser\u{0103}\u{0163}i", -1, 2, None), |
| Among("aser\u{0103}\u{0163}i", 44, 1, None), |
| Among("seser\u{0103}\u{0163}i", 44, 2, None), |
| Among("iser\u{0103}\u{0163}i", 44, 1, None), |
| Among("user\u{0103}\u{0163}i", 44, 1, None), |
| Among("\u{00E2}ser\u{0103}\u{0163}i", 44, 1, None), |
| Among("ir\u{0103}\u{0163}i", -1, 1, None), |
| Among("ur\u{0103}\u{0163}i", -1, 1, None), |
| Among("\u{00E2}r\u{0103}\u{0163}i", -1, 1, None), |
| Among("\u{00E2}\u{0163}i", -1, 2, None), |
| Among("am", -1, 1, None), |
| Among("eam", 54, 1, None), |
| Among("iam", 54, 1, None), |
| Among("em", -1, 2, None), |
| Among("asem", 57, 1, None), |
| Among("sesem", 57, 2, None), |
| Among("isem", 57, 1, None), |
| Among("usem", 57, 1, None), |
| Among("\u{00E2}sem", 57, 1, None), |
| Among("im", -1, 2, None), |
| Among("\u{0103}m", -1, 2, None), |
| Among("ar\u{0103}m", 64, 1, None), |
| Among("ser\u{0103}m", 64, 2, None), |
| Among("aser\u{0103}m", 66, 1, None), |
| Among("seser\u{0103}m", 66, 2, None), |
| Among("iser\u{0103}m", 66, 1, None), |
| Among("user\u{0103}m", 66, 1, None), |
| Among("\u{00E2}ser\u{0103}m", 66, 1, None), |
| Among("ir\u{0103}m", 64, 1, None), |
| Among("ur\u{0103}m", 64, 1, None), |
| Among("\u{00E2}r\u{0103}m", 64, 1, None), |
| Among("\u{00E2}m", -1, 2, None), |
| Among("au", -1, 1, None), |
| Among("eau", 76, 1, None), |
| Among("iau", 76, 1, None), |
| Among("indu", -1, 1, None), |
| Among("\u{00E2}ndu", -1, 1, None), |
| Among("ez", -1, 1, None), |
| Among("easc\u{0103}", -1, 1, None), |
| Among("ar\u{0103}", -1, 1, None), |
| Among("ser\u{0103}", -1, 2, None), |
| Among("aser\u{0103}", 84, 1, None), |
| Among("seser\u{0103}", 84, 2, None), |
| Among("iser\u{0103}", 84, 1, None), |
| Among("user\u{0103}", 84, 1, None), |
| Among("\u{00E2}ser\u{0103}", 84, 1, None), |
| Among("ir\u{0103}", -1, 1, None), |
| Among("ur\u{0103}", -1, 1, None), |
| Among("\u{00E2}r\u{0103}", -1, 1, None), |
| Among("eaz\u{0103}", -1, 1, None), |
| ]; |
| |
| static A_5: &'static [Among<Context>; 5] = &[ |
| Among("a", -1, 1, None), |
| Among("e", -1, 1, None), |
| Among("ie", 1, 1, None), |
| Among("i", -1, 1, None), |
| Among("\u{0103}", -1, 1, None), |
| ]; |
| |
| static G_v: &'static [u8; 21] = &[17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4]; |
| |
| #[derive(Clone)] |
| struct Context { |
| b_standard_suffix_removed: bool, |
| i_p2: usize, |
| i_p1: usize, |
| i_pV: usize, |
| } |
| |
| fn r_prelude(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| // (, line 30 |
| // repeat, line 31 |
| 'replab0: loop{ |
| let v_1 = env.cursor; |
| 'lab1: for _ in 0..1 { |
| // goto, line 31 |
| 'golab2: loop { |
| let v_2 = env.cursor; |
| 'lab3: loop { |
| // (, line 31 |
| if !env.in_grouping(G_v, 97, 259) { |
| break 'lab3; |
| } |
| // [, line 32 |
| env.bra = env.cursor; |
| // or, line 32 |
| 'lab4: loop { |
| let v_3 = env.cursor; |
| 'lab5: loop { |
| // (, line 32 |
| // literal, line 32 |
| if !env.eq_s(&"u") { |
| break 'lab5; |
| } |
| // ], line 32 |
| env.ket = env.cursor; |
| if !env.in_grouping(G_v, 97, 259) { |
| break 'lab5; |
| } |
| // <-, line 32 |
| if !env.slice_from("U") { |
| return false; |
| } |
| break 'lab4; |
| } |
| env.cursor = v_3; |
| // (, line 33 |
| // literal, line 33 |
| if !env.eq_s(&"i") { |
| break 'lab3; |
| } |
| // ], line 33 |
| env.ket = env.cursor; |
| if !env.in_grouping(G_v, 97, 259) { |
| break 'lab3; |
| } |
| // <-, line 33 |
| if !env.slice_from("I") { |
| return false; |
| } |
| break 'lab4; |
| } |
| env.cursor = v_2; |
| break 'golab2; |
| } |
| env.cursor = v_2; |
| if env.cursor >= env.limit { |
| break 'lab1; |
| } |
| env.next_char(); |
| } |
| continue 'replab0; |
| } |
| env.cursor = v_1; |
| break 'replab0; |
| } |
| return true; |
| } |
| |
| fn r_mark_regions(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| // (, line 37 |
| context.i_pV = env.limit; |
| context.i_p1 = env.limit; |
| context.i_p2 = env.limit; |
| // do, line 43 |
| let v_1 = env.cursor; |
| 'lab0: loop { |
| // (, line 43 |
| // or, line 45 |
| 'lab1: loop { |
| let v_2 = env.cursor; |
| 'lab2: loop { |
| // (, line 44 |
| if !env.in_grouping(G_v, 97, 259) { |
| break 'lab2; |
| } |
| // or, line 44 |
| 'lab3: loop { |
| let v_3 = env.cursor; |
| 'lab4: loop { |
| // (, line 44 |
| if !env.out_grouping(G_v, 97, 259) { |
| break 'lab4; |
| } |
| // gopast, line 44 |
| 'golab5: loop { |
| 'lab6: loop { |
| if !env.in_grouping(G_v, 97, 259) { |
| break 'lab6; |
| } |
| break 'golab5; |
| } |
| if env.cursor >= env.limit { |
| break 'lab4; |
| } |
| env.next_char(); |
| } |
| break 'lab3; |
| } |
| env.cursor = v_3; |
| // (, line 44 |
| if !env.in_grouping(G_v, 97, 259) { |
| break 'lab2; |
| } |
| // gopast, line 44 |
| 'golab7: loop { |
| 'lab8: loop { |
| if !env.out_grouping(G_v, 97, 259) { |
| break 'lab8; |
| } |
| break 'golab7; |
| } |
| if env.cursor >= env.limit { |
| break 'lab2; |
| } |
| env.next_char(); |
| } |
| break 'lab3; |
| } |
| break 'lab1; |
| } |
| env.cursor = v_2; |
| // (, line 46 |
| if !env.out_grouping(G_v, 97, 259) { |
| break 'lab0; |
| } |
| // or, line 46 |
| 'lab9: loop { |
| let v_6 = env.cursor; |
| 'lab10: loop { |
| // (, line 46 |
| if !env.out_grouping(G_v, 97, 259) { |
| break 'lab10; |
| } |
| // gopast, line 46 |
| 'golab11: loop { |
| 'lab12: loop { |
| if !env.in_grouping(G_v, 97, 259) { |
| break 'lab12; |
| } |
| break 'golab11; |
| } |
| if env.cursor >= env.limit { |
| break 'lab10; |
| } |
| env.next_char(); |
| } |
| break 'lab9; |
| } |
| env.cursor = v_6; |
| // (, line 46 |
| if !env.in_grouping(G_v, 97, 259) { |
| break 'lab0; |
| } |
| // next, line 46 |
| if env.cursor >= env.limit { |
| break 'lab0; |
| } |
| env.next_char(); |
| break 'lab9; |
| } |
| break 'lab1; |
| } |
| // setmark pV, line 47 |
| context.i_pV = env.cursor; |
| break 'lab0; |
| } |
| env.cursor = v_1; |
| // do, line 49 |
| let v_8 = env.cursor; |
| 'lab13: loop { |
| // (, line 49 |
| // gopast, line 50 |
| 'golab14: loop { |
| 'lab15: loop { |
| if !env.in_grouping(G_v, 97, 259) { |
| break 'lab15; |
| } |
| break 'golab14; |
| } |
| if env.cursor >= env.limit { |
| break 'lab13; |
| } |
| env.next_char(); |
| } |
| // gopast, line 50 |
| 'golab16: loop { |
| 'lab17: loop { |
| if !env.out_grouping(G_v, 97, 259) { |
| break 'lab17; |
| } |
| break 'golab16; |
| } |
| if env.cursor >= env.limit { |
| break 'lab13; |
| } |
| env.next_char(); |
| } |
| // setmark p1, line 50 |
| context.i_p1 = env.cursor; |
| // gopast, line 51 |
| 'golab18: loop { |
| 'lab19: loop { |
| if !env.in_grouping(G_v, 97, 259) { |
| break 'lab19; |
| } |
| break 'golab18; |
| } |
| if env.cursor >= env.limit { |
| break 'lab13; |
| } |
| env.next_char(); |
| } |
| // gopast, line 51 |
| 'golab20: loop { |
| 'lab21: loop { |
| if !env.out_grouping(G_v, 97, 259) { |
| break 'lab21; |
| } |
| break 'golab20; |
| } |
| if env.cursor >= env.limit { |
| break 'lab13; |
| } |
| env.next_char(); |
| } |
| // setmark p2, line 51 |
| context.i_p2 = env.cursor; |
| break 'lab13; |
| } |
| env.cursor = v_8; |
| return true; |
| } |
| |
| fn r_postlude(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| let mut among_var; |
| // repeat, line 55 |
| 'replab0: loop{ |
| let v_1 = env.cursor; |
| 'lab1: for _ in 0..1 { |
| // (, line 55 |
| // [, line 57 |
| env.bra = env.cursor; |
| // substring, line 57 |
| among_var = env.find_among(A_0, context); |
| if among_var == 0 { |
| break 'lab1; |
| } |
| // ], line 57 |
| env.ket = env.cursor; |
| if among_var == 0 { |
| break 'lab1; |
| } else if among_var == 1 { |
| // (, line 58 |
| // <-, line 58 |
| if !env.slice_from("i") { |
| return false; |
| } |
| } else if among_var == 2 { |
| // (, line 59 |
| // <-, line 59 |
| if !env.slice_from("u") { |
| return false; |
| } |
| } else if among_var == 3 { |
| // (, line 60 |
| // next, line 60 |
| if env.cursor >= env.limit { |
| break 'lab1; |
| } |
| env.next_char(); |
| } |
| continue 'replab0; |
| } |
| env.cursor = v_1; |
| break 'replab0; |
| } |
| return true; |
| } |
| |
| fn r_RV(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| if !(context.i_pV <= env.cursor){ |
| return false; |
| } |
| return true; |
| } |
| |
| fn r_R1(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| if !(context.i_p1 <= env.cursor){ |
| return false; |
| } |
| return true; |
| } |
| |
| fn r_R2(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| if !(context.i_p2 <= env.cursor){ |
| return false; |
| } |
| return true; |
| } |
| |
| fn r_step_0(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| let mut among_var; |
| // (, line 71 |
| // [, line 72 |
| env.ket = env.cursor; |
| // substring, line 72 |
| among_var = env.find_among_b(A_1, context); |
| if among_var == 0 { |
| return false; |
| } |
| // ], line 72 |
| env.bra = env.cursor; |
| // call R1, line 72 |
| if !r_R1(env, context) { |
| return false; |
| } |
| if among_var == 0 { |
| return false; |
| } else if among_var == 1 { |
| // (, line 74 |
| // delete, line 74 |
| if !env.slice_del() { |
| return false; |
| } |
| } else if among_var == 2 { |
| // (, line 76 |
| // <-, line 76 |
| if !env.slice_from("a") { |
| return false; |
| } |
| } else if among_var == 3 { |
| // (, line 78 |
| // <-, line 78 |
| if !env.slice_from("e") { |
| return false; |
| } |
| } else if among_var == 4 { |
| // (, line 80 |
| // <-, line 80 |
| if !env.slice_from("i") { |
| return false; |
| } |
| } else if among_var == 5 { |
| // (, line 82 |
| // not, line 82 |
| let v_1 = env.limit - env.cursor; |
| 'lab0: loop { |
| // literal, line 82 |
| if !env.eq_s_b(&"ab") { |
| break 'lab0; |
| } |
| return false; |
| } |
| env.cursor = env.limit - v_1; |
| // <-, line 82 |
| if !env.slice_from("i") { |
| return false; |
| } |
| } else if among_var == 6 { |
| // (, line 84 |
| // <-, line 84 |
| if !env.slice_from("at") { |
| return false; |
| } |
| } else if among_var == 7 { |
| // (, line 86 |
| // <-, line 86 |
| if !env.slice_from("a\u{0163}i") { |
| return false; |
| } |
| } |
| return true; |
| } |
| |
| fn r_combo_suffix(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| let mut among_var; |
| // test, line 90 |
| let v_1 = env.limit - env.cursor; |
| // (, line 90 |
| // [, line 91 |
| env.ket = env.cursor; |
| // substring, line 91 |
| among_var = env.find_among_b(A_2, context); |
| if among_var == 0 { |
| return false; |
| } |
| // ], line 91 |
| env.bra = env.cursor; |
| // call R1, line 91 |
| if !r_R1(env, context) { |
| return false; |
| } |
| // (, line 91 |
| if among_var == 0 { |
| return false; |
| } else if among_var == 1 { |
| // (, line 99 |
| // <-, line 100 |
| if !env.slice_from("abil") { |
| return false; |
| } |
| } else if among_var == 2 { |
| // (, line 102 |
| // <-, line 103 |
| if !env.slice_from("ibil") { |
| return false; |
| } |
| } else if among_var == 3 { |
| // (, line 105 |
| // <-, line 106 |
| if !env.slice_from("iv") { |
| return false; |
| } |
| } else if among_var == 4 { |
| // (, line 111 |
| // <-, line 112 |
| if !env.slice_from("ic") { |
| return false; |
| } |
| } else if among_var == 5 { |
| // (, line 116 |
| // <-, line 117 |
| if !env.slice_from("at") { |
| return false; |
| } |
| } else if among_var == 6 { |
| // (, line 120 |
| // <-, line 121 |
| if !env.slice_from("it") { |
| return false; |
| } |
| } |
| // set standard_suffix_removed, line 124 |
| context.b_standard_suffix_removed = true; |
| env.cursor = env.limit - v_1; |
| return true; |
| } |
| |
| fn r_standard_suffix(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| let mut among_var; |
| // (, line 128 |
| // unset standard_suffix_removed, line 129 |
| context.b_standard_suffix_removed = false; |
| // repeat, line 130 |
| 'replab0: loop{ |
| let v_1 = env.limit - env.cursor; |
| 'lab1: for _ in 0..1 { |
| // call combo_suffix, line 130 |
| if !r_combo_suffix(env, context) { |
| break 'lab1; |
| } |
| continue 'replab0; |
| } |
| env.cursor = env.limit - v_1; |
| break 'replab0; |
| } |
| // [, line 131 |
| env.ket = env.cursor; |
| // substring, line 131 |
| among_var = env.find_among_b(A_3, context); |
| if among_var == 0 { |
| return false; |
| } |
| // ], line 131 |
| env.bra = env.cursor; |
| // call R2, line 131 |
| if !r_R2(env, context) { |
| return false; |
| } |
| // (, line 131 |
| if among_var == 0 { |
| return false; |
| } else if among_var == 1 { |
| // (, line 147 |
| // delete, line 148 |
| if !env.slice_del() { |
| return false; |
| } |
| } else if among_var == 2 { |
| // (, line 150 |
| // literal, line 151 |
| if !env.eq_s_b(&"\u{0163}") { |
| return false; |
| } |
| // ], line 151 |
| env.bra = env.cursor; |
| // <-, line 151 |
| if !env.slice_from("t") { |
| return false; |
| } |
| } else if among_var == 3 { |
| // (, line 154 |
| // <-, line 155 |
| if !env.slice_from("ist") { |
| return false; |
| } |
| } |
| // set standard_suffix_removed, line 159 |
| context.b_standard_suffix_removed = true; |
| return true; |
| } |
| |
| fn r_verb_suffix(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| let mut among_var; |
| // setlimit, line 163 |
| let v_1 = env.limit - env.cursor; |
| // tomark, line 163 |
| if env.cursor < context.i_pV { |
| return false; |
| } |
| env.cursor = context.i_pV; |
| let v_2 = env.limit_backward; |
| env.limit_backward = env.cursor; |
| env.cursor = env.limit - v_1; |
| // (, line 163 |
| // [, line 164 |
| env.ket = env.cursor; |
| // substring, line 164 |
| among_var = env.find_among_b(A_4, context); |
| if among_var == 0 { |
| env.limit_backward = v_2; |
| return false; |
| } |
| // ], line 164 |
| env.bra = env.cursor; |
| if among_var == 0 { |
| env.limit_backward = v_2; |
| return false; |
| } else if among_var == 1 { |
| // (, line 199 |
| // or, line 199 |
| 'lab0: loop { |
| let v_3 = env.limit - env.cursor; |
| 'lab1: loop { |
| if !env.out_grouping_b(G_v, 97, 259) { |
| break 'lab1; |
| } |
| break 'lab0; |
| } |
| env.cursor = env.limit - v_3; |
| // literal, line 199 |
| if !env.eq_s_b(&"u") { |
| env.limit_backward = v_2; |
| return false; |
| } |
| break 'lab0; |
| } |
| // delete, line 199 |
| if !env.slice_del() { |
| return false; |
| } |
| } else if among_var == 2 { |
| // (, line 213 |
| // delete, line 213 |
| if !env.slice_del() { |
| return false; |
| } |
| } |
| env.limit_backward = v_2; |
| return true; |
| } |
| |
| fn r_vowel_suffix(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| let mut among_var; |
| // (, line 217 |
| // [, line 218 |
| env.ket = env.cursor; |
| // substring, line 218 |
| among_var = env.find_among_b(A_5, context); |
| if among_var == 0 { |
| return false; |
| } |
| // ], line 218 |
| env.bra = env.cursor; |
| // call RV, line 218 |
| if !r_RV(env, context) { |
| return false; |
| } |
| if among_var == 0 { |
| return false; |
| } else if among_var == 1 { |
| // (, line 219 |
| // delete, line 219 |
| if !env.slice_del() { |
| return false; |
| } |
| } |
| return true; |
| } |
| |
| pub fn stem(env: &mut SnowballEnv) -> bool { |
| let mut context = &mut Context { |
| b_standard_suffix_removed: false, |
| i_p2: 0, |
| i_p1: 0, |
| i_pV: 0, |
| }; |
| // (, line 224 |
| // do, line 225 |
| let v_1 = env.cursor; |
| 'lab0: loop { |
| // call prelude, line 225 |
| if !r_prelude(env, context) { |
| break 'lab0; |
| } |
| break 'lab0; |
| } |
| env.cursor = v_1; |
| // do, line 226 |
| let v_2 = env.cursor; |
| 'lab1: loop { |
| // call mark_regions, line 226 |
| if !r_mark_regions(env, context) { |
| break 'lab1; |
| } |
| break 'lab1; |
| } |
| env.cursor = v_2; |
| // backwards, line 227 |
| env.limit_backward = env.cursor; |
| env.cursor = env.limit; |
| // (, line 227 |
| // do, line 228 |
| let v_3 = env.limit - env.cursor; |
| 'lab2: loop { |
| // call step_0, line 228 |
| if !r_step_0(env, context) { |
| break 'lab2; |
| } |
| break 'lab2; |
| } |
| env.cursor = env.limit - v_3; |
| // do, line 229 |
| let v_4 = env.limit - env.cursor; |
| 'lab3: loop { |
| // call standard_suffix, line 229 |
| if !r_standard_suffix(env, context) { |
| break 'lab3; |
| } |
| break 'lab3; |
| } |
| env.cursor = env.limit - v_4; |
| // do, line 230 |
| let v_5 = env.limit - env.cursor; |
| 'lab4: loop { |
| // (, line 230 |
| // or, line 230 |
| 'lab5: loop { |
| let v_6 = env.limit - env.cursor; |
| 'lab6: loop { |
| // Boolean test standard_suffix_removed, line 230 |
| if !context.b_standard_suffix_removed { |
| break 'lab6; |
| } |
| break 'lab5; |
| } |
| env.cursor = env.limit - v_6; |
| // call verb_suffix, line 230 |
| if !r_verb_suffix(env, context) { |
| break 'lab4; |
| } |
| break 'lab5; |
| } |
| break 'lab4; |
| } |
| env.cursor = env.limit - v_5; |
| // do, line 231 |
| let v_7 = env.limit - env.cursor; |
| 'lab7: loop { |
| // call vowel_suffix, line 231 |
| if !r_vowel_suffix(env, context) { |
| break 'lab7; |
| } |
| break 'lab7; |
| } |
| env.cursor = env.limit - v_7; |
| env.cursor = env.limit_backward; |
| // do, line 233 |
| let v_8 = env.cursor; |
| 'lab8: loop { |
| // call postlude, line 233 |
| if !r_postlude(env, context) { |
| break 'lab8; |
| } |
| break 'lab8; |
| } |
| env.cursor = v_8; |
| return true; |
| } |