xapian-core  1.4.25
english.cc
Go to the documentation of this file.
1 /* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
2 
3 
4 #include <config.h>
5 #include <limits.h>
6 #include "english.h"
7 
8 static const symbol s_pool[] = {
9 #define s_0_0 0
10 'a', 'r', 's', 'e', 'n',
11 #define s_0_1 5
12 'c', 'o', 'm', 'm', 'u', 'n',
13 #define s_0_2 11
14 'g', 'e', 'n', 'e', 'r',
15 #define s_1_0 (s_1_1 + 2)
16 #define s_1_1 16
17 '\'', 's', '\'',
18 #define s_1_2 s_1_1
19 #define s_2_0 19
20 'i', 'e', 'd',
21 #define s_2_1 (s_2_2 + 2)
22 #define s_2_2 22
23 'i', 'e', 's',
24 #define s_2_3 25
25 's', 's', 'e', 's',
26 #define s_2_4 s_2_3
27 #define s_2_5 29
28 'u', 's',
29 #define s_3_1 31
30 'b', 'b',
31 #define s_3_2 33
32 'd', 'd',
33 #define s_3_3 35
34 'f', 'f',
35 #define s_3_4 37
36 'g', 'g',
37 #define s_3_5 39
38 'b', 'l',
39 #define s_3_6 41
40 'm', 'm',
41 #define s_3_7 43
42 'n', 'n',
43 #define s_3_8 45
44 'p', 'p',
45 #define s_3_9 47
46 'r', 'r',
47 #define s_3_10 49
48 'a', 't',
49 #define s_3_11 51
50 't', 't',
51 #define s_3_12 53
52 'i', 'z',
53 #define s_4_0 (s_4_1 + 1)
54 #define s_4_1 s_4_4
55 #define s_4_2 s_4_5
56 #define s_4_3 (s_4_4 + 1)
57 #define s_4_4 55
58 'e', 'e', 'd', 'l', 'y',
59 #define s_4_5 60
60 'i', 'n', 'g', 'l', 'y',
61 #define s_5_0 65
62 'a', 'n', 'c', 'i',
63 #define s_5_1 69
64 'e', 'n', 'c', 'i',
65 #define s_5_2 73
66 'o', 'g', 'i',
67 #define s_5_3 (s_5_4 + 1)
68 #define s_5_4 (s_5_5 + 1)
69 #define s_5_5 76
70 'a', 'b', 'l', 'i',
71 #define s_5_6 80
72 'a', 'l', 'l', 'i',
73 #define s_5_7 84
74 'f', 'u', 'l', 'l', 'i',
75 #define s_5_8 89
76 'l', 'e', 's', 's', 'l', 'i',
77 #define s_5_9 95
78 'o', 'u', 's', 'l', 'i',
79 #define s_5_10 100
80 'e', 'n', 't', 'l', 'i',
81 #define s_5_11 105
82 'a', 'l', 'i', 't', 'i',
83 #define s_5_12 110
84 'b', 'i', 'l', 'i', 't', 'i',
85 #define s_5_13 116
86 'i', 'v', 'i', 't', 'i',
87 #define s_5_14 (s_5_15 + 1)
88 #define s_5_15 121
89 'a', 't', 'i', 'o', 'n', 'a', 'l',
90 #define s_5_16 128
91 'a', 'l', 'i', 's', 'm',
92 #define s_5_17 s_5_15
93 #define s_5_18 133
94 'i', 'z', 'a', 't', 'i', 'o', 'n',
95 #define s_5_19 140
96 'i', 'z', 'e', 'r',
97 #define s_5_20 144
98 'a', 't', 'o', 'r',
99 #define s_5_21 148
100 'i', 'v', 'e', 'n', 'e', 's', 's',
101 #define s_5_22 155
102 'f', 'u', 'l', 'n', 'e', 's', 's',
103 #define s_5_23 162
104 'o', 'u', 's', 'n', 'e', 's', 's',
105 #define s_6_0 169
106 'i', 'c', 'a', 't', 'e',
107 #define s_6_1 174
108 'a', 't', 'i', 'v', 'e',
109 #define s_6_2 179
110 'a', 'l', 'i', 'z', 'e',
111 #define s_6_3 184
112 'i', 'c', 'i', 't', 'i',
113 #define s_6_4 189
114 'i', 'c', 'a', 'l',
115 #define s_6_5 (s_6_6 + 1)
116 #define s_6_6 193
117 'a', 't', 'i', 'o', 'n', 'a', 'l',
118 #define s_6_7 200
119 'f', 'u', 'l',
120 #define s_6_8 203
121 'n', 'e', 's', 's',
122 #define s_7_0 207
123 'i', 'c',
124 #define s_7_1 209
125 'a', 'n', 'c', 'e',
126 #define s_7_2 213
127 'e', 'n', 'c', 'e',
128 #define s_7_3 217
129 'a', 'b', 'l', 'e',
130 #define s_7_4 221
131 'i', 'b', 'l', 'e',
132 #define s_7_5 225
133 'a', 't', 'e',
134 #define s_7_6 228
135 'i', 'v', 'e',
136 #define s_7_7 231
137 'i', 'z', 'e',
138 #define s_7_8 234
139 'i', 't', 'i',
140 #define s_7_9 237
141 'a', 'l',
142 #define s_7_10 239
143 'i', 's', 'm',
144 #define s_7_11 242
145 'i', 'o', 'n',
146 #define s_7_12 245
147 'e', 'r',
148 #define s_7_13 247
149 'o', 'u', 's',
150 #define s_7_14 250
151 'a', 'n', 't',
152 #define s_7_15 (s_7_16 + 1)
153 #define s_7_16 (s_7_17 + 1)
154 #define s_7_17 253
155 'e', 'm', 'e', 'n', 't',
156 #define s_8_0 258
157 'e',
158 #define s_8_1 259
159 'l',
160 #define s_9_0 260
161 's', 'u', 'c', 'c', 'e', 'e', 'd',
162 #define s_9_1 267
163 'p', 'r', 'o', 'c', 'e', 'e', 'd',
164 #define s_9_2 274
165 'e', 'x', 'c', 'e', 'e', 'd',
166 #define s_9_3 280
167 'c', 'a', 'n', 'n', 'i', 'n', 'g',
168 #define s_9_4 287
169 'i', 'n', 'n', 'i', 'n', 'g',
170 #define s_9_5 293
171 'e', 'a', 'r', 'r', 'i', 'n', 'g',
172 #define s_9_6 300
173 'h', 'e', 'r', 'r', 'i', 'n', 'g',
174 #define s_9_7 307
175 'o', 'u', 't', 'i', 'n', 'g',
176 #define s_10_0 313
177 'a', 'n', 'd', 'e', 's',
178 #define s_10_1 318
179 'a', 't', 'l', 'a', 's',
180 #define s_10_2 323
181 'b', 'i', 'a', 's',
182 #define s_10_3 327
183 'c', 'o', 's', 'm', 'o', 's',
184 #define s_10_4 333
185 'd', 'y', 'i', 'n', 'g',
186 #define s_10_5 338
187 'e', 'a', 'r', 'l', 'y',
188 #define s_10_6 343
189 'g', 'e', 'n', 't', 'l', 'y',
190 #define s_10_7 349
191 'h', 'o', 'w', 'e',
192 #define s_10_8 353
193 'i', 'd', 'l', 'y',
194 #define s_10_9 357
195 'l', 'y', 'i', 'n', 'g',
196 #define s_10_10 362
197 'n', 'e', 'w', 's',
198 #define s_10_11 366
199 'o', 'n', 'l', 'y',
200 #define s_10_12 370
201 's', 'i', 'n', 'g', 'l', 'y',
202 #define s_10_13 376
203 's', 'k', 'i', 'e', 's',
204 #define s_10_14 381
205 's', 'k', 'i', 's',
206 #define s_10_15 385
207 's', 'k', 'y',
208 #define s_10_16 388
209 't', 'y', 'i', 'n', 'g',
210 #define s_10_17 393
211 'u', 'g', 'l', 'y',
212 };
213 
214 
215 static const struct among a_0[3] =
216 {
217 /* 0 */ { 5, s_0_0, -1, -1},
218 /* 1 */ { 6, s_0_1, -1, -1},
219 /* 2 */ { 5, s_0_2, -1, -1}
220 };
221 
222 
223 static const struct among a_1[3] =
224 {
225 /* 0 */ { 1, s_1_0, -1, 1},
226 /* 1 */ { 3, s_1_1, 0, 1},
227 /* 2 */ { 2, s_1_2, -1, 1}
228 };
229 
230 
231 static const struct among a_2[6] =
232 {
233 /* 0 */ { 3, s_2_0, -1, 2},
234 /* 1 */ { 1, s_2_1, -1, 3},
235 /* 2 */ { 3, s_2_2, 1, 2},
236 /* 3 */ { 4, s_2_3, 1, 1},
237 /* 4 */ { 2, s_2_4, 1, -1},
238 /* 5 */ { 2, s_2_5, 1, -1}
239 };
240 
241 
242 static const struct among a_3[13] =
243 {
244 /* 0 */ { 0, 0, -1, 3},
245 /* 1 */ { 2, s_3_1, 0, 2},
246 /* 2 */ { 2, s_3_2, 0, 2},
247 /* 3 */ { 2, s_3_3, 0, 2},
248 /* 4 */ { 2, s_3_4, 0, 2},
249 /* 5 */ { 2, s_3_5, 0, 1},
250 /* 6 */ { 2, s_3_6, 0, 2},
251 /* 7 */ { 2, s_3_7, 0, 2},
252 /* 8 */ { 2, s_3_8, 0, 2},
253 /* 9 */ { 2, s_3_9, 0, 2},
254 /* 10 */ { 2, s_3_10, 0, 1},
255 /* 11 */ { 2, s_3_11, 0, 2},
256 /* 12 */ { 2, s_3_12, 0, 1}
257 };
258 
259 
260 static const struct among a_4[6] =
261 {
262 /* 0 */ { 2, s_4_0, -1, 2},
263 /* 1 */ { 3, s_4_1, 0, 1},
264 /* 2 */ { 3, s_4_2, -1, 2},
265 /* 3 */ { 4, s_4_3, -1, 2},
266 /* 4 */ { 5, s_4_4, 3, 1},
267 /* 5 */ { 5, s_4_5, -1, 2}
268 };
269 
270 
271 static const struct among a_5[24] =
272 {
273 /* 0 */ { 4, s_5_0, -1, 3},
274 /* 1 */ { 4, s_5_1, -1, 2},
275 /* 2 */ { 3, s_5_2, -1, 13},
276 /* 3 */ { 2, s_5_3, -1, 15},
277 /* 4 */ { 3, s_5_4, 3, 12},
278 /* 5 */ { 4, s_5_5, 4, 4},
279 /* 6 */ { 4, s_5_6, 3, 8},
280 /* 7 */ { 5, s_5_7, 3, 9},
281 /* 8 */ { 6, s_5_8, 3, 14},
282 /* 9 */ { 5, s_5_9, 3, 10},
283 /* 10 */ { 5, s_5_10, 3, 5},
284 /* 11 */ { 5, s_5_11, -1, 8},
285 /* 12 */ { 6, s_5_12, -1, 12},
286 /* 13 */ { 5, s_5_13, -1, 11},
287 /* 14 */ { 6, s_5_14, -1, 1},
288 /* 15 */ { 7, s_5_15, 14, 7},
289 /* 16 */ { 5, s_5_16, -1, 8},
290 /* 17 */ { 5, s_5_17, -1, 7},
291 /* 18 */ { 7, s_5_18, 17, 6},
292 /* 19 */ { 4, s_5_19, -1, 6},
293 /* 20 */ { 4, s_5_20, -1, 7},
294 /* 21 */ { 7, s_5_21, -1, 11},
295 /* 22 */ { 7, s_5_22, -1, 9},
296 /* 23 */ { 7, s_5_23, -1, 10}
297 };
298 
299 
300 static const struct among a_6[9] =
301 {
302 /* 0 */ { 5, s_6_0, -1, 4},
303 /* 1 */ { 5, s_6_1, -1, 6},
304 /* 2 */ { 5, s_6_2, -1, 3},
305 /* 3 */ { 5, s_6_3, -1, 4},
306 /* 4 */ { 4, s_6_4, -1, 4},
307 /* 5 */ { 6, s_6_5, -1, 1},
308 /* 6 */ { 7, s_6_6, 5, 2},
309 /* 7 */ { 3, s_6_7, -1, 5},
310 /* 8 */ { 4, s_6_8, -1, 5}
311 };
312 
313 
314 static const struct among a_7[18] =
315 {
316 /* 0 */ { 2, s_7_0, -1, 1},
317 /* 1 */ { 4, s_7_1, -1, 1},
318 /* 2 */ { 4, s_7_2, -1, 1},
319 /* 3 */ { 4, s_7_3, -1, 1},
320 /* 4 */ { 4, s_7_4, -1, 1},
321 /* 5 */ { 3, s_7_5, -1, 1},
322 /* 6 */ { 3, s_7_6, -1, 1},
323 /* 7 */ { 3, s_7_7, -1, 1},
324 /* 8 */ { 3, s_7_8, -1, 1},
325 /* 9 */ { 2, s_7_9, -1, 1},
326 /* 10 */ { 3, s_7_10, -1, 1},
327 /* 11 */ { 3, s_7_11, -1, 2},
328 /* 12 */ { 2, s_7_12, -1, 1},
329 /* 13 */ { 3, s_7_13, -1, 1},
330 /* 14 */ { 3, s_7_14, -1, 1},
331 /* 15 */ { 3, s_7_15, -1, 1},
332 /* 16 */ { 4, s_7_16, 15, 1},
333 /* 17 */ { 5, s_7_17, 16, 1}
334 };
335 
336 
337 static const struct among a_8[2] =
338 {
339 /* 0 */ { 1, s_8_0, -1, 1},
340 /* 1 */ { 1, s_8_1, -1, 2}
341 };
342 
343 
344 static const struct among a_9[8] =
345 {
346 /* 0 */ { 7, s_9_0, -1, -1},
347 /* 1 */ { 7, s_9_1, -1, -1},
348 /* 2 */ { 6, s_9_2, -1, -1},
349 /* 3 */ { 7, s_9_3, -1, -1},
350 /* 4 */ { 6, s_9_4, -1, -1},
351 /* 5 */ { 7, s_9_5, -1, -1},
352 /* 6 */ { 7, s_9_6, -1, -1},
353 /* 7 */ { 6, s_9_7, -1, -1}
354 };
355 
356 
357 static const struct among a_10[18] =
358 {
359 /* 0 */ { 5, s_10_0, -1, -1},
360 /* 1 */ { 5, s_10_1, -1, -1},
361 /* 2 */ { 4, s_10_2, -1, -1},
362 /* 3 */ { 6, s_10_3, -1, -1},
363 /* 4 */ { 5, s_10_4, -1, 3},
364 /* 5 */ { 5, s_10_5, -1, 9},
365 /* 6 */ { 6, s_10_6, -1, 7},
366 /* 7 */ { 4, s_10_7, -1, -1},
367 /* 8 */ { 4, s_10_8, -1, 6},
368 /* 9 */ { 5, s_10_9, -1, 4},
369 /* 10 */ { 4, s_10_10, -1, -1},
370 /* 11 */ { 4, s_10_11, -1, 10},
371 /* 12 */ { 6, s_10_12, -1, 11},
372 /* 13 */ { 5, s_10_13, -1, 2},
373 /* 14 */ { 4, s_10_14, -1, 1},
374 /* 15 */ { 3, s_10_15, -1, -1},
375 /* 16 */ { 5, s_10_16, -1, 5},
376 /* 17 */ { 4, s_10_17, -1, 8}
377 };
378 
379 static const unsigned char g_v[] = { 17, 65, 16, 1 };
380 
381 static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
382 
383 static const unsigned char g_valid_LI[] = { 55, 141, 2 };
384 
385 static const symbol s_0[] = { 'Y' };
386 static const symbol s_1[] = { 'Y' };
387 static const symbol s_2[] = { 's', 's' };
388 static const symbol s_3[] = { 'i' };
389 static const symbol s_4[] = { 'i', 'e' };
390 static const symbol s_5[] = { 'e', 'e' };
391 static const symbol s_6[] = { 'e' };
392 static const symbol s_7[] = { 'e' };
393 static const symbol s_8[] = { 'i' };
394 static const symbol s_9[] = { 't', 'i', 'o', 'n' };
395 static const symbol s_10[] = { 'e', 'n', 'c', 'e' };
396 static const symbol s_11[] = { 'a', 'n', 'c', 'e' };
397 static const symbol s_12[] = { 'a', 'b', 'l', 'e' };
398 static const symbol s_13[] = { 'e', 'n', 't' };
399 static const symbol s_14[] = { 'i', 'z', 'e' };
400 static const symbol s_15[] = { 'a', 't', 'e' };
401 static const symbol s_16[] = { 'a', 'l' };
402 static const symbol s_17[] = { 'f', 'u', 'l' };
403 static const symbol s_18[] = { 'o', 'u', 's' };
404 static const symbol s_19[] = { 'i', 'v', 'e' };
405 static const symbol s_20[] = { 'b', 'l', 'e' };
406 static const symbol s_21[] = { 'o', 'g' };
407 static const symbol s_22[] = { 'l', 'e', 's', 's' };
408 static const symbol s_23[] = { 't', 'i', 'o', 'n' };
409 static const symbol s_24[] = { 'a', 't', 'e' };
410 static const symbol s_25[] = { 'a', 'l' };
411 static const symbol s_26[] = { 'i', 'c' };
412 static const symbol s_27[] = { 's', 'k', 'i' };
413 static const symbol s_28[] = { 's', 'k', 'y' };
414 static const symbol s_29[] = { 'd', 'i', 'e' };
415 static const symbol s_30[] = { 'l', 'i', 'e' };
416 static const symbol s_31[] = { 't', 'i', 'e' };
417 static const symbol s_32[] = { 'i', 'd', 'l' };
418 static const symbol s_33[] = { 'g', 'e', 'n', 't', 'l' };
419 static const symbol s_34[] = { 'u', 'g', 'l', 'i' };
420 static const symbol s_35[] = { 'e', 'a', 'r', 'l', 'i' };
421 static const symbol s_36[] = { 'o', 'n', 'l', 'i' };
422 static const symbol s_37[] = { 's', 'i', 'n', 'g', 'l' };
423 static const symbol s_38[] = { 'y' };
424 
426  I_Y_found = 0;
427  { int c1 = c;
428  bra = c;
429  if (c == l || p[c] != '\'') goto lab0;
430  c++;
431  ket = c;
432  { int ret = slice_del();
433  if (ret < 0) return ret;
434  }
435  lab0:
436  c = c1;
437  }
438  { int c2 = c;
439  bra = c;
440  if (c == l || p[c] != 'y') goto lab1;
441  c++;
442  ket = c;
443  { int ret = slice_from_s(1, s_0);
444  if (ret < 0) return ret;
445  }
446  I_Y_found = 1;
447  lab1:
448  c = c2;
449  }
450  { int c3 = c;
451  while(1) {
452  int c4 = c;
453  while(1) {
454  int c5 = c;
455  if (in_grouping_U(g_v, 97, 121, 0)) goto lab4;
456  bra = c;
457  if (c == l || p[c] != 'y') goto lab4;
458  c++;
459  ket = c;
460  c = c5;
461  break;
462  lab4:
463  c = c5;
464  { int ret = skip_utf8(p, c, 0, l, 1);
465  if (ret < 0) goto lab3;
466  c = ret;
467  }
468  }
469  { int ret = slice_from_s(1, s_1);
470  if (ret < 0) return ret;
471  }
472  I_Y_found = 1;
473  continue;
474  lab3:
475  c = c4;
476  break;
477  }
478  c = c3;
479  }
480  return 1;
481 }
482 
484  I_p1 = l;
485  I_p2 = l;
486  { int c1 = c;
487  { int c2 = c;
488  if (c + 4 >= l || p[c + 4] >> 5 != 3 || !((2375680 >> (p[c + 4] & 0x1f)) & 1)) goto lab2;
489  if (!(find_among(s_pool, a_0, 3, 0, 0))) goto lab2;
490  goto lab1;
491  lab2:
492  c = c2;
493  {
494  int ret = out_grouping_U(g_v, 97, 121, 1);
495  if (ret < 0) goto lab0;
496  c += ret;
497  }
498  {
499  int ret = in_grouping_U(g_v, 97, 121, 1);
500  if (ret < 0) goto lab0;
501  c += ret;
502  }
503  }
504  lab1:
505  I_p1 = c;
506  {
507  int ret = out_grouping_U(g_v, 97, 121, 1);
508  if (ret < 0) goto lab0;
509  c += ret;
510  }
511  {
512  int ret = in_grouping_U(g_v, 97, 121, 1);
513  if (ret < 0) goto lab0;
514  c += ret;
515  }
516  I_p2 = c;
517  lab0:
518  c = c1;
519  }
520  return 1;
521 }
522 
524  { int m1 = l - c; (void)m1;
525  if (out_grouping_b_U(g_v_WXY, 89, 121, 0)) goto lab1;
526  if (in_grouping_b_U(g_v, 97, 121, 0)) goto lab1;
527  if (out_grouping_b_U(g_v, 97, 121, 0)) goto lab1;
528  goto lab0;
529  lab1:
530  c = l - m1;
531  if (out_grouping_b_U(g_v, 97, 121, 0)) return 0;
532  if (in_grouping_b_U(g_v, 97, 121, 0)) return 0;
533  if (c > lb) return 0;
534  }
535 lab0:
536  return 1;
537 }
538 
540  if (!(I_p1 <= c)) return 0;
541  return 1;
542 }
543 
545  if (!(I_p2 <= c)) return 0;
546  return 1;
547 }
548 
550  int among_var;
551  { int m1 = l - c; (void)m1;
552  ket = c;
553  if (c <= lb || (p[c - 1] != 39 && p[c - 1] != 115)) { c = l - m1; goto lab0; }
554  if (!(find_among_b(s_pool, a_1, 3, 0, 0))) { c = l - m1; goto lab0; }
555  bra = c;
556  { int ret = slice_del();
557  if (ret < 0) return ret;
558  }
559  lab0:
560  ;
561  }
562  ket = c;
563  if (c <= lb || (p[c - 1] != 100 && p[c - 1] != 115)) return 0;
564  among_var = find_among_b(s_pool, a_2, 6, 0, 0);
565  if (!(among_var)) return 0;
566  bra = c;
567  switch (among_var) {
568  case 1:
569  { int ret = slice_from_s(2, s_2);
570  if (ret < 0) return ret;
571  }
572  break;
573  case 2:
574  { int m2 = l - c; (void)m2;
575  { int ret = skip_utf8(p, c, lb, l, - 2);
576  if (ret < 0) goto lab2;
577  c = ret;
578  }
579  { int ret = slice_from_s(1, s_3);
580  if (ret < 0) return ret;
581  }
582  goto lab1;
583  lab2:
584  c = l - m2;
585  { int ret = slice_from_s(2, s_4);
586  if (ret < 0) return ret;
587  }
588  }
589  lab1:
590  break;
591  case 3:
592  { int ret = skip_utf8(p, c, lb, 0, -1);
593  if (ret < 0) return 0;
594  c = ret;
595  }
596  {
597  int ret = out_grouping_b_U(g_v, 97, 121, 1);
598  if (ret < 0) return 0;
599  c -= ret;
600  }
601  { int ret = slice_del();
602  if (ret < 0) return ret;
603  }
604  break;
605  }
606  return 1;
607 }
608 
610  int among_var;
611  ket = c;
612  if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((33554576 >> (p[c - 1] & 0x1f)) & 1)) return 0;
613  among_var = find_among_b(s_pool, a_4, 6, 0, 0);
614  if (!(among_var)) return 0;
615  bra = c;
616  switch (among_var) {
617  case 1:
618  { int ret = r_R1();
619  if (ret <= 0) return ret;
620  }
621  { int ret = slice_from_s(2, s_5);
622  if (ret < 0) return ret;
623  }
624  break;
625  case 2:
626  { int m_test1 = l - c;
627  {
628  int ret = out_grouping_b_U(g_v, 97, 121, 1);
629  if (ret < 0) return 0;
630  c -= ret;
631  }
632  c = l - m_test1;
633  }
634  { int ret = slice_del();
635  if (ret < 0) return ret;
636  }
637  { int m_test2 = l - c;
638  if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((68514004 >> (p[c - 1] & 0x1f)) & 1)) among_var = 3; else
639  among_var = find_among_b(s_pool, a_3, 13, 0, 0);
640  if (!(among_var)) return 0;
641  c = l - m_test2;
642  }
643  switch (among_var) {
644  case 1:
645  { int saved_c = c;
646  insert_s(c, c, 1, s_6);
647  c = saved_c;
648  }
649  break;
650  case 2:
651  ket = c;
652  { int ret = skip_utf8(p, c, lb, 0, -1);
653  if (ret < 0) return 0;
654  c = ret;
655  }
656  bra = c;
657  { int ret = slice_del();
658  if (ret < 0) return ret;
659  }
660  break;
661  case 3:
662  if (c != I_p1) return 0;
663  { int m_test3 = l - c;
664  { int ret = r_shortv();
665  if (ret <= 0) return ret;
666  }
667  c = l - m_test3;
668  }
669  { int saved_c = c;
670  insert_s(c, c, 1, s_7);
671  c = saved_c;
672  }
673  break;
674  }
675  break;
676  }
677  return 1;
678 }
679 
681  ket = c;
682  { int m1 = l - c; (void)m1;
683  if (c <= lb || p[c - 1] != 'y') goto lab1;
684  c--;
685  goto lab0;
686  lab1:
687  c = l - m1;
688  if (c <= lb || p[c - 1] != 'Y') return 0;
689  c--;
690  }
691 lab0:
692  bra = c;
693  if (out_grouping_b_U(g_v, 97, 121, 0)) return 0;
694 
695  if (c > lb) goto lab2;
696  return 0;
697 lab2:
698  { int ret = slice_from_s(1, s_8);
699  if (ret < 0) return ret;
700  }
701  return 1;
702 }
703 
705  int among_var;
706  ket = c;
707  if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((815616 >> (p[c - 1] & 0x1f)) & 1)) return 0;
708  among_var = find_among_b(s_pool, a_5, 24, 0, 0);
709  if (!(among_var)) return 0;
710  bra = c;
711  { int ret = r_R1();
712  if (ret <= 0) return ret;
713  }
714  switch (among_var) {
715  case 1:
716  { int ret = slice_from_s(4, s_9);
717  if (ret < 0) return ret;
718  }
719  break;
720  case 2:
721  { int ret = slice_from_s(4, s_10);
722  if (ret < 0) return ret;
723  }
724  break;
725  case 3:
726  { int ret = slice_from_s(4, s_11);
727  if (ret < 0) return ret;
728  }
729  break;
730  case 4:
731  { int ret = slice_from_s(4, s_12);
732  if (ret < 0) return ret;
733  }
734  break;
735  case 5:
736  { int ret = slice_from_s(3, s_13);
737  if (ret < 0) return ret;
738  }
739  break;
740  case 6:
741  { int ret = slice_from_s(3, s_14);
742  if (ret < 0) return ret;
743  }
744  break;
745  case 7:
746  { int ret = slice_from_s(3, s_15);
747  if (ret < 0) return ret;
748  }
749  break;
750  case 8:
751  { int ret = slice_from_s(2, s_16);
752  if (ret < 0) return ret;
753  }
754  break;
755  case 9:
756  { int ret = slice_from_s(3, s_17);
757  if (ret < 0) return ret;
758  }
759  break;
760  case 10:
761  { int ret = slice_from_s(3, s_18);
762  if (ret < 0) return ret;
763  }
764  break;
765  case 11:
766  { int ret = slice_from_s(3, s_19);
767  if (ret < 0) return ret;
768  }
769  break;
770  case 12:
771  { int ret = slice_from_s(3, s_20);
772  if (ret < 0) return ret;
773  }
774  break;
775  case 13:
776  if (c <= lb || p[c - 1] != 'l') return 0;
777  c--;
778  { int ret = slice_from_s(2, s_21);
779  if (ret < 0) return ret;
780  }
781  break;
782  case 14:
783  { int ret = slice_from_s(4, s_22);
784  if (ret < 0) return ret;
785  }
786  break;
787  case 15:
788  if (in_grouping_b_U(g_valid_LI, 99, 116, 0)) return 0;
789  { int ret = slice_del();
790  if (ret < 0) return ret;
791  }
792  break;
793  }
794  return 1;
795 }
796 
798  int among_var;
799  ket = c;
800  if (c - 2 <= lb || p[c - 1] >> 5 != 3 || !((528928 >> (p[c - 1] & 0x1f)) & 1)) return 0;
801  among_var = find_among_b(s_pool, a_6, 9, 0, 0);
802  if (!(among_var)) return 0;
803  bra = c;
804  { int ret = r_R1();
805  if (ret <= 0) return ret;
806  }
807  switch (among_var) {
808  case 1:
809  { int ret = slice_from_s(4, s_23);
810  if (ret < 0) return ret;
811  }
812  break;
813  case 2:
814  { int ret = slice_from_s(3, s_24);
815  if (ret < 0) return ret;
816  }
817  break;
818  case 3:
819  { int ret = slice_from_s(2, s_25);
820  if (ret < 0) return ret;
821  }
822  break;
823  case 4:
824  { int ret = slice_from_s(2, s_26);
825  if (ret < 0) return ret;
826  }
827  break;
828  case 5:
829  { int ret = slice_del();
830  if (ret < 0) return ret;
831  }
832  break;
833  case 6:
834  { int ret = r_R2();
835  if (ret <= 0) return ret;
836  }
837  { int ret = slice_del();
838  if (ret < 0) return ret;
839  }
840  break;
841  }
842  return 1;
843 }
844 
846  int among_var;
847  ket = c;
848  if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((1864232 >> (p[c - 1] & 0x1f)) & 1)) return 0;
849  among_var = find_among_b(s_pool, a_7, 18, 0, 0);
850  if (!(among_var)) return 0;
851  bra = c;
852  { int ret = r_R2();
853  if (ret <= 0) return ret;
854  }
855  switch (among_var) {
856  case 1:
857  { int ret = slice_del();
858  if (ret < 0) return ret;
859  }
860  break;
861  case 2:
862  { int m1 = l - c; (void)m1;
863  if (c <= lb || p[c - 1] != 's') goto lab1;
864  c--;
865  goto lab0;
866  lab1:
867  c = l - m1;
868  if (c <= lb || p[c - 1] != 't') return 0;
869  c--;
870  }
871  lab0:
872  { int ret = slice_del();
873  if (ret < 0) return ret;
874  }
875  break;
876  }
877  return 1;
878 }
879 
881  int among_var;
882  ket = c;
883  if (c <= lb || (p[c - 1] != 101 && p[c - 1] != 108)) return 0;
884  among_var = find_among_b(s_pool, a_8, 2, 0, 0);
885  if (!(among_var)) return 0;
886  bra = c;
887  switch (among_var) {
888  case 1:
889  { int m1 = l - c; (void)m1;
890  { int ret = r_R2();
891  if (ret == 0) goto lab1;
892  if (ret < 0) return ret;
893  }
894  goto lab0;
895  lab1:
896  c = l - m1;
897  { int ret = r_R1();
898  if (ret <= 0) return ret;
899  }
900  { int m2 = l - c; (void)m2;
901  { int ret = r_shortv();
902  if (ret == 0) goto lab2;
903  if (ret < 0) return ret;
904  }
905  return 0;
906  lab2:
907  c = l - m2;
908  }
909  }
910  lab0:
911  { int ret = slice_del();
912  if (ret < 0) return ret;
913  }
914  break;
915  case 2:
916  { int ret = r_R2();
917  if (ret <= 0) return ret;
918  }
919  if (c <= lb || p[c - 1] != 'l') return 0;
920  c--;
921  { int ret = slice_del();
922  if (ret < 0) return ret;
923  }
924  break;
925  }
926  return 1;
927 }
928 
930  ket = c;
931  if (c - 5 <= lb || (p[c - 1] != 100 && p[c - 1] != 103)) return 0;
932  if (!(find_among_b(s_pool, a_9, 8, 0, 0))) return 0;
933  bra = c;
934  if (c > lb) return 0;
935  return 1;
936 }
937 
939  int among_var;
940  bra = c;
941  if (c + 2 >= l || p[c + 2] >> 5 != 3 || !((42750482 >> (p[c + 2] & 0x1f)) & 1)) return 0;
942  among_var = find_among(s_pool, a_10, 18, 0, 0);
943  if (!(among_var)) return 0;
944  ket = c;
945  if (c < l) return 0;
946  switch (among_var) {
947  case 1:
948  { int ret = slice_from_s(3, s_27);
949  if (ret < 0) return ret;
950  }
951  break;
952  case 2:
953  { int ret = slice_from_s(3, s_28);
954  if (ret < 0) return ret;
955  }
956  break;
957  case 3:
958  { int ret = slice_from_s(3, s_29);
959  if (ret < 0) return ret;
960  }
961  break;
962  case 4:
963  { int ret = slice_from_s(3, s_30);
964  if (ret < 0) return ret;
965  }
966  break;
967  case 5:
968  { int ret = slice_from_s(3, s_31);
969  if (ret < 0) return ret;
970  }
971  break;
972  case 6:
973  { int ret = slice_from_s(3, s_32);
974  if (ret < 0) return ret;
975  }
976  break;
977  case 7:
978  { int ret = slice_from_s(5, s_33);
979  if (ret < 0) return ret;
980  }
981  break;
982  case 8:
983  { int ret = slice_from_s(4, s_34);
984  if (ret < 0) return ret;
985  }
986  break;
987  case 9:
988  { int ret = slice_from_s(5, s_35);
989  if (ret < 0) return ret;
990  }
991  break;
992  case 10:
993  { int ret = slice_from_s(4, s_36);
994  if (ret < 0) return ret;
995  }
996  break;
997  case 11:
998  { int ret = slice_from_s(5, s_37);
999  if (ret < 0) return ret;
1000  }
1001  break;
1002  }
1003  return 1;
1004 }
1005 
1007  if (!(I_Y_found)) return 0;
1008  while(1) {
1009  int c1 = c;
1010  while(1) {
1011  int c2 = c;
1012  bra = c;
1013  if (c == l || p[c] != 'Y') goto lab1;
1014  c++;
1015  ket = c;
1016  c = c2;
1017  break;
1018  lab1:
1019  c = c2;
1020  { int ret = skip_utf8(p, c, 0, l, 1);
1021  if (ret < 0) goto lab0;
1022  c = ret;
1023  }
1024  }
1025  { int ret = slice_from_s(1, s_38);
1026  if (ret < 0) return ret;
1027  }
1028  continue;
1029  lab0:
1030  c = c1;
1031  break;
1032  }
1033  return 1;
1034 }
1035 
1037  { int c1 = c;
1038  { int ret = r_exception1();
1039  if (ret == 0) goto lab1;
1040  if (ret < 0) return ret;
1041  }
1042  goto lab0;
1043  lab1:
1044  c = c1;
1045  { int c2 = c;
1046  { int ret = skip_utf8(p, c, 0, l, + 3);
1047  if (ret < 0) goto lab3;
1048  c = ret;
1049  }
1050  goto lab2;
1051  lab3:
1052  c = c2;
1053  }
1054  goto lab0;
1055  lab2:
1056  c = c1;
1057 
1058  { int ret = r_prelude();
1059  if (ret < 0) return ret;
1060  }
1061 
1062  { int ret = r_mark_regions();
1063  if (ret < 0) return ret;
1064  }
1065  lb = c; c = l;
1066 
1067  { int m3 = l - c; (void)m3;
1068  { int ret = r_Step_1a();
1069  if (ret < 0) return ret;
1070  }
1071  c = l - m3;
1072  }
1073  { int m4 = l - c; (void)m4;
1074  { int ret = r_exception2();
1075  if (ret == 0) goto lab5;
1076  if (ret < 0) return ret;
1077  }
1078  goto lab4;
1079  lab5:
1080  c = l - m4;
1081  { int m5 = l - c; (void)m5;
1082  { int ret = r_Step_1b();
1083  if (ret < 0) return ret;
1084  }
1085  c = l - m5;
1086  }
1087  { int m6 = l - c; (void)m6;
1088  { int ret = r_Step_1c();
1089  if (ret < 0) return ret;
1090  }
1091  c = l - m6;
1092  }
1093  { int m7 = l - c; (void)m7;
1094  { int ret = r_Step_2();
1095  if (ret < 0) return ret;
1096  }
1097  c = l - m7;
1098  }
1099  { int m8 = l - c; (void)m8;
1100  { int ret = r_Step_3();
1101  if (ret < 0) return ret;
1102  }
1103  c = l - m8;
1104  }
1105  { int m9 = l - c; (void)m9;
1106  { int ret = r_Step_4();
1107  if (ret < 0) return ret;
1108  }
1109  c = l - m9;
1110  }
1111  { int m10 = l - c; (void)m10;
1112  { int ret = r_Step_5();
1113  if (ret < 0) return ret;
1114  }
1115  c = l - m10;
1116  }
1117  }
1118  lab4:
1119  c = lb;
1120  { int c11 = c;
1121  { int ret = r_postlude();
1122  if (ret < 0) return ret;
1123  }
1124  c = c11;
1125  }
1126  }
1127 lab0:
1128  return 1;
1129 }
1130 
1132  : I_Y_found(0), I_p2(0), I_p1(0)
1133 {
1134 }
1135 
1137 {
1138 }
1139 
1140 std::string
1142 {
1143  return "english";
1144 }
#define s_5_22
#define s_7_1
#define s_3_10
#define s_9_6
#define s_9_4
static const symbol s_11[]
Definition: english.cc:396
#define s_0_2
#define s_7_7
static const symbol s_21[]
Definition: english.cc:406
static const symbol s_18[]
Definition: english.cc:403
#define s_3_3
#define s_7_9
#define s_9_0
unsigned char I_Y_found
Definition: english.h:9
static const symbol s_36[]
Definition: english.cc:421
static const symbol s_30[]
Definition: english.cc:415
static const struct among a_8[2]
Definition: english.cc:337
int find_among_b(const symbol *pool, const struct among *v, int v_size, const unsigned char *fnum, const among_function *f)
static const struct among a_1[3]
Definition: english.cc:223
#define s_10_3
#define s_5_17
#define s_7_2
#define s_0_1
#define s_2_1
static const symbol s_7[]
Definition: english.cc:392
static const symbol s_25[]
Definition: english.cc:410
static const struct among a_5[24]
Definition: english.cc:271
#define s_9_1
static const unsigned char g_valid_LI[]
Definition: english.cc:383
static const symbol s_17[]
Definition: english.cc:402
#define s_9_3
#define s_5_13
#define s_10_16
static const symbol s_26[]
Definition: english.cc:411
#define s_10_5
#define s_4_1
static const symbol s_8[]
Definition: english.cc:393
static const struct among a_3[13]
Definition: english.cc:242
#define s_7_8
#define s_5_5
#define s_3_2
static const symbol s_5[]
Definition: english.cc:390
static const symbol s_13[]
Definition: english.cc:398
#define s_10_17
static const symbol s_1[]
Definition: english.cc:386
#define s_5_1
int stem()
Virtual method implemented by the subclass to actually do the work.
Definition: english.cc:1036
#define s_10_10
static const struct among a_7[18]
Definition: english.cc:314
#define s_9_5
#define s_10_8
static const symbol s_34[]
Definition: english.cc:419
#define s_10_15
#define s_0_0
#define s_5_18
#define s_5_15
static const symbol s_19[]
Definition: english.cc:404
#define s_2_5
#define s_2_2
#define s_10_7
#define s_7_14
#define s_5_7
#define s_10_2
#define s_1_0
static const symbol s_31[]
Definition: english.cc:416
#define s_5_8
#define s_10_1
#define s_10_6
#define s_3_6
#define s_7_16
#define s_4_5
int slice_from_s(int s_size, const symbol *s)
static const struct among a_9[8]
Definition: english.cc:344
static const symbol s_29[]
Definition: english.cc:414
#define s_6_5
#define s_9_2
#define s_3_8
#define s_8_0
#define s_5_10
#define s_5_2
#define s_7_13
static const symbol s_23[]
Definition: english.cc:408
#define s_4_0
void insert_s(int c_bra, int c_ket, int s_size, const symbol *s)
#define s_2_0
unsigned short symbol
Definition: header.h:6
#define s_6_4
static const symbol s_38[]
Definition: english.cc:423
static const symbol s_15[]
Definition: english.cc:400
#define s_5_12
#define s_1_2
#define s_3_7
#define s_5_4
#define s_5_19
#define s_6_7
#define s_3_9
#define s_5_14
#define s_10_4
#define s_6_1
#define s_7_15
#define s_5_11
#define s_8_1
#define s_7_12
static const symbol s_9[]
Definition: english.cc:394
static const struct among a_10[18]
Definition: english.cc:357
#define s_5_23
static const symbol s_0[]
Definition: english.cc:385
#define s_7_10
#define s_4_3
#define s_10_12
#define s_10_11
#define s_5_9
#define s_9_7
static const unsigned char g_v_WXY[]
Definition: english.cc:381
static const struct among a_2[6]
Definition: english.cc:231
static const symbol s_4[]
Definition: english.cc:389
Definition: header.h:191
#define s_7_6
#define s_5_20
static const struct among a_0[3]
Definition: english.cc:215
#define s_10_0
#define s_5_16
static const symbol s_22[]
Definition: english.cc:407
static int skip_utf8(const symbol *p, int c, int lb, int l, int n)
Definition: steminternal.cc:94
#define s_5_3
static const symbol s_20[]
Definition: english.cc:405
std::string get_description() const
Return a string describing this object.
Definition: english.cc:1141
static const symbol s_35[]
Definition: english.cc:420
static const symbol s_2[]
Definition: english.cc:387
static const symbol s_16[]
Definition: english.cc:401
int in_grouping_b_U(const unsigned char *s, int min, int max, int repeat)
#define s_2_3
#define s_5_6
#define s_5_0
static const symbol s_33[]
Definition: english.cc:418
#define s_7_5
#define s_6_8
static const symbol s_28[]
Definition: english.cc:413
#define s_10_14
static const symbol s_32[]
Definition: english.cc:417
static const struct among a_6[9]
Definition: english.cc:300
#define s_3_12
#define s_2_4
static const symbol s_14[]
Definition: english.cc:399
#define s_3_4
int out_grouping_b_U(const unsigned char *s, int min, int max, int repeat)
static const symbol s_3[]
Definition: english.cc:388
#define s_1_1
#define s_6_2
#define s_10_9
static const symbol s_24[]
Definition: english.cc:409
static const symbol s_27[]
Definition: english.cc:412
static const struct among a_4[6]
Definition: english.cc:260
int find_among(const symbol *pool, const struct among *v, int v_size, const unsigned char *fnum, const among_function *f)
int out_grouping_U(const unsigned char *s, int min, int max, int repeat)
#define s_3_1
static const unsigned char g_v[]
Definition: english.cc:379
static const symbol s_12[]
Definition: english.cc:397
#define s_6_3
#define s_7_11
static const symbol s_pool[]
Definition: english.cc:8
static const symbol s_37[]
Definition: english.cc:422
static const symbol s_10[]
Definition: english.cc:395
#define s_6_6
#define s_7_0
#define s_7_17
#define s_10_13
#define s_3_5
#define s_7_3
#define s_7_4
#define s_4_4
#define s_3_11
#define s_5_21
#define s_6_0
int in_grouping_U(const unsigned char *s, int min, int max, int repeat)
#define s_4_2
static const symbol s_6[]
Definition: english.cc:391