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