| //! 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>; 7] = &[ |
| Among("", -1, 7, None), |
| Among("qu", 0, 6, None), |
| Among("\u{00E1}", 0, 1, None), |
| Among("\u{00E9}", 0, 2, None), |
| Among("\u{00ED}", 0, 3, None), |
| Among("\u{00F3}", 0, 4, None), |
| Among("\u{00FA}", 0, 5, None), |
| ]; |
| |
| static A_1: &'static [Among<Context>; 3] = &[ |
| Among("", -1, 3, None), |
| Among("I", 0, 1, None), |
| Among("U", 0, 2, None), |
| ]; |
| |
| static A_2: &'static [Among<Context>; 37] = &[ |
| Among("la", -1, -1, None), |
| Among("cela", 0, -1, None), |
| Among("gliela", 0, -1, None), |
| Among("mela", 0, -1, None), |
| Among("tela", 0, -1, None), |
| Among("vela", 0, -1, None), |
| Among("le", -1, -1, None), |
| Among("cele", 6, -1, None), |
| Among("gliele", 6, -1, None), |
| Among("mele", 6, -1, None), |
| Among("tele", 6, -1, None), |
| Among("vele", 6, -1, None), |
| Among("ne", -1, -1, None), |
| Among("cene", 12, -1, None), |
| Among("gliene", 12, -1, None), |
| Among("mene", 12, -1, None), |
| Among("sene", 12, -1, None), |
| Among("tene", 12, -1, None), |
| Among("vene", 12, -1, None), |
| Among("ci", -1, -1, None), |
| Among("li", -1, -1, None), |
| Among("celi", 20, -1, None), |
| Among("glieli", 20, -1, None), |
| Among("meli", 20, -1, None), |
| Among("teli", 20, -1, None), |
| Among("veli", 20, -1, None), |
| Among("gli", 20, -1, None), |
| Among("mi", -1, -1, None), |
| Among("si", -1, -1, None), |
| Among("ti", -1, -1, None), |
| Among("vi", -1, -1, None), |
| Among("lo", -1, -1, None), |
| Among("celo", 31, -1, None), |
| Among("glielo", 31, -1, None), |
| Among("melo", 31, -1, None), |
| Among("telo", 31, -1, None), |
| Among("velo", 31, -1, None), |
| ]; |
| |
| static A_3: &'static [Among<Context>; 5] = &[ |
| Among("ando", -1, 1, None), |
| Among("endo", -1, 1, None), |
| Among("ar", -1, 2, None), |
| Among("er", -1, 2, None), |
| Among("ir", -1, 2, None), |
| ]; |
| |
| static A_4: &'static [Among<Context>; 4] = &[ |
| Among("ic", -1, -1, None), |
| Among("abil", -1, -1, None), |
| Among("os", -1, -1, None), |
| Among("iv", -1, 1, None), |
| ]; |
| |
| static A_5: &'static [Among<Context>; 3] = &[ |
| Among("ic", -1, 1, None), |
| Among("abil", -1, 1, None), |
| Among("iv", -1, 1, None), |
| ]; |
| |
| static A_6: &'static [Among<Context>; 51] = &[ |
| Among("ica", -1, 1, None), |
| Among("logia", -1, 3, None), |
| Among("osa", -1, 1, None), |
| Among("ista", -1, 1, None), |
| Among("iva", -1, 9, None), |
| Among("anza", -1, 1, None), |
| Among("enza", -1, 5, None), |
| Among("ice", -1, 1, None), |
| Among("atrice", 7, 1, None), |
| Among("iche", -1, 1, None), |
| Among("logie", -1, 3, None), |
| Among("abile", -1, 1, None), |
| Among("ibile", -1, 1, None), |
| Among("usione", -1, 4, None), |
| Among("azione", -1, 2, None), |
| Among("uzione", -1, 4, None), |
| Among("atore", -1, 2, None), |
| Among("ose", -1, 1, None), |
| Among("ante", -1, 1, None), |
| Among("mente", -1, 1, None), |
| Among("amente", 19, 7, None), |
| Among("iste", -1, 1, None), |
| Among("ive", -1, 9, None), |
| Among("anze", -1, 1, None), |
| Among("enze", -1, 5, None), |
| Among("ici", -1, 1, None), |
| Among("atrici", 25, 1, None), |
| Among("ichi", -1, 1, None), |
| Among("abili", -1, 1, None), |
| Among("ibili", -1, 1, None), |
| Among("ismi", -1, 1, None), |
| Among("usioni", -1, 4, None), |
| Among("azioni", -1, 2, None), |
| Among("uzioni", -1, 4, None), |
| Among("atori", -1, 2, None), |
| Among("osi", -1, 1, None), |
| Among("anti", -1, 1, None), |
| Among("amenti", -1, 6, None), |
| Among("imenti", -1, 6, None), |
| Among("isti", -1, 1, None), |
| Among("ivi", -1, 9, None), |
| Among("ico", -1, 1, None), |
| Among("ismo", -1, 1, None), |
| Among("oso", -1, 1, None), |
| Among("amento", -1, 6, None), |
| Among("imento", -1, 6, None), |
| Among("ivo", -1, 9, None), |
| Among("it\u{00E0}", -1, 8, None), |
| Among("ist\u{00E0}", -1, 1, None), |
| Among("ist\u{00E8}", -1, 1, None), |
| Among("ist\u{00EC}", -1, 1, None), |
| ]; |
| |
| static A_7: &'static [Among<Context>; 87] = &[ |
| Among("isca", -1, 1, None), |
| Among("enda", -1, 1, None), |
| Among("ata", -1, 1, None), |
| Among("ita", -1, 1, None), |
| Among("uta", -1, 1, None), |
| Among("ava", -1, 1, None), |
| Among("eva", -1, 1, None), |
| Among("iva", -1, 1, None), |
| Among("erebbe", -1, 1, None), |
| Among("irebbe", -1, 1, None), |
| Among("isce", -1, 1, None), |
| Among("ende", -1, 1, None), |
| Among("are", -1, 1, None), |
| Among("ere", -1, 1, None), |
| Among("ire", -1, 1, None), |
| Among("asse", -1, 1, None), |
| Among("ate", -1, 1, None), |
| Among("avate", 16, 1, None), |
| Among("evate", 16, 1, None), |
| Among("ivate", 16, 1, None), |
| Among("ete", -1, 1, None), |
| Among("erete", 20, 1, None), |
| Among("irete", 20, 1, None), |
| Among("ite", -1, 1, None), |
| Among("ereste", -1, 1, None), |
| Among("ireste", -1, 1, None), |
| Among("ute", -1, 1, None), |
| Among("erai", -1, 1, None), |
| Among("irai", -1, 1, None), |
| Among("isci", -1, 1, None), |
| Among("endi", -1, 1, None), |
| Among("erei", -1, 1, None), |
| Among("irei", -1, 1, None), |
| Among("assi", -1, 1, None), |
| Among("ati", -1, 1, None), |
| Among("iti", -1, 1, None), |
| Among("eresti", -1, 1, None), |
| Among("iresti", -1, 1, None), |
| Among("uti", -1, 1, None), |
| Among("avi", -1, 1, None), |
| Among("evi", -1, 1, None), |
| Among("ivi", -1, 1, None), |
| Among("isco", -1, 1, None), |
| Among("ando", -1, 1, None), |
| Among("endo", -1, 1, None), |
| Among("Yamo", -1, 1, None), |
| Among("iamo", -1, 1, None), |
| Among("avamo", -1, 1, None), |
| Among("evamo", -1, 1, None), |
| Among("ivamo", -1, 1, None), |
| Among("eremo", -1, 1, None), |
| Among("iremo", -1, 1, None), |
| Among("assimo", -1, 1, None), |
| Among("ammo", -1, 1, None), |
| Among("emmo", -1, 1, None), |
| Among("eremmo", 54, 1, None), |
| Among("iremmo", 54, 1, None), |
| Among("immo", -1, 1, None), |
| Among("ano", -1, 1, None), |
| Among("iscano", 58, 1, None), |
| Among("avano", 58, 1, None), |
| Among("evano", 58, 1, None), |
| Among("ivano", 58, 1, None), |
| Among("eranno", -1, 1, None), |
| Among("iranno", -1, 1, None), |
| Among("ono", -1, 1, None), |
| Among("iscono", 65, 1, None), |
| Among("arono", 65, 1, None), |
| Among("erono", 65, 1, None), |
| Among("irono", 65, 1, None), |
| Among("erebbero", -1, 1, None), |
| Among("irebbero", -1, 1, None), |
| Among("assero", -1, 1, None), |
| Among("essero", -1, 1, None), |
| Among("issero", -1, 1, None), |
| Among("ato", -1, 1, None), |
| Among("ito", -1, 1, None), |
| Among("uto", -1, 1, None), |
| Among("avo", -1, 1, None), |
| Among("evo", -1, 1, None), |
| Among("ivo", -1, 1, None), |
| Among("ar", -1, 1, None), |
| Among("ir", -1, 1, None), |
| Among("er\u{00E0}", -1, 1, None), |
| Among("ir\u{00E0}", -1, 1, None), |
| Among("er\u{00F2}", -1, 1, None), |
| Among("ir\u{00F2}", -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, 128, 8, 2, 1]; |
| |
| static G_AEIO: &'static [u8; 19] = &[17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2]; |
| |
| static G_CG: &'static [u8; 1] = &[17]; |
| |
| #[derive(Clone)] |
| struct Context { |
| i_p2: usize, |
| i_p1: usize, |
| i_pV: usize, |
| } |
| |
| fn r_prelude(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| let mut among_var; |
| // (, line 33 |
| // test, line 34 |
| let v_1 = env.cursor; |
| // repeat, line 34 |
| 'replab0: loop{ |
| let v_2 = env.cursor; |
| 'lab1: for _ in 0..1 { |
| // (, line 34 |
| // [, line 35 |
| env.bra = env.cursor; |
| // substring, line 35 |
| among_var = env.find_among(A_0, context); |
| if among_var == 0 { |
| break 'lab1; |
| } |
| // ], line 35 |
| env.ket = env.cursor; |
| if among_var == 0 { |
| break 'lab1; |
| } else if among_var == 1 { |
| // (, line 36 |
| // <-, line 36 |
| if !env.slice_from("\u{00E0}") { |
| return false; |
| } |
| } else if among_var == 2 { |
| // (, line 37 |
| // <-, line 37 |
| if !env.slice_from("\u{00E8}") { |
| return false; |
| } |
| } else if among_var == 3 { |
| // (, line 38 |
| // <-, line 38 |
| if !env.slice_from("\u{00EC}") { |
| return false; |
| } |
| } else if among_var == 4 { |
| // (, line 39 |
| // <-, line 39 |
| if !env.slice_from("\u{00F2}") { |
| return false; |
| } |
| } else if among_var == 5 { |
| // (, line 40 |
| // <-, line 40 |
| if !env.slice_from("\u{00F9}") { |
| return false; |
| } |
| } else if among_var == 6 { |
| // (, line 41 |
| // <-, line 41 |
| if !env.slice_from("qU") { |
| return false; |
| } |
| } else if among_var == 7 { |
| // (, line 42 |
| // next, line 42 |
| if env.cursor >= env.limit { |
| break 'lab1; |
| } |
| env.next_char(); |
| } |
| continue 'replab0; |
| } |
| env.cursor = v_2; |
| break 'replab0; |
| } |
| env.cursor = v_1; |
| // repeat, line 45 |
| 'replab2: loop{ |
| let v_3 = env.cursor; |
| 'lab3: for _ in 0..1 { |
| // goto, line 45 |
| 'golab4: loop { |
| let v_4 = env.cursor; |
| 'lab5: loop { |
| // (, line 45 |
| if !env.in_grouping(G_v, 97, 249) { |
| break 'lab5; |
| } |
| // [, line 46 |
| env.bra = env.cursor; |
| // or, line 46 |
| 'lab6: loop { |
| let v_5 = env.cursor; |
| 'lab7: loop { |
| // (, line 46 |
| // literal, line 46 |
| if !env.eq_s(&"u") { |
| break 'lab7; |
| } |
| // ], line 46 |
| env.ket = env.cursor; |
| if !env.in_grouping(G_v, 97, 249) { |
| break 'lab7; |
| } |
| // <-, line 46 |
| if !env.slice_from("U") { |
| return false; |
| } |
| break 'lab6; |
| } |
| env.cursor = v_5; |
| // (, line 47 |
| // literal, line 47 |
| if !env.eq_s(&"i") { |
| break 'lab5; |
| } |
| // ], line 47 |
| env.ket = env.cursor; |
| if !env.in_grouping(G_v, 97, 249) { |
| break 'lab5; |
| } |
| // <-, line 47 |
| if !env.slice_from("I") { |
| return false; |
| } |
| break 'lab6; |
| } |
| env.cursor = v_4; |
| break 'golab4; |
| } |
| env.cursor = v_4; |
| if env.cursor >= env.limit { |
| break 'lab3; |
| } |
| env.next_char(); |
| } |
| continue 'replab2; |
| } |
| env.cursor = v_3; |
| break 'replab2; |
| } |
| return true; |
| } |
| |
| fn r_mark_regions(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| // (, line 51 |
| context.i_pV = env.limit; |
| context.i_p1 = env.limit; |
| context.i_p2 = env.limit; |
| // do, line 57 |
| let v_1 = env.cursor; |
| 'lab0: loop { |
| // (, line 57 |
| // or, line 59 |
| 'lab1: loop { |
| let v_2 = env.cursor; |
| 'lab2: loop { |
| // (, line 58 |
| if !env.in_grouping(G_v, 97, 249) { |
| break 'lab2; |
| } |
| // or, line 58 |
| 'lab3: loop { |
| let v_3 = env.cursor; |
| 'lab4: loop { |
| // (, line 58 |
| if !env.out_grouping(G_v, 97, 249) { |
| break 'lab4; |
| } |
| // gopast, line 58 |
| 'golab5: loop { |
| 'lab6: loop { |
| if !env.in_grouping(G_v, 97, 249) { |
| break 'lab6; |
| } |
| break 'golab5; |
| } |
| if env.cursor >= env.limit { |
| break 'lab4; |
| } |
| env.next_char(); |
| } |
| break 'lab3; |
| } |
| env.cursor = v_3; |
| // (, line 58 |
| if !env.in_grouping(G_v, 97, 249) { |
| break 'lab2; |
| } |
| // gopast, line 58 |
| 'golab7: loop { |
| 'lab8: loop { |
| if !env.out_grouping(G_v, 97, 249) { |
| break 'lab8; |
| } |
| break 'golab7; |
| } |
| if env.cursor >= env.limit { |
| break 'lab2; |
| } |
| env.next_char(); |
| } |
| break 'lab3; |
| } |
| break 'lab1; |
| } |
| env.cursor = v_2; |
| // (, line 60 |
| if !env.out_grouping(G_v, 97, 249) { |
| break 'lab0; |
| } |
| // or, line 60 |
| 'lab9: loop { |
| let v_6 = env.cursor; |
| 'lab10: loop { |
| // (, line 60 |
| if !env.out_grouping(G_v, 97, 249) { |
| break 'lab10; |
| } |
| // gopast, line 60 |
| 'golab11: loop { |
| 'lab12: loop { |
| if !env.in_grouping(G_v, 97, 249) { |
| break 'lab12; |
| } |
| break 'golab11; |
| } |
| if env.cursor >= env.limit { |
| break 'lab10; |
| } |
| env.next_char(); |
| } |
| break 'lab9; |
| } |
| env.cursor = v_6; |
| // (, line 60 |
| if !env.in_grouping(G_v, 97, 249) { |
| break 'lab0; |
| } |
| // next, line 60 |
| if env.cursor >= env.limit { |
| break 'lab0; |
| } |
| env.next_char(); |
| break 'lab9; |
| } |
| break 'lab1; |
| } |
| // setmark pV, line 61 |
| context.i_pV = env.cursor; |
| break 'lab0; |
| } |
| env.cursor = v_1; |
| // do, line 63 |
| let v_8 = env.cursor; |
| 'lab13: loop { |
| // (, line 63 |
| // gopast, line 64 |
| 'golab14: loop { |
| 'lab15: loop { |
| if !env.in_grouping(G_v, 97, 249) { |
| break 'lab15; |
| } |
| break 'golab14; |
| } |
| if env.cursor >= env.limit { |
| break 'lab13; |
| } |
| env.next_char(); |
| } |
| // gopast, line 64 |
| 'golab16: loop { |
| 'lab17: loop { |
| if !env.out_grouping(G_v, 97, 249) { |
| break 'lab17; |
| } |
| break 'golab16; |
| } |
| if env.cursor >= env.limit { |
| break 'lab13; |
| } |
| env.next_char(); |
| } |
| // setmark p1, line 64 |
| context.i_p1 = env.cursor; |
| // gopast, line 65 |
| 'golab18: loop { |
| 'lab19: loop { |
| if !env.in_grouping(G_v, 97, 249) { |
| break 'lab19; |
| } |
| break 'golab18; |
| } |
| if env.cursor >= env.limit { |
| break 'lab13; |
| } |
| env.next_char(); |
| } |
| // gopast, line 65 |
| 'golab20: loop { |
| 'lab21: loop { |
| if !env.out_grouping(G_v, 97, 249) { |
| break 'lab21; |
| } |
| break 'golab20; |
| } |
| if env.cursor >= env.limit { |
| break 'lab13; |
| } |
| env.next_char(); |
| } |
| // setmark p2, line 65 |
| 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 69 |
| 'replab0: loop{ |
| let v_1 = env.cursor; |
| 'lab1: for _ in 0..1 { |
| // (, line 69 |
| // [, line 71 |
| env.bra = env.cursor; |
| // substring, line 71 |
| among_var = env.find_among(A_1, context); |
| if among_var == 0 { |
| break 'lab1; |
| } |
| // ], line 71 |
| env.ket = env.cursor; |
| if among_var == 0 { |
| break 'lab1; |
| } else if among_var == 1 { |
| // (, line 72 |
| // <-, line 72 |
| if !env.slice_from("i") { |
| return false; |
| } |
| } else if among_var == 2 { |
| // (, line 73 |
| // <-, line 73 |
| if !env.slice_from("u") { |
| return false; |
| } |
| } else if among_var == 3 { |
| // (, line 74 |
| // next, line 74 |
| 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_attached_pronoun(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| let mut among_var; |
| // (, line 85 |
| // [, line 86 |
| env.ket = env.cursor; |
| // substring, line 86 |
| if env.find_among_b(A_2, context) == 0 { |
| return false; |
| } |
| // ], line 86 |
| env.bra = env.cursor; |
| // among, line 96 |
| among_var = env.find_among_b(A_3, context); |
| if among_var == 0 { |
| return false; |
| } |
| // (, line 96 |
| // call RV, line 96 |
| if !r_RV(env, context) { |
| return false; |
| } |
| if among_var == 0 { |
| return false; |
| } else if among_var == 1 { |
| // (, line 97 |
| // delete, line 97 |
| if !env.slice_del() { |
| return false; |
| } |
| } else if among_var == 2 { |
| // (, line 98 |
| // <-, line 98 |
| if !env.slice_from("e") { |
| return false; |
| } |
| } |
| return true; |
| } |
| |
| fn r_standard_suffix(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| let mut among_var; |
| // (, line 102 |
| // [, line 103 |
| env.ket = env.cursor; |
| // substring, line 103 |
| among_var = env.find_among_b(A_6, context); |
| if among_var == 0 { |
| return false; |
| } |
| // ], line 103 |
| env.bra = env.cursor; |
| if among_var == 0 { |
| return false; |
| } else if among_var == 1 { |
| // (, line 110 |
| // call R2, line 110 |
| if !r_R2(env, context) { |
| return false; |
| } |
| // delete, line 110 |
| if !env.slice_del() { |
| return false; |
| } |
| } else if among_var == 2 { |
| // (, line 112 |
| // call R2, line 112 |
| if !r_R2(env, context) { |
| return false; |
| } |
| // delete, line 112 |
| if !env.slice_del() { |
| return false; |
| } |
| // try, line 113 |
| let v_1 = env.limit - env.cursor; |
| 'lab0: loop { |
| // (, line 113 |
| // [, line 113 |
| env.ket = env.cursor; |
| // literal, line 113 |
| if !env.eq_s_b(&"ic") { |
| env.cursor = env.limit - v_1; |
| break 'lab0; |
| } |
| // ], line 113 |
| env.bra = env.cursor; |
| // call R2, line 113 |
| if !r_R2(env, context) { |
| env.cursor = env.limit - v_1; |
| break 'lab0; |
| } |
| // delete, line 113 |
| if !env.slice_del() { |
| return false; |
| } |
| break 'lab0; |
| } |
| } else if among_var == 3 { |
| // (, line 116 |
| // call R2, line 116 |
| if !r_R2(env, context) { |
| return false; |
| } |
| // <-, line 116 |
| if !env.slice_from("log") { |
| return false; |
| } |
| } else if among_var == 4 { |
| // (, line 118 |
| // call R2, line 118 |
| if !r_R2(env, context) { |
| return false; |
| } |
| // <-, line 118 |
| if !env.slice_from("u") { |
| return false; |
| } |
| } else if among_var == 5 { |
| // (, line 120 |
| // call R2, line 120 |
| if !r_R2(env, context) { |
| return false; |
| } |
| // <-, line 120 |
| if !env.slice_from("ente") { |
| return false; |
| } |
| } else if among_var == 6 { |
| // (, line 122 |
| // call RV, line 122 |
| if !r_RV(env, context) { |
| return false; |
| } |
| // delete, line 122 |
| if !env.slice_del() { |
| return false; |
| } |
| } else if among_var == 7 { |
| // (, line 123 |
| // call R1, line 124 |
| if !r_R1(env, context) { |
| return false; |
| } |
| // delete, line 124 |
| if !env.slice_del() { |
| return false; |
| } |
| // try, line 125 |
| let v_2 = env.limit - env.cursor; |
| 'lab1: loop { |
| // (, line 125 |
| // [, line 126 |
| env.ket = env.cursor; |
| // substring, line 126 |
| among_var = env.find_among_b(A_4, context); |
| if among_var == 0 { |
| env.cursor = env.limit - v_2; |
| break 'lab1; |
| } |
| // ], line 126 |
| env.bra = env.cursor; |
| // call R2, line 126 |
| if !r_R2(env, context) { |
| env.cursor = env.limit - v_2; |
| break 'lab1; |
| } |
| // delete, line 126 |
| if !env.slice_del() { |
| return false; |
| } |
| if among_var == 0 { |
| env.cursor = env.limit - v_2; |
| break 'lab1; |
| } else if among_var == 1 { |
| // (, line 127 |
| // [, line 127 |
| env.ket = env.cursor; |
| // literal, line 127 |
| if !env.eq_s_b(&"at") { |
| env.cursor = env.limit - v_2; |
| break 'lab1; |
| } |
| // ], line 127 |
| env.bra = env.cursor; |
| // call R2, line 127 |
| if !r_R2(env, context) { |
| env.cursor = env.limit - v_2; |
| break 'lab1; |
| } |
| // delete, line 127 |
| if !env.slice_del() { |
| return false; |
| } |
| } |
| break 'lab1; |
| } |
| } else if among_var == 8 { |
| // (, line 132 |
| // call R2, line 133 |
| if !r_R2(env, context) { |
| return false; |
| } |
| // delete, line 133 |
| if !env.slice_del() { |
| return false; |
| } |
| // try, line 134 |
| let v_3 = env.limit - env.cursor; |
| 'lab2: loop { |
| // (, line 134 |
| // [, line 135 |
| env.ket = env.cursor; |
| // substring, line 135 |
| among_var = env.find_among_b(A_5, context); |
| if among_var == 0 { |
| env.cursor = env.limit - v_3; |
| break 'lab2; |
| } |
| // ], line 135 |
| env.bra = env.cursor; |
| if among_var == 0 { |
| env.cursor = env.limit - v_3; |
| break 'lab2; |
| } else if among_var == 1 { |
| // (, line 136 |
| // call R2, line 136 |
| if !r_R2(env, context) { |
| env.cursor = env.limit - v_3; |
| break 'lab2; |
| } |
| // delete, line 136 |
| if !env.slice_del() { |
| return false; |
| } |
| } |
| break 'lab2; |
| } |
| } else if among_var == 9 { |
| // (, line 140 |
| // call R2, line 141 |
| if !r_R2(env, context) { |
| return false; |
| } |
| // delete, line 141 |
| if !env.slice_del() { |
| return false; |
| } |
| // try, line 142 |
| let v_4 = env.limit - env.cursor; |
| 'lab3: loop { |
| // (, line 142 |
| // [, line 142 |
| env.ket = env.cursor; |
| // literal, line 142 |
| if !env.eq_s_b(&"at") { |
| env.cursor = env.limit - v_4; |
| break 'lab3; |
| } |
| // ], line 142 |
| env.bra = env.cursor; |
| // call R2, line 142 |
| if !r_R2(env, context) { |
| env.cursor = env.limit - v_4; |
| break 'lab3; |
| } |
| // delete, line 142 |
| if !env.slice_del() { |
| return false; |
| } |
| // [, line 142 |
| env.ket = env.cursor; |
| // literal, line 142 |
| if !env.eq_s_b(&"ic") { |
| env.cursor = env.limit - v_4; |
| break 'lab3; |
| } |
| // ], line 142 |
| env.bra = env.cursor; |
| // call R2, line 142 |
| if !r_R2(env, context) { |
| env.cursor = env.limit - v_4; |
| break 'lab3; |
| } |
| // delete, line 142 |
| if !env.slice_del() { |
| return false; |
| } |
| break 'lab3; |
| } |
| } |
| return true; |
| } |
| |
| fn r_verb_suffix(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| let mut among_var; |
| // setlimit, line 147 |
| let v_1 = env.limit - env.cursor; |
| // tomark, line 147 |
| 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 147 |
| // [, line 148 |
| env.ket = env.cursor; |
| // substring, line 148 |
| among_var = env.find_among_b(A_7, context); |
| if among_var == 0 { |
| env.limit_backward = v_2; |
| return false; |
| } |
| // ], line 148 |
| env.bra = env.cursor; |
| if among_var == 0 { |
| env.limit_backward = v_2; |
| return false; |
| } else if among_var == 1 { |
| // (, line 162 |
| // delete, line 162 |
| if !env.slice_del() { |
| return false; |
| } |
| } |
| env.limit_backward = v_2; |
| return true; |
| } |
| |
| fn r_vowel_suffix(env: &mut SnowballEnv, context: &mut Context) -> bool { |
| // (, line 169 |
| // try, line 170 |
| let v_1 = env.limit - env.cursor; |
| 'lab0: loop { |
| // (, line 170 |
| // [, line 171 |
| env.ket = env.cursor; |
| if !env.in_grouping_b(G_AEIO, 97, 242) { |
| env.cursor = env.limit - v_1; |
| break 'lab0; |
| } |
| // ], line 171 |
| env.bra = env.cursor; |
| // call RV, line 171 |
| if !r_RV(env, context) { |
| env.cursor = env.limit - v_1; |
| break 'lab0; |
| } |
| // delete, line 171 |
| if !env.slice_del() { |
| return false; |
| } |
| // [, line 172 |
| env.ket = env.cursor; |
| // literal, line 172 |
| if !env.eq_s_b(&"i") { |
| env.cursor = env.limit - v_1; |
| break 'lab0; |
| } |
| // ], line 172 |
| env.bra = env.cursor; |
| // call RV, line 172 |
| if !r_RV(env, context) { |
| env.cursor = env.limit - v_1; |
| break 'lab0; |
| } |
| // delete, line 172 |
| if !env.slice_del() { |
| return false; |
| } |
| break 'lab0; |
| } |
| // try, line 174 |
| let v_2 = env.limit - env.cursor; |
| 'lab1: loop { |
| // (, line 174 |
| // [, line 175 |
| env.ket = env.cursor; |
| // literal, line 175 |
| if !env.eq_s_b(&"h") { |
| env.cursor = env.limit - v_2; |
| break 'lab1; |
| } |
| // ], line 175 |
| env.bra = env.cursor; |
| if !env.in_grouping_b(G_CG, 99, 103) { |
| env.cursor = env.limit - v_2; |
| break 'lab1; |
| } |
| // call RV, line 175 |
| if !r_RV(env, context) { |
| env.cursor = env.limit - v_2; |
| break 'lab1; |
| } |
| // delete, line 175 |
| if !env.slice_del() { |
| return false; |
| } |
| break 'lab1; |
| } |
| return true; |
| } |
| |
| pub fn stem(env: &mut SnowballEnv) -> bool { |
| let mut context = &mut Context { |
| i_p2: 0, |
| i_p1: 0, |
| i_pV: 0, |
| }; |
| // (, line 180 |
| // do, line 181 |
| let v_1 = env.cursor; |
| 'lab0: loop { |
| // call prelude, line 181 |
| if !r_prelude(env, context) { |
| break 'lab0; |
| } |
| break 'lab0; |
| } |
| env.cursor = v_1; |
| // do, line 182 |
| let v_2 = env.cursor; |
| 'lab1: loop { |
| // call mark_regions, line 182 |
| if !r_mark_regions(env, context) { |
| break 'lab1; |
| } |
| break 'lab1; |
| } |
| env.cursor = v_2; |
| // backwards, line 183 |
| env.limit_backward = env.cursor; |
| env.cursor = env.limit; |
| // (, line 183 |
| // do, line 184 |
| let v_3 = env.limit - env.cursor; |
| 'lab2: loop { |
| // call attached_pronoun, line 184 |
| if !r_attached_pronoun(env, context) { |
| break 'lab2; |
| } |
| break 'lab2; |
| } |
| env.cursor = env.limit - v_3; |
| // do, line 185 |
| let v_4 = env.limit - env.cursor; |
| 'lab3: loop { |
| // (, line 185 |
| // or, line 185 |
| 'lab4: loop { |
| let v_5 = env.limit - env.cursor; |
| 'lab5: loop { |
| // call standard_suffix, line 185 |
| if !r_standard_suffix(env, context) { |
| break 'lab5; |
| } |
| break 'lab4; |
| } |
| env.cursor = env.limit - v_5; |
| // call verb_suffix, line 185 |
| if !r_verb_suffix(env, context) { |
| break 'lab3; |
| } |
| break 'lab4; |
| } |
| break 'lab3; |
| } |
| env.cursor = env.limit - v_4; |
| // do, line 186 |
| let v_6 = env.limit - env.cursor; |
| 'lab6: loop { |
| // call vowel_suffix, line 186 |
| if !r_vowel_suffix(env, context) { |
| break 'lab6; |
| } |
| break 'lab6; |
| } |
| env.cursor = env.limit - v_6; |
| env.cursor = env.limit_backward; |
| // do, line 188 |
| let v_7 = env.cursor; |
| 'lab7: loop { |
| // call postlude, line 188 |
| if !r_postlude(env, context) { |
| break 'lab7; |
| } |
| break 'lab7; |
| } |
| env.cursor = v_7; |
| return true; |
| } |