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