static int r_Step_4(struct SN_env * z) { int among_var; z->ket = z->c; /* [, line 92 */ among_var = find_among_b(z, a_5, 19); /* substring, line 92 */ if (!(among_var)) return 0; z->bra = z->c; /* ], line 92 */ { int ret = r_R2(z); if (ret == 0) return 0; /* call R2, line 92 */ if (ret < 0) return ret; } switch(among_var) { case 0: return 0; case 1: { int ret; ret = slice_del(z); /* delete, line 95 */ if (ret < 0) return ret; } break; case 2: { int m = z->l - z->c; (void) m; /* or, line 96 */ if (!(eq_s_b(z, 1, s_24))) goto lab1; goto lab0; lab1: z->c = z->l - m; if (!(eq_s_b(z, 1, s_25))) return 0; } lab0: { int ret; ret = slice_del(z); /* delete, line 96 */ if (ret < 0) return ret; } break; } return 1; }
static int r_tidy_up(struct SN_env * z) { int among_var; z->ket = z->c; /* [, line 184 */ among_var = find_among_b(z, a_7, 4); /* substring, line 184 */ if (!(among_var)) return 0; z->bra = z->c; /* ], line 184 */ switch(among_var) { case 0: return 0; case 1: { int ret = slice_del(z); /* delete, line 188 */ if (ret < 0) return ret; } z->ket = z->c; /* [, line 189 */ if (!(eq_s_b(z, 2, s_6))) return 0; z->bra = z->c; /* ], line 189 */ if (!(eq_s_b(z, 2, s_7))) return 0; { int ret = slice_del(z); /* delete, line 189 */ if (ret < 0) return ret; } break; case 2: if (!(eq_s_b(z, 2, s_8))) return 0; { int ret = slice_del(z); /* delete, line 192 */ if (ret < 0) return ret; } break; case 3: { int ret = slice_del(z); /* delete, line 194 */ if (ret < 0) return ret; } break; } return 1; }
static int r_un_accent(struct SN_env * z) { { int i = 1; while(1) { /* atleast, line 207 */ if (!(out_grouping_b(z, g_v, 97, 251))) goto lab0; i--; continue; lab0: break; } if (i > 0) return 0; } z->ket = z->c; /* [, line 208 */ { int m = z->l - z->c; (void) m; /* or, line 208 */ if (!(eq_s_b(z, 1, s_38))) goto lab2; goto lab1; lab2: z->c = z->l - m; if (!(eq_s_b(z, 1, s_39))) return 0; } lab1: z->bra = z->c; /* ], line 208 */ { int ret; ret = slice_from_s(z, 1, s_40); /* <-, line 208 */ if (ret < 0) return ret; } return 1; }
static int r_perfective_gerund(struct SN_env * z) { int among_var; z->ket = z->c; /* [, line 74 */ among_var = find_among_b(z, a_0, 9); /* substring, line 74 */ if (!(among_var)) return 0; z->bra = z->c; /* ], line 74 */ switch(among_var) { case 0: return 0; case 1: { int m = z->l - z->c; (void) m; /* or, line 78 */ if (!(eq_s_b(z, 1, s_0))) goto lab1; goto lab0; lab1: z->c = z->l - m; if (!(eq_s_b(z, 1, s_1))) return 0; } lab0: { int ret; ret = slice_del(z); /* delete, line 78 */ if (ret < 0) return ret; } break; case 2: { int ret; ret = slice_del(z); /* delete, line 85 */ if (ret < 0) return ret; } break; } return 1; }
static int r_verb(struct SN_env * z) { int among_var; z->ket = z->c; /* [, line 139 */ among_var = find_among_b(z, a_4, 46); /* substring, line 139 */ if (!(among_var)) return 0; z->bra = z->c; /* ], line 139 */ switch(among_var) { case 0: return 0; case 1: { int m = z->l - z->c; (void) m; /* or, line 145 */ if (!(eq_s_b(z, 1, s_4))) goto lab1; goto lab0; lab1: z->c = z->l - m; if (!(eq_s_b(z, 1, s_5))) return 0; } lab0: { int ret; ret = slice_del(z); /* delete, line 145 */ if (ret < 0) return ret; } break; case 2: { int ret; ret = slice_del(z); /* delete, line 153 */ if (ret < 0) return ret; } break; } return 1; }
static int r_vowel_suffix(struct SN_env * z) { { int m = z->l - z->c; /* try, line 170 */ z->ket = z->c; /* [, line 171 */ if (!(in_grouping_b(z, g_AEIO, 97, 242))) { z->c = z->l - m; goto lab0; } z->bra = z->c; /* ], line 171 */ if (!r_RV(z)) { z->c = z->l - m; goto lab0; } /* call RV, line 171 */ slice_del(z); /* delete, line 171 */ z->ket = z->c; /* [, line 172 */ if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m; goto lab0; } z->bra = z->c; /* ], line 172 */ if (!r_RV(z)) { z->c = z->l - m; goto lab0; } /* call RV, line 172 */ slice_del(z); /* delete, line 172 */ lab0: ; } { int m = z->l - z->c; /* try, line 174 */ z->ket = z->c; /* [, line 175 */ if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m; goto lab1; } z->bra = z->c; /* ], line 175 */ if (!(in_grouping_b(z, g_CG, 99, 103))) { z->c = z->l - m; goto lab1; } if (!r_RV(z)) { z->c = z->l - m; goto lab1; } /* call RV, line 175 */ slice_del(z); /* delete, line 175 */ lab1: ; } return 1; }
static int r_Step_1c(struct SN_env * z) { z->ket = z->c; /* [, line 52 */ { int m = z->l - z->c; (void) m; /* or, line 52 */ if (!(eq_s_b(z, 1, s_5))) goto lab1; goto lab0; lab1: z->c = z->l - m; if (!(eq_s_b(z, 1, s_6))) return 0; } lab0: z->bra = z->c; /* ], line 52 */ while(1) { /* gopast, line 53 */ if (!(in_grouping_b_U(z, g_v, 97, 121))) goto lab2; break; lab2: { int c = skip_utf8(z->p, z->c, z->lb, 0, -1); if (c < 0) return 0; z->c = c; /* gopast, line 53 */ } } { int ret; ret = slice_from_s(z, 1, s_7); /* <-, line 54 */ if (ret < 0) return ret; } return 1; }
extern int portuguese_stem(struct SN_env * z) { { int c = z->c; /* do, line 200 */ if (!r_prelude(z)) goto lab0; /* call prelude, line 200 */ lab0: z->c = c; } { int c = z->c; /* do, line 201 */ if (!r_mark_regions(z)) goto lab1; /* call mark_regions, line 201 */ lab1: z->c = c; } z->lb = z->c; z->c = z->l; /* backwards, line 202 */ { int m = z->l - z->c; /* do, line 203 */ { int m = z->l - z->c; /* or, line 207 */ { int m = z->l - z->c; /* or, line 204 */ if (!r_standard_suffix(z)) goto lab6; /* call standard_suffix, line 204 */ goto lab5; lab6: z->c = z->l - m; if (!r_verb_suffix(z)) goto lab4; /* call verb_suffix, line 204 */ } lab5: { int m = z->l - z->c; /* do, line 205 */ z->ket = z->c; /* [, line 205 */ if (!(eq_s_b(z, 1, s_16))) goto lab7; z->bra = z->c; /* ], line 205 */ { int m_test = z->l - z->c; /* test, line 205 */ if (!(eq_s_b(z, 1, s_17))) goto lab7; z->c = z->l - m_test; } if (!r_RV(z)) goto lab7; /* call RV, line 205 */ slice_del(z); /* delete, line 205 */ lab7: z->c = z->l - m; } goto lab3; lab4: z->c = z->l - m; if (!r_residual_suffix(z)) goto lab2; /* call residual_suffix, line 207 */ } lab3: lab2: z->c = z->l - m; } { int m = z->l - z->c; /* do, line 209 */ if (!r_residual_form(z)) goto lab8; /* call residual_form, line 209 */ lab8: z->c = z->l - m; } z->c = z->lb; { int c = z->c; /* do, line 211 */ if (!r_postlude(z)) goto lab9; /* call postlude, line 211 */ lab9: z->c = c; } return 1; }
static int r_residual_form(struct SN_env * z) { int among_var; z->ket = z->c; /* [, line 192 */ among_var = find_among_b(z, a_8, 4); /* substring, line 192 */ if (!(among_var)) return 0; z->bra = z->c; /* ], line 192 */ switch(among_var) { case 0: return 0; case 1: { int ret = r_RV(z); if (ret == 0) return 0; /* call RV, line 194 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 194 */ if (ret < 0) return ret; } z->ket = z->c; /* [, line 194 */ { int m = z->l - z->c; (void) m; /* or, line 194 */ if (!(eq_s_b(z, 1, s_11))) goto lab1; z->bra = z->c; /* ], line 194 */ { int m_test = z->l - z->c; /* test, line 194 */ if (!(eq_s_b(z, 1, s_12))) goto lab1; z->c = z->l - m_test; } goto lab0; lab1: z->c = z->l - m; if (!(eq_s_b(z, 1, s_13))) return 0; z->bra = z->c; /* ], line 195 */ { int m_test = z->l - z->c; /* test, line 195 */ if (!(eq_s_b(z, 1, s_14))) return 0; z->c = z->l - m_test; } } lab0: { int ret = r_RV(z); if (ret == 0) return 0; /* call RV, line 195 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 195 */ if (ret < 0) return ret; } break; case 2: { int ret; ret = slice_from_s(z, 1, s_15); /* <-, line 196 */ if (ret < 0) return ret; } break; } return 1; }
static int r_residual_suffix(struct SN_env * z) { int among_var; { int m = z->l - z->c; /* try, line 190 */ z->ket = z->c; /* [, line 190 */ if (!(eq_s_b(z, 1, s_33))) { z->c = z->l - m; goto lab0; } z->bra = z->c; /* ], line 190 */ { int m_test = z->l - z->c; /* test, line 190 */ if (!(out_grouping_b(z, g_keep_with_s, 97, 232))) { z->c = z->l - m; goto lab0; } z->c = z->l - m_test; } slice_del(z); /* delete, line 190 */ lab0: ; } { int m = z->l - z->c; /* setlimit, line 191 */ int m3; if (z->c < z->I[0]) return 0; z->c = z->I[0]; /* tomark, line 191 */ m3 = z->lb; z->lb = z->c; z->c = z->l - m; z->ket = z->c; /* [, line 192 */ among_var = find_among_b(z, a_6, 7); /* substring, line 192 */ if (!(among_var)) { z->lb = m3; return 0; } z->bra = z->c; /* ], line 192 */ switch(among_var) { case 0: { z->lb = m3; return 0; } case 1: if (!r_R2(z)) { z->lb = m3; return 0; } /* call R2, line 193 */ { int m = z->l - z->c; /* or, line 193 */ if (!(eq_s_b(z, 1, s_34))) goto lab2; goto lab1; lab2: z->c = z->l - m; if (!(eq_s_b(z, 1, s_35))) { z->lb = m3; return 0; } } lab1: slice_del(z); /* delete, line 193 */ break; case 2: slice_from_s(z, 1, s_36); /* <-, line 195 */ break; case 3: slice_del(z); /* delete, line 196 */ break; case 4: if (!(eq_s_b(z, 2, s_37))) { z->lb = m3; return 0; } slice_del(z); /* delete, line 197 */ break; } z->lb = m3; } return 1; }
static int r_other_suffix(struct SN_env * z) { int among_var; { int m = z->l - z->c; (void) m; /* do, line 66 */ z->ket = z->c; /* [, line 66 */ if (!(eq_s_b(z, 2, s_0))) goto lab0; z->bra = z->c; /* ], line 66 */ if (!(eq_s_b(z, 2, s_1))) goto lab0; { int ret; ret = slice_del(z); /* delete, line 66 */ if (ret < 0) return ret; } lab0: z->c = z->l - m; } { int m3; /* setlimit, line 67 */ int m = z->l - z->c; (void) m; if (z->c < z->I[0]) return 0; z->c = z->I[0]; /* tomark, line 67 */ m3 = z->lb; z->lb = z->c; z->c = z->l - m; z->ket = z->c; /* [, line 67 */ among_var = find_among_b(z, a_2, 5); /* substring, line 67 */ if (!(among_var)) { z->lb = m3; return 0; } z->bra = z->c; /* ], line 67 */ z->lb = m3; } switch(among_var) { case 0: return 0; case 1: { int ret; ret = slice_del(z); /* delete, line 70 */ if (ret < 0) return ret; } { int m = z->l - z->c; (void) m; /* do, line 70 */ { int ret = r_consonant_pair(z); if (ret == 0) goto lab1; /* call consonant_pair, line 70 */ if (ret < 0) return ret; } lab1: z->c = z->l - m; } break; case 2: { int ret; ret = slice_from_s(z, 4, s_2); /* <-, line 72 */ if (ret < 0) return ret; } break; } return 1; }
static int r_t_plural(struct SN_env * z) { int among_var; { int m3; /* setlimit, line 161 */ int m = z->l - z->c; (void) m; if (z->c < z->I[0]) return 0; z->c = z->I[0]; /* tomark, line 161 */ m3 = z->lb; z->lb = z->c; z->c = z->l - m; z->ket = z->c; /* [, line 162 */ if (!(eq_s_b(z, 1, s_13))) { z->lb = m3; return 0; } z->bra = z->c; /* ], line 162 */ { int m_test = z->l - z->c; /* test, line 162 */ if (!(in_grouping_b(z, g_V1, 97, 246))) { z->lb = m3; return 0; } z->c = z->l - m_test; } { int ret; ret = slice_del(z); /* delete, line 163 */ if (ret < 0) return ret; } z->lb = m3; } { int m3; /* setlimit, line 165 */ int m = z->l - z->c; (void) m; if (z->c < z->I[1]) return 0; z->c = z->I[1]; /* tomark, line 165 */ m3 = z->lb; z->lb = z->c; z->c = z->l - m; z->ket = z->c; /* [, line 165 */ among_var = find_among_b(z, a_9, 2); /* substring, line 165 */ if (!(among_var)) { z->lb = m3; return 0; } z->bra = z->c; /* ], line 165 */ z->lb = m3; } switch(among_var) { case 0: return 0; case 1: { int m = z->l - z->c; (void) m; /* not, line 167 */ if (!(eq_s_b(z, 2, s_14))) goto lab0; return 0; lab0: z->c = z->l - m; } break; } { int ret; ret = slice_del(z); /* delete, line 170 */ if (ret < 0) return ret; } return 1; }
static int r_residual_suffix(struct SN_env * z) { int among_var; z->ket = z->c; /* [, line 205 */ among_var = find_among_b(z, a_9, 8); /* substring, line 205 */ if (!(among_var)) return 0; z->bra = z->c; /* ], line 205 */ switch(among_var) { case 0: return 0; case 1: { int ret = r_RV(z); if (ret == 0) return 0; /* call RV, line 208 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 208 */ if (ret < 0) return ret; } break; case 2: { int ret = r_RV(z); if (ret == 0) return 0; /* call RV, line 210 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 210 */ if (ret < 0) return ret; } { int m = z->l - z->c; (void) m; /* try, line 210 */ z->ket = z->c; /* [, line 210 */ if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m; goto lab0; } z->bra = z->c; /* ], line 210 */ { int m_test = z->l - z->c; /* test, line 210 */ if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m; goto lab0; } z->c = z->l - m_test; } { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m; goto lab0; } /* call RV, line 210 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 210 */ if (ret < 0) return ret; } lab0: ; } break; } return 1; }
static int r_Step_5b(struct SN_env * z) { z->ket = z->c; /* [, line 107 */ if (!(eq_s_b(z, 1, s_27))) return 0; z->bra = z->c; /* ], line 107 */ { int ret = r_R2(z); if (ret == 0) return 0; /* call R2, line 108 */ if (ret < 0) return ret; } if (!(eq_s_b(z, 1, s_28))) return 0; { int ret; ret = slice_del(z); /* delete, line 109 */ if (ret < 0) return ret; } return 1; }
static int r_y_verb_suffix(struct SN_env * z) { int among_var; { int m3; /* setlimit, line 168 */ int m = z->l - z->c; (void) m; if (z->c < z->I[0]) return 0; z->c = z->I[0]; /* tomark, line 168 */ m3 = z->lb; z->lb = z->c; z->c = z->l - m; z->ket = z->c; /* [, line 168 */ among_var = find_among_b(z, a_7, 12); /* substring, line 168 */ if (!(among_var)) { z->lb = m3; return 0; } z->bra = z->c; /* ], line 168 */ z->lb = m3; } switch(among_var) { case 0: return 0; case 1: if (!(eq_s_b(z, 1, s_17))) return 0; { int ret; ret = slice_del(z); /* delete, line 171 */ if (ret < 0) return ret; } break; } return 1; }
static int r_Step_5a(struct SN_env * z) { z->ket = z->c; /* [, line 101 */ if (!(eq_s_b(z, 1, s_26))) return 0; z->bra = z->c; /* ], line 101 */ { int m = z->l - z->c; (void) m; /* or, line 102 */ { int ret = r_R2(z); if (ret == 0) goto lab1; /* call R2, line 102 */ if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m; { int ret = r_R1(z); if (ret == 0) return 0; /* call R1, line 102 */ if (ret < 0) return ret; } { int m = z->l - z->c; (void) m; /* not, line 102 */ { int ret = r_shortv(z); if (ret == 0) goto lab2; /* call shortv, line 102 */ if (ret < 0) return ret; } return 0; lab2: z->c = z->l - m; } } lab0: { int ret; ret = slice_del(z); /* delete, line 103 */ if (ret < 0) return ret; } return 1; }
static int r_en_ending(struct SN_env * z) { { int ret = r_R1(z); if (ret == 0) return 0; /* call R1, line 102 */ if (ret < 0) return ret; } { int m = z->l - z->c; (void) m; /* and, line 102 */ if (!(out_grouping_b_U(z, g_v, 97, 232))) return 0; z->c = z->l - m; { int m = z->l - z->c; (void) m; /* not, line 102 */ if (!(eq_s_b(z, 3, s_14))) goto lab0; return 0; lab0: z->c = z->l - m; } } { int ret; ret = slice_del(z); /* delete, line 102 */ if (ret < 0) return ret; } { int ret = r_undouble(z); if (ret == 0) return 0; /* call undouble, line 103 */ if (ret < 0) return ret; } return 1; }
static int r_other_endings(struct SN_env * z) { int among_var; { int mlimit; /* setlimit, line 142 */ int m1 = z->l - z->c; (void)m1; if (z->c < z->I[1]) return 0; z->c = z->I[1]; /* tomark, line 142 */ mlimit = z->lb; z->lb = z->c; z->c = z->l - m1; z->ket = z->c; /* [, line 142 */ among_var = find_among_b(z, a_7, 14); /* substring, line 142 */ if (!(among_var)) { z->lb = mlimit; return 0; } z->bra = z->c; /* ], line 142 */ z->lb = mlimit; } switch(among_var) { case 0: return 0; case 1: { int m2 = z->l - z->c; (void)m2; /* not, line 146 */ if (!(eq_s_b(z, 2, s_12))) goto lab0; return 0; lab0: z->c = z->l - m2; } break; } { int ret = slice_del(z); /* delete, line 151 */ if (ret < 0) return ret; } return 1; }
static int r_other_endings(struct SN_env * z) { /* backwardmode */ int among_var; { int mlimit1; /* setlimit, line 143 */ if (z->c < z->I[1]) return 0; mlimit1 = z->lb; z->lb = z->I[1]; z->ket = z->c; /* [, line 143 */ among_var = find_among_b(z, a_7, 14); /* substring, line 143 */ if (!(among_var)) { z->lb = mlimit1; return 0; } z->bra = z->c; /* ], line 143 */ z->lb = mlimit1; } switch (among_var) { /* among, line 144 */ case 1: { int m2 = z->l - z->c; (void)m2; /* not, line 147 */ if (!(eq_s_b(z, 2, s_5))) goto lab0; /* literal, line 147 */ return 0; lab0: z->c = z->l - m2; } break; } { int ret = slice_del(z); /* delete, line 152 */ if (ret < 0) return ret; } return 1; }
static int r_vowel_suffix(struct SN_env * z) { { int m = z->l - z->c; (void) m; /* try, line 171 */ z->ket = z->c; /* [, line 172 */ if (!(in_grouping_b(z, g_AEIO, 97, 242))) { z->c = z->l - m; goto lab0; } z->bra = z->c; /* ], line 172 */ { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m; goto lab0; } /* call RV, line 172 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 172 */ if (ret < 0) return ret; } z->ket = z->c; /* [, line 173 */ if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m; goto lab0; } z->bra = z->c; /* ], line 173 */ { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m; goto lab0; } /* call RV, line 173 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 173 */ if (ret < 0) return ret; } lab0: ; } { int m = z->l - z->c; (void) m; /* try, line 175 */ z->ket = z->c; /* [, line 176 */ if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m; goto lab1; } z->bra = z->c; /* ], line 176 */ if (!(in_grouping_b(z, g_CG, 99, 103))) { z->c = z->l - m; goto lab1; } { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m; goto lab1; } /* call RV, line 176 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 176 */ if (ret < 0) return ret; } lab1: ; } return 1; }
static int r_verb_suffix(struct SN_env * z) { int among_var; { int m3; /* setlimit, line 176 */ int m = z->l - z->c; (void) m; if (z->c < z->I[0]) return 0; z->c = z->I[0]; /* tomark, line 176 */ m3 = z->lb; z->lb = z->c; z->c = z->l - m; z->ket = z->c; /* [, line 176 */ among_var = find_among_b(z, a_8, 96); /* substring, line 176 */ if (!(among_var)) { z->lb = m3; return 0; } z->bra = z->c; /* ], line 176 */ z->lb = m3; } switch(among_var) { case 0: return 0; case 1: { int m = z->l - z->c; (void) m; /* try, line 179 */ if (!(eq_s_b(z, 1, s_18))) { z->c = z->l - m; goto lab0; } { int m_test = z->l - z->c; /* test, line 179 */ if (!(eq_s_b(z, 1, s_19))) { z->c = z->l - m; goto lab0; } z->c = z->l - m_test; } lab0: ; } z->bra = z->c; /* ], line 179 */ { int ret; ret = slice_del(z); /* delete, line 179 */ if (ret < 0) return ret; } break; case 2: { int ret; ret = slice_del(z); /* delete, line 200 */ if (ret < 0) return ret; } break; } return 1; }
static int r_verb_suffix(struct SN_env * z) { int among_var; { int m3; /* setlimit, line 165 */ int m = z->l - z->c; (void) m; if (z->c < z->I[0]) return 0; z->c = z->I[0]; /* tomark, line 165 */ m3 = z->lb; z->lb = z->c; z->c = z->l - m; z->ket = z->c; /* [, line 166 */ among_var = find_among_b(z, a_5, 38); /* substring, line 166 */ if (!(among_var)) { z->lb = m3; return 0; } z->bra = z->c; /* ], line 166 */ switch(among_var) { case 0: { z->lb = m3; return 0; } case 1: { int ret = r_R2(z); if (ret == 0) { z->lb = m3; return 0; } /* call R2, line 168 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 168 */ if (ret < 0) return ret; } break; case 2: { int ret; ret = slice_del(z); /* delete, line 176 */ if (ret < 0) return ret; } break; case 3: { int ret; ret = slice_del(z); /* delete, line 181 */ if (ret < 0) return ret; } { int m = z->l - z->c; (void) m; /* try, line 182 */ z->ket = z->c; /* [, line 182 */ if (!(eq_s_b(z, 1, s_32))) { z->c = z->l - m; goto lab0; } z->bra = z->c; /* ], line 182 */ { int ret; ret = slice_del(z); /* delete, line 182 */ if (ret < 0) return ret; } lab0: ; } break; } z->lb = m3; } return 1; }
static int r_adjectival(struct SN_env * z) { int among_var; { int ret = r_adjective(z); if (ret == 0) return 0; /* call adjective, line 104 */ if (ret < 0) return ret; } { int m = z->l - z->c; (void) m; /* try, line 111 */ z->ket = z->c; /* [, line 112 */ among_var = find_among_b(z, a_2, 8); /* substring, line 112 */ if (!(among_var)) { z->c = z->l - m; goto lab0; } z->bra = z->c; /* ], line 112 */ switch(among_var) { case 0: { z->c = z->l - m; goto lab0; } case 1: { int m = z->l - z->c; (void) m; /* or, line 117 */ if (!(eq_s_b(z, 1, s_2))) goto lab2; goto lab1; lab2: z->c = z->l - m; if (!(eq_s_b(z, 1, s_3))) { z->c = z->l - m; goto lab0; } } lab1: { int ret; ret = slice_del(z); /* delete, line 117 */ if (ret < 0) return ret; } break; case 2: { int ret; ret = slice_del(z); /* delete, line 124 */ if (ret < 0) return ret; } break; } lab0: ; } return 1; }
static int r_Step_5(struct SN_env * z) { int among_var; z->ket = z->c; /* [, line 149 */ among_var = find_among_b(z, a_8, 2); /* substring, line 149 */ if (!(among_var)) return 0; z->bra = z->c; /* ], line 149 */ switch(among_var) { case 0: return 0; case 1: { int m = z->l - z->c; (void) m; /* or, line 150 */ { int ret = r_R2(z); if (ret == 0) goto lab1; /* call R2, line 150 */ if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m; { int ret = r_R1(z); if (ret == 0) return 0; /* call R1, line 150 */ if (ret < 0) return ret; } { int m = z->l - z->c; (void) m; /* not, line 150 */ { int ret = r_shortv(z); if (ret == 0) goto lab2; /* call shortv, line 150 */ if (ret < 0) return ret; } return 0; lab2: z->c = z->l - m; } } lab0: { int ret; ret = slice_del(z); /* delete, line 150 */ if (ret < 0) return ret; } break; case 2: { int ret = r_R2(z); if (ret == 0) return 0; /* call R2, line 151 */ if (ret < 0) return ret; } if (!(eq_s_b(z, 1, s_36))) return 0; { int ret; ret = slice_del(z); /* delete, line 151 */ if (ret < 0) return ret; } break; } return 1; }
static int r_Step_1c(struct SN_env * z) { z->ket = z->c; /* [, line 93 */ { int m = z->l - z->c; (void) m; /* or, line 93 */ if (!(eq_s_b(z, 1, s_11))) goto lab1; goto lab0; lab1: z->c = z->l - m; if (!(eq_s_b(z, 1, s_12))) return 0; } lab0: z->bra = z->c; /* ], line 93 */ if (!(out_grouping_b(z, g_v, 97, 121))) return 0; { int m = z->l - z->c; (void) m; /* not, line 94 */ if (z->c > z->lb) goto lab2; /* atlimit, line 94 */ return 0; lab2: z->c = z->l - m; } { int ret; ret = slice_from_s(z, 1, s_13); /* <-, line 95 */ if (ret < 0) return ret; } return 1; }
static int r_main_suffix(struct SN_env * z) { int among_var; { int m3; /* setlimit, line 38 */ int m = z->l - z->c; (void) m; if (z->c < z->I[0]) return 0; z->c = z->I[0]; /* tomark, line 38 */ m3 = z->lb; z->lb = z->c; z->c = z->l - m; z->ket = z->c; /* [, line 38 */ among_var = find_among_b(z, a_0, 29); /* substring, line 38 */ if (!(among_var)) { z->lb = m3; return 0; } z->bra = z->c; /* ], line 38 */ z->lb = m3; } switch(among_var) { case 0: return 0; case 1: { int ret; ret = slice_del(z); /* delete, line 44 */ if (ret < 0) return ret; } break; case 2: { int m = z->l - z->c; (void) m; /* or, line 46 */ if (!(in_grouping_b_U(z, g_s_ending, 98, 122))) goto lab1; goto lab0; lab1: z->c = z->l - m; if (!(eq_s_b(z, 1, s_0))) return 0; if (!(out_grouping_b_U(z, g_v, 97, 248))) return 0; } lab0: { int ret; ret = slice_del(z); /* delete, line 46 */ if (ret < 0) return ret; } break; case 3: { int ret; ret = slice_from_s(z, 2, s_1); /* <-, line 48 */ if (ret < 0) return ret; } break; } return 1; }
static int r_t_plural(struct SN_env * z) { /* backwardmode */ int among_var; { int mlimit1; /* setlimit, line 162 */ if (z->c < z->I[0]) return 0; mlimit1 = z->lb; z->lb = z->I[0]; z->ket = z->c; /* [, line 163 */ if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } /* literal, line 163 */ z->c--; z->bra = z->c; /* ], line 163 */ { int m_test2 = z->l - z->c; /* test, line 163 */ if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; } /* grouping V1, line 163 */ z->c = z->l - m_test2; } { int ret = slice_del(z); /* delete, line 164 */ if (ret < 0) return ret; } z->lb = mlimit1; } { int mlimit3; /* setlimit, line 166 */ if (z->c < z->I[1]) return 0; mlimit3 = z->lb; z->lb = z->I[1]; z->ket = z->c; /* [, line 166 */ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } /* substring, line 166 */ among_var = find_among_b(z, a_9, 2); if (!(among_var)) { z->lb = mlimit3; return 0; } z->bra = z->c; /* ], line 166 */ z->lb = mlimit3; } switch (among_var) { /* among, line 167 */ case 1: { int m4 = z->l - z->c; (void)m4; /* not, line 168 */ if (!(eq_s_b(z, 2, s_6))) goto lab0; /* literal, line 168 */ return 0; lab0: z->c = z->l - m4; } break; } { int ret = slice_del(z); /* delete, line 171 */ if (ret < 0) return ret; } return 1; }
static int r_e_ending(struct SN_env * z) { z->B[0] = 0; /* unset e_found, line 95 */ z->ket = z->c; /* [, line 96 */ if (!(eq_s_b(z, 1, s_13))) return 0; z->bra = z->c; /* ], line 96 */ { int ret = r_R1(z); if (ret == 0) return 0; /* call R1, line 96 */ if (ret < 0) return ret; } { int m_test = z->l - z->c; /* test, line 96 */ if (!(out_grouping_b_U(z, g_v, 97, 232))) return 0; z->c = z->l - m_test; } { int ret; ret = slice_del(z); /* delete, line 96 */ if (ret < 0) return ret; } z->B[0] = 1; /* set e_found, line 97 */ { int ret = r_undouble(z); if (ret == 0) return 0; /* call undouble, line 98 */ if (ret < 0) return ret; } return 1; }
extern int russian_KOI8_R_stem(struct SN_env * z) { { int c = z->c; /* do, line 203 */ { int ret = r_mark_regions(z); if (ret == 0) goto lab0; /* call mark_regions, line 203 */ if (ret < 0) return ret; } lab0: z->c = c; } z->lb = z->c; z->c = z->l; /* backwards, line 204 */ { int m3; /* setlimit, line 204 */ int m = z->l - z->c; (void) m; if (z->c < z->I[0]) return 0; z->c = z->I[0]; /* tomark, line 204 */ m3 = z->lb; z->lb = z->c; z->c = z->l - m; { int m = z->l - z->c; (void) m; /* do, line 205 */ { int m = z->l - z->c; (void) m; /* or, line 206 */ { int ret = r_perfective_gerund(z); if (ret == 0) goto lab3; /* call perfective_gerund, line 206 */ if (ret < 0) return ret; } goto lab2; lab3: z->c = z->l - m; { int m = z->l - z->c; (void) m; /* try, line 207 */ { int ret = r_reflexive(z); if (ret == 0) { z->c = z->l - m; goto lab4; } /* call reflexive, line 207 */ if (ret < 0) return ret; } lab4: ; } { int m = z->l - z->c; (void) m; /* or, line 208 */ { int ret = r_adjectival(z); if (ret == 0) goto lab6; /* call adjectival, line 208 */ if (ret < 0) return ret; } goto lab5; lab6: z->c = z->l - m; { int ret = r_verb(z); if (ret == 0) goto lab7; /* call verb, line 208 */ if (ret < 0) return ret; } goto lab5; lab7: z->c = z->l - m; { int ret = r_noun(z); if (ret == 0) goto lab1; /* call noun, line 208 */ if (ret < 0) return ret; } } lab5: ; } lab2: lab1: z->c = z->l - m; } { int m = z->l - z->c; (void) m; /* try, line 211 */ z->ket = z->c; /* [, line 211 */ if (!(eq_s_b(z, 1, s_9))) { z->c = z->l - m; goto lab8; } z->bra = z->c; /* ], line 211 */ { int ret; ret = slice_del(z); /* delete, line 211 */ if (ret < 0) return ret; } lab8: ; } { int m = z->l - z->c; (void) m; /* do, line 214 */ { int ret = r_derivational(z); if (ret == 0) goto lab9; /* call derivational, line 214 */ if (ret < 0) return ret; } lab9: z->c = z->l - m; } { int m = z->l - z->c; (void) m; /* do, line 215 */ { int ret = r_tidy_up(z); if (ret == 0) goto lab10; /* call tidy_up, line 215 */ if (ret < 0) return ret; } lab10: z->c = z->l - m; } z->lb = m3; } z->c = z->lb; return 1; }
static int r_standard_suffix(struct SN_env * z) { int among_var; z->ket = z->c; /* [, line 77 */ among_var = find_among_b(z, a_5, 45); /* substring, line 77 */ if (!(among_var)) return 0; z->bra = z->c; /* ], line 77 */ switch(among_var) { case 0: return 0; case 1: { int ret = r_R2(z); if (ret == 0) return 0; /* call R2, line 93 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 93 */ if (ret < 0) return ret; } break; case 2: { int ret = r_R2(z); if (ret == 0) return 0; /* call R2, line 98 */ if (ret < 0) return ret; } { int ret; ret = slice_from_s(z, 3, s_4); /* <-, line 98 */ if (ret < 0) return ret; } break; case 3: { int ret = r_R2(z); if (ret == 0) return 0; /* call R2, line 102 */ if (ret < 0) return ret; } { int ret; ret = slice_from_s(z, 1, s_5); /* <-, line 102 */ if (ret < 0) return ret; } break; case 4: { int ret = r_R2(z); if (ret == 0) return 0; /* call R2, line 106 */ if (ret < 0) return ret; } { int ret; ret = slice_from_s(z, 4, s_6); /* <-, line 106 */ if (ret < 0) return ret; } break; case 5: { int ret = r_R1(z); if (ret == 0) return 0; /* call R1, line 110 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 110 */ if (ret < 0) return ret; } { int m = z->l - z->c; (void) m; /* try, line 111 */ z->ket = z->c; /* [, line 112 */ among_var = find_among_b(z, a_2, 4); /* substring, line 112 */ if (!(among_var)) { z->c = z->l - m; goto lab0; } z->bra = z->c; /* ], line 112 */ { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m; /* call R2, line 112 */ goto lab0; } if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 112 */ if (ret < 0) return ret; } switch(among_var) { case 0: { z->c = z->l - m; goto lab0; } case 1: z->ket = z->c; /* [, line 113 */ if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m; goto lab0; } z->bra = z->c; /* ], line 113 */ { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m; /* call R2, line 113 */ goto lab0; } if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 113 */ if (ret < 0) return ret; } break; } lab0: ; } break; case 6: { int ret = r_R2(z); if (ret == 0) return 0; /* call R2, line 122 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 122 */ if (ret < 0) return ret; } { int m = z->l - z->c; (void) m; /* try, line 123 */ z->ket = z->c; /* [, line 124 */ among_var = find_among_b(z, a_3, 3); /* substring, line 124 */ if (!(among_var)) { z->c = z->l - m; goto lab1; } z->bra = z->c; /* ], line 124 */ switch(among_var) { case 0: { z->c = z->l - m; goto lab1; } case 1: { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m; /* call R2, line 127 */ goto lab1; } if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 127 */ if (ret < 0) return ret; } break; } lab1: ; } break; case 7: { int ret = r_R2(z); if (ret == 0) return 0; /* call R2, line 134 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 134 */ if (ret < 0) return ret; } { int m = z->l - z->c; (void) m; /* try, line 135 */ z->ket = z->c; /* [, line 136 */ among_var = find_among_b(z, a_4, 3); /* substring, line 136 */ if (!(among_var)) { z->c = z->l - m; goto lab2; } z->bra = z->c; /* ], line 136 */ switch(among_var) { case 0: { z->c = z->l - m; goto lab2; } case 1: { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m; /* call R2, line 139 */ goto lab2; } if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 139 */ if (ret < 0) return ret; } break; } lab2: ; } break; case 8: { int ret = r_R2(z); if (ret == 0) return 0; /* call R2, line 146 */ if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 146 */ if (ret < 0) return ret; } { int m = z->l - z->c; (void) m; /* try, line 147 */ z->ket = z->c; /* [, line 148 */ if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m; goto lab3; } z->bra = z->c; /* ], line 148 */ { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m; /* call R2, line 148 */ goto lab3; } if (ret < 0) return ret; } { int ret; ret = slice_del(z); /* delete, line 148 */ if (ret < 0) return ret; } lab3: ; } break; case 9: { int ret = r_RV(z); if (ret == 0) return 0; /* call RV, line 153 */ if (ret < 0) return ret; } if (!(eq_s_b(z, 1, s_9))) return 0; { int ret; ret = slice_from_s(z, 2, s_10); /* <-, line 154 */ if (ret < 0) return ret; } break; } return 1; }