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