tracker-0.16.2/src/libstemmer/stem_UTF_8_french.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 french_UTF_8_stem(struct SN_env * z);
  20 static int r_un_accent(struct SN_env * z);
  21 static int r_un_double(struct SN_env * z);
  22 static int r_residual_suffix(struct SN_env * z);
  23 static int r_verb_suffix(struct SN_env * z);
  24 static int r_i_verb_suffix(struct SN_env * z);
  25 static int r_standard_suffix(struct SN_env * z);
  26 static int r_R2(struct SN_env * z);
  27 static int r_R1(struct SN_env * z);
  28 static int r_RV(struct SN_env * z);
  29 static int r_mark_regions(struct SN_env * z);
  30 static int r_postlude(struct SN_env * z);
  31 static int r_prelude(struct SN_env * z);
  32 
  33 extern struct SN_env * french_UTF_8_create_env(void);
  34 extern void french_UTF_8_close_env(struct SN_env * z);
  35 
  36 static symbol s_0_1[1] = { 'I' };
  37 static symbol s_0_2[1] = { 'U' };
  38 static symbol s_0_3[1] = { 'Y' };
  39 
  40 static struct among a_0[4] =
  41 {
  42 /*  0 */ { 0, 0, -1, 4, 0},
  43 /*  1 */ { 1, s_0_1, 0, 1, 0},
  44 /*  2 */ { 1, s_0_2, 0, 2, 0},
  45 /*  3 */ { 1, s_0_3, 0, 3, 0}
  46 };
  47 
  48 static symbol s_1_0[3] = { 'i', 'q', 'U' };
  49 static symbol s_1_1[3] = { 'a', 'b', 'l' };
  50 static symbol s_1_2[4] = { 'I', 0xC3, 0xA8, 'r' };
  51 static symbol s_1_3[4] = { 'i', 0xC3, 0xA8, 'r' };
  52 static symbol s_1_4[3] = { 'e', 'u', 's' };
  53 static symbol s_1_5[2] = { 'i', 'v' };
  54 
  55 static struct among a_1[6] =
  56 {
  57 /*  0 */ { 3, s_1_0, -1, 3, 0},
  58 /*  1 */ { 3, s_1_1, -1, 3, 0},
  59 /*  2 */ { 4, s_1_2, -1, 4, 0},
  60 /*  3 */ { 4, s_1_3, -1, 4, 0},
  61 /*  4 */ { 3, s_1_4, -1, 2, 0},
  62 /*  5 */ { 2, s_1_5, -1, 1, 0}
  63 };
  64 
  65 static symbol s_2_0[2] = { 'i', 'c' };
  66 static symbol s_2_1[4] = { 'a', 'b', 'i', 'l' };
  67 static symbol s_2_2[2] = { 'i', 'v' };
  68 
  69 static struct among a_2[3] =
  70 {
  71 /*  0 */ { 2, s_2_0, -1, 2, 0},
  72 /*  1 */ { 4, s_2_1, -1, 1, 0},
  73 /*  2 */ { 2, s_2_2, -1, 3, 0}
  74 };
  75 
  76 static symbol s_3_0[4] = { 'i', 'q', 'U', 'e' };
  77 static symbol s_3_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
  78 static symbol s_3_2[4] = { 'a', 'n', 'c', 'e' };
  79 static symbol s_3_3[4] = { 'e', 'n', 'c', 'e' };
  80 static symbol s_3_4[5] = { 'l', 'o', 'g', 'i', 'e' };
  81 static symbol s_3_5[4] = { 'a', 'b', 'l', 'e' };
  82 static symbol s_3_6[4] = { 'i', 's', 'm', 'e' };
  83 static symbol s_3_7[4] = { 'e', 'u', 's', 'e' };
  84 static symbol s_3_8[4] = { 'i', 's', 't', 'e' };
  85 static symbol s_3_9[3] = { 'i', 'v', 'e' };
  86 static symbol s_3_10[2] = { 'i', 'f' };
  87 static symbol s_3_11[5] = { 'u', 's', 'i', 'o', 'n' };
  88 static symbol s_3_12[5] = { 'a', 't', 'i', 'o', 'n' };
  89 static symbol s_3_13[5] = { 'u', 't', 'i', 'o', 'n' };
  90 static symbol s_3_14[5] = { 'a', 't', 'e', 'u', 'r' };
  91 static symbol s_3_15[5] = { 'i', 'q', 'U', 'e', 's' };
  92 static symbol s_3_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' };
  93 static symbol s_3_17[5] = { 'a', 'n', 'c', 'e', 's' };
  94 static symbol s_3_18[5] = { 'e', 'n', 'c', 'e', 's' };
  95 static symbol s_3_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
  96 static symbol s_3_20[5] = { 'a', 'b', 'l', 'e', 's' };
  97 static symbol s_3_21[5] = { 'i', 's', 'm', 'e', 's' };
  98 static symbol s_3_22[5] = { 'e', 'u', 's', 'e', 's' };
  99 static symbol s_3_23[5] = { 'i', 's', 't', 'e', 's' };
 100 static symbol s_3_24[4] = { 'i', 'v', 'e', 's' };
 101 static symbol s_3_25[3] = { 'i', 'f', 's' };
 102 static symbol s_3_26[6] = { 'u', 's', 'i', 'o', 'n', 's' };
 103 static symbol s_3_27[6] = { 'a', 't', 'i', 'o', 'n', 's' };
 104 static symbol s_3_28[6] = { 'u', 't', 'i', 'o', 'n', 's' };
 105 static symbol s_3_29[6] = { 'a', 't', 'e', 'u', 'r', 's' };
 106 static symbol s_3_30[5] = { 'm', 'e', 'n', 't', 's' };
 107 static symbol s_3_31[6] = { 'e', 'm', 'e', 'n', 't', 's' };
 108 static symbol s_3_32[9] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' };
 109 static symbol s_3_33[5] = { 'i', 't', 0xC3, 0xA9, 's' };
 110 static symbol s_3_34[4] = { 'm', 'e', 'n', 't' };
 111 static symbol s_3_35[5] = { 'e', 'm', 'e', 'n', 't' };
 112 static symbol s_3_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' };
 113 static symbol s_3_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' };
 114 static symbol s_3_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' };
 115 static symbol s_3_39[3] = { 'a', 'u', 'x' };
 116 static symbol s_3_40[4] = { 'e', 'a', 'u', 'x' };
 117 static symbol s_3_41[3] = { 'e', 'u', 'x' };
 118 static symbol s_3_42[4] = { 'i', 't', 0xC3, 0xA9 };
 119 
 120 static struct among a_3[43] =
 121 {
 122 /*  0 */ { 4, s_3_0, -1, 1, 0},
 123 /*  1 */ { 6, s_3_1, -1, 2, 0},
 124 /*  2 */ { 4, s_3_2, -1, 1, 0},
 125 /*  3 */ { 4, s_3_3, -1, 5, 0},
 126 /*  4 */ { 5, s_3_4, -1, 3, 0},
 127 /*  5 */ { 4, s_3_5, -1, 1, 0},
 128 /*  6 */ { 4, s_3_6, -1, 1, 0},
 129 /*  7 */ { 4, s_3_7, -1, 11, 0},
 130 /*  8 */ { 4, s_3_8, -1, 1, 0},
 131 /*  9 */ { 3, s_3_9, -1, 8, 0},
 132 /* 10 */ { 2, s_3_10, -1, 8, 0},
 133 /* 11 */ { 5, s_3_11, -1, 4, 0},
 134 /* 12 */ { 5, s_3_12, -1, 2, 0},
 135 /* 13 */ { 5, s_3_13, -1, 4, 0},
 136 /* 14 */ { 5, s_3_14, -1, 2, 0},
 137 /* 15 */ { 5, s_3_15, -1, 1, 0},
 138 /* 16 */ { 7, s_3_16, -1, 2, 0},
 139 /* 17 */ { 5, s_3_17, -1, 1, 0},
 140 /* 18 */ { 5, s_3_18, -1, 5, 0},
 141 /* 19 */ { 6, s_3_19, -1, 3, 0},
 142 /* 20 */ { 5, s_3_20, -1, 1, 0},
 143 /* 21 */ { 5, s_3_21, -1, 1, 0},
 144 /* 22 */ { 5, s_3_22, -1, 11, 0},
 145 /* 23 */ { 5, s_3_23, -1, 1, 0},
 146 /* 24 */ { 4, s_3_24, -1, 8, 0},
 147 /* 25 */ { 3, s_3_25, -1, 8, 0},
 148 /* 26 */ { 6, s_3_26, -1, 4, 0},
 149 /* 27 */ { 6, s_3_27, -1, 2, 0},
 150 /* 28 */ { 6, s_3_28, -1, 4, 0},
 151 /* 29 */ { 6, s_3_29, -1, 2, 0},
 152 /* 30 */ { 5, s_3_30, -1, 15, 0},
 153 /* 31 */ { 6, s_3_31, 30, 6, 0},
 154 /* 32 */ { 9, s_3_32, 31, 12, 0},
 155 /* 33 */ { 5, s_3_33, -1, 7, 0},
 156 /* 34 */ { 4, s_3_34, -1, 15, 0},
 157 /* 35 */ { 5, s_3_35, 34, 6, 0},
 158 /* 36 */ { 8, s_3_36, 35, 12, 0},
 159 /* 37 */ { 6, s_3_37, 34, 13, 0},
 160 /* 38 */ { 6, s_3_38, 34, 14, 0},
 161 /* 39 */ { 3, s_3_39, -1, 10, 0},
 162 /* 40 */ { 4, s_3_40, 39, 9, 0},
 163 /* 41 */ { 3, s_3_41, -1, 1, 0},
 164 /* 42 */ { 4, s_3_42, -1, 7, 0}
 165 };
 166 
 167 static symbol s_4_0[3] = { 'i', 'r', 'a' };
 168 static symbol s_4_1[2] = { 'i', 'e' };
 169 static symbol s_4_2[4] = { 'i', 's', 's', 'e' };
 170 static symbol s_4_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' };
 171 static symbol s_4_4[1] = { 'i' };
 172 static symbol s_4_5[4] = { 'i', 'r', 'a', 'i' };
 173 static symbol s_4_6[2] = { 'i', 'r' };
 174 static symbol s_4_7[4] = { 'i', 'r', 'a', 's' };
 175 static symbol s_4_8[3] = { 'i', 'e', 's' };
 176 static symbol s_4_9[5] = { 0xC3, 0xAE, 'm', 'e', 's' };
 177 static symbol s_4_10[5] = { 'i', 's', 's', 'e', 's' };
 178 static symbol s_4_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' };
 179 static symbol s_4_12[5] = { 0xC3, 0xAE, 't', 'e', 's' };
 180 static symbol s_4_13[2] = { 'i', 's' };
 181 static symbol s_4_14[5] = { 'i', 'r', 'a', 'i', 's' };
 182 static symbol s_4_15[6] = { 'i', 's', 's', 'a', 'i', 's' };
 183 static symbol s_4_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' };
 184 static symbol s_4_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' };
 185 static symbol s_4_18[5] = { 'i', 'r', 'o', 'n', 's' };
 186 static symbol s_4_19[6] = { 'i', 's', 's', 'o', 'n', 's' };
 187 static symbol s_4_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' };
 188 static symbol s_4_21[2] = { 'i', 't' };
 189 static symbol s_4_22[5] = { 'i', 'r', 'a', 'i', 't' };
 190 static symbol s_4_23[6] = { 'i', 's', 's', 'a', 'i', 't' };
 191 static symbol s_4_24[6] = { 'i', 's', 's', 'a', 'n', 't' };
 192 static symbol s_4_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' };
 193 static symbol s_4_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' };
 194 static symbol s_4_27[5] = { 'i', 'r', 'e', 'n', 't' };
 195 static symbol s_4_28[6] = { 'i', 's', 's', 'e', 'n', 't' };
 196 static symbol s_4_29[5] = { 'i', 'r', 'o', 'n', 't' };
 197 static symbol s_4_30[3] = { 0xC3, 0xAE, 't' };
 198 static symbol s_4_31[5] = { 'i', 'r', 'i', 'e', 'z' };
 199 static symbol s_4_32[6] = { 'i', 's', 's', 'i', 'e', 'z' };
 200 static symbol s_4_33[4] = { 'i', 'r', 'e', 'z' };
 201 static symbol s_4_34[5] = { 'i', 's', 's', 'e', 'z' };
 202 
 203 static struct among a_4[35] =
 204 {
 205 /*  0 */ { 3, s_4_0, -1, 1, 0},
 206 /*  1 */ { 2, s_4_1, -1, 1, 0},
 207 /*  2 */ { 4, s_4_2, -1, 1, 0},
 208 /*  3 */ { 7, s_4_3, -1, 1, 0},
 209 /*  4 */ { 1, s_4_4, -1, 1, 0},
 210 /*  5 */ { 4, s_4_5, 4, 1, 0},
 211 /*  6 */ { 2, s_4_6, -1, 1, 0},
 212 /*  7 */ { 4, s_4_7, -1, 1, 0},
 213 /*  8 */ { 3, s_4_8, -1, 1, 0},
 214 /*  9 */ { 5, s_4_9, -1, 1, 0},
 215 /* 10 */ { 5, s_4_10, -1, 1, 0},
 216 /* 11 */ { 8, s_4_11, -1, 1, 0},
 217 /* 12 */ { 5, s_4_12, -1, 1, 0},
 218 /* 13 */ { 2, s_4_13, -1, 1, 0},
 219 /* 14 */ { 5, s_4_14, 13, 1, 0},
 220 /* 15 */ { 6, s_4_15, 13, 1, 0},
 221 /* 16 */ { 6, s_4_16, -1, 1, 0},
 222 /* 17 */ { 7, s_4_17, -1, 1, 0},
 223 /* 18 */ { 5, s_4_18, -1, 1, 0},
 224 /* 19 */ { 6, s_4_19, -1, 1, 0},
 225 /* 20 */ { 7, s_4_20, -1, 1, 0},
 226 /* 21 */ { 2, s_4_21, -1, 1, 0},
 227 /* 22 */ { 5, s_4_22, 21, 1, 0},
 228 /* 23 */ { 6, s_4_23, 21, 1, 0},
 229 /* 24 */ { 6, s_4_24, -1, 1, 0},
 230 /* 25 */ { 7, s_4_25, -1, 1, 0},
 231 /* 26 */ { 8, s_4_26, -1, 1, 0},
 232 /* 27 */ { 5, s_4_27, -1, 1, 0},
 233 /* 28 */ { 6, s_4_28, -1, 1, 0},
 234 /* 29 */ { 5, s_4_29, -1, 1, 0},
 235 /* 30 */ { 3, s_4_30, -1, 1, 0},
 236 /* 31 */ { 5, s_4_31, -1, 1, 0},
 237 /* 32 */ { 6, s_4_32, -1, 1, 0},
 238 /* 33 */ { 4, s_4_33, -1, 1, 0},
 239 /* 34 */ { 5, s_4_34, -1, 1, 0}
 240 };
 241 
 242 static symbol s_5_0[1] = { 'a' };
 243 static symbol s_5_1[3] = { 'e', 'r', 'a' };
 244 static symbol s_5_2[4] = { 'a', 's', 's', 'e' };
 245 static symbol s_5_3[4] = { 'a', 'n', 't', 'e' };
 246 static symbol s_5_4[3] = { 0xC3, 0xA9, 'e' };
 247 static symbol s_5_5[2] = { 'a', 'i' };
 248 static symbol s_5_6[4] = { 'e', 'r', 'a', 'i' };
 249 static symbol s_5_7[2] = { 'e', 'r' };
 250 static symbol s_5_8[2] = { 'a', 's' };
 251 static symbol s_5_9[4] = { 'e', 'r', 'a', 's' };
 252 static symbol s_5_10[5] = { 0xC3, 0xA2, 'm', 'e', 's' };
 253 static symbol s_5_11[5] = { 'a', 's', 's', 'e', 's' };
 254 static symbol s_5_12[5] = { 'a', 'n', 't', 'e', 's' };
 255 static symbol s_5_13[5] = { 0xC3, 0xA2, 't', 'e', 's' };
 256 static symbol s_5_14[4] = { 0xC3, 0xA9, 'e', 's' };
 257 static symbol s_5_15[3] = { 'a', 'i', 's' };
 258 static symbol s_5_16[5] = { 'e', 'r', 'a', 'i', 's' };
 259 static symbol s_5_17[4] = { 'i', 'o', 'n', 's' };
 260 static symbol s_5_18[6] = { 'e', 'r', 'i', 'o', 'n', 's' };
 261 static symbol s_5_19[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' };
 262 static symbol s_5_20[5] = { 'e', 'r', 'o', 'n', 's' };
 263 static symbol s_5_21[4] = { 'a', 'n', 't', 's' };
 264 static symbol s_5_22[3] = { 0xC3, 0xA9, 's' };
 265 static symbol s_5_23[3] = { 'a', 'i', 't' };
 266 static symbol s_5_24[5] = { 'e', 'r', 'a', 'i', 't' };
 267 static symbol s_5_25[3] = { 'a', 'n', 't' };
 268 static symbol s_5_26[5] = { 'a', 'I', 'e', 'n', 't' };
 269 static symbol s_5_27[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' };
 270 static symbol s_5_28[6] = { 0xC3, 0xA8, 'r', 'e', 'n', 't' };
 271 static symbol s_5_29[6] = { 'a', 's', 's', 'e', 'n', 't' };
 272 static symbol s_5_30[5] = { 'e', 'r', 'o', 'n', 't' };
 273 static symbol s_5_31[3] = { 0xC3, 0xA2, 't' };
 274 static symbol s_5_32[2] = { 'e', 'z' };
 275 static symbol s_5_33[3] = { 'i', 'e', 'z' };
 276 static symbol s_5_34[5] = { 'e', 'r', 'i', 'e', 'z' };
 277 static symbol s_5_35[6] = { 'a', 's', 's', 'i', 'e', 'z' };
 278 static symbol s_5_36[4] = { 'e', 'r', 'e', 'z' };
 279 static symbol s_5_37[2] = { 0xC3, 0xA9 };
 280 
 281 static struct among a_5[38] =
 282 {
 283 /*  0 */ { 1, s_5_0, -1, 3, 0},
 284 /*  1 */ { 3, s_5_1, 0, 2, 0},
 285 /*  2 */ { 4, s_5_2, -1, 3, 0},
 286 /*  3 */ { 4, s_5_3, -1, 3, 0},
 287 /*  4 */ { 3, s_5_4, -1, 2, 0},
 288 /*  5 */ { 2, s_5_5, -1, 3, 0},
 289 /*  6 */ { 4, s_5_6, 5, 2, 0},
 290 /*  7 */ { 2, s_5_7, -1, 2, 0},
 291 /*  8 */ { 2, s_5_8, -1, 3, 0},
 292 /*  9 */ { 4, s_5_9, 8, 2, 0},
 293 /* 10 */ { 5, s_5_10, -1, 3, 0},
 294 /* 11 */ { 5, s_5_11, -1, 3, 0},
 295 /* 12 */ { 5, s_5_12, -1, 3, 0},
 296 /* 13 */ { 5, s_5_13, -1, 3, 0},
 297 /* 14 */ { 4, s_5_14, -1, 2, 0},
 298 /* 15 */ { 3, s_5_15, -1, 3, 0},
 299 /* 16 */ { 5, s_5_16, 15, 2, 0},
 300 /* 17 */ { 4, s_5_17, -1, 1, 0},
 301 /* 18 */ { 6, s_5_18, 17, 2, 0},
 302 /* 19 */ { 7, s_5_19, 17, 3, 0},
 303 /* 20 */ { 5, s_5_20, -1, 2, 0},
 304 /* 21 */ { 4, s_5_21, -1, 3, 0},
 305 /* 22 */ { 3, s_5_22, -1, 2, 0},
 306 /* 23 */ { 3, s_5_23, -1, 3, 0},
 307 /* 24 */ { 5, s_5_24, 23, 2, 0},
 308 /* 25 */ { 3, s_5_25, -1, 3, 0},
 309 /* 26 */ { 5, s_5_26, -1, 3, 0},
 310 /* 27 */ { 7, s_5_27, 26, 2, 0},
 311 /* 28 */ { 6, s_5_28, -1, 2, 0},
 312 /* 29 */ { 6, s_5_29, -1, 3, 0},
 313 /* 30 */ { 5, s_5_30, -1, 2, 0},
 314 /* 31 */ { 3, s_5_31, -1, 3, 0},
 315 /* 32 */ { 2, s_5_32, -1, 2, 0},
 316 /* 33 */ { 3, s_5_33, 32, 2, 0},
 317 /* 34 */ { 5, s_5_34, 33, 2, 0},
 318 /* 35 */ { 6, s_5_35, 33, 3, 0},
 319 /* 36 */ { 4, s_5_36, 32, 2, 0},
 320 /* 37 */ { 2, s_5_37, -1, 2, 0}
 321 };
 322 
 323 static symbol s_6_0[1] = { 'e' };
 324 static symbol s_6_1[5] = { 'I', 0xC3, 0xA8, 'r', 'e' };
 325 static symbol s_6_2[5] = { 'i', 0xC3, 0xA8, 'r', 'e' };
 326 static symbol s_6_3[3] = { 'i', 'o', 'n' };
 327 static symbol s_6_4[3] = { 'I', 'e', 'r' };
 328 static symbol s_6_5[3] = { 'i', 'e', 'r' };
 329 static symbol s_6_6[2] = { 0xC3, 0xAB };
 330 
 331 static struct among a_6[7] =
 332 {
 333 /*  0 */ { 1, s_6_0, -1, 3, 0},
 334 /*  1 */ { 5, s_6_1, 0, 2, 0},
 335 /*  2 */ { 5, s_6_2, 0, 2, 0},
 336 /*  3 */ { 3, s_6_3, -1, 1, 0},
 337 /*  4 */ { 3, s_6_4, -1, 2, 0},
 338 /*  5 */ { 3, s_6_5, -1, 2, 0},
 339 /*  6 */ { 2, s_6_6, -1, 4, 0}
 340 };
 341 
 342 static symbol s_7_0[3] = { 'e', 'l', 'l' };
 343 static symbol s_7_1[4] = { 'e', 'i', 'l', 'l' };
 344 static symbol s_7_2[3] = { 'e', 'n', 'n' };
 345 static symbol s_7_3[3] = { 'o', 'n', 'n' };
 346 static symbol s_7_4[3] = { 'e', 't', 't' };
 347 
 348 static struct among a_7[5] =
 349 {
 350 /*  0 */ { 3, s_7_0, -1, -1, 0},
 351 /*  1 */ { 4, s_7_1, -1, -1, 0},
 352 /*  2 */ { 3, s_7_2, -1, -1, 0},
 353 /*  3 */ { 3, s_7_3, -1, -1, 0},
 354 /*  4 */ { 3, s_7_4, -1, -1, 0}
 355 };
 356 
 357 static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
 358 
 359 static unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
 360 
 361 static symbol s_0[] = { 'u' };
 362 static symbol s_1[] = { 'U' };
 363 static symbol s_2[] = { 'i' };
 364 static symbol s_3[] = { 'I' };
 365 static symbol s_4[] = { 'y' };
 366 static symbol s_5[] = { 'Y' };
 367 static symbol s_6[] = { 'y' };
 368 static symbol s_7[] = { 'Y' };
 369 static symbol s_8[] = { 'q' };
 370 static symbol s_9[] = { 'u' };
 371 static symbol s_10[] = { 'U' };
 372 static symbol s_11[] = { 'i' };
 373 static symbol s_12[] = { 'u' };
 374 static symbol s_13[] = { 'y' };
 375 static symbol s_14[] = { 'i', 'c' };
 376 static symbol s_15[] = { 'i', 'q', 'U' };
 377 static symbol s_16[] = { 'l', 'o', 'g' };
 378 static symbol s_17[] = { 'u' };
 379 static symbol s_18[] = { 'e', 'n', 't' };
 380 static symbol s_19[] = { 'a', 't' };
 381 static symbol s_20[] = { 'e', 'u', 'x' };
 382 static symbol s_21[] = { 'i' };
 383 static symbol s_22[] = { 'a', 'b', 'l' };
 384 static symbol s_23[] = { 'i', 'q', 'U' };
 385 static symbol s_24[] = { 'a', 't' };
 386 static symbol s_25[] = { 'i', 'c' };
 387 static symbol s_26[] = { 'i', 'q', 'U' };
 388 static symbol s_27[] = { 'e', 'a', 'u' };
 389 static symbol s_28[] = { 'a', 'l' };
 390 static symbol s_29[] = { 'e', 'u', 'x' };
 391 static symbol s_30[] = { 'a', 'n', 't' };
 392 static symbol s_31[] = { 'e', 'n', 't' };
 393 static symbol s_32[] = { 'e' };
 394 static symbol s_33[] = { 's' };
 395 static symbol s_34[] = { 's' };
 396 static symbol s_35[] = { 't' };
 397 static symbol s_36[] = { 'i' };
 398 static symbol s_37[] = { 'g', 'u' };
 399 static symbol s_38[] = { 0xC3, 0xA9 };
 400 static symbol s_39[] = { 0xC3, 0xA8 };
 401 static symbol s_40[] = { 'e' };
 402 static symbol s_41[] = { 'Y' };
 403 static symbol s_42[] = { 'i' };
 404 static symbol s_43[] = { 0xC3, 0xA7 };
 405 static symbol s_44[] = { 'c' };
 406 
 407 static int r_prelude(struct SN_env * z) {
 408     while(1) { /* repeat, line 38 */
 409 	int c = z->c;
 410 	while(1) { /* goto, line 38 */
 411 	    int c = z->c;
 412 	    {	int c = z->c; /* or, line 44 */
 413 		if (!(in_grouping_U(z, g_v, 97, 251))) goto lab3;
 414 		z->bra = z->c; /* [, line 40 */
 415 		{   int c = z->c; /* or, line 40 */
 416 		    if (!(eq_s(z, 1, s_0))) goto lab5;
 417 		    z->ket = z->c; /* ], line 40 */
 418 		    if (!(in_grouping_U(z, g_v, 97, 251))) goto lab5;
 419 		    {	int ret;
 420 			ret = slice_from_s(z, 1, s_1); /* <-, line 40 */
 421 			if (ret < 0) return ret;
 422 		    }
 423 		    goto lab4;
 424 		lab5:
 425 		    z->c = c;
 426 		    if (!(eq_s(z, 1, s_2))) goto lab6;
 427 		    z->ket = z->c; /* ], line 41 */
 428 		    if (!(in_grouping_U(z, g_v, 97, 251))) goto lab6;
 429 		    {	int ret;
 430 			ret = slice_from_s(z, 1, s_3); /* <-, line 41 */
 431 			if (ret < 0) return ret;
 432 		    }
 433 		    goto lab4;
 434 		lab6:
 435 		    z->c = c;
 436 		    if (!(eq_s(z, 1, s_4))) goto lab3;
 437 		    z->ket = z->c; /* ], line 42 */
 438 		    {	int ret;
 439 			ret = slice_from_s(z, 1, s_5); /* <-, line 42 */
 440 			if (ret < 0) return ret;
 441 		    }
 442 		}
 443 	    lab4:
 444 		goto lab2;
 445 	    lab3:
 446 		z->c = c;
 447 		z->bra = z->c; /* [, line 45 */
 448 		if (!(eq_s(z, 1, s_6))) goto lab7;
 449 		z->ket = z->c; /* ], line 45 */
 450 		if (!(in_grouping_U(z, g_v, 97, 251))) goto lab7;
 451 		{   int ret;
 452 		    ret = slice_from_s(z, 1, s_7); /* <-, line 45 */
 453 		    if (ret < 0) return ret;
 454 		}
 455 		goto lab2;
 456 	    lab7:
 457 		z->c = c;
 458 		if (!(eq_s(z, 1, s_8))) goto lab1;
 459 		z->bra = z->c; /* [, line 47 */
 460 		if (!(eq_s(z, 1, s_9))) goto lab1;
 461 		z->ket = z->c; /* ], line 47 */
 462 		{   int ret;
 463 		    ret = slice_from_s(z, 1, s_10); /* <-, line 47 */
 464 		    if (ret < 0) return ret;
 465 		}
 466 	    }
 467 	lab2:
 468 	    z->c = c;
 469 	    break;
 470 	lab1:
 471 	    z->c = c;
 472 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 473 		if (c < 0) goto lab0;
 474 		z->c = c; /* goto, line 38 */
 475 	    }
 476 	}
 477 	continue;
 478     lab0:
 479 	z->c = c;
 480 	break;
 481     }
 482     return 1;
 483 }
 484 
 485 static int r_mark_regions(struct SN_env * z) {
 486     z->I[0] = z->l;
 487     z->I[1] = z->l;
 488     z->I[2] = z->l;
 489     {	int c = z->c; /* do, line 56 */
 490 	{   int c = z->c; /* or, line 57 */
 491 	    if (!(in_grouping_U(z, g_v, 97, 251))) goto lab2;
 492 	    if (!(in_grouping_U(z, g_v, 97, 251))) goto lab2;
 493 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 494 		if (c < 0) goto lab2;
 495 		z->c = c; /* next, line 57 */
 496 	    }
 497 	    goto lab1;
 498 	lab2:
 499 	    z->c = c;
 500 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 501 		if (c < 0) goto lab0;
 502 		z->c = c; /* next, line 57 */
 503 	    }
 504 	    while(1) { /* gopast, line 57 */
 505 		if (!(in_grouping_U(z, g_v, 97, 251))) goto lab3;
 506 		break;
 507 	    lab3:
 508 		{   int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 509 		    if (c < 0) goto lab0;
 510 		    z->c = c; /* gopast, line 57 */
 511 		}
 512 	    }
 513 	}
 514     lab1:
 515 	z->I[0] = z->c; /* setmark pV, line 58 */
 516     lab0:
 517 	z->c = c;
 518     }
 519     {	int c = z->c; /* do, line 60 */
 520 	while(1) { /* gopast, line 61 */
 521 	    if (!(in_grouping_U(z, g_v, 97, 251))) goto lab5;
 522 	    break;
 523 	lab5:
 524 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 525 		if (c < 0) goto lab4;
 526 		z->c = c; /* gopast, line 61 */
 527 	    }
 528 	}
 529 	while(1) { /* gopast, line 61 */
 530 	    if (!(out_grouping_U(z, g_v, 97, 251))) goto lab6;
 531 	    break;
 532 	lab6:
 533 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 534 		if (c < 0) goto lab4;
 535 		z->c = c; /* gopast, line 61 */
 536 	    }
 537 	}
 538 	z->I[1] = z->c; /* setmark p1, line 61 */
 539 	while(1) { /* gopast, line 62 */
 540 	    if (!(in_grouping_U(z, g_v, 97, 251))) goto lab7;
 541 	    break;
 542 	lab7:
 543 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 544 		if (c < 0) goto lab4;
 545 		z->c = c; /* gopast, line 62 */
 546 	    }
 547 	}
 548 	while(1) { /* gopast, line 62 */
 549 	    if (!(out_grouping_U(z, g_v, 97, 251))) goto lab8;
 550 	    break;
 551 	lab8:
 552 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 553 		if (c < 0) goto lab4;
 554 		z->c = c; /* gopast, line 62 */
 555 	    }
 556 	}
 557 	z->I[2] = z->c; /* setmark p2, line 62 */
 558     lab4:
 559 	z->c = c;
 560     }
 561     return 1;
 562 }
 563 
 564 static int r_postlude(struct SN_env * z) {
 565     int among_var;
 566     while(1) { /* repeat, line 66 */
 567 	int c = z->c;
 568 	z->bra = z->c; /* [, line 68 */
 569 	among_var = find_among(z, a_0, 4); /* substring, line 68 */
 570 	if (!(among_var)) goto lab0;
 571 	z->ket = z->c; /* ], line 68 */
 572 	switch(among_var) {
 573 	    case 0: goto lab0;
 574 	    case 1:
 575 		{   int ret;
 576 		    ret = slice_from_s(z, 1, s_11); /* <-, line 69 */
 577 		    if (ret < 0) return ret;
 578 		}
 579 		break;
 580 	    case 2:
 581 		{   int ret;
 582 		    ret = slice_from_s(z, 1, s_12); /* <-, line 70 */
 583 		    if (ret < 0) return ret;
 584 		}
 585 		break;
 586 	    case 3:
 587 		{   int ret;
 588 		    ret = slice_from_s(z, 1, s_13); /* <-, line 71 */
 589 		    if (ret < 0) return ret;
 590 		}
 591 		break;
 592 	    case 4:
 593 		{   int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 594 		    if (c < 0) goto lab0;
 595 		    z->c = c; /* next, line 72 */
 596 		}
 597 		break;
 598 	}
 599 	continue;
 600     lab0:
 601 	z->c = c;
 602 	break;
 603     }
 604     return 1;
 605 }
 606 
 607 static int r_RV(struct SN_env * z) {
 608     if (!(z->I[0] <= z->c)) return 0;
 609     return 1;
 610 }
 611 
 612 static int r_R1(struct SN_env * z) {
 613     if (!(z->I[1] <= z->c)) return 0;
 614     return 1;
 615 }
 616 
 617 static int r_R2(struct SN_env * z) {
 618     if (!(z->I[2] <= z->c)) return 0;
 619     return 1;
 620 }
 621 
 622 static int r_standard_suffix(struct SN_env * z) {
 623     int among_var;
 624     z->ket = z->c; /* [, line 83 */
 625     among_var = find_among_b(z, a_3, 43); /* substring, line 83 */
 626     if (!(among_var)) return 0;
 627     z->bra = z->c; /* ], line 83 */
 628     switch(among_var) {
 629 	case 0: return 0;
 630 	case 1:
 631 	    {	int ret = r_R2(z);
 632 		if (ret == 0) return 0; /* call R2, line 87 */
 633 		if (ret < 0) return ret;
 634 	    }
 635 	    {	int ret;
 636 		ret = slice_del(z); /* delete, line 87 */
 637 		if (ret < 0) return ret;
 638 	    }
 639 	    break;
 640 	case 2:
 641 	    {	int ret = r_R2(z);
 642 		if (ret == 0) return 0; /* call R2, line 90 */
 643 		if (ret < 0) return ret;
 644 	    }
 645 	    {	int ret;
 646 		ret = slice_del(z); /* delete, line 90 */
 647 		if (ret < 0) return ret;
 648 	    }
 649 	    {	int m = z->l - z->c; (void) m; /* try, line 91 */
 650 		z->ket = z->c; /* [, line 91 */
 651 		if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m; goto lab0; }
 652 		z->bra = z->c; /* ], line 91 */
 653 		{   int m = z->l - z->c; (void) m; /* or, line 91 */
 654 		    {	int ret = r_R2(z);
 655 			if (ret == 0) goto lab2; /* call R2, line 91 */
 656 			if (ret < 0) return ret;
 657 		    }
 658 		    {	int ret;
 659 			ret = slice_del(z); /* delete, line 91 */
 660 			if (ret < 0) return ret;
 661 		    }
 662 		    goto lab1;
 663 		lab2:
 664 		    z->c = z->l - m;
 665 		    {	int ret;
 666 			ret = slice_from_s(z, 3, s_15); /* <-, line 91 */
 667 			if (ret < 0) return ret;
 668 		    }
 669 		}
 670 	    lab1:
 671 	    lab0:
 672 		;
 673 	    }
 674 	    break;
 675 	case 3:
 676 	    {	int ret = r_R2(z);
 677 		if (ret == 0) return 0; /* call R2, line 95 */
 678 		if (ret < 0) return ret;
 679 	    }
 680 	    {	int ret;
 681 		ret = slice_from_s(z, 3, s_16); /* <-, line 95 */
 682 		if (ret < 0) return ret;
 683 	    }
 684 	    break;
 685 	case 4:
 686 	    {	int ret = r_R2(z);
 687 		if (ret == 0) return 0; /* call R2, line 98 */
 688 		if (ret < 0) return ret;
 689 	    }
 690 	    {	int ret;
 691 		ret = slice_from_s(z, 1, s_17); /* <-, line 98 */
 692 		if (ret < 0) return ret;
 693 	    }
 694 	    break;
 695 	case 5:
 696 	    {	int ret = r_R2(z);
 697 		if (ret == 0) return 0; /* call R2, line 101 */
 698 		if (ret < 0) return ret;
 699 	    }
 700 	    {	int ret;
 701 		ret = slice_from_s(z, 3, s_18); /* <-, line 101 */
 702 		if (ret < 0) return ret;
 703 	    }
 704 	    break;
 705 	case 6:
 706 	    {	int ret = r_RV(z);
 707 		if (ret == 0) return 0; /* call RV, line 105 */
 708 		if (ret < 0) return ret;
 709 	    }
 710 	    {	int ret;
 711 		ret = slice_del(z); /* delete, line 105 */
 712 		if (ret < 0) return ret;
 713 	    }
 714 	    {	int m = z->l - z->c; (void) m; /* try, line 106 */
 715 		z->ket = z->c; /* [, line 107 */
 716 		among_var = find_among_b(z, a_1, 6); /* substring, line 107 */
 717 		if (!(among_var)) { z->c = z->l - m; goto lab3; }
 718 		z->bra = z->c; /* ], line 107 */
 719 		switch(among_var) {
 720 		    case 0: { z->c = z->l - m; goto lab3; }
 721 		    case 1:
 722 			{   int ret = r_R2(z);
 723 			    if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 108 */
 724 			    if (ret < 0) return ret;
 725 			}
 726 			{   int ret;
 727 			    ret = slice_del(z); /* delete, line 108 */
 728 			    if (ret < 0) return ret;
 729 			}
 730 			z->ket = z->c; /* [, line 108 */
 731 			if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m; goto lab3; }
 732 			z->bra = z->c; /* ], line 108 */
 733 			{   int ret = r_R2(z);
 734 			    if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 108 */
 735 			    if (ret < 0) return ret;
 736 			}
 737 			{   int ret;
 738 			    ret = slice_del(z); /* delete, line 108 */
 739 			    if (ret < 0) return ret;
 740 			}
 741 			break;
 742 		    case 2:
 743 			{   int m = z->l - z->c; (void) m; /* or, line 109 */
 744 			    {	int ret = r_R2(z);
 745 				if (ret == 0) goto lab5; /* call R2, line 109 */
 746 				if (ret < 0) return ret;
 747 			    }
 748 			    {	int ret;
 749 				ret = slice_del(z); /* delete, line 109 */
 750 				if (ret < 0) return ret;
 751 			    }
 752 			    goto lab4;
 753 			lab5:
 754 			    z->c = z->l - m;
 755 			    {	int ret = r_R1(z);
 756 				if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R1, line 109 */
 757 				if (ret < 0) return ret;
 758 			    }
 759 			    {	int ret;
 760 				ret = slice_from_s(z, 3, s_20); /* <-, line 109 */
 761 				if (ret < 0) return ret;
 762 			    }
 763 			}
 764 		    lab4:
 765 			break;
 766 		    case 3:
 767 			{   int ret = r_R2(z);
 768 			    if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 111 */
 769 			    if (ret < 0) return ret;
 770 			}
 771 			{   int ret;
 772 			    ret = slice_del(z); /* delete, line 111 */
 773 			    if (ret < 0) return ret;
 774 			}
 775 			break;
 776 		    case 4:
 777 			{   int ret = r_RV(z);
 778 			    if (ret == 0) { z->c = z->l - m; goto lab3; } /* call RV, line 113 */
 779 			    if (ret < 0) return ret;
 780 			}
 781 			{   int ret;
 782 			    ret = slice_from_s(z, 1, s_21); /* <-, line 113 */
 783 			    if (ret < 0) return ret;
 784 			}
 785 			break;
 786 		}
 787 	    lab3:
 788 		;
 789 	    }
 790 	    break;
 791 	case 7:
 792 	    {	int ret = r_R2(z);
 793 		if (ret == 0) return 0; /* call R2, line 120 */
 794 		if (ret < 0) return ret;
 795 	    }
 796 	    {	int ret;
 797 		ret = slice_del(z); /* delete, line 120 */
 798 		if (ret < 0) return ret;
 799 	    }
 800 	    {	int m = z->l - z->c; (void) m; /* try, line 121 */
 801 		z->ket = z->c; /* [, line 122 */
 802 		among_var = find_among_b(z, a_2, 3); /* substring, line 122 */
 803 		if (!(among_var)) { z->c = z->l - m; goto lab6; }
 804 		z->bra = z->c; /* ], line 122 */
 805 		switch(among_var) {
 806 		    case 0: { z->c = z->l - m; goto lab6; }
 807 		    case 1:
 808 			{   int m = z->l - z->c; (void) m; /* or, line 123 */
 809 			    {	int ret = r_R2(z);
 810 				if (ret == 0) goto lab8; /* call R2, line 123 */
 811 				if (ret < 0) return ret;
 812 			    }
 813 			    {	int ret;
 814 				ret = slice_del(z); /* delete, line 123 */
 815 				if (ret < 0) return ret;
 816 			    }
 817 			    goto lab7;
 818 			lab8:
 819 			    z->c = z->l - m;
 820 			    {	int ret;
 821 				ret = slice_from_s(z, 3, s_22); /* <-, line 123 */
 822 				if (ret < 0) return ret;
 823 			    }
 824 			}
 825 		    lab7:
 826 			break;
 827 		    case 2:
 828 			{   int m = z->l - z->c; (void) m; /* or, line 124 */
 829 			    {	int ret = r_R2(z);
 830 				if (ret == 0) goto lab10; /* call R2, line 124 */
 831 				if (ret < 0) return ret;
 832 			    }
 833 			    {	int ret;
 834 				ret = slice_del(z); /* delete, line 124 */
 835 				if (ret < 0) return ret;
 836 			    }
 837 			    goto lab9;
 838 			lab10:
 839 			    z->c = z->l - m;
 840 			    {	int ret;
 841 				ret = slice_from_s(z, 3, s_23); /* <-, line 124 */
 842 				if (ret < 0) return ret;
 843 			    }
 844 			}
 845 		    lab9:
 846 			break;
 847 		    case 3:
 848 			{   int ret = r_R2(z);
 849 			    if (ret == 0) { z->c = z->l - m; goto lab6; } /* call R2, line 125 */
 850 			    if (ret < 0) return ret;
 851 			}
 852 			{   int ret;
 853 			    ret = slice_del(z); /* delete, line 125 */
 854 			    if (ret < 0) return ret;
 855 			}
 856 			break;
 857 		}
 858 	    lab6:
 859 		;
 860 	    }
 861 	    break;
 862 	case 8:
 863 	    {	int ret = r_R2(z);
 864 		if (ret == 0) return 0; /* call R2, line 132 */
 865 		if (ret < 0) return ret;
 866 	    }
 867 	    {	int ret;
 868 		ret = slice_del(z); /* delete, line 132 */
 869 		if (ret < 0) return ret;
 870 	    }
 871 	    {	int m = z->l - z->c; (void) m; /* try, line 133 */
 872 		z->ket = z->c; /* [, line 133 */
 873 		if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m; goto lab11; }
 874 		z->bra = z->c; /* ], line 133 */
 875 		{   int ret = r_R2(z);
 876 		    if (ret == 0) { z->c = z->l - m; goto lab11; } /* call R2, line 133 */
 877 		    if (ret < 0) return ret;
 878 		}
 879 		{   int ret;
 880 		    ret = slice_del(z); /* delete, line 133 */
 881 		    if (ret < 0) return ret;
 882 		}
 883 		z->ket = z->c; /* [, line 133 */
 884 		if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m; goto lab11; }
 885 		z->bra = z->c; /* ], line 133 */
 886 		{   int m = z->l - z->c; (void) m; /* or, line 133 */
 887 		    {	int ret = r_R2(z);
 888 			if (ret == 0) goto lab13; /* call R2, line 133 */
 889 			if (ret < 0) return ret;
 890 		    }
 891 		    {	int ret;
 892 			ret = slice_del(z); /* delete, line 133 */
 893 			if (ret < 0) return ret;
 894 		    }
 895 		    goto lab12;
 896 		lab13:
 897 		    z->c = z->l - m;
 898 		    {	int ret;
 899 			ret = slice_from_s(z, 3, s_26); /* <-, line 133 */
 900 			if (ret < 0) return ret;
 901 		    }
 902 		}
 903 	    lab12:
 904 	    lab11:
 905 		;
 906 	    }
 907 	    break;
 908 	case 9:
 909 	    {	int ret;
 910 		ret = slice_from_s(z, 3, s_27); /* <-, line 135 */
 911 		if (ret < 0) return ret;
 912 	    }
 913 	    break;
 914 	case 10:
 915 	    {	int ret = r_R1(z);
 916 		if (ret == 0) return 0; /* call R1, line 136 */
 917 		if (ret < 0) return ret;
 918 	    }
 919 	    {	int ret;
 920 		ret = slice_from_s(z, 2, s_28); /* <-, line 136 */
 921 		if (ret < 0) return ret;
 922 	    }
 923 	    break;
 924 	case 11:
 925 	    {	int m = z->l - z->c; (void) m; /* or, line 138 */
 926 		{   int ret = r_R2(z);
 927 		    if (ret == 0) goto lab15; /* call R2, line 138 */
 928 		    if (ret < 0) return ret;
 929 		}
 930 		{   int ret;
 931 		    ret = slice_del(z); /* delete, line 138 */
 932 		    if (ret < 0) return ret;
 933 		}
 934 		goto lab14;
 935 	    lab15:
 936 		z->c = z->l - m;
 937 		{   int ret = r_R1(z);
 938 		    if (ret == 0) return 0; /* call R1, line 138 */
 939 		    if (ret < 0) return ret;
 940 		}
 941 		{   int ret;
 942 		    ret = slice_from_s(z, 3, s_29); /* <-, line 138 */
 943 		    if (ret < 0) return ret;
 944 		}
 945 	    }
 946 	lab14:
 947 	    break;
 948 	case 12:
 949 	    {	int ret = r_R1(z);
 950 		if (ret == 0) return 0; /* call R1, line 141 */
 951 		if (ret < 0) return ret;
 952 	    }
 953 	    if (!(out_grouping_b_U(z, g_v, 97, 251))) return 0;
 954 	    {	int ret;
 955 		ret = slice_del(z); /* delete, line 141 */
 956 		if (ret < 0) return ret;
 957 	    }
 958 	    break;
 959 	case 13:
 960 	    {	int ret = r_RV(z);
 961 		if (ret == 0) return 0; /* call RV, line 146 */
 962 		if (ret < 0) return ret;
 963 	    }
 964 	    {	int ret;
 965 		ret = slice_from_s(z, 3, s_30); /* <-, line 146 */
 966 		if (ret < 0) return ret;
 967 	    }
 968 	    return 0; /* fail, line 146 */
 969 	    break;
 970 	case 14:
 971 	    {	int ret = r_RV(z);
 972 		if (ret == 0) return 0; /* call RV, line 147 */
 973 		if (ret < 0) return ret;
 974 	    }
 975 	    {	int ret;
 976 		ret = slice_from_s(z, 3, s_31); /* <-, line 147 */
 977 		if (ret < 0) return ret;
 978 	    }
 979 	    return 0; /* fail, line 147 */
 980 	    break;
 981 	case 15:
 982 	    {	int m_test = z->l - z->c; /* test, line 149 */
 983 		if (!(in_grouping_b_U(z, g_v, 97, 251))) return 0;
 984 		{   int ret = r_RV(z);
 985 		    if (ret == 0) return 0; /* call RV, line 149 */
 986 		    if (ret < 0) return ret;
 987 		}
 988 		z->c = z->l - m_test;
 989 	    }
 990 	    {	int ret;
 991 		ret = slice_del(z); /* delete, line 149 */
 992 		if (ret < 0) return ret;
 993 	    }
 994 	    return 0; /* fail, line 149 */
 995 	    break;
 996     }
 997     return 1;
 998 }
 999 
1000 static int r_i_verb_suffix(struct SN_env * z) {
1001     int among_var;
1002     {	int m3; /* setlimit, line 154 */
1003 	int m = z->l - z->c; (void) m;
1004 	if (z->c < z->I[0]) return 0;
1005 	z->c = z->I[0]; /* tomark, line 154 */
1006 	m3 = z->lb; z->lb = z->c;
1007 	z->c = z->l - m;
1008 	z->ket = z->c; /* [, line 155 */
1009 	among_var = find_among_b(z, a_4, 35); /* substring, line 155 */
1010 	if (!(among_var)) { z->lb = m3; return 0; }
1011 	z->bra = z->c; /* ], line 155 */
1012 	switch(among_var) {
1013 	    case 0: { z->lb = m3; return 0; }
1014 	    case 1:
1015 		if (!(out_grouping_b_U(z, g_v, 97, 251))) { z->lb = m3; return 0; }
1016 		{   int ret;
1017 		    ret = slice_del(z); /* delete, line 161 */
1018 		    if (ret < 0) return ret;
1019 		}
1020 		break;
1021 	}
1022 	z->lb = m3;
1023     }
1024     return 1;
1025 }
1026 
1027 static int r_verb_suffix(struct SN_env * z) {
1028     int among_var;
1029     {	int m3; /* setlimit, line 165 */
1030 	int m = z->l - z->c; (void) m;
1031 	if (z->c < z->I[0]) return 0;
1032 	z->c = z->I[0]; /* tomark, line 165 */
1033 	m3 = z->lb; z->lb = z->c;
1034 	z->c = z->l - m;
1035 	z->ket = z->c; /* [, line 166 */
1036 	among_var = find_among_b(z, a_5, 38); /* substring, line 166 */
1037 	if (!(among_var)) { z->lb = m3; return 0; }
1038 	z->bra = z->c; /* ], line 166 */
1039 	switch(among_var) {
1040 	    case 0: { z->lb = m3; return 0; }
1041 	    case 1:
1042 		{   int ret = r_R2(z);
1043 		    if (ret == 0) { z->lb = m3; return 0; } /* call R2, line 168 */
1044 		    if (ret < 0) return ret;
1045 		}
1046 		{   int ret;
1047 		    ret = slice_del(z); /* delete, line 168 */
1048 		    if (ret < 0) return ret;
1049 		}
1050 		break;
1051 	    case 2:
1052 		{   int ret;
1053 		    ret = slice_del(z); /* delete, line 176 */
1054 		    if (ret < 0) return ret;
1055 		}
1056 		break;
1057 	    case 3:
1058 		{   int ret;
1059 		    ret = slice_del(z); /* delete, line 181 */
1060 		    if (ret < 0) return ret;
1061 		}
1062 		{   int m = z->l - z->c; (void) m; /* try, line 182 */
1063 		    z->ket = z->c; /* [, line 182 */
1064 		    if (!(eq_s_b(z, 1, s_32))) { z->c = z->l - m; goto lab0; }
1065 		    z->bra = z->c; /* ], line 182 */
1066 		    {	int ret;
1067 			ret = slice_del(z); /* delete, line 182 */
1068 			if (ret < 0) return ret;
1069 		    }
1070 		lab0:
1071 		    ;
1072 		}
1073 		break;
1074 	}
1075 	z->lb = m3;
1076     }
1077     return 1;
1078 }
1079 
1080 static int r_residual_suffix(struct SN_env * z) {
1081     int among_var;
1082     {	int m = z->l - z->c; (void) m; /* try, line 190 */
1083 	z->ket = z->c; /* [, line 190 */
1084 	if (!(eq_s_b(z, 1, s_33))) { z->c = z->l - m; goto lab0; }
1085 	z->bra = z->c; /* ], line 190 */
1086 	{   int m_test = z->l - z->c; /* test, line 190 */
1087 	    if (!(out_grouping_b_U(z, g_keep_with_s, 97, 232))) { z->c = z->l - m; goto lab0; }
1088 	    z->c = z->l - m_test;
1089 	}
1090 	{   int ret;
1091 	    ret = slice_del(z); /* delete, line 190 */
1092 	    if (ret < 0) return ret;
1093 	}
1094     lab0:
1095 	;
1096     }
1097     {	int m3; /* setlimit, line 191 */
1098 	int m = z->l - z->c; (void) m;
1099 	if (z->c < z->I[0]) return 0;
1100 	z->c = z->I[0]; /* tomark, line 191 */
1101 	m3 = z->lb; z->lb = z->c;
1102 	z->c = z->l - m;
1103 	z->ket = z->c; /* [, line 192 */
1104 	among_var = find_among_b(z, a_6, 7); /* substring, line 192 */
1105 	if (!(among_var)) { z->lb = m3; return 0; }
1106 	z->bra = z->c; /* ], line 192 */
1107 	switch(among_var) {
1108 	    case 0: { z->lb = m3; return 0; }
1109 	    case 1:
1110 		{   int ret = r_R2(z);
1111 		    if (ret == 0) { z->lb = m3; return 0; } /* call R2, line 193 */
1112 		    if (ret < 0) return ret;
1113 		}
1114 		{   int m = z->l - z->c; (void) m; /* or, line 193 */
1115 		    if (!(eq_s_b(z, 1, s_34))) goto lab2;
1116 		    goto lab1;
1117 		lab2:
1118 		    z->c = z->l - m;
1119 		    if (!(eq_s_b(z, 1, s_35))) { z->lb = m3; return 0; }
1120 		}
1121 	    lab1:
1122 		{   int ret;
1123 		    ret = slice_del(z); /* delete, line 193 */
1124 		    if (ret < 0) return ret;
1125 		}
1126 		break;
1127 	    case 2:
1128 		{   int ret;
1129 		    ret = slice_from_s(z, 1, s_36); /* <-, line 195 */
1130 		    if (ret < 0) return ret;
1131 		}
1132 		break;
1133 	    case 3:
1134 		{   int ret;
1135 		    ret = slice_del(z); /* delete, line 196 */
1136 		    if (ret < 0) return ret;
1137 		}
1138 		break;
1139 	    case 4:
1140 		if (!(eq_s_b(z, 2, s_37))) { z->lb = m3; return 0; }
1141 		{   int ret;
1142 		    ret = slice_del(z); /* delete, line 197 */
1143 		    if (ret < 0) return ret;
1144 		}
1145 		break;
1146 	}
1147 	z->lb = m3;
1148     }
1149     return 1;
1150 }
1151 
1152 static int r_un_double(struct SN_env * z) {
1153     {	int m_test = z->l - z->c; /* test, line 203 */
1154 	if (!(find_among_b(z, a_7, 5))) return 0; /* among, line 203 */
1155 	z->c = z->l - m_test;
1156     }
1157     z->ket = z->c; /* [, line 203 */
1158     {	int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
1159 	if (c < 0) return 0;
1160 	z->c = c; /* next, line 203 */
1161     }
1162     z->bra = z->c; /* ], line 203 */
1163     {	int ret;
1164 	ret = slice_del(z); /* delete, line 203 */
1165 	if (ret < 0) return ret;
1166     }
1167     return 1;
1168 }
1169 
1170 static int r_un_accent(struct SN_env * z) {
1171     {	int i = 1;
1172 	while(1) { /* atleast, line 207 */
1173 	    if (!(out_grouping_b_U(z, g_v, 97, 251))) goto lab0;
1174 	    i--;
1175 	    continue;
1176 	lab0:
1177 	    break;
1178 	}
1179 	if (i > 0) return 0;
1180     }
1181     z->ket = z->c; /* [, line 208 */
1182     {	int m = z->l - z->c; (void) m; /* or, line 208 */
1183 	if (!(eq_s_b(z, 2, s_38))) goto lab2;
1184 	goto lab1;
1185     lab2:
1186 	z->c = z->l - m;
1187 	if (!(eq_s_b(z, 2, s_39))) return 0;
1188     }
1189 lab1:
1190     z->bra = z->c; /* ], line 208 */
1191     {	int ret;
1192 	ret = slice_from_s(z, 1, s_40); /* <-, line 208 */
1193 	if (ret < 0) return ret;
1194     }
1195     return 1;
1196 }
1197 
1198 extern int french_UTF_8_stem(struct SN_env * z) {
1199     {	int c = z->c; /* do, line 214 */
1200 	{   int ret = r_prelude(z);
1201 	    if (ret == 0) goto lab0; /* call prelude, line 214 */
1202 	    if (ret < 0) return ret;
1203 	}
1204     lab0:
1205 	z->c = c;
1206     }
1207     {	int c = z->c; /* do, line 215 */
1208 	{   int ret = r_mark_regions(z);
1209 	    if (ret == 0) goto lab1; /* call mark_regions, line 215 */
1210 	    if (ret < 0) return ret;
1211 	}
1212     lab1:
1213 	z->c = c;
1214     }
1215     z->lb = z->c; z->c = z->l; /* backwards, line 216 */
1216 
1217     {	int m = z->l - z->c; (void) m; /* do, line 218 */
1218 	{   int m = z->l - z->c; (void) m; /* or, line 228 */
1219 	    {	int m = z->l - z->c; (void) m; /* and, line 224 */
1220 		{   int m = z->l - z->c; (void) m; /* or, line 220 */
1221 		    {	int ret = r_standard_suffix(z);
1222 			if (ret == 0) goto lab6; /* call standard_suffix, line 220 */
1223 			if (ret < 0) return ret;
1224 		    }
1225 		    goto lab5;
1226 		lab6:
1227 		    z->c = z->l - m;
1228 		    {	int ret = r_i_verb_suffix(z);
1229 			if (ret == 0) goto lab7; /* call i_verb_suffix, line 221 */
1230 			if (ret < 0) return ret;
1231 		    }
1232 		    goto lab5;
1233 		lab7:
1234 		    z->c = z->l - m;
1235 		    {	int ret = r_verb_suffix(z);
1236 			if (ret == 0) goto lab4; /* call verb_suffix, line 222 */
1237 			if (ret < 0) return ret;
1238 		    }
1239 		}
1240 	    lab5:
1241 		z->c = z->l - m;
1242 		{   int m = z->l - z->c; (void) m; /* try, line 225 */
1243 		    z->ket = z->c; /* [, line 225 */
1244 		    {	int m = z->l - z->c; (void) m; /* or, line 225 */
1245 			if (!(eq_s_b(z, 1, s_41))) goto lab10;
1246 			z->bra = z->c; /* ], line 225 */
1247 			{   int ret;
1248 			    ret = slice_from_s(z, 1, s_42); /* <-, line 225 */
1249 			    if (ret < 0) return ret;
1250 			}
1251 			goto lab9;
1252 		    lab10:
1253 			z->c = z->l - m;
1254 			if (!(eq_s_b(z, 2, s_43))) { z->c = z->l - m; goto lab8; }
1255 			z->bra = z->c; /* ], line 226 */
1256 			{   int ret;
1257 			    ret = slice_from_s(z, 1, s_44); /* <-, line 226 */
1258 			    if (ret < 0) return ret;
1259 			}
1260 		    }
1261 		lab9:
1262 		lab8:
1263 		    ;
1264 		}
1265 	    }
1266 	    goto lab3;
1267 	lab4:
1268 	    z->c = z->l - m;
1269 	    {	int ret = r_residual_suffix(z);
1270 		if (ret == 0) goto lab2; /* call residual_suffix, line 229 */
1271 		if (ret < 0) return ret;
1272 	    }
1273 	}
1274     lab3:
1275     lab2:
1276 	z->c = z->l - m;
1277     }
1278     {	int m = z->l - z->c; (void) m; /* do, line 234 */
1279 	{   int ret = r_un_double(z);
1280 	    if (ret == 0) goto lab11; /* call un_double, line 234 */
1281 	    if (ret < 0) return ret;
1282 	}
1283     lab11:
1284 	z->c = z->l - m;
1285     }
1286     {	int m = z->l - z->c; (void) m; /* do, line 235 */
1287 	{   int ret = r_un_accent(z);
1288 	    if (ret == 0) goto lab12; /* call un_accent, line 235 */
1289 	    if (ret < 0) return ret;
1290 	}
1291     lab12:
1292 	z->c = z->l - m;
1293     }
1294     z->c = z->lb;
1295     {	int c = z->c; /* do, line 237 */
1296 	{   int ret = r_postlude(z);
1297 	    if (ret == 0) goto lab13; /* call postlude, line 237 */
1298 	    if (ret < 0) return ret;
1299 	}
1300     lab13:
1301 	z->c = c;
1302     }
1303     return 1;
1304 }
1305 
1306 extern struct SN_env * french_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
1307 
1308 extern void french_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }