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