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
;
8 * Generated class implementing code defined by a snowball script.
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 };
174 private void copy_from(russianStemmer other
) {
177 super.copy_from(other
);
180 private boolean r_mark_regions() {
193 if (!(in_grouping(g_v
, 1072, 1103)))
205 // setmark pV, line 62
211 if (!(out_grouping(g_v
, 1072, 1103)))
227 if (!(in_grouping(g_v
, 1072, 1103)))
243 if (!(out_grouping(g_v
, 1072, 1103)))
255 // setmark p2, line 63
262 private boolean r_R2() {
263 if (!(I_p2
<= cursor
))
270 private boolean r_perfective_gerund() {
276 // substring, line 72
277 among_var
= find_among_b(a_0
, 9);
291 v_1
= limit
- cursor
;
294 if (!(eq_s_b(1, "\u0430")))
300 cursor
= limit
- v_1
;
302 if (!(eq_s_b(1, "\u044F")))
319 private boolean r_adjective() {
324 // substring, line 88
325 among_var
= find_among_b(a_1
, 26);
344 private boolean r_adjectival() {
349 // call adjective, line 102
355 v_1
= limit
- cursor
;
360 // substring, line 110
361 among_var
= find_among_b(a_2
, 8);
364 cursor
= limit
- v_1
;
371 cursor
= limit
- v_1
;
377 v_2
= limit
- cursor
;
380 if (!(eq_s_b(1, "\u0430")))
386 cursor
= limit
- v_2
;
388 if (!(eq_s_b(1, "\u044F")))
390 cursor
= limit
- v_1
;
407 private boolean r_reflexive() {
412 // substring, line 129
413 among_var
= find_among_b(a_3
, 2);
432 private boolean r_verb() {
438 // substring, line 137
439 among_var
= find_among_b(a_4
, 46);
453 v_1
= limit
- cursor
;
456 if (!(eq_s_b(1, "\u0430")))
462 cursor
= limit
- v_1
;
464 if (!(eq_s_b(1, "\u044F")))
481 private boolean r_noun() {
486 // substring, line 160
487 among_var
= find_among_b(a_5
, 36);
506 private boolean r_derivational() {
511 // substring, line 176
512 among_var
= find_among_b(a_6
, 2);
536 private boolean r_tidy_up() {
541 // substring, line 184
542 among_var
= find_among_b(a_7
, 4);
559 if (!(eq_s_b(1, "\u043D")))
566 if (!(eq_s_b(1, "\u043D")))
576 if (!(eq_s_b(1, "\u043D")))
592 public boolean stem() {
607 // call mark_regions, line 201
608 if (!r_mark_regions())
614 // backwards, line 202
615 limit_backward
= cursor
; cursor
= limit
;
616 // setlimit, line 202
617 v_2
= limit
- cursor
;
624 v_3
= limit_backward
;
625 limit_backward
= cursor
;
626 cursor
= limit
- v_2
;
629 v_4
= limit
- cursor
;
634 v_5
= limit
- cursor
;
636 // call perfective_gerund, line 204
637 if (!r_perfective_gerund())
643 cursor
= limit
- v_5
;
646 v_6
= limit
- cursor
;
648 // call reflexive, line 205
651 cursor
= limit
- v_6
;
657 v_7
= limit
- cursor
;
659 // call adjectival, line 206
666 cursor
= limit
- v_7
;
668 // call verb, line 206
675 cursor
= limit
- v_7
;
676 // call noun, line 206
684 cursor
= limit
- v_4
;
686 v_8
= limit
- cursor
;
692 if (!(eq_s_b(1, "\u0438")))
694 cursor
= limit
- v_8
;
703 v_9
= limit
- cursor
;
705 // call derivational, line 212
706 if (!r_derivational())
711 cursor
= limit
- v_9
;
713 v_10
= limit
- cursor
;
715 // call tidy_up, line 213
721 cursor
= limit
- v_10
;
722 limit_backward
= v_3
;
723 cursor
= limit_backward
; return true;