9 using System.Collections.Generic;
12 namespace TraceLab.Components.DevelopmentKit.Preprocessors.Stemmers.Snowball.Languages
21 private readonly
static Among[] a_0 =
23 new Among (
"\u0432", -1, 1, null ),
24 new Among (
"\u0438\u0432", 0, 2, null ),
25 new Among (
"\u044B\u0432", 0, 2, null ),
26 new Among (
"\u0432\u0448\u0438", -1, 1, null ),
27 new Among (
"\u0438\u0432\u0448\u0438", 3, 2, null ),
28 new Among (
"\u044B\u0432\u0448\u0438", 3, 2, null ),
29 new Among (
"\u0432\u0448\u0438\u0441\u044C", -1, 1, null ),
30 new Among (
"\u0438\u0432\u0448\u0438\u0441\u044C", 6, 2, null ),
31 new Among (
"\u044B\u0432\u0448\u0438\u0441\u044C", 6, 2, null )
35 private readonly
static Among[] a_1 =
37 new Among (
"\u0435\u0435", -1, 1, null ),
38 new Among (
"\u0438\u0435", -1, 1, null ),
39 new Among (
"\u043E\u0435", -1, 1, null ),
40 new Among (
"\u044B\u0435", -1, 1, null ),
41 new Among (
"\u0438\u043C\u0438", -1, 1, null ),
42 new Among (
"\u044B\u043C\u0438", -1, 1, null ),
43 new Among (
"\u0435\u0439", -1, 1, null ),
44 new Among (
"\u0438\u0439", -1, 1, null ),
45 new Among (
"\u043E\u0439", -1, 1, null ),
46 new Among (
"\u044B\u0439", -1, 1, null ),
47 new Among (
"\u0435\u043C", -1, 1, null ),
48 new Among (
"\u0438\u043C", -1, 1, null ),
49 new Among (
"\u043E\u043C", -1, 1, null ),
50 new Among (
"\u044B\u043C", -1, 1, null ),
51 new Among (
"\u0435\u0433\u043E", -1, 1, null ),
52 new Among (
"\u043E\u0433\u043E", -1, 1, null ),
53 new Among (
"\u0435\u043C\u0443", -1, 1, null ),
54 new Among (
"\u043E\u043C\u0443", -1, 1, null ),
55 new Among (
"\u0438\u0445", -1, 1, null ),
56 new Among (
"\u044B\u0445", -1, 1, null ),
57 new Among (
"\u0435\u044E", -1, 1, null ),
58 new Among (
"\u043E\u044E", -1, 1, null ),
59 new Among (
"\u0443\u044E", -1, 1, null ),
60 new Among (
"\u044E\u044E", -1, 1, null ),
61 new Among (
"\u0430\u044F", -1, 1, null ),
62 new Among (
"\u044F\u044F", -1, 1, null )
65 private readonly
static Among[] a_2 =
67 new Among (
"\u0435\u043C", -1, 1, null ),
68 new Among (
"\u043D\u043D", -1, 1, null ),
69 new Among (
"\u0432\u0448", -1, 1, null ),
70 new Among (
"\u0438\u0432\u0448", 2, 2, null ),
71 new Among (
"\u044B\u0432\u0448", 2, 2, null ),
72 new Among (
"\u0449", -1, 1, null ),
73 new Among (
"\u044E\u0449", 5, 1, null ),
74 new Among (
"\u0443\u044E\u0449", 6, 2, null )
78 private readonly
static Among[] a_3 =
80 new Among (
"\u0441\u044C", -1, 1, null ),
81 new Among (
"\u0441\u044F", -1, 1, null )
85 private readonly
static Among[] a_4 =
87 new Among (
"\u043B\u0430", -1, 1, null ),
88 new Among (
"\u0438\u043B\u0430", 0, 2, null ),
89 new Among (
"\u044B\u043B\u0430", 0, 2, null ),
90 new Among (
"\u043D\u0430", -1, 1, null ),
91 new Among (
"\u0435\u043D\u0430", 3, 2, null ),
92 new Among (
"\u0435\u0442\u0435", -1, 1, null ),
93 new Among (
"\u0438\u0442\u0435", -1, 2, null ),
94 new Among (
"\u0439\u0442\u0435", -1, 1, null ),
95 new Among (
"\u0435\u0439\u0442\u0435", 7, 2, null ),
96 new Among (
"\u0443\u0439\u0442\u0435", 7, 2, null ),
97 new Among (
"\u043B\u0438", -1, 1, null ),
98 new Among (
"\u0438\u043B\u0438", 10, 2, null ),
99 new Among (
"\u044B\u043B\u0438", 10, 2, null ),
100 new Among (
"\u0439", -1, 1, null ),
101 new Among (
"\u0435\u0439", 13, 2, null ),
102 new Among (
"\u0443\u0439", 13, 2, null ),
103 new Among (
"\u043B", -1, 1, null ),
104 new Among (
"\u0438\u043B", 16, 2, null ),
105 new Among (
"\u044B\u043B", 16, 2, null ),
106 new Among (
"\u0435\u043C", -1, 1, null ),
107 new Among (
"\u0438\u043C", -1, 2, null ),
108 new Among (
"\u044B\u043C", -1, 2, null ),
109 new Among (
"\u043D", -1, 1, null ),
110 new Among (
"\u0435\u043D", 22, 2, null ),
111 new Among (
"\u043B\u043E", -1, 1, null ),
112 new Among (
"\u0438\u043B\u043E", 24, 2, null ),
113 new Among (
"\u044B\u043B\u043E", 24, 2, null ),
114 new Among (
"\u043D\u043E", -1, 1, null ),
115 new Among (
"\u0435\u043D\u043E", 27, 2, null ),
116 new Among (
"\u043D\u043D\u043E", 27, 1, null ),
117 new Among (
"\u0435\u0442", -1, 1, null ),
118 new Among (
"\u0443\u0435\u0442", 30, 2, null ),
119 new Among (
"\u0438\u0442", -1, 2, null ),
120 new Among (
"\u044B\u0442", -1, 2, null ),
121 new Among (
"\u044E\u0442", -1, 1, null ),
122 new Among (
"\u0443\u044E\u0442", 34, 2, null ),
123 new Among (
"\u044F\u0442", -1, 2, null ),
124 new Among (
"\u043D\u044B", -1, 1, null ),
125 new Among (
"\u0435\u043D\u044B", 37, 2, null ),
126 new Among (
"\u0442\u044C", -1, 1, null ),
127 new Among (
"\u0438\u0442\u044C", 39, 2, null ),
128 new Among (
"\u044B\u0442\u044C", 39, 2, null ),
129 new Among (
"\u0435\u0448\u044C", -1, 1, null ),
130 new Among (
"\u0438\u0448\u044C", -1, 2, null ),
131 new Among (
"\u044E", -1, 2, null ),
132 new Among (
"\u0443\u044E", 44, 2, null )
136 private readonly
static Among[] a_5 =
138 new Among (
"\u0430", -1, 1, null ),
139 new Among (
"\u0435\u0432", -1, 1, null ),
140 new Among (
"\u043E\u0432", -1, 1, null ),
141 new Among (
"\u0435", -1, 1, null ),
142 new Among (
"\u0438\u0435", 3, 1, null ),
143 new Among (
"\u044C\u0435", 3, 1, null ),
144 new Among (
"\u0438", -1, 1, null ),
145 new Among (
"\u0435\u0438", 6, 1, null ),
146 new Among (
"\u0438\u0438", 6, 1, null ),
147 new Among (
"\u0430\u043C\u0438", 6, 1, null ),
148 new Among (
"\u044F\u043C\u0438", 6, 1, null ),
149 new Among (
"\u0438\u044F\u043C\u0438", 10, 1, null ),
150 new Among (
"\u0439", -1, 1, null ),
151 new Among (
"\u0435\u0439", 12, 1, null ),
152 new Among (
"\u0438\u0435\u0439", 13, 1, null ),
153 new Among (
"\u0438\u0439", 12, 1, null ),
154 new Among (
"\u043E\u0439", 12, 1, null ),
155 new Among (
"\u0430\u043C", -1, 1, null ),
156 new Among (
"\u0435\u043C", -1, 1, null ),
157 new Among (
"\u0438\u0435\u043C", 18, 1, null ),
158 new Among (
"\u043E\u043C", -1, 1, null ),
159 new Among (
"\u044F\u043C", -1, 1, null ),
160 new Among (
"\u0438\u044F\u043C", 21, 1, null ),
161 new Among (
"\u043E", -1, 1, null ),
162 new Among (
"\u0443", -1, 1, null ),
163 new Among (
"\u0430\u0445", -1, 1, null ),
164 new Among (
"\u044F\u0445", -1, 1, null ),
165 new Among (
"\u0438\u044F\u0445", 26, 1, null ),
166 new Among (
"\u044B", -1, 1, null ),
167 new Among (
"\u044C", -1, 1, null ),
168 new Among (
"\u044E", -1, 1, null ),
169 new Among (
"\u0438\u044E", 30, 1, null ),
170 new Among (
"\u044C\u044E", 30, 1, null ),
171 new Among (
"\u044F", -1, 1, null ),
172 new Among (
"\u0438\u044F", 33, 1, null ),
173 new Among (
"\u044C\u044F", 33, 1, null )
177 private readonly
static Among[] a_6 =
179 new Among (
"\u043E\u0441\u0442", -1, 1, null ),
180 new Among (
"\u043E\u0441\u0442\u044C", -1, 1, null )
184 private readonly
static Among[] a_7 =
186 new Among (
"\u0435\u0439\u0448\u0435", -1, 1, null ),
187 new Among (
"\u043D", -1, 2, null ),
188 new Among (
"\u0435\u0439\u0448", -1, 1, null ),
189 new Among (
"\u044C", -1, 3, null )
193 private static readonly
char[] g_v = { (char)33, (
char)65, (char)8, (
char)232 };
207 private bool r_mark_regions()
210 bool subroot =
false;
231 if (!(in_grouping(g_v, 1072, 1103)))
260 if (!(out_grouping(g_v, 1072, 1103)))
286 if (!(in_grouping(g_v, 1072, 1103)))
311 if (!(out_grouping(g_v, 1072, 1103)))
338 if (!(I_p2 <= cursor))
345 private bool r_perfective_gerund()
347 bool subroot =
false;
354 among_var = find_among_b(a_0, 9);
370 v_1 = limit - cursor;
374 if (!(eq_s_b(1,
"\u0430")))
383 cursor = limit - v_1;
385 if (!(eq_s_b(1,
"\u044F")))
402 private bool r_adjective()
409 among_var = find_among_b(a_1, 26);
429 private bool r_adjectival()
432 bool subroot =
false;
443 v_1 = limit - cursor;
450 among_var = find_among_b(a_2, 8);
453 cursor = limit - v_1;
461 cursor = limit - v_1;
468 v_2 = limit - cursor;
472 if (!(eq_s_b(1,
"\u0430")))
480 cursor = limit - v_2;
482 if (!(eq_s_b(1,
"\u044F")))
484 cursor = limit - v_1;
497 default: root =
true;
break;
504 private bool r_reflexive()
511 among_var = find_among_b(a_3, 2);
531 private bool r_verb()
533 bool subroot =
false;
540 among_var = find_among_b(a_4, 46);
556 v_1 = limit - cursor;
560 if (!(eq_s_b(1,
"\u0430")))
570 cursor = limit - v_1;
572 if (!(eq_s_b(1,
"\u044F")))
589 private bool r_noun()
596 among_var = find_among_b(a_5, 36);
616 private bool r_derivational()
623 among_var = find_among_b(a_6, 2);
648 private bool r_tidy_up()
655 among_var = find_among_b(a_7, 4);
673 if (!(eq_s_b(1,
"\u043D")))
680 if (!(eq_s_b(1,
"\u043D")))
690 if (!(eq_s_b(1,
"\u043D")))
713 bool subroot =
false;
730 if (!r_mark_regions())
737 limit_backward = cursor; cursor = limit;
739 v_2 = limit - cursor;
746 v_3 = limit_backward;
747 limit_backward = cursor;
748 cursor = limit - v_2;
751 v_4 = limit - cursor;
758 v_5 = limit - cursor;
762 if (!r_perfective_gerund())
771 cursor = limit - v_5;
774 v_6 = limit - cursor;
780 cursor = limit - v_6;
788 v_7 = limit - cursor;
802 cursor = limit - v_7;
816 cursor = limit - v_7;
830 cursor = limit - v_4;
836 v_8 = limit - cursor;
843 if (!(eq_s_b(1,
"\u0438")))
845 cursor = limit - v_8;
854 v_9 = limit - cursor;
858 if (!r_derivational())
863 cursor = limit - v_9;
865 v_10 = limit - cursor;
874 cursor = limit - v_10;
875 limit_backward = v_3;
876 cursor = limit_backward;
887 this.setCurrent(s.ToLowerInvariant());
889 return this.getCurrent();