Branch data Line data Source code
1 : : /* Generated from hungarian.sbl by Snowball 3.0.0 - https://snowballstem.org/ */
2 : :
3 : : #include "stem_UTF_8_hungarian.h"
4 : :
5 : : #include <stddef.h>
6 : :
7 : : #include "snowball_runtime.h"
8 : :
9 : : struct SN_local {
10 : : struct SN_env z;
11 : : int i_p1;
12 : : };
13 : :
14 : : typedef struct SN_local SN_local;
15 : :
16 : : #ifdef __cplusplus
17 : : extern "C" {
18 : : #endif
19 : : extern int hungarian_UTF_8_stem(struct SN_env * z);
20 : : #ifdef __cplusplus
21 : : }
22 : : #endif
23 : :
24 : : static int r_double(struct SN_env * z);
25 : : static int r_undouble(struct SN_env * z);
26 : : static int r_factive(struct SN_env * z);
27 : : static int r_instrum(struct SN_env * z);
28 : : static int r_plur_owner(struct SN_env * z);
29 : : static int r_sing_owner(struct SN_env * z);
30 : : static int r_owned(struct SN_env * z);
31 : : static int r_plural(struct SN_env * z);
32 : : static int r_case_other(struct SN_env * z);
33 : : static int r_case_special(struct SN_env * z);
34 : : static int r_case(struct SN_env * z);
35 : : static int r_v_ending(struct SN_env * z);
36 : : static int r_R1(struct SN_env * z);
37 : : static int r_mark_regions(struct SN_env * z);
38 : :
39 : : static const symbol s_0[] = { 'a' };
40 : : static const symbol s_1[] = { 'e' };
41 : : static const symbol s_2[] = { 'e' };
42 : : static const symbol s_3[] = { 'a' };
43 : : static const symbol s_4[] = { 'a' };
44 : : static const symbol s_5[] = { 'e' };
45 : : static const symbol s_6[] = { 'a' };
46 : : static const symbol s_7[] = { 'e' };
47 : : static const symbol s_8[] = { 'e' };
48 : : static const symbol s_9[] = { 'a' };
49 : : static const symbol s_10[] = { 'a' };
50 : : static const symbol s_11[] = { 'e' };
51 : : static const symbol s_12[] = { 'a' };
52 : : static const symbol s_13[] = { 'e' };
53 : :
54 : : static const symbol s_0_0[2] = { 0xC3, 0xA1 };
55 : : static const symbol s_0_1[2] = { 0xC3, 0xA9 };
56 : : static const struct among a_0[2] = {
57 : : { 2, s_0_0, 0, 1, 0},
58 : : { 2, s_0_1, 0, 2, 0}
59 : : };
60 : :
61 : : static const symbol s_1_0[2] = { 'b', 'b' };
62 : : static const symbol s_1_1[2] = { 'c', 'c' };
63 : : static const symbol s_1_2[2] = { 'd', 'd' };
64 : : static const symbol s_1_3[2] = { 'f', 'f' };
65 : : static const symbol s_1_4[2] = { 'g', 'g' };
66 : : static const symbol s_1_5[2] = { 'j', 'j' };
67 : : static const symbol s_1_6[2] = { 'k', 'k' };
68 : : static const symbol s_1_7[2] = { 'l', 'l' };
69 : : static const symbol s_1_8[2] = { 'm', 'm' };
70 : : static const symbol s_1_9[2] = { 'n', 'n' };
71 : : static const symbol s_1_10[2] = { 'p', 'p' };
72 : : static const symbol s_1_11[2] = { 'r', 'r' };
73 : : static const symbol s_1_12[3] = { 'c', 'c', 's' };
74 : : static const symbol s_1_13[2] = { 's', 's' };
75 : : static const symbol s_1_14[3] = { 'z', 'z', 's' };
76 : : static const symbol s_1_15[2] = { 't', 't' };
77 : : static const symbol s_1_16[2] = { 'v', 'v' };
78 : : static const symbol s_1_17[3] = { 'g', 'g', 'y' };
79 : : static const symbol s_1_18[3] = { 'l', 'l', 'y' };
80 : : static const symbol s_1_19[3] = { 'n', 'n', 'y' };
81 : : static const symbol s_1_20[3] = { 't', 't', 'y' };
82 : : static const symbol s_1_21[3] = { 's', 's', 'z' };
83 : : static const symbol s_1_22[2] = { 'z', 'z' };
84 : : static const struct among a_1[23] = {
85 : : { 2, s_1_0, 0, -1, 0},
86 : : { 2, s_1_1, 0, -1, 0},
87 : : { 2, s_1_2, 0, -1, 0},
88 : : { 2, s_1_3, 0, -1, 0},
89 : : { 2, s_1_4, 0, -1, 0},
90 : : { 2, s_1_5, 0, -1, 0},
91 : : { 2, s_1_6, 0, -1, 0},
92 : : { 2, s_1_7, 0, -1, 0},
93 : : { 2, s_1_8, 0, -1, 0},
94 : : { 2, s_1_9, 0, -1, 0},
95 : : { 2, s_1_10, 0, -1, 0},
96 : : { 2, s_1_11, 0, -1, 0},
97 : : { 3, s_1_12, 0, -1, 0},
98 : : { 2, s_1_13, 0, -1, 0},
99 : : { 3, s_1_14, 0, -1, 0},
100 : : { 2, s_1_15, 0, -1, 0},
101 : : { 2, s_1_16, 0, -1, 0},
102 : : { 3, s_1_17, 0, -1, 0},
103 : : { 3, s_1_18, 0, -1, 0},
104 : : { 3, s_1_19, 0, -1, 0},
105 : : { 3, s_1_20, 0, -1, 0},
106 : : { 3, s_1_21, 0, -1, 0},
107 : : { 2, s_1_22, 0, -1, 0}
108 : : };
109 : :
110 : : static const symbol s_2_0[2] = { 'a', 'l' };
111 : : static const symbol s_2_1[2] = { 'e', 'l' };
112 : : static const struct among a_2[2] = {
113 : : { 2, s_2_0, 0, 1, 0},
114 : : { 2, s_2_1, 0, 1, 0}
115 : : };
116 : :
117 : : static const symbol s_3_0[2] = { 'b', 'a' };
118 : : static const symbol s_3_1[2] = { 'r', 'a' };
119 : : static const symbol s_3_2[2] = { 'b', 'e' };
120 : : static const symbol s_3_3[2] = { 'r', 'e' };
121 : : static const symbol s_3_4[2] = { 'i', 'g' };
122 : : static const symbol s_3_5[3] = { 'n', 'a', 'k' };
123 : : static const symbol s_3_6[3] = { 'n', 'e', 'k' };
124 : : static const symbol s_3_7[3] = { 'v', 'a', 'l' };
125 : : static const symbol s_3_8[3] = { 'v', 'e', 'l' };
126 : : static const symbol s_3_9[2] = { 'u', 'l' };
127 : : static const symbol s_3_10[4] = { 'b', 0xC5, 0x91, 'l' };
128 : : static const symbol s_3_11[4] = { 'r', 0xC5, 0x91, 'l' };
129 : : static const symbol s_3_12[4] = { 't', 0xC5, 0x91, 'l' };
130 : : static const symbol s_3_13[4] = { 'n', 0xC3, 0xA1, 'l' };
131 : : static const symbol s_3_14[4] = { 'n', 0xC3, 0xA9, 'l' };
132 : : static const symbol s_3_15[4] = { 'b', 0xC3, 0xB3, 'l' };
133 : : static const symbol s_3_16[4] = { 'r', 0xC3, 0xB3, 'l' };
134 : : static const symbol s_3_17[4] = { 't', 0xC3, 0xB3, 'l' };
135 : : static const symbol s_3_18[3] = { 0xC3, 0xBC, 'l' };
136 : : static const symbol s_3_19[1] = { 'n' };
137 : : static const symbol s_3_20[2] = { 'a', 'n' };
138 : : static const symbol s_3_21[3] = { 'b', 'a', 'n' };
139 : : static const symbol s_3_22[2] = { 'e', 'n' };
140 : : static const symbol s_3_23[3] = { 'b', 'e', 'n' };
141 : : static const symbol s_3_24[7] = { 'k', 0xC3, 0xA9, 'p', 'p', 'e', 'n' };
142 : : static const symbol s_3_25[2] = { 'o', 'n' };
143 : : static const symbol s_3_26[3] = { 0xC3, 0xB6, 'n' };
144 : : static const symbol s_3_27[5] = { 'k', 0xC3, 0xA9, 'p', 'p' };
145 : : static const symbol s_3_28[3] = { 'k', 'o', 'r' };
146 : : static const symbol s_3_29[1] = { 't' };
147 : : static const symbol s_3_30[2] = { 'a', 't' };
148 : : static const symbol s_3_31[2] = { 'e', 't' };
149 : : static const symbol s_3_32[5] = { 'k', 0xC3, 0xA9, 'n', 't' };
150 : : static const symbol s_3_33[7] = { 'a', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
151 : : static const symbol s_3_34[7] = { 'e', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
152 : : static const symbol s_3_35[7] = { 'o', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
153 : : static const symbol s_3_36[2] = { 'o', 't' };
154 : : static const symbol s_3_37[4] = { 0xC3, 0xA9, 'r', 't' };
155 : : static const symbol s_3_38[3] = { 0xC3, 0xB6, 't' };
156 : : static const symbol s_3_39[3] = { 'h', 'e', 'z' };
157 : : static const symbol s_3_40[3] = { 'h', 'o', 'z' };
158 : : static const symbol s_3_41[4] = { 'h', 0xC3, 0xB6, 'z' };
159 : : static const symbol s_3_42[3] = { 'v', 0xC3, 0xA1 };
160 : : static const symbol s_3_43[3] = { 'v', 0xC3, 0xA9 };
161 : : static const struct among a_3[44] = {
162 : : { 2, s_3_0, 0, -1, 0},
163 : : { 2, s_3_1, 0, -1, 0},
164 : : { 2, s_3_2, 0, -1, 0},
165 : : { 2, s_3_3, 0, -1, 0},
166 : : { 2, s_3_4, 0, -1, 0},
167 : : { 3, s_3_5, 0, -1, 0},
168 : : { 3, s_3_6, 0, -1, 0},
169 : : { 3, s_3_7, 0, -1, 0},
170 : : { 3, s_3_8, 0, -1, 0},
171 : : { 2, s_3_9, 0, -1, 0},
172 : : { 4, s_3_10, 0, -1, 0},
173 : : { 4, s_3_11, 0, -1, 0},
174 : : { 4, s_3_12, 0, -1, 0},
175 : : { 4, s_3_13, 0, -1, 0},
176 : : { 4, s_3_14, 0, -1, 0},
177 : : { 4, s_3_15, 0, -1, 0},
178 : : { 4, s_3_16, 0, -1, 0},
179 : : { 4, s_3_17, 0, -1, 0},
180 : : { 3, s_3_18, 0, -1, 0},
181 : : { 1, s_3_19, 0, -1, 0},
182 : : { 2, s_3_20, -1, -1, 0},
183 : : { 3, s_3_21, -1, -1, 0},
184 : : { 2, s_3_22, -3, -1, 0},
185 : : { 3, s_3_23, -1, -1, 0},
186 : : { 7, s_3_24, -2, -1, 0},
187 : : { 2, s_3_25, -6, -1, 0},
188 : : { 3, s_3_26, -7, -1, 0},
189 : : { 5, s_3_27, 0, -1, 0},
190 : : { 3, s_3_28, 0, -1, 0},
191 : : { 1, s_3_29, 0, -1, 0},
192 : : { 2, s_3_30, -1, -1, 0},
193 : : { 2, s_3_31, -2, -1, 0},
194 : : { 5, s_3_32, -3, -1, 0},
195 : : { 7, s_3_33, -1, -1, 0},
196 : : { 7, s_3_34, -2, -1, 0},
197 : : { 7, s_3_35, -3, -1, 0},
198 : : { 2, s_3_36, -7, -1, 0},
199 : : { 4, s_3_37, -8, -1, 0},
200 : : { 3, s_3_38, -9, -1, 0},
201 : : { 3, s_3_39, 0, -1, 0},
202 : : { 3, s_3_40, 0, -1, 0},
203 : : { 4, s_3_41, 0, -1, 0},
204 : : { 3, s_3_42, 0, -1, 0},
205 : : { 3, s_3_43, 0, -1, 0}
206 : : };
207 : :
208 : : static const symbol s_4_0[3] = { 0xC3, 0xA1, 'n' };
209 : : static const symbol s_4_1[3] = { 0xC3, 0xA9, 'n' };
210 : : static const symbol s_4_2[8] = { 0xC3, 0xA1, 'n', 'k', 0xC3, 0xA9, 'n', 't' };
211 : : static const struct among a_4[3] = {
212 : : { 3, s_4_0, 0, 2, 0},
213 : : { 3, s_4_1, 0, 1, 0},
214 : : { 8, s_4_2, 0, 2, 0}
215 : : };
216 : :
217 : : static const symbol s_5_0[4] = { 's', 't', 'u', 'l' };
218 : : static const symbol s_5_1[5] = { 'a', 's', 't', 'u', 'l' };
219 : : static const symbol s_5_2[6] = { 0xC3, 0xA1, 's', 't', 'u', 'l' };
220 : : static const symbol s_5_3[5] = { 's', 't', 0xC3, 0xBC, 'l' };
221 : : static const symbol s_5_4[6] = { 'e', 's', 't', 0xC3, 0xBC, 'l' };
222 : : static const symbol s_5_5[7] = { 0xC3, 0xA9, 's', 't', 0xC3, 0xBC, 'l' };
223 : : static const struct among a_5[6] = {
224 : : { 4, s_5_0, 0, 1, 0},
225 : : { 5, s_5_1, -1, 1, 0},
226 : : { 6, s_5_2, -2, 2, 0},
227 : : { 5, s_5_3, 0, 1, 0},
228 : : { 6, s_5_4, -1, 1, 0},
229 : : { 7, s_5_5, -2, 3, 0}
230 : : };
231 : :
232 : : static const symbol s_6_0[2] = { 0xC3, 0xA1 };
233 : : static const symbol s_6_1[2] = { 0xC3, 0xA9 };
234 : : static const struct among a_6[2] = {
235 : : { 2, s_6_0, 0, 1, 0},
236 : : { 2, s_6_1, 0, 1, 0}
237 : : };
238 : :
239 : : static const symbol s_7_0[1] = { 'k' };
240 : : static const symbol s_7_1[2] = { 'a', 'k' };
241 : : static const symbol s_7_2[2] = { 'e', 'k' };
242 : : static const symbol s_7_3[2] = { 'o', 'k' };
243 : : static const symbol s_7_4[3] = { 0xC3, 0xA1, 'k' };
244 : : static const symbol s_7_5[3] = { 0xC3, 0xA9, 'k' };
245 : : static const symbol s_7_6[3] = { 0xC3, 0xB6, 'k' };
246 : : static const struct among a_7[7] = {
247 : : { 1, s_7_0, 0, 3, 0},
248 : : { 2, s_7_1, -1, 3, 0},
249 : : { 2, s_7_2, -2, 3, 0},
250 : : { 2, s_7_3, -3, 3, 0},
251 : : { 3, s_7_4, -4, 1, 0},
252 : : { 3, s_7_5, -5, 2, 0},
253 : : { 3, s_7_6, -6, 3, 0}
254 : : };
255 : :
256 : : static const symbol s_8_0[3] = { 0xC3, 0xA9, 'i' };
257 : : static const symbol s_8_1[5] = { 0xC3, 0xA1, 0xC3, 0xA9, 'i' };
258 : : static const symbol s_8_2[5] = { 0xC3, 0xA9, 0xC3, 0xA9, 'i' };
259 : : static const symbol s_8_3[2] = { 0xC3, 0xA9 };
260 : : static const symbol s_8_4[3] = { 'k', 0xC3, 0xA9 };
261 : : static const symbol s_8_5[4] = { 'a', 'k', 0xC3, 0xA9 };
262 : : static const symbol s_8_6[4] = { 'e', 'k', 0xC3, 0xA9 };
263 : : static const symbol s_8_7[4] = { 'o', 'k', 0xC3, 0xA9 };
264 : : static const symbol s_8_8[5] = { 0xC3, 0xA1, 'k', 0xC3, 0xA9 };
265 : : static const symbol s_8_9[5] = { 0xC3, 0xA9, 'k', 0xC3, 0xA9 };
266 : : static const symbol s_8_10[5] = { 0xC3, 0xB6, 'k', 0xC3, 0xA9 };
267 : : static const symbol s_8_11[4] = { 0xC3, 0xA9, 0xC3, 0xA9 };
268 : : static const struct among a_8[12] = {
269 : : { 3, s_8_0, 0, 1, 0},
270 : : { 5, s_8_1, -1, 3, 0},
271 : : { 5, s_8_2, -2, 2, 0},
272 : : { 2, s_8_3, 0, 1, 0},
273 : : { 3, s_8_4, -1, 1, 0},
274 : : { 4, s_8_5, -1, 1, 0},
275 : : { 4, s_8_6, -2, 1, 0},
276 : : { 4, s_8_7, -3, 1, 0},
277 : : { 5, s_8_8, -4, 3, 0},
278 : : { 5, s_8_9, -5, 2, 0},
279 : : { 5, s_8_10, -6, 1, 0},
280 : : { 4, s_8_11, -8, 2, 0}
281 : : };
282 : :
283 : : static const symbol s_9_0[1] = { 'a' };
284 : : static const symbol s_9_1[2] = { 'j', 'a' };
285 : : static const symbol s_9_2[1] = { 'd' };
286 : : static const symbol s_9_3[2] = { 'a', 'd' };
287 : : static const symbol s_9_4[2] = { 'e', 'd' };
288 : : static const symbol s_9_5[2] = { 'o', 'd' };
289 : : static const symbol s_9_6[3] = { 0xC3, 0xA1, 'd' };
290 : : static const symbol s_9_7[3] = { 0xC3, 0xA9, 'd' };
291 : : static const symbol s_9_8[3] = { 0xC3, 0xB6, 'd' };
292 : : static const symbol s_9_9[1] = { 'e' };
293 : : static const symbol s_9_10[2] = { 'j', 'e' };
294 : : static const symbol s_9_11[2] = { 'n', 'k' };
295 : : static const symbol s_9_12[3] = { 'u', 'n', 'k' };
296 : : static const symbol s_9_13[4] = { 0xC3, 0xA1, 'n', 'k' };
297 : : static const symbol s_9_14[4] = { 0xC3, 0xA9, 'n', 'k' };
298 : : static const symbol s_9_15[4] = { 0xC3, 0xBC, 'n', 'k' };
299 : : static const symbol s_9_16[2] = { 'u', 'k' };
300 : : static const symbol s_9_17[3] = { 'j', 'u', 'k' };
301 : : static const symbol s_9_18[5] = { 0xC3, 0xA1, 'j', 'u', 'k' };
302 : : static const symbol s_9_19[3] = { 0xC3, 0xBC, 'k' };
303 : : static const symbol s_9_20[4] = { 'j', 0xC3, 0xBC, 'k' };
304 : : static const symbol s_9_21[6] = { 0xC3, 0xA9, 'j', 0xC3, 0xBC, 'k' };
305 : : static const symbol s_9_22[1] = { 'm' };
306 : : static const symbol s_9_23[2] = { 'a', 'm' };
307 : : static const symbol s_9_24[2] = { 'e', 'm' };
308 : : static const symbol s_9_25[2] = { 'o', 'm' };
309 : : static const symbol s_9_26[3] = { 0xC3, 0xA1, 'm' };
310 : : static const symbol s_9_27[3] = { 0xC3, 0xA9, 'm' };
311 : : static const symbol s_9_28[1] = { 'o' };
312 : : static const symbol s_9_29[2] = { 0xC3, 0xA1 };
313 : : static const symbol s_9_30[2] = { 0xC3, 0xA9 };
314 : : static const struct among a_9[31] = {
315 : : { 1, s_9_0, 0, 1, 0},
316 : : { 2, s_9_1, -1, 1, 0},
317 : : { 1, s_9_2, 0, 1, 0},
318 : : { 2, s_9_3, -1, 1, 0},
319 : : { 2, s_9_4, -2, 1, 0},
320 : : { 2, s_9_5, -3, 1, 0},
321 : : { 3, s_9_6, -4, 2, 0},
322 : : { 3, s_9_7, -5, 3, 0},
323 : : { 3, s_9_8, -6, 1, 0},
324 : : { 1, s_9_9, 0, 1, 0},
325 : : { 2, s_9_10, -1, 1, 0},
326 : : { 2, s_9_11, 0, 1, 0},
327 : : { 3, s_9_12, -1, 1, 0},
328 : : { 4, s_9_13, -2, 2, 0},
329 : : { 4, s_9_14, -3, 3, 0},
330 : : { 4, s_9_15, -4, 1, 0},
331 : : { 2, s_9_16, 0, 1, 0},
332 : : { 3, s_9_17, -1, 1, 0},
333 : : { 5, s_9_18, -1, 2, 0},
334 : : { 3, s_9_19, 0, 1, 0},
335 : : { 4, s_9_20, -1, 1, 0},
336 : : { 6, s_9_21, -1, 3, 0},
337 : : { 1, s_9_22, 0, 1, 0},
338 : : { 2, s_9_23, -1, 1, 0},
339 : : { 2, s_9_24, -2, 1, 0},
340 : : { 2, s_9_25, -3, 1, 0},
341 : : { 3, s_9_26, -4, 2, 0},
342 : : { 3, s_9_27, -5, 3, 0},
343 : : { 1, s_9_28, 0, 1, 0},
344 : : { 2, s_9_29, 0, 2, 0},
345 : : { 2, s_9_30, 0, 3, 0}
346 : : };
347 : :
348 : : static const symbol s_10_0[2] = { 'i', 'd' };
349 : : static const symbol s_10_1[3] = { 'a', 'i', 'd' };
350 : : static const symbol s_10_2[4] = { 'j', 'a', 'i', 'd' };
351 : : static const symbol s_10_3[3] = { 'e', 'i', 'd' };
352 : : static const symbol s_10_4[4] = { 'j', 'e', 'i', 'd' };
353 : : static const symbol s_10_5[4] = { 0xC3, 0xA1, 'i', 'd' };
354 : : static const symbol s_10_6[4] = { 0xC3, 0xA9, 'i', 'd' };
355 : : static const symbol s_10_7[1] = { 'i' };
356 : : static const symbol s_10_8[2] = { 'a', 'i' };
357 : : static const symbol s_10_9[3] = { 'j', 'a', 'i' };
358 : : static const symbol s_10_10[2] = { 'e', 'i' };
359 : : static const symbol s_10_11[3] = { 'j', 'e', 'i' };
360 : : static const symbol s_10_12[3] = { 0xC3, 0xA1, 'i' };
361 : : static const symbol s_10_13[3] = { 0xC3, 0xA9, 'i' };
362 : : static const symbol s_10_14[4] = { 'i', 't', 'e', 'k' };
363 : : static const symbol s_10_15[5] = { 'e', 'i', 't', 'e', 'k' };
364 : : static const symbol s_10_16[6] = { 'j', 'e', 'i', 't', 'e', 'k' };
365 : : static const symbol s_10_17[6] = { 0xC3, 0xA9, 'i', 't', 'e', 'k' };
366 : : static const symbol s_10_18[2] = { 'i', 'k' };
367 : : static const symbol s_10_19[3] = { 'a', 'i', 'k' };
368 : : static const symbol s_10_20[4] = { 'j', 'a', 'i', 'k' };
369 : : static const symbol s_10_21[3] = { 'e', 'i', 'k' };
370 : : static const symbol s_10_22[4] = { 'j', 'e', 'i', 'k' };
371 : : static const symbol s_10_23[4] = { 0xC3, 0xA1, 'i', 'k' };
372 : : static const symbol s_10_24[4] = { 0xC3, 0xA9, 'i', 'k' };
373 : : static const symbol s_10_25[3] = { 'i', 'n', 'k' };
374 : : static const symbol s_10_26[4] = { 'a', 'i', 'n', 'k' };
375 : : static const symbol s_10_27[5] = { 'j', 'a', 'i', 'n', 'k' };
376 : : static const symbol s_10_28[4] = { 'e', 'i', 'n', 'k' };
377 : : static const symbol s_10_29[5] = { 'j', 'e', 'i', 'n', 'k' };
378 : : static const symbol s_10_30[5] = { 0xC3, 0xA1, 'i', 'n', 'k' };
379 : : static const symbol s_10_31[5] = { 0xC3, 0xA9, 'i', 'n', 'k' };
380 : : static const symbol s_10_32[5] = { 'a', 'i', 't', 'o', 'k' };
381 : : static const symbol s_10_33[6] = { 'j', 'a', 'i', 't', 'o', 'k' };
382 : : static const symbol s_10_34[6] = { 0xC3, 0xA1, 'i', 't', 'o', 'k' };
383 : : static const symbol s_10_35[2] = { 'i', 'm' };
384 : : static const symbol s_10_36[3] = { 'a', 'i', 'm' };
385 : : static const symbol s_10_37[4] = { 'j', 'a', 'i', 'm' };
386 : : static const symbol s_10_38[3] = { 'e', 'i', 'm' };
387 : : static const symbol s_10_39[4] = { 'j', 'e', 'i', 'm' };
388 : : static const symbol s_10_40[4] = { 0xC3, 0xA1, 'i', 'm' };
389 : : static const symbol s_10_41[4] = { 0xC3, 0xA9, 'i', 'm' };
390 : : static const struct among a_10[42] = {
391 : : { 2, s_10_0, 0, 1, 0},
392 : : { 3, s_10_1, -1, 1, 0},
393 : : { 4, s_10_2, -1, 1, 0},
394 : : { 3, s_10_3, -3, 1, 0},
395 : : { 4, s_10_4, -1, 1, 0},
396 : : { 4, s_10_5, -5, 2, 0},
397 : : { 4, s_10_6, -6, 3, 0},
398 : : { 1, s_10_7, 0, 1, 0},
399 : : { 2, s_10_8, -1, 1, 0},
400 : : { 3, s_10_9, -1, 1, 0},
401 : : { 2, s_10_10, -3, 1, 0},
402 : : { 3, s_10_11, -1, 1, 0},
403 : : { 3, s_10_12, -5, 2, 0},
404 : : { 3, s_10_13, -6, 3, 0},
405 : : { 4, s_10_14, 0, 1, 0},
406 : : { 5, s_10_15, -1, 1, 0},
407 : : { 6, s_10_16, -1, 1, 0},
408 : : { 6, s_10_17, -3, 3, 0},
409 : : { 2, s_10_18, 0, 1, 0},
410 : : { 3, s_10_19, -1, 1, 0},
411 : : { 4, s_10_20, -1, 1, 0},
412 : : { 3, s_10_21, -3, 1, 0},
413 : : { 4, s_10_22, -1, 1, 0},
414 : : { 4, s_10_23, -5, 2, 0},
415 : : { 4, s_10_24, -6, 3, 0},
416 : : { 3, s_10_25, 0, 1, 0},
417 : : { 4, s_10_26, -1, 1, 0},
418 : : { 5, s_10_27, -1, 1, 0},
419 : : { 4, s_10_28, -3, 1, 0},
420 : : { 5, s_10_29, -1, 1, 0},
421 : : { 5, s_10_30, -5, 2, 0},
422 : : { 5, s_10_31, -6, 3, 0},
423 : : { 5, s_10_32, 0, 1, 0},
424 : : { 6, s_10_33, -1, 1, 0},
425 : : { 6, s_10_34, 0, 2, 0},
426 : : { 2, s_10_35, 0, 1, 0},
427 : : { 3, s_10_36, -1, 1, 0},
428 : : { 4, s_10_37, -1, 1, 0},
429 : : { 3, s_10_38, -3, 1, 0},
430 : : { 4, s_10_39, -1, 1, 0},
431 : : { 4, s_10_40, -5, 2, 0},
432 : : { 4, s_10_41, -6, 3, 0}
433 : : };
434 : :
435 : : static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 36, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1 };
436 : :
437 : 0 : static int r_mark_regions(struct SN_env * z) {
438 : 0 : ((SN_local *)z)->i_p1 = z->l;
439 : 0 : do {
440 : 0 : int v_1 = z->c;
441 [ # # ]: 0 : if (in_grouping_U(z, g_v, 97, 369, 0)) goto lab0;
442 : : {
443 : 0 : int v_2 = z->c;
444 : : {
445 : 0 : int ret = in_grouping_U(z, g_v, 97, 369, 1);
446 [ # # ]: 0 : if (ret < 0) goto lab1;
447 : 0 : z->c += ret;
448 [ # # ]: 0 : }
449 : 0 : ((SN_local *)z)->i_p1 = z->c;
450 : : lab1:
451 : 0 : z->c = v_2;
452 : 0 : }
453 : 0 : break;
454 : : lab0:
455 : 0 : z->c = v_1;
456 : : {
457 : 0 : int ret = out_grouping_U(z, g_v, 97, 369, 1);
458 [ # # ]: 0 : if (ret < 0) return 0;
459 : 0 : z->c += ret;
460 [ # # ]: 0 : }
461 : 0 : ((SN_local *)z)->i_p1 = z->c;
462 [ # # # ]: 0 : } while (0);
463 : 0 : return 1;
464 : 0 : }
465 : :
466 : 0 : static int r_R1(struct SN_env * z) {
467 : 0 : return ((SN_local *)z)->i_p1 <= z->c;
468 : : }
469 : :
470 : 0 : static int r_v_ending(struct SN_env * z) {
471 : 0 : int among_var;
472 : 0 : z->ket = z->c;
473 [ # # # # : 0 : if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
# # ]
474 : 0 : among_var = find_among_b(z, a_0, 2, 0);
475 [ # # ]: 0 : if (!among_var) return 0;
476 : 0 : z->bra = z->c;
477 : : {
478 : 0 : int ret = r_R1(z);
479 [ # # ]: 0 : if (ret <= 0) return ret;
480 [ # # ]: 0 : }
481 [ # # # ]: 0 : switch (among_var) {
482 : : case 1:
483 : : {
484 : 0 : int ret = slice_from_s(z, 1, s_0);
485 [ # # ]: 0 : if (ret < 0) return ret;
486 [ # # ]: 0 : }
487 : 0 : break;
488 : : case 2:
489 : : {
490 : 0 : int ret = slice_from_s(z, 1, s_1);
491 [ # # ]: 0 : if (ret < 0) return ret;
492 [ # # ]: 0 : }
493 : 0 : break;
494 : : }
495 : 0 : return 1;
496 : 0 : }
497 : :
498 : 0 : static int r_double(struct SN_env * z) {
499 : : {
500 : 0 : int v_1 = z->l - z->c;
501 [ # # # # : 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
# # ]
502 [ # # ]: 0 : if (!find_among_b(z, a_1, 23, 0)) return 0;
503 : 0 : z->c = z->l - v_1;
504 [ # # # ]: 0 : }
505 : 0 : return 1;
506 : 0 : }
507 : :
508 : 0 : static int r_undouble(struct SN_env * z) {
509 : : {
510 : 0 : int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
511 [ # # ]: 0 : if (ret < 0) return 0;
512 : 0 : z->c = ret;
513 [ # # ]: 0 : }
514 : 0 : z->ket = z->c;
515 : : {
516 : 0 : int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
517 [ # # ]: 0 : if (ret < 0) return 0;
518 : 0 : z->c = ret;
519 [ # # ]: 0 : }
520 : 0 : z->bra = z->c;
521 : : {
522 : 0 : int ret = slice_del(z);
523 [ # # ]: 0 : if (ret < 0) return ret;
524 [ # # ]: 0 : }
525 : 0 : return 1;
526 : 0 : }
527 : :
528 : 0 : static int r_instrum(struct SN_env * z) {
529 : 0 : z->ket = z->c;
530 [ # # # # ]: 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
531 [ # # ]: 0 : if (!find_among_b(z, a_2, 2, 0)) return 0;
532 : 0 : z->bra = z->c;
533 : : {
534 : 0 : int ret = r_R1(z);
535 [ # # ]: 0 : if (ret <= 0) return ret;
536 [ # # ]: 0 : }
537 : : {
538 : 0 : int ret = r_double(z);
539 [ # # ]: 0 : if (ret <= 0) return ret;
540 [ # # ]: 0 : }
541 : : {
542 : 0 : int ret = slice_del(z);
543 [ # # ]: 0 : if (ret < 0) return ret;
544 [ # # ]: 0 : }
545 : 0 : return r_undouble(z);
546 : 0 : }
547 : :
548 : 0 : static int r_case(struct SN_env * z) {
549 : 0 : z->ket = z->c;
550 [ # # ]: 0 : if (!find_among_b(z, a_3, 44, 0)) return 0;
551 : 0 : z->bra = z->c;
552 : : {
553 : 0 : int ret = r_R1(z);
554 [ # # ]: 0 : if (ret <= 0) return ret;
555 [ # # ]: 0 : }
556 : : {
557 : 0 : int ret = slice_del(z);
558 [ # # ]: 0 : if (ret < 0) return ret;
559 [ # # ]: 0 : }
560 : 0 : return r_v_ending(z);
561 : 0 : }
562 : :
563 : 0 : static int r_case_special(struct SN_env * z) {
564 : 0 : int among_var;
565 : 0 : z->ket = z->c;
566 [ # # # # : 0 : if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0;
# # ]
567 : 0 : among_var = find_among_b(z, a_4, 3, 0);
568 [ # # ]: 0 : if (!among_var) return 0;
569 : 0 : z->bra = z->c;
570 : : {
571 : 0 : int ret = r_R1(z);
572 [ # # ]: 0 : if (ret <= 0) return ret;
573 [ # # ]: 0 : }
574 [ # # # ]: 0 : switch (among_var) {
575 : : case 1:
576 : : {
577 : 0 : int ret = slice_from_s(z, 1, s_2);
578 [ # # ]: 0 : if (ret < 0) return ret;
579 [ # # ]: 0 : }
580 : 0 : break;
581 : : case 2:
582 : : {
583 : 0 : int ret = slice_from_s(z, 1, s_3);
584 [ # # ]: 0 : if (ret < 0) return ret;
585 [ # # ]: 0 : }
586 : 0 : break;
587 : : }
588 : 0 : return 1;
589 : 0 : }
590 : :
591 : 0 : static int r_case_other(struct SN_env * z) {
592 : 0 : int among_var;
593 : 0 : z->ket = z->c;
594 [ # # # # ]: 0 : if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0;
595 : 0 : among_var = find_among_b(z, a_5, 6, 0);
596 [ # # ]: 0 : if (!among_var) return 0;
597 : 0 : z->bra = z->c;
598 : : {
599 : 0 : int ret = r_R1(z);
600 [ # # ]: 0 : if (ret <= 0) return ret;
601 [ # # ]: 0 : }
602 [ # # # # ]: 0 : switch (among_var) {
603 : : case 1:
604 : : {
605 : 0 : int ret = slice_del(z);
606 [ # # ]: 0 : if (ret < 0) return ret;
607 [ # # ]: 0 : }
608 : 0 : break;
609 : : case 2:
610 : : {
611 : 0 : int ret = slice_from_s(z, 1, s_4);
612 [ # # ]: 0 : if (ret < 0) return ret;
613 [ # # ]: 0 : }
614 : 0 : break;
615 : : case 3:
616 : : {
617 : 0 : int ret = slice_from_s(z, 1, s_5);
618 [ # # ]: 0 : if (ret < 0) return ret;
619 [ # # ]: 0 : }
620 : 0 : break;
621 : : }
622 : 0 : return 1;
623 : 0 : }
624 : :
625 : 0 : static int r_factive(struct SN_env * z) {
626 : 0 : z->ket = z->c;
627 [ # # # # : 0 : if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
# # ]
628 [ # # ]: 0 : if (!find_among_b(z, a_6, 2, 0)) return 0;
629 : 0 : z->bra = z->c;
630 : : {
631 : 0 : int ret = r_R1(z);
632 [ # # ]: 0 : if (ret <= 0) return ret;
633 [ # # ]: 0 : }
634 : : {
635 : 0 : int ret = r_double(z);
636 [ # # ]: 0 : if (ret <= 0) return ret;
637 [ # # ]: 0 : }
638 : : {
639 : 0 : int ret = slice_del(z);
640 [ # # ]: 0 : if (ret < 0) return ret;
641 [ # # ]: 0 : }
642 : 0 : return r_undouble(z);
643 : 0 : }
644 : :
645 : 0 : static int r_plural(struct SN_env * z) {
646 : 0 : int among_var;
647 : 0 : z->ket = z->c;
648 [ # # # # ]: 0 : if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0;
649 : 0 : among_var = find_among_b(z, a_7, 7, 0);
650 [ # # ]: 0 : if (!among_var) return 0;
651 : 0 : z->bra = z->c;
652 : : {
653 : 0 : int ret = r_R1(z);
654 [ # # ]: 0 : if (ret <= 0) return ret;
655 [ # # ]: 0 : }
656 [ # # # # ]: 0 : switch (among_var) {
657 : : case 1:
658 : : {
659 : 0 : int ret = slice_from_s(z, 1, s_6);
660 [ # # ]: 0 : if (ret < 0) return ret;
661 [ # # ]: 0 : }
662 : 0 : break;
663 : : case 2:
664 : : {
665 : 0 : int ret = slice_from_s(z, 1, s_7);
666 [ # # ]: 0 : if (ret < 0) return ret;
667 [ # # ]: 0 : }
668 : 0 : break;
669 : : case 3:
670 : : {
671 : 0 : int ret = slice_del(z);
672 [ # # ]: 0 : if (ret < 0) return ret;
673 [ # # ]: 0 : }
674 : 0 : break;
675 : : }
676 : 0 : return 1;
677 : 0 : }
678 : :
679 : 0 : static int r_owned(struct SN_env * z) {
680 : 0 : int among_var;
681 : 0 : z->ket = z->c;
682 [ # # # # : 0 : if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 169)) return 0;
# # ]
683 : 0 : among_var = find_among_b(z, a_8, 12, 0);
684 [ # # ]: 0 : if (!among_var) return 0;
685 : 0 : z->bra = z->c;
686 : : {
687 : 0 : int ret = r_R1(z);
688 [ # # ]: 0 : if (ret <= 0) return ret;
689 [ # # ]: 0 : }
690 [ # # # # ]: 0 : switch (among_var) {
691 : : case 1:
692 : : {
693 : 0 : int ret = slice_del(z);
694 [ # # ]: 0 : if (ret < 0) return ret;
695 [ # # ]: 0 : }
696 : 0 : break;
697 : : case 2:
698 : : {
699 : 0 : int ret = slice_from_s(z, 1, s_8);
700 [ # # ]: 0 : if (ret < 0) return ret;
701 [ # # ]: 0 : }
702 : 0 : break;
703 : : case 3:
704 : : {
705 : 0 : int ret = slice_from_s(z, 1, s_9);
706 [ # # ]: 0 : if (ret < 0) return ret;
707 [ # # ]: 0 : }
708 : 0 : break;
709 : : }
710 : 0 : return 1;
711 : 0 : }
712 : :
713 : 0 : static int r_sing_owner(struct SN_env * z) {
714 : 0 : int among_var;
715 : 0 : z->ket = z->c;
716 : 0 : among_var = find_among_b(z, a_9, 31, 0);
717 [ # # ]: 0 : if (!among_var) return 0;
718 : 0 : z->bra = z->c;
719 : : {
720 : 0 : int ret = r_R1(z);
721 [ # # ]: 0 : if (ret <= 0) return ret;
722 [ # # ]: 0 : }
723 [ # # # # ]: 0 : switch (among_var) {
724 : : case 1:
725 : : {
726 : 0 : int ret = slice_del(z);
727 [ # # ]: 0 : if (ret < 0) return ret;
728 [ # # ]: 0 : }
729 : 0 : break;
730 : : case 2:
731 : : {
732 : 0 : int ret = slice_from_s(z, 1, s_10);
733 [ # # ]: 0 : if (ret < 0) return ret;
734 [ # # ]: 0 : }
735 : 0 : break;
736 : : case 3:
737 : : {
738 : 0 : int ret = slice_from_s(z, 1, s_11);
739 [ # # ]: 0 : if (ret < 0) return ret;
740 [ # # ]: 0 : }
741 : 0 : break;
742 : : }
743 : 0 : return 1;
744 : 0 : }
745 : :
746 : 0 : static int r_plur_owner(struct SN_env * z) {
747 : 0 : int among_var;
748 : 0 : z->ket = z->c;
749 [ # # # # : 0 : if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
# # ]
750 : 0 : among_var = find_among_b(z, a_10, 42, 0);
751 [ # # ]: 0 : if (!among_var) return 0;
752 : 0 : z->bra = z->c;
753 : : {
754 : 0 : int ret = r_R1(z);
755 [ # # ]: 0 : if (ret <= 0) return ret;
756 [ # # ]: 0 : }
757 [ # # # # ]: 0 : switch (among_var) {
758 : : case 1:
759 : : {
760 : 0 : int ret = slice_del(z);
761 [ # # ]: 0 : if (ret < 0) return ret;
762 [ # # ]: 0 : }
763 : 0 : break;
764 : : case 2:
765 : : {
766 : 0 : int ret = slice_from_s(z, 1, s_12);
767 [ # # ]: 0 : if (ret < 0) return ret;
768 [ # # ]: 0 : }
769 : 0 : break;
770 : : case 3:
771 : : {
772 : 0 : int ret = slice_from_s(z, 1, s_13);
773 [ # # ]: 0 : if (ret < 0) return ret;
774 [ # # ]: 0 : }
775 : 0 : break;
776 : : }
777 : 0 : return 1;
778 : 0 : }
779 : :
780 : 0 : extern int hungarian_UTF_8_stem(struct SN_env * z) {
781 : : {
782 : 0 : int v_1 = z->c;
783 : : {
784 : 0 : int ret = r_mark_regions(z);
785 [ # # ]: 0 : if (ret < 0) return ret;
786 [ # # ]: 0 : }
787 : 0 : z->c = v_1;
788 [ # # ]: 0 : }
789 : 0 : z->lb = z->c; z->c = z->l;
790 : : {
791 : 0 : int v_2 = z->l - z->c;
792 : : {
793 : 0 : int ret = r_instrum(z);
794 [ # # ]: 0 : if (ret < 0) return ret;
795 [ # # ]: 0 : }
796 : 0 : z->c = z->l - v_2;
797 [ # # ]: 0 : }
798 : : {
799 : 0 : int v_3 = z->l - z->c;
800 : : {
801 : 0 : int ret = r_case(z);
802 [ # # ]: 0 : if (ret < 0) return ret;
803 [ # # ]: 0 : }
804 : 0 : z->c = z->l - v_3;
805 [ # # ]: 0 : }
806 : : {
807 : 0 : int v_4 = z->l - z->c;
808 : : {
809 : 0 : int ret = r_case_special(z);
810 [ # # ]: 0 : if (ret < 0) return ret;
811 [ # # ]: 0 : }
812 : 0 : z->c = z->l - v_4;
813 [ # # ]: 0 : }
814 : : {
815 : 0 : int v_5 = z->l - z->c;
816 : : {
817 : 0 : int ret = r_case_other(z);
818 [ # # ]: 0 : if (ret < 0) return ret;
819 [ # # ]: 0 : }
820 : 0 : z->c = z->l - v_5;
821 [ # # ]: 0 : }
822 : : {
823 : 0 : int v_6 = z->l - z->c;
824 : : {
825 : 0 : int ret = r_factive(z);
826 [ # # ]: 0 : if (ret < 0) return ret;
827 [ # # ]: 0 : }
828 : 0 : z->c = z->l - v_6;
829 [ # # ]: 0 : }
830 : : {
831 : 0 : int v_7 = z->l - z->c;
832 : : {
833 : 0 : int ret = r_owned(z);
834 [ # # ]: 0 : if (ret < 0) return ret;
835 [ # # ]: 0 : }
836 : 0 : z->c = z->l - v_7;
837 [ # # ]: 0 : }
838 : : {
839 : 0 : int v_8 = z->l - z->c;
840 : : {
841 : 0 : int ret = r_sing_owner(z);
842 [ # # ]: 0 : if (ret < 0) return ret;
843 [ # # ]: 0 : }
844 : 0 : z->c = z->l - v_8;
845 [ # # ]: 0 : }
846 : : {
847 : 0 : int v_9 = z->l - z->c;
848 : : {
849 : 0 : int ret = r_plur_owner(z);
850 [ # # ]: 0 : if (ret < 0) return ret;
851 [ # # ]: 0 : }
852 : 0 : z->c = z->l - v_9;
853 [ # # ]: 0 : }
854 : : {
855 : 0 : int v_10 = z->l - z->c;
856 : : {
857 : 0 : int ret = r_plural(z);
858 [ # # ]: 0 : if (ret < 0) return ret;
859 [ # # ]: 0 : }
860 : 0 : z->c = z->l - v_10;
861 [ # # ]: 0 : }
862 : 0 : z->c = z->lb;
863 : 0 : return 1;
864 : 0 : }
865 : :
866 : 0 : extern struct SN_env * hungarian_UTF_8_create_env(void) {
867 : 0 : struct SN_env * z = SN_new_env(sizeof(SN_local));
868 [ # # ]: 0 : if (z) {
869 : 0 : ((SN_local *)z)->i_p1 = 0;
870 : 0 : }
871 : 0 : return z;
872 : 0 : }
873 : :
874 : 0 : extern void hungarian_UTF_8_close_env(struct SN_env * z) {
875 : 0 : SN_delete_env(z);
876 : 0 : }
877 : :
|