xapian-core  2.1.0
german.cc
Go to the documentation of this file.
1 /* Generated from german.sbl by Snowball 3.1.1 - https://snowballstem.org/ */
2 
3 #include <config.h>
4 
5 #define SNOWBALL_RUNTIME_THROW_EXCEPTIONS
6 #include "german.h"
7 
8 #include <stddef.h>
9 
11 
12 static const symbol s_0[] = { 'U' };
13 static const symbol s_1[] = { 'Y' };
14 static const symbol s_2[] = { 's', 's' };
15 static const symbol s_3[] = { 0xC3, 0xA4 };
16 static const symbol s_4[] = { 0xC3, 0xB6 };
17 static const symbol s_5[] = { 0xC3, 0xBC };
18 static const symbol s_6[] = { 's', 'y', 's', 't' };
19 static const symbol s_7[] = { 'n', 'i', 's' };
20 static const symbol s_8[] = { 'l' };
21 static const symbol s_9[] = { 'i', 'g' };
22 static const symbol s_10[] = { 'e', 'r' };
23 static const symbol s_11[] = { 'e', 'n' };
24 static const symbol s_12[] = { 'y' };
25 static const symbol s_13[] = { 'u' };
26 static const symbol s_14[] = { 'a' };
27 static const symbol s_15[] = { 'o' };
28 
29 static const symbol s_0_1[2] = { 'a', 'e' };
30 static const symbol s_0_2[2] = { 'o', 'e' };
31 static const symbol s_0_3[2] = { 'q', 'u' };
32 static const symbol s_0_4[2] = { 'u', 'e' };
33 static const symbol s_0_5[2] = { 0xC3, 0x9F };
34 static const struct among a_0[6] = {
35 { 0, 0, 0, 5, 0},
36 { 2, s_0_1, -1, 2, 0},
37 { 2, s_0_2, -2, 3, 0},
38 { 2, s_0_3, -3, -1, 0},
39 { 2, s_0_4, -4, 4, 0},
40 { 2, s_0_5, -5, 1, 0}
41 };
42 
43 static const symbol s_1_1[1] = { 'U' };
44 static const symbol s_1_2[1] = { 'Y' };
45 static const symbol s_1_3[2] = { 0xC3, 0xA4 };
46 static const symbol s_1_4[2] = { 0xC3, 0xB6 };
47 static const symbol s_1_5[2] = { 0xC3, 0xBC };
48 static const struct among a_1[6] = {
49 { 0, 0, 0, 5, 0},
50 { 1, s_1_1, -1, 2, 0},
51 { 1, s_1_2, -2, 1, 0},
52 { 2, s_1_3, -3, 3, 0},
53 { 2, s_1_4, -4, 4, 0},
54 { 2, s_1_5, -5, 2, 0}
55 };
56 
57 static const symbol s_2_0[1] = { 'e' };
58 static const symbol s_2_1[2] = { 'e', 'm' };
59 static const symbol s_2_2[2] = { 'e', 'n' };
60 static const symbol s_2_3[7] = { 'e', 'r', 'i', 'n', 'n', 'e', 'n' };
61 static const symbol s_2_4[4] = { 'e', 'r', 'i', 'n' };
62 static const symbol s_2_5[2] = { 'l', 'n' };
63 static const symbol s_2_6[3] = { 'e', 'r', 'n' };
64 static const symbol s_2_7[2] = { 'e', 'r' };
65 static const symbol s_2_8[1] = { 's' };
66 static const symbol s_2_9[2] = { 'e', 's' };
67 static const symbol s_2_10[3] = { 'l', 'n', 's' };
68 static const struct among a_2[11] = {
69 { 1, s_2_0, 0, 3, 0},
70 { 2, s_2_1, 0, 1, 0},
71 { 2, s_2_2, 0, 3, 0},
72 { 7, s_2_3, -1, 2, 0},
73 { 4, s_2_4, 0, 2, 0},
74 { 2, s_2_5, 0, 5, 0},
75 { 3, s_2_6, 0, 2, 0},
76 { 2, s_2_7, 0, 2, 0},
77 { 1, s_2_8, 0, 4, 0},
78 { 2, s_2_9, -1, 3, 0},
79 { 3, s_2_10, -2, 5, 0}
80 };
81 
82 static const symbol s_3_0[4] = { 't', 'i', 'c', 'k' };
83 static const symbol s_3_1[4] = { 'p', 'l', 'a', 'n' };
84 static const symbol s_3_2[6] = { 'g', 'e', 'o', 'r', 'd', 'n' };
85 static const symbol s_3_3[6] = { 'i', 'n', 't', 'e', 'r', 'n' };
86 static const symbol s_3_4[2] = { 't', 'r' };
87 static const struct among a_3[5] = {
88 { 4, s_3_0, 0, -1, 0},
89 { 4, s_3_1, 0, -1, 0},
90 { 6, s_3_2, 0, -1, 0},
91 { 6, s_3_3, 0, -1, 0},
92 { 2, s_3_4, 0, -1, 0}
93 };
94 
95 static const symbol s_4_0[2] = { 'e', 'n' };
96 static const symbol s_4_1[2] = { 'e', 'r' };
97 static const symbol s_4_2[2] = { 'e', 't' };
98 static const symbol s_4_3[2] = { 's', 't' };
99 static const symbol s_4_4[3] = { 'e', 's', 't' };
100 static const struct among a_4[5] = {
101 { 2, s_4_0, 0, 1, 0},
102 { 2, s_4_1, 0, 1, 0},
103 { 2, s_4_2, 0, 3, 0},
104 { 2, s_4_3, 0, 2, 0},
105 { 3, s_4_4, -1, 1, 0}
106 };
107 
108 static const symbol s_5_0[2] = { 'i', 'g' };
109 static const symbol s_5_1[4] = { 'l', 'i', 'c', 'h' };
110 static const struct among a_5[2] = {
111 { 2, s_5_0, 0, 1, 0},
112 { 4, s_5_1, 0, 1, 0}
113 };
114 
115 static const symbol s_6_0[3] = { 'e', 'n', 'd' };
116 static const symbol s_6_1[2] = { 'i', 'g' };
117 static const symbol s_6_2[3] = { 'u', 'n', 'g' };
118 static const symbol s_6_3[4] = { 'l', 'i', 'c', 'h' };
119 static const symbol s_6_4[4] = { 'i', 's', 'c', 'h' };
120 static const symbol s_6_5[2] = { 'i', 'k' };
121 static const symbol s_6_6[4] = { 'h', 'e', 'i', 't' };
122 static const symbol s_6_7[4] = { 'k', 'e', 'i', 't' };
123 static const struct among a_6[8] = {
124 { 3, s_6_0, 0, 1, 0},
125 { 2, s_6_1, 0, 2, 0},
126 { 3, s_6_2, 0, 1, 0},
127 { 4, s_6_3, 0, 3, 0},
128 { 4, s_6_4, 0, 2, 0},
129 { 2, s_6_5, 0, 2, 0},
130 { 4, s_6_6, 0, 3, 0},
131 { 4, s_6_7, 0, 4, 0}
132 };
133 
134 static const symbol s_7_0[1] = { '\'' };
135 static const symbol s_7_1[4] = { '\'', 's', 'c', 'h' };
136 static const symbol s_7_2[2] = { '\'', 's' };
137 static const struct among a_7[3] = {
138 { 1, s_7_0, 0, 1, 0},
139 { 4, s_7_1, 0, 1, 0},
140 { 2, s_7_2, 0, 1, 0}
141 };
142 
143 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, 8 };
144 
145 static const unsigned char g_et_ending[] = { 1, 128, 198, 227, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
146 
147 static const unsigned char g_s_ending[] = { 117, 30, 5 };
148 
149 static const unsigned char g_st_ending[] = { 117, 30, 4 };
150 
152  int among_var;
153  int i_x;
154  int i_p2;
155  int i_p1;
156  {
157  int v_1 = z->c;
158  {
159  int v_2 = z->c;
160  while (1) {
161  int v_3 = z->c;
162  while (1) {
163  int v_4 = z->c;
164  if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
165  z->bra = z->c;
166  do {
167  int v_5 = z->c;
168  if (z->c == z->l || z->p[z->c] != 'u') goto lab3;
169  z->c++;
170  z->ket = z->c;
171  if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab3;
172  slice_from_s(z, 1, s_0);
173  break;
174  lab3:
175  z->c = v_5;
176  if (z->c == z->l || z->p[z->c] != 'y') goto lab2;
177  z->c++;
178  z->ket = z->c;
179  if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
180  slice_from_s(z, 1, s_1);
181  } while (0);
182  z->c = v_4;
183  break;
184  lab2:
185  z->c = v_4;
186  {
187  int ret = skip_utf8(z->p, z->c, z->l, 1);
188  if (ret < 0) goto lab1;
189  z->c = ret;
190  }
191  }
192  continue;
193  lab1:
194  z->c = v_3;
195  break;
196  }
197  z->c = v_2;
198  }
199  while (1) {
200  int v_6 = z->c;
201  z->bra = z->c;
202  among_var = find_among(z, a_0, 6, 0);
203  z->ket = z->c;
204  switch (among_var) {
205  case 1:
206  slice_from_s(z, 2, s_2);
207  break;
208  case 2:
209  slice_from_s(z, 2, s_3);
210  break;
211  case 3:
212  slice_from_s(z, 2, s_4);
213  break;
214  case 4:
215  slice_from_s(z, 2, s_5);
216  break;
217  case 5:
218  {
219  int ret = skip_utf8(z->p, z->c, z->l, 1);
220  if (ret < 0) goto lab4;
221  z->c = ret;
222  }
223  break;
224  }
225  continue;
226  lab4:
227  z->c = v_6;
228  break;
229  }
230  z->c = v_1;
231  }
232  {
233  int v_7 = z->c;
234  i_p1 = z->l;
235  i_p2 = z->l;
236  {
237  int v_8 = z->c;
238  {
239  int ret = skip_utf8(z->p, z->c, z->l, 3);
240  if (ret < 0) goto lab5;
241  z->c = ret;
242  }
243  i_x = z->c;
244  z->c = v_8;
245  }
246  {
247  int ret = out_grouping_U(z, g_v, 97, 252, 1);
248  if (ret < 0) goto lab5;
249  z->c += ret;
250  }
251  {
252  int ret = in_grouping_U(z, g_v, 97, 252, 1);
253  if (ret < 0) goto lab5;
254  z->c += ret;
255  }
256  i_p1 = z->c;
257  if (i_p1 >= i_x) goto lab6;
258  i_p1 = i_x;
259  lab6:
260  {
261  int ret = out_grouping_U(z, g_v, 97, 252, 1);
262  if (ret < 0) goto lab5;
263  z->c += ret;
264  }
265  {
266  int ret = in_grouping_U(z, g_v, 97, 252, 1);
267  if (ret < 0) goto lab5;
268  z->c += ret;
269  }
270  i_p2 = z->c;
271  lab5:
272  z->c = v_7;
273  }
274  z->lb = z->c; z->c = z->l;
275  {
276  int v_9 = z->l - z->c;
277  z->ket = z->c;
278  if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8;
279  among_var = find_among_b(z, a_2, 11, 0);
280  if (!among_var) goto lab8;
281  z->bra = z->c;
282  if (i_p1 > z->c) goto lab8;
283  switch (among_var) {
284  case 1:
285  if (!(eq_s_b(z, 4, s_6))) goto lab9;
286  goto lab8;
287  lab9:
288  slice_del(z);
289  break;
290  case 2:
291  slice_del(z);
292  break;
293  case 3:
294  slice_del(z);
295  {
296  int v_10 = z->l - z->c;
297  z->ket = z->c;
298  if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - v_10; goto lab10; }
299  z->c--;
300  z->bra = z->c;
301  if (!(eq_s_b(z, 3, s_7))) { z->c = z->l - v_10; goto lab10; }
302  slice_del(z);
303  lab10:
304  ;
305  }
306  break;
307  case 4:
308  if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab8;
309  slice_del(z);
310  break;
311  case 5:
312  slice_from_s(z, 1, s_8);
313  break;
314  }
315  lab8:
316  z->c = z->l - v_9;
317  }
318  {
319  int v_11 = z->l - z->c;
320  z->ket = z->c;
321  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab11;
322  among_var = find_among_b(z, a_4, 5, 0);
323  if (!among_var) goto lab11;
324  z->bra = z->c;
325  if (i_p1 > z->c) goto lab11;
326  switch (among_var) {
327  case 1:
328  slice_del(z);
329  break;
330  case 2:
331  if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab11;
332  {
333  int ret = skip_b_utf8(z->p, z->c, z->lb, 3);
334  if (ret < 0) goto lab11;
335  z->c = ret;
336  }
337  slice_del(z);
338  break;
339  case 3:
340  {
341  int v_12 = z->l - z->c;
342  if (in_grouping_b_U(z, g_et_ending, 85, 228, 0)) goto lab11;
343  z->c = z->l - v_12;
344  }
345  {
346  int v_13 = z->l - z->c;
347  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((280576 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab12;
348  if (!find_among_b(z, a_3, 5, 0)) goto lab12;
349  goto lab11;
350  lab12:
351  z->c = z->l - v_13;
352  }
353  slice_del(z);
354  break;
355  }
356  lab11:
357  z->c = z->l - v_11;
358  }
359  {
360  int v_14 = z->l - z->c;
361  z->ket = z->c;
362  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab13;
363  among_var = find_among_b(z, a_6, 8, 0);
364  if (!among_var) goto lab13;
365  z->bra = z->c;
366  if (i_p2 > z->c) goto lab13;
367  switch (among_var) {
368  case 1:
369  slice_del(z);
370  {
371  int v_15 = z->l - z->c;
372  z->ket = z->c;
373  if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - v_15; goto lab14; }
374  z->bra = z->c;
375  if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab15;
376  z->c--;
377  { z->c = z->l - v_15; goto lab14; }
378  lab15:
379  if (i_p2 > z->c) { z->c = z->l - v_15; goto lab14; }
380  slice_del(z);
381  lab14:
382  ;
383  }
384  break;
385  case 2:
386  if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab16;
387  z->c--;
388  goto lab13;
389  lab16:
390  slice_del(z);
391  break;
392  case 3:
393  slice_del(z);
394  {
395  int v_16 = z->l - z->c;
396  z->ket = z->c;
397  do {
398  if (!(eq_s_b(z, 2, s_10))) goto lab18;
399  break;
400  lab18:
401  if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - v_16; goto lab17; }
402  } while (0);
403  z->bra = z->c;
404  if (i_p1 > z->c) { z->c = z->l - v_16; goto lab17; }
405  slice_del(z);
406  lab17:
407  ;
408  }
409  break;
410  case 4:
411  slice_del(z);
412  {
413  int v_17 = z->l - z->c;
414  z->ket = z->c;
415  if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - v_17; goto lab19; }
416  if (!find_among_b(z, a_5, 2, 0)) { z->c = z->l - v_17; goto lab19; }
417  z->bra = z->c;
418  if (i_p2 > z->c) { z->c = z->l - v_17; goto lab19; }
419  slice_del(z);
420  lab19:
421  ;
422  }
423  break;
424  }
425  lab13:
426  z->c = z->l - v_14;
427  }
428  {
429  int v_18 = z->l - z->c;
430  z->ket = z->c;
431  if (!find_among_b(z, a_7, 3, 0)) goto lab20;
432  z->bra = z->c;
433  {
434  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
435  if (ret < 0) goto lab20;
436  z->c = ret;
437  }
438  if (z->c <= z->lb) goto lab20;
439  slice_del(z);
440  lab20:
441  z->c = z->l - v_18;
442  }
443  z->c = z->lb;
444  {
445  int v_19 = z->c;
446  while (1) {
447  int v_20 = z->c;
448  z->bra = z->c;
449  among_var = find_among(z, a_1, 6, 0);
450  z->ket = z->c;
451  switch (among_var) {
452  case 1:
453  slice_from_s(z, 1, s_12);
454  break;
455  case 2:
456  slice_from_s(z, 1, s_13);
457  break;
458  case 3:
459  slice_from_s(z, 1, s_14);
460  break;
461  case 4:
462  slice_from_s(z, 1, s_15);
463  break;
464  case 5:
465  {
466  int ret = skip_utf8(z->p, z->c, z->l, 1);
467  if (ret < 0) goto lab22;
468  z->c = ret;
469  }
470  break;
471  }
472  continue;
473  lab22:
474  z->c = v_20;
475  break;
476  }
477  z->c = v_19;
478  }
479  return 1;
480 }
unsigned char symbol
Definition: api.h:4
static int stem(struct SN_env *z)
Definition: german.cc:151
static const symbol s_1_5[2]
Definition: german.cc:47
static const symbol s_2[]
Definition: german.cc:14
static const symbol s_0_4[2]
Definition: german.cc:32
static const symbol s_2_2[2]
Definition: german.cc:59
static const symbol s_2_5[2]
Definition: german.cc:62
static const symbol s_0_5[2]
Definition: german.cc:33
static const symbol s_4[]
Definition: german.cc:16
Xapian::Internal::Snowball::German::SN_local SN_local
Definition: german.cc:10
static const symbol s_2_9[2]
Definition: german.cc:66
static const symbol s_3_4[2]
Definition: german.cc:86
static const struct among a_7[3]
Definition: german.cc:137
static const symbol s_5_0[2]
Definition: german.cc:108
static const symbol s_0_1[2]
Definition: german.cc:29
static const symbol s_4_1[2]
Definition: german.cc:96
static const symbol s_6_7[4]
Definition: german.cc:122
static const symbol s_6_5[2]
Definition: german.cc:120
static const symbol s_2_0[1]
Definition: german.cc:57
static const struct among a_6[8]
Definition: german.cc:123
static const symbol s_1_3[2]
Definition: german.cc:45
static const unsigned char g_st_ending[]
Definition: german.cc:149
static const symbol s_3_0[4]
Definition: german.cc:82
static const symbol s_6[]
Definition: german.cc:18
static const symbol s_7_1[4]
Definition: german.cc:135
static const symbol s_3[]
Definition: german.cc:15
static const symbol s_6_6[4]
Definition: german.cc:121
static const symbol s_6_3[4]
Definition: german.cc:118
static const symbol s_2_4[4]
Definition: german.cc:61
static const symbol s_2_10[3]
Definition: german.cc:67
static const struct among a_5[2]
Definition: german.cc:110
static const symbol s_7[]
Definition: german.cc:19
static const symbol s_13[]
Definition: german.cc:25
static const symbol s_6_2[3]
Definition: german.cc:117
static const symbol s_6_4[4]
Definition: german.cc:119
static const symbol s_4_4[3]
Definition: german.cc:99
static const symbol s_2_3[7]
Definition: german.cc:60
static const symbol s_1_2[1]
Definition: german.cc:44
static const symbol s_14[]
Definition: german.cc:26
static const struct among a_4[5]
Definition: german.cc:100
static const symbol s_7_2[2]
Definition: german.cc:136
static const symbol s_4_2[2]
Definition: german.cc:97
static const symbol s_2_7[2]
Definition: german.cc:64
static const symbol s_10[]
Definition: german.cc:22
static const symbol s_2_8[1]
Definition: german.cc:65
static const symbol s_1_1[1]
Definition: german.cc:43
static const struct among a_1[6]
Definition: german.cc:48
static const symbol s_1[]
Definition: german.cc:13
static const struct among a_0[6]
Definition: german.cc:34
static const struct among a_2[11]
Definition: german.cc:68
static const symbol s_3_1[4]
Definition: german.cc:83
static const symbol s_1_4[2]
Definition: german.cc:46
static const symbol s_2_6[3]
Definition: german.cc:63
static const symbol s_4_0[2]
Definition: german.cc:95
static const symbol s_11[]
Definition: german.cc:23
static const symbol s_12[]
Definition: german.cc:24
static const symbol s_6_1[2]
Definition: german.cc:116
static const symbol s_6_0[3]
Definition: german.cc:115
static const unsigned char g_et_ending[]
Definition: german.cc:145
static const struct among a_3[5]
Definition: german.cc:87
static const symbol s_4_3[2]
Definition: german.cc:98
static const symbol s_7_0[1]
Definition: german.cc:134
static const symbol s_0_2[2]
Definition: german.cc:30
static const symbol s_3_2[6]
Definition: german.cc:84
static const symbol s_0_3[2]
Definition: german.cc:31
static const symbol s_2_1[2]
Definition: german.cc:58
static const unsigned char g_v[]
Definition: german.cc:143
static const symbol s_3_3[6]
Definition: german.cc:85
static const unsigned char g_s_ending[]
Definition: german.cc:147
static const symbol s_8[]
Definition: german.cc:20
static const symbol s_9[]
Definition: german.cc:21
static const symbol s_5[]
Definition: german.cc:17
static const symbol s_15[]
Definition: german.cc:27
static const symbol s_5_1[4]
Definition: german.cc:109
static const symbol s_0[]
Definition: german.cc:12
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)
SNOWBALL_ERR slice_from_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 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