xapian-core  2.1.0
esperanto.cc
Go to the documentation of this file.
1 /* Generated from esperanto.sbl by Snowball 3.1.1 - https://snowballstem.org/ */
2 
3 #include <config.h>
4 
5 #define SNOWBALL_RUNTIME_THROW_EXCEPTIONS
6 #include "esperanto.h"
7 
8 #include <stddef.h>
9 
11 
12 static const symbol s_0[] = { 0xC4, 0x89 };
13 static const symbol s_1[] = { 0xC4, 0x9D };
14 static const symbol s_2[] = { 0xC4, 0xA5 };
15 static const symbol s_3[] = { 0xC4, 0xB5 };
16 static const symbol s_4[] = { 0xC5, 0x9D };
17 static const symbol s_5[] = { 0xC5, 0xAD };
18 static const symbol s_6[] = { 'a' };
19 static const symbol s_7[] = { 'e' };
20 static const symbol s_8[] = { 'i' };
21 static const symbol s_9[] = { 'o' };
22 static const symbol s_10[] = { 'u' };
23 static const symbol s_11[] = { 's', 't' };
24 static const symbol s_12[] = { 'e' };
25 static const symbol s_13[] = { 'a' };
26 static const symbol s_14[] = { 'u', 'n' };
27 static const symbol s_15[] = { 'u' };
28 static const symbol s_16[] = { 'a', 0xC5, 0xAD };
29 static const symbol s_17[] = { 'o' };
30 
31 static const symbol s_0_1[1] = { '-' };
32 static const symbol s_0_2[2] = { 'c', 'x' };
33 static const symbol s_0_3[2] = { 'g', 'x' };
34 static const symbol s_0_4[2] = { 'h', 'x' };
35 static const symbol s_0_5[2] = { 'j', 'x' };
36 static const symbol s_0_6[1] = { 'q' };
37 static const symbol s_0_7[2] = { 's', 'x' };
38 static const symbol s_0_8[2] = { 'u', 'x' };
39 static const symbol s_0_9[1] = { 'w' };
40 static const symbol s_0_10[1] = { 'x' };
41 static const symbol s_0_11[1] = { 'y' };
42 static const symbol s_0_12[2] = { 0xC3, 0xA1 };
43 static const symbol s_0_13[2] = { 0xC3, 0xA9 };
44 static const symbol s_0_14[2] = { 0xC3, 0xAD };
45 static const symbol s_0_15[2] = { 0xC3, 0xB3 };
46 static const symbol s_0_16[2] = { 0xC3, 0xBA };
47 static const struct among a_0[17] = {
48 { 0, 0, 0, 14, 0},
49 { 1, s_0_1, -1, 13, 0},
50 { 2, s_0_2, -2, 1, 0},
51 { 2, s_0_3, -3, 2, 0},
52 { 2, s_0_4, -4, 3, 0},
53 { 2, s_0_5, -5, 4, 0},
54 { 1, s_0_6, -6, 12, 0},
55 { 2, s_0_7, -7, 5, 0},
56 { 2, s_0_8, -8, 6, 0},
57 { 1, s_0_9, -9, 12, 0},
58 { 1, s_0_10, -10, 12, 0},
59 { 1, s_0_11, -11, 12, 0},
60 { 2, s_0_12, -12, 7, 0},
61 { 2, s_0_13, -13, 8, 0},
62 { 2, s_0_14, -14, 9, 0},
63 { 2, s_0_15, -15, 10, 0},
64 { 2, s_0_16, -16, 11, 0}
65 };
66 
67 static const symbol s_1_0[2] = { 'a', 's' };
68 static const symbol s_1_1[1] = { 'i' };
69 static const symbol s_1_2[2] = { 'i', 's' };
70 static const symbol s_1_3[2] = { 'o', 's' };
71 static const symbol s_1_4[1] = { 'u' };
72 static const symbol s_1_5[2] = { 'u', 's' };
73 static const struct among a_1[6] = {
74 { 2, s_1_0, 0, -1, 0},
75 { 1, s_1_1, 0, -1, 0},
76 { 2, s_1_2, -1, -1, 0},
77 { 2, s_1_3, 0, -1, 0},
78 { 1, s_1_4, 0, -1, 0},
79 { 2, s_1_5, -1, -1, 0}
80 };
81 
82 static const symbol s_2_0[2] = { 'c', 'i' };
83 static const symbol s_2_1[2] = { 'g', 'i' };
84 static const symbol s_2_2[2] = { 'h', 'i' };
85 static const symbol s_2_3[2] = { 'l', 'i' };
86 static const symbol s_2_4[3] = { 'i', 'l', 'i' };
87 static const symbol s_2_5[4] = { 0xC5, 0x9D, 'l', 'i' };
88 static const symbol s_2_6[2] = { 'm', 'i' };
89 static const symbol s_2_7[2] = { 'n', 'i' };
90 static const symbol s_2_8[3] = { 'o', 'n', 'i' };
91 static const symbol s_2_9[2] = { 'r', 'i' };
92 static const symbol s_2_10[2] = { 's', 'i' };
93 static const symbol s_2_11[2] = { 'v', 'i' };
94 static const symbol s_2_12[3] = { 'i', 'v', 'i' };
95 static const symbol s_2_13[3] = { 0xC4, 0x9D, 'i' };
96 static const symbol s_2_14[3] = { 0xC5, 0x9D, 'i' };
97 static const symbol s_2_15[4] = { 'i', 0xC5, 0x9D, 'i' };
98 static const symbol s_2_16[6] = { 'm', 'a', 'l', 0xC5, 0x9D, 'i' };
99 static const struct among a_2[17] = {
100 { 2, s_2_0, 0, -1, 0},
101 { 2, s_2_1, 0, -1, 0},
102 { 2, s_2_2, 0, -1, 0},
103 { 2, s_2_3, 0, -1, 0},
104 { 3, s_2_4, -1, -1, 0},
105 { 4, s_2_5, -2, -1, 0},
106 { 2, s_2_6, 0, -1, 0},
107 { 2, s_2_7, 0, -1, 0},
108 { 3, s_2_8, -1, -1, 0},
109 { 2, s_2_9, 0, -1, 0},
110 { 2, s_2_10, 0, -1, 0},
111 { 2, s_2_11, 0, -1, 0},
112 { 3, s_2_12, -1, -1, 0},
113 { 3, s_2_13, 0, -1, 0},
114 { 3, s_2_14, 0, -1, 0},
115 { 4, s_2_15, -1, -1, 0},
116 { 6, s_2_16, -2, -1, 0}
117 };
118 
119 static const symbol s_3_0[3] = { 'a', 'm', 'b' };
120 static const symbol s_3_1[4] = { 'b', 'a', 'l', 'd' };
121 static const symbol s_3_2[7] = { 'm', 'a', 'l', 'b', 'a', 'l', 'd' };
122 static const symbol s_3_3[4] = { 'm', 'o', 'r', 'g' };
123 static const symbol s_3_4[8] = { 'p', 'o', 's', 't', 'm', 'o', 'r', 'g' };
124 static const symbol s_3_5[3] = { 'a', 'd', 'i' };
125 static const symbol s_3_6[4] = { 'h', 'o', 'd', 'i' };
126 static const symbol s_3_7[3] = { 'a', 'n', 'k' };
127 static const symbol s_3_8[5] = { 0xC4, 0x89, 'i', 'r', 'k' };
128 static const symbol s_3_9[8] = { 't', 'u', 't', 0xC4, 0x89, 'i', 'r', 'k' };
129 static const symbol s_3_10[5] = { 'p', 'r', 'e', 's', 'k' };
130 static const symbol s_3_11[5] = { 'a', 'l', 'm', 'e', 'n' };
131 static const symbol s_3_12[4] = { 'a', 'p', 'e', 'n' };
132 static const symbol s_3_13[4] = { 'h', 'i', 'e', 'r' };
133 static const symbol s_3_14[10] = { 'a', 'n', 't', 'a', 0xC5, 0xAD, 'h', 'i', 'e', 'r' };
134 static const symbol s_3_15[5] = { 'm', 'a', 'l', 'g', 'r' };
135 static const symbol s_3_16[5] = { 'a', 'n', 'k', 'o', 'r' };
136 static const symbol s_3_17[5] = { 'k', 'o', 'n', 't', 'r' };
137 static const symbol s_3_18[6] = { 'a', 'n', 's', 't', 'a', 't' };
138 static const symbol s_3_19[4] = { 'k', 'v', 'a', 'z' };
139 static const struct among a_3[20] = {
140 { 3, s_3_0, 0, -1, 0},
141 { 4, s_3_1, 0, -1, 0},
142 { 7, s_3_2, -1, -1, 0},
143 { 4, s_3_3, 0, -1, 0},
144 { 8, s_3_4, -1, -1, 0},
145 { 3, s_3_5, 0, -1, 0},
146 { 4, s_3_6, 0, -1, 0},
147 { 3, s_3_7, 0, -1, 0},
148 { 5, s_3_8, 0, -1, 0},
149 { 8, s_3_9, -1, -1, 0},
150 { 5, s_3_10, 0, -1, 0},
151 { 5, s_3_11, 0, -1, 0},
152 { 4, s_3_12, 0, -1, 0},
153 { 4, s_3_13, 0, -1, 0},
154 { 10, s_3_14, -1, -1, 0},
155 { 5, s_3_15, 0, -1, 0},
156 { 5, s_3_16, 0, -1, 0},
157 { 5, s_3_17, 0, -1, 0},
158 { 6, s_3_18, 0, -1, 0},
159 { 4, s_3_19, 0, -1, 0}
160 };
161 
162 static const symbol s_4_0[4] = { 'a', 'l', 'i', 'u' };
163 static const symbol s_4_1[3] = { 'u', 'n', 'u' };
164 static const struct among a_4[2] = {
165 { 4, s_4_0, 0, -1, 0},
166 { 3, s_4_1, 0, -1, 0}
167 };
168 
169 static const symbol s_5_0[3] = { 'a', 'h', 'a' };
170 static const symbol s_5_1[4] = { 'h', 'a', 'h', 'a' };
171 static const symbol s_5_2[8] = { 'h', 'a', 'l', 'e', 'l', 'u', 'j', 'a' };
172 static const symbol s_5_3[4] = { 'h', 'o', 'l', 'a' };
173 static const symbol s_5_4[6] = { 'h', 'o', 's', 'a', 'n', 'a' };
174 static const symbol s_5_5[6] = { 'm', 'a', 'l', 't', 'r', 'a' };
175 static const symbol s_5_6[4] = { 'h', 'u', 'r', 'a' };
176 static const symbol s_5_7[6] = { 0xC4, 0xA5, 'a', 0xC4, 0xA5, 'a' };
177 static const symbol s_5_8[4] = { 'e', 'k', 'd', 'e' };
178 static const symbol s_5_9[4] = { 'e', 'l', 'd', 'e' };
179 static const symbol s_5_10[5] = { 'd', 'i', 's', 'd', 'e' };
180 static const symbol s_5_11[3] = { 'e', 'h', 'e' };
181 static const symbol s_5_12[6] = { 'm', 'a', 'l', 't', 'r', 'e' };
182 static const symbol s_5_13[9] = { 'd', 'i', 'r', 'l', 'i', 'd', 'i', 'd', 'i' };
183 static const symbol s_5_14[6] = { 'm', 'a', 'l', 'p', 'l', 'i' };
184 static const symbol s_5_15[6] = { 'm', 'a', 'l', 0xC4, 0x89, 'i' };
185 static const symbol s_5_16[6] = { 'm', 'a', 'l', 'k', 'a', 'j' };
186 static const symbol s_5_17[4] = { 'a', 'm', 'e', 'n' };
187 static const symbol s_5_18[5] = { 't', 'a', 'm', 'e', 'n' };
188 static const symbol s_5_19[3] = { 'o', 'h', 'o' };
189 static const symbol s_5_20[6] = { 'm', 'a', 'l', 't', 'r', 'o' };
190 static const symbol s_5_21[5] = { 'm', 'i', 'n', 'u', 's' };
191 static const symbol s_5_22[3] = { 'u', 'h', 'u' };
192 static const symbol s_5_23[3] = { 'm', 'u', 'u' };
193 static const struct among a_5[24] = {
194 { 3, s_5_0, 0, -1, 0},
195 { 4, s_5_1, -1, -1, 0},
196 { 8, s_5_2, 0, -1, 0},
197 { 4, s_5_3, 0, -1, 0},
198 { 6, s_5_4, 0, -1, 0},
199 { 6, s_5_5, 0, -1, 0},
200 { 4, s_5_6, 0, -1, 0},
201 { 6, s_5_7, 0, -1, 0},
202 { 4, s_5_8, 0, -1, 0},
203 { 4, s_5_9, 0, -1, 0},
204 { 5, s_5_10, 0, -1, 0},
205 { 3, s_5_11, 0, -1, 0},
206 { 6, s_5_12, 0, -1, 0},
207 { 9, s_5_13, 0, -1, 0},
208 { 6, s_5_14, 0, -1, 0},
209 { 6, s_5_15, 0, -1, 0},
210 { 6, s_5_16, 0, -1, 0},
211 { 4, s_5_17, 0, -1, 0},
212 { 5, s_5_18, -1, -1, 0},
213 { 3, s_5_19, 0, -1, 0},
214 { 6, s_5_20, 0, -1, 0},
215 { 5, s_5_21, 0, -1, 0},
216 { 3, s_5_22, 0, -1, 0},
217 { 3, s_5_23, 0, -1, 0}
218 };
219 
220 static const symbol s_6_0[3] = { 't', 'r', 'i' };
221 static const symbol s_6_1[2] = { 'd', 'u' };
222 static const symbol s_6_2[3] = { 'u', 'n', 'u' };
223 static const struct among a_6[3] = {
224 { 3, s_6_0, 0, -1, 0},
225 { 2, s_6_1, 0, -1, 0},
226 { 3, s_6_2, 0, -1, 0}
227 };
228 
229 static const symbol s_7_0[3] = { 'd', 'e', 'k' };
230 static const symbol s_7_1[4] = { 'c', 'e', 'n', 't' };
231 static const struct among a_7[2] = {
232 { 3, s_7_0, 0, -1, 0},
233 { 4, s_7_1, 0, -1, 0}
234 };
235 
236 static const symbol s_8_0[1] = { 'k' };
237 static const symbol s_8_1[4] = { 'k', 'e', 'l', 'k' };
238 static const symbol s_8_2[3] = { 'n', 'e', 'n' };
239 static const symbol s_8_3[1] = { 't' };
240 static const symbol s_8_4[4] = { 'm', 'u', 'l', 't' };
241 static const symbol s_8_5[4] = { 's', 'a', 'm', 't' };
242 static const symbol s_8_6[2] = { 0xC4, 0x89 };
243 static const struct among a_8[7] = {
244 { 1, s_8_0, 0, -1, 0},
245 { 4, s_8_1, -1, -1, 0},
246 { 3, s_8_2, 0, -1, 0},
247 { 1, s_8_3, 0, -1, 0},
248 { 4, s_8_4, -1, -1, 0},
249 { 4, s_8_5, -2, -1, 0},
250 { 2, s_8_6, 0, -1, 0}
251 };
252 
253 static const symbol s_9_0[1] = { 'a' };
254 static const symbol s_9_1[1] = { 'e' };
255 static const symbol s_9_2[1] = { 'i' };
256 static const symbol s_9_3[1] = { 'j' };
257 static const symbol s_9_4[2] = { 'a', 'j' };
258 static const symbol s_9_5[2] = { 'o', 'j' };
259 static const symbol s_9_6[1] = { 'n' };
260 static const symbol s_9_7[2] = { 'a', 'n' };
261 static const symbol s_9_8[2] = { 'e', 'n' };
262 static const symbol s_9_9[2] = { 'j', 'n' };
263 static const symbol s_9_10[3] = { 'a', 'j', 'n' };
264 static const symbol s_9_11[3] = { 'o', 'j', 'n' };
265 static const symbol s_9_12[2] = { 'o', 'n' };
266 static const symbol s_9_13[1] = { 'o' };
267 static const symbol s_9_14[2] = { 'a', 's' };
268 static const symbol s_9_15[2] = { 'i', 's' };
269 static const symbol s_9_16[2] = { 'o', 's' };
270 static const symbol s_9_17[2] = { 'u', 's' };
271 static const symbol s_9_18[1] = { 'u' };
272 static const struct among a_9[19] = {
273 { 1, s_9_0, 0, -1, 0},
274 { 1, s_9_1, 0, -1, 0},
275 { 1, s_9_2, 0, -1, 0},
276 { 1, s_9_3, 0, 1, 0},
277 { 2, s_9_4, -1, -1, 0},
278 { 2, s_9_5, -2, -1, 0},
279 { 1, s_9_6, 0, 1, 0},
280 { 2, s_9_7, -1, -1, 0},
281 { 2, s_9_8, -2, -1, 0},
282 { 2, s_9_9, -3, 1, 0},
283 { 3, s_9_10, -1, -1, 0},
284 { 3, s_9_11, -2, -1, 0},
285 { 2, s_9_12, -6, -1, 0},
286 { 1, s_9_13, 0, -1, 0},
287 { 2, s_9_14, 0, -1, 0},
288 { 2, s_9_15, 0, -1, 0},
289 { 2, s_9_16, 0, -1, 0},
290 { 2, s_9_17, 0, -1, 0},
291 { 1, s_9_18, 0, -1, 0}
292 };
293 
294 static const unsigned char g_vowel[] = { 17, 65, 16 };
295 
296 static const unsigned char g_aou[] = { 1, 64, 16 };
297 
298 static const unsigned char g_digit[] = { 255, 3 };
299 
301  int among_var;
302  bool b_foreign;
303  {
304  int v_1 = z->c;
305  b_foreign = false;
306  while (1) {
307  int v_2 = z->c;
308  z->bra = z->c;
309  among_var = find_among(z, a_0, 17, 0);
310  z->ket = z->c;
311  switch (among_var) {
312  case 1:
313  slice_from_s(z, 2, s_0);
314  break;
315  case 2:
316  slice_from_s(z, 2, s_1);
317  break;
318  case 3:
319  slice_from_s(z, 2, s_2);
320  break;
321  case 4:
322  slice_from_s(z, 2, s_3);
323  break;
324  case 5:
325  slice_from_s(z, 2, s_4);
326  break;
327  case 6:
328  slice_from_s(z, 2, s_5);
329  break;
330  case 7:
331  slice_from_s(z, 1, s_6);
332  b_foreign = true;
333  break;
334  case 8:
335  slice_from_s(z, 1, s_7);
336  b_foreign = true;
337  break;
338  case 9:
339  slice_from_s(z, 1, s_8);
340  b_foreign = true;
341  break;
342  case 10:
343  slice_from_s(z, 1, s_9);
344  b_foreign = true;
345  break;
346  case 11:
347  slice_from_s(z, 1, s_10);
348  b_foreign = true;
349  break;
350  case 12:
351  b_foreign = true;
352  break;
353  case 13:
354  b_foreign = false;
355  break;
356  case 14:
357  {
358  int ret = skip_utf8(z->p, z->c, z->l, 1);
359  if (ret < 0) goto lab0;
360  z->c = ret;
361  }
362  break;
363  }
364  continue;
365  lab0:
366  z->c = v_2;
367  break;
368  }
369  if (b_foreign) return 0;
370  z->c = v_1;
371  }
372  {
373  int v_3 = z->c;
374  z->bra = z->c;
375  if (z->c == z->l || z->p[z->c] != '\'') goto lab1;
376  z->c++;
377  z->ket = z->c;
378  if (!(eq_s(z, 2, s_11))) goto lab1;
379  if (z->c >= z->l || z->p[z->c + 0] >> 5 != 3 || !((2130434 >> (z->p[z->c + 0] & 0x1f)) & 1)) goto lab1;
380  if (!find_among(z, a_1, 6, 0)) goto lab1;
381  if (z->c < z->l) goto lab1;
382  slice_from_s(z, 1, s_12);
383  lab1:
384  z->c = v_3;
385  }
386  z->lb = z->c; z->c = z->l;
387  {
388  int v_4 = z->l - z->c;
389  z->ket = z->c;
390  {
391  int v_5 = z->l - z->c;
392  if (z->c <= z->lb || z->p[z->c - 1] != 'n') { z->c = z->l - v_5; goto lab3; }
393  z->c--;
394  lab3:
395  ;
396  }
397  z->bra = z->c;
398  if (z->c - 1 <= z->lb || z->p[z->c - 1] != 105) goto lab2;
399  if (!find_among_b(z, a_2, 17, 0)) goto lab2;
400  do {
401  if (z->c > z->lb) goto lab4;
402  break;
403  lab4:
404  if (z->c <= z->lb || z->p[z->c - 1] != '-') goto lab2;
405  z->c--;
406  } while (0);
407  slice_del(z);
408  return 0;
409  lab2:
410  z->c = z->l - v_4;
411  }
412  {
413  int v_6 = z->l - z->c;
414  z->ket = z->c;
415  if (z->c <= z->lb || z->p[z->c - 1] != '\'') goto lab5;
416  z->c--;
417  z->bra = z->c;
418  do {
419  int v_7 = z->l - z->c;
420  if (z->c <= z->lb || z->p[z->c - 1] != 'l') goto lab6;
421  z->c--;
422  if (z->c > z->lb) goto lab6;
423  slice_from_s(z, 1, s_13);
424  break;
425  lab6:
426  z->c = z->l - v_7;
427  if (!(eq_s_b(z, 2, s_14))) goto lab7;
428  if (z->c > z->lb) goto lab7;
429  slice_from_s(z, 1, s_15);
430  break;
431  lab7:
432  z->c = z->l - v_7;
433  if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68438676 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8;
434  if (!find_among_b(z, a_3, 20, 0)) goto lab8;
435  do {
436  if (z->c > z->lb) goto lab9;
437  break;
438  lab9:
439  if (z->c <= z->lb || z->p[z->c - 1] != '-') goto lab8;
440  z->c--;
441  } while (0);
442  slice_from_s(z, 3, s_16);
443  break;
444  lab8:
445  z->c = z->l - v_7;
446  slice_from_s(z, 1, s_17);
447  } while (0);
448  lab5:
449  z->c = z->l - v_6;
450  }
451  {
452  int v_8 = z->l - z->c;
453  z->ket = z->c;
454  z->bra = z->c;
455  {
456  int v_9 = z->l - z->c;
457  do {
458  int v_10 = z->l - z->c;
459  {
460  int v_11 = z->l - z->c;
461  if (z->c <= z->lb || z->p[z->c - 1] != 'n') { z->c = z->l - v_11; goto lab12; }
462  z->c--;
463  lab12:
464  ;
465  }
466  z->bra = z->c;
467  if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab11;
468  z->c--;
469  break;
470  lab11:
471  z->c = z->l - v_10;
472  {
473  int v_12 = z->l - z->c;
474  if (z->c <= z->lb || z->p[z->c - 1] != 'n') { z->c = z->l - v_12; goto lab13; }
475  z->c--;
476  lab13:
477  ;
478  }
479  {
480  int v_13 = z->l - z->c;
481  if (z->c <= z->lb || z->p[z->c - 1] != 'j') { z->c = z->l - v_13; goto lab14; }
482  z->c--;
483  lab14:
484  ;
485  }
486  z->bra = z->c;
487  if (in_grouping_b_U(z, g_aou, 97, 117, 0)) goto lab10;
488  } while (0);
489  if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab10;
490  z->c--;
491  {
492  int v_14 = z->l - z->c;
493  if (!find_among_b(z, a_8, 7, 0)) { z->c = z->l - v_14; goto lab15; }
494  lab15:
495  ;
496  }
497  do {
498  if (z->c > z->lb) goto lab16;
499  break;
500  lab16:
501  if (z->c <= z->lb || z->p[z->c - 1] != '-') goto lab10;
502  z->c--;
503  } while (0);
504  z->c = z->l - v_9;
505  }
506  slice_del(z);
507  return 0;
508  lab10:
509  z->c = z->l - v_8;
510  }
511  {
512  int v_15 = z->l - z->c;
513  if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2672162 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab17;
514  if (!find_among_b(z, a_5, 24, 0)) goto lab17;
515  do {
516  if (z->c > z->lb) goto lab18;
517  break;
518  lab18:
519  if (z->c <= z->lb || z->p[z->c - 1] != '-') goto lab17;
520  z->c--;
521  } while (0);
522  return 0;
523  lab17:
524  z->c = z->l - v_15;
525  }
526  {
527  int v_16 = z->l - z->c;
528  if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 117)) goto lab19;
529  if (!find_among_b(z, a_6, 3, 0)) goto lab19;
530  if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 107 && z->p[z->c - 1] != 116)) goto lab19;
531  if (!find_among_b(z, a_7, 2, 0)) goto lab19;
532  return 0;
533  lab19:
534  z->c = z->l - v_16;
535  }
536  {
537  int v_17 = z->l - z->c;
538  z->ket = z->c;
539  {
540  int v_18 = z->l - z->c;
541  if (z->c <= z->lb || z->p[z->c - 1] != 'n') { z->c = z->l - v_18; goto lab21; }
542  z->c--;
543  lab21:
544  ;
545  }
546  {
547  int v_19 = z->l - z->c;
548  if (z->c <= z->lb || z->p[z->c - 1] != 'j') { z->c = z->l - v_19; goto lab22; }
549  z->c--;
550  lab22:
551  ;
552  }
553  z->bra = z->c;
554  if (z->c - 2 <= z->lb || z->p[z->c - 1] != 117) goto lab20;
555  if (!find_among_b(z, a_4, 2, 0)) goto lab20;
556  do {
557  if (z->c > z->lb) goto lab23;
558  break;
559  lab23:
560  if (z->c <= z->lb || z->p[z->c - 1] != '-') goto lab20;
561  z->c--;
562  } while (0);
563  slice_del(z);
564  return 0;
565  lab20:
566  z->c = z->l - v_17;
567  }
568  {
569  int v_20 = z->l - z->c;
570  do {
571  int v_21 = z->l - z->c;
572  for (int i = 2; i > 0; i--) {
573  {
574  int ret = out_grouping_b_U(z, g_vowel, 97, 117, 1);
575  if (ret < 0) goto lab24;
576  z->c -= ret;
577  }
578  }
579  break;
580  lab24:
581  z->c = z->l - v_21;
582  while (1) {
583  if (z->c <= z->lb || z->p[z->c - 1] != '-') goto lab26;
584  z->c--;
585  break;
586  lab26:
587  {
588  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
589  if (ret < 0) goto lab25;
590  z->c = ret;
591  }
592  }
593  {
594  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
595  if (ret < 0) goto lab25;
596  z->c = ret;
597  }
598  break;
599  lab25:
600  z->c = z->l - v_21;
601  {
602  int ret = out_grouping_b_U(z, g_digit, 48, 57, 1);
603  if (ret < 0) return 0;
604  z->c -= ret;
605  }
606  } while (0);
607  z->c = z->l - v_20;
608  }
609  z->ket = z->c;
610  if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2672162 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
611  among_var = find_among_b(z, a_9, 19, 0);
612  if (!among_var) return 0;
613  switch (among_var) {
614  case 1:
615  {
616  int v_22 = z->l - z->c;
617  do {
618  if (z->c <= z->lb || z->p[z->c - 1] != '-') goto lab27;
619  z->c--;
620  break;
621  lab27:
622  if (in_grouping_b_U(z, g_digit, 48, 57, 0)) return 0;
623  } while (0);
624  z->c = z->l - v_22;
625  }
626  break;
627  }
628  {
629  int v_23 = z->l - z->c;
630  if (z->c <= z->lb || z->p[z->c - 1] != '-') { z->c = z->l - v_23; goto lab28; }
631  z->c--;
632  lab28:
633  ;
634  }
635  z->bra = z->c;
636  slice_del(z);
637  z->c = z->lb;
638  return 1;
639 }
unsigned char symbol
Definition: api.h:4
static int stem(struct SN_env *z)
Definition: esperanto.cc:300
static const symbol s_2_12[3]
Definition: esperanto.cc:94
static const symbol s_8_6[2]
Definition: esperanto.cc:242
static const symbol s_1_5[2]
Definition: esperanto.cc:72
static const symbol s_2[]
Definition: esperanto.cc:14
static const symbol s_0_4[2]
Definition: esperanto.cc:34
static const unsigned char g_aou[]
Definition: esperanto.cc:296
static const symbol s_5_20[6]
Definition: esperanto.cc:189
static const symbol s_9_17[2]
Definition: esperanto.cc:270
static const symbol s_3_2[7]
Definition: esperanto.cc:121
static const struct among a_3[20]
Definition: esperanto.cc:139
static const struct among a_6[3]
Definition: esperanto.cc:223
static const symbol s_2_2[2]
Definition: esperanto.cc:84
static const symbol s_3_10[5]
Definition: esperanto.cc:129
static const symbol s_0_5[2]
Definition: esperanto.cc:35
static const symbol s_4[]
Definition: esperanto.cc:16
static const struct among a_9[19]
Definition: esperanto.cc:272
static const symbol s_4_1[3]
Definition: esperanto.cc:163
static const symbol s_5_16[6]
Definition: esperanto.cc:185
static const symbol s_3_7[3]
Definition: esperanto.cc:126
static const symbol s_5_6[4]
Definition: esperanto.cc:175
static const symbol s_5_22[3]
Definition: esperanto.cc:191
static const symbol s_0_13[2]
Definition: esperanto.cc:43
static const symbol s_9_0[1]
Definition: esperanto.cc:253
static const symbol s_2_9[2]
Definition: esperanto.cc:91
static const symbol s_5_17[4]
Definition: esperanto.cc:186
static const symbol s_3_14[10]
Definition: esperanto.cc:133
static const symbol s_0_11[1]
Definition: esperanto.cc:41
static const symbol s_3_17[5]
Definition: esperanto.cc:136
static const symbol s_0_8[2]
Definition: esperanto.cc:38
static const symbol s_1_2[2]
Definition: esperanto.cc:69
static const symbol s_9_6[1]
Definition: esperanto.cc:259
static const struct among a_7[2]
Definition: esperanto.cc:231
static const symbol s_2_0[2]
Definition: esperanto.cc:82
static const symbol s_5_2[8]
Definition: esperanto.cc:171
static const symbol s_1_3[2]
Definition: esperanto.cc:70
static const symbol s_9_12[2]
Definition: esperanto.cc:265
static const symbol s_1_0[2]
Definition: esperanto.cc:67
static const symbol s_5_10[5]
Definition: esperanto.cc:179
static const symbol s_6[]
Definition: esperanto.cc:18
static const symbol s_0_15[2]
Definition: esperanto.cc:45
static const symbol s_0_6[1]
Definition: esperanto.cc:36
static const symbol s_9_15[2]
Definition: esperanto.cc:268
static const symbol s_7_1[4]
Definition: esperanto.cc:230
static const symbol s_1_4[1]
Definition: esperanto.cc:71
static const symbol s_3[]
Definition: esperanto.cc:15
static const symbol s_2_15[4]
Definition: esperanto.cc:97
static const symbol s_5_12[6]
Definition: esperanto.cc:181
static const symbol s_3_0[3]
Definition: esperanto.cc:119
static const symbol s_9_10[3]
Definition: esperanto.cc:263
static const symbol s_9_7[2]
Definition: esperanto.cc:260
static const symbol s_0_7[2]
Definition: esperanto.cc:37
static const symbol s_9_18[1]
Definition: esperanto.cc:271
static const symbol s_0_16[2]
Definition: esperanto.cc:46
static const symbol s_3_4[8]
Definition: esperanto.cc:123
static const symbol s_5_19[3]
Definition: esperanto.cc:188
static const symbol s_5_8[4]
Definition: esperanto.cc:177
static const symbol s_5_0[3]
Definition: esperanto.cc:169
static const symbol s_2_11[2]
Definition: esperanto.cc:93
static const symbol s_7[]
Definition: esperanto.cc:19
static const symbol s_13[]
Definition: esperanto.cc:25
static const symbol s_8_2[3]
Definition: esperanto.cc:238
static const symbol s_5_18[5]
Definition: esperanto.cc:187
static const symbol s_6_2[3]
Definition: esperanto.cc:222
static const symbol s_0_9[1]
Definition: esperanto.cc:39
static const symbol s_3_6[4]
Definition: esperanto.cc:125
static const symbol s_2_10[2]
Definition: esperanto.cc:92
static const symbol s_3_12[4]
Definition: esperanto.cc:131
static const symbol s_9_14[2]
Definition: esperanto.cc:267
static const symbol s_7_0[3]
Definition: esperanto.cc:229
static const symbol s_3_11[5]
Definition: esperanto.cc:130
static const symbol s_3_9[8]
Definition: esperanto.cc:128
static const symbol s_2_14[3]
Definition: esperanto.cc:96
static const symbol s_3_3[4]
Definition: esperanto.cc:122
static const symbol s_5_23[3]
Definition: esperanto.cc:192
static const symbol s_8_4[4]
Definition: esperanto.cc:240
static const symbol s_0_10[1]
Definition: esperanto.cc:40
static const symbol s_5_4[6]
Definition: esperanto.cc:173
static const symbol s_2_4[3]
Definition: esperanto.cc:86
static const symbol s_5_3[4]
Definition: esperanto.cc:172
static const symbol s_9_9[2]
Definition: esperanto.cc:262
static const symbol s_5_5[6]
Definition: esperanto.cc:174
static const symbol s_16[]
Definition: esperanto.cc:28
static const symbol s_14[]
Definition: esperanto.cc:26
static const symbol s_3_5[3]
Definition: esperanto.cc:124
static const symbol s_9_8[2]
Definition: esperanto.cc:261
static const symbol s_4_0[4]
Definition: esperanto.cc:162
static const symbol s_5_15[6]
Definition: esperanto.cc:184
static const symbol s_9_5[2]
Definition: esperanto.cc:258
static const struct among a_4[2]
Definition: esperanto.cc:164
static const symbol s_9_1[1]
Definition: esperanto.cc:254
static const symbol s_2_3[2]
Definition: esperanto.cc:85
static const symbol s_2_7[2]
Definition: esperanto.cc:89
static const symbol s_9_11[3]
Definition: esperanto.cc:264
static const symbol s_10[]
Definition: esperanto.cc:22
static const symbol s_1_1[1]
Definition: esperanto.cc:68
static const symbol s_9_2[1]
Definition: esperanto.cc:255
static const struct among a_5[24]
Definition: esperanto.cc:193
static const struct among a_1[6]
Definition: esperanto.cc:73
static const symbol s_3_19[4]
Definition: esperanto.cc:138
static const symbol s_1[]
Definition: esperanto.cc:13
static const symbol s_9_13[1]
Definition: esperanto.cc:266
static const symbol s_3_1[4]
Definition: esperanto.cc:120
static const symbol s_0_14[2]
Definition: esperanto.cc:44
static const symbol s_5_21[5]
Definition: esperanto.cc:190
static const unsigned char g_digit[]
Definition: esperanto.cc:298
static const symbol s_9_3[1]
Definition: esperanto.cc:256
static const struct among a_8[7]
Definition: esperanto.cc:243
static const symbol s_9_4[2]
Definition: esperanto.cc:257
static const struct among a_2[17]
Definition: esperanto.cc:99
static const symbol s_11[]
Definition: esperanto.cc:23
static const symbol s_12[]
Definition: esperanto.cc:24
static const symbol s_3_15[5]
Definition: esperanto.cc:134
static const symbol s_6_1[2]
Definition: esperanto.cc:221
static const symbol s_3_18[6]
Definition: esperanto.cc:137
static const symbol s_3_13[4]
Definition: esperanto.cc:132
static const symbol s_2_8[3]
Definition: esperanto.cc:90
static const symbol s_5_13[9]
Definition: esperanto.cc:182
static const symbol s_8_3[1]
Definition: esperanto.cc:239
static const symbol s_0_1[1]
Definition: esperanto.cc:31
static const symbol s_6_0[3]
Definition: esperanto.cc:220
static const symbol s_5_11[3]
Definition: esperanto.cc:180
static const symbol s_5_7[6]
Definition: esperanto.cc:176
static const symbol s_0_12[2]
Definition: esperanto.cc:42
static const symbol s_0_2[2]
Definition: esperanto.cc:32
Xapian::Internal::Snowball::Esperanto::SN_local SN_local
Definition: esperanto.cc:10
static const symbol s_17[]
Definition: esperanto.cc:29
static const symbol s_8_1[4]
Definition: esperanto.cc:237
static const symbol s_2_5[4]
Definition: esperanto.cc:87
static const symbol s_0_3[2]
Definition: esperanto.cc:33
static const unsigned char g_vowel[]
Definition: esperanto.cc:294
static const symbol s_5_14[6]
Definition: esperanto.cc:183
static const symbol s_2_6[2]
Definition: esperanto.cc:88
static const symbol s_2_1[2]
Definition: esperanto.cc:83
static const symbol s_3_8[5]
Definition: esperanto.cc:127
static const symbol s_8_5[4]
Definition: esperanto.cc:241
static const symbol s_8[]
Definition: esperanto.cc:20
static const symbol s_9[]
Definition: esperanto.cc:21
static const struct among a_0[17]
Definition: esperanto.cc:47
static const symbol s_5[]
Definition: esperanto.cc:17
static const symbol s_5_9[4]
Definition: esperanto.cc:178
static const symbol s_8_0[1]
Definition: esperanto.cc:236
static const symbol s_9_16[2]
Definition: esperanto.cc:269
static const symbol s_15[]
Definition: esperanto.cc:27
static const symbol s_3_16[5]
Definition: esperanto.cc:135
static const symbol s_2_13[3]
Definition: esperanto.cc:95
static const symbol s_5_1[4]
Definition: esperanto.cc:170
static const symbol s_2_16[6]
Definition: esperanto.cc:98
static const symbol s_0[]
Definition: esperanto.cc:12
SNOWBALL_ERR slice_from_s(struct SN_env *z, int s_size, const symbol *s)
int eq_s(struct SN_env *z, int s_size, const symbol *s)
int find_among_b(struct SN_env *z, const struct among *v, int v_size, int(*call_among_func)(struct SN_env *))
int in_grouping_b_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
int skip_b_utf8(const symbol *p, int c, int limit, int n)
int eq_s_b(struct SN_env *z, int s_size, const symbol *s)
SNOWBALL_ERR slice_del(struct SN_env *z)
int out_grouping_b_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
int skip_utf8(const symbol *p, int c, int limit, int n)
int find_among(struct SN_env *z, const struct among *v, int v_size, int(*call_among_func)(struct SN_env *))
Definition: api.h:12
int lb
Definition: api.h:14
symbol * p
Definition: api.h:13
int ket
Definition: api.h:14
int c
Definition: api.h:14
int bra
Definition: api.h:14
int l
Definition: api.h:14
Definition: header.h:295