tracker-0.16.2/src/libstemmer/stem_UTF_8_portuguese.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 portuguese_UTF_8_stem(struct SN_env * z);
  20 static int r_residual_form(struct SN_env * z);
  21 static int r_residual_suffix(struct SN_env * z);
  22 static int r_verb_suffix(struct SN_env * z);
  23 static int r_standard_suffix(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 * portuguese_UTF_8_create_env(void);
  32 extern void portuguese_UTF_8_close_env(struct SN_env * z);
  33 
  34 static symbol s_0_1[2] = { 0xC3, 0xA3 };
  35 static symbol s_0_2[2] = { 0xC3, 0xB5 };
  36 
  37 static struct among a_0[3] =
  38 {
  39 /*  0 */ { 0, 0, -1, 3, 0},
  40 /*  1 */ { 2, s_0_1, 0, 1, 0},
  41 /*  2 */ { 2, s_0_2, 0, 2, 0}
  42 };
  43 
  44 static symbol s_1_1[2] = { 'a', '~' };
  45 static symbol s_1_2[2] = { 'o', '~' };
  46 
  47 static struct among a_1[3] =
  48 {
  49 /*  0 */ { 0, 0, -1, 3, 0},
  50 /*  1 */ { 2, s_1_1, 0, 1, 0},
  51 /*  2 */ { 2, s_1_2, 0, 2, 0}
  52 };
  53 
  54 static symbol s_2_0[2] = { 'i', 'c' };
  55 static symbol s_2_1[2] = { 'a', 'd' };
  56 static symbol s_2_2[2] = { 'o', 's' };
  57 static symbol s_2_3[2] = { 'i', 'v' };
  58 
  59 static struct among a_2[4] =
  60 {
  61 /*  0 */ { 2, s_2_0, -1, -1, 0},
  62 /*  1 */ { 2, s_2_1, -1, -1, 0},
  63 /*  2 */ { 2, s_2_2, -1, -1, 0},
  64 /*  3 */ { 2, s_2_3, -1, 1, 0}
  65 };
  66 
  67 static symbol s_3_0[4] = { 'a', 'n', 't', 'e' };
  68 static symbol s_3_1[4] = { 'a', 'v', 'e', 'l' };
  69 static symbol s_3_2[5] = { 0xC3, 0xAD, 'v', 'e', 'l' };
  70 
  71 static struct among a_3[3] =
  72 {
  73 /*  0 */ { 4, s_3_0, -1, 1, 0},
  74 /*  1 */ { 4, s_3_1, -1, 1, 0},
  75 /*  2 */ { 5, s_3_2, -1, 1, 0}
  76 };
  77 
  78 static symbol s_4_0[2] = { 'i', 'c' };
  79 static symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
  80 static symbol s_4_2[2] = { 'i', 'v' };
  81 
  82 static struct among a_4[3] =
  83 {
  84 /*  0 */ { 2, s_4_0, -1, 1, 0},
  85 /*  1 */ { 4, s_4_1, -1, 1, 0},
  86 /*  2 */ { 2, s_4_2, -1, 1, 0}
  87 };
  88 
  89 static symbol s_5_0[3] = { 'i', 'c', 'a' };
  90 static symbol s_5_1[6] = { 0xC3, 0xA2, 'n', 'c', 'i', 'a' };
  91 static symbol s_5_2[6] = { 0xC3, 0xAA, 'n', 'c', 'i', 'a' };
  92 static symbol s_5_3[3] = { 'i', 'r', 'a' };
  93 static symbol s_5_4[5] = { 'a', 'd', 'o', 'r', 'a' };
  94 static symbol s_5_5[3] = { 'o', 's', 'a' };
  95 static symbol s_5_6[4] = { 'i', 's', 't', 'a' };
  96 static symbol s_5_7[3] = { 'i', 'v', 'a' };
  97 static symbol s_5_8[3] = { 'e', 'z', 'a' };
  98 static symbol s_5_9[6] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a' };
  99 static symbol s_5_10[5] = { 'i', 'd', 'a', 'd', 'e' };
 100 static symbol s_5_11[4] = { 'a', 'n', 't', 'e' };
 101 static symbol s_5_12[5] = { 'm', 'e', 'n', 't', 'e' };
 102 static symbol s_5_13[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
 103 static symbol s_5_14[5] = { 0xC3, 0xA1, 'v', 'e', 'l' };
 104 static symbol s_5_15[5] = { 0xC3, 0xAD, 'v', 'e', 'l' };
 105 static symbol s_5_16[6] = { 'u', 'c', 'i', 0xC3, 0xB3, 'n' };
 106 static symbol s_5_17[3] = { 'i', 'c', 'o' };
 107 static symbol s_5_18[4] = { 'i', 's', 'm', 'o' };
 108 static symbol s_5_19[3] = { 'o', 's', 'o' };
 109 static symbol s_5_20[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
 110 static symbol s_5_21[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
 111 static symbol s_5_22[3] = { 'i', 'v', 'o' };
 112 static symbol s_5_23[6] = { 'a', 0xC3, 0xA7, 'a', '~', 'o' };
 113 static symbol s_5_24[4] = { 'a', 'd', 'o', 'r' };
 114 static symbol s_5_25[4] = { 'i', 'c', 'a', 's' };
 115 static symbol s_5_26[7] = { 0xC3, 0xAA, 'n', 'c', 'i', 'a', 's' };
 116 static symbol s_5_27[4] = { 'i', 'r', 'a', 's' };
 117 static symbol s_5_28[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
 118 static symbol s_5_29[4] = { 'o', 's', 'a', 's' };
 119 static symbol s_5_30[5] = { 'i', 's', 't', 'a', 's' };
 120 static symbol s_5_31[4] = { 'i', 'v', 'a', 's' };
 121 static symbol s_5_32[4] = { 'e', 'z', 'a', 's' };
 122 static symbol s_5_33[7] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a', 's' };
 123 static symbol s_5_34[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
 124 static symbol s_5_35[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
 125 static symbol s_5_36[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
 126 static symbol s_5_37[5] = { 'a', 'n', 't', 'e', 's' };
 127 static symbol s_5_38[7] = { 'a', 0xC3, 0xA7, 'o', '~', 'e', 's' };
 128 static symbol s_5_39[4] = { 'i', 'c', 'o', 's' };
 129 static symbol s_5_40[5] = { 'i', 's', 'm', 'o', 's' };
 130 static symbol s_5_41[4] = { 'o', 's', 'o', 's' };
 131 static symbol s_5_42[7] = { 'a', 'm', 'e', 'n', 't', 'o', 's' };
 132 static symbol s_5_43[7] = { 'i', 'm', 'e', 'n', 't', 'o', 's' };
 133 static symbol s_5_44[4] = { 'i', 'v', 'o', 's' };
 134 
 135 static struct among a_5[45] =
 136 {
 137 /*  0 */ { 3, s_5_0, -1, 1, 0},
 138 /*  1 */ { 6, s_5_1, -1, 1, 0},
 139 /*  2 */ { 6, s_5_2, -1, 4, 0},
 140 /*  3 */ { 3, s_5_3, -1, 9, 0},
 141 /*  4 */ { 5, s_5_4, -1, 1, 0},
 142 /*  5 */ { 3, s_5_5, -1, 1, 0},
 143 /*  6 */ { 4, s_5_6, -1, 1, 0},
 144 /*  7 */ { 3, s_5_7, -1, 8, 0},
 145 /*  8 */ { 3, s_5_8, -1, 1, 0},
 146 /*  9 */ { 6, s_5_9, -1, 2, 0},
 147 /* 10 */ { 5, s_5_10, -1, 7, 0},
 148 /* 11 */ { 4, s_5_11, -1, 1, 0},
 149 /* 12 */ { 5, s_5_12, -1, 6, 0},
 150 /* 13 */ { 6, s_5_13, 12, 5, 0},
 151 /* 14 */ { 5, s_5_14, -1, 1, 0},
 152 /* 15 */ { 5, s_5_15, -1, 1, 0},
 153 /* 16 */ { 6, s_5_16, -1, 3, 0},
 154 /* 17 */ { 3, s_5_17, -1, 1, 0},
 155 /* 18 */ { 4, s_5_18, -1, 1, 0},
 156 /* 19 */ { 3, s_5_19, -1, 1, 0},
 157 /* 20 */ { 6, s_5_20, -1, 1, 0},
 158 /* 21 */ { 6, s_5_21, -1, 1, 0},
 159 /* 22 */ { 3, s_5_22, -1, 8, 0},
 160 /* 23 */ { 6, s_5_23, -1, 1, 0},
 161 /* 24 */ { 4, s_5_24, -1, 1, 0},
 162 /* 25 */ { 4, s_5_25, -1, 1, 0},
 163 /* 26 */ { 7, s_5_26, -1, 4, 0},
 164 /* 27 */ { 4, s_5_27, -1, 9, 0},
 165 /* 28 */ { 6, s_5_28, -1, 1, 0},
 166 /* 29 */ { 4, s_5_29, -1, 1, 0},
 167 /* 30 */ { 5, s_5_30, -1, 1, 0},
 168 /* 31 */ { 4, s_5_31, -1, 8, 0},
 169 /* 32 */ { 4, s_5_32, -1, 1, 0},
 170 /* 33 */ { 7, s_5_33, -1, 2, 0},
 171 /* 34 */ { 6, s_5_34, -1, 7, 0},
 172 /* 35 */ { 7, s_5_35, -1, 3, 0},
 173 /* 36 */ { 6, s_5_36, -1, 1, 0},
 174 /* 37 */ { 5, s_5_37, -1, 1, 0},
 175 /* 38 */ { 7, s_5_38, -1, 1, 0},
 176 /* 39 */ { 4, s_5_39, -1, 1, 0},
 177 /* 40 */ { 5, s_5_40, -1, 1, 0},
 178 /* 41 */ { 4, s_5_41, -1, 1, 0},
 179 /* 42 */ { 7, s_5_42, -1, 1, 0},
 180 /* 43 */ { 7, s_5_43, -1, 1, 0},
 181 /* 44 */ { 4, s_5_44, -1, 8, 0}
 182 };
 183 
 184 static symbol s_6_0[3] = { 'a', 'd', 'a' };
 185 static symbol s_6_1[3] = { 'i', 'd', 'a' };
 186 static symbol s_6_2[2] = { 'i', 'a' };
 187 static symbol s_6_3[4] = { 'a', 'r', 'i', 'a' };
 188 static symbol s_6_4[4] = { 'e', 'r', 'i', 'a' };
 189 static symbol s_6_5[4] = { 'i', 'r', 'i', 'a' };
 190 static symbol s_6_6[3] = { 'a', 'r', 'a' };
 191 static symbol s_6_7[3] = { 'e', 'r', 'a' };
 192 static symbol s_6_8[3] = { 'i', 'r', 'a' };
 193 static symbol s_6_9[3] = { 'a', 'v', 'a' };
 194 static symbol s_6_10[4] = { 'a', 's', 's', 'e' };
 195 static symbol s_6_11[4] = { 'e', 's', 's', 'e' };
 196 static symbol s_6_12[4] = { 'i', 's', 's', 'e' };
 197 static symbol s_6_13[4] = { 'a', 's', 't', 'e' };
 198 static symbol s_6_14[4] = { 'e', 's', 't', 'e' };
 199 static symbol s_6_15[4] = { 'i', 's', 't', 'e' };
 200 static symbol s_6_16[2] = { 'e', 'i' };
 201 static symbol s_6_17[4] = { 'a', 'r', 'e', 'i' };
 202 static symbol s_6_18[4] = { 'e', 'r', 'e', 'i' };
 203 static symbol s_6_19[4] = { 'i', 'r', 'e', 'i' };
 204 static symbol s_6_20[2] = { 'a', 'm' };
 205 static symbol s_6_21[3] = { 'i', 'a', 'm' };
 206 static symbol s_6_22[5] = { 'a', 'r', 'i', 'a', 'm' };
 207 static symbol s_6_23[5] = { 'e', 'r', 'i', 'a', 'm' };
 208 static symbol s_6_24[5] = { 'i', 'r', 'i', 'a', 'm' };
 209 static symbol s_6_25[4] = { 'a', 'r', 'a', 'm' };
 210 static symbol s_6_26[4] = { 'e', 'r', 'a', 'm' };
 211 static symbol s_6_27[4] = { 'i', 'r', 'a', 'm' };
 212 static symbol s_6_28[4] = { 'a', 'v', 'a', 'm' };
 213 static symbol s_6_29[2] = { 'e', 'm' };
 214 static symbol s_6_30[4] = { 'a', 'r', 'e', 'm' };
 215 static symbol s_6_31[4] = { 'e', 'r', 'e', 'm' };
 216 static symbol s_6_32[4] = { 'i', 'r', 'e', 'm' };
 217 static symbol s_6_33[5] = { 'a', 's', 's', 'e', 'm' };
 218 static symbol s_6_34[5] = { 'e', 's', 's', 'e', 'm' };
 219 static symbol s_6_35[5] = { 'i', 's', 's', 'e', 'm' };
 220 static symbol s_6_36[3] = { 'a', 'd', 'o' };
 221 static symbol s_6_37[3] = { 'i', 'd', 'o' };
 222 static symbol s_6_38[4] = { 'a', 'n', 'd', 'o' };
 223 static symbol s_6_39[4] = { 'e', 'n', 'd', 'o' };
 224 static symbol s_6_40[4] = { 'i', 'n', 'd', 'o' };
 225 static symbol s_6_41[5] = { 'a', 'r', 'a', '~', 'o' };
 226 static symbol s_6_42[5] = { 'e', 'r', 'a', '~', 'o' };
 227 static symbol s_6_43[5] = { 'i', 'r', 'a', '~', 'o' };
 228 static symbol s_6_44[2] = { 'a', 'r' };
 229 static symbol s_6_45[2] = { 'e', 'r' };
 230 static symbol s_6_46[2] = { 'i', 'r' };
 231 static symbol s_6_47[2] = { 'a', 's' };
 232 static symbol s_6_48[4] = { 'a', 'd', 'a', 's' };
 233 static symbol s_6_49[4] = { 'i', 'd', 'a', 's' };
 234 static symbol s_6_50[3] = { 'i', 'a', 's' };
 235 static symbol s_6_51[5] = { 'a', 'r', 'i', 'a', 's' };
 236 static symbol s_6_52[5] = { 'e', 'r', 'i', 'a', 's' };
 237 static symbol s_6_53[5] = { 'i', 'r', 'i', 'a', 's' };
 238 static symbol s_6_54[4] = { 'a', 'r', 'a', 's' };
 239 static symbol s_6_55[4] = { 'e', 'r', 'a', 's' };
 240 static symbol s_6_56[4] = { 'i', 'r', 'a', 's' };
 241 static symbol s_6_57[4] = { 'a', 'v', 'a', 's' };
 242 static symbol s_6_58[2] = { 'e', 's' };
 243 static symbol s_6_59[5] = { 'a', 'r', 'd', 'e', 's' };
 244 static symbol s_6_60[5] = { 'e', 'r', 'd', 'e', 's' };
 245 static symbol s_6_61[5] = { 'i', 'r', 'd', 'e', 's' };
 246 static symbol s_6_62[4] = { 'a', 'r', 'e', 's' };
 247 static symbol s_6_63[4] = { 'e', 'r', 'e', 's' };
 248 static symbol s_6_64[4] = { 'i', 'r', 'e', 's' };
 249 static symbol s_6_65[5] = { 'a', 's', 's', 'e', 's' };
 250 static symbol s_6_66[5] = { 'e', 's', 's', 'e', 's' };
 251 static symbol s_6_67[5] = { 'i', 's', 's', 'e', 's' };
 252 static symbol s_6_68[5] = { 'a', 's', 't', 'e', 's' };
 253 static symbol s_6_69[5] = { 'e', 's', 't', 'e', 's' };
 254 static symbol s_6_70[5] = { 'i', 's', 't', 'e', 's' };
 255 static symbol s_6_71[2] = { 'i', 's' };
 256 static symbol s_6_72[3] = { 'a', 'i', 's' };
 257 static symbol s_6_73[3] = { 'e', 'i', 's' };
 258 static symbol s_6_74[5] = { 'a', 'r', 'e', 'i', 's' };
 259 static symbol s_6_75[5] = { 'e', 'r', 'e', 'i', 's' };
 260 static symbol s_6_76[5] = { 'i', 'r', 'e', 'i', 's' };
 261 static symbol s_6_77[6] = { 0xC3, 0xA1, 'r', 'e', 'i', 's' };
 262 static symbol s_6_78[6] = { 0xC3, 0xA9, 'r', 'e', 'i', 's' };
 263 static symbol s_6_79[6] = { 0xC3, 0xAD, 'r', 'e', 'i', 's' };
 264 static symbol s_6_80[7] = { 0xC3, 0xA1, 's', 's', 'e', 'i', 's' };
 265 static symbol s_6_81[7] = { 0xC3, 0xA9, 's', 's', 'e', 'i', 's' };
 266 static symbol s_6_82[7] = { 0xC3, 0xAD, 's', 's', 'e', 'i', 's' };
 267 static symbol s_6_83[6] = { 0xC3, 0xA1, 'v', 'e', 'i', 's' };
 268 static symbol s_6_84[5] = { 0xC3, 0xAD, 'e', 'i', 's' };
 269 static symbol s_6_85[7] = { 'a', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
 270 static symbol s_6_86[7] = { 'e', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
 271 static symbol s_6_87[7] = { 'i', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
 272 static symbol s_6_88[4] = { 'a', 'd', 'o', 's' };
 273 static symbol s_6_89[4] = { 'i', 'd', 'o', 's' };
 274 static symbol s_6_90[4] = { 'a', 'm', 'o', 's' };
 275 static symbol s_6_91[7] = { 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's' };
 276 static symbol s_6_92[7] = { 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's' };
 277 static symbol s_6_93[7] = { 0xC3, 0xAD, 'r', 'a', 'm', 'o', 's' };
 278 static symbol s_6_94[7] = { 0xC3, 0xA1, 'v', 'a', 'm', 'o', 's' };
 279 static symbol s_6_95[6] = { 0xC3, 0xAD, 'a', 'm', 'o', 's' };
 280 static symbol s_6_96[8] = { 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
 281 static symbol s_6_97[8] = { 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
 282 static symbol s_6_98[8] = { 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
 283 static symbol s_6_99[4] = { 'e', 'm', 'o', 's' };
 284 static symbol s_6_100[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
 285 static symbol s_6_101[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
 286 static symbol s_6_102[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
 287 static symbol s_6_103[8] = { 0xC3, 0xA1, 's', 's', 'e', 'm', 'o', 's' };
 288 static symbol s_6_104[8] = { 0xC3, 0xAA, 's', 's', 'e', 'm', 'o', 's' };
 289 static symbol s_6_105[8] = { 0xC3, 0xAD, 's', 's', 'e', 'm', 'o', 's' };
 290 static symbol s_6_106[4] = { 'i', 'm', 'o', 's' };
 291 static symbol s_6_107[5] = { 'a', 'r', 'm', 'o', 's' };
 292 static symbol s_6_108[5] = { 'e', 'r', 'm', 'o', 's' };
 293 static symbol s_6_109[5] = { 'i', 'r', 'm', 'o', 's' };
 294 static symbol s_6_110[5] = { 0xC3, 0xA1, 'm', 'o', 's' };
 295 static symbol s_6_111[5] = { 'a', 'r', 0xC3, 0xA1, 's' };
 296 static symbol s_6_112[5] = { 'e', 'r', 0xC3, 0xA1, 's' };
 297 static symbol s_6_113[5] = { 'i', 'r', 0xC3, 0xA1, 's' };
 298 static symbol s_6_114[2] = { 'e', 'u' };
 299 static symbol s_6_115[2] = { 'i', 'u' };
 300 static symbol s_6_116[2] = { 'o', 'u' };
 301 static symbol s_6_117[4] = { 'a', 'r', 0xC3, 0xA1 };
 302 static symbol s_6_118[4] = { 'e', 'r', 0xC3, 0xA1 };
 303 static symbol s_6_119[4] = { 'i', 'r', 0xC3, 0xA1 };
 304 
 305 static struct among a_6[120] =
 306 {
 307 /*  0 */ { 3, s_6_0, -1, 1, 0},
 308 /*  1 */ { 3, s_6_1, -1, 1, 0},
 309 /*  2 */ { 2, s_6_2, -1, 1, 0},
 310 /*  3 */ { 4, s_6_3, 2, 1, 0},
 311 /*  4 */ { 4, s_6_4, 2, 1, 0},
 312 /*  5 */ { 4, s_6_5, 2, 1, 0},
 313 /*  6 */ { 3, s_6_6, -1, 1, 0},
 314 /*  7 */ { 3, s_6_7, -1, 1, 0},
 315 /*  8 */ { 3, s_6_8, -1, 1, 0},
 316 /*  9 */ { 3, s_6_9, -1, 1, 0},
 317 /* 10 */ { 4, s_6_10, -1, 1, 0},
 318 /* 11 */ { 4, s_6_11, -1, 1, 0},
 319 /* 12 */ { 4, s_6_12, -1, 1, 0},
 320 /* 13 */ { 4, s_6_13, -1, 1, 0},
 321 /* 14 */ { 4, s_6_14, -1, 1, 0},
 322 /* 15 */ { 4, s_6_15, -1, 1, 0},
 323 /* 16 */ { 2, s_6_16, -1, 1, 0},
 324 /* 17 */ { 4, s_6_17, 16, 1, 0},
 325 /* 18 */ { 4, s_6_18, 16, 1, 0},
 326 /* 19 */ { 4, s_6_19, 16, 1, 0},
 327 /* 20 */ { 2, s_6_20, -1, 1, 0},
 328 /* 21 */ { 3, s_6_21, 20, 1, 0},
 329 /* 22 */ { 5, s_6_22, 21, 1, 0},
 330 /* 23 */ { 5, s_6_23, 21, 1, 0},
 331 /* 24 */ { 5, s_6_24, 21, 1, 0},
 332 /* 25 */ { 4, s_6_25, 20, 1, 0},
 333 /* 26 */ { 4, s_6_26, 20, 1, 0},
 334 /* 27 */ { 4, s_6_27, 20, 1, 0},
 335 /* 28 */ { 4, s_6_28, 20, 1, 0},
 336 /* 29 */ { 2, s_6_29, -1, 1, 0},
 337 /* 30 */ { 4, s_6_30, 29, 1, 0},
 338 /* 31 */ { 4, s_6_31, 29, 1, 0},
 339 /* 32 */ { 4, s_6_32, 29, 1, 0},
 340 /* 33 */ { 5, s_6_33, 29, 1, 0},
 341 /* 34 */ { 5, s_6_34, 29, 1, 0},
 342 /* 35 */ { 5, s_6_35, 29, 1, 0},
 343 /* 36 */ { 3, s_6_36, -1, 1, 0},
 344 /* 37 */ { 3, s_6_37, -1, 1, 0},
 345 /* 38 */ { 4, s_6_38, -1, 1, 0},
 346 /* 39 */ { 4, s_6_39, -1, 1, 0},
 347 /* 40 */ { 4, s_6_40, -1, 1, 0},
 348 /* 41 */ { 5, s_6_41, -1, 1, 0},
 349 /* 42 */ { 5, s_6_42, -1, 1, 0},
 350 /* 43 */ { 5, s_6_43, -1, 1, 0},
 351 /* 44 */ { 2, s_6_44, -1, 1, 0},
 352 /* 45 */ { 2, s_6_45, -1, 1, 0},
 353 /* 46 */ { 2, s_6_46, -1, 1, 0},
 354 /* 47 */ { 2, s_6_47, -1, 1, 0},
 355 /* 48 */ { 4, s_6_48, 47, 1, 0},
 356 /* 49 */ { 4, s_6_49, 47, 1, 0},
 357 /* 50 */ { 3, s_6_50, 47, 1, 0},
 358 /* 51 */ { 5, s_6_51, 50, 1, 0},
 359 /* 52 */ { 5, s_6_52, 50, 1, 0},
 360 /* 53 */ { 5, s_6_53, 50, 1, 0},
 361 /* 54 */ { 4, s_6_54, 47, 1, 0},
 362 /* 55 */ { 4, s_6_55, 47, 1, 0},
 363 /* 56 */ { 4, s_6_56, 47, 1, 0},
 364 /* 57 */ { 4, s_6_57, 47, 1, 0},
 365 /* 58 */ { 2, s_6_58, -1, 1, 0},
 366 /* 59 */ { 5, s_6_59, 58, 1, 0},
 367 /* 60 */ { 5, s_6_60, 58, 1, 0},
 368 /* 61 */ { 5, s_6_61, 58, 1, 0},
 369 /* 62 */ { 4, s_6_62, 58, 1, 0},
 370 /* 63 */ { 4, s_6_63, 58, 1, 0},
 371 /* 64 */ { 4, s_6_64, 58, 1, 0},
 372 /* 65 */ { 5, s_6_65, 58, 1, 0},
 373 /* 66 */ { 5, s_6_66, 58, 1, 0},
 374 /* 67 */ { 5, s_6_67, 58, 1, 0},
 375 /* 68 */ { 5, s_6_68, 58, 1, 0},
 376 /* 69 */ { 5, s_6_69, 58, 1, 0},
 377 /* 70 */ { 5, s_6_70, 58, 1, 0},
 378 /* 71 */ { 2, s_6_71, -1, 1, 0},
 379 /* 72 */ { 3, s_6_72, 71, 1, 0},
 380 /* 73 */ { 3, s_6_73, 71, 1, 0},
 381 /* 74 */ { 5, s_6_74, 73, 1, 0},
 382 /* 75 */ { 5, s_6_75, 73, 1, 0},
 383 /* 76 */ { 5, s_6_76, 73, 1, 0},
 384 /* 77 */ { 6, s_6_77, 73, 1, 0},
 385 /* 78 */ { 6, s_6_78, 73, 1, 0},
 386 /* 79 */ { 6, s_6_79, 73, 1, 0},
 387 /* 80 */ { 7, s_6_80, 73, 1, 0},
 388 /* 81 */ { 7, s_6_81, 73, 1, 0},
 389 /* 82 */ { 7, s_6_82, 73, 1, 0},
 390 /* 83 */ { 6, s_6_83, 73, 1, 0},
 391 /* 84 */ { 5, s_6_84, 73, 1, 0},
 392 /* 85 */ { 7, s_6_85, 84, 1, 0},
 393 /* 86 */ { 7, s_6_86, 84, 1, 0},
 394 /* 87 */ { 7, s_6_87, 84, 1, 0},
 395 /* 88 */ { 4, s_6_88, -1, 1, 0},
 396 /* 89 */ { 4, s_6_89, -1, 1, 0},
 397 /* 90 */ { 4, s_6_90, -1, 1, 0},
 398 /* 91 */ { 7, s_6_91, 90, 1, 0},
 399 /* 92 */ { 7, s_6_92, 90, 1, 0},
 400 /* 93 */ { 7, s_6_93, 90, 1, 0},
 401 /* 94 */ { 7, s_6_94, 90, 1, 0},
 402 /* 95 */ { 6, s_6_95, 90, 1, 0},
 403 /* 96 */ { 8, s_6_96, 95, 1, 0},
 404 /* 97 */ { 8, s_6_97, 95, 1, 0},
 405 /* 98 */ { 8, s_6_98, 95, 1, 0},
 406 /* 99 */ { 4, s_6_99, -1, 1, 0},
 407 /*100 */ { 6, s_6_100, 99, 1, 0},
 408 /*101 */ { 6, s_6_101, 99, 1, 0},
 409 /*102 */ { 6, s_6_102, 99, 1, 0},
 410 /*103 */ { 8, s_6_103, 99, 1, 0},
 411 /*104 */ { 8, s_6_104, 99, 1, 0},
 412 /*105 */ { 8, s_6_105, 99, 1, 0},
 413 /*106 */ { 4, s_6_106, -1, 1, 0},
 414 /*107 */ { 5, s_6_107, -1, 1, 0},
 415 /*108 */ { 5, s_6_108, -1, 1, 0},
 416 /*109 */ { 5, s_6_109, -1, 1, 0},
 417 /*110 */ { 5, s_6_110, -1, 1, 0},
 418 /*111 */ { 5, s_6_111, -1, 1, 0},
 419 /*112 */ { 5, s_6_112, -1, 1, 0},
 420 /*113 */ { 5, s_6_113, -1, 1, 0},
 421 /*114 */ { 2, s_6_114, -1, 1, 0},
 422 /*115 */ { 2, s_6_115, -1, 1, 0},
 423 /*116 */ { 2, s_6_116, -1, 1, 0},
 424 /*117 */ { 4, s_6_117, -1, 1, 0},
 425 /*118 */ { 4, s_6_118, -1, 1, 0},
 426 /*119 */ { 4, s_6_119, -1, 1, 0}
 427 };
 428 
 429 static symbol s_7_0[1] = { 'a' };
 430 static symbol s_7_1[1] = { 'i' };
 431 static symbol s_7_2[1] = { 'o' };
 432 static symbol s_7_3[2] = { 'o', 's' };
 433 static symbol s_7_4[2] = { 0xC3, 0xA1 };
 434 static symbol s_7_5[2] = { 0xC3, 0xAD };
 435 static symbol s_7_6[2] = { 0xC3, 0xB3 };
 436 
 437 static struct among a_7[7] =
 438 {
 439 /*  0 */ { 1, s_7_0, -1, 1, 0},
 440 /*  1 */ { 1, s_7_1, -1, 1, 0},
 441 /*  2 */ { 1, s_7_2, -1, 1, 0},
 442 /*  3 */ { 2, s_7_3, -1, 1, 0},
 443 /*  4 */ { 2, s_7_4, -1, 1, 0},
 444 /*  5 */ { 2, s_7_5, -1, 1, 0},
 445 /*  6 */ { 2, s_7_6, -1, 1, 0}
 446 };
 447 
 448 static symbol s_8_0[1] = { 'e' };
 449 static symbol s_8_1[2] = { 0xC3, 0xA7 };
 450 static symbol s_8_2[2] = { 0xC3, 0xA9 };
 451 static symbol s_8_3[2] = { 0xC3, 0xAA };
 452 
 453 static struct among a_8[4] =
 454 {
 455 /*  0 */ { 1, s_8_0, -1, 1, 0},
 456 /*  1 */ { 2, s_8_1, -1, 2, 0},
 457 /*  2 */ { 2, s_8_2, -1, 1, 0},
 458 /*  3 */ { 2, s_8_3, -1, 1, 0}
 459 };
 460 
 461 static unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 };
 462 
 463 static symbol s_0[] = { 'a', '~' };
 464 static symbol s_1[] = { 'o', '~' };
 465 static symbol s_2[] = { 0xC3, 0xA3 };
 466 static symbol s_3[] = { 0xC3, 0xB5 };
 467 static symbol s_4[] = { 'l', 'o', 'g' };
 468 static symbol s_5[] = { 'u' };
 469 static symbol s_6[] = { 'e', 'n', 't', 'e' };
 470 static symbol s_7[] = { 'a', 't' };
 471 static symbol s_8[] = { 'a', 't' };
 472 static symbol s_9[] = { 'e' };
 473 static symbol s_10[] = { 'i', 'r' };
 474 static symbol s_11[] = { 'u' };
 475 static symbol s_12[] = { 'g' };
 476 static symbol s_13[] = { 'i' };
 477 static symbol s_14[] = { 'c' };
 478 static symbol s_15[] = { 'c' };
 479 static symbol s_16[] = { 'i' };
 480 static symbol s_17[] = { 'c' };
 481 
 482 static int r_prelude(struct SN_env * z) {
 483     int among_var;
 484     while(1) { /* repeat, line 36 */
 485 	int c = z->c;
 486 	z->bra = z->c; /* [, line 37 */
 487 	among_var = find_among(z, a_0, 3); /* substring, line 37 */
 488 	if (!(among_var)) goto lab0;
 489 	z->ket = z->c; /* ], line 37 */
 490 	switch(among_var) {
 491 	    case 0: goto lab0;
 492 	    case 1:
 493 		{   int ret;
 494 		    ret = slice_from_s(z, 2, s_0); /* <-, line 38 */
 495 		    if (ret < 0) return ret;
 496 		}
 497 		break;
 498 	    case 2:
 499 		{   int ret;
 500 		    ret = slice_from_s(z, 2, s_1); /* <-, line 39 */
 501 		    if (ret < 0) return ret;
 502 		}
 503 		break;
 504 	    case 3:
 505 		{   int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 506 		    if (c < 0) goto lab0;
 507 		    z->c = c; /* next, line 40 */
 508 		}
 509 		break;
 510 	}
 511 	continue;
 512     lab0:
 513 	z->c = c;
 514 	break;
 515     }
 516     return 1;
 517 }
 518 
 519 static int r_mark_regions(struct SN_env * z) {
 520     z->I[0] = z->l;
 521     z->I[1] = z->l;
 522     z->I[2] = z->l;
 523     {	int c = z->c; /* do, line 50 */
 524 	{   int c = z->c; /* or, line 52 */
 525 	    if (!(in_grouping_U(z, g_v, 97, 250))) goto lab2;
 526 	    {	int c = z->c; /* or, line 51 */
 527 		if (!(out_grouping_U(z, g_v, 97, 250))) goto lab4;
 528 		while(1) { /* gopast, line 51 */
 529 		    if (!(in_grouping_U(z, g_v, 97, 250))) goto lab5;
 530 		    break;
 531 		lab5:
 532 		    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 533 			if (c < 0) goto lab4;
 534 			z->c = c; /* gopast, line 51 */
 535 		    }
 536 		}
 537 		goto lab3;
 538 	    lab4:
 539 		z->c = c;
 540 		if (!(in_grouping_U(z, g_v, 97, 250))) goto lab2;
 541 		while(1) { /* gopast, line 51 */
 542 		    if (!(out_grouping_U(z, g_v, 97, 250))) goto lab6;
 543 		    break;
 544 		lab6:
 545 		    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 546 			if (c < 0) goto lab2;
 547 			z->c = c; /* gopast, line 51 */
 548 		    }
 549 		}
 550 	    }
 551 	lab3:
 552 	    goto lab1;
 553 	lab2:
 554 	    z->c = c;
 555 	    if (!(out_grouping_U(z, g_v, 97, 250))) goto lab0;
 556 	    {	int c = z->c; /* or, line 53 */
 557 		if (!(out_grouping_U(z, g_v, 97, 250))) goto lab8;
 558 		while(1) { /* gopast, line 53 */
 559 		    if (!(in_grouping_U(z, g_v, 97, 250))) goto lab9;
 560 		    break;
 561 		lab9:
 562 		    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 563 			if (c < 0) goto lab8;
 564 			z->c = c; /* gopast, line 53 */
 565 		    }
 566 		}
 567 		goto lab7;
 568 	    lab8:
 569 		z->c = c;
 570 		if (!(in_grouping_U(z, g_v, 97, 250))) goto lab0;
 571 		{   int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 572 		    if (c < 0) goto lab0;
 573 		    z->c = c; /* next, line 53 */
 574 		}
 575 	    }
 576 	lab7:
 577 	    ;
 578 	}
 579     lab1:
 580 	z->I[0] = z->c; /* setmark pV, line 54 */
 581     lab0:
 582 	z->c = c;
 583     }
 584     {	int c = z->c; /* do, line 56 */
 585 	while(1) { /* gopast, line 57 */
 586 	    if (!(in_grouping_U(z, g_v, 97, 250))) goto lab11;
 587 	    break;
 588 	lab11:
 589 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 590 		if (c < 0) goto lab10;
 591 		z->c = c; /* gopast, line 57 */
 592 	    }
 593 	}
 594 	while(1) { /* gopast, line 57 */
 595 	    if (!(out_grouping_U(z, g_v, 97, 250))) goto lab12;
 596 	    break;
 597 	lab12:
 598 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 599 		if (c < 0) goto lab10;
 600 		z->c = c; /* gopast, line 57 */
 601 	    }
 602 	}
 603 	z->I[1] = z->c; /* setmark p1, line 57 */
 604 	while(1) { /* gopast, line 58 */
 605 	    if (!(in_grouping_U(z, g_v, 97, 250))) goto lab13;
 606 	    break;
 607 	lab13:
 608 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 609 		if (c < 0) goto lab10;
 610 		z->c = c; /* gopast, line 58 */
 611 	    }
 612 	}
 613 	while(1) { /* gopast, line 58 */
 614 	    if (!(out_grouping_U(z, g_v, 97, 250))) goto lab14;
 615 	    break;
 616 	lab14:
 617 	    {	int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 618 		if (c < 0) goto lab10;
 619 		z->c = c; /* gopast, line 58 */
 620 	    }
 621 	}
 622 	z->I[2] = z->c; /* setmark p2, line 58 */
 623     lab10:
 624 	z->c = c;
 625     }
 626     return 1;
 627 }
 628 
 629 static int r_postlude(struct SN_env * z) {
 630     int among_var;
 631     while(1) { /* repeat, line 62 */
 632 	int c = z->c;
 633 	z->bra = z->c; /* [, line 63 */
 634 	among_var = find_among(z, a_1, 3); /* substring, line 63 */
 635 	if (!(among_var)) goto lab0;
 636 	z->ket = z->c; /* ], line 63 */
 637 	switch(among_var) {
 638 	    case 0: goto lab0;
 639 	    case 1:
 640 		{   int ret;
 641 		    ret = slice_from_s(z, 2, s_2); /* <-, line 64 */
 642 		    if (ret < 0) return ret;
 643 		}
 644 		break;
 645 	    case 2:
 646 		{   int ret;
 647 		    ret = slice_from_s(z, 2, s_3); /* <-, line 65 */
 648 		    if (ret < 0) return ret;
 649 		}
 650 		break;
 651 	    case 3:
 652 		{   int c = skip_utf8(z->p, z->c, 0, z->l, 1);
 653 		    if (c < 0) goto lab0;
 654 		    z->c = c; /* next, line 66 */
 655 		}
 656 		break;
 657 	}
 658 	continue;
 659     lab0:
 660 	z->c = c;
 661 	break;
 662     }
 663     return 1;
 664 }
 665 
 666 static int r_RV(struct SN_env * z) {
 667     if (!(z->I[0] <= z->c)) return 0;
 668     return 1;
 669 }
 670 
 671 static int r_R1(struct SN_env * z) {
 672     if (!(z->I[1] <= z->c)) return 0;
 673     return 1;
 674 }
 675 
 676 static int r_R2(struct SN_env * z) {
 677     if (!(z->I[2] <= z->c)) return 0;
 678     return 1;
 679 }
 680 
 681 static int r_standard_suffix(struct SN_env * z) {
 682     int among_var;
 683     z->ket = z->c; /* [, line 77 */
 684     among_var = find_among_b(z, a_5, 45); /* substring, line 77 */
 685     if (!(among_var)) return 0;
 686     z->bra = z->c; /* ], line 77 */
 687     switch(among_var) {
 688 	case 0: return 0;
 689 	case 1:
 690 	    {	int ret = r_R2(z);
 691 		if (ret == 0) return 0; /* call R2, line 93 */
 692 		if (ret < 0) return ret;
 693 	    }
 694 	    {	int ret;
 695 		ret = slice_del(z); /* delete, line 93 */
 696 		if (ret < 0) return ret;
 697 	    }
 698 	    break;
 699 	case 2:
 700 	    {	int ret = r_R2(z);
 701 		if (ret == 0) return 0; /* call R2, line 98 */
 702 		if (ret < 0) return ret;
 703 	    }
 704 	    {	int ret;
 705 		ret = slice_from_s(z, 3, s_4); /* <-, line 98 */
 706 		if (ret < 0) return ret;
 707 	    }
 708 	    break;
 709 	case 3:
 710 	    {	int ret = r_R2(z);
 711 		if (ret == 0) return 0; /* call R2, line 102 */
 712 		if (ret < 0) return ret;
 713 	    }
 714 	    {	int ret;
 715 		ret = slice_from_s(z, 1, s_5); /* <-, line 102 */
 716 		if (ret < 0) return ret;
 717 	    }
 718 	    break;
 719 	case 4:
 720 	    {	int ret = r_R2(z);
 721 		if (ret == 0) return 0; /* call R2, line 106 */
 722 		if (ret < 0) return ret;
 723 	    }
 724 	    {	int ret;
 725 		ret = slice_from_s(z, 4, s_6); /* <-, line 106 */
 726 		if (ret < 0) return ret;
 727 	    }
 728 	    break;
 729 	case 5:
 730 	    {	int ret = r_R1(z);
 731 		if (ret == 0) return 0; /* call R1, line 110 */
 732 		if (ret < 0) return ret;
 733 	    }
 734 	    {	int ret;
 735 		ret = slice_del(z); /* delete, line 110 */
 736 		if (ret < 0) return ret;
 737 	    }
 738 	    {	int m = z->l - z->c; (void) m; /* try, line 111 */
 739 		z->ket = z->c; /* [, line 112 */
 740 		among_var = find_among_b(z, a_2, 4); /* substring, line 112 */
 741 		if (!(among_var)) { z->c = z->l - m; goto lab0; }
 742 		z->bra = z->c; /* ], line 112 */
 743 		{   int ret = r_R2(z);
 744 		    if (ret == 0) { z->c = z->l - m; goto lab0; } /* call R2, line 112 */
 745 		    if (ret < 0) return ret;
 746 		}
 747 		{   int ret;
 748 		    ret = slice_del(z); /* delete, line 112 */
 749 		    if (ret < 0) return ret;
 750 		}
 751 		switch(among_var) {
 752 		    case 0: { z->c = z->l - m; goto lab0; }
 753 		    case 1:
 754 			z->ket = z->c; /* [, line 113 */
 755 			if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m; goto lab0; }
 756 			z->bra = z->c; /* ], line 113 */
 757 			{   int ret = r_R2(z);
 758 			    if (ret == 0) { z->c = z->l - m; goto lab0; } /* call R2, line 113 */
 759 			    if (ret < 0) return ret;
 760 			}
 761 			{   int ret;
 762 			    ret = slice_del(z); /* delete, line 113 */
 763 			    if (ret < 0) return ret;
 764 			}
 765 			break;
 766 		}
 767 	    lab0:
 768 		;
 769 	    }
 770 	    break;
 771 	case 6:
 772 	    {	int ret = r_R2(z);
 773 		if (ret == 0) return 0; /* call R2, line 122 */
 774 		if (ret < 0) return ret;
 775 	    }
 776 	    {	int ret;
 777 		ret = slice_del(z); /* delete, line 122 */
 778 		if (ret < 0) return ret;
 779 	    }
 780 	    {	int m = z->l - z->c; (void) m; /* try, line 123 */
 781 		z->ket = z->c; /* [, line 124 */
 782 		among_var = find_among_b(z, a_3, 3); /* substring, line 124 */
 783 		if (!(among_var)) { z->c = z->l - m; goto lab1; }
 784 		z->bra = z->c; /* ], line 124 */
 785 		switch(among_var) {
 786 		    case 0: { z->c = z->l - m; goto lab1; }
 787 		    case 1:
 788 			{   int ret = r_R2(z);
 789 			    if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 127 */
 790 			    if (ret < 0) return ret;
 791 			}
 792 			{   int ret;
 793 			    ret = slice_del(z); /* delete, line 127 */
 794 			    if (ret < 0) return ret;
 795 			}
 796 			break;
 797 		}
 798 	    lab1:
 799 		;
 800 	    }
 801 	    break;
 802 	case 7:
 803 	    {	int ret = r_R2(z);
 804 		if (ret == 0) return 0; /* call R2, line 134 */
 805 		if (ret < 0) return ret;
 806 	    }
 807 	    {	int ret;
 808 		ret = slice_del(z); /* delete, line 134 */
 809 		if (ret < 0) return ret;
 810 	    }
 811 	    {	int m = z->l - z->c; (void) m; /* try, line 135 */
 812 		z->ket = z->c; /* [, line 136 */
 813 		among_var = find_among_b(z, a_4, 3); /* substring, line 136 */
 814 		if (!(among_var)) { z->c = z->l - m; goto lab2; }
 815 		z->bra = z->c; /* ], line 136 */
 816 		switch(among_var) {
 817 		    case 0: { z->c = z->l - m; goto lab2; }
 818 		    case 1:
 819 			{   int ret = r_R2(z);
 820 			    if (ret == 0) { z->c = z->l - m; goto lab2; } /* call R2, line 139 */
 821 			    if (ret < 0) return ret;
 822 			}
 823 			{   int ret;
 824 			    ret = slice_del(z); /* delete, line 139 */
 825 			    if (ret < 0) return ret;
 826 			}
 827 			break;
 828 		}
 829 	    lab2:
 830 		;
 831 	    }
 832 	    break;
 833 	case 8:
 834 	    {	int ret = r_R2(z);
 835 		if (ret == 0) return 0; /* call R2, line 146 */
 836 		if (ret < 0) return ret;
 837 	    }
 838 	    {	int ret;
 839 		ret = slice_del(z); /* delete, line 146 */
 840 		if (ret < 0) return ret;
 841 	    }
 842 	    {	int m = z->l - z->c; (void) m; /* try, line 147 */
 843 		z->ket = z->c; /* [, line 148 */
 844 		if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m; goto lab3; }
 845 		z->bra = z->c; /* ], line 148 */
 846 		{   int ret = r_R2(z);
 847 		    if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 148 */
 848 		    if (ret < 0) return ret;
 849 		}
 850 		{   int ret;
 851 		    ret = slice_del(z); /* delete, line 148 */
 852 		    if (ret < 0) return ret;
 853 		}
 854 	    lab3:
 855 		;
 856 	    }
 857 	    break;
 858 	case 9:
 859 	    {	int ret = r_RV(z);
 860 		if (ret == 0) return 0; /* call RV, line 153 */
 861 		if (ret < 0) return ret;
 862 	    }
 863 	    if (!(eq_s_b(z, 1, s_9))) return 0;
 864 	    {	int ret;
 865 		ret = slice_from_s(z, 2, s_10); /* <-, line 154 */
 866 		if (ret < 0) return ret;
 867 	    }
 868 	    break;
 869     }
 870     return 1;
 871 }
 872 
 873 static int r_verb_suffix(struct SN_env * z) {
 874     int among_var;
 875     {	int m3; /* setlimit, line 159 */
 876 	int m = z->l - z->c; (void) m;
 877 	if (z->c < z->I[0]) return 0;
 878 	z->c = z->I[0]; /* tomark, line 159 */
 879 	m3 = z->lb; z->lb = z->c;
 880 	z->c = z->l - m;
 881 	z->ket = z->c; /* [, line 160 */
 882 	among_var = find_among_b(z, a_6, 120); /* substring, line 160 */
 883 	if (!(among_var)) { z->lb = m3; return 0; }
 884 	z->bra = z->c; /* ], line 160 */
 885 	switch(among_var) {
 886 	    case 0: { z->lb = m3; return 0; }
 887 	    case 1:
 888 		{   int ret;
 889 		    ret = slice_del(z); /* delete, line 179 */
 890 		    if (ret < 0) return ret;
 891 		}
 892 		break;
 893 	}
 894 	z->lb = m3;
 895     }
 896     return 1;
 897 }
 898 
 899 static int r_residual_suffix(struct SN_env * z) {
 900     int among_var;
 901     z->ket = z->c; /* [, line 184 */
 902     among_var = find_among_b(z, a_7, 7); /* substring, line 184 */
 903     if (!(among_var)) return 0;
 904     z->bra = z->c; /* ], line 184 */
 905     switch(among_var) {
 906 	case 0: return 0;
 907 	case 1:
 908 	    {	int ret = r_RV(z);
 909 		if (ret == 0) return 0; /* call RV, line 187 */
 910 		if (ret < 0) return ret;
 911 	    }
 912 	    {	int ret;
 913 		ret = slice_del(z); /* delete, line 187 */
 914 		if (ret < 0) return ret;
 915 	    }
 916 	    break;
 917     }
 918     return 1;
 919 }
 920 
 921 static int r_residual_form(struct SN_env * z) {
 922     int among_var;
 923     z->ket = z->c; /* [, line 192 */
 924     among_var = find_among_b(z, a_8, 4); /* substring, line 192 */
 925     if (!(among_var)) return 0;
 926     z->bra = z->c; /* ], line 192 */
 927     switch(among_var) {
 928 	case 0: return 0;
 929 	case 1:
 930 	    {	int ret = r_RV(z);
 931 		if (ret == 0) return 0; /* call RV, line 194 */
 932 		if (ret < 0) return ret;
 933 	    }
 934 	    {	int ret;
 935 		ret = slice_del(z); /* delete, line 194 */
 936 		if (ret < 0) return ret;
 937 	    }
 938 	    z->ket = z->c; /* [, line 194 */
 939 	    {	int m = z->l - z->c; (void) m; /* or, line 194 */
 940 		if (!(eq_s_b(z, 1, s_11))) goto lab1;
 941 		z->bra = z->c; /* ], line 194 */
 942 		{   int m_test = z->l - z->c; /* test, line 194 */
 943 		    if (!(eq_s_b(z, 1, s_12))) goto lab1;
 944 		    z->c = z->l - m_test;
 945 		}
 946 		goto lab0;
 947 	    lab1:
 948 		z->c = z->l - m;
 949 		if (!(eq_s_b(z, 1, s_13))) return 0;
 950 		z->bra = z->c; /* ], line 195 */
 951 		{   int m_test = z->l - z->c; /* test, line 195 */
 952 		    if (!(eq_s_b(z, 1, s_14))) return 0;
 953 		    z->c = z->l - m_test;
 954 		}
 955 	    }
 956 	lab0:
 957 	    {	int ret = r_RV(z);
 958 		if (ret == 0) return 0; /* call RV, line 195 */
 959 		if (ret < 0) return ret;
 960 	    }
 961 	    {	int ret;
 962 		ret = slice_del(z); /* delete, line 195 */
 963 		if (ret < 0) return ret;
 964 	    }
 965 	    break;
 966 	case 2:
 967 	    {	int ret;
 968 		ret = slice_from_s(z, 1, s_15); /* <-, line 196 */
 969 		if (ret < 0) return ret;
 970 	    }
 971 	    break;
 972     }
 973     return 1;
 974 }
 975 
 976 extern int portuguese_UTF_8_stem(struct SN_env * z) {
 977     {	int c = z->c; /* do, line 202 */
 978 	{   int ret = r_prelude(z);
 979 	    if (ret == 0) goto lab0; /* call prelude, line 202 */
 980 	    if (ret < 0) return ret;
 981 	}
 982     lab0:
 983 	z->c = c;
 984     }
 985     {	int c = z->c; /* do, line 203 */
 986 	{   int ret = r_mark_regions(z);
 987 	    if (ret == 0) goto lab1; /* call mark_regions, line 203 */
 988 	    if (ret < 0) return ret;
 989 	}
 990     lab1:
 991 	z->c = c;
 992     }
 993     z->lb = z->c; z->c = z->l; /* backwards, line 204 */
 994 
 995     {	int m = z->l - z->c; (void) m; /* do, line 205 */
 996 	{   int m = z->l - z->c; (void) m; /* or, line 209 */
 997 	    {	int m = z->l - z->c; (void) m; /* and, line 207 */
 998 		{   int m = z->l - z->c; (void) m; /* or, line 206 */
 999 		    {	int ret = r_standard_suffix(z);
1000 			if (ret == 0) goto lab6; /* call standard_suffix, line 206 */
1001 			if (ret < 0) return ret;
1002 		    }
1003 		    goto lab5;
1004 		lab6:
1005 		    z->c = z->l - m;
1006 		    {	int ret = r_verb_suffix(z);
1007 			if (ret == 0) goto lab4; /* call verb_suffix, line 206 */
1008 			if (ret < 0) return ret;
1009 		    }
1010 		}
1011 	    lab5:
1012 		z->c = z->l - m;
1013 		{   int m = z->l - z->c; (void) m; /* do, line 207 */
1014 		    z->ket = z->c; /* [, line 207 */
1015 		    if (!(eq_s_b(z, 1, s_16))) goto lab7;
1016 		    z->bra = z->c; /* ], line 207 */
1017 		    {	int m_test = z->l - z->c; /* test, line 207 */
1018 			if (!(eq_s_b(z, 1, s_17))) goto lab7;
1019 			z->c = z->l - m_test;
1020 		    }
1021 		    {	int ret = r_RV(z);
1022 			if (ret == 0) goto lab7; /* call RV, line 207 */
1023 			if (ret < 0) return ret;
1024 		    }
1025 		    {	int ret;
1026 			ret = slice_del(z); /* delete, line 207 */
1027 			if (ret < 0) return ret;
1028 		    }
1029 		lab7:
1030 		    z->c = z->l - m;
1031 		}
1032 	    }
1033 	    goto lab3;
1034 	lab4:
1035 	    z->c = z->l - m;
1036 	    {	int ret = r_residual_suffix(z);
1037 		if (ret == 0) goto lab2; /* call residual_suffix, line 209 */
1038 		if (ret < 0) return ret;
1039 	    }
1040 	}
1041     lab3:
1042     lab2:
1043 	z->c = z->l - m;
1044     }
1045     {	int m = z->l - z->c; (void) m; /* do, line 211 */
1046 	{   int ret = r_residual_form(z);
1047 	    if (ret == 0) goto lab8; /* call residual_form, line 211 */
1048 	    if (ret < 0) return ret;
1049 	}
1050     lab8:
1051 	z->c = z->l - m;
1052     }
1053     z->c = z->lb;
1054     {	int c = z->c; /* do, line 213 */
1055 	{   int ret = r_postlude(z);
1056 	    if (ret == 0) goto lab9; /* call postlude, line 213 */
1057 	    if (ret < 0) return ret;
1058 	}
1059     lab9:
1060 	z->c = c;
1061     }
1062     return 1;
1063 }
1064 
1065 extern struct SN_env * portuguese_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
1066 
1067 extern void portuguese_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }