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