xapian-core  2.0.0
dutch.cc
Go to the documentation of this file.
1 /* Generated from dutch.sbl by Snowball 3.0.0 - https://snowballstem.org/ */
2 
3 #include <config.h>
4 
5 #define SNOWBALL_RUNTIME_THROW_EXCEPTIONS
6 #include "dutch.h"
7 
8 #include <stddef.h>
9 
11 
12 static int r_measure(struct SN_env * z);
13 static int r_Lose_infix(struct SN_env * z);
14 static int r_Lose_prefix(struct SN_env * z);
15 static int r_Step_1c(struct SN_env * z);
16 static int r_Step_6(struct SN_env * z);
17 static int r_Step_7(struct SN_env * z);
18 static int r_Step_4(struct SN_env * z);
19 static int r_Step_3(struct SN_env * z);
20 static int r_Step_2(struct SN_env * z);
21 static int r_Step_1(struct SN_env * z);
22 static int r_lengthen_V(struct SN_env * z);
23 static int r_VX(struct SN_env * z);
24 static int r_V(struct SN_env * z);
25 static int r_C(struct SN_env * z);
26 static int r_R2(struct SN_env * z);
27 static int r_R1(struct SN_env * z);
28 
29 static const symbol s_0[] = { 'i', 'j' };
30 static const symbol s_1[] = { 'i', 'j' };
31 static const symbol s_2[] = { 'i', 'j' };
32 static const symbol s_3[] = { 'e', 0xC3, 0xAB, 'e' };
33 static const symbol s_4[] = { 'i', 'e', 'e' };
34 static const symbol s_5[] = { 'i', 'e' };
35 static const symbol s_6[] = { 'a', 'r' };
36 static const symbol s_7[] = { 'e', 'r' };
37 static const symbol s_8[] = { 'e' };
38 static const symbol s_9[] = { 0xC3, 0xA9 };
39 static const symbol s_10[] = { 'a', 'u' };
40 static const symbol s_11[] = { 'h', 'e', 'd' };
41 static const symbol s_12[] = { 'h', 'e', 'i', 'd' };
42 static const symbol s_13[] = { 'n', 'd' };
43 static const symbol s_14[] = { 'n', 'd' };
44 static const symbol s_15[] = { '\'', 't' };
45 static const symbol s_16[] = { 'e', 't' };
46 static const symbol s_17[] = { 'r', 'n', 't' };
47 static const symbol s_18[] = { 'r', 'n' };
48 static const symbol s_19[] = { 'i', 'n', 'k' };
49 static const symbol s_20[] = { 'i', 'n', 'g' };
50 static const symbol s_21[] = { 'm', 'p' };
51 static const symbol s_22[] = { 'm' };
52 static const symbol s_23[] = { 'g' };
53 static const symbol s_24[] = { 'l', 'i', 'j', 'k' };
54 static const symbol s_25[] = { 'i', 's', 'c', 'h' };
55 static const symbol s_26[] = { 't' };
56 static const symbol s_27[] = { 's' };
57 static const symbol s_28[] = { 'r' };
58 static const symbol s_29[] = { 'l' };
59 static const symbol s_30[] = { 'e', 'n' };
60 static const symbol s_31[] = { 'i', 'e', 'f' };
61 static const symbol s_32[] = { 'e', 'e', 'r' };
62 static const symbol s_33[] = { 'r' };
63 static const symbol s_34[] = { 'i', 'l', 'd' };
64 static const symbol s_35[] = { 'e', 'r' };
65 static const symbol s_36[] = { 'a', 'a', 'r' };
66 static const symbol s_37[] = { 'f' };
67 static const symbol s_38[] = { 'g' };
68 static const symbol s_39[] = { 't' };
69 static const symbol s_40[] = { 'd' };
70 static const symbol s_41[] = { 'i', 'e' };
71 static const symbol s_42[] = { 'e', 'e', 'r' };
72 static const symbol s_43[] = { 'n' };
73 static const symbol s_44[] = { 'l' };
74 static const symbol s_45[] = { 'r' };
75 static const symbol s_46[] = { 't', 'e', 'e', 'r' };
76 static const symbol s_47[] = { 'l', 'i', 'j', 'k' };
77 static const symbol s_48[] = { 'i', 'n', 'n' };
78 static const symbol s_49[] = { 'k' };
79 static const symbol s_50[] = { 'f' };
80 static const symbol s_51[] = { 'p' };
81 static const symbol s_52[] = { 'b' };
82 static const symbol s_53[] = { 'c' };
83 static const symbol s_54[] = { 'd' };
84 static const symbol s_55[] = { 'f' };
85 static const symbol s_56[] = { 'g' };
86 static const symbol s_57[] = { 'h' };
87 static const symbol s_58[] = { 'j' };
88 static const symbol s_59[] = { 'k' };
89 static const symbol s_60[] = { 'l' };
90 static const symbol s_61[] = { 'm' };
91 static const symbol s_62[] = { 'n' };
92 static const symbol s_63[] = { 'p' };
93 static const symbol s_64[] = { 'q' };
94 static const symbol s_65[] = { 'r' };
95 static const symbol s_66[] = { 's' };
96 static const symbol s_67[] = { 't' };
97 static const symbol s_68[] = { 'v' };
98 static const symbol s_69[] = { 'w' };
99 static const symbol s_70[] = { 'x' };
100 static const symbol s_71[] = { 'z' };
101 static const symbol s_72[] = { 'i', 'n' };
102 static const symbol s_73[] = { 'n' };
103 static const symbol s_74[] = { 'e', 'n' };
104 static const symbol s_75[] = { 'g', 'e' };
105 static const symbol s_76[] = { 'i', 'j' };
106 static const symbol s_77[] = { 'i', 'j' };
107 static const symbol s_78[] = { 'e' };
108 static const symbol s_79[] = { 'i' };
109 static const symbol s_80[] = { 'g', 'e' };
110 static const symbol s_81[] = { 'i', 'j' };
111 static const symbol s_82[] = { 'i', 'j' };
112 static const symbol s_83[] = { 'e' };
113 static const symbol s_84[] = { 'i' };
114 static const symbol s_85[] = { 'i', 'j' };
115 static const symbol s_86[] = { 'i', 'j' };
116 
117 static const symbol s_0_0[1] = { 'a' };
118 static const symbol s_0_1[1] = { 'e' };
119 static const symbol s_0_2[1] = { 'o' };
120 static const symbol s_0_3[1] = { 'u' };
121 static const symbol s_0_4[2] = { 0xC3, 0xA0 };
122 static const symbol s_0_5[2] = { 0xC3, 0xA1 };
123 static const symbol s_0_6[2] = { 0xC3, 0xA2 };
124 static const symbol s_0_7[2] = { 0xC3, 0xA4 };
125 static const symbol s_0_8[2] = { 0xC3, 0xA8 };
126 static const symbol s_0_9[2] = { 0xC3, 0xA9 };
127 static const symbol s_0_10[2] = { 0xC3, 0xAA };
128 static const symbol s_0_11[3] = { 'e', 0xC3, 0xAB };
129 static const symbol s_0_12[3] = { 'i', 0xC3, 0xAB };
130 static const symbol s_0_13[2] = { 0xC3, 0xB2 };
131 static const symbol s_0_14[2] = { 0xC3, 0xB3 };
132 static const symbol s_0_15[2] = { 0xC3, 0xB4 };
133 static const symbol s_0_16[2] = { 0xC3, 0xB6 };
134 static const symbol s_0_17[2] = { 0xC3, 0xB9 };
135 static const symbol s_0_18[2] = { 0xC3, 0xBA };
136 static const symbol s_0_19[2] = { 0xC3, 0xBB };
137 static const symbol s_0_20[2] = { 0xC3, 0xBC };
138 static const struct among a_0[21] = {
139 { 1, s_0_0, 0, 1, 0},
140 { 1, s_0_1, 0, 2, 0},
141 { 1, s_0_2, 0, 1, 0},
142 { 1, s_0_3, 0, 1, 0},
143 { 2, s_0_4, 0, 1, 0},
144 { 2, s_0_5, 0, 1, 0},
145 { 2, s_0_6, 0, 1, 0},
146 { 2, s_0_7, 0, 1, 0},
147 { 2, s_0_8, 0, 2, 0},
148 { 2, s_0_9, 0, 2, 0},
149 { 2, s_0_10, 0, 2, 0},
150 { 3, s_0_11, 0, 3, 0},
151 { 3, s_0_12, 0, 4, 0},
152 { 2, s_0_13, 0, 1, 0},
153 { 2, s_0_14, 0, 1, 0},
154 { 2, s_0_15, 0, 1, 0},
155 { 2, s_0_16, 0, 1, 0},
156 { 2, s_0_17, 0, 1, 0},
157 { 2, s_0_18, 0, 1, 0},
158 { 2, s_0_19, 0, 1, 0},
159 { 2, s_0_20, 0, 1, 0}
160 };
161 
162 static const symbol s_1_0[3] = { 'n', 'd', 'e' };
163 static const symbol s_1_1[2] = { 'e', 'n' };
164 static const symbol s_1_2[1] = { 's' };
165 static const symbol s_1_3[2] = { '\'', 's' };
166 static const symbol s_1_4[2] = { 'e', 's' };
167 static const symbol s_1_5[3] = { 'i', 'e', 's' };
168 static const symbol s_1_6[3] = { 'a', 'u', 's' };
169 static const symbol s_1_7[3] = { 0xC3, 0xA9, 's' };
170 static const struct among a_1[8] = {
171 { 3, s_1_0, 0, 8, 0},
172 { 2, s_1_1, 0, 7, 0},
173 { 1, s_1_2, 0, 2, 0},
174 { 2, s_1_3, -1, 1, 0},
175 { 2, s_1_4, -2, 4, 0},
176 { 3, s_1_5, -1, 3, 0},
177 { 3, s_1_6, -4, 6, 0},
178 { 3, s_1_7, -5, 5, 0}
179 };
180 
181 static const symbol s_2_0[2] = { 'd', 'e' };
182 static const symbol s_2_1[2] = { 'g', 'e' };
183 static const symbol s_2_2[5] = { 'i', 's', 'c', 'h', 'e' };
184 static const symbol s_2_3[2] = { 'j', 'e' };
185 static const symbol s_2_4[5] = { 'l', 'i', 'j', 'k', 'e' };
186 static const symbol s_2_5[2] = { 'l', 'e' };
187 static const symbol s_2_6[3] = { 'e', 'n', 'e' };
188 static const symbol s_2_7[2] = { 'r', 'e' };
189 static const symbol s_2_8[2] = { 's', 'e' };
190 static const symbol s_2_9[2] = { 't', 'e' };
191 static const symbol s_2_10[4] = { 'i', 'e', 'v', 'e' };
192 static const struct among a_2[11] = {
193 { 2, s_2_0, 0, 5, 0},
194 { 2, s_2_1, 0, 2, 0},
195 { 5, s_2_2, 0, 4, 0},
196 { 2, s_2_3, 0, 1, 0},
197 { 5, s_2_4, 0, 3, 0},
198 { 2, s_2_5, 0, 9, 0},
199 { 3, s_2_6, 0, 10, 0},
200 { 2, s_2_7, 0, 8, 0},
201 { 2, s_2_8, 0, 7, 0},
202 { 2, s_2_9, 0, 6, 0},
203 { 4, s_2_10, 0, 11, 0}
204 };
205 
206 static const symbol s_3_0[4] = { 'h', 'e', 'i', 'd' };
207 static const symbol s_3_1[3] = { 'f', 'i', 'e' };
208 static const symbol s_3_2[3] = { 'g', 'i', 'e' };
209 static const symbol s_3_3[4] = { 'a', 't', 'i', 'e' };
210 static const symbol s_3_4[4] = { 'i', 's', 'm', 'e' };
211 static const symbol s_3_5[3] = { 'i', 'n', 'g' };
212 static const symbol s_3_6[4] = { 'a', 'r', 'i', 'j' };
213 static const symbol s_3_7[4] = { 'e', 'r', 'i', 'j' };
214 static const symbol s_3_8[3] = { 's', 'e', 'l' };
215 static const symbol s_3_9[4] = { 'r', 'd', 'e', 'r' };
216 static const symbol s_3_10[4] = { 's', 't', 'e', 'r' };
217 static const symbol s_3_11[5] = { 'i', 't', 'e', 'i', 't' };
218 static const symbol s_3_12[3] = { 'd', 's', 't' };
219 static const symbol s_3_13[3] = { 't', 's', 't' };
220 static const struct among a_3[14] = {
221 { 4, s_3_0, 0, 3, 0},
222 { 3, s_3_1, 0, 7, 0},
223 { 3, s_3_2, 0, 8, 0},
224 { 4, s_3_3, 0, 1, 0},
225 { 4, s_3_4, 0, 5, 0},
226 { 3, s_3_5, 0, 5, 0},
227 { 4, s_3_6, 0, 6, 0},
228 { 4, s_3_7, 0, 5, 0},
229 { 3, s_3_8, 0, 3, 0},
230 { 4, s_3_9, 0, 4, 0},
231 { 4, s_3_10, 0, 3, 0},
232 { 5, s_3_11, 0, 2, 0},
233 { 3, s_3_12, 0, 10, 0},
234 { 3, s_3_13, 0, 9, 0}
235 };
236 
237 static const symbol s_4_0[3] = { 'e', 'n', 'd' };
238 static const symbol s_4_1[5] = { 'a', 't', 'i', 'e', 'f' };
239 static const symbol s_4_2[4] = { 'e', 'r', 'i', 'g' };
240 static const symbol s_4_3[6] = { 'a', 'c', 'h', 't', 'i', 'g' };
241 static const symbol s_4_4[6] = { 'i', 'o', 'n', 'e', 'e', 'l' };
242 static const symbol s_4_5[4] = { 'b', 'a', 'a', 'r' };
243 static const symbol s_4_6[4] = { 'l', 'a', 'a', 'r' };
244 static const symbol s_4_7[4] = { 'n', 'a', 'a', 'r' };
245 static const symbol s_4_8[4] = { 'r', 'a', 'a', 'r' };
246 static const symbol s_4_9[6] = { 'e', 'r', 'i', 'g', 'e', 'r' };
247 static const symbol s_4_10[8] = { 'a', 'c', 'h', 't', 'i', 'g', 'e', 'r' };
248 static const symbol s_4_11[6] = { 'l', 'i', 'j', 'k', 'e', 'r' };
249 static const symbol s_4_12[4] = { 't', 'a', 'n', 't' };
250 static const symbol s_4_13[6] = { 'e', 'r', 'i', 'g', 's', 't' };
251 static const symbol s_4_14[8] = { 'a', 'c', 'h', 't', 'i', 'g', 's', 't' };
252 static const symbol s_4_15[6] = { 'l', 'i', 'j', 'k', 's', 't' };
253 static const struct among a_4[16] = {
254 { 3, s_4_0, 0, 9, 0},
255 { 5, s_4_1, 0, 2, 0},
256 { 4, s_4_2, 0, 9, 0},
257 { 6, s_4_3, 0, 3, 0},
258 { 6, s_4_4, 0, 1, 0},
259 { 4, s_4_5, 0, 3, 0},
260 { 4, s_4_6, 0, 5, 0},
261 { 4, s_4_7, 0, 4, 0},
262 { 4, s_4_8, 0, 6, 0},
263 { 6, s_4_9, 0, 9, 0},
264 { 8, s_4_10, 0, 3, 0},
265 { 6, s_4_11, 0, 8, 0},
266 { 4, s_4_12, 0, 7, 0},
267 { 6, s_4_13, 0, 9, 0},
268 { 8, s_4_14, 0, 3, 0},
269 { 6, s_4_15, 0, 8, 0}
270 };
271 
272 static const symbol s_5_0[2] = { 'i', 'g' };
273 static const symbol s_5_1[4] = { 'i', 'g', 'e', 'r' };
274 static const symbol s_5_2[4] = { 'i', 'g', 's', 't' };
275 static const struct among a_5[3] = {
276 { 2, s_5_0, 0, 1, 0},
277 { 4, s_5_1, 0, 1, 0},
278 { 4, s_5_2, 0, 1, 0}
279 };
280 
281 static const symbol s_6_0[2] = { 'f', 't' };
282 static const symbol s_6_1[2] = { 'k', 't' };
283 static const symbol s_6_2[2] = { 'p', 't' };
284 static const struct among a_6[3] = {
285 { 2, s_6_0, 0, 2, 0},
286 { 2, s_6_1, 0, 1, 0},
287 { 2, s_6_2, 0, 3, 0}
288 };
289 
290 static const symbol s_7_0[2] = { 'b', 'b' };
291 static const symbol s_7_1[2] = { 'c', 'c' };
292 static const symbol s_7_2[2] = { 'd', 'd' };
293 static const symbol s_7_3[2] = { 'f', 'f' };
294 static const symbol s_7_4[2] = { 'g', 'g' };
295 static const symbol s_7_5[2] = { 'h', 'h' };
296 static const symbol s_7_6[2] = { 'j', 'j' };
297 static const symbol s_7_7[2] = { 'k', 'k' };
298 static const symbol s_7_8[2] = { 'l', 'l' };
299 static const symbol s_7_9[2] = { 'm', 'm' };
300 static const symbol s_7_10[2] = { 'n', 'n' };
301 static const symbol s_7_11[2] = { 'p', 'p' };
302 static const symbol s_7_12[2] = { 'q', 'q' };
303 static const symbol s_7_13[2] = { 'r', 'r' };
304 static const symbol s_7_14[2] = { 's', 's' };
305 static const symbol s_7_15[2] = { 't', 't' };
306 static const symbol s_7_16[1] = { 'v' };
307 static const symbol s_7_17[2] = { 'v', 'v' };
308 static const symbol s_7_18[2] = { 'w', 'w' };
309 static const symbol s_7_19[2] = { 'x', 'x' };
310 static const symbol s_7_20[1] = { 'z' };
311 static const symbol s_7_21[2] = { 'z', 'z' };
312 static const struct among a_7[22] = {
313 { 2, s_7_0, 0, 1, 0},
314 { 2, s_7_1, 0, 2, 0},
315 { 2, s_7_2, 0, 3, 0},
316 { 2, s_7_3, 0, 4, 0},
317 { 2, s_7_4, 0, 5, 0},
318 { 2, s_7_5, 0, 6, 0},
319 { 2, s_7_6, 0, 7, 0},
320 { 2, s_7_7, 0, 8, 0},
321 { 2, s_7_8, 0, 9, 0},
322 { 2, s_7_9, 0, 10, 0},
323 { 2, s_7_10, 0, 11, 0},
324 { 2, s_7_11, 0, 12, 0},
325 { 2, s_7_12, 0, 13, 0},
326 { 2, s_7_13, 0, 14, 0},
327 { 2, s_7_14, 0, 15, 0},
328 { 2, s_7_15, 0, 16, 0},
329 { 1, s_7_16, 0, 4, 0},
330 { 2, s_7_17, -1, 17, 0},
331 { 2, s_7_18, 0, 18, 0},
332 { 2, s_7_19, 0, 19, 0},
333 { 1, s_7_20, 0, 15, 0},
334 { 2, s_7_21, -1, 20, 0}
335 };
336 
337 static const symbol s_8_0[1] = { 'd' };
338 static const symbol s_8_1[1] = { 't' };
339 static const struct among a_8[2] = {
340 { 1, s_8_0, 0, 1, 0},
341 { 1, s_8_1, 0, 2, 0}
342 };
343 
344 static const symbol s_9_1[3] = { 'e', 'f', 't' };
345 static const symbol s_9_2[3] = { 'v', 'a', 'a' };
346 static const symbol s_9_3[3] = { 'v', 'a', 'l' };
347 static const symbol s_9_4[4] = { 'v', 'a', 'l', 'i' };
348 static const symbol s_9_5[4] = { 'v', 'a', 'r', 'e' };
349 static const struct among a_9[6] = {
350 { 0, 0, 0, -1, 0},
351 { 3, s_9_1, -1, 1, 0},
352 { 3, s_9_2, -2, 1, 0},
353 { 3, s_9_3, -3, 1, 0},
354 { 4, s_9_4, -1, -1, 0},
355 { 4, s_9_5, -5, 1, 0}
356 };
357 
358 static const symbol s_10_0[2] = { 0xC3, 0xAB };
359 static const symbol s_10_1[2] = { 0xC3, 0xAF };
360 static const struct among a_10[2] = {
361 { 2, s_10_0, 0, 1, 0},
362 { 2, s_10_1, 0, 2, 0}
363 };
364 
365 static const symbol s_11_0[2] = { 0xC3, 0xAB };
366 static const symbol s_11_1[2] = { 0xC3, 0xAF };
367 static const struct among a_11[2] = {
368 { 2, s_11_0, 0, 1, 0},
369 { 2, s_11_1, 0, 2, 0}
370 };
371 
372 static const unsigned char g_E[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120 };
373 
374 static const unsigned char g_AIOU[] = { 1, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 11, 120, 46, 15 };
375 
376 static const unsigned char g_AEIOU[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 139, 127, 46, 15 };
377 
378 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 139, 127, 46, 15 };
379 
380 static const unsigned char g_v_WX[] = { 17, 65, 208, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 139, 127, 46, 15 };
381 
382 static int r_R1(struct SN_env * z) {
383  return ((SN_local *)z)->i_p1 <= z->c;
384 }
385 
386 static int r_R2(struct SN_env * z) {
387  return ((SN_local *)z)->i_p2 <= z->c;
388 }
389 
390 static int r_V(struct SN_env * z) {
391  {
392  int v_1 = z->l - z->c;
393  do {
394  int v_2 = z->l - z->c;
395  if (in_grouping_b_U(z, g_v, 97, 252, 0)) goto lab0;
396  break;
397  lab0:
398  z->c = z->l - v_2;
399  if (!(eq_s_b(z, 2, s_0))) return 0;
400  } while (0);
401  z->c = z->l - v_1;
402  }
403  return 1;
404 }
405 
406 static int r_VX(struct SN_env * z) {
407  {
408  int v_1 = z->l - z->c;
409  {
410  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
411  if (ret < 0) return 0;
412  z->c = ret;
413  }
414  do {
415  int v_2 = z->l - z->c;
416  if (in_grouping_b_U(z, g_v, 97, 252, 0)) goto lab0;
417  break;
418  lab0:
419  z->c = z->l - v_2;
420  if (!(eq_s_b(z, 2, s_1))) return 0;
421  } while (0);
422  z->c = z->l - v_1;
423  }
424  return 1;
425 }
426 
427 static int r_C(struct SN_env * z) {
428  {
429  int v_1 = z->l - z->c;
430  {
431  int v_2 = z->l - z->c;
432  if (!(eq_s_b(z, 2, s_2))) goto lab0;
433  return 0;
434  lab0:
435  z->c = z->l - v_2;
436  }
437  if (out_grouping_b_U(z, g_v, 97, 252, 0)) return 0;
438  z->c = z->l - v_1;
439  }
440  return 1;
441 }
442 
443 static int r_lengthen_V(struct SN_env * z) {
444  int among_var;
445  {
446  int v_1 = z->l - z->c;
447  if (out_grouping_b_U(z, g_v_WX, 97, 252, 0)) goto lab0;
448  z->ket = z->c;
449  among_var = find_among_b(z, a_0, 21, 0);
450  if (!among_var) goto lab0;
451  z->bra = z->c;
452  switch (among_var) {
453  case 1:
454  {
455  int v_2 = z->l - z->c;
456  do {
457  int v_3 = z->l - z->c;
458  if (out_grouping_b_U(z, g_AEIOU, 97, 252, 0)) goto lab1;
459  break;
460  lab1:
461  z->c = z->l - v_3;
462  if (z->c > z->lb) goto lab0;
463  } while (0);
464  z->c = z->l - v_2;
465  }
466  slice_to(z, &((SN_local *)z)->s_ch);
467  {
468  int saved_c = z->c;
469  insert_v(z, z->c, z->c, ((SN_local *)z)->s_ch);
470  z->c = saved_c;
471  }
472  break;
473  case 2:
474  {
475  int v_4 = z->l - z->c;
476  do {
477  int v_5 = z->l - z->c;
478  if (out_grouping_b_U(z, g_AEIOU, 97, 252, 0)) goto lab2;
479  break;
480  lab2:
481  z->c = z->l - v_5;
482  if (z->c > z->lb) goto lab0;
483  } while (0);
484  {
485  int v_6 = z->l - z->c;
486  do {
487  int v_7 = z->l - z->c;
488  if (in_grouping_b_U(z, g_AIOU, 97, 252, 0)) goto lab4;
489  break;
490  lab4:
491  z->c = z->l - v_7;
492  if (in_grouping_b_U(z, g_E, 101, 235, 0)) goto lab3;
493  if (z->c > z->lb) goto lab3;
494  } while (0);
495  goto lab0;
496  lab3:
497  z->c = z->l - v_6;
498  }
499  {
500  int v_8 = z->l - z->c;
501  {
502  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
503  if (ret < 0) goto lab5;
504  z->c = ret;
505  }
506  if (in_grouping_b_U(z, g_AIOU, 97, 252, 0)) goto lab5;
507  if (out_grouping_b_U(z, g_AEIOU, 97, 252, 0)) goto lab5;
508  goto lab0;
509  lab5:
510  z->c = z->l - v_8;
511  }
512  z->c = z->l - v_4;
513  }
514  slice_to(z, &((SN_local *)z)->s_ch);
515  {
516  int saved_c = z->c;
517  insert_v(z, z->c, z->c, ((SN_local *)z)->s_ch);
518  z->c = saved_c;
519  }
520  break;
521  case 3:
522  slice_from_s(z, 4, s_3);
523  break;
524  case 4:
525  slice_from_s(z, 3, s_4);
526  break;
527  }
528  lab0:
529  z->c = z->l - v_1;
530  }
531  return 1;
532 }
533 
534 static int r_Step_1(struct SN_env * z) {
535  int among_var;
536  z->ket = z->c;
537  if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
538  among_var = find_among_b(z, a_1, 8, 0);
539  if (!among_var) return 0;
540  z->bra = z->c;
541  switch (among_var) {
542  case 1:
543  slice_del(z);
544  break;
545  case 2:
546  {
547  int ret = r_R1(z);
548  if (ret == 0) return ret;
549  }
550  {
551  int v_1 = z->l - z->c;
552  if (z->c <= z->lb || z->p[z->c - 1] != 't') goto lab0;
553  z->c--;
554  if (!r_R1(z)) goto lab0;
555  return 0;
556  lab0:
557  z->c = z->l - v_1;
558  }
559  {
560  int ret = r_C(z);
561  if (ret == 0) return ret;
562  }
563  slice_del(z);
564  break;
565  case 3:
566  {
567  int ret = r_R1(z);
568  if (ret == 0) return ret;
569  }
570  slice_from_s(z, 2, s_5);
571  break;
572  case 4:
573  do {
574  int v_2 = z->l - z->c;
575  {
576  int v_3 = z->l - z->c;
577  if (!(eq_s_b(z, 2, s_6))) goto lab1;
578  if (!r_R1(z)) goto lab1;
579  if (!r_C(z)) goto lab1;
580  z->c = z->l - v_3;
581  }
582  slice_del(z);
583  r_lengthen_V(z);
584  break;
585  lab1:
586  z->c = z->l - v_2;
587  {
588  int v_4 = z->l - z->c;
589  if (!(eq_s_b(z, 2, s_7))) goto lab2;
590  if (!r_R1(z)) goto lab2;
591  if (!r_C(z)) goto lab2;
592  z->c = z->l - v_4;
593  }
594  slice_del(z);
595  break;
596  lab2:
597  z->c = z->l - v_2;
598  {
599  int ret = r_R1(z);
600  if (ret == 0) return ret;
601  }
602  {
603  int ret = r_C(z);
604  if (ret == 0) return ret;
605  }
606  slice_from_s(z, 1, s_8);
607  } while (0);
608  break;
609  case 5:
610  {
611  int ret = r_R1(z);
612  if (ret == 0) return ret;
613  }
614  slice_from_s(z, 2, s_9);
615  break;
616  case 6:
617  {
618  int ret = r_R1(z);
619  if (ret == 0) return ret;
620  }
621  {
622  int ret = r_V(z);
623  if (ret == 0) return ret;
624  }
625  slice_from_s(z, 2, s_10);
626  break;
627  case 7:
628  do {
629  int v_5 = z->l - z->c;
630  if (!(eq_s_b(z, 3, s_11))) goto lab3;
631  if (!r_R1(z)) goto lab3;
632  z->bra = z->c;
633  slice_from_s(z, 4, s_12);
634  break;
635  lab3:
636  z->c = z->l - v_5;
637  if (!(eq_s_b(z, 2, s_13))) goto lab4;
638  slice_del(z);
639  break;
640  lab4:
641  z->c = z->l - v_5;
642  if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab5;
643  z->c--;
644  if (!r_R1(z)) goto lab5;
645  if (!r_C(z)) goto lab5;
646  z->bra = z->c;
647  slice_del(z);
648  break;
649  lab5:
650  z->c = z->l - v_5;
651  do {
652  int v_6 = z->l - z->c;
653  if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab7;
654  z->c--;
655  break;
656  lab7:
657  z->c = z->l - v_6;
658  if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab6;
659  z->c--;
660  } while (0);
661  if (!r_V(z)) goto lab6;
662  slice_del(z);
663  break;
664  lab6:
665  z->c = z->l - v_5;
666  {
667  int ret = r_R1(z);
668  if (ret == 0) return ret;
669  }
670  {
671  int ret = r_C(z);
672  if (ret == 0) return ret;
673  }
674  slice_del(z);
675  {
676  int ret = r_lengthen_V(z);
677  if (ret == 0) return ret;
678  }
679  } while (0);
680  break;
681  case 8:
682  slice_from_s(z, 2, s_14);
683  break;
684  }
685  return 1;
686 }
687 
688 static int r_Step_2(struct SN_env * z) {
689  int among_var;
690  z->ket = z->c;
691  if (z->c - 1 <= z->lb || z->p[z->c - 1] != 101) return 0;
692  among_var = find_among_b(z, a_2, 11, 0);
693  if (!among_var) return 0;
694  z->bra = z->c;
695  switch (among_var) {
696  case 1:
697  do {
698  int v_1 = z->l - z->c;
699  if (!(eq_s_b(z, 2, s_15))) goto lab0;
700  z->bra = z->c;
701  slice_del(z);
702  break;
703  lab0:
704  z->c = z->l - v_1;
705  if (!(eq_s_b(z, 2, s_16))) goto lab1;
706  z->bra = z->c;
707  if (!r_R1(z)) goto lab1;
708  if (!r_C(z)) goto lab1;
709  slice_del(z);
710  break;
711  lab1:
712  z->c = z->l - v_1;
713  if (!(eq_s_b(z, 3, s_17))) goto lab2;
714  z->bra = z->c;
715  slice_from_s(z, 2, s_18);
716  break;
717  lab2:
718  z->c = z->l - v_1;
719  if (z->c <= z->lb || z->p[z->c - 1] != 't') goto lab3;
720  z->c--;
721  z->bra = z->c;
722  if (!r_R1(z)) goto lab3;
723  if (!r_VX(z)) goto lab3;
724  slice_del(z);
725  break;
726  lab3:
727  z->c = z->l - v_1;
728  if (!(eq_s_b(z, 3, s_19))) goto lab4;
729  z->bra = z->c;
730  slice_from_s(z, 3, s_20);
731  break;
732  lab4:
733  z->c = z->l - v_1;
734  if (!(eq_s_b(z, 2, s_21))) goto lab5;
735  z->bra = z->c;
736  slice_from_s(z, 1, s_22);
737  break;
738  lab5:
739  z->c = z->l - v_1;
740  if (z->c <= z->lb || z->p[z->c - 1] != '\'') goto lab6;
741  z->c--;
742  z->bra = z->c;
743  if (!r_R1(z)) goto lab6;
744  slice_del(z);
745  break;
746  lab6:
747  z->c = z->l - v_1;
748  z->bra = z->c;
749  {
750  int ret = r_R1(z);
751  if (ret == 0) return ret;
752  }
753  {
754  int ret = r_C(z);
755  if (ret == 0) return ret;
756  }
757  slice_del(z);
758  } while (0);
759  break;
760  case 2:
761  {
762  int ret = r_R1(z);
763  if (ret == 0) return ret;
764  }
765  slice_from_s(z, 1, s_23);
766  break;
767  case 3:
768  {
769  int ret = r_R1(z);
770  if (ret == 0) return ret;
771  }
772  slice_from_s(z, 4, s_24);
773  break;
774  case 4:
775  {
776  int ret = r_R1(z);
777  if (ret == 0) return ret;
778  }
779  slice_from_s(z, 4, s_25);
780  break;
781  case 5:
782  {
783  int ret = r_R1(z);
784  if (ret == 0) return ret;
785  }
786  {
787  int ret = r_C(z);
788  if (ret == 0) return ret;
789  }
790  slice_del(z);
791  break;
792  case 6:
793  {
794  int ret = r_R1(z);
795  if (ret == 0) return ret;
796  }
797  slice_from_s(z, 1, s_26);
798  break;
799  case 7:
800  {
801  int ret = r_R1(z);
802  if (ret == 0) return ret;
803  }
804  slice_from_s(z, 1, s_27);
805  break;
806  case 8:
807  {
808  int ret = r_R1(z);
809  if (ret == 0) return ret;
810  }
811  slice_from_s(z, 1, s_28);
812  break;
813  case 9:
814  {
815  int ret = r_R1(z);
816  if (ret == 0) return ret;
817  }
818  slice_del(z);
819  insert_s(z, z->c, z->c, 1, s_29);
820  {
821  int ret = r_lengthen_V(z);
822  if (ret == 0) return ret;
823  }
824  break;
825  case 10:
826  {
827  int ret = r_R1(z);
828  if (ret == 0) return ret;
829  }
830  {
831  int ret = r_C(z);
832  if (ret == 0) return ret;
833  }
834  slice_del(z);
835  insert_s(z, z->c, z->c, 2, s_30);
836  {
837  int ret = r_lengthen_V(z);
838  if (ret == 0) return ret;
839  }
840  break;
841  case 11:
842  {
843  int ret = r_R1(z);
844  if (ret == 0) return ret;
845  }
846  {
847  int ret = r_C(z);
848  if (ret == 0) return ret;
849  }
850  slice_from_s(z, 3, s_31);
851  break;
852  }
853  return 1;
854 }
855 
856 static int r_Step_3(struct SN_env * z) {
857  int among_var;
858  z->ket = z->c;
859  if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1316016 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
860  among_var = find_among_b(z, a_3, 14, 0);
861  if (!among_var) return 0;
862  z->bra = z->c;
863  switch (among_var) {
864  case 1:
865  {
866  int ret = r_R1(z);
867  if (ret == 0) return ret;
868  }
869  slice_from_s(z, 3, s_32);
870  break;
871  case 2:
872  {
873  int ret = r_R1(z);
874  if (ret == 0) return ret;
875  }
876  slice_del(z);
877  {
878  int ret = r_lengthen_V(z);
879  if (ret == 0) return ret;
880  }
881  break;
882  case 3:
883  {
884  int ret = r_R1(z);
885  if (ret == 0) return ret;
886  }
887  slice_del(z);
888  break;
889  case 4:
890  slice_from_s(z, 1, s_33);
891  break;
892  case 5:
893  do {
894  int v_1 = z->l - z->c;
895  if (!(eq_s_b(z, 3, s_34))) goto lab0;
896  slice_from_s(z, 2, s_35);
897  break;
898  lab0:
899  z->c = z->l - v_1;
900  {
901  int ret = r_R1(z);
902  if (ret == 0) return ret;
903  }
904  slice_del(z);
905  {
906  int ret = r_lengthen_V(z);
907  if (ret == 0) return ret;
908  }
909  } while (0);
910  break;
911  case 6:
912  {
913  int ret = r_R1(z);
914  if (ret == 0) return ret;
915  }
916  {
917  int ret = r_C(z);
918  if (ret == 0) return ret;
919  }
920  slice_from_s(z, 3, s_36);
921  break;
922  case 7:
923  {
924  int ret = r_R2(z);
925  if (ret == 0) return ret;
926  }
927  slice_del(z);
928  insert_s(z, z->c, z->c, 1, s_37);
929  {
930  int ret = r_lengthen_V(z);
931  if (ret == 0) return ret;
932  }
933  break;
934  case 8:
935  {
936  int ret = r_R2(z);
937  if (ret == 0) return ret;
938  }
939  slice_del(z);
940  insert_s(z, z->c, z->c, 1, s_38);
941  {
942  int ret = r_lengthen_V(z);
943  if (ret == 0) return ret;
944  }
945  break;
946  case 9:
947  {
948  int ret = r_R1(z);
949  if (ret == 0) return ret;
950  }
951  {
952  int ret = r_C(z);
953  if (ret == 0) return ret;
954  }
955  slice_from_s(z, 1, s_39);
956  break;
957  case 10:
958  {
959  int ret = r_R1(z);
960  if (ret == 0) return ret;
961  }
962  {
963  int ret = r_C(z);
964  if (ret == 0) return ret;
965  }
966  slice_from_s(z, 1, s_40);
967  break;
968  }
969  return 1;
970 }
971 
972 static int r_Step_4(struct SN_env * z) {
973  int among_var;
974  do {
975  int v_1 = z->l - z->c;
976  z->ket = z->c;
977  if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1315024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
978  among_var = find_among_b(z, a_4, 16, 0);
979  if (!among_var) goto lab0;
980  z->bra = z->c;
981  switch (among_var) {
982  case 1:
983  if (!r_R1(z)) goto lab0;
984  slice_from_s(z, 2, s_41);
985  break;
986  case 2:
987  if (!r_R1(z)) goto lab0;
988  slice_from_s(z, 3, s_42);
989  break;
990  case 3:
991  if (!r_R1(z)) goto lab0;
992  slice_del(z);
993  break;
994  case 4:
995  if (!r_R1(z)) goto lab0;
996  if (!r_V(z)) goto lab0;
997  slice_from_s(z, 1, s_43);
998  break;
999  case 5:
1000  if (!r_R1(z)) goto lab0;
1001  if (!r_V(z)) goto lab0;
1002  slice_from_s(z, 1, s_44);
1003  break;
1004  case 6:
1005  if (!r_R1(z)) goto lab0;
1006  if (!r_V(z)) goto lab0;
1007  slice_from_s(z, 1, s_45);
1008  break;
1009  case 7:
1010  if (!r_R1(z)) goto lab0;
1011  slice_from_s(z, 4, s_46);
1012  break;
1013  case 8:
1014  if (!r_R1(z)) goto lab0;
1015  slice_from_s(z, 4, s_47);
1016  break;
1017  case 9:
1018  if (!r_R1(z)) goto lab0;
1019  if (!r_C(z)) goto lab0;
1020  slice_del(z);
1021  r_lengthen_V(z);
1022  break;
1023  }
1024  break;
1025  lab0:
1026  z->c = z->l - v_1;
1027  z->ket = z->c;
1028  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1310848 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
1029  if (!find_among_b(z, a_5, 3, 0)) return 0;
1030  z->bra = z->c;
1031  {
1032  int ret = r_R1(z);
1033  if (ret == 0) return ret;
1034  }
1035  {
1036  int v_2 = z->l - z->c;
1037  if (!(eq_s_b(z, 3, s_48))) goto lab1;
1038  if (z->c > z->lb) goto lab1;
1039  return 0;
1040  lab1:
1041  z->c = z->l - v_2;
1042  }
1043  {
1044  int ret = r_C(z);
1045  if (ret == 0) return ret;
1046  }
1047  slice_del(z);
1048  {
1049  int ret = r_lengthen_V(z);
1050  if (ret == 0) return ret;
1051  }
1052  } while (0);
1053  return 1;
1054 }
1055 
1056 static int r_Step_7(struct SN_env * z) {
1057  int among_var;
1058  z->ket = z->c;
1059  if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) return 0;
1060  among_var = find_among_b(z, a_6, 3, 0);
1061  if (!among_var) return 0;
1062  z->bra = z->c;
1063  switch (among_var) {
1064  case 1:
1065  slice_from_s(z, 1, s_49);
1066  break;
1067  case 2:
1068  slice_from_s(z, 1, s_50);
1069  break;
1070  case 3:
1071  slice_from_s(z, 1, s_51);
1072  break;
1073  }
1074  return 1;
1075 }
1076 
1077 static int r_Step_6(struct SN_env * z) {
1078  int among_var;
1079  z->ket = z->c;
1080  if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((98532828 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
1081  among_var = find_among_b(z, a_7, 22, 0);
1082  if (!among_var) return 0;
1083  z->bra = z->c;
1084  switch (among_var) {
1085  case 1:
1086  slice_from_s(z, 1, s_52);
1087  break;
1088  case 2:
1089  slice_from_s(z, 1, s_53);
1090  break;
1091  case 3:
1092  slice_from_s(z, 1, s_54);
1093  break;
1094  case 4:
1095  slice_from_s(z, 1, s_55);
1096  break;
1097  case 5:
1098  slice_from_s(z, 1, s_56);
1099  break;
1100  case 6:
1101  slice_from_s(z, 1, s_57);
1102  break;
1103  case 7:
1104  slice_from_s(z, 1, s_58);
1105  break;
1106  case 8:
1107  slice_from_s(z, 1, s_59);
1108  break;
1109  case 9:
1110  slice_from_s(z, 1, s_60);
1111  break;
1112  case 10:
1113  slice_from_s(z, 1, s_61);
1114  break;
1115  case 11:
1116  {
1117  int v_1 = z->l - z->c;
1118  if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab0;
1119  z->c--;
1120  if (z->c > z->lb) goto lab0;
1121  return 0;
1122  lab0:
1123  z->c = z->l - v_1;
1124  }
1125  slice_from_s(z, 1, s_62);
1126  break;
1127  case 12:
1128  slice_from_s(z, 1, s_63);
1129  break;
1130  case 13:
1131  slice_from_s(z, 1, s_64);
1132  break;
1133  case 14:
1134  slice_from_s(z, 1, s_65);
1135  break;
1136  case 15:
1137  slice_from_s(z, 1, s_66);
1138  break;
1139  case 16:
1140  slice_from_s(z, 1, s_67);
1141  break;
1142  case 17:
1143  slice_from_s(z, 1, s_68);
1144  break;
1145  case 18:
1146  slice_from_s(z, 1, s_69);
1147  break;
1148  case 19:
1149  slice_from_s(z, 1, s_70);
1150  break;
1151  case 20:
1152  slice_from_s(z, 1, s_71);
1153  break;
1154  }
1155  return 1;
1156 }
1157 
1158 static int r_Step_1c(struct SN_env * z) {
1159  int among_var;
1160  z->ket = z->c;
1161  if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) return 0;
1162  among_var = find_among_b(z, a_8, 2, 0);
1163  if (!among_var) return 0;
1164  z->bra = z->c;
1165  {
1166  int ret = r_R1(z);
1167  if (ret == 0) return ret;
1168  }
1169  {
1170  int ret = r_C(z);
1171  if (ret == 0) return ret;
1172  }
1173  switch (among_var) {
1174  case 1:
1175  {
1176  int v_1 = z->l - z->c;
1177  if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab0;
1178  z->c--;
1179  if (!r_R1(z)) goto lab0;
1180  return 0;
1181  lab0:
1182  z->c = z->l - v_1;
1183  }
1184  do {
1185  int v_2 = z->l - z->c;
1186  if (!(eq_s_b(z, 2, s_72))) goto lab1;
1187  if (z->c > z->lb) goto lab1;
1188  slice_from_s(z, 1, s_73);
1189  break;
1190  lab1:
1191  z->c = z->l - v_2;
1192  slice_del(z);
1193  } while (0);
1194  break;
1195  case 2:
1196  {
1197  int v_3 = z->l - z->c;
1198  if (z->c <= z->lb || z->p[z->c - 1] != 'h') goto lab2;
1199  z->c--;
1200  if (!r_R1(z)) goto lab2;
1201  return 0;
1202  lab2:
1203  z->c = z->l - v_3;
1204  }
1205  {
1206  int v_4 = z->l - z->c;
1207  if (!(eq_s_b(z, 2, s_74))) goto lab3;
1208  if (z->c > z->lb) goto lab3;
1209  return 0;
1210  lab3:
1211  z->c = z->l - v_4;
1212  }
1213  slice_del(z);
1214  break;
1215  }
1216  return 1;
1217 }
1218 
1219 static int r_Lose_prefix(struct SN_env * z) {
1220  int among_var;
1221  z->bra = z->c;
1222  if (!(eq_s(z, 2, s_75))) return 0;
1223  z->ket = z->c;
1224  {
1225  int v_1 = z->c;
1226  {
1227  int ret = skip_utf8(z->p, z->c, z->l, 3);
1228  if (ret < 0) return 0;
1229  z->c = ret;
1230  }
1231  z->c = v_1;
1232  }
1233  {
1234  int v_2 = z->c;
1235  while (1) {
1236  int v_3 = z->c;
1237  do {
1238  int v_4 = z->c;
1239  if (!(eq_s(z, 2, s_76))) goto lab1;
1240  break;
1241  lab1:
1242  z->c = v_4;
1243  if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
1244  } while (0);
1245  break;
1246  lab0:
1247  z->c = v_3;
1248  {
1249  int ret = skip_utf8(z->p, z->c, z->l, 1);
1250  if (ret < 0) return 0;
1251  z->c = ret;
1252  }
1253  }
1254  while (1) {
1255  int v_5 = z->c;
1256  do {
1257  int v_6 = z->c;
1258  if (!(eq_s(z, 2, s_77))) goto lab3;
1259  break;
1260  lab3:
1261  z->c = v_6;
1262  if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
1263  } while (0);
1264  continue;
1265  lab2:
1266  z->c = v_5;
1267  break;
1268  }
1269  if (z->c < z->l) goto lab4;
1270  return 0;
1271  lab4:
1272  z->c = v_2;
1273  }
1274  if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((1314818 >> (z->p[z->c + 2] & 0x1f)) & 1)) among_var = -1; else
1275  among_var = find_among(z, a_9, 6, 0);
1276  switch (among_var) {
1277  case 1:
1278  return 0;
1279  break;
1280  }
1281  ((SN_local *)z)->b_GE_removed = true;
1282  slice_del(z);
1283  {
1284  int v_7 = z->c;
1285  z->bra = z->c;
1286  if (z->c + 1 >= z->l || (z->p[z->c + 1] != 171 && z->p[z->c + 1] != 175)) goto lab5;
1287  among_var = find_among(z, a_10, 2, 0);
1288  if (!among_var) goto lab5;
1289  z->ket = z->c;
1290  switch (among_var) {
1291  case 1:
1292  slice_from_s(z, 1, s_78);
1293  break;
1294  case 2:
1295  slice_from_s(z, 1, s_79);
1296  break;
1297  }
1298  lab5:
1299  z->c = v_7;
1300  }
1301  return 1;
1302 }
1303 
1304 static int r_Lose_infix(struct SN_env * z) {
1305  int among_var;
1306  {
1307  int ret = skip_utf8(z->p, z->c, z->l, 1);
1308  if (ret < 0) return 0;
1309  z->c = ret;
1310  }
1311  while (1) {
1312  z->bra = z->c;
1313  if (!(eq_s(z, 2, s_80))) goto lab0;
1314  z->ket = z->c;
1315  break;
1316  lab0:
1317  {
1318  int ret = skip_utf8(z->p, z->c, z->l, 1);
1319  if (ret < 0) return 0;
1320  z->c = ret;
1321  }
1322  }
1323  {
1324  int v_1 = z->c;
1325  {
1326  int ret = skip_utf8(z->p, z->c, z->l, 3);
1327  if (ret < 0) return 0;
1328  z->c = ret;
1329  }
1330  z->c = v_1;
1331  }
1332  {
1333  int v_2 = z->c;
1334  while (1) {
1335  int v_3 = z->c;
1336  do {
1337  int v_4 = z->c;
1338  if (!(eq_s(z, 2, s_81))) goto lab2;
1339  break;
1340  lab2:
1341  z->c = v_4;
1342  if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab1;
1343  } while (0);
1344  break;
1345  lab1:
1346  z->c = v_3;
1347  {
1348  int ret = skip_utf8(z->p, z->c, z->l, 1);
1349  if (ret < 0) return 0;
1350  z->c = ret;
1351  }
1352  }
1353  while (1) {
1354  int v_5 = z->c;
1355  do {
1356  int v_6 = z->c;
1357  if (!(eq_s(z, 2, s_82))) goto lab4;
1358  break;
1359  lab4:
1360  z->c = v_6;
1361  if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab3;
1362  } while (0);
1363  continue;
1364  lab3:
1365  z->c = v_5;
1366  break;
1367  }
1368  if (z->c < z->l) goto lab5;
1369  return 0;
1370  lab5:
1371  z->c = v_2;
1372  }
1373  ((SN_local *)z)->b_GE_removed = true;
1374  slice_del(z);
1375  {
1376  int v_7 = z->c;
1377  z->bra = z->c;
1378  if (z->c + 1 >= z->l || (z->p[z->c + 1] != 171 && z->p[z->c + 1] != 175)) goto lab6;
1379  among_var = find_among(z, a_11, 2, 0);
1380  if (!among_var) goto lab6;
1381  z->ket = z->c;
1382  switch (among_var) {
1383  case 1:
1384  slice_from_s(z, 1, s_83);
1385  break;
1386  case 2:
1387  slice_from_s(z, 1, s_84);
1388  break;
1389  }
1390  lab6:
1391  z->c = v_7;
1392  }
1393  return 1;
1394 }
1395 
1396 static int r_measure(struct SN_env * z) {
1397  ((SN_local *)z)->i_p1 = z->l;
1398  ((SN_local *)z)->i_p2 = z->l;
1399  {
1400  int v_1 = z->c;
1401  while (1) {
1402  if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab1;
1403  continue;
1404  lab1:
1405  break;
1406  }
1407  {
1408  int v_2 = 1;
1409  while (1) {
1410  int v_3 = z->c;
1411  do {
1412  int v_4 = z->c;
1413  if (!(eq_s(z, 2, s_85))) goto lab3;
1414  break;
1415  lab3:
1416  z->c = v_4;
1417  if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
1418  } while (0);
1419  v_2--;
1420  continue;
1421  lab2:
1422  z->c = v_3;
1423  break;
1424  }
1425  if (v_2 > 0) goto lab0;
1426  }
1427  if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
1428  ((SN_local *)z)->i_p1 = z->c;
1429  while (1) {
1430  if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
1431  continue;
1432  lab4:
1433  break;
1434  }
1435  {
1436  int v_5 = 1;
1437  while (1) {
1438  int v_6 = z->c;
1439  do {
1440  int v_7 = z->c;
1441  if (!(eq_s(z, 2, s_86))) goto lab6;
1442  break;
1443  lab6:
1444  z->c = v_7;
1445  if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab5;
1446  } while (0);
1447  v_5--;
1448  continue;
1449  lab5:
1450  z->c = v_6;
1451  break;
1452  }
1453  if (v_5 > 0) goto lab0;
1454  }
1455  if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
1456  ((SN_local *)z)->i_p2 = z->c;
1457  lab0:
1458  z->c = v_1;
1459  }
1460  return 1;
1461 }
1462 
1464  bool b_stemmed;
1465  b_stemmed = false;
1466  {
1467  int ret = r_measure(z);
1468  if (ret == 0) return ret;
1469  }
1470  z->lb = z->c; z->c = z->l;
1471  {
1472  int v_1 = z->l - z->c;
1473  if (!r_Step_1(z)) goto lab0;
1474  b_stemmed = true;
1475  lab0:
1476  z->c = z->l - v_1;
1477  }
1478  {
1479  int v_2 = z->l - z->c;
1480  if (!r_Step_2(z)) goto lab1;
1481  b_stemmed = true;
1482  lab1:
1483  z->c = z->l - v_2;
1484  }
1485  {
1486  int v_3 = z->l - z->c;
1487  if (!r_Step_3(z)) goto lab2;
1488  b_stemmed = true;
1489  lab2:
1490  z->c = z->l - v_3;
1491  }
1492  {
1493  int v_4 = z->l - z->c;
1494  if (!r_Step_4(z)) goto lab3;
1495  b_stemmed = true;
1496  lab3:
1497  z->c = z->l - v_4;
1498  }
1499  z->c = z->lb;
1500  ((SN_local *)z)->b_GE_removed = false;
1501  {
1502  int v_5 = z->c;
1503  {
1504  int v_6 = z->c;
1505  if (!r_Lose_prefix(z)) goto lab4;
1506  z->c = v_6;
1507  r_measure(z);
1508  }
1509  lab4:
1510  z->c = v_5;
1511  }
1512  z->lb = z->c; z->c = z->l;
1513  {
1514  int v_7 = z->l - z->c;
1515  if (!((SN_local *)z)->b_GE_removed) goto lab5;
1516  b_stemmed = true;
1517  if (!r_Step_1c(z)) goto lab5;
1518  lab5:
1519  z->c = z->l - v_7;
1520  }
1521  z->c = z->lb;
1522  ((SN_local *)z)->b_GE_removed = false;
1523  {
1524  int v_8 = z->c;
1525  {
1526  int v_9 = z->c;
1527  if (!r_Lose_infix(z)) goto lab6;
1528  z->c = v_9;
1529  r_measure(z);
1530  }
1531  lab6:
1532  z->c = v_8;
1533  }
1534  z->lb = z->c; z->c = z->l;
1535  {
1536  int v_10 = z->l - z->c;
1537  if (!((SN_local *)z)->b_GE_removed) goto lab7;
1538  b_stemmed = true;
1539  if (!r_Step_1c(z)) goto lab7;
1540  lab7:
1541  z->c = z->l - v_10;
1542  }
1543  z->c = z->lb;
1544  z->lb = z->c; z->c = z->l;
1545  {
1546  int v_11 = z->l - z->c;
1547  if (!r_Step_7(z)) goto lab8;
1548  b_stemmed = true;
1549  lab8:
1550  z->c = z->l - v_11;
1551  }
1552  {
1553  int v_12 = z->l - z->c;
1554  if (!b_stemmed) goto lab9;
1555  if (!r_Step_6(z)) goto lab9;
1556  lab9:
1557  z->c = z->l - v_12;
1558  }
1559  z->c = z->lb;
1560  return 1;
1561 }
unsigned char symbol
Definition: api.h:4
static int stem(struct SN_env *z)
Definition: dutch.cc:1463
static const symbol s_7_7[2]
Definition: dutch.cc:297
static const symbol s_3_8[3]
Definition: dutch.cc:214
static const symbol s_4_4[6]
Definition: dutch.cc:241
static const symbol s_25[]
Definition: dutch.cc:54
static const symbol s_2[]
Definition: dutch.cc:31
static const struct among a_1[8]
Definition: dutch.cc:170
static const symbol s_1_7[3]
Definition: dutch.cc:169
static const symbol s_60[]
Definition: dutch.cc:89
static const symbol s_0_4[2]
Definition: dutch.cc:121
static const symbol s_55[]
Definition: dutch.cc:84
static const symbol s_0_11[3]
Definition: dutch.cc:128
static const symbol s_7_3[2]
Definition: dutch.cc:293
static const symbol s_7_11[2]
Definition: dutch.cc:301
static const struct among a_6[3]
Definition: dutch.cc:284
static const symbol s_52[]
Definition: dutch.cc:81
static const symbol s_72[]
Definition: dutch.cc:101
static const symbol s_4_7[4]
Definition: dutch.cc:244
static const symbol s_11_1[2]
Definition: dutch.cc:366
static const symbol s_2_5[2]
Definition: dutch.cc:186
static const symbol s_0_5[2]
Definition: dutch.cc:122
static const symbol s_4[]
Definition: dutch.cc:33
static const symbol s_81[]
Definition: dutch.cc:110
static const symbol s_48[]
Definition: dutch.cc:77
static const symbol s_3_2[3]
Definition: dutch.cc:208
static const symbol s_8_1[1]
Definition: dutch.cc:338
static const symbol s_50[]
Definition: dutch.cc:79
static const symbol s_61[]
Definition: dutch.cc:90
static const symbol s_1_6[3]
Definition: dutch.cc:168
static const symbol s_0_13[2]
Definition: dutch.cc:130
static const symbol s_42[]
Definition: dutch.cc:71
static const symbol s_65[]
Definition: dutch.cc:94
static const symbol s_1_5[3]
Definition: dutch.cc:167
static const symbol s_4_6[4]
Definition: dutch.cc:243
static const symbol s_30[]
Definition: dutch.cc:59
static const symbol s_2_9[2]
Definition: dutch.cc:190
static const symbol s_38[]
Definition: dutch.cc:67
static int r_Step_3(struct SN_env *z)
Definition: dutch.cc:856
static const symbol s_0_8[2]
Definition: dutch.cc:125
static const symbol s_7_16[1]
Definition: dutch.cc:306
static const symbol s_68[]
Definition: dutch.cc:97
static int r_VX(struct SN_env *z)
Definition: dutch.cc:406
static const symbol s_75[]
Definition: dutch.cc:104
static const symbol s_0_0[1]
Definition: dutch.cc:117
static const symbol s_9_4[4]
Definition: dutch.cc:347
static const symbol s_4_13[6]
Definition: dutch.cc:250
static const symbol s_5_0[2]
Definition: dutch.cc:272
static const symbol s_4_15[6]
Definition: dutch.cc:252
static const symbol s_0_2[1]
Definition: dutch.cc:119
static const symbol s_4_2[4]
Definition: dutch.cc:239
static const symbol s_29[]
Definition: dutch.cc:58
static int r_Lose_infix(struct SN_env *z)
Definition: dutch.cc:1304
static const struct among a_9[6]
Definition: dutch.cc:349
static const symbol s_53[]
Definition: dutch.cc:82
static const symbol s_82[]
Definition: dutch.cc:111
static const symbol s_7_8[2]
Definition: dutch.cc:298
static const symbol s_2_0[2]
Definition: dutch.cc:181
static const symbol s_7_9[2]
Definition: dutch.cc:299
static const symbol s_27[]
Definition: dutch.cc:56
static const symbol s_1_3[2]
Definition: dutch.cc:165
static const symbol s_0_12[3]
Definition: dutch.cc:129
static const symbol s_4_9[6]
Definition: dutch.cc:246
static const symbol s_3_0[4]
Definition: dutch.cc:206
static const symbol s_7_5[2]
Definition: dutch.cc:295
static const symbol s_51[]
Definition: dutch.cc:80
static const symbol s_6[]
Definition: dutch.cc:35
static const symbol s_0_15[2]
Definition: dutch.cc:132
static const symbol s_21[]
Definition: dutch.cc:50
static const symbol s_76[]
Definition: dutch.cc:105
static const symbol s_3[]
Definition: dutch.cc:32
static int r_Lose_prefix(struct SN_env *z)
Definition: dutch.cc:1219
static const symbol s_3_12[3]
Definition: dutch.cc:218
static const symbol s_7_6[2]
Definition: dutch.cc:296
static const struct among a_4[16]
Definition: dutch.cc:253
static const symbol s_7_20[1]
Definition: dutch.cc:310
static const symbol s_37[]
Definition: dutch.cc:66
static const symbol s_0_17[2]
Definition: dutch.cc:134
static const symbol s_7_12[2]
Definition: dutch.cc:302
static const symbol s_0_7[2]
Definition: dutch.cc:124
static const symbol s_86[]
Definition: dutch.cc:115
static const symbol s_3_4[4]
Definition: dutch.cc:210
Xapian::Internal::Snowball::Dutch::SN_local SN_local
Definition: dutch.cc:10
static const symbol s_7_0[2]
Definition: dutch.cc:290
static const symbol s_49[]
Definition: dutch.cc:78
static const symbol s_3_9[4]
Definition: dutch.cc:215
static const symbol s_0_16[2]
Definition: dutch.cc:133
static int r_R2(struct SN_env *z)
Definition: dutch.cc:386
static const symbol s_7[]
Definition: dutch.cc:36
static const symbol s_59[]
Definition: dutch.cc:88
static const symbol s_32[]
Definition: dutch.cc:61
static const symbol s_47[]
Definition: dutch.cc:76
static const symbol s_13[]
Definition: dutch.cc:42
static const symbol s_2_4[5]
Definition: dutch.cc:185
static int r_lengthen_V(struct SN_env *z)
Definition: dutch.cc:443
static int r_Step_1(struct SN_env *z)
Definition: dutch.cc:534
static const symbol s_84[]
Definition: dutch.cc:113
static const symbol s_3_1[3]
Definition: dutch.cc:207
static const symbol s_7_13[2]
Definition: dutch.cc:303
static const symbol s_1_1[2]
Definition: dutch.cc:163
static const symbol s_3_10[4]
Definition: dutch.cc:216
static const symbol s_83[]
Definition: dutch.cc:112
static const symbol s_20[]
Definition: dutch.cc:49
static const struct among a_11[2]
Definition: dutch.cc:367
static const symbol s_0_18[2]
Definition: dutch.cc:135
static const symbol s_3_6[4]
Definition: dutch.cc:212
static const symbol s_9_3[3]
Definition: dutch.cc:346
static const symbol s_35[]
Definition: dutch.cc:64
static const struct among a_10[2]
Definition: dutch.cc:360
static const symbol s_70[]
Definition: dutch.cc:99
static const symbol s_7_14[2]
Definition: dutch.cc:304
static const symbol s_19[]
Definition: dutch.cc:48
static const symbol s_23[]
Definition: dutch.cc:52
static const symbol s_10_1[2]
Definition: dutch.cc:359
static const symbol s_73[]
Definition: dutch.cc:102
static const unsigned char g_v_WX[]
Definition: dutch.cc:380
static const struct among a_0[21]
Definition: dutch.cc:138
static const symbol s_71[]
Definition: dutch.cc:100
static const symbol s_0_20[2]
Definition: dutch.cc:137
static const symbol s_58[]
Definition: dutch.cc:87
static const symbol s_3_11[5]
Definition: dutch.cc:217
static const symbol s_24[]
Definition: dutch.cc:53
static const symbol s_7_19[2]
Definition: dutch.cc:309
static const symbol s_7_1[2]
Definition: dutch.cc:291
static int r_Step_1c(struct SN_env *z)
Definition: dutch.cc:1158
static const symbol s_3_3[4]
Definition: dutch.cc:209
static const symbol s_63[]
Definition: dutch.cc:92
static const symbol s_6_2[2]
Definition: dutch.cc:283
static const symbol s_80[]
Definition: dutch.cc:109
static const symbol s_69[]
Definition: dutch.cc:98
static const symbol s_7_21[2]
Definition: dutch.cc:311
static const symbol s_9_2[3]
Definition: dutch.cc:345
static int r_R1(struct SN_env *z)
Definition: dutch.cc:382
static const symbol s_1_2[1]
Definition: dutch.cc:164
static const symbol s_4_3[6]
Definition: dutch.cc:240
static const symbol s_16[]
Definition: dutch.cc:45
static const symbol s_14[]
Definition: dutch.cc:43
static const symbol s_3_5[3]
Definition: dutch.cc:211
static const struct among a_7[22]
Definition: dutch.cc:312
static const symbol s_22[]
Definition: dutch.cc:51
static const symbol s_4_14[8]
Definition: dutch.cc:251
static const struct among a_5[3]
Definition: dutch.cc:275
static const symbol s_4_12[4]
Definition: dutch.cc:249
static const symbol s_7_2[2]
Definition: dutch.cc:292
static const symbol s_45[]
Definition: dutch.cc:74
static const symbol s_2_3[2]
Definition: dutch.cc:184
static const symbol s_2_7[2]
Definition: dutch.cc:188
static const symbol s_10[]
Definition: dutch.cc:39
static const symbol s_5_2[4]
Definition: dutch.cc:274
static const symbol s_7_15[2]
Definition: dutch.cc:305
static const symbol s_1[]
Definition: dutch.cc:30
static const symbol s_7_4[2]
Definition: dutch.cc:294
static const symbol s_66[]
Definition: dutch.cc:95
static const symbol s_2_10[4]
Definition: dutch.cc:191
static const symbol s_4_5[4]
Definition: dutch.cc:242
static const symbol s_39[]
Definition: dutch.cc:68
static const struct among a_2[11]
Definition: dutch.cc:192
static int r_measure(struct SN_env *z)
Definition: dutch.cc:1396
static const symbol s_77[]
Definition: dutch.cc:106
static const symbol s_1_4[2]
Definition: dutch.cc:166
static const symbol s_2_6[3]
Definition: dutch.cc:187
static int r_V(struct SN_env *z)
Definition: dutch.cc:390
static const symbol s_31[]
Definition: dutch.cc:60
static const symbol s_9_5[4]
Definition: dutch.cc:348
static const symbol s_74[]
Definition: dutch.cc:103
static const unsigned char g_E[]
Definition: dutch.cc:372
static const symbol s_0_14[2]
Definition: dutch.cc:131
static const symbol s_11[]
Definition: dutch.cc:40
static const symbol s_12[]
Definition: dutch.cc:41
static const symbol s_6_1[2]
Definition: dutch.cc:282
static const symbol s_36[]
Definition: dutch.cc:65
static const symbol s_67[]
Definition: dutch.cc:96
static const symbol s_1_0[3]
Definition: dutch.cc:162
static const symbol s_0_3[1]
Definition: dutch.cc:120
static const symbol s_0_6[2]
Definition: dutch.cc:123
static const symbol s_0_1[1]
Definition: dutch.cc:118
static const symbol s_79[]
Definition: dutch.cc:108
static const symbol s_10_0[2]
Definition: dutch.cc:358
static const symbol s_33[]
Definition: dutch.cc:62
static const symbol s_57[]
Definition: dutch.cc:86
static const symbol s_41[]
Definition: dutch.cc:70
static int r_Step_4(struct SN_env *z)
Definition: dutch.cc:972
static int r_Step_2(struct SN_env *z)
Definition: dutch.cc:688
static const unsigned char g_AEIOU[]
Definition: dutch.cc:376
static const symbol s_9_1[3]
Definition: dutch.cc:344
static const symbol s_4_8[4]
Definition: dutch.cc:245
static const symbol s_85[]
Definition: dutch.cc:114
static const symbol s_64[]
Definition: dutch.cc:93
static const symbol s_3_7[4]
Definition: dutch.cc:213
static const symbol s_18[]
Definition: dutch.cc:47
static const symbol s_17[]
Definition: dutch.cc:46
static int r_C(struct SN_env *z)
Definition: dutch.cc:427
static const symbol s_3_13[3]
Definition: dutch.cc:219
static const symbol s_4_11[6]
Definition: dutch.cc:248
static const symbol s_40[]
Definition: dutch.cc:69
static const symbol s_44[]
Definition: dutch.cc:73
static const symbol s_0_10[2]
Definition: dutch.cc:127
static const symbol s_54[]
Definition: dutch.cc:83
static const symbol s_2_8[2]
Definition: dutch.cc:189
static const symbol s_43[]
Definition: dutch.cc:72
static const symbol s_4_10[8]
Definition: dutch.cc:247
static const symbol s_7_18[2]
Definition: dutch.cc:308
static const symbol s_28[]
Definition: dutch.cc:57
static const symbol s_46[]
Definition: dutch.cc:75
static const symbol s_2_1[2]
Definition: dutch.cc:182
static int r_Step_6(struct SN_env *z)
Definition: dutch.cc:1077
static const symbol s_62[]
Definition: dutch.cc:91
static const unsigned char g_v[]
Definition: dutch.cc:378
static const symbol s_7_10[2]
Definition: dutch.cc:300
static const symbol s_56[]
Definition: dutch.cc:85
static const symbol s_78[]
Definition: dutch.cc:107
static const symbol s_6_0[2]
Definition: dutch.cc:281
static const symbol s_8[]
Definition: dutch.cc:37
static const symbol s_9[]
Definition: dutch.cc:38
static const symbol s_0_9[2]
Definition: dutch.cc:126
static const struct among a_3[14]
Definition: dutch.cc:220
static const symbol s_4_1[5]
Definition: dutch.cc:238
static int r_Step_7(struct SN_env *z)
Definition: dutch.cc:1056
static const symbol s_5[]
Definition: dutch.cc:34
static const symbol s_8_0[1]
Definition: dutch.cc:337
static const symbol s_15[]
Definition: dutch.cc:44
static const symbol s_11_0[2]
Definition: dutch.cc:365
static const symbol s_26[]
Definition: dutch.cc:55
static const symbol s_0_19[2]
Definition: dutch.cc:136
static const symbol s_4_0[3]
Definition: dutch.cc:237
static const symbol s_2_2[5]
Definition: dutch.cc:183
static const symbol s_5_1[4]
Definition: dutch.cc:273
static const symbol s_7_17[2]
Definition: dutch.cc:307
static const symbol s_0[]
Definition: dutch.cc:29
static const unsigned char g_AIOU[]
Definition: dutch.cc:374
static const struct among a_8[2]
Definition: dutch.cc:339
static const symbol s_34[]
Definition: dutch.cc:63
int out_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.cc:164
int in_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.cc:140
SNOWBALL_ERR insert_s(struct SN_env *z, int bra, int ket, int s_size, const symbol *s)
Definition: utilities.cc:471
SNOWBALL_ERR slice_from_s(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.cc:439
SNOWBALL_ERR slice_to(struct SN_env *z, symbol **p)
Definition: utilities.cc:485
int eq_s(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.cc:238
SNOWBALL_ERR insert_v(struct SN_env *z, int bra, int ket, const symbol *p)
Definition: utilities.cc:481
int in_grouping_b_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.cc:152
int skip_b_utf8(const symbol *p, int c, int limit, int n)
Definition: utilities.cc:75
int eq_s_b(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.cc:243
SNOWBALL_ERR slice_del(struct SN_env *z)
Definition: utilities.cc:450
int out_grouping_b_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.cc:176
int skip_utf8(const symbol *p, int c, int limit, int n)
Definition: utilities.cc:50
int find_among_b(struct SN_env *z, const struct among *v, int v_size, int(*)(struct SN_env *))
Definition: utilities.cc:322
int find_among(struct SN_env *z, const struct among *v, int v_size, int(*)(struct SN_env *))
Definition: utilities.cc:256
Definition: api.h:15
int lb
Definition: api.h:17
symbol * p
Definition: api.h:16
int ket
Definition: api.h:17
int c
Definition: api.h:17
int bra
Definition: api.h:17
int l
Definition: api.h:17
Definition: header.h:256