xapian-core  2.1.0
finnish.cc
Go to the documentation of this file.
1 /* Generated from finnish.sbl by Snowball 3.1.1 - https://snowballstem.org/ */
2 
3 #include <config.h>
4 
5 #define SNOWBALL_RUNTIME_THROW_EXCEPTIONS
6 #include "finnish.h"
7 
8 #include <stddef.h>
9 
11 
12 static int r_O_(struct SN_env * z);
13 static int r_A_(struct SN_env * z);
14 static int r_U(struct SN_env * z);
15 static int r_O(struct SN_env * z);
16 static int r_I(struct SN_env * z);
17 static int r_E(struct SN_env * z);
18 static int r_A(struct SN_env * z);
19 static int r_VI(struct SN_env * z);
20 static int r_LV(struct SN_env * z);
21 
22 static const symbol s_0[] = { 0xC3, 0xA4 };
23 static const symbol s_1[] = { 0xC3, 0xB6 };
24 static const symbol s_2[] = { 0xC3, 0xB8 };
25 static const symbol s_3[] = { 'k', 's', 'e' };
26 static const symbol s_4[] = { 'k', 's', 'i' };
27 static const symbol s_5[] = { 'i', 'e' };
28 static const symbol s_6[] = { 'p', 'o' };
29 static const symbol s_7[] = { 'p', 'o' };
30 
31 static const symbol s_0_0[2] = { 'p', 'a' };
32 static const symbol s_0_1[3] = { 's', 't', 'i' };
33 static const symbol s_0_2[4] = { 'k', 'a', 'a', 'n' };
34 static const symbol s_0_3[3] = { 'h', 'a', 'n' };
35 static const symbol s_0_4[3] = { 'k', 'i', 'n' };
36 static const symbol s_0_5[4] = { 'h', 0xC3, 0xA4, 'n' };
37 static const symbol s_0_6[6] = { 'k', 0xC3, 0xA4, 0xC3, 0xA4, 'n' };
38 static const symbol s_0_7[2] = { 'k', 'o' };
39 static const symbol s_0_8[3] = { 'p', 0xC3, 0xA4 };
40 static const symbol s_0_9[3] = { 'k', 0xC3, 0xB6 };
41 static const struct among a_0[10] = {
42 { 2, s_0_0, 0, 1, 0},
43 { 3, s_0_1, 0, 2, 0},
44 { 4, s_0_2, 0, 1, 0},
45 { 3, s_0_3, 0, 1, 0},
46 { 3, s_0_4, 0, 1, 0},
47 { 4, s_0_5, 0, 1, 0},
48 { 6, s_0_6, 0, 1, 0},
49 { 2, s_0_7, 0, 1, 0},
50 { 3, s_0_8, 0, 1, 0},
51 { 3, s_0_9, 0, 1, 0}
52 };
53 
54 static const symbol s_1_0[3] = { 'l', 'l', 'a' };
55 static const symbol s_1_1[2] = { 'n', 'a' };
56 static const symbol s_1_2[3] = { 's', 's', 'a' };
57 static const symbol s_1_3[2] = { 't', 'a' };
58 static const symbol s_1_4[3] = { 'l', 't', 'a' };
59 static const symbol s_1_5[3] = { 's', 't', 'a' };
60 static const struct among a_1[6] = {
61 { 3, s_1_0, 0, -1, 0},
62 { 2, s_1_1, 0, -1, 0},
63 { 3, s_1_2, 0, -1, 0},
64 { 2, s_1_3, 0, -1, 0},
65 { 3, s_1_4, -1, -1, 0},
66 { 3, s_1_5, -2, -1, 0}
67 };
68 
69 static const symbol s_2_0[4] = { 'l', 'l', 0xC3, 0xA4 };
70 static const symbol s_2_1[3] = { 'n', 0xC3, 0xA4 };
71 static const symbol s_2_2[4] = { 's', 's', 0xC3, 0xA4 };
72 static const symbol s_2_3[3] = { 't', 0xC3, 0xA4 };
73 static const symbol s_2_4[4] = { 'l', 't', 0xC3, 0xA4 };
74 static const symbol s_2_5[4] = { 's', 't', 0xC3, 0xA4 };
75 static const struct among a_2[6] = {
76 { 4, s_2_0, 0, -1, 0},
77 { 3, s_2_1, 0, -1, 0},
78 { 4, s_2_2, 0, -1, 0},
79 { 3, s_2_3, 0, -1, 0},
80 { 4, s_2_4, -1, -1, 0},
81 { 4, s_2_5, -2, -1, 0}
82 };
83 
84 static const symbol s_3_0[3] = { 'l', 'l', 'e' };
85 static const symbol s_3_1[3] = { 'i', 'n', 'e' };
86 static const struct among a_3[2] = {
87 { 3, s_3_0, 0, -1, 0},
88 { 3, s_3_1, 0, -1, 0}
89 };
90 
91 static const symbol s_4_0[3] = { 'n', 's', 'a' };
92 static const symbol s_4_1[3] = { 'm', 'm', 'e' };
93 static const symbol s_4_2[3] = { 'n', 'n', 'e' };
94 static const symbol s_4_3[2] = { 'n', 'i' };
95 static const symbol s_4_4[2] = { 's', 'i' };
96 static const symbol s_4_5[2] = { 'a', 'n' };
97 static const symbol s_4_6[2] = { 'e', 'n' };
98 static const symbol s_4_7[3] = { 0xC3, 0xA4, 'n' };
99 static const symbol s_4_8[4] = { 'n', 's', 0xC3, 0xA4 };
100 static const struct among a_4[9] = {
101 { 3, s_4_0, 0, 3, 0},
102 { 3, s_4_1, 0, 3, 0},
103 { 3, s_4_2, 0, 3, 0},
104 { 2, s_4_3, 0, 2, 0},
105 { 2, s_4_4, 0, 1, 0},
106 { 2, s_4_5, 0, 4, 0},
107 { 2, s_4_6, 0, 6, 0},
108 { 3, s_4_7, 0, 5, 0},
109 { 4, s_4_8, 0, 3, 0}
110 };
111 
112 static const symbol s_5_0[2] = { 'a', 'a' };
113 static const symbol s_5_1[2] = { 'e', 'e' };
114 static const symbol s_5_2[2] = { 'i', 'i' };
115 static const symbol s_5_3[2] = { 'o', 'o' };
116 static const symbol s_5_4[2] = { 'u', 'u' };
117 static const symbol s_5_5[4] = { 0xC3, 0xA4, 0xC3, 0xA4 };
118 static const symbol s_5_6[4] = { 0xC3, 0xB6, 0xC3, 0xB6 };
119 static const struct among a_5[7] = {
120 { 2, s_5_0, 0, -1, 0},
121 { 2, s_5_1, 0, -1, 0},
122 { 2, s_5_2, 0, -1, 0},
123 { 2, s_5_3, 0, -1, 0},
124 { 2, s_5_4, 0, -1, 0},
125 { 4, s_5_5, 0, -1, 0},
126 { 4, s_5_6, 0, -1, 0}
127 };
128 
129 static const symbol s_6_0[1] = { '\'' };
130 static const symbol s_6_1[2] = { 'a', 'i' };
131 static const symbol s_6_2[2] = { 'e', 'i' };
132 static const symbol s_6_3[2] = { 'i', 'i' };
133 static const symbol s_6_4[2] = { 'o', 'i' };
134 static const symbol s_6_5[2] = { 'u', 'i' };
135 static const symbol s_6_6[3] = { 0xC3, 0xA4, 'i' };
136 static const symbol s_6_7[3] = { 0xC3, 0xB6, 'i' };
137 static const struct among a_6[8] = {
138 { 1, s_6_0, 0, -1, 0},
139 { 2, s_6_1, 0, -1, 0},
140 { 2, s_6_2, 0, -1, 0},
141 { 2, s_6_3, 0, -1, 0},
142 { 2, s_6_4, 0, -1, 0},
143 { 2, s_6_5, 0, -1, 0},
144 { 3, s_6_6, 0, -1, 0},
145 { 3, s_6_7, 0, -1, 0}
146 };
147 
148 static const symbol s_7_0[1] = { 'a' };
149 static const symbol s_7_1[3] = { 'l', 'l', 'a' };
150 static const symbol s_7_2[2] = { 'n', 'a' };
151 static const symbol s_7_3[3] = { 's', 's', 'a' };
152 static const symbol s_7_4[2] = { 't', 'a' };
153 static const symbol s_7_5[3] = { 'l', 't', 'a' };
154 static const symbol s_7_6[3] = { 's', 't', 'a' };
155 static const symbol s_7_7[3] = { 't', 't', 'a' };
156 static const symbol s_7_8[3] = { 'l', 'l', 'e' };
157 static const symbol s_7_9[3] = { 'i', 'n', 'e' };
158 static const symbol s_7_10[3] = { 'k', 's', 'i' };
159 static const symbol s_7_11[1] = { 'n' };
160 static const symbol s_7_12[3] = { 'h', 'a', 'n' };
161 static const symbol s_7_13[3] = { 'd', 'e', 'n' };
162 static const symbol s_7_14[4] = { 's', 'e', 'e', 'n' };
163 static const symbol s_7_15[3] = { 'h', 'e', 'n' };
164 static const symbol s_7_16[4] = { 't', 't', 'e', 'n' };
165 static const symbol s_7_17[3] = { 'h', 'i', 'n' };
166 static const symbol s_7_18[4] = { 's', 'i', 'i', 'n' };
167 static const symbol s_7_19[3] = { 'h', 'o', 'n' };
168 static const symbol s_7_20[3] = { 'h', 'u', 'n' };
169 static const symbol s_7_21[4] = { 'h', 0xC3, 0xA4, 'n' };
170 static const symbol s_7_22[4] = { 'h', 0xC3, 0xB6, 'n' };
171 static const symbol s_7_23[2] = { 0xC3, 0xA4 };
172 static const symbol s_7_24[4] = { 'l', 'l', 0xC3, 0xA4 };
173 static const symbol s_7_25[3] = { 'n', 0xC3, 0xA4 };
174 static const symbol s_7_26[4] = { 's', 's', 0xC3, 0xA4 };
175 static const symbol s_7_27[3] = { 't', 0xC3, 0xA4 };
176 static const symbol s_7_28[4] = { 'l', 't', 0xC3, 0xA4 };
177 static const symbol s_7_29[4] = { 's', 't', 0xC3, 0xA4 };
178 static const symbol s_7_30[4] = { 't', 't', 0xC3, 0xA4 };
179 static const struct among a_7[31] = {
180 { 1, s_7_0, 0, 2, 0},
181 { 3, s_7_1, -1, -1, 0},
182 { 2, s_7_2, -2, -1, 0},
183 { 3, s_7_3, -3, -1, 0},
184 { 2, s_7_4, -4, -1, 0},
185 { 3, s_7_5, -1, -1, 0},
186 { 3, s_7_6, -2, -1, 0},
187 { 3, s_7_7, -3, 3, 0},
188 { 3, s_7_8, 0, -1, 0},
189 { 3, s_7_9, 0, -1, 0},
190 { 3, s_7_10, 0, -1, 0},
191 { 1, s_7_11, 0, 1, 0},
192 { 3, s_7_12, -1, -1, 3},
193 { 3, s_7_13, -2, -1, 8},
194 { 4, s_7_14, -3, -1, 9},
195 { 3, s_7_15, -4, -1, 4},
196 { 4, s_7_16, -5, -1, 8},
197 { 3, s_7_17, -6, -1, 5},
198 { 4, s_7_18, -7, -1, 8},
199 { 3, s_7_19, -8, -1, 6},
200 { 3, s_7_20, -9, -1, 7},
201 { 4, s_7_21, -10, -1, 1},
202 { 4, s_7_22, -11, -1, 2},
203 { 2, s_7_23, 0, 2, 0},
204 { 4, s_7_24, -1, -1, 0},
205 { 3, s_7_25, -2, -1, 0},
206 { 4, s_7_26, -3, -1, 0},
207 { 3, s_7_27, -4, -1, 0},
208 { 4, s_7_28, -1, -1, 0},
209 { 4, s_7_29, -2, -1, 0},
210 { 4, s_7_30, -3, 3, 0}
211 };
212 
213 static int af_7(struct SN_env * z) {
214  switch (z->af) {
215  case 1: return r_A_(z);
216  case 2: return r_O_(z);
217  case 3: return r_A(z);
218  case 4: return r_E(z);
219  case 5: return r_I(z);
220  case 6: return r_O(z);
221  case 7: return r_U(z);
222  case 8: return r_VI(z);
223  case 9: return r_LV(z);
224  }
225  return -1;
226 }
227 
228 static const symbol s_8_0[3] = { 'e', 'j', 'a' };
229 static const symbol s_8_1[3] = { 'm', 'm', 'a' };
230 static const symbol s_8_2[4] = { 'i', 'm', 'm', 'a' };
231 static const symbol s_8_3[3] = { 'm', 'p', 'a' };
232 static const symbol s_8_4[4] = { 'i', 'm', 'p', 'a' };
233 static const symbol s_8_5[3] = { 'm', 'm', 'i' };
234 static const symbol s_8_6[4] = { 'i', 'm', 'm', 'i' };
235 static const symbol s_8_7[3] = { 'm', 'p', 'i' };
236 static const symbol s_8_8[4] = { 'i', 'm', 'p', 'i' };
237 static const symbol s_8_9[4] = { 'e', 'j', 0xC3, 0xA4 };
238 static const symbol s_8_10[4] = { 'm', 'm', 0xC3, 0xA4 };
239 static const symbol s_8_11[5] = { 'i', 'm', 'm', 0xC3, 0xA4 };
240 static const symbol s_8_12[4] = { 'm', 'p', 0xC3, 0xA4 };
241 static const symbol s_8_13[5] = { 'i', 'm', 'p', 0xC3, 0xA4 };
242 static const struct among a_8[14] = {
243 { 3, s_8_0, 0, -1, 0},
244 { 3, s_8_1, 0, 1, 0},
245 { 4, s_8_2, -1, -1, 0},
246 { 3, s_8_3, 0, 1, 0},
247 { 4, s_8_4, -1, -1, 0},
248 { 3, s_8_5, 0, 1, 0},
249 { 4, s_8_6, -1, -1, 0},
250 { 3, s_8_7, 0, 1, 0},
251 { 4, s_8_8, -1, -1, 0},
252 { 4, s_8_9, 0, -1, 0},
253 { 4, s_8_10, 0, 1, 0},
254 { 5, s_8_11, -1, -1, 0},
255 { 4, s_8_12, 0, 1, 0},
256 { 5, s_8_13, -1, -1, 0}
257 };
258 
259 static const symbol s_10_0[3] = { 'm', 'm', 'a' };
260 static const symbol s_10_1[4] = { 'i', 'm', 'm', 'a' };
261 static const struct among a_10[2] = {
262 { 3, s_10_0, 0, 1, 0},
263 { 4, s_10_1, -1, -1, 0}
264 };
265 
266 static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
267 
268 static const unsigned char g_C[] = { 119, 223, 119, 1 };
269 
270 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
271 
272 static const unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
273 
274 static int r_LV(struct SN_env * z) {
275  return find_among_b(z, a_5, 7, 0) != 0;
276 }
277 
278 static int r_VI(struct SN_env * z) {
279  if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 105)) return 0;
280  return find_among_b(z, a_6, 8, 0) != 0;
281 }
282 
283 static int r_A(struct SN_env * z) {
284  do {
285  if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab0;
286  z->c--;
287  break;
288  lab0:
289  if (z->c <= z->lb || z->p[z->c - 1] != '\'') return 0;
290  z->c--;
291  } while (0);
292  return 1;
293 }
294 
295 static int r_E(struct SN_env * z) {
296  do {
297  if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab0;
298  z->c--;
299  break;
300  lab0:
301  if (z->c <= z->lb || z->p[z->c - 1] != '\'') return 0;
302  z->c--;
303  } while (0);
304  return 1;
305 }
306 
307 static int r_I(struct SN_env * z) {
308  do {
309  if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab0;
310  z->c--;
311  break;
312  lab0:
313  if (z->c <= z->lb || z->p[z->c - 1] != '\'') return 0;
314  z->c--;
315  } while (0);
316  return 1;
317 }
318 
319 static int r_O(struct SN_env * z) {
320  do {
321  if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab0;
322  z->c--;
323  break;
324  lab0:
325  if (z->c <= z->lb || z->p[z->c - 1] != '\'') return 0;
326  z->c--;
327  } while (0);
328  return 1;
329 }
330 
331 static int r_U(struct SN_env * z) {
332  do {
333  if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab0;
334  z->c--;
335  break;
336  lab0:
337  if (z->c <= z->lb || z->p[z->c - 1] != '\'') return 0;
338  z->c--;
339  } while (0);
340  return 1;
341 }
342 
343 static int r_A_(struct SN_env * z) {
344  do {
345  if (!(eq_s_b(z, 2, s_0))) goto lab0;
346  break;
347  lab0:
348  if (z->c <= z->lb || z->p[z->c - 1] != '\'') return 0;
349  z->c--;
350  } while (0);
351  return 1;
352 }
353 
354 static int r_O_(struct SN_env * z) {
355  do {
356  if (!(eq_s_b(z, 2, s_1))) goto lab0;
357  break;
358  lab0:
359  if (!(eq_s_b(z, 2, s_2))) goto lab1;
360  break;
361  lab1:
362  if (z->c <= z->lb || z->p[z->c - 1] != '\'') return 0;
363  z->c--;
364  } while (0);
365  return 1;
366 }
367 
369  int among_var;
370  bool b_ending_removed;
371  int i_p2;
372  int i_p1;
373  {
374  int v_1 = z->c;
375  i_p1 = z->l;
376  i_p2 = z->l;
377  {
378  int ret = out_grouping_U(z, g_v, 97, 246, 1);
379  if (ret < 0) goto lab0;
380  z->c += ret;
381  }
382  {
383  int ret = in_grouping_U(z, g_v, 97, 246, 1);
384  if (ret < 0) goto lab0;
385  z->c += ret;
386  }
387  i_p1 = z->c;
388  {
389  int ret = out_grouping_U(z, g_v, 97, 246, 1);
390  if (ret < 0) goto lab0;
391  z->c += ret;
392  }
393  {
394  int ret = in_grouping_U(z, g_v, 97, 246, 1);
395  if (ret < 0) goto lab0;
396  z->c += ret;
397  }
398  i_p2 = z->c;
399  lab0:
400  z->c = v_1;
401  }
402  b_ending_removed = false;
403  z->lb = z->c; z->c = z->l;
404  {
405  int v_2 = z->l - z->c;
406  {
407  int v_3;
408  if (z->c < i_p1) goto lab1;
409  v_3 = z->lb; z->lb = i_p1;
410  z->ket = z->c;
411  among_var = find_among_b(z, a_0, 10, 0);
412  if (!among_var) { z->lb = v_3; goto lab1; }
413  z->bra = z->c;
414  z->lb = v_3;
415  }
416  switch (among_var) {
417  case 1:
418  if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) goto lab1;
419  break;
420  case 2:
421  if (i_p2 > z->c) goto lab1;
422  break;
423  }
424  slice_del(z);
425  lab1:
426  z->c = z->l - v_2;
427  }
428  {
429  int v_4 = z->l - z->c;
430  {
431  int v_5;
432  if (z->c < i_p1) goto lab2;
433  v_5 = z->lb; z->lb = i_p1;
434  z->ket = z->c;
435  among_var = find_among_b(z, a_4, 9, 0);
436  if (!among_var) { z->lb = v_5; goto lab2; }
437  z->bra = z->c;
438  z->lb = v_5;
439  }
440  switch (among_var) {
441  case 1:
442  if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab3;
443  z->c--;
444  goto lab2;
445  lab3:
446  slice_del(z);
447  break;
448  case 2:
449  slice_del(z);
450  z->ket = z->c;
451  if (!(eq_s_b(z, 3, s_3))) goto lab2;
452  z->bra = z->c;
453  slice_from_s(z, 3, s_4);
454  break;
455  case 3:
456  slice_del(z);
457  break;
458  case 4:
459  if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) goto lab2;
460  if (!find_among_b(z, a_1, 6, 0)) goto lab2;
461  slice_del(z);
462  break;
463  case 5:
464  if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) goto lab2;
465  if (!find_among_b(z, a_2, 6, 0)) goto lab2;
466  slice_del(z);
467  break;
468  case 6:
469  if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) goto lab2;
470  if (!find_among_b(z, a_3, 2, 0)) goto lab2;
471  slice_del(z);
472  break;
473  }
474  lab2:
475  z->c = z->l - v_4;
476  }
477  {
478  int v_6 = z->l - z->c;
479  {
480  int v_7;
481  if (z->c < i_p1) goto lab4;
482  v_7 = z->lb; z->lb = i_p1;
483  z->ket = z->c;
484  among_var = find_among_b(z, a_7, 31, af_7);
485  if (!among_var) { z->lb = v_7; goto lab4; }
486  z->bra = z->c;
487  z->lb = v_7;
488  }
489  switch (among_var) {
490  case 1:
491  {
492  int v_8 = z->l - z->c;
493  {
494  int v_9 = z->l - z->c;
495  do {
496  int v_10 = z->l - z->c;
497  if (!r_LV(z)) goto lab6;
498  break;
499  lab6:
500  z->c = z->l - v_10;
501  if (!(eq_s_b(z, 2, s_5))) { z->c = z->l - v_8; goto lab5; }
502  } while (0);
503  z->c = z->l - v_9;
504  {
505  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
506  if (ret < 0) { z->c = z->l - v_8; goto lab5; }
507  z->c = ret;
508  }
509  }
510  z->bra = z->c;
511  lab5:
512  ;
513  }
514  break;
515  case 2:
516  if (in_grouping_b_U(z, g_v, 97, 246, 0)) goto lab4;
517  if (in_grouping_b_U(z, g_C, 98, 122, 0)) goto lab4;
518  break;
519  case 3:
520  if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab4;
521  z->c--;
522  break;
523  }
524  slice_del(z);
525  b_ending_removed = true;
526  lab4:
527  z->c = z->l - v_6;
528  }
529  {
530  int v_11 = z->l - z->c;
531  {
532  int v_12;
533  if (z->c < i_p2) goto lab7;
534  v_12 = z->lb; z->lb = i_p2;
535  z->ket = z->c;
536  among_var = find_among_b(z, a_8, 14, 0);
537  if (!among_var) { z->lb = v_12; goto lab7; }
538  z->bra = z->c;
539  z->lb = v_12;
540  }
541  switch (among_var) {
542  case 1:
543  if (!(eq_s_b(z, 2, s_6))) goto lab8;
544  goto lab7;
545  lab8:
546  break;
547  }
548  slice_del(z);
549  lab7:
550  z->c = z->l - v_11;
551  }
552  do {
553  if (!b_ending_removed) goto lab9;
554  {
555  int v_13 = z->l - z->c;
556  {
557  int v_14;
558  if (z->c < i_p1) goto lab10;
559  v_14 = z->lb; z->lb = i_p1;
560  z->ket = z->c;
561  if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = v_14; goto lab10; }
562  z->c--;
563  z->bra = z->c;
564  z->lb = v_14;
565  }
566  slice_del(z);
567  lab10:
568  z->c = z->l - v_13;
569  }
570  break;
571  lab9:
572  {
573  int v_15 = z->l - z->c;
574  {
575  int v_16;
576  if (z->c < i_p1) goto lab11;
577  v_16 = z->lb; z->lb = i_p1;
578  z->ket = z->c;
579  if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = v_16; goto lab11; }
580  z->c--;
581  z->bra = z->c;
582  {
583  int v_17 = z->l - z->c;
584  if (in_grouping_b_U(z, g_v, 97, 246, 0)) { z->lb = v_16; goto lab11; }
585  z->c = z->l - v_17;
586  }
587  slice_del(z);
588  z->lb = v_16;
589  }
590  {
591  int v_18;
592  if (z->c < i_p2) goto lab11;
593  v_18 = z->lb; z->lb = i_p2;
594  z->ket = z->c;
595  if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = v_18; goto lab11; }
596  among_var = find_among_b(z, a_10, 2, 0);
597  if (!among_var) { z->lb = v_18; goto lab11; }
598  z->bra = z->c;
599  z->lb = v_18;
600  }
601  switch (among_var) {
602  case 1:
603  if (!(eq_s_b(z, 2, s_7))) goto lab12;
604  goto lab11;
605  lab12:
606  break;
607  }
608  slice_del(z);
609  lab11:
610  z->c = z->l - v_15;
611  }
612  } while (0);
613  {
614  int v_19 = z->l - z->c;
615  {
616  int v_20;
617  if (z->c < i_p1) goto lab13;
618  v_20 = z->lb; z->lb = i_p1;
619  {
620  int v_21 = z->l - z->c;
621  {
622  int v_22 = z->l - z->c;
623  if (!r_LV(z)) goto lab14;
624  z->c = z->l - v_22;
625  z->ket = z->c;
626  {
627  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
628  if (ret < 0) goto lab14;
629  z->c = ret;
630  }
631  z->bra = z->c;
632  slice_del(z);
633  }
634  lab14:
635  z->c = z->l - v_21;
636  }
637  {
638  int v_23 = z->l - z->c;
639  z->ket = z->c;
640  if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab15;
641  z->bra = z->c;
642  if (in_grouping_b_U(z, g_C, 98, 122, 0)) goto lab15;
643  slice_del(z);
644  lab15:
645  z->c = z->l - v_23;
646  }
647  {
648  int v_24 = z->l - z->c;
649  z->ket = z->c;
650  if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab16;
651  z->c--;
652  z->bra = z->c;
653  do {
654  if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab17;
655  z->c--;
656  break;
657  lab17:
658  if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab16;
659  z->c--;
660  } while (0);
661  slice_del(z);
662  lab16:
663  z->c = z->l - v_24;
664  }
665  {
666  int v_25 = z->l - z->c;
667  z->ket = z->c;
668  if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab18;
669  z->c--;
670  z->bra = z->c;
671  if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab18;
672  z->c--;
673  slice_del(z);
674  lab18:
675  z->c = z->l - v_25;
676  }
677  z->lb = v_20;
678  }
679  {
680  int v_26 = z->l - z->c;
681  if (in_grouping_b_U(z, g_v, 97, 246, 1) < 0) goto lab19;
682  z->ket = z->c;
683  if (in_grouping_b_U(z, g_C, 98, 122, 0)) goto lab19;
684  z->bra = z->c;
685  slice_to(z, &((SN_local *)z)->s_x);
686  if (!(eq_v_b(z, ((SN_local *)z)->s_x))) goto lab19;
687  slice_del(z);
688  lab19:
689  z->c = z->l - v_26;
690  }
691  z->ket = z->c;
692  if (z->c <= z->lb || z->p[z->c - 1] != '\'') goto lab13;
693  z->c--;
694  z->bra = z->c;
695  slice_del(z);
696  lab13:
697  z->c = z->l - v_19;
698  }
699  z->c = z->lb;
700  return 1;
701 }
unsigned char symbol
Definition: api.h:4
static int stem(struct SN_env *z)
Definition: finnish.cc:368
static const symbol s_7_18[4]
Definition: finnish.cc:166
static const symbol s_0_2[4]
Definition: finnish.cc:33
static const symbol s_2[]
Definition: finnish.cc:24
static const symbol s_7_11[1]
Definition: finnish.cc:159
static const unsigned char g_C[]
Definition: finnish.cc:268
static const symbol s_8_10[4]
Definition: finnish.cc:238
static const struct among a_3[2]
Definition: finnish.cc:86
static const symbol s_4[]
Definition: finnish.cc:26
static const symbol s_4_1[3]
Definition: finnish.cc:92
static const symbol s_5_6[4]
Definition: finnish.cc:118
static const symbol s_10_0[3]
Definition: finnish.cc:259
static const symbol s_1_5[3]
Definition: finnish.cc:59
static const symbol s_7_7[3]
Definition: finnish.cc:155
static const symbol s_8_11[5]
Definition: finnish.cc:239
static const symbol s_0_3[3]
Definition: finnish.cc:34
static const symbol s_5_3[2]
Definition: finnish.cc:115
static const unsigned char g_particle_end[]
Definition: finnish.cc:272
static const symbol s_7_28[4]
Definition: finnish.cc:176
static const struct among a_5[7]
Definition: finnish.cc:119
static const symbol s_5_0[2]
Definition: finnish.cc:112
static int r_A(struct SN_env *z)
Definition: finnish.cc:283
static const symbol s_2_3[3]
Definition: finnish.cc:72
static const struct among a_2[6]
Definition: finnish.cc:75
static const symbol s_7_8[3]
Definition: finnish.cc:156
static const struct among a_8[14]
Definition: finnish.cc:242
static const symbol s_6_5[2]
Definition: finnish.cc:134
static const struct among a_6[8]
Definition: finnish.cc:137
static const symbol s_1_3[2]
Definition: finnish.cc:57
static const symbol s_2_1[3]
Definition: finnish.cc:70
static const symbol s_7_9[3]
Definition: finnish.cc:157
static const symbol s_6[]
Definition: finnish.cc:28
static const symbol s_0_0[2]
Definition: finnish.cc:31
static const symbol s_0_5[4]
Definition: finnish.cc:36
static int af_7(struct SN_env *z)
Definition: finnish.cc:213
static const symbol s_3[]
Definition: finnish.cc:25
static const symbol s_2_2[4]
Definition: finnish.cc:71
static const symbol s_4_6[2]
Definition: finnish.cc:97
static const symbol s_6_6[3]
Definition: finnish.cc:135
static const symbol s_7_24[4]
Definition: finnish.cc:172
static const symbol s_3_0[3]
Definition: finnish.cc:84
static const symbol s_4_4[2]
Definition: finnish.cc:95
static const symbol s_7_30[4]
Definition: finnish.cc:178
static const symbol s_7_20[3]
Definition: finnish.cc:168
static const symbol s_7_1[3]
Definition: finnish.cc:149
static const symbol s_0_7[2]
Definition: finnish.cc:38
static const symbol s_2_4[4]
Definition: finnish.cc:73
static const symbol s_7_29[4]
Definition: finnish.cc:177
static const symbol s_8_2[4]
Definition: finnish.cc:230
static const symbol s_10_1[4]
Definition: finnish.cc:260
static const symbol s_6_4[2]
Definition: finnish.cc:133
static const symbol s_7[]
Definition: finnish.cc:29
static const symbol s_8_0[3]
Definition: finnish.cc:228
static const symbol s_0_8[3]
Definition: finnish.cc:39
static const symbol s_7_13[3]
Definition: finnish.cc:161
static const symbol s_7_5[3]
Definition: finnish.cc:153
static const symbol s_3_1[3]
Definition: finnish.cc:85
static const symbol s_7_22[4]
Definition: finnish.cc:170
static const symbol s_1_1[2]
Definition: finnish.cc:55
static int r_A_(struct SN_env *z)
Definition: finnish.cc:343
static int r_U(struct SN_env *z)
Definition: finnish.cc:331
static const struct among a_10[2]
Definition: finnish.cc:261
static int r_O_(struct SN_env *z)
Definition: finnish.cc:354
static int r_LV(struct SN_env *z)
Definition: finnish.cc:274
static const symbol s_7_26[4]
Definition: finnish.cc:174
static const symbol s_7_19[3]
Definition: finnish.cc:167
static const symbol s_8_1[3]
Definition: finnish.cc:229
static const symbol s_7_23[2]
Definition: finnish.cc:171
static const symbol s_0_1[3]
Definition: finnish.cc:32
Xapian::Internal::Snowball::Finnish::SN_local SN_local
Definition: finnish.cc:10
static const symbol s_7_21[4]
Definition: finnish.cc:169
static const symbol s_6_2[2]
Definition: finnish.cc:131
static int r_VI(struct SN_env *z)
Definition: finnish.cc:278
static const symbol s_7_12[3]
Definition: finnish.cc:160
static const symbol s_8_4[4]
Definition: finnish.cc:232
static const symbol s_6_7[3]
Definition: finnish.cc:136
static const struct among a_4[9]
Definition: finnish.cc:100
static const symbol s_5_4[2]
Definition: finnish.cc:116
static const symbol s_0_9[3]
Definition: finnish.cc:40
static const symbol s_7_27[3]
Definition: finnish.cc:175
static const symbol s_7_10[3]
Definition: finnish.cc:158
static const symbol s_7_16[4]
Definition: finnish.cc:164
static const symbol s_7_15[3]
Definition: finnish.cc:163
static const symbol s_7_2[2]
Definition: finnish.cc:150
static const symbol s_8_7[3]
Definition: finnish.cc:235
static int r_I(struct SN_env *z)
Definition: finnish.cc:307
static const struct among a_1[6]
Definition: finnish.cc:60
static const symbol s_8_5[3]
Definition: finnish.cc:233
static const symbol s_1[]
Definition: finnish.cc:23
static const symbol s_7_4[2]
Definition: finnish.cc:152
static const symbol s_5_5[4]
Definition: finnish.cc:117
static const symbol s_1_2[3]
Definition: finnish.cc:56
static const symbol s_5_2[2]
Definition: finnish.cc:114
static const symbol s_7_25[3]
Definition: finnish.cc:173
static int r_E(struct SN_env *z)
Definition: finnish.cc:295
static const struct among a_7[31]
Definition: finnish.cc:179
static const symbol s_7_3[3]
Definition: finnish.cc:151
static const unsigned char g_AEI[]
Definition: finnish.cc:266
static const symbol s_2_0[4]
Definition: finnish.cc:69
static const symbol s_6_1[2]
Definition: finnish.cc:130
static const symbol s_6_3[2]
Definition: finnish.cc:132
static const symbol s_8_9[4]
Definition: finnish.cc:237
static const symbol s_1_0[3]
Definition: finnish.cc:54
static const symbol s_6_0[1]
Definition: finnish.cc:129
static const symbol s_0_6[6]
Definition: finnish.cc:37
static const struct among a_0[10]
Definition: finnish.cc:41
static const symbol s_4_3[2]
Definition: finnish.cc:94
static const symbol s_7_0[1]
Definition: finnish.cc:148
static const symbol s_4_8[4]
Definition: finnish.cc:99
static const symbol s_5_1[2]
Definition: finnish.cc:113
static const symbol s_1_4[3]
Definition: finnish.cc:58
static const symbol s_8_6[4]
Definition: finnish.cc:234
static const symbol s_2_5[4]
Definition: finnish.cc:74
static const symbol s_8_12[4]
Definition: finnish.cc:240
static const symbol s_7_6[3]
Definition: finnish.cc:154
static const symbol s_8_13[5]
Definition: finnish.cc:241
static const symbol s_8_8[4]
Definition: finnish.cc:236
static const unsigned char g_v[]
Definition: finnish.cc:270
static const symbol s_4_7[3]
Definition: finnish.cc:98
static int r_O(struct SN_env *z)
Definition: finnish.cc:319
static const symbol s_7_14[4]
Definition: finnish.cc:162
static const symbol s_5[]
Definition: finnish.cc:27
static const symbol s_8_3[3]
Definition: finnish.cc:231
static const symbol s_4_2[3]
Definition: finnish.cc:93
static const symbol s_4_0[3]
Definition: finnish.cc:91
static const symbol s_7_17[3]
Definition: finnish.cc:165
static const symbol s_4_5[2]
Definition: finnish.cc:96
static const symbol s_0[]
Definition: finnish.cc:22
static const symbol s_0_4[3]
Definition: finnish.cc:35
int out_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
int in_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
int eq_v_b(struct SN_env *z, const symbol *p)
SNOWBALL_ERR slice_from_s(struct SN_env *z, int s_size, const symbol *s)
SNOWBALL_ERR slice_to(struct SN_env *z, symbol **p)
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)
Definition: api.h:12
int af
Definition: api.h:15
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