Stripped down to only use English/porter for now
[libstemmer_c.git] / src_c / stem_UTF_8_spanish.c
1
2 /* This file was generated automatically by the Snowball to ANSI C compiler */
3
4 #include "../runtime/header.h"
5
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 extern int spanish_UTF_8_stem(struct SN_env * z);
10 #ifdef __cplusplus
11 }
12 #endif
13 static int r_residual_suffix(struct SN_env * z);
14 static int r_verb_suffix(struct SN_env * z);
15 static int r_y_verb_suffix(struct SN_env * z);
16 static int r_standard_suffix(struct SN_env * z);
17 static int r_attached_pronoun(struct SN_env * z);
18 static int r_R2(struct SN_env * z);
19 static int r_R1(struct SN_env * z);
20 static int r_RV(struct SN_env * z);
21 static int r_mark_regions(struct SN_env * z);
22 static int r_postlude(struct SN_env * z);
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27
28 extern struct SN_env * spanish_UTF_8_create_env(void);
29 extern void spanish_UTF_8_close_env(struct SN_env * z);
30
31
32 #ifdef __cplusplus
33 }
34 #endif
35 static const symbol s_0_1[2] = { 0xC3, 0xA1 };
36 static const symbol s_0_2[2] = { 0xC3, 0xA9 };
37 static const symbol s_0_3[2] = { 0xC3, 0xAD };
38 static const symbol s_0_4[2] = { 0xC3, 0xB3 };
39 static const symbol s_0_5[2] = { 0xC3, 0xBA };
40
41 static const struct among a_0[6] =
42 {
43 /*  0 */ { 0, 0, -1, 6, 0},
44 /*  1 */ { 2, s_0_1, 0, 1, 0},
45 /*  2 */ { 2, s_0_2, 0, 2, 0},
46 /*  3 */ { 2, s_0_3, 0, 3, 0},
47 /*  4 */ { 2, s_0_4, 0, 4, 0},
48 /*  5 */ { 2, s_0_5, 0, 5, 0}
49 };
50
51 static const symbol s_1_0[2] = { 'l', 'a' };
52 static const symbol s_1_1[4] = { 's', 'e', 'l', 'a' };
53 static const symbol s_1_2[2] = { 'l', 'e' };
54 static const symbol s_1_3[2] = { 'm', 'e' };
55 static const symbol s_1_4[2] = { 's', 'e' };
56 static const symbol s_1_5[2] = { 'l', 'o' };
57 static const symbol s_1_6[4] = { 's', 'e', 'l', 'o' };
58 static const symbol s_1_7[3] = { 'l', 'a', 's' };
59 static const symbol s_1_8[5] = { 's', 'e', 'l', 'a', 's' };
60 static const symbol s_1_9[3] = { 'l', 'e', 's' };
61 static const symbol s_1_10[3] = { 'l', 'o', 's' };
62 static const symbol s_1_11[5] = { 's', 'e', 'l', 'o', 's' };
63 static const symbol s_1_12[3] = { 'n', 'o', 's' };
64
65 static const struct among a_1[13] =
66 {
67 /*  0 */ { 2, s_1_0, -1, -1, 0},
68 /*  1 */ { 4, s_1_1, 0, -1, 0},
69 /*  2 */ { 2, s_1_2, -1, -1, 0},
70 /*  3 */ { 2, s_1_3, -1, -1, 0},
71 /*  4 */ { 2, s_1_4, -1, -1, 0},
72 /*  5 */ { 2, s_1_5, -1, -1, 0},
73 /*  6 */ { 4, s_1_6, 5, -1, 0},
74 /*  7 */ { 3, s_1_7, -1, -1, 0},
75 /*  8 */ { 5, s_1_8, 7, -1, 0},
76 /*  9 */ { 3, s_1_9, -1, -1, 0},
77 /* 10 */ { 3, s_1_10, -1, -1, 0},
78 /* 11 */ { 5, s_1_11, 10, -1, 0},
79 /* 12 */ { 3, s_1_12, -1, -1, 0}
80 };
81
82 static const symbol s_2_0[4] = { 'a', 'n', 'd', 'o' };
83 static const symbol s_2_1[5] = { 'i', 'e', 'n', 'd', 'o' };
84 static const symbol s_2_2[5] = { 'y', 'e', 'n', 'd', 'o' };
85 static const symbol s_2_3[5] = { 0xC3, 0xA1, 'n', 'd', 'o' };
86 static const symbol s_2_4[6] = { 'i', 0xC3, 0xA9, 'n', 'd', 'o' };
87 static const symbol s_2_5[2] = { 'a', 'r' };
88 static const symbol s_2_6[2] = { 'e', 'r' };
89 static const symbol s_2_7[2] = { 'i', 'r' };
90 static const symbol s_2_8[3] = { 0xC3, 0xA1, 'r' };
91 static const symbol s_2_9[3] = { 0xC3, 0xA9, 'r' };
92 static const symbol s_2_10[3] = { 0xC3, 0xAD, 'r' };
93
94 static const struct among a_2[11] =
95 {
96 /*  0 */ { 4, s_2_0, -1, 6, 0},
97 /*  1 */ { 5, s_2_1, -1, 6, 0},
98 /*  2 */ { 5, s_2_2, -1, 7, 0},
99 /*  3 */ { 5, s_2_3, -1, 2, 0},
100 /*  4 */ { 6, s_2_4, -1, 1, 0},
101 /*  5 */ { 2, s_2_5, -1, 6, 0},
102 /*  6 */ { 2, s_2_6, -1, 6, 0},
103 /*  7 */ { 2, s_2_7, -1, 6, 0},
104 /*  8 */ { 3, s_2_8, -1, 3, 0},
105 /*  9 */ { 3, s_2_9, -1, 4, 0},
106 /* 10 */ { 3, s_2_10, -1, 5, 0}
107 };
108
109 static const symbol s_3_0[2] = { 'i', 'c' };
110 static const symbol s_3_1[2] = { 'a', 'd' };
111 static const symbol s_3_2[2] = { 'o', 's' };
112 static const symbol s_3_3[2] = { 'i', 'v' };
113
114 static const struct among a_3[4] =
115 {
116 /*  0 */ { 2, s_3_0, -1, -1, 0},
117 /*  1 */ { 2, s_3_1, -1, -1, 0},
118 /*  2 */ { 2, s_3_2, -1, -1, 0},
119 /*  3 */ { 2, s_3_3, -1, 1, 0}
120 };
121
122 static const symbol s_4_0[4] = { 'a', 'b', 'l', 'e' };
123 static const symbol s_4_1[4] = { 'i', 'b', 'l', 'e' };
124 static const symbol s_4_2[4] = { 'a', 'n', 't', 'e' };
125
126 static const struct among a_4[3] =
127 {
128 /*  0 */ { 4, s_4_0, -1, 1, 0},
129 /*  1 */ { 4, s_4_1, -1, 1, 0},
130 /*  2 */ { 4, s_4_2, -1, 1, 0}
131 };
132
133 static const symbol s_5_0[2] = { 'i', 'c' };
134 static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
135 static const symbol s_5_2[2] = { 'i', 'v' };
136
137 static const struct among a_5[3] =
138 {
139 /*  0 */ { 2, s_5_0, -1, 1, 0},
140 /*  1 */ { 4, s_5_1, -1, 1, 0},
141 /*  2 */ { 2, s_5_2, -1, 1, 0}
142 };
143
144 static const symbol s_6_0[3] = { 'i', 'c', 'a' };
145 static const symbol s_6_1[5] = { 'a', 'n', 'c', 'i', 'a' };
146 static const symbol s_6_2[5] = { 'e', 'n', 'c', 'i', 'a' };
147 static const symbol s_6_3[5] = { 'a', 'd', 'o', 'r', 'a' };
148 static const symbol s_6_4[3] = { 'o', 's', 'a' };
149 static const symbol s_6_5[4] = { 'i', 's', 't', 'a' };
150 static const symbol s_6_6[3] = { 'i', 'v', 'a' };
151 static const symbol s_6_7[4] = { 'a', 'n', 'z', 'a' };
152 static const symbol s_6_8[6] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a' };
153 static const symbol s_6_9[4] = { 'i', 'd', 'a', 'd' };
154 static const symbol s_6_10[4] = { 'a', 'b', 'l', 'e' };
155 static const symbol s_6_11[4] = { 'i', 'b', 'l', 'e' };
156 static const symbol s_6_12[4] = { 'a', 'n', 't', 'e' };
157 static const symbol s_6_13[5] = { 'm', 'e', 'n', 't', 'e' };
158 static const symbol s_6_14[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
159 static const symbol s_6_15[6] = { 'a', 'c', 'i', 0xC3, 0xB3, 'n' };
160 static const symbol s_6_16[6] = { 'u', 'c', 'i', 0xC3, 0xB3, 'n' };
161 static const symbol s_6_17[3] = { 'i', 'c', 'o' };
162 static const symbol s_6_18[4] = { 'i', 's', 'm', 'o' };
163 static const symbol s_6_19[3] = { 'o', 's', 'o' };
164 static const symbol s_6_20[7] = { 'a', 'm', 'i', 'e', 'n', 't', 'o' };
165 static const symbol s_6_21[7] = { 'i', 'm', 'i', 'e', 'n', 't', 'o' };
166 static const symbol s_6_22[3] = { 'i', 'v', 'o' };
167 static const symbol s_6_23[4] = { 'a', 'd', 'o', 'r' };
168 static const symbol s_6_24[4] = { 'i', 'c', 'a', 's' };
169 static const symbol s_6_25[6] = { 'a', 'n', 'c', 'i', 'a', 's' };
170 static const symbol s_6_26[6] = { 'e', 'n', 'c', 'i', 'a', 's' };
171 static const symbol s_6_27[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
172 static const symbol s_6_28[4] = { 'o', 's', 'a', 's' };
173 static const symbol s_6_29[5] = { 'i', 's', 't', 'a', 's' };
174 static const symbol s_6_30[4] = { 'i', 'v', 'a', 's' };
175 static const symbol s_6_31[5] = { 'a', 'n', 'z', 'a', 's' };
176 static const symbol s_6_32[7] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a', 's' };
177 static const symbol s_6_33[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
178 static const symbol s_6_34[5] = { 'a', 'b', 'l', 'e', 's' };
179 static const symbol s_6_35[5] = { 'i', 'b', 'l', 'e', 's' };
180 static const symbol s_6_36[7] = { 'a', 'c', 'i', 'o', 'n', 'e', 's' };
181 static const symbol s_6_37[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
182 static const symbol s_6_38[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
183 static const symbol s_6_39[5] = { 'a', 'n', 't', 'e', 's' };
184 static const symbol s_6_40[4] = { 'i', 'c', 'o', 's' };
185 static const symbol s_6_41[5] = { 'i', 's', 'm', 'o', 's' };
186 static const symbol s_6_42[4] = { 'o', 's', 'o', 's' };
187 static const symbol s_6_43[8] = { 'a', 'm', 'i', 'e', 'n', 't', 'o', 's' };
188 static const symbol s_6_44[8] = { 'i', 'm', 'i', 'e', 'n', 't', 'o', 's' };
189 static const symbol s_6_45[4] = { 'i', 'v', 'o', 's' };
190
191 static const struct among a_6[46] =
192 {
193 /*  0 */ { 3, s_6_0, -1, 1, 0},
194 /*  1 */ { 5, s_6_1, -1, 2, 0},
195 /*  2 */ { 5, s_6_2, -1, 5, 0},
196 /*  3 */ { 5, s_6_3, -1, 2, 0},
197 /*  4 */ { 3, s_6_4, -1, 1, 0},
198 /*  5 */ { 4, s_6_5, -1, 1, 0},
199 /*  6 */ { 3, s_6_6, -1, 9, 0},
200 /*  7 */ { 4, s_6_7, -1, 1, 0},
201 /*  8 */ { 6, s_6_8, -1, 3, 0},
202 /*  9 */ { 4, s_6_9, -1, 8, 0},
203 /* 10 */ { 4, s_6_10, -1, 1, 0},
204 /* 11 */ { 4, s_6_11, -1, 1, 0},
205 /* 12 */ { 4, s_6_12, -1, 2, 0},
206 /* 13 */ { 5, s_6_13, -1, 7, 0},
207 /* 14 */ { 6, s_6_14, 13, 6, 0},
208 /* 15 */ { 6, s_6_15, -1, 2, 0},
209 /* 16 */ { 6, s_6_16, -1, 4, 0},
210 /* 17 */ { 3, s_6_17, -1, 1, 0},
211 /* 18 */ { 4, s_6_18, -1, 1, 0},
212 /* 19 */ { 3, s_6_19, -1, 1, 0},
213 /* 20 */ { 7, s_6_20, -1, 1, 0},
214 /* 21 */ { 7, s_6_21, -1, 1, 0},
215 /* 22 */ { 3, s_6_22, -1, 9, 0},
216 /* 23 */ { 4, s_6_23, -1, 2, 0},
217 /* 24 */ { 4, s_6_24, -1, 1, 0},
218 /* 25 */ { 6, s_6_25, -1, 2, 0},
219 /* 26 */ { 6, s_6_26, -1, 5, 0},
220 /* 27 */ { 6, s_6_27, -1, 2, 0},
221 /* 28 */ { 4, s_6_28, -1, 1, 0},
222 /* 29 */ { 5, s_6_29, -1, 1, 0},
223 /* 30 */ { 4, s_6_30, -1, 9, 0},
224 /* 31 */ { 5, s_6_31, -1, 1, 0},
225 /* 32 */ { 7, s_6_32, -1, 3, 0},
226 /* 33 */ { 6, s_6_33, -1, 8, 0},
227 /* 34 */ { 5, s_6_34, -1, 1, 0},
228 /* 35 */ { 5, s_6_35, -1, 1, 0},
229 /* 36 */ { 7, s_6_36, -1, 2, 0},
230 /* 37 */ { 7, s_6_37, -1, 4, 0},
231 /* 38 */ { 6, s_6_38, -1, 2, 0},
232 /* 39 */ { 5, s_6_39, -1, 2, 0},
233 /* 40 */ { 4, s_6_40, -1, 1, 0},
234 /* 41 */ { 5, s_6_41, -1, 1, 0},
235 /* 42 */ { 4, s_6_42, -1, 1, 0},
236 /* 43 */ { 8, s_6_43, -1, 1, 0},
237 /* 44 */ { 8, s_6_44, -1, 1, 0},
238 /* 45 */ { 4, s_6_45, -1, 9, 0}
239 };
240
241 static const symbol s_7_0[2] = { 'y', 'a' };
242 static const symbol s_7_1[2] = { 'y', 'e' };
243 static const symbol s_7_2[3] = { 'y', 'a', 'n' };
244 static const symbol s_7_3[3] = { 'y', 'e', 'n' };
245 static const symbol s_7_4[5] = { 'y', 'e', 'r', 'o', 'n' };
246 static const symbol s_7_5[5] = { 'y', 'e', 'n', 'd', 'o' };
247 static const symbol s_7_6[2] = { 'y', 'o' };
248 static const symbol s_7_7[3] = { 'y', 'a', 's' };
249 static const symbol s_7_8[3] = { 'y', 'e', 's' };
250 static const symbol s_7_9[4] = { 'y', 'a', 'i', 's' };
251 static const symbol s_7_10[5] = { 'y', 'a', 'm', 'o', 's' };
252 static const symbol s_7_11[3] = { 'y', 0xC3, 0xB3 };
253
254 static const struct among a_7[12] =
255 {
256 /*  0 */ { 2, s_7_0, -1, 1, 0},
257 /*  1 */ { 2, s_7_1, -1, 1, 0},
258 /*  2 */ { 3, s_7_2, -1, 1, 0},
259 /*  3 */ { 3, s_7_3, -1, 1, 0},
260 /*  4 */ { 5, s_7_4, -1, 1, 0},
261 /*  5 */ { 5, s_7_5, -1, 1, 0},
262 /*  6 */ { 2, s_7_6, -1, 1, 0},
263 /*  7 */ { 3, s_7_7, -1, 1, 0},
264 /*  8 */ { 3, s_7_8, -1, 1, 0},
265 /*  9 */ { 4, s_7_9, -1, 1, 0},
266 /* 10 */ { 5, s_7_10, -1, 1, 0},
267 /* 11 */ { 3, s_7_11, -1, 1, 0}
268 };
269
270 static const symbol s_8_0[3] = { 'a', 'b', 'a' };
271 static const symbol s_8_1[3] = { 'a', 'd', 'a' };
272 static const symbol s_8_2[3] = { 'i', 'd', 'a' };
273 static const symbol s_8_3[3] = { 'a', 'r', 'a' };
274 static const symbol s_8_4[4] = { 'i', 'e', 'r', 'a' };
275 static const symbol s_8_5[3] = { 0xC3, 0xAD, 'a' };
276 static const symbol s_8_6[5] = { 'a', 'r', 0xC3, 0xAD, 'a' };
277 static const symbol s_8_7[5] = { 'e', 'r', 0xC3, 0xAD, 'a' };
278 static const symbol s_8_8[5] = { 'i', 'r', 0xC3, 0xAD, 'a' };
279 static const symbol s_8_9[2] = { 'a', 'd' };
280 static const symbol s_8_10[2] = { 'e', 'd' };
281 static const symbol s_8_11[2] = { 'i', 'd' };
282 static const symbol s_8_12[3] = { 'a', 's', 'e' };
283 static const symbol s_8_13[4] = { 'i', 'e', 's', 'e' };
284 static const symbol s_8_14[4] = { 'a', 's', 't', 'e' };
285 static const symbol s_8_15[4] = { 'i', 's', 't', 'e' };
286 static const symbol s_8_16[2] = { 'a', 'n' };
287 static const symbol s_8_17[4] = { 'a', 'b', 'a', 'n' };
288 static const symbol s_8_18[4] = { 'a', 'r', 'a', 'n' };
289 static const symbol s_8_19[5] = { 'i', 'e', 'r', 'a', 'n' };
290 static const symbol s_8_20[4] = { 0xC3, 0xAD, 'a', 'n' };
291 static const symbol s_8_21[6] = { 'a', 'r', 0xC3, 0xAD, 'a', 'n' };
292 static const symbol s_8_22[6] = { 'e', 'r', 0xC3, 0xAD, 'a', 'n' };
293 static const symbol s_8_23[6] = { 'i', 'r', 0xC3, 0xAD, 'a', 'n' };
294 static const symbol s_8_24[2] = { 'e', 'n' };
295 static const symbol s_8_25[4] = { 'a', 's', 'e', 'n' };
296 static const symbol s_8_26[5] = { 'i', 'e', 's', 'e', 'n' };
297 static const symbol s_8_27[4] = { 'a', 'r', 'o', 'n' };
298 static const symbol s_8_28[5] = { 'i', 'e', 'r', 'o', 'n' };
299 static const symbol s_8_29[5] = { 'a', 'r', 0xC3, 0xA1, 'n' };
300 static const symbol s_8_30[5] = { 'e', 'r', 0xC3, 0xA1, 'n' };
301 static const symbol s_8_31[5] = { 'i', 'r', 0xC3, 0xA1, 'n' };
302 static const symbol s_8_32[3] = { 'a', 'd', 'o' };
303 static const symbol s_8_33[3] = { 'i', 'd', 'o' };
304 static const symbol s_8_34[4] = { 'a', 'n', 'd', 'o' };
305 static const symbol s_8_35[5] = { 'i', 'e', 'n', 'd', 'o' };
306 static const symbol s_8_36[2] = { 'a', 'r' };
307 static const symbol s_8_37[2] = { 'e', 'r' };
308 static const symbol s_8_38[2] = { 'i', 'r' };
309 static const symbol s_8_39[2] = { 'a', 's' };
310 static const symbol s_8_40[4] = { 'a', 'b', 'a', 's' };
311 static const symbol s_8_41[4] = { 'a', 'd', 'a', 's' };
312 static const symbol s_8_42[4] = { 'i', 'd', 'a', 's' };
313 static const symbol s_8_43[4] = { 'a', 'r', 'a', 's' };
314 static const symbol s_8_44[5] = { 'i', 'e', 'r', 'a', 's' };
315 static const symbol s_8_45[4] = { 0xC3, 0xAD, 'a', 's' };
316 static const symbol s_8_46[6] = { 'a', 'r', 0xC3, 0xAD, 'a', 's' };
317 static const symbol s_8_47[6] = { 'e', 'r', 0xC3, 0xAD, 'a', 's' };
318 static const symbol s_8_48[6] = { 'i', 'r', 0xC3, 0xAD, 'a', 's' };
319 static const symbol s_8_49[2] = { 'e', 's' };
320 static const symbol s_8_50[4] = { 'a', 's', 'e', 's' };
321 static const symbol s_8_51[5] = { 'i', 'e', 's', 'e', 's' };
322 static const symbol s_8_52[5] = { 'a', 'b', 'a', 'i', 's' };
323 static const symbol s_8_53[5] = { 'a', 'r', 'a', 'i', 's' };
324 static const symbol s_8_54[6] = { 'i', 'e', 'r', 'a', 'i', 's' };
325 static const symbol s_8_55[5] = { 0xC3, 0xAD, 'a', 'i', 's' };
326 static const symbol s_8_56[7] = { 'a', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
327 static const symbol s_8_57[7] = { 'e', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
328 static const symbol s_8_58[7] = { 'i', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
329 static const symbol s_8_59[5] = { 'a', 's', 'e', 'i', 's' };
330 static const symbol s_8_60[6] = { 'i', 'e', 's', 'e', 'i', 's' };
331 static const symbol s_8_61[6] = { 'a', 's', 't', 'e', 'i', 's' };
332 static const symbol s_8_62[6] = { 'i', 's', 't', 'e', 'i', 's' };
333 static const symbol s_8_63[4] = { 0xC3, 0xA1, 'i', 's' };
334 static const symbol s_8_64[4] = { 0xC3, 0xA9, 'i', 's' };
335 static const symbol s_8_65[6] = { 'a', 'r', 0xC3, 0xA9, 'i', 's' };
336 static const symbol s_8_66[6] = { 'e', 'r', 0xC3, 0xA9, 'i', 's' };
337 static const symbol s_8_67[6] = { 'i', 'r', 0xC3, 0xA9, 'i', 's' };
338 static const symbol s_8_68[4] = { 'a', 'd', 'o', 's' };
339 static const symbol s_8_69[4] = { 'i', 'd', 'o', 's' };
340 static const symbol s_8_70[4] = { 'a', 'm', 'o', 's' };
341 static const symbol s_8_71[7] = { 0xC3, 0xA1, 'b', 'a', 'm', 'o', 's' };
342 static const symbol s_8_72[7] = { 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's' };
343 static const symbol s_8_73[8] = { 'i', 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's' };
344 static const symbol s_8_74[6] = { 0xC3, 0xAD, 'a', 'm', 'o', 's' };
345 static const symbol s_8_75[8] = { 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
346 static const symbol s_8_76[8] = { 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
347 static const symbol s_8_77[8] = { 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
348 static const symbol s_8_78[4] = { 'e', 'm', 'o', 's' };
349 static const symbol s_8_79[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
350 static const symbol s_8_80[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
351 static const symbol s_8_81[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
352 static const symbol s_8_82[7] = { 0xC3, 0xA1, 's', 'e', 'm', 'o', 's' };
353 static const symbol s_8_83[8] = { 'i', 0xC3, 0xA9, 's', 'e', 'm', 'o', 's' };
354 static const symbol s_8_84[4] = { 'i', 'm', 'o', 's' };
355 static const symbol s_8_85[5] = { 'a', 'r', 0xC3, 0xA1, 's' };
356 static const symbol s_8_86[5] = { 'e', 'r', 0xC3, 0xA1, 's' };
357 static const symbol s_8_87[5] = { 'i', 'r', 0xC3, 0xA1, 's' };
358 static const symbol s_8_88[3] = { 0xC3, 0xAD, 's' };
359 static const symbol s_8_89[4] = { 'a', 'r', 0xC3, 0xA1 };
360 static const symbol s_8_90[4] = { 'e', 'r', 0xC3, 0xA1 };
361 static const symbol s_8_91[4] = { 'i', 'r', 0xC3, 0xA1 };
362 static const symbol s_8_92[4] = { 'a', 'r', 0xC3, 0xA9 };
363 static const symbol s_8_93[4] = { 'e', 'r', 0xC3, 0xA9 };
364 static const symbol s_8_94[4] = { 'i', 'r', 0xC3, 0xA9 };
365 static const symbol s_8_95[3] = { 'i', 0xC3, 0xB3 };
366
367 static const struct among a_8[96] =
368 {
369 /*  0 */ { 3, s_8_0, -1, 2, 0},
370 /*  1 */ { 3, s_8_1, -1, 2, 0},
371 /*  2 */ { 3, s_8_2, -1, 2, 0},
372 /*  3 */ { 3, s_8_3, -1, 2, 0},
373 /*  4 */ { 4, s_8_4, -1, 2, 0},
374 /*  5 */ { 3, s_8_5, -1, 2, 0},
375 /*  6 */ { 5, s_8_6, 5, 2, 0},
376 /*  7 */ { 5, s_8_7, 5, 2, 0},
377 /*  8 */ { 5, s_8_8, 5, 2, 0},
378 /*  9 */ { 2, s_8_9, -1, 2, 0},
379 /* 10 */ { 2, s_8_10, -1, 2, 0},
380 /* 11 */ { 2, s_8_11, -1, 2, 0},
381 /* 12 */ { 3, s_8_12, -1, 2, 0},
382 /* 13 */ { 4, s_8_13, -1, 2, 0},
383 /* 14 */ { 4, s_8_14, -1, 2, 0},
384 /* 15 */ { 4, s_8_15, -1, 2, 0},
385 /* 16 */ { 2, s_8_16, -1, 2, 0},
386 /* 17 */ { 4, s_8_17, 16, 2, 0},
387 /* 18 */ { 4, s_8_18, 16, 2, 0},
388 /* 19 */ { 5, s_8_19, 16, 2, 0},
389 /* 20 */ { 4, s_8_20, 16, 2, 0},
390 /* 21 */ { 6, s_8_21, 20, 2, 0},
391 /* 22 */ { 6, s_8_22, 20, 2, 0},
392 /* 23 */ { 6, s_8_23, 20, 2, 0},
393 /* 24 */ { 2, s_8_24, -1, 1, 0},
394 /* 25 */ { 4, s_8_25, 24, 2, 0},
395 /* 26 */ { 5, s_8_26, 24, 2, 0},
396 /* 27 */ { 4, s_8_27, -1, 2, 0},
397 /* 28 */ { 5, s_8_28, -1, 2, 0},
398 /* 29 */ { 5, s_8_29, -1, 2, 0},
399 /* 30 */ { 5, s_8_30, -1, 2, 0},
400 /* 31 */ { 5, s_8_31, -1, 2, 0},
401 /* 32 */ { 3, s_8_32, -1, 2, 0},
402 /* 33 */ { 3, s_8_33, -1, 2, 0},
403 /* 34 */ { 4, s_8_34, -1, 2, 0},
404 /* 35 */ { 5, s_8_35, -1, 2, 0},
405 /* 36 */ { 2, s_8_36, -1, 2, 0},
406 /* 37 */ { 2, s_8_37, -1, 2, 0},
407 /* 38 */ { 2, s_8_38, -1, 2, 0},
408 /* 39 */ { 2, s_8_39, -1, 2, 0},
409 /* 40 */ { 4, s_8_40, 39, 2, 0},
410 /* 41 */ { 4, s_8_41, 39, 2, 0},
411 /* 42 */ { 4, s_8_42, 39, 2, 0},
412 /* 43 */ { 4, s_8_43, 39, 2, 0},
413 /* 44 */ { 5, s_8_44, 39, 2, 0},
414 /* 45 */ { 4, s_8_45, 39, 2, 0},
415 /* 46 */ { 6, s_8_46, 45, 2, 0},
416 /* 47 */ { 6, s_8_47, 45, 2, 0},
417 /* 48 */ { 6, s_8_48, 45, 2, 0},
418 /* 49 */ { 2, s_8_49, -1, 1, 0},
419 /* 50 */ { 4, s_8_50, 49, 2, 0},
420 /* 51 */ { 5, s_8_51, 49, 2, 0},
421 /* 52 */ { 5, s_8_52, -1, 2, 0},
422 /* 53 */ { 5, s_8_53, -1, 2, 0},
423 /* 54 */ { 6, s_8_54, -1, 2, 0},
424 /* 55 */ { 5, s_8_55, -1, 2, 0},
425 /* 56 */ { 7, s_8_56, 55, 2, 0},
426 /* 57 */ { 7, s_8_57, 55, 2, 0},
427 /* 58 */ { 7, s_8_58, 55, 2, 0},
428 /* 59 */ { 5, s_8_59, -1, 2, 0},
429 /* 60 */ { 6, s_8_60, -1, 2, 0},
430 /* 61 */ { 6, s_8_61, -1, 2, 0},
431 /* 62 */ { 6, s_8_62, -1, 2, 0},
432 /* 63 */ { 4, s_8_63, -1, 2, 0},
433 /* 64 */ { 4, s_8_64, -1, 1, 0},
434 /* 65 */ { 6, s_8_65, 64, 2, 0},
435 /* 66 */ { 6, s_8_66, 64, 2, 0},
436 /* 67 */ { 6, s_8_67, 64, 2, 0},
437 /* 68 */ { 4, s_8_68, -1, 2, 0},
438 /* 69 */ { 4, s_8_69, -1, 2, 0},
439 /* 70 */ { 4, s_8_70, -1, 2, 0},
440 /* 71 */ { 7, s_8_71, 70, 2, 0},
441 /* 72 */ { 7, s_8_72, 70, 2, 0},
442 /* 73 */ { 8, s_8_73, 70, 2, 0},
443 /* 74 */ { 6, s_8_74, 70, 2, 0},
444 /* 75 */ { 8, s_8_75, 74, 2, 0},
445 /* 76 */ { 8, s_8_76, 74, 2, 0},
446 /* 77 */ { 8, s_8_77, 74, 2, 0},
447 /* 78 */ { 4, s_8_78, -1, 1, 0},
448 /* 79 */ { 6, s_8_79, 78, 2, 0},
449 /* 80 */ { 6, s_8_80, 78, 2, 0},
450 /* 81 */ { 6, s_8_81, 78, 2, 0},
451 /* 82 */ { 7, s_8_82, 78, 2, 0},
452 /* 83 */ { 8, s_8_83, 78, 2, 0},
453 /* 84 */ { 4, s_8_84, -1, 2, 0},
454 /* 85 */ { 5, s_8_85, -1, 2, 0},
455 /* 86 */ { 5, s_8_86, -1, 2, 0},
456 /* 87 */ { 5, s_8_87, -1, 2, 0},
457 /* 88 */ { 3, s_8_88, -1, 2, 0},
458 /* 89 */ { 4, s_8_89, -1, 2, 0},
459 /* 90 */ { 4, s_8_90, -1, 2, 0},
460 /* 91 */ { 4, s_8_91, -1, 2, 0},
461 /* 92 */ { 4, s_8_92, -1, 2, 0},
462 /* 93 */ { 4, s_8_93, -1, 2, 0},
463 /* 94 */ { 4, s_8_94, -1, 2, 0},
464 /* 95 */ { 3, s_8_95, -1, 2, 0}
465 };
466
467 static const symbol s_9_0[1] = { 'a' };
468 static const symbol s_9_1[1] = { 'e' };
469 static const symbol s_9_2[1] = { 'o' };
470 static const symbol s_9_3[2] = { 'o', 's' };
471 static const symbol s_9_4[2] = { 0xC3, 0xA1 };
472 static const symbol s_9_5[2] = { 0xC3, 0xA9 };
473 static const symbol s_9_6[2] = { 0xC3, 0xAD };
474 static const symbol s_9_7[2] = { 0xC3, 0xB3 };
475
476 static const struct among a_9[8] =
477 {
478 /*  0 */ { 1, s_9_0, -1, 1, 0},
479 /*  1 */ { 1, s_9_1, -1, 2, 0},
480 /*  2 */ { 1, s_9_2, -1, 1, 0},
481 /*  3 */ { 2, s_9_3, -1, 1, 0},
482 /*  4 */ { 2, s_9_4, -1, 1, 0},
483 /*  5 */ { 2, s_9_5, -1, 2, 0},
484 /*  6 */ { 2, s_9_6, -1, 1, 0},
485 /*  7 */ { 2, s_9_7, -1, 1, 0}
486 };
487
488 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 };
489
490 static const symbol s_0[] = { 'a' };
491 static const symbol s_1[] = { 'e' };
492 static const symbol s_2[] = { 'i' };
493 static const symbol s_3[] = { 'o' };
494 static const symbol s_4[] = { 'u' };
495 static const symbol s_5[] = { 'i', 'e', 'n', 'd', 'o' };
496 static const symbol s_6[] = { 'a', 'n', 'd', 'o' };
497 static const symbol s_7[] = { 'a', 'r' };
498 static const symbol s_8[] = { 'e', 'r' };
499 static const symbol s_9[] = { 'i', 'r' };
500 static const symbol s_10[] = { 'u' };
501 static const symbol s_11[] = { 'i', 'c' };
502 static const symbol s_12[] = { 'l', 'o', 'g' };
503 static const symbol s_13[] = { 'u' };
504 static const symbol s_14[] = { 'e', 'n', 't', 'e' };
505 static const symbol s_15[] = { 'a', 't' };
506 static const symbol s_16[] = { 'a', 't' };
507 static const symbol s_17[] = { 'u' };
508 static const symbol s_18[] = { 'u' };
509 static const symbol s_19[] = { 'g' };
510 static const symbol s_20[] = { 'u' };
511 static const symbol s_21[] = { 'g' };
512
513 static int r_mark_regions(struct SN_env * z) {
514     z->I[0] = z->l;
515     z->I[1] = z->l;
516     z->I[2] = z->l;
517     {   int c1 = z->c; /* do, line 37 */
518         {   int c2 = z->c; /* or, line 39 */
519             if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
520             {   int c3 = z->c; /* or, line 38 */
521                 if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
522                 {    /* gopast */ /* grouping v, line 38 */
523                     int ret = out_grouping_U(z, g_v, 97, 252, 1);
524                     if (ret < 0) goto lab4;
525                     z->c += ret;
526                 }
527                 goto lab3;
528             lab4:
529                 z->c = c3;
530                 if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
531                 {    /* gopast */ /* non v, line 38 */
532                     int ret = in_grouping_U(z, g_v, 97, 252, 1);
533                     if (ret < 0) goto lab2;
534                     z->c += ret;
535                 }
536             }
537         lab3:
538             goto lab1;
539         lab2:
540             z->c = c2;
541             if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
542             {   int c4 = z->c; /* or, line 40 */
543                 if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
544                 {    /* gopast */ /* grouping v, line 40 */
545                     int ret = out_grouping_U(z, g_v, 97, 252, 1);
546                     if (ret < 0) goto lab6;
547                     z->c += ret;
548                 }
549                 goto lab5;
550             lab6:
551                 z->c = c4;
552                 if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
553                 {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
554                     if (ret < 0) goto lab0;
555                     z->c = ret; /* next, line 40 */
556                 }
557             }
558         lab5:
559             ;
560         }
561     lab1:
562         z->I[0] = z->c; /* setmark pV, line 41 */
563     lab0:
564         z->c = c1;
565     }
566     {   int c5 = z->c; /* do, line 43 */
567         {    /* gopast */ /* grouping v, line 44 */
568             int ret = out_grouping_U(z, g_v, 97, 252, 1);
569             if (ret < 0) goto lab7;
570             z->c += ret;
571         }
572         {    /* gopast */ /* non v, line 44 */
573             int ret = in_grouping_U(z, g_v, 97, 252, 1);
574             if (ret < 0) goto lab7;
575             z->c += ret;
576         }
577         z->I[1] = z->c; /* setmark p1, line 44 */
578         {    /* gopast */ /* grouping v, line 45 */
579             int ret = out_grouping_U(z, g_v, 97, 252, 1);
580             if (ret < 0) goto lab7;
581             z->c += ret;
582         }
583         {    /* gopast */ /* non v, line 45 */
584             int ret = in_grouping_U(z, g_v, 97, 252, 1);
585             if (ret < 0) goto lab7;
586             z->c += ret;
587         }
588         z->I[2] = z->c; /* setmark p2, line 45 */
589     lab7:
590         z->c = c5;
591     }
592     return 1;
593 }
594
595 static int r_postlude(struct SN_env * z) {
596     int among_var;
597     while(1) { /* repeat, line 49 */
598         int c1 = z->c;
599         z->bra = z->c; /* [, line 50 */
600         if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((67641858 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else
601         among_var = find_among(z, a_0, 6); /* substring, line 50 */
602         if (!(among_var)) goto lab0;
603         z->ket = z->c; /* ], line 50 */
604         switch(among_var) {
605             case 0: goto lab0;
606             case 1:
607                 {   int ret = slice_from_s(z, 1, s_0); /* <-, line 51 */
608                     if (ret < 0) return ret;
609                 }
610                 break;
611             case 2:
612                 {   int ret = slice_from_s(z, 1, s_1); /* <-, line 52 */
613                     if (ret < 0) return ret;
614                 }
615                 break;
616             case 3:
617                 {   int ret = slice_from_s(z, 1, s_2); /* <-, line 53 */
618                     if (ret < 0) return ret;
619                 }
620                 break;
621             case 4:
622                 {   int ret = slice_from_s(z, 1, s_3); /* <-, line 54 */
623                     if (ret < 0) return ret;
624                 }
625                 break;
626             case 5:
627                 {   int ret = slice_from_s(z, 1, s_4); /* <-, line 55 */
628                     if (ret < 0) return ret;
629                 }
630                 break;
631             case 6:
632                 {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
633                     if (ret < 0) goto lab0;
634                     z->c = ret; /* next, line 57 */
635                 }
636                 break;
637         }
638         continue;
639     lab0:
640         z->c = c1;
641         break;
642     }
643     return 1;
644 }
645
646 static int r_RV(struct SN_env * z) {
647     if (!(z->I[0] <= z->c)) return 0;
648     return 1;
649 }
650
651 static int r_R1(struct SN_env * z) {
652     if (!(z->I[1] <= z->c)) return 0;
653     return 1;
654 }
655
656 static int r_R2(struct SN_env * z) {
657     if (!(z->I[2] <= z->c)) return 0;
658     return 1;
659 }
660
661 static int r_attached_pronoun(struct SN_env * z) {
662     int among_var;
663     z->ket = z->c; /* [, line 68 */
664     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
665     if (!(find_among_b(z, a_1, 13))) return 0; /* substring, line 68 */
666     z->bra = z->c; /* ], line 68 */
667     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
668     among_var = find_among_b(z, a_2, 11); /* substring, line 72 */
669     if (!(among_var)) return 0;
670     {   int ret = r_RV(z);
671         if (ret == 0) return 0; /* call RV, line 72 */
672         if (ret < 0) return ret;
673     }
674     switch(among_var) {
675         case 0: return 0;
676         case 1:
677             z->bra = z->c; /* ], line 73 */
678             {   int ret = slice_from_s(z, 5, s_5); /* <-, line 73 */
679                 if (ret < 0) return ret;
680             }
681             break;
682         case 2:
683             z->bra = z->c; /* ], line 74 */
684             {   int ret = slice_from_s(z, 4, s_6); /* <-, line 74 */
685                 if (ret < 0) return ret;
686             }
687             break;
688         case 3:
689             z->bra = z->c; /* ], line 75 */
690             {   int ret = slice_from_s(z, 2, s_7); /* <-, line 75 */
691                 if (ret < 0) return ret;
692             }
693             break;
694         case 4:
695             z->bra = z->c; /* ], line 76 */
696             {   int ret = slice_from_s(z, 2, s_8); /* <-, line 76 */
697                 if (ret < 0) return ret;
698             }
699             break;
700         case 5:
701             z->bra = z->c; /* ], line 77 */
702             {   int ret = slice_from_s(z, 2, s_9); /* <-, line 77 */
703                 if (ret < 0) return ret;
704             }
705             break;
706         case 6:
707             {   int ret = slice_del(z); /* delete, line 81 */
708                 if (ret < 0) return ret;
709             }
710             break;
711         case 7:
712             if (!(eq_s_b(z, 1, s_10))) return 0;
713             {   int ret = slice_del(z); /* delete, line 82 */
714                 if (ret < 0) return ret;
715             }
716             break;
717     }
718     return 1;
719 }
720
721 static int r_standard_suffix(struct SN_env * z) {
722     int among_var;
723     z->ket = z->c; /* [, line 87 */
724     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
725     among_var = find_among_b(z, a_6, 46); /* substring, line 87 */
726     if (!(among_var)) return 0;
727     z->bra = z->c; /* ], line 87 */
728     switch(among_var) {
729         case 0: return 0;
730         case 1:
731             {   int ret = r_R2(z);
732                 if (ret == 0) return 0; /* call R2, line 99 */
733                 if (ret < 0) return ret;
734             }
735             {   int ret = slice_del(z); /* delete, line 99 */
736                 if (ret < 0) return ret;
737             }
738             break;
739         case 2:
740             {   int ret = r_R2(z);
741                 if (ret == 0) return 0; /* call R2, line 105 */
742                 if (ret < 0) return ret;
743             }
744             {   int ret = slice_del(z); /* delete, line 105 */
745                 if (ret < 0) return ret;
746             }
747             {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 106 */
748                 z->ket = z->c; /* [, line 106 */
749                 if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab0; }
750                 z->bra = z->c; /* ], line 106 */
751                 {   int ret = r_R2(z);
752                     if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 106 */
753                     if (ret < 0) return ret;
754                 }
755                 {   int ret = slice_del(z); /* delete, line 106 */
756                     if (ret < 0) return ret;
757                 }
758             lab0:
759                 ;
760             }
761             break;
762         case 3:
763             {   int ret = r_R2(z);
764                 if (ret == 0) return 0; /* call R2, line 111 */
765                 if (ret < 0) return ret;
766             }
767             {   int ret = slice_from_s(z, 3, s_12); /* <-, line 111 */
768                 if (ret < 0) return ret;
769             }
770             break;
771         case 4:
772             {   int ret = r_R2(z);
773                 if (ret == 0) return 0; /* call R2, line 115 */
774                 if (ret < 0) return ret;
775             }
776             {   int ret = slice_from_s(z, 1, s_13); /* <-, line 115 */
777                 if (ret < 0) return ret;
778             }
779             break;
780         case 5:
781             {   int ret = r_R2(z);
782                 if (ret == 0) return 0; /* call R2, line 119 */
783                 if (ret < 0) return ret;
784             }
785             {   int ret = slice_from_s(z, 4, s_14); /* <-, line 119 */
786                 if (ret < 0) return ret;
787             }
788             break;
789         case 6:
790             {   int ret = r_R1(z);
791                 if (ret == 0) return 0; /* call R1, line 123 */
792                 if (ret < 0) return ret;
793             }
794             {   int ret = slice_del(z); /* delete, line 123 */
795                 if (ret < 0) return ret;
796             }
797             {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 124 */
798                 z->ket = z->c; /* [, line 125 */
799                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab1; }
800                 among_var = find_among_b(z, a_3, 4); /* substring, line 125 */
801                 if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
802                 z->bra = z->c; /* ], line 125 */
803                 {   int ret = r_R2(z);
804                     if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 125 */
805                     if (ret < 0) return ret;
806                 }
807                 {   int ret = slice_del(z); /* delete, line 125 */
808                     if (ret < 0) return ret;
809                 }
810                 switch(among_var) {
811                     case 0: { z->c = z->l - m_keep; goto lab1; }
812                     case 1:
813                         z->ket = z->c; /* [, line 126 */
814                         if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab1; }
815                         z->bra = z->c; /* ], line 126 */
816                         {   int ret = r_R2(z);
817                             if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 126 */
818                             if (ret < 0) return ret;
819                         }
820                         {   int ret = slice_del(z); /* delete, line 126 */
821                             if (ret < 0) return ret;
822                         }
823                         break;
824                 }
825             lab1:
826                 ;
827             }
828             break;
829         case 7:
830             {   int ret = r_R2(z);
831                 if (ret == 0) return 0; /* call R2, line 135 */
832                 if (ret < 0) return ret;
833             }
834             {   int ret = slice_del(z); /* delete, line 135 */
835                 if (ret < 0) return ret;
836             }
837             {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 136 */
838                 z->ket = z->c; /* [, line 137 */
839                 if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m_keep; goto lab2; }
840                 among_var = find_among_b(z, a_4, 3); /* substring, line 137 */
841                 if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
842                 z->bra = z->c; /* ], line 137 */
843                 switch(among_var) {
844                     case 0: { z->c = z->l - m_keep; goto lab2; }
845                     case 1:
846                         {   int ret = r_R2(z);
847                             if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 140 */
848                             if (ret < 0) return ret;
849                         }
850                         {   int ret = slice_del(z); /* delete, line 140 */
851                             if (ret < 0) return ret;
852                         }
853                         break;
854                 }
855             lab2:
856                 ;
857             }
858             break;
859         case 8:
860             {   int ret = r_R2(z);
861                 if (ret == 0) return 0; /* call R2, line 147 */
862                 if (ret < 0) return ret;
863             }
864             {   int ret = slice_del(z); /* delete, line 147 */
865                 if (ret < 0) return ret;
866             }
867             {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 148 */
868                 z->ket = z->c; /* [, line 149 */
869                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab3; }
870                 among_var = find_among_b(z, a_5, 3); /* substring, line 149 */
871                 if (!(among_var)) { z->c = z->l - m_keep; goto lab3; }
872                 z->bra = z->c; /* ], line 149 */
873                 switch(among_var) {
874                     case 0: { z->c = z->l - m_keep; goto lab3; }
875                     case 1:
876                         {   int ret = r_R2(z);
877                             if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 152 */
878                             if (ret < 0) return ret;
879                         }
880                         {   int ret = slice_del(z); /* delete, line 152 */
881                             if (ret < 0) return ret;
882                         }
883                         break;
884                 }
885             lab3:
886                 ;
887             }
888             break;
889         case 9:
890             {   int ret = r_R2(z);
891                 if (ret == 0) return 0; /* call R2, line 159 */
892                 if (ret < 0) return ret;
893             }
894             {   int ret = slice_del(z); /* delete, line 159 */
895                 if (ret < 0) return ret;
896             }
897             {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 160 */
898                 z->ket = z->c; /* [, line 161 */
899                 if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m_keep; goto lab4; }
900                 z->bra = z->c; /* ], line 161 */
901                 {   int ret = r_R2(z);
902                     if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call R2, line 161 */
903                     if (ret < 0) return ret;
904                 }
905                 {   int ret = slice_del(z); /* delete, line 161 */
906                     if (ret < 0) return ret;
907                 }
908             lab4:
909                 ;
910             }
911             break;
912     }
913     return 1;
914 }
915
916 static int r_y_verb_suffix(struct SN_env * z) {
917     int among_var;
918     {   int mlimit; /* setlimit, line 168 */
919         int m1 = z->l - z->c; (void)m1;
920         if (z->c < z->I[0]) return 0;
921         z->c = z->I[0]; /* tomark, line 168 */
922         mlimit = z->lb; z->lb = z->c;
923         z->c = z->l - m1;
924         z->ket = z->c; /* [, line 168 */
925         among_var = find_among_b(z, a_7, 12); /* substring, line 168 */
926         if (!(among_var)) { z->lb = mlimit; return 0; }
927         z->bra = z->c; /* ], line 168 */
928         z->lb = mlimit;
929     }
930     switch(among_var) {
931         case 0: return 0;
932         case 1:
933             if (!(eq_s_b(z, 1, s_17))) return 0;
934             {   int ret = slice_del(z); /* delete, line 171 */
935                 if (ret < 0) return ret;
936             }
937             break;
938     }
939     return 1;
940 }
941
942 static int r_verb_suffix(struct SN_env * z) {
943     int among_var;
944     {   int mlimit; /* setlimit, line 176 */
945         int m1 = z->l - z->c; (void)m1;
946         if (z->c < z->I[0]) return 0;
947         z->c = z->I[0]; /* tomark, line 176 */
948         mlimit = z->lb; z->lb = z->c;
949         z->c = z->l - m1;
950         z->ket = z->c; /* [, line 176 */
951         among_var = find_among_b(z, a_8, 96); /* substring, line 176 */
952         if (!(among_var)) { z->lb = mlimit; return 0; }
953         z->bra = z->c; /* ], line 176 */
954         z->lb = mlimit;
955     }
956     switch(among_var) {
957         case 0: return 0;
958         case 1:
959             {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 179 */
960                 if (!(eq_s_b(z, 1, s_18))) { z->c = z->l - m_keep; goto lab0; }
961                 {   int m_test = z->l - z->c; /* test, line 179 */
962                     if (!(eq_s_b(z, 1, s_19))) { z->c = z->l - m_keep; goto lab0; }
963                     z->c = z->l - m_test;
964                 }
965             lab0:
966                 ;
967             }
968             z->bra = z->c; /* ], line 179 */
969             {   int ret = slice_del(z); /* delete, line 179 */
970                 if (ret < 0) return ret;
971             }
972             break;
973         case 2:
974             {   int ret = slice_del(z); /* delete, line 200 */
975                 if (ret < 0) return ret;
976             }
977             break;
978     }
979     return 1;
980 }
981
982 static int r_residual_suffix(struct SN_env * z) {
983     int among_var;
984     z->ket = z->c; /* [, line 205 */
985     among_var = find_among_b(z, a_9, 8); /* substring, line 205 */
986     if (!(among_var)) return 0;
987     z->bra = z->c; /* ], line 205 */
988     switch(among_var) {
989         case 0: return 0;
990         case 1:
991             {   int ret = r_RV(z);
992                 if (ret == 0) return 0; /* call RV, line 208 */
993                 if (ret < 0) return ret;
994             }
995             {   int ret = slice_del(z); /* delete, line 208 */
996                 if (ret < 0) return ret;
997             }
998             break;
999         case 2:
1000             {   int ret = r_RV(z);
1001                 if (ret == 0) return 0; /* call RV, line 210 */
1002                 if (ret < 0) return ret;
1003             }
1004             {   int ret = slice_del(z); /* delete, line 210 */
1005                 if (ret < 0) return ret;
1006             }
1007             {   int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 210 */
1008                 z->ket = z->c; /* [, line 210 */
1009                 if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m_keep; goto lab0; }
1010                 z->bra = z->c; /* ], line 210 */
1011                 {   int m_test = z->l - z->c; /* test, line 210 */
1012                     if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m_keep; goto lab0; }
1013                     z->c = z->l - m_test;
1014                 }
1015                 {   int ret = r_RV(z);
1016                     if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 210 */
1017                     if (ret < 0) return ret;
1018                 }
1019                 {   int ret = slice_del(z); /* delete, line 210 */
1020                     if (ret < 0) return ret;
1021                 }
1022             lab0:
1023                 ;
1024             }
1025             break;
1026     }
1027     return 1;
1028 }
1029
1030 extern int spanish_UTF_8_stem(struct SN_env * z) {
1031     {   int c1 = z->c; /* do, line 216 */
1032         {   int ret = r_mark_regions(z);
1033             if (ret == 0) goto lab0; /* call mark_regions, line 216 */
1034             if (ret < 0) return ret;
1035         }
1036     lab0:
1037         z->c = c1;
1038     }
1039     z->lb = z->c; z->c = z->l; /* backwards, line 217 */
1040
1041     {   int m2 = z->l - z->c; (void)m2; /* do, line 218 */
1042         {   int ret = r_attached_pronoun(z);
1043             if (ret == 0) goto lab1; /* call attached_pronoun, line 218 */
1044             if (ret < 0) return ret;
1045         }
1046     lab1:
1047         z->c = z->l - m2;
1048     }
1049     {   int m3 = z->l - z->c; (void)m3; /* do, line 219 */
1050         {   int m4 = z->l - z->c; (void)m4; /* or, line 219 */
1051             {   int ret = r_standard_suffix(z);
1052                 if (ret == 0) goto lab4; /* call standard_suffix, line 219 */
1053                 if (ret < 0) return ret;
1054             }
1055             goto lab3;
1056         lab4:
1057             z->c = z->l - m4;
1058             {   int ret = r_y_verb_suffix(z);
1059                 if (ret == 0) goto lab5; /* call y_verb_suffix, line 220 */
1060                 if (ret < 0) return ret;
1061             }
1062             goto lab3;
1063         lab5:
1064             z->c = z->l - m4;
1065             {   int ret = r_verb_suffix(z);
1066                 if (ret == 0) goto lab2; /* call verb_suffix, line 221 */
1067                 if (ret < 0) return ret;
1068             }
1069         }
1070     lab3:
1071     lab2:
1072         z->c = z->l - m3;
1073     }
1074     {   int m5 = z->l - z->c; (void)m5; /* do, line 223 */
1075         {   int ret = r_residual_suffix(z);
1076             if (ret == 0) goto lab6; /* call residual_suffix, line 223 */
1077             if (ret < 0) return ret;
1078         }
1079     lab6:
1080         z->c = z->l - m5;
1081     }
1082     z->c = z->lb;
1083     {   int c6 = z->c; /* do, line 225 */
1084         {   int ret = r_postlude(z);
1085             if (ret == 0) goto lab7; /* call postlude, line 225 */
1086             if (ret < 0) return ret;
1087         }
1088     lab7:
1089         z->c = c6;
1090     }
1091     return 1;
1092 }
1093
1094 extern struct SN_env * spanish_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
1095
1096 extern void spanish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
1097