Header And Logo

PostgreSQL
| The world's most advanced open source database.

stem_UTF_8_italian.c

Go to the documentation of this file.
00001 
00002 /* This file was generated automatically by the Snowball to ANSI C compiler */
00003 
00004 #include "header.h"
00005 
00006 #ifdef __cplusplus
00007 extern "C" {
00008 #endif
00009 extern int italian_UTF_8_stem(struct SN_env * z);
00010 #ifdef __cplusplus
00011 }
00012 #endif
00013 static int r_vowel_suffix(struct SN_env * z);
00014 static int r_verb_suffix(struct SN_env * z);
00015 static int r_standard_suffix(struct SN_env * z);
00016 static int r_attached_pronoun(struct SN_env * z);
00017 static int r_R2(struct SN_env * z);
00018 static int r_R1(struct SN_env * z);
00019 static int r_RV(struct SN_env * z);
00020 static int r_mark_regions(struct SN_env * z);
00021 static int r_postlude(struct SN_env * z);
00022 static int r_prelude(struct SN_env * z);
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 
00028 extern struct SN_env * italian_UTF_8_create_env(void);
00029 extern void italian_UTF_8_close_env(struct SN_env * z);
00030 
00031 
00032 #ifdef __cplusplus
00033 }
00034 #endif
00035 static const symbol s_0_1[2] = { 'q', 'u' };
00036 static const symbol s_0_2[2] = { 0xC3, 0xA1 };
00037 static const symbol s_0_3[2] = { 0xC3, 0xA9 };
00038 static const symbol s_0_4[2] = { 0xC3, 0xAD };
00039 static const symbol s_0_5[2] = { 0xC3, 0xB3 };
00040 static const symbol s_0_6[2] = { 0xC3, 0xBA };
00041 
00042 static const struct among a_0[7] =
00043 {
00044 /*  0 */ { 0, 0, -1, 7, 0},
00045 /*  1 */ { 2, s_0_1, 0, 6, 0},
00046 /*  2 */ { 2, s_0_2, 0, 1, 0},
00047 /*  3 */ { 2, s_0_3, 0, 2, 0},
00048 /*  4 */ { 2, s_0_4, 0, 3, 0},
00049 /*  5 */ { 2, s_0_5, 0, 4, 0},
00050 /*  6 */ { 2, s_0_6, 0, 5, 0}
00051 };
00052 
00053 static const symbol s_1_1[1] = { 'I' };
00054 static const symbol s_1_2[1] = { 'U' };
00055 
00056 static const struct among a_1[3] =
00057 {
00058 /*  0 */ { 0, 0, -1, 3, 0},
00059 /*  1 */ { 1, s_1_1, 0, 1, 0},
00060 /*  2 */ { 1, s_1_2, 0, 2, 0}
00061 };
00062 
00063 static const symbol s_2_0[2] = { 'l', 'a' };
00064 static const symbol s_2_1[4] = { 'c', 'e', 'l', 'a' };
00065 static const symbol s_2_2[6] = { 'g', 'l', 'i', 'e', 'l', 'a' };
00066 static const symbol s_2_3[4] = { 'm', 'e', 'l', 'a' };
00067 static const symbol s_2_4[4] = { 't', 'e', 'l', 'a' };
00068 static const symbol s_2_5[4] = { 'v', 'e', 'l', 'a' };
00069 static const symbol s_2_6[2] = { 'l', 'e' };
00070 static const symbol s_2_7[4] = { 'c', 'e', 'l', 'e' };
00071 static const symbol s_2_8[6] = { 'g', 'l', 'i', 'e', 'l', 'e' };
00072 static const symbol s_2_9[4] = { 'm', 'e', 'l', 'e' };
00073 static const symbol s_2_10[4] = { 't', 'e', 'l', 'e' };
00074 static const symbol s_2_11[4] = { 'v', 'e', 'l', 'e' };
00075 static const symbol s_2_12[2] = { 'n', 'e' };
00076 static const symbol s_2_13[4] = { 'c', 'e', 'n', 'e' };
00077 static const symbol s_2_14[6] = { 'g', 'l', 'i', 'e', 'n', 'e' };
00078 static const symbol s_2_15[4] = { 'm', 'e', 'n', 'e' };
00079 static const symbol s_2_16[4] = { 's', 'e', 'n', 'e' };
00080 static const symbol s_2_17[4] = { 't', 'e', 'n', 'e' };
00081 static const symbol s_2_18[4] = { 'v', 'e', 'n', 'e' };
00082 static const symbol s_2_19[2] = { 'c', 'i' };
00083 static const symbol s_2_20[2] = { 'l', 'i' };
00084 static const symbol s_2_21[4] = { 'c', 'e', 'l', 'i' };
00085 static const symbol s_2_22[6] = { 'g', 'l', 'i', 'e', 'l', 'i' };
00086 static const symbol s_2_23[4] = { 'm', 'e', 'l', 'i' };
00087 static const symbol s_2_24[4] = { 't', 'e', 'l', 'i' };
00088 static const symbol s_2_25[4] = { 'v', 'e', 'l', 'i' };
00089 static const symbol s_2_26[3] = { 'g', 'l', 'i' };
00090 static const symbol s_2_27[2] = { 'm', 'i' };
00091 static const symbol s_2_28[2] = { 's', 'i' };
00092 static const symbol s_2_29[2] = { 't', 'i' };
00093 static const symbol s_2_30[2] = { 'v', 'i' };
00094 static const symbol s_2_31[2] = { 'l', 'o' };
00095 static const symbol s_2_32[4] = { 'c', 'e', 'l', 'o' };
00096 static const symbol s_2_33[6] = { 'g', 'l', 'i', 'e', 'l', 'o' };
00097 static const symbol s_2_34[4] = { 'm', 'e', 'l', 'o' };
00098 static const symbol s_2_35[4] = { 't', 'e', 'l', 'o' };
00099 static const symbol s_2_36[4] = { 'v', 'e', 'l', 'o' };
00100 
00101 static const struct among a_2[37] =
00102 {
00103 /*  0 */ { 2, s_2_0, -1, -1, 0},
00104 /*  1 */ { 4, s_2_1, 0, -1, 0},
00105 /*  2 */ { 6, s_2_2, 0, -1, 0},
00106 /*  3 */ { 4, s_2_3, 0, -1, 0},
00107 /*  4 */ { 4, s_2_4, 0, -1, 0},
00108 /*  5 */ { 4, s_2_5, 0, -1, 0},
00109 /*  6 */ { 2, s_2_6, -1, -1, 0},
00110 /*  7 */ { 4, s_2_7, 6, -1, 0},
00111 /*  8 */ { 6, s_2_8, 6, -1, 0},
00112 /*  9 */ { 4, s_2_9, 6, -1, 0},
00113 /* 10 */ { 4, s_2_10, 6, -1, 0},
00114 /* 11 */ { 4, s_2_11, 6, -1, 0},
00115 /* 12 */ { 2, s_2_12, -1, -1, 0},
00116 /* 13 */ { 4, s_2_13, 12, -1, 0},
00117 /* 14 */ { 6, s_2_14, 12, -1, 0},
00118 /* 15 */ { 4, s_2_15, 12, -1, 0},
00119 /* 16 */ { 4, s_2_16, 12, -1, 0},
00120 /* 17 */ { 4, s_2_17, 12, -1, 0},
00121 /* 18 */ { 4, s_2_18, 12, -1, 0},
00122 /* 19 */ { 2, s_2_19, -1, -1, 0},
00123 /* 20 */ { 2, s_2_20, -1, -1, 0},
00124 /* 21 */ { 4, s_2_21, 20, -1, 0},
00125 /* 22 */ { 6, s_2_22, 20, -1, 0},
00126 /* 23 */ { 4, s_2_23, 20, -1, 0},
00127 /* 24 */ { 4, s_2_24, 20, -1, 0},
00128 /* 25 */ { 4, s_2_25, 20, -1, 0},
00129 /* 26 */ { 3, s_2_26, 20, -1, 0},
00130 /* 27 */ { 2, s_2_27, -1, -1, 0},
00131 /* 28 */ { 2, s_2_28, -1, -1, 0},
00132 /* 29 */ { 2, s_2_29, -1, -1, 0},
00133 /* 30 */ { 2, s_2_30, -1, -1, 0},
00134 /* 31 */ { 2, s_2_31, -1, -1, 0},
00135 /* 32 */ { 4, s_2_32, 31, -1, 0},
00136 /* 33 */ { 6, s_2_33, 31, -1, 0},
00137 /* 34 */ { 4, s_2_34, 31, -1, 0},
00138 /* 35 */ { 4, s_2_35, 31, -1, 0},
00139 /* 36 */ { 4, s_2_36, 31, -1, 0}
00140 };
00141 
00142 static const symbol s_3_0[4] = { 'a', 'n', 'd', 'o' };
00143 static const symbol s_3_1[4] = { 'e', 'n', 'd', 'o' };
00144 static const symbol s_3_2[2] = { 'a', 'r' };
00145 static const symbol s_3_3[2] = { 'e', 'r' };
00146 static const symbol s_3_4[2] = { 'i', 'r' };
00147 
00148 static const struct among a_3[5] =
00149 {
00150 /*  0 */ { 4, s_3_0, -1, 1, 0},
00151 /*  1 */ { 4, s_3_1, -1, 1, 0},
00152 /*  2 */ { 2, s_3_2, -1, 2, 0},
00153 /*  3 */ { 2, s_3_3, -1, 2, 0},
00154 /*  4 */ { 2, s_3_4, -1, 2, 0}
00155 };
00156 
00157 static const symbol s_4_0[2] = { 'i', 'c' };
00158 static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
00159 static const symbol s_4_2[2] = { 'o', 's' };
00160 static const symbol s_4_3[2] = { 'i', 'v' };
00161 
00162 static const struct among a_4[4] =
00163 {
00164 /*  0 */ { 2, s_4_0, -1, -1, 0},
00165 /*  1 */ { 4, s_4_1, -1, -1, 0},
00166 /*  2 */ { 2, s_4_2, -1, -1, 0},
00167 /*  3 */ { 2, s_4_3, -1, 1, 0}
00168 };
00169 
00170 static const symbol s_5_0[2] = { 'i', 'c' };
00171 static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
00172 static const symbol s_5_2[2] = { 'i', 'v' };
00173 
00174 static const struct among a_5[3] =
00175 {
00176 /*  0 */ { 2, s_5_0, -1, 1, 0},
00177 /*  1 */ { 4, s_5_1, -1, 1, 0},
00178 /*  2 */ { 2, s_5_2, -1, 1, 0}
00179 };
00180 
00181 static const symbol s_6_0[3] = { 'i', 'c', 'a' };
00182 static const symbol s_6_1[5] = { 'l', 'o', 'g', 'i', 'a' };
00183 static const symbol s_6_2[3] = { 'o', 's', 'a' };
00184 static const symbol s_6_3[4] = { 'i', 's', 't', 'a' };
00185 static const symbol s_6_4[3] = { 'i', 'v', 'a' };
00186 static const symbol s_6_5[4] = { 'a', 'n', 'z', 'a' };
00187 static const symbol s_6_6[4] = { 'e', 'n', 'z', 'a' };
00188 static const symbol s_6_7[3] = { 'i', 'c', 'e' };
00189 static const symbol s_6_8[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
00190 static const symbol s_6_9[4] = { 'i', 'c', 'h', 'e' };
00191 static const symbol s_6_10[5] = { 'l', 'o', 'g', 'i', 'e' };
00192 static const symbol s_6_11[5] = { 'a', 'b', 'i', 'l', 'e' };
00193 static const symbol s_6_12[5] = { 'i', 'b', 'i', 'l', 'e' };
00194 static const symbol s_6_13[6] = { 'u', 's', 'i', 'o', 'n', 'e' };
00195 static const symbol s_6_14[6] = { 'a', 'z', 'i', 'o', 'n', 'e' };
00196 static const symbol s_6_15[6] = { 'u', 'z', 'i', 'o', 'n', 'e' };
00197 static const symbol s_6_16[5] = { 'a', 't', 'o', 'r', 'e' };
00198 static const symbol s_6_17[3] = { 'o', 's', 'e' };
00199 static const symbol s_6_18[4] = { 'a', 'n', 't', 'e' };
00200 static const symbol s_6_19[5] = { 'm', 'e', 'n', 't', 'e' };
00201 static const symbol s_6_20[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
00202 static const symbol s_6_21[4] = { 'i', 's', 't', 'e' };
00203 static const symbol s_6_22[3] = { 'i', 'v', 'e' };
00204 static const symbol s_6_23[4] = { 'a', 'n', 'z', 'e' };
00205 static const symbol s_6_24[4] = { 'e', 'n', 'z', 'e' };
00206 static const symbol s_6_25[3] = { 'i', 'c', 'i' };
00207 static const symbol s_6_26[6] = { 'a', 't', 'r', 'i', 'c', 'i' };
00208 static const symbol s_6_27[4] = { 'i', 'c', 'h', 'i' };
00209 static const symbol s_6_28[5] = { 'a', 'b', 'i', 'l', 'i' };
00210 static const symbol s_6_29[5] = { 'i', 'b', 'i', 'l', 'i' };
00211 static const symbol s_6_30[4] = { 'i', 's', 'm', 'i' };
00212 static const symbol s_6_31[6] = { 'u', 's', 'i', 'o', 'n', 'i' };
00213 static const symbol s_6_32[6] = { 'a', 'z', 'i', 'o', 'n', 'i' };
00214 static const symbol s_6_33[6] = { 'u', 'z', 'i', 'o', 'n', 'i' };
00215 static const symbol s_6_34[5] = { 'a', 't', 'o', 'r', 'i' };
00216 static const symbol s_6_35[3] = { 'o', 's', 'i' };
00217 static const symbol s_6_36[4] = { 'a', 'n', 't', 'i' };
00218 static const symbol s_6_37[6] = { 'a', 'm', 'e', 'n', 't', 'i' };
00219 static const symbol s_6_38[6] = { 'i', 'm', 'e', 'n', 't', 'i' };
00220 static const symbol s_6_39[4] = { 'i', 's', 't', 'i' };
00221 static const symbol s_6_40[3] = { 'i', 'v', 'i' };
00222 static const symbol s_6_41[3] = { 'i', 'c', 'o' };
00223 static const symbol s_6_42[4] = { 'i', 's', 'm', 'o' };
00224 static const symbol s_6_43[3] = { 'o', 's', 'o' };
00225 static const symbol s_6_44[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
00226 static const symbol s_6_45[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
00227 static const symbol s_6_46[3] = { 'i', 'v', 'o' };
00228 static const symbol s_6_47[4] = { 'i', 't', 0xC3, 0xA0 };
00229 static const symbol s_6_48[5] = { 'i', 's', 't', 0xC3, 0xA0 };
00230 static const symbol s_6_49[5] = { 'i', 's', 't', 0xC3, 0xA8 };
00231 static const symbol s_6_50[5] = { 'i', 's', 't', 0xC3, 0xAC };
00232 
00233 static const struct among a_6[51] =
00234 {
00235 /*  0 */ { 3, s_6_0, -1, 1, 0},
00236 /*  1 */ { 5, s_6_1, -1, 3, 0},
00237 /*  2 */ { 3, s_6_2, -1, 1, 0},
00238 /*  3 */ { 4, s_6_3, -1, 1, 0},
00239 /*  4 */ { 3, s_6_4, -1, 9, 0},
00240 /*  5 */ { 4, s_6_5, -1, 1, 0},
00241 /*  6 */ { 4, s_6_6, -1, 5, 0},
00242 /*  7 */ { 3, s_6_7, -1, 1, 0},
00243 /*  8 */ { 6, s_6_8, 7, 1, 0},
00244 /*  9 */ { 4, s_6_9, -1, 1, 0},
00245 /* 10 */ { 5, s_6_10, -1, 3, 0},
00246 /* 11 */ { 5, s_6_11, -1, 1, 0},
00247 /* 12 */ { 5, s_6_12, -1, 1, 0},
00248 /* 13 */ { 6, s_6_13, -1, 4, 0},
00249 /* 14 */ { 6, s_6_14, -1, 2, 0},
00250 /* 15 */ { 6, s_6_15, -1, 4, 0},
00251 /* 16 */ { 5, s_6_16, -1, 2, 0},
00252 /* 17 */ { 3, s_6_17, -1, 1, 0},
00253 /* 18 */ { 4, s_6_18, -1, 1, 0},
00254 /* 19 */ { 5, s_6_19, -1, 1, 0},
00255 /* 20 */ { 6, s_6_20, 19, 7, 0},
00256 /* 21 */ { 4, s_6_21, -1, 1, 0},
00257 /* 22 */ { 3, s_6_22, -1, 9, 0},
00258 /* 23 */ { 4, s_6_23, -1, 1, 0},
00259 /* 24 */ { 4, s_6_24, -1, 5, 0},
00260 /* 25 */ { 3, s_6_25, -1, 1, 0},
00261 /* 26 */ { 6, s_6_26, 25, 1, 0},
00262 /* 27 */ { 4, s_6_27, -1, 1, 0},
00263 /* 28 */ { 5, s_6_28, -1, 1, 0},
00264 /* 29 */ { 5, s_6_29, -1, 1, 0},
00265 /* 30 */ { 4, s_6_30, -1, 1, 0},
00266 /* 31 */ { 6, s_6_31, -1, 4, 0},
00267 /* 32 */ { 6, s_6_32, -1, 2, 0},
00268 /* 33 */ { 6, s_6_33, -1, 4, 0},
00269 /* 34 */ { 5, s_6_34, -1, 2, 0},
00270 /* 35 */ { 3, s_6_35, -1, 1, 0},
00271 /* 36 */ { 4, s_6_36, -1, 1, 0},
00272 /* 37 */ { 6, s_6_37, -1, 6, 0},
00273 /* 38 */ { 6, s_6_38, -1, 6, 0},
00274 /* 39 */ { 4, s_6_39, -1, 1, 0},
00275 /* 40 */ { 3, s_6_40, -1, 9, 0},
00276 /* 41 */ { 3, s_6_41, -1, 1, 0},
00277 /* 42 */ { 4, s_6_42, -1, 1, 0},
00278 /* 43 */ { 3, s_6_43, -1, 1, 0},
00279 /* 44 */ { 6, s_6_44, -1, 6, 0},
00280 /* 45 */ { 6, s_6_45, -1, 6, 0},
00281 /* 46 */ { 3, s_6_46, -1, 9, 0},
00282 /* 47 */ { 4, s_6_47, -1, 8, 0},
00283 /* 48 */ { 5, s_6_48, -1, 1, 0},
00284 /* 49 */ { 5, s_6_49, -1, 1, 0},
00285 /* 50 */ { 5, s_6_50, -1, 1, 0}
00286 };
00287 
00288 static const symbol s_7_0[4] = { 'i', 's', 'c', 'a' };
00289 static const symbol s_7_1[4] = { 'e', 'n', 'd', 'a' };
00290 static const symbol s_7_2[3] = { 'a', 't', 'a' };
00291 static const symbol s_7_3[3] = { 'i', 't', 'a' };
00292 static const symbol s_7_4[3] = { 'u', 't', 'a' };
00293 static const symbol s_7_5[3] = { 'a', 'v', 'a' };
00294 static const symbol s_7_6[3] = { 'e', 'v', 'a' };
00295 static const symbol s_7_7[3] = { 'i', 'v', 'a' };
00296 static const symbol s_7_8[6] = { 'e', 'r', 'e', 'b', 'b', 'e' };
00297 static const symbol s_7_9[6] = { 'i', 'r', 'e', 'b', 'b', 'e' };
00298 static const symbol s_7_10[4] = { 'i', 's', 'c', 'e' };
00299 static const symbol s_7_11[4] = { 'e', 'n', 'd', 'e' };
00300 static const symbol s_7_12[3] = { 'a', 'r', 'e' };
00301 static const symbol s_7_13[3] = { 'e', 'r', 'e' };
00302 static const symbol s_7_14[3] = { 'i', 'r', 'e' };
00303 static const symbol s_7_15[4] = { 'a', 's', 's', 'e' };
00304 static const symbol s_7_16[3] = { 'a', 't', 'e' };
00305 static const symbol s_7_17[5] = { 'a', 'v', 'a', 't', 'e' };
00306 static const symbol s_7_18[5] = { 'e', 'v', 'a', 't', 'e' };
00307 static const symbol s_7_19[5] = { 'i', 'v', 'a', 't', 'e' };
00308 static const symbol s_7_20[3] = { 'e', 't', 'e' };
00309 static const symbol s_7_21[5] = { 'e', 'r', 'e', 't', 'e' };
00310 static const symbol s_7_22[5] = { 'i', 'r', 'e', 't', 'e' };
00311 static const symbol s_7_23[3] = { 'i', 't', 'e' };
00312 static const symbol s_7_24[6] = { 'e', 'r', 'e', 's', 't', 'e' };
00313 static const symbol s_7_25[6] = { 'i', 'r', 'e', 's', 't', 'e' };
00314 static const symbol s_7_26[3] = { 'u', 't', 'e' };
00315 static const symbol s_7_27[4] = { 'e', 'r', 'a', 'i' };
00316 static const symbol s_7_28[4] = { 'i', 'r', 'a', 'i' };
00317 static const symbol s_7_29[4] = { 'i', 's', 'c', 'i' };
00318 static const symbol s_7_30[4] = { 'e', 'n', 'd', 'i' };
00319 static const symbol s_7_31[4] = { 'e', 'r', 'e', 'i' };
00320 static const symbol s_7_32[4] = { 'i', 'r', 'e', 'i' };
00321 static const symbol s_7_33[4] = { 'a', 's', 's', 'i' };
00322 static const symbol s_7_34[3] = { 'a', 't', 'i' };
00323 static const symbol s_7_35[3] = { 'i', 't', 'i' };
00324 static const symbol s_7_36[6] = { 'e', 'r', 'e', 's', 't', 'i' };
00325 static const symbol s_7_37[6] = { 'i', 'r', 'e', 's', 't', 'i' };
00326 static const symbol s_7_38[3] = { 'u', 't', 'i' };
00327 static const symbol s_7_39[3] = { 'a', 'v', 'i' };
00328 static const symbol s_7_40[3] = { 'e', 'v', 'i' };
00329 static const symbol s_7_41[3] = { 'i', 'v', 'i' };
00330 static const symbol s_7_42[4] = { 'i', 's', 'c', 'o' };
00331 static const symbol s_7_43[4] = { 'a', 'n', 'd', 'o' };
00332 static const symbol s_7_44[4] = { 'e', 'n', 'd', 'o' };
00333 static const symbol s_7_45[4] = { 'Y', 'a', 'm', 'o' };
00334 static const symbol s_7_46[4] = { 'i', 'a', 'm', 'o' };
00335 static const symbol s_7_47[5] = { 'a', 'v', 'a', 'm', 'o' };
00336 static const symbol s_7_48[5] = { 'e', 'v', 'a', 'm', 'o' };
00337 static const symbol s_7_49[5] = { 'i', 'v', 'a', 'm', 'o' };
00338 static const symbol s_7_50[5] = { 'e', 'r', 'e', 'm', 'o' };
00339 static const symbol s_7_51[5] = { 'i', 'r', 'e', 'm', 'o' };
00340 static const symbol s_7_52[6] = { 'a', 's', 's', 'i', 'm', 'o' };
00341 static const symbol s_7_53[4] = { 'a', 'm', 'm', 'o' };
00342 static const symbol s_7_54[4] = { 'e', 'm', 'm', 'o' };
00343 static const symbol s_7_55[6] = { 'e', 'r', 'e', 'm', 'm', 'o' };
00344 static const symbol s_7_56[6] = { 'i', 'r', 'e', 'm', 'm', 'o' };
00345 static const symbol s_7_57[4] = { 'i', 'm', 'm', 'o' };
00346 static const symbol s_7_58[3] = { 'a', 'n', 'o' };
00347 static const symbol s_7_59[6] = { 'i', 's', 'c', 'a', 'n', 'o' };
00348 static const symbol s_7_60[5] = { 'a', 'v', 'a', 'n', 'o' };
00349 static const symbol s_7_61[5] = { 'e', 'v', 'a', 'n', 'o' };
00350 static const symbol s_7_62[5] = { 'i', 'v', 'a', 'n', 'o' };
00351 static const symbol s_7_63[6] = { 'e', 'r', 'a', 'n', 'n', 'o' };
00352 static const symbol s_7_64[6] = { 'i', 'r', 'a', 'n', 'n', 'o' };
00353 static const symbol s_7_65[3] = { 'o', 'n', 'o' };
00354 static const symbol s_7_66[6] = { 'i', 's', 'c', 'o', 'n', 'o' };
00355 static const symbol s_7_67[5] = { 'a', 'r', 'o', 'n', 'o' };
00356 static const symbol s_7_68[5] = { 'e', 'r', 'o', 'n', 'o' };
00357 static const symbol s_7_69[5] = { 'i', 'r', 'o', 'n', 'o' };
00358 static const symbol s_7_70[8] = { 'e', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
00359 static const symbol s_7_71[8] = { 'i', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
00360 static const symbol s_7_72[6] = { 'a', 's', 's', 'e', 'r', 'o' };
00361 static const symbol s_7_73[6] = { 'e', 's', 's', 'e', 'r', 'o' };
00362 static const symbol s_7_74[6] = { 'i', 's', 's', 'e', 'r', 'o' };
00363 static const symbol s_7_75[3] = { 'a', 't', 'o' };
00364 static const symbol s_7_76[3] = { 'i', 't', 'o' };
00365 static const symbol s_7_77[3] = { 'u', 't', 'o' };
00366 static const symbol s_7_78[3] = { 'a', 'v', 'o' };
00367 static const symbol s_7_79[3] = { 'e', 'v', 'o' };
00368 static const symbol s_7_80[3] = { 'i', 'v', 'o' };
00369 static const symbol s_7_81[2] = { 'a', 'r' };
00370 static const symbol s_7_82[2] = { 'i', 'r' };
00371 static const symbol s_7_83[4] = { 'e', 'r', 0xC3, 0xA0 };
00372 static const symbol s_7_84[4] = { 'i', 'r', 0xC3, 0xA0 };
00373 static const symbol s_7_85[4] = { 'e', 'r', 0xC3, 0xB2 };
00374 static const symbol s_7_86[4] = { 'i', 'r', 0xC3, 0xB2 };
00375 
00376 static const struct among a_7[87] =
00377 {
00378 /*  0 */ { 4, s_7_0, -1, 1, 0},
00379 /*  1 */ { 4, s_7_1, -1, 1, 0},
00380 /*  2 */ { 3, s_7_2, -1, 1, 0},
00381 /*  3 */ { 3, s_7_3, -1, 1, 0},
00382 /*  4 */ { 3, s_7_4, -1, 1, 0},
00383 /*  5 */ { 3, s_7_5, -1, 1, 0},
00384 /*  6 */ { 3, s_7_6, -1, 1, 0},
00385 /*  7 */ { 3, s_7_7, -1, 1, 0},
00386 /*  8 */ { 6, s_7_8, -1, 1, 0},
00387 /*  9 */ { 6, s_7_9, -1, 1, 0},
00388 /* 10 */ { 4, s_7_10, -1, 1, 0},
00389 /* 11 */ { 4, s_7_11, -1, 1, 0},
00390 /* 12 */ { 3, s_7_12, -1, 1, 0},
00391 /* 13 */ { 3, s_7_13, -1, 1, 0},
00392 /* 14 */ { 3, s_7_14, -1, 1, 0},
00393 /* 15 */ { 4, s_7_15, -1, 1, 0},
00394 /* 16 */ { 3, s_7_16, -1, 1, 0},
00395 /* 17 */ { 5, s_7_17, 16, 1, 0},
00396 /* 18 */ { 5, s_7_18, 16, 1, 0},
00397 /* 19 */ { 5, s_7_19, 16, 1, 0},
00398 /* 20 */ { 3, s_7_20, -1, 1, 0},
00399 /* 21 */ { 5, s_7_21, 20, 1, 0},
00400 /* 22 */ { 5, s_7_22, 20, 1, 0},
00401 /* 23 */ { 3, s_7_23, -1, 1, 0},
00402 /* 24 */ { 6, s_7_24, -1, 1, 0},
00403 /* 25 */ { 6, s_7_25, -1, 1, 0},
00404 /* 26 */ { 3, s_7_26, -1, 1, 0},
00405 /* 27 */ { 4, s_7_27, -1, 1, 0},
00406 /* 28 */ { 4, s_7_28, -1, 1, 0},
00407 /* 29 */ { 4, s_7_29, -1, 1, 0},
00408 /* 30 */ { 4, s_7_30, -1, 1, 0},
00409 /* 31 */ { 4, s_7_31, -1, 1, 0},
00410 /* 32 */ { 4, s_7_32, -1, 1, 0},
00411 /* 33 */ { 4, s_7_33, -1, 1, 0},
00412 /* 34 */ { 3, s_7_34, -1, 1, 0},
00413 /* 35 */ { 3, s_7_35, -1, 1, 0},
00414 /* 36 */ { 6, s_7_36, -1, 1, 0},
00415 /* 37 */ { 6, s_7_37, -1, 1, 0},
00416 /* 38 */ { 3, s_7_38, -1, 1, 0},
00417 /* 39 */ { 3, s_7_39, -1, 1, 0},
00418 /* 40 */ { 3, s_7_40, -1, 1, 0},
00419 /* 41 */ { 3, s_7_41, -1, 1, 0},
00420 /* 42 */ { 4, s_7_42, -1, 1, 0},
00421 /* 43 */ { 4, s_7_43, -1, 1, 0},
00422 /* 44 */ { 4, s_7_44, -1, 1, 0},
00423 /* 45 */ { 4, s_7_45, -1, 1, 0},
00424 /* 46 */ { 4, s_7_46, -1, 1, 0},
00425 /* 47 */ { 5, s_7_47, -1, 1, 0},
00426 /* 48 */ { 5, s_7_48, -1, 1, 0},
00427 /* 49 */ { 5, s_7_49, -1, 1, 0},
00428 /* 50 */ { 5, s_7_50, -1, 1, 0},
00429 /* 51 */ { 5, s_7_51, -1, 1, 0},
00430 /* 52 */ { 6, s_7_52, -1, 1, 0},
00431 /* 53 */ { 4, s_7_53, -1, 1, 0},
00432 /* 54 */ { 4, s_7_54, -1, 1, 0},
00433 /* 55 */ { 6, s_7_55, 54, 1, 0},
00434 /* 56 */ { 6, s_7_56, 54, 1, 0},
00435 /* 57 */ { 4, s_7_57, -1, 1, 0},
00436 /* 58 */ { 3, s_7_58, -1, 1, 0},
00437 /* 59 */ { 6, s_7_59, 58, 1, 0},
00438 /* 60 */ { 5, s_7_60, 58, 1, 0},
00439 /* 61 */ { 5, s_7_61, 58, 1, 0},
00440 /* 62 */ { 5, s_7_62, 58, 1, 0},
00441 /* 63 */ { 6, s_7_63, -1, 1, 0},
00442 /* 64 */ { 6, s_7_64, -1, 1, 0},
00443 /* 65 */ { 3, s_7_65, -1, 1, 0},
00444 /* 66 */ { 6, s_7_66, 65, 1, 0},
00445 /* 67 */ { 5, s_7_67, 65, 1, 0},
00446 /* 68 */ { 5, s_7_68, 65, 1, 0},
00447 /* 69 */ { 5, s_7_69, 65, 1, 0},
00448 /* 70 */ { 8, s_7_70, -1, 1, 0},
00449 /* 71 */ { 8, s_7_71, -1, 1, 0},
00450 /* 72 */ { 6, s_7_72, -1, 1, 0},
00451 /* 73 */ { 6, s_7_73, -1, 1, 0},
00452 /* 74 */ { 6, s_7_74, -1, 1, 0},
00453 /* 75 */ { 3, s_7_75, -1, 1, 0},
00454 /* 76 */ { 3, s_7_76, -1, 1, 0},
00455 /* 77 */ { 3, s_7_77, -1, 1, 0},
00456 /* 78 */ { 3, s_7_78, -1, 1, 0},
00457 /* 79 */ { 3, s_7_79, -1, 1, 0},
00458 /* 80 */ { 3, s_7_80, -1, 1, 0},
00459 /* 81 */ { 2, s_7_81, -1, 1, 0},
00460 /* 82 */ { 2, s_7_82, -1, 1, 0},
00461 /* 83 */ { 4, s_7_83, -1, 1, 0},
00462 /* 84 */ { 4, s_7_84, -1, 1, 0},
00463 /* 85 */ { 4, s_7_85, -1, 1, 0},
00464 /* 86 */ { 4, s_7_86, -1, 1, 0}
00465 };
00466 
00467 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 };
00468 
00469 static const unsigned char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
00470 
00471 static const unsigned char g_CG[] = { 17 };
00472 
00473 static const symbol s_0[] = { 0xC3, 0xA0 };
00474 static const symbol s_1[] = { 0xC3, 0xA8 };
00475 static const symbol s_2[] = { 0xC3, 0xAC };
00476 static const symbol s_3[] = { 0xC3, 0xB2 };
00477 static const symbol s_4[] = { 0xC3, 0xB9 };
00478 static const symbol s_5[] = { 'q', 'U' };
00479 static const symbol s_6[] = { 'u' };
00480 static const symbol s_7[] = { 'U' };
00481 static const symbol s_8[] = { 'i' };
00482 static const symbol s_9[] = { 'I' };
00483 static const symbol s_10[] = { 'i' };
00484 static const symbol s_11[] = { 'u' };
00485 static const symbol s_12[] = { 'e' };
00486 static const symbol s_13[] = { 'i', 'c' };
00487 static const symbol s_14[] = { 'l', 'o', 'g' };
00488 static const symbol s_15[] = { 'u' };
00489 static const symbol s_16[] = { 'e', 'n', 't', 'e' };
00490 static const symbol s_17[] = { 'a', 't' };
00491 static const symbol s_18[] = { 'a', 't' };
00492 static const symbol s_19[] = { 'i', 'c' };
00493 static const symbol s_20[] = { 'i' };
00494 static const symbol s_21[] = { 'h' };
00495 
00496 static int r_prelude(struct SN_env * z) {
00497     int among_var;
00498     {   int c_test = z->c; /* test, line 35 */
00499         while(1) { /* repeat, line 35 */
00500             int c1 = z->c;
00501             z->bra = z->c; /* [, line 36 */
00502             among_var = find_among(z, a_0, 7); /* substring, line 36 */
00503             if (!(among_var)) goto lab0;
00504             z->ket = z->c; /* ], line 36 */
00505             switch(among_var) {
00506                 case 0: goto lab0;
00507                 case 1:
00508                     {   int ret = slice_from_s(z, 2, s_0); /* <-, line 37 */
00509                         if (ret < 0) return ret;
00510                     }
00511                     break;
00512                 case 2:
00513                     {   int ret = slice_from_s(z, 2, s_1); /* <-, line 38 */
00514                         if (ret < 0) return ret;
00515                     }
00516                     break;
00517                 case 3:
00518                     {   int ret = slice_from_s(z, 2, s_2); /* <-, line 39 */
00519                         if (ret < 0) return ret;
00520                     }
00521                     break;
00522                 case 4:
00523                     {   int ret = slice_from_s(z, 2, s_3); /* <-, line 40 */
00524                         if (ret < 0) return ret;
00525                     }
00526                     break;
00527                 case 5:
00528                     {   int ret = slice_from_s(z, 2, s_4); /* <-, line 41 */
00529                         if (ret < 0) return ret;
00530                     }
00531                     break;
00532                 case 6:
00533                     {   int ret = slice_from_s(z, 2, s_5); /* <-, line 42 */
00534                         if (ret < 0) return ret;
00535                     }
00536                     break;
00537                 case 7:
00538                     {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
00539                         if (ret < 0) goto lab0;
00540                         z->c = ret; /* next, line 43 */
00541                     }
00542                     break;
00543             }
00544             continue;
00545         lab0:
00546             z->c = c1;
00547             break;
00548         }
00549         z->c = c_test;
00550     }
00551     while(1) { /* repeat, line 46 */
00552         int c2 = z->c;
00553         while(1) { /* goto, line 46 */
00554             int c3 = z->c;
00555             if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
00556             z->bra = z->c; /* [, line 47 */
00557             {   int c4 = z->c; /* or, line 47 */
00558                 if (!(eq_s(z, 1, s_6))) goto lab4;
00559                 z->ket = z->c; /* ], line 47 */
00560                 if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab4;
00561                 {   int ret = slice_from_s(z, 1, s_7); /* <-, line 47 */
00562                     if (ret < 0) return ret;
00563                 }
00564                 goto lab3;
00565             lab4:
00566                 z->c = c4;
00567                 if (!(eq_s(z, 1, s_8))) goto lab2;
00568                 z->ket = z->c; /* ], line 48 */
00569                 if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
00570                 {   int ret = slice_from_s(z, 1, s_9); /* <-, line 48 */
00571                     if (ret < 0) return ret;
00572                 }
00573             }
00574         lab3:
00575             z->c = c3;
00576             break;
00577         lab2:
00578             z->c = c3;
00579             {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
00580                 if (ret < 0) goto lab1;
00581                 z->c = ret; /* goto, line 46 */
00582             }
00583         }
00584         continue;
00585     lab1:
00586         z->c = c2;
00587         break;
00588     }
00589     return 1;
00590 }
00591 
00592 static int r_mark_regions(struct SN_env * z) {
00593     z->I[0] = z->l;
00594     z->I[1] = z->l;
00595     z->I[2] = z->l;
00596     {   int c1 = z->c; /* do, line 58 */
00597         {   int c2 = z->c; /* or, line 60 */
00598             if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
00599             {   int c3 = z->c; /* or, line 59 */
00600                 if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab4;
00601                 {    /* gopast */ /* grouping v, line 59 */
00602                     int ret = out_grouping_U(z, g_v, 97, 249, 1);
00603                     if (ret < 0) goto lab4;
00604                     z->c += ret;
00605                 }
00606                 goto lab3;
00607             lab4:
00608                 z->c = c3;
00609                 if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
00610                 {    /* gopast */ /* non v, line 59 */
00611                     int ret = in_grouping_U(z, g_v, 97, 249, 1);
00612                     if (ret < 0) goto lab2;
00613                     z->c += ret;
00614                 }
00615             }
00616         lab3:
00617             goto lab1;
00618         lab2:
00619             z->c = c2;
00620             if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab0;
00621             {   int c4 = z->c; /* or, line 61 */
00622                 if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab6;
00623                 {    /* gopast */ /* grouping v, line 61 */
00624                     int ret = out_grouping_U(z, g_v, 97, 249, 1);
00625                     if (ret < 0) goto lab6;
00626                     z->c += ret;
00627                 }
00628                 goto lab5;
00629             lab6:
00630                 z->c = c4;
00631                 if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab0;
00632                 {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
00633                     if (ret < 0) goto lab0;
00634                     z->c = ret; /* next, line 61 */
00635                 }
00636             }
00637         lab5:
00638             ;
00639         }
00640     lab1:
00641         z->I[0] = z->c; /* setmark pV, line 62 */
00642     lab0:
00643         z->c = c1;
00644     }
00645     {   int c5 = z->c; /* do, line 64 */
00646         {    /* gopast */ /* grouping v, line 65 */
00647             int ret = out_grouping_U(z, g_v, 97, 249, 1);
00648             if (ret < 0) goto lab7;
00649             z->c += ret;
00650         }
00651         {    /* gopast */ /* non v, line 65 */
00652             int ret = in_grouping_U(z, g_v, 97, 249, 1);
00653             if (ret < 0) goto lab7;
00654             z->c += ret;
00655         }
00656         z->I[1] = z->c; /* setmark p1, line 65 */
00657         {    /* gopast */ /* grouping v, line 66 */
00658             int ret = out_grouping_U(z, g_v, 97, 249, 1);
00659             if (ret < 0) goto lab7;
00660             z->c += ret;
00661         }
00662         {    /* gopast */ /* non v, line 66 */
00663             int ret = in_grouping_U(z, g_v, 97, 249, 1);
00664             if (ret < 0) goto lab7;
00665             z->c += ret;
00666         }
00667         z->I[2] = z->c; /* setmark p2, line 66 */
00668     lab7:
00669         z->c = c5;
00670     }
00671     return 1;
00672 }
00673 
00674 static int r_postlude(struct SN_env * z) {
00675     int among_var;
00676     while(1) { /* repeat, line 70 */
00677         int c1 = z->c;
00678         z->bra = z->c; /* [, line 72 */
00679         if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
00680         among_var = find_among(z, a_1, 3); /* substring, line 72 */
00681         if (!(among_var)) goto lab0;
00682         z->ket = z->c; /* ], line 72 */
00683         switch(among_var) {
00684             case 0: goto lab0;
00685             case 1:
00686                 {   int ret = slice_from_s(z, 1, s_10); /* <-, line 73 */
00687                     if (ret < 0) return ret;
00688                 }
00689                 break;
00690             case 2:
00691                 {   int ret = slice_from_s(z, 1, s_11); /* <-, line 74 */
00692                     if (ret < 0) return ret;
00693                 }
00694                 break;
00695             case 3:
00696                 {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
00697                     if (ret < 0) goto lab0;
00698                     z->c = ret; /* next, line 75 */
00699                 }
00700                 break;
00701         }
00702         continue;
00703     lab0:
00704         z->c = c1;
00705         break;
00706     }
00707     return 1;
00708 }
00709 
00710 static int r_RV(struct SN_env * z) {
00711     if (!(z->I[0] <= z->c)) return 0;
00712     return 1;
00713 }
00714 
00715 static int r_R1(struct SN_env * z) {
00716     if (!(z->I[1] <= z->c)) return 0;
00717     return 1;
00718 }
00719 
00720 static int r_R2(struct SN_env * z) {
00721     if (!(z->I[2] <= z->c)) return 0;
00722     return 1;
00723 }
00724 
00725 static int r_attached_pronoun(struct SN_env * z) {
00726     int among_var;
00727     z->ket = z->c; /* [, line 87 */
00728     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
00729     if (!(find_among_b(z, a_2, 37))) return 0; /* substring, line 87 */
00730     z->bra = z->c; /* ], line 87 */
00731     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
00732     among_var = find_among_b(z, a_3, 5); /* among, line 97 */
00733     if (!(among_var)) return 0;
00734     {   int ret = r_RV(z);
00735         if (ret == 0) return 0; /* call RV, line 97 */
00736         if (ret < 0) return ret;
00737     }
00738     switch(among_var) {
00739         case 0: return 0;
00740         case 1:
00741             {   int ret = slice_del(z); /* delete, line 98 */
00742                 if (ret < 0) return ret;
00743             }
00744             break;
00745         case 2:
00746             {   int ret = slice_from_s(z, 1, s_12); /* <-, line 99 */
00747                 if (ret < 0) return ret;
00748             }
00749             break;
00750     }
00751     return 1;
00752 }
00753 
00754 static int r_standard_suffix(struct SN_env * z) {
00755     int among_var;
00756     z->ket = z->c; /* [, line 104 */
00757     among_var = find_among_b(z, a_6, 51); /* substring, line 104 */
00758     if (!(among_var)) return 0;
00759     z->bra = z->c; /* ], line 104 */
00760     switch(among_var) {
00761         case 0: return 0;
00762         case 1:
00763             {   int ret = r_R2(z);
00764                 if (ret == 0) return 0; /* call R2, line 111 */
00765                 if (ret < 0) return ret;
00766             }
00767             {   int ret = slice_del(z); /* delete, line 111 */
00768                 if (ret < 0) return ret;
00769             }
00770             break;
00771         case 2:
00772             {   int ret = r_R2(z);
00773                 if (ret == 0) return 0; /* call R2, line 113 */
00774                 if (ret < 0) return ret;
00775             }
00776             {   int ret = slice_del(z); /* delete, line 113 */
00777                 if (ret < 0) return ret;
00778             }
00779             {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 114 */
00780                 z->ket = z->c; /* [, line 114 */
00781                 if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m_keep; goto lab0; }
00782                 z->bra = z->c; /* ], line 114 */
00783                 {   int ret = r_R2(z);
00784                     if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 114 */
00785                     if (ret < 0) return ret;
00786                 }
00787                 {   int ret = slice_del(z); /* delete, line 114 */
00788                     if (ret < 0) return ret;
00789                 }
00790             lab0:
00791                 ;
00792             }
00793             break;
00794         case 3:
00795             {   int ret = r_R2(z);
00796                 if (ret == 0) return 0; /* call R2, line 117 */
00797                 if (ret < 0) return ret;
00798             }
00799             {   int ret = slice_from_s(z, 3, s_14); /* <-, line 117 */
00800                 if (ret < 0) return ret;
00801             }
00802             break;
00803         case 4:
00804             {   int ret = r_R2(z);
00805                 if (ret == 0) return 0; /* call R2, line 119 */
00806                 if (ret < 0) return ret;
00807             }
00808             {   int ret = slice_from_s(z, 1, s_15); /* <-, line 119 */
00809                 if (ret < 0) return ret;
00810             }
00811             break;
00812         case 5:
00813             {   int ret = r_R2(z);
00814                 if (ret == 0) return 0; /* call R2, line 121 */
00815                 if (ret < 0) return ret;
00816             }
00817             {   int ret = slice_from_s(z, 4, s_16); /* <-, line 121 */
00818                 if (ret < 0) return ret;
00819             }
00820             break;
00821         case 6:
00822             {   int ret = r_RV(z);
00823                 if (ret == 0) return 0; /* call RV, line 123 */
00824                 if (ret < 0) return ret;
00825             }
00826             {   int ret = slice_del(z); /* delete, line 123 */
00827                 if (ret < 0) return ret;
00828             }
00829             break;
00830         case 7:
00831             {   int ret = r_R1(z);
00832                 if (ret == 0) return 0; /* call R1, line 125 */
00833                 if (ret < 0) return ret;
00834             }
00835             {   int ret = slice_del(z); /* delete, line 125 */
00836                 if (ret < 0) return ret;
00837             }
00838             {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 126 */
00839                 z->ket = z->c; /* [, line 127 */
00840                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab1; }
00841                 among_var = find_among_b(z, a_4, 4); /* substring, line 127 */
00842                 if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
00843                 z->bra = z->c; /* ], line 127 */
00844                 {   int ret = r_R2(z);
00845                     if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 127 */
00846                     if (ret < 0) return ret;
00847                 }
00848                 {   int ret = slice_del(z); /* delete, line 127 */
00849                     if (ret < 0) return ret;
00850                 }
00851                 switch(among_var) {
00852                     case 0: { z->c = z->l - m_keep; goto lab1; }
00853                     case 1:
00854                         z->ket = z->c; /* [, line 128 */
00855                         if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m_keep; goto lab1; }
00856                         z->bra = z->c; /* ], line 128 */
00857                         {   int ret = r_R2(z);
00858                             if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 128 */
00859                             if (ret < 0) return ret;
00860                         }
00861                         {   int ret = slice_del(z); /* delete, line 128 */
00862                             if (ret < 0) return ret;
00863                         }
00864                         break;
00865                 }
00866             lab1:
00867                 ;
00868             }
00869             break;
00870         case 8:
00871             {   int ret = r_R2(z);
00872                 if (ret == 0) return 0; /* call R2, line 134 */
00873                 if (ret < 0) return ret;
00874             }
00875             {   int ret = slice_del(z); /* delete, line 134 */
00876                 if (ret < 0) return ret;
00877             }
00878             {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 135 */
00879                 z->ket = z->c; /* [, line 136 */
00880                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab2; }
00881                 among_var = find_among_b(z, a_5, 3); /* substring, line 136 */
00882                 if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
00883                 z->bra = z->c; /* ], line 136 */
00884                 switch(among_var) {
00885                     case 0: { z->c = z->l - m_keep; goto lab2; }
00886                     case 1:
00887                         {   int ret = r_R2(z);
00888                             if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 137 */
00889                             if (ret < 0) return ret;
00890                         }
00891                         {   int ret = slice_del(z); /* delete, line 137 */
00892                             if (ret < 0) return ret;
00893                         }
00894                         break;
00895                 }
00896             lab2:
00897                 ;
00898             }
00899             break;
00900         case 9:
00901             {   int ret = r_R2(z);
00902                 if (ret == 0) return 0; /* call R2, line 142 */
00903                 if (ret < 0) return ret;
00904             }
00905             {   int ret = slice_del(z); /* delete, line 142 */
00906                 if (ret < 0) return ret;
00907             }
00908             {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 143 */
00909                 z->ket = z->c; /* [, line 143 */
00910                 if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m_keep; goto lab3; }
00911                 z->bra = z->c; /* ], line 143 */
00912                 {   int ret = r_R2(z);
00913                     if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 143 */
00914                     if (ret < 0) return ret;
00915                 }
00916                 {   int ret = slice_del(z); /* delete, line 143 */
00917                     if (ret < 0) return ret;
00918                 }
00919                 z->ket = z->c; /* [, line 143 */
00920                 if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m_keep; goto lab3; }
00921                 z->bra = z->c; /* ], line 143 */
00922                 {   int ret = r_R2(z);
00923                     if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 143 */
00924                     if (ret < 0) return ret;
00925                 }
00926                 {   int ret = slice_del(z); /* delete, line 143 */
00927                     if (ret < 0) return ret;
00928                 }
00929             lab3:
00930                 ;
00931             }
00932             break;
00933     }
00934     return 1;
00935 }
00936 
00937 static int r_verb_suffix(struct SN_env * z) {
00938     int among_var;
00939     {   int mlimit; /* setlimit, line 148 */
00940         int m1 = z->l - z->c; (void)m1;
00941         if (z->c < z->I[0]) return 0;
00942         z->c = z->I[0]; /* tomark, line 148 */
00943         mlimit = z->lb; z->lb = z->c;
00944         z->c = z->l - m1;
00945         z->ket = z->c; /* [, line 149 */
00946         among_var = find_among_b(z, a_7, 87); /* substring, line 149 */
00947         if (!(among_var)) { z->lb = mlimit; return 0; }
00948         z->bra = z->c; /* ], line 149 */
00949         switch(among_var) {
00950             case 0: { z->lb = mlimit; return 0; }
00951             case 1:
00952                 {   int ret = slice_del(z); /* delete, line 163 */
00953                     if (ret < 0) return ret;
00954                 }
00955                 break;
00956         }
00957         z->lb = mlimit;
00958     }
00959     return 1;
00960 }
00961 
00962 static int r_vowel_suffix(struct SN_env * z) {
00963     {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 171 */
00964         z->ket = z->c; /* [, line 172 */
00965         if (in_grouping_b_U(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m_keep; goto lab0; }
00966         z->bra = z->c; /* ], line 172 */
00967         {   int ret = r_RV(z);
00968             if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 172 */
00969             if (ret < 0) return ret;
00970         }
00971         {   int ret = slice_del(z); /* delete, line 172 */
00972             if (ret < 0) return ret;
00973         }
00974         z->ket = z->c; /* [, line 173 */
00975         if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m_keep; goto lab0; }
00976         z->bra = z->c; /* ], line 173 */
00977         {   int ret = r_RV(z);
00978             if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 173 */
00979             if (ret < 0) return ret;
00980         }
00981         {   int ret = slice_del(z); /* delete, line 173 */
00982             if (ret < 0) return ret;
00983         }
00984     lab0:
00985         ;
00986     }
00987     {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 175 */
00988         z->ket = z->c; /* [, line 176 */
00989         if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m_keep; goto lab1; }
00990         z->bra = z->c; /* ], line 176 */
00991         if (in_grouping_b_U(z, g_CG, 99, 103, 0)) { z->c = z->l - m_keep; goto lab1; }
00992         {   int ret = r_RV(z);
00993             if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call RV, line 176 */
00994             if (ret < 0) return ret;
00995         }
00996         {   int ret = slice_del(z); /* delete, line 176 */
00997             if (ret < 0) return ret;
00998         }
00999     lab1:
01000         ;
01001     }
01002     return 1;
01003 }
01004 
01005 extern int italian_UTF_8_stem(struct SN_env * z) {
01006     {   int c1 = z->c; /* do, line 182 */
01007         {   int ret = r_prelude(z);
01008             if (ret == 0) goto lab0; /* call prelude, line 182 */
01009             if (ret < 0) return ret;
01010         }
01011     lab0:
01012         z->c = c1;
01013     }
01014     {   int c2 = z->c; /* do, line 183 */
01015         {   int ret = r_mark_regions(z);
01016             if (ret == 0) goto lab1; /* call mark_regions, line 183 */
01017             if (ret < 0) return ret;
01018         }
01019     lab1:
01020         z->c = c2;
01021     }
01022     z->lb = z->c; z->c = z->l; /* backwards, line 184 */
01023 
01024     {   int m3 = z->l - z->c; (void)m3; /* do, line 185 */
01025         {   int ret = r_attached_pronoun(z);
01026             if (ret == 0) goto lab2; /* call attached_pronoun, line 185 */
01027             if (ret < 0) return ret;
01028         }
01029     lab2:
01030         z->c = z->l - m3;
01031     }
01032     {   int m4 = z->l - z->c; (void)m4; /* do, line 186 */
01033         {   int m5 = z->l - z->c; (void)m5; /* or, line 186 */
01034             {   int ret = r_standard_suffix(z);
01035                 if (ret == 0) goto lab5; /* call standard_suffix, line 186 */
01036                 if (ret < 0) return ret;
01037             }
01038             goto lab4;
01039         lab5:
01040             z->c = z->l - m5;
01041             {   int ret = r_verb_suffix(z);
01042                 if (ret == 0) goto lab3; /* call verb_suffix, line 186 */
01043                 if (ret < 0) return ret;
01044             }
01045         }
01046     lab4:
01047     lab3:
01048         z->c = z->l - m4;
01049     }
01050     {   int m6 = z->l - z->c; (void)m6; /* do, line 187 */
01051         {   int ret = r_vowel_suffix(z);
01052             if (ret == 0) goto lab6; /* call vowel_suffix, line 187 */
01053             if (ret < 0) return ret;
01054         }
01055     lab6:
01056         z->c = z->l - m6;
01057     }
01058     z->c = z->lb;
01059     {   int c7 = z->c; /* do, line 189 */
01060         {   int ret = r_postlude(z);
01061             if (ret == 0) goto lab7; /* call postlude, line 189 */
01062             if (ret < 0) return ret;
01063         }
01064     lab7:
01065         z->c = c7;
01066     }
01067     return 1;
01068 }
01069 
01070 extern struct SN_env * italian_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
01071 
01072 extern void italian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
01073