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