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 "english.h"
5 : :
6 : : static const symbol s_pool[] = {
7 : : #define s_0_0 0
8 : : 'a', 'r', 's', 'e', 'n',
9 : : #define s_0_1 5
10 : : 'c', 'o', 'm', 'm', 'u', 'n',
11 : : #define s_0_2 11
12 : : 'g', 'e', 'n', 'e', 'r',
13 : : #define s_1_0 (s_1_1 + 2)
14 : : #define s_1_1 16
15 : : '\'', 's', '\'',
16 : : #define s_1_2 s_1_1
17 : : #define s_2_0 19
18 : : 'i', 'e', 'd',
19 : : #define s_2_1 (s_2_2 + 2)
20 : : #define s_2_2 22
21 : : 'i', 'e', 's',
22 : : #define s_2_3 25
23 : : 's', 's', 'e', 's',
24 : : #define s_2_4 s_2_3
25 : : #define s_2_5 29
26 : : 'u', 's',
27 : : #define s_3_1 31
28 : : 'b', 'b',
29 : : #define s_3_2 33
30 : : 'd', 'd',
31 : : #define s_3_3 35
32 : : 'f', 'f',
33 : : #define s_3_4 37
34 : : 'g', 'g',
35 : : #define s_3_5 39
36 : : 'b', 'l',
37 : : #define s_3_6 41
38 : : 'm', 'm',
39 : : #define s_3_7 43
40 : : 'n', 'n',
41 : : #define s_3_8 45
42 : : 'p', 'p',
43 : : #define s_3_9 47
44 : : 'r', 'r',
45 : : #define s_3_10 49
46 : : 'a', 't',
47 : : #define s_3_11 51
48 : : 't', 't',
49 : : #define s_3_12 53
50 : : 'i', 'z',
51 : : #define s_4_0 (s_4_1 + 1)
52 : : #define s_4_1 s_4_4
53 : : #define s_4_2 s_4_5
54 : : #define s_4_3 (s_4_4 + 1)
55 : : #define s_4_4 55
56 : : 'e', 'e', 'd', 'l', 'y',
57 : : #define s_4_5 60
58 : : 'i', 'n', 'g', 'l', 'y',
59 : : #define s_5_0 65
60 : : 'a', 'n', 'c', 'i',
61 : : #define s_5_1 69
62 : : 'e', 'n', 'c', 'i',
63 : : #define s_5_2 73
64 : : 'o', 'g', 'i',
65 : : #define s_5_3 (s_5_4 + 1)
66 : : #define s_5_4 (s_5_5 + 1)
67 : : #define s_5_5 76
68 : : 'a', 'b', 'l', 'i',
69 : : #define s_5_6 80
70 : : 'a', 'l', 'l', 'i',
71 : : #define s_5_7 84
72 : : 'f', 'u', 'l', 'l', 'i',
73 : : #define s_5_8 89
74 : : 'l', 'e', 's', 's', 'l', 'i',
75 : : #define s_5_9 95
76 : : 'o', 'u', 's', 'l', 'i',
77 : : #define s_5_10 100
78 : : 'e', 'n', 't', 'l', 'i',
79 : : #define s_5_11 105
80 : : 'a', 'l', 'i', 't', 'i',
81 : : #define s_5_12 110
82 : : 'b', 'i', 'l', 'i', 't', 'i',
83 : : #define s_5_13 116
84 : : 'i', 'v', 'i', 't', 'i',
85 : : #define s_5_14 (s_5_15 + 1)
86 : : #define s_5_15 121
87 : : 'a', 't', 'i', 'o', 'n', 'a', 'l',
88 : : #define s_5_16 128
89 : : 'a', 'l', 'i', 's', 'm',
90 : : #define s_5_17 s_5_15
91 : : #define s_5_18 133
92 : : 'i', 'z', 'a', 't', 'i', 'o', 'n',
93 : : #define s_5_19 140
94 : : 'i', 'z', 'e', 'r',
95 : : #define s_5_20 144
96 : : 'a', 't', 'o', 'r',
97 : : #define s_5_21 148
98 : : 'i', 'v', 'e', 'n', 'e', 's', 's',
99 : : #define s_5_22 155
100 : : 'f', 'u', 'l', 'n', 'e', 's', 's',
101 : : #define s_5_23 162
102 : : 'o', 'u', 's', 'n', 'e', 's', 's',
103 : : #define s_6_0 169
104 : : 'i', 'c', 'a', 't', 'e',
105 : : #define s_6_1 174
106 : : 'a', 't', 'i', 'v', 'e',
107 : : #define s_6_2 179
108 : : 'a', 'l', 'i', 'z', 'e',
109 : : #define s_6_3 184
110 : : 'i', 'c', 'i', 't', 'i',
111 : : #define s_6_4 189
112 : : 'i', 'c', 'a', 'l',
113 : : #define s_6_5 (s_6_6 + 1)
114 : : #define s_6_6 193
115 : : 'a', 't', 'i', 'o', 'n', 'a', 'l',
116 : : #define s_6_7 200
117 : : 'f', 'u', 'l',
118 : : #define s_6_8 203
119 : : 'n', 'e', 's', 's',
120 : : #define s_7_0 207
121 : : 'i', 'c',
122 : : #define s_7_1 209
123 : : 'a', 'n', 'c', 'e',
124 : : #define s_7_2 213
125 : : 'e', 'n', 'c', 'e',
126 : : #define s_7_3 217
127 : : 'a', 'b', 'l', 'e',
128 : : #define s_7_4 221
129 : : 'i', 'b', 'l', 'e',
130 : : #define s_7_5 225
131 : : 'a', 't', 'e',
132 : : #define s_7_6 228
133 : : 'i', 'v', 'e',
134 : : #define s_7_7 231
135 : : 'i', 'z', 'e',
136 : : #define s_7_8 234
137 : : 'i', 't', 'i',
138 : : #define s_7_9 237
139 : : 'a', 'l',
140 : : #define s_7_10 239
141 : : 'i', 's', 'm',
142 : : #define s_7_11 242
143 : : 'i', 'o', 'n',
144 : : #define s_7_12 245
145 : : 'e', 'r',
146 : : #define s_7_13 247
147 : : 'o', 'u', 's',
148 : : #define s_7_14 250
149 : : 'a', 'n', 't',
150 : : #define s_7_15 (s_7_16 + 1)
151 : : #define s_7_16 (s_7_17 + 1)
152 : : #define s_7_17 253
153 : : 'e', 'm', 'e', 'n', 't',
154 : : #define s_8_0 258
155 : : 'e',
156 : : #define s_8_1 259
157 : : 'l',
158 : : #define s_9_0 260
159 : : 's', 'u', 'c', 'c', 'e', 'e', 'd',
160 : : #define s_9_1 267
161 : : 'p', 'r', 'o', 'c', 'e', 'e', 'd',
162 : : #define s_9_2 274
163 : : 'e', 'x', 'c', 'e', 'e', 'd',
164 : : #define s_9_3 280
165 : : 'c', 'a', 'n', 'n', 'i', 'n', 'g',
166 : : #define s_9_4 287
167 : : 'i', 'n', 'n', 'i', 'n', 'g',
168 : : #define s_9_5 293
169 : : 'e', 'a', 'r', 'r', 'i', 'n', 'g',
170 : : #define s_9_6 300
171 : : 'h', 'e', 'r', 'r', 'i', 'n', 'g',
172 : : #define s_9_7 307
173 : : 'o', 'u', 't', 'i', 'n', 'g',
174 : : #define s_10_0 313
175 : : 'a', 'n', 'd', 'e', 's',
176 : : #define s_10_1 318
177 : : 'a', 't', 'l', 'a', 's',
178 : : #define s_10_2 323
179 : : 'b', 'i', 'a', 's',
180 : : #define s_10_3 327
181 : : 'c', 'o', 's', 'm', 'o', 's',
182 : : #define s_10_4 333
183 : : 'd', 'y', 'i', 'n', 'g',
184 : : #define s_10_5 338
185 : : 'e', 'a', 'r', 'l', 'y',
186 : : #define s_10_6 343
187 : : 'g', 'e', 'n', 't', 'l', 'y',
188 : : #define s_10_7 349
189 : : 'h', 'o', 'w', 'e',
190 : : #define s_10_8 353
191 : : 'i', 'd', 'l', 'y',
192 : : #define s_10_9 357
193 : : 'l', 'y', 'i', 'n', 'g',
194 : : #define s_10_10 362
195 : : 'n', 'e', 'w', 's',
196 : : #define s_10_11 366
197 : : 'o', 'n', 'l', 'y',
198 : : #define s_10_12 370
199 : : 's', 'i', 'n', 'g', 'l', 'y',
200 : : #define s_10_13 376
201 : : 's', 'k', 'i', 'e', 's',
202 : : #define s_10_14 381
203 : : 's', 'k', 'i', 's',
204 : : #define s_10_15 385
205 : : 's', 'k', 'y',
206 : : #define s_10_16 388
207 : : 't', 'y', 'i', 'n', 'g',
208 : : #define s_10_17 393
209 : : 'u', 'g', 'l', 'y',
210 : : };
211 : :
212 : :
213 : : static const struct among a_0[3] =
214 : : {
215 : : /* 0 */ { 5, s_0_0, -1, -1},
216 : : /* 1 */ { 6, s_0_1, -1, -1},
217 : : /* 2 */ { 5, s_0_2, -1, -1}
218 : : };
219 : :
220 : :
221 : : static const struct among a_1[3] =
222 : : {
223 : : /* 0 */ { 1, s_1_0, -1, 1},
224 : : /* 1 */ { 3, s_1_1, 0, 1},
225 : : /* 2 */ { 2, s_1_2, -1, 1}
226 : : };
227 : :
228 : :
229 : : static const struct among a_2[6] =
230 : : {
231 : : /* 0 */ { 3, s_2_0, -1, 2},
232 : : /* 1 */ { 1, s_2_1, -1, 3},
233 : : /* 2 */ { 3, s_2_2, 1, 2},
234 : : /* 3 */ { 4, s_2_3, 1, 1},
235 : : /* 4 */ { 2, s_2_4, 1, -1},
236 : : /* 5 */ { 2, s_2_5, 1, -1}
237 : : };
238 : :
239 : :
240 : : static const struct among a_3[13] =
241 : : {
242 : : /* 0 */ { 0, 0, -1, 3},
243 : : /* 1 */ { 2, s_3_1, 0, 2},
244 : : /* 2 */ { 2, s_3_2, 0, 2},
245 : : /* 3 */ { 2, s_3_3, 0, 2},
246 : : /* 4 */ { 2, s_3_4, 0, 2},
247 : : /* 5 */ { 2, s_3_5, 0, 1},
248 : : /* 6 */ { 2, s_3_6, 0, 2},
249 : : /* 7 */ { 2, s_3_7, 0, 2},
250 : : /* 8 */ { 2, s_3_8, 0, 2},
251 : : /* 9 */ { 2, s_3_9, 0, 2},
252 : : /* 10 */ { 2, s_3_10, 0, 1},
253 : : /* 11 */ { 2, s_3_11, 0, 2},
254 : : /* 12 */ { 2, s_3_12, 0, 1}
255 : : };
256 : :
257 : :
258 : : static const struct among a_4[6] =
259 : : {
260 : : /* 0 */ { 2, s_4_0, -1, 2},
261 : : /* 1 */ { 3, s_4_1, 0, 1},
262 : : /* 2 */ { 3, s_4_2, -1, 2},
263 : : /* 3 */ { 4, s_4_3, -1, 2},
264 : : /* 4 */ { 5, s_4_4, 3, 1},
265 : : /* 5 */ { 5, s_4_5, -1, 2}
266 : : };
267 : :
268 : :
269 : : static const struct among a_5[24] =
270 : : {
271 : : /* 0 */ { 4, s_5_0, -1, 3},
272 : : /* 1 */ { 4, s_5_1, -1, 2},
273 : : /* 2 */ { 3, s_5_2, -1, 13},
274 : : /* 3 */ { 2, s_5_3, -1, 16},
275 : : /* 4 */ { 3, s_5_4, 3, 12},
276 : : /* 5 */ { 4, s_5_5, 4, 4},
277 : : /* 6 */ { 4, s_5_6, 3, 8},
278 : : /* 7 */ { 5, s_5_7, 3, 14},
279 : : /* 8 */ { 6, s_5_8, 3, 15},
280 : : /* 9 */ { 5, s_5_9, 3, 10},
281 : : /* 10 */ { 5, s_5_10, 3, 5},
282 : : /* 11 */ { 5, s_5_11, -1, 8},
283 : : /* 12 */ { 6, s_5_12, -1, 12},
284 : : /* 13 */ { 5, s_5_13, -1, 11},
285 : : /* 14 */ { 6, s_5_14, -1, 1},
286 : : /* 15 */ { 7, s_5_15, 14, 7},
287 : : /* 16 */ { 5, s_5_16, -1, 8},
288 : : /* 17 */ { 5, s_5_17, -1, 7},
289 : : /* 18 */ { 7, s_5_18, 17, 6},
290 : : /* 19 */ { 4, s_5_19, -1, 6},
291 : : /* 20 */ { 4, s_5_20, -1, 7},
292 : : /* 21 */ { 7, s_5_21, -1, 11},
293 : : /* 22 */ { 7, s_5_22, -1, 9},
294 : : /* 23 */ { 7, s_5_23, -1, 10}
295 : : };
296 : :
297 : :
298 : : static const struct among a_6[9] =
299 : : {
300 : : /* 0 */ { 5, s_6_0, -1, 4},
301 : : /* 1 */ { 5, s_6_1, -1, 6},
302 : : /* 2 */ { 5, s_6_2, -1, 3},
303 : : /* 3 */ { 5, s_6_3, -1, 4},
304 : : /* 4 */ { 4, s_6_4, -1, 4},
305 : : /* 5 */ { 6, s_6_5, -1, 1},
306 : : /* 6 */ { 7, s_6_6, 5, 2},
307 : : /* 7 */ { 3, s_6_7, -1, 5},
308 : : /* 8 */ { 4, s_6_8, -1, 5}
309 : : };
310 : :
311 : :
312 : : static const struct among a_7[18] =
313 : : {
314 : : /* 0 */ { 2, s_7_0, -1, 1},
315 : : /* 1 */ { 4, s_7_1, -1, 1},
316 : : /* 2 */ { 4, s_7_2, -1, 1},
317 : : /* 3 */ { 4, s_7_3, -1, 1},
318 : : /* 4 */ { 4, s_7_4, -1, 1},
319 : : /* 5 */ { 3, s_7_5, -1, 1},
320 : : /* 6 */ { 3, s_7_6, -1, 1},
321 : : /* 7 */ { 3, s_7_7, -1, 1},
322 : : /* 8 */ { 3, s_7_8, -1, 1},
323 : : /* 9 */ { 2, s_7_9, -1, 1},
324 : : /* 10 */ { 3, s_7_10, -1, 1},
325 : : /* 11 */ { 3, s_7_11, -1, 2},
326 : : /* 12 */ { 2, s_7_12, -1, 1},
327 : : /* 13 */ { 3, s_7_13, -1, 1},
328 : : /* 14 */ { 3, s_7_14, -1, 1},
329 : : /* 15 */ { 3, s_7_15, -1, 1},
330 : : /* 16 */ { 4, s_7_16, 15, 1},
331 : : /* 17 */ { 5, s_7_17, 16, 1}
332 : : };
333 : :
334 : :
335 : : static const struct among a_8[2] =
336 : : {
337 : : /* 0 */ { 1, s_8_0, -1, 1},
338 : : /* 1 */ { 1, s_8_1, -1, 2}
339 : : };
340 : :
341 : :
342 : : static const struct among a_9[8] =
343 : : {
344 : : /* 0 */ { 7, s_9_0, -1, -1},
345 : : /* 1 */ { 7, s_9_1, -1, -1},
346 : : /* 2 */ { 6, s_9_2, -1, -1},
347 : : /* 3 */ { 7, s_9_3, -1, -1},
348 : : /* 4 */ { 6, s_9_4, -1, -1},
349 : : /* 5 */ { 7, s_9_5, -1, -1},
350 : : /* 6 */ { 7, s_9_6, -1, -1},
351 : : /* 7 */ { 6, s_9_7, -1, -1}
352 : : };
353 : :
354 : :
355 : : static const struct among a_10[18] =
356 : : {
357 : : /* 0 */ { 5, s_10_0, -1, -1},
358 : : /* 1 */ { 5, s_10_1, -1, -1},
359 : : /* 2 */ { 4, s_10_2, -1, -1},
360 : : /* 3 */ { 6, s_10_3, -1, -1},
361 : : /* 4 */ { 5, s_10_4, -1, 3},
362 : : /* 5 */ { 5, s_10_5, -1, 9},
363 : : /* 6 */ { 6, s_10_6, -1, 7},
364 : : /* 7 */ { 4, s_10_7, -1, -1},
365 : : /* 8 */ { 4, s_10_8, -1, 6},
366 : : /* 9 */ { 5, s_10_9, -1, 4},
367 : : /* 10 */ { 4, s_10_10, -1, -1},
368 : : /* 11 */ { 4, s_10_11, -1, 10},
369 : : /* 12 */ { 6, s_10_12, -1, 11},
370 : : /* 13 */ { 5, s_10_13, -1, 2},
371 : : /* 14 */ { 4, s_10_14, -1, 1},
372 : : /* 15 */ { 3, s_10_15, -1, -1},
373 : : /* 16 */ { 5, s_10_16, -1, 5},
374 : : /* 17 */ { 4, s_10_17, -1, 8}
375 : : };
376 : :
377 : : static const unsigned char g_v[] = { 17, 65, 16, 1 };
378 : :
379 : : static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
380 : :
381 : : static const unsigned char g_valid_LI[] = { 55, 141, 2 };
382 : :
383 : : static const symbol s_0[] = { 'Y' };
384 : : static const symbol s_1[] = { 'Y' };
385 : : static const symbol s_2[] = { 's', 's' };
386 : : static const symbol s_3[] = { 'i' };
387 : : static const symbol s_4[] = { 'i', 'e' };
388 : : static const symbol s_5[] = { 'e', 'e' };
389 : : static const symbol s_6[] = { 'e' };
390 : : static const symbol s_7[] = { 'e' };
391 : : static const symbol s_8[] = { 'i' };
392 : : static const symbol s_9[] = { 't', 'i', 'o', 'n' };
393 : : static const symbol s_10[] = { 'e', 'n', 'c', 'e' };
394 : : static const symbol s_11[] = { 'a', 'n', 'c', 'e' };
395 : : static const symbol s_12[] = { 'a', 'b', 'l', 'e' };
396 : : static const symbol s_13[] = { 'e', 'n', 't' };
397 : : static const symbol s_14[] = { 'i', 'z', 'e' };
398 : : static const symbol s_15[] = { 'a', 't', 'e' };
399 : : static const symbol s_16[] = { 'a', 'l' };
400 : : static const symbol s_17[] = { 'f', 'u', 'l' };
401 : : static const symbol s_18[] = { 'o', 'u', 's' };
402 : : static const symbol s_19[] = { 'i', 'v', 'e' };
403 : : static const symbol s_20[] = { 'b', 'l', 'e' };
404 : : static const symbol s_21[] = { 'o', 'g' };
405 : : static const symbol s_22[] = { 'f', 'u', 'l' };
406 : : static const symbol s_23[] = { 'l', 'e', 's', 's' };
407 : : static const symbol s_24[] = { 't', 'i', 'o', 'n' };
408 : : static const symbol s_25[] = { 'a', 't', 'e' };
409 : : static const symbol s_26[] = { 'a', 'l' };
410 : : static const symbol s_27[] = { 'i', 'c' };
411 : : static const symbol s_28[] = { 's', 'k', 'i' };
412 : : static const symbol s_29[] = { 's', 'k', 'y' };
413 : : static const symbol s_30[] = { 'd', 'i', 'e' };
414 : : static const symbol s_31[] = { 'l', 'i', 'e' };
415 : : static const symbol s_32[] = { 't', 'i', 'e' };
416 : : static const symbol s_33[] = { 'i', 'd', 'l' };
417 : : static const symbol s_34[] = { 'g', 'e', 'n', 't', 'l' };
418 : : static const symbol s_35[] = { 'u', 'g', 'l', 'i' };
419 : : static const symbol s_36[] = { 'e', 'a', 'r', 'l', 'i' };
420 : : static const symbol s_37[] = { 'o', 'n', 'l', 'i' };
421 : : static const symbol s_38[] = { 's', 'i', 'n', 'g', 'l' };
422 : : static const symbol s_39[] = { 'y' };
423 : :
424 : 1114530 : int Xapian::InternalStemEnglish::r_prelude() { /* forwardmode */
425 : 1114530 : B_Y_found = 0; /* unset Y_found, line 26 */
426 : 1114530 : { int c1 = c; /* do, line 27 */
427 : 1114530 : bra = c; /* [, line 27 */
428 [ + - ][ + + ]: 1114530 : if (c == l || p[c] != 39) goto lab0;
429 : 44 : c++;
430 : 44 : ket = c; /* ], line 27 */
431 [ - + ]: 44 : if (slice_del() == -1) return -1; /* delete, line 27 */
432 : : lab0:
433 : 1114530 : c = c1;
434 : : }
435 : 1114530 : { int c2 = c; /* do, line 28 */
436 : 1114530 : bra = c; /* [, line 28 */
437 [ + - ][ + + ]: 1114530 : if (c == l || p[c] != 'y') goto lab1;
438 : 12674 : c++;
439 : 12674 : ket = c; /* ], line 28 */
440 : 12674 : { int ret = slice_from_s(1, s_0); /* <-, line 28 */
441 [ - + ]: 12674 : if (ret < 0) return ret;
442 : : }
443 : 12674 : B_Y_found = 1; /* set Y_found, line 28 */
444 : : lab1:
445 : 1114530 : c = c2;
446 : : }
447 : 1114530 : { int c3 = c; /* do, line 29 */
448 : 34177 : while(1) { /* repeat, line 29 */
449 : 1148707 : int c4 = c;
450 : 9677311 : while(1) { /* goto, line 29 */
451 : 10826018 : int c5 = c;
452 [ + + ]: 10826018 : if (in_grouping_U(g_v, 97, 121, 0)) goto lab4; /* grouping v, line 29 */
453 : 2583760 : bra = c; /* [, line 29 */
454 [ + + ][ + + ]: 2583760 : if (c == l || p[c] != 'y') goto lab4;
455 : 34177 : c++;
456 : 34177 : ket = c; /* ], line 29 */
457 : 34177 : c = c5;
458 : : break;
459 : : lab4:
460 : 10791841 : c = c5;
461 : 10791841 : { int ret = skip_utf8(p, c, 0, l, 1);
462 [ + + ]: 10791841 : if (ret < 0) goto lab3;
463 : 9677311 : c = ret; /* goto, line 29 */
464 : : }
465 : : }
466 : 34177 : { int ret = slice_from_s(1, s_1); /* <-, line 29 */
467 [ - + ]: 34177 : if (ret < 0) return ret;
468 : : }
469 : 34177 : B_Y_found = 1; /* set Y_found, line 29 */
470 : 34177 : continue;
471 : : lab3:
472 : 1114530 : c = c4;
473 : : break;
474 : : }
475 : 1114530 : c = c3;
476 : : }
477 : 1114530 : return 1;
478 : : }
479 : :
480 : 1114530 : int Xapian::InternalStemEnglish::r_mark_regions() { /* forwardmode */
481 : 1114530 : I_p1 = l; /* p1 = <integer expression>, line 33 */
482 : 1114530 : I_p2 = l; /* p2 = <integer expression>, line 34 */
483 : 1114530 : { int c1 = c; /* do, line 35 */
484 : 1114530 : { int c2 = c; /* or, line 41 */
485 [ + + ][ + + ]: 1114530 : if (c + 4 >= l || p[c + 4] >> 5 != 3 || !((2375680 >> (p[c + 4] & 0x1f)) & 1)) goto lab2; /* among, line 36 */
[ + + ]
486 [ + + ]: 106039 : if (!(find_among(s_pool, a_0, 3, 0, 0))) goto lab2;
487 : 1362 : goto lab1;
488 : : lab2:
489 : 1113168 : c = c2;
490 : 1113168 : { int ret = out_grouping_U(g_v, 97, 121, 1); /* gopast */ /* grouping v, line 41 */
491 [ + + ]: 1113168 : if (ret < 0) goto lab0;
492 : 1096315 : c += ret;
493 : : }
494 : 1096315 : { int ret = in_grouping_U(g_v, 97, 121, 1); /* gopast */ /* non v, line 41 */
495 [ + + ]: 1096315 : if (ret < 0) goto lab0;
496 : 1015419 : c += ret;
497 : : }
498 : : }
499 : : lab1:
500 : 1016781 : I_p1 = c; /* setmark p1, line 42 */
501 : 1016781 : { int ret = out_grouping_U(g_v, 97, 121, 1); /* gopast */ /* grouping v, line 43 */
502 [ + + ]: 1016781 : if (ret < 0) goto lab0;
503 : 602336 : c += ret;
504 : : }
505 : 602336 : { int ret = in_grouping_U(g_v, 97, 121, 1); /* gopast */ /* non v, line 43 */
506 [ + + ]: 602336 : if (ret < 0) goto lab0;
507 : 474150 : c += ret;
508 : : }
509 : 474150 : I_p2 = c; /* setmark p2, line 43 */
510 : : lab0:
511 : 1114530 : c = c1;
512 : : }
513 : 1114530 : return 1;
514 : : }
515 : :
516 : 125387 : int Xapian::InternalStemEnglish::r_shortv() { /* backwardmode */
517 : 125387 : { int m1 = l - c; (void)m1; /* or, line 51 */
518 [ + + ]: 125387 : if (out_grouping_b_U(g_v_WXY, 89, 121, 0)) goto lab1; /* non v_WXY, line 50 */
519 [ + + ]: 120624 : if (in_grouping_b_U(g_v, 97, 121, 0)) goto lab1; /* grouping v, line 50 */
520 [ + + ]: 96653 : if (out_grouping_b_U(g_v, 97, 121, 0)) goto lab1; /* non v, line 50 */
521 : 74298 : goto lab0;
522 : : lab1:
523 : 51089 : c = l - m1;
524 [ + + ]: 51089 : if (out_grouping_b_U(g_v, 97, 121, 0)) return 0; /* non v, line 52 */
525 [ + + ]: 49063 : if (in_grouping_b_U(g_v, 97, 121, 0)) return 0; /* grouping v, line 52 */
526 [ + + ]: 25054 : if (c > lb) return 0; /* atlimit, line 52 */
527 : : }
528 : : lab0:
529 : 125387 : return 1;
530 : : }
531 : :
532 : 214923 : int Xapian::InternalStemEnglish::r_R1() { /* backwardmode */
533 [ + + ]: 214923 : if (!(I_p1 <= c)) return 0; /* p1 <= <integer expression>, line 55 */
534 : 214923 : return 1;
535 : : }
536 : :
537 : 412476 : int Xapian::InternalStemEnglish::r_R2() { /* backwardmode */
538 [ + + ]: 412476 : if (!(I_p2 <= c)) return 0; /* p2 <= <integer expression>, line 56 */
539 : 412476 : return 1;
540 : : }
541 : :
542 : 1114530 : int Xapian::InternalStemEnglish::r_Step_1a() { /* backwardmode */
543 : : int among_var;
544 : 1114530 : { int m1 = l - c; (void)m1; /* try, line 59 */
545 : 1114530 : ket = c; /* [, line 60 */
546 [ + - ][ + + ]: 1114530 : if (c <= lb || (p[c - 1] != 39 && p[c - 1] != 115)) { c = l - m1; goto lab0; } /* substring, line 60 */
[ + + ]
547 : 153604 : among_var = find_among_b(s_pool, a_1, 3, 0, 0);
548 [ + + ]: 153604 : if (!(among_var)) { c = l - m1; goto lab0; }
549 : 47 : bra = c; /* ], line 60 */
550 [ - + - ]: 47 : switch(among_var) { /* among, line 60 */
551 : 0 : case 0: { c = l - m1; goto lab0; }
552 : : case 1:
553 [ - + ]: 47 : if (slice_del() == -1) return -1; /* delete, line 62 */
554 : : break;
555 : : }
556 : : lab0:
557 : : ;
558 : : }
559 : 1114530 : ket = c; /* [, line 65 */
560 [ + - ][ + + ]: 1114530 : if (c <= lb || (p[c - 1] != 100 && p[c - 1] != 115)) return 0; /* substring, line 65 */
[ + + ]
561 : 276931 : among_var = find_among_b(s_pool, a_2, 6, 0, 0);
562 [ + + ]: 276931 : if (!(among_var)) return 0;
563 : 155085 : bra = c; /* ], line 65 */
564 [ - + + + : 155085 : switch(among_var) { /* among, line 65 */
+ ]
565 : 0 : case 0: return 0;
566 : : case 1:
567 : 736 : { int ret = slice_from_s(2, s_2); /* <-, line 66 */
568 [ - + ]: 736 : if (ret < 0) return ret;
569 : : }
570 : 736 : break;
571 : : case 2:
572 : 6949 : { int m2 = l - c; (void)m2; /* or, line 68 */
573 : 6949 : { int ret = skip_utf8(p, c, lb, l, - 2); /* hop, line 68 */
574 [ + + ]: 6949 : if (ret < 0) goto lab2;
575 : 6388 : c = ret;
576 : : }
577 : 6388 : { int ret = slice_from_s(1, s_3); /* <-, line 68 */
578 [ - + ]: 6388 : if (ret < 0) return ret;
579 : : }
580 : 6388 : goto lab1;
581 : : lab2:
582 : 561 : c = l - m2;
583 : 561 : { int ret = slice_from_s(2, s_4); /* <-, line 68 */
584 [ - + ]: 561 : if (ret < 0) return ret;
585 : : }
586 : : }
587 : : lab1:
588 : 6949 : break;
589 : : case 3:
590 : 134037 : { int ret = skip_utf8(p, c, lb, 0, -1);
591 [ + + ]: 134037 : if (ret < 0) return 0;
592 : 134036 : c = ret; /* next, line 69 */
593 : : }
594 : 134036 : { int ret = out_grouping_b_U(g_v, 97, 121, 1); /* gopast */ /* grouping v, line 69 */
595 [ + + ]: 134036 : if (ret < 0) return 0;
596 : 86385 : c -= ret;
597 : : }
598 [ - + ]: 86385 : if (slice_del() == -1) return -1; /* delete, line 69 */
599 : : break;
600 : : }
601 : 1114530 : return 1;
602 : : }
603 : :
604 : 1114310 : int Xapian::InternalStemEnglish::r_Step_1b() { /* backwardmode */
605 : : int among_var;
606 : 1114310 : ket = c; /* [, line 75 */
607 [ + + ][ + + ]: 1114310 : if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((33554576 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* substring, line 75 */
[ + + ]
608 : 233585 : among_var = find_among_b(s_pool, a_4, 6, 0, 0);
609 [ + + ]: 233585 : if (!(among_var)) return 0;
610 : 70764 : bra = c; /* ], line 75 */
611 [ - + + - ]: 70764 : switch(among_var) { /* among, line 75 */
612 : 0 : case 0: return 0;
613 : : case 1:
614 : 1308 : { int ret = r_R1(); /* call R1, line 77 */
615 [ + + ]: 1308 : if (ret <= 0) return ret;
616 : : }
617 : 809 : { int ret = slice_from_s(2, s_5); /* <-, line 77 */
618 [ - + ]: 809 : if (ret < 0) return ret;
619 : : }
620 : 809 : break;
621 : : case 2:
622 : 69456 : { int m_test1 = l - c; /* test, line 80 */
623 : 69456 : { int ret = out_grouping_b_U(g_v, 97, 121, 1); /* gopast */ /* grouping v, line 80 */
624 [ + + ]: 69456 : if (ret < 0) return 0;
625 : 63362 : c -= ret;
626 : : }
627 : 63362 : c = l - m_test1;
628 : : }
629 [ - + ]: 63362 : if (slice_del() == -1) return -1; /* delete, line 80 */
630 : 63362 : { int m_test2 = l - c; /* test, line 81 */
631 [ + - ][ + + ]: 63362 : if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((68514004 >> (p[c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 81 */
[ + + ]
632 : 40237 : among_var = find_among_b(s_pool, a_3, 13, 0, 0);
633 [ - + ]: 63362 : if (!(among_var)) return 0;
634 : 63362 : c = l - m_test2;
635 : : }
636 [ - + + + : 63362 : switch(among_var) { /* among, line 81 */
- ]
637 : 0 : case 0: return 0;
638 : : case 1:
639 : 2806 : { int saved_c = c;
640 : 2806 : insert_s(c, c, 1, s_6); /* <+, line 83 */
641 : 2806 : c = saved_c;
642 : : }
643 : 2806 : break;
644 : : case 2:
645 : 3482 : ket = c; /* [, line 86 */
646 : 3482 : { int ret = skip_utf8(p, c, lb, 0, -1);
647 [ - + ]: 3482 : if (ret < 0) return 0;
648 : 3482 : c = ret; /* next, line 86 */
649 : : }
650 : 3482 : bra = c; /* ], line 86 */
651 [ - + ]: 3482 : if (slice_del() == -1) return -1; /* delete, line 86 */
652 : 3482 : break;
653 : : case 3:
654 [ + + ]: 57074 : if (c != I_p1) return 0; /* atmark, line 87 */
655 : 11766 : { int m_test3 = l - c; /* test, line 87 */
656 : 11766 : { int ret = r_shortv(); /* call shortv, line 87 */
657 [ + + ]: 11766 : if (ret <= 0) return ret;
658 : : }
659 : 5745 : c = l - m_test3;
660 : : }
661 : 5745 : { int saved_c = c;
662 : 5745 : insert_s(c, c, 1, s_7); /* <+, line 87 */
663 : 5745 : c = saved_c;
664 : : }
665 : : break;
666 : : }
667 : : break;
668 : : }
669 : 1114310 : return 1;
670 : : }
671 : :
672 : 1114310 : int Xapian::InternalStemEnglish::r_Step_1c() { /* backwardmode */
673 : 1114310 : ket = c; /* [, line 94 */
674 : 1114310 : { int m1 = l - c; (void)m1; /* or, line 94 */
675 [ + - ][ + + ]: 1114310 : if (c <= lb || p[c - 1] != 'y') goto lab1;
676 : 53854 : c--;
677 : 53854 : goto lab0;
678 : : lab1:
679 : 1060456 : c = l - m1;
680 [ + - ][ + + ]: 1060456 : if (c <= lb || p[c - 1] != 'Y') return 0;
681 : 19442 : c--;
682 : : }
683 : : lab0:
684 : 73296 : bra = c; /* ], line 94 */
685 [ + + ]: 73296 : if (out_grouping_b_U(g_v, 97, 121, 0)) return 0; /* non v, line 95 */
686 : 53886 : { int m2 = l - c; (void)m2; /* not, line 95 */
687 [ + + ]: 53886 : if (c > lb) goto lab2; /* atlimit, line 95 */
688 : 1 : return 0;
689 : : lab2:
690 : 53885 : c = l - m2;
691 : : }
692 : 53885 : { int ret = slice_from_s(1, s_8); /* <-, line 96 */
693 [ - + ]: 53885 : if (ret < 0) return ret;
694 : : }
695 : 1114310 : return 1;
696 : : }
697 : :
698 : 1114310 : int Xapian::InternalStemEnglish::r_Step_2() { /* backwardmode */
699 : : int among_var;
700 : 1114310 : ket = c; /* [, line 100 */
701 [ + + ][ + + ]: 1114310 : if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((815616 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* substring, line 100 */
[ + + ]
702 : 404438 : among_var = find_among_b(s_pool, a_5, 24, 0, 0);
703 [ + + ]: 404438 : if (!(among_var)) return 0;
704 : 26522 : bra = c; /* ], line 100 */
705 : 26522 : { int ret = r_R1(); /* call R1, line 100 */
706 [ + + ]: 26522 : if (ret <= 0) return ret;
707 : : }
708 [ - + + + + : 23747 : switch(among_var) { /* among, line 100 */
+ + + + +
+ + + + +
+ + - ]
709 : 0 : case 0: return 0;
710 : : case 1:
711 : 164 : { int ret = slice_from_s(4, s_9); /* <-, line 101 */
712 [ - + ]: 164 : if (ret < 0) return ret;
713 : : }
714 : 164 : break;
715 : : case 2:
716 : 1449 : { int ret = slice_from_s(4, s_10); /* <-, line 102 */
717 [ - + ]: 1449 : if (ret < 0) return ret;
718 : : }
719 : 1449 : break;
720 : : case 3:
721 : 76 : { int ret = slice_from_s(4, s_11); /* <-, line 103 */
722 [ - + ]: 76 : if (ret < 0) return ret;
723 : : }
724 : 76 : break;
725 : : case 4:
726 : 830 : { int ret = slice_from_s(4, s_12); /* <-, line 104 */
727 [ - + ]: 830 : if (ret < 0) return ret;
728 : : }
729 : 830 : break;
730 : : case 5:
731 : 729 : { int ret = slice_from_s(3, s_13); /* <-, line 105 */
732 [ - + ]: 729 : if (ret < 0) return ret;
733 : : }
734 : 729 : break;
735 : : case 6:
736 : 7 : { int ret = slice_from_s(3, s_14); /* <-, line 107 */
737 [ - + ]: 7 : if (ret < 0) return ret;
738 : : }
739 : 7 : break;
740 : : case 7:
741 : 4435 : { int ret = slice_from_s(3, s_15); /* <-, line 109 */
742 [ - + ]: 4435 : if (ret < 0) return ret;
743 : : }
744 : 4435 : break;
745 : : case 8:
746 : 3539 : { int ret = slice_from_s(2, s_16); /* <-, line 111 */
747 [ - + ]: 3539 : if (ret < 0) return ret;
748 : : }
749 : 3539 : break;
750 : : case 9:
751 : 47 : { int ret = slice_from_s(3, s_17); /* <-, line 112 */
752 [ - + ]: 47 : if (ret < 0) return ret;
753 : : }
754 : 47 : break;
755 : : case 10:
756 : 1106 : { int ret = slice_from_s(3, s_18); /* <-, line 114 */
757 [ - + ]: 1106 : if (ret < 0) return ret;
758 : : }
759 : 1106 : break;
760 : : case 11:
761 : 194 : { int ret = slice_from_s(3, s_19); /* <-, line 116 */
762 [ - + ]: 194 : if (ret < 0) return ret;
763 : : }
764 : 194 : break;
765 : : case 12:
766 : 671 : { int ret = slice_from_s(3, s_20); /* <-, line 118 */
767 [ - + ]: 671 : if (ret < 0) return ret;
768 : : }
769 : 671 : break;
770 : : case 13:
771 [ + - ][ + + ]: 54 : if (c <= lb || p[c - 1] != 'l') return 0;
772 : 51 : c--;
773 : 51 : { int ret = slice_from_s(2, s_21); /* <-, line 119 */
774 [ - + ]: 51 : if (ret < 0) return ret;
775 : : }
776 : 51 : break;
777 : : case 14:
778 : 536 : { int ret = slice_from_s(3, s_22); /* <-, line 120 */
779 [ - + ]: 536 : if (ret < 0) return ret;
780 : : }
781 : 536 : break;
782 : : case 15:
783 : 42 : { int ret = slice_from_s(4, s_23); /* <-, line 121 */
784 [ - + ]: 42 : if (ret < 0) return ret;
785 : : }
786 : 42 : break;
787 : : case 16:
788 [ + + ]: 9868 : if (in_grouping_b_U(g_valid_LI, 99, 116, 0)) return 0; /* grouping valid_LI, line 122 */
789 [ - + ]: 7604 : if (slice_del() == -1) return -1; /* delete, line 122 */
790 : : break;
791 : : }
792 : 1114310 : return 1;
793 : : }
794 : :
795 : 1114310 : int Xapian::InternalStemEnglish::r_Step_3() { /* backwardmode */
796 : : int among_var;
797 : 1114310 : ket = c; /* [, line 127 */
798 [ + + ][ + + ]: 1114310 : if (c - 2 <= lb || p[c - 1] >> 5 != 3 || !((528928 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* substring, line 127 */
[ + + ]
799 : 406189 : among_var = find_among_b(s_pool, a_6, 9, 0, 0);
800 [ + + ]: 406189 : if (!(among_var)) return 0;
801 : 7467 : bra = c; /* ], line 127 */
802 : 7467 : { int ret = r_R1(); /* call R1, line 127 */
803 [ + + ]: 7467 : if (ret <= 0) return ret;
804 : : }
805 [ - + + + + : 7331 : switch(among_var) { /* among, line 127 */
+ + - ]
806 : 0 : case 0: return 0;
807 : : case 1:
808 : 11 : { int ret = slice_from_s(4, s_24); /* <-, line 128 */
809 [ - + ]: 11 : if (ret < 0) return ret;
810 : : }
811 : 11 : break;
812 : : case 2:
813 : 1 : { int ret = slice_from_s(3, s_25); /* <-, line 129 */
814 [ - + ]: 1 : if (ret < 0) return ret;
815 : : }
816 : 1 : break;
817 : : case 3:
818 : 32 : { int ret = slice_from_s(2, s_26); /* <-, line 130 */
819 [ - + ]: 32 : if (ret < 0) return ret;
820 : : }
821 : 32 : break;
822 : : case 4:
823 : 2080 : { int ret = slice_from_s(2, s_27); /* <-, line 132 */
824 [ - + ]: 2080 : if (ret < 0) return ret;
825 : : }
826 : 2080 : break;
827 : : case 5:
828 [ - + ]: 4717 : if (slice_del() == -1) return -1; /* delete, line 134 */
829 : 4717 : break;
830 : : case 6:
831 : 490 : { int ret = r_R2(); /* call R2, line 136 */
832 [ + + ]: 490 : if (ret <= 0) return ret;
833 : : }
834 [ - + ]: 362 : if (slice_del() == -1) return -1; /* delete, line 136 */
835 : : break;
836 : : }
837 : 1114310 : return 1;
838 : : }
839 : :
840 : 1114310 : int Xapian::InternalStemEnglish::r_Step_4() { /* backwardmode */
841 : : int among_var;
842 : 1114310 : ket = c; /* [, line 141 */
843 [ + + ][ + + ]: 1114310 : if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((1864232 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* substring, line 141 */
[ + + ]
844 : 769215 : among_var = find_among_b(s_pool, a_7, 18, 0, 0);
845 [ + + ]: 769215 : if (!(among_var)) return 0;
846 : 137606 : bra = c; /* ], line 141 */
847 : 137606 : { int ret = r_R2(); /* call R2, line 141 */
848 [ + + ]: 137606 : if (ret <= 0) return ret;
849 : : }
850 [ - + + - ]: 59896 : switch(among_var) { /* among, line 141 */
851 : 0 : case 0: return 0;
852 : : case 1:
853 [ - + ]: 53780 : if (slice_del() == -1) return -1; /* delete, line 144 */
854 : 53780 : break;
855 : : case 2:
856 : 6116 : { int m1 = l - c; (void)m1; /* or, line 145 */
857 [ + - ][ + + ]: 6116 : if (c <= lb || p[c - 1] != 's') goto lab1;
858 : 1405 : c--;
859 : 1405 : goto lab0;
860 : : lab1:
861 : 4711 : c = l - m1;
862 [ + - ][ + + ]: 4711 : if (c <= lb || p[c - 1] != 't') return 0;
863 : 4203 : c--;
864 : : }
865 : : lab0:
866 [ - + ]: 5608 : if (slice_del() == -1) return -1; /* delete, line 145 */
867 : : break;
868 : : }
869 : 1114310 : return 1;
870 : : }
871 : :
872 : 1114310 : int Xapian::InternalStemEnglish::r_Step_5() { /* backwardmode */
873 : : int among_var;
874 : 1114310 : ket = c; /* [, line 150 */
875 [ + - ][ + + ]: 1114310 : if (c <= lb || (p[c - 1] != 101 && p[c - 1] != 108)) return 0; /* substring, line 150 */
[ + + ]
876 : 274380 : among_var = find_among_b(s_pool, a_8, 2, 0, 0);
877 [ - + ]: 274380 : if (!(among_var)) return 0;
878 : 274380 : bra = c; /* ], line 150 */
879 [ - + + - ]: 274380 : switch(among_var) { /* among, line 150 */
880 : 0 : case 0: return 0;
881 : : case 1:
882 : 224612 : { int m1 = l - c; (void)m1; /* or, line 151 */
883 : 224612 : { int ret = r_R2(); /* call R2, line 151 */
884 [ + + ]: 224612 : if (ret == 0) goto lab1;
885 [ - + ]: 44986 : if (ret < 0) return ret;
886 : : }
887 : 44986 : goto lab0;
888 : : lab1:
889 : 179626 : c = l - m1;
890 : 179626 : { int ret = r_R1(); /* call R1, line 151 */
891 [ + + ]: 179626 : if (ret <= 0) return ret;
892 : : }
893 : 113621 : { int m2 = l - c; (void)m2; /* not, line 151 */
894 : 113621 : { int ret = r_shortv(); /* call shortv, line 151 */
895 [ + + ]: 113621 : if (ret == 0) goto lab2;
896 [ - + ]: 81352 : if (ret < 0) return ret;
897 : : }
898 : 81352 : return 0;
899 : : lab2:
900 : 32269 : c = l - m2;
901 : : }
902 : : }
903 : : lab0:
904 [ - + ]: 77255 : if (slice_del() == -1) return -1; /* delete, line 151 */
905 : 77255 : break;
906 : : case 2:
907 : 49768 : { int ret = r_R2(); /* call R2, line 152 */
908 [ + + ]: 49768 : if (ret <= 0) return ret;
909 : : }
910 [ + - ][ + + ]: 6510 : if (c <= lb || p[c - 1] != 'l') return 0;
911 : 2961 : c--;
912 [ - + ]: 2961 : if (slice_del() == -1) return -1; /* delete, line 152 */
913 : : break;
914 : : }
915 : 1114310 : return 1;
916 : : }
917 : :
918 : 1114530 : int Xapian::InternalStemEnglish::r_exception2() { /* backwardmode */
919 : 1114530 : ket = c; /* [, line 158 */
920 [ + + ][ + + ]: 1114530 : if (c - 5 <= lb || (p[c - 1] != 100 && p[c - 1] != 103)) return 0; /* substring, line 158 */
[ + + ]
921 [ + + ]: 87444 : if (!(find_among_b(s_pool, a_9, 8, 0, 0))) return 0;
922 : 557 : bra = c; /* ], line 158 */
923 [ + + ]: 557 : if (c > lb) return 0; /* atlimit, line 158 */
924 : 1114530 : return 1;
925 : : }
926 : :
927 : 1383634 : int Xapian::InternalStemEnglish::r_exception1() { /* forwardmode */
928 : : int among_var;
929 : 1383634 : bra = c; /* [, line 170 */
930 [ + + ][ + + ]: 1383634 : if (c + 2 >= l || p[c + 2] >> 5 != 3 || !((42750482 >> (p[c + 2] & 0x1f)) & 1)) return 0; /* substring, line 170 */
[ + + ]
931 : 557896 : among_var = find_among(s_pool, a_10, 18, 0, 0);
932 [ + + ]: 557896 : if (!(among_var)) return 0;
933 : 3029 : ket = c; /* ], line 170 */
934 [ + + ]: 3029 : if (c < l) return 0; /* atlimit, line 170 */
935 [ - - + + + : 2634 : switch(among_var) { /* among, line 170 */
+ + + + +
+ + + ]
936 : 0 : case 0: return 0;
937 : : case 1:
938 : 0 : { int ret = slice_from_s(3, s_28); /* <-, line 174 */
939 [ # # ]: 0 : if (ret < 0) return ret;
940 : : }
941 : 0 : break;
942 : : case 2:
943 : 20 : { int ret = slice_from_s(3, s_29); /* <-, line 175 */
944 [ - + ]: 20 : if (ret < 0) return ret;
945 : : }
946 : 20 : break;
947 : : case 3:
948 : 39 : { int ret = slice_from_s(3, s_30); /* <-, line 176 */
949 [ - + ]: 39 : if (ret < 0) return ret;
950 : : }
951 : 39 : break;
952 : : case 4:
953 : 115 : { int ret = slice_from_s(3, s_31); /* <-, line 177 */
954 [ - + ]: 115 : if (ret < 0) return ret;
955 : : }
956 : 115 : break;
957 : : case 5:
958 : 1 : { int ret = slice_from_s(3, s_32); /* <-, line 178 */
959 [ - + ]: 1 : if (ret < 0) return ret;
960 : : }
961 : 1 : break;
962 : : case 6:
963 : 1 : { int ret = slice_from_s(3, s_33); /* <-, line 182 */
964 [ - + ]: 1 : if (ret < 0) return ret;
965 : : }
966 : 1 : break;
967 : : case 7:
968 : 20 : { int ret = slice_from_s(5, s_34); /* <-, line 183 */
969 [ - + ]: 20 : if (ret < 0) return ret;
970 : : }
971 : 20 : break;
972 : : case 8:
973 : 96 : { int ret = slice_from_s(4, s_35); /* <-, line 184 */
974 [ - + ]: 96 : if (ret < 0) return ret;
975 : : }
976 : 96 : break;
977 : : case 9:
978 : 96 : { int ret = slice_from_s(5, s_36); /* <-, line 185 */
979 [ - + ]: 96 : if (ret < 0) return ret;
980 : : }
981 : 96 : break;
982 : : case 10:
983 : 1880 : { int ret = slice_from_s(4, s_37); /* <-, line 186 */
984 [ - + ]: 1880 : if (ret < 0) return ret;
985 : : }
986 : 1880 : break;
987 : : case 11:
988 : 1 : { int ret = slice_from_s(5, s_38); /* <-, line 187 */
989 [ - + ]: 1 : if (ret < 0) return ret;
990 : : }
991 : : break;
992 : : }
993 : 1383634 : return 1;
994 : : }
995 : :
996 : 1114530 : int Xapian::InternalStemEnglish::r_postlude() { /* forwardmode */
997 [ + + ]: 1114530 : if (!(B_Y_found)) return 0; /* Boolean test Y_found, line 203 */
998 : 47225 : while(1) { /* repeat, line 203 */
999 : 91899 : int c1 = c;
1000 : 857283 : while(1) { /* goto, line 203 */
1001 : 949182 : int c2 = c;
1002 : 949182 : bra = c; /* [, line 203 */
1003 [ + + ][ + + ]: 949182 : if (c == l || p[c] != 'Y') goto lab1;
1004 : 47225 : c++;
1005 : 47225 : ket = c; /* ], line 203 */
1006 : 47225 : c = c2;
1007 : : break;
1008 : : lab1:
1009 : 901957 : c = c2;
1010 : 901957 : { int ret = skip_utf8(p, c, 0, l, 1);
1011 [ + + ]: 901957 : if (ret < 0) goto lab0;
1012 : 857283 : c = ret; /* goto, line 203 */
1013 : : }
1014 : : }
1015 : 47225 : { int ret = slice_from_s(1, s_39); /* <-, line 203 */
1016 [ - + ]: 47225 : if (ret < 0) return ret;
1017 : : }
1018 : 47225 : continue;
1019 : : lab0:
1020 : 44674 : c = c1;
1021 : : break;
1022 : : }
1023 : 1114530 : return 1;
1024 : : }
1025 : :
1026 : 1383634 : int Xapian::InternalStemEnglish::stem() { /* forwardmode */
1027 : 1383634 : { int c1 = c; /* or, line 207 */
1028 : 1383634 : { int ret = r_exception1(); /* call exception1, line 207 */
1029 [ + + ]: 1383634 : if (ret == 0) goto lab1;
1030 [ - + ]: 2634 : if (ret < 0) return ret;
1031 : : }
1032 : 2634 : goto lab0;
1033 : : lab1:
1034 : 1381000 : c = c1;
1035 : 1381000 : { int c2 = c; /* not, line 208 */
1036 : 1381000 : { int ret = skip_utf8(p, c, 0, l, + 3); /* hop, line 208 */
1037 [ + + ]: 1381000 : if (ret < 0) goto lab3;
1038 : 1114530 : c = ret;
1039 : : }
1040 : 1114530 : goto lab2;
1041 : : lab3:
1042 : 266470 : c = c2;
1043 : : }
1044 : 266470 : goto lab0;
1045 : : lab2:
1046 : 1114530 : c = c1;
1047 : 1114530 : { int c3 = c; /* do, line 209 */
1048 : 1114530 : { int ret = r_prelude(); /* call prelude, line 209 */
1049 [ - + ]: 1114530 : if (ret == 0) goto lab4;
1050 [ - + ]: 1114530 : if (ret < 0) return ret;
1051 : : }
1052 : : lab4:
1053 : 1114530 : c = c3;
1054 : : }
1055 : 1114530 : { int c4 = c; /* do, line 210 */
1056 : 1114530 : { int ret = r_mark_regions(); /* call mark_regions, line 210 */
1057 [ - + ]: 1114530 : if (ret == 0) goto lab5;
1058 [ - + ]: 1114530 : if (ret < 0) return ret;
1059 : : }
1060 : : lab5:
1061 : 1114530 : c = c4;
1062 : : }
1063 : 1114530 : lb = c; c = l; /* backwards, line 211 */
1064 : :
1065 : 1114530 : { int m5 = l - c; (void)m5; /* do, line 213 */
1066 : 1114530 : { int ret = r_Step_1a(); /* call Step_1a, line 213 */
1067 [ + + ]: 1114530 : if (ret == 0) goto lab6;
1068 [ - + ]: 107433 : if (ret < 0) return ret;
1069 : : }
1070 : : lab6:
1071 : 1114530 : c = l - m5;
1072 : : }
1073 : 1114530 : { int m6 = l - c; (void)m6; /* or, line 215 */
1074 : 1114530 : { int ret = r_exception2(); /* call exception2, line 215 */
1075 [ + + ]: 1114530 : if (ret == 0) goto lab8;
1076 [ - + ]: 220 : if (ret < 0) return ret;
1077 : : }
1078 : 220 : goto lab7;
1079 : : lab8:
1080 : 1114310 : c = l - m6;
1081 : 1114310 : { int m7 = l - c; (void)m7; /* do, line 217 */
1082 : 1114310 : { int ret = r_Step_1b(); /* call Step_1b, line 217 */
1083 [ + + ]: 1114310 : if (ret == 0) goto lab9;
1084 [ - + ]: 12842 : if (ret < 0) return ret;
1085 : : }
1086 : : lab9:
1087 : 1114310 : c = l - m7;
1088 : : }
1089 : 1114310 : { int m8 = l - c; (void)m8; /* do, line 218 */
1090 : 1114310 : { int ret = r_Step_1c(); /* call Step_1c, line 218 */
1091 [ + + ]: 1114310 : if (ret == 0) goto lab10;
1092 [ - + ]: 53885 : if (ret < 0) return ret;
1093 : : }
1094 : : lab10:
1095 : 1114310 : c = l - m8;
1096 : : }
1097 : 1114310 : { int m9 = l - c; (void)m9; /* do, line 220 */
1098 : 1114310 : { int ret = r_Step_2(); /* call Step_2, line 220 */
1099 [ + + ]: 1114310 : if (ret == 0) goto lab11;
1100 [ - + ]: 21480 : if (ret < 0) return ret;
1101 : : }
1102 : : lab11:
1103 : 1114310 : c = l - m9;
1104 : : }
1105 : 1114310 : { int m10 = l - c; (void)m10; /* do, line 221 */
1106 : 1114310 : { int ret = r_Step_3(); /* call Step_3, line 221 */
1107 [ + + ]: 1114310 : if (ret == 0) goto lab12;
1108 [ - + ]: 7203 : if (ret < 0) return ret;
1109 : : }
1110 : : lab12:
1111 : 1114310 : c = l - m10;
1112 : : }
1113 : 1114310 : { int m11 = l - c; (void)m11; /* do, line 222 */
1114 : 1114310 : { int ret = r_Step_4(); /* call Step_4, line 222 */
1115 [ + + ]: 1114310 : if (ret == 0) goto lab13;
1116 [ - + ]: 59388 : if (ret < 0) return ret;
1117 : : }
1118 : : lab13:
1119 : 1114310 : c = l - m11;
1120 : : }
1121 : 1114310 : { int m12 = l - c; (void)m12; /* do, line 224 */
1122 : 1114310 : { int ret = r_Step_5(); /* call Step_5, line 224 */
1123 [ + + ]: 1114310 : if (ret == 0) goto lab14;
1124 [ - + ]: 80216 : if (ret < 0) return ret;
1125 : : }
1126 : : lab14:
1127 : 1114310 : c = l - m12;
1128 : : }
1129 : : }
1130 : : lab7:
1131 : 1114530 : c = lb;
1132 : 1114530 : { int c13 = c; /* do, line 227 */
1133 : 1114530 : { int ret = r_postlude(); /* call postlude, line 227 */
1134 [ + + ]: 1114530 : if (ret == 0) goto lab15;
1135 [ - + ]: 44674 : if (ret < 0) return ret;
1136 : : }
1137 : : lab15:
1138 : 1114530 : c = c13;
1139 : : }
1140 : : }
1141 : : lab0:
1142 : 1383634 : return 1;
1143 : : }
1144 : :
1145 : 32889 : Xapian::InternalStemEnglish::InternalStemEnglish()
1146 : 32889 : : B_Y_found(0), I_p2(0), I_p1(0)
1147 : : {
1148 : 32889 : }
1149 : :
1150 : 32889 : Xapian::InternalStemEnglish::~InternalStemEnglish()
1151 : : {
1152 [ + - ][ # # ]: 32889 : }
[ # # ]
1153 : :
1154 : : std::string
1155 : 2 : Xapian::InternalStemEnglish::get_description() const
1156 : : {
1157 : 2 : return "english";
1158 : : }
|