tracker-0.16.2/src/libstemmer/stem_UTF_8_italian.c

No issues found

   1 /*
   2  * Copyright (c) 2001, Dr Martin Porter
   3  * All rights reserved.
   4  *
   5  * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
   6  * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
   7  * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
   8  * Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
   9  *
  10  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  11  */
  12 
  13 
  14 
  15 /* This file was generated automatically by the Snowball to ANSI C compiler */
  16 
  17 #include "header.h"
  18 
  19 extern int italian_UTF_8_stem(struct SN_env * z);
  20 static int r_vowel_suffix(struct SN_env * z);
  21 static int r_verb_suffix(struct SN_env * z);
  22 static int r_standard_suffix(struct SN_env * z);
  23 static int r_attached_pronoun(struct SN_env * z);
  24 static int r_R2(struct SN_env * z);
  25 static int r_R1(struct SN_env * z);
  26 static int r_RV(struct SN_env * z);
  27 static int r_mark_regions(struct SN_env * z);
  28 static int r_postlude(struct SN_env * z);
  29 static int r_prelude(struct SN_env * z);
  30 
  31 extern struct SN_env * italian_UTF_8_create_env(void);
  32 extern void italian_UTF_8_close_env(struct SN_env * z);
  33 
  34 static symbol s_0_1[2] = { 'q', 'u' };
  35 static symbol s_0_2[2] = { 0xC3, 0xA1 };
  36 static symbol s_0_3[2] = { 0xC3, 0xA9 };
  37 static symbol s_0_4[2] = { 0xC3, 0xAD };
  38 static symbol s_0_5[2] = { 0xC3, 0xB3 };
  39 static symbol s_0_6[2] = { 0xC3, 0xBA };
  40 
  41 static struct among a_0[7] =
  42 {
  43 /*  0 */ { 0, 0, -1, 7, 0},
  44 /*  1 */ { 2, s_0_1, 0, 6, 0},
  45 /*  2 */ { 2, s_0_2, 0, 1, 0},
  46 /*  3 */ { 2, s_0_3, 0, 2, 0},
  47 /*  4 */ { 2, s_0_4, 0, 3, 0},
  48 /*  5 */ { 2, s_0_5, 0, 4, 0},
  49 /*  6 */ { 2, s_0_6, 0, 5, 0}
  50 };
  51 
  52 static symbol s_1_1[1] = { 'I' };
  53 static symbol s_1_2[1] = { 'U' };
  54 
  55 static struct among a_1[3] =
  56 {
  57 /*  0 */ { 0, 0, -1, 3, 0},
  58 /*  1 */ { 1, s_1_1, 0, 1, 0},
  59 /*  2 */ { 1, s_1_2, 0, 2, 0}
  60 };
  61 
  62 static symbol s_2_0[2] = { 'l', 'a' };
  63 static symbol s_2_1[4] = { 'c', 'e', 'l', 'a' };
  64 static symbol s_2_2[6] = { 'g', 'l', 'i', 'e', 'l', 'a' };
  65 static symbol s_2_3[4] = { 'm', 'e', 'l', 'a' };
  66 static symbol s_2_4[4] = { 't', 'e', 'l', 'a' };
  67 static symbol s_2_5[4] = { 'v', 'e', 'l', 'a' };
  68 static symbol s_2_6[2] = { 'l', 'e' };
  69 static symbol s_2_7[4] = { 'c', 'e', 'l', 'e' };
  70 static symbol s_2_8[6] = { 'g', 'l', 'i', 'e', 'l', 'e' };
  71 static symbol s_2_9[4] = { 'm', 'e', 'l', 'e' };
  72 static symbol s_2_10[4] = { 't', 'e', 'l', 'e' };
  73 static symbol s_2_11[4] = { 'v', 'e', 'l', 'e' };
  74 static symbol s_2_12[2] = { 'n', 'e' };
  75 static symbol s_2_13[4] = { 'c', 'e', 'n', 'e' };
  76 static symbol s_2_14[6] = { 'g', 'l', 'i', 'e', 'n', 'e' };
  77 static symbol s_2_15[4] = { 'm', 'e', 'n', 'e' };
  78 static symbol s_2_16[4] = { 's', 'e', 'n', 'e' };
  79 static symbol s_2_17[4] = { 't', 'e', 'n', 'e' };
  80 static symbol s_2_18[4] = { 'v', 'e', 'n', 'e' };
  81 static symbol s_2_19[2] = { 'c', 'i' };
  82 static symbol s_2_20[2] = { 'l', 'i' };
  83 static symbol s_2_21[4] = { 'c', 'e', 'l', 'i' };
  84 static symbol s_2_22[6] = { 'g', 'l', 'i', 'e', 'l', 'i' };
  85 static symbol s_2_23[4] = { 'm', 'e', 'l', 'i' };
  86 static symbol s_2_24[4] = { 't', 'e', 'l', 'i' };
  87 static symbol s_2_25[4] = { 'v', 'e', 'l', 'i' };
  88 static symbol s_2_26[3] = { 'g', 'l', 'i' };
  89 static symbol s_2_27[2] = { 'm', 'i' };
  90 static symbol s_2_28[2] = { 's', 'i' };
  91 static symbol s_2_29[2] = { 't', 'i' };
  92 static symbol s_2_30[2] = { 'v', 'i' };
  93 static symbol s_2_31[2] = { 'l', 'o' };
  94 static symbol s_2_32[4] = { 'c', 'e', 'l', 'o' };
  95 static symbol s_2_33[6] = { 'g', 'l', 'i', 'e', 'l', 'o' };
  96 static symbol s_2_34[4] = { 'm', 'e', 'l', 'o' };
  97 static symbol s_2_35[4] = { 't', 'e', 'l', 'o' };
  98 static symbol s_2_36[4] = { 'v', 'e', 'l', 'o' };
  99 
 100 static struct among a_2[37] =
 101 {
 102 /*  0 */ { 2, s_2_0, -1, -1, 0},
 103 /*  1 */ { 4, s_2_1, 0, -1, 0},
 104 /*  2 */ { 6, s_2_2, 0, -1, 0},
 105 /*  3 */ { 4, s_2_3, 0, -1, 0},
 106 /*  4 */ { 4, s_2_4, 0, -1, 0},
 107 /*  5 */ { 4, s_2_5, 0, -1, 0},
 108 /*  6 */ { 2, s_2_6, -1, -1, 0},
 109 /*  7 */ { 4, s_2_7, 6, -1, 0},
 110 /*  8 */ { 6, s_2_8, 6, -1, 0},
 111 /*  9 */ { 4, s_2_9, 6, -1, 0},
 112 /* 10 */ { 4, s_2_10, 6, -1, 0},
 113 /* 11 */ { 4, s_2_11, 6, -1, 0},
 114 /* 12 */ { 2, s_2_12, -1, -1, 0},
 115 /* 13 */ { 4, s_2_13, 12, -1, 0},
 116 /* 14 */ { 6, s_2_14, 12, -1, 0},
 117 /* 15 */ { 4, s_2_15, 12, -1, 0},
 118 /* 16 */ { 4, s_2_16, 12, -1, 0},
 119 /* 17 */ { 4, s_2_17, 12, -1, 0},
 120 /* 18 */ { 4, s_2_18, 12, -1, 0},
 121 /* 19 */ { 2, s_2_19, -1, -1, 0},
 122 /* 20 */ { 2, s_2_20, -1, -1, 0},
 123 /* 21 */ { 4, s_2_21, 20, -1, 0},
 124 /* 22 */ { 6, s_2_22, 20, -1, 0},
 125 /* 23 */ { 4, s_2_23, 20, -1, 0},
 126 /* 24 */ { 4, s_2_24, 20, -1, 0},
 127 /* 25 */ { 4, s_2_25, 20, -1, 0},
 128 /* 26 */ { 3, s_2_26, 20, -1, 0},
 129 /* 27 */ { 2, s_2_27, -1, -1, 0},
 130 /* 28 */ { 2, s_2_28, -1, -1, 0},
 131 /* 29 */ { 2, s_2_29, -1, -1, 0},
 132 /* 30 */ { 2, s_2_30, -1, -1, 0},
 133 /* 31 */ { 2, s_2_31, -1, -1, 0},
 134 /* 32 */ { 4, s_2_32, 31, -1, 0},
 135 /* 33 */ { 6, s_2_33, 31, -1, 0},
 136 /* 34 */ { 4, s_2_34, 31, -1, 0},
 137 /* 35 */ { 4, s_2_35, 31, -1, 0},
 138 /* 36 */ { 4, s_2_36, 31, -1, 0}
 139 };
 140 
 141 static symbol s_3_0[4] = { 'a', 'n', 'd', 'o' };
 142 static symbol s_3_1[4] = { 'e', 'n', 'd', 'o' };
 143 static symbol s_3_2[2] = { 'a', 'r' };
 144 static symbol s_3_3[2] = { 'e', 'r' };
 145 static symbol s_3_4[2] = { 'i', 'r' };
 146 
 147 static struct among a_3[5] =
 148 {
 149 /*  0 */ { 4, s_3_0, -1, 1, 0},
 150 /*  1 */ { 4, s_3_1, -1, 1, 0},
 151 /*  2 */ { 2, s_3_2, -1, 2, 0},
 152 /*  3 */ { 2, s_3_3, -1, 2, 0},
 153 /*  4 */ { 2, s_3_4, -1, 2, 0}
 154 };
 155 
 156 static symbol s_4_0[2] = { 'i', 'c' };
 157 static symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
 158 static symbol s_4_2[2] = { 'o', 's' };
 159 static symbol s_4_3[2] = { 'i', 'v' };
 160 
 161 static struct among a_4[4] =
 162 {
 163 /*  0 */ { 2, s_4_0, -1, -1, 0},
 164 /*  1 */ { 4, s_4_1, -1, -1, 0},
 165 /*  2 */ { 2, s_4_2, -1, -1, 0},
 166 /*  3 */ { 2, s_4_3, -1, 1, 0}
 167 };
 168 
 169 static symbol s_5_0[2] = { 'i', 'c' };
 170 static symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
 171 static symbol s_5_2[2] = { 'i', 'v' };
 172 
 173 static struct among a_5[3] =
 174 {
 175 /*  0 */ { 2, s_5_0, -1, 1, 0},
 176 /*  1 */ { 4, s_5_1, -1, 1, 0},
 177 /*  2 */ { 2, s_5_2, -1, 1, 0}
 178 };
 179 
 180 static symbol s_6_0[3] = { 'i', 'c', 'a' };
 181 static symbol s_6_1[5] = { 'l', 'o', 'g', 'i', 'a' };
 182 static symbol s_6_2[3] = { 'o', 's', 'a' };
 183 static symbol s_6_3[4] = { 'i', 's', 't', 'a' };
 184 static symbol s_6_4[3] = { 'i', 'v', 'a' };
 185 static symbol s_6_5[4] = { 'a', 'n', 'z', 'a' };
 186 static symbol s_6_6[4] = { 'e', 'n', 'z', 'a' };
 187 static symbol s_6_7[3] = { 'i', 'c', 'e' };
 188 static symbol s_6_8[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
 189 static symbol s_6_9[4] = { 'i', 'c', 'h', 'e' };
 190 static symbol s_6_10[5] = { 'l', 'o', 'g', 'i', 'e' };
 191 static symbol s_6_11[5] = { 'a', 'b', 'i', 'l', 'e' };
 192 static symbol s_6_12[5] = { 'i', 'b', 'i', 'l', 'e' };
 193 static symbol s_6_13[6] = { 'u', 's', 'i', 'o', 'n', 'e' };
 194 static symbol s_6_14[6] = { 'a', 'z', 'i', 'o', 'n', 'e' };
 195 static symbol s_6_15[6] = { 'u', 'z', 'i', 'o', 'n', 'e' };
 196 static symbol s_6_16[5] = { 'a', 't', 'o', 'r', 'e' };
 197 static symbol s_6_17[3] = { 'o', 's', 'e' };
 198 static symbol s_6_18[4] = { 'a', 'n', 't', 'e' };
 199 static symbol s_6_19[5] = { 'm', 'e', 'n', 't', 'e' };
 200 static symbol s_6_20[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
 201 static symbol s_6_21[4] = { 'i', 's', 't', 'e' };
 202 static symbol s_6_22[3] = { 'i', 'v', 'e' };
 203 static symbol s_6_23[4] = { 'a', 'n', 'z', 'e' };
 204 static symbol s_6_24[4] = { 'e', 'n', 'z', 'e' };
 205 static symbol s_6_25[3] = { 'i', 'c', 'i' };
 206 static symbol s_6_26[6] = { 'a', 't', 'r', 'i', 'c', 'i' };
 207 static symbol s_6_27[4] = { 'i', 'c', 'h', 'i' };
 208 static symbol s_6_28[5] = { 'a', 'b', 'i', 'l', 'i' };
 209 static symbol s_6_29[5] = { 'i', 'b', 'i', 'l', 'i' };
 210 static symbol s_6_30[4] = { 'i', 's', 'm', 'i' };
 211 static symbol s_6_31[6] = { 'u', 's', 'i', 'o', 'n', 'i' };
 212 static symbol s_6_32[6] = { 'a', 'z', 'i', 'o', 'n', 'i' };
 213 static symbol s_6_33[6] = { 'u', 'z', 'i', 'o', 'n', 'i' };
 214 static symbol s_6_34[5] = { 'a', 't', 'o', 'r', 'i' };
 215 static symbol s_6_35[3] = { 'o', 's', 'i' };
 216 static symbol s_6_36[4] = { 'a', 'n', 't', 'i' };
 217 static symbol s_6_37[6] = { 'a', 'm', 'e', 'n', 't', 'i' };
 218 static symbol s_6_38[6] = { 'i', 'm', 'e', 'n', 't', 'i' };
 219 static symbol s_6_39[4] = { 'i', 's', 't', 'i' };
 220 static symbol s_6_40[3] = { 'i', 'v', 'i' };
 221 static symbol s_6_41[3] = { 'i', 'c', 'o' };
 222 static symbol s_6_42[4] = { 'i', 's', 'm', 'o' };
 223 static symbol s_6_43[3] = { 'o', 's', 'o' };
 224 static symbol s_6_44[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
 225 static symbol s_6_45[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
 226 static symbol s_6_46[3] = { 'i', 'v', 'o' };
 227 static symbol s_6_47[4] = { 'i', 't', 0xC3, 0xA0 };
 228 static symbol s_6_48[5] = { 'i', 's', 't', 0xC3, 0xA0 };
 229 static symbol s_6_49[5] = { 'i', 's', 't', 0xC3, 0xA8 };
 230 static symbol s_6_50[5] = { 'i', 's', 't', 0xC3, 0xAC };
 231 
 232 static struct among a_6[51] =
 233 {
 234 /*  0 */ { 3, s_6_0, -1, 1, 0},
 235 /*  1 */ { 5, s_6_1, -1, 3, 0},
 236 /*  2 */ { 3, s_6_2, -1, 1, 0},
 237 /*  3 */ { 4, s_6_3, -1, 1, 0},
 238 /*  4 */ { 3, s_6_4, -1, 9, 0},
 239 /*  5 */ { 4, s_6_5, -1, 1, 0},
 240 /*  6 */ { 4, s_6_6, -1, 5, 0},
 241 /*  7 */ { 3, s_6_7, -1, 1, 0},
 242 /*  8 */ { 6, s_6_8, 7, 1, 0},
 243 /*  9 */ { 4, s_6_9, -1, 1, 0},
 244 /* 10 */ { 5, s_6_10, -1, 3, 0},
 245 /* 11 */ { 5, s_6_11, -1, 1, 0},
 246 /* 12 */ { 5, s_6_12, -1, 1, 0},
 247 /* 13 */ { 6, s_6_13, -1, 4, 0},
 248 /* 14 */ { 6, s_6_14, -1, 2, 0},
 249 /* 15 */ { 6, s_6_15, -1, 4, 0},
 250 /* 16 */ { 5, s_6_16, -1, 2, 0},
 251 /* 17 */ { 3, s_6_17, -1, 1, 0},
 252 /* 18 */ { 4, s_6_18, -1, 1, 0},
 253 /* 19 */ { 5, s_6_19, -1, 1, 0},
 254 /* 20 */ { 6, s_6_20, 19, 7, 0},
 255 /* 21 */ { 4, s_6_21, -1, 1, 0},
 256 /* 22 */ { 3, s_6_22, -1, 9, 0},
 257 /* 23 */ { 4, s_6_23, -1, 1, 0},
 258 /* 24 */ { 4, s_6_24, -1, 5, 0},
 259 /* 25 */ { 3, s_6_25, -1, 1, 0},
 260 /* 26 */ { 6, s_6_26, 25, 1, 0},
 261 /* 27 */ { 4, s_6_27, -1, 1, 0},
 262 /* 28 */ { 5, s_6_28, -1, 1, 0},
 263 /* 29 */ { 5, s_6_29, -1, 1, 0},
 264 /* 30 */ { 4, s_6_30, -1, 1, 0},
 265 /* 31 */ { 6, s_6_31, -1, 4, 0},
 266 /* 32 */ { 6, s_6_32, -1, 2, 0},
 267 /* 33 */ { 6, s_6_33, -1, 4, 0},
 268 /* 34 */ { 5, s_6_34, -1, 2, 0},
 269 /* 35 */ { 3, s_6_35, -1, 1, 0},
 270 /* 36 */ { 4, s_6_36, -1, 1, 0},
 271 /* 37 */ { 6, s_6_37, -1, 6, 0},
 272 /* 38 */ { 6, s_6_38, -1, 6, 0},
 273 /* 39 */ { 4, s_6_39, -1, 1, 0},
 274 /* 40 */ { 3, s_6_40, -1, 9, 0},
 275 /* 41 */ { 3, s_6_41, -1, 1, 0},
 276 /* 42 */ { 4, s_6_42, -1, 1, 0},
 277 /* 43 */ { 3, s_6_43, -1, 1, 0},
 278 /* 44 */ { 6, s_6_44, -1, 6, 0},
 279 /* 45 */ { 6, s_6_45, -1, 6, 0},
 280 /* 46 */ { 3, s_6_46, -1, 9, 0},
 281 /* 47 */ { 4, s_6_47, -1, 8, 0},
 282 /* 48 */ { 5, s_6_48, -1, 1, 0},
 283 /* 49 */ { 5, s_6_49, -1, 1, 0},
 284 /* 50 */ { 5, s_6_50, -1, 1, 0}
 285 };
 286 
 287 static symbol s_7_0[4] = { 'i', 's', 'c', 'a' };
 288 static symbol s_7_1[4] = { 'e', 'n', 'd', 'a' };
 289 static symbol s_7_2[3] = { 'a', 't', 'a' };
 290 static symbol s_7_3[3] = { 'i', 't', 'a' };
 291 static symbol s_7_4[3] = { 'u', 't', 'a' };
 292 static symbol s_7_5[3] = { 'a', 'v', 'a' };
 293 static symbol s_7_6[3] = { 'e', 'v', 'a' };
 294 static symbol s_7_7[3] = { 'i', 'v', 'a' };
 295 static symbol s_7_8[6] = { 'e', 'r', 'e', 'b', 'b', 'e' };
 296 static symbol s_7_9[6] = { 'i', 'r', 'e', 'b', 'b', 'e' };
 297 static symbol s_7_10[4] = { 'i', 's', 'c', 'e' };
 298 static symbol s_7_11[4] = { 'e', 'n', 'd', 'e' };
 299 static symbol s_7_12[3] = { 'a', 'r', 'e' };
 300 static symbol s_7_13[3] = { 'e', 'r', 'e' };
 301 static symbol s_7_14[3] = { 'i', 'r', 'e' };
 302 static symbol s_7_15[4] = { 'a', 's', 's', 'e' };
 303 static symbol s_7_16[3] = { 'a', 't', 'e' };
 304 static symbol s_7_17[5] = { 'a', 'v', 'a', 't', 'e' };
 305 static symbol s_7_18[5] = { 'e', 'v', 'a', 't', 'e' };
 306 static symbol s_7_19[5] = { 'i', 'v', 'a', 't', 'e' };
 307 static symbol s_7_20[3] = { 'e', 't', 'e' };
 308 static symbol s_7_21[5] = { 'e', 'r', 'e', 't', 'e' };
 309 static symbol s_7_22[5] = { 'i', 'r', 'e', 't', 'e' };
 310 static symbol s_7_23[3] = { 'i', 't', 'e' };
 311 static symbol s_7_24[6] = { 'e', 'r', 'e', 's', 't', 'e' };
 312 static symbol s_7_25[6] = { 'i', 'r', 'e', 's', 't', 'e' };
 313 static symbol s_7_26[3] = { 'u', 't', 'e' };
 314 static symbol s_7_27[4] = { 'e', 'r', 'a', 'i' };
 315 static symbol s_7_28[4] = { 'i', 'r', 'a', 'i' };
 316 static symbol s_7_29[4] = { 'i', 's', 'c', 'i' };
 317 static symbol s_7_30[4] = { 'e', 'n', 'd', 'i' };
 318 static symbol s_7_31[4] = { 'e', 'r', 'e', 'i' };
 319 static symbol s_7_32[4] = { 'i', 'r', 'e', 'i' };
 320 static symbol s_7_33[4] = { 'a', 's', 's', 'i' };
 321 static symbol s_7_34[3] = { 'a', 't', 'i' };
 322 static symbol s_7_35[3] = { 'i', 't', 'i' };
 323 static symbol s_7_36[6] = { 'e', 'r', 'e', 's', 't', 'i' };
 324 static symbol s_7_37[6] = { 'i', 'r', 'e', 's', 't', 'i' };
 325 static symbol s_7_38[3] = { 'u', 't', 'i' };
 326 static symbol s_7_39[3] = { 'a', 'v', 'i' };
 327 static symbol s_7_40[3] = { 'e', 'v', 'i' };
 328 static symbol s_7_41[3] = { 'i', 'v', 'i' };
 329 static symbol s_7_42[4] = { 'i', 's', 'c', 'o' };
 330 static symbol s_7_43[4] = { 'a', 'n', 'd', 'o' };
 331 static symbol s_7_44[4] = { 'e', 'n', 'd', 'o' };
 332 static symbol s_7_45[4] = { 'Y', 'a', 'm', 'o' };
 333 static symbol s_7_46[4] = { 'i', 'a', 'm', 'o' };
 334 static symbol s_7_47[5] = { 'a', 'v', 'a', 'm', 'o' };
 335 static symbol s_7_48[5] = { 'e', 'v', 'a', 'm', 'o' };
 336 static symbol s_7_49[5] = { 'i', 'v', 'a', 'm', 'o' };
 337 static symbol s_7_50[5] = { 'e', 'r', 'e', 'm', 'o' };
 338 static symbol s_7_51[5] = { 'i', 'r', 'e', 'm', 'o' };
 339 static symbol s_7_52[6] = { 'a', 's', 's', 'i', 'm', 'o' };
 340 static symbol s_7_53[4] = { 'a', 'm', 'm', 'o' };
 341 static symbol s_7_54[4] = { 'e', 'm', 'm', 'o' };
 342 static symbol s_7_55[6] = { 'e', 'r', 'e', 'm', 'm', 'o' };
 343 static symbol s_7_56[6] = { 'i', 'r', 'e', 'm', 'm', 'o' };
 344 static symbol s_7_57[4] = { 'i', 'm', 'm', 'o' };
 345 static symbol s_7_58[3] = { 'a', 'n', 'o' };
 346 static symbol s_7_59[6] = { 'i', 's', 'c', 'a', 'n', 'o' };
 347 static symbol s_7_60[5] = { 'a', 'v', 'a', 'n', 'o' };
 348 static symbol s_7_61[5] = { 'e', 'v', 'a', 'n', 'o' };
 349 static symbol s_7_62[5] = { 'i', 'v', 'a', 'n', 'o' };
 350 static symbol s_7_63[6] = { 'e', 'r', 'a', 'n', 'n', 'o' };
 351 static symbol s_7_64[6] = { 'i', 'r', 'a', 'n', 'n', 'o' };
 352 static symbol s_7_65[3] = { 'o', 'n', 'o' };
 353 static symbol s_7_66[6] = { 'i', 's', 'c', 'o', 'n', 'o' };
 354 static symbol s_7_67[5] = { 'a', 'r', 'o', 'n', 'o' };
 355 static symbol s_7_68[5] = { 'e', 'r', 'o', 'n', 'o' };
 356 static symbol s_7_69[5] = { 'i', 'r', 'o', 'n', 'o' };
 357 static symbol s_7_70[8] = { 'e', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
 358 static symbol s_7_71[8] = { 'i', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
 359 static symbol s_7_72[6] = { 'a', 's', 's', 'e', 'r', 'o' };
 360 static symbol s_7_73[6] = { 'e', 's', 's', 'e', 'r', 'o' };
 361 static symbol s_7_74[6] = { 'i', 's', 's', 'e', 'r', 'o' };
 362 static symbol s_7_75[3] = { 'a', 't', 'o' };
 363 static symbol s_7_76[3] = { 'i', 't', 'o' };
 364 static symbol s_7_77[3] = { 'u', 't', 'o' };
 365 static symbol s_7_78[3] = { 'a', 'v', 'o' };
 366 static symbol s_7_79[3] = { 'e', 'v', 'o' };
 367 static symbol s_7_80[3] = { 'i', 'v', 'o' };
 368 static symbol s_7_81[2] = { 'a', 'r' };
 369 static symbol s_7_82[2] = { 'i', 'r' };
 370 static symbol s_7_83[4] = { 'e', 'r', 0xC3, 0xA0 };
 371 static symbol s_7_84[4] = { 'i', 'r', 0xC3, 0xA0 };
 372 static symbol s_7_85[4] = { 'e', 'r', 0xC3, 0xB2 };
 373 static symbol s_7_86[4] = { 'i', 'r', 0xC3, 0xB2 };
 374 
 375 static struct among a_7[87] =
 376 {
 377 /*  0 */ { 4, s_7_0, -1, 1, 0},
 378 /*  1 */ { 4, s_7_1, -1, 1, 0},
 379 /*  2 */ { 3, s_7_2, -1, 1, 0},
 380 /*  3 */ { 3, s_7_3, -1, 1, 0},
 381 /*  4 */ { 3, s_7_4, -1, 1, 0},
 382 /*  5 */ { 3, s_7_5, -1, 1, 0},
 383 /*  6 */ { 3, s_7_6, -1, 1, 0},
 384 /*  7 */ { 3, s_7_7, -1, 1, 0},
 385 /*  8 */ { 6, s_7_8, -1, 1, 0},
 386 /*  9 */ { 6, s_7_9, -1, 1, 0},
 387 /* 10 */ { 4, s_7_10, -1, 1, 0},
 388 /* 11 */ { 4, s_7_11, -1, 1, 0},
 389 /* 12 */ { 3, s_7_12, -1, 1, 0},
 390 /* 13 */ { 3, s_7_13, -1, 1, 0},
 391 /* 14 */ { 3, s_7_14, -1, 1, 0},
 392 /* 15 */ { 4, s_7_15, -1, 1, 0},
 393 /* 16 */ { 3, s_7_16, -1, 1, 0},
 394 /* 17 */ { 5, s_7_17, 16, 1, 0},
 395 /* 18 */ { 5, s_7_18, 16, 1, 0},
 396 /* 19 */ { 5, s_7_19, 16, 1, 0},
 397 /* 20 */ { 3, s_7_20, -1, 1, 0},
 398 /* 21 */ { 5, s_7_21, 20, 1, 0},
 399 /* 22 */ { 5, s_7_22, 20, 1, 0},
 400 /* 23 */ { 3, s_7_23, -1, 1, 0},
 401 /* 24 */ { 6, s_7_24, -1, 1, 0},
 402 /* 25 */ { 6, s_7_25, -1, 1, 0},
 403 /* 26 */ { 3, s_7_26, -1, 1, 0},
 404 /* 27 */ { 4, s_7_27, -1, 1, 0},
 405 /* 28 */ { 4, s_7_28, -1, 1, 0},
 406 /* 29 */ { 4, s_7_29, -1, 1, 0},
 407 /* 30 */ { 4, s_7_30, -1, 1, 0},
 408 /* 31 */ { 4, s_7_31, -1, 1, 0},
 409 /* 32 */ { 4, s_7_32, -1, 1, 0},
 410 /* 33 */ { 4, s_7_33, -1, 1, 0},
 411 /* 34 */ { 3, s_7_34, -1, 1, 0},
 412 /* 35 */ { 3, s_7_35, -1, 1, 0},
 413 /* 36 */ { 6, s_7_36, -1, 1, 0},
 414 /* 37 */ { 6, s_7_37, -1, 1, 0},
 415 /* 38 */ { 3, s_7_38, -1, 1, 0},
 416 /* 39 */ { 3, s_7_39, -1, 1, 0},
 417 /* 40 */ { 3, s_7_40, -1, 1, 0},
 418 /* 41 */ { 3, s_7_41, -1, 1, 0},
 419 /* 42 */ { 4, s_7_42, -1, 1, 0},
 420 /* 43 */ { 4, s_7_43, -1, 1, 0},
 421 /* 44 */ { 4, s_7_44, -1, 1, 0},
 422 /* 45 */ { 4, s_7_45, -1, 1, 0},
 423 /* 46 */ { 4, s_7_46, -1, 1, 0},
 424 /* 47 */ { 5, s_7_47, -1, 1, 0},
 425 /* 48 */ { 5, s_7_48, -1, 1, 0},
 426 /* 49 */ { 5, s_7_49, -1, 1, 0},
 427 /* 50 */ { 5, s_7_50, -1, 1, 0},
 428 /* 51 */ { 5, s_7_51, -1, 1, 0},
 429 /* 52 */ { 6, s_7_52, -1, 1, 0},
 430 /* 53 */ { 4, s_7_53, -1, 1, 0},
 431 /* 54 */ { 4, s_7_54, -1, 1, 0},
 432 /* 55 */ { 6, s_7_55, 54, 1, 0},
 433 /* 56 */ { 6, s_7_56, 54, 1, 0},
 434 /* 57 */ { 4, s_7_57, -1, 1, 0},
 435 /* 58 */ { 3, s_7_58, -1, 1, 0},
 436 /* 59 */ { 6, s_7_59, 58, 1, 0},
 437 /* 60 */ { 5, s_7_60, 58, 1, 0},
 438 /* 61 */ { 5, s_7_61, 58, 1, 0},
 439 /* 62 */ { 5, s_7_62, 58, 1, 0},
 440 /* 63 */ { 6, s_7_63, -1, 1, 0},
 441 /* 64 */ { 6, s_7_64, -1, 1, 0},
 442 /* 65 */ { 3, s_7_65, -1, 1, 0},
 443 /* 66 */ { 6, s_7_66, 65, 1, 0},
 444 /* 67 */ { 5, s_7_67, 65, 1, 0},
 445 /* 68 */ { 5, s_7_68, 65, 1, 0},
 446 /* 69 */ { 5, s_7_69, 65, 1, 0},
 447 /* 70 */ { 8, s_7_70, -1, 1, 0},
 448 /* 71 */ { 8, s_7_71, -1, 1, 0},
 449 /* 72 */ { 6, s_7_72, -1, 1, 0},
 450 /* 73 */ { 6, s_7_73, -1, 1, 0},
 451 /* 74 */ { 6, s_7_74, -1, 1, 0},
 452 /* 75 */ { 3, s_7_75, -1, 1, 0},
 453 /* 76 */ { 3, s_7_76, -1, 1, 0},
 454 /* 77 */ { 3, s_7_77, -1, 1, 0},
 455 /* 78 */ { 3, s_7_78, -1, 1, 0},
 456 /* 79 */ { 3, s_7_79, -1, 1, 0},
 457 /* 80 */ { 3, s_7_80, -1, 1, 0},
 458 /* 81 */ { 2, s_7_81, -1, 1, 0},
 459 /* 82 */ { 2, s_7_82, -1, 1, 0},
 460 /* 83 */ { 4, s_7_83, -1, 1, 0},
 461 /* 84 */ { 4, s_7_84, -1, 1, 0},
 462 /* 85 */ { 4, s_7_85, -1, 1, 0},
 463 /* 86 */ { 4, s_7_86, -1, 1, 0}
 464 };
 465 
 466 static unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 };
 467 
 468 static unsigned char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
 469 
 470 static unsigned char g_CG[] = { 17 };
 471 
 472 static symbol s_0[] = { 0xC3, 0xA0 };
 473 static symbol s_1[] = { 0xC3, 0xA8 };
 474 static symbol s_2[] = { 0xC3, 0xAC };
 475 static symbol s_3[] = { 0xC3, 0xB2 };
 476 static symbol s_4[] = { 0xC3, 0xB9 };
 477 static symbol s_5[] = { 'q', 'U' };
 478 static symbol s_6[] = { 'u' };
 479 static symbol s_7[] = { 'U' };
 480 static symbol s_8[] = { 'i' };
 481 static symbol s_9[] = { 'I' };
 482 static symbol s_10[] = { 'i' };
 483 static symbol s_11[] = { 'u' };
 484 static symbol s_12[] = { 'e' };
 485 static symbol s_13[] = { 'i', 'c' };
 486 static symbol s_14[] = { 'l', 'o', 'g' };
 487 static symbol s_15[] = { 'u' };
 488 static symbol s_16[] = { 'e', 'n', 't', 'e' };
 489 static symbol s_17[] = { 'a', 't' };
 490 static symbol s_18[] = { 'a', 't' };
 491 static symbol s_19[] = { 'i', 'c' };
 492 static symbol s_20[] = { 'i' };
 493 static symbol s_21[] = { 'h' };
 494 
 495 static int r_prelude(struct SN_env * z) {
 496     int among_var;
 497     {	int c_test = z->c; /* test, line 35 */
 498 	while(1) { /* repeat, line 35 */
 499 	    int c = z->c;
 500 	    z->bra = z->c; /* [, line 36 */
 501 	    among_var = find_among(z, a_0, 7); /* substring, line 36 */
 502 	    if (!(among_var)) goto lab0;
 503 	    z->ket = z->c; /* ], line 36 */
 504 	    switch(among_var) {
 505 		case 0: goto lab0;
 506 		case 1:
 507 		    {	int ret;
 508 			ret = slice_from_s(z, 2, s_0); /* <-, line 37 */
 509 			if (ret < 0) return ret;
 510 		    }
 511 		    break;
 512 		case 2:
 513 		    {	int ret;
 514 			ret = slice_from_s(z, 2, s_1); /* <-, line 38 */
 515 			if (ret < 0) return ret;
 516 		    }
 517 		    break;
 518 		case 3:
 519 		    {	int ret;
 520 			ret = slice_from_s(z, 2, s_2); /* <-, line 39 */
 521 			if (ret < 0) return ret;
 522 		    }
 523 		    break;
 524 		case 4:
 525 		    {	int ret;
 526 			ret = slice_from_s(z, 2, s_3); /* <-, line 40 */
 527 			if (ret < 0) return ret;
 528 		    }
 529 		    break;
 530 		case 5:
 531 		    {	int ret;
 532 			ret = slice_from_s(z, 2, s_4); /* <-, line 41 */
 533 			if (ret < 0) return ret;
 534 		    }
 535 		    break;
 536 		case 6:
 537 		    {	int ret;
 538 			ret = slice_from_s(z, 2, s_5); /* <-, line 42 */
 539 			if (ret < 0) return ret;
 540 		    }
 541 		    break;
 542 		case 7:
 543 		    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 544 			if (c < 0) goto lab0;
 545 			z->c = c; /* next, line 43 */
 546 		    }
 547 		    break;
 548 	    }
 549 	    continue;
 550 	lab0:
 551 	    z->c = c;
 552 	    break;
 553 	}
 554 	z->c = c_test;
 555     }
 556     while(1) { /* repeat, line 46 */
 557 	int c = z->c;
 558 	while(1) { /* goto, line 46 */
 559 	    int c = z->c;
 560 	    if (!(in_grouping_U(z, g_v, 97, 249))) goto lab2;
 561 	    z->bra = z->c; /* [, line 47 */
 562 	    {	int c = z->c; /* or, line 47 */
 563 		if (!(eq_s(z, 1, s_6))) goto lab4;
 564 		z->ket = z->c; /* ], line 47 */
 565 		if (!(in_grouping_U(z, g_v, 97, 249))) goto lab4;
 566 		{   int ret;
 567 		    ret = slice_from_s(z, 1, s_7); /* <-, line 47 */
 568 		    if (ret < 0) return ret;
 569 		}
 570 		goto lab3;
 571 	    lab4:
 572 		z->c = c;
 573 		if (!(eq_s(z, 1, s_8))) goto lab2;
 574 		z->ket = z->c; /* ], line 48 */
 575 		if (!(in_grouping_U(z, g_v, 97, 249))) goto lab2;
 576 		{   int ret;
 577 		    ret = slice_from_s(z, 1, s_9); /* <-, line 48 */
 578 		    if (ret < 0) return ret;
 579 		}
 580 	    }
 581 	lab3:
 582 	    z->c = c;
 583 	    break;
 584 	lab2:
 585 	    z->c = c;
 586 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 587 		if (c < 0) goto lab1;
 588 		z->c = c; /* goto, line 46 */
 589 	    }
 590 	}
 591 	continue;
 592     lab1:
 593 	z->c = c;
 594 	break;
 595     }
 596     return 1;
 597 }
 598 
 599 static int r_mark_regions(struct SN_env * z) {
 600     z->I[0] = z->l;
 601     z->I[1] = z->l;
 602     z->I[2] = z->l;
 603     {	int c = z->c; /* do, line 58 */
 604 	{   int c = z->c; /* or, line 60 */
 605 	    if (!(in_grouping_U(z, g_v, 97, 249))) goto lab2;
 606 	    {	int c = z->c; /* or, line 59 */
 607 		if (!(out_grouping_U(z, g_v, 97, 249))) goto lab4;
 608 		while(1) { /* gopast, line 59 */
 609 		    if (!(in_grouping_U(z, g_v, 97, 249))) goto lab5;
 610 		    break;
 611 		lab5:
 612 		    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 613 			if (c < 0) goto lab4;
 614 			z->c = c; /* gopast, line 59 */
 615 		    }
 616 		}
 617 		goto lab3;
 618 	    lab4:
 619 		z->c = c;
 620 		if (!(in_grouping_U(z, g_v, 97, 249))) goto lab2;
 621 		while(1) { /* gopast, line 59 */
 622 		    if (!(out_grouping_U(z, g_v, 97, 249))) goto lab6;
 623 		    break;
 624 		lab6:
 625 		    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 626 			if (c < 0) goto lab2;
 627 			z->c = c; /* gopast, line 59 */
 628 		    }
 629 		}
 630 	    }
 631 	lab3:
 632 	    goto lab1;
 633 	lab2:
 634 	    z->c = c;
 635 	    if (!(out_grouping_U(z, g_v, 97, 249))) goto lab0;
 636 	    {	int c = z->c; /* or, line 61 */
 637 		if (!(out_grouping_U(z, g_v, 97, 249))) goto lab8;
 638 		while(1) { /* gopast, line 61 */
 639 		    if (!(in_grouping_U(z, g_v, 97, 249))) goto lab9;
 640 		    break;
 641 		lab9:
 642 		    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 643 			if (c < 0) goto lab8;
 644 			z->c = c; /* gopast, line 61 */
 645 		    }
 646 		}
 647 		goto lab7;
 648 	    lab8:
 649 		z->c = c;
 650 		if (!(in_grouping_U(z, g_v, 97, 249))) goto lab0;
 651 		{   int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 652 		    if (c < 0) goto lab0;
 653 		    z->c = c; /* next, line 61 */
 654 		}
 655 	    }
 656 	lab7:
 657 	    ;
 658 	}
 659     lab1:
 660 	z->I[0] = z->c; /* setmark pV, line 62 */
 661     lab0:
 662 	z->c = c;
 663     }
 664     {	int c = z->c; /* do, line 64 */
 665 	while(1) { /* gopast, line 65 */
 666 	    if (!(in_grouping_U(z, g_v, 97, 249))) goto lab11;
 667 	    break;
 668 	lab11:
 669 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 670 		if (c < 0) goto lab10;
 671 		z->c = c; /* gopast, line 65 */
 672 	    }
 673 	}
 674 	while(1) { /* gopast, line 65 */
 675 	    if (!(out_grouping_U(z, g_v, 97, 249))) goto lab12;
 676 	    break;
 677 	lab12:
 678 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 679 		if (c < 0) goto lab10;
 680 		z->c = c; /* gopast, line 65 */
 681 	    }
 682 	}
 683 	z->I[1] = z->c; /* setmark p1, line 65 */
 684 	while(1) { /* gopast, line 66 */
 685 	    if (!(in_grouping_U(z, g_v, 97, 249))) goto lab13;
 686 	    break;
 687 	lab13:
 688 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 689 		if (c < 0) goto lab10;
 690 		z->c = c; /* gopast, line 66 */
 691 	    }
 692 	}
 693 	while(1) { /* gopast, line 66 */
 694 	    if (!(out_grouping_U(z, g_v, 97, 249))) goto lab14;
 695 	    break;
 696 	lab14:
 697 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 698 		if (c < 0) goto lab10;
 699 		z->c = c; /* gopast, line 66 */
 700 	    }
 701 	}
 702 	z->I[2] = z->c; /* setmark p2, line 66 */
 703     lab10:
 704 	z->c = c;
 705     }
 706     return 1;
 707 }
 708 
 709 static int r_postlude(struct SN_env * z) {
 710     int among_var;
 711     while(1) { /* repeat, line 70 */
 712 	int c = z->c;
 713 	z->bra = z->c; /* [, line 72 */
 714 	among_var = find_among(z, a_1, 3); /* substring, line 72 */
 715 	if (!(among_var)) goto lab0;
 716 	z->ket = z->c; /* ], line 72 */
 717 	switch(among_var) {
 718 	    case 0: goto lab0;
 719 	    case 1:
 720 		{   int ret;
 721 		    ret = slice_from_s(z, 1, s_10); /* <-, line 73 */
 722 		    if (ret < 0) return ret;
 723 		}
 724 		break;
 725 	    case 2:
 726 		{   int ret;
 727 		    ret = slice_from_s(z, 1, s_11); /* <-, line 74 */
 728 		    if (ret < 0) return ret;
 729 		}
 730 		break;
 731 	    case 3:
 732 		{   int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 733 		    if (c < 0) goto lab0;
 734 		    z->c = c; /* next, line 75 */
 735 		}
 736 		break;
 737 	}
 738 	continue;
 739     lab0:
 740 	z->c = c;
 741 	break;
 742     }
 743     return 1;
 744 }
 745 
 746 static int r_RV(struct SN_env * z) {
 747     if (!(z->I[0] <= z->c)) return 0;
 748     return 1;
 749 }
 750 
 751 static int r_R1(struct SN_env * z) {
 752     if (!(z->I[1] <= z->c)) return 0;
 753     return 1;
 754 }
 755 
 756 static int r_R2(struct SN_env * z) {
 757     if (!(z->I[2] <= z->c)) return 0;
 758     return 1;
 759 }
 760 
 761 static int r_attached_pronoun(struct SN_env * z) {
 762     int among_var;
 763     z->ket = z->c; /* [, line 87 */
 764     if (!(find_among_b(z, a_2, 37))) return 0; /* substring, line 87 */
 765     z->bra = z->c; /* ], line 87 */
 766     among_var = find_among_b(z, a_3, 5); /* among, line 97 */
 767     if (!(among_var)) return 0;
 768     {	int ret = r_RV(z);
 769 	if (ret == 0) return 0; /* call RV, line 97 */
 770 	if (ret < 0) return ret;
 771     }
 772     switch(among_var) {
 773 	case 0: return 0;
 774 	case 1:
 775 	    {	int ret;
 776 		ret = slice_del(z); /* delete, line 98 */
 777 		if (ret < 0) return ret;
 778 	    }
 779 	    break;
 780 	case 2:
 781 	    {	int ret;
 782 		ret = slice_from_s(z, 1, s_12); /* <-, line 99 */
 783 		if (ret < 0) return ret;
 784 	    }
 785 	    break;
 786     }
 787     return 1;
 788 }
 789 
 790 static int r_standard_suffix(struct SN_env * z) {
 791     int among_var;
 792     z->ket = z->c; /* [, line 104 */
 793     among_var = find_among_b(z, a_6, 51); /* substring, line 104 */
 794     if (!(among_var)) return 0;
 795     z->bra = z->c; /* ], line 104 */
 796     switch(among_var) {
 797 	case 0: return 0;
 798 	case 1:
 799 	    {	int ret = r_R2(z);
 800 		if (ret == 0) return 0; /* call R2, line 111 */
 801 		if (ret < 0) return ret;
 802 	    }
 803 	    {	int ret;
 804 		ret = slice_del(z); /* delete, line 111 */
 805 		if (ret < 0) return ret;
 806 	    }
 807 	    break;
 808 	case 2:
 809 	    {	int ret = r_R2(z);
 810 		if (ret == 0) return 0; /* call R2, line 113 */
 811 		if (ret < 0) return ret;
 812 	    }
 813 	    {	int ret;
 814 		ret = slice_del(z); /* delete, line 113 */
 815 		if (ret < 0) return ret;
 816 	    }
 817 	    {	int m = z->l - z->c; (void) m; /* try, line 114 */
 818 		z->ket = z->c; /* [, line 114 */
 819 		if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m; goto lab0; }
 820 		z->bra = z->c; /* ], line 114 */
 821 		{   int ret = r_R2(z);
 822 		    if (ret == 0) { z->c = z->l - m; goto lab0; } /* call R2, line 114 */
 823 		    if (ret < 0) return ret;
 824 		}
 825 		{   int ret;
 826 		    ret = slice_del(z); /* delete, line 114 */
 827 		    if (ret < 0) return ret;
 828 		}
 829 	    lab0:
 830 		;
 831 	    }
 832 	    break;
 833 	case 3:
 834 	    {	int ret = r_R2(z);
 835 		if (ret == 0) return 0; /* call R2, line 117 */
 836 		if (ret < 0) return ret;
 837 	    }
 838 	    {	int ret;
 839 		ret = slice_from_s(z, 3, s_14); /* <-, line 117 */
 840 		if (ret < 0) return ret;
 841 	    }
 842 	    break;
 843 	case 4:
 844 	    {	int ret = r_R2(z);
 845 		if (ret == 0) return 0; /* call R2, line 119 */
 846 		if (ret < 0) return ret;
 847 	    }
 848 	    {	int ret;
 849 		ret = slice_from_s(z, 1, s_15); /* <-, line 119 */
 850 		if (ret < 0) return ret;
 851 	    }
 852 	    break;
 853 	case 5:
 854 	    {	int ret = r_R2(z);
 855 		if (ret == 0) return 0; /* call R2, line 121 */
 856 		if (ret < 0) return ret;
 857 	    }
 858 	    {	int ret;
 859 		ret = slice_from_s(z, 4, s_16); /* <-, line 121 */
 860 		if (ret < 0) return ret;
 861 	    }
 862 	    break;
 863 	case 6:
 864 	    {	int ret = r_RV(z);
 865 		if (ret == 0) return 0; /* call RV, line 123 */
 866 		if (ret < 0) return ret;
 867 	    }
 868 	    {	int ret;
 869 		ret = slice_del(z); /* delete, line 123 */
 870 		if (ret < 0) return ret;
 871 	    }
 872 	    break;
 873 	case 7:
 874 	    {	int ret = r_R1(z);
 875 		if (ret == 0) return 0; /* call R1, line 125 */
 876 		if (ret < 0) return ret;
 877 	    }
 878 	    {	int ret;
 879 		ret = slice_del(z); /* delete, line 125 */
 880 		if (ret < 0) return ret;
 881 	    }
 882 	    {	int m = z->l - z->c; (void) m; /* try, line 126 */
 883 		z->ket = z->c; /* [, line 127 */
 884 		among_var = find_among_b(z, a_4, 4); /* substring, line 127 */
 885 		if (!(among_var)) { z->c = z->l - m; goto lab1; }
 886 		z->bra = z->c; /* ], line 127 */
 887 		{   int ret = r_R2(z);
 888 		    if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 127 */
 889 		    if (ret < 0) return ret;
 890 		}
 891 		{   int ret;
 892 		    ret = slice_del(z); /* delete, line 127 */
 893 		    if (ret < 0) return ret;
 894 		}
 895 		switch(among_var) {
 896 		    case 0: { z->c = z->l - m; goto lab1; }
 897 		    case 1:
 898 			z->ket = z->c; /* [, line 128 */
 899 			if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m; goto lab1; }
 900 			z->bra = z->c; /* ], line 128 */
 901 			{   int ret = r_R2(z);
 902 			    if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 128 */
 903 			    if (ret < 0) return ret;
 904 			}
 905 			{   int ret;
 906 			    ret = slice_del(z); /* delete, line 128 */
 907 			    if (ret < 0) return ret;
 908 			}
 909 			break;
 910 		}
 911 	    lab1:
 912 		;
 913 	    }
 914 	    break;
 915 	case 8:
 916 	    {	int ret = r_R2(z);
 917 		if (ret == 0) return 0; /* call R2, line 134 */
 918 		if (ret < 0) return ret;
 919 	    }
 920 	    {	int ret;
 921 		ret = slice_del(z); /* delete, line 134 */
 922 		if (ret < 0) return ret;
 923 	    }
 924 	    {	int m = z->l - z->c; (void) m; /* try, line 135 */
 925 		z->ket = z->c; /* [, line 136 */
 926 		among_var = find_among_b(z, a_5, 3); /* substring, line 136 */
 927 		if (!(among_var)) { z->c = z->l - m; goto lab2; }
 928 		z->bra = z->c; /* ], line 136 */
 929 		switch(among_var) {
 930 		    case 0: { z->c = z->l - m; goto lab2; }
 931 		    case 1:
 932 			{   int ret = r_R2(z);
 933 			    if (ret == 0) { z->c = z->l - m; goto lab2; } /* call R2, line 137 */
 934 			    if (ret < 0) return ret;
 935 			}
 936 			{   int ret;
 937 			    ret = slice_del(z); /* delete, line 137 */
 938 			    if (ret < 0) return ret;
 939 			}
 940 			break;
 941 		}
 942 	    lab2:
 943 		;
 944 	    }
 945 	    break;
 946 	case 9:
 947 	    {	int ret = r_R2(z);
 948 		if (ret == 0) return 0; /* call R2, line 142 */
 949 		if (ret < 0) return ret;
 950 	    }
 951 	    {	int ret;
 952 		ret = slice_del(z); /* delete, line 142 */
 953 		if (ret < 0) return ret;
 954 	    }
 955 	    {	int m = z->l - z->c; (void) m; /* try, line 143 */
 956 		z->ket = z->c; /* [, line 143 */
 957 		if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m; goto lab3; }
 958 		z->bra = z->c; /* ], line 143 */
 959 		{   int ret = r_R2(z);
 960 		    if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 143 */
 961 		    if (ret < 0) return ret;
 962 		}
 963 		{   int ret;
 964 		    ret = slice_del(z); /* delete, line 143 */
 965 		    if (ret < 0) return ret;
 966 		}
 967 		z->ket = z->c; /* [, line 143 */
 968 		if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m; goto lab3; }
 969 		z->bra = z->c; /* ], line 143 */
 970 		{   int ret = r_R2(z);
 971 		    if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 143 */
 972 		    if (ret < 0) return ret;
 973 		}
 974 		{   int ret;
 975 		    ret = slice_del(z); /* delete, line 143 */
 976 		    if (ret < 0) return ret;
 977 		}
 978 	    lab3:
 979 		;
 980 	    }
 981 	    break;
 982     }
 983     return 1;
 984 }
 985 
 986 static int r_verb_suffix(struct SN_env * z) {
 987     int among_var;
 988     {	int m3; /* setlimit, line 148 */
 989 	int m = z->l - z->c; (void) m;
 990 	if (z->c < z->I[0]) return 0;
 991 	z->c = z->I[0]; /* tomark, line 148 */
 992 	m3 = z->lb; z->lb = z->c;
 993 	z->c = z->l - m;
 994 	z->ket = z->c; /* [, line 149 */
 995 	among_var = find_among_b(z, a_7, 87); /* substring, line 149 */
 996 	if (!(among_var)) { z->lb = m3; return 0; }
 997 	z->bra = z->c; /* ], line 149 */
 998 	switch(among_var) {
 999 	    case 0: { z->lb = m3; return 0; }
1000 	    case 1:
1001 		{   int ret;
1002 		    ret = slice_del(z); /* delete, line 163 */
1003 		    if (ret < 0) return ret;
1004 		}
1005 		break;
1006 	}
1007 	z->lb = m3;
1008     }
1009     return 1;
1010 }
1011 
1012 static int r_vowel_suffix(struct SN_env * z) {
1013     {	int m = z->l - z->c; (void) m; /* try, line 171 */
1014 	z->ket = z->c; /* [, line 172 */
1015 	if (!(in_grouping_b_U(z, g_AEIO, 97, 242))) { z->c = z->l - m; goto lab0; }
1016 	z->bra = z->c; /* ], line 172 */
1017 	{   int ret = r_RV(z);
1018 	    if (ret == 0) { z->c = z->l - m; goto lab0; } /* call RV, line 172 */
1019 	    if (ret < 0) return ret;
1020 	}
1021 	{   int ret;
1022 	    ret = slice_del(z); /* delete, line 172 */
1023 	    if (ret < 0) return ret;
1024 	}
1025 	z->ket = z->c; /* [, line 173 */
1026 	if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m; goto lab0; }
1027 	z->bra = z->c; /* ], line 173 */
1028 	{   int ret = r_RV(z);
1029 	    if (ret == 0) { z->c = z->l - m; goto lab0; } /* call RV, line 173 */
1030 	    if (ret < 0) return ret;
1031 	}
1032 	{   int ret;
1033 	    ret = slice_del(z); /* delete, line 173 */
1034 	    if (ret < 0) return ret;
1035 	}
1036     lab0:
1037 	;
1038     }
1039     {	int m = z->l - z->c; (void) m; /* try, line 175 */
1040 	z->ket = z->c; /* [, line 176 */
1041 	if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m; goto lab1; }
1042 	z->bra = z->c; /* ], line 176 */
1043 	if (!(in_grouping_b_U(z, g_CG, 99, 103))) { z->c = z->l - m; goto lab1; }
1044 	{   int ret = r_RV(z);
1045 	    if (ret == 0) { z->c = z->l - m; goto lab1; } /* call RV, line 176 */
1046 	    if (ret < 0) return ret;
1047 	}
1048 	{   int ret;
1049 	    ret = slice_del(z); /* delete, line 176 */
1050 	    if (ret < 0) return ret;
1051 	}
1052     lab1:
1053 	;
1054     }
1055     return 1;
1056 }
1057 
1058 extern int italian_UTF_8_stem(struct SN_env * z) {
1059     {	int c = z->c; /* do, line 182 */
1060 	{   int ret = r_prelude(z);
1061 	    if (ret == 0) goto lab0; /* call prelude, line 182 */
1062 	    if (ret < 0) return ret;
1063 	}
1064     lab0:
1065 	z->c = c;
1066     }
1067     {	int c = z->c; /* do, line 183 */
1068 	{   int ret = r_mark_regions(z);
1069 	    if (ret == 0) goto lab1; /* call mark_regions, line 183 */
1070 	    if (ret < 0) return ret;
1071 	}
1072     lab1:
1073 	z->c = c;
1074     }
1075     z->lb = z->c; z->c = z->l; /* backwards, line 184 */
1076 
1077     {	int m = z->l - z->c; (void) m; /* do, line 185 */
1078 	{   int ret = r_attached_pronoun(z);
1079 	    if (ret == 0) goto lab2; /* call attached_pronoun, line 185 */
1080 	    if (ret < 0) return ret;
1081 	}
1082     lab2:
1083 	z->c = z->l - m;
1084     }
1085     {	int m = z->l - z->c; (void) m; /* do, line 186 */
1086 	{   int m = z->l - z->c; (void) m; /* or, line 186 */
1087 	    {	int ret = r_standard_suffix(z);
1088 		if (ret == 0) goto lab5; /* call standard_suffix, line 186 */
1089 		if (ret < 0) return ret;
1090 	    }
1091 	    goto lab4;
1092 	lab5:
1093 	    z->c = z->l - m;
1094 	    {	int ret = r_verb_suffix(z);
1095 		if (ret == 0) goto lab3; /* call verb_suffix, line 186 */
1096 		if (ret < 0) return ret;
1097 	    }
1098 	}
1099     lab4:
1100     lab3:
1101 	z->c = z->l - m;
1102     }
1103     {	int m = z->l - z->c; (void) m; /* do, line 187 */
1104 	{   int ret = r_vowel_suffix(z);
1105 	    if (ret == 0) goto lab6; /* call vowel_suffix, line 187 */
1106 	    if (ret < 0) return ret;
1107 	}
1108     lab6:
1109 	z->c = z->l - m;
1110     }
1111     z->c = z->lb;
1112     {	int c = z->c; /* do, line 189 */
1113 	{   int ret = r_postlude(z);
1114 	    if (ret == 0) goto lab7; /* call postlude, line 189 */
1115 	    if (ret < 0) return ret;
1116 	}
1117     lab7:
1118 	z->c = c;
1119     }
1120     return 1;
1121 }
1122 
1123 extern struct SN_env * italian_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
1124 
1125 extern void italian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }