Initial import into git.
[galago.git] / java / galago / src / org / tartarus / snowball / ext / russianStemmer.java
blob23ff6bcaf0e59118575330b70d754e50be7fe35b
1 // This file was generated automatically by the Snowball to Java compiler
3 package org.tartarus.snowball.ext;
4 import org.tartarus.snowball.SnowballProgram;
5 import org.tartarus.snowball.Among;
7 /**
8 * Generated class implementing code defined by a snowball script.
9 */
10 public class russianStemmer extends SnowballProgram {
12 private Among a_0[] = {
13 new Among ( "\u0432", -1, 1, "", this),
14 new Among ( "\u0438\u0432", 0, 2, "", this),
15 new Among ( "\u044B\u0432", 0, 2, "", this),
16 new Among ( "\u0432\u0448\u0438", -1, 1, "", this),
17 new Among ( "\u0438\u0432\u0448\u0438", 3, 2, "", this),
18 new Among ( "\u044B\u0432\u0448\u0438", 3, 2, "", this),
19 new Among ( "\u0432\u0448\u0438\u0441\u044C", -1, 1, "", this),
20 new Among ( "\u0438\u0432\u0448\u0438\u0441\u044C", 6, 2, "", this),
21 new Among ( "\u044B\u0432\u0448\u0438\u0441\u044C", 6, 2, "", this)
24 private Among a_1[] = {
25 new Among ( "\u0435\u0435", -1, 1, "", this),
26 new Among ( "\u0438\u0435", -1, 1, "", this),
27 new Among ( "\u043E\u0435", -1, 1, "", this),
28 new Among ( "\u044B\u0435", -1, 1, "", this),
29 new Among ( "\u0438\u043C\u0438", -1, 1, "", this),
30 new Among ( "\u044B\u043C\u0438", -1, 1, "", this),
31 new Among ( "\u0435\u0439", -1, 1, "", this),
32 new Among ( "\u0438\u0439", -1, 1, "", this),
33 new Among ( "\u043E\u0439", -1, 1, "", this),
34 new Among ( "\u044B\u0439", -1, 1, "", this),
35 new Among ( "\u0435\u043C", -1, 1, "", this),
36 new Among ( "\u0438\u043C", -1, 1, "", this),
37 new Among ( "\u043E\u043C", -1, 1, "", this),
38 new Among ( "\u044B\u043C", -1, 1, "", this),
39 new Among ( "\u0435\u0433\u043E", -1, 1, "", this),
40 new Among ( "\u043E\u0433\u043E", -1, 1, "", this),
41 new Among ( "\u0435\u043C\u0443", -1, 1, "", this),
42 new Among ( "\u043E\u043C\u0443", -1, 1, "", this),
43 new Among ( "\u0438\u0445", -1, 1, "", this),
44 new Among ( "\u044B\u0445", -1, 1, "", this),
45 new Among ( "\u0435\u044E", -1, 1, "", this),
46 new Among ( "\u043E\u044E", -1, 1, "", this),
47 new Among ( "\u0443\u044E", -1, 1, "", this),
48 new Among ( "\u044E\u044E", -1, 1, "", this),
49 new Among ( "\u0430\u044F", -1, 1, "", this),
50 new Among ( "\u044F\u044F", -1, 1, "", this)
53 private Among a_2[] = {
54 new Among ( "\u0435\u043C", -1, 1, "", this),
55 new Among ( "\u043D\u043D", -1, 1, "", this),
56 new Among ( "\u0432\u0448", -1, 1, "", this),
57 new Among ( "\u0438\u0432\u0448", 2, 2, "", this),
58 new Among ( "\u044B\u0432\u0448", 2, 2, "", this),
59 new Among ( "\u0449", -1, 1, "", this),
60 new Among ( "\u044E\u0449", 5, 1, "", this),
61 new Among ( "\u0443\u044E\u0449", 6, 2, "", this)
64 private Among a_3[] = {
65 new Among ( "\u0441\u044C", -1, 1, "", this),
66 new Among ( "\u0441\u044F", -1, 1, "", this)
69 private Among a_4[] = {
70 new Among ( "\u043B\u0430", -1, 1, "", this),
71 new Among ( "\u0438\u043B\u0430", 0, 2, "", this),
72 new Among ( "\u044B\u043B\u0430", 0, 2, "", this),
73 new Among ( "\u043D\u0430", -1, 1, "", this),
74 new Among ( "\u0435\u043D\u0430", 3, 2, "", this),
75 new Among ( "\u0435\u0442\u0435", -1, 1, "", this),
76 new Among ( "\u0438\u0442\u0435", -1, 2, "", this),
77 new Among ( "\u0439\u0442\u0435", -1, 1, "", this),
78 new Among ( "\u0435\u0439\u0442\u0435", 7, 2, "", this),
79 new Among ( "\u0443\u0439\u0442\u0435", 7, 2, "", this),
80 new Among ( "\u043B\u0438", -1, 1, "", this),
81 new Among ( "\u0438\u043B\u0438", 10, 2, "", this),
82 new Among ( "\u044B\u043B\u0438", 10, 2, "", this),
83 new Among ( "\u0439", -1, 1, "", this),
84 new Among ( "\u0435\u0439", 13, 2, "", this),
85 new Among ( "\u0443\u0439", 13, 2, "", this),
86 new Among ( "\u043B", -1, 1, "", this),
87 new Among ( "\u0438\u043B", 16, 2, "", this),
88 new Among ( "\u044B\u043B", 16, 2, "", this),
89 new Among ( "\u0435\u043C", -1, 1, "", this),
90 new Among ( "\u0438\u043C", -1, 2, "", this),
91 new Among ( "\u044B\u043C", -1, 2, "", this),
92 new Among ( "\u043D", -1, 1, "", this),
93 new Among ( "\u0435\u043D", 22, 2, "", this),
94 new Among ( "\u043B\u043E", -1, 1, "", this),
95 new Among ( "\u0438\u043B\u043E", 24, 2, "", this),
96 new Among ( "\u044B\u043B\u043E", 24, 2, "", this),
97 new Among ( "\u043D\u043E", -1, 1, "", this),
98 new Among ( "\u0435\u043D\u043E", 27, 2, "", this),
99 new Among ( "\u043D\u043D\u043E", 27, 1, "", this),
100 new Among ( "\u0435\u0442", -1, 1, "", this),
101 new Among ( "\u0443\u0435\u0442", 30, 2, "", this),
102 new Among ( "\u0438\u0442", -1, 2, "", this),
103 new Among ( "\u044B\u0442", -1, 2, "", this),
104 new Among ( "\u044E\u0442", -1, 1, "", this),
105 new Among ( "\u0443\u044E\u0442", 34, 2, "", this),
106 new Among ( "\u044F\u0442", -1, 2, "", this),
107 new Among ( "\u043D\u044B", -1, 1, "", this),
108 new Among ( "\u0435\u043D\u044B", 37, 2, "", this),
109 new Among ( "\u0442\u044C", -1, 1, "", this),
110 new Among ( "\u0438\u0442\u044C", 39, 2, "", this),
111 new Among ( "\u044B\u0442\u044C", 39, 2, "", this),
112 new Among ( "\u0435\u0448\u044C", -1, 1, "", this),
113 new Among ( "\u0438\u0448\u044C", -1, 2, "", this),
114 new Among ( "\u044E", -1, 2, "", this),
115 new Among ( "\u0443\u044E", 44, 2, "", this)
118 private Among a_5[] = {
119 new Among ( "\u0430", -1, 1, "", this),
120 new Among ( "\u0435\u0432", -1, 1, "", this),
121 new Among ( "\u043E\u0432", -1, 1, "", this),
122 new Among ( "\u0435", -1, 1, "", this),
123 new Among ( "\u0438\u0435", 3, 1, "", this),
124 new Among ( "\u044C\u0435", 3, 1, "", this),
125 new Among ( "\u0438", -1, 1, "", this),
126 new Among ( "\u0435\u0438", 6, 1, "", this),
127 new Among ( "\u0438\u0438", 6, 1, "", this),
128 new Among ( "\u0430\u043C\u0438", 6, 1, "", this),
129 new Among ( "\u044F\u043C\u0438", 6, 1, "", this),
130 new Among ( "\u0438\u044F\u043C\u0438", 10, 1, "", this),
131 new Among ( "\u0439", -1, 1, "", this),
132 new Among ( "\u0435\u0439", 12, 1, "", this),
133 new Among ( "\u0438\u0435\u0439", 13, 1, "", this),
134 new Among ( "\u0438\u0439", 12, 1, "", this),
135 new Among ( "\u043E\u0439", 12, 1, "", this),
136 new Among ( "\u0430\u043C", -1, 1, "", this),
137 new Among ( "\u0435\u043C", -1, 1, "", this),
138 new Among ( "\u0438\u0435\u043C", 18, 1, "", this),
139 new Among ( "\u043E\u043C", -1, 1, "", this),
140 new Among ( "\u044F\u043C", -1, 1, "", this),
141 new Among ( "\u0438\u044F\u043C", 21, 1, "", this),
142 new Among ( "\u043E", -1, 1, "", this),
143 new Among ( "\u0443", -1, 1, "", this),
144 new Among ( "\u0430\u0445", -1, 1, "", this),
145 new Among ( "\u044F\u0445", -1, 1, "", this),
146 new Among ( "\u0438\u044F\u0445", 26, 1, "", this),
147 new Among ( "\u044B", -1, 1, "", this),
148 new Among ( "\u044C", -1, 1, "", this),
149 new Among ( "\u044E", -1, 1, "", this),
150 new Among ( "\u0438\u044E", 30, 1, "", this),
151 new Among ( "\u044C\u044E", 30, 1, "", this),
152 new Among ( "\u044F", -1, 1, "", this),
153 new Among ( "\u0438\u044F", 33, 1, "", this),
154 new Among ( "\u044C\u044F", 33, 1, "", this)
157 private Among a_6[] = {
158 new Among ( "\u043E\u0441\u0442", -1, 1, "", this),
159 new Among ( "\u043E\u0441\u0442\u044C", -1, 1, "", this)
162 private Among a_7[] = {
163 new Among ( "\u0435\u0439\u0448\u0435", -1, 1, "", this),
164 new Among ( "\u043D", -1, 2, "", this),
165 new Among ( "\u0435\u0439\u0448", -1, 1, "", this),
166 new Among ( "\u044C", -1, 3, "", this)
169 private static final char g_v[] = {33, 65, 8, 232 };
171 private int I_p2;
172 private int I_pV;
174 private void copy_from(russianStemmer other) {
175 I_p2 = other.I_p2;
176 I_pV = other.I_pV;
177 super.copy_from(other);
180 private boolean r_mark_regions() {
181 int v_1;
182 // (, line 57
183 I_pV = limit;
184 I_p2 = limit;
185 // do, line 61
186 v_1 = cursor;
187 lab0: do {
188 // (, line 61
189 // gopast, line 62
190 golab1: while(true)
192 lab2: do {
193 if (!(in_grouping(g_v, 1072, 1103)))
195 break lab2;
197 break golab1;
198 } while (false);
199 if (cursor >= limit)
201 break lab0;
203 cursor++;
205 // setmark pV, line 62
206 I_pV = cursor;
207 // gopast, line 62
208 golab3: while(true)
210 lab4: do {
211 if (!(out_grouping(g_v, 1072, 1103)))
213 break lab4;
215 break golab3;
216 } while (false);
217 if (cursor >= limit)
219 break lab0;
221 cursor++;
223 // gopast, line 63
224 golab5: while(true)
226 lab6: do {
227 if (!(in_grouping(g_v, 1072, 1103)))
229 break lab6;
231 break golab5;
232 } while (false);
233 if (cursor >= limit)
235 break lab0;
237 cursor++;
239 // gopast, line 63
240 golab7: while(true)
242 lab8: do {
243 if (!(out_grouping(g_v, 1072, 1103)))
245 break lab8;
247 break golab7;
248 } while (false);
249 if (cursor >= limit)
251 break lab0;
253 cursor++;
255 // setmark p2, line 63
256 I_p2 = cursor;
257 } while (false);
258 cursor = v_1;
259 return true;
262 private boolean r_R2() {
263 if (!(I_p2 <= cursor))
265 return false;
267 return true;
270 private boolean r_perfective_gerund() {
271 int among_var;
272 int v_1;
273 // (, line 71
274 // [, line 72
275 ket = cursor;
276 // substring, line 72
277 among_var = find_among_b(a_0, 9);
278 if (among_var == 0)
280 return false;
282 // ], line 72
283 bra = cursor;
284 switch(among_var) {
285 case 0:
286 return false;
287 case 1:
288 // (, line 76
289 // or, line 76
290 lab0: do {
291 v_1 = limit - cursor;
292 lab1: do {
293 // literal, line 76
294 if (!(eq_s_b(1, "\u0430")))
296 break lab1;
298 break lab0;
299 } while (false);
300 cursor = limit - v_1;
301 // literal, line 76
302 if (!(eq_s_b(1, "\u044F")))
304 return false;
306 } while (false);
307 // delete, line 76
308 slice_del();
309 break;
310 case 2:
311 // (, line 83
312 // delete, line 83
313 slice_del();
314 break;
316 return true;
319 private boolean r_adjective() {
320 int among_var;
321 // (, line 87
322 // [, line 88
323 ket = cursor;
324 // substring, line 88
325 among_var = find_among_b(a_1, 26);
326 if (among_var == 0)
328 return false;
330 // ], line 88
331 bra = cursor;
332 switch(among_var) {
333 case 0:
334 return false;
335 case 1:
336 // (, line 97
337 // delete, line 97
338 slice_del();
339 break;
341 return true;
344 private boolean r_adjectival() {
345 int among_var;
346 int v_1;
347 int v_2;
348 // (, line 101
349 // call adjective, line 102
350 if (!r_adjective())
352 return false;
354 // try, line 109
355 v_1 = limit - cursor;
356 lab0: do {
357 // (, line 109
358 // [, line 110
359 ket = cursor;
360 // substring, line 110
361 among_var = find_among_b(a_2, 8);
362 if (among_var == 0)
364 cursor = limit - v_1;
365 break lab0;
367 // ], line 110
368 bra = cursor;
369 switch(among_var) {
370 case 0:
371 cursor = limit - v_1;
372 break lab0;
373 case 1:
374 // (, line 115
375 // or, line 115
376 lab1: do {
377 v_2 = limit - cursor;
378 lab2: do {
379 // literal, line 115
380 if (!(eq_s_b(1, "\u0430")))
382 break lab2;
384 break lab1;
385 } while (false);
386 cursor = limit - v_2;
387 // literal, line 115
388 if (!(eq_s_b(1, "\u044F")))
390 cursor = limit - v_1;
391 break lab0;
393 } while (false);
394 // delete, line 115
395 slice_del();
396 break;
397 case 2:
398 // (, line 122
399 // delete, line 122
400 slice_del();
401 break;
403 } while (false);
404 return true;
407 private boolean r_reflexive() {
408 int among_var;
409 // (, line 128
410 // [, line 129
411 ket = cursor;
412 // substring, line 129
413 among_var = find_among_b(a_3, 2);
414 if (among_var == 0)
416 return false;
418 // ], line 129
419 bra = cursor;
420 switch(among_var) {
421 case 0:
422 return false;
423 case 1:
424 // (, line 132
425 // delete, line 132
426 slice_del();
427 break;
429 return true;
432 private boolean r_verb() {
433 int among_var;
434 int v_1;
435 // (, line 136
436 // [, line 137
437 ket = cursor;
438 // substring, line 137
439 among_var = find_among_b(a_4, 46);
440 if (among_var == 0)
442 return false;
444 // ], line 137
445 bra = cursor;
446 switch(among_var) {
447 case 0:
448 return false;
449 case 1:
450 // (, line 143
451 // or, line 143
452 lab0: do {
453 v_1 = limit - cursor;
454 lab1: do {
455 // literal, line 143
456 if (!(eq_s_b(1, "\u0430")))
458 break lab1;
460 break lab0;
461 } while (false);
462 cursor = limit - v_1;
463 // literal, line 143
464 if (!(eq_s_b(1, "\u044F")))
466 return false;
468 } while (false);
469 // delete, line 143
470 slice_del();
471 break;
472 case 2:
473 // (, line 151
474 // delete, line 151
475 slice_del();
476 break;
478 return true;
481 private boolean r_noun() {
482 int among_var;
483 // (, line 159
484 // [, line 160
485 ket = cursor;
486 // substring, line 160
487 among_var = find_among_b(a_5, 36);
488 if (among_var == 0)
490 return false;
492 // ], line 160
493 bra = cursor;
494 switch(among_var) {
495 case 0:
496 return false;
497 case 1:
498 // (, line 167
499 // delete, line 167
500 slice_del();
501 break;
503 return true;
506 private boolean r_derivational() {
507 int among_var;
508 // (, line 175
509 // [, line 176
510 ket = cursor;
511 // substring, line 176
512 among_var = find_among_b(a_6, 2);
513 if (among_var == 0)
515 return false;
517 // ], line 176
518 bra = cursor;
519 // call R2, line 176
520 if (!r_R2())
522 return false;
524 switch(among_var) {
525 case 0:
526 return false;
527 case 1:
528 // (, line 179
529 // delete, line 179
530 slice_del();
531 break;
533 return true;
536 private boolean r_tidy_up() {
537 int among_var;
538 // (, line 183
539 // [, line 184
540 ket = cursor;
541 // substring, line 184
542 among_var = find_among_b(a_7, 4);
543 if (among_var == 0)
545 return false;
547 // ], line 184
548 bra = cursor;
549 switch(among_var) {
550 case 0:
551 return false;
552 case 1:
553 // (, line 188
554 // delete, line 188
555 slice_del();
556 // [, line 189
557 ket = cursor;
558 // literal, line 189
559 if (!(eq_s_b(1, "\u043D")))
561 return false;
563 // ], line 189
564 bra = cursor;
565 // literal, line 189
566 if (!(eq_s_b(1, "\u043D")))
568 return false;
570 // delete, line 189
571 slice_del();
572 break;
573 case 2:
574 // (, line 192
575 // literal, line 192
576 if (!(eq_s_b(1, "\u043D")))
578 return false;
580 // delete, line 192
581 slice_del();
582 break;
583 case 3:
584 // (, line 194
585 // delete, line 194
586 slice_del();
587 break;
589 return true;
592 public boolean stem() {
593 int v_1;
594 int v_2;
595 int v_3;
596 int v_4;
597 int v_5;
598 int v_6;
599 int v_7;
600 int v_8;
601 int v_9;
602 int v_10;
603 // (, line 199
604 // do, line 201
605 v_1 = cursor;
606 lab0: do {
607 // call mark_regions, line 201
608 if (!r_mark_regions())
610 break lab0;
612 } while (false);
613 cursor = v_1;
614 // backwards, line 202
615 limit_backward = cursor; cursor = limit;
616 // setlimit, line 202
617 v_2 = limit - cursor;
618 // tomark, line 202
619 if (cursor < I_pV)
621 return false;
623 cursor = I_pV;
624 v_3 = limit_backward;
625 limit_backward = cursor;
626 cursor = limit - v_2;
627 // (, line 202
628 // do, line 203
629 v_4 = limit - cursor;
630 lab1: do {
631 // (, line 203
632 // or, line 204
633 lab2: do {
634 v_5 = limit - cursor;
635 lab3: do {
636 // call perfective_gerund, line 204
637 if (!r_perfective_gerund())
639 break lab3;
641 break lab2;
642 } while (false);
643 cursor = limit - v_5;
644 // (, line 205
645 // try, line 205
646 v_6 = limit - cursor;
647 lab4: do {
648 // call reflexive, line 205
649 if (!r_reflexive())
651 cursor = limit - v_6;
652 break lab4;
654 } while (false);
655 // or, line 206
656 lab5: do {
657 v_7 = limit - cursor;
658 lab6: do {
659 // call adjectival, line 206
660 if (!r_adjectival())
662 break lab6;
664 break lab5;
665 } while (false);
666 cursor = limit - v_7;
667 lab7: do {
668 // call verb, line 206
669 if (!r_verb())
671 break lab7;
673 break lab5;
674 } while (false);
675 cursor = limit - v_7;
676 // call noun, line 206
677 if (!r_noun())
679 break lab1;
681 } while (false);
682 } while (false);
683 } while (false);
684 cursor = limit - v_4;
685 // try, line 209
686 v_8 = limit - cursor;
687 lab8: do {
688 // (, line 209
689 // [, line 209
690 ket = cursor;
691 // literal, line 209
692 if (!(eq_s_b(1, "\u0438")))
694 cursor = limit - v_8;
695 break lab8;
697 // ], line 209
698 bra = cursor;
699 // delete, line 209
700 slice_del();
701 } while (false);
702 // do, line 212
703 v_9 = limit - cursor;
704 lab9: do {
705 // call derivational, line 212
706 if (!r_derivational())
708 break lab9;
710 } while (false);
711 cursor = limit - v_9;
712 // do, line 213
713 v_10 = limit - cursor;
714 lab10: do {
715 // call tidy_up, line 213
716 if (!r_tidy_up())
718 break lab10;
720 } while (false);
721 cursor = limit - v_10;
722 limit_backward = v_3;
723 cursor = limit_backward; return true;