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