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