Line data Source code
1 : /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2 :
3 : #include "header.h"
4 :
5 : #ifdef __cplusplus
6 : extern "C" {
7 : #endif
8 : extern int porter_UTF_8_stem(struct SN_env * z);
9 : #ifdef __cplusplus
10 : }
11 : #endif
12 : static int r_Step_5b(struct SN_env * z);
13 : static int r_Step_5a(struct SN_env * z);
14 : static int r_Step_4(struct SN_env * z);
15 : static int r_Step_3(struct SN_env * z);
16 : static int r_Step_2(struct SN_env * z);
17 : static int r_Step_1c(struct SN_env * z);
18 : static int r_Step_1b(struct SN_env * z);
19 : static int r_Step_1a(struct SN_env * z);
20 : static int r_R2(struct SN_env * z);
21 : static int r_R1(struct SN_env * z);
22 : static int r_shortv(struct SN_env * z);
23 : #ifdef __cplusplus
24 : extern "C" {
25 : #endif
26 :
27 :
28 : extern struct SN_env * porter_UTF_8_create_env(void);
29 : extern void porter_UTF_8_close_env(struct SN_env * z);
30 :
31 :
32 : #ifdef __cplusplus
33 : }
34 : #endif
35 : static const symbol s_0_0[1] = { 's' };
36 : static const symbol s_0_1[3] = { 'i', 'e', 's' };
37 : static const symbol s_0_2[4] = { 's', 's', 'e', 's' };
38 : static const symbol s_0_3[2] = { 's', 's' };
39 :
40 : static const struct among a_0[4] =
41 : {
42 : { 1, s_0_0, -1, 3, 0},
43 : { 3, s_0_1, 0, 2, 0},
44 : { 4, s_0_2, 0, 1, 0},
45 : { 2, s_0_3, 0, -1, 0}
46 : };
47 :
48 : static const symbol s_1_1[2] = { 'b', 'b' };
49 : static const symbol s_1_2[2] = { 'd', 'd' };
50 : static const symbol s_1_3[2] = { 'f', 'f' };
51 : static const symbol s_1_4[2] = { 'g', 'g' };
52 : static const symbol s_1_5[2] = { 'b', 'l' };
53 : static const symbol s_1_6[2] = { 'm', 'm' };
54 : static const symbol s_1_7[2] = { 'n', 'n' };
55 : static const symbol s_1_8[2] = { 'p', 'p' };
56 : static const symbol s_1_9[2] = { 'r', 'r' };
57 : static const symbol s_1_10[2] = { 'a', 't' };
58 : static const symbol s_1_11[2] = { 't', 't' };
59 : static const symbol s_1_12[2] = { 'i', 'z' };
60 :
61 : static const struct among a_1[13] =
62 : {
63 : { 0, 0, -1, 3, 0},
64 : { 2, s_1_1, 0, 2, 0},
65 : { 2, s_1_2, 0, 2, 0},
66 : { 2, s_1_3, 0, 2, 0},
67 : { 2, s_1_4, 0, 2, 0},
68 : { 2, s_1_5, 0, 1, 0},
69 : { 2, s_1_6, 0, 2, 0},
70 : { 2, s_1_7, 0, 2, 0},
71 : { 2, s_1_8, 0, 2, 0},
72 : { 2, s_1_9, 0, 2, 0},
73 : { 2, s_1_10, 0, 1, 0},
74 : { 2, s_1_11, 0, 2, 0},
75 : { 2, s_1_12, 0, 1, 0}
76 : };
77 :
78 : static const symbol s_2_0[2] = { 'e', 'd' };
79 : static const symbol s_2_1[3] = { 'e', 'e', 'd' };
80 : static const symbol s_2_2[3] = { 'i', 'n', 'g' };
81 :
82 : static const struct among a_2[3] =
83 : {
84 : { 2, s_2_0, -1, 2, 0},
85 : { 3, s_2_1, 0, 1, 0},
86 : { 3, s_2_2, -1, 2, 0}
87 : };
88 :
89 : static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' };
90 : static const symbol s_3_1[4] = { 'e', 'n', 'c', 'i' };
91 : static const symbol s_3_2[4] = { 'a', 'b', 'l', 'i' };
92 : static const symbol s_3_3[3] = { 'e', 'l', 'i' };
93 : static const symbol s_3_4[4] = { 'a', 'l', 'l', 'i' };
94 : static const symbol s_3_5[5] = { 'o', 'u', 's', 'l', 'i' };
95 : static const symbol s_3_6[5] = { 'e', 'n', 't', 'l', 'i' };
96 : static const symbol s_3_7[5] = { 'a', 'l', 'i', 't', 'i' };
97 : static const symbol s_3_8[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
98 : static const symbol s_3_9[5] = { 'i', 'v', 'i', 't', 'i' };
99 : static const symbol s_3_10[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
100 : static const symbol s_3_11[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
101 : static const symbol s_3_12[5] = { 'a', 'l', 'i', 's', 'm' };
102 : static const symbol s_3_13[5] = { 'a', 't', 'i', 'o', 'n' };
103 : static const symbol s_3_14[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
104 : static const symbol s_3_15[4] = { 'i', 'z', 'e', 'r' };
105 : static const symbol s_3_16[4] = { 'a', 't', 'o', 'r' };
106 : static const symbol s_3_17[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
107 : static const symbol s_3_18[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
108 : static const symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
109 :
110 : static const struct among a_3[20] =
111 : {
112 : { 4, s_3_0, -1, 3, 0},
113 : { 4, s_3_1, -1, 2, 0},
114 : { 4, s_3_2, -1, 4, 0},
115 : { 3, s_3_3, -1, 6, 0},
116 : { 4, s_3_4, -1, 9, 0},
117 : { 5, s_3_5, -1, 11, 0},
118 : { 5, s_3_6, -1, 5, 0},
119 : { 5, s_3_7, -1, 9, 0},
120 : { 6, s_3_8, -1, 13, 0},
121 : { 5, s_3_9, -1, 12, 0},
122 : { 6, s_3_10, -1, 1, 0},
123 : { 7, s_3_11, 10, 8, 0},
124 : { 5, s_3_12, -1, 9, 0},
125 : { 5, s_3_13, -1, 8, 0},
126 : { 7, s_3_14, 13, 7, 0},
127 : { 4, s_3_15, -1, 7, 0},
128 : { 4, s_3_16, -1, 8, 0},
129 : { 7, s_3_17, -1, 12, 0},
130 : { 7, s_3_18, -1, 10, 0},
131 : { 7, s_3_19, -1, 11, 0}
132 : };
133 :
134 : static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
135 : static const symbol s_4_1[5] = { 'a', 't', 'i', 'v', 'e' };
136 : static const symbol s_4_2[5] = { 'a', 'l', 'i', 'z', 'e' };
137 : static const symbol s_4_3[5] = { 'i', 'c', 'i', 't', 'i' };
138 : static const symbol s_4_4[4] = { 'i', 'c', 'a', 'l' };
139 : static const symbol s_4_5[3] = { 'f', 'u', 'l' };
140 : static const symbol s_4_6[4] = { 'n', 'e', 's', 's' };
141 :
142 : static const struct among a_4[7] =
143 : {
144 : { 5, s_4_0, -1, 2, 0},
145 : { 5, s_4_1, -1, 3, 0},
146 : { 5, s_4_2, -1, 1, 0},
147 : { 5, s_4_3, -1, 2, 0},
148 : { 4, s_4_4, -1, 2, 0},
149 : { 3, s_4_5, -1, 3, 0},
150 : { 4, s_4_6, -1, 3, 0}
151 : };
152 :
153 : static const symbol s_5_0[2] = { 'i', 'c' };
154 : static const symbol s_5_1[4] = { 'a', 'n', 'c', 'e' };
155 : static const symbol s_5_2[4] = { 'e', 'n', 'c', 'e' };
156 : static const symbol s_5_3[4] = { 'a', 'b', 'l', 'e' };
157 : static const symbol s_5_4[4] = { 'i', 'b', 'l', 'e' };
158 : static const symbol s_5_5[3] = { 'a', 't', 'e' };
159 : static const symbol s_5_6[3] = { 'i', 'v', 'e' };
160 : static const symbol s_5_7[3] = { 'i', 'z', 'e' };
161 : static const symbol s_5_8[3] = { 'i', 't', 'i' };
162 : static const symbol s_5_9[2] = { 'a', 'l' };
163 : static const symbol s_5_10[3] = { 'i', 's', 'm' };
164 : static const symbol s_5_11[3] = { 'i', 'o', 'n' };
165 : static const symbol s_5_12[2] = { 'e', 'r' };
166 : static const symbol s_5_13[3] = { 'o', 'u', 's' };
167 : static const symbol s_5_14[3] = { 'a', 'n', 't' };
168 : static const symbol s_5_15[3] = { 'e', 'n', 't' };
169 : static const symbol s_5_16[4] = { 'm', 'e', 'n', 't' };
170 : static const symbol s_5_17[5] = { 'e', 'm', 'e', 'n', 't' };
171 : static const symbol s_5_18[2] = { 'o', 'u' };
172 :
173 : static const struct among a_5[19] =
174 : {
175 : { 2, s_5_0, -1, 1, 0},
176 : { 4, s_5_1, -1, 1, 0},
177 : { 4, s_5_2, -1, 1, 0},
178 : { 4, s_5_3, -1, 1, 0},
179 : { 4, s_5_4, -1, 1, 0},
180 : { 3, s_5_5, -1, 1, 0},
181 : { 3, s_5_6, -1, 1, 0},
182 : { 3, s_5_7, -1, 1, 0},
183 : { 3, s_5_8, -1, 1, 0},
184 : { 2, s_5_9, -1, 1, 0},
185 : { 3, s_5_10, -1, 1, 0},
186 : { 3, s_5_11, -1, 2, 0},
187 : { 2, s_5_12, -1, 1, 0},
188 : { 3, s_5_13, -1, 1, 0},
189 : { 3, s_5_14, -1, 1, 0},
190 : { 3, s_5_15, -1, 1, 0},
191 : { 4, s_5_16, 15, 1, 0},
192 : { 5, s_5_17, 16, 1, 0},
193 : { 2, s_5_18, -1, 1, 0}
194 : };
195 :
196 : static const unsigned char g_v[] = { 17, 65, 16, 1 };
197 :
198 : static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
199 :
200 : static const symbol s_0[] = { 's', 's' };
201 : static const symbol s_1[] = { 'i' };
202 : static const symbol s_2[] = { 'e', 'e' };
203 : static const symbol s_3[] = { 'e' };
204 : static const symbol s_4[] = { 'e' };
205 : static const symbol s_5[] = { 'i' };
206 : static const symbol s_6[] = { 't', 'i', 'o', 'n' };
207 : static const symbol s_7[] = { 'e', 'n', 'c', 'e' };
208 : static const symbol s_8[] = { 'a', 'n', 'c', 'e' };
209 : static const symbol s_9[] = { 'a', 'b', 'l', 'e' };
210 : static const symbol s_10[] = { 'e', 'n', 't' };
211 : static const symbol s_11[] = { 'e' };
212 : static const symbol s_12[] = { 'i', 'z', 'e' };
213 : static const symbol s_13[] = { 'a', 't', 'e' };
214 : static const symbol s_14[] = { 'a', 'l' };
215 : static const symbol s_15[] = { 'f', 'u', 'l' };
216 : static const symbol s_16[] = { 'o', 'u', 's' };
217 : static const symbol s_17[] = { 'i', 'v', 'e' };
218 : static const symbol s_18[] = { 'b', 'l', 'e' };
219 : static const symbol s_19[] = { 'a', 'l' };
220 : static const symbol s_20[] = { 'i', 'c' };
221 : static const symbol s_21[] = { 'Y' };
222 : static const symbol s_22[] = { 'Y' };
223 : static const symbol s_23[] = { 'y' };
224 :
225 0 : static int r_shortv(struct SN_env * z) {
226 0 : if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) return 0;
227 0 : if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
228 0 : if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
229 0 : return 1;
230 : }
231 :
232 0 : static int r_R1(struct SN_env * z) {
233 0 : return z->I[1] <= z->c;
234 : }
235 :
236 0 : static int r_R2(struct SN_env * z) {
237 0 : return z->I[0] <= z->c;
238 : }
239 :
240 0 : static int r_Step_1a(struct SN_env * z) {
241 : int among_var;
242 0 : z->ket = z->c;
243 0 : if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
244 0 : among_var = find_among_b(z, a_0, 4);
245 0 : if (!among_var) return 0;
246 0 : z->bra = z->c;
247 0 : switch (among_var) {
248 0 : case 1:
249 0 : { int ret = slice_from_s(z, 2, s_0);
250 0 : if (ret < 0) return ret;
251 : }
252 0 : break;
253 0 : case 2:
254 0 : { int ret = slice_from_s(z, 1, s_1);
255 0 : if (ret < 0) return ret;
256 : }
257 0 : break;
258 0 : case 3:
259 0 : { int ret = slice_del(z);
260 0 : if (ret < 0) return ret;
261 : }
262 0 : break;
263 : }
264 0 : return 1;
265 : }
266 :
267 0 : static int r_Step_1b(struct SN_env * z) {
268 : int among_var;
269 0 : z->ket = z->c;
270 0 : if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
271 0 : among_var = find_among_b(z, a_2, 3);
272 0 : if (!among_var) return 0;
273 0 : z->bra = z->c;
274 0 : switch (among_var) {
275 0 : case 1:
276 0 : { int ret = r_R1(z);
277 0 : if (ret <= 0) return ret;
278 : }
279 0 : { int ret = slice_from_s(z, 2, s_2);
280 0 : if (ret < 0) return ret;
281 : }
282 0 : break;
283 0 : case 2:
284 0 : { int m_test1 = z->l - z->c;
285 :
286 : {
287 0 : int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
288 0 : if (ret < 0) return 0;
289 0 : z->c -= ret;
290 : }
291 0 : z->c = z->l - m_test1;
292 : }
293 0 : { int ret = slice_del(z);
294 0 : if (ret < 0) return ret;
295 : }
296 0 : { int m_test2 = z->l - z->c;
297 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
298 0 : among_var = find_among_b(z, a_1, 13);
299 0 : z->c = z->l - m_test2;
300 : }
301 : switch (among_var) {
302 0 : case 1:
303 : { int ret;
304 0 : { int saved_c = z->c;
305 0 : ret = insert_s(z, z->c, z->c, 1, s_3);
306 0 : z->c = saved_c;
307 : }
308 0 : if (ret < 0) return ret;
309 : }
310 0 : break;
311 0 : case 2:
312 0 : z->ket = z->c;
313 0 : { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
314 0 : if (ret < 0) return 0;
315 0 : z->c = ret;
316 : }
317 0 : z->bra = z->c;
318 0 : { int ret = slice_del(z);
319 0 : if (ret < 0) return ret;
320 : }
321 0 : break;
322 0 : case 3:
323 0 : if (z->c != z->I[1]) return 0;
324 0 : { int m_test3 = z->l - z->c;
325 0 : { int ret = r_shortv(z);
326 0 : if (ret <= 0) return ret;
327 : }
328 0 : z->c = z->l - m_test3;
329 : }
330 : { int ret;
331 0 : { int saved_c = z->c;
332 0 : ret = insert_s(z, z->c, z->c, 1, s_4);
333 0 : z->c = saved_c;
334 : }
335 0 : if (ret < 0) return ret;
336 : }
337 0 : break;
338 : }
339 0 : break;
340 : }
341 0 : return 1;
342 : }
343 :
344 0 : static int r_Step_1c(struct SN_env * z) {
345 0 : z->ket = z->c;
346 0 : { int m1 = z->l - z->c; (void)m1;
347 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
348 0 : z->c--;
349 0 : goto lab0;
350 0 : lab1:
351 0 : z->c = z->l - m1;
352 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0;
353 0 : z->c--;
354 : }
355 0 : lab0:
356 0 : z->bra = z->c;
357 :
358 : {
359 0 : int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
360 0 : if (ret < 0) return 0;
361 0 : z->c -= ret;
362 : }
363 0 : { int ret = slice_from_s(z, 1, s_5);
364 0 : if (ret < 0) return ret;
365 : }
366 0 : return 1;
367 : }
368 :
369 0 : static int r_Step_2(struct SN_env * z) {
370 : int among_var;
371 0 : z->ket = z->c;
372 0 : if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
373 0 : among_var = find_among_b(z, a_3, 20);
374 0 : if (!among_var) return 0;
375 0 : z->bra = z->c;
376 0 : { int ret = r_R1(z);
377 0 : if (ret <= 0) return ret;
378 : }
379 0 : switch (among_var) {
380 0 : case 1:
381 0 : { int ret = slice_from_s(z, 4, s_6);
382 0 : if (ret < 0) return ret;
383 : }
384 0 : break;
385 0 : case 2:
386 0 : { int ret = slice_from_s(z, 4, s_7);
387 0 : if (ret < 0) return ret;
388 : }
389 0 : break;
390 0 : case 3:
391 0 : { int ret = slice_from_s(z, 4, s_8);
392 0 : if (ret < 0) return ret;
393 : }
394 0 : break;
395 0 : case 4:
396 0 : { int ret = slice_from_s(z, 4, s_9);
397 0 : if (ret < 0) return ret;
398 : }
399 0 : break;
400 0 : case 5:
401 0 : { int ret = slice_from_s(z, 3, s_10);
402 0 : if (ret < 0) return ret;
403 : }
404 0 : break;
405 0 : case 6:
406 0 : { int ret = slice_from_s(z, 1, s_11);
407 0 : if (ret < 0) return ret;
408 : }
409 0 : break;
410 0 : case 7:
411 0 : { int ret = slice_from_s(z, 3, s_12);
412 0 : if (ret < 0) return ret;
413 : }
414 0 : break;
415 0 : case 8:
416 0 : { int ret = slice_from_s(z, 3, s_13);
417 0 : if (ret < 0) return ret;
418 : }
419 0 : break;
420 0 : case 9:
421 0 : { int ret = slice_from_s(z, 2, s_14);
422 0 : if (ret < 0) return ret;
423 : }
424 0 : break;
425 0 : case 10:
426 0 : { int ret = slice_from_s(z, 3, s_15);
427 0 : if (ret < 0) return ret;
428 : }
429 0 : break;
430 0 : case 11:
431 0 : { int ret = slice_from_s(z, 3, s_16);
432 0 : if (ret < 0) return ret;
433 : }
434 0 : break;
435 0 : case 12:
436 0 : { int ret = slice_from_s(z, 3, s_17);
437 0 : if (ret < 0) return ret;
438 : }
439 0 : break;
440 0 : case 13:
441 0 : { int ret = slice_from_s(z, 3, s_18);
442 0 : if (ret < 0) return ret;
443 : }
444 0 : break;
445 : }
446 0 : return 1;
447 : }
448 :
449 0 : static int r_Step_3(struct SN_env * z) {
450 : int among_var;
451 0 : z->ket = z->c;
452 0 : if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
453 0 : among_var = find_among_b(z, a_4, 7);
454 0 : if (!among_var) return 0;
455 0 : z->bra = z->c;
456 0 : { int ret = r_R1(z);
457 0 : if (ret <= 0) return ret;
458 : }
459 0 : switch (among_var) {
460 0 : case 1:
461 0 : { int ret = slice_from_s(z, 2, s_19);
462 0 : if (ret < 0) return ret;
463 : }
464 0 : break;
465 0 : case 2:
466 0 : { int ret = slice_from_s(z, 2, s_20);
467 0 : if (ret < 0) return ret;
468 : }
469 0 : break;
470 0 : case 3:
471 0 : { int ret = slice_del(z);
472 0 : if (ret < 0) return ret;
473 : }
474 0 : break;
475 : }
476 0 : return 1;
477 : }
478 :
479 0 : static int r_Step_4(struct SN_env * z) {
480 : int among_var;
481 0 : z->ket = z->c;
482 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
483 0 : among_var = find_among_b(z, a_5, 19);
484 0 : if (!among_var) return 0;
485 0 : z->bra = z->c;
486 0 : { int ret = r_R2(z);
487 0 : if (ret <= 0) return ret;
488 : }
489 0 : switch (among_var) {
490 0 : case 1:
491 0 : { int ret = slice_del(z);
492 0 : if (ret < 0) return ret;
493 : }
494 0 : break;
495 0 : case 2:
496 0 : { int m1 = z->l - z->c; (void)m1;
497 0 : if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
498 0 : z->c--;
499 0 : goto lab0;
500 0 : lab1:
501 0 : z->c = z->l - m1;
502 0 : if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0;
503 0 : z->c--;
504 : }
505 0 : lab0:
506 0 : { int ret = slice_del(z);
507 0 : if (ret < 0) return ret;
508 : }
509 0 : break;
510 : }
511 0 : return 1;
512 : }
513 :
514 0 : static int r_Step_5a(struct SN_env * z) {
515 0 : z->ket = z->c;
516 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
517 0 : z->c--;
518 0 : z->bra = z->c;
519 :
520 0 : { int ret = r_R2(z);
521 0 : if (ret == 0) goto lab1;
522 0 : if (ret < 0) return ret;
523 : }
524 0 : goto lab0;
525 0 : lab1:
526 0 : { int ret = r_R1(z);
527 0 : if (ret <= 0) return ret;
528 : }
529 0 : { int m1 = z->l - z->c; (void)m1;
530 0 : { int ret = r_shortv(z);
531 0 : if (ret == 0) goto lab2;
532 0 : if (ret < 0) return ret;
533 : }
534 0 : return 0;
535 0 : lab2:
536 0 : z->c = z->l - m1;
537 : }
538 0 : lab0:
539 0 : { int ret = slice_del(z);
540 0 : if (ret < 0) return ret;
541 : }
542 0 : return 1;
543 : }
544 :
545 0 : static int r_Step_5b(struct SN_env * z) {
546 0 : z->ket = z->c;
547 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
548 0 : z->c--;
549 0 : z->bra = z->c;
550 0 : { int ret = r_R2(z);
551 0 : if (ret <= 0) return ret;
552 : }
553 0 : if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
554 0 : z->c--;
555 0 : { int ret = slice_del(z);
556 0 : if (ret < 0) return ret;
557 : }
558 0 : return 1;
559 : }
560 :
561 0 : extern int porter_UTF_8_stem(struct SN_env * z) {
562 0 : z->I[2] = 0;
563 0 : { int c1 = z->c;
564 0 : z->bra = z->c;
565 0 : if (z->c == z->l || z->p[z->c] != 'y') goto lab0;
566 0 : z->c++;
567 0 : z->ket = z->c;
568 0 : { int ret = slice_from_s(z, 1, s_21);
569 0 : if (ret < 0) return ret;
570 : }
571 0 : z->I[2] = 1;
572 0 : lab0:
573 0 : z->c = c1;
574 : }
575 0 : { int c2 = z->c;
576 0 : while(1) {
577 0 : int c3 = z->c;
578 0 : while(1) {
579 0 : int c4 = z->c;
580 0 : if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab3;
581 0 : z->bra = z->c;
582 0 : if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
583 0 : z->c++;
584 0 : z->ket = z->c;
585 0 : z->c = c4;
586 0 : break;
587 0 : lab3:
588 0 : z->c = c4;
589 0 : { int ret = skip_utf8(z->p, z->c, z->l, 1);
590 0 : if (ret < 0) goto lab2;
591 0 : z->c = ret;
592 : }
593 : }
594 0 : { int ret = slice_from_s(z, 1, s_22);
595 0 : if (ret < 0) return ret;
596 : }
597 0 : z->I[2] = 1;
598 0 : continue;
599 0 : lab2:
600 0 : z->c = c3;
601 0 : break;
602 : }
603 0 : z->c = c2;
604 : }
605 0 : z->I[1] = z->l;
606 0 : z->I[0] = z->l;
607 0 : { int c5 = z->c;
608 :
609 : {
610 0 : int ret = out_grouping_U(z, g_v, 97, 121, 1);
611 0 : if (ret < 0) goto lab4;
612 0 : z->c += ret;
613 : }
614 :
615 : {
616 0 : int ret = in_grouping_U(z, g_v, 97, 121, 1);
617 0 : if (ret < 0) goto lab4;
618 0 : z->c += ret;
619 : }
620 0 : z->I[1] = z->c;
621 :
622 : {
623 0 : int ret = out_grouping_U(z, g_v, 97, 121, 1);
624 0 : if (ret < 0) goto lab4;
625 0 : z->c += ret;
626 : }
627 :
628 : {
629 0 : int ret = in_grouping_U(z, g_v, 97, 121, 1);
630 0 : if (ret < 0) goto lab4;
631 0 : z->c += ret;
632 : }
633 0 : z->I[0] = z->c;
634 0 : lab4:
635 0 : z->c = c5;
636 : }
637 0 : z->lb = z->c; z->c = z->l;
638 :
639 0 : { int m6 = z->l - z->c; (void)m6;
640 0 : { int ret = r_Step_1a(z);
641 0 : if (ret < 0) return ret;
642 : }
643 0 : z->c = z->l - m6;
644 : }
645 0 : { int m7 = z->l - z->c; (void)m7;
646 0 : { int ret = r_Step_1b(z);
647 0 : if (ret < 0) return ret;
648 : }
649 0 : z->c = z->l - m7;
650 : }
651 0 : { int m8 = z->l - z->c; (void)m8;
652 0 : { int ret = r_Step_1c(z);
653 0 : if (ret < 0) return ret;
654 : }
655 0 : z->c = z->l - m8;
656 : }
657 0 : { int m9 = z->l - z->c; (void)m9;
658 0 : { int ret = r_Step_2(z);
659 0 : if (ret < 0) return ret;
660 : }
661 0 : z->c = z->l - m9;
662 : }
663 0 : { int m10 = z->l - z->c; (void)m10;
664 0 : { int ret = r_Step_3(z);
665 0 : if (ret < 0) return ret;
666 : }
667 0 : z->c = z->l - m10;
668 : }
669 0 : { int m11 = z->l - z->c; (void)m11;
670 0 : { int ret = r_Step_4(z);
671 0 : if (ret < 0) return ret;
672 : }
673 0 : z->c = z->l - m11;
674 : }
675 0 : { int m12 = z->l - z->c; (void)m12;
676 0 : { int ret = r_Step_5a(z);
677 0 : if (ret < 0) return ret;
678 : }
679 0 : z->c = z->l - m12;
680 : }
681 0 : { int m13 = z->l - z->c; (void)m13;
682 0 : { int ret = r_Step_5b(z);
683 0 : if (ret < 0) return ret;
684 : }
685 0 : z->c = z->l - m13;
686 : }
687 0 : z->c = z->lb;
688 0 : { int c14 = z->c;
689 0 : if (!(z->I[2])) goto lab5;
690 0 : while(1) {
691 0 : int c15 = z->c;
692 0 : while(1) {
693 0 : int c16 = z->c;
694 0 : z->bra = z->c;
695 0 : if (z->c == z->l || z->p[z->c] != 'Y') goto lab7;
696 0 : z->c++;
697 0 : z->ket = z->c;
698 0 : z->c = c16;
699 0 : break;
700 0 : lab7:
701 0 : z->c = c16;
702 0 : { int ret = skip_utf8(z->p, z->c, z->l, 1);
703 0 : if (ret < 0) goto lab6;
704 0 : z->c = ret;
705 : }
706 : }
707 0 : { int ret = slice_from_s(z, 1, s_23);
708 0 : if (ret < 0) return ret;
709 : }
710 0 : continue;
711 0 : lab6:
712 0 : z->c = c15;
713 0 : break;
714 : }
715 0 : lab5:
716 0 : z->c = c14;
717 : }
718 0 : return 1;
719 : }
720 :
721 0 : extern struct SN_env * porter_UTF_8_create_env(void) { return SN_create_env(0, 3); }
722 :
723 0 : extern void porter_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
724 :
|