1 //! This file was generated automatically by the Snowball to Rust compiler
2 //! http://snowballstem.org/
3 
4 #![allow(non_upper_case_globals)]
5 #![allow(non_snake_case)]
6 #![allow(unused_variables)]
7 #![allow(unused_mut)]
8 use snowball::SnowballEnv;
9 use snowball::Among;
10 
11 static A_0: &'static [Among<Context>; 10] = &[
12     Among("m", -1, -1, None),
13     Among("n", -1, -1, None),
14     Among("miz", -1, -1, None),
15     Among("niz", -1, -1, None),
16     Among("muz", -1, -1, None),
17     Among("nuz", -1, -1, None),
18     Among("m\u{0131}z", -1, -1, None),
19     Among("n\u{0131}z", -1, -1, None),
20     Among("m\u{00FC}z", -1, -1, None),
21     Among("n\u{00FC}z", -1, -1, None),
22 ];
23 
24 static A_1: &'static [Among<Context>; 2] = &[
25     Among("leri", -1, -1, None),
26     Among("lar\u{0131}", -1, -1, None),
27 ];
28 
29 static A_2: &'static [Among<Context>; 4] = &[
30     Among("ni", -1, -1, None),
31     Among("nu", -1, -1, None),
32     Among("n\u{0131}", -1, -1, None),
33     Among("n\u{00FC}", -1, -1, None),
34 ];
35 
36 static A_3: &'static [Among<Context>; 4] = &[
37     Among("in", -1, -1, None),
38     Among("un", -1, -1, None),
39     Among("\u{0131}n", -1, -1, None),
40     Among("\u{00FC}n", -1, -1, None),
41 ];
42 
43 static A_4: &'static [Among<Context>; 2] = &[
44     Among("a", -1, -1, None),
45     Among("e", -1, -1, None),
46 ];
47 
48 static A_5: &'static [Among<Context>; 2] = &[
49     Among("na", -1, -1, None),
50     Among("ne", -1, -1, None),
51 ];
52 
53 static A_6: &'static [Among<Context>; 4] = &[
54     Among("da", -1, -1, None),
55     Among("ta", -1, -1, None),
56     Among("de", -1, -1, None),
57     Among("te", -1, -1, None),
58 ];
59 
60 static A_7: &'static [Among<Context>; 2] = &[
61     Among("nda", -1, -1, None),
62     Among("nde", -1, -1, None),
63 ];
64 
65 static A_8: &'static [Among<Context>; 4] = &[
66     Among("dan", -1, -1, None),
67     Among("tan", -1, -1, None),
68     Among("den", -1, -1, None),
69     Among("ten", -1, -1, None),
70 ];
71 
72 static A_9: &'static [Among<Context>; 2] = &[
73     Among("ndan", -1, -1, None),
74     Among("nden", -1, -1, None),
75 ];
76 
77 static A_10: &'static [Among<Context>; 2] = &[
78     Among("la", -1, -1, None),
79     Among("le", -1, -1, None),
80 ];
81 
82 static A_11: &'static [Among<Context>; 2] = &[
83     Among("ca", -1, -1, None),
84     Among("ce", -1, -1, None),
85 ];
86 
87 static A_12: &'static [Among<Context>; 4] = &[
88     Among("im", -1, -1, None),
89     Among("um", -1, -1, None),
90     Among("\u{0131}m", -1, -1, None),
91     Among("\u{00FC}m", -1, -1, None),
92 ];
93 
94 static A_13: &'static [Among<Context>; 4] = &[
95     Among("sin", -1, -1, None),
96     Among("sun", -1, -1, None),
97     Among("s\u{0131}n", -1, -1, None),
98     Among("s\u{00FC}n", -1, -1, None),
99 ];
100 
101 static A_14: &'static [Among<Context>; 4] = &[
102     Among("iz", -1, -1, None),
103     Among("uz", -1, -1, None),
104     Among("\u{0131}z", -1, -1, None),
105     Among("\u{00FC}z", -1, -1, None),
106 ];
107 
108 static A_15: &'static [Among<Context>; 4] = &[
109     Among("siniz", -1, -1, None),
110     Among("sunuz", -1, -1, None),
111     Among("s\u{0131}n\u{0131}z", -1, -1, None),
112     Among("s\u{00FC}n\u{00FC}z", -1, -1, None),
113 ];
114 
115 static A_16: &'static [Among<Context>; 2] = &[
116     Among("lar", -1, -1, None),
117     Among("ler", -1, -1, None),
118 ];
119 
120 static A_17: &'static [Among<Context>; 4] = &[
121     Among("niz", -1, -1, None),
122     Among("nuz", -1, -1, None),
123     Among("n\u{0131}z", -1, -1, None),
124     Among("n\u{00FC}z", -1, -1, None),
125 ];
126 
127 static A_18: &'static [Among<Context>; 8] = &[
128     Among("dir", -1, -1, None),
129     Among("tir", -1, -1, None),
130     Among("dur", -1, -1, None),
131     Among("tur", -1, -1, None),
132     Among("d\u{0131}r", -1, -1, None),
133     Among("t\u{0131}r", -1, -1, None),
134     Among("d\u{00FC}r", -1, -1, None),
135     Among("t\u{00FC}r", -1, -1, None),
136 ];
137 
138 static A_19: &'static [Among<Context>; 2] = &[
139     Among("cas\u{0131}na", -1, -1, None),
140     Among("cesine", -1, -1, None),
141 ];
142 
143 static A_20: &'static [Among<Context>; 32] = &[
144     Among("di", -1, -1, None),
145     Among("ti", -1, -1, None),
146     Among("dik", -1, -1, None),
147     Among("tik", -1, -1, None),
148     Among("duk", -1, -1, None),
149     Among("tuk", -1, -1, None),
150     Among("d\u{0131}k", -1, -1, None),
151     Among("t\u{0131}k", -1, -1, None),
152     Among("d\u{00FC}k", -1, -1, None),
153     Among("t\u{00FC}k", -1, -1, None),
154     Among("dim", -1, -1, None),
155     Among("tim", -1, -1, None),
156     Among("dum", -1, -1, None),
157     Among("tum", -1, -1, None),
158     Among("d\u{0131}m", -1, -1, None),
159     Among("t\u{0131}m", -1, -1, None),
160     Among("d\u{00FC}m", -1, -1, None),
161     Among("t\u{00FC}m", -1, -1, None),
162     Among("din", -1, -1, None),
163     Among("tin", -1, -1, None),
164     Among("dun", -1, -1, None),
165     Among("tun", -1, -1, None),
166     Among("d\u{0131}n", -1, -1, None),
167     Among("t\u{0131}n", -1, -1, None),
168     Among("d\u{00FC}n", -1, -1, None),
169     Among("t\u{00FC}n", -1, -1, None),
170     Among("du", -1, -1, None),
171     Among("tu", -1, -1, None),
172     Among("d\u{0131}", -1, -1, None),
173     Among("t\u{0131}", -1, -1, None),
174     Among("d\u{00FC}", -1, -1, None),
175     Among("t\u{00FC}", -1, -1, None),
176 ];
177 
178 static A_21: &'static [Among<Context>; 8] = &[
179     Among("sa", -1, -1, None),
180     Among("se", -1, -1, None),
181     Among("sak", -1, -1, None),
182     Among("sek", -1, -1, None),
183     Among("sam", -1, -1, None),
184     Among("sem", -1, -1, None),
185     Among("san", -1, -1, None),
186     Among("sen", -1, -1, None),
187 ];
188 
189 static A_22: &'static [Among<Context>; 4] = &[
190     Among("mi\u{015F}", -1, -1, None),
191     Among("mu\u{015F}", -1, -1, None),
192     Among("m\u{0131}\u{015F}", -1, -1, None),
193     Among("m\u{00FC}\u{015F}", -1, -1, None),
194 ];
195 
196 static A_23: &'static [Among<Context>; 4] = &[
197     Among("b", -1, 1, None),
198     Among("c", -1, 2, None),
199     Among("d", -1, 3, None),
200     Among("\u{011F}", -1, 4, None),
201 ];
202 
203 static G_vowel: &'static [u8; 27] = &[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];
204 
205 static G_U: &'static [u8; 26] = &[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];
206 
207 static G_vowel1: &'static [u8; 27] = &[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];
208 
209 static G_vowel2: &'static [u8; 19] = &[17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130];
210 
211 static G_vowel3: &'static [u8; 27] = &[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];
212 
213 static G_vowel4: &'static [u8; 1] = &[17];
214 
215 static G_vowel5: &'static [u8; 1] = &[65];
216 
217 static G_vowel6: &'static [u8; 1] = &[65];
218 
219 #[derive(Clone)]
220 struct Context {
221     b_continue_stemming_noun_suffixes: bool,
222     i_strlen: usize,
223 }
224 
225 fn r_check_vowel_harmony(env: &mut SnowballEnv, context: &mut Context) -> bool {
226     // (, line 111
227     // test, line 112
228     let v_1 = env.limit - env.cursor;
229     // (, line 113
230     // (, line 114
231     // goto, line 114
232     'golab0: loop {
233         let v_2 = env.limit - env.cursor;
234         'lab1: loop {
235             if !env.in_grouping_b(G_vowel, 97, 305) {
236                 break 'lab1;
237             }
238             env.cursor = env.limit - v_2;
239             break 'golab0;
240         }
241         env.cursor = env.limit - v_2;
242         if env.cursor <= env.limit_backward {
243             return false;
244         }
245         env.previous_char();
246     }
247     // (, line 115
248     // or, line 116
249     'lab2: loop {
250         let v_3 = env.limit - env.cursor;
251         'lab3: loop {
252             // (, line 116
253             // literal, line 116
254             if !env.eq_s_b(&"a") {
255                 break 'lab3;
256             }
257             // goto, line 116
258             'golab4: loop {
259                 let v_4 = env.limit - env.cursor;
260                 'lab5: loop {
261                     if !env.in_grouping_b(G_vowel1, 97, 305) {
262                         break 'lab5;
263                     }
264                     env.cursor = env.limit - v_4;
265                     break 'golab4;
266                 }
267                 env.cursor = env.limit - v_4;
268                 if env.cursor <= env.limit_backward {
269                     break 'lab3;
270                 }
271                 env.previous_char();
272             }
273             break 'lab2;
274         }
275         env.cursor = env.limit - v_3;
276         'lab6: loop {
277             // (, line 117
278             // literal, line 117
279             if !env.eq_s_b(&"e") {
280                 break 'lab6;
281             }
282             // goto, line 117
283             'golab7: loop {
284                 let v_5 = env.limit - env.cursor;
285                 'lab8: loop {
286                     if !env.in_grouping_b(G_vowel2, 101, 252) {
287                         break 'lab8;
288                     }
289                     env.cursor = env.limit - v_5;
290                     break 'golab7;
291                 }
292                 env.cursor = env.limit - v_5;
293                 if env.cursor <= env.limit_backward {
294                     break 'lab6;
295                 }
296                 env.previous_char();
297             }
298             break 'lab2;
299         }
300         env.cursor = env.limit - v_3;
301         'lab9: loop {
302             // (, line 118
303             // literal, line 118
304             if !env.eq_s_b(&"\u{0131}") {
305                 break 'lab9;
306             }
307             // goto, line 118
308             'golab10: loop {
309                 let v_6 = env.limit - env.cursor;
310                 'lab11: loop {
311                     if !env.in_grouping_b(G_vowel3, 97, 305) {
312                         break 'lab11;
313                     }
314                     env.cursor = env.limit - v_6;
315                     break 'golab10;
316                 }
317                 env.cursor = env.limit - v_6;
318                 if env.cursor <= env.limit_backward {
319                     break 'lab9;
320                 }
321                 env.previous_char();
322             }
323             break 'lab2;
324         }
325         env.cursor = env.limit - v_3;
326         'lab12: loop {
327             // (, line 119
328             // literal, line 119
329             if !env.eq_s_b(&"i") {
330                 break 'lab12;
331             }
332             // goto, line 119
333             'golab13: loop {
334                 let v_7 = env.limit - env.cursor;
335                 'lab14: loop {
336                     if !env.in_grouping_b(G_vowel4, 101, 105) {
337                         break 'lab14;
338                     }
339                     env.cursor = env.limit - v_7;
340                     break 'golab13;
341                 }
342                 env.cursor = env.limit - v_7;
343                 if env.cursor <= env.limit_backward {
344                     break 'lab12;
345                 }
346                 env.previous_char();
347             }
348             break 'lab2;
349         }
350         env.cursor = env.limit - v_3;
351         'lab15: loop {
352             // (, line 120
353             // literal, line 120
354             if !env.eq_s_b(&"o") {
355                 break 'lab15;
356             }
357             // goto, line 120
358             'golab16: loop {
359                 let v_8 = env.limit - env.cursor;
360                 'lab17: loop {
361                     if !env.in_grouping_b(G_vowel5, 111, 117) {
362                         break 'lab17;
363                     }
364                     env.cursor = env.limit - v_8;
365                     break 'golab16;
366                 }
367                 env.cursor = env.limit - v_8;
368                 if env.cursor <= env.limit_backward {
369                     break 'lab15;
370                 }
371                 env.previous_char();
372             }
373             break 'lab2;
374         }
375         env.cursor = env.limit - v_3;
376         'lab18: loop {
377             // (, line 121
378             // literal, line 121
379             if !env.eq_s_b(&"\u{00F6}") {
380                 break 'lab18;
381             }
382             // goto, line 121
383             'golab19: loop {
384                 let v_9 = env.limit - env.cursor;
385                 'lab20: loop {
386                     if !env.in_grouping_b(G_vowel6, 246, 252) {
387                         break 'lab20;
388                     }
389                     env.cursor = env.limit - v_9;
390                     break 'golab19;
391                 }
392                 env.cursor = env.limit - v_9;
393                 if env.cursor <= env.limit_backward {
394                     break 'lab18;
395                 }
396                 env.previous_char();
397             }
398             break 'lab2;
399         }
400         env.cursor = env.limit - v_3;
401         'lab21: loop {
402             // (, line 122
403             // literal, line 122
404             if !env.eq_s_b(&"u") {
405                 break 'lab21;
406             }
407             // goto, line 122
408             'golab22: loop {
409                 let v_10 = env.limit - env.cursor;
410                 'lab23: loop {
411                     if !env.in_grouping_b(G_vowel5, 111, 117) {
412                         break 'lab23;
413                     }
414                     env.cursor = env.limit - v_10;
415                     break 'golab22;
416                 }
417                 env.cursor = env.limit - v_10;
418                 if env.cursor <= env.limit_backward {
419                     break 'lab21;
420                 }
421                 env.previous_char();
422             }
423             break 'lab2;
424         }
425         env.cursor = env.limit - v_3;
426         // (, line 123
427         // literal, line 123
428         if !env.eq_s_b(&"\u{00FC}") {
429             return false;
430         }
431         // goto, line 123
432         'golab24: loop {
433             let v_11 = env.limit - env.cursor;
434             'lab25: loop {
435                 if !env.in_grouping_b(G_vowel6, 246, 252) {
436                     break 'lab25;
437                 }
438                 env.cursor = env.limit - v_11;
439                 break 'golab24;
440             }
441             env.cursor = env.limit - v_11;
442             if env.cursor <= env.limit_backward {
443                 return false;
444             }
445             env.previous_char();
446         }
447         break 'lab2;
448     }
449     env.cursor = env.limit - v_1;
450     return true;
451 }
452 
453 fn r_mark_suffix_with_optional_n_consonant(env: &mut SnowballEnv, context: &mut Context) -> bool {
454     // (, line 132
455     // or, line 134
456     'lab0: loop {
457         let v_1 = env.limit - env.cursor;
458         'lab1: loop {
459             // (, line 133
460             // literal, line 133
461             if !env.eq_s_b(&"n") {
462                 break 'lab1;
463             }
464             // (, line 133
465             // test, line 133
466             let v_2 = env.limit - env.cursor;
467             if !env.in_grouping_b(G_vowel, 97, 305) {
468                 break 'lab1;
469             }
470             env.cursor = env.limit - v_2;
471             break 'lab0;
472         }
473         env.cursor = env.limit - v_1;
474         // (, line 135
475         // (, line 135
476         // not, line 135
477         let v_3 = env.limit - env.cursor;
478         'lab2: loop {
479             // (, line 135
480             // test, line 135
481             let v_4 = env.limit - env.cursor;
482             // literal, line 135
483             if !env.eq_s_b(&"n") {
484                 break 'lab2;
485             }
486             env.cursor = env.limit - v_4;
487             return false;
488         }
489         env.cursor = env.limit - v_3;
490         // test, line 135
491         let v_5 = env.limit - env.cursor;
492         // (, line 135
493         // next, line 135
494         if env.cursor <= env.limit_backward {
495             return false;
496         }
497         env.previous_char();
498         if !env.in_grouping_b(G_vowel, 97, 305) {
499             return false;
500         }
501         env.cursor = env.limit - v_5;
502         break 'lab0;
503     }
504     return true;
505 }
506 
507 fn r_mark_suffix_with_optional_s_consonant(env: &mut SnowballEnv, context: &mut Context) -> bool {
508     // (, line 143
509     // or, line 145
510     'lab0: loop {
511         let v_1 = env.limit - env.cursor;
512         'lab1: loop {
513             // (, line 144
514             // literal, line 144
515             if !env.eq_s_b(&"s") {
516                 break 'lab1;
517             }
518             // (, line 144
519             // test, line 144
520             let v_2 = env.limit - env.cursor;
521             if !env.in_grouping_b(G_vowel, 97, 305) {
522                 break 'lab1;
523             }
524             env.cursor = env.limit - v_2;
525             break 'lab0;
526         }
527         env.cursor = env.limit - v_1;
528         // (, line 146
529         // (, line 146
530         // not, line 146
531         let v_3 = env.limit - env.cursor;
532         'lab2: loop {
533             // (, line 146
534             // test, line 146
535             let v_4 = env.limit - env.cursor;
536             // literal, line 146
537             if !env.eq_s_b(&"s") {
538                 break 'lab2;
539             }
540             env.cursor = env.limit - v_4;
541             return false;
542         }
543         env.cursor = env.limit - v_3;
544         // test, line 146
545         let v_5 = env.limit - env.cursor;
546         // (, line 146
547         // next, line 146
548         if env.cursor <= env.limit_backward {
549             return false;
550         }
551         env.previous_char();
552         if !env.in_grouping_b(G_vowel, 97, 305) {
553             return false;
554         }
555         env.cursor = env.limit - v_5;
556         break 'lab0;
557     }
558     return true;
559 }
560 
561 fn r_mark_suffix_with_optional_y_consonant(env: &mut SnowballEnv, context: &mut Context) -> bool {
562     // (, line 153
563     // or, line 155
564     'lab0: loop {
565         let v_1 = env.limit - env.cursor;
566         'lab1: loop {
567             // (, line 154
568             // literal, line 154
569             if !env.eq_s_b(&"y") {
570                 break 'lab1;
571             }
572             // (, line 154
573             // test, line 154
574             let v_2 = env.limit - env.cursor;
575             if !env.in_grouping_b(G_vowel, 97, 305) {
576                 break 'lab1;
577             }
578             env.cursor = env.limit - v_2;
579             break 'lab0;
580         }
581         env.cursor = env.limit - v_1;
582         // (, line 156
583         // (, line 156
584         // not, line 156
585         let v_3 = env.limit - env.cursor;
586         'lab2: loop {
587             // (, line 156
588             // test, line 156
589             let v_4 = env.limit - env.cursor;
590             // literal, line 156
591             if !env.eq_s_b(&"y") {
592                 break 'lab2;
593             }
594             env.cursor = env.limit - v_4;
595             return false;
596         }
597         env.cursor = env.limit - v_3;
598         // test, line 156
599         let v_5 = env.limit - env.cursor;
600         // (, line 156
601         // next, line 156
602         if env.cursor <= env.limit_backward {
603             return false;
604         }
605         env.previous_char();
606         if !env.in_grouping_b(G_vowel, 97, 305) {
607             return false;
608         }
609         env.cursor = env.limit - v_5;
610         break 'lab0;
611     }
612     return true;
613 }
614 
615 fn r_mark_suffix_with_optional_U_vowel(env: &mut SnowballEnv, context: &mut Context) -> bool {
616     // (, line 159
617     // or, line 161
618     'lab0: loop {
619         let v_1 = env.limit - env.cursor;
620         'lab1: loop {
621             // (, line 160
622             if !env.in_grouping_b(G_U, 105, 305) {
623                 break 'lab1;
624             }
625             // (, line 160
626             // test, line 160
627             let v_2 = env.limit - env.cursor;
628             if !env.out_grouping_b(G_vowel, 97, 305) {
629                 break 'lab1;
630             }
631             env.cursor = env.limit - v_2;
632             break 'lab0;
633         }
634         env.cursor = env.limit - v_1;
635         // (, line 162
636         // (, line 162
637         // not, line 162
638         let v_3 = env.limit - env.cursor;
639         'lab2: loop {
640             // (, line 162
641             // test, line 162
642             let v_4 = env.limit - env.cursor;
643             if !env.in_grouping_b(G_U, 105, 305) {
644                 break 'lab2;
645             }
646             env.cursor = env.limit - v_4;
647             return false;
648         }
649         env.cursor = env.limit - v_3;
650         // test, line 162
651         let v_5 = env.limit - env.cursor;
652         // (, line 162
653         // next, line 162
654         if env.cursor <= env.limit_backward {
655             return false;
656         }
657         env.previous_char();
658         if !env.out_grouping_b(G_vowel, 97, 305) {
659             return false;
660         }
661         env.cursor = env.limit - v_5;
662         break 'lab0;
663     }
664     return true;
665 }
666 
667 fn r_mark_possessives(env: &mut SnowballEnv, context: &mut Context) -> bool {
668     // (, line 166
669     // among, line 167
670     if env.find_among_b(A_0, context) == 0 {
671         return false;
672     }
673     // (, line 169
674     // call mark_suffix_with_optional_U_vowel, line 169
675     if !r_mark_suffix_with_optional_U_vowel(env, context) {
676         return false;
677     }
678     return true;
679 }
680 
681 fn r_mark_sU(env: &mut SnowballEnv, context: &mut Context) -> bool {
682     // (, line 172
683     // call check_vowel_harmony, line 173
684     if !r_check_vowel_harmony(env, context) {
685         return false;
686     }
687     if !env.in_grouping_b(G_U, 105, 305) {
688         return false;
689     }
690     // (, line 175
691     // call mark_suffix_with_optional_s_consonant, line 175
692     if !r_mark_suffix_with_optional_s_consonant(env, context) {
693         return false;
694     }
695     return true;
696 }
697 
698 fn r_mark_lArI(env: &mut SnowballEnv, context: &mut Context) -> bool {
699     // (, line 178
700     // among, line 179
701     if env.find_among_b(A_1, context) == 0 {
702         return false;
703     }
704     return true;
705 }
706 
707 fn r_mark_yU(env: &mut SnowballEnv, context: &mut Context) -> bool {
708     // (, line 182
709     // call check_vowel_harmony, line 183
710     if !r_check_vowel_harmony(env, context) {
711         return false;
712     }
713     if !env.in_grouping_b(G_U, 105, 305) {
714         return false;
715     }
716     // (, line 185
717     // call mark_suffix_with_optional_y_consonant, line 185
718     if !r_mark_suffix_with_optional_y_consonant(env, context) {
719         return false;
720     }
721     return true;
722 }
723 
724 fn r_mark_nU(env: &mut SnowballEnv, context: &mut Context) -> bool {
725     // (, line 188
726     // call check_vowel_harmony, line 189
727     if !r_check_vowel_harmony(env, context) {
728         return false;
729     }
730     // among, line 190
731     if env.find_among_b(A_2, context) == 0 {
732         return false;
733     }
734     return true;
735 }
736 
737 fn r_mark_nUn(env: &mut SnowballEnv, context: &mut Context) -> bool {
738     // (, line 193
739     // call check_vowel_harmony, line 194
740     if !r_check_vowel_harmony(env, context) {
741         return false;
742     }
743     // among, line 195
744     if env.find_among_b(A_3, context) == 0 {
745         return false;
746     }
747     // (, line 196
748     // call mark_suffix_with_optional_n_consonant, line 196
749     if !r_mark_suffix_with_optional_n_consonant(env, context) {
750         return false;
751     }
752     return true;
753 }
754 
755 fn r_mark_yA(env: &mut SnowballEnv, context: &mut Context) -> bool {
756     // (, line 199
757     // call check_vowel_harmony, line 200
758     if !r_check_vowel_harmony(env, context) {
759         return false;
760     }
761     // among, line 201
762     if env.find_among_b(A_4, context) == 0 {
763         return false;
764     }
765     // (, line 202
766     // call mark_suffix_with_optional_y_consonant, line 202
767     if !r_mark_suffix_with_optional_y_consonant(env, context) {
768         return false;
769     }
770     return true;
771 }
772 
773 fn r_mark_nA(env: &mut SnowballEnv, context: &mut Context) -> bool {
774     // (, line 205
775     // call check_vowel_harmony, line 206
776     if !r_check_vowel_harmony(env, context) {
777         return false;
778     }
779     // among, line 207
780     if env.find_among_b(A_5, context) == 0 {
781         return false;
782     }
783     return true;
784 }
785 
786 fn r_mark_DA(env: &mut SnowballEnv, context: &mut Context) -> bool {
787     // (, line 210
788     // call check_vowel_harmony, line 211
789     if !r_check_vowel_harmony(env, context) {
790         return false;
791     }
792     // among, line 212
793     if env.find_among_b(A_6, context) == 0 {
794         return false;
795     }
796     return true;
797 }
798 
799 fn r_mark_ndA(env: &mut SnowballEnv, context: &mut Context) -> bool {
800     // (, line 215
801     // call check_vowel_harmony, line 216
802     if !r_check_vowel_harmony(env, context) {
803         return false;
804     }
805     // among, line 217
806     if env.find_among_b(A_7, context) == 0 {
807         return false;
808     }
809     return true;
810 }
811 
812 fn r_mark_DAn(env: &mut SnowballEnv, context: &mut Context) -> bool {
813     // (, line 220
814     // call check_vowel_harmony, line 221
815     if !r_check_vowel_harmony(env, context) {
816         return false;
817     }
818     // among, line 222
819     if env.find_among_b(A_8, context) == 0 {
820         return false;
821     }
822     return true;
823 }
824 
825 fn r_mark_ndAn(env: &mut SnowballEnv, context: &mut Context) -> bool {
826     // (, line 225
827     // call check_vowel_harmony, line 226
828     if !r_check_vowel_harmony(env, context) {
829         return false;
830     }
831     // among, line 227
832     if env.find_among_b(A_9, context) == 0 {
833         return false;
834     }
835     return true;
836 }
837 
838 fn r_mark_ylA(env: &mut SnowballEnv, context: &mut Context) -> bool {
839     // (, line 230
840     // call check_vowel_harmony, line 231
841     if !r_check_vowel_harmony(env, context) {
842         return false;
843     }
844     // among, line 232
845     if env.find_among_b(A_10, context) == 0 {
846         return false;
847     }
848     // (, line 233
849     // call mark_suffix_with_optional_y_consonant, line 233
850     if !r_mark_suffix_with_optional_y_consonant(env, context) {
851         return false;
852     }
853     return true;
854 }
855 
856 fn r_mark_ki(env: &mut SnowballEnv, context: &mut Context) -> bool {
857     // (, line 236
858     // literal, line 237
859     if !env.eq_s_b(&"ki") {
860         return false;
861     }
862     return true;
863 }
864 
865 fn r_mark_ncA(env: &mut SnowballEnv, context: &mut Context) -> bool {
866     // (, line 240
867     // call check_vowel_harmony, line 241
868     if !r_check_vowel_harmony(env, context) {
869         return false;
870     }
871     // among, line 242
872     if env.find_among_b(A_11, context) == 0 {
873         return false;
874     }
875     // (, line 243
876     // call mark_suffix_with_optional_n_consonant, line 243
877     if !r_mark_suffix_with_optional_n_consonant(env, context) {
878         return false;
879     }
880     return true;
881 }
882 
883 fn r_mark_yUm(env: &mut SnowballEnv, context: &mut Context) -> bool {
884     // (, line 246
885     // call check_vowel_harmony, line 247
886     if !r_check_vowel_harmony(env, context) {
887         return false;
888     }
889     // among, line 248
890     if env.find_among_b(A_12, context) == 0 {
891         return false;
892     }
893     // (, line 249
894     // call mark_suffix_with_optional_y_consonant, line 249
895     if !r_mark_suffix_with_optional_y_consonant(env, context) {
896         return false;
897     }
898     return true;
899 }
900 
901 fn r_mark_sUn(env: &mut SnowballEnv, context: &mut Context) -> bool {
902     // (, line 252
903     // call check_vowel_harmony, line 253
904     if !r_check_vowel_harmony(env, context) {
905         return false;
906     }
907     // among, line 254
908     if env.find_among_b(A_13, context) == 0 {
909         return false;
910     }
911     return true;
912 }
913 
914 fn r_mark_yUz(env: &mut SnowballEnv, context: &mut Context) -> bool {
915     // (, line 257
916     // call check_vowel_harmony, line 258
917     if !r_check_vowel_harmony(env, context) {
918         return false;
919     }
920     // among, line 259
921     if env.find_among_b(A_14, context) == 0 {
922         return false;
923     }
924     // (, line 260
925     // call mark_suffix_with_optional_y_consonant, line 260
926     if !r_mark_suffix_with_optional_y_consonant(env, context) {
927         return false;
928     }
929     return true;
930 }
931 
932 fn r_mark_sUnUz(env: &mut SnowballEnv, context: &mut Context) -> bool {
933     // (, line 263
934     // among, line 264
935     if env.find_among_b(A_15, context) == 0 {
936         return false;
937     }
938     return true;
939 }
940 
941 fn r_mark_lAr(env: &mut SnowballEnv, context: &mut Context) -> bool {
942     // (, line 267
943     // call check_vowel_harmony, line 268
944     if !r_check_vowel_harmony(env, context) {
945         return false;
946     }
947     // among, line 269
948     if env.find_among_b(A_16, context) == 0 {
949         return false;
950     }
951     return true;
952 }
953 
954 fn r_mark_nUz(env: &mut SnowballEnv, context: &mut Context) -> bool {
955     // (, line 272
956     // call check_vowel_harmony, line 273
957     if !r_check_vowel_harmony(env, context) {
958         return false;
959     }
960     // among, line 274
961     if env.find_among_b(A_17, context) == 0 {
962         return false;
963     }
964     return true;
965 }
966 
967 fn r_mark_DUr(env: &mut SnowballEnv, context: &mut Context) -> bool {
968     // (, line 277
969     // call check_vowel_harmony, line 278
970     if !r_check_vowel_harmony(env, context) {
971         return false;
972     }
973     // among, line 279
974     if env.find_among_b(A_18, context) == 0 {
975         return false;
976     }
977     return true;
978 }
979 
980 fn r_mark_cAsInA(env: &mut SnowballEnv, context: &mut Context) -> bool {
981     // (, line 282
982     // among, line 283
983     if env.find_among_b(A_19, context) == 0 {
984         return false;
985     }
986     return true;
987 }
988 
989 fn r_mark_yDU(env: &mut SnowballEnv, context: &mut Context) -> bool {
990     // (, line 286
991     // call check_vowel_harmony, line 287
992     if !r_check_vowel_harmony(env, context) {
993         return false;
994     }
995     // among, line 288
996     if env.find_among_b(A_20, context) == 0 {
997         return false;
998     }
999     // (, line 292
1000     // call mark_suffix_with_optional_y_consonant, line 292
1001     if !r_mark_suffix_with_optional_y_consonant(env, context) {
1002         return false;
1003     }
1004     return true;
1005 }
1006 
1007 fn r_mark_ysA(env: &mut SnowballEnv, context: &mut Context) -> bool {
1008     // (, line 296
1009     // among, line 297
1010     if env.find_among_b(A_21, context) == 0 {
1011         return false;
1012     }
1013     // (, line 298
1014     // call mark_suffix_with_optional_y_consonant, line 298
1015     if !r_mark_suffix_with_optional_y_consonant(env, context) {
1016         return false;
1017     }
1018     return true;
1019 }
1020 
1021 fn r_mark_ymUs_(env: &mut SnowballEnv, context: &mut Context) -> bool {
1022     // (, line 301
1023     // call check_vowel_harmony, line 302
1024     if !r_check_vowel_harmony(env, context) {
1025         return false;
1026     }
1027     // among, line 303
1028     if env.find_among_b(A_22, context) == 0 {
1029         return false;
1030     }
1031     // (, line 304
1032     // call mark_suffix_with_optional_y_consonant, line 304
1033     if !r_mark_suffix_with_optional_y_consonant(env, context) {
1034         return false;
1035     }
1036     return true;
1037 }
1038 
1039 fn r_mark_yken(env: &mut SnowballEnv, context: &mut Context) -> bool {
1040     // (, line 307
1041     // literal, line 308
1042     if !env.eq_s_b(&"ken") {
1043         return false;
1044     }
1045     // (, line 308
1046     // call mark_suffix_with_optional_y_consonant, line 308
1047     if !r_mark_suffix_with_optional_y_consonant(env, context) {
1048         return false;
1049     }
1050     return true;
1051 }
1052 
1053 fn r_stem_nominal_verb_suffixes(env: &mut SnowballEnv, context: &mut Context) -> bool {
1054     // (, line 311
1055     // [, line 312
1056     env.ket = env.cursor;
1057     // set continue_stemming_noun_suffixes, line 313
1058     context.b_continue_stemming_noun_suffixes = true;
1059     // or, line 315
1060     'lab0: loop {
1061         let v_1 = env.limit - env.cursor;
1062         'lab1: loop {
1063             // (, line 314
1064             // or, line 314
1065             'lab2: loop {
1066                 let v_2 = env.limit - env.cursor;
1067                 'lab3: loop {
1068                     // call mark_ymUs_, line 314
1069                     if !r_mark_ymUs_(env, context) {
1070                         break 'lab3;
1071                     }
1072                     break 'lab2;
1073                 }
1074                 env.cursor = env.limit - v_2;
1075                 'lab4: loop {
1076                     // call mark_yDU, line 314
1077                     if !r_mark_yDU(env, context) {
1078                         break 'lab4;
1079                     }
1080                     break 'lab2;
1081                 }
1082                 env.cursor = env.limit - v_2;
1083                 'lab5: loop {
1084                     // call mark_ysA, line 314
1085                     if !r_mark_ysA(env, context) {
1086                         break 'lab5;
1087                     }
1088                     break 'lab2;
1089                 }
1090                 env.cursor = env.limit - v_2;
1091                 // call mark_yken, line 314
1092                 if !r_mark_yken(env, context) {
1093                     break 'lab1;
1094                 }
1095                 break 'lab2;
1096             }
1097             break 'lab0;
1098         }
1099         env.cursor = env.limit - v_1;
1100         'lab6: loop {
1101             // (, line 316
1102             // call mark_cAsInA, line 316
1103             if !r_mark_cAsInA(env, context) {
1104                 break 'lab6;
1105             }
1106             // (, line 316
1107             // or, line 316
1108             'lab7: loop {
1109                 let v_3 = env.limit - env.cursor;
1110                 'lab8: loop {
1111                     // call mark_sUnUz, line 316
1112                     if !r_mark_sUnUz(env, context) {
1113                         break 'lab8;
1114                     }
1115                     break 'lab7;
1116                 }
1117                 env.cursor = env.limit - v_3;
1118                 'lab9: loop {
1119                     // call mark_lAr, line 316
1120                     if !r_mark_lAr(env, context) {
1121                         break 'lab9;
1122                     }
1123                     break 'lab7;
1124                 }
1125                 env.cursor = env.limit - v_3;
1126                 'lab10: loop {
1127                     // call mark_yUm, line 316
1128                     if !r_mark_yUm(env, context) {
1129                         break 'lab10;
1130                     }
1131                     break 'lab7;
1132                 }
1133                 env.cursor = env.limit - v_3;
1134                 'lab11: loop {
1135                     // call mark_sUn, line 316
1136                     if !r_mark_sUn(env, context) {
1137                         break 'lab11;
1138                     }
1139                     break 'lab7;
1140                 }
1141                 env.cursor = env.limit - v_3;
1142                 'lab12: loop {
1143                     // call mark_yUz, line 316
1144                     if !r_mark_yUz(env, context) {
1145                         break 'lab12;
1146                     }
1147                     break 'lab7;
1148                 }
1149                 env.cursor = env.limit - v_3;
1150                 break 'lab7;
1151             }
1152             // call mark_ymUs_, line 316
1153             if !r_mark_ymUs_(env, context) {
1154                 break 'lab6;
1155             }
1156             break 'lab0;
1157         }
1158         env.cursor = env.limit - v_1;
1159         'lab13: loop {
1160             // (, line 318
1161             // call mark_lAr, line 319
1162             if !r_mark_lAr(env, context) {
1163                 break 'lab13;
1164             }
1165             // ], line 319
1166             env.bra = env.cursor;
1167             // delete, line 319
1168             if !env.slice_del() {
1169                 return false;
1170             }
1171             // try, line 319
1172             let v_4 = env.limit - env.cursor;
1173             'lab14: loop {
1174                 // (, line 319
1175                 // [, line 319
1176                 env.ket = env.cursor;
1177                 // (, line 319
1178                 // or, line 319
1179                 'lab15: loop {
1180                     let v_5 = env.limit - env.cursor;
1181                     'lab16: loop {
1182                         // call mark_DUr, line 319
1183                         if !r_mark_DUr(env, context) {
1184                             break 'lab16;
1185                         }
1186                         break 'lab15;
1187                     }
1188                     env.cursor = env.limit - v_5;
1189                     'lab17: loop {
1190                         // call mark_yDU, line 319
1191                         if !r_mark_yDU(env, context) {
1192                             break 'lab17;
1193                         }
1194                         break 'lab15;
1195                     }
1196                     env.cursor = env.limit - v_5;
1197                     'lab18: loop {
1198                         // call mark_ysA, line 319
1199                         if !r_mark_ysA(env, context) {
1200                             break 'lab18;
1201                         }
1202                         break 'lab15;
1203                     }
1204                     env.cursor = env.limit - v_5;
1205                     // call mark_ymUs_, line 319
1206                     if !r_mark_ymUs_(env, context) {
1207                         env.cursor = env.limit - v_4;
1208                         break 'lab14;
1209                     }
1210                     break 'lab15;
1211                 }
1212                 break 'lab14;
1213             }
1214             // unset continue_stemming_noun_suffixes, line 320
1215             context.b_continue_stemming_noun_suffixes = false;
1216             break 'lab0;
1217         }
1218         env.cursor = env.limit - v_1;
1219         'lab19: loop {
1220             // (, line 323
1221             // call mark_nUz, line 323
1222             if !r_mark_nUz(env, context) {
1223                 break 'lab19;
1224             }
1225             // (, line 323
1226             // or, line 323
1227             'lab20: loop {
1228                 let v_6 = env.limit - env.cursor;
1229                 'lab21: loop {
1230                     // call mark_yDU, line 323
1231                     if !r_mark_yDU(env, context) {
1232                         break 'lab21;
1233                     }
1234                     break 'lab20;
1235                 }
1236                 env.cursor = env.limit - v_6;
1237                 // call mark_ysA, line 323
1238                 if !r_mark_ysA(env, context) {
1239                     break 'lab19;
1240                 }
1241                 break 'lab20;
1242             }
1243             break 'lab0;
1244         }
1245         env.cursor = env.limit - v_1;
1246         'lab22: loop {
1247             // (, line 325
1248             // (, line 325
1249             // or, line 325
1250             'lab23: loop {
1251                 let v_7 = env.limit - env.cursor;
1252                 'lab24: loop {
1253                     // call mark_sUnUz, line 325
1254                     if !r_mark_sUnUz(env, context) {
1255                         break 'lab24;
1256                     }
1257                     break 'lab23;
1258                 }
1259                 env.cursor = env.limit - v_7;
1260                 'lab25: loop {
1261                     // call mark_yUz, line 325
1262                     if !r_mark_yUz(env, context) {
1263                         break 'lab25;
1264                     }
1265                     break 'lab23;
1266                 }
1267                 env.cursor = env.limit - v_7;
1268                 'lab26: loop {
1269                     // call mark_sUn, line 325
1270                     if !r_mark_sUn(env, context) {
1271                         break 'lab26;
1272                     }
1273                     break 'lab23;
1274                 }
1275                 env.cursor = env.limit - v_7;
1276                 // call mark_yUm, line 325
1277                 if !r_mark_yUm(env, context) {
1278                     break 'lab22;
1279                 }
1280                 break 'lab23;
1281             }
1282             // ], line 325
1283             env.bra = env.cursor;
1284             // delete, line 325
1285             if !env.slice_del() {
1286                 return false;
1287             }
1288             // try, line 325
1289             let v_8 = env.limit - env.cursor;
1290             'lab27: loop {
1291                 // (, line 325
1292                 // [, line 325
1293                 env.ket = env.cursor;
1294                 // call mark_ymUs_, line 325
1295                 if !r_mark_ymUs_(env, context) {
1296                     env.cursor = env.limit - v_8;
1297                     break 'lab27;
1298                 }
1299                 break 'lab27;
1300             }
1301             break 'lab0;
1302         }
1303         env.cursor = env.limit - v_1;
1304         // (, line 327
1305         // call mark_DUr, line 327
1306         if !r_mark_DUr(env, context) {
1307             return false;
1308         }
1309         // ], line 327
1310         env.bra = env.cursor;
1311         // delete, line 327
1312         if !env.slice_del() {
1313             return false;
1314         }
1315         // try, line 327
1316         let v_9 = env.limit - env.cursor;
1317         'lab28: loop {
1318             // (, line 327
1319             // [, line 327
1320             env.ket = env.cursor;
1321             // (, line 327
1322             // or, line 327
1323             'lab29: loop {
1324                 let v_10 = env.limit - env.cursor;
1325                 'lab30: loop {
1326                     // call mark_sUnUz, line 327
1327                     if !r_mark_sUnUz(env, context) {
1328                         break 'lab30;
1329                     }
1330                     break 'lab29;
1331                 }
1332                 env.cursor = env.limit - v_10;
1333                 'lab31: loop {
1334                     // call mark_lAr, line 327
1335                     if !r_mark_lAr(env, context) {
1336                         break 'lab31;
1337                     }
1338                     break 'lab29;
1339                 }
1340                 env.cursor = env.limit - v_10;
1341                 'lab32: loop {
1342                     // call mark_yUm, line 327
1343                     if !r_mark_yUm(env, context) {
1344                         break 'lab32;
1345                     }
1346                     break 'lab29;
1347                 }
1348                 env.cursor = env.limit - v_10;
1349                 'lab33: loop {
1350                     // call mark_sUn, line 327
1351                     if !r_mark_sUn(env, context) {
1352                         break 'lab33;
1353                     }
1354                     break 'lab29;
1355                 }
1356                 env.cursor = env.limit - v_10;
1357                 'lab34: loop {
1358                     // call mark_yUz, line 327
1359                     if !r_mark_yUz(env, context) {
1360                         break 'lab34;
1361                     }
1362                     break 'lab29;
1363                 }
1364                 env.cursor = env.limit - v_10;
1365                 break 'lab29;
1366             }
1367             // call mark_ymUs_, line 327
1368             if !r_mark_ymUs_(env, context) {
1369                 env.cursor = env.limit - v_9;
1370                 break 'lab28;
1371             }
1372             break 'lab28;
1373         }
1374         break 'lab0;
1375     }
1376     // ], line 328
1377     env.bra = env.cursor;
1378     // delete, line 328
1379     if !env.slice_del() {
1380         return false;
1381     }
1382     return true;
1383 }
1384 
1385 fn r_stem_suffix_chain_before_ki(env: &mut SnowballEnv, context: &mut Context) -> bool {
1386     // (, line 332
1387     // [, line 333
1388     env.ket = env.cursor;
1389     // call mark_ki, line 334
1390     if !r_mark_ki(env, context) {
1391         return false;
1392     }
1393     // (, line 335
1394     // or, line 342
1395     'lab0: loop {
1396         let v_1 = env.limit - env.cursor;
1397         'lab1: loop {
1398             // (, line 336
1399             // call mark_DA, line 336
1400             if !r_mark_DA(env, context) {
1401                 break 'lab1;
1402             }
1403             // ], line 336
1404             env.bra = env.cursor;
1405             // delete, line 336
1406             if !env.slice_del() {
1407                 return false;
1408             }
1409             // try, line 336
1410             let v_2 = env.limit - env.cursor;
1411             'lab2: loop {
1412                 // (, line 336
1413                 // [, line 336
1414                 env.ket = env.cursor;
1415                 // or, line 338
1416                 'lab3: loop {
1417                     let v_3 = env.limit - env.cursor;
1418                     'lab4: loop {
1419                         // (, line 337
1420                         // call mark_lAr, line 337
1421                         if !r_mark_lAr(env, context) {
1422                             break 'lab4;
1423                         }
1424                         // ], line 337
1425                         env.bra = env.cursor;
1426                         // delete, line 337
1427                         if !env.slice_del() {
1428                             return false;
1429                         }
1430                         // try, line 337
1431                         let v_4 = env.limit - env.cursor;
1432                         'lab5: loop {
1433                             // (, line 337
1434                             // call stem_suffix_chain_before_ki, line 337
1435                             if !r_stem_suffix_chain_before_ki(env, context) {
1436                                 env.cursor = env.limit - v_4;
1437                                 break 'lab5;
1438                             }
1439                             break 'lab5;
1440                         }
1441                         break 'lab3;
1442                     }
1443                     env.cursor = env.limit - v_3;
1444                     // (, line 339
1445                     // call mark_possessives, line 339
1446                     if !r_mark_possessives(env, context) {
1447                         env.cursor = env.limit - v_2;
1448                         break 'lab2;
1449                     }
1450                     // ], line 339
1451                     env.bra = env.cursor;
1452                     // delete, line 339
1453                     if !env.slice_del() {
1454                         return false;
1455                     }
1456                     // try, line 339
1457                     let v_5 = env.limit - env.cursor;
1458                     'lab6: loop {
1459                         // (, line 339
1460                         // [, line 339
1461                         env.ket = env.cursor;
1462                         // call mark_lAr, line 339
1463                         if !r_mark_lAr(env, context) {
1464                             env.cursor = env.limit - v_5;
1465                             break 'lab6;
1466                         }
1467                         // ], line 339
1468                         env.bra = env.cursor;
1469                         // delete, line 339
1470                         if !env.slice_del() {
1471                             return false;
1472                         }
1473                         // call stem_suffix_chain_before_ki, line 339
1474                         if !r_stem_suffix_chain_before_ki(env, context) {
1475                             env.cursor = env.limit - v_5;
1476                             break 'lab6;
1477                         }
1478                         break 'lab6;
1479                     }
1480                     break 'lab3;
1481                 }
1482                 break 'lab2;
1483             }
1484             break 'lab0;
1485         }
1486         env.cursor = env.limit - v_1;
1487         'lab7: loop {
1488             // (, line 343
1489             // call mark_nUn, line 343
1490             if !r_mark_nUn(env, context) {
1491                 break 'lab7;
1492             }
1493             // ], line 343
1494             env.bra = env.cursor;
1495             // delete, line 343
1496             if !env.slice_del() {
1497                 return false;
1498             }
1499             // try, line 343
1500             let v_6 = env.limit - env.cursor;
1501             'lab8: loop {
1502                 // (, line 343
1503                 // [, line 343
1504                 env.ket = env.cursor;
1505                 // or, line 345
1506                 'lab9: loop {
1507                     let v_7 = env.limit - env.cursor;
1508                     'lab10: loop {
1509                         // (, line 344
1510                         // call mark_lArI, line 344
1511                         if !r_mark_lArI(env, context) {
1512                             break 'lab10;
1513                         }
1514                         // ], line 344
1515                         env.bra = env.cursor;
1516                         // delete, line 344
1517                         if !env.slice_del() {
1518                             return false;
1519                         }
1520                         break 'lab9;
1521                     }
1522                     env.cursor = env.limit - v_7;
1523                     'lab11: loop {
1524                         // (, line 346
1525                         // [, line 346
1526                         env.ket = env.cursor;
1527                         // or, line 346
1528                         'lab12: loop {
1529                             let v_8 = env.limit - env.cursor;
1530                             'lab13: loop {
1531                                 // call mark_possessives, line 346
1532                                 if !r_mark_possessives(env, context) {
1533                                     break 'lab13;
1534                                 }
1535                                 break 'lab12;
1536                             }
1537                             env.cursor = env.limit - v_8;
1538                             // call mark_sU, line 346
1539                             if !r_mark_sU(env, context) {
1540                                 break 'lab11;
1541                             }
1542                             break 'lab12;
1543                         }
1544                         // ], line 346
1545                         env.bra = env.cursor;
1546                         // delete, line 346
1547                         if !env.slice_del() {
1548                             return false;
1549                         }
1550                         // try, line 346
1551                         let v_9 = env.limit - env.cursor;
1552                         'lab14: loop {
1553                             // (, line 346
1554                             // [, line 346
1555                             env.ket = env.cursor;
1556                             // call mark_lAr, line 346
1557                             if !r_mark_lAr(env, context) {
1558                                 env.cursor = env.limit - v_9;
1559                                 break 'lab14;
1560                             }
1561                             // ], line 346
1562                             env.bra = env.cursor;
1563                             // delete, line 346
1564                             if !env.slice_del() {
1565                                 return false;
1566                             }
1567                             // call stem_suffix_chain_before_ki, line 346
1568                             if !r_stem_suffix_chain_before_ki(env, context) {
1569                                 env.cursor = env.limit - v_9;
1570                                 break 'lab14;
1571                             }
1572                             break 'lab14;
1573                         }
1574                         break 'lab9;
1575                     }
1576                     env.cursor = env.limit - v_7;
1577                     // (, line 348
1578                     // call stem_suffix_chain_before_ki, line 348
1579                     if !r_stem_suffix_chain_before_ki(env, context) {
1580                         env.cursor = env.limit - v_6;
1581                         break 'lab8;
1582                     }
1583                     break 'lab9;
1584                 }
1585                 break 'lab8;
1586             }
1587             break 'lab0;
1588         }
1589         env.cursor = env.limit - v_1;
1590         // (, line 351
1591         // call mark_ndA, line 351
1592         if !r_mark_ndA(env, context) {
1593             return false;
1594         }
1595         // (, line 351
1596         // or, line 353
1597         'lab15: loop {
1598             let v_10 = env.limit - env.cursor;
1599             'lab16: loop {
1600                 // (, line 352
1601                 // call mark_lArI, line 352
1602                 if !r_mark_lArI(env, context) {
1603                     break 'lab16;
1604                 }
1605                 // ], line 352
1606                 env.bra = env.cursor;
1607                 // delete, line 352
1608                 if !env.slice_del() {
1609                     return false;
1610                 }
1611                 break 'lab15;
1612             }
1613             env.cursor = env.limit - v_10;
1614             'lab17: loop {
1615                 // (, line 354
1616                 // (, line 354
1617                 // call mark_sU, line 354
1618                 if !r_mark_sU(env, context) {
1619                     break 'lab17;
1620                 }
1621                 // ], line 354
1622                 env.bra = env.cursor;
1623                 // delete, line 354
1624                 if !env.slice_del() {
1625                     return false;
1626                 }
1627                 // try, line 354
1628                 let v_11 = env.limit - env.cursor;
1629                 'lab18: loop {
1630                     // (, line 354
1631                     // [, line 354
1632                     env.ket = env.cursor;
1633                     // call mark_lAr, line 354
1634                     if !r_mark_lAr(env, context) {
1635                         env.cursor = env.limit - v_11;
1636                         break 'lab18;
1637                     }
1638                     // ], line 354
1639                     env.bra = env.cursor;
1640                     // delete, line 354
1641                     if !env.slice_del() {
1642                         return false;
1643                     }
1644                     // call stem_suffix_chain_before_ki, line 354
1645                     if !r_stem_suffix_chain_before_ki(env, context) {
1646                         env.cursor = env.limit - v_11;
1647                         break 'lab18;
1648                     }
1649                     break 'lab18;
1650                 }
1651                 break 'lab15;
1652             }
1653             env.cursor = env.limit - v_10;
1654             // (, line 356
1655             // call stem_suffix_chain_before_ki, line 356
1656             if !r_stem_suffix_chain_before_ki(env, context) {
1657                 return false;
1658             }
1659             break 'lab15;
1660         }
1661         break 'lab0;
1662     }
1663     return true;
1664 }
1665 
1666 fn r_stem_noun_suffixes(env: &mut SnowballEnv, context: &mut Context) -> bool {
1667     // (, line 361
1668     // or, line 363
1669     'lab0: loop {
1670         let v_1 = env.limit - env.cursor;
1671         'lab1: loop {
1672             // (, line 362
1673             // [, line 362
1674             env.ket = env.cursor;
1675             // call mark_lAr, line 362
1676             if !r_mark_lAr(env, context) {
1677                 break 'lab1;
1678             }
1679             // ], line 362
1680             env.bra = env.cursor;
1681             // delete, line 362
1682             if !env.slice_del() {
1683                 return false;
1684             }
1685             // try, line 362
1686             let v_2 = env.limit - env.cursor;
1687             'lab2: loop {
1688                 // (, line 362
1689                 // call stem_suffix_chain_before_ki, line 362
1690                 if !r_stem_suffix_chain_before_ki(env, context) {
1691                     env.cursor = env.limit - v_2;
1692                     break 'lab2;
1693                 }
1694                 break 'lab2;
1695             }
1696             break 'lab0;
1697         }
1698         env.cursor = env.limit - v_1;
1699         'lab3: loop {
1700             // (, line 364
1701             // [, line 364
1702             env.ket = env.cursor;
1703             // call mark_ncA, line 364
1704             if !r_mark_ncA(env, context) {
1705                 break 'lab3;
1706             }
1707             // ], line 364
1708             env.bra = env.cursor;
1709             // delete, line 364
1710             if !env.slice_del() {
1711                 return false;
1712             }
1713             // try, line 365
1714             let v_3 = env.limit - env.cursor;
1715             'lab4: loop {
1716                 // (, line 365
1717                 // or, line 367
1718                 'lab5: loop {
1719                     let v_4 = env.limit - env.cursor;
1720                     'lab6: loop {
1721                         // (, line 366
1722                         // [, line 366
1723                         env.ket = env.cursor;
1724                         // call mark_lArI, line 366
1725                         if !r_mark_lArI(env, context) {
1726                             break 'lab6;
1727                         }
1728                         // ], line 366
1729                         env.bra = env.cursor;
1730                         // delete, line 366
1731                         if !env.slice_del() {
1732                             return false;
1733                         }
1734                         break 'lab5;
1735                     }
1736                     env.cursor = env.limit - v_4;
1737                     'lab7: loop {
1738                         // (, line 368
1739                         // [, line 368
1740                         env.ket = env.cursor;
1741                         // or, line 368
1742                         'lab8: loop {
1743                             let v_5 = env.limit - env.cursor;
1744                             'lab9: loop {
1745                                 // call mark_possessives, line 368
1746                                 if !r_mark_possessives(env, context) {
1747                                     break 'lab9;
1748                                 }
1749                                 break 'lab8;
1750                             }
1751                             env.cursor = env.limit - v_5;
1752                             // call mark_sU, line 368
1753                             if !r_mark_sU(env, context) {
1754                                 break 'lab7;
1755                             }
1756                             break 'lab8;
1757                         }
1758                         // ], line 368
1759                         env.bra = env.cursor;
1760                         // delete, line 368
1761                         if !env.slice_del() {
1762                             return false;
1763                         }
1764                         // try, line 368
1765                         let v_6 = env.limit - env.cursor;
1766                         'lab10: loop {
1767                             // (, line 368
1768                             // [, line 368
1769                             env.ket = env.cursor;
1770                             // call mark_lAr, line 368
1771                             if !r_mark_lAr(env, context) {
1772                                 env.cursor = env.limit - v_6;
1773                                 break 'lab10;
1774                             }
1775                             // ], line 368
1776                             env.bra = env.cursor;
1777                             // delete, line 368
1778                             if !env.slice_del() {
1779                                 return false;
1780                             }
1781                             // call stem_suffix_chain_before_ki, line 368
1782                             if !r_stem_suffix_chain_before_ki(env, context) {
1783                                 env.cursor = env.limit - v_6;
1784                                 break 'lab10;
1785                             }
1786                             break 'lab10;
1787                         }
1788                         break 'lab5;
1789                     }
1790                     env.cursor = env.limit - v_4;
1791                     // (, line 370
1792                     // [, line 370
1793                     env.ket = env.cursor;
1794                     // call mark_lAr, line 370
1795                     if !r_mark_lAr(env, context) {
1796                         env.cursor = env.limit - v_3;
1797                         break 'lab4;
1798                     }
1799                     // ], line 370
1800                     env.bra = env.cursor;
1801                     // delete, line 370
1802                     if !env.slice_del() {
1803                         return false;
1804                     }
1805                     // call stem_suffix_chain_before_ki, line 370
1806                     if !r_stem_suffix_chain_before_ki(env, context) {
1807                         env.cursor = env.limit - v_3;
1808                         break 'lab4;
1809                     }
1810                     break 'lab5;
1811                 }
1812                 break 'lab4;
1813             }
1814             break 'lab0;
1815         }
1816         env.cursor = env.limit - v_1;
1817         'lab11: loop {
1818             // (, line 374
1819             // [, line 374
1820             env.ket = env.cursor;
1821             // (, line 374
1822             // or, line 374
1823             'lab12: loop {
1824                 let v_7 = env.limit - env.cursor;
1825                 'lab13: loop {
1826                     // call mark_ndA, line 374
1827                     if !r_mark_ndA(env, context) {
1828                         break 'lab13;
1829                     }
1830                     break 'lab12;
1831                 }
1832                 env.cursor = env.limit - v_7;
1833                 // call mark_nA, line 374
1834                 if !r_mark_nA(env, context) {
1835                     break 'lab11;
1836                 }
1837                 break 'lab12;
1838             }
1839             // (, line 375
1840             // or, line 377
1841             'lab14: loop {
1842                 let v_8 = env.limit - env.cursor;
1843                 'lab15: loop {
1844                     // (, line 376
1845                     // call mark_lArI, line 376
1846                     if !r_mark_lArI(env, context) {
1847                         break 'lab15;
1848                     }
1849                     // ], line 376
1850                     env.bra = env.cursor;
1851                     // delete, line 376
1852                     if !env.slice_del() {
1853                         return false;
1854                     }
1855                     break 'lab14;
1856                 }
1857                 env.cursor = env.limit - v_8;
1858                 'lab16: loop {
1859                     // (, line 378
1860                     // call mark_sU, line 378
1861                     if !r_mark_sU(env, context) {
1862                         break 'lab16;
1863                     }
1864                     // ], line 378
1865                     env.bra = env.cursor;
1866                     // delete, line 378
1867                     if !env.slice_del() {
1868                         return false;
1869                     }
1870                     // try, line 378
1871                     let v_9 = env.limit - env.cursor;
1872                     'lab17: loop {
1873                         // (, line 378
1874                         // [, line 378
1875                         env.ket = env.cursor;
1876                         // call mark_lAr, line 378
1877                         if !r_mark_lAr(env, context) {
1878                             env.cursor = env.limit - v_9;
1879                             break 'lab17;
1880                         }
1881                         // ], line 378
1882                         env.bra = env.cursor;
1883                         // delete, line 378
1884                         if !env.slice_del() {
1885                             return false;
1886                         }
1887                         // call stem_suffix_chain_before_ki, line 378
1888                         if !r_stem_suffix_chain_before_ki(env, context) {
1889                             env.cursor = env.limit - v_9;
1890                             break 'lab17;
1891                         }
1892                         break 'lab17;
1893                     }
1894                     break 'lab14;
1895                 }
1896                 env.cursor = env.limit - v_8;
1897                 // (, line 380
1898                 // call stem_suffix_chain_before_ki, line 380
1899                 if !r_stem_suffix_chain_before_ki(env, context) {
1900                     break 'lab11;
1901                 }
1902                 break 'lab14;
1903             }
1904             break 'lab0;
1905         }
1906         env.cursor = env.limit - v_1;
1907         'lab18: loop {
1908             // (, line 384
1909             // [, line 384
1910             env.ket = env.cursor;
1911             // (, line 384
1912             // or, line 384
1913             'lab19: loop {
1914                 let v_10 = env.limit - env.cursor;
1915                 'lab20: loop {
1916                     // call mark_ndAn, line 384
1917                     if !r_mark_ndAn(env, context) {
1918                         break 'lab20;
1919                     }
1920                     break 'lab19;
1921                 }
1922                 env.cursor = env.limit - v_10;
1923                 // call mark_nU, line 384
1924                 if !r_mark_nU(env, context) {
1925                     break 'lab18;
1926                 }
1927                 break 'lab19;
1928             }
1929             // (, line 384
1930             // or, line 384
1931             'lab21: loop {
1932                 let v_11 = env.limit - env.cursor;
1933                 'lab22: loop {
1934                     // (, line 384
1935                     // call mark_sU, line 384
1936                     if !r_mark_sU(env, context) {
1937                         break 'lab22;
1938                     }
1939                     // ], line 384
1940                     env.bra = env.cursor;
1941                     // delete, line 384
1942                     if !env.slice_del() {
1943                         return false;
1944                     }
1945                     // try, line 384
1946                     let v_12 = env.limit - env.cursor;
1947                     'lab23: loop {
1948                         // (, line 384
1949                         // [, line 384
1950                         env.ket = env.cursor;
1951                         // call mark_lAr, line 384
1952                         if !r_mark_lAr(env, context) {
1953                             env.cursor = env.limit - v_12;
1954                             break 'lab23;
1955                         }
1956                         // ], line 384
1957                         env.bra = env.cursor;
1958                         // delete, line 384
1959                         if !env.slice_del() {
1960                             return false;
1961                         }
1962                         // call stem_suffix_chain_before_ki, line 384
1963                         if !r_stem_suffix_chain_before_ki(env, context) {
1964                             env.cursor = env.limit - v_12;
1965                             break 'lab23;
1966                         }
1967                         break 'lab23;
1968                     }
1969                     break 'lab21;
1970                 }
1971                 env.cursor = env.limit - v_11;
1972                 // (, line 384
1973                 // call mark_lArI, line 384
1974                 if !r_mark_lArI(env, context) {
1975                     break 'lab18;
1976                 }
1977                 break 'lab21;
1978             }
1979             break 'lab0;
1980         }
1981         env.cursor = env.limit - v_1;
1982         'lab24: loop {
1983             // (, line 386
1984             // [, line 386
1985             env.ket = env.cursor;
1986             // call mark_DAn, line 386
1987             if !r_mark_DAn(env, context) {
1988                 break 'lab24;
1989             }
1990             // ], line 386
1991             env.bra = env.cursor;
1992             // delete, line 386
1993             if !env.slice_del() {
1994                 return false;
1995             }
1996             // try, line 386
1997             let v_13 = env.limit - env.cursor;
1998             'lab25: loop {
1999                 // (, line 386
2000                 // [, line 386
2001                 env.ket = env.cursor;
2002                 // (, line 387
2003                 // or, line 389
2004                 'lab26: loop {
2005                     let v_14 = env.limit - env.cursor;
2006                     'lab27: loop {
2007                         // (, line 388
2008                         // call mark_possessives, line 388
2009                         if !r_mark_possessives(env, context) {
2010                             break 'lab27;
2011                         }
2012                         // ], line 388
2013                         env.bra = env.cursor;
2014                         // delete, line 388
2015                         if !env.slice_del() {
2016                             return false;
2017                         }
2018                         // try, line 388
2019                         let v_15 = env.limit - env.cursor;
2020                         'lab28: loop {
2021                             // (, line 388
2022                             // [, line 388
2023                             env.ket = env.cursor;
2024                             // call mark_lAr, line 388
2025                             if !r_mark_lAr(env, context) {
2026                                 env.cursor = env.limit - v_15;
2027                                 break 'lab28;
2028                             }
2029                             // ], line 388
2030                             env.bra = env.cursor;
2031                             // delete, line 388
2032                             if !env.slice_del() {
2033                                 return false;
2034                             }
2035                             // call stem_suffix_chain_before_ki, line 388
2036                             if !r_stem_suffix_chain_before_ki(env, context) {
2037                                 env.cursor = env.limit - v_15;
2038                                 break 'lab28;
2039                             }
2040                             break 'lab28;
2041                         }
2042                         break 'lab26;
2043                     }
2044                     env.cursor = env.limit - v_14;
2045                     'lab29: loop {
2046                         // (, line 390
2047                         // call mark_lAr, line 390
2048                         if !r_mark_lAr(env, context) {
2049                             break 'lab29;
2050                         }
2051                         // ], line 390
2052                         env.bra = env.cursor;
2053                         // delete, line 390
2054                         if !env.slice_del() {
2055                             return false;
2056                         }
2057                         // try, line 390
2058                         let v_16 = env.limit - env.cursor;
2059                         'lab30: loop {
2060                             // (, line 390
2061                             // call stem_suffix_chain_before_ki, line 390
2062                             if !r_stem_suffix_chain_before_ki(env, context) {
2063                                 env.cursor = env.limit - v_16;
2064                                 break 'lab30;
2065                             }
2066                             break 'lab30;
2067                         }
2068                         break 'lab26;
2069                     }
2070                     env.cursor = env.limit - v_14;
2071                     // (, line 392
2072                     // call stem_suffix_chain_before_ki, line 392
2073                     if !r_stem_suffix_chain_before_ki(env, context) {
2074                         env.cursor = env.limit - v_13;
2075                         break 'lab25;
2076                     }
2077                     break 'lab26;
2078                 }
2079                 break 'lab25;
2080             }
2081             break 'lab0;
2082         }
2083         env.cursor = env.limit - v_1;
2084         'lab31: loop {
2085             // (, line 396
2086             // [, line 396
2087             env.ket = env.cursor;
2088             // or, line 396
2089             'lab32: loop {
2090                 let v_17 = env.limit - env.cursor;
2091                 'lab33: loop {
2092                     // call mark_nUn, line 396
2093                     if !r_mark_nUn(env, context) {
2094                         break 'lab33;
2095                     }
2096                     break 'lab32;
2097                 }
2098                 env.cursor = env.limit - v_17;
2099                 // call mark_ylA, line 396
2100                 if !r_mark_ylA(env, context) {
2101                     break 'lab31;
2102                 }
2103                 break 'lab32;
2104             }
2105             // ], line 396
2106             env.bra = env.cursor;
2107             // delete, line 396
2108             if !env.slice_del() {
2109                 return false;
2110             }
2111             // try, line 397
2112             let v_18 = env.limit - env.cursor;
2113             'lab34: loop {
2114                 // (, line 397
2115                 // or, line 399
2116                 'lab35: loop {
2117                     let v_19 = env.limit - env.cursor;
2118                     'lab36: loop {
2119                         // (, line 398
2120                         // [, line 398
2121                         env.ket = env.cursor;
2122                         // call mark_lAr, line 398
2123                         if !r_mark_lAr(env, context) {
2124                             break 'lab36;
2125                         }
2126                         // ], line 398
2127                         env.bra = env.cursor;
2128                         // delete, line 398
2129                         if !env.slice_del() {
2130                             return false;
2131                         }
2132                         // call stem_suffix_chain_before_ki, line 398
2133                         if !r_stem_suffix_chain_before_ki(env, context) {
2134                             break 'lab36;
2135                         }
2136                         break 'lab35;
2137                     }
2138                     env.cursor = env.limit - v_19;
2139                     'lab37: loop {
2140                         // (, line 400
2141                         // [, line 400
2142                         env.ket = env.cursor;
2143                         // or, line 400
2144                         'lab38: loop {
2145                             let v_20 = env.limit - env.cursor;
2146                             'lab39: loop {
2147                                 // call mark_possessives, line 400
2148                                 if !r_mark_possessives(env, context) {
2149                                     break 'lab39;
2150                                 }
2151                                 break 'lab38;
2152                             }
2153                             env.cursor = env.limit - v_20;
2154                             // call mark_sU, line 400
2155                             if !r_mark_sU(env, context) {
2156                                 break 'lab37;
2157                             }
2158                             break 'lab38;
2159                         }
2160                         // ], line 400
2161                         env.bra = env.cursor;
2162                         // delete, line 400
2163                         if !env.slice_del() {
2164                             return false;
2165                         }
2166                         // try, line 400
2167                         let v_21 = env.limit - env.cursor;
2168                         'lab40: loop {
2169                             // (, line 400
2170                             // [, line 400
2171                             env.ket = env.cursor;
2172                             // call mark_lAr, line 400
2173                             if !r_mark_lAr(env, context) {
2174                                 env.cursor = env.limit - v_21;
2175                                 break 'lab40;
2176                             }
2177                             // ], line 400
2178                             env.bra = env.cursor;
2179                             // delete, line 400
2180                             if !env.slice_del() {
2181                                 return false;
2182                             }
2183                             // call stem_suffix_chain_before_ki, line 400
2184                             if !r_stem_suffix_chain_before_ki(env, context) {
2185                                 env.cursor = env.limit - v_21;
2186                                 break 'lab40;
2187                             }
2188                             break 'lab40;
2189                         }
2190                         break 'lab35;
2191                     }
2192                     env.cursor = env.limit - v_19;
2193                     // call stem_suffix_chain_before_ki, line 402
2194                     if !r_stem_suffix_chain_before_ki(env, context) {
2195                         env.cursor = env.limit - v_18;
2196                         break 'lab34;
2197                     }
2198                     break 'lab35;
2199                 }
2200                 break 'lab34;
2201             }
2202             break 'lab0;
2203         }
2204         env.cursor = env.limit - v_1;
2205         'lab41: loop {
2206             // (, line 406
2207             // [, line 406
2208             env.ket = env.cursor;
2209             // call mark_lArI, line 406
2210             if !r_mark_lArI(env, context) {
2211                 break 'lab41;
2212             }
2213             // ], line 406
2214             env.bra = env.cursor;
2215             // delete, line 406
2216             if !env.slice_del() {
2217                 return false;
2218             }
2219             break 'lab0;
2220         }
2221         env.cursor = env.limit - v_1;
2222         'lab42: loop {
2223             // (, line 408
2224             // call stem_suffix_chain_before_ki, line 408
2225             if !r_stem_suffix_chain_before_ki(env, context) {
2226                 break 'lab42;
2227             }
2228             break 'lab0;
2229         }
2230         env.cursor = env.limit - v_1;
2231         'lab43: loop {
2232             // (, line 410
2233             // [, line 410
2234             env.ket = env.cursor;
2235             // or, line 410
2236             'lab44: loop {
2237                 let v_22 = env.limit - env.cursor;
2238                 'lab45: loop {
2239                     // call mark_DA, line 410
2240                     if !r_mark_DA(env, context) {
2241                         break 'lab45;
2242                     }
2243                     break 'lab44;
2244                 }
2245                 env.cursor = env.limit - v_22;
2246                 'lab46: loop {
2247                     // call mark_yU, line 410
2248                     if !r_mark_yU(env, context) {
2249                         break 'lab46;
2250                     }
2251                     break 'lab44;
2252                 }
2253                 env.cursor = env.limit - v_22;
2254                 // call mark_yA, line 410
2255                 if !r_mark_yA(env, context) {
2256                     break 'lab43;
2257                 }
2258                 break 'lab44;
2259             }
2260             // ], line 410
2261             env.bra = env.cursor;
2262             // delete, line 410
2263             if !env.slice_del() {
2264                 return false;
2265             }
2266             // try, line 410
2267             let v_23 = env.limit - env.cursor;
2268             'lab47: loop {
2269                 // (, line 410
2270                 // [, line 410
2271                 env.ket = env.cursor;
2272                 // (, line 410
2273                 // or, line 410
2274                 'lab48: loop {
2275                     let v_24 = env.limit - env.cursor;
2276                     'lab49: loop {
2277                         // (, line 410
2278                         // call mark_possessives, line 410
2279                         if !r_mark_possessives(env, context) {
2280                             break 'lab49;
2281                         }
2282                         // ], line 410
2283                         env.bra = env.cursor;
2284                         // delete, line 410
2285                         if !env.slice_del() {
2286                             return false;
2287                         }
2288                         // try, line 410
2289                         let v_25 = env.limit - env.cursor;
2290                         'lab50: loop {
2291                             // (, line 410
2292                             // [, line 410
2293                             env.ket = env.cursor;
2294                             // call mark_lAr, line 410
2295                             if !r_mark_lAr(env, context) {
2296                                 env.cursor = env.limit - v_25;
2297                                 break 'lab50;
2298                             }
2299                             break 'lab50;
2300                         }
2301                         break 'lab48;
2302                     }
2303                     env.cursor = env.limit - v_24;
2304                     // call mark_lAr, line 410
2305                     if !r_mark_lAr(env, context) {
2306                         env.cursor = env.limit - v_23;
2307                         break 'lab47;
2308                     }
2309                     break 'lab48;
2310                 }
2311                 // ], line 410
2312                 env.bra = env.cursor;
2313                 // delete, line 410
2314                 if !env.slice_del() {
2315                     return false;
2316                 }
2317                 // [, line 410
2318                 env.ket = env.cursor;
2319                 // call stem_suffix_chain_before_ki, line 410
2320                 if !r_stem_suffix_chain_before_ki(env, context) {
2321                     env.cursor = env.limit - v_23;
2322                     break 'lab47;
2323                 }
2324                 break 'lab47;
2325             }
2326             break 'lab0;
2327         }
2328         env.cursor = env.limit - v_1;
2329         // (, line 412
2330         // [, line 412
2331         env.ket = env.cursor;
2332         // or, line 412
2333         'lab51: loop {
2334             let v_26 = env.limit - env.cursor;
2335             'lab52: loop {
2336                 // call mark_possessives, line 412
2337                 if !r_mark_possessives(env, context) {
2338                     break 'lab52;
2339                 }
2340                 break 'lab51;
2341             }
2342             env.cursor = env.limit - v_26;
2343             // call mark_sU, line 412
2344             if !r_mark_sU(env, context) {
2345                 return false;
2346             }
2347             break 'lab51;
2348         }
2349         // ], line 412
2350         env.bra = env.cursor;
2351         // delete, line 412
2352         if !env.slice_del() {
2353             return false;
2354         }
2355         // try, line 412
2356         let v_27 = env.limit - env.cursor;
2357         'lab53: loop {
2358             // (, line 412
2359             // [, line 412
2360             env.ket = env.cursor;
2361             // call mark_lAr, line 412
2362             if !r_mark_lAr(env, context) {
2363                 env.cursor = env.limit - v_27;
2364                 break 'lab53;
2365             }
2366             // ], line 412
2367             env.bra = env.cursor;
2368             // delete, line 412
2369             if !env.slice_del() {
2370                 return false;
2371             }
2372             // call stem_suffix_chain_before_ki, line 412
2373             if !r_stem_suffix_chain_before_ki(env, context) {
2374                 env.cursor = env.limit - v_27;
2375                 break 'lab53;
2376             }
2377             break 'lab53;
2378         }
2379         break 'lab0;
2380     }
2381     return true;
2382 }
2383 
2384 fn r_post_process_last_consonants(env: &mut SnowballEnv, context: &mut Context) -> bool {
2385     let mut among_var;
2386     // (, line 415
2387     // [, line 416
2388     env.ket = env.cursor;
2389     // substring, line 416
2390     among_var = env.find_among_b(A_23, context);
2391     if among_var == 0 {
2392         return false;
2393     }
2394     // ], line 416
2395     env.bra = env.cursor;
2396     if among_var == 0 {
2397         return false;
2398     } else if among_var == 1 {
2399         // (, line 417
2400         // <-, line 417
2401         if !env.slice_from("p") {
2402             return false;
2403         }
2404     } else if among_var == 2 {
2405         // (, line 418
2406         // <-, line 418
2407         if !env.slice_from("\u{00E7}") {
2408             return false;
2409         }
2410     } else if among_var == 3 {
2411         // (, line 419
2412         // <-, line 419
2413         if !env.slice_from("t") {
2414             return false;
2415         }
2416     } else if among_var == 4 {
2417         // (, line 420
2418         // <-, line 420
2419         if !env.slice_from("k") {
2420             return false;
2421         }
2422     }
2423     return true;
2424 }
2425 
2426 fn r_append_U_to_stems_ending_with_d_or_g(env: &mut SnowballEnv, context: &mut Context) -> bool {
2427     // (, line 430
2428     // test, line 431
2429     let v_1 = env.limit - env.cursor;
2430     // (, line 431
2431     // or, line 431
2432     'lab0: loop {
2433         let v_2 = env.limit - env.cursor;
2434         'lab1: loop {
2435             // literal, line 431
2436             if !env.eq_s_b(&"d") {
2437                 break 'lab1;
2438             }
2439             break 'lab0;
2440         }
2441         env.cursor = env.limit - v_2;
2442         // literal, line 431
2443         if !env.eq_s_b(&"g") {
2444             return false;
2445         }
2446         break 'lab0;
2447     }
2448     env.cursor = env.limit - v_1;
2449     // or, line 433
2450     'lab2: loop {
2451         let v_3 = env.limit - env.cursor;
2452         'lab3: loop {
2453             // (, line 432
2454             // test, line 432
2455             let v_4 = env.limit - env.cursor;
2456             // (, line 432
2457             // (, line 432
2458             // goto, line 432
2459             'golab4: loop {
2460                 let v_5 = env.limit - env.cursor;
2461                 'lab5: loop {
2462                     if !env.in_grouping_b(G_vowel, 97, 305) {
2463                         break 'lab5;
2464                     }
2465                     env.cursor = env.limit - v_5;
2466                     break 'golab4;
2467                 }
2468                 env.cursor = env.limit - v_5;
2469                 if env.cursor <= env.limit_backward {
2470                     break 'lab3;
2471                 }
2472                 env.previous_char();
2473             }
2474             // or, line 432
2475             'lab6: loop {
2476                 let v_6 = env.limit - env.cursor;
2477                 'lab7: loop {
2478                     // literal, line 432
2479                     if !env.eq_s_b(&"a") {
2480                         break 'lab7;
2481                     }
2482                     break 'lab6;
2483                 }
2484                 env.cursor = env.limit - v_6;
2485                 // literal, line 432
2486                 if !env.eq_s_b(&"\u{0131}") {
2487                     break 'lab3;
2488                 }
2489                 break 'lab6;
2490             }
2491             env.cursor = env.limit - v_4;
2492             // <+, line 432
2493             let c = env.cursor;
2494             let (bra, ket) = (env.cursor, env.cursor);
2495             env.insert(bra, ket, "\u{0131}");
2496             env.cursor = c;
2497             break 'lab2;
2498         }
2499         env.cursor = env.limit - v_3;
2500         'lab8: loop {
2501             // (, line 434
2502             // test, line 434
2503             let v_7 = env.limit - env.cursor;
2504             // (, line 434
2505             // (, line 434
2506             // goto, line 434
2507             'golab9: loop {
2508                 let v_8 = env.limit - env.cursor;
2509                 'lab10: loop {
2510                     if !env.in_grouping_b(G_vowel, 97, 305) {
2511                         break 'lab10;
2512                     }
2513                     env.cursor = env.limit - v_8;
2514                     break 'golab9;
2515                 }
2516                 env.cursor = env.limit - v_8;
2517                 if env.cursor <= env.limit_backward {
2518                     break 'lab8;
2519                 }
2520                 env.previous_char();
2521             }
2522             // or, line 434
2523             'lab11: loop {
2524                 let v_9 = env.limit - env.cursor;
2525                 'lab12: loop {
2526                     // literal, line 434
2527                     if !env.eq_s_b(&"e") {
2528                         break 'lab12;
2529                     }
2530                     break 'lab11;
2531                 }
2532                 env.cursor = env.limit - v_9;
2533                 // literal, line 434
2534                 if !env.eq_s_b(&"i") {
2535                     break 'lab8;
2536                 }
2537                 break 'lab11;
2538             }
2539             env.cursor = env.limit - v_7;
2540             // <+, line 434
2541             let c = env.cursor;
2542             let (bra, ket) = (env.cursor, env.cursor);
2543             env.insert(bra, ket, "i");
2544             env.cursor = c;
2545             break 'lab2;
2546         }
2547         env.cursor = env.limit - v_3;
2548         'lab13: loop {
2549             // (, line 436
2550             // test, line 436
2551             let v_10 = env.limit - env.cursor;
2552             // (, line 436
2553             // (, line 436
2554             // goto, line 436
2555             'golab14: loop {
2556                 let v_11 = env.limit - env.cursor;
2557                 'lab15: loop {
2558                     if !env.in_grouping_b(G_vowel, 97, 305) {
2559                         break 'lab15;
2560                     }
2561                     env.cursor = env.limit - v_11;
2562                     break 'golab14;
2563                 }
2564                 env.cursor = env.limit - v_11;
2565                 if env.cursor <= env.limit_backward {
2566                     break 'lab13;
2567                 }
2568                 env.previous_char();
2569             }
2570             // or, line 436
2571             'lab16: loop {
2572                 let v_12 = env.limit - env.cursor;
2573                 'lab17: loop {
2574                     // literal, line 436
2575                     if !env.eq_s_b(&"o") {
2576                         break 'lab17;
2577                     }
2578                     break 'lab16;
2579                 }
2580                 env.cursor = env.limit - v_12;
2581                 // literal, line 436
2582                 if !env.eq_s_b(&"u") {
2583                     break 'lab13;
2584                 }
2585                 break 'lab16;
2586             }
2587             env.cursor = env.limit - v_10;
2588             // <+, line 436
2589             let c = env.cursor;
2590             let (bra, ket) = (env.cursor, env.cursor);
2591             env.insert(bra, ket, "u");
2592             env.cursor = c;
2593             break 'lab2;
2594         }
2595         env.cursor = env.limit - v_3;
2596         // (, line 438
2597         // test, line 438
2598         let v_13 = env.limit - env.cursor;
2599         // (, line 438
2600         // (, line 438
2601         // goto, line 438
2602         'golab18: loop {
2603             let v_14 = env.limit - env.cursor;
2604             'lab19: loop {
2605                 if !env.in_grouping_b(G_vowel, 97, 305) {
2606                     break 'lab19;
2607                 }
2608                 env.cursor = env.limit - v_14;
2609                 break 'golab18;
2610             }
2611             env.cursor = env.limit - v_14;
2612             if env.cursor <= env.limit_backward {
2613                 return false;
2614             }
2615             env.previous_char();
2616         }
2617         // or, line 438
2618         'lab20: loop {
2619             let v_15 = env.limit - env.cursor;
2620             'lab21: loop {
2621                 // literal, line 438
2622                 if !env.eq_s_b(&"\u{00F6}") {
2623                     break 'lab21;
2624                 }
2625                 break 'lab20;
2626             }
2627             env.cursor = env.limit - v_15;
2628             // literal, line 438
2629             if !env.eq_s_b(&"\u{00FC}") {
2630                 return false;
2631             }
2632             break 'lab20;
2633         }
2634         env.cursor = env.limit - v_13;
2635         // <+, line 438
2636         let c = env.cursor;
2637         let (bra, ket) = (env.cursor, env.cursor);
2638         env.insert(bra, ket, "\u{00FC}");
2639         env.cursor = c;
2640         break 'lab2;
2641     }
2642     return true;
2643 }
2644 
2645 fn r_more_than_one_syllable_word(env: &mut SnowballEnv, context: &mut Context) -> bool {
2646     // (, line 445
2647     // test, line 446
2648     let v_1 = env.cursor;
2649     // (, line 446
2650     // atleast, line 446
2651     let mut v_2 = 2;
2652     // atleast, line 446
2653     'replab0: loop{
2654         let v_3 = env.cursor;
2655         'lab1: for _ in 0..1 {
2656             // (, line 446
2657             // gopast, line 446
2658             'golab2: loop {
2659                 'lab3: loop {
2660                     if !env.in_grouping(G_vowel, 97, 305) {
2661                         break 'lab3;
2662                     }
2663                     break 'golab2;
2664                 }
2665                 if env.cursor >= env.limit {
2666                     break 'lab1;
2667                 }
2668                 env.next_char();
2669             }
2670             v_2 -= 1;
2671             continue 'replab0;
2672         }
2673         env.cursor = v_3;
2674         break 'replab0;
2675     }
2676     if v_2 > 0 {
2677         return false;
2678     }
2679     env.cursor = v_1;
2680     return true;
2681 }
2682 
2683 fn r_is_reserved_word(env: &mut SnowballEnv, context: &mut Context) -> bool {
2684     // (, line 449
2685     // or, line 451
2686     'lab0: loop {
2687         let v_1 = env.cursor;
2688         'lab1: loop {
2689             // test, line 450
2690             let v_2 = env.cursor;
2691             // (, line 450
2692             // gopast, line 450
2693             'golab2: loop {
2694                 'lab3: loop {
2695                     // literal, line 450
2696                     if !env.eq_s(&"ad") {
2697                         break 'lab3;
2698                     }
2699                     break 'golab2;
2700                 }
2701                 if env.cursor >= env.limit {
2702                     break 'lab1;
2703                 }
2704                 env.next_char();
2705             }
2706             // (, line 450
2707             context.i_strlen = 2;
2708             // (, line 450
2709             if !(context.i_strlen == env.limit){
2710                 break 'lab1;
2711             }
2712             env.cursor = v_2;
2713             break 'lab0;
2714         }
2715         env.cursor = v_1;
2716         // test, line 452
2717         let v_4 = env.cursor;
2718         // (, line 452
2719         // gopast, line 452
2720         'golab4: loop {
2721             'lab5: loop {
2722                 // literal, line 452
2723                 if !env.eq_s(&"soyad") {
2724                     break 'lab5;
2725                 }
2726                 break 'golab4;
2727             }
2728             if env.cursor >= env.limit {
2729                 return false;
2730             }
2731             env.next_char();
2732         }
2733         // (, line 452
2734         context.i_strlen = 5;
2735         // (, line 452
2736         if !(context.i_strlen == env.limit){
2737             return false;
2738         }
2739         env.cursor = v_4;
2740         break 'lab0;
2741     }
2742     return true;
2743 }
2744 
2745 fn r_postlude(env: &mut SnowballEnv, context: &mut Context) -> bool {
2746     // (, line 455
2747     // not, line 456
2748     let v_1 = env.cursor;
2749     'lab0: loop {
2750         // (, line 456
2751         // call is_reserved_word, line 456
2752         if !r_is_reserved_word(env, context) {
2753             break 'lab0;
2754         }
2755         return false;
2756     }
2757     env.cursor = v_1;
2758     // backwards, line 457
2759     env.limit_backward = env.cursor;
2760     env.cursor = env.limit;
2761     // (, line 457
2762     // do, line 458
2763     let v_2 = env.limit - env.cursor;
2764     'lab1: loop {
2765         // call append_U_to_stems_ending_with_d_or_g, line 458
2766         if !r_append_U_to_stems_ending_with_d_or_g(env, context) {
2767             break 'lab1;
2768         }
2769         break 'lab1;
2770     }
2771     env.cursor = env.limit - v_2;
2772     // do, line 459
2773     let v_3 = env.limit - env.cursor;
2774     'lab2: loop {
2775         // call post_process_last_consonants, line 459
2776         if !r_post_process_last_consonants(env, context) {
2777             break 'lab2;
2778         }
2779         break 'lab2;
2780     }
2781     env.cursor = env.limit - v_3;
2782     env.cursor = env.limit_backward;
2783     return true;
2784 }
2785 
2786 pub fn stem(env: &mut SnowballEnv) -> bool {
2787     let mut context = &mut Context {
2788         b_continue_stemming_noun_suffixes: false,
2789         i_strlen: 0,
2790     };
2791     // (, line 464
2792     // (, line 465
2793     // call more_than_one_syllable_word, line 465
2794     if !r_more_than_one_syllable_word(env, context) {
2795         return false;
2796     }
2797     // (, line 466
2798     // backwards, line 467
2799     env.limit_backward = env.cursor;
2800     env.cursor = env.limit;
2801     // (, line 467
2802     // do, line 468
2803     let v_1 = env.limit - env.cursor;
2804     'lab0: loop {
2805         // call stem_nominal_verb_suffixes, line 468
2806         if !r_stem_nominal_verb_suffixes(env, context) {
2807             break 'lab0;
2808         }
2809         break 'lab0;
2810     }
2811     env.cursor = env.limit - v_1;
2812     // Boolean test continue_stemming_noun_suffixes, line 469
2813     if !context.b_continue_stemming_noun_suffixes {
2814         return false;
2815     }
2816     // do, line 470
2817     let v_2 = env.limit - env.cursor;
2818     'lab1: loop {
2819         // call stem_noun_suffixes, line 470
2820         if !r_stem_noun_suffixes(env, context) {
2821             break 'lab1;
2822         }
2823         break 'lab1;
2824     }
2825     env.cursor = env.limit - v_2;
2826     env.cursor = env.limit_backward;
2827     // call postlude, line 473
2828     if !r_postlude(env, context) {
2829         return false;
2830     }
2831     return true;
2832 }
2833