Line data Source code
1 : /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2 :
3 : #include "header.h"
4 :
5 : #ifdef __cplusplus
6 : extern "C" {
7 : #endif
8 : extern int tamil_UTF_8_stem(struct SN_env * z);
9 : #ifdef __cplusplus
10 : }
11 : #endif
12 : static int r_has_min_length(struct SN_env * z);
13 : static int r_remove_common_word_endings(struct SN_env * z);
14 : static int r_remove_tense_suffixes(struct SN_env * z);
15 : static int r_remove_tense_suffix(struct SN_env * z);
16 : static int r_fix_endings(struct SN_env * z);
17 : static int r_fix_ending(struct SN_env * z);
18 : static int r_fix_va_start(struct SN_env * z);
19 : static int r_remove_vetrumai_urupukal(struct SN_env * z);
20 : static int r_remove_um(struct SN_env * z);
21 : static int r_remove_command_suffixes(struct SN_env * z);
22 : static int r_remove_pronoun_prefixes(struct SN_env * z);
23 : static int r_remove_question_prefixes(struct SN_env * z);
24 : static int r_remove_question_suffixes(struct SN_env * z);
25 : static int r_remove_plural_suffix(struct SN_env * z);
26 : #ifdef __cplusplus
27 : extern "C" {
28 : #endif
29 :
30 :
31 : extern struct SN_env * tamil_UTF_8_create_env(void);
32 : extern void tamil_UTF_8_close_env(struct SN_env * z);
33 :
34 :
35 : #ifdef __cplusplus
36 : }
37 : #endif
38 : static const symbol s_0_0[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x81 };
39 : static const symbol s_0_1[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x82 };
40 : static const symbol s_0_2[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8A };
41 : static const symbol s_0_3[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8B };
42 :
43 : static const struct among a_0[4] =
44 : {
45 : { 6, s_0_0, -1, 3, 0},
46 : { 6, s_0_1, -1, 4, 0},
47 : { 6, s_0_2, -1, 2, 0},
48 : { 6, s_0_3, -1, 1, 0}
49 : };
50 :
51 : static const symbol s_1_0[3] = { 0xE0, 0xAE, 0x95 };
52 : static const symbol s_1_1[3] = { 0xE0, 0xAE, 0x99 };
53 : static const symbol s_1_2[3] = { 0xE0, 0xAE, 0x9A };
54 : static const symbol s_1_3[3] = { 0xE0, 0xAE, 0x9E };
55 : static const symbol s_1_4[3] = { 0xE0, 0xAE, 0xA4 };
56 : static const symbol s_1_5[3] = { 0xE0, 0xAE, 0xA8 };
57 : static const symbol s_1_6[3] = { 0xE0, 0xAE, 0xAA };
58 : static const symbol s_1_7[3] = { 0xE0, 0xAE, 0xAE };
59 : static const symbol s_1_8[3] = { 0xE0, 0xAE, 0xAF };
60 : static const symbol s_1_9[3] = { 0xE0, 0xAE, 0xB5 };
61 :
62 : static const struct among a_1[10] =
63 : {
64 : { 3, s_1_0, -1, -1, 0},
65 : { 3, s_1_1, -1, -1, 0},
66 : { 3, s_1_2, -1, -1, 0},
67 : { 3, s_1_3, -1, -1, 0},
68 : { 3, s_1_4, -1, -1, 0},
69 : { 3, s_1_5, -1, -1, 0},
70 : { 3, s_1_6, -1, -1, 0},
71 : { 3, s_1_7, -1, -1, 0},
72 : { 3, s_1_8, -1, -1, 0},
73 : { 3, s_1_9, -1, -1, 0}
74 : };
75 :
76 : static const symbol s_2_0[3] = { 0xE0, 0xAF, 0x80 };
77 : static const symbol s_2_1[3] = { 0xE0, 0xAF, 0x88 };
78 : static const symbol s_2_2[3] = { 0xE0, 0xAE, 0xBF };
79 :
80 : static const struct among a_2[3] =
81 : {
82 : { 3, s_2_0, -1, -1, 0},
83 : { 3, s_2_1, -1, -1, 0},
84 : { 3, s_2_2, -1, -1, 0}
85 : };
86 :
87 : static const symbol s_3_0[3] = { 0xE0, 0xAF, 0x80 };
88 : static const symbol s_3_1[3] = { 0xE0, 0xAF, 0x81 };
89 : static const symbol s_3_2[3] = { 0xE0, 0xAF, 0x82 };
90 : static const symbol s_3_3[3] = { 0xE0, 0xAF, 0x86 };
91 : static const symbol s_3_4[3] = { 0xE0, 0xAF, 0x87 };
92 : static const symbol s_3_5[3] = { 0xE0, 0xAF, 0x88 };
93 : static const symbol s_3_6[3] = { 0xE0, 0xAE, 0xBE };
94 : static const symbol s_3_7[3] = { 0xE0, 0xAE, 0xBF };
95 :
96 : static const struct among a_3[8] =
97 : {
98 : { 3, s_3_0, -1, -1, 0},
99 : { 3, s_3_1, -1, -1, 0},
100 : { 3, s_3_2, -1, -1, 0},
101 : { 3, s_3_3, -1, -1, 0},
102 : { 3, s_3_4, -1, -1, 0},
103 : { 3, s_3_5, -1, -1, 0},
104 : { 3, s_3_6, -1, -1, 0},
105 : { 3, s_3_7, -1, -1, 0}
106 : };
107 :
108 : static const symbol s_4_1[3] = { 0xE0, 0xAF, 0x88 };
109 : static const symbol s_4_2[3] = { 0xE0, 0xAF, 0x8D };
110 :
111 : static const struct among a_4[3] =
112 : {
113 : { 0, 0, -1, 2, 0},
114 : { 3, s_4_1, 0, 1, 0},
115 : { 3, s_4_2, 0, 1, 0}
116 : };
117 :
118 : static const symbol s_5_0[6] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81 };
119 : static const symbol s_5_1[9] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
120 : static const symbol s_5_2[15] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
121 : static const symbol s_5_3[12] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
122 : static const symbol s_5_4[12] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
123 : static const symbol s_5_5[6] = { 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D };
124 : static const symbol s_5_6[12] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D };
125 : static const symbol s_5_7[12] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D };
126 : static const symbol s_5_8[12] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D };
127 : static const symbol s_5_9[6] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D };
128 : static const symbol s_5_10[12] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xAA, 0xE0, 0xAF, 0x8D };
129 : static const symbol s_5_11[6] = { 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D };
130 : static const symbol s_5_12[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
131 : static const symbol s_5_13[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8D };
132 : static const symbol s_5_14[9] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4 };
133 : static const symbol s_5_15[3] = { 0xE0, 0xAE, 0xAF };
134 : static const symbol s_5_16[3] = { 0xE0, 0xAE, 0xB5 };
135 :
136 : static const struct among a_5[17] =
137 : {
138 : { 6, s_5_0, -1, 8, 0},
139 : { 9, s_5_1, -1, 7, 0},
140 : { 15, s_5_2, -1, 7, 0},
141 : { 12, s_5_3, -1, 3, 0},
142 : { 12, s_5_4, -1, 4, 0},
143 : { 6, s_5_5, -1, 9, 0},
144 : { 12, s_5_6, -1, 5, 0},
145 : { 12, s_5_7, -1, 6, 0},
146 : { 12, s_5_8, -1, 1, 0},
147 : { 6, s_5_9, -1, 1, 0},
148 : { 12, s_5_10, -1, 3, 0},
149 : { 6, s_5_11, -1, 2, 0},
150 : { 12, s_5_12, -1, 4, 0},
151 : { 6, s_5_13, -1, 1, 0},
152 : { 9, s_5_14, -1, 1, 0},
153 : { 3, s_5_15, -1, 1, 0},
154 : { 3, s_5_16, -1, 1, 0}
155 : };
156 :
157 : static const symbol s_6_0[3] = { 0xE0, 0xAE, 0x95 };
158 : static const symbol s_6_1[3] = { 0xE0, 0xAE, 0x9A };
159 : static const symbol s_6_2[3] = { 0xE0, 0xAE, 0x9F };
160 : static const symbol s_6_3[3] = { 0xE0, 0xAE, 0xA4 };
161 : static const symbol s_6_4[3] = { 0xE0, 0xAE, 0xAA };
162 : static const symbol s_6_5[3] = { 0xE0, 0xAE, 0xB1 };
163 :
164 : static const struct among a_6[6] =
165 : {
166 : { 3, s_6_0, -1, -1, 0},
167 : { 3, s_6_1, -1, -1, 0},
168 : { 3, s_6_2, -1, -1, 0},
169 : { 3, s_6_3, -1, -1, 0},
170 : { 3, s_6_4, -1, -1, 0},
171 : { 3, s_6_5, -1, -1, 0}
172 : };
173 :
174 : static const symbol s_7_0[3] = { 0xE0, 0xAE, 0x95 };
175 : static const symbol s_7_1[3] = { 0xE0, 0xAE, 0x9A };
176 : static const symbol s_7_2[3] = { 0xE0, 0xAE, 0x9F };
177 : static const symbol s_7_3[3] = { 0xE0, 0xAE, 0xA4 };
178 : static const symbol s_7_4[3] = { 0xE0, 0xAE, 0xAA };
179 : static const symbol s_7_5[3] = { 0xE0, 0xAE, 0xB1 };
180 :
181 : static const struct among a_7[6] =
182 : {
183 : { 3, s_7_0, -1, -1, 0},
184 : { 3, s_7_1, -1, -1, 0},
185 : { 3, s_7_2, -1, -1, 0},
186 : { 3, s_7_3, -1, -1, 0},
187 : { 3, s_7_4, -1, -1, 0},
188 : { 3, s_7_5, -1, -1, 0}
189 : };
190 :
191 : static const symbol s_8_0[3] = { 0xE0, 0xAE, 0x9E };
192 : static const symbol s_8_1[3] = { 0xE0, 0xAE, 0xA3 };
193 : static const symbol s_8_2[3] = { 0xE0, 0xAE, 0xA8 };
194 : static const symbol s_8_3[3] = { 0xE0, 0xAE, 0xA9 };
195 : static const symbol s_8_4[3] = { 0xE0, 0xAE, 0xAE };
196 : static const symbol s_8_5[3] = { 0xE0, 0xAE, 0xAF };
197 : static const symbol s_8_6[3] = { 0xE0, 0xAE, 0xB0 };
198 : static const symbol s_8_7[3] = { 0xE0, 0xAE, 0xB2 };
199 : static const symbol s_8_8[3] = { 0xE0, 0xAE, 0xB3 };
200 : static const symbol s_8_9[3] = { 0xE0, 0xAE, 0xB4 };
201 : static const symbol s_8_10[3] = { 0xE0, 0xAE, 0xB5 };
202 :
203 : static const struct among a_8[11] =
204 : {
205 : { 3, s_8_0, -1, -1, 0},
206 : { 3, s_8_1, -1, -1, 0},
207 : { 3, s_8_2, -1, -1, 0},
208 : { 3, s_8_3, -1, -1, 0},
209 : { 3, s_8_4, -1, -1, 0},
210 : { 3, s_8_5, -1, -1, 0},
211 : { 3, s_8_6, -1, -1, 0},
212 : { 3, s_8_7, -1, -1, 0},
213 : { 3, s_8_8, -1, -1, 0},
214 : { 3, s_8_9, -1, -1, 0},
215 : { 3, s_8_10, -1, -1, 0}
216 : };
217 :
218 : static const symbol s_9_0[3] = { 0xE0, 0xAF, 0x80 };
219 : static const symbol s_9_1[3] = { 0xE0, 0xAF, 0x81 };
220 : static const symbol s_9_2[3] = { 0xE0, 0xAF, 0x82 };
221 : static const symbol s_9_3[3] = { 0xE0, 0xAF, 0x86 };
222 : static const symbol s_9_4[3] = { 0xE0, 0xAF, 0x87 };
223 : static const symbol s_9_5[3] = { 0xE0, 0xAF, 0x88 };
224 : static const symbol s_9_6[3] = { 0xE0, 0xAF, 0x8D };
225 : static const symbol s_9_7[3] = { 0xE0, 0xAE, 0xBE };
226 : static const symbol s_9_8[3] = { 0xE0, 0xAE, 0xBF };
227 :
228 : static const struct among a_9[9] =
229 : {
230 : { 3, s_9_0, -1, -1, 0},
231 : { 3, s_9_1, -1, -1, 0},
232 : { 3, s_9_2, -1, -1, 0},
233 : { 3, s_9_3, -1, -1, 0},
234 : { 3, s_9_4, -1, -1, 0},
235 : { 3, s_9_5, -1, -1, 0},
236 : { 3, s_9_6, -1, -1, 0},
237 : { 3, s_9_7, -1, -1, 0},
238 : { 3, s_9_8, -1, -1, 0}
239 : };
240 :
241 : static const symbol s_10_0[3] = { 0xE0, 0xAE, 0x85 };
242 : static const symbol s_10_1[3] = { 0xE0, 0xAE, 0x87 };
243 : static const symbol s_10_2[3] = { 0xE0, 0xAE, 0x89 };
244 :
245 : static const struct among a_10[3] =
246 : {
247 : { 3, s_10_0, -1, -1, 0},
248 : { 3, s_10_1, -1, -1, 0},
249 : { 3, s_10_2, -1, -1, 0}
250 : };
251 :
252 : static const symbol s_11_0[3] = { 0xE0, 0xAE, 0x95 };
253 : static const symbol s_11_1[3] = { 0xE0, 0xAE, 0x99 };
254 : static const symbol s_11_2[3] = { 0xE0, 0xAE, 0x9A };
255 : static const symbol s_11_3[3] = { 0xE0, 0xAE, 0x9E };
256 : static const symbol s_11_4[3] = { 0xE0, 0xAE, 0xA4 };
257 : static const symbol s_11_5[3] = { 0xE0, 0xAE, 0xA8 };
258 : static const symbol s_11_6[3] = { 0xE0, 0xAE, 0xAA };
259 : static const symbol s_11_7[3] = { 0xE0, 0xAE, 0xAE };
260 : static const symbol s_11_8[3] = { 0xE0, 0xAE, 0xAF };
261 : static const symbol s_11_9[3] = { 0xE0, 0xAE, 0xB5 };
262 :
263 : static const struct among a_11[10] =
264 : {
265 : { 3, s_11_0, -1, -1, 0},
266 : { 3, s_11_1, -1, -1, 0},
267 : { 3, s_11_2, -1, -1, 0},
268 : { 3, s_11_3, -1, -1, 0},
269 : { 3, s_11_4, -1, -1, 0},
270 : { 3, s_11_5, -1, -1, 0},
271 : { 3, s_11_6, -1, -1, 0},
272 : { 3, s_11_7, -1, -1, 0},
273 : { 3, s_11_8, -1, -1, 0},
274 : { 3, s_11_9, -1, -1, 0}
275 : };
276 :
277 : static const symbol s_12_0[3] = { 0xE0, 0xAE, 0x95 };
278 : static const symbol s_12_1[3] = { 0xE0, 0xAE, 0x9A };
279 : static const symbol s_12_2[3] = { 0xE0, 0xAE, 0x9F };
280 : static const symbol s_12_3[3] = { 0xE0, 0xAE, 0xA4 };
281 : static const symbol s_12_4[3] = { 0xE0, 0xAE, 0xAA };
282 : static const symbol s_12_5[3] = { 0xE0, 0xAE, 0xB1 };
283 :
284 : static const struct among a_12[6] =
285 : {
286 : { 3, s_12_0, -1, -1, 0},
287 : { 3, s_12_1, -1, -1, 0},
288 : { 3, s_12_2, -1, -1, 0},
289 : { 3, s_12_3, -1, -1, 0},
290 : { 3, s_12_4, -1, -1, 0},
291 : { 3, s_12_5, -1, -1, 0}
292 : };
293 :
294 : static const symbol s_13_0[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
295 : static const symbol s_13_1[18] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
296 : static const symbol s_13_2[15] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
297 : static const symbol s_13_3[15] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
298 :
299 : static const struct among a_13[4] =
300 : {
301 : { 9, s_13_0, -1, 4, 0},
302 : { 18, s_13_1, 0, 1, 0},
303 : { 15, s_13_2, 0, 3, 0},
304 : { 15, s_13_3, 0, 2, 0}
305 : };
306 :
307 : static const symbol s_14_0[3] = { 0xE0, 0xAF, 0x87 };
308 : static const symbol s_14_1[3] = { 0xE0, 0xAF, 0x8B };
309 : static const symbol s_14_2[3] = { 0xE0, 0xAE, 0xBE };
310 :
311 : static const struct among a_14[3] =
312 : {
313 : { 3, s_14_0, -1, -1, 0},
314 : { 3, s_14_1, -1, -1, 0},
315 : { 3, s_14_2, -1, -1, 0}
316 : };
317 :
318 : static const symbol s_15_0[6] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xBF };
319 : static const symbol s_15_1[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF };
320 :
321 : static const struct among a_15[2] =
322 : {
323 : { 6, s_15_0, -1, -1, 0},
324 : { 6, s_15_1, -1, -1, 0}
325 : };
326 :
327 : static const symbol s_16_0[3] = { 0xE0, 0xAF, 0x80 };
328 : static const symbol s_16_1[3] = { 0xE0, 0xAF, 0x81 };
329 : static const symbol s_16_2[3] = { 0xE0, 0xAF, 0x82 };
330 : static const symbol s_16_3[3] = { 0xE0, 0xAF, 0x86 };
331 : static const symbol s_16_4[3] = { 0xE0, 0xAF, 0x87 };
332 : static const symbol s_16_5[3] = { 0xE0, 0xAF, 0x88 };
333 : static const symbol s_16_6[3] = { 0xE0, 0xAE, 0xBE };
334 : static const symbol s_16_7[3] = { 0xE0, 0xAE, 0xBF };
335 :
336 : static const struct among a_16[8] =
337 : {
338 : { 3, s_16_0, -1, -1, 0},
339 : { 3, s_16_1, -1, -1, 0},
340 : { 3, s_16_2, -1, -1, 0},
341 : { 3, s_16_3, -1, -1, 0},
342 : { 3, s_16_4, -1, -1, 0},
343 : { 3, s_16_5, -1, -1, 0},
344 : { 3, s_16_6, -1, -1, 0},
345 : { 3, s_16_7, -1, -1, 0}
346 : };
347 :
348 : static const symbol s_17_0[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
349 : static const symbol s_17_1[18] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
350 : static const symbol s_17_2[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
351 : static const symbol s_17_3[12] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
352 : static const symbol s_17_4[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
353 : static const symbol s_17_5[15] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
354 : static const symbol s_17_6[9] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 };
355 : static const symbol s_17_7[15] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x88 };
356 : static const symbol s_17_8[12] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
357 : static const symbol s_17_9[15] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
358 : static const symbol s_17_10[12] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
359 : static const symbol s_17_11[21] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
360 : static const symbol s_17_12[12] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F };
361 : static const symbol s_17_13[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA3 };
362 : static const symbol s_17_14[6] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9 };
363 : static const symbol s_17_15[9] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 };
364 : static const symbol s_17_16[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 };
365 : static const symbol s_17_17[12] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88, 0xE0, 0xAE, 0xAF };
366 : static const symbol s_17_18[12] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF };
367 : static const symbol s_17_19[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB0, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF };
368 : static const symbol s_17_20[9] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2 };
369 : static const symbol s_17_21[12] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB3 };
370 : static const symbol s_17_22[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF };
371 : static const symbol s_17_23[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF };
372 : static const symbol s_17_24[15] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF };
373 : static const symbol s_17_25[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF };
374 :
375 : static const struct among a_17[26] =
376 : {
377 : { 15, s_17_0, -1, 3, 0},
378 : { 18, s_17_1, -1, 3, 0},
379 : { 9, s_17_2, -1, 3, 0},
380 : { 12, s_17_3, -1, 3, 0},
381 : { 18, s_17_4, -1, 3, 0},
382 : { 15, s_17_5, -1, 1, 0},
383 : { 9, s_17_6, -1, 1, 0},
384 : { 15, s_17_7, -1, 1, 0},
385 : { 12, s_17_8, -1, 1, 0},
386 : { 15, s_17_9, -1, 1, 0},
387 : { 12, s_17_10, -1, 1, 0},
388 : { 21, s_17_11, -1, 3, 0},
389 : { 12, s_17_12, -1, 3, 0},
390 : { 15, s_17_13, -1, 3, 0},
391 : { 6, s_17_14, -1, 1, 0},
392 : { 9, s_17_15, -1, 3, 0},
393 : { 18, s_17_16, 15, 3, 0},
394 : { 12, s_17_17, -1, 1, 0},
395 : { 12, s_17_18, -1, 1, 0},
396 : { 15, s_17_19, -1, 3, 0},
397 : { 9, s_17_20, -1, 2, 0},
398 : { 12, s_17_21, -1, 1, 0},
399 : { 9, s_17_22, -1, 1, 0},
400 : { 9, s_17_23, -1, 3, 0},
401 : { 15, s_17_24, -1, 1, 0},
402 : { 15, s_17_25, -1, 3, 0}
403 : };
404 :
405 : static const symbol s_18_0[3] = { 0xE0, 0xAF, 0x80 };
406 : static const symbol s_18_1[3] = { 0xE0, 0xAF, 0x81 };
407 : static const symbol s_18_2[3] = { 0xE0, 0xAF, 0x82 };
408 : static const symbol s_18_3[3] = { 0xE0, 0xAF, 0x86 };
409 : static const symbol s_18_4[3] = { 0xE0, 0xAF, 0x87 };
410 : static const symbol s_18_5[3] = { 0xE0, 0xAF, 0x88 };
411 : static const symbol s_18_6[3] = { 0xE0, 0xAE, 0xBE };
412 : static const symbol s_18_7[3] = { 0xE0, 0xAE, 0xBF };
413 :
414 : static const struct among a_18[8] =
415 : {
416 : { 3, s_18_0, -1, -1, 0},
417 : { 3, s_18_1, -1, -1, 0},
418 : { 3, s_18_2, -1, -1, 0},
419 : { 3, s_18_3, -1, -1, 0},
420 : { 3, s_18_4, -1, -1, 0},
421 : { 3, s_18_5, -1, -1, 0},
422 : { 3, s_18_6, -1, -1, 0},
423 : { 3, s_18_7, -1, -1, 0}
424 : };
425 :
426 : static const symbol s_19_0[3] = { 0xE0, 0xAF, 0x80 };
427 : static const symbol s_19_1[3] = { 0xE0, 0xAF, 0x81 };
428 : static const symbol s_19_2[3] = { 0xE0, 0xAF, 0x82 };
429 : static const symbol s_19_3[3] = { 0xE0, 0xAF, 0x86 };
430 : static const symbol s_19_4[3] = { 0xE0, 0xAF, 0x87 };
431 : static const symbol s_19_5[3] = { 0xE0, 0xAF, 0x88 };
432 : static const symbol s_19_6[3] = { 0xE0, 0xAE, 0xBE };
433 : static const symbol s_19_7[3] = { 0xE0, 0xAE, 0xBF };
434 :
435 : static const struct among a_19[8] =
436 : {
437 : { 3, s_19_0, -1, -1, 0},
438 : { 3, s_19_1, -1, -1, 0},
439 : { 3, s_19_2, -1, -1, 0},
440 : { 3, s_19_3, -1, -1, 0},
441 : { 3, s_19_4, -1, -1, 0},
442 : { 3, s_19_5, -1, -1, 0},
443 : { 3, s_19_6, -1, -1, 0},
444 : { 3, s_19_7, -1, -1, 0}
445 : };
446 :
447 : static const symbol s_20_0[3] = { 0xE0, 0xAF, 0x80 };
448 : static const symbol s_20_1[9] = { 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
449 : static const symbol s_20_2[9] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
450 : static const symbol s_20_3[6] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
451 : static const symbol s_20_4[21] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
452 : static const symbol s_20_5[15] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
453 : static const symbol s_20_6[9] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 };
454 : static const symbol s_20_7[6] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
455 : static const symbol s_20_8[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D };
456 : static const symbol s_20_9[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
457 : static const symbol s_20_10[9] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
458 : static const symbol s_20_11[12] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
459 : static const symbol s_20_12[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
460 : static const symbol s_20_13[9] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
461 : static const symbol s_20_14[6] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
462 : static const symbol s_20_15[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
463 : static const symbol s_20_16[12] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
464 : static const symbol s_20_17[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
465 : static const symbol s_20_18[9] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
466 : static const symbol s_20_19[9] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
467 : static const symbol s_20_20[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB4, 0xE0, 0xAF, 0x8D };
468 : static const symbol s_20_21[9] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F };
469 :
470 : static const struct among a_20[22] =
471 : {
472 : { 3, s_20_0, -1, 7, 0},
473 : { 9, s_20_1, -1, 2, 0},
474 : { 9, s_20_2, -1, 2, 0},
475 : { 6, s_20_3, -1, 6, 0},
476 : { 21, s_20_4, 3, 2, 0},
477 : { 15, s_20_5, -1, 2, 0},
478 : { 9, s_20_6, -1, 2, 0},
479 : { 6, s_20_7, -1, 1, 0},
480 : { 9, s_20_8, -1, 1, 0},
481 : { 12, s_20_9, -1, 1, 0},
482 : { 9, s_20_10, -1, 3, 0},
483 : { 12, s_20_11, -1, 4, 0},
484 : { 12, s_20_12, -1, 1, 0},
485 : { 9, s_20_13, -1, 2, 0},
486 : { 6, s_20_14, -1, 5, 0},
487 : { 12, s_20_15, 14, 1, 0},
488 : { 12, s_20_16, 14, 2, 0},
489 : { 9, s_20_17, 14, 2, 0},
490 : { 9, s_20_18, 14, 2, 0},
491 : { 9, s_20_19, -1, 2, 0},
492 : { 12, s_20_20, -1, 1, 0},
493 : { 9, s_20_21, -1, 2, 0}
494 : };
495 :
496 : static const symbol s_21_0[3] = { 0xE0, 0xAE, 0x95 };
497 : static const symbol s_21_1[3] = { 0xE0, 0xAE, 0x9A };
498 : static const symbol s_21_2[3] = { 0xE0, 0xAE, 0x9F };
499 : static const symbol s_21_3[3] = { 0xE0, 0xAE, 0xA4 };
500 : static const symbol s_21_4[3] = { 0xE0, 0xAE, 0xAA };
501 : static const symbol s_21_5[3] = { 0xE0, 0xAE, 0xB1 };
502 :
503 : static const struct among a_21[6] =
504 : {
505 : { 3, s_21_0, -1, -1, 0},
506 : { 3, s_21_1, -1, -1, 0},
507 : { 3, s_21_2, -1, -1, 0},
508 : { 3, s_21_3, -1, -1, 0},
509 : { 3, s_21_4, -1, -1, 0},
510 : { 3, s_21_5, -1, -1, 0}
511 : };
512 :
513 : static const symbol s_22_0[3] = { 0xE0, 0xAE, 0x95 };
514 : static const symbol s_22_1[3] = { 0xE0, 0xAE, 0x9A };
515 : static const symbol s_22_2[3] = { 0xE0, 0xAE, 0x9F };
516 : static const symbol s_22_3[3] = { 0xE0, 0xAE, 0xA4 };
517 : static const symbol s_22_4[3] = { 0xE0, 0xAE, 0xAA };
518 : static const symbol s_22_5[3] = { 0xE0, 0xAE, 0xB1 };
519 :
520 : static const struct among a_22[6] =
521 : {
522 : { 3, s_22_0, -1, -1, 0},
523 : { 3, s_22_1, -1, -1, 0},
524 : { 3, s_22_2, -1, -1, 0},
525 : { 3, s_22_3, -1, -1, 0},
526 : { 3, s_22_4, -1, -1, 0},
527 : { 3, s_22_5, -1, -1, 0}
528 : };
529 :
530 : static const symbol s_23_0[3] = { 0xE0, 0xAE, 0x85 };
531 : static const symbol s_23_1[3] = { 0xE0, 0xAE, 0x86 };
532 : static const symbol s_23_2[3] = { 0xE0, 0xAE, 0x87 };
533 : static const symbol s_23_3[3] = { 0xE0, 0xAE, 0x88 };
534 : static const symbol s_23_4[3] = { 0xE0, 0xAE, 0x89 };
535 : static const symbol s_23_5[3] = { 0xE0, 0xAE, 0x8A };
536 : static const symbol s_23_6[3] = { 0xE0, 0xAE, 0x8E };
537 : static const symbol s_23_7[3] = { 0xE0, 0xAE, 0x8F };
538 : static const symbol s_23_8[3] = { 0xE0, 0xAE, 0x90 };
539 : static const symbol s_23_9[3] = { 0xE0, 0xAE, 0x92 };
540 : static const symbol s_23_10[3] = { 0xE0, 0xAE, 0x93 };
541 : static const symbol s_23_11[3] = { 0xE0, 0xAE, 0x94 };
542 :
543 : static const struct among a_23[12] =
544 : {
545 : { 3, s_23_0, -1, -1, 0},
546 : { 3, s_23_1, -1, -1, 0},
547 : { 3, s_23_2, -1, -1, 0},
548 : { 3, s_23_3, -1, -1, 0},
549 : { 3, s_23_4, -1, -1, 0},
550 : { 3, s_23_5, -1, -1, 0},
551 : { 3, s_23_6, -1, -1, 0},
552 : { 3, s_23_7, -1, -1, 0},
553 : { 3, s_23_8, -1, -1, 0},
554 : { 3, s_23_9, -1, -1, 0},
555 : { 3, s_23_10, -1, -1, 0},
556 : { 3, s_23_11, -1, -1, 0}
557 : };
558 :
559 : static const symbol s_24_0[3] = { 0xE0, 0xAF, 0x80 };
560 : static const symbol s_24_1[3] = { 0xE0, 0xAF, 0x81 };
561 : static const symbol s_24_2[3] = { 0xE0, 0xAF, 0x82 };
562 : static const symbol s_24_3[3] = { 0xE0, 0xAF, 0x86 };
563 : static const symbol s_24_4[3] = { 0xE0, 0xAF, 0x87 };
564 : static const symbol s_24_5[3] = { 0xE0, 0xAF, 0x88 };
565 : static const symbol s_24_6[3] = { 0xE0, 0xAE, 0xBE };
566 : static const symbol s_24_7[3] = { 0xE0, 0xAE, 0xBF };
567 :
568 : static const struct among a_24[8] =
569 : {
570 : { 3, s_24_0, -1, -1, 0},
571 : { 3, s_24_1, -1, -1, 0},
572 : { 3, s_24_2, -1, -1, 0},
573 : { 3, s_24_3, -1, -1, 0},
574 : { 3, s_24_4, -1, -1, 0},
575 : { 3, s_24_5, -1, -1, 0},
576 : { 3, s_24_6, -1, -1, 0},
577 : { 3, s_24_7, -1, -1, 0}
578 : };
579 :
580 : static const symbol s_25_0[6] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81 };
581 : static const symbol s_25_1[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
582 : static const symbol s_25_2[6] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
583 : static const symbol s_25_3[15] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
584 : static const symbol s_25_4[6] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
585 : static const symbol s_25_5[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x88 };
586 : static const symbol s_25_6[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
587 : static const symbol s_25_7[9] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
588 : static const symbol s_25_8[9] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
589 : static const symbol s_25_9[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
590 : static const symbol s_25_10[9] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
591 : static const symbol s_25_11[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
592 : static const symbol s_25_12[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
593 : static const symbol s_25_13[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
594 : static const symbol s_25_14[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
595 : static const symbol s_25_15[12] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
596 : static const symbol s_25_16[12] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
597 : static const symbol s_25_17[12] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
598 : static const symbol s_25_18[9] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
599 : static const symbol s_25_19[9] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
600 : static const symbol s_25_20[9] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
601 : static const symbol s_25_21[9] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
602 : static const symbol s_25_22[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
603 : static const symbol s_25_23[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
604 : static const symbol s_25_24[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D };
605 : static const symbol s_25_25[9] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
606 : static const symbol s_25_26[9] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
607 : static const symbol s_25_27[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
608 : static const symbol s_25_28[12] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xAF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
609 : static const symbol s_25_29[9] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
610 : static const symbol s_25_30[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
611 : static const symbol s_25_31[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
612 : static const symbol s_25_32[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
613 : static const symbol s_25_33[24] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
614 : static const symbol s_25_34[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
615 : static const symbol s_25_35[9] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
616 : static const symbol s_25_36[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
617 : static const symbol s_25_37[9] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
618 : static const symbol s_25_38[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
619 : static const symbol s_25_39[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
620 : static const symbol s_25_40[3] = { 0xE0, 0xAE, 0x95 };
621 : static const symbol s_25_41[3] = { 0xE0, 0xAE, 0xA4 };
622 : static const symbol s_25_42[3] = { 0xE0, 0xAE, 0xA9 };
623 : static const symbol s_25_43[3] = { 0xE0, 0xAE, 0xAA };
624 : static const symbol s_25_44[3] = { 0xE0, 0xAE, 0xAF };
625 : static const symbol s_25_45[3] = { 0xE0, 0xAE, 0xBE };
626 :
627 : static const struct among a_25[46] =
628 : {
629 : { 6, s_25_0, -1, 6, 0},
630 : { 9, s_25_1, -1, 1, 0},
631 : { 6, s_25_2, -1, 3, 0},
632 : { 15, s_25_3, -1, 1, 0},
633 : { 6, s_25_4, -1, 1, 0},
634 : { 6, s_25_5, -1, 1, 0},
635 : { 12, s_25_6, -1, 1, 0},
636 : { 9, s_25_7, -1, 5, 0},
637 : { 9, s_25_8, -1, 1, 0},
638 : { 9, s_25_9, -1, 1, 0},
639 : { 9, s_25_10, -1, 2, 0},
640 : { 9, s_25_11, -1, 4, 0},
641 : { 12, s_25_12, 11, 1, 0},
642 : { 12, s_25_13, -1, 1, 0},
643 : { 12, s_25_14, -1, 1, 0},
644 : { 12, s_25_15, -1, 5, 0},
645 : { 12, s_25_16, -1, 1, 0},
646 : { 12, s_25_17, -1, 1, 0},
647 : { 9, s_25_18, -1, 5, 0},
648 : { 9, s_25_19, -1, 5, 0},
649 : { 9, s_25_20, -1, 5, 0},
650 : { 9, s_25_21, -1, 1, 0},
651 : { 9, s_25_22, -1, 1, 0},
652 : { 9, s_25_23, -1, 5, 0},
653 : { 9, s_25_24, -1, 5, 0},
654 : { 9, s_25_25, -1, 5, 0},
655 : { 9, s_25_26, -1, 1, 0},
656 : { 9, s_25_27, -1, 1, 0},
657 : { 12, s_25_28, -1, 5, 0},
658 : { 9, s_25_29, -1, 1, 0},
659 : { 9, s_25_30, -1, 5, 0},
660 : { 12, s_25_31, 30, 1, 0},
661 : { 12, s_25_32, 30, 1, 0},
662 : { 24, s_25_33, -1, 1, 0},
663 : { 12, s_25_34, -1, 5, 0},
664 : { 9, s_25_35, -1, 1, 0},
665 : { 9, s_25_36, -1, 1, 0},
666 : { 9, s_25_37, -1, 1, 0},
667 : { 9, s_25_38, -1, 5, 0},
668 : { 12, s_25_39, 38, 1, 0},
669 : { 3, s_25_40, -1, 1, 0},
670 : { 3, s_25_41, -1, 1, 0},
671 : { 3, s_25_42, -1, 1, 0},
672 : { 3, s_25_43, -1, 1, 0},
673 : { 3, s_25_44, -1, 1, 0},
674 : { 3, s_25_45, -1, 5, 0}
675 : };
676 :
677 : static const symbol s_26_0[18] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
678 : static const symbol s_26_1[21] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
679 : static const symbol s_26_2[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
680 : static const symbol s_26_3[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 };
681 : static const symbol s_26_4[18] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 };
682 : static const symbol s_26_5[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1 };
683 :
684 : static const struct among a_26[6] =
685 : {
686 : { 18, s_26_0, -1, -1, 0},
687 : { 21, s_26_1, -1, -1, 0},
688 : { 12, s_26_2, -1, -1, 0},
689 : { 15, s_26_3, -1, -1, 0},
690 : { 18, s_26_4, -1, -1, 0},
691 : { 9, s_26_5, -1, -1, 0}
692 : };
693 :
694 : static const symbol s_0[] = { 0xE0, 0xAE, 0x93 };
695 : static const symbol s_1[] = { 0xE0, 0xAE, 0x92 };
696 : static const symbol s_2[] = { 0xE0, 0xAE, 0x89 };
697 : static const symbol s_3[] = { 0xE0, 0xAE, 0x8A };
698 : static const symbol s_4[] = { 0xE0, 0xAE, 0x8E };
699 : static const symbol s_5[] = { 0xE0, 0xAF, 0x8D };
700 : static const symbol s_6[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
701 : static const symbol s_7[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
702 : static const symbol s_8[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
703 : static const symbol s_9[] = { 0xE0, 0xAF, 0x88 };
704 : static const symbol s_10[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
705 : static const symbol s_11[] = { 0xE0, 0xAF, 0x8D };
706 : static const symbol s_12[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
707 : static const symbol s_13[] = { 0xE0, 0xAF, 0x8D };
708 : static const symbol s_14[] = { 0xE0, 0xAF, 0x8D };
709 : static const symbol s_15[] = { 0xE0, 0xAF, 0x8D };
710 : static const symbol s_16[] = { 0xE0, 0xAF, 0x8D };
711 : static const symbol s_17[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D };
712 : static const symbol s_18[] = { 0xE0, 0xAF, 0x8D };
713 : static const symbol s_19[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
714 : static const symbol s_20[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
715 : static const symbol s_21[] = { 0xE0, 0xAF, 0x8D };
716 : static const symbol s_22[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
717 : static const symbol s_23[] = { 0xE0, 0xAF, 0x8D };
718 : static const symbol s_24[] = { 0xE0, 0xAF, 0x8D };
719 : static const symbol s_25[] = { 0xE0, 0xAF, 0x8D };
720 : static const symbol s_26[] = { 0xE0, 0xAF, 0x8D };
721 : static const symbol s_27[] = { 0xE0, 0xAE, 0xAE };
722 : static const symbol s_28[] = { 0xE0, 0xAF, 0x8D };
723 : static const symbol s_29[] = { 0xE0, 0xAF, 0x8D };
724 : static const symbol s_30[] = { 0xE0, 0xAF, 0x8D };
725 : static const symbol s_31[] = { 0xE0, 0xAE, 0xBF };
726 : static const symbol s_32[] = { 0xE0, 0xAF, 0x88 };
727 : static const symbol s_33[] = { 0xE0, 0xAF, 0x8D };
728 : static const symbol s_34[] = { 0xE0, 0xAF, 0x8D };
729 : static const symbol s_35[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
730 : static const symbol s_36[] = { 0xE0, 0xAF, 0x8D };
731 : static const symbol s_37[] = { 0xE0, 0xAE, 0x9A };
732 : static const symbol s_38[] = { 0xE0, 0xAF, 0x8D };
733 : static const symbol s_39[] = { 0xE0, 0xAF, 0x8D };
734 : static const symbol s_40[] = { 0xE0, 0xAF, 0x8D };
735 :
736 0 : static int r_has_min_length(struct SN_env * z) {
737 0 : return len_utf8(z->p) > 4;
738 : }
739 :
740 0 : static int r_fix_va_start(struct SN_env * z) {
741 : int among_var;
742 0 : z->bra = z->c;
743 0 : if (z->c + 5 >= z->l || z->p[z->c + 5] >> 5 != 4 || !((3078 >> (z->p[z->c + 5] & 0x1f)) & 1)) return 0;
744 0 : among_var = find_among(z, a_0, 4);
745 0 : if (!among_var) return 0;
746 0 : z->ket = z->c;
747 0 : switch (among_var) {
748 0 : case 1:
749 0 : { int ret = slice_from_s(z, 3, s_0);
750 0 : if (ret < 0) return ret;
751 : }
752 0 : break;
753 0 : case 2:
754 0 : { int ret = slice_from_s(z, 3, s_1);
755 0 : if (ret < 0) return ret;
756 : }
757 0 : break;
758 0 : case 3:
759 0 : { int ret = slice_from_s(z, 3, s_2);
760 0 : if (ret < 0) return ret;
761 : }
762 0 : break;
763 0 : case 4:
764 0 : { int ret = slice_from_s(z, 3, s_3);
765 0 : if (ret < 0) return ret;
766 : }
767 0 : break;
768 : }
769 0 : return 1;
770 : }
771 :
772 0 : static int r_fix_endings(struct SN_env * z) {
773 0 : { int c1 = z->c;
774 0 : while(1) {
775 0 : int c2 = z->c;
776 0 : { int ret = r_fix_ending(z);
777 0 : if (ret == 0) goto lab1;
778 0 : if (ret < 0) return ret;
779 : }
780 0 : continue;
781 0 : lab1:
782 0 : z->c = c2;
783 0 : break;
784 : }
785 0 : z->c = c1;
786 : }
787 0 : return 1;
788 : }
789 :
790 0 : static int r_remove_question_prefixes(struct SN_env * z) {
791 0 : z->bra = z->c;
792 0 : if (!(eq_s(z, 3, s_4))) return 0;
793 0 : if (!find_among(z, a_1, 10)) return 0;
794 0 : if (!(eq_s(z, 3, s_5))) return 0;
795 0 : z->ket = z->c;
796 0 : { int ret = slice_del(z);
797 0 : if (ret < 0) return ret;
798 : }
799 0 : { int c1 = z->c;
800 0 : { int ret = r_fix_va_start(z);
801 0 : if (ret < 0) return ret;
802 : }
803 0 : z->c = c1;
804 : }
805 0 : return 1;
806 : }
807 :
808 0 : static int r_fix_ending(struct SN_env * z) {
809 : int among_var;
810 0 : if (len_utf8(z->p) <= 3) return 0;
811 0 : z->lb = z->c; z->c = z->l;
812 :
813 0 : { int m1 = z->l - z->c; (void)m1;
814 0 : z->ket = z->c;
815 0 : among_var = find_among_b(z, a_5, 17);
816 0 : if (!among_var) goto lab1;
817 0 : z->bra = z->c;
818 0 : switch (among_var) {
819 0 : case 1:
820 0 : { int ret = slice_del(z);
821 0 : if (ret < 0) return ret;
822 : }
823 0 : break;
824 0 : case 2:
825 0 : { int m_test2 = z->l - z->c;
826 0 : if (!find_among_b(z, a_2, 3)) goto lab1;
827 0 : z->c = z->l - m_test2;
828 : }
829 0 : { int ret = slice_del(z);
830 0 : if (ret < 0) return ret;
831 : }
832 0 : break;
833 0 : case 3:
834 0 : { int ret = slice_from_s(z, 6, s_6);
835 0 : if (ret < 0) return ret;
836 : }
837 0 : break;
838 0 : case 4:
839 0 : { int ret = slice_from_s(z, 6, s_7);
840 0 : if (ret < 0) return ret;
841 : }
842 0 : break;
843 0 : case 5:
844 0 : { int ret = slice_from_s(z, 6, s_8);
845 0 : if (ret < 0) return ret;
846 : }
847 0 : break;
848 0 : case 6:
849 0 : if (!(z->I[0])) goto lab1;
850 0 : { int m3 = z->l - z->c; (void)m3;
851 0 : if (!(eq_s_b(z, 3, s_9))) goto lab2;
852 0 : goto lab1;
853 0 : lab2:
854 0 : z->c = z->l - m3;
855 : }
856 0 : { int ret = slice_from_s(z, 6, s_10);
857 0 : if (ret < 0) return ret;
858 : }
859 0 : break;
860 0 : case 7:
861 0 : { int ret = slice_from_s(z, 3, s_11);
862 0 : if (ret < 0) return ret;
863 : }
864 0 : break;
865 0 : case 8:
866 0 : { int m4 = z->l - z->c; (void)m4;
867 0 : if (!find_among_b(z, a_3, 8)) goto lab3;
868 0 : goto lab1;
869 0 : lab3:
870 0 : z->c = z->l - m4;
871 : }
872 0 : { int ret = slice_del(z);
873 0 : if (ret < 0) return ret;
874 : }
875 0 : break;
876 0 : case 9:
877 0 : if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 136 && z->p[z->c - 1] != 141)) among_var = 2; else
878 0 : among_var = find_among_b(z, a_4, 3);
879 : switch (among_var) {
880 0 : case 1:
881 0 : { int ret = slice_del(z);
882 0 : if (ret < 0) return ret;
883 : }
884 0 : break;
885 0 : case 2:
886 0 : { int ret = slice_from_s(z, 6, s_12);
887 0 : if (ret < 0) return ret;
888 : }
889 0 : break;
890 : }
891 0 : break;
892 : }
893 0 : goto lab0;
894 0 : lab1:
895 0 : z->c = z->l - m1;
896 0 : z->ket = z->c;
897 0 : if (!(eq_s_b(z, 3, s_13))) return 0;
898 0 : { int m5 = z->l - z->c; (void)m5;
899 0 : if (!find_among_b(z, a_6, 6)) goto lab5;
900 0 : { int m6 = z->l - z->c; (void)m6;
901 0 : if (!(eq_s_b(z, 3, s_14))) { z->c = z->l - m6; goto lab6; }
902 0 : if (!find_among_b(z, a_7, 6)) { z->c = z->l - m6; goto lab6; }
903 0 : lab6:
904 : ;
905 : }
906 0 : z->bra = z->c;
907 0 : { int ret = slice_del(z);
908 0 : if (ret < 0) return ret;
909 : }
910 0 : goto lab4;
911 0 : lab5:
912 0 : z->c = z->l - m5;
913 0 : if (!find_among_b(z, a_8, 11)) goto lab7;
914 0 : z->bra = z->c;
915 0 : if (!(eq_s_b(z, 3, s_15))) goto lab7;
916 0 : { int ret = slice_del(z);
917 0 : if (ret < 0) return ret;
918 : }
919 0 : goto lab4;
920 0 : lab7:
921 0 : z->c = z->l - m5;
922 0 : { int m_test7 = z->l - z->c;
923 0 : if (!find_among_b(z, a_9, 9)) return 0;
924 0 : z->c = z->l - m_test7;
925 : }
926 0 : z->bra = z->c;
927 0 : { int ret = slice_del(z);
928 0 : if (ret < 0) return ret;
929 : }
930 : }
931 0 : lab4:
932 : ;
933 : }
934 0 : lab0:
935 0 : z->c = z->lb;
936 0 : return 1;
937 : }
938 :
939 0 : static int r_remove_pronoun_prefixes(struct SN_env * z) {
940 0 : z->bra = z->c;
941 0 : if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 4 || !((672 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
942 0 : if (!find_among(z, a_10, 3)) return 0;
943 0 : if (!find_among(z, a_11, 10)) return 0;
944 0 : if (!(eq_s(z, 3, s_16))) return 0;
945 0 : z->ket = z->c;
946 0 : { int ret = slice_del(z);
947 0 : if (ret < 0) return ret;
948 : }
949 0 : { int c1 = z->c;
950 0 : { int ret = r_fix_va_start(z);
951 0 : if (ret < 0) return ret;
952 : }
953 0 : z->c = c1;
954 : }
955 0 : return 1;
956 : }
957 :
958 0 : static int r_remove_plural_suffix(struct SN_env * z) {
959 : int among_var;
960 0 : z->lb = z->c; z->c = z->l;
961 :
962 0 : z->ket = z->c;
963 0 : if (z->c - 8 <= z->lb || z->p[z->c - 1] != 141) return 0;
964 0 : among_var = find_among_b(z, a_13, 4);
965 0 : if (!among_var) return 0;
966 0 : z->bra = z->c;
967 0 : switch (among_var) {
968 0 : case 1:
969 0 : { int m1 = z->l - z->c; (void)m1;
970 0 : if (!find_among_b(z, a_12, 6)) goto lab1;
971 0 : { int ret = slice_from_s(z, 9, s_17);
972 0 : if (ret < 0) return ret;
973 : }
974 0 : goto lab0;
975 0 : lab1:
976 0 : z->c = z->l - m1;
977 0 : { int ret = slice_from_s(z, 3, s_18);
978 0 : if (ret < 0) return ret;
979 : }
980 : }
981 0 : lab0:
982 0 : break;
983 0 : case 2:
984 0 : { int ret = slice_from_s(z, 6, s_19);
985 0 : if (ret < 0) return ret;
986 : }
987 0 : break;
988 0 : case 3:
989 0 : { int ret = slice_from_s(z, 6, s_20);
990 0 : if (ret < 0) return ret;
991 : }
992 0 : break;
993 0 : case 4:
994 0 : { int ret = slice_del(z);
995 0 : if (ret < 0) return ret;
996 : }
997 0 : break;
998 : }
999 0 : z->c = z->lb;
1000 0 : return 1;
1001 : }
1002 :
1003 0 : static int r_remove_question_suffixes(struct SN_env * z) {
1004 0 : { int ret = r_has_min_length(z);
1005 0 : if (ret <= 0) return ret;
1006 : }
1007 0 : z->lb = z->c; z->c = z->l;
1008 :
1009 0 : { int m1 = z->l - z->c; (void)m1;
1010 0 : z->ket = z->c;
1011 0 : if (!find_among_b(z, a_14, 3)) goto lab0;
1012 0 : z->bra = z->c;
1013 0 : { int ret = slice_from_s(z, 3, s_21);
1014 0 : if (ret < 0) return ret;
1015 : }
1016 0 : lab0:
1017 0 : z->c = z->l - m1;
1018 : }
1019 0 : z->c = z->lb;
1020 :
1021 0 : { int ret = r_fix_endings(z);
1022 0 : if (ret < 0) return ret;
1023 : }
1024 0 : return 1;
1025 : }
1026 :
1027 0 : static int r_remove_command_suffixes(struct SN_env * z) {
1028 0 : { int ret = r_has_min_length(z);
1029 0 : if (ret <= 0) return ret;
1030 : }
1031 0 : z->lb = z->c; z->c = z->l;
1032 :
1033 0 : z->ket = z->c;
1034 0 : if (z->c - 5 <= z->lb || z->p[z->c - 1] != 191) return 0;
1035 0 : if (!find_among_b(z, a_15, 2)) return 0;
1036 0 : z->bra = z->c;
1037 0 : { int ret = slice_del(z);
1038 0 : if (ret < 0) return ret;
1039 : }
1040 0 : z->c = z->lb;
1041 0 : return 1;
1042 : }
1043 :
1044 0 : static int r_remove_um(struct SN_env * z) {
1045 0 : { int ret = r_has_min_length(z);
1046 0 : if (ret <= 0) return ret;
1047 : }
1048 0 : z->lb = z->c; z->c = z->l;
1049 :
1050 0 : z->ket = z->c;
1051 0 : if (!(eq_s_b(z, 9, s_22))) return 0;
1052 0 : z->bra = z->c;
1053 0 : { int ret = slice_from_s(z, 3, s_23);
1054 0 : if (ret < 0) return ret;
1055 : }
1056 0 : z->c = z->lb;
1057 0 : { int c1 = z->c;
1058 0 : { int ret = r_fix_ending(z);
1059 0 : if (ret < 0) return ret;
1060 : }
1061 0 : z->c = c1;
1062 : }
1063 0 : return 1;
1064 : }
1065 :
1066 0 : static int r_remove_common_word_endings(struct SN_env * z) {
1067 : int among_var;
1068 0 : { int ret = r_has_min_length(z);
1069 0 : if (ret <= 0) return ret;
1070 : }
1071 0 : z->lb = z->c; z->c = z->l;
1072 :
1073 0 : z->ket = z->c;
1074 0 : among_var = find_among_b(z, a_17, 26);
1075 0 : if (!among_var) return 0;
1076 0 : z->bra = z->c;
1077 0 : switch (among_var) {
1078 0 : case 1:
1079 0 : { int ret = slice_from_s(z, 3, s_24);
1080 0 : if (ret < 0) return ret;
1081 : }
1082 0 : break;
1083 0 : case 2:
1084 0 : { int m1 = z->l - z->c; (void)m1;
1085 0 : if (!find_among_b(z, a_16, 8)) goto lab0;
1086 0 : return 0;
1087 0 : lab0:
1088 0 : z->c = z->l - m1;
1089 : }
1090 0 : { int ret = slice_from_s(z, 3, s_25);
1091 0 : if (ret < 0) return ret;
1092 : }
1093 0 : break;
1094 0 : case 3:
1095 0 : { int ret = slice_del(z);
1096 0 : if (ret < 0) return ret;
1097 : }
1098 0 : break;
1099 : }
1100 0 : z->c = z->lb;
1101 :
1102 0 : { int ret = r_fix_endings(z);
1103 0 : if (ret < 0) return ret;
1104 : }
1105 0 : return 1;
1106 : }
1107 :
1108 0 : static int r_remove_vetrumai_urupukal(struct SN_env * z) {
1109 : int among_var;
1110 0 : z->I[0] = 0;
1111 0 : { int ret = r_has_min_length(z);
1112 0 : if (ret <= 0) return ret;
1113 : }
1114 0 : z->lb = z->c; z->c = z->l;
1115 :
1116 0 : { int m1 = z->l - z->c; (void)m1;
1117 0 : { int m_test2 = z->l - z->c;
1118 0 : z->ket = z->c;
1119 0 : if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((-2147475197 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1;
1120 0 : among_var = find_among_b(z, a_20, 22);
1121 0 : if (!among_var) goto lab1;
1122 0 : z->bra = z->c;
1123 0 : switch (among_var) {
1124 0 : case 1:
1125 0 : { int ret = slice_del(z);
1126 0 : if (ret < 0) return ret;
1127 : }
1128 0 : break;
1129 0 : case 2:
1130 0 : { int ret = slice_from_s(z, 3, s_26);
1131 0 : if (ret < 0) return ret;
1132 : }
1133 0 : break;
1134 0 : case 3:
1135 0 : { int m3 = z->l - z->c; (void)m3;
1136 0 : if (!(eq_s_b(z, 3, s_27))) goto lab2;
1137 0 : goto lab1;
1138 0 : lab2:
1139 0 : z->c = z->l - m3;
1140 : }
1141 0 : { int ret = slice_from_s(z, 3, s_28);
1142 0 : if (ret < 0) return ret;
1143 : }
1144 0 : break;
1145 0 : case 4:
1146 0 : if (len_utf8(z->p) < 7) goto lab1;
1147 0 : { int ret = slice_from_s(z, 3, s_29);
1148 0 : if (ret < 0) return ret;
1149 : }
1150 0 : break;
1151 0 : case 5:
1152 0 : { int m4 = z->l - z->c; (void)m4;
1153 0 : if (!find_among_b(z, a_18, 8)) goto lab3;
1154 0 : goto lab1;
1155 0 : lab3:
1156 0 : z->c = z->l - m4;
1157 : }
1158 0 : { int ret = slice_from_s(z, 3, s_30);
1159 0 : if (ret < 0) return ret;
1160 : }
1161 0 : break;
1162 0 : case 6:
1163 0 : { int m5 = z->l - z->c; (void)m5;
1164 0 : if (!find_among_b(z, a_19, 8)) goto lab4;
1165 0 : goto lab1;
1166 0 : lab4:
1167 0 : z->c = z->l - m5;
1168 : }
1169 0 : { int ret = slice_del(z);
1170 0 : if (ret < 0) return ret;
1171 : }
1172 0 : break;
1173 0 : case 7:
1174 0 : { int ret = slice_from_s(z, 3, s_31);
1175 0 : if (ret < 0) return ret;
1176 : }
1177 0 : break;
1178 : }
1179 0 : z->c = z->l - m_test2;
1180 : }
1181 0 : goto lab0;
1182 0 : lab1:
1183 0 : z->c = z->l - m1;
1184 0 : { int m_test6 = z->l - z->c;
1185 0 : z->ket = z->c;
1186 0 : if (!(eq_s_b(z, 3, s_32))) return 0;
1187 0 : { int m7 = z->l - z->c; (void)m7;
1188 0 : { int m8 = z->l - z->c; (void)m8;
1189 0 : if (!find_among_b(z, a_21, 6)) goto lab7;
1190 0 : goto lab6;
1191 0 : lab7:
1192 0 : z->c = z->l - m8;
1193 : }
1194 0 : goto lab5;
1195 0 : lab6:
1196 0 : z->c = z->l - m7;
1197 0 : { int m_test9 = z->l - z->c;
1198 0 : if (!find_among_b(z, a_22, 6)) return 0;
1199 0 : if (!(eq_s_b(z, 3, s_33))) return 0;
1200 0 : z->c = z->l - m_test9;
1201 : }
1202 : }
1203 0 : lab5:
1204 0 : z->bra = z->c;
1205 0 : { int ret = slice_from_s(z, 3, s_34);
1206 0 : if (ret < 0) return ret;
1207 : }
1208 0 : z->c = z->l - m_test6;
1209 : }
1210 : }
1211 0 : lab0:
1212 0 : z->I[0] = 1;
1213 0 : { int m10 = z->l - z->c; (void)m10;
1214 0 : z->ket = z->c;
1215 0 : if (!(eq_s_b(z, 9, s_35))) goto lab8;
1216 0 : z->bra = z->c;
1217 0 : { int ret = slice_from_s(z, 3, s_36);
1218 0 : if (ret < 0) return ret;
1219 : }
1220 0 : lab8:
1221 0 : z->c = z->l - m10;
1222 : }
1223 0 : z->c = z->lb;
1224 :
1225 0 : { int ret = r_fix_endings(z);
1226 0 : if (ret < 0) return ret;
1227 : }
1228 0 : return 1;
1229 : }
1230 :
1231 0 : static int r_remove_tense_suffixes(struct SN_env * z) {
1232 0 : z->I[1] = 1;
1233 0 : while(1) {
1234 0 : int c1 = z->c;
1235 0 : if (!(z->I[1])) goto lab0;
1236 0 : { int c2 = z->c;
1237 0 : { int ret = r_remove_tense_suffix(z);
1238 0 : if (ret < 0) return ret;
1239 : }
1240 0 : z->c = c2;
1241 : }
1242 0 : continue;
1243 0 : lab0:
1244 0 : z->c = c1;
1245 0 : break;
1246 : }
1247 0 : return 1;
1248 : }
1249 :
1250 0 : static int r_remove_tense_suffix(struct SN_env * z) {
1251 : int among_var;
1252 0 : z->I[1] = 0;
1253 0 : { int ret = r_has_min_length(z);
1254 0 : if (ret <= 0) return ret;
1255 : }
1256 0 : z->lb = z->c; z->c = z->l;
1257 :
1258 0 : { int m1 = z->l - z->c; (void)m1;
1259 0 : { int m_test2 = z->l - z->c;
1260 0 : z->ket = z->c;
1261 0 : among_var = find_among_b(z, a_25, 46);
1262 0 : if (!among_var) goto lab0;
1263 0 : z->bra = z->c;
1264 0 : switch (among_var) {
1265 0 : case 1:
1266 0 : { int ret = slice_del(z);
1267 0 : if (ret < 0) return ret;
1268 : }
1269 0 : break;
1270 0 : case 2:
1271 0 : { int m3 = z->l - z->c; (void)m3;
1272 0 : if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((1951712 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1;
1273 0 : if (!find_among_b(z, a_23, 12)) goto lab1;
1274 0 : goto lab0;
1275 0 : lab1:
1276 0 : z->c = z->l - m3;
1277 : }
1278 0 : { int ret = slice_del(z);
1279 0 : if (ret < 0) return ret;
1280 : }
1281 0 : break;
1282 0 : case 3:
1283 0 : { int m4 = z->l - z->c; (void)m4;
1284 0 : if (!find_among_b(z, a_24, 8)) goto lab2;
1285 0 : goto lab0;
1286 0 : lab2:
1287 0 : z->c = z->l - m4;
1288 : }
1289 0 : { int ret = slice_del(z);
1290 0 : if (ret < 0) return ret;
1291 : }
1292 0 : break;
1293 0 : case 4:
1294 0 : { int m5 = z->l - z->c; (void)m5;
1295 0 : if (!(eq_s_b(z, 3, s_37))) goto lab3;
1296 0 : goto lab0;
1297 0 : lab3:
1298 0 : z->c = z->l - m5;
1299 : }
1300 0 : { int ret = slice_from_s(z, 3, s_38);
1301 0 : if (ret < 0) return ret;
1302 : }
1303 0 : break;
1304 0 : case 5:
1305 0 : { int ret = slice_from_s(z, 3, s_39);
1306 0 : if (ret < 0) return ret;
1307 : }
1308 0 : break;
1309 0 : case 6:
1310 0 : { int m_test6 = z->l - z->c;
1311 0 : if (!(eq_s_b(z, 3, s_40))) goto lab0;
1312 0 : z->c = z->l - m_test6;
1313 : }
1314 0 : { int ret = slice_del(z);
1315 0 : if (ret < 0) return ret;
1316 : }
1317 0 : break;
1318 : }
1319 0 : z->I[1] = 1;
1320 0 : z->c = z->l - m_test2;
1321 : }
1322 0 : lab0:
1323 0 : z->c = z->l - m1;
1324 : }
1325 0 : { int m7 = z->l - z->c; (void)m7;
1326 0 : z->ket = z->c;
1327 0 : if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 177)) goto lab4;
1328 0 : if (!find_among_b(z, a_26, 6)) goto lab4;
1329 0 : z->bra = z->c;
1330 0 : { int ret = slice_del(z);
1331 0 : if (ret < 0) return ret;
1332 : }
1333 0 : z->I[1] = 1;
1334 0 : lab4:
1335 0 : z->c = z->l - m7;
1336 : }
1337 0 : z->c = z->lb;
1338 :
1339 0 : { int ret = r_fix_endings(z);
1340 0 : if (ret < 0) return ret;
1341 : }
1342 0 : return 1;
1343 : }
1344 :
1345 0 : extern int tamil_UTF_8_stem(struct SN_env * z) {
1346 0 : z->I[0] = 0;
1347 0 : { int c1 = z->c;
1348 0 : { int ret = r_fix_ending(z);
1349 0 : if (ret < 0) return ret;
1350 : }
1351 0 : z->c = c1;
1352 : }
1353 0 : { int ret = r_has_min_length(z);
1354 0 : if (ret <= 0) return ret;
1355 : }
1356 0 : { int c2 = z->c;
1357 0 : { int ret = r_remove_question_prefixes(z);
1358 0 : if (ret < 0) return ret;
1359 : }
1360 0 : z->c = c2;
1361 : }
1362 0 : { int c3 = z->c;
1363 0 : { int ret = r_remove_pronoun_prefixes(z);
1364 0 : if (ret < 0) return ret;
1365 : }
1366 0 : z->c = c3;
1367 : }
1368 0 : { int c4 = z->c;
1369 0 : { int ret = r_remove_question_suffixes(z);
1370 0 : if (ret < 0) return ret;
1371 : }
1372 0 : z->c = c4;
1373 : }
1374 0 : { int c5 = z->c;
1375 0 : { int ret = r_remove_um(z);
1376 0 : if (ret < 0) return ret;
1377 : }
1378 0 : z->c = c5;
1379 : }
1380 0 : { int c6 = z->c;
1381 0 : { int ret = r_remove_common_word_endings(z);
1382 0 : if (ret < 0) return ret;
1383 : }
1384 0 : z->c = c6;
1385 : }
1386 0 : { int c7 = z->c;
1387 0 : { int ret = r_remove_vetrumai_urupukal(z);
1388 0 : if (ret < 0) return ret;
1389 : }
1390 0 : z->c = c7;
1391 : }
1392 0 : { int c8 = z->c;
1393 0 : { int ret = r_remove_plural_suffix(z);
1394 0 : if (ret < 0) return ret;
1395 : }
1396 0 : z->c = c8;
1397 : }
1398 0 : { int c9 = z->c;
1399 0 : { int ret = r_remove_command_suffixes(z);
1400 0 : if (ret < 0) return ret;
1401 : }
1402 0 : z->c = c9;
1403 : }
1404 0 : { int c10 = z->c;
1405 0 : { int ret = r_remove_tense_suffixes(z);
1406 0 : if (ret < 0) return ret;
1407 : }
1408 0 : z->c = c10;
1409 : }
1410 0 : return 1;
1411 : }
1412 :
1413 0 : extern struct SN_env * tamil_UTF_8_create_env(void) { return SN_create_env(0, 2); }
1414 :
1415 0 : extern void tamil_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
1416 :
|