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 "russian.h"
5 : :
6 : : #define s_0_0 (s_0_1 + 2)
7 : : static const symbol s_pool[] = {
8 : : #define s_0_1 0
9 : : 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C,
10 : : #define s_0_2 12
11 : : 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C,
12 : : #define s_0_3 s_0_0
13 : : #define s_0_4 s_0_1
14 : : #define s_0_5 s_0_2
15 : : #define s_0_6 s_0_0
16 : : #define s_0_7 s_0_1
17 : : #define s_0_8 s_0_2
18 : : #define s_1_0 24
19 : : 0xD0, 0xB5, 0xD0, 0xBC, 0xD1, 0x83,
20 : : #define s_1_1 30
21 : : 0xD0, 0xBE, 0xD0, 0xBC, 0xD1, 0x83,
22 : : #define s_1_2 36
23 : : 0xD1, 0x8B, 0xD1, 0x85,
24 : : #define s_1_3 40
25 : : 0xD0, 0xB8, 0xD1, 0x85,
26 : : #define s_1_4 44
27 : : 0xD1, 0x83, 0xD1, 0x8E,
28 : : #define s_1_5 48
29 : : 0xD1, 0x8E, 0xD1, 0x8E,
30 : : #define s_1_6 52
31 : : 0xD0, 0xB5, 0xD1, 0x8E,
32 : : #define s_1_7 56
33 : : 0xD0, 0xBE, 0xD1, 0x8E,
34 : : #define s_1_8 60
35 : : 0xD1, 0x8F, 0xD1, 0x8F,
36 : : #define s_1_9 64
37 : : 0xD0, 0xB0, 0xD1, 0x8F,
38 : : #define s_1_10 68
39 : : 0xD1, 0x8B, 0xD0, 0xB5,
40 : : #define s_1_11 72
41 : : 0xD0, 0xB5, 0xD0, 0xB5,
42 : : #define s_1_12 76
43 : : 0xD0, 0xB8, 0xD0, 0xB5,
44 : : #define s_1_13 80
45 : : 0xD0, 0xBE, 0xD0, 0xB5,
46 : : #define s_1_14 84
47 : : 0xD1, 0x8B, 0xD0, 0xBC, 0xD0, 0xB8,
48 : : #define s_1_15 90
49 : : 0xD0, 0xB8, 0xD0, 0xBC, 0xD0, 0xB8,
50 : : #define s_1_16 96
51 : : 0xD1, 0x8B, 0xD0, 0xB9,
52 : : #define s_1_17 100
53 : : 0xD0, 0xB5, 0xD0, 0xB9,
54 : : #define s_1_18 104
55 : : 0xD0, 0xB8, 0xD0, 0xB9,
56 : : #define s_1_19 108
57 : : 0xD0, 0xBE, 0xD0, 0xB9,
58 : : #define s_1_20 s_1_14
59 : : #define s_1_21 s_1_0
60 : : #define s_1_22 s_1_15
61 : : #define s_1_23 s_1_1
62 : : #define s_1_24 112
63 : : 0xD0, 0xB5, 0xD0, 0xB3, 0xD0, 0xBE,
64 : : #define s_1_25 118
65 : : 0xD0, 0xBE, 0xD0, 0xB3, 0xD0, 0xBE,
66 : : #define s_2_0 (s_2_1 + 2)
67 : : #define s_2_1 124
68 : : 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88,
69 : : #define s_2_2 130
70 : : 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88,
71 : : #define s_2_3 (s_2_4 + 2)
72 : : #define s_2_4 (s_2_5 + 2)
73 : : #define s_2_5 136
74 : : 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x89,
75 : : #define s_2_6 142
76 : : 0xD0, 0xB5, 0xD0, 0xBC,
77 : : #define s_2_7 146
78 : : 0xD0, 0xBD, 0xD0, 0xBD,
79 : : #define s_3_0 150
80 : : 0xD1, 0x81, 0xD1, 0x8C,
81 : : #define s_3_1 154
82 : : 0xD1, 0x81, 0xD1, 0x8F,
83 : : #define s_4_0 s_4_10
84 : : #define s_4_1 (s_4_2 + 2)
85 : : #define s_4_2 158
86 : : 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x82,
87 : : #define s_4_3 164
88 : : 0xD1, 0x8F, 0xD1, 0x82,
89 : : #define s_4_4 (s_4_5 + 2)
90 : : #define s_4_5 168
91 : : 0xD1, 0x83, 0xD0, 0xB5, 0xD1, 0x82,
92 : : #define s_4_6 s_4_11
93 : : #define s_4_7 (s_4_8 + 2)
94 : : #define s_4_8 174
95 : : 0xD0, 0xB5, 0xD0, 0xBD, 0xD1, 0x8B,
96 : : #define s_4_9 (s_4_10 + 2)
97 : : #define s_4_10 180
98 : : 0xD1, 0x8B, 0xD1, 0x82, 0xD1, 0x8C,
99 : : #define s_4_11 186
100 : : 0xD0, 0xB8, 0xD1, 0x82, 0xD1, 0x8C,
101 : : #define s_4_12 192
102 : : 0xD0, 0xB5, 0xD1, 0x88, 0xD1, 0x8C,
103 : : #define s_4_13 198
104 : : 0xD0, 0xB8, 0xD1, 0x88, 0xD1, 0x8C,
105 : : #define s_4_14 s_4_1
106 : : #define s_4_15 s_4_2
107 : : #define s_4_16 (s_4_17 + 2)
108 : : #define s_4_17 204
109 : : 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB0,
110 : : #define s_4_18 210
111 : : 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB0,
112 : : #define s_4_19 (s_4_20 + 2)
113 : : #define s_4_20 216
114 : : 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xB0,
115 : : #define s_4_21 222
116 : : 0xD0, 0xB5, 0xD1, 0x82, 0xD0, 0xB5,
117 : : #define s_4_22 228
118 : : 0xD0, 0xB8, 0xD1, 0x82, 0xD0, 0xB5,
119 : : #define s_4_23 (s_4_24 + 2)
120 : : #define s_4_24 234
121 : : 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
122 : : #define s_4_25 242
123 : : 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
124 : : #define s_4_26 (s_4_27 + 2)
125 : : #define s_4_27 250
126 : : 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB8,
127 : : #define s_4_28 256
128 : : 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB8,
129 : : #define s_4_29 s_4_23
130 : : #define s_4_30 s_4_24
131 : : #define s_4_31 s_4_25
132 : : #define s_4_32 s_4_16
133 : : #define s_4_33 s_4_17
134 : : #define s_4_34 s_4_18
135 : : #define s_4_35 262
136 : : 0xD1, 0x8B, 0xD0, 0xBC,
137 : : #define s_4_36 266
138 : : 0xD0, 0xB5, 0xD0, 0xBC,
139 : : #define s_4_37 270
140 : : 0xD0, 0xB8, 0xD0, 0xBC,
141 : : #define s_4_38 s_4_7
142 : : #define s_4_39 s_4_8
143 : : #define s_4_40 (s_4_41 + 2)
144 : : #define s_4_41 274
145 : : 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xBE,
146 : : #define s_4_42 280
147 : : 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xBE,
148 : : #define s_4_43 (s_4_44 + 2)
149 : : #define s_4_44 286
150 : : 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xBE,
151 : : #define s_4_45 292
152 : : 0xD0, 0xBD, 0xD0, 0xBD, 0xD0, 0xBE,
153 : : #define s_5_0 298
154 : : 0xD1, 0x83,
155 : : #define s_5_1 (s_5_2 + 2)
156 : : #define s_5_2 300
157 : : 0xD0, 0xB8, 0xD1, 0x8F, 0xD1, 0x85,
158 : : #define s_5_3 306
159 : : 0xD0, 0xB0, 0xD1, 0x85,
160 : : #define s_5_4 310
161 : : 0xD1, 0x8B,
162 : : #define s_5_5 s_5_7
163 : : #define s_5_6 (s_5_7 + 2)
164 : : #define s_5_7 312
165 : : 0xD1, 0x8C, 0xD1, 0x8E,
166 : : #define s_5_8 316
167 : : 0xD0, 0xB8, 0xD1, 0x8E,
168 : : #define s_5_9 s_5_1
169 : : #define s_5_10 320
170 : : 0xD1, 0x8C, 0xD1, 0x8F,
171 : : #define s_5_11 s_5_2
172 : : #define s_5_12 s_5_3
173 : : #define s_5_13 324
174 : : 0xD0, 0xB5, 0xD0, 0xB2,
175 : : #define s_5_14 328
176 : : 0xD0, 0xBE, 0xD0, 0xB2,
177 : : #define s_5_15 s_5_13
178 : : #define s_5_16 332
179 : : 0xD1, 0x8C, 0xD0, 0xB5,
180 : : #define s_5_17 s_5_26
181 : : #define s_5_18 s_5_2
182 : : #define s_5_19 336
183 : : 0xD0, 0xB5, 0xD0, 0xB8,
184 : : #define s_5_20 340
185 : : 0xD0, 0xB8, 0xD0, 0xB8,
186 : : #define s_5_21 (s_5_22 + 2)
187 : : #define s_5_22 344
188 : : 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8,
189 : : #define s_5_23 352
190 : : 0xD0, 0xB0, 0xD0, 0xBC, 0xD0, 0xB8,
191 : : #define s_5_24 (s_5_25 + 2)
192 : : #define s_5_25 (s_5_26 + 2)
193 : : #define s_5_26 358
194 : : 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xB9,
195 : : #define s_5_27 364
196 : : 0xD0, 0xB8, 0xD0, 0xB9,
197 : : #define s_5_28 368
198 : : 0xD0, 0xBE, 0xD0, 0xB9,
199 : : #define s_5_29 s_5_21
200 : : #define s_5_30 s_5_22
201 : : #define s_5_31 s_5_23
202 : : #define s_5_32 (s_5_33 + 2)
203 : : #define s_5_33 372
204 : : 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xBC,
205 : : #define s_5_34 378
206 : : 0xD0, 0xBE, 0xD0, 0xBC,
207 : : #define s_5_35 s_5_14
208 : : #define s_6_0 s_6_1
209 : : #define s_6_1 382
210 : : 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82, 0xD1, 0x8C,
211 : : #define s_7_0 s_7_2
212 : : #define s_7_1 390
213 : : 0xD1, 0x8C,
214 : : #define s_7_2 392
215 : : 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88, 0xD0, 0xB5,
216 : : #define s_7_3 400
217 : : 0xD0, 0xBD,
218 : : };
219 : :
220 : :
221 : : static const struct among a_0[9] =
222 : : {
223 : : /* 0 */ { 10, s_0_0, -1, 1},
224 : : /* 1 */ { 12, s_0_1, 0, 2},
225 : : /* 2 */ { 12, s_0_2, 0, 2},
226 : : /* 3 */ { 2, s_0_3, -1, 1},
227 : : /* 4 */ { 4, s_0_4, 3, 2},
228 : : /* 5 */ { 4, s_0_5, 3, 2},
229 : : /* 6 */ { 6, s_0_6, -1, 1},
230 : : /* 7 */ { 8, s_0_7, 6, 2},
231 : : /* 8 */ { 8, s_0_8, 6, 2}
232 : : };
233 : :
234 : :
235 : : static const struct among a_1[26] =
236 : : {
237 : : /* 0 */ { 6, s_1_0, -1, 1},
238 : : /* 1 */ { 6, s_1_1, -1, 1},
239 : : /* 2 */ { 4, s_1_2, -1, 1},
240 : : /* 3 */ { 4, s_1_3, -1, 1},
241 : : /* 4 */ { 4, s_1_4, -1, 1},
242 : : /* 5 */ { 4, s_1_5, -1, 1},
243 : : /* 6 */ { 4, s_1_6, -1, 1},
244 : : /* 7 */ { 4, s_1_7, -1, 1},
245 : : /* 8 */ { 4, s_1_8, -1, 1},
246 : : /* 9 */ { 4, s_1_9, -1, 1},
247 : : /* 10 */ { 4, s_1_10, -1, 1},
248 : : /* 11 */ { 4, s_1_11, -1, 1},
249 : : /* 12 */ { 4, s_1_12, -1, 1},
250 : : /* 13 */ { 4, s_1_13, -1, 1},
251 : : /* 14 */ { 6, s_1_14, -1, 1},
252 : : /* 15 */ { 6, s_1_15, -1, 1},
253 : : /* 16 */ { 4, s_1_16, -1, 1},
254 : : /* 17 */ { 4, s_1_17, -1, 1},
255 : : /* 18 */ { 4, s_1_18, -1, 1},
256 : : /* 19 */ { 4, s_1_19, -1, 1},
257 : : /* 20 */ { 4, s_1_20, -1, 1},
258 : : /* 21 */ { 4, s_1_21, -1, 1},
259 : : /* 22 */ { 4, s_1_22, -1, 1},
260 : : /* 23 */ { 4, s_1_23, -1, 1},
261 : : /* 24 */ { 6, s_1_24, -1, 1},
262 : : /* 25 */ { 6, s_1_25, -1, 1}
263 : : };
264 : :
265 : :
266 : : static const struct among a_2[8] =
267 : : {
268 : : /* 0 */ { 4, s_2_0, -1, 1},
269 : : /* 1 */ { 6, s_2_1, 0, 2},
270 : : /* 2 */ { 6, s_2_2, 0, 2},
271 : : /* 3 */ { 2, s_2_3, -1, 1},
272 : : /* 4 */ { 4, s_2_4, 3, 1},
273 : : /* 5 */ { 6, s_2_5, 4, 2},
274 : : /* 6 */ { 4, s_2_6, -1, 1},
275 : : /* 7 */ { 4, s_2_7, -1, 1}
276 : : };
277 : :
278 : :
279 : : static const struct among a_3[2] =
280 : : {
281 : : /* 0 */ { 4, s_3_0, -1, 1},
282 : : /* 1 */ { 4, s_3_1, -1, 1}
283 : : };
284 : :
285 : :
286 : : static const struct among a_4[46] =
287 : : {
288 : : /* 0 */ { 4, s_4_0, -1, 2},
289 : : /* 1 */ { 4, s_4_1, -1, 1},
290 : : /* 2 */ { 6, s_4_2, 1, 2},
291 : : /* 3 */ { 4, s_4_3, -1, 2},
292 : : /* 4 */ { 4, s_4_4, -1, 1},
293 : : /* 5 */ { 6, s_4_5, 4, 2},
294 : : /* 6 */ { 4, s_4_6, -1, 2},
295 : : /* 7 */ { 4, s_4_7, -1, 1},
296 : : /* 8 */ { 6, s_4_8, 7, 2},
297 : : /* 9 */ { 4, s_4_9, -1, 1},
298 : : /* 10 */ { 6, s_4_10, 9, 2},
299 : : /* 11 */ { 6, s_4_11, 9, 2},
300 : : /* 12 */ { 6, s_4_12, -1, 1},
301 : : /* 13 */ { 6, s_4_13, -1, 2},
302 : : /* 14 */ { 2, s_4_14, -1, 2},
303 : : /* 15 */ { 4, s_4_15, 14, 2},
304 : : /* 16 */ { 4, s_4_16, -1, 1},
305 : : /* 17 */ { 6, s_4_17, 16, 2},
306 : : /* 18 */ { 6, s_4_18, 16, 2},
307 : : /* 19 */ { 4, s_4_19, -1, 1},
308 : : /* 20 */ { 6, s_4_20, 19, 2},
309 : : /* 21 */ { 6, s_4_21, -1, 1},
310 : : /* 22 */ { 6, s_4_22, -1, 2},
311 : : /* 23 */ { 6, s_4_23, -1, 1},
312 : : /* 24 */ { 8, s_4_24, 23, 2},
313 : : /* 25 */ { 8, s_4_25, 23, 2},
314 : : /* 26 */ { 4, s_4_26, -1, 1},
315 : : /* 27 */ { 6, s_4_27, 26, 2},
316 : : /* 28 */ { 6, s_4_28, 26, 2},
317 : : /* 29 */ { 2, s_4_29, -1, 1},
318 : : /* 30 */ { 4, s_4_30, 29, 2},
319 : : /* 31 */ { 4, s_4_31, 29, 2},
320 : : /* 32 */ { 2, s_4_32, -1, 1},
321 : : /* 33 */ { 4, s_4_33, 32, 2},
322 : : /* 34 */ { 4, s_4_34, 32, 2},
323 : : /* 35 */ { 4, s_4_35, -1, 2},
324 : : /* 36 */ { 4, s_4_36, -1, 1},
325 : : /* 37 */ { 4, s_4_37, -1, 2},
326 : : /* 38 */ { 2, s_4_38, -1, 1},
327 : : /* 39 */ { 4, s_4_39, 38, 2},
328 : : /* 40 */ { 4, s_4_40, -1, 1},
329 : : /* 41 */ { 6, s_4_41, 40, 2},
330 : : /* 42 */ { 6, s_4_42, 40, 2},
331 : : /* 43 */ { 4, s_4_43, -1, 1},
332 : : /* 44 */ { 6, s_4_44, 43, 2},
333 : : /* 45 */ { 6, s_4_45, 43, 1}
334 : : };
335 : :
336 : :
337 : : static const struct among a_5[36] =
338 : : {
339 : : /* 0 */ { 2, s_5_0, -1, 1},
340 : : /* 1 */ { 4, s_5_1, -1, 1},
341 : : /* 2 */ { 6, s_5_2, 1, 1},
342 : : /* 3 */ { 4, s_5_3, -1, 1},
343 : : /* 4 */ { 2, s_5_4, -1, 1},
344 : : /* 5 */ { 2, s_5_5, -1, 1},
345 : : /* 6 */ { 2, s_5_6, -1, 1},
346 : : /* 7 */ { 4, s_5_7, 6, 1},
347 : : /* 8 */ { 4, s_5_8, 6, 1},
348 : : /* 9 */ { 2, s_5_9, -1, 1},
349 : : /* 10 */ { 4, s_5_10, 9, 1},
350 : : /* 11 */ { 4, s_5_11, 9, 1},
351 : : /* 12 */ { 2, s_5_12, -1, 1},
352 : : /* 13 */ { 4, s_5_13, -1, 1},
353 : : /* 14 */ { 4, s_5_14, -1, 1},
354 : : /* 15 */ { 2, s_5_15, -1, 1},
355 : : /* 16 */ { 4, s_5_16, 15, 1},
356 : : /* 17 */ { 4, s_5_17, 15, 1},
357 : : /* 18 */ { 2, s_5_18, -1, 1},
358 : : /* 19 */ { 4, s_5_19, 18, 1},
359 : : /* 20 */ { 4, s_5_20, 18, 1},
360 : : /* 21 */ { 6, s_5_21, 18, 1},
361 : : /* 22 */ { 8, s_5_22, 21, 1},
362 : : /* 23 */ { 6, s_5_23, 18, 1},
363 : : /* 24 */ { 2, s_5_24, -1, 1},
364 : : /* 25 */ { 4, s_5_25, 24, 1},
365 : : /* 26 */ { 6, s_5_26, 25, 1},
366 : : /* 27 */ { 4, s_5_27, 24, 1},
367 : : /* 28 */ { 4, s_5_28, 24, 1},
368 : : /* 29 */ { 4, s_5_29, -1, 1},
369 : : /* 30 */ { 6, s_5_30, 29, 1},
370 : : /* 31 */ { 4, s_5_31, -1, 1},
371 : : /* 32 */ { 4, s_5_32, -1, 1},
372 : : /* 33 */ { 6, s_5_33, 32, 1},
373 : : /* 34 */ { 4, s_5_34, -1, 1},
374 : : /* 35 */ { 2, s_5_35, -1, 1}
375 : : };
376 : :
377 : :
378 : : static const struct among a_6[2] =
379 : : {
380 : : /* 0 */ { 6, s_6_0, -1, 1},
381 : : /* 1 */ { 8, s_6_1, -1, 1}
382 : : };
383 : :
384 : :
385 : : static const struct among a_7[4] =
386 : : {
387 : : /* 0 */ { 6, s_7_0, -1, 1},
388 : : /* 1 */ { 2, s_7_1, -1, 3},
389 : : /* 2 */ { 8, s_7_2, -1, 1},
390 : : /* 3 */ { 2, s_7_3, -1, 2}
391 : : };
392 : :
393 : : static const unsigned char g_v[] = { 33, 65, 8, 232 };
394 : :
395 : : static const symbol s_0[] = { 0xD0, 0xB0 };
396 : : static const symbol s_1[] = { 0xD1, 0x8F };
397 : : static const symbol s_2[] = { 0xD0, 0xB0 };
398 : : static const symbol s_3[] = { 0xD1, 0x8F };
399 : : static const symbol s_4[] = { 0xD0, 0xB0 };
400 : : static const symbol s_5[] = { 0xD1, 0x8F };
401 : : static const symbol s_6[] = { 0xD0, 0xBD };
402 : : static const symbol s_7[] = { 0xD0, 0xBD };
403 : : static const symbol s_8[] = { 0xD0, 0xBD };
404 : : static const symbol s_9[] = { 0xD0, 0xB8 };
405 : :
406 : 120289 : int Xapian::InternalStemRussian::r_mark_regions() { /* forwardmode */
407 : 120289 : I_pV = l; /* pV = <integer expression>, line 59 */
408 : 120289 : I_p2 = l; /* p2 = <integer expression>, line 60 */
409 : 120289 : { int c1 = c; /* do, line 61 */
410 : 120289 : { int ret = out_grouping_U(g_v, 1072, 1103, 1); /* gopast */ /* grouping v, line 62 */
411 [ + + ]: 120289 : if (ret < 0) goto lab0;
412 : 50415 : c += ret;
413 : : }
414 : 50415 : I_pV = c; /* setmark pV, line 62 */
415 : 50415 : { int ret = in_grouping_U(g_v, 1072, 1103, 1); /* gopast */ /* non v, line 62 */
416 [ + + ]: 50415 : if (ret < 0) goto lab0;
417 : 50119 : c += ret;
418 : : }
419 : 50119 : { int ret = out_grouping_U(g_v, 1072, 1103, 1); /* gopast */ /* grouping v, line 63 */
420 [ + + ]: 50119 : if (ret < 0) goto lab0;
421 : 48107 : c += ret;
422 : : }
423 : 48107 : { int ret = in_grouping_U(g_v, 1072, 1103, 1); /* gopast */ /* non v, line 63 */
424 [ + + ]: 48107 : if (ret < 0) goto lab0;
425 : 42515 : c += ret;
426 : : }
427 : 42515 : I_p2 = c; /* setmark p2, line 63 */
428 : : lab0:
429 : 120289 : c = c1;
430 : : }
431 : 120289 : return 1;
432 : : }
433 : :
434 : 636 : int Xapian::InternalStemRussian::r_R2() { /* backwardmode */
435 [ + + ]: 636 : if (!(I_p2 <= c)) return 0; /* p2 <= <integer expression>, line 69 */
436 : 636 : return 1;
437 : : }
438 : :
439 : 120289 : int Xapian::InternalStemRussian::r_perfective_gerund() { /* backwardmode */
440 : : int among_var;
441 : 120289 : ket = c; /* [, line 72 */
442 : 120289 : among_var = find_among_b(s_pool, a_0, 9, 0, 0); /* substring, line 72 */
443 [ + + ]: 120289 : if (!(among_var)) return 0;
444 : 1160 : bra = c; /* ], line 72 */
445 [ - + + - ]: 1160 : switch(among_var) { /* among, line 72 */
446 : 0 : case 0: return 0;
447 : : case 1:
448 : 883 : { int m1 = l - c; (void)m1; /* or, line 76 */
449 [ + + ]: 883 : if (!(eq_s_b(2, s_0))) goto lab1; /* literal, line 76 */
450 : 134 : goto lab0;
451 : : lab1:
452 : 749 : c = l - m1;
453 [ + + ]: 749 : if (!(eq_s_b(2, s_1))) return 0; /* literal, line 76 */
454 : : }
455 : : lab0:
456 [ - + ]: 155 : if (slice_del() == -1) return -1; /* delete, line 76 */
457 : 155 : break;
458 : : case 2:
459 [ - + ]: 277 : if (slice_del() == -1) return -1; /* delete, line 83 */
460 : : break;
461 : : }
462 : 120289 : return 1;
463 : : }
464 : :
465 : 119857 : int Xapian::InternalStemRussian::r_adjective() { /* backwardmode */
466 : : int among_var;
467 : 119857 : ket = c; /* [, line 88 */
468 : 119857 : among_var = find_among_b(s_pool, a_1, 26, 0, 0); /* substring, line 88 */
469 [ + + ]: 119857 : if (!(among_var)) return 0;
470 : 15241 : bra = c; /* ], line 88 */
471 [ - + - ]: 15241 : switch(among_var) { /* among, line 88 */
472 : 0 : case 0: return 0;
473 : : case 1:
474 [ - + ]: 15241 : if (slice_del() == -1) return -1; /* delete, line 97 */
475 : : break;
476 : : }
477 : 119857 : return 1;
478 : : }
479 : :
480 : 119857 : int Xapian::InternalStemRussian::r_adjectival() { /* backwardmode */
481 : : int among_var;
482 : 119857 : { int ret = r_adjective(); /* call adjective, line 102 */
483 [ + + ]: 119857 : if (ret <= 0) return ret;
484 : : }
485 : 15241 : { int m1 = l - c; (void)m1; /* try, line 109 */
486 : 15241 : ket = c; /* [, line 110 */
487 : 15241 : among_var = find_among_b(s_pool, a_2, 8, 0, 0); /* substring, line 110 */
488 [ + + ]: 15241 : if (!(among_var)) { c = l - m1; goto lab0; }
489 : 3267 : bra = c; /* ], line 110 */
490 [ - + + - ]: 3267 : switch(among_var) { /* among, line 110 */
491 : 0 : case 0: { c = l - m1; goto lab0; }
492 : : case 1:
493 : 3046 : { int m2 = l - c; (void)m2; /* or, line 115 */
494 [ + + ]: 3046 : if (!(eq_s_b(2, s_2))) goto lab2; /* literal, line 115 */
495 : 975 : goto lab1;
496 : : lab2:
497 : 2071 : c = l - m2;
498 [ + + ]: 2071 : if (!(eq_s_b(2, s_3))) { c = l - m1; goto lab0; } /* literal, line 115 */
499 : : }
500 : : lab1:
501 [ - + ]: 1245 : if (slice_del() == -1) return -1; /* delete, line 115 */
502 : 1245 : break;
503 : : case 2:
504 [ - + ]: 221 : if (slice_del() == -1) return -1; /* delete, line 122 */
505 : : break;
506 : : }
507 : : lab0:
508 : : ;
509 : : }
510 : 119857 : return 1;
511 : : }
512 : :
513 : 119857 : int Xapian::InternalStemRussian::r_reflexive() { /* backwardmode */
514 : : int among_var;
515 : 119857 : ket = c; /* [, line 129 */
516 [ + + ][ + + ]: 119857 : if (c - 3 <= lb || (p[c - 1] != 140 && p[c - 1] != 143)) return 0; /* substring, line 129 */
[ + + ]
517 : 10619 : among_var = find_among_b(s_pool, a_3, 2, 0, 0);
518 [ + + ]: 10619 : if (!(among_var)) return 0;
519 : 5063 : bra = c; /* ], line 129 */
520 [ - + - ]: 5063 : switch(among_var) { /* among, line 129 */
521 : 0 : case 0: return 0;
522 : : case 1:
523 [ - + ]: 5063 : if (slice_del() == -1) return -1; /* delete, line 132 */
524 : : break;
525 : : }
526 : 119857 : return 1;
527 : : }
528 : :
529 : 104616 : int Xapian::InternalStemRussian::r_verb() { /* backwardmode */
530 : : int among_var;
531 : 104616 : ket = c; /* [, line 137 */
532 : 104616 : among_var = find_among_b(s_pool, a_4, 46, 0, 0); /* substring, line 137 */
533 [ + + ]: 104616 : if (!(among_var)) return 0;
534 : 18177 : bra = c; /* ], line 137 */
535 [ - + + - ]: 18177 : switch(among_var) { /* among, line 137 */
536 : 0 : case 0: return 0;
537 : : case 1:
538 : 11778 : { int m1 = l - c; (void)m1; /* or, line 143 */
539 [ + + ]: 11778 : if (!(eq_s_b(2, s_4))) goto lab1; /* literal, line 143 */
540 : 5911 : goto lab0;
541 : : lab1:
542 : 5867 : c = l - m1;
543 [ + + ]: 5867 : if (!(eq_s_b(2, s_5))) return 0; /* literal, line 143 */
544 : : }
545 : : lab0:
546 [ - + ]: 6692 : if (slice_del() == -1) return -1; /* delete, line 143 */
547 : 6692 : break;
548 : : case 2:
549 [ - + ]: 6399 : if (slice_del() == -1) return -1; /* delete, line 151 */
550 : : break;
551 : : }
552 : 104616 : return 1;
553 : : }
554 : :
555 : 91525 : int Xapian::InternalStemRussian::r_noun() { /* backwardmode */
556 : : int among_var;
557 : 91525 : ket = c; /* [, line 160 */
558 : 91525 : among_var = find_among_b(s_pool, a_5, 36, 0, 0); /* substring, line 160 */
559 [ + + ]: 91525 : if (!(among_var)) return 0;
560 : 16538 : bra = c; /* ], line 160 */
561 [ - + - ]: 16538 : switch(among_var) { /* among, line 160 */
562 : 0 : case 0: return 0;
563 : : case 1:
564 [ - + ]: 16538 : if (slice_del() == -1) return -1; /* delete, line 167 */
565 : : break;
566 : : }
567 : 91525 : return 1;
568 : : }
569 : :
570 : 120289 : int Xapian::InternalStemRussian::r_derivational() { /* backwardmode */
571 : : int among_var;
572 : 120289 : ket = c; /* [, line 176 */
573 [ + + ][ + + ]: 120289 : if (c - 5 <= lb || (p[c - 1] != 130 && p[c - 1] != 140)) return 0; /* substring, line 176 */
[ + + ]
574 : 4367 : among_var = find_among_b(s_pool, a_6, 2, 0, 0);
575 [ + + ]: 4367 : if (!(among_var)) return 0;
576 : 636 : bra = c; /* ], line 176 */
577 : 636 : { int ret = r_R2(); /* call R2, line 176 */
578 [ + + ]: 636 : if (ret <= 0) return ret;
579 : : }
580 [ - + - ]: 406 : switch(among_var) { /* among, line 176 */
581 : 0 : case 0: return 0;
582 : : case 1:
583 [ - + ]: 406 : if (slice_del() == -1) return -1; /* delete, line 179 */
584 : : break;
585 : : }
586 : 120289 : return 1;
587 : : }
588 : :
589 : 120289 : int Xapian::InternalStemRussian::r_tidy_up() { /* backwardmode */
590 : : int among_var;
591 : 120289 : ket = c; /* [, line 184 */
592 : 120289 : among_var = find_among_b(s_pool, a_7, 4, 0, 0); /* substring, line 184 */
593 [ + + ]: 120289 : if (!(among_var)) return 0;
594 : 10897 : bra = c; /* ], line 184 */
595 [ - + + + : 10897 : switch(among_var) { /* among, line 184 */
- ]
596 : 0 : case 0: return 0;
597 : : case 1:
598 [ - + ]: 161 : if (slice_del() == -1) return -1; /* delete, line 188 */
599 : 161 : ket = c; /* [, line 189 */
600 [ + + ]: 161 : if (!(eq_s_b(2, s_6))) return 0; /* literal, line 189 */
601 : 111 : bra = c; /* ], line 189 */
602 [ + + ]: 111 : if (!(eq_s_b(2, s_7))) return 0; /* literal, line 189 */
603 [ - + ]: 17 : if (slice_del() == -1) return -1; /* delete, line 189 */
604 : 17 : break;
605 : : case 2:
606 [ + + ]: 10305 : if (!(eq_s_b(2, s_8))) return 0; /* literal, line 192 */
607 [ - + ]: 1659 : if (slice_del() == -1) return -1; /* delete, line 192 */
608 : 1659 : break;
609 : : case 3:
610 [ - + ]: 431 : if (slice_del() == -1) return -1; /* delete, line 194 */
611 : : break;
612 : : }
613 : 120289 : return 1;
614 : : }
615 : :
616 : 120289 : int Xapian::InternalStemRussian::stem() { /* forwardmode */
617 : 120289 : { int c1 = c; /* do, line 201 */
618 : 120289 : { int ret = r_mark_regions(); /* call mark_regions, line 201 */
619 [ - + ]: 120289 : if (ret == 0) goto lab0;
620 [ - + ]: 120289 : if (ret < 0) return ret;
621 : : }
622 : : lab0:
623 : 120289 : c = c1;
624 : : }
625 : 120289 : lb = c; c = l; /* backwards, line 202 */
626 : :
627 : 120289 : { int m2 = l - c; (void)m2; /* setlimit, line 202 */
628 : : int mlimit2;
629 [ - + ]: 120289 : if (c < I_pV) return 0;
630 : 120289 : c = I_pV; /* tomark, line 202 */
631 : 120289 : mlimit2 = lb; lb = c;
632 : 120289 : c = l - m2;
633 : 120289 : { int m3 = l - c; (void)m3; /* do, line 203 */
634 : 120289 : { int m4 = l - c; (void)m4; /* or, line 204 */
635 : 120289 : { int ret = r_perfective_gerund(); /* call perfective_gerund, line 204 */
636 [ + + ]: 120289 : if (ret == 0) goto lab3;
637 [ - + ]: 432 : if (ret < 0) return ret;
638 : : }
639 : 432 : goto lab2;
640 : : lab3:
641 : 119857 : c = l - m4;
642 : 119857 : { int m5 = l - c; (void)m5; /* try, line 205 */
643 : 119857 : { int ret = r_reflexive(); /* call reflexive, line 205 */
644 [ + + ]: 119857 : if (ret == 0) { c = l - m5; goto lab4; }
645 [ - + ]: 5063 : if (ret < 0) return ret;
646 : : }
647 : : lab4:
648 : : ;
649 : : }
650 : 119857 : { int m6 = l - c; (void)m6; /* or, line 206 */
651 : 119857 : { int ret = r_adjectival(); /* call adjectival, line 206 */
652 [ + + ]: 119857 : if (ret == 0) goto lab6;
653 [ - + ]: 15241 : if (ret < 0) return ret;
654 : : }
655 : 15241 : goto lab5;
656 : : lab6:
657 : 104616 : c = l - m6;
658 : 104616 : { int ret = r_verb(); /* call verb, line 206 */
659 [ + + ]: 104616 : if (ret == 0) goto lab7;
660 [ - + ]: 13091 : if (ret < 0) return ret;
661 : : }
662 : 13091 : goto lab5;
663 : : lab7:
664 : 91525 : c = l - m6;
665 : 91525 : { int ret = r_noun(); /* call noun, line 206 */
666 [ + + ]: 91525 : if (ret == 0) goto lab1;
667 [ - + ]: 16538 : if (ret < 0) return ret;
668 : : }
669 : : }
670 : : lab5:
671 : : ;
672 : : }
673 : : lab2:
674 : : lab1:
675 : 120289 : c = l - m3;
676 : : }
677 : 120289 : { int m7 = l - c; (void)m7; /* try, line 209 */
678 : 120289 : ket = c; /* [, line 209 */
679 [ + + ]: 120289 : if (!(eq_s_b(2, s_9))) { c = l - m7; goto lab8; } /* literal, line 209 */
680 : 503 : bra = c; /* ], line 209 */
681 [ - + ]: 503 : if (slice_del() == -1) return -1; /* delete, line 209 */
682 : : lab8:
683 : : ;
684 : : }
685 : 120289 : { int m8 = l - c; (void)m8; /* do, line 212 */
686 : 120289 : { int ret = r_derivational(); /* call derivational, line 212 */
687 [ + + ]: 120289 : if (ret == 0) goto lab9;
688 [ - + ]: 406 : if (ret < 0) return ret;
689 : : }
690 : : lab9:
691 : 120289 : c = l - m8;
692 : : }
693 : 120289 : { int m9 = l - c; (void)m9; /* do, line 213 */
694 : 120289 : { int ret = r_tidy_up(); /* call tidy_up, line 213 */
695 [ + + ]: 120289 : if (ret == 0) goto lab10;
696 [ - + ]: 2107 : if (ret < 0) return ret;
697 : : }
698 : : lab10:
699 : 120289 : c = l - m9;
700 : : }
701 : 120289 : lb = mlimit2;
702 : : }
703 : 120289 : c = lb;
704 : 120289 : return 1;
705 : : }
706 : :
707 : 3 : Xapian::InternalStemRussian::InternalStemRussian()
708 : 3 : : I_p2(0), I_pV(0)
709 : : {
710 : 3 : }
711 : :
712 : 3 : Xapian::InternalStemRussian::~InternalStemRussian()
713 : : {
714 [ + - ][ # # ]: 3 : }
[ # # ]
715 : :
716 : : std::string
717 : 1 : Xapian::InternalStemRussian::get_description() const
718 : : {
719 : 1 : return "russian";
720 : : }
|