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 "french.h"
5 : :
6 : : static const symbol s_pool[] = {
7 : : #define s_0_0 0
8 : : 'c', 'o', 'l',
9 : : #define s_0_1 3
10 : : 'p', 'a', 'r',
11 : : #define s_0_2 6
12 : : 't', 'a', 'p',
13 : : #define s_1_1 9
14 : : 'I',
15 : : #define s_1_2 10
16 : : 'U',
17 : : #define s_1_3 11
18 : : 'Y',
19 : : #define s_2_0 12
20 : : 'i', 'q', 'U',
21 : : #define s_2_1 15
22 : : 'a', 'b', 'l',
23 : : #define s_2_2 18
24 : : 'I', 0xC3, 0xA8, 'r',
25 : : #define s_2_3 22
26 : : 'i', 0xC3, 0xA8, 'r',
27 : : #define s_2_4 26
28 : : 'e', 'u', 's',
29 : : #define s_2_5 29
30 : : 'i', 'v',
31 : : #define s_3_0 31
32 : : 'i', 'c',
33 : : #define s_3_1 33
34 : : 'a', 'b', 'i', 'l',
35 : : #define s_3_2 37
36 : : 'i', 'v',
37 : : #define s_4_0 s_4_15
38 : : #define s_4_1 s_4_16
39 : : #define s_4_2 s_4_17
40 : : #define s_4_3 s_4_18
41 : : #define s_4_4 s_4_19
42 : : #define s_4_5 s_4_20
43 : : #define s_4_6 s_4_21
44 : : #define s_4_7 s_4_22
45 : : #define s_4_8 s_4_23
46 : : #define s_4_9 s_4_24
47 : : #define s_4_10 s_4_25
48 : : #define s_4_11 s_4_26
49 : : #define s_4_12 s_4_27
50 : : #define s_4_13 s_4_28
51 : : #define s_4_14 s_4_29
52 : : #define s_4_15 39
53 : : 'i', 'q', 'U', 'e', 's',
54 : : #define s_4_16 44
55 : : 'a', 't', 'r', 'i', 'c', 'e', 's',
56 : : #define s_4_17 51
57 : : 'a', 'n', 'c', 'e', 's',
58 : : #define s_4_18 56
59 : : 'e', 'n', 'c', 'e', 's',
60 : : #define s_4_19 61
61 : : 'l', 'o', 'g', 'i', 'e', 's',
62 : : #define s_4_20 67
63 : : 'a', 'b', 'l', 'e', 's',
64 : : #define s_4_21 72
65 : : 'i', 's', 'm', 'e', 's',
66 : : #define s_4_22 77
67 : : 'e', 'u', 's', 'e', 's',
68 : : #define s_4_23 82
69 : : 'i', 's', 't', 'e', 's',
70 : : #define s_4_24 87
71 : : 'i', 'v', 'e', 's',
72 : : #define s_4_25 91
73 : : 'i', 'f', 's',
74 : : #define s_4_26 94
75 : : 'u', 's', 'i', 'o', 'n', 's',
76 : : #define s_4_27 100
77 : : 'a', 't', 'i', 'o', 'n', 's',
78 : : #define s_4_28 106
79 : : 'u', 't', 'i', 'o', 'n', 's',
80 : : #define s_4_29 112
81 : : 'a', 't', 'e', 'u', 'r', 's',
82 : : #define s_4_30 (s_4_31 + 1)
83 : : #define s_4_31 (s_4_32 + 3)
84 : : #define s_4_32 118
85 : : 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's',
86 : : #define s_4_33 127
87 : : 'i', 't', 0xC3, 0xA9, 's',
88 : : #define s_4_34 s_4_30
89 : : #define s_4_35 s_4_31
90 : : #define s_4_36 s_4_32
91 : : #define s_4_37 132
92 : : 'a', 'm', 'm', 'e', 'n', 't',
93 : : #define s_4_38 138
94 : : 'e', 'm', 'm', 'e', 'n', 't',
95 : : #define s_4_39 (s_4_40 + 1)
96 : : #define s_4_40 144
97 : : 'e', 'a', 'u', 'x',
98 : : #define s_4_41 148
99 : : 'e', 'u', 'x',
100 : : #define s_4_42 s_4_33
101 : : #define s_5_0 s_5_5
102 : : #define s_5_1 s_5_8
103 : : #define s_5_2 s_5_10
104 : : #define s_5_3 s_5_11
105 : : #define s_5_4 s_5_0
106 : : #define s_5_5 s_5_14
107 : : #define s_5_6 s_5_0
108 : : #define s_5_7 151
109 : : 'i', 'r', 'a', 's',
110 : : #define s_5_8 155
111 : : 'i', 'e', 's',
112 : : #define s_5_9 158
113 : : 0xC3, 0xAE, 'm', 'e', 's',
114 : : #define s_5_10 163
115 : : 'i', 's', 's', 'e', 's',
116 : : #define s_5_11 168
117 : : 'i', 's', 's', 'a', 'n', 't', 'e', 's',
118 : : #define s_5_12 176
119 : : 0xC3, 0xAE, 't', 'e', 's',
120 : : #define s_5_13 s_5_2
121 : : #define s_5_14 181
122 : : 'i', 'r', 'a', 'i', 's',
123 : : #define s_5_15 186
124 : : 'i', 's', 's', 'a', 'i', 's',
125 : : #define s_5_16 192
126 : : 'i', 'r', 'i', 'o', 'n', 's',
127 : : #define s_5_17 198
128 : : 'i', 's', 's', 'i', 'o', 'n', 's',
129 : : #define s_5_18 205
130 : : 'i', 'r', 'o', 'n', 's',
131 : : #define s_5_19 210
132 : : 'i', 's', 's', 'o', 'n', 's',
133 : : #define s_5_20 216
134 : : 'i', 's', 's', 'a', 'n', 't', 's',
135 : : #define s_5_21 (s_5_22 + 3)
136 : : #define s_5_22 223
137 : : 'i', 'r', 'a', 'i', 't',
138 : : #define s_5_23 228
139 : : 'i', 's', 's', 'a', 'i', 't',
140 : : #define s_5_24 s_5_3
141 : : #define s_5_25 234
142 : : 'i', 'r', 'a', 'I', 'e', 'n', 't',
143 : : #define s_5_26 241
144 : : 'i', 's', 's', 'a', 'I', 'e', 'n', 't',
145 : : #define s_5_27 249
146 : : 'i', 'r', 'e', 'n', 't',
147 : : #define s_5_28 254
148 : : 'i', 's', 's', 'e', 'n', 't',
149 : : #define s_5_29 260
150 : : 'i', 'r', 'o', 'n', 't',
151 : : #define s_5_30 s_5_12
152 : : #define s_5_31 265
153 : : 'i', 'r', 'i', 'e', 'z',
154 : : #define s_5_32 270
155 : : 'i', 's', 's', 'i', 'e', 'z',
156 : : #define s_5_33 276
157 : : 'i', 'r', 'e', 'z',
158 : : #define s_5_34 280
159 : : 'i', 's', 's', 'e', 'z',
160 : : #define s_6_0 (s_6_1 + 2)
161 : : #define s_6_1 s_6_6
162 : : #define s_6_2 s_6_11
163 : : #define s_6_3 s_6_12
164 : : #define s_6_4 s_6_14
165 : : #define s_6_5 (s_6_6 + 2)
166 : : #define s_6_6 s_6_16
167 : : #define s_6_7 s_6_1
168 : : #define s_6_8 s_6_2
169 : : #define s_6_9 285
170 : : 'e', 'r', 'a', 's',
171 : : #define s_6_10 289
172 : : 0xC3, 0xA2, 'm', 'e', 's',
173 : : #define s_6_11 294
174 : : 'a', 's', 's', 'e', 's',
175 : : #define s_6_12 299
176 : : 'a', 'n', 't', 'e', 's',
177 : : #define s_6_13 304
178 : : 0xC3, 0xA2, 't', 'e', 's',
179 : : #define s_6_14 309
180 : : 0xC3, 0xA9, 'e', 's',
181 : : #define s_6_15 (s_6_16 + 2)
182 : : #define s_6_16 313
183 : : 'e', 'r', 'a', 'i', 's',
184 : : #define s_6_17 (s_6_18 + 2)
185 : : #define s_6_18 318
186 : : 'e', 'r', 'i', 'o', 'n', 's',
187 : : #define s_6_19 324
188 : : 'a', 's', 's', 'i', 'o', 'n', 's',
189 : : #define s_6_20 331
190 : : 'e', 'r', 'o', 'n', 's',
191 : : #define s_6_21 336
192 : : 'a', 'n', 't', 's',
193 : : #define s_6_22 340
194 : : 0xC3, 0xA9, 's',
195 : : #define s_6_23 (s_6_24 + 2)
196 : : #define s_6_24 343
197 : : 'e', 'r', 'a', 'i', 't',
198 : : #define s_6_25 s_6_3
199 : : #define s_6_26 (s_6_27 + 2)
200 : : #define s_6_27 348
201 : : 'e', 'r', 'a', 'I', 'e', 'n', 't',
202 : : #define s_6_28 355
203 : : 0xC3, 0xA8, 'r', 'e', 'n', 't',
204 : : #define s_6_29 361
205 : : 'a', 's', 's', 'e', 'n', 't',
206 : : #define s_6_30 367
207 : : 'e', 'r', 'o', 'n', 't',
208 : : #define s_6_31 s_6_13
209 : : #define s_6_32 (s_6_33 + 1)
210 : : #define s_6_33 (s_6_34 + 2)
211 : : #define s_6_34 372
212 : : 'e', 'r', 'i', 'e', 'z',
213 : : #define s_6_35 377
214 : : 'a', 's', 's', 'i', 'e', 'z',
215 : : #define s_6_36 383
216 : : 'e', 'r', 'e', 'z',
217 : : #define s_6_37 s_6_4
218 : : #define s_7_0 (s_7_1 + 4)
219 : : #define s_7_1 387
220 : : 'I', 0xC3, 0xA8, 'r', 'e',
221 : : #define s_7_2 392
222 : : 'i', 0xC3, 0xA8, 'r', 'e',
223 : : #define s_7_3 397
224 : : 'i', 'o', 'n',
225 : : #define s_7_4 400
226 : : 'I', 'e', 'r',
227 : : #define s_7_5 403
228 : : 'i', 'e', 'r',
229 : : #define s_7_6 406
230 : : 0xC3, 0xAB,
231 : : #define s_8_0 408
232 : : 'e', 'l', 'l',
233 : : #define s_8_1 411
234 : : 'e', 'i', 'l', 'l',
235 : : #define s_8_2 415
236 : : 'e', 'n', 'n',
237 : : #define s_8_3 418
238 : : 'o', 'n', 'n',
239 : : #define s_8_4 421
240 : : 'e', 't', 't',
241 : : };
242 : :
243 : :
244 : : static const struct among a_0[3] =
245 : : {
246 : : /* 0 */ { 3, s_0_0, -1, -1},
247 : : /* 1 */ { 3, s_0_1, -1, -1},
248 : : /* 2 */ { 3, s_0_2, -1, -1}
249 : : };
250 : :
251 : :
252 : : static const struct among a_1[4] =
253 : : {
254 : : /* 0 */ { 0, 0, -1, 4},
255 : : /* 1 */ { 1, s_1_1, 0, 1},
256 : : /* 2 */ { 1, s_1_2, 0, 2},
257 : : /* 3 */ { 1, s_1_3, 0, 3}
258 : : };
259 : :
260 : :
261 : : static const struct among a_2[6] =
262 : : {
263 : : /* 0 */ { 3, s_2_0, -1, 3},
264 : : /* 1 */ { 3, s_2_1, -1, 3},
265 : : /* 2 */ { 4, s_2_2, -1, 4},
266 : : /* 3 */ { 4, s_2_3, -1, 4},
267 : : /* 4 */ { 3, s_2_4, -1, 2},
268 : : /* 5 */ { 2, s_2_5, -1, 1}
269 : : };
270 : :
271 : :
272 : : static const struct among a_3[3] =
273 : : {
274 : : /* 0 */ { 2, s_3_0, -1, 2},
275 : : /* 1 */ { 4, s_3_1, -1, 1},
276 : : /* 2 */ { 2, s_3_2, -1, 3}
277 : : };
278 : :
279 : :
280 : : static const struct among a_4[43] =
281 : : {
282 : : /* 0 */ { 4, s_4_0, -1, 1},
283 : : /* 1 */ { 6, s_4_1, -1, 2},
284 : : /* 2 */ { 4, s_4_2, -1, 1},
285 : : /* 3 */ { 4, s_4_3, -1, 5},
286 : : /* 4 */ { 5, s_4_4, -1, 3},
287 : : /* 5 */ { 4, s_4_5, -1, 1},
288 : : /* 6 */ { 4, s_4_6, -1, 1},
289 : : /* 7 */ { 4, s_4_7, -1, 11},
290 : : /* 8 */ { 4, s_4_8, -1, 1},
291 : : /* 9 */ { 3, s_4_9, -1, 8},
292 : : /* 10 */ { 2, s_4_10, -1, 8},
293 : : /* 11 */ { 5, s_4_11, -1, 4},
294 : : /* 12 */ { 5, s_4_12, -1, 2},
295 : : /* 13 */ { 5, s_4_13, -1, 4},
296 : : /* 14 */ { 5, s_4_14, -1, 2},
297 : : /* 15 */ { 5, s_4_15, -1, 1},
298 : : /* 16 */ { 7, s_4_16, -1, 2},
299 : : /* 17 */ { 5, s_4_17, -1, 1},
300 : : /* 18 */ { 5, s_4_18, -1, 5},
301 : : /* 19 */ { 6, s_4_19, -1, 3},
302 : : /* 20 */ { 5, s_4_20, -1, 1},
303 : : /* 21 */ { 5, s_4_21, -1, 1},
304 : : /* 22 */ { 5, s_4_22, -1, 11},
305 : : /* 23 */ { 5, s_4_23, -1, 1},
306 : : /* 24 */ { 4, s_4_24, -1, 8},
307 : : /* 25 */ { 3, s_4_25, -1, 8},
308 : : /* 26 */ { 6, s_4_26, -1, 4},
309 : : /* 27 */ { 6, s_4_27, -1, 2},
310 : : /* 28 */ { 6, s_4_28, -1, 4},
311 : : /* 29 */ { 6, s_4_29, -1, 2},
312 : : /* 30 */ { 5, s_4_30, -1, 15},
313 : : /* 31 */ { 6, s_4_31, 30, 6},
314 : : /* 32 */ { 9, s_4_32, 31, 12},
315 : : /* 33 */ { 5, s_4_33, -1, 7},
316 : : /* 34 */ { 4, s_4_34, -1, 15},
317 : : /* 35 */ { 5, s_4_35, 34, 6},
318 : : /* 36 */ { 8, s_4_36, 35, 12},
319 : : /* 37 */ { 6, s_4_37, 34, 13},
320 : : /* 38 */ { 6, s_4_38, 34, 14},
321 : : /* 39 */ { 3, s_4_39, -1, 10},
322 : : /* 40 */ { 4, s_4_40, 39, 9},
323 : : /* 41 */ { 3, s_4_41, -1, 1},
324 : : /* 42 */ { 4, s_4_42, -1, 7}
325 : : };
326 : :
327 : :
328 : : static const struct among a_5[35] =
329 : : {
330 : : /* 0 */ { 3, s_5_0, -1, 1},
331 : : /* 1 */ { 2, s_5_1, -1, 1},
332 : : /* 2 */ { 4, s_5_2, -1, 1},
333 : : /* 3 */ { 7, s_5_3, -1, 1},
334 : : /* 4 */ { 1, s_5_4, -1, 1},
335 : : /* 5 */ { 4, s_5_5, 4, 1},
336 : : /* 6 */ { 2, s_5_6, -1, 1},
337 : : /* 7 */ { 4, s_5_7, -1, 1},
338 : : /* 8 */ { 3, s_5_8, -1, 1},
339 : : /* 9 */ { 5, s_5_9, -1, 1},
340 : : /* 10 */ { 5, s_5_10, -1, 1},
341 : : /* 11 */ { 8, s_5_11, -1, 1},
342 : : /* 12 */ { 5, s_5_12, -1, 1},
343 : : /* 13 */ { 2, s_5_13, -1, 1},
344 : : /* 14 */ { 5, s_5_14, 13, 1},
345 : : /* 15 */ { 6, s_5_15, 13, 1},
346 : : /* 16 */ { 6, s_5_16, -1, 1},
347 : : /* 17 */ { 7, s_5_17, -1, 1},
348 : : /* 18 */ { 5, s_5_18, -1, 1},
349 : : /* 19 */ { 6, s_5_19, -1, 1},
350 : : /* 20 */ { 7, s_5_20, -1, 1},
351 : : /* 21 */ { 2, s_5_21, -1, 1},
352 : : /* 22 */ { 5, s_5_22, 21, 1},
353 : : /* 23 */ { 6, s_5_23, 21, 1},
354 : : /* 24 */ { 6, s_5_24, -1, 1},
355 : : /* 25 */ { 7, s_5_25, -1, 1},
356 : : /* 26 */ { 8, s_5_26, -1, 1},
357 : : /* 27 */ { 5, s_5_27, -1, 1},
358 : : /* 28 */ { 6, s_5_28, -1, 1},
359 : : /* 29 */ { 5, s_5_29, -1, 1},
360 : : /* 30 */ { 3, s_5_30, -1, 1},
361 : : /* 31 */ { 5, s_5_31, -1, 1},
362 : : /* 32 */ { 6, s_5_32, -1, 1},
363 : : /* 33 */ { 4, s_5_33, -1, 1},
364 : : /* 34 */ { 5, s_5_34, -1, 1}
365 : : };
366 : :
367 : :
368 : : static const struct among a_6[38] =
369 : : {
370 : : /* 0 */ { 1, s_6_0, -1, 3},
371 : : /* 1 */ { 3, s_6_1, 0, 2},
372 : : /* 2 */ { 4, s_6_2, -1, 3},
373 : : /* 3 */ { 4, s_6_3, -1, 3},
374 : : /* 4 */ { 3, s_6_4, -1, 2},
375 : : /* 5 */ { 2, s_6_5, -1, 3},
376 : : /* 6 */ { 4, s_6_6, 5, 2},
377 : : /* 7 */ { 2, s_6_7, -1, 2},
378 : : /* 8 */ { 2, s_6_8, -1, 3},
379 : : /* 9 */ { 4, s_6_9, 8, 2},
380 : : /* 10 */ { 5, s_6_10, -1, 3},
381 : : /* 11 */ { 5, s_6_11, -1, 3},
382 : : /* 12 */ { 5, s_6_12, -1, 3},
383 : : /* 13 */ { 5, s_6_13, -1, 3},
384 : : /* 14 */ { 4, s_6_14, -1, 2},
385 : : /* 15 */ { 3, s_6_15, -1, 3},
386 : : /* 16 */ { 5, s_6_16, 15, 2},
387 : : /* 17 */ { 4, s_6_17, -1, 1},
388 : : /* 18 */ { 6, s_6_18, 17, 2},
389 : : /* 19 */ { 7, s_6_19, 17, 3},
390 : : /* 20 */ { 5, s_6_20, -1, 2},
391 : : /* 21 */ { 4, s_6_21, -1, 3},
392 : : /* 22 */ { 3, s_6_22, -1, 2},
393 : : /* 23 */ { 3, s_6_23, -1, 3},
394 : : /* 24 */ { 5, s_6_24, 23, 2},
395 : : /* 25 */ { 3, s_6_25, -1, 3},
396 : : /* 26 */ { 5, s_6_26, -1, 3},
397 : : /* 27 */ { 7, s_6_27, 26, 2},
398 : : /* 28 */ { 6, s_6_28, -1, 2},
399 : : /* 29 */ { 6, s_6_29, -1, 3},
400 : : /* 30 */ { 5, s_6_30, -1, 2},
401 : : /* 31 */ { 3, s_6_31, -1, 3},
402 : : /* 32 */ { 2, s_6_32, -1, 2},
403 : : /* 33 */ { 3, s_6_33, 32, 2},
404 : : /* 34 */ { 5, s_6_34, 33, 2},
405 : : /* 35 */ { 6, s_6_35, 33, 3},
406 : : /* 36 */ { 4, s_6_36, 32, 2},
407 : : /* 37 */ { 2, s_6_37, -1, 2}
408 : : };
409 : :
410 : :
411 : : static const struct among a_7[7] =
412 : : {
413 : : /* 0 */ { 1, s_7_0, -1, 3},
414 : : /* 1 */ { 5, s_7_1, 0, 2},
415 : : /* 2 */ { 5, s_7_2, 0, 2},
416 : : /* 3 */ { 3, s_7_3, -1, 1},
417 : : /* 4 */ { 3, s_7_4, -1, 2},
418 : : /* 5 */ { 3, s_7_5, -1, 2},
419 : : /* 6 */ { 2, s_7_6, -1, 4}
420 : : };
421 : :
422 : :
423 : : static const struct among a_8[5] =
424 : : {
425 : : /* 0 */ { 3, s_8_0, -1, -1},
426 : : /* 1 */ { 4, s_8_1, -1, -1},
427 : : /* 2 */ { 3, s_8_2, -1, -1},
428 : : /* 3 */ { 3, s_8_3, -1, -1},
429 : : /* 4 */ { 3, s_8_4, -1, -1}
430 : : };
431 : :
432 : : static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
433 : :
434 : : static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
435 : :
436 : : static const symbol s_0[] = { 'U' };
437 : : static const symbol s_1[] = { 'I' };
438 : : static const symbol s_2[] = { 'Y' };
439 : : static const symbol s_3[] = { 'Y' };
440 : : static const symbol s_4[] = { 'U' };
441 : : static const symbol s_5[] = { 'i' };
442 : : static const symbol s_6[] = { 'u' };
443 : : static const symbol s_7[] = { 'y' };
444 : : static const symbol s_8[] = { 'i', 'c' };
445 : : static const symbol s_9[] = { 'i', 'q', 'U' };
446 : : static const symbol s_10[] = { 'l', 'o', 'g' };
447 : : static const symbol s_11[] = { 'u' };
448 : : static const symbol s_12[] = { 'e', 'n', 't' };
449 : : static const symbol s_13[] = { 'a', 't' };
450 : : static const symbol s_14[] = { 'e', 'u', 'x' };
451 : : static const symbol s_15[] = { 'i' };
452 : : static const symbol s_16[] = { 'a', 'b', 'l' };
453 : : static const symbol s_17[] = { 'i', 'q', 'U' };
454 : : static const symbol s_18[] = { 'a', 't' };
455 : : static const symbol s_19[] = { 'i', 'c' };
456 : : static const symbol s_20[] = { 'i', 'q', 'U' };
457 : : static const symbol s_21[] = { 'e', 'a', 'u' };
458 : : static const symbol s_22[] = { 'a', 'l' };
459 : : static const symbol s_23[] = { 'e', 'u', 'x' };
460 : : static const symbol s_24[] = { 'a', 'n', 't' };
461 : : static const symbol s_25[] = { 'e', 'n', 't' };
462 : : static const symbol s_26[] = { 'i' };
463 : : static const symbol s_27[] = { 'g', 'u' };
464 : : static const symbol s_28[] = { 0xC3, 0xA9 };
465 : : static const symbol s_29[] = { 0xC3, 0xA8 };
466 : : static const symbol s_30[] = { 'e' };
467 : : static const symbol s_31[] = { 'i' };
468 : : static const symbol s_32[] = { 0xC3, 0xA7 };
469 : : static const symbol s_33[] = { 'c' };
470 : :
471 : 117703 : int Xapian::InternalStemFrench::r_prelude() { /* forwardmode */
472 : 26684 : while(1) { /* repeat, line 38 */
473 : 117703 : int c1 = c;
474 : 4107518 : while(1) { /* goto, line 38 */
475 : 4225221 : int c2 = c;
476 : 4225221 : { int c3 = c; /* or, line 44 */
477 [ + + ]: 4225221 : if (in_grouping_U(g_v, 97, 251, 0)) goto lab3; /* grouping v, line 40 */
478 : 505489 : bra = c; /* [, line 40 */
479 : 505489 : { int c4 = c; /* or, line 40 */
480 [ + + ][ + + ]: 505489 : if (c == l || p[c] != 'u') goto lab5;
481 : 14023 : c++;
482 : 14023 : ket = c; /* ], line 40 */
483 [ + + ]: 14023 : if (in_grouping_U(g_v, 97, 251, 0)) goto lab5; /* grouping v, line 40 */
484 : 2257 : { int ret = slice_from_s(1, s_0); /* <-, line 40 */
485 [ - + ]: 2257 : if (ret < 0) return ret;
486 : : }
487 : 2257 : goto lab4;
488 : : lab5:
489 : 503232 : c = c4;
490 [ + + ][ + + ]: 503232 : if (c == l || p[c] != 'i') goto lab6;
491 : 15025 : c++;
492 : 15025 : ket = c; /* ], line 41 */
493 [ + + ]: 15025 : if (in_grouping_U(g_v, 97, 251, 0)) goto lab6; /* grouping v, line 41 */
494 : 2550 : { int ret = slice_from_s(1, s_1); /* <-, line 41 */
495 [ - + ]: 2550 : if (ret < 0) return ret;
496 : : }
497 : 2550 : goto lab4;
498 : : lab6:
499 : 500682 : c = c4;
500 [ + + ][ + + ]: 500682 : if (c == l || p[c] != 'y') goto lab3;
501 : 11233 : c++;
502 : 11233 : ket = c; /* ], line 42 */
503 : 11233 : { int ret = slice_from_s(1, s_2); /* <-, line 42 */
504 [ - + ]: 11233 : if (ret < 0) return ret;
505 : : }
506 : : }
507 : : lab4:
508 : 16040 : goto lab2;
509 : : lab3:
510 : 4209181 : c = c3;
511 : 4209181 : bra = c; /* [, line 45 */
512 [ + + ][ + + ]: 4209181 : if (c == l || p[c] != 'y') goto lab7;
513 : 61926 : c++;
514 : 61926 : ket = c; /* ], line 45 */
515 [ + + ]: 61926 : if (in_grouping_U(g_v, 97, 251, 0)) goto lab7; /* grouping v, line 45 */
516 : 7838 : { int ret = slice_from_s(1, s_3); /* <-, line 45 */
517 [ - + ]: 7838 : if (ret < 0) return ret;
518 : : }
519 : 7838 : goto lab2;
520 : : lab7:
521 : 4201343 : c = c3;
522 [ + + ][ + + ]: 4201343 : if (c == l || p[c] != 'q') goto lab1;
523 : 75923 : c++;
524 : 75923 : bra = c; /* [, line 47 */
525 [ + + ][ + + ]: 75923 : if (c == l || p[c] != 'u') goto lab1;
526 : 2806 : c++;
527 : 2806 : ket = c; /* ], line 47 */
528 : 2806 : { int ret = slice_from_s(1, s_4); /* <-, line 47 */
529 [ - + ]: 2806 : if (ret < 0) return ret;
530 : : }
531 : : }
532 : : lab2:
533 : 26684 : c = c2;
534 : : break;
535 : : lab1:
536 : 4198537 : c = c2;
537 : 4198537 : { int ret = skip_utf8(p, c, 0, l, 1);
538 [ + + ]: 4198537 : if (ret < 0) goto lab0;
539 : 4107518 : c = ret; /* goto, line 38 */
540 : : }
541 : : }
542 : 26684 : continue;
543 : : lab0:
544 : 91019 : c = c1;
545 : : break;
546 : : }
547 : 91019 : return 1;
548 : : }
549 : :
550 : 91019 : int Xapian::InternalStemFrench::r_mark_regions() { /* forwardmode */
551 : 91019 : I_pV = l; /* pV = <integer expression>, line 52 */
552 : 91019 : I_p1 = l; /* p1 = <integer expression>, line 53 */
553 : 91019 : I_p2 = l; /* p2 = <integer expression>, line 54 */
554 : 91019 : { int c1 = c; /* do, line 56 */
555 : 91019 : { int c2 = c; /* or, line 58 */
556 [ + + ]: 91019 : if (in_grouping_U(g_v, 97, 251, 0)) goto lab2; /* grouping v, line 57 */
557 [ + + ]: 17060 : if (in_grouping_U(g_v, 97, 251, 0)) goto lab2; /* grouping v, line 57 */
558 : 1665 : { int ret = skip_utf8(p, c, 0, l, 1);
559 [ + + ]: 1665 : if (ret < 0) goto lab2;
560 : 1613 : c = ret; /* next, line 57 */
561 : : }
562 : 1613 : goto lab1;
563 : : lab2:
564 : 89406 : c = c2;
565 [ + + ][ + + ]: 89406 : if (c + 2 >= l || p[c + 2] >> 5 != 3 || !((331776 >> (p[c + 2] & 0x1f)) & 1)) goto lab3; /* among, line 59 */
[ + + ]
566 [ + + ]: 9361 : if (!(find_among(s_pool, a_0, 3, 0, 0))) goto lab3;
567 : 302 : goto lab1;
568 : : lab3:
569 : 89104 : c = c2;
570 : 89104 : { int ret = skip_utf8(p, c, 0, l, 1);
571 [ - + ]: 89104 : if (ret < 0) goto lab0;
572 : 89104 : c = ret; /* next, line 66 */
573 : : }
574 : 89104 : { int ret = out_grouping_U(g_v, 97, 251, 1); /* gopast */ /* grouping v, line 66 */
575 [ + + ]: 89104 : if (ret < 0) goto lab0;
576 : 78467 : c += ret;
577 : : }
578 : : }
579 : : lab1:
580 : 80382 : I_pV = c; /* setmark pV, line 67 */
581 : : lab0:
582 : 91019 : c = c1;
583 : : }
584 : 91019 : { int c3 = c; /* do, line 69 */
585 : 91019 : { int ret = out_grouping_U(g_v, 97, 251, 1); /* gopast */ /* grouping v, line 70 */
586 [ + + ]: 91019 : if (ret < 0) goto lab4;
587 : 82258 : c += ret;
588 : : }
589 : 82258 : { int ret = in_grouping_U(g_v, 97, 251, 1); /* gopast */ /* non v, line 70 */
590 [ + + ]: 82258 : if (ret < 0) goto lab4;
591 : 80079 : c += ret;
592 : : }
593 : 80079 : I_p1 = c; /* setmark p1, line 70 */
594 : 80079 : { int ret = out_grouping_U(g_v, 97, 251, 1); /* gopast */ /* grouping v, line 71 */
595 [ + + ]: 80079 : if (ret < 0) goto lab4;
596 : 70383 : c += ret;
597 : : }
598 : 70383 : { int ret = in_grouping_U(g_v, 97, 251, 1); /* gopast */ /* non v, line 71 */
599 [ + + ]: 70383 : if (ret < 0) goto lab4;
600 : 66534 : c += ret;
601 : : }
602 : 66534 : I_p2 = c; /* setmark p2, line 71 */
603 : : lab4:
604 : 91019 : c = c3;
605 : : }
606 : 91019 : return 1;
607 : : }
608 : :
609 : 4151354 : int Xapian::InternalStemFrench::r_postlude() { /* forwardmode */
610 : : int among_var;
611 : 4060335 : while(1) { /* repeat, line 75 */
612 : 4151354 : int c1 = c;
613 : 4151354 : bra = c; /* [, line 77 */
614 [ + + ][ + + ]: 4151354 : if (c >= l || p[c + 0] >> 5 != 2 || !((35652096 >> (p[c + 0] & 0x1f)) & 1)) among_var = 4; else /* substring, line 77 */
[ + + ]
615 : 50276 : among_var = find_among(s_pool, a_1, 4, 0, 0);
616 [ - + ]: 4151354 : if (!(among_var)) goto lab0;
617 : 4151354 : ket = c; /* ], line 77 */
618 [ - + + + + : 4151354 : switch(among_var) { /* among, line 77 */
- ]
619 : 0 : case 0: goto lab0;
620 : : case 1:
621 : 10213 : { int ret = slice_from_s(1, s_5); /* <-, line 78 */
622 [ - + ]: 10213 : if (ret < 0) return ret;
623 : : }
624 : 10213 : break;
625 : : case 2:
626 : 13102 : { int ret = slice_from_s(1, s_6); /* <-, line 79 */
627 [ - + ]: 13102 : if (ret < 0) return ret;
628 : : }
629 : 13102 : break;
630 : : case 3:
631 : 26961 : { int ret = slice_from_s(1, s_7); /* <-, line 80 */
632 [ - + ]: 26961 : if (ret < 0) return ret;
633 : : }
634 : 26961 : break;
635 : : case 4:
636 : 4101078 : { int ret = skip_utf8(p, c, 0, l, 1);
637 [ + + ]: 4101078 : if (ret < 0) goto lab0;
638 : 4010059 : c = ret; /* next, line 81 */
639 : : }
640 : : break;
641 : : }
642 : 4060335 : continue;
643 : : lab0:
644 : 91019 : c = c1;
645 : : break;
646 : : }
647 : 91019 : return 1;
648 : : }
649 : :
650 : 577 : int Xapian::InternalStemFrench::r_RV() { /* backwardmode */
651 [ + + ]: 577 : if (!(I_pV <= c)) return 0; /* pV <= <integer expression>, line 87 */
652 : 577 : return 1;
653 : : }
654 : :
655 : 141 : int Xapian::InternalStemFrench::r_R1() { /* backwardmode */
656 [ + + ]: 141 : if (!(I_p1 <= c)) return 0; /* p1 <= <integer expression>, line 88 */
657 : 141 : return 1;
658 : : }
659 : :
660 : 2177 : int Xapian::InternalStemFrench::r_R2() { /* backwardmode */
661 [ + + ]: 2177 : if (!(I_p2 <= c)) return 0; /* p2 <= <integer expression>, line 89 */
662 : 2177 : return 1;
663 : : }
664 : :
665 : 91019 : int Xapian::InternalStemFrench::r_standard_suffix() { /* backwardmode */
666 : : int among_var;
667 : 91019 : ket = c; /* [, line 92 */
668 : 91019 : among_var = find_among_b(s_pool, a_4, 43, 0, 0); /* substring, line 92 */
669 [ + + ]: 91019 : if (!(among_var)) return 0;
670 : 2303 : bra = c; /* ], line 92 */
671 [ - + + + + : 2303 : switch(among_var) { /* among, line 92 */
+ + + + +
+ + + + +
+ - ]
672 : 0 : case 0: return 0;
673 : : case 1:
674 : 642 : { int ret = r_R2(); /* call R2, line 96 */
675 [ + + ]: 642 : if (ret <= 0) return ret;
676 : : }
677 [ - + ]: 405 : if (slice_del() == -1) return -1; /* delete, line 96 */
678 : 405 : break;
679 : : case 2:
680 : 302 : { int ret = r_R2(); /* call R2, line 99 */
681 [ + + ]: 302 : if (ret <= 0) return ret;
682 : : }
683 [ - + ]: 250 : if (slice_del() == -1) return -1; /* delete, line 99 */
684 : 250 : { int m1 = l - c; (void)m1; /* try, line 100 */
685 : 250 : ket = c; /* [, line 100 */
686 [ + + ]: 250 : if (!(eq_s_b(2, s_8))) { c = l - m1; goto lab0; } /* literal, line 100 */
687 : 29 : bra = c; /* ], line 100 */
688 : 29 : { int m2 = l - c; (void)m2; /* or, line 100 */
689 : 29 : { int ret = r_R2(); /* call R2, line 100 */
690 [ + + ]: 29 : if (ret == 0) goto lab2;
691 [ - + ]: 19 : if (ret < 0) return ret;
692 : : }
693 [ - + ]: 19 : if (slice_del() == -1) return -1; /* delete, line 100 */
694 : 19 : goto lab1;
695 : : lab2:
696 : 10 : c = l - m2;
697 : 10 : { int ret = slice_from_s(3, s_9); /* <-, line 100 */
698 [ - + ]: 10 : if (ret < 0) return ret;
699 : : }
700 : : }
701 : : lab1:
702 : : lab0:
703 : : ;
704 : : }
705 : 250 : break;
706 : : case 3:
707 : 4 : { int ret = r_R2(); /* call R2, line 104 */
708 [ + + ]: 4 : if (ret <= 0) return ret;
709 : : }
710 : 1 : { int ret = slice_from_s(3, s_10); /* <-, line 104 */
711 [ - + ]: 1 : if (ret < 0) return ret;
712 : : }
713 : 1 : break;
714 : : case 4:
715 : 42 : { int ret = r_R2(); /* call R2, line 107 */
716 [ + + ]: 42 : if (ret <= 0) return ret;
717 : : }
718 : 24 : { int ret = slice_from_s(1, s_11); /* <-, line 107 */
719 [ - + ]: 24 : if (ret < 0) return ret;
720 : : }
721 : 24 : break;
722 : : case 5:
723 : 82 : { int ret = r_R2(); /* call R2, line 110 */
724 [ + + ]: 82 : if (ret <= 0) return ret;
725 : : }
726 : 55 : { int ret = slice_from_s(3, s_12); /* <-, line 110 */
727 [ - + ]: 55 : if (ret < 0) return ret;
728 : : }
729 : 55 : break;
730 : : case 6:
731 : 454 : { int ret = r_RV(); /* call RV, line 114 */
732 [ + + ]: 454 : if (ret <= 0) return ret;
733 : : }
734 [ - + ]: 452 : if (slice_del() == -1) return -1; /* delete, line 114 */
735 : 452 : { int m3 = l - c; (void)m3; /* try, line 115 */
736 : 452 : ket = c; /* [, line 116 */
737 : 452 : among_var = find_among_b(s_pool, a_2, 6, 0, 0); /* substring, line 116 */
738 [ + + ]: 452 : if (!(among_var)) { c = l - m3; goto lab3; }
739 : 113 : bra = c; /* ], line 116 */
740 [ - + + + + : 113 : switch(among_var) { /* among, line 116 */
- ]
741 : 0 : case 0: { c = l - m3; goto lab3; }
742 : : case 1:
743 : 14 : { int ret = r_R2(); /* call R2, line 117 */
744 [ + + ]: 14 : if (ret == 0) { c = l - m3; goto lab3; }
745 [ - + ]: 11 : if (ret < 0) return ret;
746 : : }
747 [ - + ]: 11 : if (slice_del() == -1) return -1; /* delete, line 117 */
748 : 11 : ket = c; /* [, line 117 */
749 [ + + ]: 11 : if (!(eq_s_b(2, s_13))) { c = l - m3; goto lab3; } /* literal, line 117 */
750 : 2 : bra = c; /* ], line 117 */
751 : 2 : { int ret = r_R2(); /* call R2, line 117 */
752 [ + + ]: 2 : if (ret == 0) { c = l - m3; goto lab3; }
753 [ - + ]: 1 : if (ret < 0) return ret;
754 : : }
755 [ - + ]: 1 : if (slice_del() == -1) return -1; /* delete, line 117 */
756 : 1 : break;
757 : : case 2:
758 : 45 : { int m4 = l - c; (void)m4; /* or, line 118 */
759 : 45 : { int ret = r_R2(); /* call R2, line 118 */
760 [ + + ]: 45 : if (ret == 0) goto lab5;
761 [ - + ]: 29 : if (ret < 0) return ret;
762 : : }
763 [ - + ]: 29 : if (slice_del() == -1) return -1; /* delete, line 118 */
764 : 29 : goto lab4;
765 : : lab5:
766 : 16 : c = l - m4;
767 : 16 : { int ret = r_R1(); /* call R1, line 118 */
768 [ + + ]: 16 : if (ret == 0) { c = l - m3; goto lab3; }
769 [ - + ]: 15 : if (ret < 0) return ret;
770 : : }
771 : 15 : { int ret = slice_from_s(3, s_14); /* <-, line 118 */
772 [ - + ]: 15 : if (ret < 0) return ret;
773 : : }
774 : : }
775 : : lab4:
776 : 44 : break;
777 : : case 3:
778 : 43 : { int ret = r_R2(); /* call R2, line 120 */
779 [ + + ]: 43 : if (ret == 0) { c = l - m3; goto lab3; }
780 [ - + ]: 33 : if (ret < 0) return ret;
781 : : }
782 [ - + ]: 33 : if (slice_del() == -1) return -1; /* delete, line 120 */
783 : 33 : break;
784 : : case 4:
785 : 11 : { int ret = r_RV(); /* call RV, line 122 */
786 [ + + ]: 11 : if (ret == 0) { c = l - m3; goto lab3; }
787 [ - + ]: 9 : if (ret < 0) return ret;
788 : : }
789 : 9 : { int ret = slice_from_s(1, s_15); /* <-, line 122 */
790 [ - + ]: 9 : if (ret < 0) return ret;
791 : : }
792 : : break;
793 : : }
794 : : lab3:
795 : : ;
796 : : }
797 : 452 : break;
798 : : case 7:
799 : 212 : { int ret = r_R2(); /* call R2, line 129 */
800 [ + + ]: 212 : if (ret <= 0) return ret;
801 : : }
802 [ - + ]: 163 : if (slice_del() == -1) return -1; /* delete, line 129 */
803 : 163 : { int m5 = l - c; (void)m5; /* try, line 130 */
804 : 163 : ket = c; /* [, line 131 */
805 [ + - ][ + + ]: 163 : if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((4198408 >> (p[c - 1] & 0x1f)) & 1)) { c = l - m5; goto lab6; } /* substring, line 131 */
[ + + ]
806 : 79 : among_var = find_among_b(s_pool, a_3, 3, 0, 0);
807 [ + + ]: 79 : if (!(among_var)) { c = l - m5; goto lab6; }
808 : 22 : bra = c; /* ], line 131 */
809 [ - + + + : 22 : switch(among_var) { /* among, line 131 */
- ]
810 : 0 : case 0: { c = l - m5; goto lab6; }
811 : : case 1:
812 : 7 : { int m6 = l - c; (void)m6; /* or, line 132 */
813 : 7 : { int ret = r_R2(); /* call R2, line 132 */
814 [ + + ]: 7 : if (ret == 0) goto lab8;
815 [ - + ]: 1 : if (ret < 0) return ret;
816 : : }
817 [ - + ]: 1 : if (slice_del() == -1) return -1; /* delete, line 132 */
818 : 1 : goto lab7;
819 : : lab8:
820 : 6 : c = l - m6;
821 : 6 : { int ret = slice_from_s(3, s_16); /* <-, line 132 */
822 [ - + ]: 6 : if (ret < 0) return ret;
823 : : }
824 : : }
825 : : lab7:
826 : 7 : break;
827 : : case 2:
828 : 13 : { int m7 = l - c; (void)m7; /* or, line 133 */
829 : 13 : { int ret = r_R2(); /* call R2, line 133 */
830 [ + + ]: 13 : if (ret == 0) goto lab10;
831 [ - + ]: 4 : if (ret < 0) return ret;
832 : : }
833 [ - + ]: 4 : if (slice_del() == -1) return -1; /* delete, line 133 */
834 : 4 : goto lab9;
835 : : lab10:
836 : 9 : c = l - m7;
837 : 9 : { int ret = slice_from_s(3, s_17); /* <-, line 133 */
838 [ - + ]: 9 : if (ret < 0) return ret;
839 : : }
840 : : }
841 : : lab9:
842 : 13 : break;
843 : : case 3:
844 : 2 : { int ret = r_R2(); /* call R2, line 134 */
845 [ + - ]: 2 : if (ret == 0) { c = l - m5; goto lab6; }
846 [ # # ]: 0 : if (ret < 0) return ret;
847 : : }
848 [ # # ]: 0 : if (slice_del() == -1) return -1; /* delete, line 134 */
849 : : break;
850 : : }
851 : : lab6:
852 : : ;
853 : : }
854 : 163 : break;
855 : : case 8:
856 : 199 : { int ret = r_R2(); /* call R2, line 141 */
857 [ + + ]: 199 : if (ret <= 0) return ret;
858 : : }
859 [ - + ]: 132 : if (slice_del() == -1) return -1; /* delete, line 141 */
860 : 132 : { int m8 = l - c; (void)m8; /* try, line 142 */
861 : 132 : ket = c; /* [, line 142 */
862 [ + + ]: 132 : if (!(eq_s_b(2, s_18))) { c = l - m8; goto lab11; } /* literal, line 142 */
863 : 31 : bra = c; /* ], line 142 */
864 : 31 : { int ret = r_R2(); /* call R2, line 142 */
865 [ + + ]: 31 : if (ret == 0) { c = l - m8; goto lab11; }
866 [ - + ]: 22 : if (ret < 0) return ret;
867 : : }
868 [ - + ]: 22 : if (slice_del() == -1) return -1; /* delete, line 142 */
869 : 22 : ket = c; /* [, line 142 */
870 [ + + ]: 22 : if (!(eq_s_b(2, s_19))) { c = l - m8; goto lab11; } /* literal, line 142 */
871 : 9 : bra = c; /* ], line 142 */
872 : 9 : { int m9 = l - c; (void)m9; /* or, line 142 */
873 : 9 : { int ret = r_R2(); /* call R2, line 142 */
874 [ + + ]: 9 : if (ret == 0) goto lab13;
875 [ - + ]: 7 : if (ret < 0) return ret;
876 : : }
877 [ - + ]: 7 : if (slice_del() == -1) return -1; /* delete, line 142 */
878 : 7 : goto lab12;
879 : : lab13:
880 : 2 : c = l - m9;
881 : 2 : { int ret = slice_from_s(3, s_20); /* <-, line 142 */
882 [ - + ]: 2 : if (ret < 0) return ret;
883 : : }
884 : : }
885 : : lab12:
886 : : lab11:
887 : : ;
888 : : }
889 : 132 : break;
890 : : case 9:
891 : 45 : { int ret = slice_from_s(3, s_21); /* <-, line 144 */
892 [ - + ]: 45 : if (ret < 0) return ret;
893 : : }
894 : 45 : break;
895 : : case 10:
896 : 34 : { int ret = r_R1(); /* call R1, line 145 */
897 [ + + ]: 34 : if (ret <= 0) return ret;
898 : : }
899 : 28 : { int ret = slice_from_s(2, s_22); /* <-, line 145 */
900 [ - + ]: 28 : if (ret < 0) return ret;
901 : : }
902 : 28 : break;
903 : : case 11:
904 : 134 : { int m10 = l - c; (void)m10; /* or, line 147 */
905 : 134 : { int ret = r_R2(); /* call R2, line 147 */
906 [ + + ]: 134 : if (ret == 0) goto lab15;
907 [ - + ]: 74 : if (ret < 0) return ret;
908 : : }
909 [ - + ]: 74 : if (slice_del() == -1) return -1; /* delete, line 147 */
910 : 74 : goto lab14;
911 : : lab15:
912 : 60 : c = l - m10;
913 : 60 : { int ret = r_R1(); /* call R1, line 147 */
914 [ + + ]: 60 : if (ret <= 0) return ret;
915 : : }
916 : 57 : { int ret = slice_from_s(3, s_23); /* <-, line 147 */
917 [ - + ]: 57 : if (ret < 0) return ret;
918 : : }
919 : : }
920 : : lab14:
921 : 131 : break;
922 : : case 12:
923 : 31 : { int ret = r_R1(); /* call R1, line 150 */
924 [ + + ]: 31 : if (ret <= 0) return ret;
925 : : }
926 [ + + ]: 30 : if (out_grouping_b_U(g_v, 97, 251, 0)) return 0; /* non v, line 150 */
927 [ - + ]: 29 : if (slice_del() == -1) return -1; /* delete, line 150 */
928 : 29 : break;
929 : : case 13:
930 : 15 : { int ret = r_RV(); /* call RV, line 155 */
931 [ - + ]: 15 : if (ret <= 0) return ret;
932 : : }
933 : 15 : { int ret = slice_from_s(3, s_24); /* <-, line 155 */
934 [ - + ]: 15 : if (ret < 0) return ret;
935 : : }
936 : 15 : return 0; /* fail, line 155 */
937 : : break;
938 : : case 14:
939 : 18 : { int ret = r_RV(); /* call RV, line 156 */
940 [ + + ]: 18 : if (ret <= 0) return ret;
941 : : }
942 : 17 : { int ret = slice_from_s(3, s_25); /* <-, line 156 */
943 [ - + ]: 17 : if (ret < 0) return ret;
944 : : }
945 : 17 : return 0; /* fail, line 156 */
946 : : break;
947 : : case 15:
948 : 89 : { int m_test11 = l - c; /* test, line 158 */
949 [ + + ]: 89 : if (in_grouping_b_U(g_v, 97, 251, 0)) return 0; /* grouping v, line 158 */
950 : 79 : { int ret = r_RV(); /* call RV, line 158 */
951 [ + + ]: 79 : if (ret <= 0) return ret;
952 : : }
953 : 64 : c = l - m_test11;
954 : : }
955 [ - + ]: 64 : if (slice_del() == -1) return -1; /* delete, line 158 */
956 : 64 : return 0; /* fail, line 158 */
957 : : break;
958 : : }
959 : 91019 : return 1;
960 : : }
961 : :
962 : 89304 : int Xapian::InternalStemFrench::r_i_verb_suffix() { /* backwardmode */
963 : : int among_var;
964 : 89304 : { int m1 = l - c; (void)m1; /* setlimit, line 163 */
965 : : int mlimit1;
966 [ - + ]: 89304 : if (c < I_pV) return 0;
967 : 89304 : c = I_pV; /* tomark, line 163 */
968 : 89304 : mlimit1 = lb; lb = c;
969 : 89304 : c = l - m1;
970 : 89304 : ket = c; /* [, line 164 */
971 [ + + ][ + + ]: 89304 : if (c <= lb || p[c - 1] >> 5 != 3 || !((68944418 >> (p[c - 1] & 0x1f)) & 1)) { lb = mlimit1; return 0; } /* substring, line 164 */
[ + + ]
972 : 27210 : among_var = find_among_b(s_pool, a_5, 35, 0, 0);
973 [ + + ]: 27210 : if (!(among_var)) { lb = mlimit1; return 0; }
974 : 4941 : bra = c; /* ], line 164 */
975 [ - + - ]: 4941 : switch(among_var) { /* among, line 164 */
976 : 0 : case 0: { lb = mlimit1; return 0; }
977 : : case 1:
978 [ + + ]: 4941 : if (out_grouping_b_U(g_v, 97, 251, 0)) { lb = mlimit1; return 0; } /* non v, line 170 */
979 [ - + ]: 2953 : if (slice_del() == -1) return -1; /* delete, line 170 */
980 : : break;
981 : : }
982 : 2953 : lb = mlimit1;
983 : : }
984 : 89304 : return 1;
985 : : }
986 : :
987 : 86351 : int Xapian::InternalStemFrench::r_verb_suffix() { /* backwardmode */
988 : : int among_var;
989 : 86351 : { int m1 = l - c; (void)m1; /* setlimit, line 174 */
990 : : int mlimit1;
991 [ - + ]: 86351 : if (c < I_pV) return 0;
992 : 86351 : c = I_pV; /* tomark, line 174 */
993 : 86351 : mlimit1 = lb; lb = c;
994 : 86351 : c = l - m1;
995 : 86351 : ket = c; /* [, line 175 */
996 : 86351 : among_var = find_among_b(s_pool, a_6, 38, 0, 0); /* substring, line 175 */
997 [ + + ]: 86351 : if (!(among_var)) { lb = mlimit1; return 0; }
998 : 9704 : bra = c; /* ], line 175 */
999 [ - + + + : 9704 : switch(among_var) { /* among, line 175 */
- ]
1000 : 0 : case 0: { lb = mlimit1; return 0; }
1001 : : case 1:
1002 : 126 : { int ret = r_R2(); /* call R2, line 177 */
1003 [ + + ]: 126 : if (ret == 0) { lb = mlimit1; return 0; }
1004 [ - + ]: 91 : if (ret < 0) return ret;
1005 : : }
1006 [ - + ]: 91 : if (slice_del() == -1) return -1; /* delete, line 177 */
1007 : 91 : break;
1008 : : case 2:
1009 [ - + ]: 4530 : if (slice_del() == -1) return -1; /* delete, line 185 */
1010 : 4530 : break;
1011 : : case 3:
1012 [ - + ]: 5048 : if (slice_del() == -1) return -1; /* delete, line 190 */
1013 : 5048 : { int m2 = l - c; (void)m2; /* try, line 191 */
1014 : 5048 : ket = c; /* [, line 191 */
1015 [ + + ][ + + ]: 5048 : if (c <= lb || p[c - 1] != 'e') { c = l - m2; goto lab0; }
1016 : 168 : c--;
1017 : 168 : bra = c; /* ], line 191 */
1018 [ - + ]: 168 : if (slice_del() == -1) return -1; /* delete, line 191 */
1019 : : lab0:
1020 : : ;
1021 : : }
1022 : : break;
1023 : : }
1024 : 9669 : lb = mlimit1;
1025 : : }
1026 : 86351 : return 1;
1027 : : }
1028 : :
1029 : 76682 : int Xapian::InternalStemFrench::r_residual_suffix() { /* backwardmode */
1030 : : int among_var;
1031 : 76682 : { int m1 = l - c; (void)m1; /* try, line 199 */
1032 : 76682 : ket = c; /* [, line 199 */
1033 [ + - ][ + + ]: 76682 : if (c <= lb || p[c - 1] != 's') { c = l - m1; goto lab0; }
1034 : 4832 : c--;
1035 : 4832 : bra = c; /* ], line 199 */
1036 : 4832 : { int m_test2 = l - c; /* test, line 199 */
1037 [ + + ]: 4832 : if (out_grouping_b_U(g_keep_with_s, 97, 232, 0)) { c = l - m1; goto lab0; } /* non keep_with_s, line 199 */
1038 : 4265 : c = l - m_test2;
1039 : : }
1040 [ - + ]: 4265 : if (slice_del() == -1) return -1; /* delete, line 199 */
1041 : : lab0:
1042 : : ;
1043 : : }
1044 : 76682 : { int m3 = l - c; (void)m3; /* setlimit, line 200 */
1045 : : int mlimit3;
1046 [ + + ]: 76682 : if (c < I_pV) return 0;
1047 : 76420 : c = I_pV; /* tomark, line 200 */
1048 : 76420 : mlimit3 = lb; lb = c;
1049 : 76420 : c = l - m3;
1050 : 76420 : ket = c; /* [, line 201 */
1051 : 76420 : among_var = find_among_b(s_pool, a_7, 7, 0, 0); /* substring, line 201 */
1052 [ + + ]: 76420 : if (!(among_var)) { lb = mlimit3; return 0; }
1053 : 6582 : bra = c; /* ], line 201 */
1054 [ - + + + + : 6582 : switch(among_var) { /* among, line 201 */
- ]
1055 : 0 : case 0: { lb = mlimit3; return 0; }
1056 : : case 1:
1057 : 239 : { int ret = r_R2(); /* call R2, line 202 */
1058 [ + + ]: 239 : if (ret == 0) { lb = mlimit3; return 0; }
1059 [ - + ]: 179 : if (ret < 0) return ret;
1060 : : }
1061 : 179 : { int m4 = l - c; (void)m4; /* or, line 202 */
1062 [ + - ][ + + ]: 179 : if (c <= lb || p[c - 1] != 's') goto lab2;
1063 : 49 : c--;
1064 : 49 : goto lab1;
1065 : : lab2:
1066 : 130 : c = l - m4;
1067 [ + - ][ + + ]: 130 : if (c <= lb || p[c - 1] != 't') { lb = mlimit3; return 0; }
1068 : 122 : c--;
1069 : : }
1070 : : lab1:
1071 [ - + ]: 171 : if (slice_del() == -1) return -1; /* delete, line 202 */
1072 : 171 : break;
1073 : : case 2:
1074 : 153 : { int ret = slice_from_s(1, s_26); /* <-, line 204 */
1075 [ - + ]: 153 : if (ret < 0) return ret;
1076 : : }
1077 : 153 : break;
1078 : : case 3:
1079 [ - + ]: 6187 : if (slice_del() == -1) return -1; /* delete, line 205 */
1080 : 6187 : break;
1081 : : case 4:
1082 [ - + ]: 3 : if (!(eq_s_b(2, s_27))) { lb = mlimit3; return 0; } /* literal, line 206 */
1083 [ - + ]: 3 : if (slice_del() == -1) return -1; /* delete, line 206 */
1084 : : break;
1085 : : }
1086 : 6514 : lb = mlimit3;
1087 : : }
1088 : 76682 : return 1;
1089 : : }
1090 : :
1091 : 91019 : int Xapian::InternalStemFrench::r_un_double() { /* backwardmode */
1092 : 91019 : { int m_test1 = l - c; /* test, line 212 */
1093 [ + + ][ + + ]: 91019 : if (c - 2 <= lb || p[c - 1] >> 5 != 3 || !((1069056 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* among, line 212 */
[ + + ]
1094 [ + + ]: 14491 : if (!(find_among_b(s_pool, a_8, 5, 0, 0))) return 0;
1095 : 674 : c = l - m_test1;
1096 : : }
1097 : 674 : ket = c; /* [, line 212 */
1098 : 674 : { int ret = skip_utf8(p, c, lb, 0, -1);
1099 [ - + ]: 674 : if (ret < 0) return 0;
1100 : 674 : c = ret; /* next, line 212 */
1101 : : }
1102 : 674 : bra = c; /* ], line 212 */
1103 [ - + ]: 674 : if (slice_del() == -1) return -1; /* delete, line 212 */
1104 : 91019 : return 1;
1105 : : }
1106 : :
1107 : 91019 : int Xapian::InternalStemFrench::r_un_accent() { /* backwardmode */
1108 : 91019 : { int i = 1;
1109 : 538610 : while(1) { /* atleast, line 216 */
1110 [ + + ]: 629629 : if (out_grouping_b_U(g_v, 97, 251, 0)) goto lab0; /* non v, line 216 */
1111 : 538610 : i--;
1112 : 538610 : continue;
1113 : : lab0:
1114 : : break;
1115 : : }
1116 [ + + ]: 91019 : if (i > 0) return 0;
1117 : : }
1118 : 81502 : ket = c; /* [, line 217 */
1119 : 81502 : { int m1 = l - c; (void)m1; /* or, line 217 */
1120 [ + + ]: 81502 : if (!(eq_s_b(2, s_28))) goto lab2; /* literal, line 217 */
1121 : 493 : goto lab1;
1122 : : lab2:
1123 : 81009 : c = l - m1;
1124 [ + + ]: 81009 : if (!(eq_s_b(2, s_29))) return 0; /* literal, line 217 */
1125 : : }
1126 : : lab1:
1127 : 837 : bra = c; /* ], line 217 */
1128 : 837 : { int ret = slice_from_s(1, s_30); /* <-, line 217 */
1129 [ - + ]: 837 : if (ret < 0) return ret;
1130 : : }
1131 : 91019 : return 1;
1132 : : }
1133 : :
1134 : 91019 : int Xapian::InternalStemFrench::stem() { /* forwardmode */
1135 : 91019 : { int c1 = c; /* do, line 223 */
1136 : 91019 : { int ret = r_prelude(); /* call prelude, line 223 */
1137 [ - + ]: 91019 : if (ret == 0) goto lab0;
1138 [ - + ]: 91019 : if (ret < 0) return ret;
1139 : : }
1140 : : lab0:
1141 : 91019 : c = c1;
1142 : : }
1143 : 91019 : { int c2 = c; /* do, line 224 */
1144 : 91019 : { int ret = r_mark_regions(); /* call mark_regions, line 224 */
1145 [ - + ]: 91019 : if (ret == 0) goto lab1;
1146 [ - + ]: 91019 : if (ret < 0) return ret;
1147 : : }
1148 : : lab1:
1149 : 91019 : c = c2;
1150 : : }
1151 : 91019 : lb = c; c = l; /* backwards, line 225 */
1152 : :
1153 : 91019 : { int m3 = l - c; (void)m3; /* do, line 227 */
1154 : 91019 : { int m4 = l - c; (void)m4; /* or, line 237 */
1155 : 91019 : { int m5 = l - c; (void)m5; /* and, line 233 */
1156 : 91019 : { int m6 = l - c; (void)m6; /* or, line 229 */
1157 : 91019 : { int ret = r_standard_suffix(); /* call standard_suffix, line 229 */
1158 [ + + ]: 91019 : if (ret == 0) goto lab6;
1159 [ - + ]: 1715 : if (ret < 0) return ret;
1160 : : }
1161 : 1715 : goto lab5;
1162 : : lab6:
1163 : 89304 : c = l - m6;
1164 : 89304 : { int ret = r_i_verb_suffix(); /* call i_verb_suffix, line 230 */
1165 [ + + ]: 89304 : if (ret == 0) goto lab7;
1166 [ - + ]: 2953 : if (ret < 0) return ret;
1167 : : }
1168 : 2953 : goto lab5;
1169 : : lab7:
1170 : 86351 : c = l - m6;
1171 : 86351 : { int ret = r_verb_suffix(); /* call verb_suffix, line 231 */
1172 [ + + ]: 86351 : if (ret == 0) goto lab4;
1173 [ - + ]: 9669 : if (ret < 0) return ret;
1174 : : }
1175 : : }
1176 : : lab5:
1177 : 14337 : c = l - m5;
1178 : 14337 : { int m7 = l - c; (void)m7; /* try, line 234 */
1179 : 14337 : ket = c; /* [, line 234 */
1180 : 14337 : { int m8 = l - c; (void)m8; /* or, line 234 */
1181 [ + - ][ + + ]: 14337 : if (c <= lb || p[c - 1] != 'Y') goto lab10;
1182 : 294 : c--;
1183 : 294 : bra = c; /* ], line 234 */
1184 : 294 : { int ret = slice_from_s(1, s_31); /* <-, line 234 */
1185 [ - + ]: 294 : if (ret < 0) return ret;
1186 : : }
1187 : 294 : goto lab9;
1188 : : lab10:
1189 : 14043 : c = l - m8;
1190 [ + + ]: 14043 : if (!(eq_s_b(2, s_32))) { c = l - m7; goto lab8; } /* literal, line 235 */
1191 : 79 : bra = c; /* ], line 235 */
1192 : 79 : { int ret = slice_from_s(1, s_33); /* <-, line 235 */
1193 [ - + ]: 79 : if (ret < 0) return ret;
1194 : : }
1195 : : }
1196 : : lab9:
1197 : : lab8:
1198 : : ;
1199 : : }
1200 : : }
1201 : 14337 : goto lab3;
1202 : : lab4:
1203 : 76682 : c = l - m4;
1204 : 76682 : { int ret = r_residual_suffix(); /* call residual_suffix, line 238 */
1205 [ + + ]: 76682 : if (ret == 0) goto lab2;
1206 [ - + ]: 6514 : if (ret < 0) return ret;
1207 : : }
1208 : : }
1209 : : lab3:
1210 : : lab2:
1211 : 91019 : c = l - m3;
1212 : : }
1213 : 91019 : { int m9 = l - c; (void)m9; /* do, line 243 */
1214 : 91019 : { int ret = r_un_double(); /* call un_double, line 243 */
1215 [ + + ]: 91019 : if (ret == 0) goto lab11;
1216 [ - + ]: 674 : if (ret < 0) return ret;
1217 : : }
1218 : : lab11:
1219 : 91019 : c = l - m9;
1220 : : }
1221 : 91019 : { int m10 = l - c; (void)m10; /* do, line 244 */
1222 : 91019 : { int ret = r_un_accent(); /* call un_accent, line 244 */
1223 [ + + ]: 91019 : if (ret == 0) goto lab12;
1224 [ - + ]: 837 : if (ret < 0) return ret;
1225 : : }
1226 : : lab12:
1227 : 91019 : c = l - m10;
1228 : : }
1229 : 91019 : c = lb;
1230 : 91019 : { int c11 = c; /* do, line 246 */
1231 : 91019 : { int ret = r_postlude(); /* call postlude, line 246 */
1232 [ - + ]: 91019 : if (ret == 0) goto lab13;
1233 [ - + ]: 91019 : if (ret < 0) return ret;
1234 : : }
1235 : : lab13:
1236 : 91019 : c = c11;
1237 : : }
1238 : 91019 : return 1;
1239 : : }
1240 : :
1241 : 3 : Xapian::InternalStemFrench::InternalStemFrench()
1242 : 3 : : I_p2(0), I_p1(0), I_pV(0)
1243 : : {
1244 : 3 : }
1245 : :
1246 : 3 : Xapian::InternalStemFrench::~InternalStemFrench()
1247 : : {
1248 [ + - ][ # # ]: 3 : }
[ # # ]
1249 : :
1250 : : std::string
1251 : 1 : Xapian::InternalStemFrench::get_description() const
1252 : : {
1253 : 1 : return "french";
1254 : : }
|