Branch data Line data Source code
1 : : /* This file was generated automatically by the Snowball to ISO C++ compiler */
2 : :
3 : : #include <limits.h>
4 : : #include "dutch.h"
5 : :
6 : : static const symbol s_pool[] = {
7 : : #define s_0_1 0
8 : : 0xC3, 0xA1,
9 : : #define s_0_2 2
10 : : 0xC3, 0xA4,
11 : : #define s_0_3 4
12 : : 0xC3, 0xA9,
13 : : #define s_0_4 6
14 : : 0xC3, 0xAB,
15 : : #define s_0_5 8
16 : : 0xC3, 0xAD,
17 : : #define s_0_6 10
18 : : 0xC3, 0xAF,
19 : : #define s_0_7 12
20 : : 0xC3, 0xB3,
21 : : #define s_0_8 14
22 : : 0xC3, 0xB6,
23 : : #define s_0_9 16
24 : : 0xC3, 0xBA,
25 : : #define s_0_10 18
26 : : 0xC3, 0xBC,
27 : : #define s_1_1 20
28 : : 'I',
29 : : #define s_1_2 21
30 : : 'Y',
31 : : #define s_2_0 22
32 : : 'd', 'd',
33 : : #define s_2_1 24
34 : : 'k', 'k',
35 : : #define s_2_2 26
36 : : 't', 't',
37 : : #define s_3_0 28
38 : : 'e', 'n', 'e',
39 : : #define s_3_1 31
40 : : 's', 'e',
41 : : #define s_3_2 s_3_0
42 : : #define s_3_3 33
43 : : 'h', 'e', 'd', 'e', 'n',
44 : : #define s_3_4 s_3_1
45 : : #define s_4_0 38
46 : : 'e', 'n', 'd',
47 : : #define s_4_1 41
48 : : 'i', 'g',
49 : : #define s_4_2 43
50 : : 'i', 'n', 'g',
51 : : #define s_4_3 46
52 : : 'l', 'i', 'j', 'k',
53 : : #define s_4_4 50
54 : : 'b', 'a', 'a', 'r',
55 : : #define s_4_5 54
56 : : 'b', 'a', 'r',
57 : : #define s_5_0 57
58 : : 'a', 'a',
59 : : #define s_5_1 59
60 : : 'e', 'e',
61 : : #define s_5_2 61
62 : : 'o', 'o',
63 : : #define s_5_3 63
64 : : 'u', 'u',
65 : : };
66 : :
67 : :
68 : : static const struct among a_0[11] =
69 : : {
70 : : /* 0 */ { 0, 0, -1, 6},
71 : : /* 1 */ { 2, s_0_1, 0, 1},
72 : : /* 2 */ { 2, s_0_2, 0, 1},
73 : : /* 3 */ { 2, s_0_3, 0, 2},
74 : : /* 4 */ { 2, s_0_4, 0, 2},
75 : : /* 5 */ { 2, s_0_5, 0, 3},
76 : : /* 6 */ { 2, s_0_6, 0, 3},
77 : : /* 7 */ { 2, s_0_7, 0, 4},
78 : : /* 8 */ { 2, s_0_8, 0, 4},
79 : : /* 9 */ { 2, s_0_9, 0, 5},
80 : : /* 10 */ { 2, s_0_10, 0, 5}
81 : : };
82 : :
83 : :
84 : : static const struct among a_1[3] =
85 : : {
86 : : /* 0 */ { 0, 0, -1, 3},
87 : : /* 1 */ { 1, s_1_1, 0, 2},
88 : : /* 2 */ { 1, s_1_2, 0, 1}
89 : : };
90 : :
91 : :
92 : : static const struct among a_2[3] =
93 : : {
94 : : /* 0 */ { 2, s_2_0, -1, -1},
95 : : /* 1 */ { 2, s_2_1, -1, -1},
96 : : /* 2 */ { 2, s_2_2, -1, -1}
97 : : };
98 : :
99 : :
100 : : static const struct among a_3[5] =
101 : : {
102 : : /* 0 */ { 3, s_3_0, -1, 2},
103 : : /* 1 */ { 2, s_3_1, -1, 3},
104 : : /* 2 */ { 2, s_3_2, -1, 2},
105 : : /* 3 */ { 5, s_3_3, 2, 1},
106 : : /* 4 */ { 1, s_3_4, -1, 3}
107 : : };
108 : :
109 : :
110 : : static const struct among a_4[6] =
111 : : {
112 : : /* 0 */ { 3, s_4_0, -1, 1},
113 : : /* 1 */ { 2, s_4_1, -1, 2},
114 : : /* 2 */ { 3, s_4_2, -1, 1},
115 : : /* 3 */ { 4, s_4_3, -1, 3},
116 : : /* 4 */ { 4, s_4_4, -1, 4},
117 : : /* 5 */ { 3, s_4_5, -1, 5}
118 : : };
119 : :
120 : :
121 : : static const struct among a_5[4] =
122 : : {
123 : : /* 0 */ { 2, s_5_0, -1, -1},
124 : : /* 1 */ { 2, s_5_1, -1, -1},
125 : : /* 2 */ { 2, s_5_2, -1, -1},
126 : : /* 3 */ { 2, s_5_3, -1, -1}
127 : : };
128 : :
129 : : static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
130 : :
131 : : static const unsigned char g_v_I[] = { 1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
132 : :
133 : : static const unsigned char g_v_j[] = { 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
134 : :
135 : : static const symbol s_0[] = { 'a' };
136 : : static const symbol s_1[] = { 'e' };
137 : : static const symbol s_2[] = { 'i' };
138 : : static const symbol s_3[] = { 'o' };
139 : : static const symbol s_4[] = { 'u' };
140 : : static const symbol s_5[] = { 'Y' };
141 : : static const symbol s_6[] = { 'I' };
142 : : static const symbol s_7[] = { 'Y' };
143 : : static const symbol s_8[] = { 'y' };
144 : : static const symbol s_9[] = { 'i' };
145 : : static const symbol s_10[] = { 'g', 'e', 'm' };
146 : : static const symbol s_11[] = { 'h', 'e', 'i', 'd' };
147 : : static const symbol s_12[] = { 'h', 'e', 'i', 'd' };
148 : : static const symbol s_13[] = { 'e', 'n' };
149 : : static const symbol s_14[] = { 'i', 'g' };
150 : :
151 : 116285 : int Xapian::InternalStemDutch::r_prelude() { /* forwardmode */
152 : : int among_var;
153 : 116285 : { int c_test1 = c; /* test, line 42 */
154 : 4406896 : while(1) { /* repeat, line 42 */
155 : 4523181 : int c2 = c;
156 : 4523181 : bra = c; /* [, line 43 */
157 [ + + ][ + + ]: 4523181 : if (c + 1 >= l || p[c + 1] >> 5 != 5 || !((340306450 >> (p[c + 1] & 0x1f)) & 1)) among_var = 6; else /* substring, line 43 */
[ + + ]
158 : 75584 : among_var = find_among(s_pool, a_0, 11, 0, 0);
159 [ - + ]: 4523181 : if (!(among_var)) goto lab0;
160 : 4523181 : ket = c; /* ], line 43 */
161 [ - + + + + : 4523181 : switch(among_var) { /* among, line 43 */
+ + - ]
162 : 0 : case 0: goto lab0;
163 : : case 1:
164 : 94 : { int ret = slice_from_s(1, s_0); /* <-, line 45 */
165 [ - + ]: 94 : if (ret < 0) return ret;
166 : : }
167 : 94 : break;
168 : : case 2:
169 : 576 : { int ret = slice_from_s(1, s_1); /* <-, line 47 */
170 [ - + ]: 576 : if (ret < 0) return ret;
171 : : }
172 : 576 : break;
173 : : case 3:
174 : 164 : { int ret = slice_from_s(1, s_2); /* <-, line 49 */
175 [ - + ]: 164 : if (ret < 0) return ret;
176 : : }
177 : 164 : break;
178 : : case 4:
179 : 175 : { int ret = slice_from_s(1, s_3); /* <-, line 51 */
180 [ - + ]: 175 : if (ret < 0) return ret;
181 : : }
182 : 175 : break;
183 : : case 5:
184 : 117 : { int ret = slice_from_s(1, s_4); /* <-, line 53 */
185 [ - + ]: 117 : if (ret < 0) return ret;
186 : : }
187 : 117 : break;
188 : : case 6:
189 : 4522055 : { int ret = skip_utf8(p, c, 0, l, 1);
190 [ + + ]: 4522055 : if (ret < 0) goto lab0;
191 : 4405770 : c = ret; /* next, line 54 */
192 : : }
193 : : break;
194 : : }
195 : 4406896 : continue;
196 : : lab0:
197 : 116285 : c = c2;
198 : : break;
199 : : }
200 : 116285 : c = c_test1;
201 : : }
202 : 116285 : { int c3 = c; /* try, line 57 */
203 : 116285 : bra = c; /* [, line 57 */
204 [ + - ][ + + ]: 116285 : if (c == l || p[c] != 'y') { c = c3; goto lab1; }
205 : 2051 : c++;
206 : 2051 : ket = c; /* ], line 57 */
207 : 2051 : { int ret = slice_from_s(1, s_5); /* <-, line 57 */
208 [ - + ]: 2051 : if (ret < 0) return ret;
209 : : }
210 : : lab1:
211 : : ;
212 : : }
213 : 13633 : while(1) { /* repeat, line 58 */
214 : 129918 : int c4 = c;
215 : 4404845 : while(1) { /* goto, line 58 */
216 : 4534763 : int c5 = c;
217 [ + + ]: 4534763 : if (in_grouping_U(g_v, 97, 232, 0)) goto lab3; /* grouping v, line 59 */
218 : 615686 : bra = c; /* [, line 59 */
219 : 615686 : { int c6 = c; /* or, line 59 */
220 [ + + ][ + + ]: 615686 : if (c == l || p[c] != 'i') goto lab5;
221 : 17346 : c++;
222 : 17346 : ket = c; /* ], line 59 */
223 [ + + ]: 17346 : if (in_grouping_U(g_v, 97, 232, 0)) goto lab5; /* grouping v, line 59 */
224 : 2251 : { int ret = slice_from_s(1, s_6); /* <-, line 59 */
225 [ - + ]: 2251 : if (ret < 0) return ret;
226 : : }
227 : 2251 : goto lab4;
228 : : lab5:
229 : 613435 : c = c6;
230 [ + + ][ + + ]: 613435 : if (c == l || p[c] != 'y') goto lab3;
231 : 11382 : c++;
232 : 11382 : ket = c; /* ], line 60 */
233 : 11382 : { int ret = slice_from_s(1, s_7); /* <-, line 60 */
234 [ - + ]: 11382 : if (ret < 0) return ret;
235 : : }
236 : : }
237 : : lab4:
238 : 13633 : c = c5;
239 : : break;
240 : : lab3:
241 : 4521130 : c = c5;
242 : 4521130 : { int ret = skip_utf8(p, c, 0, l, 1);
243 [ + + ]: 4521130 : if (ret < 0) goto lab2;
244 : 4404845 : c = ret; /* goto, line 58 */
245 : : }
246 : : }
247 : 13633 : continue;
248 : : lab2:
249 : 116285 : c = c4;
250 : : break;
251 : : }
252 : 116285 : return 1;
253 : : }
254 : :
255 : 116285 : int Xapian::InternalStemDutch::r_mark_regions() { /* forwardmode */
256 : 116285 : I_p1 = l; /* p1 = <integer expression>, line 66 */
257 : 116285 : I_p2 = l; /* p2 = <integer expression>, line 67 */
258 : 116285 : { int ret = out_grouping_U(g_v, 97, 232, 1); /* gopast */ /* grouping v, line 69 */
259 [ + + ]: 116285 : if (ret < 0) return 0;
260 : 106684 : c += ret;
261 : : }
262 : 106684 : { int ret = in_grouping_U(g_v, 97, 232, 1); /* gopast */ /* non v, line 69 */
263 [ + + ]: 106684 : if (ret < 0) return 0;
264 : 104296 : c += ret;
265 : : }
266 : 104296 : I_p1 = c; /* setmark p1, line 69 */
267 : : /* try, line 70 */
268 [ + + ]: 104296 : if (!(I_p1 < 3)) goto lab0; /* p1 < <integer expression>, line 70 */
269 : 15798 : I_p1 = 3; /* p1 = <integer expression>, line 70 */
270 : : lab0:
271 : 104296 : { int ret = out_grouping_U(g_v, 97, 232, 1); /* gopast */ /* grouping v, line 71 */
272 [ + + ]: 104296 : if (ret < 0) return 0;
273 : 92394 : c += ret;
274 : : }
275 : 92394 : { int ret = in_grouping_U(g_v, 97, 232, 1); /* gopast */ /* non v, line 71 */
276 [ + + ]: 92394 : if (ret < 0) return 0;
277 : 88577 : c += ret;
278 : : }
279 : 88577 : I_p2 = c; /* setmark p2, line 71 */
280 : 116285 : return 1;
281 : : }
282 : :
283 : 4470275 : int Xapian::InternalStemDutch::r_postlude() { /* forwardmode */
284 : : int among_var;
285 : 4353990 : while(1) { /* repeat, line 75 */
286 : 4470275 : int c1 = c;
287 : 4470275 : bra = c; /* [, line 77 */
288 [ + + ][ + + ]: 4470275 : if (c >= l || (p[c + 0] != 73 && p[c + 0] != 89)) among_var = 3; else /* substring, line 77 */
[ + + ]
289 : 32009 : among_var = find_among(s_pool, a_1, 3, 0, 0);
290 [ - + ]: 4470275 : if (!(among_var)) goto lab0;
291 : 4470275 : ket = c; /* ], line 77 */
292 [ - + + + : 4470275 : switch(among_var) { /* among, line 77 */
- ]
293 : 0 : case 0: goto lab0;
294 : : case 1:
295 : 21617 : { int ret = slice_from_s(1, s_8); /* <-, line 78 */
296 [ - + ]: 21617 : if (ret < 0) return ret;
297 : : }
298 : 21617 : break;
299 : : case 2:
300 : 10392 : { int ret = slice_from_s(1, s_9); /* <-, line 79 */
301 [ - + ]: 10392 : if (ret < 0) return ret;
302 : : }
303 : 10392 : break;
304 : : case 3:
305 : 4438266 : { int ret = skip_utf8(p, c, 0, l, 1);
306 [ + + ]: 4438266 : if (ret < 0) goto lab0;
307 : 4321981 : c = ret; /* next, line 80 */
308 : : }
309 : : break;
310 : : }
311 : 4353990 : continue;
312 : : lab0:
313 : 116285 : c = c1;
314 : : break;
315 : : }
316 : 116285 : return 1;
317 : : }
318 : :
319 : 26849 : int Xapian::InternalStemDutch::r_R1() { /* backwardmode */
320 [ + + ]: 26849 : if (!(I_p1 <= c)) return 0; /* p1 <= <integer expression>, line 87 */
321 : 26849 : return 1;
322 : : }
323 : :
324 : 7855 : int Xapian::InternalStemDutch::r_R2() { /* backwardmode */
325 [ + + ]: 7855 : if (!(I_p2 <= c)) return 0; /* p2 <= <integer expression>, line 88 */
326 : 7855 : return 1;
327 : : }
328 : :
329 : 20999 : int Xapian::InternalStemDutch::r_undouble() { /* backwardmode */
330 : 20999 : { int m_test1 = l - c; /* test, line 91 */
331 [ + - ][ + + ]: 20999 : if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((1050640 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* among, line 91 */
[ + + ]
332 [ + + ]: 8874 : if (!(find_among_b(s_pool, a_2, 3, 0, 0))) return 0;
333 : 756 : c = l - m_test1;
334 : : }
335 : 756 : ket = c; /* [, line 91 */
336 : 756 : { int ret = skip_utf8(p, c, lb, 0, -1);
337 [ - + ]: 756 : if (ret < 0) return 0;
338 : 756 : c = ret; /* next, line 91 */
339 : : }
340 : 756 : bra = c; /* ], line 91 */
341 [ - + ]: 756 : if (slice_del() == -1) return -1; /* delete, line 91 */
342 : 20999 : return 1;
343 : : }
344 : :
345 : 116747 : int Xapian::InternalStemDutch::r_e_ending() { /* backwardmode */
346 : 116747 : B_e_found = 0; /* unset e_found, line 95 */
347 : 116747 : ket = c; /* [, line 96 */
348 [ + - ][ + + ]: 116747 : if (c <= lb || p[c - 1] != 'e') return 0;
349 : 10610 : c--;
350 : 10610 : bra = c; /* ], line 96 */
351 : 10610 : { int ret = r_R1(); /* call R1, line 96 */
352 [ + + ]: 10610 : if (ret <= 0) return ret;
353 : : }
354 : 10134 : { int m_test1 = l - c; /* test, line 96 */
355 [ + + ]: 10134 : if (out_grouping_b_U(g_v, 97, 232, 0)) return 0; /* non v, line 96 */
356 : 8456 : c = l - m_test1;
357 : : }
358 [ - + ]: 8456 : if (slice_del() == -1) return -1; /* delete, line 96 */
359 : 8456 : B_e_found = 1; /* set e_found, line 97 */
360 : 8456 : { int ret = r_undouble(); /* call undouble, line 98 */
361 [ + + ]: 8456 : if (ret <= 0) return ret;
362 : : }
363 : 116747 : return 1;
364 : : }
365 : :
366 : 9381 : int Xapian::InternalStemDutch::r_en_ending() { /* backwardmode */
367 : 9381 : { int ret = r_R1(); /* call R1, line 102 */
368 [ + + ]: 9381 : if (ret <= 0) return ret;
369 : : }
370 : 9271 : { int m1 = l - c; (void)m1; /* and, line 102 */
371 [ + + ]: 9271 : if (out_grouping_b_U(g_v, 97, 232, 0)) return 0; /* non v, line 102 */
372 : 8988 : c = l - m1;
373 : 8988 : { int m2 = l - c; (void)m2; /* not, line 102 */
374 [ + + ]: 8988 : if (!(eq_s_b(3, s_10))) goto lab0; /* literal, line 102 */
375 : 2 : return 0;
376 : : lab0:
377 : 8986 : c = l - m2;
378 : : }
379 : : }
380 [ - + ]: 8986 : if (slice_del() == -1) return -1; /* delete, line 102 */
381 : 8986 : { int ret = r_undouble(); /* call undouble, line 103 */
382 [ + + ]: 8986 : if (ret <= 0) return ret;
383 : : }
384 : 9381 : return 1;
385 : : }
386 : :
387 : 116285 : int Xapian::InternalStemDutch::r_standard_suffix() { /* backwardmode */
388 : : int among_var;
389 : 116285 : { int m1 = l - c; (void)m1; /* do, line 107 */
390 : 116285 : ket = c; /* [, line 108 */
391 [ + - ][ + + ]: 116285 : if (c <= lb || p[c - 1] >> 5 != 3 || !((540704 >> (p[c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 108 */
[ + + ]
392 : 29553 : among_var = find_among_b(s_pool, a_3, 5, 0, 0);
393 [ + + ]: 29553 : if (!(among_var)) goto lab0;
394 : 16206 : bra = c; /* ], line 108 */
395 [ - + + + : 16206 : switch(among_var) { /* among, line 108 */
- ]
396 : 0 : case 0: goto lab0;
397 : : case 1:
398 : 139 : { int ret = r_R1(); /* call R1, line 110 */
399 [ + + ]: 139 : if (ret == 0) goto lab0;
400 [ - + ]: 137 : if (ret < 0) return ret;
401 : : }
402 : 137 : { int ret = slice_from_s(4, s_11); /* <-, line 110 */
403 [ - + ]: 137 : if (ret < 0) return ret;
404 : : }
405 : 137 : break;
406 : : case 2:
407 : 9348 : { int ret = r_en_ending(); /* call en_ending, line 113 */
408 [ + + ]: 9348 : if (ret == 0) goto lab0;
409 [ - + ]: 365 : if (ret < 0) return ret;
410 : : }
411 : 365 : break;
412 : : case 3:
413 : 6719 : { int ret = r_R1(); /* call R1, line 116 */
414 [ + + ]: 6719 : if (ret == 0) goto lab0;
415 [ - + ]: 6098 : if (ret < 0) return ret;
416 : : }
417 [ + + ]: 6098 : if (out_grouping_b_U(g_v_j, 97, 232, 0)) goto lab0; /* non v_j, line 116 */
418 [ - + ]: 3831 : if (slice_del() == -1) return -1; /* delete, line 116 */
419 : : break;
420 : : }
421 : : lab0:
422 : 116285 : c = l - m1;
423 : : }
424 : 116285 : { int m2 = l - c; (void)m2; /* do, line 120 */
425 : 116285 : { int ret = r_e_ending(); /* call e_ending, line 120 */
426 [ + + ]: 116285 : if (ret == 0) goto lab1;
427 [ - + ]: 203 : if (ret < 0) return ret;
428 : : }
429 : : lab1:
430 : 116285 : c = l - m2;
431 : : }
432 : 116285 : { int m3 = l - c; (void)m3; /* do, line 122 */
433 : 116285 : ket = c; /* [, line 122 */
434 [ + + ]: 116285 : if (!(eq_s_b(4, s_12))) goto lab2; /* literal, line 122 */
435 : 715 : bra = c; /* ], line 122 */
436 : 715 : { int ret = r_R2(); /* call R2, line 122 */
437 [ + + ]: 715 : if (ret == 0) goto lab2;
438 [ - + ]: 599 : if (ret < 0) return ret;
439 : : }
440 : 599 : { int m4 = l - c; (void)m4; /* not, line 122 */
441 [ + - ][ + + ]: 599 : if (c <= lb || p[c - 1] != 'c') goto lab3;
442 : 8 : c--;
443 : 8 : goto lab2;
444 : : lab3:
445 : 591 : c = l - m4;
446 : : }
447 [ - + ]: 591 : if (slice_del() == -1) return -1; /* delete, line 122 */
448 : 591 : ket = c; /* [, line 123 */
449 [ + + ]: 591 : if (!(eq_s_b(2, s_13))) goto lab2; /* literal, line 123 */
450 : 33 : bra = c; /* ], line 123 */
451 : 33 : { int ret = r_en_ending(); /* call en_ending, line 123 */
452 [ + + ]: 33 : if (ret == 0) goto lab2;
453 [ - + ]: 1 : if (ret < 0) return ret;
454 : : }
455 : : lab2:
456 : 116285 : c = l - m3;
457 : : }
458 : 116285 : { int m5 = l - c; (void)m5; /* do, line 126 */
459 : 116285 : ket = c; /* [, line 127 */
460 [ + + ][ + + ]: 116285 : if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((264336 >> (p[c - 1] & 0x1f)) & 1)) goto lab4; /* substring, line 127 */
[ + + ]
461 : 28790 : among_var = find_among_b(s_pool, a_4, 6, 0, 0);
462 [ + + ]: 28790 : if (!(among_var)) goto lab4;
463 : 6975 : bra = c; /* ], line 127 */
464 [ - + + + + : 6975 : switch(among_var) { /* among, line 127 */
+ - ]
465 : 0 : case 0: goto lab4;
466 : : case 1:
467 : 4677 : { int ret = r_R2(); /* call R2, line 129 */
468 [ + + ]: 4677 : if (ret == 0) goto lab4;
469 [ - + ]: 3697 : if (ret < 0) return ret;
470 : : }
471 [ - + ]: 3697 : if (slice_del() == -1) return -1; /* delete, line 129 */
472 : 3697 : { int m6 = l - c; (void)m6; /* or, line 130 */
473 : 3697 : ket = c; /* [, line 130 */
474 [ + + ]: 3697 : if (!(eq_s_b(2, s_14))) goto lab6; /* literal, line 130 */
475 : 165 : bra = c; /* ], line 130 */
476 : 165 : { int ret = r_R2(); /* call R2, line 130 */
477 [ + + ]: 165 : if (ret == 0) goto lab6;
478 [ - + ]: 142 : if (ret < 0) return ret;
479 : : }
480 : 142 : { int m7 = l - c; (void)m7; /* not, line 130 */
481 [ + - ][ + + ]: 142 : if (c <= lb || p[c - 1] != 'e') goto lab7;
482 : 2 : c--;
483 : 2 : goto lab6;
484 : : lab7:
485 : 140 : c = l - m7;
486 : : }
487 [ - + ]: 140 : if (slice_del() == -1) return -1; /* delete, line 130 */
488 : 140 : goto lab5;
489 : : lab6:
490 : 3557 : c = l - m6;
491 : 3557 : { int ret = r_undouble(); /* call undouble, line 130 */
492 [ + + ]: 3557 : if (ret == 0) goto lab4;
493 [ - + ]: 157 : if (ret < 0) return ret;
494 : : }
495 : : }
496 : : lab5:
497 : 297 : break;
498 : : case 2:
499 : 1267 : { int ret = r_R2(); /* call R2, line 133 */
500 [ + + ]: 1267 : if (ret == 0) goto lab4;
501 [ - + ]: 873 : if (ret < 0) return ret;
502 : : }
503 : 873 : { int m8 = l - c; (void)m8; /* not, line 133 */
504 [ + - ][ + + ]: 873 : if (c <= lb || p[c - 1] != 'e') goto lab8;
505 : 1 : c--;
506 : 1 : goto lab4;
507 : : lab8:
508 : 872 : c = l - m8;
509 : : }
510 [ - + ]: 872 : if (slice_del() == -1) return -1; /* delete, line 133 */
511 : 872 : break;
512 : : case 3:
513 : 683 : { int ret = r_R2(); /* call R2, line 136 */
514 [ + + ]: 683 : if (ret == 0) goto lab4;
515 [ - + ]: 462 : if (ret < 0) return ret;
516 : : }
517 [ - + ]: 462 : if (slice_del() == -1) return -1; /* delete, line 136 */
518 : 462 : { int ret = r_e_ending(); /* call e_ending, line 136 */
519 [ + + ]: 462 : if (ret == 0) goto lab4;
520 [ - + ]: 30 : if (ret < 0) return ret;
521 : : }
522 : 30 : break;
523 : : case 4:
524 : 203 : { int ret = r_R2(); /* call R2, line 139 */
525 [ + + ]: 203 : if (ret == 0) goto lab4;
526 [ - + ]: 149 : if (ret < 0) return ret;
527 : : }
528 [ - + ]: 149 : if (slice_del() == -1) return -1; /* delete, line 139 */
529 : 149 : break;
530 : : case 5:
531 : 145 : { int ret = r_R2(); /* call R2, line 142 */
532 [ + + ]: 145 : if (ret == 0) goto lab4;
533 [ - + ]: 106 : if (ret < 0) return ret;
534 : : }
535 [ + + ]: 106 : if (!(B_e_found)) goto lab4; /* Boolean test e_found, line 142 */
536 [ - + ]: 102 : if (slice_del() == -1) return -1; /* delete, line 142 */
537 : : break;
538 : : }
539 : : lab4:
540 : 116285 : c = l - m5;
541 : : }
542 : 116285 : { int m9 = l - c; (void)m9; /* do, line 146 */
543 [ + + ]: 116285 : if (out_grouping_b_U(g_v_I, 73, 232, 0)) goto lab9; /* non v_I, line 147 */
544 : 102443 : { int m_test10 = l - c; /* test, line 148 */
545 [ + + ][ + + ]: 102443 : if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((2129954 >> (p[c - 1] & 0x1f)) & 1)) goto lab9; /* among, line 149 */
[ + + ]
546 [ + + ]: 27942 : if (!(find_among_b(s_pool, a_5, 4, 0, 0))) goto lab9;
547 [ + + ]: 3408 : if (out_grouping_b_U(g_v, 97, 232, 0)) goto lab9; /* non v, line 150 */
548 : 3168 : c = l - m_test10;
549 : : }
550 : 3168 : ket = c; /* [, line 152 */
551 : 3168 : { int ret = skip_utf8(p, c, lb, 0, -1);
552 [ - + ]: 3168 : if (ret < 0) goto lab9;
553 : 3168 : c = ret; /* next, line 152 */
554 : : }
555 : 3168 : bra = c; /* ], line 152 */
556 [ - + ]: 3168 : if (slice_del() == -1) return -1; /* delete, line 152 */
557 : : lab9:
558 : 116285 : c = l - m9;
559 : : }
560 : 116285 : return 1;
561 : : }
562 : :
563 : 116285 : int Xapian::InternalStemDutch::stem() { /* forwardmode */
564 : 116285 : { int c1 = c; /* do, line 159 */
565 : 116285 : { int ret = r_prelude(); /* call prelude, line 159 */
566 [ - + ]: 116285 : if (ret == 0) goto lab0;
567 [ - + ]: 116285 : if (ret < 0) return ret;
568 : : }
569 : : lab0:
570 : 116285 : c = c1;
571 : : }
572 : 116285 : { int c2 = c; /* do, line 160 */
573 : 116285 : { int ret = r_mark_regions(); /* call mark_regions, line 160 */
574 [ + + ]: 116285 : if (ret == 0) goto lab1;
575 [ - + ]: 88577 : if (ret < 0) return ret;
576 : : }
577 : : lab1:
578 : 116285 : c = c2;
579 : : }
580 : 116285 : lb = c; c = l; /* backwards, line 161 */
581 : :
582 : 116285 : { int m3 = l - c; (void)m3; /* do, line 162 */
583 : 116285 : { int ret = r_standard_suffix(); /* call standard_suffix, line 162 */
584 [ - + ]: 116285 : if (ret == 0) goto lab2;
585 [ - + ]: 116285 : if (ret < 0) return ret;
586 : : }
587 : : lab2:
588 : 116285 : c = l - m3;
589 : : }
590 : 116285 : c = lb;
591 : 116285 : { int c4 = c; /* do, line 163 */
592 : 116285 : { int ret = r_postlude(); /* call postlude, line 163 */
593 [ - + ]: 116285 : if (ret == 0) goto lab3;
594 [ - + ]: 116285 : if (ret < 0) return ret;
595 : : }
596 : : lab3:
597 : 116285 : c = c4;
598 : : }
599 : 116285 : return 1;
600 : : }
601 : :
602 : 3 : Xapian::InternalStemDutch::InternalStemDutch()
603 : 3 : : I_p2(0), I_p1(0), B_e_found(0)
604 : : {
605 : 3 : }
606 : :
607 : 3 : Xapian::InternalStemDutch::~InternalStemDutch()
608 : : {
609 [ + - ][ # # ]: 3 : }
[ # # ]
610 : :
611 : : std::string
612 : 1 : Xapian::InternalStemDutch::get_description() const
613 : : {
614 : 1 : return "dutch";
615 : : }
|