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