2 /* This file was generated automatically by the Snowball to ANSI C compiler */
9 extern int russian_UTF_8_stem(struct SN_env
* z
);
13 static int r_tidy_up(struct SN_env
* z
);
14 static int r_derivational(struct SN_env
* z
);
15 static int r_noun(struct SN_env
* z
);
16 static int r_verb(struct SN_env
* z
);
17 static int r_reflexive(struct SN_env
* z
);
18 static int r_adjectival(struct SN_env
* z
);
19 static int r_adjective(struct SN_env
* z
);
20 static int r_perfective_gerund(struct SN_env
* z
);
21 static int r_R2(struct SN_env
* z
);
22 static int r_mark_regions(struct SN_env
* z
);
28 extern struct SN_env
* russian_UTF_8_create_env(void);
29 extern void russian_UTF_8_close_env(struct SN_env
* z
);
35 static const symbol s_0_0
[10] = { 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C };
36 static const symbol s_0_1
[12] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C };
37 static const symbol s_0_2
[12] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C };
38 static const symbol s_0_3
[2] = { 0xD0, 0xB2 };
39 static const symbol s_0_4
[4] = { 0xD1, 0x8B, 0xD0, 0xB2 };
40 static const symbol s_0_5
[4] = { 0xD0, 0xB8, 0xD0, 0xB2 };
41 static const symbol s_0_6
[6] = { 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 };
42 static const symbol s_0_7
[8] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 };
43 static const symbol s_0_8
[8] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 };
45 static const struct among a_0
[9] =
47 /* 0 */ { 10, s_0_0
, -1, 1, 0},
48 /* 1 */ { 12, s_0_1
, 0, 2, 0},
49 /* 2 */ { 12, s_0_2
, 0, 2, 0},
50 /* 3 */ { 2, s_0_3
, -1, 1, 0},
51 /* 4 */ { 4, s_0_4
, 3, 2, 0},
52 /* 5 */ { 4, s_0_5
, 3, 2, 0},
53 /* 6 */ { 6, s_0_6
, -1, 1, 0},
54 /* 7 */ { 8, s_0_7
, 6, 2, 0},
55 /* 8 */ { 8, s_0_8
, 6, 2, 0}
58 static const symbol s_1_0
[6] = { 0xD0, 0xB5, 0xD0, 0xBC, 0xD1, 0x83 };
59 static const symbol s_1_1
[6] = { 0xD0, 0xBE, 0xD0, 0xBC, 0xD1, 0x83 };
60 static const symbol s_1_2
[4] = { 0xD1, 0x8B, 0xD1, 0x85 };
61 static const symbol s_1_3
[4] = { 0xD0, 0xB8, 0xD1, 0x85 };
62 static const symbol s_1_4
[4] = { 0xD1, 0x83, 0xD1, 0x8E };
63 static const symbol s_1_5
[4] = { 0xD1, 0x8E, 0xD1, 0x8E };
64 static const symbol s_1_6
[4] = { 0xD0, 0xB5, 0xD1, 0x8E };
65 static const symbol s_1_7
[4] = { 0xD0, 0xBE, 0xD1, 0x8E };
66 static const symbol s_1_8
[4] = { 0xD1, 0x8F, 0xD1, 0x8F };
67 static const symbol s_1_9
[4] = { 0xD0, 0xB0, 0xD1, 0x8F };
68 static const symbol s_1_10
[4] = { 0xD1, 0x8B, 0xD0, 0xB5 };
69 static const symbol s_1_11
[4] = { 0xD0, 0xB5, 0xD0, 0xB5 };
70 static const symbol s_1_12
[4] = { 0xD0, 0xB8, 0xD0, 0xB5 };
71 static const symbol s_1_13
[4] = { 0xD0, 0xBE, 0xD0, 0xB5 };
72 static const symbol s_1_14
[6] = { 0xD1, 0x8B, 0xD0, 0xBC, 0xD0, 0xB8 };
73 static const symbol s_1_15
[6] = { 0xD0, 0xB8, 0xD0, 0xBC, 0xD0, 0xB8 };
74 static const symbol s_1_16
[4] = { 0xD1, 0x8B, 0xD0, 0xB9 };
75 static const symbol s_1_17
[4] = { 0xD0, 0xB5, 0xD0, 0xB9 };
76 static const symbol s_1_18
[4] = { 0xD0, 0xB8, 0xD0, 0xB9 };
77 static const symbol s_1_19
[4] = { 0xD0, 0xBE, 0xD0, 0xB9 };
78 static const symbol s_1_20
[4] = { 0xD1, 0x8B, 0xD0, 0xBC };
79 static const symbol s_1_21
[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
80 static const symbol s_1_22
[4] = { 0xD0, 0xB8, 0xD0, 0xBC };
81 static const symbol s_1_23
[4] = { 0xD0, 0xBE, 0xD0, 0xBC };
82 static const symbol s_1_24
[6] = { 0xD0, 0xB5, 0xD0, 0xB3, 0xD0, 0xBE };
83 static const symbol s_1_25
[6] = { 0xD0, 0xBE, 0xD0, 0xB3, 0xD0, 0xBE };
85 static const struct among a_1
[26] =
87 /* 0 */ { 6, s_1_0
, -1, 1, 0},
88 /* 1 */ { 6, s_1_1
, -1, 1, 0},
89 /* 2 */ { 4, s_1_2
, -1, 1, 0},
90 /* 3 */ { 4, s_1_3
, -1, 1, 0},
91 /* 4 */ { 4, s_1_4
, -1, 1, 0},
92 /* 5 */ { 4, s_1_5
, -1, 1, 0},
93 /* 6 */ { 4, s_1_6
, -1, 1, 0},
94 /* 7 */ { 4, s_1_7
, -1, 1, 0},
95 /* 8 */ { 4, s_1_8
, -1, 1, 0},
96 /* 9 */ { 4, s_1_9
, -1, 1, 0},
97 /* 10 */ { 4, s_1_10
, -1, 1, 0},
98 /* 11 */ { 4, s_1_11
, -1, 1, 0},
99 /* 12 */ { 4, s_1_12
, -1, 1, 0},
100 /* 13 */ { 4, s_1_13
, -1, 1, 0},
101 /* 14 */ { 6, s_1_14
, -1, 1, 0},
102 /* 15 */ { 6, s_1_15
, -1, 1, 0},
103 /* 16 */ { 4, s_1_16
, -1, 1, 0},
104 /* 17 */ { 4, s_1_17
, -1, 1, 0},
105 /* 18 */ { 4, s_1_18
, -1, 1, 0},
106 /* 19 */ { 4, s_1_19
, -1, 1, 0},
107 /* 20 */ { 4, s_1_20
, -1, 1, 0},
108 /* 21 */ { 4, s_1_21
, -1, 1, 0},
109 /* 22 */ { 4, s_1_22
, -1, 1, 0},
110 /* 23 */ { 4, s_1_23
, -1, 1, 0},
111 /* 24 */ { 6, s_1_24
, -1, 1, 0},
112 /* 25 */ { 6, s_1_25
, -1, 1, 0}
115 static const symbol s_2_0
[4] = { 0xD0, 0xB2, 0xD1, 0x88 };
116 static const symbol s_2_1
[6] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88 };
117 static const symbol s_2_2
[6] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88 };
118 static const symbol s_2_3
[2] = { 0xD1, 0x89 };
119 static const symbol s_2_4
[4] = { 0xD1, 0x8E, 0xD1, 0x89 };
120 static const symbol s_2_5
[6] = { 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x89 };
121 static const symbol s_2_6
[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
122 static const symbol s_2_7
[4] = { 0xD0, 0xBD, 0xD0, 0xBD };
124 static const struct among a_2
[8] =
126 /* 0 */ { 4, s_2_0
, -1, 1, 0},
127 /* 1 */ { 6, s_2_1
, 0, 2, 0},
128 /* 2 */ { 6, s_2_2
, 0, 2, 0},
129 /* 3 */ { 2, s_2_3
, -1, 1, 0},
130 /* 4 */ { 4, s_2_4
, 3, 1, 0},
131 /* 5 */ { 6, s_2_5
, 4, 2, 0},
132 /* 6 */ { 4, s_2_6
, -1, 1, 0},
133 /* 7 */ { 4, s_2_7
, -1, 1, 0}
136 static const symbol s_3_0
[4] = { 0xD1, 0x81, 0xD1, 0x8C };
137 static const symbol s_3_1
[4] = { 0xD1, 0x81, 0xD1, 0x8F };
139 static const struct among a_3
[2] =
141 /* 0 */ { 4, s_3_0
, -1, 1, 0},
142 /* 1 */ { 4, s_3_1
, -1, 1, 0}
145 static const symbol s_4_0
[4] = { 0xD1, 0x8B, 0xD1, 0x82 };
146 static const symbol s_4_1
[4] = { 0xD1, 0x8E, 0xD1, 0x82 };
147 static const symbol s_4_2
[6] = { 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x82 };
148 static const symbol s_4_3
[4] = { 0xD1, 0x8F, 0xD1, 0x82 };
149 static const symbol s_4_4
[4] = { 0xD0, 0xB5, 0xD1, 0x82 };
150 static const symbol s_4_5
[6] = { 0xD1, 0x83, 0xD0, 0xB5, 0xD1, 0x82 };
151 static const symbol s_4_6
[4] = { 0xD0, 0xB8, 0xD1, 0x82 };
152 static const symbol s_4_7
[4] = { 0xD0, 0xBD, 0xD1, 0x8B };
153 static const symbol s_4_8
[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD1, 0x8B };
154 static const symbol s_4_9
[4] = { 0xD1, 0x82, 0xD1, 0x8C };
155 static const symbol s_4_10
[6] = { 0xD1, 0x8B, 0xD1, 0x82, 0xD1, 0x8C };
156 static const symbol s_4_11
[6] = { 0xD0, 0xB8, 0xD1, 0x82, 0xD1, 0x8C };
157 static const symbol s_4_12
[6] = { 0xD0, 0xB5, 0xD1, 0x88, 0xD1, 0x8C };
158 static const symbol s_4_13
[6] = { 0xD0, 0xB8, 0xD1, 0x88, 0xD1, 0x8C };
159 static const symbol s_4_14
[2] = { 0xD1, 0x8E };
160 static const symbol s_4_15
[4] = { 0xD1, 0x83, 0xD1, 0x8E };
161 static const symbol s_4_16
[4] = { 0xD0, 0xBB, 0xD0, 0xB0 };
162 static const symbol s_4_17
[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB0 };
163 static const symbol s_4_18
[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB0 };
164 static const symbol s_4_19
[4] = { 0xD0, 0xBD, 0xD0, 0xB0 };
165 static const symbol s_4_20
[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xB0 };
166 static const symbol s_4_21
[6] = { 0xD0, 0xB5, 0xD1, 0x82, 0xD0, 0xB5 };
167 static const symbol s_4_22
[6] = { 0xD0, 0xB8, 0xD1, 0x82, 0xD0, 0xB5 };
168 static const symbol s_4_23
[6] = { 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 };
169 static const symbol s_4_24
[8] = { 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 };
170 static const symbol s_4_25
[8] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 };
171 static const symbol s_4_26
[4] = { 0xD0, 0xBB, 0xD0, 0xB8 };
172 static const symbol s_4_27
[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB8 };
173 static const symbol s_4_28
[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB8 };
174 static const symbol s_4_29
[2] = { 0xD0, 0xB9 };
175 static const symbol s_4_30
[4] = { 0xD1, 0x83, 0xD0, 0xB9 };
176 static const symbol s_4_31
[4] = { 0xD0, 0xB5, 0xD0, 0xB9 };
177 static const symbol s_4_32
[2] = { 0xD0, 0xBB };
178 static const symbol s_4_33
[4] = { 0xD1, 0x8B, 0xD0, 0xBB };
179 static const symbol s_4_34
[4] = { 0xD0, 0xB8, 0xD0, 0xBB };
180 static const symbol s_4_35
[4] = { 0xD1, 0x8B, 0xD0, 0xBC };
181 static const symbol s_4_36
[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
182 static const symbol s_4_37
[4] = { 0xD0, 0xB8, 0xD0, 0xBC };
183 static const symbol s_4_38
[2] = { 0xD0, 0xBD };
184 static const symbol s_4_39
[4] = { 0xD0, 0xB5, 0xD0, 0xBD };
185 static const symbol s_4_40
[4] = { 0xD0, 0xBB, 0xD0, 0xBE };
186 static const symbol s_4_41
[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xBE };
187 static const symbol s_4_42
[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xBE };
188 static const symbol s_4_43
[4] = { 0xD0, 0xBD, 0xD0, 0xBE };
189 static const symbol s_4_44
[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xBE };
190 static const symbol s_4_45
[6] = { 0xD0, 0xBD, 0xD0, 0xBD, 0xD0, 0xBE };
192 static const struct among a_4
[46] =
194 /* 0 */ { 4, s_4_0
, -1, 2, 0},
195 /* 1 */ { 4, s_4_1
, -1, 1, 0},
196 /* 2 */ { 6, s_4_2
, 1, 2, 0},
197 /* 3 */ { 4, s_4_3
, -1, 2, 0},
198 /* 4 */ { 4, s_4_4
, -1, 1, 0},
199 /* 5 */ { 6, s_4_5
, 4, 2, 0},
200 /* 6 */ { 4, s_4_6
, -1, 2, 0},
201 /* 7 */ { 4, s_4_7
, -1, 1, 0},
202 /* 8 */ { 6, s_4_8
, 7, 2, 0},
203 /* 9 */ { 4, s_4_9
, -1, 1, 0},
204 /* 10 */ { 6, s_4_10
, 9, 2, 0},
205 /* 11 */ { 6, s_4_11
, 9, 2, 0},
206 /* 12 */ { 6, s_4_12
, -1, 1, 0},
207 /* 13 */ { 6, s_4_13
, -1, 2, 0},
208 /* 14 */ { 2, s_4_14
, -1, 2, 0},
209 /* 15 */ { 4, s_4_15
, 14, 2, 0},
210 /* 16 */ { 4, s_4_16
, -1, 1, 0},
211 /* 17 */ { 6, s_4_17
, 16, 2, 0},
212 /* 18 */ { 6, s_4_18
, 16, 2, 0},
213 /* 19 */ { 4, s_4_19
, -1, 1, 0},
214 /* 20 */ { 6, s_4_20
, 19, 2, 0},
215 /* 21 */ { 6, s_4_21
, -1, 1, 0},
216 /* 22 */ { 6, s_4_22
, -1, 2, 0},
217 /* 23 */ { 6, s_4_23
, -1, 1, 0},
218 /* 24 */ { 8, s_4_24
, 23, 2, 0},
219 /* 25 */ { 8, s_4_25
, 23, 2, 0},
220 /* 26 */ { 4, s_4_26
, -1, 1, 0},
221 /* 27 */ { 6, s_4_27
, 26, 2, 0},
222 /* 28 */ { 6, s_4_28
, 26, 2, 0},
223 /* 29 */ { 2, s_4_29
, -1, 1, 0},
224 /* 30 */ { 4, s_4_30
, 29, 2, 0},
225 /* 31 */ { 4, s_4_31
, 29, 2, 0},
226 /* 32 */ { 2, s_4_32
, -1, 1, 0},
227 /* 33 */ { 4, s_4_33
, 32, 2, 0},
228 /* 34 */ { 4, s_4_34
, 32, 2, 0},
229 /* 35 */ { 4, s_4_35
, -1, 2, 0},
230 /* 36 */ { 4, s_4_36
, -1, 1, 0},
231 /* 37 */ { 4, s_4_37
, -1, 2, 0},
232 /* 38 */ { 2, s_4_38
, -1, 1, 0},
233 /* 39 */ { 4, s_4_39
, 38, 2, 0},
234 /* 40 */ { 4, s_4_40
, -1, 1, 0},
235 /* 41 */ { 6, s_4_41
, 40, 2, 0},
236 /* 42 */ { 6, s_4_42
, 40, 2, 0},
237 /* 43 */ { 4, s_4_43
, -1, 1, 0},
238 /* 44 */ { 6, s_4_44
, 43, 2, 0},
239 /* 45 */ { 6, s_4_45
, 43, 1, 0}
242 static const symbol s_5_0
[2] = { 0xD1, 0x83 };
243 static const symbol s_5_1
[4] = { 0xD1, 0x8F, 0xD1, 0x85 };
244 static const symbol s_5_2
[6] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD1, 0x85 };
245 static const symbol s_5_3
[4] = { 0xD0, 0xB0, 0xD1, 0x85 };
246 static const symbol s_5_4
[2] = { 0xD1, 0x8B };
247 static const symbol s_5_5
[2] = { 0xD1, 0x8C };
248 static const symbol s_5_6
[2] = { 0xD1, 0x8E };
249 static const symbol s_5_7
[4] = { 0xD1, 0x8C, 0xD1, 0x8E };
250 static const symbol s_5_8
[4] = { 0xD0, 0xB8, 0xD1, 0x8E };
251 static const symbol s_5_9
[2] = { 0xD1, 0x8F };
252 static const symbol s_5_10
[4] = { 0xD1, 0x8C, 0xD1, 0x8F };
253 static const symbol s_5_11
[4] = { 0xD0, 0xB8, 0xD1, 0x8F };
254 static const symbol s_5_12
[2] = { 0xD0, 0xB0 };
255 static const symbol s_5_13
[4] = { 0xD0, 0xB5, 0xD0, 0xB2 };
256 static const symbol s_5_14
[4] = { 0xD0, 0xBE, 0xD0, 0xB2 };
257 static const symbol s_5_15
[2] = { 0xD0, 0xB5 };
258 static const symbol s_5_16
[4] = { 0xD1, 0x8C, 0xD0, 0xB5 };
259 static const symbol s_5_17
[4] = { 0xD0, 0xB8, 0xD0, 0xB5 };
260 static const symbol s_5_18
[2] = { 0xD0, 0xB8 };
261 static const symbol s_5_19
[4] = { 0xD0, 0xB5, 0xD0, 0xB8 };
262 static const symbol s_5_20
[4] = { 0xD0, 0xB8, 0xD0, 0xB8 };
263 static const symbol s_5_21
[6] = { 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8 };
264 static const symbol s_5_22
[8] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8 };
265 static const symbol s_5_23
[6] = { 0xD0, 0xB0, 0xD0, 0xBC, 0xD0, 0xB8 };
266 static const symbol s_5_24
[2] = { 0xD0, 0xB9 };
267 static const symbol s_5_25
[4] = { 0xD0, 0xB5, 0xD0, 0xB9 };
268 static const symbol s_5_26
[6] = { 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xB9 };
269 static const symbol s_5_27
[4] = { 0xD0, 0xB8, 0xD0, 0xB9 };
270 static const symbol s_5_28
[4] = { 0xD0, 0xBE, 0xD0, 0xB9 };
271 static const symbol s_5_29
[4] = { 0xD1, 0x8F, 0xD0, 0xBC };
272 static const symbol s_5_30
[6] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC };
273 static const symbol s_5_31
[4] = { 0xD0, 0xB0, 0xD0, 0xBC };
274 static const symbol s_5_32
[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
275 static const symbol s_5_33
[6] = { 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xBC };
276 static const symbol s_5_34
[4] = { 0xD0, 0xBE, 0xD0, 0xBC };
277 static const symbol s_5_35
[2] = { 0xD0, 0xBE };
279 static const struct among a_5
[36] =
281 /* 0 */ { 2, s_5_0
, -1, 1, 0},
282 /* 1 */ { 4, s_5_1
, -1, 1, 0},
283 /* 2 */ { 6, s_5_2
, 1, 1, 0},
284 /* 3 */ { 4, s_5_3
, -1, 1, 0},
285 /* 4 */ { 2, s_5_4
, -1, 1, 0},
286 /* 5 */ { 2, s_5_5
, -1, 1, 0},
287 /* 6 */ { 2, s_5_6
, -1, 1, 0},
288 /* 7 */ { 4, s_5_7
, 6, 1, 0},
289 /* 8 */ { 4, s_5_8
, 6, 1, 0},
290 /* 9 */ { 2, s_5_9
, -1, 1, 0},
291 /* 10 */ { 4, s_5_10
, 9, 1, 0},
292 /* 11 */ { 4, s_5_11
, 9, 1, 0},
293 /* 12 */ { 2, s_5_12
, -1, 1, 0},
294 /* 13 */ { 4, s_5_13
, -1, 1, 0},
295 /* 14 */ { 4, s_5_14
, -1, 1, 0},
296 /* 15 */ { 2, s_5_15
, -1, 1, 0},
297 /* 16 */ { 4, s_5_16
, 15, 1, 0},
298 /* 17 */ { 4, s_5_17
, 15, 1, 0},
299 /* 18 */ { 2, s_5_18
, -1, 1, 0},
300 /* 19 */ { 4, s_5_19
, 18, 1, 0},
301 /* 20 */ { 4, s_5_20
, 18, 1, 0},
302 /* 21 */ { 6, s_5_21
, 18, 1, 0},
303 /* 22 */ { 8, s_5_22
, 21, 1, 0},
304 /* 23 */ { 6, s_5_23
, 18, 1, 0},
305 /* 24 */ { 2, s_5_24
, -1, 1, 0},
306 /* 25 */ { 4, s_5_25
, 24, 1, 0},
307 /* 26 */ { 6, s_5_26
, 25, 1, 0},
308 /* 27 */ { 4, s_5_27
, 24, 1, 0},
309 /* 28 */ { 4, s_5_28
, 24, 1, 0},
310 /* 29 */ { 4, s_5_29
, -1, 1, 0},
311 /* 30 */ { 6, s_5_30
, 29, 1, 0},
312 /* 31 */ { 4, s_5_31
, -1, 1, 0},
313 /* 32 */ { 4, s_5_32
, -1, 1, 0},
314 /* 33 */ { 6, s_5_33
, 32, 1, 0},
315 /* 34 */ { 4, s_5_34
, -1, 1, 0},
316 /* 35 */ { 2, s_5_35
, -1, 1, 0}
319 static const symbol s_6_0
[6] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82 };
320 static const symbol s_6_1
[8] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82, 0xD1, 0x8C };
322 static const struct among a_6
[2] =
324 /* 0 */ { 6, s_6_0
, -1, 1, 0},
325 /* 1 */ { 8, s_6_1
, -1, 1, 0}
328 static const symbol s_7_0
[6] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88 };
329 static const symbol s_7_1
[2] = { 0xD1, 0x8C };
330 static const symbol s_7_2
[8] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88, 0xD0, 0xB5 };
331 static const symbol s_7_3
[2] = { 0xD0, 0xBD };
333 static const struct among a_7
[4] =
335 /* 0 */ { 6, s_7_0
, -1, 1, 0},
336 /* 1 */ { 2, s_7_1
, -1, 3, 0},
337 /* 2 */ { 8, s_7_2
, -1, 1, 0},
338 /* 3 */ { 2, s_7_3
, -1, 2, 0}
341 static const unsigned char g_v
[] = { 33, 65, 8, 232 };
343 static const symbol s_0
[] = { 0xD0, 0xB0 };
344 static const symbol s_1
[] = { 0xD1, 0x8F };
345 static const symbol s_2
[] = { 0xD0, 0xB0 };
346 static const symbol s_3
[] = { 0xD1, 0x8F };
347 static const symbol s_4
[] = { 0xD0, 0xB0 };
348 static const symbol s_5
[] = { 0xD1, 0x8F };
349 static const symbol s_6
[] = { 0xD0, 0xBD };
350 static const symbol s_7
[] = { 0xD0, 0xBD };
351 static const symbol s_8
[] = { 0xD0, 0xBD };
352 static const symbol s_9
[] = { 0xD0, 0xB8 };
354 static int r_mark_regions(struct SN_env
* z
) {
357 { int c1
= z
->c
; /* do, line 61 */
358 { /* gopast */ /* grouping v, line 62 */
359 int ret
= out_grouping_U(z
, g_v
, 1072, 1103, 1);
360 if (ret
< 0) goto lab0
;
363 z
->I
[0] = z
->c
; /* setmark pV, line 62 */
364 { /* gopast */ /* non v, line 62 */
365 int ret
= in_grouping_U(z
, g_v
, 1072, 1103, 1);
366 if (ret
< 0) goto lab0
;
369 { /* gopast */ /* grouping v, line 63 */
370 int ret
= out_grouping_U(z
, g_v
, 1072, 1103, 1);
371 if (ret
< 0) goto lab0
;
374 { /* gopast */ /* non v, line 63 */
375 int ret
= in_grouping_U(z
, g_v
, 1072, 1103, 1);
376 if (ret
< 0) goto lab0
;
379 z
->I
[1] = z
->c
; /* setmark p2, line 63 */
386 static int r_R2(struct SN_env
* z
) {
387 if (!(z
->I
[1] <= z
->c
)) return 0;
391 static int r_perfective_gerund(struct SN_env
* z
) {
393 z
->ket
= z
->c
; /* [, line 72 */
394 among_var
= find_among_b(z
, a_0
, 9); /* substring, line 72 */
395 if (!(among_var
)) return 0;
396 z
->bra
= z
->c
; /* ], line 72 */
400 { int m1
= z
->l
- z
->c
; (void)m1
; /* or, line 76 */
401 if (!(eq_s_b(z
, 2, s_0
))) goto lab1
;
405 if (!(eq_s_b(z
, 2, s_1
))) return 0;
408 { int ret
= slice_del(z
); /* delete, line 76 */
409 if (ret
< 0) return ret
;
413 { int ret
= slice_del(z
); /* delete, line 83 */
414 if (ret
< 0) return ret
;
421 static int r_adjective(struct SN_env
* z
) {
423 z
->ket
= z
->c
; /* [, line 88 */
424 among_var
= find_among_b(z
, a_1
, 26); /* substring, line 88 */
425 if (!(among_var
)) return 0;
426 z
->bra
= z
->c
; /* ], line 88 */
430 { int ret
= slice_del(z
); /* delete, line 97 */
431 if (ret
< 0) return ret
;
438 static int r_adjectival(struct SN_env
* z
) {
440 { int ret
= r_adjective(z
);
441 if (ret
== 0) return 0; /* call adjective, line 102 */
442 if (ret
< 0) return ret
;
444 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 109 */
445 z
->ket
= z
->c
; /* [, line 110 */
446 among_var
= find_among_b(z
, a_2
, 8); /* substring, line 110 */
447 if (!(among_var
)) { z
->c
= z
->l
- m_keep
; goto lab0
; }
448 z
->bra
= z
->c
; /* ], line 110 */
450 case 0: { z
->c
= z
->l
- m_keep
; goto lab0
; }
452 { int m1
= z
->l
- z
->c
; (void)m1
; /* or, line 115 */
453 if (!(eq_s_b(z
, 2, s_2
))) goto lab2
;
457 if (!(eq_s_b(z
, 2, s_3
))) { z
->c
= z
->l
- m_keep
; goto lab0
; }
460 { int ret
= slice_del(z
); /* delete, line 115 */
461 if (ret
< 0) return ret
;
465 { int ret
= slice_del(z
); /* delete, line 122 */
466 if (ret
< 0) return ret
;
476 static int r_reflexive(struct SN_env
* z
) {
478 z
->ket
= z
->c
; /* [, line 129 */
479 if (z
->c
- 3 <= z
->lb
|| (z
->p
[z
->c
- 1] != 140 && z
->p
[z
->c
- 1] != 143)) return 0;
480 among_var
= find_among_b(z
, a_3
, 2); /* substring, line 129 */
481 if (!(among_var
)) return 0;
482 z
->bra
= z
->c
; /* ], line 129 */
486 { int ret
= slice_del(z
); /* delete, line 132 */
487 if (ret
< 0) return ret
;
494 static int r_verb(struct SN_env
* z
) {
496 z
->ket
= z
->c
; /* [, line 137 */
497 among_var
= find_among_b(z
, a_4
, 46); /* substring, line 137 */
498 if (!(among_var
)) return 0;
499 z
->bra
= z
->c
; /* ], line 137 */
503 { int m1
= z
->l
- z
->c
; (void)m1
; /* or, line 143 */
504 if (!(eq_s_b(z
, 2, s_4
))) goto lab1
;
508 if (!(eq_s_b(z
, 2, s_5
))) return 0;
511 { int ret
= slice_del(z
); /* delete, line 143 */
512 if (ret
< 0) return ret
;
516 { int ret
= slice_del(z
); /* delete, line 151 */
517 if (ret
< 0) return ret
;
524 static int r_noun(struct SN_env
* z
) {
526 z
->ket
= z
->c
; /* [, line 160 */
527 among_var
= find_among_b(z
, a_5
, 36); /* substring, line 160 */
528 if (!(among_var
)) return 0;
529 z
->bra
= z
->c
; /* ], line 160 */
533 { int ret
= slice_del(z
); /* delete, line 167 */
534 if (ret
< 0) return ret
;
541 static int r_derivational(struct SN_env
* z
) {
543 z
->ket
= z
->c
; /* [, line 176 */
544 if (z
->c
- 5 <= z
->lb
|| (z
->p
[z
->c
- 1] != 130 && z
->p
[z
->c
- 1] != 140)) return 0;
545 among_var
= find_among_b(z
, a_6
, 2); /* substring, line 176 */
546 if (!(among_var
)) return 0;
547 z
->bra
= z
->c
; /* ], line 176 */
549 if (ret
== 0) return 0; /* call R2, line 176 */
550 if (ret
< 0) return ret
;
555 { int ret
= slice_del(z
); /* delete, line 179 */
556 if (ret
< 0) return ret
;
563 static int r_tidy_up(struct SN_env
* z
) {
565 z
->ket
= z
->c
; /* [, line 184 */
566 among_var
= find_among_b(z
, a_7
, 4); /* substring, line 184 */
567 if (!(among_var
)) return 0;
568 z
->bra
= z
->c
; /* ], line 184 */
572 { int ret
= slice_del(z
); /* delete, line 188 */
573 if (ret
< 0) return ret
;
575 z
->ket
= z
->c
; /* [, line 189 */
576 if (!(eq_s_b(z
, 2, s_6
))) return 0;
577 z
->bra
= z
->c
; /* ], line 189 */
578 if (!(eq_s_b(z
, 2, s_7
))) return 0;
579 { int ret
= slice_del(z
); /* delete, line 189 */
580 if (ret
< 0) return ret
;
584 if (!(eq_s_b(z
, 2, s_8
))) return 0;
585 { int ret
= slice_del(z
); /* delete, line 192 */
586 if (ret
< 0) return ret
;
590 { int ret
= slice_del(z
); /* delete, line 194 */
591 if (ret
< 0) return ret
;
598 extern int russian_UTF_8_stem(struct SN_env
* z
) {
599 { int c1
= z
->c
; /* do, line 201 */
600 { int ret
= r_mark_regions(z
);
601 if (ret
== 0) goto lab0
; /* call mark_regions, line 201 */
602 if (ret
< 0) return ret
;
607 z
->lb
= z
->c
; z
->c
= z
->l
; /* backwards, line 202 */
609 { int mlimit
; /* setlimit, line 202 */
610 int m2
= z
->l
- z
->c
; (void)m2
;
611 if (z
->c
< z
->I
[0]) return 0;
612 z
->c
= z
->I
[0]; /* tomark, line 202 */
613 mlimit
= z
->lb
; z
->lb
= z
->c
;
615 { int m3
= z
->l
- z
->c
; (void)m3
; /* do, line 203 */
616 { int m4
= z
->l
- z
->c
; (void)m4
; /* or, line 204 */
617 { int ret
= r_perfective_gerund(z
);
618 if (ret
== 0) goto lab3
; /* call perfective_gerund, line 204 */
619 if (ret
< 0) return ret
;
624 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 205 */
625 { int ret
= r_reflexive(z
);
626 if (ret
== 0) { z
->c
= z
->l
- m_keep
; goto lab4
; } /* call reflexive, line 205 */
627 if (ret
< 0) return ret
;
632 { int m5
= z
->l
- z
->c
; (void)m5
; /* or, line 206 */
633 { int ret
= r_adjectival(z
);
634 if (ret
== 0) goto lab6
; /* call adjectival, line 206 */
635 if (ret
< 0) return ret
;
640 { int ret
= r_verb(z
);
641 if (ret
== 0) goto lab7
; /* call verb, line 206 */
642 if (ret
< 0) return ret
;
647 { int ret
= r_noun(z
);
648 if (ret
== 0) goto lab1
; /* call noun, line 206 */
649 if (ret
< 0) return ret
;
659 { int m_keep
= z
->l
- z
->c
;/* (void) m_keep;*/ /* try, line 209 */
660 z
->ket
= z
->c
; /* [, line 209 */
661 if (!(eq_s_b(z
, 2, s_9
))) { z
->c
= z
->l
- m_keep
; goto lab8
; }
662 z
->bra
= z
->c
; /* ], line 209 */
663 { int ret
= slice_del(z
); /* delete, line 209 */
664 if (ret
< 0) return ret
;
669 { int m6
= z
->l
- z
->c
; (void)m6
; /* do, line 212 */
670 { int ret
= r_derivational(z
);
671 if (ret
== 0) goto lab9
; /* call derivational, line 212 */
672 if (ret
< 0) return ret
;
677 { int m7
= z
->l
- z
->c
; (void)m7
; /* do, line 213 */
678 { int ret
= r_tidy_up(z
);
679 if (ret
== 0) goto lab10
; /* call tidy_up, line 213 */
680 if (ret
< 0) return ret
;
691 extern struct SN_env
* russian_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); }
693 extern void russian_UTF_8_close_env(struct SN_env
* z
) { SN_close_env(z
, 0); }