PostgreSQL Source Code git master
stem_UTF_8_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_UTF_8_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[2] = { 0xC3, 0xA1 };
55static const symbol s_0_1[2] = { 0xC3, 0xA9 };
56static const struct among a_0[2] = {
57{ 2, s_0_0, 0, 1, 0},
58{ 2, 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[4] = { 'b', 0xC5, 0x91, 'l' };
128static const symbol s_3_11[4] = { 'r', 0xC5, 0x91, 'l' };
129static const symbol s_3_12[4] = { 't', 0xC5, 0x91, 'l' };
130static const symbol s_3_13[4] = { 'n', 0xC3, 0xA1, 'l' };
131static const symbol s_3_14[4] = { 'n', 0xC3, 0xA9, 'l' };
132static const symbol s_3_15[4] = { 'b', 0xC3, 0xB3, 'l' };
133static const symbol s_3_16[4] = { 'r', 0xC3, 0xB3, 'l' };
134static const symbol s_3_17[4] = { 't', 0xC3, 0xB3, 'l' };
135static const symbol s_3_18[3] = { 0xC3, 0xBC, '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[7] = { 'k', 0xC3, 0xA9, 'p', 'p', 'e', 'n' };
142static const symbol s_3_25[2] = { 'o', 'n' };
143static const symbol s_3_26[3] = { 0xC3, 0xB6, 'n' };
144static const symbol s_3_27[5] = { 'k', 0xC3, 0xA9, '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[5] = { 'k', 0xC3, 0xA9, 'n', 't' };
150static const symbol s_3_33[7] = { 'a', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
151static const symbol s_3_34[7] = { 'e', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
152static const symbol s_3_35[7] = { 'o', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
153static const symbol s_3_36[2] = { 'o', 't' };
154static const symbol s_3_37[4] = { 0xC3, 0xA9, 'r', 't' };
155static const symbol s_3_38[3] = { 0xC3, 0xB6, '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[4] = { 'h', 0xC3, 0xB6, 'z' };
159static const symbol s_3_42[3] = { 'v', 0xC3, 0xA1 };
160static const symbol s_3_43[3] = { 'v', 0xC3, 0xA9 };
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{ 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
208static const symbol s_4_0[3] = { 0xC3, 0xA1, 'n' };
209static const symbol s_4_1[3] = { 0xC3, 0xA9, 'n' };
210static const symbol s_4_2[8] = { 0xC3, 0xA1, 'n', 'k', 0xC3, 0xA9, 'n', 't' };
211static 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
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[6] = { 0xC3, 0xA1, 's', 't', 'u', 'l' };
220static const symbol s_5_3[5] = { 's', 't', 0xC3, 0xBC, 'l' };
221static const symbol s_5_4[6] = { 'e', 's', 't', 0xC3, 0xBC, 'l' };
222static const symbol s_5_5[7] = { 0xC3, 0xA9, 's', 't', 0xC3, 0xBC, '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{ 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
232static const symbol s_6_0[2] = { 0xC3, 0xA1 };
233static const symbol s_6_1[2] = { 0xC3, 0xA9 };
234static const struct among a_6[2] = {
235{ 2, s_6_0, 0, 1, 0},
236{ 2, s_6_1, 0, 1, 0}
237};
238
239static const symbol s_7_0[1] = { 'k' };
240static const symbol s_7_1[2] = { 'a', 'k' };
241static const symbol s_7_2[2] = { 'e', 'k' };
242static const symbol s_7_3[2] = { 'o', 'k' };
243static const symbol s_7_4[3] = { 0xC3, 0xA1, 'k' };
244static const symbol s_7_5[3] = { 0xC3, 0xA9, 'k' };
245static const symbol s_7_6[3] = { 0xC3, 0xB6, 'k' };
246static 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
256static const symbol s_8_0[3] = { 0xC3, 0xA9, 'i' };
257static const symbol s_8_1[5] = { 0xC3, 0xA1, 0xC3, 0xA9, 'i' };
258static const symbol s_8_2[5] = { 0xC3, 0xA9, 0xC3, 0xA9, 'i' };
259static const symbol s_8_3[2] = { 0xC3, 0xA9 };
260static const symbol s_8_4[3] = { 'k', 0xC3, 0xA9 };
261static const symbol s_8_5[4] = { 'a', 'k', 0xC3, 0xA9 };
262static const symbol s_8_6[4] = { 'e', 'k', 0xC3, 0xA9 };
263static const symbol s_8_7[4] = { 'o', 'k', 0xC3, 0xA9 };
264static const symbol s_8_8[5] = { 0xC3, 0xA1, 'k', 0xC3, 0xA9 };
265static const symbol s_8_9[5] = { 0xC3, 0xA9, 'k', 0xC3, 0xA9 };
266static const symbol s_8_10[5] = { 0xC3, 0xB6, 'k', 0xC3, 0xA9 };
267static const symbol s_8_11[4] = { 0xC3, 0xA9, 0xC3, 0xA9 };
268static 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
283static const symbol s_9_0[1] = { 'a' };
284static const symbol s_9_1[2] = { 'j', 'a' };
285static const symbol s_9_2[1] = { 'd' };
286static const symbol s_9_3[2] = { 'a', 'd' };
287static const symbol s_9_4[2] = { 'e', 'd' };
288static const symbol s_9_5[2] = { 'o', 'd' };
289static const symbol s_9_6[3] = { 0xC3, 0xA1, 'd' };
290static const symbol s_9_7[3] = { 0xC3, 0xA9, 'd' };
291static const symbol s_9_8[3] = { 0xC3, 0xB6, 'd' };
292static const symbol s_9_9[1] = { 'e' };
293static const symbol s_9_10[2] = { 'j', 'e' };
294static const symbol s_9_11[2] = { 'n', 'k' };
295static const symbol s_9_12[3] = { 'u', 'n', 'k' };
296static const symbol s_9_13[4] = { 0xC3, 0xA1, 'n', 'k' };
297static const symbol s_9_14[4] = { 0xC3, 0xA9, 'n', 'k' };
298static const symbol s_9_15[4] = { 0xC3, 0xBC, 'n', 'k' };
299static const symbol s_9_16[2] = { 'u', 'k' };
300static const symbol s_9_17[3] = { 'j', 'u', 'k' };
301static const symbol s_9_18[5] = { 0xC3, 0xA1, 'j', 'u', 'k' };
302static const symbol s_9_19[3] = { 0xC3, 0xBC, 'k' };
303static const symbol s_9_20[4] = { 'j', 0xC3, 0xBC, 'k' };
304static const symbol s_9_21[6] = { 0xC3, 0xA9, 'j', 0xC3, 0xBC, 'k' };
305static const symbol s_9_22[1] = { 'm' };
306static const symbol s_9_23[2] = { 'a', 'm' };
307static const symbol s_9_24[2] = { 'e', 'm' };
308static const symbol s_9_25[2] = { 'o', 'm' };
309static const symbol s_9_26[3] = { 0xC3, 0xA1, 'm' };
310static const symbol s_9_27[3] = { 0xC3, 0xA9, 'm' };
311static const symbol s_9_28[1] = { 'o' };
312static const symbol s_9_29[2] = { 0xC3, 0xA1 };
313static const symbol s_9_30[2] = { 0xC3, 0xA9 };
314static 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
348static const symbol s_10_0[2] = { 'i', 'd' };
349static const symbol s_10_1[3] = { 'a', 'i', 'd' };
350static const symbol s_10_2[4] = { 'j', 'a', 'i', 'd' };
351static const symbol s_10_3[3] = { 'e', 'i', 'd' };
352static const symbol s_10_4[4] = { 'j', 'e', 'i', 'd' };
353static const symbol s_10_5[4] = { 0xC3, 0xA1, 'i', 'd' };
354static const symbol s_10_6[4] = { 0xC3, 0xA9, 'i', 'd' };
355static const symbol s_10_7[1] = { 'i' };
356static const symbol s_10_8[2] = { 'a', 'i' };
357static const symbol s_10_9[3] = { 'j', 'a', 'i' };
358static const symbol s_10_10[2] = { 'e', 'i' };
359static const symbol s_10_11[3] = { 'j', 'e', 'i' };
360static const symbol s_10_12[3] = { 0xC3, 0xA1, 'i' };
361static const symbol s_10_13[3] = { 0xC3, 0xA9, 'i' };
362static const symbol s_10_14[4] = { 'i', 't', 'e', 'k' };
363static const symbol s_10_15[5] = { 'e', 'i', 't', 'e', 'k' };
364static const symbol s_10_16[6] = { 'j', 'e', 'i', 't', 'e', 'k' };
365static const symbol s_10_17[6] = { 0xC3, 0xA9, 'i', 't', 'e', 'k' };
366static const symbol s_10_18[2] = { 'i', 'k' };
367static const symbol s_10_19[3] = { 'a', 'i', 'k' };
368static const symbol s_10_20[4] = { 'j', 'a', 'i', 'k' };
369static const symbol s_10_21[3] = { 'e', 'i', 'k' };
370static const symbol s_10_22[4] = { 'j', 'e', 'i', 'k' };
371static const symbol s_10_23[4] = { 0xC3, 0xA1, 'i', 'k' };
372static const symbol s_10_24[4] = { 0xC3, 0xA9, 'i', 'k' };
373static const symbol s_10_25[3] = { 'i', 'n', 'k' };
374static const symbol s_10_26[4] = { 'a', 'i', 'n', 'k' };
375static const symbol s_10_27[5] = { 'j', 'a', 'i', 'n', 'k' };
376static const symbol s_10_28[4] = { 'e', 'i', 'n', 'k' };
377static const symbol s_10_29[5] = { 'j', 'e', 'i', 'n', 'k' };
378static const symbol s_10_30[5] = { 0xC3, 0xA1, 'i', 'n', 'k' };
379static const symbol s_10_31[5] = { 0xC3, 0xA9, 'i', 'n', 'k' };
380static const symbol s_10_32[5] = { 'a', 'i', 't', 'o', 'k' };
381static const symbol s_10_33[6] = { 'j', 'a', 'i', 't', 'o', 'k' };
382static const symbol s_10_34[6] = { 0xC3, 0xA1, 'i', 't', 'o', 'k' };
383static const symbol s_10_35[2] = { 'i', 'm' };
384static const symbol s_10_36[3] = { 'a', 'i', 'm' };
385static const symbol s_10_37[4] = { 'j', 'a', 'i', 'm' };
386static const symbol s_10_38[3] = { 'e', 'i', 'm' };
387static const symbol s_10_39[4] = { 'j', 'e', 'i', 'm' };
388static const symbol s_10_40[4] = { 0xC3, 0xA1, 'i', 'm' };
389static const symbol s_10_41[4] = { 0xC3, 0xA9, 'i', 'm' };
390static 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
435static 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
437static int r_mark_regions(struct SN_env * z) {
438 ((SN_local *)z)->i_p1 = z->l;
439 do {
440 int v_1 = z->c;
441 if (in_grouping_U(z, g_v, 97, 369, 0)) goto lab0;
442 {
443 int v_2 = z->c;
444 {
445 int ret = in_grouping_U(z, g_v, 97, 369, 1);
446 if (ret < 0) goto lab1;
447 z->c += ret;
448 }
449 ((SN_local *)z)->i_p1 = z->c;
450 lab1:
451 z->c = v_2;
452 }
453 break;
454 lab0:
455 z->c = v_1;
456 {
457 int ret = out_grouping_U(z, g_v, 97, 369, 1);
458 if (ret < 0) return 0;
459 z->c += ret;
460 }
461 ((SN_local *)z)->i_p1 = z->c;
462 } while (0);
463 return 1;
464}
465
466static int r_R1(struct SN_env * z) {
467 return ((SN_local *)z)->i_p1 <= z->c;
468}
469
470static int r_v_ending(struct SN_env * z) {
471 int among_var;
472 z->ket = z->c;
473 if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
474 among_var = find_among_b(z, a_0, 2, 0);
475 if (!among_var) return 0;
476 z->bra = z->c;
477 {
478 int ret = r_R1(z);
479 if (ret <= 0) return ret;
480 }
481 switch (among_var) {
482 case 1:
483 {
484 int ret = slice_from_s(z, 1, s_0);
485 if (ret < 0) return ret;
486 }
487 break;
488 case 2:
489 {
490 int ret = slice_from_s(z, 1, s_1);
491 if (ret < 0) return ret;
492 }
493 break;
494 }
495 return 1;
496}
497
498static int r_double(struct SN_env * z) {
499 {
500 int v_1 = z->l - z->c;
501 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
502 if (!find_among_b(z, a_1, 23, 0)) return 0;
503 z->c = z->l - v_1;
504 }
505 return 1;
506}
507
508static int r_undouble(struct SN_env * z) {
509 {
510 int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
511 if (ret < 0) return 0;
512 z->c = ret;
513 }
514 z->ket = z->c;
515 {
516 int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
517 if (ret < 0) return 0;
518 z->c = ret;
519 }
520 z->bra = z->c;
521 {
522 int ret = slice_del(z);
523 if (ret < 0) return ret;
524 }
525 return 1;
526}
527
528static int r_instrum(struct SN_env * z) {
529 z->ket = z->c;
530 if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
531 if (!find_among_b(z, a_2, 2, 0)) return 0;
532 z->bra = z->c;
533 {
534 int ret = r_R1(z);
535 if (ret <= 0) return ret;
536 }
537 {
538 int ret = r_double(z);
539 if (ret <= 0) return ret;
540 }
541 {
542 int ret = slice_del(z);
543 if (ret < 0) return ret;
544 }
545 return r_undouble(z);
546}
547
548static int r_case(struct SN_env * z) {
549 z->ket = z->c;
550 if (!find_among_b(z, a_3, 44, 0)) return 0;
551 z->bra = z->c;
552 {
553 int ret = r_R1(z);
554 if (ret <= 0) return ret;
555 }
556 {
557 int ret = slice_del(z);
558 if (ret < 0) return ret;
559 }
560 return r_v_ending(z);
561}
562
563static int r_case_special(struct SN_env * z) {
564 int among_var;
565 z->ket = z->c;
566 if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0;
567 among_var = find_among_b(z, a_4, 3, 0);
568 if (!among_var) return 0;
569 z->bra = z->c;
570 {
571 int ret = r_R1(z);
572 if (ret <= 0) return ret;
573 }
574 switch (among_var) {
575 case 1:
576 {
577 int ret = slice_from_s(z, 1, s_2);
578 if (ret < 0) return ret;
579 }
580 break;
581 case 2:
582 {
583 int ret = slice_from_s(z, 1, s_3);
584 if (ret < 0) return ret;
585 }
586 break;
587 }
588 return 1;
589}
590
591static int r_case_other(struct SN_env * z) {
592 int among_var;
593 z->ket = z->c;
594 if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0;
595 among_var = find_among_b(z, a_5, 6, 0);
596 if (!among_var) return 0;
597 z->bra = z->c;
598 {
599 int ret = r_R1(z);
600 if (ret <= 0) return ret;
601 }
602 switch (among_var) {
603 case 1:
604 {
605 int ret = slice_del(z);
606 if (ret < 0) return ret;
607 }
608 break;
609 case 2:
610 {
611 int ret = slice_from_s(z, 1, s_4);
612 if (ret < 0) return ret;
613 }
614 break;
615 case 3:
616 {
617 int ret = slice_from_s(z, 1, s_5);
618 if (ret < 0) return ret;
619 }
620 break;
621 }
622 return 1;
623}
624
625static int r_factive(struct SN_env * z) {
626 z->ket = z->c;
627 if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
628 if (!find_among_b(z, a_6, 2, 0)) return 0;
629 z->bra = z->c;
630 {
631 int ret = r_R1(z);
632 if (ret <= 0) return ret;
633 }
634 {
635 int ret = r_double(z);
636 if (ret <= 0) return ret;
637 }
638 {
639 int ret = slice_del(z);
640 if (ret < 0) return ret;
641 }
642 return r_undouble(z);
643}
644
645static int r_plural(struct SN_env * z) {
646 int among_var;
647 z->ket = z->c;
648 if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0;
649 among_var = find_among_b(z, a_7, 7, 0);
650 if (!among_var) return 0;
651 z->bra = z->c;
652 {
653 int ret = r_R1(z);
654 if (ret <= 0) return ret;
655 }
656 switch (among_var) {
657 case 1:
658 {
659 int ret = slice_from_s(z, 1, s_6);
660 if (ret < 0) return ret;
661 }
662 break;
663 case 2:
664 {
665 int ret = slice_from_s(z, 1, s_7);
666 if (ret < 0) return ret;
667 }
668 break;
669 case 3:
670 {
671 int ret = slice_del(z);
672 if (ret < 0) return ret;
673 }
674 break;
675 }
676 return 1;
677}
678
679static int r_owned(struct SN_env * z) {
680 int among_var;
681 z->ket = z->c;
682 if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 169)) return 0;
683 among_var = find_among_b(z, a_8, 12, 0);
684 if (!among_var) return 0;
685 z->bra = z->c;
686 {
687 int ret = r_R1(z);
688 if (ret <= 0) return ret;
689 }
690 switch (among_var) {
691 case 1:
692 {
693 int ret = slice_del(z);
694 if (ret < 0) return ret;
695 }
696 break;
697 case 2:
698 {
699 int ret = slice_from_s(z, 1, s_8);
700 if (ret < 0) return ret;
701 }
702 break;
703 case 3:
704 {
705 int ret = slice_from_s(z, 1, s_9);
706 if (ret < 0) return ret;
707 }
708 break;
709 }
710 return 1;
711}
712
713static int r_sing_owner(struct SN_env * z) {
714 int among_var;
715 z->ket = z->c;
716 among_var = find_among_b(z, a_9, 31, 0);
717 if (!among_var) return 0;
718 z->bra = z->c;
719 {
720 int ret = r_R1(z);
721 if (ret <= 0) return ret;
722 }
723 switch (among_var) {
724 case 1:
725 {
726 int ret = slice_del(z);
727 if (ret < 0) return ret;
728 }
729 break;
730 case 2:
731 {
732 int ret = slice_from_s(z, 1, s_10);
733 if (ret < 0) return ret;
734 }
735 break;
736 case 3:
737 {
738 int ret = slice_from_s(z, 1, s_11);
739 if (ret < 0) return ret;
740 }
741 break;
742 }
743 return 1;
744}
745
746static int r_plur_owner(struct SN_env * z) {
747 int among_var;
748 z->ket = z->c;
749 if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
750 among_var = find_among_b(z, a_10, 42, 0);
751 if (!among_var) return 0;
752 z->bra = z->c;
753 {
754 int ret = r_R1(z);
755 if (ret <= 0) return ret;
756 }
757 switch (among_var) {
758 case 1:
759 {
760 int ret = slice_del(z);
761 if (ret < 0) return ret;
762 }
763 break;
764 case 2:
765 {
766 int ret = slice_from_s(z, 1, s_12);
767 if (ret < 0) return ret;
768 }
769 break;
770 case 3:
771 {
772 int ret = slice_from_s(z, 1, s_13);
773 if (ret < 0) return ret;
774 }
775 break;
776 }
777 return 1;
778}
779
780extern int hungarian_UTF_8_stem(struct SN_env * z) {
781 {
782 int v_1 = z->c;
783 {
784 int ret = r_mark_regions(z);
785 if (ret < 0) return ret;
786 }
787 z->c = v_1;
788 }
789 z->lb = z->c; z->c = z->l;
790 {
791 int v_2 = z->l - z->c;
792 {
793 int ret = r_instrum(z);
794 if (ret < 0) return ret;
795 }
796 z->c = z->l - v_2;
797 }
798 {
799 int v_3 = z->l - z->c;
800 {
801 int ret = r_case(z);
802 if (ret < 0) return ret;
803 }
804 z->c = z->l - v_3;
805 }
806 {
807 int v_4 = z->l - z->c;
808 {
809 int ret = r_case_special(z);
810 if (ret < 0) return ret;
811 }
812 z->c = z->l - v_4;
813 }
814 {
815 int v_5 = z->l - z->c;
816 {
817 int ret = r_case_other(z);
818 if (ret < 0) return ret;
819 }
820 z->c = z->l - v_5;
821 }
822 {
823 int v_6 = z->l - z->c;
824 {
825 int ret = r_factive(z);
826 if (ret < 0) return ret;
827 }
828 z->c = z->l - v_6;
829 }
830 {
831 int v_7 = z->l - z->c;
832 {
833 int ret = r_owned(z);
834 if (ret < 0) return ret;
835 }
836 z->c = z->l - v_7;
837 }
838 {
839 int v_8 = z->l - z->c;
840 {
841 int ret = r_sing_owner(z);
842 if (ret < 0) return ret;
843 }
844 z->c = z->l - v_8;
845 }
846 {
847 int v_9 = z->l - z->c;
848 {
849 int ret = r_plur_owner(z);
850 if (ret < 0) return ret;
851 }
852 z->c = z->l - v_9;
853 }
854 {
855 int v_10 = z->l - z->c;
856 {
857 int ret = r_plural(z);
858 if (ret < 0) return ret;
859 }
860 z->c = z->l - v_10;
861 }
862 z->c = z->lb;
863 return 1;
864}
865
866extern struct SN_env * hungarian_UTF_8_create_env(void) {
867 struct SN_env * z = SN_new_env(sizeof(SN_local));
868 if (z) {
869 ((SN_local *)z)->i_p1 = 0;
870 }
871 return z;
872}
873
874extern void hungarian_UTF_8_close_env(struct SN_env * z) {
875 SN_delete_env(z);
876}
877
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_14[4]
static const symbol s_3_8[3]
static const symbol s_3_26[3]
static const symbol s_1_5[2]
static const symbol s_2[]
static const symbol s_9_6[3]
static const symbol s_10_27[5]
static const symbol s_1_13[2]
static const struct among a_2[2]
static const symbol s_3_32[5]
static const symbol s_7_3[2]
static const symbol s_10_1[3]
static const symbol s_3_36[2]
static const symbol s_8_7[4]
static const symbol s_10_36[3]
static const symbol s_4[]
static const symbol s_9_29[2]
static const symbol s_10_24[4]
static const symbol s_3_15[4]
static const symbol s_1_9[2]
static const symbol s_4_1[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_10_38[3]
static const symbol s_9_28[1]
static const symbol s_9_0[1]
static const symbol s_3_41[4]
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 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 int r_factive(struct SN_env *z)
static const struct among a_4[3]
static const symbol s_0_1[2]
static const symbol s_10_4[4]
static const struct among a_10[42]
static const symbol s_5_3[5]
static const symbol s_2_0[2]
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_10_31[5]
static const symbol s_9_24[2]
static const symbol s_1_0[2]
static const symbol s_3_42[3]
static const symbol s_6[]
static const symbol s_10_16[6]
static const symbol s_3_21[3]
static const symbol s_0_0[2]
static const symbol s_9_9[1]
static const symbol s_3_22[2]
static const symbol s_8_10[5]
static const symbol s_3[]
static const symbol s_3_31[2]
static const symbol s_3_0[2]
static const symbol s_10_34[6]
static const symbol s_9_12[3]
static const symbol s_8_8[5]
static const symbol s_10_15[5]
static const symbol s_3_24[7]
static const symbol s_10_37[4]
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_8_0[3]
static const symbol s_3_38[3]
static const symbol s_10_39[4]
static const symbol s_3_11[4]
static const symbol s_13[]
static const symbol s_1_7[2]
static const struct among a_6[2]
static const symbol s_9_30[2]
static const symbol s_10_35[2]
static const symbol s_10_7[1]
static const symbol s_7_5[3]
static int r_plur_owner(struct SN_env *z)
static const symbol s_1_1[2]
static const symbol s_3_10[4]
static const symbol s_9_21[6]
static const symbol s_10_11[3]
static int r_undouble(struct SN_env *z)
static const symbol s_10_17[6]
static const symbol s_3_33[7]
static const symbol s_8_3[2]
static const symbol s_9_23[2]
static const symbol s_3_39[3]
static const symbol s_3_35[7]
static const symbol s_3_12[4]
static const symbol s_1_21[3]
static const symbol s_3_37[4]
static const symbol s_9_15[4]
static const symbol s_7_1[2]
static const symbol s_3_18[3]
static const symbol s_9_1[2]
static const symbol s_9_8[3]
static const symbol s_3_30[2]
static const symbol s_10_30[5]
void hungarian_UTF_8_close_env(struct SN_env *z)
static const symbol s_9_27[3]
static const symbol s_5_5[7]
static int r_owned(struct SN_env *z)
static const symbol s_10_25[3]
static const symbol s_4_2[8]
static const symbol s_9_18[5]
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_10_40[4]
static const symbol s_3_6[3]
static const struct among a_1[23]
static const symbol s_8_11[4]
static const symbol s_5_4[6]
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_3_5[3]
static const symbol s_3_9[2]
static const symbol s_3_19[1]
static const symbol s_9_26[3]
static const symbol s_9_5[2]
static const symbol s_1_11[2]
static const symbol s_1_18[3]
static const struct among a_7[7]
static const symbol s_8_2[5]
static const symbol s_7_2[2]
static const symbol s_10_41[4]
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 const symbol s_8_1[5]
static int r_plural(struct SN_env *z)
static const struct among a_9[31]
int hungarian_UTF_8_stem(struct SN_env *z)
static const symbol s_1_10[2]
static const symbol s_1[]
static const symbol s_3_40[3]
static const symbol s_3_34[7]
static const symbol s_3_17[4]
static const symbol s_1_8[2]
static const symbol s_3_43[3]
static const symbol s_10_8[2]
static const symbol s_3_27[5]
static const symbol s_1_4[2]
static int r_sing_owner(struct SN_env *z)
static const symbol s_9_3[2]
static const symbol s_8_4[3]
static const symbol s_10_19[3]
static const symbol s_9_25[2]
static const symbol s_10_13[3]
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_11[]
static const symbol s_12[]
static const symbol s_6_1[2]
static const symbol s_10_32[5]
static const symbol s_9_19[3]
static const symbol s_3_13[4]
static const symbol s_9_20[4]
static const struct among a_8[12]
static const symbol s_9_7[3]
static const symbol s_8_9[5]
static const symbol s_10_18[2]
static const symbol s_10_26[4]
static const symbol s_7_4[3]
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_3_20[2]
static const symbol s_10_6[4]
static const symbol s_1_16[2]
static const symbol s_3_25[2]
static const symbol s_5_2[6]
static const symbol s_8_6[4]
static const symbol s_9_14[4]
static const struct among a_5[6]
struct SN_env * hungarian_UTF_8_create_env(void)
static const symbol s_9_10[2]
static const symbol s_7_6[3]
static const symbol s_10_23[4]
static const symbol s_9_13[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_5[4]
static const symbol s_6_0[2]
static const symbol s_10_5[4]
static const symbol s_10_12[3]
static const symbol s_8[]
static const symbol s_9[]
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_3_23[3]
static const symbol s_4_0[3]
static const symbol s_3_16[4]
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
int out_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.c:157
int in_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.c:133
SNOWBALL_ERR slice_from_s(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.c:432
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 skip_b_utf8(const symbol *p, int c, int limit, int n)
Definition: utilities.c:68
SNOWBALL_ERR slice_del(struct SN_env *z)
Definition: utilities.c:443