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