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