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