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