languages/russian.cc

Go to the documentation of this file.
00001 /* This file was generated automatically by the Snowball to ISO C++ compiler */
00002 
00003 #include <limits.h>
00004 #include "russian.h"
00005 
00006 static const symbol s_pool[] = {
00007 #define s_0_0 0
00008 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C,
00009 #define s_0_1 10
00010 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C,
00011 #define s_0_2 22
00012 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C,
00013 #define s_0_3 34
00014 0xD0, 0xB2,
00015 #define s_0_4 36
00016 0xD1, 0x8B, 0xD0, 0xB2,
00017 #define s_0_5 40
00018 0xD0, 0xB8, 0xD0, 0xB2,
00019 #define s_0_6 44
00020 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8,
00021 #define s_0_7 50
00022 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8,
00023 #define s_0_8 58
00024 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8,
00025 #define s_1_0 66
00026 0xD0, 0xB5, 0xD0, 0xBC, 0xD1, 0x83,
00027 #define s_1_1 72
00028 0xD0, 0xBE, 0xD0, 0xBC, 0xD1, 0x83,
00029 #define s_1_2 78
00030 0xD1, 0x8B, 0xD1, 0x85,
00031 #define s_1_3 82
00032 0xD0, 0xB8, 0xD1, 0x85,
00033 #define s_1_4 86
00034 0xD1, 0x83, 0xD1, 0x8E,
00035 #define s_1_5 90
00036 0xD1, 0x8E, 0xD1, 0x8E,
00037 #define s_1_6 94
00038 0xD0, 0xB5, 0xD1, 0x8E,
00039 #define s_1_7 98
00040 0xD0, 0xBE, 0xD1, 0x8E,
00041 #define s_1_8 102
00042 0xD1, 0x8F, 0xD1, 0x8F,
00043 #define s_1_9 106
00044 0xD0, 0xB0, 0xD1, 0x8F,
00045 #define s_1_10 110
00046 0xD1, 0x8B, 0xD0, 0xB5,
00047 #define s_1_11 114
00048 0xD0, 0xB5, 0xD0, 0xB5,
00049 #define s_1_12 118
00050 0xD0, 0xB8, 0xD0, 0xB5,
00051 #define s_1_13 122
00052 0xD0, 0xBE, 0xD0, 0xB5,
00053 #define s_1_14 126
00054 0xD1, 0x8B, 0xD0, 0xBC, 0xD0, 0xB8,
00055 #define s_1_15 132
00056 0xD0, 0xB8, 0xD0, 0xBC, 0xD0, 0xB8,
00057 #define s_1_16 138
00058 0xD1, 0x8B, 0xD0, 0xB9,
00059 #define s_1_17 142
00060 0xD0, 0xB5, 0xD0, 0xB9,
00061 #define s_1_18 146
00062 0xD0, 0xB8, 0xD0, 0xB9,
00063 #define s_1_19 150
00064 0xD0, 0xBE, 0xD0, 0xB9,
00065 #define s_1_20 154
00066 0xD1, 0x8B, 0xD0, 0xBC,
00067 #define s_1_21 158
00068 0xD0, 0xB5, 0xD0, 0xBC,
00069 #define s_1_22 162
00070 0xD0, 0xB8, 0xD0, 0xBC,
00071 #define s_1_23 166
00072 0xD0, 0xBE, 0xD0, 0xBC,
00073 #define s_1_24 170
00074 0xD0, 0xB5, 0xD0, 0xB3, 0xD0, 0xBE,
00075 #define s_1_25 176
00076 0xD0, 0xBE, 0xD0, 0xB3, 0xD0, 0xBE,
00077 #define s_2_0 182
00078 0xD0, 0xB2, 0xD1, 0x88,
00079 #define s_2_1 186
00080 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88,
00081 #define s_2_2 192
00082 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88,
00083 #define s_2_3 198
00084 0xD1, 0x89,
00085 #define s_2_4 200
00086 0xD1, 0x8E, 0xD1, 0x89,
00087 #define s_2_5 204
00088 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x89,
00089 #define s_2_6 210
00090 0xD0, 0xB5, 0xD0, 0xBC,
00091 #define s_2_7 214
00092 0xD0, 0xBD, 0xD0, 0xBD,
00093 #define s_3_0 218
00094 0xD1, 0x81, 0xD1, 0x8C,
00095 #define s_3_1 222
00096 0xD1, 0x81, 0xD1, 0x8F,
00097 #define s_4_0 226
00098 0xD1, 0x8B, 0xD1, 0x82,
00099 #define s_4_1 230
00100 0xD1, 0x8E, 0xD1, 0x82,
00101 #define s_4_2 234
00102 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x82,
00103 #define s_4_3 240
00104 0xD1, 0x8F, 0xD1, 0x82,
00105 #define s_4_4 244
00106 0xD0, 0xB5, 0xD1, 0x82,
00107 #define s_4_5 248
00108 0xD1, 0x83, 0xD0, 0xB5, 0xD1, 0x82,
00109 #define s_4_6 254
00110 0xD0, 0xB8, 0xD1, 0x82,
00111 #define s_4_7 258
00112 0xD0, 0xBD, 0xD1, 0x8B,
00113 #define s_4_8 262
00114 0xD0, 0xB5, 0xD0, 0xBD, 0xD1, 0x8B,
00115 #define s_4_9 268
00116 0xD1, 0x82, 0xD1, 0x8C,
00117 #define s_4_10 272
00118 0xD1, 0x8B, 0xD1, 0x82, 0xD1, 0x8C,
00119 #define s_4_11 278
00120 0xD0, 0xB8, 0xD1, 0x82, 0xD1, 0x8C,
00121 #define s_4_12 284
00122 0xD0, 0xB5, 0xD1, 0x88, 0xD1, 0x8C,
00123 #define s_4_13 290
00124 0xD0, 0xB8, 0xD1, 0x88, 0xD1, 0x8C,
00125 #define s_4_14 296
00126 0xD1, 0x8E,
00127 #define s_4_15 298
00128 0xD1, 0x83, 0xD1, 0x8E,
00129 #define s_4_16 302
00130 0xD0, 0xBB, 0xD0, 0xB0,
00131 #define s_4_17 306
00132 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB0,
00133 #define s_4_18 312
00134 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB0,
00135 #define s_4_19 318
00136 0xD0, 0xBD, 0xD0, 0xB0,
00137 #define s_4_20 322
00138 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xB0,
00139 #define s_4_21 328
00140 0xD0, 0xB5, 0xD1, 0x82, 0xD0, 0xB5,
00141 #define s_4_22 334
00142 0xD0, 0xB8, 0xD1, 0x82, 0xD0, 0xB5,
00143 #define s_4_23 340
00144 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
00145 #define s_4_24 346
00146 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
00147 #define s_4_25 354
00148 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
00149 #define s_4_26 362
00150 0xD0, 0xBB, 0xD0, 0xB8,
00151 #define s_4_27 366
00152 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB8,
00153 #define s_4_28 372
00154 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB8,
00155 #define s_4_29 378
00156 0xD0, 0xB9,
00157 #define s_4_30 380
00158 0xD1, 0x83, 0xD0, 0xB9,
00159 #define s_4_31 384
00160 0xD0, 0xB5, 0xD0, 0xB9,
00161 #define s_4_32 388
00162 0xD0, 0xBB,
00163 #define s_4_33 390
00164 0xD1, 0x8B, 0xD0, 0xBB,
00165 #define s_4_34 394
00166 0xD0, 0xB8, 0xD0, 0xBB,
00167 #define s_4_35 398
00168 0xD1, 0x8B, 0xD0, 0xBC,
00169 #define s_4_36 402
00170 0xD0, 0xB5, 0xD0, 0xBC,
00171 #define s_4_37 406
00172 0xD0, 0xB8, 0xD0, 0xBC,
00173 #define s_4_38 410
00174 0xD0, 0xBD,
00175 #define s_4_39 412
00176 0xD0, 0xB5, 0xD0, 0xBD,
00177 #define s_4_40 416
00178 0xD0, 0xBB, 0xD0, 0xBE,
00179 #define s_4_41 420
00180 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xBE,
00181 #define s_4_42 426
00182 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xBE,
00183 #define s_4_43 432
00184 0xD0, 0xBD, 0xD0, 0xBE,
00185 #define s_4_44 436
00186 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xBE,
00187 #define s_4_45 442
00188 0xD0, 0xBD, 0xD0, 0xBD, 0xD0, 0xBE,
00189 #define s_5_0 448
00190 0xD1, 0x83,
00191 #define s_5_1 450
00192 0xD1, 0x8F, 0xD1, 0x85,
00193 #define s_5_2 454
00194 0xD0, 0xB8, 0xD1, 0x8F, 0xD1, 0x85,
00195 #define s_5_3 460
00196 0xD0, 0xB0, 0xD1, 0x85,
00197 #define s_5_4 464
00198 0xD1, 0x8B,
00199 #define s_5_5 466
00200 0xD1, 0x8C,
00201 #define s_5_6 468
00202 0xD1, 0x8E,
00203 #define s_5_7 470
00204 0xD1, 0x8C, 0xD1, 0x8E,
00205 #define s_5_8 474
00206 0xD0, 0xB8, 0xD1, 0x8E,
00207 #define s_5_9 478
00208 0xD1, 0x8F,
00209 #define s_5_10 480
00210 0xD1, 0x8C, 0xD1, 0x8F,
00211 #define s_5_11 484
00212 0xD0, 0xB8, 0xD1, 0x8F,
00213 #define s_5_12 488
00214 0xD0, 0xB0,
00215 #define s_5_13 490
00216 0xD0, 0xB5, 0xD0, 0xB2,
00217 #define s_5_14 494
00218 0xD0, 0xBE, 0xD0, 0xB2,
00219 #define s_5_15 498
00220 0xD0, 0xB5,
00221 #define s_5_16 500
00222 0xD1, 0x8C, 0xD0, 0xB5,
00223 #define s_5_17 504
00224 0xD0, 0xB8, 0xD0, 0xB5,
00225 #define s_5_18 508
00226 0xD0, 0xB8,
00227 #define s_5_19 510
00228 0xD0, 0xB5, 0xD0, 0xB8,
00229 #define s_5_20 514
00230 0xD0, 0xB8, 0xD0, 0xB8,
00231 #define s_5_21 518
00232 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8,
00233 #define s_5_22 524
00234 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8,
00235 #define s_5_23 532
00236 0xD0, 0xB0, 0xD0, 0xBC, 0xD0, 0xB8,
00237 #define s_5_24 538
00238 0xD0, 0xB9,
00239 #define s_5_25 540
00240 0xD0, 0xB5, 0xD0, 0xB9,
00241 #define s_5_26 544
00242 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xB9,
00243 #define s_5_27 550
00244 0xD0, 0xB8, 0xD0, 0xB9,
00245 #define s_5_28 554
00246 0xD0, 0xBE, 0xD0, 0xB9,
00247 #define s_5_29 558
00248 0xD1, 0x8F, 0xD0, 0xBC,
00249 #define s_5_30 562
00250 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC,
00251 #define s_5_31 568
00252 0xD0, 0xB0, 0xD0, 0xBC,
00253 #define s_5_32 572
00254 0xD0, 0xB5, 0xD0, 0xBC,
00255 #define s_5_33 576
00256 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xBC,
00257 #define s_5_34 582
00258 0xD0, 0xBE, 0xD0, 0xBC,
00259 #define s_5_35 586
00260 0xD0, 0xBE,
00261 #define s_6_0 588
00262 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82,
00263 #define s_6_1 594
00264 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82, 0xD1, 0x8C,
00265 #define s_7_0 602
00266 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88,
00267 #define s_7_1 608
00268 0xD1, 0x8C,
00269 #define s_7_2 610
00270 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88, 0xD0, 0xB5,
00271 #define s_7_3 618
00272 0xD0, 0xBD,
00273 };
00274 
00275 
00276 static const struct among a_0[9] =
00277 {
00278 /*  0 */ { 10, s_0_0, -1, 1},
00279 /*  1 */ { 12, s_0_1, 0, 2},
00280 /*  2 */ { 12, s_0_2, 0, 2},
00281 /*  3 */ { 2, s_0_3, -1, 1},
00282 /*  4 */ { 4, s_0_4, 3, 2},
00283 /*  5 */ { 4, s_0_5, 3, 2},
00284 /*  6 */ { 6, s_0_6, -1, 1},
00285 /*  7 */ { 8, s_0_7, 6, 2},
00286 /*  8 */ { 8, s_0_8, 6, 2}
00287 };
00288 
00289 
00290 static const struct among a_1[26] =
00291 {
00292 /*  0 */ { 6, s_1_0, -1, 1},
00293 /*  1 */ { 6, s_1_1, -1, 1},
00294 /*  2 */ { 4, s_1_2, -1, 1},
00295 /*  3 */ { 4, s_1_3, -1, 1},
00296 /*  4 */ { 4, s_1_4, -1, 1},
00297 /*  5 */ { 4, s_1_5, -1, 1},
00298 /*  6 */ { 4, s_1_6, -1, 1},
00299 /*  7 */ { 4, s_1_7, -1, 1},
00300 /*  8 */ { 4, s_1_8, -1, 1},
00301 /*  9 */ { 4, s_1_9, -1, 1},
00302 /* 10 */ { 4, s_1_10, -1, 1},
00303 /* 11 */ { 4, s_1_11, -1, 1},
00304 /* 12 */ { 4, s_1_12, -1, 1},
00305 /* 13 */ { 4, s_1_13, -1, 1},
00306 /* 14 */ { 6, s_1_14, -1, 1},
00307 /* 15 */ { 6, s_1_15, -1, 1},
00308 /* 16 */ { 4, s_1_16, -1, 1},
00309 /* 17 */ { 4, s_1_17, -1, 1},
00310 /* 18 */ { 4, s_1_18, -1, 1},
00311 /* 19 */ { 4, s_1_19, -1, 1},
00312 /* 20 */ { 4, s_1_20, -1, 1},
00313 /* 21 */ { 4, s_1_21, -1, 1},
00314 /* 22 */ { 4, s_1_22, -1, 1},
00315 /* 23 */ { 4, s_1_23, -1, 1},
00316 /* 24 */ { 6, s_1_24, -1, 1},
00317 /* 25 */ { 6, s_1_25, -1, 1}
00318 };
00319 
00320 
00321 static const struct among a_2[8] =
00322 {
00323 /*  0 */ { 4, s_2_0, -1, 1},
00324 /*  1 */ { 6, s_2_1, 0, 2},
00325 /*  2 */ { 6, s_2_2, 0, 2},
00326 /*  3 */ { 2, s_2_3, -1, 1},
00327 /*  4 */ { 4, s_2_4, 3, 1},
00328 /*  5 */ { 6, s_2_5, 4, 2},
00329 /*  6 */ { 4, s_2_6, -1, 1},
00330 /*  7 */ { 4, s_2_7, -1, 1}
00331 };
00332 
00333 
00334 static const struct among a_3[2] =
00335 {
00336 /*  0 */ { 4, s_3_0, -1, 1},
00337 /*  1 */ { 4, s_3_1, -1, 1}
00338 };
00339 
00340 
00341 static const struct among a_4[46] =
00342 {
00343 /*  0 */ { 4, s_4_0, -1, 2},
00344 /*  1 */ { 4, s_4_1, -1, 1},
00345 /*  2 */ { 6, s_4_2, 1, 2},
00346 /*  3 */ { 4, s_4_3, -1, 2},
00347 /*  4 */ { 4, s_4_4, -1, 1},
00348 /*  5 */ { 6, s_4_5, 4, 2},
00349 /*  6 */ { 4, s_4_6, -1, 2},
00350 /*  7 */ { 4, s_4_7, -1, 1},
00351 /*  8 */ { 6, s_4_8, 7, 2},
00352 /*  9 */ { 4, s_4_9, -1, 1},
00353 /* 10 */ { 6, s_4_10, 9, 2},
00354 /* 11 */ { 6, s_4_11, 9, 2},
00355 /* 12 */ { 6, s_4_12, -1, 1},
00356 /* 13 */ { 6, s_4_13, -1, 2},
00357 /* 14 */ { 2, s_4_14, -1, 2},
00358 /* 15 */ { 4, s_4_15, 14, 2},
00359 /* 16 */ { 4, s_4_16, -1, 1},
00360 /* 17 */ { 6, s_4_17, 16, 2},
00361 /* 18 */ { 6, s_4_18, 16, 2},
00362 /* 19 */ { 4, s_4_19, -1, 1},
00363 /* 20 */ { 6, s_4_20, 19, 2},
00364 /* 21 */ { 6, s_4_21, -1, 1},
00365 /* 22 */ { 6, s_4_22, -1, 2},
00366 /* 23 */ { 6, s_4_23, -1, 1},
00367 /* 24 */ { 8, s_4_24, 23, 2},
00368 /* 25 */ { 8, s_4_25, 23, 2},
00369 /* 26 */ { 4, s_4_26, -1, 1},
00370 /* 27 */ { 6, s_4_27, 26, 2},
00371 /* 28 */ { 6, s_4_28, 26, 2},
00372 /* 29 */ { 2, s_4_29, -1, 1},
00373 /* 30 */ { 4, s_4_30, 29, 2},
00374 /* 31 */ { 4, s_4_31, 29, 2},
00375 /* 32 */ { 2, s_4_32, -1, 1},
00376 /* 33 */ { 4, s_4_33, 32, 2},
00377 /* 34 */ { 4, s_4_34, 32, 2},
00378 /* 35 */ { 4, s_4_35, -1, 2},
00379 /* 36 */ { 4, s_4_36, -1, 1},
00380 /* 37 */ { 4, s_4_37, -1, 2},
00381 /* 38 */ { 2, s_4_38, -1, 1},
00382 /* 39 */ { 4, s_4_39, 38, 2},
00383 /* 40 */ { 4, s_4_40, -1, 1},
00384 /* 41 */ { 6, s_4_41, 40, 2},
00385 /* 42 */ { 6, s_4_42, 40, 2},
00386 /* 43 */ { 4, s_4_43, -1, 1},
00387 /* 44 */ { 6, s_4_44, 43, 2},
00388 /* 45 */ { 6, s_4_45, 43, 1}
00389 };
00390 
00391 
00392 static const struct among a_5[36] =
00393 {
00394 /*  0 */ { 2, s_5_0, -1, 1},
00395 /*  1 */ { 4, s_5_1, -1, 1},
00396 /*  2 */ { 6, s_5_2, 1, 1},
00397 /*  3 */ { 4, s_5_3, -1, 1},
00398 /*  4 */ { 2, s_5_4, -1, 1},
00399 /*  5 */ { 2, s_5_5, -1, 1},
00400 /*  6 */ { 2, s_5_6, -1, 1},
00401 /*  7 */ { 4, s_5_7, 6, 1},
00402 /*  8 */ { 4, s_5_8, 6, 1},
00403 /*  9 */ { 2, s_5_9, -1, 1},
00404 /* 10 */ { 4, s_5_10, 9, 1},
00405 /* 11 */ { 4, s_5_11, 9, 1},
00406 /* 12 */ { 2, s_5_12, -1, 1},
00407 /* 13 */ { 4, s_5_13, -1, 1},
00408 /* 14 */ { 4, s_5_14, -1, 1},
00409 /* 15 */ { 2, s_5_15, -1, 1},
00410 /* 16 */ { 4, s_5_16, 15, 1},
00411 /* 17 */ { 4, s_5_17, 15, 1},
00412 /* 18 */ { 2, s_5_18, -1, 1},
00413 /* 19 */ { 4, s_5_19, 18, 1},
00414 /* 20 */ { 4, s_5_20, 18, 1},
00415 /* 21 */ { 6, s_5_21, 18, 1},
00416 /* 22 */ { 8, s_5_22, 21, 1},
00417 /* 23 */ { 6, s_5_23, 18, 1},
00418 /* 24 */ { 2, s_5_24, -1, 1},
00419 /* 25 */ { 4, s_5_25, 24, 1},
00420 /* 26 */ { 6, s_5_26, 25, 1},
00421 /* 27 */ { 4, s_5_27, 24, 1},
00422 /* 28 */ { 4, s_5_28, 24, 1},
00423 /* 29 */ { 4, s_5_29, -1, 1},
00424 /* 30 */ { 6, s_5_30, 29, 1},
00425 /* 31 */ { 4, s_5_31, -1, 1},
00426 /* 32 */ { 4, s_5_32, -1, 1},
00427 /* 33 */ { 6, s_5_33, 32, 1},
00428 /* 34 */ { 4, s_5_34, -1, 1},
00429 /* 35 */ { 2, s_5_35, -1, 1}
00430 };
00431 
00432 
00433 static const struct among a_6[2] =
00434 {
00435 /*  0 */ { 6, s_6_0, -1, 1},
00436 /*  1 */ { 8, s_6_1, -1, 1}
00437 };
00438 
00439 
00440 static const struct among a_7[4] =
00441 {
00442 /*  0 */ { 6, s_7_0, -1, 1},
00443 /*  1 */ { 2, s_7_1, -1, 3},
00444 /*  2 */ { 8, s_7_2, -1, 1},
00445 /*  3 */ { 2, s_7_3, -1, 2}
00446 };
00447 
00448 static const unsigned char g_v[] = { 33, 65, 8, 232 };
00449 
00450 static const symbol s_0[] = { 0xD0, 0xB0 };
00451 static const symbol s_1[] = { 0xD1, 0x8F };
00452 static const symbol s_2[] = { 0xD0, 0xB0 };
00453 static const symbol s_3[] = { 0xD1, 0x8F };
00454 static const symbol s_4[] = { 0xD0, 0xB0 };
00455 static const symbol s_5[] = { 0xD1, 0x8F };
00456 static const symbol s_6[] = { 0xD0, 0xBD };
00457 static const symbol s_7[] = { 0xD0, 0xBD };
00458 static const symbol s_8[] = { 0xD0, 0xBD };
00459 static const symbol s_9[] = { 0xD0, 0xB8 };
00460 
00461 int Xapian::InternalStemRussian::r_mark_regions() { /* forwardmode */
00462     I_pV = l; /* pV = <integer expression>, line 59 */
00463     I_p2 = l; /* p2 = <integer expression>, line 60 */
00464     {   int c1 = c; /* do, line 61 */
00465         {   int ret = out_grouping_U(g_v, 1072, 1103, 1); /* gopast */ /* grouping v, line 62 */
00466             if (ret < 0) goto lab0;
00467             c += ret;
00468         }
00469         I_pV = c; /* setmark pV, line 62 */
00470         {   int ret = in_grouping_U(g_v, 1072, 1103, 1); /* gopast */ /* non v, line 62 */
00471             if (ret < 0) goto lab0;
00472             c += ret;
00473         }
00474         {   int ret = out_grouping_U(g_v, 1072, 1103, 1); /* gopast */ /* grouping v, line 63 */
00475             if (ret < 0) goto lab0;
00476             c += ret;
00477         }
00478         {   int ret = in_grouping_U(g_v, 1072, 1103, 1); /* gopast */ /* non v, line 63 */
00479             if (ret < 0) goto lab0;
00480             c += ret;
00481         }
00482         I_p2 = c; /* setmark p2, line 63 */
00483     lab0:
00484         c = c1;
00485     }
00486     return 1;
00487 }
00488 
00489 int Xapian::InternalStemRussian::r_R2() { /* backwardmode */
00490     if (!(I_p2 <= c)) return 0; /* p2 <= <integer expression>, line 69 */
00491     return 1;
00492 }
00493 
00494 int Xapian::InternalStemRussian::r_perfective_gerund() { /* backwardmode */
00495     int among_var;
00496     ket = c; /* [, line 72 */
00497     among_var = find_among_b(s_pool, a_0, 9, 0, 0); /* substring, line 72 */
00498     if (!(among_var)) return 0;
00499     bra = c; /* ], line 72 */
00500     switch(among_var) { /* among, line 72 */
00501         case 0: return 0;
00502         case 1:
00503             {   int m1 = l - c; (void)m1; /* or, line 76 */
00504                 if (!(eq_s_b(2, s_0))) goto lab1; /* literal, line 76 */
00505                 goto lab0;
00506             lab1:
00507                 c = l - m1;
00508                 if (!(eq_s_b(2, s_1))) return 0; /* literal, line 76 */
00509             }
00510         lab0:
00511             if (slice_del() == -1) return -1; /* delete, line 76 */
00512             break;
00513         case 2:
00514             if (slice_del() == -1) return -1; /* delete, line 83 */
00515             break;
00516     }
00517     return 1;
00518 }
00519 
00520 int Xapian::InternalStemRussian::r_adjective() { /* backwardmode */
00521     int among_var;
00522     ket = c; /* [, line 88 */
00523     among_var = find_among_b(s_pool, a_1, 26, 0, 0); /* substring, line 88 */
00524     if (!(among_var)) return 0;
00525     bra = c; /* ], line 88 */
00526     switch(among_var) { /* among, line 88 */
00527         case 0: return 0;
00528         case 1:
00529             if (slice_del() == -1) return -1; /* delete, line 97 */
00530             break;
00531     }
00532     return 1;
00533 }
00534 
00535 int Xapian::InternalStemRussian::r_adjectival() { /* backwardmode */
00536     int among_var;
00537     {   int ret = r_adjective(); /* call adjective, line 102 */
00538         if (ret <= 0) return ret;
00539     }
00540     {   int m1 = l - c; (void)m1; /* try, line 109 */
00541         ket = c; /* [, line 110 */
00542         among_var = find_among_b(s_pool, a_2, 8, 0, 0); /* substring, line 110 */
00543         if (!(among_var)) { c = l - m1; goto lab0; }
00544         bra = c; /* ], line 110 */
00545         switch(among_var) { /* among, line 110 */
00546             case 0: { c = l - m1; goto lab0; }
00547             case 1:
00548                 {   int m2 = l - c; (void)m2; /* or, line 115 */
00549                     if (!(eq_s_b(2, s_2))) goto lab2; /* literal, line 115 */
00550                     goto lab1;
00551                 lab2:
00552                     c = l - m2;
00553                     if (!(eq_s_b(2, s_3))) { c = l - m1; goto lab0; } /* literal, line 115 */
00554                 }
00555             lab1:
00556                 if (slice_del() == -1) return -1; /* delete, line 115 */
00557                 break;
00558             case 2:
00559                 if (slice_del() == -1) return -1; /* delete, line 122 */
00560                 break;
00561         }
00562     lab0:
00563         ;
00564     }
00565     return 1;
00566 }
00567 
00568 int Xapian::InternalStemRussian::r_reflexive() { /* backwardmode */
00569     int among_var;
00570     ket = c; /* [, line 129 */
00571     if (c - 3 <= lb || (p[c - 1] != 140 && p[c - 1] != 143)) return 0; /* substring, line 129 */
00572     among_var = find_among_b(s_pool, a_3, 2, 0, 0);
00573     if (!(among_var)) return 0;
00574     bra = c; /* ], line 129 */
00575     switch(among_var) { /* among, line 129 */
00576         case 0: return 0;
00577         case 1:
00578             if (slice_del() == -1) return -1; /* delete, line 132 */
00579             break;
00580     }
00581     return 1;
00582 }
00583 
00584 int Xapian::InternalStemRussian::r_verb() { /* backwardmode */
00585     int among_var;
00586     ket = c; /* [, line 137 */
00587     among_var = find_among_b(s_pool, a_4, 46, 0, 0); /* substring, line 137 */
00588     if (!(among_var)) return 0;
00589     bra = c; /* ], line 137 */
00590     switch(among_var) { /* among, line 137 */
00591         case 0: return 0;
00592         case 1:
00593             {   int m1 = l - c; (void)m1; /* or, line 143 */
00594                 if (!(eq_s_b(2, s_4))) goto lab1; /* literal, line 143 */
00595                 goto lab0;
00596             lab1:
00597                 c = l - m1;
00598                 if (!(eq_s_b(2, s_5))) return 0; /* literal, line 143 */
00599             }
00600         lab0:
00601             if (slice_del() == -1) return -1; /* delete, line 143 */
00602             break;
00603         case 2:
00604             if (slice_del() == -1) return -1; /* delete, line 151 */
00605             break;
00606     }
00607     return 1;
00608 }
00609 
00610 int Xapian::InternalStemRussian::r_noun() { /* backwardmode */
00611     int among_var;
00612     ket = c; /* [, line 160 */
00613     among_var = find_among_b(s_pool, a_5, 36, 0, 0); /* substring, line 160 */
00614     if (!(among_var)) return 0;
00615     bra = c; /* ], line 160 */
00616     switch(among_var) { /* among, line 160 */
00617         case 0: return 0;
00618         case 1:
00619             if (slice_del() == -1) return -1; /* delete, line 167 */
00620             break;
00621     }
00622     return 1;
00623 }
00624 
00625 int Xapian::InternalStemRussian::r_derivational() { /* backwardmode */
00626     int among_var;
00627     ket = c; /* [, line 176 */
00628     if (c - 5 <= lb || (p[c - 1] != 130 && p[c - 1] != 140)) return 0; /* substring, line 176 */
00629     among_var = find_among_b(s_pool, a_6, 2, 0, 0);
00630     if (!(among_var)) return 0;
00631     bra = c; /* ], line 176 */
00632     {   int ret = r_R2(); /* call R2, line 176 */
00633         if (ret <= 0) return ret;
00634     }
00635     switch(among_var) { /* among, line 176 */
00636         case 0: return 0;
00637         case 1:
00638             if (slice_del() == -1) return -1; /* delete, line 179 */
00639             break;
00640     }
00641     return 1;
00642 }
00643 
00644 int Xapian::InternalStemRussian::r_tidy_up() { /* backwardmode */
00645     int among_var;
00646     ket = c; /* [, line 184 */
00647     among_var = find_among_b(s_pool, a_7, 4, 0, 0); /* substring, line 184 */
00648     if (!(among_var)) return 0;
00649     bra = c; /* ], line 184 */
00650     switch(among_var) { /* among, line 184 */
00651         case 0: return 0;
00652         case 1:
00653             if (slice_del() == -1) return -1; /* delete, line 188 */
00654             ket = c; /* [, line 189 */
00655             if (!(eq_s_b(2, s_6))) return 0; /* literal, line 189 */
00656             bra = c; /* ], line 189 */
00657             if (!(eq_s_b(2, s_7))) return 0; /* literal, line 189 */
00658             if (slice_del() == -1) return -1; /* delete, line 189 */
00659             break;
00660         case 2:
00661             if (!(eq_s_b(2, s_8))) return 0; /* literal, line 192 */
00662             if (slice_del() == -1) return -1; /* delete, line 192 */
00663             break;
00664         case 3:
00665             if (slice_del() == -1) return -1; /* delete, line 194 */
00666             break;
00667     }
00668     return 1;
00669 }
00670 
00671 int Xapian::InternalStemRussian::stem() { /* forwardmode */
00672     {   int c1 = c; /* do, line 201 */
00673         {   int ret = r_mark_regions(); /* call mark_regions, line 201 */
00674             if (ret == 0) goto lab0;
00675             if (ret < 0) return ret;
00676         }
00677     lab0:
00678         c = c1;
00679     }
00680     lb = c; c = l; /* backwards, line 202 */
00681 
00682     {   int m2 = l - c; (void)m2; /* setlimit, line 202 */
00683         int mlimit2;
00684         if (c < I_pV) return 0;
00685         c = I_pV; /* tomark, line 202 */
00686         mlimit2 = lb; lb = c;
00687         c = l - m2;
00688         {   int m3 = l - c; (void)m3; /* do, line 203 */
00689             {   int m4 = l - c; (void)m4; /* or, line 204 */
00690                 {   int ret = r_perfective_gerund(); /* call perfective_gerund, line 204 */
00691                     if (ret == 0) goto lab3;
00692                     if (ret < 0) return ret;
00693                 }
00694                 goto lab2;
00695             lab3:
00696                 c = l - m4;
00697                 {   int m5 = l - c; (void)m5; /* try, line 205 */
00698                     {   int ret = r_reflexive(); /* call reflexive, line 205 */
00699                         if (ret == 0) { c = l - m5; goto lab4; }
00700                         if (ret < 0) return ret;
00701                     }
00702                 lab4:
00703                     ;
00704                 }
00705                 {   int m6 = l - c; (void)m6; /* or, line 206 */
00706                     {   int ret = r_adjectival(); /* call adjectival, line 206 */
00707                         if (ret == 0) goto lab6;
00708                         if (ret < 0) return ret;
00709                     }
00710                     goto lab5;
00711                 lab6:
00712                     c = l - m6;
00713                     {   int ret = r_verb(); /* call verb, line 206 */
00714                         if (ret == 0) goto lab7;
00715                         if (ret < 0) return ret;
00716                     }
00717                     goto lab5;
00718                 lab7:
00719                     c = l - m6;
00720                     {   int ret = r_noun(); /* call noun, line 206 */
00721                         if (ret == 0) goto lab1;
00722                         if (ret < 0) return ret;
00723                     }
00724                 }
00725             lab5:
00726                 ;
00727             }
00728         lab2:
00729         lab1:
00730             c = l - m3;
00731         }
00732         {   int m7 = l - c; (void)m7; /* try, line 209 */
00733             ket = c; /* [, line 209 */
00734             if (!(eq_s_b(2, s_9))) { c = l - m7; goto lab8; } /* literal, line 209 */
00735             bra = c; /* ], line 209 */
00736             if (slice_del() == -1) return -1; /* delete, line 209 */
00737         lab8:
00738             ;
00739         }
00740         {   int m8 = l - c; (void)m8; /* do, line 212 */
00741             {   int ret = r_derivational(); /* call derivational, line 212 */
00742                 if (ret == 0) goto lab9;
00743                 if (ret < 0) return ret;
00744             }
00745         lab9:
00746             c = l - m8;
00747         }
00748         {   int m9 = l - c; (void)m9; /* do, line 213 */
00749             {   int ret = r_tidy_up(); /* call tidy_up, line 213 */
00750                 if (ret == 0) goto lab10;
00751                 if (ret < 0) return ret;
00752             }
00753         lab10:
00754             c = l - m9;
00755         }
00756         lb = mlimit2;
00757     }
00758     c = lb;
00759     return 1;
00760 }
00761 
00762 Xapian::InternalStemRussian::InternalStemRussian()
00763     : I_p2(0), I_pV(0)
00764 {
00765 }
00766 
00767 Xapian::InternalStemRussian::~InternalStemRussian()
00768 {
00769 }
00770 
00771 const char *
00772 Xapian::InternalStemRussian::get_description() const
00773 {
00774     return "russian";
00775 }

Documentation for Xapian (version 1.0.20).
Generated on 28 Apr 2010 by Doxygen 1.5.2.