xapian-core  1.4.27
porter.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 "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 
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 
266  if (!(I_p1 <= c)) return 0;
267  return 1;
268 }
269 
271  if (!(I_p2 <= c)) return 0;
272  return 1;
273 }
274 
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 
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 
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 
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 
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 
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 
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 
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 
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 
748  : I_Y_found(0), I_p2(0), I_p1(0)
749 {
750 }
751 
753 {
754 }
755 
756 std::string
758 {
759  return "porter";
760 }
#define s_3_1
#define s_3_0
#define s_1_4
static const symbol s_2[]
Definition: porter.cc:235
static const unsigned char g_v[]
Definition: porter.cc:229
static const symbol s_1[]
Definition: porter.cc:234
#define s_3_15
#define s_1_3
#define s_4_0
int stem()
Virtual method implemented by the subclass to actually do the work.
Definition: porter.cc:591
#define s_5_1
int find_among_b(const symbol *pool, const struct among *v, int v_size, const unsigned char *fnum, const among_function *f)
#define s_0_2
static const symbol s_3[]
Definition: porter.cc:236
static const symbol s_12[]
Definition: porter.cc:245
#define s_5_6
static const struct among a_1[13]
Definition: porter.cc:143
#define s_1_10
static const symbol s_8[]
Definition: porter.cc:241
static const symbol s_21[]
Definition: porter.cc:254
#define s_2_1
#define s_5_16
#define s_5_18
static const unsigned char g_v_WXY[]
Definition: porter.cc:231
#define s_4_5
static const symbol s_19[]
Definition: porter.cc:252
static const symbol s_20[]
Definition: porter.cc:253
#define s_5_3
static const struct among a_3[20]
Definition: porter.cc:169
#define s_5_7
static const symbol s_0[]
Definition: porter.cc:233
static const symbol s_18[]
Definition: porter.cc:251
static const symbol s_pool[]
Definition: porter.cc:9
#define s_5_10
#define s_3_6
#define s_5_0
int slice_from_s(int s_size, const symbol *s)
#define s_1_11
#define s_5_11
unsigned char I_Y_found
Definition: porter.h:9
#define s_5_2
#define s_3_10
#define s_3_5
#define s_4_1
static const symbol s_9[]
Definition: porter.cc:242
#define s_3_3
#define s_5_13
#define s_1_1
static const symbol s_13[]
Definition: porter.cc:246
static const symbol s_7[]
Definition: porter.cc:240
#define s_5_9
void insert_s(int c_bra, int c_ket, int s_size, const symbol *s)
unsigned short symbol
Definition: header.h:6
#define s_0_1
#define s_1_7
#define s_5_4
#define s_5_15
static const symbol s_10[]
Definition: porter.cc:243
std::string get_description() const
Return a string describing this object.
Definition: porter.cc:757
#define s_5_8
#define s_3_17
#define s_1_5
#define s_3_2
#define s_3_4
static const struct among a_4[7]
Definition: porter.cc:194
#define s_3_8
Definition: header.h:191
#define s_0_0
Definition: porter.cc:8
static int skip_utf8(const symbol *p, int c, int lb, int l, int n)
Definition: steminternal.cc:94
static const struct among a_5[19]
Definition: porter.cc:206
#define s_1_8
#define s_3_13
#define s_3_7
#define s_3_12
#define s_3_16
int in_grouping_b_U(const unsigned char *s, int min, int max, int repeat)
#define s_1_9
#define s_1_12
#define s_0_3
static const symbol s_5[]
Definition: porter.cc:238
#define s_1_2
#define s_5_5
static const struct among a_2[3]
Definition: porter.cc:161
#define s_4_3
static const symbol s_6[]
Definition: porter.cc:239
#define s_3_19
#define s_3_18
static const symbol s_23[]
Definition: porter.cc:256
static const symbol s_15[]
Definition: porter.cc:248
int out_grouping_b_U(const unsigned char *s, int min, int max, int repeat)
#define s_3_9
#define s_5_17
#define s_1_6
#define s_2_0
#define s_5_12
static const symbol s_17[]
Definition: porter.cc:250
int out_grouping_U(const unsigned char *s, int min, int max, int repeat)
static const symbol s_4[]
Definition: porter.cc:237
#define s_4_4
#define s_2_2
static const symbol s_22[]
Definition: porter.cc:255
#define s_3_11
static const symbol s_14[]
Definition: porter.cc:247
#define s_4_6
#define s_3_14
#define s_4_2
static const symbol s_16[]
Definition: porter.cc:249
int in_grouping_U(const unsigned char *s, int min, int max, int repeat)
static const symbol s_11[]
Definition: porter.cc:244
#define s_5_14
static const struct among a_0[4]
Definition: porter.cc:134