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 : 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 : }
442 0 : ((SN_local *)z)->i_p1 = z->c;
443 0 : lab1:
444 0 : z->c = v_2;
445 : }
446 0 : break;
447 0 : 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 : }
454 0 : ((SN_local *)z)->i_p1 = z->c;
455 : } while (0);
456 0 : return 1;
457 : }
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 : 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 : }
474 0 : switch (among_var) {
475 0 : case 1:
476 : {
477 0 : int ret = slice_from_s(z, 1, s_0);
478 0 : if (ret < 0) return ret;
479 : }
480 0 : break;
481 0 : case 2:
482 : {
483 0 : int ret = slice_from_s(z, 1, s_1);
484 0 : if (ret < 0) return ret;
485 : }
486 0 : break;
487 : }
488 0 : return 1;
489 : }
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 : }
498 0 : return 1;
499 : }
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 : }
512 0 : return 1;
513 : }
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 : }
524 : {
525 0 : int ret = r_double(z);
526 0 : if (ret <= 0) return ret;
527 : }
528 : {
529 0 : int ret = slice_del(z);
530 0 : if (ret < 0) return ret;
531 : }
532 0 : return r_undouble(z);
533 : }
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 : }
543 : {
544 0 : int ret = slice_del(z);
545 0 : if (ret < 0) return ret;
546 : }
547 0 : return r_v_ending(z);
548 : }
549 :
550 0 : static int r_case_special(struct SN_env * z) {
551 : 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 : }
561 0 : switch (among_var) {
562 0 : case 1:
563 : {
564 0 : int ret = slice_from_s(z, 1, s_2);
565 0 : if (ret < 0) return ret;
566 : }
567 0 : break;
568 0 : case 2:
569 : {
570 0 : int ret = slice_from_s(z, 1, s_3);
571 0 : if (ret < 0) return ret;
572 : }
573 0 : break;
574 : }
575 0 : return 1;
576 : }
577 :
578 0 : static int r_case_other(struct SN_env * z) {
579 : 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 : }
589 0 : switch (among_var) {
590 0 : case 1:
591 : {
592 0 : int ret = slice_del(z);
593 0 : if (ret < 0) return ret;
594 : }
595 0 : break;
596 0 : case 2:
597 : {
598 0 : int ret = slice_from_s(z, 1, s_4);
599 0 : if (ret < 0) return ret;
600 : }
601 0 : break;
602 0 : case 3:
603 : {
604 0 : int ret = slice_from_s(z, 1, s_5);
605 0 : if (ret < 0) return ret;
606 : }
607 0 : break;
608 : }
609 0 : return 1;
610 : }
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 : }
621 : {
622 0 : int ret = r_double(z);
623 0 : if (ret <= 0) return ret;
624 : }
625 : {
626 0 : int ret = slice_del(z);
627 0 : if (ret < 0) return ret;
628 : }
629 0 : return r_undouble(z);
630 : }
631 :
632 0 : static int r_plural(struct SN_env * z) {
633 : 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 : }
643 0 : switch (among_var) {
644 0 : case 1:
645 : {
646 0 : int ret = slice_from_s(z, 1, s_6);
647 0 : if (ret < 0) return ret;
648 : }
649 0 : break;
650 0 : case 2:
651 : {
652 0 : int ret = slice_from_s(z, 1, s_7);
653 0 : if (ret < 0) return ret;
654 : }
655 0 : break;
656 0 : case 3:
657 : {
658 0 : int ret = slice_del(z);
659 0 : if (ret < 0) return ret;
660 : }
661 0 : break;
662 : }
663 0 : return 1;
664 : }
665 :
666 0 : static int r_owned(struct SN_env * z) {
667 : 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 : }
677 0 : switch (among_var) {
678 0 : case 1:
679 : {
680 0 : int ret = slice_del(z);
681 0 : if (ret < 0) return ret;
682 : }
683 0 : break;
684 0 : case 2:
685 : {
686 0 : int ret = slice_from_s(z, 1, s_8);
687 0 : if (ret < 0) return ret;
688 : }
689 0 : break;
690 0 : case 3:
691 : {
692 0 : int ret = slice_from_s(z, 1, s_9);
693 0 : if (ret < 0) return ret;
694 : }
695 0 : break;
696 : }
697 0 : return 1;
698 : }
699 :
700 0 : static int r_sing_owner(struct SN_env * z) {
701 : 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 : }
710 0 : switch (among_var) {
711 0 : case 1:
712 : {
713 0 : int ret = slice_del(z);
714 0 : if (ret < 0) return ret;
715 : }
716 0 : break;
717 0 : case 2:
718 : {
719 0 : int ret = slice_from_s(z, 1, s_10);
720 0 : if (ret < 0) return ret;
721 : }
722 0 : break;
723 0 : case 3:
724 : {
725 0 : int ret = slice_from_s(z, 1, s_11);
726 0 : if (ret < 0) return ret;
727 : }
728 0 : break;
729 : }
730 0 : return 1;
731 : }
732 :
733 0 : static int r_plur_owner(struct SN_env * z) {
734 : 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 : }
744 0 : switch (among_var) {
745 0 : case 1:
746 : {
747 0 : int ret = slice_del(z);
748 0 : if (ret < 0) return ret;
749 : }
750 0 : break;
751 0 : case 2:
752 : {
753 0 : int ret = slice_from_s(z, 1, s_12);
754 0 : if (ret < 0) return ret;
755 : }
756 0 : break;
757 0 : case 3:
758 : {
759 0 : int ret = slice_from_s(z, 1, s_13);
760 0 : if (ret < 0) return ret;
761 : }
762 0 : break;
763 : }
764 0 : return 1;
765 : }
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 : }
774 0 : z->c = v_1;
775 : }
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 : }
783 0 : z->c = z->l - v_2;
784 : }
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 : }
791 0 : z->c = z->l - v_3;
792 : }
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 : }
799 0 : z->c = z->l - v_4;
800 : }
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 : }
807 0 : z->c = z->l - v_5;
808 : }
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 : }
815 0 : z->c = z->l - v_6;
816 : }
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 : }
823 0 : z->c = z->l - v_7;
824 : }
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 : }
831 0 : z->c = z->l - v_8;
832 : }
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 : }
839 0 : z->c = z->l - v_9;
840 : }
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 : }
847 0 : z->c = z->l - v_10;
848 : }
849 0 : z->c = z->lb;
850 0 : return 1;
851 : }
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 : }
858 0 : return z;
859 : }
860 :
861 0 : extern void hungarian_ISO_8859_2_close_env(struct SN_env * z) {
862 0 : SN_delete_env(z);
863 0 : }
864 :
|