YAZ 5.35.1
stem_UTF_8_french.c
Go to the documentation of this file.
1
2/* This file was generated automatically by the Snowball to ANSI C compiler */
3
4#include "../runtime/header.h"
5
6#ifdef __cplusplus
7extern "C"
8{
9#endif
10 extern int french_UTF_8_stem (struct SN_env *z);
11#ifdef __cplusplus
12}
13#endif
14static int r_un_accent (struct SN_env *z);
15static int r_un_double (struct SN_env *z);
16static int r_residual_suffix (struct SN_env *z);
17static int r_verb_suffix (struct SN_env *z);
18static int r_i_verb_suffix (struct SN_env *z);
19static int r_standard_suffix (struct SN_env *z);
20static int r_R2 (struct SN_env *z);
21static int r_R1 (struct SN_env *z);
22static int r_RV (struct SN_env *z);
23static int r_mark_regions (struct SN_env *z);
24static int r_postlude (struct SN_env *z);
25static int r_prelude (struct SN_env *z);
26#ifdef __cplusplus
27extern "C"
28{
29#endif
30
31
32 extern struct SN_env *french_UTF_8_create_env (void);
33 extern void french_UTF_8_close_env (struct SN_env *z);
34
35
36#ifdef __cplusplus
37}
38#endif
39static const symbol s_0_0[3] = { 'c', 'o', 'l' };
40static const symbol s_0_1[3] = { 'p', 'a', 'r' };
41static const symbol s_0_2[3] = { 't', 'a', 'p' };
42
43static const struct among a_0[3] = {
44/* 0 */ {3, s_0_0, -1, -1, 0},
45/* 1 */ {3, s_0_1, -1, -1, 0},
46/* 2 */ {3, s_0_2, -1, -1, 0}
47};
48
49static const symbol s_1_1[1] = { 'I' };
50static const symbol s_1_2[1] = { 'U' };
51static const symbol s_1_3[1] = { 'Y' };
52
53static const struct among a_1[4] = {
54/* 0 */ {0, 0, -1, 4, 0},
55/* 1 */ {1, s_1_1, 0, 1, 0},
56/* 2 */ {1, s_1_2, 0, 2, 0},
57/* 3 */ {1, s_1_3, 0, 3, 0}
58};
59
60static const symbol s_2_0[3] = { 'i', 'q', 'U' };
61static const symbol s_2_1[3] = { 'a', 'b', 'l' };
62static const symbol s_2_2[4] = { 'I', 0xC3, 0xA8, 'r' };
63static const symbol s_2_3[4] = { 'i', 0xC3, 0xA8, 'r' };
64static const symbol s_2_4[3] = { 'e', 'u', 's' };
65static const symbol s_2_5[2] = { 'i', 'v' };
66
67static const struct among a_2[6] = {
68/* 0 */ {3, s_2_0, -1, 3, 0},
69/* 1 */ {3, s_2_1, -1, 3, 0},
70/* 2 */ {4, s_2_2, -1, 4, 0},
71/* 3 */ {4, s_2_3, -1, 4, 0},
72/* 4 */ {3, s_2_4, -1, 2, 0},
73/* 5 */ {2, s_2_5, -1, 1, 0}
74};
75
76static const symbol s_3_0[2] = { 'i', 'c' };
77static const symbol s_3_1[4] = { 'a', 'b', 'i', 'l' };
78static const symbol s_3_2[2] = { 'i', 'v' };
79
80static const struct among a_3[3] = {
81/* 0 */ {2, s_3_0, -1, 2, 0},
82/* 1 */ {4, s_3_1, -1, 1, 0},
83/* 2 */ {2, s_3_2, -1, 3, 0}
84};
85
86static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' };
87static const symbol s_4_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
88static const symbol s_4_2[4] = { 'a', 'n', 'c', 'e' };
89static const symbol s_4_3[4] = { 'e', 'n', 'c', 'e' };
90static const symbol s_4_4[5] = { 'l', 'o', 'g', 'i', 'e' };
91static const symbol s_4_5[4] = { 'a', 'b', 'l', 'e' };
92static const symbol s_4_6[4] = { 'i', 's', 'm', 'e' };
93static const symbol s_4_7[4] = { 'e', 'u', 's', 'e' };
94static const symbol s_4_8[4] = { 'i', 's', 't', 'e' };
95static const symbol s_4_9[3] = { 'i', 'v', 'e' };
96static const symbol s_4_10[2] = { 'i', 'f' };
97static const symbol s_4_11[5] = { 'u', 's', 'i', 'o', 'n' };
98static const symbol s_4_12[5] = { 'a', 't', 'i', 'o', 'n' };
99static const symbol s_4_13[5] = { 'u', 't', 'i', 'o', 'n' };
100static const symbol s_4_14[5] = { 'a', 't', 'e', 'u', 'r' };
101static const symbol s_4_15[5] = { 'i', 'q', 'U', 'e', 's' };
102static const symbol s_4_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' };
103static const symbol s_4_17[5] = { 'a', 'n', 'c', 'e', 's' };
104static const symbol s_4_18[5] = { 'e', 'n', 'c', 'e', 's' };
105static const symbol s_4_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
106static const symbol s_4_20[5] = { 'a', 'b', 'l', 'e', 's' };
107static const symbol s_4_21[5] = { 'i', 's', 'm', 'e', 's' };
108static const symbol s_4_22[5] = { 'e', 'u', 's', 'e', 's' };
109static const symbol s_4_23[5] = { 'i', 's', 't', 'e', 's' };
110static const symbol s_4_24[4] = { 'i', 'v', 'e', 's' };
111static const symbol s_4_25[3] = { 'i', 'f', 's' };
112static const symbol s_4_26[6] = { 'u', 's', 'i', 'o', 'n', 's' };
113static const symbol s_4_27[6] = { 'a', 't', 'i', 'o', 'n', 's' };
114static const symbol s_4_28[6] = { 'u', 't', 'i', 'o', 'n', 's' };
115static const symbol s_4_29[6] = { 'a', 't', 'e', 'u', 'r', 's' };
116static const symbol s_4_30[5] = { 'm', 'e', 'n', 't', 's' };
117static const symbol s_4_31[6] = { 'e', 'm', 'e', 'n', 't', 's' };
118static const symbol s_4_32[9] =
119 { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' };
120static const symbol s_4_33[5] = { 'i', 't', 0xC3, 0xA9, 's' };
121static const symbol s_4_34[4] = { 'm', 'e', 'n', 't' };
122static const symbol s_4_35[5] = { 'e', 'm', 'e', 'n', 't' };
123static const symbol s_4_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' };
124static const symbol s_4_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' };
125static const symbol s_4_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' };
126static const symbol s_4_39[3] = { 'a', 'u', 'x' };
127static const symbol s_4_40[4] = { 'e', 'a', 'u', 'x' };
128static const symbol s_4_41[3] = { 'e', 'u', 'x' };
129static const symbol s_4_42[4] = { 'i', 't', 0xC3, 0xA9 };
130
131static const struct among a_4[43] = {
132/* 0 */ {4, s_4_0, -1, 1, 0},
133/* 1 */ {6, s_4_1, -1, 2, 0},
134/* 2 */ {4, s_4_2, -1, 1, 0},
135/* 3 */ {4, s_4_3, -1, 5, 0},
136/* 4 */ {5, s_4_4, -1, 3, 0},
137/* 5 */ {4, s_4_5, -1, 1, 0},
138/* 6 */ {4, s_4_6, -1, 1, 0},
139/* 7 */ {4, s_4_7, -1, 11, 0},
140/* 8 */ {4, s_4_8, -1, 1, 0},
141/* 9 */ {3, s_4_9, -1, 8, 0},
142/* 10 */ {2, s_4_10, -1, 8, 0},
143/* 11 */ {5, s_4_11, -1, 4, 0},
144/* 12 */ {5, s_4_12, -1, 2, 0},
145/* 13 */ {5, s_4_13, -1, 4, 0},
146/* 14 */ {5, s_4_14, -1, 2, 0},
147/* 15 */ {5, s_4_15, -1, 1, 0},
148/* 16 */ {7, s_4_16, -1, 2, 0},
149/* 17 */ {5, s_4_17, -1, 1, 0},
150/* 18 */ {5, s_4_18, -1, 5, 0},
151/* 19 */ {6, s_4_19, -1, 3, 0},
152/* 20 */ {5, s_4_20, -1, 1, 0},
153/* 21 */ {5, s_4_21, -1, 1, 0},
154/* 22 */ {5, s_4_22, -1, 11, 0},
155/* 23 */ {5, s_4_23, -1, 1, 0},
156/* 24 */ {4, s_4_24, -1, 8, 0},
157/* 25 */ {3, s_4_25, -1, 8, 0},
158/* 26 */ {6, s_4_26, -1, 4, 0},
159/* 27 */ {6, s_4_27, -1, 2, 0},
160/* 28 */ {6, s_4_28, -1, 4, 0},
161/* 29 */ {6, s_4_29, -1, 2, 0},
162/* 30 */ {5, s_4_30, -1, 15, 0},
163/* 31 */ {6, s_4_31, 30, 6, 0},
164/* 32 */ {9, s_4_32, 31, 12, 0},
165/* 33 */ {5, s_4_33, -1, 7, 0},
166/* 34 */ {4, s_4_34, -1, 15, 0},
167/* 35 */ {5, s_4_35, 34, 6, 0},
168/* 36 */ {8, s_4_36, 35, 12, 0},
169/* 37 */ {6, s_4_37, 34, 13, 0},
170/* 38 */ {6, s_4_38, 34, 14, 0},
171/* 39 */ {3, s_4_39, -1, 10, 0},
172/* 40 */ {4, s_4_40, 39, 9, 0},
173/* 41 */ {3, s_4_41, -1, 1, 0},
174/* 42 */ {4, s_4_42, -1, 7, 0}
175};
176
177static const symbol s_5_0[3] = { 'i', 'r', 'a' };
178static const symbol s_5_1[2] = { 'i', 'e' };
179static const symbol s_5_2[4] = { 'i', 's', 's', 'e' };
180static const symbol s_5_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' };
181static const symbol s_5_4[1] = { 'i' };
182static const symbol s_5_5[4] = { 'i', 'r', 'a', 'i' };
183static const symbol s_5_6[2] = { 'i', 'r' };
184static const symbol s_5_7[4] = { 'i', 'r', 'a', 's' };
185static const symbol s_5_8[3] = { 'i', 'e', 's' };
186static const symbol s_5_9[5] = { 0xC3, 0xAE, 'm', 'e', 's' };
187static const symbol s_5_10[5] = { 'i', 's', 's', 'e', 's' };
188static const symbol s_5_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' };
189static const symbol s_5_12[5] = { 0xC3, 0xAE, 't', 'e', 's' };
190static const symbol s_5_13[2] = { 'i', 's' };
191static const symbol s_5_14[5] = { 'i', 'r', 'a', 'i', 's' };
192static const symbol s_5_15[6] = { 'i', 's', 's', 'a', 'i', 's' };
193static const symbol s_5_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' };
194static const symbol s_5_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' };
195static const symbol s_5_18[5] = { 'i', 'r', 'o', 'n', 's' };
196static const symbol s_5_19[6] = { 'i', 's', 's', 'o', 'n', 's' };
197static const symbol s_5_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' };
198static const symbol s_5_21[2] = { 'i', 't' };
199static const symbol s_5_22[5] = { 'i', 'r', 'a', 'i', 't' };
200static const symbol s_5_23[6] = { 'i', 's', 's', 'a', 'i', 't' };
201static const symbol s_5_24[6] = { 'i', 's', 's', 'a', 'n', 't' };
202static const symbol s_5_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' };
203static const symbol s_5_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' };
204static const symbol s_5_27[5] = { 'i', 'r', 'e', 'n', 't' };
205static const symbol s_5_28[6] = { 'i', 's', 's', 'e', 'n', 't' };
206static const symbol s_5_29[5] = { 'i', 'r', 'o', 'n', 't' };
207static const symbol s_5_30[3] = { 0xC3, 0xAE, 't' };
208static const symbol s_5_31[5] = { 'i', 'r', 'i', 'e', 'z' };
209static const symbol s_5_32[6] = { 'i', 's', 's', 'i', 'e', 'z' };
210static const symbol s_5_33[4] = { 'i', 'r', 'e', 'z' };
211static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' };
212
213static const struct among a_5[35] = {
214/* 0 */ {3, s_5_0, -1, 1, 0},
215/* 1 */ {2, s_5_1, -1, 1, 0},
216/* 2 */ {4, s_5_2, -1, 1, 0},
217/* 3 */ {7, s_5_3, -1, 1, 0},
218/* 4 */ {1, s_5_4, -1, 1, 0},
219/* 5 */ {4, s_5_5, 4, 1, 0},
220/* 6 */ {2, s_5_6, -1, 1, 0},
221/* 7 */ {4, s_5_7, -1, 1, 0},
222/* 8 */ {3, s_5_8, -1, 1, 0},
223/* 9 */ {5, s_5_9, -1, 1, 0},
224/* 10 */ {5, s_5_10, -1, 1, 0},
225/* 11 */ {8, s_5_11, -1, 1, 0},
226/* 12 */ {5, s_5_12, -1, 1, 0},
227/* 13 */ {2, s_5_13, -1, 1, 0},
228/* 14 */ {5, s_5_14, 13, 1, 0},
229/* 15 */ {6, s_5_15, 13, 1, 0},
230/* 16 */ {6, s_5_16, -1, 1, 0},
231/* 17 */ {7, s_5_17, -1, 1, 0},
232/* 18 */ {5, s_5_18, -1, 1, 0},
233/* 19 */ {6, s_5_19, -1, 1, 0},
234/* 20 */ {7, s_5_20, -1, 1, 0},
235/* 21 */ {2, s_5_21, -1, 1, 0},
236/* 22 */ {5, s_5_22, 21, 1, 0},
237/* 23 */ {6, s_5_23, 21, 1, 0},
238/* 24 */ {6, s_5_24, -1, 1, 0},
239/* 25 */ {7, s_5_25, -1, 1, 0},
240/* 26 */ {8, s_5_26, -1, 1, 0},
241/* 27 */ {5, s_5_27, -1, 1, 0},
242/* 28 */ {6, s_5_28, -1, 1, 0},
243/* 29 */ {5, s_5_29, -1, 1, 0},
244/* 30 */ {3, s_5_30, -1, 1, 0},
245/* 31 */ {5, s_5_31, -1, 1, 0},
246/* 32 */ {6, s_5_32, -1, 1, 0},
247/* 33 */ {4, s_5_33, -1, 1, 0},
248/* 34 */ {5, s_5_34, -1, 1, 0}
249};
250
251static const symbol s_6_0[1] = { 'a' };
252static const symbol s_6_1[3] = { 'e', 'r', 'a' };
253static const symbol s_6_2[4] = { 'a', 's', 's', 'e' };
254static const symbol s_6_3[4] = { 'a', 'n', 't', 'e' };
255static const symbol s_6_4[3] = { 0xC3, 0xA9, 'e' };
256static const symbol s_6_5[2] = { 'a', 'i' };
257static const symbol s_6_6[4] = { 'e', 'r', 'a', 'i' };
258static const symbol s_6_7[2] = { 'e', 'r' };
259static const symbol s_6_8[2] = { 'a', 's' };
260static const symbol s_6_9[4] = { 'e', 'r', 'a', 's' };
261static const symbol s_6_10[5] = { 0xC3, 0xA2, 'm', 'e', 's' };
262static const symbol s_6_11[5] = { 'a', 's', 's', 'e', 's' };
263static const symbol s_6_12[5] = { 'a', 'n', 't', 'e', 's' };
264static const symbol s_6_13[5] = { 0xC3, 0xA2, 't', 'e', 's' };
265static const symbol s_6_14[4] = { 0xC3, 0xA9, 'e', 's' };
266static const symbol s_6_15[3] = { 'a', 'i', 's' };
267static const symbol s_6_16[5] = { 'e', 'r', 'a', 'i', 's' };
268static const symbol s_6_17[4] = { 'i', 'o', 'n', 's' };
269static const symbol s_6_18[6] = { 'e', 'r', 'i', 'o', 'n', 's' };
270static const symbol s_6_19[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' };
271static const symbol s_6_20[5] = { 'e', 'r', 'o', 'n', 's' };
272static const symbol s_6_21[4] = { 'a', 'n', 't', 's' };
273static const symbol s_6_22[3] = { 0xC3, 0xA9, 's' };
274static const symbol s_6_23[3] = { 'a', 'i', 't' };
275static const symbol s_6_24[5] = { 'e', 'r', 'a', 'i', 't' };
276static const symbol s_6_25[3] = { 'a', 'n', 't' };
277static const symbol s_6_26[5] = { 'a', 'I', 'e', 'n', 't' };
278static const symbol s_6_27[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' };
279static const symbol s_6_28[6] = { 0xC3, 0xA8, 'r', 'e', 'n', 't' };
280static const symbol s_6_29[6] = { 'a', 's', 's', 'e', 'n', 't' };
281static const symbol s_6_30[5] = { 'e', 'r', 'o', 'n', 't' };
282static const symbol s_6_31[3] = { 0xC3, 0xA2, 't' };
283static const symbol s_6_32[2] = { 'e', 'z' };
284static const symbol s_6_33[3] = { 'i', 'e', 'z' };
285static const symbol s_6_34[5] = { 'e', 'r', 'i', 'e', 'z' };
286static const symbol s_6_35[6] = { 'a', 's', 's', 'i', 'e', 'z' };
287static const symbol s_6_36[4] = { 'e', 'r', 'e', 'z' };
288static const symbol s_6_37[2] = { 0xC3, 0xA9 };
289
290static const struct among a_6[38] = {
291/* 0 */ {1, s_6_0, -1, 3, 0},
292/* 1 */ {3, s_6_1, 0, 2, 0},
293/* 2 */ {4, s_6_2, -1, 3, 0},
294/* 3 */ {4, s_6_3, -1, 3, 0},
295/* 4 */ {3, s_6_4, -1, 2, 0},
296/* 5 */ {2, s_6_5, -1, 3, 0},
297/* 6 */ {4, s_6_6, 5, 2, 0},
298/* 7 */ {2, s_6_7, -1, 2, 0},
299/* 8 */ {2, s_6_8, -1, 3, 0},
300/* 9 */ {4, s_6_9, 8, 2, 0},
301/* 10 */ {5, s_6_10, -1, 3, 0},
302/* 11 */ {5, s_6_11, -1, 3, 0},
303/* 12 */ {5, s_6_12, -1, 3, 0},
304/* 13 */ {5, s_6_13, -1, 3, 0},
305/* 14 */ {4, s_6_14, -1, 2, 0},
306/* 15 */ {3, s_6_15, -1, 3, 0},
307/* 16 */ {5, s_6_16, 15, 2, 0},
308/* 17 */ {4, s_6_17, -1, 1, 0},
309/* 18 */ {6, s_6_18, 17, 2, 0},
310/* 19 */ {7, s_6_19, 17, 3, 0},
311/* 20 */ {5, s_6_20, -1, 2, 0},
312/* 21 */ {4, s_6_21, -1, 3, 0},
313/* 22 */ {3, s_6_22, -1, 2, 0},
314/* 23 */ {3, s_6_23, -1, 3, 0},
315/* 24 */ {5, s_6_24, 23, 2, 0},
316/* 25 */ {3, s_6_25, -1, 3, 0},
317/* 26 */ {5, s_6_26, -1, 3, 0},
318/* 27 */ {7, s_6_27, 26, 2, 0},
319/* 28 */ {6, s_6_28, -1, 2, 0},
320/* 29 */ {6, s_6_29, -1, 3, 0},
321/* 30 */ {5, s_6_30, -1, 2, 0},
322/* 31 */ {3, s_6_31, -1, 3, 0},
323/* 32 */ {2, s_6_32, -1, 2, 0},
324/* 33 */ {3, s_6_33, 32, 2, 0},
325/* 34 */ {5, s_6_34, 33, 2, 0},
326/* 35 */ {6, s_6_35, 33, 3, 0},
327/* 36 */ {4, s_6_36, 32, 2, 0},
328/* 37 */ {2, s_6_37, -1, 2, 0}
329};
330
331static const symbol s_7_0[1] = { 'e' };
332static const symbol s_7_1[5] = { 'I', 0xC3, 0xA8, 'r', 'e' };
333static const symbol s_7_2[5] = { 'i', 0xC3, 0xA8, 'r', 'e' };
334static const symbol s_7_3[3] = { 'i', 'o', 'n' };
335static const symbol s_7_4[3] = { 'I', 'e', 'r' };
336static const symbol s_7_5[3] = { 'i', 'e', 'r' };
337static const symbol s_7_6[2] = { 0xC3, 0xAB };
338
339static const struct among a_7[7] = {
340/* 0 */ {1, s_7_0, -1, 3, 0},
341/* 1 */ {5, s_7_1, 0, 2, 0},
342/* 2 */ {5, s_7_2, 0, 2, 0},
343/* 3 */ {3, s_7_3, -1, 1, 0},
344/* 4 */ {3, s_7_4, -1, 2, 0},
345/* 5 */ {3, s_7_5, -1, 2, 0},
346/* 6 */ {2, s_7_6, -1, 4, 0}
347};
348
349static const symbol s_8_0[3] = { 'e', 'l', 'l' };
350static const symbol s_8_1[4] = { 'e', 'i', 'l', 'l' };
351static const symbol s_8_2[3] = { 'e', 'n', 'n' };
352static const symbol s_8_3[3] = { 'o', 'n', 'n' };
353static const symbol s_8_4[3] = { 'e', 't', 't' };
354
355static const struct among a_8[5] = {
356/* 0 */ {3, s_8_0, -1, -1, 0},
357/* 1 */ {4, s_8_1, -1, -1, 0},
358/* 2 */ {3, s_8_2, -1, -1, 0},
359/* 3 */ {3, s_8_3, -1, -1, 0},
360/* 4 */ {3, s_8_4, -1, -1, 0}
361};
362
363static const unsigned char g_v[] =
364 { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
365
366static const unsigned char g_keep_with_s[] =
367 { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
368
369static const symbol s_0[] = { 'u' };
370static const symbol s_1[] = { 'U' };
371static const symbol s_2[] = { 'i' };
372static const symbol s_3[] = { 'I' };
373static const symbol s_4[] = { 'y' };
374static const symbol s_5[] = { 'Y' };
375static const symbol s_6[] = { 'y' };
376static const symbol s_7[] = { 'Y' };
377static const symbol s_8[] = { 'q' };
378static const symbol s_9[] = { 'u' };
379static const symbol s_10[] = { 'U' };
380static const symbol s_11[] = { 'i' };
381static const symbol s_12[] = { 'u' };
382static const symbol s_13[] = { 'y' };
383static const symbol s_14[] = { 'i', 'c' };
384static const symbol s_15[] = { 'i', 'q', 'U' };
385static const symbol s_16[] = { 'l', 'o', 'g' };
386static const symbol s_17[] = { 'u' };
387static const symbol s_18[] = { 'e', 'n', 't' };
388static const symbol s_19[] = { 'a', 't' };
389static const symbol s_20[] = { 'e', 'u', 'x' };
390static const symbol s_21[] = { 'i' };
391static const symbol s_22[] = { 'a', 'b', 'l' };
392static const symbol s_23[] = { 'i', 'q', 'U' };
393static const symbol s_24[] = { 'a', 't' };
394static const symbol s_25[] = { 'i', 'c' };
395static const symbol s_26[] = { 'i', 'q', 'U' };
396static const symbol s_27[] = { 'e', 'a', 'u' };
397static const symbol s_28[] = { 'a', 'l' };
398static const symbol s_29[] = { 'e', 'u', 'x' };
399static const symbol s_30[] = { 'a', 'n', 't' };
400static const symbol s_31[] = { 'e', 'n', 't' };
401static const symbol s_32[] = { 'e' };
402static const symbol s_33[] = { 's' };
403static const symbol s_34[] = { 's' };
404static const symbol s_35[] = { 't' };
405static const symbol s_36[] = { 'i' };
406static const symbol s_37[] = { 'g', 'u' };
407static const symbol s_38[] = { 0xC3, 0xA9 };
408static const symbol s_39[] = { 0xC3, 0xA8 };
409static const symbol s_40[] = { 'e' };
410static const symbol s_41[] = { 'Y' };
411static const symbol s_42[] = { 'i' };
412static const symbol s_43[] = { 0xC3, 0xA7 };
413static const symbol s_44[] = { 'c' };
414
415static int
416r_prelude (struct SN_env *z)
417{
418 while (1)
419 { /* repeat, line 38 */
420 int c1 = z->c;
421 while (1)
422 { /* goto, line 38 */
423 int c2 = z->c;
424 {
425 int c3 = z->c; /* or, line 44 */
426 if (in_grouping_U (z, g_v, 97, 251, 0))
427 goto lab3;
428 z->bra = z->c; /* [, line 40 */
429 {
430 int c4 = z->c; /* or, line 40 */
431 if (!(eq_s (z, 1, s_0)))
432 goto lab5;
433 z->ket = z->c; /* ], line 40 */
434 if (in_grouping_U (z, g_v, 97, 251, 0))
435 goto lab5;
436 {
437 int ret = slice_from_s (z, 1, s_1); /* <-, line 40 */
438 if (ret < 0)
439 return ret;
440 }
441 goto lab4;
442 lab5:
443 z->c = c4;
444 if (!(eq_s (z, 1, s_2)))
445 goto lab6;
446 z->ket = z->c; /* ], line 41 */
447 if (in_grouping_U (z, g_v, 97, 251, 0))
448 goto lab6;
449 {
450 int ret = slice_from_s (z, 1, s_3); /* <-, line 41 */
451 if (ret < 0)
452 return ret;
453 }
454 goto lab4;
455 lab6:
456 z->c = c4;
457 if (!(eq_s (z, 1, s_4)))
458 goto lab3;
459 z->ket = z->c; /* ], line 42 */
460 {
461 int ret = slice_from_s (z, 1, s_5); /* <-, line 42 */
462 if (ret < 0)
463 return ret;
464 }
465 }
466 lab4:
467 goto lab2;
468 lab3:
469 z->c = c3;
470 z->bra = z->c; /* [, line 45 */
471 if (!(eq_s (z, 1, s_6)))
472 goto lab7;
473 z->ket = z->c; /* ], line 45 */
474 if (in_grouping_U (z, g_v, 97, 251, 0))
475 goto lab7;
476 {
477 int ret = slice_from_s (z, 1, s_7); /* <-, line 45 */
478 if (ret < 0)
479 return ret;
480 }
481 goto lab2;
482 lab7:
483 z->c = c3;
484 if (!(eq_s (z, 1, s_8)))
485 goto lab1;
486 z->bra = z->c; /* [, line 47 */
487 if (!(eq_s (z, 1, s_9)))
488 goto lab1;
489 z->ket = z->c; /* ], line 47 */
490 {
491 int ret = slice_from_s (z, 1, s_10); /* <-, line 47 */
492 if (ret < 0)
493 return ret;
494 }
495 }
496 lab2:
497 z->c = c2;
498 break;
499 lab1:
500 z->c = c2;
501 {
502 int ret = skip_utf8 (z->p, z->c, 0, z->l, 1);
503 if (ret < 0)
504 goto lab0;
505 z->c = ret; /* goto, line 38 */
506 }
507 }
508 continue;
509 lab0:
510 z->c = c1;
511 break;
512 }
513 return 1;
514}
515
516static int
518{
519 z->I[0] = z->l;
520 z->I[1] = z->l;
521 z->I[2] = z->l;
522 {
523 int c1 = z->c; /* do, line 56 */
524 {
525 int c2 = z->c; /* or, line 58 */
526 if (in_grouping_U (z, g_v, 97, 251, 0))
527 goto lab2;
528 if (in_grouping_U (z, g_v, 97, 251, 0))
529 goto lab2;
530 {
531 int ret = skip_utf8 (z->p, z->c, 0, z->l, 1);
532 if (ret < 0)
533 goto lab2;
534 z->c = ret; /* next, line 57 */
535 }
536 goto lab1;
537 lab2:
538 z->c = c2;
539 if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3
540 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1))
541 goto lab3;
542 if (!(find_among (z, a_0, 3)))
543 goto lab3; /* among, line 59 */
544 goto lab1;
545 lab3:
546 z->c = c2;
547 {
548 int ret = skip_utf8 (z->p, z->c, 0, z->l, 1);
549 if (ret < 0)
550 goto lab0;
551 z->c = ret; /* next, line 66 */
552 }
553 { /* gopast *//* grouping v, line 66 */
554 int ret = out_grouping_U (z, g_v, 97, 251, 1);
555 if (ret < 0)
556 goto lab0;
557 z->c += ret;
558 }
559 }
560 lab1:
561 z->I[0] = z->c; /* setmark pV, line 67 */
562 lab0:
563 z->c = c1;
564 }
565 {
566 int c3 = z->c; /* do, line 69 */
567 { /* gopast *//* grouping v, line 70 */
568 int ret = out_grouping_U (z, g_v, 97, 251, 1);
569 if (ret < 0)
570 goto lab4;
571 z->c += ret;
572 }
573 { /* gopast *//* non v, line 70 */
574 int ret = in_grouping_U (z, g_v, 97, 251, 1);
575 if (ret < 0)
576 goto lab4;
577 z->c += ret;
578 }
579 z->I[1] = z->c; /* setmark p1, line 70 */
580 { /* gopast *//* grouping v, line 71 */
581 int ret = out_grouping_U (z, g_v, 97, 251, 1);
582 if (ret < 0)
583 goto lab4;
584 z->c += ret;
585 }
586 { /* gopast *//* non v, line 71 */
587 int ret = in_grouping_U (z, g_v, 97, 251, 1);
588 if (ret < 0)
589 goto lab4;
590 z->c += ret;
591 }
592 z->I[2] = z->c; /* setmark p2, line 71 */
593 lab4:
594 z->c = c3;
595 }
596 return 1;
597}
598
599static int
601{
602 int among_var;
603 while (1)
604 { /* repeat, line 75 */
605 int c1 = z->c;
606 z->bra = z->c; /* [, line 77 */
607 if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2
608 || !((35652096 >> (z->p[z->c + 0] & 0x1f)) & 1))
609 among_var = 4;
610 else
611 among_var = find_among (z, a_1, 4); /* substring, line 77 */
612 if (!(among_var))
613 goto lab0;
614 z->ket = z->c; /* ], line 77 */
615 switch (among_var)
616 {
617 case 0:
618 goto lab0;
619 case 1:
620 {
621 int ret = slice_from_s (z, 1, s_11); /* <-, line 78 */
622 if (ret < 0)
623 return ret;
624 }
625 break;
626 case 2:
627 {
628 int ret = slice_from_s (z, 1, s_12); /* <-, line 79 */
629 if (ret < 0)
630 return ret;
631 }
632 break;
633 case 3:
634 {
635 int ret = slice_from_s (z, 1, s_13); /* <-, line 80 */
636 if (ret < 0)
637 return ret;
638 }
639 break;
640 case 4:
641 {
642 int ret = skip_utf8 (z->p, z->c, 0, z->l, 1);
643 if (ret < 0)
644 goto lab0;
645 z->c = ret; /* next, line 81 */
646 }
647 break;
648 }
649 continue;
650 lab0:
651 z->c = c1;
652 break;
653 }
654 return 1;
655}
656
657static int
658r_RV (struct SN_env *z)
659{
660 if (!(z->I[0] <= z->c))
661 return 0;
662 return 1;
663}
664
665static int
666r_R1 (struct SN_env *z)
667{
668 if (!(z->I[1] <= z->c))
669 return 0;
670 return 1;
671}
672
673static int
674r_R2 (struct SN_env *z)
675{
676 if (!(z->I[2] <= z->c))
677 return 0;
678 return 1;
679}
680
681static int
683{
684 int among_var;
685 z->ket = z->c; /* [, line 92 */
686 among_var = find_among_b (z, a_4, 43); /* substring, line 92 */
687 if (!(among_var))
688 return 0;
689 z->bra = z->c; /* ], line 92 */
690 switch (among_var)
691 {
692 case 0:
693 return 0;
694 case 1:
695 {
696 int ret = r_R2 (z);
697 if (ret == 0)
698 return 0; /* call R2, line 96 */
699 if (ret < 0)
700 return ret;
701 }
702 {
703 int ret = slice_del (z); /* delete, line 96 */
704 if (ret < 0)
705 return ret;
706 }
707 break;
708 case 2:
709 {
710 int ret = r_R2 (z);
711 if (ret == 0)
712 return 0; /* call R2, line 99 */
713 if (ret < 0)
714 return ret;
715 }
716 {
717 int ret = slice_del (z); /* delete, line 99 */
718 if (ret < 0)
719 return ret;
720 }
721 {
722 int m_keep = z->l - z->c; /* (void) m_keep; *//* try, line 100 */
723 z->ket = z->c; /* [, line 100 */
724 if (!(eq_s_b (z, 2, s_14)))
725 {
726 z->c = z->l - m_keep;
727 goto lab0;
728 }
729 z->bra = z->c; /* ], line 100 */
730 {
731 int m1 = z->l - z->c;
732 (void) m1; /* or, line 100 */
733 {
734 int ret = r_R2 (z);
735 if (ret == 0)
736 goto lab2; /* call R2, line 100 */
737 if (ret < 0)
738 return ret;
739 }
740 {
741 int ret = slice_del (z); /* delete, line 100 */
742 if (ret < 0)
743 return ret;
744 }
745 goto lab1;
746 lab2:
747 z->c = z->l - m1;
748 {
749 int ret = slice_from_s (z, 3, s_15); /* <-, line 100 */
750 if (ret < 0)
751 return ret;
752 }
753 }
754 lab1:
755 lab0:
756 ;
757 }
758 break;
759 case 3:
760 {
761 int ret = r_R2 (z);
762 if (ret == 0)
763 return 0; /* call R2, line 104 */
764 if (ret < 0)
765 return ret;
766 }
767 {
768 int ret = slice_from_s (z, 3, s_16); /* <-, line 104 */
769 if (ret < 0)
770 return ret;
771 }
772 break;
773 case 4:
774 {
775 int ret = r_R2 (z);
776 if (ret == 0)
777 return 0; /* call R2, line 107 */
778 if (ret < 0)
779 return ret;
780 }
781 {
782 int ret = slice_from_s (z, 1, s_17); /* <-, line 107 */
783 if (ret < 0)
784 return ret;
785 }
786 break;
787 case 5:
788 {
789 int ret = r_R2 (z);
790 if (ret == 0)
791 return 0; /* call R2, line 110 */
792 if (ret < 0)
793 return ret;
794 }
795 {
796 int ret = slice_from_s (z, 3, s_18); /* <-, line 110 */
797 if (ret < 0)
798 return ret;
799 }
800 break;
801 case 6:
802 {
803 int ret = r_RV (z);
804 if (ret == 0)
805 return 0; /* call RV, line 114 */
806 if (ret < 0)
807 return ret;
808 }
809 {
810 int ret = slice_del (z); /* delete, line 114 */
811 if (ret < 0)
812 return ret;
813 }
814 {
815 int m_keep = z->l - z->c; /* (void) m_keep; *//* try, line 115 */
816 z->ket = z->c; /* [, line 116 */
817 among_var = find_among_b (z, a_2, 6); /* substring, line 116 */
818 if (!(among_var))
819 {
820 z->c = z->l - m_keep;
821 goto lab3;
822 }
823 z->bra = z->c; /* ], line 116 */
824 switch (among_var)
825 {
826 case 0:
827 {
828 z->c = z->l - m_keep;
829 goto lab3;
830 }
831 case 1:
832 {
833 int ret = r_R2 (z);
834 if (ret == 0)
835 {
836 z->c = z->l - m_keep;
837 goto lab3;
838 } /* call R2, line 117 */
839 if (ret < 0)
840 return ret;
841 }
842 {
843 int ret = slice_del (z); /* delete, line 117 */
844 if (ret < 0)
845 return ret;
846 }
847 z->ket = z->c; /* [, line 117 */
848 if (!(eq_s_b (z, 2, s_19)))
849 {
850 z->c = z->l - m_keep;
851 goto lab3;
852 }
853 z->bra = z->c; /* ], line 117 */
854 {
855 int ret = r_R2 (z);
856 if (ret == 0)
857 {
858 z->c = z->l - m_keep;
859 goto lab3;
860 } /* call R2, line 117 */
861 if (ret < 0)
862 return ret;
863 }
864 {
865 int ret = slice_del (z); /* delete, line 117 */
866 if (ret < 0)
867 return ret;
868 }
869 break;
870 case 2:
871 {
872 int m2 = z->l - z->c;
873 (void) m2; /* or, line 118 */
874 {
875 int ret = r_R2 (z);
876 if (ret == 0)
877 goto lab5; /* call R2, line 118 */
878 if (ret < 0)
879 return ret;
880 }
881 {
882 int ret = slice_del (z); /* delete, line 118 */
883 if (ret < 0)
884 return ret;
885 }
886 goto lab4;
887 lab5:
888 z->c = z->l - m2;
889 {
890 int ret = r_R1 (z);
891 if (ret == 0)
892 {
893 z->c = z->l - m_keep;
894 goto lab3;
895 } /* call R1, line 118 */
896 if (ret < 0)
897 return ret;
898 }
899 {
900 int ret = slice_from_s (z, 3, s_20); /* <-, line 118 */
901 if (ret < 0)
902 return ret;
903 }
904 }
905 lab4:
906 break;
907 case 3:
908 {
909 int ret = r_R2 (z);
910 if (ret == 0)
911 {
912 z->c = z->l - m_keep;
913 goto lab3;
914 } /* call R2, line 120 */
915 if (ret < 0)
916 return ret;
917 }
918 {
919 int ret = slice_del (z); /* delete, line 120 */
920 if (ret < 0)
921 return ret;
922 }
923 break;
924 case 4:
925 {
926 int ret = r_RV (z);
927 if (ret == 0)
928 {
929 z->c = z->l - m_keep;
930 goto lab3;
931 } /* call RV, line 122 */
932 if (ret < 0)
933 return ret;
934 }
935 {
936 int ret = slice_from_s (z, 1, s_21); /* <-, line 122 */
937 if (ret < 0)
938 return ret;
939 }
940 break;
941 }
942 lab3:
943 ;
944 }
945 break;
946 case 7:
947 {
948 int ret = r_R2 (z);
949 if (ret == 0)
950 return 0; /* call R2, line 129 */
951 if (ret < 0)
952 return ret;
953 }
954 {
955 int ret = slice_del (z); /* delete, line 129 */
956 if (ret < 0)
957 return ret;
958 }
959 {
960 int m_keep = z->l - z->c; /* (void) m_keep; *//* try, line 130 */
961 z->ket = z->c; /* [, line 131 */
962 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3
963 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1))
964 {
965 z->c = z->l - m_keep;
966 goto lab6;
967 }
968 among_var = find_among_b (z, a_3, 3); /* substring, line 131 */
969 if (!(among_var))
970 {
971 z->c = z->l - m_keep;
972 goto lab6;
973 }
974 z->bra = z->c; /* ], line 131 */
975 switch (among_var)
976 {
977 case 0:
978 {
979 z->c = z->l - m_keep;
980 goto lab6;
981 }
982 case 1:
983 {
984 int m3 = z->l - z->c;
985 (void) m3; /* or, line 132 */
986 {
987 int ret = r_R2 (z);
988 if (ret == 0)
989 goto lab8; /* call R2, line 132 */
990 if (ret < 0)
991 return ret;
992 }
993 {
994 int ret = slice_del (z); /* delete, line 132 */
995 if (ret < 0)
996 return ret;
997 }
998 goto lab7;
999 lab8:
1000 z->c = z->l - m3;
1001 {
1002 int ret = slice_from_s (z, 3, s_22); /* <-, line 132 */
1003 if (ret < 0)
1004 return ret;
1005 }
1006 }
1007 lab7:
1008 break;
1009 case 2:
1010 {
1011 int m4 = z->l - z->c;
1012 (void) m4; /* or, line 133 */
1013 {
1014 int ret = r_R2 (z);
1015 if (ret == 0)
1016 goto lab10; /* call R2, line 133 */
1017 if (ret < 0)
1018 return ret;
1019 }
1020 {
1021 int ret = slice_del (z); /* delete, line 133 */
1022 if (ret < 0)
1023 return ret;
1024 }
1025 goto lab9;
1026 lab10:
1027 z->c = z->l - m4;
1028 {
1029 int ret = slice_from_s (z, 3, s_23); /* <-, line 133 */
1030 if (ret < 0)
1031 return ret;
1032 }
1033 }
1034 lab9:
1035 break;
1036 case 3:
1037 {
1038 int ret = r_R2 (z);
1039 if (ret == 0)
1040 {
1041 z->c = z->l - m_keep;
1042 goto lab6;
1043 } /* call R2, line 134 */
1044 if (ret < 0)
1045 return ret;
1046 }
1047 {
1048 int ret = slice_del (z); /* delete, line 134 */
1049 if (ret < 0)
1050 return ret;
1051 }
1052 break;
1053 }
1054 lab6:
1055 ;
1056 }
1057 break;
1058 case 8:
1059 {
1060 int ret = r_R2 (z);
1061 if (ret == 0)
1062 return 0; /* call R2, line 141 */
1063 if (ret < 0)
1064 return ret;
1065 }
1066 {
1067 int ret = slice_del (z); /* delete, line 141 */
1068 if (ret < 0)
1069 return ret;
1070 }
1071 {
1072 int m_keep = z->l - z->c; /* (void) m_keep; *//* try, line 142 */
1073 z->ket = z->c; /* [, line 142 */
1074 if (!(eq_s_b (z, 2, s_24)))
1075 {
1076 z->c = z->l - m_keep;
1077 goto lab11;
1078 }
1079 z->bra = z->c; /* ], line 142 */
1080 {
1081 int ret = r_R2 (z);
1082 if (ret == 0)
1083 {
1084 z->c = z->l - m_keep;
1085 goto lab11;
1086 } /* call R2, line 142 */
1087 if (ret < 0)
1088 return ret;
1089 }
1090 {
1091 int ret = slice_del (z); /* delete, line 142 */
1092 if (ret < 0)
1093 return ret;
1094 }
1095 z->ket = z->c; /* [, line 142 */
1096 if (!(eq_s_b (z, 2, s_25)))
1097 {
1098 z->c = z->l - m_keep;
1099 goto lab11;
1100 }
1101 z->bra = z->c; /* ], line 142 */
1102 {
1103 int m5 = z->l - z->c;
1104 (void) m5; /* or, line 142 */
1105 {
1106 int ret = r_R2 (z);
1107 if (ret == 0)
1108 goto lab13; /* call R2, line 142 */
1109 if (ret < 0)
1110 return ret;
1111 }
1112 {
1113 int ret = slice_del (z); /* delete, line 142 */
1114 if (ret < 0)
1115 return ret;
1116 }
1117 goto lab12;
1118 lab13:
1119 z->c = z->l - m5;
1120 {
1121 int ret = slice_from_s (z, 3, s_26); /* <-, line 142 */
1122 if (ret < 0)
1123 return ret;
1124 }
1125 }
1126 lab12:
1127 lab11:
1128 ;
1129 }
1130 break;
1131 case 9:
1132 {
1133 int ret = slice_from_s (z, 3, s_27); /* <-, line 144 */
1134 if (ret < 0)
1135 return ret;
1136 }
1137 break;
1138 case 10:
1139 {
1140 int ret = r_R1 (z);
1141 if (ret == 0)
1142 return 0; /* call R1, line 145 */
1143 if (ret < 0)
1144 return ret;
1145 }
1146 {
1147 int ret = slice_from_s (z, 2, s_28); /* <-, line 145 */
1148 if (ret < 0)
1149 return ret;
1150 }
1151 break;
1152 case 11:
1153 {
1154 int m6 = z->l - z->c;
1155 (void) m6; /* or, line 147 */
1156 {
1157 int ret = r_R2 (z);
1158 if (ret == 0)
1159 goto lab15; /* call R2, line 147 */
1160 if (ret < 0)
1161 return ret;
1162 }
1163 {
1164 int ret = slice_del (z); /* delete, line 147 */
1165 if (ret < 0)
1166 return ret;
1167 }
1168 goto lab14;
1169 lab15:
1170 z->c = z->l - m6;
1171 {
1172 int ret = r_R1 (z);
1173 if (ret == 0)
1174 return 0; /* call R1, line 147 */
1175 if (ret < 0)
1176 return ret;
1177 }
1178 {
1179 int ret = slice_from_s (z, 3, s_29); /* <-, line 147 */
1180 if (ret < 0)
1181 return ret;
1182 }
1183 }
1184 lab14:
1185 break;
1186 case 12:
1187 {
1188 int ret = r_R1 (z);
1189 if (ret == 0)
1190 return 0; /* call R1, line 150 */
1191 if (ret < 0)
1192 return ret;
1193 }
1194 if (out_grouping_b_U (z, g_v, 97, 251, 0))
1195 return 0;
1196 {
1197 int ret = slice_del (z); /* delete, line 150 */
1198 if (ret < 0)
1199 return ret;
1200 }
1201 break;
1202 case 13:
1203 {
1204 int ret = r_RV (z);
1205 if (ret == 0)
1206 return 0; /* call RV, line 155 */
1207 if (ret < 0)
1208 return ret;
1209 }
1210 {
1211 int ret = slice_from_s (z, 3, s_30); /* <-, line 155 */
1212 if (ret < 0)
1213 return ret;
1214 }
1215 return 0; /* fail, line 155 */
1216 break;
1217 case 14:
1218 {
1219 int ret = r_RV (z);
1220 if (ret == 0)
1221 return 0; /* call RV, line 156 */
1222 if (ret < 0)
1223 return ret;
1224 }
1225 {
1226 int ret = slice_from_s (z, 3, s_31); /* <-, line 156 */
1227 if (ret < 0)
1228 return ret;
1229 }
1230 return 0; /* fail, line 156 */
1231 break;
1232 case 15:
1233 {
1234 int m_test = z->l - z->c; /* test, line 158 */
1235 if (in_grouping_b_U (z, g_v, 97, 251, 0))
1236 return 0;
1237 {
1238 int ret = r_RV (z);
1239 if (ret == 0)
1240 return 0; /* call RV, line 158 */
1241 if (ret < 0)
1242 return ret;
1243 }
1244 z->c = z->l - m_test;
1245 }
1246 {
1247 int ret = slice_del (z); /* delete, line 158 */
1248 if (ret < 0)
1249 return ret;
1250 }
1251 return 0; /* fail, line 158 */
1252 break;
1253 }
1254 return 1;
1255}
1256
1257static int
1259{
1260 int among_var;
1261 {
1262 int mlimit; /* setlimit, line 163 */
1263 int m1 = z->l - z->c;
1264 (void) m1;
1265 if (z->c < z->I[0])
1266 return 0;
1267 z->c = z->I[0]; /* tomark, line 163 */
1268 mlimit = z->lb;
1269 z->lb = z->c;
1270 z->c = z->l - m1;
1271 z->ket = z->c; /* [, line 164 */
1272 if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3
1273 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1))
1274 {
1275 z->lb = mlimit;
1276 return 0;
1277 }
1278 among_var = find_among_b (z, a_5, 35); /* substring, line 164 */
1279 if (!(among_var))
1280 {
1281 z->lb = mlimit;
1282 return 0;
1283 }
1284 z->bra = z->c; /* ], line 164 */
1285 switch (among_var)
1286 {
1287 case 0:
1288 {
1289 z->lb = mlimit;
1290 return 0;
1291 }
1292 case 1:
1293 if (out_grouping_b_U (z, g_v, 97, 251, 0))
1294 {
1295 z->lb = mlimit;
1296 return 0;
1297 }
1298 {
1299 int ret = slice_del (z); /* delete, line 170 */
1300 if (ret < 0)
1301 return ret;
1302 }
1303 break;
1304 }
1305 z->lb = mlimit;
1306 }
1307 return 1;
1308}
1309
1310static int
1312{
1313 int among_var;
1314 {
1315 int mlimit; /* setlimit, line 174 */
1316 int m1 = z->l - z->c;
1317 (void) m1;
1318 if (z->c < z->I[0])
1319 return 0;
1320 z->c = z->I[0]; /* tomark, line 174 */
1321 mlimit = z->lb;
1322 z->lb = z->c;
1323 z->c = z->l - m1;
1324 z->ket = z->c; /* [, line 175 */
1325 among_var = find_among_b (z, a_6, 38); /* substring, line 175 */
1326 if (!(among_var))
1327 {
1328 z->lb = mlimit;
1329 return 0;
1330 }
1331 z->bra = z->c; /* ], line 175 */
1332 switch (among_var)
1333 {
1334 case 0:
1335 {
1336 z->lb = mlimit;
1337 return 0;
1338 }
1339 case 1:
1340 {
1341 int ret = r_R2 (z);
1342 if (ret == 0)
1343 {
1344 z->lb = mlimit;
1345 return 0;
1346 } /* call R2, line 177 */
1347 if (ret < 0)
1348 return ret;
1349 }
1350 {
1351 int ret = slice_del (z); /* delete, line 177 */
1352 if (ret < 0)
1353 return ret;
1354 }
1355 break;
1356 case 2:
1357 {
1358 int ret = slice_del (z); /* delete, line 185 */
1359 if (ret < 0)
1360 return ret;
1361 }
1362 break;
1363 case 3:
1364 {
1365 int ret = slice_del (z); /* delete, line 190 */
1366 if (ret < 0)
1367 return ret;
1368 }
1369 {
1370 int m_keep = z->l - z->c; /* (void) m_keep; *//* try, line 191 */
1371 z->ket = z->c; /* [, line 191 */
1372 if (!(eq_s_b (z, 1, s_32)))
1373 {
1374 z->c = z->l - m_keep;
1375 goto lab0;
1376 }
1377 z->bra = z->c; /* ], line 191 */
1378 {
1379 int ret = slice_del (z); /* delete, line 191 */
1380 if (ret < 0)
1381 return ret;
1382 }
1383 lab0:
1384 ;
1385 }
1386 break;
1387 }
1388 z->lb = mlimit;
1389 }
1390 return 1;
1391}
1392
1393static int
1395{
1396 int among_var;
1397 {
1398 int m_keep = z->l - z->c; /* (void) m_keep; *//* try, line 199 */
1399 z->ket = z->c; /* [, line 199 */
1400 if (!(eq_s_b (z, 1, s_33)))
1401 {
1402 z->c = z->l - m_keep;
1403 goto lab0;
1404 }
1405 z->bra = z->c; /* ], line 199 */
1406 {
1407 int m_test = z->l - z->c; /* test, line 199 */
1408 if (out_grouping_b_U (z, g_keep_with_s, 97, 232, 0))
1409 {
1410 z->c = z->l - m_keep;
1411 goto lab0;
1412 }
1413 z->c = z->l - m_test;
1414 }
1415 {
1416 int ret = slice_del (z); /* delete, line 199 */
1417 if (ret < 0)
1418 return ret;
1419 }
1420 lab0:
1421 ;
1422 }
1423 {
1424 int mlimit; /* setlimit, line 200 */
1425 int m1 = z->l - z->c;
1426 (void) m1;
1427 if (z->c < z->I[0])
1428 return 0;
1429 z->c = z->I[0]; /* tomark, line 200 */
1430 mlimit = z->lb;
1431 z->lb = z->c;
1432 z->c = z->l - m1;
1433 z->ket = z->c; /* [, line 201 */
1434 among_var = find_among_b (z, a_7, 7); /* substring, line 201 */
1435 if (!(among_var))
1436 {
1437 z->lb = mlimit;
1438 return 0;
1439 }
1440 z->bra = z->c; /* ], line 201 */
1441 switch (among_var)
1442 {
1443 case 0:
1444 {
1445 z->lb = mlimit;
1446 return 0;
1447 }
1448 case 1:
1449 {
1450 int ret = r_R2 (z);
1451 if (ret == 0)
1452 {
1453 z->lb = mlimit;
1454 return 0;
1455 } /* call R2, line 202 */
1456 if (ret < 0)
1457 return ret;
1458 }
1459 {
1460 int m2 = z->l - z->c;
1461 (void) m2; /* or, line 202 */
1462 if (!(eq_s_b (z, 1, s_34)))
1463 goto lab2;
1464 goto lab1;
1465 lab2:
1466 z->c = z->l - m2;
1467 if (!(eq_s_b (z, 1, s_35)))
1468 {
1469 z->lb = mlimit;
1470 return 0;
1471 }
1472 }
1473 lab1:
1474 {
1475 int ret = slice_del (z); /* delete, line 202 */
1476 if (ret < 0)
1477 return ret;
1478 }
1479 break;
1480 case 2:
1481 {
1482 int ret = slice_from_s (z, 1, s_36); /* <-, line 204 */
1483 if (ret < 0)
1484 return ret;
1485 }
1486 break;
1487 case 3:
1488 {
1489 int ret = slice_del (z); /* delete, line 205 */
1490 if (ret < 0)
1491 return ret;
1492 }
1493 break;
1494 case 4:
1495 if (!(eq_s_b (z, 2, s_37)))
1496 {
1497 z->lb = mlimit;
1498 return 0;
1499 }
1500 {
1501 int ret = slice_del (z); /* delete, line 206 */
1502 if (ret < 0)
1503 return ret;
1504 }
1505 break;
1506 }
1507 z->lb = mlimit;
1508 }
1509 return 1;
1510}
1511
1512static int
1514{
1515 {
1516 int m_test = z->l - z->c; /* test, line 212 */
1517 if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3
1518 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1))
1519 return 0;
1520 if (!(find_among_b (z, a_8, 5)))
1521 return 0; /* among, line 212 */
1522 z->c = z->l - m_test;
1523 }
1524 z->ket = z->c; /* [, line 212 */
1525 {
1526 int ret = skip_utf8 (z->p, z->c, z->lb, 0, -1);
1527 if (ret < 0)
1528 return 0;
1529 z->c = ret; /* next, line 212 */
1530 }
1531 z->bra = z->c; /* ], line 212 */
1532 {
1533 int ret = slice_del (z); /* delete, line 212 */
1534 if (ret < 0)
1535 return ret;
1536 }
1537 return 1;
1538}
1539
1540static int
1542{
1543 {
1544 int i = 1;
1545 while (1)
1546 { /* atleast, line 216 */
1547 if (out_grouping_b_U (z, g_v, 97, 251, 0))
1548 goto lab0;
1549 i--;
1550 continue;
1551 lab0:
1552 break;
1553 }
1554 if (i > 0)
1555 return 0;
1556 }
1557 z->ket = z->c; /* [, line 217 */
1558 {
1559 int m1 = z->l - z->c;
1560 (void) m1; /* or, line 217 */
1561 if (!(eq_s_b (z, 2, s_38)))
1562 goto lab2;
1563 goto lab1;
1564 lab2:
1565 z->c = z->l - m1;
1566 if (!(eq_s_b (z, 2, s_39)))
1567 return 0;
1568 }
1569lab1:
1570 z->bra = z->c; /* ], line 217 */
1571 {
1572 int ret = slice_from_s (z, 1, s_40); /* <-, line 217 */
1573 if (ret < 0)
1574 return ret;
1575 }
1576 return 1;
1577}
1578
1579extern int
1581{
1582 {
1583 int c1 = z->c; /* do, line 223 */
1584 {
1585 int ret = r_prelude (z);
1586 if (ret == 0)
1587 goto lab0; /* call prelude, line 223 */
1588 if (ret < 0)
1589 return ret;
1590 }
1591 lab0:
1592 z->c = c1;
1593 }
1594 {
1595 int c2 = z->c; /* do, line 224 */
1596 {
1597 int ret = r_mark_regions (z);
1598 if (ret == 0)
1599 goto lab1; /* call mark_regions, line 224 */
1600 if (ret < 0)
1601 return ret;
1602 }
1603 lab1:
1604 z->c = c2;
1605 }
1606 z->lb = z->c;
1607 z->c = z->l; /* backwards, line 225 */
1608
1609 {
1610 int m3 = z->l - z->c;
1611 (void) m3; /* do, line 227 */
1612 {
1613 int m4 = z->l - z->c;
1614 (void) m4; /* or, line 237 */
1615 {
1616 int m5 = z->l - z->c;
1617 (void) m5; /* and, line 233 */
1618 {
1619 int m6 = z->l - z->c;
1620 (void) m6; /* or, line 229 */
1621 {
1622 int ret = r_standard_suffix (z);
1623 if (ret == 0)
1624 goto lab6; /* call standard_suffix, line 229 */
1625 if (ret < 0)
1626 return ret;
1627 }
1628 goto lab5;
1629 lab6:
1630 z->c = z->l - m6;
1631 {
1632 int ret = r_i_verb_suffix (z);
1633 if (ret == 0)
1634 goto lab7; /* call i_verb_suffix, line 230 */
1635 if (ret < 0)
1636 return ret;
1637 }
1638 goto lab5;
1639 lab7:
1640 z->c = z->l - m6;
1641 {
1642 int ret = r_verb_suffix (z);
1643 if (ret == 0)
1644 goto lab4; /* call verb_suffix, line 231 */
1645 if (ret < 0)
1646 return ret;
1647 }
1648 }
1649 lab5:
1650 z->c = z->l - m5;
1651 {
1652 int m_keep = z->l - z->c; /* (void) m_keep; *//* try, line 234 */
1653 z->ket = z->c; /* [, line 234 */
1654 {
1655 int m7 = z->l - z->c;
1656 (void) m7; /* or, line 234 */
1657 if (!(eq_s_b (z, 1, s_41)))
1658 goto lab10;
1659 z->bra = z->c; /* ], line 234 */
1660 {
1661 int ret = slice_from_s (z, 1, s_42); /* <-, line 234 */
1662 if (ret < 0)
1663 return ret;
1664 }
1665 goto lab9;
1666 lab10:
1667 z->c = z->l - m7;
1668 if (!(eq_s_b (z, 2, s_43)))
1669 {
1670 z->c = z->l - m_keep;
1671 goto lab8;
1672 }
1673 z->bra = z->c; /* ], line 235 */
1674 {
1675 int ret = slice_from_s (z, 1, s_44); /* <-, line 235 */
1676 if (ret < 0)
1677 return ret;
1678 }
1679 }
1680 lab9:
1681 lab8:
1682 ;
1683 }
1684 }
1685 goto lab3;
1686 lab4:
1687 z->c = z->l - m4;
1688 {
1689 int ret = r_residual_suffix (z);
1690 if (ret == 0)
1691 goto lab2; /* call residual_suffix, line 238 */
1692 if (ret < 0)
1693 return ret;
1694 }
1695 }
1696 lab3:
1697 lab2:
1698 z->c = z->l - m3;
1699 }
1700 {
1701 int m8 = z->l - z->c;
1702 (void) m8; /* do, line 243 */
1703 {
1704 int ret = r_un_double (z);
1705 if (ret == 0)
1706 goto lab11; /* call un_double, line 243 */
1707 if (ret < 0)
1708 return ret;
1709 }
1710 lab11:
1711 z->c = z->l - m8;
1712 }
1713 {
1714 int m9 = z->l - z->c;
1715 (void) m9; /* do, line 244 */
1716 {
1717 int ret = r_un_accent (z);
1718 if (ret == 0)
1719 goto lab12; /* call un_accent, line 244 */
1720 if (ret < 0)
1721 return ret;
1722 }
1723 lab12:
1724 z->c = z->l - m9;
1725 }
1726 z->c = z->lb;
1727 {
1728 int c10 = z->c; /* do, line 246 */
1729 {
1730 int ret = r_postlude (z);
1731 if (ret == 0)
1732 goto lab13; /* call postlude, line 246 */
1733 if (ret < 0)
1734 return ret;
1735 }
1736 lab13:
1737 z->c = c10;
1738 }
1739 return 1;
1740}
1741
1742extern struct SN_env *
1744{
1745 return SN_create_env (0, 3, 0);
1746}
1747
1748extern void
1750{
1751 SN_close_env (z, 0);
1752}
struct SN_env * SN_create_env(int S_size, int I_size, int B_size)
Definition api.c:6
void SN_close_env(struct SN_env *z, int S_size)
Definition api.c:50
unsigned char symbol
Definition api.h:2
int find_among_b(struct SN_env *z, const struct among *v, int v_size)
Definition utilities.c:400
int out_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition utilities.c:170
int slice_del(struct SN_env *z)
Definition utilities.c:573
int in_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition utilities.c:134
int eq_s(struct SN_env *z, int s_size, const symbol *s)
Definition utilities.c:280
int skip_utf8(const symbol *p, int c, int lb, int l, int n)
Definition utilities.c:42
int in_grouping_b_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition utilities.c:152
int eq_s_b(struct SN_env *z, int s_size, const symbol *s)
Definition utilities.c:290
int out_grouping_b_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition utilities.c:187
int find_among(struct SN_env *z, const struct among *v, int v_size)
Definition utilities.c:312
int slice_from_s(struct SN_env *z, int s_size, const symbol *s)
Definition utilities.c:559
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_1_3[1]
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_42[]
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_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_standard_suffix(struct SN_env *z)
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_1[4]
static const symbol s_27[]
static const symbol s_4_9[3]
static const symbol s_5_6[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_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_7_6[2]
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 symbol s_5_21[2]
static const symbol s_6_12[5]
static const symbol s_4_18[5]
static int r_RV(struct SN_env *z)
static const symbol s_35[]
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_1_2[1]
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 const struct among a_7[7]
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_41[]
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_44[]
static const symbol s_43[]
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