tracker-0.16.2/src/libstemmer/stem_UTF_8_hungarian.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 hungarian_UTF_8_stem(struct SN_env * z);
  20 
  21 static int r_double(struct SN_env * z);
  22 static int r_undouble(struct SN_env * z);
  23 static int r_factive(struct SN_env * z);
  24 static int r_instrum(struct SN_env * z);
  25 static int r_plur_owner(struct SN_env * z);
  26 static int r_sing_owner(struct SN_env * z);
  27 static int r_owned(struct SN_env * z);
  28 static int r_plural(struct SN_env * z);
  29 static int r_case_other(struct SN_env * z);
  30 static int r_case_special(struct SN_env * z);
  31 static int r_case(struct SN_env * z);
  32 static int r_v_ending(struct SN_env * z);
  33 static int r_R1(struct SN_env * z);
  34 static int r_mark_regions(struct SN_env * z);
  35 
  36 extern struct SN_env * hungarian_UTF_8_create_env(void);
  37 extern void hungarian_UTF_8_close_env(struct SN_env * z);
  38 
  39 static symbol s_0_0[2] = { 'c', 's' };
  40 static symbol s_0_1[3] = { 'd', 'z', 's' };
  41 static symbol s_0_2[2] = { 'g', 'y' };
  42 static symbol s_0_3[2] = { 'l', 'y' };
  43 static symbol s_0_4[2] = { 'n', 'y' };
  44 static symbol s_0_5[2] = { 's', 'z' };
  45 static symbol s_0_6[2] = { 't', 'y' };
  46 static symbol s_0_7[2] = { 'z', 's' };
  47 
  48 static struct among a_0[8] =
  49 {
  50 /*  0 */ { 2, s_0_0, -1, -1, 0},
  51 /*  1 */ { 3, s_0_1, -1, -1, 0},
  52 /*  2 */ { 2, s_0_2, -1, -1, 0},
  53 /*  3 */ { 2, s_0_3, -1, -1, 0},
  54 /*  4 */ { 2, s_0_4, -1, -1, 0},
  55 /*  5 */ { 2, s_0_5, -1, -1, 0},
  56 /*  6 */ { 2, s_0_6, -1, -1, 0},
  57 /*  7 */ { 2, s_0_7, -1, -1, 0}
  58 };
  59 
  60 static symbol s_1_0[2] = { 0xC3, 0xA1 };
  61 static symbol s_1_1[2] = { 0xC3, 0xA9 };
  62 
  63 static struct among a_1[2] =
  64 {
  65 /*  0 */ { 2, s_1_0, -1, 1, 0},
  66 /*  1 */ { 2, s_1_1, -1, 2, 0}
  67 };
  68 
  69 static symbol s_2_0[2] = { 'b', 'b' };
  70 static symbol s_2_1[2] = { 'c', 'c' };
  71 static symbol s_2_2[2] = { 'd', 'd' };
  72 static symbol s_2_3[2] = { 'f', 'f' };
  73 static symbol s_2_4[2] = { 'g', 'g' };
  74 static symbol s_2_5[2] = { 'j', 'j' };
  75 static symbol s_2_6[2] = { 'k', 'k' };
  76 static symbol s_2_7[2] = { 'l', 'l' };
  77 static symbol s_2_8[2] = { 'm', 'm' };
  78 static symbol s_2_9[2] = { 'n', 'n' };
  79 static symbol s_2_10[2] = { 'p', 'p' };
  80 static symbol s_2_11[2] = { 'r', 'r' };
  81 static symbol s_2_12[3] = { 'c', 'c', 's' };
  82 static symbol s_2_13[2] = { 's', 's' };
  83 static symbol s_2_14[3] = { 'z', 'z', 's' };
  84 static symbol s_2_15[2] = { 't', 't' };
  85 static symbol s_2_16[2] = { 'v', 'v' };
  86 static symbol s_2_17[3] = { 'g', 'g', 'y' };
  87 static symbol s_2_18[3] = { 'l', 'l', 'y' };
  88 static symbol s_2_19[3] = { 'n', 'n', 'y' };
  89 static symbol s_2_20[3] = { 't', 't', 'y' };
  90 static symbol s_2_21[3] = { 's', 's', 'z' };
  91 static symbol s_2_22[2] = { 'z', 'z' };
  92 
  93 static struct among a_2[23] =
  94 {
  95 /*  0 */ { 2, s_2_0, -1, -1, 0},
  96 /*  1 */ { 2, s_2_1, -1, -1, 0},
  97 /*  2 */ { 2, s_2_2, -1, -1, 0},
  98 /*  3 */ { 2, s_2_3, -1, -1, 0},
  99 /*  4 */ { 2, s_2_4, -1, -1, 0},
 100 /*  5 */ { 2, s_2_5, -1, -1, 0},
 101 /*  6 */ { 2, s_2_6, -1, -1, 0},
 102 /*  7 */ { 2, s_2_7, -1, -1, 0},
 103 /*  8 */ { 2, s_2_8, -1, -1, 0},
 104 /*  9 */ { 2, s_2_9, -1, -1, 0},
 105 /* 10 */ { 2, s_2_10, -1, -1, 0},
 106 /* 11 */ { 2, s_2_11, -1, -1, 0},
 107 /* 12 */ { 3, s_2_12, -1, -1, 0},
 108 /* 13 */ { 2, s_2_13, -1, -1, 0},
 109 /* 14 */ { 3, s_2_14, -1, -1, 0},
 110 /* 15 */ { 2, s_2_15, -1, -1, 0},
 111 /* 16 */ { 2, s_2_16, -1, -1, 0},
 112 /* 17 */ { 3, s_2_17, -1, -1, 0},
 113 /* 18 */ { 3, s_2_18, -1, -1, 0},
 114 /* 19 */ { 3, s_2_19, -1, -1, 0},
 115 /* 20 */ { 3, s_2_20, -1, -1, 0},
 116 /* 21 */ { 3, s_2_21, -1, -1, 0},
 117 /* 22 */ { 2, s_2_22, -1, -1, 0}
 118 };
 119 
 120 static symbol s_3_0[2] = { 'a', 'l' };
 121 static symbol s_3_1[2] = { 'e', 'l' };
 122 
 123 static struct among a_3[2] =
 124 {
 125 /*  0 */ { 2, s_3_0, -1, 1, 0},
 126 /*  1 */ { 2, s_3_1, -1, 2, 0}
 127 };
 128 
 129 static symbol s_4_0[2] = { 'b', 'a' };
 130 static symbol s_4_1[2] = { 'r', 'a' };
 131 static symbol s_4_2[2] = { 'b', 'e' };
 132 static symbol s_4_3[2] = { 'r', 'e' };
 133 static symbol s_4_4[2] = { 'i', 'g' };
 134 static symbol s_4_5[3] = { 'n', 'a', 'k' };
 135 static symbol s_4_6[3] = { 'n', 'e', 'k' };
 136 static symbol s_4_7[3] = { 'v', 'a', 'l' };
 137 static symbol s_4_8[3] = { 'v', 'e', 'l' };
 138 static symbol s_4_9[2] = { 'u', 'l' };
 139 static symbol s_4_10[4] = { 'b', 0xC5, 0x91, 'l' };
 140 static symbol s_4_11[4] = { 'r', 0xC5, 0x91, 'l' };
 141 static symbol s_4_12[4] = { 't', 0xC5, 0x91, 'l' };
 142 static symbol s_4_13[4] = { 'n', 0xC3, 0xA1, 'l' };
 143 static symbol s_4_14[4] = { 'n', 0xC3, 0xA9, 'l' };
 144 static symbol s_4_15[4] = { 'b', 0xC3, 0xB3, 'l' };
 145 static symbol s_4_16[4] = { 'r', 0xC3, 0xB3, 'l' };
 146 static symbol s_4_17[4] = { 't', 0xC3, 0xB3, 'l' };
 147 static symbol s_4_18[3] = { 0xC3, 0xBC, 'l' };
 148 static symbol s_4_19[1] = { 'n' };
 149 static symbol s_4_20[2] = { 'a', 'n' };
 150 static symbol s_4_21[3] = { 'b', 'a', 'n' };
 151 static symbol s_4_22[2] = { 'e', 'n' };
 152 static symbol s_4_23[3] = { 'b', 'e', 'n' };
 153 static symbol s_4_24[7] = { 'k', 0xC3, 0xA9, 'p', 'p', 'e', 'n' };
 154 static symbol s_4_25[2] = { 'o', 'n' };
 155 static symbol s_4_26[3] = { 0xC3, 0xB6, 'n' };
 156 static symbol s_4_27[5] = { 'k', 0xC3, 0xA9, 'p', 'p' };
 157 static symbol s_4_28[3] = { 'k', 'o', 'r' };
 158 static symbol s_4_29[1] = { 't' };
 159 static symbol s_4_30[2] = { 'a', 't' };
 160 static symbol s_4_31[2] = { 'e', 't' };
 161 static symbol s_4_32[5] = { 'k', 0xC3, 0xA9, 'n', 't' };
 162 static symbol s_4_33[7] = { 'a', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
 163 static symbol s_4_34[7] = { 'e', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
 164 static symbol s_4_35[7] = { 'o', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
 165 static symbol s_4_36[2] = { 'o', 't' };
 166 static symbol s_4_37[4] = { 0xC3, 0xA9, 'r', 't' };
 167 static symbol s_4_38[3] = { 0xC3, 0xB6, 't' };
 168 static symbol s_4_39[3] = { 'h', 'e', 'z' };
 169 static symbol s_4_40[3] = { 'h', 'o', 'z' };
 170 static symbol s_4_41[4] = { 'h', 0xC3, 0xB6, 'z' };
 171 static symbol s_4_42[3] = { 'v', 0xC3, 0xA1 };
 172 static symbol s_4_43[3] = { 'v', 0xC3, 0xA9 };
 173 
 174 static struct among a_4[44] =
 175 {
 176 /*  0 */ { 2, s_4_0, -1, -1, 0},
 177 /*  1 */ { 2, s_4_1, -1, -1, 0},
 178 /*  2 */ { 2, s_4_2, -1, -1, 0},
 179 /*  3 */ { 2, s_4_3, -1, -1, 0},
 180 /*  4 */ { 2, s_4_4, -1, -1, 0},
 181 /*  5 */ { 3, s_4_5, -1, -1, 0},
 182 /*  6 */ { 3, s_4_6, -1, -1, 0},
 183 /*  7 */ { 3, s_4_7, -1, -1, 0},
 184 /*  8 */ { 3, s_4_8, -1, -1, 0},
 185 /*  9 */ { 2, s_4_9, -1, -1, 0},
 186 /* 10 */ { 4, s_4_10, -1, -1, 0},
 187 /* 11 */ { 4, s_4_11, -1, -1, 0},
 188 /* 12 */ { 4, s_4_12, -1, -1, 0},
 189 /* 13 */ { 4, s_4_13, -1, -1, 0},
 190 /* 14 */ { 4, s_4_14, -1, -1, 0},
 191 /* 15 */ { 4, s_4_15, -1, -1, 0},
 192 /* 16 */ { 4, s_4_16, -1, -1, 0},
 193 /* 17 */ { 4, s_4_17, -1, -1, 0},
 194 /* 18 */ { 3, s_4_18, -1, -1, 0},
 195 /* 19 */ { 1, s_4_19, -1, -1, 0},
 196 /* 20 */ { 2, s_4_20, 19, -1, 0},
 197 /* 21 */ { 3, s_4_21, 20, -1, 0},
 198 /* 22 */ { 2, s_4_22, 19, -1, 0},
 199 /* 23 */ { 3, s_4_23, 22, -1, 0},
 200 /* 24 */ { 7, s_4_24, 22, -1, 0},
 201 /* 25 */ { 2, s_4_25, 19, -1, 0},
 202 /* 26 */ { 3, s_4_26, 19, -1, 0},
 203 /* 27 */ { 5, s_4_27, -1, -1, 0},
 204 /* 28 */ { 3, s_4_28, -1, -1, 0},
 205 /* 29 */ { 1, s_4_29, -1, -1, 0},
 206 /* 30 */ { 2, s_4_30, 29, -1, 0},
 207 /* 31 */ { 2, s_4_31, 29, -1, 0},
 208 /* 32 */ { 5, s_4_32, 29, -1, 0},
 209 /* 33 */ { 7, s_4_33, 32, -1, 0},
 210 /* 34 */ { 7, s_4_34, 32, -1, 0},
 211 /* 35 */ { 7, s_4_35, 32, -1, 0},
 212 /* 36 */ { 2, s_4_36, 29, -1, 0},
 213 /* 37 */ { 4, s_4_37, 29, -1, 0},
 214 /* 38 */ { 3, s_4_38, 29, -1, 0},
 215 /* 39 */ { 3, s_4_39, -1, -1, 0},
 216 /* 40 */ { 3, s_4_40, -1, -1, 0},
 217 /* 41 */ { 4, s_4_41, -1, -1, 0},
 218 /* 42 */ { 3, s_4_42, -1, -1, 0},
 219 /* 43 */ { 3, s_4_43, -1, -1, 0}
 220 };
 221 
 222 static symbol s_5_0[3] = { 0xC3, 0xA1, 'n' };
 223 static symbol s_5_1[3] = { 0xC3, 0xA9, 'n' };
 224 static symbol s_5_2[8] = { 0xC3, 0xA1, 'n', 'k', 0xC3, 0xA9, 'n', 't' };
 225 
 226 static struct among a_5[3] =
 227 {
 228 /*  0 */ { 3, s_5_0, -1, 2, 0},
 229 /*  1 */ { 3, s_5_1, -1, 1, 0},
 230 /*  2 */ { 8, s_5_2, -1, 3, 0}
 231 };
 232 
 233 static symbol s_6_0[4] = { 's', 't', 'u', 'l' };
 234 static symbol s_6_1[5] = { 'a', 's', 't', 'u', 'l' };
 235 static symbol s_6_2[6] = { 0xC3, 0xA1, 's', 't', 'u', 'l' };
 236 static symbol s_6_3[5] = { 's', 't', 0xC3, 0xBC, 'l' };
 237 static symbol s_6_4[6] = { 'e', 's', 't', 0xC3, 0xBC, 'l' };
 238 static symbol s_6_5[7] = { 0xC3, 0xA9, 's', 't', 0xC3, 0xBC, 'l' };
 239 
 240 static struct among a_6[6] =
 241 {
 242 /*  0 */ { 4, s_6_0, -1, 2, 0},
 243 /*  1 */ { 5, s_6_1, 0, 1, 0},
 244 /*  2 */ { 6, s_6_2, 0, 3, 0},
 245 /*  3 */ { 5, s_6_3, -1, 2, 0},
 246 /*  4 */ { 6, s_6_4, 3, 1, 0},
 247 /*  5 */ { 7, s_6_5, 3, 4, 0}
 248 };
 249 
 250 static symbol s_7_0[2] = { 0xC3, 0xA1 };
 251 static symbol s_7_1[2] = { 0xC3, 0xA9 };
 252 
 253 static struct among a_7[2] =
 254 {
 255 /*  0 */ { 2, s_7_0, -1, 1, 0},
 256 /*  1 */ { 2, s_7_1, -1, 2, 0}
 257 };
 258 
 259 static symbol s_8_0[1] = { 'k' };
 260 static symbol s_8_1[2] = { 'a', 'k' };
 261 static symbol s_8_2[2] = { 'e', 'k' };
 262 static symbol s_8_3[2] = { 'o', 'k' };
 263 static symbol s_8_4[3] = { 0xC3, 0xA1, 'k' };
 264 static symbol s_8_5[3] = { 0xC3, 0xA9, 'k' };
 265 static symbol s_8_6[3] = { 0xC3, 0xB6, 'k' };
 266 
 267 static struct among a_8[7] =
 268 {
 269 /*  0 */ { 1, s_8_0, -1, 7, 0},
 270 /*  1 */ { 2, s_8_1, 0, 4, 0},
 271 /*  2 */ { 2, s_8_2, 0, 6, 0},
 272 /*  3 */ { 2, s_8_3, 0, 5, 0},
 273 /*  4 */ { 3, s_8_4, 0, 1, 0},
 274 /*  5 */ { 3, s_8_5, 0, 2, 0},
 275 /*  6 */ { 3, s_8_6, 0, 3, 0}
 276 };
 277 
 278 static symbol s_9_0[3] = { 0xC3, 0xA9, 'i' };
 279 static symbol s_9_1[5] = { 0xC3, 0xA1, 0xC3, 0xA9, 'i' };
 280 static symbol s_9_2[5] = { 0xC3, 0xA9, 0xC3, 0xA9, 'i' };
 281 static symbol s_9_3[2] = { 0xC3, 0xA9 };
 282 static symbol s_9_4[3] = { 'k', 0xC3, 0xA9 };
 283 static symbol s_9_5[4] = { 'a', 'k', 0xC3, 0xA9 };
 284 static symbol s_9_6[4] = { 'e', 'k', 0xC3, 0xA9 };
 285 static symbol s_9_7[4] = { 'o', 'k', 0xC3, 0xA9 };
 286 static symbol s_9_8[5] = { 0xC3, 0xA1, 'k', 0xC3, 0xA9 };
 287 static symbol s_9_9[5] = { 0xC3, 0xA9, 'k', 0xC3, 0xA9 };
 288 static symbol s_9_10[5] = { 0xC3, 0xB6, 'k', 0xC3, 0xA9 };
 289 static symbol s_9_11[4] = { 0xC3, 0xA9, 0xC3, 0xA9 };
 290 
 291 static struct among a_9[12] =
 292 {
 293 /*  0 */ { 3, s_9_0, -1, 7, 0},
 294 /*  1 */ { 5, s_9_1, 0, 6, 0},
 295 /*  2 */ { 5, s_9_2, 0, 5, 0},
 296 /*  3 */ { 2, s_9_3, -1, 9, 0},
 297 /*  4 */ { 3, s_9_4, 3, 4, 0},
 298 /*  5 */ { 4, s_9_5, 4, 1, 0},
 299 /*  6 */ { 4, s_9_6, 4, 1, 0},
 300 /*  7 */ { 4, s_9_7, 4, 1, 0},
 301 /*  8 */ { 5, s_9_8, 4, 3, 0},
 302 /*  9 */ { 5, s_9_9, 4, 2, 0},
 303 /* 10 */ { 5, s_9_10, 4, 1, 0},
 304 /* 11 */ { 4, s_9_11, 3, 8, 0}
 305 };
 306 
 307 static symbol s_10_0[1] = { 'a' };
 308 static symbol s_10_1[2] = { 'j', 'a' };
 309 static symbol s_10_2[1] = { 'd' };
 310 static symbol s_10_3[2] = { 'a', 'd' };
 311 static symbol s_10_4[2] = { 'e', 'd' };
 312 static symbol s_10_5[2] = { 'o', 'd' };
 313 static symbol s_10_6[3] = { 0xC3, 0xA1, 'd' };
 314 static symbol s_10_7[3] = { 0xC3, 0xA9, 'd' };
 315 static symbol s_10_8[3] = { 0xC3, 0xB6, 'd' };
 316 static symbol s_10_9[1] = { 'e' };
 317 static symbol s_10_10[2] = { 'j', 'e' };
 318 static symbol s_10_11[2] = { 'n', 'k' };
 319 static symbol s_10_12[3] = { 'u', 'n', 'k' };
 320 static symbol s_10_13[4] = { 0xC3, 0xA1, 'n', 'k' };
 321 static symbol s_10_14[4] = { 0xC3, 0xA9, 'n', 'k' };
 322 static symbol s_10_15[4] = { 0xC3, 0xBC, 'n', 'k' };
 323 static symbol s_10_16[2] = { 'u', 'k' };
 324 static symbol s_10_17[3] = { 'j', 'u', 'k' };
 325 static symbol s_10_18[5] = { 0xC3, 0xA1, 'j', 'u', 'k' };
 326 static symbol s_10_19[3] = { 0xC3, 0xBC, 'k' };
 327 static symbol s_10_20[4] = { 'j', 0xC3, 0xBC, 'k' };
 328 static symbol s_10_21[6] = { 0xC3, 0xA9, 'j', 0xC3, 0xBC, 'k' };
 329 static symbol s_10_22[1] = { 'm' };
 330 static symbol s_10_23[2] = { 'a', 'm' };
 331 static symbol s_10_24[2] = { 'e', 'm' };
 332 static symbol s_10_25[2] = { 'o', 'm' };
 333 static symbol s_10_26[3] = { 0xC3, 0xA1, 'm' };
 334 static symbol s_10_27[3] = { 0xC3, 0xA9, 'm' };
 335 static symbol s_10_28[1] = { 'o' };
 336 static symbol s_10_29[2] = { 0xC3, 0xA1 };
 337 static symbol s_10_30[2] = { 0xC3, 0xA9 };
 338 
 339 static struct among a_10[31] =
 340 {
 341 /*  0 */ { 1, s_10_0, -1, 18, 0},
 342 /*  1 */ { 2, s_10_1, 0, 17, 0},
 343 /*  2 */ { 1, s_10_2, -1, 16, 0},
 344 /*  3 */ { 2, s_10_3, 2, 13, 0},
 345 /*  4 */ { 2, s_10_4, 2, 13, 0},
 346 /*  5 */ { 2, s_10_5, 2, 13, 0},
 347 /*  6 */ { 3, s_10_6, 2, 14, 0},
 348 /*  7 */ { 3, s_10_7, 2, 15, 0},
 349 /*  8 */ { 3, s_10_8, 2, 13, 0},
 350 /*  9 */ { 1, s_10_9, -1, 18, 0},
 351 /* 10 */ { 2, s_10_10, 9, 17, 0},
 352 /* 11 */ { 2, s_10_11, -1, 4, 0},
 353 /* 12 */ { 3, s_10_12, 11, 1, 0},
 354 /* 13 */ { 4, s_10_13, 11, 2, 0},
 355 /* 14 */ { 4, s_10_14, 11, 3, 0},
 356 /* 15 */ { 4, s_10_15, 11, 1, 0},
 357 /* 16 */ { 2, s_10_16, -1, 8, 0},
 358 /* 17 */ { 3, s_10_17, 16, 7, 0},
 359 /* 18 */ { 5, s_10_18, 17, 5, 0},
 360 /* 19 */ { 3, s_10_19, -1, 8, 0},
 361 /* 20 */ { 4, s_10_20, 19, 7, 0},
 362 /* 21 */ { 6, s_10_21, 20, 6, 0},
 363 /* 22 */ { 1, s_10_22, -1, 12, 0},
 364 /* 23 */ { 2, s_10_23, 22, 9, 0},
 365 /* 24 */ { 2, s_10_24, 22, 9, 0},
 366 /* 25 */ { 2, s_10_25, 22, 9, 0},
 367 /* 26 */ { 3, s_10_26, 22, 10, 0},
 368 /* 27 */ { 3, s_10_27, 22, 11, 0},
 369 /* 28 */ { 1, s_10_28, -1, 18, 0},
 370 /* 29 */ { 2, s_10_29, -1, 19, 0},
 371 /* 30 */ { 2, s_10_30, -1, 20, 0}
 372 };
 373 
 374 static symbol s_11_0[2] = { 'i', 'd' };
 375 static symbol s_11_1[3] = { 'a', 'i', 'd' };
 376 static symbol s_11_2[4] = { 'j', 'a', 'i', 'd' };
 377 static symbol s_11_3[3] = { 'e', 'i', 'd' };
 378 static symbol s_11_4[4] = { 'j', 'e', 'i', 'd' };
 379 static symbol s_11_5[4] = { 0xC3, 0xA1, 'i', 'd' };
 380 static symbol s_11_6[4] = { 0xC3, 0xA9, 'i', 'd' };
 381 static symbol s_11_7[1] = { 'i' };
 382 static symbol s_11_8[2] = { 'a', 'i' };
 383 static symbol s_11_9[3] = { 'j', 'a', 'i' };
 384 static symbol s_11_10[2] = { 'e', 'i' };
 385 static symbol s_11_11[3] = { 'j', 'e', 'i' };
 386 static symbol s_11_12[3] = { 0xC3, 0xA1, 'i' };
 387 static symbol s_11_13[3] = { 0xC3, 0xA9, 'i' };
 388 static symbol s_11_14[4] = { 'i', 't', 'e', 'k' };
 389 static symbol s_11_15[5] = { 'e', 'i', 't', 'e', 'k' };
 390 static symbol s_11_16[6] = { 'j', 'e', 'i', 't', 'e', 'k' };
 391 static symbol s_11_17[6] = { 0xC3, 0xA9, 'i', 't', 'e', 'k' };
 392 static symbol s_11_18[2] = { 'i', 'k' };
 393 static symbol s_11_19[3] = { 'a', 'i', 'k' };
 394 static symbol s_11_20[4] = { 'j', 'a', 'i', 'k' };
 395 static symbol s_11_21[3] = { 'e', 'i', 'k' };
 396 static symbol s_11_22[4] = { 'j', 'e', 'i', 'k' };
 397 static symbol s_11_23[4] = { 0xC3, 0xA1, 'i', 'k' };
 398 static symbol s_11_24[4] = { 0xC3, 0xA9, 'i', 'k' };
 399 static symbol s_11_25[3] = { 'i', 'n', 'k' };
 400 static symbol s_11_26[4] = { 'a', 'i', 'n', 'k' };
 401 static symbol s_11_27[5] = { 'j', 'a', 'i', 'n', 'k' };
 402 static symbol s_11_28[4] = { 'e', 'i', 'n', 'k' };
 403 static symbol s_11_29[5] = { 'j', 'e', 'i', 'n', 'k' };
 404 static symbol s_11_30[5] = { 0xC3, 0xA1, 'i', 'n', 'k' };
 405 static symbol s_11_31[5] = { 0xC3, 0xA9, 'i', 'n', 'k' };
 406 static symbol s_11_32[5] = { 'a', 'i', 't', 'o', 'k' };
 407 static symbol s_11_33[6] = { 'j', 'a', 'i', 't', 'o', 'k' };
 408 static symbol s_11_34[6] = { 0xC3, 0xA1, 'i', 't', 'o', 'k' };
 409 static symbol s_11_35[2] = { 'i', 'm' };
 410 static symbol s_11_36[3] = { 'a', 'i', 'm' };
 411 static symbol s_11_37[4] = { 'j', 'a', 'i', 'm' };
 412 static symbol s_11_38[3] = { 'e', 'i', 'm' };
 413 static symbol s_11_39[4] = { 'j', 'e', 'i', 'm' };
 414 static symbol s_11_40[4] = { 0xC3, 0xA1, 'i', 'm' };
 415 static symbol s_11_41[4] = { 0xC3, 0xA9, 'i', 'm' };
 416 
 417 static struct among a_11[42] =
 418 {
 419 /*  0 */ { 2, s_11_0, -1, 10, 0},
 420 /*  1 */ { 3, s_11_1, 0, 9, 0},
 421 /*  2 */ { 4, s_11_2, 1, 6, 0},
 422 /*  3 */ { 3, s_11_3, 0, 9, 0},
 423 /*  4 */ { 4, s_11_4, 3, 6, 0},
 424 /*  5 */ { 4, s_11_5, 0, 7, 0},
 425 /*  6 */ { 4, s_11_6, 0, 8, 0},
 426 /*  7 */ { 1, s_11_7, -1, 15, 0},
 427 /*  8 */ { 2, s_11_8, 7, 14, 0},
 428 /*  9 */ { 3, s_11_9, 8, 11, 0},
 429 /* 10 */ { 2, s_11_10, 7, 14, 0},
 430 /* 11 */ { 3, s_11_11, 10, 11, 0},
 431 /* 12 */ { 3, s_11_12, 7, 12, 0},
 432 /* 13 */ { 3, s_11_13, 7, 13, 0},
 433 /* 14 */ { 4, s_11_14, -1, 24, 0},
 434 /* 15 */ { 5, s_11_15, 14, 21, 0},
 435 /* 16 */ { 6, s_11_16, 15, 20, 0},
 436 /* 17 */ { 6, s_11_17, 14, 23, 0},
 437 /* 18 */ { 2, s_11_18, -1, 29, 0},
 438 /* 19 */ { 3, s_11_19, 18, 26, 0},
 439 /* 20 */ { 4, s_11_20, 19, 25, 0},
 440 /* 21 */ { 3, s_11_21, 18, 26, 0},
 441 /* 22 */ { 4, s_11_22, 21, 25, 0},
 442 /* 23 */ { 4, s_11_23, 18, 27, 0},
 443 /* 24 */ { 4, s_11_24, 18, 28, 0},
 444 /* 25 */ { 3, s_11_25, -1, 20, 0},
 445 /* 26 */ { 4, s_11_26, 25, 17, 0},
 446 /* 27 */ { 5, s_11_27, 26, 16, 0},
 447 /* 28 */ { 4, s_11_28, 25, 17, 0},
 448 /* 29 */ { 5, s_11_29, 28, 16, 0},
 449 /* 30 */ { 5, s_11_30, 25, 18, 0},
 450 /* 31 */ { 5, s_11_31, 25, 19, 0},
 451 /* 32 */ { 5, s_11_32, -1, 21, 0},
 452 /* 33 */ { 6, s_11_33, 32, 20, 0},
 453 /* 34 */ { 6, s_11_34, -1, 22, 0},
 454 /* 35 */ { 2, s_11_35, -1, 5, 0},
 455 /* 36 */ { 3, s_11_36, 35, 4, 0},
 456 /* 37 */ { 4, s_11_37, 36, 1, 0},
 457 /* 38 */ { 3, s_11_38, 35, 4, 0},
 458 /* 39 */ { 4, s_11_39, 38, 1, 0},
 459 /* 40 */ { 4, s_11_40, 35, 2, 0},
 460 /* 41 */ { 4, s_11_41, 35, 3, 0}
 461 };
 462 
 463 static unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 36, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1 };
 464 
 465 static symbol s_0[] = { 'a' };
 466 static symbol s_1[] = { 'e' };
 467 static symbol s_2[] = { 'e' };
 468 static symbol s_3[] = { 'a' };
 469 static symbol s_4[] = { 'a' };
 470 static symbol s_5[] = { 'a' };
 471 static symbol s_6[] = { 'e' };
 472 static symbol s_7[] = { 'a' };
 473 static symbol s_8[] = { 'e' };
 474 static symbol s_9[] = { 'e' };
 475 static symbol s_10[] = { 'a' };
 476 static symbol s_11[] = { 'e' };
 477 static symbol s_12[] = { 'a' };
 478 static symbol s_13[] = { 'e' };
 479 static symbol s_14[] = { 'a' };
 480 static symbol s_15[] = { 'e' };
 481 static symbol s_16[] = { 'a' };
 482 static symbol s_17[] = { 'e' };
 483 static symbol s_18[] = { 'a' };
 484 static symbol s_19[] = { 'e' };
 485 static symbol s_20[] = { 'a' };
 486 static symbol s_21[] = { 'e' };
 487 static symbol s_22[] = { 'a' };
 488 static symbol s_23[] = { 'e' };
 489 static symbol s_24[] = { 'a' };
 490 static symbol s_25[] = { 'e' };
 491 static symbol s_26[] = { 'a' };
 492 static symbol s_27[] = { 'e' };
 493 static symbol s_28[] = { 'a' };
 494 static symbol s_29[] = { 'e' };
 495 static symbol s_30[] = { 'a' };
 496 static symbol s_31[] = { 'e' };
 497 static symbol s_32[] = { 'a' };
 498 static symbol s_33[] = { 'e' };
 499 static symbol s_34[] = { 'a' };
 500 static symbol s_35[] = { 'e' };
 501 
 502 static int r_mark_regions(struct SN_env * z) {
 503     z->I[0] = z->l;
 504     {	int c1 = z->c; /* or, line 51 */
 505 	//if (in_grouping_U(z, g_v, 97, 369, 0)) goto lab1;
 506 	if (in_grouping_U(z, g_v, 97, 369)) goto lab1;
 507 	//if (in_grouping_U(z, g_v, 97, 369, 1) < 0) goto lab1; /* goto */ /* non v, line 48 */
 508 	if (in_grouping_U(z, g_v, 97, 369) < 0) goto lab1; /* goto */ /* non v, line 48 */
 509 	{   int c2 = z->c; /* or, line 49 */
 510 	    if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3;
 511 	    if (!(find_among(z, a_0, 8))) goto lab3; /* among, line 49 */
 512 	    goto lab2;
 513 	lab3:
 514 	    z->c = c2;
 515 	    {	int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
 516 		if (ret < 0) goto lab1;
 517 		z->c = ret; /* next, line 49 */
 518 	    }
 519 	}
 520     lab2:
 521 	z->I[0] = z->c; /* setmark p1, line 50 */
 522 	goto lab0;
 523     lab1:
 524 	z->c = c1;
 525 	//if (out_grouping_U(z, g_v, 97, 369, 0)) return 0;
 526 	if (out_grouping_U(z, g_v, 97, 369)) return 0;
 527 	{    /* gopast */ /* grouping v, line 53 */
 528 	    //int ret = out_grouping_U(z, g_v, 97, 369, 1);
 529 	    int ret = out_grouping_U(z, g_v, 97, 369);
 530 	    if (ret < 0) return 0;
 531 	    z->c += ret;
 532 	}
 533 	z->I[0] = z->c; /* setmark p1, line 53 */
 534     }
 535 lab0:
 536     return 1;
 537 }
 538 
 539 static int r_R1(struct SN_env * z) {
 540     if (!(z->I[0] <= z->c)) return 0;
 541     return 1;
 542 }
 543 
 544 static int r_v_ending(struct SN_env * z) {
 545     int among_var;
 546     z->ket = z->c; /* [, line 61 */
 547     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
 548     among_var = find_among_b(z, a_1, 2); /* substring, line 61 */
 549     if (!(among_var)) return 0;
 550     z->bra = z->c; /* ], line 61 */
 551     {	int ret = r_R1(z);
 552 	if (ret == 0) return 0; /* call R1, line 61 */
 553 	if (ret < 0) return ret;
 554     }
 555     switch(among_var) {
 556 	case 0: return 0;
 557 	case 1:
 558 	    {	int ret = slice_from_s(z, 1, s_0); /* <-, line 62 */
 559 		if (ret < 0) return ret;
 560 	    }
 561 	    break;
 562 	case 2:
 563 	    {	int ret = slice_from_s(z, 1, s_1); /* <-, line 63 */
 564 		if (ret < 0) return ret;
 565 	    }
 566 	    break;
 567     }
 568     return 1;
 569 }
 570 
 571 static int r_double(struct SN_env * z) {
 572     {	int m_test = z->l - z->c; /* test, line 68 */
 573 	if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
 574 	if (!(find_among_b(z, a_2, 23))) return 0; /* among, line 68 */
 575 	z->c = z->l - m_test;
 576     }
 577     return 1;
 578 }
 579 
 580 static int r_undouble(struct SN_env * z) {
 581     {	int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
 582 	if (ret < 0) return 0;
 583 	z->c = ret; /* next, line 73 */
 584     }
 585     z->ket = z->c; /* [, line 73 */
 586     {	int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 1);
 587 	if (ret < 0) return 0;
 588 	z->c = ret; /* hop, line 73 */
 589     }
 590     z->bra = z->c; /* ], line 73 */
 591     {	int ret = slice_del(z); /* delete, line 73 */
 592 	if (ret < 0) return ret;
 593     }
 594     return 1;
 595 }
 596 
 597 static int r_instrum(struct SN_env * z) {
 598     int among_var;
 599     z->ket = z->c; /* [, line 77 */
 600     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
 601     among_var = find_among_b(z, a_3, 2); /* substring, line 77 */
 602     if (!(among_var)) return 0;
 603     z->bra = z->c; /* ], line 77 */
 604     {	int ret = r_R1(z);
 605 	if (ret == 0) return 0; /* call R1, line 77 */
 606 	if (ret < 0) return ret;
 607     }
 608     switch(among_var) {
 609 	case 0: return 0;
 610 	case 1:
 611 	    {	int ret = r_double(z);
 612 		if (ret == 0) return 0; /* call double, line 78 */
 613 		if (ret < 0) return ret;
 614 	    }
 615 	    break;
 616 	case 2:
 617 	    {	int ret = r_double(z);
 618 		if (ret == 0) return 0; /* call double, line 79 */
 619 		if (ret < 0) return ret;
 620 	    }
 621 	    break;
 622     }
 623     {	int ret = slice_del(z); /* delete, line 81 */
 624 	if (ret < 0) return ret;
 625     }
 626     {	int ret = r_undouble(z);
 627 	if (ret == 0) return 0; /* call undouble, line 82 */
 628 	if (ret < 0) return ret;
 629     }
 630     return 1;
 631 }
 632 
 633 static int r_case(struct SN_env * z) {
 634     z->ket = z->c; /* [, line 87 */
 635     if (!(find_among_b(z, a_4, 44))) return 0; /* substring, line 87 */
 636     z->bra = z->c; /* ], line 87 */
 637     {	int ret = r_R1(z);
 638 	if (ret == 0) return 0; /* call R1, line 87 */
 639 	if (ret < 0) return ret;
 640     }
 641     {	int ret = slice_del(z); /* delete, line 111 */
 642 	if (ret < 0) return ret;
 643     }
 644     {	int ret = r_v_ending(z);
 645 	if (ret == 0) return 0; /* call v_ending, line 112 */
 646 	if (ret < 0) return ret;
 647     }
 648     return 1;
 649 }
 650 
 651 static int r_case_special(struct SN_env * z) {
 652     int among_var;
 653     z->ket = z->c; /* [, line 116 */
 654     if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0;
 655     among_var = find_among_b(z, a_5, 3); /* substring, line 116 */
 656     if (!(among_var)) return 0;
 657     z->bra = z->c; /* ], line 116 */
 658     {	int ret = r_R1(z);
 659 	if (ret == 0) return 0; /* call R1, line 116 */
 660 	if (ret < 0) return ret;
 661     }
 662     switch(among_var) {
 663 	case 0: return 0;
 664 	case 1:
 665 	    {	int ret = slice_from_s(z, 1, s_2); /* <-, line 117 */
 666 		if (ret < 0) return ret;
 667 	    }
 668 	    break;
 669 	case 2:
 670 	    {	int ret = slice_from_s(z, 1, s_3); /* <-, line 118 */
 671 		if (ret < 0) return ret;
 672 	    }
 673 	    break;
 674 	case 3:
 675 	    {	int ret = slice_from_s(z, 1, s_4); /* <-, line 119 */
 676 		if (ret < 0) return ret;
 677 	    }
 678 	    break;
 679     }
 680     return 1;
 681 }
 682 
 683 static int r_case_other(struct SN_env * z) {
 684     int among_var;
 685     z->ket = z->c; /* [, line 124 */
 686     if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0;
 687     among_var = find_among_b(z, a_6, 6); /* substring, line 124 */
 688     if (!(among_var)) return 0;
 689     z->bra = z->c; /* ], line 124 */
 690     {	int ret = r_R1(z);
 691 	if (ret == 0) return 0; /* call R1, line 124 */
 692 	if (ret < 0) return ret;
 693     }
 694     switch(among_var) {
 695 	case 0: return 0;
 696 	case 1:
 697 	    {	int ret = slice_del(z); /* delete, line 125 */
 698 		if (ret < 0) return ret;
 699 	    }
 700 	    break;
 701 	case 2:
 702 	    {	int ret = slice_del(z); /* delete, line 126 */
 703 		if (ret < 0) return ret;
 704 	    }
 705 	    break;
 706 	case 3:
 707 	    {	int ret = slice_from_s(z, 1, s_5); /* <-, line 127 */
 708 		if (ret < 0) return ret;
 709 	    }
 710 	    break;
 711 	case 4:
 712 	    {	int ret = slice_from_s(z, 1, s_6); /* <-, line 128 */
 713 		if (ret < 0) return ret;
 714 	    }
 715 	    break;
 716     }
 717     return 1;
 718 }
 719 
 720 static int r_factive(struct SN_env * z) {
 721     int among_var;
 722     z->ket = z->c; /* [, line 133 */
 723     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
 724     among_var = find_among_b(z, a_7, 2); /* substring, line 133 */
 725     if (!(among_var)) return 0;
 726     z->bra = z->c; /* ], line 133 */
 727     {	int ret = r_R1(z);
 728 	if (ret == 0) return 0; /* call R1, line 133 */
 729 	if (ret < 0) return ret;
 730     }
 731     switch(among_var) {
 732 	case 0: return 0;
 733 	case 1:
 734 	    {	int ret = r_double(z);
 735 		if (ret == 0) return 0; /* call double, line 134 */
 736 		if (ret < 0) return ret;
 737 	    }
 738 	    break;
 739 	case 2:
 740 	    {	int ret = r_double(z);
 741 		if (ret == 0) return 0; /* call double, line 135 */
 742 		if (ret < 0) return ret;
 743 	    }
 744 	    break;
 745     }
 746     {	int ret = slice_del(z); /* delete, line 137 */
 747 	if (ret < 0) return ret;
 748     }
 749     {	int ret = r_undouble(z);
 750 	if (ret == 0) return 0; /* call undouble, line 138 */
 751 	if (ret < 0) return ret;
 752     }
 753     return 1;
 754 }
 755 
 756 static int r_plural(struct SN_env * z) {
 757     int among_var;
 758     z->ket = z->c; /* [, line 142 */
 759     if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0;
 760     among_var = find_among_b(z, a_8, 7); /* substring, line 142 */
 761     if (!(among_var)) return 0;
 762     z->bra = z->c; /* ], line 142 */
 763     {	int ret = r_R1(z);
 764 	if (ret == 0) return 0; /* call R1, line 142 */
 765 	if (ret < 0) return ret;
 766     }
 767     switch(among_var) {
 768 	case 0: return 0;
 769 	case 1:
 770 	    {	int ret = slice_from_s(z, 1, s_7); /* <-, line 143 */
 771 		if (ret < 0) return ret;
 772 	    }
 773 	    break;
 774 	case 2:
 775 	    {	int ret = slice_from_s(z, 1, s_8); /* <-, line 144 */
 776 		if (ret < 0) return ret;
 777 	    }
 778 	    break;
 779 	case 3:
 780 	    {	int ret = slice_del(z); /* delete, line 145 */
 781 		if (ret < 0) return ret;
 782 	    }
 783 	    break;
 784 	case 4:
 785 	    {	int ret = slice_del(z); /* delete, line 146 */
 786 		if (ret < 0) return ret;
 787 	    }
 788 	    break;
 789 	case 5:
 790 	    {	int ret = slice_del(z); /* delete, line 147 */
 791 		if (ret < 0) return ret;
 792 	    }
 793 	    break;
 794 	case 6:
 795 	    {	int ret = slice_del(z); /* delete, line 148 */
 796 		if (ret < 0) return ret;
 797 	    }
 798 	    break;
 799 	case 7:
 800 	    {	int ret = slice_del(z); /* delete, line 149 */
 801 		if (ret < 0) return ret;
 802 	    }
 803 	    break;
 804     }
 805     return 1;
 806 }
 807 
 808 static int r_owned(struct SN_env * z) {
 809     int among_var;
 810     z->ket = z->c; /* [, line 154 */
 811     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 169)) return 0;
 812     among_var = find_among_b(z, a_9, 12); /* substring, line 154 */
 813     if (!(among_var)) return 0;
 814     z->bra = z->c; /* ], line 154 */
 815     {	int ret = r_R1(z);
 816 	if (ret == 0) return 0; /* call R1, line 154 */
 817 	if (ret < 0) return ret;
 818     }
 819     switch(among_var) {
 820 	case 0: return 0;
 821 	case 1:
 822 	    {	int ret = slice_del(z); /* delete, line 155 */
 823 		if (ret < 0) return ret;
 824 	    }
 825 	    break;
 826 	case 2:
 827 	    {	int ret = slice_from_s(z, 1, s_9); /* <-, line 156 */
 828 		if (ret < 0) return ret;
 829 	    }
 830 	    break;
 831 	case 3:
 832 	    {	int ret = slice_from_s(z, 1, s_10); /* <-, line 157 */
 833 		if (ret < 0) return ret;
 834 	    }
 835 	    break;
 836 	case 4:
 837 	    {	int ret = slice_del(z); /* delete, line 158 */
 838 		if (ret < 0) return ret;
 839 	    }
 840 	    break;
 841 	case 5:
 842 	    {	int ret = slice_from_s(z, 1, s_11); /* <-, line 159 */
 843 		if (ret < 0) return ret;
 844 	    }
 845 	    break;
 846 	case 6:
 847 	    {	int ret = slice_from_s(z, 1, s_12); /* <-, line 160 */
 848 		if (ret < 0) return ret;
 849 	    }
 850 	    break;
 851 	case 7:
 852 	    {	int ret = slice_del(z); /* delete, line 161 */
 853 		if (ret < 0) return ret;
 854 	    }
 855 	    break;
 856 	case 8:
 857 	    {	int ret = slice_from_s(z, 1, s_13); /* <-, line 162 */
 858 		if (ret < 0) return ret;
 859 	    }
 860 	    break;
 861 	case 9:
 862 	    {	int ret = slice_del(z); /* delete, line 163 */
 863 		if (ret < 0) return ret;
 864 	    }
 865 	    break;
 866     }
 867     return 1;
 868 }
 869 
 870 static int r_sing_owner(struct SN_env * z) {
 871     int among_var;
 872     z->ket = z->c; /* [, line 168 */
 873     among_var = find_among_b(z, a_10, 31); /* substring, line 168 */
 874     if (!(among_var)) return 0;
 875     z->bra = z->c; /* ], line 168 */
 876     {	int ret = r_R1(z);
 877 	if (ret == 0) return 0; /* call R1, line 168 */
 878 	if (ret < 0) return ret;
 879     }
 880     switch(among_var) {
 881 	case 0: return 0;
 882 	case 1:
 883 	    {	int ret = slice_del(z); /* delete, line 169 */
 884 		if (ret < 0) return ret;
 885 	    }
 886 	    break;
 887 	case 2:
 888 	    {	int ret = slice_from_s(z, 1, s_14); /* <-, line 170 */
 889 		if (ret < 0) return ret;
 890 	    }
 891 	    break;
 892 	case 3:
 893 	    {	int ret = slice_from_s(z, 1, s_15); /* <-, line 171 */
 894 		if (ret < 0) return ret;
 895 	    }
 896 	    break;
 897 	case 4:
 898 	    {	int ret = slice_del(z); /* delete, line 172 */
 899 		if (ret < 0) return ret;
 900 	    }
 901 	    break;
 902 	case 5:
 903 	    {	int ret = slice_from_s(z, 1, s_16); /* <-, line 173 */
 904 		if (ret < 0) return ret;
 905 	    }
 906 	    break;
 907 	case 6:
 908 	    {	int ret = slice_from_s(z, 1, s_17); /* <-, line 174 */
 909 		if (ret < 0) return ret;
 910 	    }
 911 	    break;
 912 	case 7:
 913 	    {	int ret = slice_del(z); /* delete, line 175 */
 914 		if (ret < 0) return ret;
 915 	    }
 916 	    break;
 917 	case 8:
 918 	    {	int ret = slice_del(z); /* delete, line 176 */
 919 		if (ret < 0) return ret;
 920 	    }
 921 	    break;
 922 	case 9:
 923 	    {	int ret = slice_del(z); /* delete, line 177 */
 924 		if (ret < 0) return ret;
 925 	    }
 926 	    break;
 927 	case 10:
 928 	    {	int ret = slice_from_s(z, 1, s_18); /* <-, line 178 */
 929 		if (ret < 0) return ret;
 930 	    }
 931 	    break;
 932 	case 11:
 933 	    {	int ret = slice_from_s(z, 1, s_19); /* <-, line 179 */
 934 		if (ret < 0) return ret;
 935 	    }
 936 	    break;
 937 	case 12:
 938 	    {	int ret = slice_del(z); /* delete, line 180 */
 939 		if (ret < 0) return ret;
 940 	    }
 941 	    break;
 942 	case 13:
 943 	    {	int ret = slice_del(z); /* delete, line 181 */
 944 		if (ret < 0) return ret;
 945 	    }
 946 	    break;
 947 	case 14:
 948 	    {	int ret = slice_from_s(z, 1, s_20); /* <-, line 182 */
 949 		if (ret < 0) return ret;
 950 	    }
 951 	    break;
 952 	case 15:
 953 	    {	int ret = slice_from_s(z, 1, s_21); /* <-, line 183 */
 954 		if (ret < 0) return ret;
 955 	    }
 956 	    break;
 957 	case 16:
 958 	    {	int ret = slice_del(z); /* delete, line 184 */
 959 		if (ret < 0) return ret;
 960 	    }
 961 	    break;
 962 	case 17:
 963 	    {	int ret = slice_del(z); /* delete, line 185 */
 964 		if (ret < 0) return ret;
 965 	    }
 966 	    break;
 967 	case 18:
 968 	    {	int ret = slice_del(z); /* delete, line 186 */
 969 		if (ret < 0) return ret;
 970 	    }
 971 	    break;
 972 	case 19:
 973 	    {	int ret = slice_from_s(z, 1, s_22); /* <-, line 187 */
 974 		if (ret < 0) return ret;
 975 	    }
 976 	    break;
 977 	case 20:
 978 	    {	int ret = slice_from_s(z, 1, s_23); /* <-, line 188 */
 979 		if (ret < 0) return ret;
 980 	    }
 981 	    break;
 982     }
 983     return 1;
 984 }
 985 
 986 static int r_plur_owner(struct SN_env * z) {
 987     int among_var;
 988     z->ket = z->c; /* [, line 193 */
 989     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
 990     among_var = find_among_b(z, a_11, 42); /* substring, line 193 */
 991     if (!(among_var)) return 0;
 992     z->bra = z->c; /* ], line 193 */
 993     {	int ret = r_R1(z);
 994 	if (ret == 0) return 0; /* call R1, line 193 */
 995 	if (ret < 0) return ret;
 996     }
 997     switch(among_var) {
 998 	case 0: return 0;
 999 	case 1:
1000 	    {	int ret = slice_del(z); /* delete, line 194 */
1001 		if (ret < 0) return ret;
1002 	    }
1003 	    break;
1004 	case 2:
1005 	    {	int ret = slice_from_s(z, 1, s_24); /* <-, line 195 */
1006 		if (ret < 0) return ret;
1007 	    }
1008 	    break;
1009 	case 3:
1010 	    {	int ret = slice_from_s(z, 1, s_25); /* <-, line 196 */
1011 		if (ret < 0) return ret;
1012 	    }
1013 	    break;
1014 	case 4:
1015 	    {	int ret = slice_del(z); /* delete, line 197 */
1016 		if (ret < 0) return ret;
1017 	    }
1018 	    break;
1019 	case 5:
1020 	    {	int ret = slice_del(z); /* delete, line 198 */
1021 		if (ret < 0) return ret;
1022 	    }
1023 	    break;
1024 	case 6:
1025 	    {	int ret = slice_del(z); /* delete, line 199 */
1026 		if (ret < 0) return ret;
1027 	    }
1028 	    break;
1029 	case 7:
1030 	    {	int ret = slice_from_s(z, 1, s_26); /* <-, line 200 */
1031 		if (ret < 0) return ret;
1032 	    }
1033 	    break;
1034 	case 8:
1035 	    {	int ret = slice_from_s(z, 1, s_27); /* <-, line 201 */
1036 		if (ret < 0) return ret;
1037 	    }
1038 	    break;
1039 	case 9:
1040 	    {	int ret = slice_del(z); /* delete, line 202 */
1041 		if (ret < 0) return ret;
1042 	    }
1043 	    break;
1044 	case 10:
1045 	    {	int ret = slice_del(z); /* delete, line 203 */
1046 		if (ret < 0) return ret;
1047 	    }
1048 	    break;
1049 	case 11:
1050 	    {	int ret = slice_del(z); /* delete, line 204 */
1051 		if (ret < 0) return ret;
1052 	    }
1053 	    break;
1054 	case 12:
1055 	    {	int ret = slice_from_s(z, 1, s_28); /* <-, line 205 */
1056 		if (ret < 0) return ret;
1057 	    }
1058 	    break;
1059 	case 13:
1060 	    {	int ret = slice_from_s(z, 1, s_29); /* <-, line 206 */
1061 		if (ret < 0) return ret;
1062 	    }
1063 	    break;
1064 	case 14:
1065 	    {	int ret = slice_del(z); /* delete, line 207 */
1066 		if (ret < 0) return ret;
1067 	    }
1068 	    break;
1069 	case 15:
1070 	    {	int ret = slice_del(z); /* delete, line 208 */
1071 		if (ret < 0) return ret;
1072 	    }
1073 	    break;
1074 	case 16:
1075 	    {	int ret = slice_del(z); /* delete, line 209 */
1076 		if (ret < 0) return ret;
1077 	    }
1078 	    break;
1079 	case 17:
1080 	    {	int ret = slice_del(z); /* delete, line 210 */
1081 		if (ret < 0) return ret;
1082 	    }
1083 	    break;
1084 	case 18:
1085 	    {	int ret = slice_from_s(z, 1, s_30); /* <-, line 211 */
1086 		if (ret < 0) return ret;
1087 	    }
1088 	    break;
1089 	case 19:
1090 	    {	int ret = slice_from_s(z, 1, s_31); /* <-, line 212 */
1091 		if (ret < 0) return ret;
1092 	    }
1093 	    break;
1094 	case 20:
1095 	    {	int ret = slice_del(z); /* delete, line 214 */
1096 		if (ret < 0) return ret;
1097 	    }
1098 	    break;
1099 	case 21:
1100 	    {	int ret = slice_del(z); /* delete, line 215 */
1101 		if (ret < 0) return ret;
1102 	    }
1103 	    break;
1104 	case 22:
1105 	    {	int ret = slice_from_s(z, 1, s_32); /* <-, line 216 */
1106 		if (ret < 0) return ret;
1107 	    }
1108 	    break;
1109 	case 23:
1110 	    {	int ret = slice_from_s(z, 1, s_33); /* <-, line 217 */
1111 		if (ret < 0) return ret;
1112 	    }
1113 	    break;
1114 	case 24:
1115 	    {	int ret = slice_del(z); /* delete, line 218 */
1116 		if (ret < 0) return ret;
1117 	    }
1118 	    break;
1119 	case 25:
1120 	    {	int ret = slice_del(z); /* delete, line 219 */
1121 		if (ret < 0) return ret;
1122 	    }
1123 	    break;
1124 	case 26:
1125 	    {	int ret = slice_del(z); /* delete, line 220 */
1126 		if (ret < 0) return ret;
1127 	    }
1128 	    break;
1129 	case 27:
1130 	    {	int ret = slice_from_s(z, 1, s_34); /* <-, line 221 */
1131 		if (ret < 0) return ret;
1132 	    }
1133 	    break;
1134 	case 28:
1135 	    {	int ret = slice_from_s(z, 1, s_35); /* <-, line 222 */
1136 		if (ret < 0) return ret;
1137 	    }
1138 	    break;
1139 	case 29:
1140 	    {	int ret = slice_del(z); /* delete, line 223 */
1141 		if (ret < 0) return ret;
1142 	    }
1143 	    break;
1144     }
1145     return 1;
1146 }
1147 
1148 extern int hungarian_UTF_8_stem(struct SN_env * z) {
1149     {	int c1 = z->c; /* do, line 229 */
1150 	{   int ret = r_mark_regions(z);
1151 	    if (ret == 0) goto lab0; /* call mark_regions, line 229 */
1152 	    if (ret < 0) return ret;
1153 	}
1154     lab0:
1155 	z->c = c1;
1156     }
1157     z->lb = z->c; z->c = z->l; /* backwards, line 230 */
1158 
1159     {	int m2 = z->l - z->c; (void)m2; /* do, line 231 */
1160 	{   int ret = r_instrum(z);
1161 	    if (ret == 0) goto lab1; /* call instrum, line 231 */
1162 	    if (ret < 0) return ret;
1163 	}
1164     lab1:
1165 	z->c = z->l - m2;
1166     }
1167     {	int m3 = z->l - z->c; (void)m3; /* do, line 232 */
1168 	{   int ret = r_case(z);
1169 	    if (ret == 0) goto lab2; /* call case, line 232 */
1170 	    if (ret < 0) return ret;
1171 	}
1172     lab2:
1173 	z->c = z->l - m3;
1174     }
1175     {	int m4 = z->l - z->c; (void)m4; /* do, line 233 */
1176 	{   int ret = r_case_special(z);
1177 	    if (ret == 0) goto lab3; /* call case_special, line 233 */
1178 	    if (ret < 0) return ret;
1179 	}
1180     lab3:
1181 	z->c = z->l - m4;
1182     }
1183     {	int m5 = z->l - z->c; (void)m5; /* do, line 234 */
1184 	{   int ret = r_case_other(z);
1185 	    if (ret == 0) goto lab4; /* call case_other, line 234 */
1186 	    if (ret < 0) return ret;
1187 	}
1188     lab4:
1189 	z->c = z->l - m5;
1190     }
1191     {	int m6 = z->l - z->c; (void)m6; /* do, line 235 */
1192 	{   int ret = r_factive(z);
1193 	    if (ret == 0) goto lab5; /* call factive, line 235 */
1194 	    if (ret < 0) return ret;
1195 	}
1196     lab5:
1197 	z->c = z->l - m6;
1198     }
1199     {	int m7 = z->l - z->c; (void)m7; /* do, line 236 */
1200 	{   int ret = r_owned(z);
1201 	    if (ret == 0) goto lab6; /* call owned, line 236 */
1202 	    if (ret < 0) return ret;
1203 	}
1204     lab6:
1205 	z->c = z->l - m7;
1206     }
1207     {	int m8 = z->l - z->c; (void)m8; /* do, line 237 */
1208 	{   int ret = r_sing_owner(z);
1209 	    if (ret == 0) goto lab7; /* call sing_owner, line 237 */
1210 	    if (ret < 0) return ret;
1211 	}
1212     lab7:
1213 	z->c = z->l - m8;
1214     }
1215     {	int m9 = z->l - z->c; (void)m9; /* do, line 238 */
1216 	{   int ret = r_plur_owner(z);
1217 	    if (ret == 0) goto lab8; /* call plur_owner, line 238 */
1218 	    if (ret < 0) return ret;
1219 	}
1220     lab8:
1221 	z->c = z->l - m9;
1222     }
1223     {	int m10 = z->l - z->c; (void)m10; /* do, line 239 */
1224 	{   int ret = r_plural(z);
1225 	    if (ret == 0) goto lab9; /* call plural, line 239 */
1226 	    if (ret < 0) return ret;
1227 	}
1228     lab9:
1229 	z->c = z->l - m10;
1230     }
1231     z->c = z->lb;
1232     return 1;
1233 }
1234 
1235 extern struct SN_env * hungarian_UTF_8_create_env(void) { return SN_create_env(0, 1, 0); }
1236 
1237 //extern void hungarian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
1238 extern void hungarian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }