Line data Source code
1 : /* Generated from french.sbl by Snowball 3.0.0 - https://snowballstem.org/ */
2 :
3 : #include "stem_ISO_8859_1_french.h"
4 :
5 : #include <stddef.h>
6 :
7 : #include "snowball_runtime.h"
8 :
9 : struct SN_local {
10 : struct SN_env z;
11 : int i_p2;
12 : int i_p1;
13 : int i_pV;
14 : };
15 :
16 : typedef struct SN_local SN_local;
17 :
18 : #ifdef __cplusplus
19 : extern "C" {
20 : #endif
21 : extern int french_ISO_8859_1_stem(struct SN_env * z);
22 : #ifdef __cplusplus
23 : }
24 : #endif
25 :
26 : static int r_un_accent(struct SN_env * z);
27 : static int r_un_double(struct SN_env * z);
28 : static int r_residual_suffix(struct SN_env * z);
29 : static int r_verb_suffix(struct SN_env * z);
30 : static int r_i_verb_suffix(struct SN_env * z);
31 : static int r_standard_suffix(struct SN_env * z);
32 : static int r_R2(struct SN_env * z);
33 : static int r_R1(struct SN_env * z);
34 : static int r_RV(struct SN_env * z);
35 : static int r_mark_regions(struct SN_env * z);
36 : static int r_postlude(struct SN_env * z);
37 : static int r_prelude(struct SN_env * z);
38 : static int r_elisions(struct SN_env * z);
39 :
40 : static const symbol s_0[] = { 'q', 'u' };
41 : static const symbol s_1[] = { 'U' };
42 : static const symbol s_2[] = { 'I' };
43 : static const symbol s_3[] = { 'Y' };
44 : static const symbol s_4[] = { 'H', 'e' };
45 : static const symbol s_5[] = { 'H', 'i' };
46 : static const symbol s_6[] = { 'Y' };
47 : static const symbol s_7[] = { 'U' };
48 : static const symbol s_8[] = { 'i' };
49 : static const symbol s_9[] = { 'u' };
50 : static const symbol s_10[] = { 'y' };
51 : static const symbol s_11[] = { 0xEB };
52 : static const symbol s_12[] = { 0xEF };
53 : static const symbol s_13[] = { 'i', 'c' };
54 : static const symbol s_14[] = { 'i', 'q', 'U' };
55 : static const symbol s_15[] = { 'l', 'o', 'g' };
56 : static const symbol s_16[] = { 'u' };
57 : static const symbol s_17[] = { 'e', 'n', 't' };
58 : static const symbol s_18[] = { 'a', 't' };
59 : static const symbol s_19[] = { 'e', 'u', 'x' };
60 : static const symbol s_20[] = { 'i' };
61 : static const symbol s_21[] = { 'a', 'b', 'l' };
62 : static const symbol s_22[] = { 'i', 'q', 'U' };
63 : static const symbol s_23[] = { 'a', 't' };
64 : static const symbol s_24[] = { 'i', 'c' };
65 : static const symbol s_25[] = { 'i', 'q', 'U' };
66 : static const symbol s_26[] = { 'e', 'a', 'u' };
67 : static const symbol s_27[] = { 'a', 'l' };
68 : static const symbol s_28[] = { 'o', 'u' };
69 : static const symbol s_29[] = { 'e', 'u', 'x' };
70 : static const symbol s_30[] = { 'a', 'n', 't' };
71 : static const symbol s_31[] = { 'e', 'n', 't' };
72 : static const symbol s_32[] = { 'H', 'i' };
73 : static const symbol s_33[] = { 'i' };
74 : static const symbol s_34[] = { 'e' };
75 : static const symbol s_35[] = { 'i' };
76 : static const symbol s_36[] = { 'c' };
77 :
78 : static const symbol s_0_0[3] = { 'c', 'o', 'l' };
79 : static const symbol s_0_1[2] = { 'n', 'i' };
80 : static const symbol s_0_2[3] = { 'p', 'a', 'r' };
81 : static const symbol s_0_3[3] = { 't', 'a', 'p' };
82 : static const struct among a_0[4] = {
83 : { 3, s_0_0, 0, -1, 0},
84 : { 2, s_0_1, 0, 1, 0},
85 : { 3, s_0_2, 0, -1, 0},
86 : { 3, s_0_3, 0, -1, 0}
87 : };
88 :
89 : static const symbol s_1_1[1] = { 'H' };
90 : static const symbol s_1_2[2] = { 'H', 'e' };
91 : static const symbol s_1_3[2] = { 'H', 'i' };
92 : static const symbol s_1_4[1] = { 'I' };
93 : static const symbol s_1_5[1] = { 'U' };
94 : static const symbol s_1_6[1] = { 'Y' };
95 : static const struct among a_1[7] = {
96 : { 0, 0, 0, 7, 0},
97 : { 1, s_1_1, -1, 6, 0},
98 : { 2, s_1_2, -1, 4, 0},
99 : { 2, s_1_3, -2, 5, 0},
100 : { 1, s_1_4, -4, 1, 0},
101 : { 1, s_1_5, -5, 2, 0},
102 : { 1, s_1_6, -6, 3, 0}
103 : };
104 :
105 : static const symbol s_2_0[3] = { 'i', 'q', 'U' };
106 : static const symbol s_2_1[3] = { 'a', 'b', 'l' };
107 : static const symbol s_2_2[3] = { 'I', 0xE8, 'r' };
108 : static const symbol s_2_3[3] = { 'i', 0xE8, 'r' };
109 : static const symbol s_2_4[3] = { 'e', 'u', 's' };
110 : static const symbol s_2_5[2] = { 'i', 'v' };
111 : static const struct among a_2[6] = {
112 : { 3, s_2_0, 0, 3, 0},
113 : { 3, s_2_1, 0, 3, 0},
114 : { 3, s_2_2, 0, 4, 0},
115 : { 3, s_2_3, 0, 4, 0},
116 : { 3, s_2_4, 0, 2, 0},
117 : { 2, s_2_5, 0, 1, 0}
118 : };
119 :
120 : static const symbol s_3_0[2] = { 'i', 'c' };
121 : static const symbol s_3_1[4] = { 'a', 'b', 'i', 'l' };
122 : static const symbol s_3_2[2] = { 'i', 'v' };
123 : static const struct among a_3[3] = {
124 : { 2, s_3_0, 0, 2, 0},
125 : { 4, s_3_1, 0, 1, 0},
126 : { 2, s_3_2, 0, 3, 0}
127 : };
128 :
129 : static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' };
130 : static const symbol s_4_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
131 : static const symbol s_4_2[4] = { 'a', 'n', 'c', 'e' };
132 : static const symbol s_4_3[4] = { 'e', 'n', 'c', 'e' };
133 : static const symbol s_4_4[5] = { 'l', 'o', 'g', 'i', 'e' };
134 : static const symbol s_4_5[4] = { 'a', 'b', 'l', 'e' };
135 : static const symbol s_4_6[4] = { 'i', 's', 'm', 'e' };
136 : static const symbol s_4_7[4] = { 'e', 'u', 's', 'e' };
137 : static const symbol s_4_8[4] = { 'i', 's', 't', 'e' };
138 : static const symbol s_4_9[3] = { 'i', 'v', 'e' };
139 : static const symbol s_4_10[2] = { 'i', 'f' };
140 : static const symbol s_4_11[5] = { 'u', 's', 'i', 'o', 'n' };
141 : static const symbol s_4_12[5] = { 'a', 't', 'i', 'o', 'n' };
142 : static const symbol s_4_13[5] = { 'u', 't', 'i', 'o', 'n' };
143 : static const symbol s_4_14[5] = { 'a', 't', 'e', 'u', 'r' };
144 : static const symbol s_4_15[5] = { 'i', 'q', 'U', 'e', 's' };
145 : static const symbol s_4_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' };
146 : static const symbol s_4_17[5] = { 'a', 'n', 'c', 'e', 's' };
147 : static const symbol s_4_18[5] = { 'e', 'n', 'c', 'e', 's' };
148 : static const symbol s_4_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
149 : static const symbol s_4_20[5] = { 'a', 'b', 'l', 'e', 's' };
150 : static const symbol s_4_21[5] = { 'i', 's', 'm', 'e', 's' };
151 : static const symbol s_4_22[5] = { 'e', 'u', 's', 'e', 's' };
152 : static const symbol s_4_23[5] = { 'i', 's', 't', 'e', 's' };
153 : static const symbol s_4_24[4] = { 'i', 'v', 'e', 's' };
154 : static const symbol s_4_25[3] = { 'i', 'f', 's' };
155 : static const symbol s_4_26[6] = { 'u', 's', 'i', 'o', 'n', 's' };
156 : static const symbol s_4_27[6] = { 'a', 't', 'i', 'o', 'n', 's' };
157 : static const symbol s_4_28[6] = { 'u', 't', 'i', 'o', 'n', 's' };
158 : static const symbol s_4_29[6] = { 'a', 't', 'e', 'u', 'r', 's' };
159 : static const symbol s_4_30[5] = { 'm', 'e', 'n', 't', 's' };
160 : static const symbol s_4_31[6] = { 'e', 'm', 'e', 'n', 't', 's' };
161 : static const symbol s_4_32[9] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' };
162 : static const symbol s_4_33[4] = { 'i', 't', 0xE9, 's' };
163 : static const symbol s_4_34[4] = { 'm', 'e', 'n', 't' };
164 : static const symbol s_4_35[5] = { 'e', 'm', 'e', 'n', 't' };
165 : static const symbol s_4_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' };
166 : static const symbol s_4_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' };
167 : static const symbol s_4_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' };
168 : static const symbol s_4_39[3] = { 'a', 'u', 'x' };
169 : static const symbol s_4_40[4] = { 'e', 'a', 'u', 'x' };
170 : static const symbol s_4_41[3] = { 'e', 'u', 'x' };
171 : static const symbol s_4_42[3] = { 'o', 'u', 'x' };
172 : static const symbol s_4_43[3] = { 'i', 't', 0xE9 };
173 : static const struct among a_4[44] = {
174 : { 4, s_4_0, 0, 1, 0},
175 : { 6, s_4_1, 0, 2, 0},
176 : { 4, s_4_2, 0, 1, 0},
177 : { 4, s_4_3, 0, 5, 0},
178 : { 5, s_4_4, 0, 3, 0},
179 : { 4, s_4_5, 0, 1, 0},
180 : { 4, s_4_6, 0, 1, 0},
181 : { 4, s_4_7, 0, 12, 0},
182 : { 4, s_4_8, 0, 1, 0},
183 : { 3, s_4_9, 0, 8, 0},
184 : { 2, s_4_10, 0, 8, 0},
185 : { 5, s_4_11, 0, 4, 0},
186 : { 5, s_4_12, 0, 2, 0},
187 : { 5, s_4_13, 0, 4, 0},
188 : { 5, s_4_14, 0, 2, 0},
189 : { 5, s_4_15, 0, 1, 0},
190 : { 7, s_4_16, 0, 2, 0},
191 : { 5, s_4_17, 0, 1, 0},
192 : { 5, s_4_18, 0, 5, 0},
193 : { 6, s_4_19, 0, 3, 0},
194 : { 5, s_4_20, 0, 1, 0},
195 : { 5, s_4_21, 0, 1, 0},
196 : { 5, s_4_22, 0, 12, 0},
197 : { 5, s_4_23, 0, 1, 0},
198 : { 4, s_4_24, 0, 8, 0},
199 : { 3, s_4_25, 0, 8, 0},
200 : { 6, s_4_26, 0, 4, 0},
201 : { 6, s_4_27, 0, 2, 0},
202 : { 6, s_4_28, 0, 4, 0},
203 : { 6, s_4_29, 0, 2, 0},
204 : { 5, s_4_30, 0, 16, 0},
205 : { 6, s_4_31, -1, 6, 0},
206 : { 9, s_4_32, -1, 13, 0},
207 : { 4, s_4_33, 0, 7, 0},
208 : { 4, s_4_34, 0, 16, 0},
209 : { 5, s_4_35, -1, 6, 0},
210 : { 8, s_4_36, -1, 13, 0},
211 : { 6, s_4_37, -3, 14, 0},
212 : { 6, s_4_38, -4, 15, 0},
213 : { 3, s_4_39, 0, 10, 0},
214 : { 4, s_4_40, -1, 9, 0},
215 : { 3, s_4_41, 0, 1, 0},
216 : { 3, s_4_42, 0, 11, 0},
217 : { 3, s_4_43, 0, 7, 0}
218 : };
219 :
220 : static const symbol s_5_0[3] = { 'i', 'r', 'a' };
221 : static const symbol s_5_1[2] = { 'i', 'e' };
222 : static const symbol s_5_2[4] = { 'i', 's', 's', 'e' };
223 : static const symbol s_5_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' };
224 : static const symbol s_5_4[1] = { 'i' };
225 : static const symbol s_5_5[4] = { 'i', 'r', 'a', 'i' };
226 : static const symbol s_5_6[2] = { 'i', 'r' };
227 : static const symbol s_5_7[4] = { 'i', 'r', 'a', 's' };
228 : static const symbol s_5_8[3] = { 'i', 'e', 's' };
229 : static const symbol s_5_9[4] = { 0xEE, 'm', 'e', 's' };
230 : static const symbol s_5_10[5] = { 'i', 's', 's', 'e', 's' };
231 : static const symbol s_5_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' };
232 : static const symbol s_5_12[4] = { 0xEE, 't', 'e', 's' };
233 : static const symbol s_5_13[2] = { 'i', 's' };
234 : static const symbol s_5_14[5] = { 'i', 'r', 'a', 'i', 's' };
235 : static const symbol s_5_15[6] = { 'i', 's', 's', 'a', 'i', 's' };
236 : static const symbol s_5_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' };
237 : static const symbol s_5_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' };
238 : static const symbol s_5_18[5] = { 'i', 'r', 'o', 'n', 's' };
239 : static const symbol s_5_19[6] = { 'i', 's', 's', 'o', 'n', 's' };
240 : static const symbol s_5_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' };
241 : static const symbol s_5_21[2] = { 'i', 't' };
242 : static const symbol s_5_22[5] = { 'i', 'r', 'a', 'i', 't' };
243 : static const symbol s_5_23[6] = { 'i', 's', 's', 'a', 'i', 't' };
244 : static const symbol s_5_24[6] = { 'i', 's', 's', 'a', 'n', 't' };
245 : static const symbol s_5_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' };
246 : static const symbol s_5_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' };
247 : static const symbol s_5_27[5] = { 'i', 'r', 'e', 'n', 't' };
248 : static const symbol s_5_28[6] = { 'i', 's', 's', 'e', 'n', 't' };
249 : static const symbol s_5_29[5] = { 'i', 'r', 'o', 'n', 't' };
250 : static const symbol s_5_30[2] = { 0xEE, 't' };
251 : static const symbol s_5_31[5] = { 'i', 'r', 'i', 'e', 'z' };
252 : static const symbol s_5_32[6] = { 'i', 's', 's', 'i', 'e', 'z' };
253 : static const symbol s_5_33[4] = { 'i', 'r', 'e', 'z' };
254 : static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' };
255 : static const struct among a_5[35] = {
256 : { 3, s_5_0, 0, 1, 0},
257 : { 2, s_5_1, 0, 1, 0},
258 : { 4, s_5_2, 0, 1, 0},
259 : { 7, s_5_3, 0, 1, 0},
260 : { 1, s_5_4, 0, 1, 0},
261 : { 4, s_5_5, -1, 1, 0},
262 : { 2, s_5_6, 0, 1, 0},
263 : { 4, s_5_7, 0, 1, 0},
264 : { 3, s_5_8, 0, 1, 0},
265 : { 4, s_5_9, 0, 1, 0},
266 : { 5, s_5_10, 0, 1, 0},
267 : { 8, s_5_11, 0, 1, 0},
268 : { 4, s_5_12, 0, 1, 0},
269 : { 2, s_5_13, 0, 1, 0},
270 : { 5, s_5_14, -1, 1, 0},
271 : { 6, s_5_15, -2, 1, 0},
272 : { 6, s_5_16, 0, 1, 0},
273 : { 7, s_5_17, 0, 1, 0},
274 : { 5, s_5_18, 0, 1, 0},
275 : { 6, s_5_19, 0, 1, 0},
276 : { 7, s_5_20, 0, 1, 0},
277 : { 2, s_5_21, 0, 1, 0},
278 : { 5, s_5_22, -1, 1, 0},
279 : { 6, s_5_23, -2, 1, 0},
280 : { 6, s_5_24, 0, 1, 0},
281 : { 7, s_5_25, 0, 1, 0},
282 : { 8, s_5_26, 0, 1, 0},
283 : { 5, s_5_27, 0, 1, 0},
284 : { 6, s_5_28, 0, 1, 0},
285 : { 5, s_5_29, 0, 1, 0},
286 : { 2, s_5_30, 0, 1, 0},
287 : { 5, s_5_31, 0, 1, 0},
288 : { 6, s_5_32, 0, 1, 0},
289 : { 4, s_5_33, 0, 1, 0},
290 : { 5, s_5_34, 0, 1, 0}
291 : };
292 :
293 : static const symbol s_6_0[2] = { 'a', 'l' };
294 : static const symbol s_6_1[3] = { 0xE9, 'p', 'l' };
295 : static const symbol s_6_2[3] = { 'a', 'u', 'v' };
296 : static const struct among a_6[3] = {
297 : { 2, s_6_0, 0, 1, 0},
298 : { 3, s_6_1, 0, -1, 0},
299 : { 3, s_6_2, 0, -1, 0}
300 : };
301 :
302 : static const symbol s_7_0[1] = { 'a' };
303 : static const symbol s_7_1[3] = { 'e', 'r', 'a' };
304 : static const symbol s_7_2[4] = { 'a', 'i', 's', 'e' };
305 : static const symbol s_7_3[4] = { 'a', 's', 's', 'e' };
306 : static const symbol s_7_4[4] = { 'a', 'n', 't', 'e' };
307 : static const symbol s_7_5[2] = { 0xE9, 'e' };
308 : static const symbol s_7_6[2] = { 'a', 'i' };
309 : static const symbol s_7_7[4] = { 'e', 'r', 'a', 'i' };
310 : static const symbol s_7_8[2] = { 'e', 'r' };
311 : static const symbol s_7_9[2] = { 'a', 's' };
312 : static const symbol s_7_10[4] = { 'e', 'r', 'a', 's' };
313 : static const symbol s_7_11[4] = { 0xE2, 'm', 'e', 's' };
314 : static const symbol s_7_12[5] = { 'a', 'i', 's', 'e', 's' };
315 : static const symbol s_7_13[5] = { 'a', 's', 's', 'e', 's' };
316 : static const symbol s_7_14[5] = { 'a', 'n', 't', 'e', 's' };
317 : static const symbol s_7_15[4] = { 0xE2, 't', 'e', 's' };
318 : static const symbol s_7_16[3] = { 0xE9, 'e', 's' };
319 : static const symbol s_7_17[3] = { 'a', 'i', 's' };
320 : static const symbol s_7_18[4] = { 'e', 'a', 'i', 's' };
321 : static const symbol s_7_19[5] = { 'e', 'r', 'a', 'i', 's' };
322 : static const symbol s_7_20[4] = { 'i', 'o', 'n', 's' };
323 : static const symbol s_7_21[6] = { 'e', 'r', 'i', 'o', 'n', 's' };
324 : static const symbol s_7_22[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' };
325 : static const symbol s_7_23[5] = { 'e', 'r', 'o', 'n', 's' };
326 : static const symbol s_7_24[4] = { 'a', 'n', 't', 's' };
327 : static const symbol s_7_25[2] = { 0xE9, 's' };
328 : static const symbol s_7_26[3] = { 'a', 'i', 't' };
329 : static const symbol s_7_27[5] = { 'e', 'r', 'a', 'i', 't' };
330 : static const symbol s_7_28[3] = { 'a', 'n', 't' };
331 : static const symbol s_7_29[5] = { 'a', 'I', 'e', 'n', 't' };
332 : static const symbol s_7_30[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' };
333 : static const symbol s_7_31[5] = { 0xE8, 'r', 'e', 'n', 't' };
334 : static const symbol s_7_32[6] = { 'a', 's', 's', 'e', 'n', 't' };
335 : static const symbol s_7_33[5] = { 'e', 'r', 'o', 'n', 't' };
336 : static const symbol s_7_34[2] = { 0xE2, 't' };
337 : static const symbol s_7_35[2] = { 'e', 'z' };
338 : static const symbol s_7_36[3] = { 'i', 'e', 'z' };
339 : static const symbol s_7_37[5] = { 'e', 'r', 'i', 'e', 'z' };
340 : static const symbol s_7_38[6] = { 'a', 's', 's', 'i', 'e', 'z' };
341 : static const symbol s_7_39[4] = { 'e', 'r', 'e', 'z' };
342 : static const symbol s_7_40[1] = { 0xE9 };
343 : static const struct among a_7[41] = {
344 : { 1, s_7_0, 0, 3, 0},
345 : { 3, s_7_1, -1, 2, 0},
346 : { 4, s_7_2, 0, 4, 0},
347 : { 4, s_7_3, 0, 3, 0},
348 : { 4, s_7_4, 0, 3, 0},
349 : { 2, s_7_5, 0, 2, 0},
350 : { 2, s_7_6, 0, 3, 0},
351 : { 4, s_7_7, -1, 2, 0},
352 : { 2, s_7_8, 0, 2, 0},
353 : { 2, s_7_9, 0, 3, 0},
354 : { 4, s_7_10, -1, 2, 0},
355 : { 4, s_7_11, 0, 3, 0},
356 : { 5, s_7_12, 0, 4, 0},
357 : { 5, s_7_13, 0, 3, 0},
358 : { 5, s_7_14, 0, 3, 0},
359 : { 4, s_7_15, 0, 3, 0},
360 : { 3, s_7_16, 0, 2, 0},
361 : { 3, s_7_17, 0, 4, 0},
362 : { 4, s_7_18, -1, 2, 0},
363 : { 5, s_7_19, -2, 2, 0},
364 : { 4, s_7_20, 0, 1, 0},
365 : { 6, s_7_21, -1, 2, 0},
366 : { 7, s_7_22, -2, 3, 0},
367 : { 5, s_7_23, 0, 2, 0},
368 : { 4, s_7_24, 0, 3, 0},
369 : { 2, s_7_25, 0, 2, 0},
370 : { 3, s_7_26, 0, 3, 0},
371 : { 5, s_7_27, -1, 2, 0},
372 : { 3, s_7_28, 0, 3, 0},
373 : { 5, s_7_29, 0, 3, 0},
374 : { 7, s_7_30, -1, 2, 0},
375 : { 5, s_7_31, 0, 2, 0},
376 : { 6, s_7_32, 0, 3, 0},
377 : { 5, s_7_33, 0, 2, 0},
378 : { 2, s_7_34, 0, 3, 0},
379 : { 2, s_7_35, 0, 2, 0},
380 : { 3, s_7_36, -1, 2, 0},
381 : { 5, s_7_37, -1, 2, 0},
382 : { 6, s_7_38, -2, 3, 0},
383 : { 4, s_7_39, -4, 2, 0},
384 : { 1, s_7_40, 0, 2, 0}
385 : };
386 :
387 : static const symbol s_8_0[1] = { 'e' };
388 : static const symbol s_8_1[4] = { 'I', 0xE8, 'r', 'e' };
389 : static const symbol s_8_2[4] = { 'i', 0xE8, 'r', 'e' };
390 : static const symbol s_8_3[3] = { 'i', 'o', 'n' };
391 : static const symbol s_8_4[3] = { 'I', 'e', 'r' };
392 : static const symbol s_8_5[3] = { 'i', 'e', 'r' };
393 : static const struct among a_8[6] = {
394 : { 1, s_8_0, 0, 3, 0},
395 : { 4, s_8_1, -1, 2, 0},
396 : { 4, s_8_2, -2, 2, 0},
397 : { 3, s_8_3, 0, 1, 0},
398 : { 3, s_8_4, 0, 2, 0},
399 : { 3, s_8_5, 0, 2, 0}
400 : };
401 :
402 : static const symbol s_9_0[3] = { 'e', 'l', 'l' };
403 : static const symbol s_9_1[4] = { 'e', 'i', 'l', 'l' };
404 : static const symbol s_9_2[3] = { 'e', 'n', 'n' };
405 : static const symbol s_9_3[3] = { 'o', 'n', 'n' };
406 : static const symbol s_9_4[3] = { 'e', 't', 't' };
407 : static const struct among a_9[5] = {
408 : { 3, s_9_0, 0, -1, 0},
409 : { 4, s_9_1, 0, -1, 0},
410 : { 3, s_9_2, 0, -1, 0},
411 : { 3, s_9_3, 0, -1, 0},
412 : { 3, s_9_4, 0, -1, 0}
413 : };
414 :
415 : 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 };
416 :
417 : static const unsigned char g_oux_ending[] = { 65, 85 };
418 :
419 : static const unsigned char g_elision_char[] = { 131, 14, 3 };
420 :
421 : 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 };
422 :
423 0 : static int r_elisions(struct SN_env * z) {
424 0 : z->bra = z->c;
425 : do {
426 0 : int v_1 = z->c;
427 0 : if (in_grouping(z, g_elision_char, 99, 116, 0)) goto lab0;
428 0 : break;
429 0 : lab0:
430 0 : z->c = v_1;
431 0 : if (!(eq_s(z, 2, s_0))) return 0;
432 : } while (0);
433 0 : if (z->c == z->l || z->p[z->c] != '\'') return 0;
434 0 : z->c++;
435 0 : z->ket = z->c;
436 0 : if (z->c < z->l) goto lab1;
437 0 : return 0;
438 0 : lab1:
439 : {
440 0 : int ret = slice_del(z);
441 0 : if (ret < 0) return ret;
442 : }
443 0 : return 1;
444 : }
445 :
446 0 : static int r_prelude(struct SN_env * z) {
447 0 : while (1) {
448 0 : int v_1 = z->c;
449 0 : while (1) {
450 0 : int v_2 = z->c;
451 : do {
452 0 : int v_3 = z->c;
453 0 : if (in_grouping(z, g_v, 97, 251, 0)) goto lab2;
454 0 : z->bra = z->c;
455 : do {
456 0 : int v_4 = z->c;
457 0 : if (z->c == z->l || z->p[z->c] != 'u') goto lab3;
458 0 : z->c++;
459 0 : z->ket = z->c;
460 0 : if (in_grouping(z, g_v, 97, 251, 0)) goto lab3;
461 : {
462 0 : int ret = slice_from_s(z, 1, s_1);
463 0 : if (ret < 0) return ret;
464 : }
465 0 : break;
466 0 : lab3:
467 0 : z->c = v_4;
468 0 : if (z->c == z->l || z->p[z->c] != 'i') goto lab4;
469 0 : z->c++;
470 0 : z->ket = z->c;
471 0 : if (in_grouping(z, g_v, 97, 251, 0)) goto lab4;
472 : {
473 0 : int ret = slice_from_s(z, 1, s_2);
474 0 : if (ret < 0) return ret;
475 : }
476 0 : break;
477 0 : lab4:
478 0 : z->c = v_4;
479 0 : if (z->c == z->l || z->p[z->c] != 'y') goto lab2;
480 0 : z->c++;
481 0 : z->ket = z->c;
482 : {
483 0 : int ret = slice_from_s(z, 1, s_3);
484 0 : if (ret < 0) return ret;
485 : }
486 : } while (0);
487 0 : break;
488 0 : lab2:
489 0 : z->c = v_3;
490 0 : z->bra = z->c;
491 0 : if (z->c == z->l || z->p[z->c] != 0xEB) goto lab5;
492 0 : z->c++;
493 0 : z->ket = z->c;
494 : {
495 0 : int ret = slice_from_s(z, 2, s_4);
496 0 : if (ret < 0) return ret;
497 : }
498 0 : break;
499 0 : lab5:
500 0 : z->c = v_3;
501 0 : z->bra = z->c;
502 0 : if (z->c == z->l || z->p[z->c] != 0xEF) goto lab6;
503 0 : z->c++;
504 0 : z->ket = z->c;
505 : {
506 0 : int ret = slice_from_s(z, 2, s_5);
507 0 : if (ret < 0) return ret;
508 : }
509 0 : break;
510 0 : lab6:
511 0 : z->c = v_3;
512 0 : z->bra = z->c;
513 0 : if (z->c == z->l || z->p[z->c] != 'y') goto lab7;
514 0 : z->c++;
515 0 : z->ket = z->c;
516 0 : if (in_grouping(z, g_v, 97, 251, 0)) goto lab7;
517 : {
518 0 : int ret = slice_from_s(z, 1, s_6);
519 0 : if (ret < 0) return ret;
520 : }
521 0 : break;
522 0 : lab7:
523 0 : z->c = v_3;
524 0 : if (z->c == z->l || z->p[z->c] != 'q') goto lab1;
525 0 : z->c++;
526 0 : z->bra = z->c;
527 0 : if (z->c == z->l || z->p[z->c] != 'u') goto lab1;
528 0 : z->c++;
529 0 : z->ket = z->c;
530 : {
531 0 : int ret = slice_from_s(z, 1, s_7);
532 0 : if (ret < 0) return ret;
533 : }
534 : } while (0);
535 0 : z->c = v_2;
536 0 : break;
537 0 : lab1:
538 0 : z->c = v_2;
539 0 : if (z->c >= z->l) goto lab0;
540 0 : z->c++;
541 : }
542 0 : continue;
543 0 : lab0:
544 0 : z->c = v_1;
545 0 : break;
546 : }
547 0 : return 1;
548 : }
549 :
550 0 : static int r_mark_regions(struct SN_env * z) {
551 : int among_var;
552 0 : ((SN_local *)z)->i_pV = z->l;
553 0 : ((SN_local *)z)->i_p1 = z->l;
554 0 : ((SN_local *)z)->i_p2 = z->l;
555 : {
556 0 : int v_1 = z->c;
557 : do {
558 0 : int v_2 = z->c;
559 0 : if (in_grouping(z, g_v, 97, 251, 0)) goto lab1;
560 0 : if (in_grouping(z, g_v, 97, 251, 0)) goto lab1;
561 0 : if (z->c >= z->l) goto lab1;
562 0 : z->c++;
563 0 : break;
564 0 : lab1:
565 0 : z->c = v_2;
566 0 : if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((33282 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab2;
567 0 : among_var = find_among(z, a_0, 4, 0);
568 0 : if (!among_var) goto lab2;
569 0 : switch (among_var) {
570 0 : case 1:
571 0 : if (in_grouping(z, g_v, 97, 251, 0)) goto lab2;
572 0 : break;
573 : }
574 0 : break;
575 0 : lab2:
576 0 : z->c = v_2;
577 0 : if (z->c >= z->l) goto lab0;
578 0 : z->c++;
579 : {
580 0 : int ret = out_grouping(z, g_v, 97, 251, 1);
581 0 : if (ret < 0) goto lab0;
582 0 : z->c += ret;
583 : }
584 : } while (0);
585 0 : ((SN_local *)z)->i_pV = z->c;
586 0 : lab0:
587 0 : z->c = v_1;
588 : }
589 : {
590 0 : int v_3 = z->c;
591 : {
592 0 : int ret = out_grouping(z, g_v, 97, 251, 1);
593 0 : if (ret < 0) goto lab3;
594 0 : z->c += ret;
595 : }
596 : {
597 0 : int ret = in_grouping(z, g_v, 97, 251, 1);
598 0 : if (ret < 0) goto lab3;
599 0 : z->c += ret;
600 : }
601 0 : ((SN_local *)z)->i_p1 = z->c;
602 : {
603 0 : int ret = out_grouping(z, g_v, 97, 251, 1);
604 0 : if (ret < 0) goto lab3;
605 0 : z->c += ret;
606 : }
607 : {
608 0 : int ret = in_grouping(z, g_v, 97, 251, 1);
609 0 : if (ret < 0) goto lab3;
610 0 : z->c += ret;
611 : }
612 0 : ((SN_local *)z)->i_p2 = z->c;
613 0 : lab3:
614 0 : z->c = v_3;
615 : }
616 0 : return 1;
617 : }
618 :
619 0 : static int r_postlude(struct SN_env * z) {
620 : int among_var;
621 0 : while (1) {
622 0 : int v_1 = z->c;
623 0 : z->bra = z->c;
624 0 : if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else
625 0 : among_var = find_among(z, a_1, 7, 0);
626 0 : z->ket = z->c;
627 0 : switch (among_var) {
628 0 : case 1:
629 : {
630 0 : int ret = slice_from_s(z, 1, s_8);
631 0 : if (ret < 0) return ret;
632 : }
633 0 : break;
634 0 : case 2:
635 : {
636 0 : int ret = slice_from_s(z, 1, s_9);
637 0 : if (ret < 0) return ret;
638 : }
639 0 : break;
640 0 : case 3:
641 : {
642 0 : int ret = slice_from_s(z, 1, s_10);
643 0 : if (ret < 0) return ret;
644 : }
645 0 : break;
646 0 : case 4:
647 : {
648 0 : int ret = slice_from_s(z, 1, s_11);
649 0 : if (ret < 0) return ret;
650 : }
651 0 : break;
652 0 : case 5:
653 : {
654 0 : int ret = slice_from_s(z, 1, s_12);
655 0 : if (ret < 0) return ret;
656 : }
657 0 : break;
658 0 : case 6:
659 : {
660 0 : int ret = slice_del(z);
661 0 : if (ret < 0) return ret;
662 : }
663 0 : break;
664 0 : case 7:
665 0 : if (z->c >= z->l) goto lab0;
666 0 : z->c++;
667 0 : break;
668 : }
669 0 : continue;
670 0 : lab0:
671 0 : z->c = v_1;
672 0 : break;
673 : }
674 0 : return 1;
675 : }
676 :
677 0 : static int r_RV(struct SN_env * z) {
678 0 : return ((SN_local *)z)->i_pV <= z->c;
679 : }
680 :
681 0 : static int r_R1(struct SN_env * z) {
682 0 : return ((SN_local *)z)->i_p1 <= z->c;
683 : }
684 :
685 0 : static int r_R2(struct SN_env * z) {
686 0 : return ((SN_local *)z)->i_p2 <= z->c;
687 : }
688 :
689 0 : static int r_standard_suffix(struct SN_env * z) {
690 : int among_var;
691 0 : z->ket = z->c;
692 0 : among_var = find_among_b(z, a_4, 44, 0);
693 0 : if (!among_var) return 0;
694 0 : z->bra = z->c;
695 0 : switch (among_var) {
696 0 : case 1:
697 : {
698 0 : int ret = r_R2(z);
699 0 : if (ret <= 0) return ret;
700 : }
701 : {
702 0 : int ret = slice_del(z);
703 0 : if (ret < 0) return ret;
704 : }
705 0 : break;
706 0 : case 2:
707 : {
708 0 : int ret = r_R2(z);
709 0 : if (ret <= 0) return ret;
710 : }
711 : {
712 0 : int ret = slice_del(z);
713 0 : if (ret < 0) return ret;
714 : }
715 : {
716 0 : int v_1 = z->l - z->c;
717 0 : z->ket = z->c;
718 0 : if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - v_1; goto lab0; }
719 0 : z->bra = z->c;
720 : do {
721 0 : int v_2 = z->l - z->c;
722 : {
723 0 : int ret = r_R2(z);
724 0 : if (ret == 0) goto lab1;
725 0 : if (ret < 0) return ret;
726 : }
727 : {
728 0 : int ret = slice_del(z);
729 0 : if (ret < 0) return ret;
730 : }
731 0 : break;
732 0 : lab1:
733 0 : z->c = z->l - v_2;
734 : {
735 0 : int ret = slice_from_s(z, 3, s_14);
736 0 : if (ret < 0) return ret;
737 : }
738 : } while (0);
739 0 : lab0:
740 : ;
741 : }
742 0 : break;
743 0 : case 3:
744 : {
745 0 : int ret = r_R2(z);
746 0 : if (ret <= 0) return ret;
747 : }
748 : {
749 0 : int ret = slice_from_s(z, 3, s_15);
750 0 : if (ret < 0) return ret;
751 : }
752 0 : break;
753 0 : case 4:
754 : {
755 0 : int ret = r_R2(z);
756 0 : if (ret <= 0) return ret;
757 : }
758 : {
759 0 : int ret = slice_from_s(z, 1, s_16);
760 0 : if (ret < 0) return ret;
761 : }
762 0 : break;
763 0 : case 5:
764 : {
765 0 : int ret = r_R2(z);
766 0 : if (ret <= 0) return ret;
767 : }
768 : {
769 0 : int ret = slice_from_s(z, 3, s_17);
770 0 : if (ret < 0) return ret;
771 : }
772 0 : break;
773 0 : case 6:
774 : {
775 0 : int ret = r_RV(z);
776 0 : if (ret <= 0) return ret;
777 : }
778 : {
779 0 : int ret = slice_del(z);
780 0 : if (ret < 0) return ret;
781 : }
782 : {
783 0 : int v_3 = z->l - z->c;
784 0 : z->ket = z->c;
785 0 : among_var = find_among_b(z, a_2, 6, 0);
786 0 : if (!among_var) { z->c = z->l - v_3; goto lab2; }
787 0 : z->bra = z->c;
788 : switch (among_var) {
789 0 : case 1:
790 : {
791 0 : int ret = r_R2(z);
792 0 : if (ret == 0) { z->c = z->l - v_3; goto lab2; }
793 0 : if (ret < 0) return ret;
794 : }
795 : {
796 0 : int ret = slice_del(z);
797 0 : if (ret < 0) return ret;
798 : }
799 0 : z->ket = z->c;
800 0 : if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - v_3; goto lab2; }
801 0 : z->bra = z->c;
802 : {
803 0 : int ret = r_R2(z);
804 0 : if (ret == 0) { z->c = z->l - v_3; goto lab2; }
805 0 : if (ret < 0) return ret;
806 : }
807 : {
808 0 : int ret = slice_del(z);
809 0 : if (ret < 0) return ret;
810 : }
811 0 : break;
812 0 : case 2:
813 : do {
814 0 : int v_4 = z->l - z->c;
815 : {
816 0 : int ret = r_R2(z);
817 0 : if (ret == 0) goto lab3;
818 0 : if (ret < 0) return ret;
819 : }
820 : {
821 0 : int ret = slice_del(z);
822 0 : if (ret < 0) return ret;
823 : }
824 0 : break;
825 0 : lab3:
826 0 : z->c = z->l - v_4;
827 : {
828 0 : int ret = r_R1(z);
829 0 : if (ret == 0) { z->c = z->l - v_3; goto lab2; }
830 0 : if (ret < 0) return ret;
831 : }
832 : {
833 0 : int ret = slice_from_s(z, 3, s_19);
834 0 : if (ret < 0) return ret;
835 : }
836 : } while (0);
837 0 : break;
838 0 : case 3:
839 : {
840 0 : int ret = r_R2(z);
841 0 : if (ret == 0) { z->c = z->l - v_3; goto lab2; }
842 0 : if (ret < 0) return ret;
843 : }
844 : {
845 0 : int ret = slice_del(z);
846 0 : if (ret < 0) return ret;
847 : }
848 0 : break;
849 0 : case 4:
850 : {
851 0 : int ret = r_RV(z);
852 0 : if (ret == 0) { z->c = z->l - v_3; goto lab2; }
853 0 : if (ret < 0) return ret;
854 : }
855 : {
856 0 : int ret = slice_from_s(z, 1, s_20);
857 0 : if (ret < 0) return ret;
858 : }
859 0 : break;
860 : }
861 0 : lab2:
862 : ;
863 : }
864 0 : break;
865 0 : case 7:
866 : {
867 0 : int ret = r_R2(z);
868 0 : if (ret <= 0) return ret;
869 : }
870 : {
871 0 : int ret = slice_del(z);
872 0 : if (ret < 0) return ret;
873 : }
874 : {
875 0 : int v_5 = z->l - z->c;
876 0 : z->ket = z->c;
877 0 : 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 - v_5; goto lab4; }
878 0 : among_var = find_among_b(z, a_3, 3, 0);
879 0 : if (!among_var) { z->c = z->l - v_5; goto lab4; }
880 0 : z->bra = z->c;
881 : switch (among_var) {
882 0 : case 1:
883 : do {
884 0 : int v_6 = z->l - z->c;
885 : {
886 0 : int ret = r_R2(z);
887 0 : if (ret == 0) goto lab5;
888 0 : if (ret < 0) return ret;
889 : }
890 : {
891 0 : int ret = slice_del(z);
892 0 : if (ret < 0) return ret;
893 : }
894 0 : break;
895 0 : lab5:
896 0 : z->c = z->l - v_6;
897 : {
898 0 : int ret = slice_from_s(z, 3, s_21);
899 0 : if (ret < 0) return ret;
900 : }
901 : } while (0);
902 0 : break;
903 0 : case 2:
904 : do {
905 0 : int v_7 = z->l - z->c;
906 : {
907 0 : int ret = r_R2(z);
908 0 : if (ret == 0) goto lab6;
909 0 : if (ret < 0) return ret;
910 : }
911 : {
912 0 : int ret = slice_del(z);
913 0 : if (ret < 0) return ret;
914 : }
915 0 : break;
916 0 : lab6:
917 0 : z->c = z->l - v_7;
918 : {
919 0 : int ret = slice_from_s(z, 3, s_22);
920 0 : if (ret < 0) return ret;
921 : }
922 : } while (0);
923 0 : break;
924 0 : case 3:
925 : {
926 0 : int ret = r_R2(z);
927 0 : if (ret == 0) { z->c = z->l - v_5; goto lab4; }
928 0 : if (ret < 0) return ret;
929 : }
930 : {
931 0 : int ret = slice_del(z);
932 0 : if (ret < 0) return ret;
933 : }
934 0 : break;
935 : }
936 0 : lab4:
937 : ;
938 : }
939 0 : break;
940 0 : case 8:
941 : {
942 0 : int ret = r_R2(z);
943 0 : if (ret <= 0) return ret;
944 : }
945 : {
946 0 : int ret = slice_del(z);
947 0 : if (ret < 0) return ret;
948 : }
949 : {
950 0 : int v_8 = z->l - z->c;
951 0 : z->ket = z->c;
952 0 : if (!(eq_s_b(z, 2, s_23))) { z->c = z->l - v_8; goto lab7; }
953 0 : z->bra = z->c;
954 : {
955 0 : int ret = r_R2(z);
956 0 : if (ret == 0) { z->c = z->l - v_8; goto lab7; }
957 0 : if (ret < 0) return ret;
958 : }
959 : {
960 0 : int ret = slice_del(z);
961 0 : if (ret < 0) return ret;
962 : }
963 0 : z->ket = z->c;
964 0 : if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - v_8; goto lab7; }
965 0 : z->bra = z->c;
966 : do {
967 0 : int v_9 = z->l - z->c;
968 : {
969 0 : int ret = r_R2(z);
970 0 : if (ret == 0) goto lab8;
971 0 : if (ret < 0) return ret;
972 : }
973 : {
974 0 : int ret = slice_del(z);
975 0 : if (ret < 0) return ret;
976 : }
977 0 : break;
978 0 : lab8:
979 0 : z->c = z->l - v_9;
980 : {
981 0 : int ret = slice_from_s(z, 3, s_25);
982 0 : if (ret < 0) return ret;
983 : }
984 : } while (0);
985 0 : lab7:
986 : ;
987 : }
988 0 : break;
989 0 : case 9:
990 : {
991 0 : int ret = slice_from_s(z, 3, s_26);
992 0 : if (ret < 0) return ret;
993 : }
994 0 : break;
995 0 : case 10:
996 : {
997 0 : int ret = r_R1(z);
998 0 : if (ret <= 0) return ret;
999 : }
1000 : {
1001 0 : int ret = slice_from_s(z, 2, s_27);
1002 0 : if (ret < 0) return ret;
1003 : }
1004 0 : break;
1005 0 : case 11:
1006 0 : if (in_grouping_b(z, g_oux_ending, 98, 112, 0)) return 0;
1007 : {
1008 0 : int ret = slice_from_s(z, 2, s_28);
1009 0 : if (ret < 0) return ret;
1010 : }
1011 0 : break;
1012 0 : case 12:
1013 : do {
1014 0 : int v_10 = z->l - z->c;
1015 : {
1016 0 : int ret = r_R2(z);
1017 0 : if (ret == 0) goto lab9;
1018 0 : if (ret < 0) return ret;
1019 : }
1020 : {
1021 0 : int ret = slice_del(z);
1022 0 : if (ret < 0) return ret;
1023 : }
1024 0 : break;
1025 0 : lab9:
1026 0 : z->c = z->l - v_10;
1027 : {
1028 0 : int ret = r_R1(z);
1029 0 : if (ret <= 0) return ret;
1030 : }
1031 : {
1032 0 : int ret = slice_from_s(z, 3, s_29);
1033 0 : if (ret < 0) return ret;
1034 : }
1035 : } while (0);
1036 0 : break;
1037 0 : case 13:
1038 : {
1039 0 : int ret = r_R1(z);
1040 0 : if (ret <= 0) return ret;
1041 : }
1042 0 : if (out_grouping_b(z, g_v, 97, 251, 0)) return 0;
1043 : {
1044 0 : int ret = slice_del(z);
1045 0 : if (ret < 0) return ret;
1046 : }
1047 0 : break;
1048 0 : case 14:
1049 : {
1050 0 : int ret = r_RV(z);
1051 0 : if (ret <= 0) return ret;
1052 : }
1053 : {
1054 0 : int ret = slice_from_s(z, 3, s_30);
1055 0 : if (ret < 0) return ret;
1056 : }
1057 0 : return 0;
1058 : break;
1059 0 : case 15:
1060 : {
1061 0 : int ret = r_RV(z);
1062 0 : if (ret <= 0) return ret;
1063 : }
1064 : {
1065 0 : int ret = slice_from_s(z, 3, s_31);
1066 0 : if (ret < 0) return ret;
1067 : }
1068 0 : return 0;
1069 : break;
1070 0 : case 16:
1071 : {
1072 0 : int v_11 = z->l - z->c;
1073 0 : if (in_grouping_b(z, g_v, 97, 251, 0)) return 0;
1074 : {
1075 0 : int ret = r_RV(z);
1076 0 : if (ret <= 0) return ret;
1077 : }
1078 0 : z->c = z->l - v_11;
1079 : }
1080 : {
1081 0 : int ret = slice_del(z);
1082 0 : if (ret < 0) return ret;
1083 : }
1084 0 : return 0;
1085 : break;
1086 : }
1087 0 : return 1;
1088 : }
1089 :
1090 0 : static int r_i_verb_suffix(struct SN_env * z) {
1091 : {
1092 : int v_1;
1093 0 : if (z->c < ((SN_local *)z)->i_pV) return 0;
1094 0 : v_1 = z->lb; z->lb = ((SN_local *)z)->i_pV;
1095 0 : z->ket = z->c;
1096 0 : if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = v_1; return 0; }
1097 0 : if (!find_among_b(z, a_5, 35, 0)) { z->lb = v_1; return 0; }
1098 0 : z->bra = z->c;
1099 : {
1100 0 : int v_2 = z->l - z->c;
1101 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0;
1102 0 : z->c--;
1103 0 : { z->lb = v_1; return 0; }
1104 0 : lab0:
1105 0 : z->c = z->l - v_2;
1106 : }
1107 0 : if (out_grouping_b(z, g_v, 97, 251, 0)) { z->lb = v_1; return 0; }
1108 : {
1109 0 : int ret = slice_del(z);
1110 0 : if (ret < 0) return ret;
1111 : }
1112 0 : z->lb = v_1;
1113 : }
1114 0 : return 1;
1115 : }
1116 :
1117 0 : static int r_verb_suffix(struct SN_env * z) {
1118 : int among_var;
1119 : {
1120 : int v_1;
1121 0 : if (z->c < ((SN_local *)z)->i_pV) return 0;
1122 0 : v_1 = z->lb; z->lb = ((SN_local *)z)->i_pV;
1123 0 : z->ket = z->c;
1124 0 : among_var = find_among_b(z, a_7, 41, 0);
1125 0 : if (!among_var) { z->lb = v_1; return 0; }
1126 0 : z->bra = z->c;
1127 0 : z->lb = v_1;
1128 : }
1129 0 : switch (among_var) {
1130 0 : case 1:
1131 : {
1132 0 : int ret = r_R2(z);
1133 0 : if (ret <= 0) return ret;
1134 : }
1135 : {
1136 0 : int ret = slice_del(z);
1137 0 : if (ret < 0) return ret;
1138 : }
1139 0 : break;
1140 0 : case 2:
1141 : {
1142 0 : int ret = slice_del(z);
1143 0 : if (ret < 0) return ret;
1144 : }
1145 0 : break;
1146 0 : case 3:
1147 : {
1148 0 : int v_2 = z->l - z->c;
1149 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - v_2; goto lab0; }
1150 0 : z->c--;
1151 : {
1152 0 : int ret = r_RV(z);
1153 0 : if (ret == 0) { z->c = z->l - v_2; goto lab0; }
1154 0 : if (ret < 0) return ret;
1155 : }
1156 0 : z->bra = z->c;
1157 0 : lab0:
1158 : ;
1159 : }
1160 : {
1161 0 : int ret = slice_del(z);
1162 0 : if (ret < 0) return ret;
1163 : }
1164 0 : break;
1165 0 : case 4:
1166 : {
1167 0 : int v_3 = z->l - z->c;
1168 0 : if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 108 && z->p[z->c - 1] != 118)) goto lab1;
1169 0 : among_var = find_among_b(z, a_6, 3, 0);
1170 0 : if (!among_var) goto lab1;
1171 : switch (among_var) {
1172 0 : case 1:
1173 0 : if (z->c <= z->lb) goto lab1;
1174 0 : z->c--;
1175 0 : if (z->c > z->lb) goto lab1;
1176 0 : break;
1177 : }
1178 0 : return 0;
1179 0 : lab1:
1180 0 : z->c = z->l - v_3;
1181 : }
1182 : {
1183 0 : int ret = slice_del(z);
1184 0 : if (ret < 0) return ret;
1185 : }
1186 0 : break;
1187 : }
1188 0 : return 1;
1189 : }
1190 :
1191 0 : static int r_residual_suffix(struct SN_env * z) {
1192 : int among_var;
1193 : {
1194 0 : int v_1 = z->l - z->c;
1195 0 : z->ket = z->c;
1196 0 : if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - v_1; goto lab0; }
1197 0 : z->c--;
1198 0 : z->bra = z->c;
1199 : {
1200 0 : int v_2 = z->l - z->c;
1201 : do {
1202 0 : int v_3 = z->l - z->c;
1203 0 : if (!(eq_s_b(z, 2, s_32))) goto lab1;
1204 0 : break;
1205 0 : lab1:
1206 0 : z->c = z->l - v_3;
1207 0 : if (out_grouping_b(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - v_1; goto lab0; }
1208 : } while (0);
1209 0 : z->c = z->l - v_2;
1210 : }
1211 : {
1212 0 : int ret = slice_del(z);
1213 0 : if (ret < 0) return ret;
1214 : }
1215 0 : lab0:
1216 : ;
1217 : }
1218 : {
1219 : int v_4;
1220 0 : if (z->c < ((SN_local *)z)->i_pV) return 0;
1221 0 : v_4 = z->lb; z->lb = ((SN_local *)z)->i_pV;
1222 0 : z->ket = z->c;
1223 0 : if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = v_4; return 0; }
1224 0 : among_var = find_among_b(z, a_8, 6, 0);
1225 0 : if (!among_var) { z->lb = v_4; return 0; }
1226 0 : z->bra = z->c;
1227 0 : switch (among_var) {
1228 0 : case 1:
1229 : {
1230 0 : int ret = r_R2(z);
1231 0 : if (ret == 0) { z->lb = v_4; return 0; }
1232 0 : if (ret < 0) return ret;
1233 : }
1234 : do {
1235 0 : int v_5 = z->l - z->c;
1236 0 : if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab2;
1237 0 : z->c--;
1238 0 : break;
1239 0 : lab2:
1240 0 : z->c = z->l - v_5;
1241 0 : if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = v_4; return 0; }
1242 0 : z->c--;
1243 : } while (0);
1244 : {
1245 0 : int ret = slice_del(z);
1246 0 : if (ret < 0) return ret;
1247 : }
1248 0 : break;
1249 0 : case 2:
1250 : {
1251 0 : int ret = slice_from_s(z, 1, s_33);
1252 0 : if (ret < 0) return ret;
1253 : }
1254 0 : break;
1255 0 : case 3:
1256 : {
1257 0 : int ret = slice_del(z);
1258 0 : if (ret < 0) return ret;
1259 : }
1260 0 : break;
1261 : }
1262 0 : z->lb = v_4;
1263 : }
1264 0 : return 1;
1265 : }
1266 :
1267 0 : static int r_un_double(struct SN_env * z) {
1268 : {
1269 0 : int v_1 = z->l - z->c;
1270 0 : if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
1271 0 : if (!find_among_b(z, a_9, 5, 0)) return 0;
1272 0 : z->c = z->l - v_1;
1273 : }
1274 0 : z->ket = z->c;
1275 0 : if (z->c <= z->lb) return 0;
1276 0 : z->c--;
1277 0 : z->bra = z->c;
1278 : {
1279 0 : int ret = slice_del(z);
1280 0 : if (ret < 0) return ret;
1281 : }
1282 0 : return 1;
1283 : }
1284 :
1285 0 : static int r_un_accent(struct SN_env * z) {
1286 0 : {
1287 0 : int v_1 = 1;
1288 : while (1) {
1289 0 : if (out_grouping_b(z, g_v, 97, 251, 0)) goto lab0;
1290 0 : v_1--;
1291 0 : continue;
1292 0 : lab0:
1293 0 : break;
1294 : }
1295 0 : if (v_1 > 0) return 0;
1296 : }
1297 0 : z->ket = z->c;
1298 : do {
1299 0 : int v_2 = z->l - z->c;
1300 0 : if (z->c <= z->lb || z->p[z->c - 1] != 0xE9) goto lab1;
1301 0 : z->c--;
1302 0 : break;
1303 0 : lab1:
1304 0 : z->c = z->l - v_2;
1305 0 : if (z->c <= z->lb || z->p[z->c - 1] != 0xE8) return 0;
1306 0 : z->c--;
1307 : } while (0);
1308 0 : z->bra = z->c;
1309 : {
1310 0 : int ret = slice_from_s(z, 1, s_34);
1311 0 : if (ret < 0) return ret;
1312 : }
1313 0 : return 1;
1314 : }
1315 :
1316 0 : extern int french_ISO_8859_1_stem(struct SN_env * z) {
1317 : {
1318 0 : int v_1 = z->c;
1319 : {
1320 0 : int ret = r_elisions(z);
1321 0 : if (ret < 0) return ret;
1322 : }
1323 0 : z->c = v_1;
1324 : }
1325 : {
1326 0 : int v_2 = z->c;
1327 : {
1328 0 : int ret = r_prelude(z);
1329 0 : if (ret < 0) return ret;
1330 : }
1331 0 : z->c = v_2;
1332 : }
1333 : {
1334 0 : int ret = r_mark_regions(z);
1335 0 : if (ret < 0) return ret;
1336 : }
1337 0 : z->lb = z->c; z->c = z->l;
1338 : {
1339 0 : int v_3 = z->l - z->c;
1340 : do {
1341 0 : int v_4 = z->l - z->c;
1342 : {
1343 0 : int v_5 = z->l - z->c;
1344 : do {
1345 0 : int v_6 = z->l - z->c;
1346 : {
1347 0 : int ret = r_standard_suffix(z);
1348 0 : if (ret == 0) goto lab2;
1349 0 : if (ret < 0) return ret;
1350 : }
1351 0 : break;
1352 0 : lab2:
1353 0 : z->c = z->l - v_6;
1354 : {
1355 0 : int ret = r_i_verb_suffix(z);
1356 0 : if (ret == 0) goto lab3;
1357 0 : if (ret < 0) return ret;
1358 : }
1359 0 : break;
1360 0 : lab3:
1361 0 : z->c = z->l - v_6;
1362 : {
1363 0 : int ret = r_verb_suffix(z);
1364 0 : if (ret == 0) goto lab1;
1365 0 : if (ret < 0) return ret;
1366 : }
1367 : } while (0);
1368 0 : z->c = z->l - v_5;
1369 : {
1370 0 : int v_7 = z->l - z->c;
1371 0 : z->ket = z->c;
1372 : do {
1373 0 : int v_8 = z->l - z->c;
1374 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab5;
1375 0 : z->c--;
1376 0 : z->bra = z->c;
1377 : {
1378 0 : int ret = slice_from_s(z, 1, s_35);
1379 0 : if (ret < 0) return ret;
1380 : }
1381 0 : break;
1382 0 : lab5:
1383 0 : z->c = z->l - v_8;
1384 0 : if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - v_7; goto lab4; }
1385 0 : z->c--;
1386 0 : z->bra = z->c;
1387 : {
1388 0 : int ret = slice_from_s(z, 1, s_36);
1389 0 : if (ret < 0) return ret;
1390 : }
1391 : } while (0);
1392 0 : lab4:
1393 : ;
1394 : }
1395 : }
1396 0 : break;
1397 0 : lab1:
1398 0 : z->c = z->l - v_4;
1399 : {
1400 0 : int ret = r_residual_suffix(z);
1401 0 : if (ret == 0) goto lab0;
1402 0 : if (ret < 0) return ret;
1403 : }
1404 : } while (0);
1405 0 : lab0:
1406 0 : z->c = z->l - v_3;
1407 : }
1408 : {
1409 0 : int v_9 = z->l - z->c;
1410 : {
1411 0 : int ret = r_un_double(z);
1412 0 : if (ret < 0) return ret;
1413 : }
1414 0 : z->c = z->l - v_9;
1415 : }
1416 : {
1417 0 : int v_10 = z->l - z->c;
1418 : {
1419 0 : int ret = r_un_accent(z);
1420 0 : if (ret < 0) return ret;
1421 : }
1422 0 : z->c = z->l - v_10;
1423 : }
1424 0 : z->c = z->lb;
1425 : {
1426 0 : int v_11 = z->c;
1427 : {
1428 0 : int ret = r_postlude(z);
1429 0 : if (ret < 0) return ret;
1430 : }
1431 0 : z->c = v_11;
1432 : }
1433 0 : return 1;
1434 : }
1435 :
1436 0 : extern struct SN_env * french_ISO_8859_1_create_env(void) {
1437 0 : struct SN_env * z = SN_new_env(sizeof(SN_local));
1438 0 : if (z) {
1439 0 : ((SN_local *)z)->i_p2 = 0;
1440 0 : ((SN_local *)z)->i_p1 = 0;
1441 0 : ((SN_local *)z)->i_pV = 0;
1442 : }
1443 0 : return z;
1444 : }
1445 :
1446 0 : extern void french_ISO_8859_1_close_env(struct SN_env * z) {
1447 0 : SN_delete_env(z);
1448 0 : }
1449 :
|