PostgreSQL Source Code git master
stem_UTF_8_turkish.c
Go to the documentation of this file.
1/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2
3#include "header.h"
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8extern int turkish_UTF_8_stem(struct SN_env * z);
9#ifdef __cplusplus
10}
11#endif
12static int r_stem_suffix_chain_before_ki(struct SN_env * z);
13static int r_stem_noun_suffixes(struct SN_env * z);
14static int r_stem_nominal_verb_suffixes(struct SN_env * z);
15static int r_postlude(struct SN_env * z);
16static int r_post_process_last_consonants(struct SN_env * z);
17static int r_more_than_one_syllable_word(struct SN_env * z);
20static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z);
22static int r_mark_ysA(struct SN_env * z);
23static int r_mark_ymUs_(struct SN_env * z);
24static int r_mark_yken(struct SN_env * z);
25static int r_mark_yDU(struct SN_env * z);
26static int r_mark_yUz(struct SN_env * z);
27static int r_mark_yUm(struct SN_env * z);
28static int r_mark_yU(struct SN_env * z);
29static int r_mark_ylA(struct SN_env * z);
30static int r_mark_yA(struct SN_env * z);
31static int r_mark_possessives(struct SN_env * z);
32static int r_mark_sUnUz(struct SN_env * z);
33static int r_mark_sUn(struct SN_env * z);
34static int r_mark_sU(struct SN_env * z);
35static int r_mark_nUz(struct SN_env * z);
36static int r_mark_nUn(struct SN_env * z);
37static int r_mark_nU(struct SN_env * z);
38static int r_mark_ndAn(struct SN_env * z);
39static int r_mark_ndA(struct SN_env * z);
40static int r_mark_ncA(struct SN_env * z);
41static int r_mark_nA(struct SN_env * z);
42static int r_mark_lArI(struct SN_env * z);
43static int r_mark_lAr(struct SN_env * z);
44static int r_mark_ki(struct SN_env * z);
45static int r_mark_DUr(struct SN_env * z);
46static int r_mark_DAn(struct SN_env * z);
47static int r_mark_DA(struct SN_env * z);
48static int r_mark_cAsInA(struct SN_env * z);
49static int r_is_reserved_word(struct SN_env * z);
50static int r_check_vowel_harmony(struct SN_env * z);
52#ifdef __cplusplus
53extern "C" {
54#endif
55
56
57extern struct SN_env * turkish_UTF_8_create_env(void);
58extern void turkish_UTF_8_close_env(struct SN_env * z);
59
60
61#ifdef __cplusplus
62}
63#endif
64static const symbol s_0_0[1] = { 'm' };
65static const symbol s_0_1[1] = { 'n' };
66static const symbol s_0_2[3] = { 'm', 'i', 'z' };
67static const symbol s_0_3[3] = { 'n', 'i', 'z' };
68static const symbol s_0_4[3] = { 'm', 'u', 'z' };
69static const symbol s_0_5[3] = { 'n', 'u', 'z' };
70static const symbol s_0_6[4] = { 'm', 0xC4, 0xB1, 'z' };
71static const symbol s_0_7[4] = { 'n', 0xC4, 0xB1, 'z' };
72static const symbol s_0_8[4] = { 'm', 0xC3, 0xBC, 'z' };
73static const symbol s_0_9[4] = { 'n', 0xC3, 0xBC, 'z' };
74
75static const struct among a_0[10] =
76{
77{ 1, s_0_0, -1, -1, 0},
78{ 1, s_0_1, -1, -1, 0},
79{ 3, s_0_2, -1, -1, 0},
80{ 3, s_0_3, -1, -1, 0},
81{ 3, s_0_4, -1, -1, 0},
82{ 3, s_0_5, -1, -1, 0},
83{ 4, s_0_6, -1, -1, 0},
84{ 4, s_0_7, -1, -1, 0},
85{ 4, s_0_8, -1, -1, 0},
86{ 4, s_0_9, -1, -1, 0}
87};
88
89static const symbol s_1_0[4] = { 'l', 'e', 'r', 'i' };
90static const symbol s_1_1[5] = { 'l', 'a', 'r', 0xC4, 0xB1 };
91
92static const struct among a_1[2] =
93{
94{ 4, s_1_0, -1, -1, 0},
95{ 5, s_1_1, -1, -1, 0}
96};
97
98static const symbol s_2_0[2] = { 'n', 'i' };
99static const symbol s_2_1[2] = { 'n', 'u' };
100static const symbol s_2_2[3] = { 'n', 0xC4, 0xB1 };
101static const symbol s_2_3[3] = { 'n', 0xC3, 0xBC };
102
103static const struct among a_2[4] =
104{
105{ 2, s_2_0, -1, -1, 0},
106{ 2, s_2_1, -1, -1, 0},
107{ 3, s_2_2, -1, -1, 0},
108{ 3, s_2_3, -1, -1, 0}
109};
110
111static const symbol s_3_0[2] = { 'i', 'n' };
112static const symbol s_3_1[2] = { 'u', 'n' };
113static const symbol s_3_2[3] = { 0xC4, 0xB1, 'n' };
114static const symbol s_3_3[3] = { 0xC3, 0xBC, 'n' };
115
116static const struct among a_3[4] =
117{
118{ 2, s_3_0, -1, -1, 0},
119{ 2, s_3_1, -1, -1, 0},
120{ 3, s_3_2, -1, -1, 0},
121{ 3, s_3_3, -1, -1, 0}
122};
123
124static const symbol s_4_0[1] = { 'a' };
125static const symbol s_4_1[1] = { 'e' };
126
127static const struct among a_4[2] =
128{
129{ 1, s_4_0, -1, -1, 0},
130{ 1, s_4_1, -1, -1, 0}
131};
132
133static const symbol s_5_0[2] = { 'n', 'a' };
134static const symbol s_5_1[2] = { 'n', 'e' };
135
136static const struct among a_5[2] =
137{
138{ 2, s_5_0, -1, -1, 0},
139{ 2, s_5_1, -1, -1, 0}
140};
141
142static const symbol s_6_0[2] = { 'd', 'a' };
143static const symbol s_6_1[2] = { 't', 'a' };
144static const symbol s_6_2[2] = { 'd', 'e' };
145static const symbol s_6_3[2] = { 't', 'e' };
146
147static const struct among a_6[4] =
148{
149{ 2, s_6_0, -1, -1, 0},
150{ 2, s_6_1, -1, -1, 0},
151{ 2, s_6_2, -1, -1, 0},
152{ 2, s_6_3, -1, -1, 0}
153};
154
155static const symbol s_7_0[3] = { 'n', 'd', 'a' };
156static const symbol s_7_1[3] = { 'n', 'd', 'e' };
157
158static const struct among a_7[2] =
159{
160{ 3, s_7_0, -1, -1, 0},
161{ 3, s_7_1, -1, -1, 0}
162};
163
164static const symbol s_8_0[3] = { 'd', 'a', 'n' };
165static const symbol s_8_1[3] = { 't', 'a', 'n' };
166static const symbol s_8_2[3] = { 'd', 'e', 'n' };
167static const symbol s_8_3[3] = { 't', 'e', 'n' };
168
169static const struct among a_8[4] =
170{
171{ 3, s_8_0, -1, -1, 0},
172{ 3, s_8_1, -1, -1, 0},
173{ 3, s_8_2, -1, -1, 0},
174{ 3, s_8_3, -1, -1, 0}
175};
176
177static const symbol s_9_0[4] = { 'n', 'd', 'a', 'n' };
178static const symbol s_9_1[4] = { 'n', 'd', 'e', 'n' };
179
180static const struct among a_9[2] =
181{
182{ 4, s_9_0, -1, -1, 0},
183{ 4, s_9_1, -1, -1, 0}
184};
185
186static const symbol s_10_0[2] = { 'l', 'a' };
187static const symbol s_10_1[2] = { 'l', 'e' };
188
189static const struct among a_10[2] =
190{
191{ 2, s_10_0, -1, -1, 0},
192{ 2, s_10_1, -1, -1, 0}
193};
194
195static const symbol s_11_0[2] = { 'c', 'a' };
196static const symbol s_11_1[2] = { 'c', 'e' };
197
198static const struct among a_11[2] =
199{
200{ 2, s_11_0, -1, -1, 0},
201{ 2, s_11_1, -1, -1, 0}
202};
203
204static const symbol s_12_0[2] = { 'i', 'm' };
205static const symbol s_12_1[2] = { 'u', 'm' };
206static const symbol s_12_2[3] = { 0xC4, 0xB1, 'm' };
207static const symbol s_12_3[3] = { 0xC3, 0xBC, 'm' };
208
209static const struct among a_12[4] =
210{
211{ 2, s_12_0, -1, -1, 0},
212{ 2, s_12_1, -1, -1, 0},
213{ 3, s_12_2, -1, -1, 0},
214{ 3, s_12_3, -1, -1, 0}
215};
216
217static const symbol s_13_0[3] = { 's', 'i', 'n' };
218static const symbol s_13_1[3] = { 's', 'u', 'n' };
219static const symbol s_13_2[4] = { 's', 0xC4, 0xB1, 'n' };
220static const symbol s_13_3[4] = { 's', 0xC3, 0xBC, 'n' };
221
222static const struct among a_13[4] =
223{
224{ 3, s_13_0, -1, -1, 0},
225{ 3, s_13_1, -1, -1, 0},
226{ 4, s_13_2, -1, -1, 0},
227{ 4, s_13_3, -1, -1, 0}
228};
229
230static const symbol s_14_0[2] = { 'i', 'z' };
231static const symbol s_14_1[2] = { 'u', 'z' };
232static const symbol s_14_2[3] = { 0xC4, 0xB1, 'z' };
233static const symbol s_14_3[3] = { 0xC3, 0xBC, 'z' };
234
235static const struct among a_14[4] =
236{
237{ 2, s_14_0, -1, -1, 0},
238{ 2, s_14_1, -1, -1, 0},
239{ 3, s_14_2, -1, -1, 0},
240{ 3, s_14_3, -1, -1, 0}
241};
242
243static const symbol s_15_0[5] = { 's', 'i', 'n', 'i', 'z' };
244static const symbol s_15_1[5] = { 's', 'u', 'n', 'u', 'z' };
245static const symbol s_15_2[7] = { 's', 0xC4, 0xB1, 'n', 0xC4, 0xB1, 'z' };
246static const symbol s_15_3[7] = { 's', 0xC3, 0xBC, 'n', 0xC3, 0xBC, 'z' };
247
248static const struct among a_15[4] =
249{
250{ 5, s_15_0, -1, -1, 0},
251{ 5, s_15_1, -1, -1, 0},
252{ 7, s_15_2, -1, -1, 0},
253{ 7, s_15_3, -1, -1, 0}
254};
255
256static const symbol s_16_0[3] = { 'l', 'a', 'r' };
257static const symbol s_16_1[3] = { 'l', 'e', 'r' };
258
259static const struct among a_16[2] =
260{
261{ 3, s_16_0, -1, -1, 0},
262{ 3, s_16_1, -1, -1, 0}
263};
264
265static const symbol s_17_0[3] = { 'n', 'i', 'z' };
266static const symbol s_17_1[3] = { 'n', 'u', 'z' };
267static const symbol s_17_2[4] = { 'n', 0xC4, 0xB1, 'z' };
268static const symbol s_17_3[4] = { 'n', 0xC3, 0xBC, 'z' };
269
270static const struct among a_17[4] =
271{
272{ 3, s_17_0, -1, -1, 0},
273{ 3, s_17_1, -1, -1, 0},
274{ 4, s_17_2, -1, -1, 0},
275{ 4, s_17_3, -1, -1, 0}
276};
277
278static const symbol s_18_0[3] = { 'd', 'i', 'r' };
279static const symbol s_18_1[3] = { 't', 'i', 'r' };
280static const symbol s_18_2[3] = { 'd', 'u', 'r' };
281static const symbol s_18_3[3] = { 't', 'u', 'r' };
282static const symbol s_18_4[4] = { 'd', 0xC4, 0xB1, 'r' };
283static const symbol s_18_5[4] = { 't', 0xC4, 0xB1, 'r' };
284static const symbol s_18_6[4] = { 'd', 0xC3, 0xBC, 'r' };
285static const symbol s_18_7[4] = { 't', 0xC3, 0xBC, 'r' };
286
287static const struct among a_18[8] =
288{
289{ 3, s_18_0, -1, -1, 0},
290{ 3, s_18_1, -1, -1, 0},
291{ 3, s_18_2, -1, -1, 0},
292{ 3, s_18_3, -1, -1, 0},
293{ 4, s_18_4, -1, -1, 0},
294{ 4, s_18_5, -1, -1, 0},
295{ 4, s_18_6, -1, -1, 0},
296{ 4, s_18_7, -1, -1, 0}
297};
298
299static const symbol s_19_0[7] = { 'c', 'a', 's', 0xC4, 0xB1, 'n', 'a' };
300static const symbol s_19_1[6] = { 'c', 'e', 's', 'i', 'n', 'e' };
301
302static const struct among a_19[2] =
303{
304{ 7, s_19_0, -1, -1, 0},
305{ 6, s_19_1, -1, -1, 0}
306};
307
308static const symbol s_20_0[2] = { 'd', 'i' };
309static const symbol s_20_1[2] = { 't', 'i' };
310static const symbol s_20_2[3] = { 'd', 'i', 'k' };
311static const symbol s_20_3[3] = { 't', 'i', 'k' };
312static const symbol s_20_4[3] = { 'd', 'u', 'k' };
313static const symbol s_20_5[3] = { 't', 'u', 'k' };
314static const symbol s_20_6[4] = { 'd', 0xC4, 0xB1, 'k' };
315static const symbol s_20_7[4] = { 't', 0xC4, 0xB1, 'k' };
316static const symbol s_20_8[4] = { 'd', 0xC3, 0xBC, 'k' };
317static const symbol s_20_9[4] = { 't', 0xC3, 0xBC, 'k' };
318static const symbol s_20_10[3] = { 'd', 'i', 'm' };
319static const symbol s_20_11[3] = { 't', 'i', 'm' };
320static const symbol s_20_12[3] = { 'd', 'u', 'm' };
321static const symbol s_20_13[3] = { 't', 'u', 'm' };
322static const symbol s_20_14[4] = { 'd', 0xC4, 0xB1, 'm' };
323static const symbol s_20_15[4] = { 't', 0xC4, 0xB1, 'm' };
324static const symbol s_20_16[4] = { 'd', 0xC3, 0xBC, 'm' };
325static const symbol s_20_17[4] = { 't', 0xC3, 0xBC, 'm' };
326static const symbol s_20_18[3] = { 'd', 'i', 'n' };
327static const symbol s_20_19[3] = { 't', 'i', 'n' };
328static const symbol s_20_20[3] = { 'd', 'u', 'n' };
329static const symbol s_20_21[3] = { 't', 'u', 'n' };
330static const symbol s_20_22[4] = { 'd', 0xC4, 0xB1, 'n' };
331static const symbol s_20_23[4] = { 't', 0xC4, 0xB1, 'n' };
332static const symbol s_20_24[4] = { 'd', 0xC3, 0xBC, 'n' };
333static const symbol s_20_25[4] = { 't', 0xC3, 0xBC, 'n' };
334static const symbol s_20_26[2] = { 'd', 'u' };
335static const symbol s_20_27[2] = { 't', 'u' };
336static const symbol s_20_28[3] = { 'd', 0xC4, 0xB1 };
337static const symbol s_20_29[3] = { 't', 0xC4, 0xB1 };
338static const symbol s_20_30[3] = { 'd', 0xC3, 0xBC };
339static const symbol s_20_31[3] = { 't', 0xC3, 0xBC };
340
341static const struct among a_20[32] =
342{
343{ 2, s_20_0, -1, -1, 0},
344{ 2, s_20_1, -1, -1, 0},
345{ 3, s_20_2, -1, -1, 0},
346{ 3, s_20_3, -1, -1, 0},
347{ 3, s_20_4, -1, -1, 0},
348{ 3, s_20_5, -1, -1, 0},
349{ 4, s_20_6, -1, -1, 0},
350{ 4, s_20_7, -1, -1, 0},
351{ 4, s_20_8, -1, -1, 0},
352{ 4, s_20_9, -1, -1, 0},
353{ 3, s_20_10, -1, -1, 0},
354{ 3, s_20_11, -1, -1, 0},
355{ 3, s_20_12, -1, -1, 0},
356{ 3, s_20_13, -1, -1, 0},
357{ 4, s_20_14, -1, -1, 0},
358{ 4, s_20_15, -1, -1, 0},
359{ 4, s_20_16, -1, -1, 0},
360{ 4, s_20_17, -1, -1, 0},
361{ 3, s_20_18, -1, -1, 0},
362{ 3, s_20_19, -1, -1, 0},
363{ 3, s_20_20, -1, -1, 0},
364{ 3, s_20_21, -1, -1, 0},
365{ 4, s_20_22, -1, -1, 0},
366{ 4, s_20_23, -1, -1, 0},
367{ 4, s_20_24, -1, -1, 0},
368{ 4, s_20_25, -1, -1, 0},
369{ 2, s_20_26, -1, -1, 0},
370{ 2, s_20_27, -1, -1, 0},
371{ 3, s_20_28, -1, -1, 0},
372{ 3, s_20_29, -1, -1, 0},
373{ 3, s_20_30, -1, -1, 0},
374{ 3, s_20_31, -1, -1, 0}
375};
376
377static const symbol s_21_0[2] = { 's', 'a' };
378static const symbol s_21_1[2] = { 's', 'e' };
379static const symbol s_21_2[3] = { 's', 'a', 'k' };
380static const symbol s_21_3[3] = { 's', 'e', 'k' };
381static const symbol s_21_4[3] = { 's', 'a', 'm' };
382static const symbol s_21_5[3] = { 's', 'e', 'm' };
383static const symbol s_21_6[3] = { 's', 'a', 'n' };
384static const symbol s_21_7[3] = { 's', 'e', 'n' };
385
386static const struct among a_21[8] =
387{
388{ 2, s_21_0, -1, -1, 0},
389{ 2, s_21_1, -1, -1, 0},
390{ 3, s_21_2, -1, -1, 0},
391{ 3, s_21_3, -1, -1, 0},
392{ 3, s_21_4, -1, -1, 0},
393{ 3, s_21_5, -1, -1, 0},
394{ 3, s_21_6, -1, -1, 0},
395{ 3, s_21_7, -1, -1, 0}
396};
397
398static const symbol s_22_0[4] = { 'm', 'i', 0xC5, 0x9F };
399static const symbol s_22_1[4] = { 'm', 'u', 0xC5, 0x9F };
400static const symbol s_22_2[5] = { 'm', 0xC4, 0xB1, 0xC5, 0x9F };
401static const symbol s_22_3[5] = { 'm', 0xC3, 0xBC, 0xC5, 0x9F };
402
403static const struct among a_22[4] =
404{
405{ 4, s_22_0, -1, -1, 0},
406{ 4, s_22_1, -1, -1, 0},
407{ 5, s_22_2, -1, -1, 0},
408{ 5, s_22_3, -1, -1, 0}
409};
410
411static const symbol s_23_0[1] = { 'b' };
412static const symbol s_23_1[1] = { 'c' };
413static const symbol s_23_2[1] = { 'd' };
414static const symbol s_23_3[2] = { 0xC4, 0x9F };
415
416static const struct among a_23[4] =
417{
418{ 1, s_23_0, -1, 1, 0},
419{ 1, s_23_1, -1, 2, 0},
420{ 1, s_23_2, -1, 3, 0},
421{ 2, s_23_3, -1, 4, 0}
422};
423
424static const unsigned char g_vowel[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 };
425
426static const unsigned char g_U[] = { 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1 };
427
428static const unsigned char g_vowel1[] = { 1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
429
430static const unsigned char g_vowel2[] = { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 };
431
432static const unsigned char g_vowel3[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
433
434static const unsigned char g_vowel4[] = { 17 };
435
436static const unsigned char g_vowel5[] = { 65 };
437
438static const unsigned char g_vowel6[] = { 65 };
439
440static const symbol s_0[] = { 0xC4, 0xB1 };
441static const symbol s_1[] = { 0xC3, 0xB6 };
442static const symbol s_2[] = { 0xC3, 0xBC };
443static const symbol s_3[] = { 'k', 'i' };
444static const symbol s_4[] = { 'k', 'e', 'n' };
445static const symbol s_5[] = { 'p' };
446static const symbol s_6[] = { 0xC3, 0xA7 };
447static const symbol s_7[] = { 't' };
448static const symbol s_8[] = { 'k' };
449static const symbol s_9[] = { 0xC4, 0xB1 };
450static const symbol s_10[] = { 0xC4, 0xB1 };
451static const symbol s_11[] = { 'i' };
452static const symbol s_12[] = { 'u' };
453static const symbol s_13[] = { 0xC3, 0xB6 };
454static const symbol s_14[] = { 0xC3, 0xBC };
455static const symbol s_15[] = { 0xC3, 0xBC };
456static const symbol s_16[] = { 'a', 'd' };
457static const symbol s_17[] = { 's', 'o', 'y' };
458
459static int r_check_vowel_harmony(struct SN_env * z) {
460 { int m_test1 = z->l - z->c;
461 if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
462 { int m2 = z->l - z->c; (void)m2;
463 if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab1;
464 z->c--;
465 if (out_grouping_b_U(z, g_vowel1, 97, 305, 1) < 0) goto lab1;
466 goto lab0;
467 lab1:
468 z->c = z->l - m2;
469 if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab2;
470 z->c--;
471 if (out_grouping_b_U(z, g_vowel2, 101, 252, 1) < 0) goto lab2;
472 goto lab0;
473 lab2:
474 z->c = z->l - m2;
475 if (!(eq_s_b(z, 2, s_0))) goto lab3;
476 if (out_grouping_b_U(z, g_vowel3, 97, 305, 1) < 0) goto lab3;
477 goto lab0;
478 lab3:
479 z->c = z->l - m2;
480 if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab4;
481 z->c--;
482 if (out_grouping_b_U(z, g_vowel4, 101, 105, 1) < 0) goto lab4;
483 goto lab0;
484 lab4:
485 z->c = z->l - m2;
486 if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5;
487 z->c--;
488 if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab5;
489 goto lab0;
490 lab5:
491 z->c = z->l - m2;
492 if (!(eq_s_b(z, 2, s_1))) goto lab6;
493 if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) goto lab6;
494 goto lab0;
495 lab6:
496 z->c = z->l - m2;
497 if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab7;
498 z->c--;
499 if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab7;
500 goto lab0;
501 lab7:
502 z->c = z->l - m2;
503 if (!(eq_s_b(z, 2, s_2))) return 0;
504 if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) return 0;
505 }
506 lab0:
507 z->c = z->l - m_test1;
508 }
509 return 1;
510}
511
513 { int m1 = z->l - z->c; (void)m1;
514 if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab1;
515 z->c--;
516 { int m_test2 = z->l - z->c;
517 if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1;
518 z->c = z->l - m_test2;
519 }
520 goto lab0;
521 lab1:
522 z->c = z->l - m1;
523 { int m3 = z->l - z->c; (void)m3;
524 { int m_test4 = z->l - z->c;
525 if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab2;
526 z->c--;
527 z->c = z->l - m_test4;
528 }
529 return 0;
530 lab2:
531 z->c = z->l - m3;
532 }
533 { int m_test5 = z->l - z->c;
534 { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
535 if (ret < 0) return 0;
536 z->c = ret;
537 }
538 if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
539 z->c = z->l - m_test5;
540 }
541 }
542lab0:
543 return 1;
544}
545
547 { int m1 = z->l - z->c; (void)m1;
548 if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
549 z->c--;
550 { int m_test2 = z->l - z->c;
551 if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1;
552 z->c = z->l - m_test2;
553 }
554 goto lab0;
555 lab1:
556 z->c = z->l - m1;
557 { int m3 = z->l - z->c; (void)m3;
558 { int m_test4 = z->l - z->c;
559 if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab2;
560 z->c--;
561 z->c = z->l - m_test4;
562 }
563 return 0;
564 lab2:
565 z->c = z->l - m3;
566 }
567 { int m_test5 = z->l - z->c;
568 { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
569 if (ret < 0) return 0;
570 z->c = ret;
571 }
572 if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
573 z->c = z->l - m_test5;
574 }
575 }
576lab0:
577 return 1;
578}
579
581 { int m1 = z->l - z->c; (void)m1;
582 if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
583 z->c--;
584 { int m_test2 = z->l - z->c;
585 if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1;
586 z->c = z->l - m_test2;
587 }
588 goto lab0;
589 lab1:
590 z->c = z->l - m1;
591 { int m3 = z->l - z->c; (void)m3;
592 { int m_test4 = z->l - z->c;
593 if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab2;
594 z->c--;
595 z->c = z->l - m_test4;
596 }
597 return 0;
598 lab2:
599 z->c = z->l - m3;
600 }
601 { int m_test5 = z->l - z->c;
602 { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
603 if (ret < 0) return 0;
604 z->c = ret;
605 }
606 if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
607 z->c = z->l - m_test5;
608 }
609 }
610lab0:
611 return 1;
612}
613
615 { int m1 = z->l - z->c; (void)m1;
616 if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab1;
617 { int m_test2 = z->l - z->c;
618 if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1;
619 z->c = z->l - m_test2;
620 }
621 goto lab0;
622 lab1:
623 z->c = z->l - m1;
624 { int m3 = z->l - z->c; (void)m3;
625 { int m_test4 = z->l - z->c;
626 if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab2;
627 z->c = z->l - m_test4;
628 }
629 return 0;
630 lab2:
631 z->c = z->l - m3;
632 }
633 { int m_test5 = z->l - z->c;
634 { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
635 if (ret < 0) return 0;
636 z->c = ret;
637 }
638 if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
639 z->c = z->l - m_test5;
640 }
641 }
642lab0:
643 return 1;
644}
645
646static int r_mark_possessives(struct SN_env * z) {
647 if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((67133440 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
648 if (!(find_among_b(z, a_0, 10))) return 0;
650 if (ret <= 0) return ret;
651 }
652 return 1;
653}
654
655static int r_mark_sU(struct SN_env * z) {
656 { int ret = r_check_vowel_harmony(z);
657 if (ret <= 0) return ret;
658 }
659 if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0;
661 if (ret <= 0) return ret;
662 }
663 return 1;
664}
665
666static int r_mark_lArI(struct SN_env * z) {
667 if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 177)) return 0;
668 if (!(find_among_b(z, a_1, 2))) return 0;
669 return 1;
670}
671
672static int r_mark_yU(struct SN_env * z) {
673 { int ret = r_check_vowel_harmony(z);
674 if (ret <= 0) return ret;
675 }
676 if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0;
678 if (ret <= 0) return ret;
679 }
680 return 1;
681}
682
683static int r_mark_nU(struct SN_env * z) {
684 { int ret = r_check_vowel_harmony(z);
685 if (ret <= 0) return ret;
686 }
687 if (!(find_among_b(z, a_2, 4))) return 0;
688 return 1;
689}
690
691static int r_mark_nUn(struct SN_env * z) {
692 { int ret = r_check_vowel_harmony(z);
693 if (ret <= 0) return ret;
694 }
695 if (z->c - 1 <= z->lb || z->p[z->c - 1] != 110) return 0;
696 if (!(find_among_b(z, a_3, 4))) return 0;
698 if (ret <= 0) return ret;
699 }
700 return 1;
701}
702
703static int r_mark_yA(struct SN_env * z) {
704 { int ret = r_check_vowel_harmony(z);
705 if (ret <= 0) return ret;
706 }
707 if (z->c <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
708 if (!(find_among_b(z, a_4, 2))) return 0;
710 if (ret <= 0) return ret;
711 }
712 return 1;
713}
714
715static int r_mark_nA(struct SN_env * z) {
716 { int ret = r_check_vowel_harmony(z);
717 if (ret <= 0) return ret;
718 }
719 if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
720 if (!(find_among_b(z, a_5, 2))) return 0;
721 return 1;
722}
723
724static int r_mark_DA(struct SN_env * z) {
725 { int ret = r_check_vowel_harmony(z);
726 if (ret <= 0) return ret;
727 }
728 if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
729 if (!(find_among_b(z, a_6, 4))) return 0;
730 return 1;
731}
732
733static int r_mark_ndA(struct SN_env * z) {
734 { int ret = r_check_vowel_harmony(z);
735 if (ret <= 0) return ret;
736 }
737 if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
738 if (!(find_among_b(z, a_7, 2))) return 0;
739 return 1;
740}
741
742static int r_mark_DAn(struct SN_env * z) {
743 { int ret = r_check_vowel_harmony(z);
744 if (ret <= 0) return ret;
745 }
746 if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
747 if (!(find_among_b(z, a_8, 4))) return 0;
748 return 1;
749}
750
751static int r_mark_ndAn(struct SN_env * z) {
752 { int ret = r_check_vowel_harmony(z);
753 if (ret <= 0) return ret;
754 }
755 if (z->c - 3 <= z->lb || z->p[z->c - 1] != 110) return 0;
756 if (!(find_among_b(z, a_9, 2))) return 0;
757 return 1;
758}
759
760static int r_mark_ylA(struct SN_env * z) {
761 { int ret = r_check_vowel_harmony(z);
762 if (ret <= 0) return ret;
763 }
764 if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
765 if (!(find_among_b(z, a_10, 2))) return 0;
767 if (ret <= 0) return ret;
768 }
769 return 1;
770}
771
772static int r_mark_ki(struct SN_env * z) {
773 if (!(eq_s_b(z, 2, s_3))) return 0;
774 return 1;
775}
776
777static int r_mark_ncA(struct SN_env * z) {
778 { int ret = r_check_vowel_harmony(z);
779 if (ret <= 0) return ret;
780 }
781 if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
782 if (!(find_among_b(z, a_11, 2))) return 0;
784 if (ret <= 0) return ret;
785 }
786 return 1;
787}
788
789static int r_mark_yUm(struct SN_env * z) {
790 { int ret = r_check_vowel_harmony(z);
791 if (ret <= 0) return ret;
792 }
793 if (z->c - 1 <= z->lb || z->p[z->c - 1] != 109) return 0;
794 if (!(find_among_b(z, a_12, 4))) return 0;
796 if (ret <= 0) return ret;
797 }
798 return 1;
799}
800
801static int r_mark_sUn(struct SN_env * z) {
802 { int ret = r_check_vowel_harmony(z);
803 if (ret <= 0) return ret;
804 }
805 if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
806 if (!(find_among_b(z, a_13, 4))) return 0;
807 return 1;
808}
809
810static int r_mark_yUz(struct SN_env * z) {
811 { int ret = r_check_vowel_harmony(z);
812 if (ret <= 0) return ret;
813 }
814 if (z->c - 1 <= z->lb || z->p[z->c - 1] != 122) return 0;
815 if (!(find_among_b(z, a_14, 4))) return 0;
817 if (ret <= 0) return ret;
818 }
819 return 1;
820}
821
822static int r_mark_sUnUz(struct SN_env * z) {
823 if (z->c - 4 <= z->lb || z->p[z->c - 1] != 122) return 0;
824 if (!(find_among_b(z, a_15, 4))) return 0;
825 return 1;
826}
827
828static int r_mark_lAr(struct SN_env * z) {
829 { int ret = r_check_vowel_harmony(z);
830 if (ret <= 0) return ret;
831 }
832 if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
833 if (!(find_among_b(z, a_16, 2))) return 0;
834 return 1;
835}
836
837static int r_mark_nUz(struct SN_env * z) {
838 { int ret = r_check_vowel_harmony(z);
839 if (ret <= 0) return ret;
840 }
841 if (z->c - 2 <= z->lb || z->p[z->c - 1] != 122) return 0;
842 if (!(find_among_b(z, a_17, 4))) return 0;
843 return 1;
844}
845
846static int r_mark_DUr(struct SN_env * z) {
847 { int ret = r_check_vowel_harmony(z);
848 if (ret <= 0) return ret;
849 }
850 if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
851 if (!(find_among_b(z, a_18, 8))) return 0;
852 return 1;
853}
854
855static int r_mark_cAsInA(struct SN_env * z) {
856 if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
857 if (!(find_among_b(z, a_19, 2))) return 0;
858 return 1;
859}
860
861static int r_mark_yDU(struct SN_env * z) {
862 { int ret = r_check_vowel_harmony(z);
863 if (ret <= 0) return ret;
864 }
865 if (!(find_among_b(z, a_20, 32))) return 0;
867 if (ret <= 0) return ret;
868 }
869 return 1;
870}
871
872static int r_mark_ysA(struct SN_env * z) {
873 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((26658 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
874 if (!(find_among_b(z, a_21, 8))) return 0;
876 if (ret <= 0) return ret;
877 }
878 return 1;
879}
880
881static int r_mark_ymUs_(struct SN_env * z) {
882 { int ret = r_check_vowel_harmony(z);
883 if (ret <= 0) return ret;
884 }
885 if (z->c - 3 <= z->lb || z->p[z->c - 1] != 159) return 0;
886 if (!(find_among_b(z, a_22, 4))) return 0;
888 if (ret <= 0) return ret;
889 }
890 return 1;
891}
892
893static int r_mark_yken(struct SN_env * z) {
894 if (!(eq_s_b(z, 3, s_4))) return 0;
896 if (ret <= 0) return ret;
897 }
898 return 1;
899}
900
901static int r_stem_nominal_verb_suffixes(struct SN_env * z) {
902 z->ket = z->c;
903 z->I[0] = 1;
904 { int m1 = z->l - z->c; (void)m1;
905 { int m2 = z->l - z->c; (void)m2;
906 { int ret = r_mark_ymUs_(z);
907 if (ret == 0) goto lab3;
908 if (ret < 0) return ret;
909 }
910 goto lab2;
911 lab3:
912 z->c = z->l - m2;
913 { int ret = r_mark_yDU(z);
914 if (ret == 0) goto lab4;
915 if (ret < 0) return ret;
916 }
917 goto lab2;
918 lab4:
919 z->c = z->l - m2;
920 { int ret = r_mark_ysA(z);
921 if (ret == 0) goto lab5;
922 if (ret < 0) return ret;
923 }
924 goto lab2;
925 lab5:
926 z->c = z->l - m2;
927 { int ret = r_mark_yken(z);
928 if (ret == 0) goto lab1;
929 if (ret < 0) return ret;
930 }
931 }
932 lab2:
933 goto lab0;
934 lab1:
935 z->c = z->l - m1;
936 { int ret = r_mark_cAsInA(z);
937 if (ret == 0) goto lab6;
938 if (ret < 0) return ret;
939 }
940 { int m3 = z->l - z->c; (void)m3;
941 { int ret = r_mark_sUnUz(z);
942 if (ret == 0) goto lab8;
943 if (ret < 0) return ret;
944 }
945 goto lab7;
946 lab8:
947 z->c = z->l - m3;
948 { int ret = r_mark_lAr(z);
949 if (ret == 0) goto lab9;
950 if (ret < 0) return ret;
951 }
952 goto lab7;
953 lab9:
954 z->c = z->l - m3;
955 { int ret = r_mark_yUm(z);
956 if (ret == 0) goto lab10;
957 if (ret < 0) return ret;
958 }
959 goto lab7;
960 lab10:
961 z->c = z->l - m3;
962 { int ret = r_mark_sUn(z);
963 if (ret == 0) goto lab11;
964 if (ret < 0) return ret;
965 }
966 goto lab7;
967 lab11:
968 z->c = z->l - m3;
969 { int ret = r_mark_yUz(z);
970 if (ret == 0) goto lab12;
971 if (ret < 0) return ret;
972 }
973 goto lab7;
974 lab12:
975 z->c = z->l - m3;
976 }
977 lab7:
978 { int ret = r_mark_ymUs_(z);
979 if (ret == 0) goto lab6;
980 if (ret < 0) return ret;
981 }
982 goto lab0;
983 lab6:
984 z->c = z->l - m1;
985 { int ret = r_mark_lAr(z);
986 if (ret == 0) goto lab13;
987 if (ret < 0) return ret;
988 }
989 z->bra = z->c;
990 { int ret = slice_del(z);
991 if (ret < 0) return ret;
992 }
993 { int m4 = z->l - z->c; (void)m4;
994 z->ket = z->c;
995 { int m5 = z->l - z->c; (void)m5;
996 { int ret = r_mark_DUr(z);
997 if (ret == 0) goto lab16;
998 if (ret < 0) return ret;
999 }
1000 goto lab15;
1001 lab16:
1002 z->c = z->l - m5;
1003 { int ret = r_mark_yDU(z);
1004 if (ret == 0) goto lab17;
1005 if (ret < 0) return ret;
1006 }
1007 goto lab15;
1008 lab17:
1009 z->c = z->l - m5;
1010 { int ret = r_mark_ysA(z);
1011 if (ret == 0) goto lab18;
1012 if (ret < 0) return ret;
1013 }
1014 goto lab15;
1015 lab18:
1016 z->c = z->l - m5;
1017 { int ret = r_mark_ymUs_(z);
1018 if (ret == 0) { z->c = z->l - m4; goto lab14; }
1019 if (ret < 0) return ret;
1020 }
1021 }
1022 lab15:
1023 lab14:
1024 ;
1025 }
1026 z->I[0] = 0;
1027 goto lab0;
1028 lab13:
1029 z->c = z->l - m1;
1030 { int ret = r_mark_nUz(z);
1031 if (ret == 0) goto lab19;
1032 if (ret < 0) return ret;
1033 }
1034 { int m6 = z->l - z->c; (void)m6;
1035 { int ret = r_mark_yDU(z);
1036 if (ret == 0) goto lab21;
1037 if (ret < 0) return ret;
1038 }
1039 goto lab20;
1040 lab21:
1041 z->c = z->l - m6;
1042 { int ret = r_mark_ysA(z);
1043 if (ret == 0) goto lab19;
1044 if (ret < 0) return ret;
1045 }
1046 }
1047 lab20:
1048 goto lab0;
1049 lab19:
1050 z->c = z->l - m1;
1051 { int m7 = z->l - z->c; (void)m7;
1052 { int ret = r_mark_sUnUz(z);
1053 if (ret == 0) goto lab24;
1054 if (ret < 0) return ret;
1055 }
1056 goto lab23;
1057 lab24:
1058 z->c = z->l - m7;
1059 { int ret = r_mark_yUz(z);
1060 if (ret == 0) goto lab25;
1061 if (ret < 0) return ret;
1062 }
1063 goto lab23;
1064 lab25:
1065 z->c = z->l - m7;
1066 { int ret = r_mark_sUn(z);
1067 if (ret == 0) goto lab26;
1068 if (ret < 0) return ret;
1069 }
1070 goto lab23;
1071 lab26:
1072 z->c = z->l - m7;
1073 { int ret = r_mark_yUm(z);
1074 if (ret == 0) goto lab22;
1075 if (ret < 0) return ret;
1076 }
1077 }
1078 lab23:
1079 z->bra = z->c;
1080 { int ret = slice_del(z);
1081 if (ret < 0) return ret;
1082 }
1083 { int m8 = z->l - z->c; (void)m8;
1084 z->ket = z->c;
1085 { int ret = r_mark_ymUs_(z);
1086 if (ret == 0) { z->c = z->l - m8; goto lab27; }
1087 if (ret < 0) return ret;
1088 }
1089 lab27:
1090 ;
1091 }
1092 goto lab0;
1093 lab22:
1094 z->c = z->l - m1;
1095 { int ret = r_mark_DUr(z);
1096 if (ret <= 0) return ret;
1097 }
1098 z->bra = z->c;
1099 { int ret = slice_del(z);
1100 if (ret < 0) return ret;
1101 }
1102 { int m9 = z->l - z->c; (void)m9;
1103 z->ket = z->c;
1104 { int m10 = z->l - z->c; (void)m10;
1105 { int ret = r_mark_sUnUz(z);
1106 if (ret == 0) goto lab30;
1107 if (ret < 0) return ret;
1108 }
1109 goto lab29;
1110 lab30:
1111 z->c = z->l - m10;
1112 { int ret = r_mark_lAr(z);
1113 if (ret == 0) goto lab31;
1114 if (ret < 0) return ret;
1115 }
1116 goto lab29;
1117 lab31:
1118 z->c = z->l - m10;
1119 { int ret = r_mark_yUm(z);
1120 if (ret == 0) goto lab32;
1121 if (ret < 0) return ret;
1122 }
1123 goto lab29;
1124 lab32:
1125 z->c = z->l - m10;
1126 { int ret = r_mark_sUn(z);
1127 if (ret == 0) goto lab33;
1128 if (ret < 0) return ret;
1129 }
1130 goto lab29;
1131 lab33:
1132 z->c = z->l - m10;
1133 { int ret = r_mark_yUz(z);
1134 if (ret == 0) goto lab34;
1135 if (ret < 0) return ret;
1136 }
1137 goto lab29;
1138 lab34:
1139 z->c = z->l - m10;
1140 }
1141 lab29:
1142 { int ret = r_mark_ymUs_(z);
1143 if (ret == 0) { z->c = z->l - m9; goto lab28; }
1144 if (ret < 0) return ret;
1145 }
1146 lab28:
1147 ;
1148 }
1149 }
1150lab0:
1151 z->bra = z->c;
1152 { int ret = slice_del(z);
1153 if (ret < 0) return ret;
1154 }
1155 return 1;
1156}
1157
1159 z->ket = z->c;
1160 { int ret = r_mark_ki(z);
1161 if (ret <= 0) return ret;
1162 }
1163 { int m1 = z->l - z->c; (void)m1;
1164 { int ret = r_mark_DA(z);
1165 if (ret == 0) goto lab1;
1166 if (ret < 0) return ret;
1167 }
1168 z->bra = z->c;
1169 { int ret = slice_del(z);
1170 if (ret < 0) return ret;
1171 }
1172 { int m2 = z->l - z->c; (void)m2;
1173 z->ket = z->c;
1174 { int m3 = z->l - z->c; (void)m3;
1175 { int ret = r_mark_lAr(z);
1176 if (ret == 0) goto lab4;
1177 if (ret < 0) return ret;
1178 }
1179 z->bra = z->c;
1180 { int ret = slice_del(z);
1181 if (ret < 0) return ret;
1182 }
1183 { int m4 = z->l - z->c; (void)m4;
1184 { int ret = r_stem_suffix_chain_before_ki(z);
1185 if (ret == 0) { z->c = z->l - m4; goto lab5; }
1186 if (ret < 0) return ret;
1187 }
1188 lab5:
1189 ;
1190 }
1191 goto lab3;
1192 lab4:
1193 z->c = z->l - m3;
1194 { int ret = r_mark_possessives(z);
1195 if (ret == 0) { z->c = z->l - m2; goto lab2; }
1196 if (ret < 0) return ret;
1197 }
1198 z->bra = z->c;
1199 { int ret = slice_del(z);
1200 if (ret < 0) return ret;
1201 }
1202 { int m5 = z->l - z->c; (void)m5;
1203 z->ket = z->c;
1204 { int ret = r_mark_lAr(z);
1205 if (ret == 0) { z->c = z->l - m5; goto lab6; }
1206 if (ret < 0) return ret;
1207 }
1208 z->bra = z->c;
1209 { int ret = slice_del(z);
1210 if (ret < 0) return ret;
1211 }
1212 { int ret = r_stem_suffix_chain_before_ki(z);
1213 if (ret == 0) { z->c = z->l - m5; goto lab6; }
1214 if (ret < 0) return ret;
1215 }
1216 lab6:
1217 ;
1218 }
1219 }
1220 lab3:
1221 lab2:
1222 ;
1223 }
1224 goto lab0;
1225 lab1:
1226 z->c = z->l - m1;
1227 { int ret = r_mark_nUn(z);
1228 if (ret == 0) goto lab7;
1229 if (ret < 0) return ret;
1230 }
1231 z->bra = z->c;
1232 { int ret = slice_del(z);
1233 if (ret < 0) return ret;
1234 }
1235 { int m6 = z->l - z->c; (void)m6;
1236 z->ket = z->c;
1237 { int m7 = z->l - z->c; (void)m7;
1238 { int ret = r_mark_lArI(z);
1239 if (ret == 0) goto lab10;
1240 if (ret < 0) return ret;
1241 }
1242 z->bra = z->c;
1243 { int ret = slice_del(z);
1244 if (ret < 0) return ret;
1245 }
1246 goto lab9;
1247 lab10:
1248 z->c = z->l - m7;
1249 z->ket = z->c;
1250 { int m8 = z->l - z->c; (void)m8;
1251 { int ret = r_mark_possessives(z);
1252 if (ret == 0) goto lab13;
1253 if (ret < 0) return ret;
1254 }
1255 goto lab12;
1256 lab13:
1257 z->c = z->l - m8;
1258 { int ret = r_mark_sU(z);
1259 if (ret == 0) goto lab11;
1260 if (ret < 0) return ret;
1261 }
1262 }
1263 lab12:
1264 z->bra = z->c;
1265 { int ret = slice_del(z);
1266 if (ret < 0) return ret;
1267 }
1268 { int m9 = z->l - z->c; (void)m9;
1269 z->ket = z->c;
1270 { int ret = r_mark_lAr(z);
1271 if (ret == 0) { z->c = z->l - m9; goto lab14; }
1272 if (ret < 0) return ret;
1273 }
1274 z->bra = z->c;
1275 { int ret = slice_del(z);
1276 if (ret < 0) return ret;
1277 }
1278 { int ret = r_stem_suffix_chain_before_ki(z);
1279 if (ret == 0) { z->c = z->l - m9; goto lab14; }
1280 if (ret < 0) return ret;
1281 }
1282 lab14:
1283 ;
1284 }
1285 goto lab9;
1286 lab11:
1287 z->c = z->l - m7;
1288 { int ret = r_stem_suffix_chain_before_ki(z);
1289 if (ret == 0) { z->c = z->l - m6; goto lab8; }
1290 if (ret < 0) return ret;
1291 }
1292 }
1293 lab9:
1294 lab8:
1295 ;
1296 }
1297 goto lab0;
1298 lab7:
1299 z->c = z->l - m1;
1300 { int ret = r_mark_ndA(z);
1301 if (ret <= 0) return ret;
1302 }
1303 { int m10 = z->l - z->c; (void)m10;
1304 { int ret = r_mark_lArI(z);
1305 if (ret == 0) goto lab16;
1306 if (ret < 0) return ret;
1307 }
1308 z->bra = z->c;
1309 { int ret = slice_del(z);
1310 if (ret < 0) return ret;
1311 }
1312 goto lab15;
1313 lab16:
1314 z->c = z->l - m10;
1315 { int ret = r_mark_sU(z);
1316 if (ret == 0) goto lab17;
1317 if (ret < 0) return ret;
1318 }
1319 z->bra = z->c;
1320 { int ret = slice_del(z);
1321 if (ret < 0) return ret;
1322 }
1323 { int m11 = z->l - z->c; (void)m11;
1324 z->ket = z->c;
1325 { int ret = r_mark_lAr(z);
1326 if (ret == 0) { z->c = z->l - m11; goto lab18; }
1327 if (ret < 0) return ret;
1328 }
1329 z->bra = z->c;
1330 { int ret = slice_del(z);
1331 if (ret < 0) return ret;
1332 }
1333 { int ret = r_stem_suffix_chain_before_ki(z);
1334 if (ret == 0) { z->c = z->l - m11; goto lab18; }
1335 if (ret < 0) return ret;
1336 }
1337 lab18:
1338 ;
1339 }
1340 goto lab15;
1341 lab17:
1342 z->c = z->l - m10;
1343 { int ret = r_stem_suffix_chain_before_ki(z);
1344 if (ret <= 0) return ret;
1345 }
1346 }
1347 lab15:
1348 ;
1349 }
1350lab0:
1351 return 1;
1352}
1353
1354static int r_stem_noun_suffixes(struct SN_env * z) {
1355 { int m1 = z->l - z->c; (void)m1;
1356 z->ket = z->c;
1357 { int ret = r_mark_lAr(z);
1358 if (ret == 0) goto lab1;
1359 if (ret < 0) return ret;
1360 }
1361 z->bra = z->c;
1362 { int ret = slice_del(z);
1363 if (ret < 0) return ret;
1364 }
1365 { int m2 = z->l - z->c; (void)m2;
1366 { int ret = r_stem_suffix_chain_before_ki(z);
1367 if (ret == 0) { z->c = z->l - m2; goto lab2; }
1368 if (ret < 0) return ret;
1369 }
1370 lab2:
1371 ;
1372 }
1373 goto lab0;
1374 lab1:
1375 z->c = z->l - m1;
1376 z->ket = z->c;
1377 { int ret = r_mark_ncA(z);
1378 if (ret == 0) goto lab3;
1379 if (ret < 0) return ret;
1380 }
1381 z->bra = z->c;
1382 { int ret = slice_del(z);
1383 if (ret < 0) return ret;
1384 }
1385 { int m3 = z->l - z->c; (void)m3;
1386 { int m4 = z->l - z->c; (void)m4;
1387 z->ket = z->c;
1388 { int ret = r_mark_lArI(z);
1389 if (ret == 0) goto lab6;
1390 if (ret < 0) return ret;
1391 }
1392 z->bra = z->c;
1393 { int ret = slice_del(z);
1394 if (ret < 0) return ret;
1395 }
1396 goto lab5;
1397 lab6:
1398 z->c = z->l - m4;
1399 z->ket = z->c;
1400 { int m5 = z->l - z->c; (void)m5;
1401 { int ret = r_mark_possessives(z);
1402 if (ret == 0) goto lab9;
1403 if (ret < 0) return ret;
1404 }
1405 goto lab8;
1406 lab9:
1407 z->c = z->l - m5;
1408 { int ret = r_mark_sU(z);
1409 if (ret == 0) goto lab7;
1410 if (ret < 0) return ret;
1411 }
1412 }
1413 lab8:
1414 z->bra = z->c;
1415 { int ret = slice_del(z);
1416 if (ret < 0) return ret;
1417 }
1418 { int m6 = z->l - z->c; (void)m6;
1419 z->ket = z->c;
1420 { int ret = r_mark_lAr(z);
1421 if (ret == 0) { z->c = z->l - m6; goto lab10; }
1422 if (ret < 0) return ret;
1423 }
1424 z->bra = z->c;
1425 { int ret = slice_del(z);
1426 if (ret < 0) return ret;
1427 }
1428 { int ret = r_stem_suffix_chain_before_ki(z);
1429 if (ret == 0) { z->c = z->l - m6; goto lab10; }
1430 if (ret < 0) return ret;
1431 }
1432 lab10:
1433 ;
1434 }
1435 goto lab5;
1436 lab7:
1437 z->c = z->l - m4;
1438 z->ket = z->c;
1439 { int ret = r_mark_lAr(z);
1440 if (ret == 0) { z->c = z->l - m3; goto lab4; }
1441 if (ret < 0) return ret;
1442 }
1443 z->bra = z->c;
1444 { int ret = slice_del(z);
1445 if (ret < 0) return ret;
1446 }
1447 { int ret = r_stem_suffix_chain_before_ki(z);
1448 if (ret == 0) { z->c = z->l - m3; goto lab4; }
1449 if (ret < 0) return ret;
1450 }
1451 }
1452 lab5:
1453 lab4:
1454 ;
1455 }
1456 goto lab0;
1457 lab3:
1458 z->c = z->l - m1;
1459 z->ket = z->c;
1460 { int m7 = z->l - z->c; (void)m7;
1461 { int ret = r_mark_ndA(z);
1462 if (ret == 0) goto lab13;
1463 if (ret < 0) return ret;
1464 }
1465 goto lab12;
1466 lab13:
1467 z->c = z->l - m7;
1468 { int ret = r_mark_nA(z);
1469 if (ret == 0) goto lab11;
1470 if (ret < 0) return ret;
1471 }
1472 }
1473 lab12:
1474 { int m8 = z->l - z->c; (void)m8;
1475 { int ret = r_mark_lArI(z);
1476 if (ret == 0) goto lab15;
1477 if (ret < 0) return ret;
1478 }
1479 z->bra = z->c;
1480 { int ret = slice_del(z);
1481 if (ret < 0) return ret;
1482 }
1483 goto lab14;
1484 lab15:
1485 z->c = z->l - m8;
1486 { int ret = r_mark_sU(z);
1487 if (ret == 0) goto lab16;
1488 if (ret < 0) return ret;
1489 }
1490 z->bra = z->c;
1491 { int ret = slice_del(z);
1492 if (ret < 0) return ret;
1493 }
1494 { int m9 = z->l - z->c; (void)m9;
1495 z->ket = z->c;
1496 { int ret = r_mark_lAr(z);
1497 if (ret == 0) { z->c = z->l - m9; goto lab17; }
1498 if (ret < 0) return ret;
1499 }
1500 z->bra = z->c;
1501 { int ret = slice_del(z);
1502 if (ret < 0) return ret;
1503 }
1504 { int ret = r_stem_suffix_chain_before_ki(z);
1505 if (ret == 0) { z->c = z->l - m9; goto lab17; }
1506 if (ret < 0) return ret;
1507 }
1508 lab17:
1509 ;
1510 }
1511 goto lab14;
1512 lab16:
1513 z->c = z->l - m8;
1514 { int ret = r_stem_suffix_chain_before_ki(z);
1515 if (ret == 0) goto lab11;
1516 if (ret < 0) return ret;
1517 }
1518 }
1519 lab14:
1520 goto lab0;
1521 lab11:
1522 z->c = z->l - m1;
1523 z->ket = z->c;
1524 { int m10 = z->l - z->c; (void)m10;
1525 { int ret = r_mark_ndAn(z);
1526 if (ret == 0) goto lab20;
1527 if (ret < 0) return ret;
1528 }
1529 goto lab19;
1530 lab20:
1531 z->c = z->l - m10;
1532 { int ret = r_mark_nU(z);
1533 if (ret == 0) goto lab18;
1534 if (ret < 0) return ret;
1535 }
1536 }
1537 lab19:
1538 { int m11 = z->l - z->c; (void)m11;
1539 { int ret = r_mark_sU(z);
1540 if (ret == 0) goto lab22;
1541 if (ret < 0) return ret;
1542 }
1543 z->bra = z->c;
1544 { int ret = slice_del(z);
1545 if (ret < 0) return ret;
1546 }
1547 { int m12 = z->l - z->c; (void)m12;
1548 z->ket = z->c;
1549 { int ret = r_mark_lAr(z);
1550 if (ret == 0) { z->c = z->l - m12; goto lab23; }
1551 if (ret < 0) return ret;
1552 }
1553 z->bra = z->c;
1554 { int ret = slice_del(z);
1555 if (ret < 0) return ret;
1556 }
1557 { int ret = r_stem_suffix_chain_before_ki(z);
1558 if (ret == 0) { z->c = z->l - m12; goto lab23; }
1559 if (ret < 0) return ret;
1560 }
1561 lab23:
1562 ;
1563 }
1564 goto lab21;
1565 lab22:
1566 z->c = z->l - m11;
1567 { int ret = r_mark_lArI(z);
1568 if (ret == 0) goto lab18;
1569 if (ret < 0) return ret;
1570 }
1571 }
1572 lab21:
1573 goto lab0;
1574 lab18:
1575 z->c = z->l - m1;
1576 z->ket = z->c;
1577 { int ret = r_mark_DAn(z);
1578 if (ret == 0) goto lab24;
1579 if (ret < 0) return ret;
1580 }
1581 z->bra = z->c;
1582 { int ret = slice_del(z);
1583 if (ret < 0) return ret;
1584 }
1585 { int m13 = z->l - z->c; (void)m13;
1586 z->ket = z->c;
1587 { int m14 = z->l - z->c; (void)m14;
1588 { int ret = r_mark_possessives(z);
1589 if (ret == 0) goto lab27;
1590 if (ret < 0) return ret;
1591 }
1592 z->bra = z->c;
1593 { int ret = slice_del(z);
1594 if (ret < 0) return ret;
1595 }
1596 { int m15 = z->l - z->c; (void)m15;
1597 z->ket = z->c;
1598 { int ret = r_mark_lAr(z);
1599 if (ret == 0) { z->c = z->l - m15; goto lab28; }
1600 if (ret < 0) return ret;
1601 }
1602 z->bra = z->c;
1603 { int ret = slice_del(z);
1604 if (ret < 0) return ret;
1605 }
1606 { int ret = r_stem_suffix_chain_before_ki(z);
1607 if (ret == 0) { z->c = z->l - m15; goto lab28; }
1608 if (ret < 0) return ret;
1609 }
1610 lab28:
1611 ;
1612 }
1613 goto lab26;
1614 lab27:
1615 z->c = z->l - m14;
1616 { int ret = r_mark_lAr(z);
1617 if (ret == 0) goto lab29;
1618 if (ret < 0) return ret;
1619 }
1620 z->bra = z->c;
1621 { int ret = slice_del(z);
1622 if (ret < 0) return ret;
1623 }
1624 { int m16 = z->l - z->c; (void)m16;
1625 { int ret = r_stem_suffix_chain_before_ki(z);
1626 if (ret == 0) { z->c = z->l - m16; goto lab30; }
1627 if (ret < 0) return ret;
1628 }
1629 lab30:
1630 ;
1631 }
1632 goto lab26;
1633 lab29:
1634 z->c = z->l - m14;
1635 { int ret = r_stem_suffix_chain_before_ki(z);
1636 if (ret == 0) { z->c = z->l - m13; goto lab25; }
1637 if (ret < 0) return ret;
1638 }
1639 }
1640 lab26:
1641 lab25:
1642 ;
1643 }
1644 goto lab0;
1645 lab24:
1646 z->c = z->l - m1;
1647 z->ket = z->c;
1648 { int m17 = z->l - z->c; (void)m17;
1649 { int ret = r_mark_nUn(z);
1650 if (ret == 0) goto lab33;
1651 if (ret < 0) return ret;
1652 }
1653 goto lab32;
1654 lab33:
1655 z->c = z->l - m17;
1656 { int ret = r_mark_ylA(z);
1657 if (ret == 0) goto lab31;
1658 if (ret < 0) return ret;
1659 }
1660 }
1661 lab32:
1662 z->bra = z->c;
1663 { int ret = slice_del(z);
1664 if (ret < 0) return ret;
1665 }
1666 { int m18 = z->l - z->c; (void)m18;
1667 { int m19 = z->l - z->c; (void)m19;
1668 z->ket = z->c;
1669 { int ret = r_mark_lAr(z);
1670 if (ret == 0) goto lab36;
1671 if (ret < 0) return ret;
1672 }
1673 z->bra = z->c;
1674 { int ret = slice_del(z);
1675 if (ret < 0) return ret;
1676 }
1677 { int ret = r_stem_suffix_chain_before_ki(z);
1678 if (ret == 0) goto lab36;
1679 if (ret < 0) return ret;
1680 }
1681 goto lab35;
1682 lab36:
1683 z->c = z->l - m19;
1684 z->ket = z->c;
1685 { int m20 = z->l - z->c; (void)m20;
1686 { int ret = r_mark_possessives(z);
1687 if (ret == 0) goto lab39;
1688 if (ret < 0) return ret;
1689 }
1690 goto lab38;
1691 lab39:
1692 z->c = z->l - m20;
1693 { int ret = r_mark_sU(z);
1694 if (ret == 0) goto lab37;
1695 if (ret < 0) return ret;
1696 }
1697 }
1698 lab38:
1699 z->bra = z->c;
1700 { int ret = slice_del(z);
1701 if (ret < 0) return ret;
1702 }
1703 { int m21 = z->l - z->c; (void)m21;
1704 z->ket = z->c;
1705 { int ret = r_mark_lAr(z);
1706 if (ret == 0) { z->c = z->l - m21; goto lab40; }
1707 if (ret < 0) return ret;
1708 }
1709 z->bra = z->c;
1710 { int ret = slice_del(z);
1711 if (ret < 0) return ret;
1712 }
1713 { int ret = r_stem_suffix_chain_before_ki(z);
1714 if (ret == 0) { z->c = z->l - m21; goto lab40; }
1715 if (ret < 0) return ret;
1716 }
1717 lab40:
1718 ;
1719 }
1720 goto lab35;
1721 lab37:
1722 z->c = z->l - m19;
1723 { int ret = r_stem_suffix_chain_before_ki(z);
1724 if (ret == 0) { z->c = z->l - m18; goto lab34; }
1725 if (ret < 0) return ret;
1726 }
1727 }
1728 lab35:
1729 lab34:
1730 ;
1731 }
1732 goto lab0;
1733 lab31:
1734 z->c = z->l - m1;
1735 z->ket = z->c;
1736 { int ret = r_mark_lArI(z);
1737 if (ret == 0) goto lab41;
1738 if (ret < 0) return ret;
1739 }
1740 z->bra = z->c;
1741 { int ret = slice_del(z);
1742 if (ret < 0) return ret;
1743 }
1744 goto lab0;
1745 lab41:
1746 z->c = z->l - m1;
1747 { int ret = r_stem_suffix_chain_before_ki(z);
1748 if (ret == 0) goto lab42;
1749 if (ret < 0) return ret;
1750 }
1751 goto lab0;
1752 lab42:
1753 z->c = z->l - m1;
1754 z->ket = z->c;
1755 { int m22 = z->l - z->c; (void)m22;
1756 { int ret = r_mark_DA(z);
1757 if (ret == 0) goto lab45;
1758 if (ret < 0) return ret;
1759 }
1760 goto lab44;
1761 lab45:
1762 z->c = z->l - m22;
1763 { int ret = r_mark_yU(z);
1764 if (ret == 0) goto lab46;
1765 if (ret < 0) return ret;
1766 }
1767 goto lab44;
1768 lab46:
1769 z->c = z->l - m22;
1770 { int ret = r_mark_yA(z);
1771 if (ret == 0) goto lab43;
1772 if (ret < 0) return ret;
1773 }
1774 }
1775 lab44:
1776 z->bra = z->c;
1777 { int ret = slice_del(z);
1778 if (ret < 0) return ret;
1779 }
1780 { int m23 = z->l - z->c; (void)m23;
1781 z->ket = z->c;
1782 { int m24 = z->l - z->c; (void)m24;
1783 { int ret = r_mark_possessives(z);
1784 if (ret == 0) goto lab49;
1785 if (ret < 0) return ret;
1786 }
1787 z->bra = z->c;
1788 { int ret = slice_del(z);
1789 if (ret < 0) return ret;
1790 }
1791 { int m25 = z->l - z->c; (void)m25;
1792 z->ket = z->c;
1793 { int ret = r_mark_lAr(z);
1794 if (ret == 0) { z->c = z->l - m25; goto lab50; }
1795 if (ret < 0) return ret;
1796 }
1797 lab50:
1798 ;
1799 }
1800 goto lab48;
1801 lab49:
1802 z->c = z->l - m24;
1803 { int ret = r_mark_lAr(z);
1804 if (ret == 0) { z->c = z->l - m23; goto lab47; }
1805 if (ret < 0) return ret;
1806 }
1807 }
1808 lab48:
1809 z->bra = z->c;
1810 { int ret = slice_del(z);
1811 if (ret < 0) return ret;
1812 }
1813 z->ket = z->c;
1814 { int ret = r_stem_suffix_chain_before_ki(z);
1815 if (ret == 0) { z->c = z->l - m23; goto lab47; }
1816 if (ret < 0) return ret;
1817 }
1818 lab47:
1819 ;
1820 }
1821 goto lab0;
1822 lab43:
1823 z->c = z->l - m1;
1824 z->ket = z->c;
1825 { int m26 = z->l - z->c; (void)m26;
1826 { int ret = r_mark_possessives(z);
1827 if (ret == 0) goto lab52;
1828 if (ret < 0) return ret;
1829 }
1830 goto lab51;
1831 lab52:
1832 z->c = z->l - m26;
1833 { int ret = r_mark_sU(z);
1834 if (ret <= 0) return ret;
1835 }
1836 }
1837 lab51:
1838 z->bra = z->c;
1839 { int ret = slice_del(z);
1840 if (ret < 0) return ret;
1841 }
1842 { int m27 = z->l - z->c; (void)m27;
1843 z->ket = z->c;
1844 { int ret = r_mark_lAr(z);
1845 if (ret == 0) { z->c = z->l - m27; goto lab53; }
1846 if (ret < 0) return ret;
1847 }
1848 z->bra = z->c;
1849 { int ret = slice_del(z);
1850 if (ret < 0) return ret;
1851 }
1852 { int ret = r_stem_suffix_chain_before_ki(z);
1853 if (ret == 0) { z->c = z->l - m27; goto lab53; }
1854 if (ret < 0) return ret;
1855 }
1856 lab53:
1857 ;
1858 }
1859 }
1860lab0:
1861 return 1;
1862}
1863
1865 int among_var;
1866 z->ket = z->c;
1867 among_var = find_among_b(z, a_23, 4);
1868 if (!(among_var)) return 0;
1869 z->bra = z->c;
1870 switch (among_var) {
1871 case 1:
1872 { int ret = slice_from_s(z, 1, s_5);
1873 if (ret < 0) return ret;
1874 }
1875 break;
1876 case 2:
1877 { int ret = slice_from_s(z, 2, s_6);
1878 if (ret < 0) return ret;
1879 }
1880 break;
1881 case 3:
1882 { int ret = slice_from_s(z, 1, s_7);
1883 if (ret < 0) return ret;
1884 }
1885 break;
1886 case 4:
1887 { int ret = slice_from_s(z, 1, s_8);
1888 if (ret < 0) return ret;
1889 }
1890 break;
1891 }
1892 return 1;
1893}
1894
1896 { int m_test1 = z->l - z->c;
1897 { int m2 = z->l - z->c; (void)m2;
1898 if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab1;
1899 z->c--;
1900 goto lab0;
1901 lab1:
1902 z->c = z->l - m2;
1903 if (z->c <= z->lb || z->p[z->c - 1] != 'g') return 0;
1904 z->c--;
1905 }
1906 lab0:
1907 z->c = z->l - m_test1;
1908 }
1909 { int m3 = z->l - z->c; (void)m3;
1910 { int m_test4 = z->l - z->c;
1911 if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab3;
1912 { int m5 = z->l - z->c; (void)m5;
1913 if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab5;
1914 z->c--;
1915 goto lab4;
1916 lab5:
1917 z->c = z->l - m5;
1918 if (!(eq_s_b(z, 2, s_9))) goto lab3;
1919 }
1920 lab4:
1921 z->c = z->l - m_test4;
1922 }
1923 { int ret;
1924 { int saved_c = z->c;
1925 ret = insert_s(z, z->c, z->c, 2, s_10);
1926 z->c = saved_c;
1927 }
1928 if (ret < 0) return ret;
1929 }
1930 goto lab2;
1931 lab3:
1932 z->c = z->l - m3;
1933 { int m_test6 = z->l - z->c;
1934 if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab6;
1935 { int m7 = z->l - z->c; (void)m7;
1936 if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8;
1937 z->c--;
1938 goto lab7;
1939 lab8:
1940 z->c = z->l - m7;
1941 if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab6;
1942 z->c--;
1943 }
1944 lab7:
1945 z->c = z->l - m_test6;
1946 }
1947 { int ret;
1948 { int saved_c = z->c;
1949 ret = insert_s(z, z->c, z->c, 1, s_11);
1950 z->c = saved_c;
1951 }
1952 if (ret < 0) return ret;
1953 }
1954 goto lab2;
1955 lab6:
1956 z->c = z->l - m3;
1957 { int m_test8 = z->l - z->c;
1958 if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab9;
1959 { int m9 = z->l - z->c; (void)m9;
1960 if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab11;
1961 z->c--;
1962 goto lab10;
1963 lab11:
1964 z->c = z->l - m9;
1965 if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab9;
1966 z->c--;
1967 }
1968 lab10:
1969 z->c = z->l - m_test8;
1970 }
1971 { int ret;
1972 { int saved_c = z->c;
1973 ret = insert_s(z, z->c, z->c, 1, s_12);
1974 z->c = saved_c;
1975 }
1976 if (ret < 0) return ret;
1977 }
1978 goto lab2;
1979 lab9:
1980 z->c = z->l - m3;
1981 { int m_test10 = z->l - z->c;
1982 if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
1983 { int m11 = z->l - z->c; (void)m11;
1984 if (!(eq_s_b(z, 2, s_13))) goto lab13;
1985 goto lab12;
1986 lab13:
1987 z->c = z->l - m11;
1988 if (!(eq_s_b(z, 2, s_14))) return 0;
1989 }
1990 lab12:
1991 z->c = z->l - m_test10;
1992 }
1993 { int ret;
1994 { int saved_c = z->c;
1995 ret = insert_s(z, z->c, z->c, 2, s_15);
1996 z->c = saved_c;
1997 }
1998 if (ret < 0) return ret;
1999 }
2000 }
2001lab2:
2002 return 1;
2003}
2004
2005static int r_is_reserved_word(struct SN_env * z) {
2006 if (!(eq_s_b(z, 2, s_16))) return 0;
2007 { int m1 = z->l - z->c; (void)m1;
2008 if (!(eq_s_b(z, 3, s_17))) { z->c = z->l - m1; goto lab0; }
2009 lab0:
2010 ;
2011 }
2012 if (z->c > z->lb) return 0;
2013 return 1;
2014}
2015
2017 { int c_test1 = z->c;
2018 { int i = 2;
2019 while(1) {
2020 int c2 = z->c;
2021 {
2022 int ret = out_grouping_U(z, g_vowel, 97, 305, 1);
2023 if (ret < 0) goto lab0;
2024 z->c += ret;
2025 }
2026 i--;
2027 continue;
2028 lab0:
2029 z->c = c2;
2030 break;
2031 }
2032 if (i > 0) return 0;
2033 }
2034 z->c = c_test1;
2035 }
2036 return 1;
2037}
2038
2039static int r_postlude(struct SN_env * z) {
2040 z->lb = z->c; z->c = z->l;
2041
2042 { int m1 = z->l - z->c; (void)m1;
2043 { int ret = r_is_reserved_word(z);
2044 if (ret == 0) goto lab0;
2045 if (ret < 0) return ret;
2046 }
2047 return 0;
2048 lab0:
2049 z->c = z->l - m1;
2050 }
2051 { int m2 = z->l - z->c; (void)m2;
2053 if (ret < 0) return ret;
2054 }
2055 z->c = z->l - m2;
2056 }
2057 { int m3 = z->l - z->c; (void)m3;
2058 { int ret = r_post_process_last_consonants(z);
2059 if (ret < 0) return ret;
2060 }
2061 z->c = z->l - m3;
2062 }
2063 z->c = z->lb;
2064 return 1;
2065}
2066
2067extern int turkish_UTF_8_stem(struct SN_env * z) {
2068 { int ret = r_more_than_one_syllable_word(z);
2069 if (ret <= 0) return ret;
2070 }
2071 z->lb = z->c; z->c = z->l;
2072
2073 { int m1 = z->l - z->c; (void)m1;
2074 { int ret = r_stem_nominal_verb_suffixes(z);
2075 if (ret < 0) return ret;
2076 }
2077 z->c = z->l - m1;
2078 }
2079 if (!(z->I[0])) return 0;
2080 { int m2 = z->l - z->c; (void)m2;
2081 { int ret = r_stem_noun_suffixes(z);
2082 if (ret < 0) return ret;
2083 }
2084 z->c = z->l - m2;
2085 }
2086 z->c = z->lb;
2087 { int ret = r_postlude(z);
2088 if (ret <= 0) return ret;
2089 }
2090 return 1;
2091}
2092
2093extern struct SN_env * turkish_UTF_8_create_env(void) { return SN_create_env(0, 1); }
2094
2095extern void turkish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
2096
void SN_close_env(struct SN_env *z, int S_size)
Definition: api.c:34
struct SN_env * SN_create_env(int S_size, int I_size)
Definition: api.c:3
unsigned char symbol
Definition: api.h:2
int i
Definition: isn.c:72
static const symbol s_22_0[4]
static const symbol s_20_21[3]
static int r_mark_ymUs_(struct SN_env *z)
static const symbol s_2[]
static const symbol s_13_3[4]
static int r_mark_suffix_with_optional_n_consonant(struct SN_env *z)
static int r_mark_nUz(struct SN_env *z)
static const symbol s_0_2[3]
static const symbol s_20_26[2]
static const symbol s_11_1[2]
static int r_mark_yken(struct SN_env *z)
static const symbol s_4[]
static const symbol s_20_0[2]
static int r_is_reserved_word(struct SN_env *z)
static const struct among a_8[4]
static const symbol s_3_2[3]
static const symbol s_12_0[2]
static const struct among a_19[2]
static const struct among a_12[4]
static const symbol s_20_24[4]
static const struct among a_17[4]
static const symbol s_17_3[4]
static const symbol s_15_2[7]
static const symbol s_0_5[3]
static int r_mark_suffix_with_optional_s_consonant(struct SN_env *z)
static const symbol s_20_13[3]
static const unsigned char g_vowel5[]
static int r_mark_nUn(struct SN_env *z)
static const symbol s_0_3[3]
static int r_mark_yUm(struct SN_env *z)
static const symbol s_3_1[2]
static const symbol s_13_0[3]
static const symbol s_0_0[1]
static int r_mark_sUn(struct SN_env *z)
static const symbol s_5_0[2]
static const symbol s_21_3[3]
static const struct among a_7[2]
static const symbol s_20_10[3]
static const symbol s_21_1[2]
static const symbol s_20_14[4]
static const unsigned char g_vowel2[]
static const symbol s_2_3[3]
static const symbol s_19_0[7]
static const symbol s_2_0[2]
static const struct among a_6[4]
static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env *z)
static const struct among a_16[2]
static const symbol s_20_22[4]
static const symbol s_20_17[4]
static const symbol s_18_7[4]
static const struct among a_3[4]
static const symbol s_6[]
static const symbol s_21_6[3]
static int r_mark_DA(struct SN_env *z)
static const symbol s_3[]
static const symbol s_3_0[2]
static const symbol s_15_0[5]
static const symbol s_19_1[6]
static const symbol s_12_3[3]
static const symbol s_20_6[4]
static const symbol s_18_2[3]
static const symbol s_20_3[3]
static int r_mark_ylA(struct SN_env *z)
static const struct among a_22[4]
static const symbol s_20_31[3]
static int r_mark_yA(struct SN_env *z)
static const symbol s_7_1[3]
static int r_mark_ndA(struct SN_env *z)
static const symbol s_18_4[4]
static const symbol s_18_1[3]
static int r_mark_sU(struct SN_env *z)
static const struct among a_23[4]
static const symbol s_20_8[4]
static const struct among a_5[2]
static const symbol s_7[]
static const symbol s_8_0[3]
struct SN_env * turkish_UTF_8_create_env(void)
static const symbol s_13[]
static int r_mark_yU(struct SN_env *z)
static const symbol s_8_2[3]
static const symbol s_23_1[1]
static int r_mark_nA(struct SN_env *z)
static int r_mark_yUz(struct SN_env *z)
static const symbol s_20_27[2]
static const symbol s_23_2[1]
static const symbol s_18_3[3]
static const symbol s_13_1[3]
static const symbol s_20_19[3]
static const symbol s_20_30[3]
static const symbol s_17_0[3]
static const struct among a_11[2]
static const symbol s_14_0[2]
static int r_mark_cAsInA(struct SN_env *z)
static const struct among a_10[2]
static const symbol s_18_0[3]
static const symbol s_16_1[3]
static const symbol s_10_1[2]
static const symbol s_12_1[2]
static const symbol s_21_5[3]
static const symbol s_0_6[4]
static const symbol s_0_9[4]
static int r_mark_DAn(struct SN_env *z)
static const symbol s_7_0[3]
static int r_mark_lArI(struct SN_env *z)
static const symbol s_20_4[3]
static int r_check_vowel_harmony(struct SN_env *z)
static int r_mark_ndAn(struct SN_env *z)
static const struct among a_1[2]
static const symbol s_8_1[3]
static const symbol s_21_0[2]
static const symbol s_22_1[4]
void turkish_UTF_8_close_env(struct SN_env *z)
static const symbol s_6_2[2]
static int r_mark_suffix_with_optional_y_consonant(struct SN_env *z)
static const symbol s_15_3[7]
static const struct among a_14[4]
static const symbol s_4_1[1]
static const symbol s_20_2[3]
static const symbol s_20_23[4]
static const symbol s_20_25[4]
static const symbol s_17_2[4]
static int r_mark_ki(struct SN_env *z)
static const symbol s_16[]
static int r_postlude(struct SN_env *z)
static const symbol s_14[]
static const unsigned char g_vowel1[]
static const struct among a_20[32]
static int r_mark_DUr(struct SN_env *z)
static const symbol s_15_1[5]
static const symbol s_9_0[4]
static int r_stem_nominal_verb_suffixes(struct SN_env *z)
static const struct among a_18[8]
static const struct among a_4[2]
static const struct among a_15[4]
static const symbol s_0_7[4]
static const symbol s_10[]
static int r_mark_yDU(struct SN_env *z)
static const struct among a_2[4]
static const symbol s_4_0[1]
static const symbol s_1[]
static const symbol s_20_9[4]
static const symbol s_21_7[3]
static const symbol s_9_1[4]
static const symbol s_20_28[3]
static const struct among a_13[4]
static const symbol s_14_2[3]
static const symbol s_20_20[3]
static const symbol s_3_3[3]
static const struct among a_9[2]
static const symbol s_17_1[3]
static const symbol s_2_2[3]
int turkish_UTF_8_stem(struct SN_env *z)
static const symbol s_20_1[2]
static int r_mark_lAr(struct SN_env *z)
static int r_mark_ysA(struct SN_env *z)
static const symbol s_20_5[3]
static const symbol s_11[]
static const symbol s_12[]
static int r_stem_suffix_chain_before_ki(struct SN_env *z)
static const symbol s_6_1[2]
static const unsigned char g_U[]
static const symbol s_20_18[3]
static const symbol s_6_3[2]
static int r_mark_suffix_with_optional_U_vowel(struct SN_env *z)
static const unsigned char g_vowel6[]
static int r_mark_nU(struct SN_env *z)
static const struct among a_21[8]
static const symbol s_21_4[3]
static const symbol s_20_7[4]
static const symbol s_23_0[1]
static const symbol s_0_1[1]
static const symbol s_0_8[4]
static int r_more_than_one_syllable_word(struct SN_env *z)
static int r_mark_possessives(struct SN_env *z)
static const symbol s_10_0[2]
static const struct among a_0[10]
static const symbol s_22_2[5]
static int r_mark_ncA(struct SN_env *z)
static const symbol s_20_12[3]
static const symbol s_5_1[2]
static const symbol s_18_5[4]
static const symbol s_1_1[5]
static const symbol s_20_29[3]
static const symbol s_18_6[4]
static const symbol s_17[]
static const unsigned char g_vowel4[]
static int r_post_process_last_consonants(struct SN_env *z)
static int r_stem_noun_suffixes(struct SN_env *z)
static const symbol s_22_3[5]
static const symbol s_14_1[2]
static const symbol s_13_2[4]
static int r_mark_sUnUz(struct SN_env *z)
static const symbol s_16_0[3]
static const unsigned char g_vowel[]
static const symbol s_21_2[3]
static const symbol s_2_1[2]
static const symbol s_14_3[3]
static const unsigned char g_vowel3[]
static const symbol s_6_0[2]
static const symbol s_12_2[3]
static const symbol s_8[]
static const symbol s_9[]
static const symbol s_20_15[4]
static const symbol s_5[]
static const symbol s_20_16[4]
static const symbol s_20_11[3]
static const symbol s_15[]
static const symbol s_8_3[3]
static const symbol s_11_0[2]
static const symbol s_1_0[4]
static const symbol s_23_3[2]
static const symbol s_0[]
static const symbol s_0_4[3]
Definition: api.h:14
int lb
Definition: api.h:16
symbol * p
Definition: api.h:15
int * I
Definition: api.h:18
int ket
Definition: api.h:16
int c
Definition: api.h:16
int bra
Definition: api.h:16
int l
Definition: api.h:16
Definition: header.h:16
int find_among_b(struct SN_env *z, const struct among *v, int v_size)
Definition: utilities.c:298
int out_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.c:141
int insert_s(struct SN_env *z, int bra, int ket, int s_size, const symbol *s)
Definition: utilities.c:435
int slice_del(struct SN_env *z)
Definition: utilities.c:431
int in_grouping_b_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.c:129
int skip_b_utf8(const symbol *p, int c, int limit, int n)
Definition: utilities.c:52
int eq_s_b(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.c:220
int out_grouping_b_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.c:153
int slice_from_s(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.c:422