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