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