55 using Among = SF.Snowball.Among;
57 namespace SF.Snowball.Ext
68 new Among(
"m", -1, -1,
"", null),
69 new Among(
"n", -1, -1,
"", null),
70 new Among(
"miz", -1, -1,
"", null),
71 new Among(
"niz", -1, -1,
"", null),
72 new Among(
"muz", -1, -1,
"", null),
73 new Among(
"nuz", -1, -1,
"", null),
74 new Among(
"m\u00FCz", -1, -1,
"", null),
75 new Among(
"n\u00FCz", -1, -1,
"", null),
76 new Among(
"m\u0131z", -1, -1,
"", null),
77 new Among(
"n\u0131z", -1, -1,
"", null)
81 new Among(
"leri", -1, -1,
"", null),
82 new Among(
"lar\u0131", -1, -1,
"", null)
86 new Among(
"ni", -1, -1,
"", null),
87 new Among(
"nu", -1, -1,
"", null),
88 new Among(
"n\u00FC", -1, -1,
"", null),
89 new Among(
"n\u0131", -1, -1,
"", null)
93 new Among(
"in", -1, -1,
"", null),
94 new Among(
"un", -1, -1,
"", null),
95 new Among(
"\u00FCn", -1, -1,
"", null),
96 new Among(
"\u0131n", -1, -1,
"", null)
100 new Among(
"a", -1, -1,
"", null),
101 new Among(
"e", -1, -1,
"", null)
105 new Among(
"na", -1, -1,
"", null),
106 new Among(
"ne", -1, -1,
"", null)
110 new Among(
"da", -1, -1,
"", null),
111 new Among(
"ta", -1, -1,
"", null),
112 new Among(
"de", -1, -1,
"", null),
113 new Among(
"te", -1, -1,
"", null)
117 new Among(
"nda", -1, -1,
"", null),
118 new Among(
"nde", -1, -1,
"", null)
122 new Among(
"dan", -1, -1,
"", null),
123 new Among(
"tan", -1, -1,
"", null),
124 new Among(
"den", -1, -1,
"", null),
125 new Among(
"ten", -1, -1,
"", null)
129 new Among(
"ndan", -1, -1,
"", null),
130 new Among(
"nden", -1, -1,
"", null)
134 new Among(
"la", -1, -1,
"", null),
135 new Among(
"le", -1, -1,
"", null)
139 new Among(
"ca", -1, -1,
"", null),
140 new Among(
"ce", -1, -1,
"", null)
144 new Among(
"im", -1, -1,
"", null),
145 new Among(
"um", -1, -1,
"", null),
146 new Among(
"\u00FCm", -1, -1,
"", null),
147 new Among(
"\u0131m", -1, -1,
"", null)
151 new Among(
"sin", -1, -1,
"", null),
152 new Among(
"sun", -1, -1,
"", null),
153 new Among(
"s\u00FCn", -1, -1,
"", null),
154 new Among(
"s\u0131n", -1, -1,
"", null)
158 new Among(
"iz", -1, -1,
"", null),
159 new Among(
"uz", -1, -1,
"", null),
160 new Among(
"\u00FCz", -1, -1,
"", null),
161 new Among(
"\u0131z", -1, -1,
"", null)
165 new Among(
"siniz", -1, -1,
"", null),
166 new Among(
"sunuz", -1, -1,
"", null),
167 new Among(
"s\u00FCn\u00FCz", -1, -1,
"", null),
168 new Among(
"s\u0131n\u0131z", -1, -1,
"", null)
172 new Among(
"lar", -1, -1,
"", null),
173 new Among(
"ler", -1, -1,
"", null)
177 new Among(
"niz", -1, -1,
"", null),
178 new Among(
"nuz", -1, -1,
"", null),
179 new Among(
"n\u00FCz", -1, -1,
"", null),
180 new Among(
"n\u0131z", -1, -1,
"", null)
184 new Among(
"dir", -1, -1,
"", null),
185 new Among(
"tir", -1, -1,
"", null),
186 new Among(
"dur", -1, -1,
"", null),
187 new Among(
"tur", -1, -1,
"", null),
188 new Among(
"d\u00FCr", -1, -1,
"", null),
189 new Among(
"t\u00FCr", -1, -1,
"", null),
190 new Among(
"d\u0131r", -1, -1,
"", null),
191 new Among(
"t\u0131r", -1, -1,
"", null)
195 new Among(
"cas\u0131na", -1, -1,
"", null),
196 new Among(
"cesine", -1, -1,
"", null)
200 new Among(
"di", -1, -1,
"", null),
201 new Among(
"ti", -1, -1,
"", null),
202 new Among(
"dik", -1, -1,
"", null),
203 new Among(
"tik", -1, -1,
"", null),
204 new Among(
"duk", -1, -1,
"", null),
205 new Among(
"tuk", -1, -1,
"", null),
206 new Among(
"d\u00FCk", -1, -1,
"", null),
207 new Among(
"t\u00FCk", -1, -1,
"", null),
208 new Among(
"d\u0131k", -1, -1,
"", null),
209 new Among(
"t\u0131k", -1, -1,
"", null),
210 new Among(
"dim", -1, -1,
"", null),
211 new Among(
"tim", -1, -1,
"", null),
212 new Among(
"dum", -1, -1,
"", null),
213 new Among(
"tum", -1, -1,
"", null),
214 new Among(
"d\u00FCm", -1, -1,
"", null),
215 new Among(
"t\u00FCm", -1, -1,
"", null),
216 new Among(
"d\u0131m", -1, -1,
"", null),
217 new Among(
"t\u0131m", -1, -1,
"", null),
218 new Among(
"din", -1, -1,
"", null),
219 new Among(
"tin", -1, -1,
"", null),
220 new Among(
"dun", -1, -1,
"", null),
221 new Among(
"tun", -1, -1,
"", null),
222 new Among(
"d\u00FCn", -1, -1,
"", null),
223 new Among(
"t\u00FCn", -1, -1,
"", null),
224 new Among(
"d\u0131n", -1, -1,
"", null),
225 new Among(
"t\u0131n", -1, -1,
"", null),
226 new Among(
"du", -1, -1,
"", null),
227 new Among(
"tu", -1, -1,
"", null),
228 new Among(
"d\u00FC", -1, -1,
"", null),
229 new Among(
"t\u00FC", -1, -1,
"", null),
230 new Among(
"d\u0131", -1, -1,
"", null),
231 new Among(
"t\u0131", -1, -1,
"", null)
235 new Among(
"sa", -1, -1,
"", null),
236 new Among(
"se", -1, -1,
"", null),
237 new Among(
"sak", -1, -1,
"", null),
238 new Among(
"sek", -1, -1,
"", null),
239 new Among(
"sam", -1, -1,
"", null),
240 new Among(
"sem", -1, -1,
"", null),
241 new Among(
"san", -1, -1,
"", null),
242 new Among(
"sen", -1, -1,
"", null)
246 new Among(
"mi\u015F", -1, -1,
"", null),
247 new Among(
"mu\u015F", -1, -1,
"", null),
248 new Among(
"m\u00FC\u015F", -1, -1,
"", null),
249 new Among(
"m\u0131\u015F", -1, -1,
"", null)
253 new Among(
"b", -1, 1,
"", null),
254 new Among(
"c", -1, 2,
"", null),
255 new Among(
"d", -1, 3,
"", null),
256 new Among(
"\u011F", -1, 4,
"", null)
271 private Among[] a_10;
272 private Among[] a_11;
273 private Among[] a_12;
274 private Among[] a_13;
275 private Among[] a_14;
276 private Among[] a_15;
277 private Among[] a_16;
278 private Among[] a_17;
279 private Among[] a_18;
280 private Among[] a_19;
281 private Among[] a_20;
282 private Among[] a_21;
283 private Among[] a_22;
284 private Among[] a_23;
285 private static readonly
char[] g_vowel =
new char[] { (char)17, (
char)65, (char)16, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)32, (
char)8, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)1 };
287 private static readonly
char[] g_U =
new char[] { (char)1, (
char)16, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)8, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)1 };
289 private static readonly
char[] g_vowel1 =
new char[] { (char)1, (
char)64, (char)16, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)1 };
291 private static readonly
char[] g_vowel2 =
new char[] { (char)17, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)130 };
293 private static readonly
char[] g_vowel3 =
new char[] { (char)1, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)1 };
295 private static readonly
char[] g_vowel4 =
new char[] { (char)17 };
297 private static readonly
char[] g_vowel5 =
new char[] { (char)65 };
299 private static readonly
char[] g_vowel6 =
new char[] { (char)65 };
301 private bool B_continue_stemming_noun_suffixes;
302 private int I_strlen;
304 private void copy_from(TurkishStemmer other)
306 B_continue_stemming_noun_suffixes = other.B_continue_stemming_noun_suffixes;
307 I_strlen = other.I_strlen;
308 base.copy_from(other);
311 private bool r_check_vowel_harmony()
326 v_1 = limit - cursor;
332 v_2 = limit - cursor;
333 if (!(in_grouping_b(g_vowel, 97, 305)))
337 cursor = limit - v_2;
340 cursor = limit - v_2;
341 if (cursor <= limit_backward)
350 v_3 = limit - cursor;
353 if (!(eq_s_b(1,
"a")))
360 v_4 = limit - cursor;
361 if (!(in_grouping_b(g_vowel1, 97, 305)))
365 cursor = limit - v_4;
368 cursor = limit - v_4;
369 if (cursor <= limit_backward)
378 cursor = limit - v_3;
381 if (!(eq_s_b(1,
"e")))
388 v_5 = limit - cursor;
389 if (!(in_grouping_b(g_vowel2, 101, 252)))
393 cursor = limit - v_5;
396 cursor = limit - v_5;
397 if (cursor <= limit_backward)
406 cursor = limit - v_3;
409 if (!(eq_s_b(1,
"\u0131")))
416 v_6 = limit - cursor;
417 if (!(in_grouping_b(g_vowel3, 97, 305)))
421 cursor = limit - v_6;
424 cursor = limit - v_6;
425 if (cursor <= limit_backward)
434 cursor = limit - v_3;
437 if (!(eq_s_b(1,
"i")))
444 v_7 = limit - cursor;
445 if (!(in_grouping_b(g_vowel4, 101, 105)))
449 cursor = limit - v_7;
452 cursor = limit - v_7;
453 if (cursor <= limit_backward)
462 cursor = limit - v_3;
465 if (!(eq_s_b(1,
"o")))
472 v_8 = limit - cursor;
473 if (!(in_grouping_b(g_vowel5, 111, 117)))
477 cursor = limit - v_8;
480 cursor = limit - v_8;
481 if (cursor <= limit_backward)
490 cursor = limit - v_3;
493 if (!(eq_s_b(1,
"\u00F6")))
500 v_9 = limit - cursor;
501 if (!(in_grouping_b(g_vowel6, 246, 252)))
505 cursor = limit - v_9;
508 cursor = limit - v_9;
509 if (cursor <= limit_backward)
518 cursor = limit - v_3;
521 if (!(eq_s_b(1,
"u")))
528 v_10 = limit - cursor;
529 if (!(in_grouping_b(g_vowel5, 111, 117)))
533 cursor = limit - v_10;
536 cursor = limit - v_10;
537 if (cursor <= limit_backward)
546 cursor = limit - v_3;
549 if (!(eq_s_b(1,
"\u00FC")))
556 v_11 = limit - cursor;
557 if (!(in_grouping_b(g_vowel6, 246, 252)))
561 cursor = limit - v_11;
564 cursor = limit - v_11;
565 if (cursor <= limit_backward)
573 cursor = limit - v_1;
577 private bool r_mark_suffix_with_optional_n_consonant()
588 v_1 = limit - cursor;
592 v_2 = limit - cursor;
594 if (!(eq_s_b(1,
"n")))
598 cursor = limit - v_2;
600 if (cursor <= limit_backward)
607 v_3 = limit - cursor;
608 if (!(in_grouping_b(g_vowel, 97, 305)))
612 cursor = limit - v_3;
615 cursor = limit - v_1;
620 v_4 = limit - cursor;
623 v_5 = limit - cursor;
625 if (!(eq_s_b(1,
"n")))
629 cursor = limit - v_5;
632 cursor = limit - v_4;
635 v_6 = limit - cursor;
638 if (cursor <= limit_backward)
645 v_7 = limit - cursor;
646 if (!(in_grouping_b(g_vowel, 97, 305)))
650 cursor = limit - v_7;
651 cursor = limit - v_6;
656 private bool r_mark_suffix_with_optional_s_consonant()
667 v_1 = limit - cursor;
671 v_2 = limit - cursor;
673 if (!(eq_s_b(1,
"s")))
677 cursor = limit - v_2;
679 if (cursor <= limit_backward)
686 v_3 = limit - cursor;
687 if (!(in_grouping_b(g_vowel, 97, 305)))
691 cursor = limit - v_3;
694 cursor = limit - v_1;
699 v_4 = limit - cursor;
702 v_5 = limit - cursor;
704 if (!(eq_s_b(1,
"s")))
708 cursor = limit - v_5;
711 cursor = limit - v_4;
714 v_6 = limit - cursor;
717 if (cursor <= limit_backward)
724 v_7 = limit - cursor;
725 if (!(in_grouping_b(g_vowel, 97, 305)))
729 cursor = limit - v_7;
730 cursor = limit - v_6;
735 private bool r_mark_suffix_with_optional_y_consonant()
746 v_1 = limit - cursor;
750 v_2 = limit - cursor;
752 if (!(eq_s_b(1,
"y")))
756 cursor = limit - v_2;
758 if (cursor <= limit_backward)
765 v_3 = limit - cursor;
766 if (!(in_grouping_b(g_vowel, 97, 305)))
770 cursor = limit - v_3;
773 cursor = limit - v_1;
778 v_4 = limit - cursor;
781 v_5 = limit - cursor;
783 if (!(eq_s_b(1,
"y")))
787 cursor = limit - v_5;
790 cursor = limit - v_4;
793 v_6 = limit - cursor;
796 if (cursor <= limit_backward)
803 v_7 = limit - cursor;
804 if (!(in_grouping_b(g_vowel, 97, 305)))
808 cursor = limit - v_7;
809 cursor = limit - v_6;
814 private bool r_mark_suffix_with_optional_U_vowel()
825 v_1 = limit - cursor;
829 v_2 = limit - cursor;
830 if (!(in_grouping_b(g_U, 105, 305)))
834 cursor = limit - v_2;
836 if (cursor <= limit_backward)
843 v_3 = limit - cursor;
844 if (!(out_grouping_b(g_vowel, 97, 305)))
848 cursor = limit - v_3;
851 cursor = limit - v_1;
856 v_4 = limit - cursor;
859 v_5 = limit - cursor;
860 if (!(in_grouping_b(g_U, 105, 305)))
864 cursor = limit - v_5;
867 cursor = limit - v_4;
870 v_6 = limit - cursor;
873 if (cursor <= limit_backward)
880 v_7 = limit - cursor;
881 if (!(out_grouping_b(g_vowel, 97, 305)))
885 cursor = limit - v_7;
886 cursor = limit - v_6;
891 private bool r_mark_possessives()
895 if (find_among_b(a_0, 10) == 0)
901 if (!r_mark_suffix_with_optional_U_vowel())
908 private bool r_mark_sU()
912 if (!r_check_vowel_harmony())
916 if (!(in_grouping_b(g_U, 105, 305)))
922 if (!r_mark_suffix_with_optional_s_consonant())
929 private bool r_mark_lArI()
933 if (find_among_b(a_1, 2) == 0)
940 private bool r_mark_yU()
944 if (!r_check_vowel_harmony())
948 if (!(in_grouping_b(g_U, 105, 305)))
954 if (!r_mark_suffix_with_optional_y_consonant())
961 private bool r_mark_nU()
965 if (!r_check_vowel_harmony())
970 if (find_among_b(a_2, 4) == 0)
977 private bool r_mark_nUn()
981 if (!r_check_vowel_harmony())
986 if (find_among_b(a_3, 4) == 0)
992 if (!r_mark_suffix_with_optional_n_consonant())
999 private bool r_mark_yA()
1003 if (!r_check_vowel_harmony())
1008 if (find_among_b(a_4, 2) == 0)
1014 if (!r_mark_suffix_with_optional_y_consonant())
1021 private bool r_mark_nA()
1025 if (!r_check_vowel_harmony())
1030 if (find_among_b(a_5, 2) == 0)
1037 private bool r_mark_DA()
1041 if (!r_check_vowel_harmony())
1046 if (find_among_b(a_6, 4) == 0)
1053 private bool r_mark_ndA()
1057 if (!r_check_vowel_harmony())
1062 if (find_among_b(a_7, 2) == 0)
1069 private bool r_mark_DAn()
1073 if (!r_check_vowel_harmony())
1078 if (find_among_b(a_8, 4) == 0)
1085 private bool r_mark_ndAn()
1089 if (!r_check_vowel_harmony())
1094 if (find_among_b(a_9, 2) == 0)
1101 private bool r_mark_ylA()
1105 if (!r_check_vowel_harmony())
1110 if (find_among_b(a_10, 2) == 0)
1116 if (!r_mark_suffix_with_optional_y_consonant())
1123 private bool r_mark_ki()
1127 if (!(eq_s_b(2,
"ki")))
1134 private bool r_mark_ncA()
1138 if (!r_check_vowel_harmony())
1143 if (find_among_b(a_11, 2) == 0)
1149 if (!r_mark_suffix_with_optional_n_consonant())
1156 private bool r_mark_yUm()
1160 if (!r_check_vowel_harmony())
1165 if (find_among_b(a_12, 4) == 0)
1171 if (!r_mark_suffix_with_optional_y_consonant())
1178 private bool r_mark_sUn()
1182 if (!r_check_vowel_harmony())
1187 if (find_among_b(a_13, 4) == 0)
1194 private bool r_mark_yUz()
1198 if (!r_check_vowel_harmony())
1203 if (find_among_b(a_14, 4) == 0)
1209 if (!r_mark_suffix_with_optional_y_consonant())
1216 private bool r_mark_sUnUz()
1220 if (find_among_b(a_15, 4) == 0)
1227 private bool r_mark_lAr()
1231 if (!r_check_vowel_harmony())
1236 if (find_among_b(a_16, 2) == 0)
1243 private bool r_mark_nUz()
1247 if (!r_check_vowel_harmony())
1252 if (find_among_b(a_17, 4) == 0)
1259 private bool r_mark_DUr()
1263 if (!r_check_vowel_harmony())
1268 if (find_among_b(a_18, 8) == 0)
1275 private bool r_mark_cAsInA()
1279 if (find_among_b(a_19, 2) == 0)
1286 private bool r_mark_yDU()
1290 if (!r_check_vowel_harmony())
1295 if (find_among_b(a_20, 32) == 0)
1301 if (!r_mark_suffix_with_optional_y_consonant())
1308 private bool r_mark_ysA()
1312 if (find_among_b(a_21, 8) == 0)
1318 if (!r_mark_suffix_with_optional_y_consonant())
1325 private bool r_mark_ymUs_()
1329 if (!r_check_vowel_harmony())
1334 if (find_among_b(a_22, 4) == 0)
1340 if (!r_mark_suffix_with_optional_y_consonant())
1347 private bool r_mark_yken()
1351 if (!(eq_s_b(3,
"ken")))
1357 if (!r_mark_suffix_with_optional_y_consonant())
1364 private bool r_stem_nominal_verb_suffixes()
1380 B_continue_stemming_noun_suffixes =
true;
1382 v_1 = limit - cursor;
1385 v_2 = limit - cursor;
1387 if (!r_mark_ymUs_())
1393 cursor = limit - v_2;
1401 cursor = limit - v_2;
1409 cursor = limit - v_2;
1418 cursor = limit - v_1;
1421 if (!r_mark_cAsInA())
1427 v_3 = limit - cursor;
1429 if (!r_mark_sUnUz())
1435 cursor = limit - v_3;
1443 cursor = limit - v_3;
1451 cursor = limit - v_3;
1459 cursor = limit - v_3;
1467 cursor = limit - v_3;
1470 if (!r_mark_ymUs_())
1476 cursor = limit - v_1;
1488 v_4 = limit - cursor;
1494 v_5 = limit - cursor;
1502 cursor = limit - v_5;
1510 cursor = limit - v_5;
1518 cursor = limit - v_5;
1520 if (!r_mark_ymUs_())
1522 cursor = limit - v_4;
1528 B_continue_stemming_noun_suffixes =
false;
1531 cursor = limit - v_1;
1540 v_6 = limit - cursor;
1548 cursor = limit - v_6;
1557 cursor = limit - v_1;
1561 v_7 = limit - cursor;
1563 if (!r_mark_sUnUz())
1569 cursor = limit - v_7;
1577 cursor = limit - v_7;
1585 cursor = limit - v_7;
1597 v_8 = limit - cursor;
1602 if (!r_mark_ymUs_())
1604 cursor = limit - v_8;
1610 cursor = limit - v_1;
1622 v_9 = limit - cursor;
1628 v_10 = limit - cursor;
1630 if (!r_mark_sUnUz())
1636 cursor = limit - v_10;
1644 cursor = limit - v_10;
1652 cursor = limit - v_10;
1660 cursor = limit - v_10;
1668 cursor = limit - v_10;
1671 if (!r_mark_ymUs_())
1673 cursor = limit - v_9;
1685 private bool r_stem_suffix_chain_before_ki()
1708 v_1 = limit - cursor;
1720 v_2 = limit - cursor;
1725 v_3 = limit - cursor;
1737 v_4 = limit - cursor;
1740 if (!r_stem_suffix_chain_before_ki())
1742 cursor = limit - v_4;
1748 cursor = limit - v_3;
1751 if (!r_mark_possessives())
1753 cursor = limit - v_2;
1761 v_5 = limit - cursor;
1768 cursor = limit - v_5;
1776 if (!r_stem_suffix_chain_before_ki())
1778 cursor = limit - v_5;
1786 cursor = limit - v_1;
1798 v_6 = limit - cursor;
1803 v_7 = limit - cursor;
1816 cursor = limit - v_7;
1821 v_8 = limit - cursor;
1823 if (!r_mark_possessives())
1829 cursor = limit - v_8;
1841 v_9 = limit - cursor;
1848 cursor = limit - v_9;
1856 if (!r_stem_suffix_chain_before_ki())
1858 cursor = limit - v_9;
1864 cursor = limit - v_7;
1867 if (!r_stem_suffix_chain_before_ki())
1869 cursor = limit - v_6;
1876 cursor = limit - v_1;
1885 v_10 = limit - cursor;
1898 cursor = limit - v_10;
1911 v_11 = limit - cursor;
1918 cursor = limit - v_11;
1926 if (!r_stem_suffix_chain_before_ki())
1928 cursor = limit - v_11;
1934 cursor = limit - v_10;
1937 if (!r_stem_suffix_chain_before_ki())
1946 private bool r_stem_noun_suffixes()
1977 v_1 = limit - cursor;
1991 v_2 = limit - cursor;
1994 if (!r_stem_suffix_chain_before_ki())
1996 cursor = limit - v_2;
2002 cursor = limit - v_1;
2016 v_3 = limit - cursor;
2019 v_4 = limit - cursor;
2034 cursor = limit - v_4;
2039 v_5 = limit - cursor;
2041 if (!r_mark_possessives())
2047 cursor = limit - v_5;
2059 v_6 = limit - cursor;
2066 cursor = limit - v_6;
2074 if (!r_stem_suffix_chain_before_ki())
2076 cursor = limit - v_6;
2082 cursor = limit - v_4;
2089 cursor = limit - v_3;
2097 if (!r_stem_suffix_chain_before_ki())
2099 cursor = limit - v_3;
2106 cursor = limit - v_1;
2112 v_7 = limit - cursor;
2120 cursor = limit - v_7;
2129 v_8 = limit - cursor;
2142 cursor = limit - v_8;
2154 v_9 = limit - cursor;
2161 cursor = limit - v_9;
2169 if (!r_stem_suffix_chain_before_ki())
2171 cursor = limit - v_9;
2177 cursor = limit - v_8;
2180 if (!r_stem_suffix_chain_before_ki())
2187 cursor = limit - v_1;
2193 v_10 = limit - cursor;
2201 cursor = limit - v_10;
2210 v_11 = limit - cursor;
2222 v_12 = limit - cursor;
2229 cursor = limit - v_12;
2237 if (!r_stem_suffix_chain_before_ki())
2239 cursor = limit - v_12;
2245 cursor = limit - v_11;
2255 cursor = limit - v_1;
2269 v_13 = limit - cursor;
2275 v_14 = limit - cursor;
2278 if (!r_mark_possessives())
2287 v_15 = limit - cursor;
2294 cursor = limit - v_15;
2302 if (!r_stem_suffix_chain_before_ki())
2304 cursor = limit - v_15;
2310 cursor = limit - v_14;
2322 v_16 = limit - cursor;
2325 if (!r_stem_suffix_chain_before_ki())
2327 cursor = limit - v_16;
2333 cursor = limit - v_14;
2336 if (!r_stem_suffix_chain_before_ki())
2338 cursor = limit - v_13;
2345 cursor = limit - v_1;
2350 v_17 = limit - cursor;
2358 cursor = limit - v_17;
2370 v_18 = limit - cursor;
2373 v_19 = limit - cursor;
2387 if (!r_stem_suffix_chain_before_ki())
2393 cursor = limit - v_19;
2398 v_20 = limit - cursor;
2400 if (!r_mark_possessives())
2406 cursor = limit - v_20;
2418 v_21 = limit - cursor;
2425 cursor = limit - v_21;
2433 if (!r_stem_suffix_chain_before_ki())
2435 cursor = limit - v_21;
2441 cursor = limit - v_19;
2443 if (!r_stem_suffix_chain_before_ki())
2445 cursor = limit - v_18;
2452 cursor = limit - v_1;
2467 cursor = limit - v_1;
2470 if (!r_stem_suffix_chain_before_ki())
2476 cursor = limit - v_1;
2481 v_22 = limit - cursor;
2489 cursor = limit - v_22;
2497 cursor = limit - v_22;
2509 v_23 = limit - cursor;
2515 v_24 = limit - cursor;
2518 if (!r_mark_possessives())
2527 v_25 = limit - cursor;
2534 cursor = limit - v_25;
2540 cursor = limit - v_24;
2544 cursor = limit - v_23;
2555 if (!r_stem_suffix_chain_before_ki())
2557 cursor = limit - v_23;
2563 cursor = limit - v_1;
2568 v_26 = limit - cursor;
2570 if (!r_mark_possessives())
2576 cursor = limit - v_26;
2588 v_27 = limit - cursor;
2595 cursor = limit - v_27;
2603 if (!r_stem_suffix_chain_before_ki())
2605 cursor = limit - v_27;
2613 private bool r_post_process_last_consonants()
2620 among_var = find_among_b(a_23, 4);
2639 slice_from(
"\u00E7");
2655 private bool r_append_U_to_stems_ending_with_d_or_g()
2674 v_1 = limit - cursor;
2677 v_2 = limit - cursor;
2679 if (!(eq_s_b(1,
"d")))
2685 cursor = limit - v_2;
2687 if (!(eq_s_b(1,
"g")))
2692 cursor = limit - v_1;
2694 v_3 = limit - cursor;
2697 v_4 = limit - cursor;
2703 v_5 = limit - cursor;
2704 if (!(in_grouping_b(g_vowel, 97, 305)))
2708 cursor = limit - v_5;
2711 cursor = limit - v_5;
2712 if (cursor <= limit_backward)
2720 v_6 = limit - cursor;
2722 if (!(eq_s_b(1,
"a")))
2728 cursor = limit - v_6;
2730 if (!(eq_s_b(1,
"\u0131")))
2735 cursor = limit - v_4;
2739 insert(cursor, cursor,
"\u0131");
2744 cursor = limit - v_3;
2747 v_7 = limit - cursor;
2753 v_8 = limit - cursor;
2754 if (!(in_grouping_b(g_vowel, 97, 305)))
2758 cursor = limit - v_8;
2761 cursor = limit - v_8;
2762 if (cursor <= limit_backward)
2770 v_9 = limit - cursor;
2772 if (!(eq_s_b(1,
"e")))
2778 cursor = limit - v_9;
2780 if (!(eq_s_b(1,
"i")))
2785 cursor = limit - v_7;
2789 insert(cursor, cursor,
"i");
2794 cursor = limit - v_3;
2797 v_10 = limit - cursor;
2803 v_11 = limit - cursor;
2804 if (!(in_grouping_b(g_vowel, 97, 305)))
2808 cursor = limit - v_11;
2811 cursor = limit - v_11;
2812 if (cursor <= limit_backward)
2820 v_12 = limit - cursor;
2822 if (!(eq_s_b(1,
"o")))
2828 cursor = limit - v_12;
2830 if (!(eq_s_b(1,
"u")))
2835 cursor = limit - v_10;
2839 insert(cursor, cursor,
"u");
2844 cursor = limit - v_3;
2847 v_13 = limit - cursor;
2853 v_14 = limit - cursor;
2854 if (!(in_grouping_b(g_vowel, 97, 305)))
2858 cursor = limit - v_14;
2861 cursor = limit - v_14;
2862 if (cursor <= limit_backward)
2870 v_15 = limit - cursor;
2872 if (!(eq_s_b(1,
"\u00F6")))
2878 cursor = limit - v_15;
2880 if (!(eq_s_b(1,
"\u00FC")))
2885 cursor = limit - v_13;
2889 insert(cursor, cursor,
"\u00FC");
2896 private bool r_more_than_one_syllable_word()
2914 if (!(in_grouping(g_vowel, 97, 305)))
2920 if (cursor >= limit)
2940 private bool r_is_reserved_word()
2955 if (!(eq_s(2,
"ad")))
2961 if (cursor >= limit)
2971 if (!(I_strlen == limit))
2986 if (!(eq_s(5,
"soyad")))
2992 if (cursor >= limit)
3002 if (!(I_strlen == limit))
3011 private bool r_postlude()
3022 if (!r_is_reserved_word())
3031 limit_backward = cursor; cursor = limit;
3034 v_2 = limit - cursor;
3036 if (!r_append_U_to_stems_ending_with_d_or_g())
3041 cursor = limit - v_2;
3043 v_3 = limit - cursor;
3045 if (!r_post_process_last_consonants())
3050 cursor = limit - v_3;
3051 cursor = limit_backward;
3055 public override bool Stem()
3062 if (!r_more_than_one_syllable_word())
3068 limit_backward = cursor; cursor = limit;
3071 v_1 = limit - cursor;
3073 if (!r_stem_nominal_verb_suffixes())
3078 cursor = limit - v_1;
3080 if (!(B_continue_stemming_noun_suffixes))
3085 v_2 = limit - cursor;
3087 if (!r_stem_noun_suffixes())
3092 cursor = limit - v_2;
3093 cursor = limit_backward;