30 'l',
'a',
'r', 0xC4, 0xB1,
100 's', 0xC4, 0xB1,
'n',
102 's', 0xC3, 0xBC,
'n',
112 's',
'i',
'n',
'i',
'z',
114 's',
'u',
'n',
'u',
'z',
116 's', 0xC4, 0xB1,
'n', 0xC4, 0xB1,
'z',
118 's', 0xC3, 0xBC,
'n', 0xC3, 0xBC,
'z',
128 'n', 0xC4, 0xB1,
'z',
130 'n', 0xC3, 0xBC,
'z',
140 'd', 0xC4, 0xB1,
'r',
142 't', 0xC4, 0xB1,
'r',
144 'd', 0xC3, 0xBC,
'r',
146 't', 0xC3, 0xBC,
'r',
148 'c',
'a',
's', 0xC4, 0xB1,
'n',
'a',
150 'c',
'e',
's',
'i',
'n',
'e',
151 #define s_20_0 s_20_2
152 #define s_20_1 s_20_3
162 'd', 0xC4, 0xB1,
'k',
164 't', 0xC4, 0xB1,
'k',
166 'd', 0xC3, 0xBC,
'k',
168 't', 0xC3, 0xBC,
'k',
178 'd', 0xC4, 0xB1,
'm',
180 't', 0xC4, 0xB1,
'm',
182 'd', 0xC3, 0xBC,
'm',
184 't', 0xC3, 0xBC,
'm',
194 'd', 0xC4, 0xB1,
'n',
196 't', 0xC4, 0xB1,
'n',
198 'd', 0xC3, 0xBC,
'n',
200 't', 0xC3, 0xBC,
'n',
201 #define s_20_26 s_20_4
202 #define s_20_27 s_20_5
203 #define s_20_28 s_20_6
204 #define s_20_29 s_20_7
205 #define s_20_30 s_20_8
206 #define s_20_31 s_20_9
207 #define s_21_0 s_21_2
208 #define s_21_1 s_21_3
222 'm',
'i', 0xC5, 0x9F,
224 'm',
'u', 0xC5, 0x9F,
226 'm', 0xC4, 0xB1, 0xC5, 0x9F,
228 'm', 0xC3, 0xBC, 0xC5, 0x9F,
479 static const unsigned char g_vowel[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 };
481 static const unsigned char g_U[] = { 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1 };
483 static const unsigned char g_vowel1[] = { 1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
485 static const unsigned char g_vowel2[] = { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 };
487 static const unsigned char g_vowel3[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
515 {
int m_test1 =
l -
c;
517 {
int m2 =
l -
c; (void)m2;
518 if (
c <=
lb ||
p[
c - 1] !=
'a')
goto lab1;
524 if (
c <=
lb ||
p[
c - 1] !=
'e')
goto lab2;
535 if (
c <=
lb ||
p[
c - 1] !=
'i')
goto lab4;
541 if (
c <=
lb ||
p[
c - 1] !=
'o')
goto lab5;
552 if (
c <=
lb ||
p[
c - 1] !=
'u')
goto lab7;
568 {
int m1 = l - c; (void)m1;
569 if (c <= lb || p[c - 1] !=
'n')
goto lab1;
571 {
int m_test2 = l - c;
572 if (in_grouping_b_U(
g_vowel, 97, 305, 0))
goto lab1;
578 {
int m3 = l - c; (void)m3;
579 {
int m_test4 = l - c;
580 if (c <= lb || p[c - 1] !=
'n')
goto lab2;
588 {
int m_test5 = l - c;
589 {
int ret = skip_utf8(p, c, lb, 0, -1);
590 if (ret < 0)
return 0;
593 if (in_grouping_b_U(
g_vowel, 97, 305, 0))
return 0;
602 {
int m1 = l - c; (void)m1;
603 if (c <= lb || p[c - 1] !=
's')
goto lab1;
605 {
int m_test2 = l - c;
606 if (in_grouping_b_U(
g_vowel, 97, 305, 0))
goto lab1;
612 {
int m3 = l - c; (void)m3;
613 {
int m_test4 = l - c;
614 if (c <= lb || p[c - 1] !=
's')
goto lab2;
622 {
int m_test5 = l - c;
623 {
int ret = skip_utf8(p, c, lb, 0, -1);
624 if (ret < 0)
return 0;
627 if (in_grouping_b_U(
g_vowel, 97, 305, 0))
return 0;
636 {
int m1 = l - c; (void)m1;
637 if (c <= lb || p[c - 1] !=
'y')
goto lab1;
639 {
int m_test2 = l - c;
640 if (in_grouping_b_U(
g_vowel, 97, 305, 0))
goto lab1;
646 {
int m3 = l - c; (void)m3;
647 {
int m_test4 = l - c;
648 if (c <= lb || p[c - 1] !=
'y')
goto lab2;
656 {
int m_test5 = l - c;
657 {
int ret = skip_utf8(p, c, lb, 0, -1);
658 if (ret < 0)
return 0;
661 if (in_grouping_b_U(
g_vowel, 97, 305, 0))
return 0;
670 {
int m1 = l - c; (void)m1;
671 if (in_grouping_b_U(
g_U, 105, 305, 0))
goto lab1;
672 {
int m_test2 = l - c;
673 if (out_grouping_b_U(
g_vowel, 97, 305, 0))
goto lab1;
679 {
int m3 = l - c; (void)m3;
680 {
int m_test4 = l - c;
681 if (in_grouping_b_U(
g_U, 105, 305, 0))
goto lab2;
688 {
int m_test5 = l - c;
689 {
int ret = skip_utf8(p, c, lb, 0, -1);
690 if (ret < 0)
return 0;
693 if (out_grouping_b_U(
g_vowel, 97, 305, 0))
return 0;
702 if (c <= lb || p[c - 1] >> 5 != 3 || !((67133440 >> (p[c - 1] & 0x1f)) & 1))
return 0;
703 if (!(find_among_b(
s_pool,
a_0, 10, 0, 0)))
return 0;
704 {
int ret = r_mark_suffix_with_optional_U_vowel();
705 if (ret <= 0)
return ret;
711 {
int ret = r_check_vowel_harmony();
712 if (ret <= 0)
return ret;
714 if (in_grouping_b_U(
g_U, 105, 305, 0))
return 0;
715 {
int ret = r_mark_suffix_with_optional_s_consonant();
716 if (ret <= 0)
return ret;
722 if (c - 3 <= lb || (p[c - 1] != 105 && p[c - 1] != 177))
return 0;
723 if (!(find_among_b(
s_pool,
a_1, 2, 0, 0)))
return 0;
728 {
int ret = r_check_vowel_harmony();
729 if (ret <= 0)
return ret;
731 if (in_grouping_b_U(
g_U, 105, 305, 0))
return 0;
732 {
int ret = r_mark_suffix_with_optional_y_consonant();
733 if (ret <= 0)
return ret;
739 {
int ret = r_check_vowel_harmony();
740 if (ret <= 0)
return ret;
742 if (!(find_among_b(
s_pool,
a_2, 4, 0, 0)))
return 0;
747 {
int ret = r_check_vowel_harmony();
748 if (ret <= 0)
return ret;
750 if (c - 1 <= lb || p[c - 1] != 110)
return 0;
751 if (!(find_among_b(
s_pool,
a_3, 4, 0, 0)))
return 0;
752 {
int ret = r_mark_suffix_with_optional_n_consonant();
753 if (ret <= 0)
return ret;
759 {
int ret = r_check_vowel_harmony();
760 if (ret <= 0)
return ret;
762 if (c <= lb || (p[c - 1] != 97 && p[c - 1] != 101))
return 0;
763 if (!(find_among_b(
s_pool,
a_4, 2, 0, 0)))
return 0;
764 {
int ret = r_mark_suffix_with_optional_y_consonant();
765 if (ret <= 0)
return ret;
771 {
int ret = r_check_vowel_harmony();
772 if (ret <= 0)
return ret;
774 if (c - 1 <= lb || (p[c - 1] != 97 && p[c - 1] != 101))
return 0;
775 if (!(find_among_b(
s_pool,
a_5, 2, 0, 0)))
return 0;
780 {
int ret = r_check_vowel_harmony();
781 if (ret <= 0)
return ret;
783 if (c - 1 <= lb || (p[c - 1] != 97 && p[c - 1] != 101))
return 0;
784 if (!(find_among_b(
s_pool,
a_6, 4, 0, 0)))
return 0;
789 {
int ret = r_check_vowel_harmony();
790 if (ret <= 0)
return ret;
792 if (c - 2 <= lb || (p[c - 1] != 97 && p[c - 1] != 101))
return 0;
793 if (!(find_among_b(
s_pool,
a_7, 2, 0, 0)))
return 0;
798 {
int ret = r_check_vowel_harmony();
799 if (ret <= 0)
return ret;
801 if (c - 2 <= lb || p[c - 1] != 110)
return 0;
802 if (!(find_among_b(
s_pool,
a_8, 4, 0, 0)))
return 0;
807 {
int ret = r_check_vowel_harmony();
808 if (ret <= 0)
return ret;
810 if (c - 3 <= lb || p[c - 1] != 110)
return 0;
811 if (!(find_among_b(
s_pool,
a_9, 2, 0, 0)))
return 0;
816 {
int ret = r_check_vowel_harmony();
817 if (ret <= 0)
return ret;
819 if (c - 1 <= lb || (p[c - 1] != 97 && p[c - 1] != 101))
return 0;
820 if (!(find_among_b(
s_pool,
a_10, 2, 0, 0)))
return 0;
821 {
int ret = r_mark_suffix_with_optional_y_consonant();
822 if (ret <= 0)
return ret;
828 if (!(eq_s_b(2,
s_3)))
return 0;
833 {
int ret = r_check_vowel_harmony();
834 if (ret <= 0)
return ret;
836 if (c - 1 <= lb || (p[c - 1] != 97 && p[c - 1] != 101))
return 0;
837 if (!(find_among_b(
s_pool,
a_11, 2, 0, 0)))
return 0;
838 {
int ret = r_mark_suffix_with_optional_n_consonant();
839 if (ret <= 0)
return ret;
845 {
int ret = r_check_vowel_harmony();
846 if (ret <= 0)
return ret;
848 if (c - 1 <= lb || p[c - 1] != 109)
return 0;
849 if (!(find_among_b(
s_pool,
a_12, 4, 0, 0)))
return 0;
850 {
int ret = r_mark_suffix_with_optional_y_consonant();
851 if (ret <= 0)
return ret;
857 {
int ret = r_check_vowel_harmony();
858 if (ret <= 0)
return ret;
860 if (c - 2 <= lb || p[c - 1] != 110)
return 0;
861 if (!(find_among_b(
s_pool,
a_13, 4, 0, 0)))
return 0;
866 {
int ret = r_check_vowel_harmony();
867 if (ret <= 0)
return ret;
869 if (c - 1 <= lb || p[c - 1] != 122)
return 0;
870 if (!(find_among_b(
s_pool,
a_14, 4, 0, 0)))
return 0;
871 {
int ret = r_mark_suffix_with_optional_y_consonant();
872 if (ret <= 0)
return ret;
878 if (c - 4 <= lb || p[c - 1] != 122)
return 0;
879 if (!(find_among_b(
s_pool,
a_15, 4, 0, 0)))
return 0;
884 {
int ret = r_check_vowel_harmony();
885 if (ret <= 0)
return ret;
887 if (c - 2 <= lb || p[c - 1] != 114)
return 0;
888 if (!(find_among_b(
s_pool,
a_16, 2, 0, 0)))
return 0;
893 {
int ret = r_check_vowel_harmony();
894 if (ret <= 0)
return ret;
896 if (c - 2 <= lb || p[c - 1] != 122)
return 0;
897 if (!(find_among_b(
s_pool,
a_17, 4, 0, 0)))
return 0;
902 {
int ret = r_check_vowel_harmony();
903 if (ret <= 0)
return ret;
905 if (c - 2 <= lb || p[c - 1] != 114)
return 0;
906 if (!(find_among_b(
s_pool,
a_18, 8, 0, 0)))
return 0;
911 if (c - 5 <= lb || (p[c - 1] != 97 && p[c - 1] != 101))
return 0;
912 if (!(find_among_b(
s_pool,
a_19, 2, 0, 0)))
return 0;
917 {
int ret = r_check_vowel_harmony();
918 if (ret <= 0)
return ret;
920 if (!(find_among_b(
s_pool,
a_20, 32, 0, 0)))
return 0;
921 {
int ret = r_mark_suffix_with_optional_y_consonant();
922 if (ret <= 0)
return ret;
928 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((26658 >> (p[c - 1] & 0x1f)) & 1))
return 0;
929 if (!(find_among_b(
s_pool,
a_21, 8, 0, 0)))
return 0;
930 {
int ret = r_mark_suffix_with_optional_y_consonant();
931 if (ret <= 0)
return ret;
937 {
int ret = r_check_vowel_harmony();
938 if (ret <= 0)
return ret;
940 if (c - 3 <= lb || p[c - 1] != 159)
return 0;
941 if (!(find_among_b(
s_pool,
a_22, 4, 0, 0)))
return 0;
942 {
int ret = r_mark_suffix_with_optional_y_consonant();
943 if (ret <= 0)
return ret;
949 if (!(eq_s_b(3,
s_4)))
return 0;
950 {
int ret = r_mark_suffix_with_optional_y_consonant();
951 if (ret <= 0)
return ret;
958 I_continue_stemming_noun_suffixes = 1;
959 {
int m1 = l - c; (void)m1;
960 {
int m2 = l - c; (void)m2;
961 {
int ret = r_mark_ymUs_();
962 if (ret == 0)
goto lab3;
963 if (ret < 0)
return ret;
968 {
int ret = r_mark_yDU();
969 if (ret == 0)
goto lab4;
970 if (ret < 0)
return ret;
975 {
int ret = r_mark_ysA();
976 if (ret == 0)
goto lab5;
977 if (ret < 0)
return ret;
982 {
int ret = r_mark_yken();
983 if (ret == 0)
goto lab1;
984 if (ret < 0)
return ret;
991 {
int ret = r_mark_cAsInA();
992 if (ret == 0)
goto lab6;
993 if (ret < 0)
return ret;
995 {
int m3 = l - c; (void)m3;
996 {
int ret = r_mark_sUnUz();
997 if (ret == 0)
goto lab8;
998 if (ret < 0)
return ret;
1003 {
int ret = r_mark_lAr();
1004 if (ret == 0)
goto lab9;
1005 if (ret < 0)
return ret;
1010 {
int ret = r_mark_yUm();
1011 if (ret == 0)
goto lab10;
1012 if (ret < 0)
return ret;
1017 {
int ret = r_mark_sUn();
1018 if (ret == 0)
goto lab11;
1019 if (ret < 0)
return ret;
1024 {
int ret = r_mark_yUz();
1025 if (ret == 0)
goto lab12;
1026 if (ret < 0)
return ret;
1033 {
int ret = r_mark_ymUs_();
1034 if (ret == 0)
goto lab6;
1035 if (ret < 0)
return ret;
1040 {
int ret = r_mark_lAr();
1041 if (ret == 0)
goto lab13;
1042 if (ret < 0)
return ret;
1045 {
int ret = slice_del();
1046 if (ret < 0)
return ret;
1048 {
int m4 = l - c; (void)m4;
1050 {
int m5 = l - c; (void)m5;
1051 {
int ret = r_mark_DUr();
1052 if (ret == 0)
goto lab16;
1053 if (ret < 0)
return ret;
1058 {
int ret = r_mark_yDU();
1059 if (ret == 0)
goto lab17;
1060 if (ret < 0)
return ret;
1065 {
int ret = r_mark_ysA();
1066 if (ret == 0)
goto lab18;
1067 if (ret < 0)
return ret;
1072 {
int ret = r_mark_ymUs_();
1073 if (ret == 0) { c = l - m4;
goto lab14; }
1074 if (ret < 0)
return ret;
1081 I_continue_stemming_noun_suffixes = 0;
1085 {
int ret = r_mark_nUz();
1086 if (ret == 0)
goto lab19;
1087 if (ret < 0)
return ret;
1089 {
int m6 = l - c; (void)m6;
1090 {
int ret = r_mark_yDU();
1091 if (ret == 0)
goto lab21;
1092 if (ret < 0)
return ret;
1097 {
int ret = r_mark_ysA();
1098 if (ret == 0)
goto lab19;
1099 if (ret < 0)
return ret;
1106 {
int m7 = l - c; (void)m7;
1107 {
int ret = r_mark_sUnUz();
1108 if (ret == 0)
goto lab24;
1109 if (ret < 0)
return ret;
1114 {
int ret = r_mark_yUz();
1115 if (ret == 0)
goto lab25;
1116 if (ret < 0)
return ret;
1121 {
int ret = r_mark_sUn();
1122 if (ret == 0)
goto lab26;
1123 if (ret < 0)
return ret;
1128 {
int ret = r_mark_yUm();
1129 if (ret == 0)
goto lab22;
1130 if (ret < 0)
return ret;
1135 {
int ret = slice_del();
1136 if (ret < 0)
return ret;
1138 {
int m8 = l - c; (void)m8;
1140 {
int ret = r_mark_ymUs_();
1141 if (ret == 0) { c = l - m8;
goto lab27; }
1142 if (ret < 0)
return ret;
1150 {
int ret = r_mark_DUr();
1151 if (ret <= 0)
return ret;
1154 {
int ret = slice_del();
1155 if (ret < 0)
return ret;
1157 {
int m9 = l - c; (void)m9;
1159 {
int m10 = l - c; (void)m10;
1160 {
int ret = r_mark_sUnUz();
1161 if (ret == 0)
goto lab30;
1162 if (ret < 0)
return ret;
1167 {
int ret = r_mark_lAr();
1168 if (ret == 0)
goto lab31;
1169 if (ret < 0)
return ret;
1174 {
int ret = r_mark_yUm();
1175 if (ret == 0)
goto lab32;
1176 if (ret < 0)
return ret;
1181 {
int ret = r_mark_sUn();
1182 if (ret == 0)
goto lab33;
1183 if (ret < 0)
return ret;
1188 {
int ret = r_mark_yUz();
1189 if (ret == 0)
goto lab34;
1190 if (ret < 0)
return ret;
1197 {
int ret = r_mark_ymUs_();
1198 if (ret == 0) { c = l - m9;
goto lab28; }
1199 if (ret < 0)
return ret;
1207 {
int ret = slice_del();
1208 if (ret < 0)
return ret;
1215 {
int ret = r_mark_ki();
1216 if (ret <= 0)
return ret;
1218 {
int m1 = l - c; (void)m1;
1219 {
int ret = r_mark_DA();
1220 if (ret == 0)
goto lab1;
1221 if (ret < 0)
return ret;
1224 {
int ret = slice_del();
1225 if (ret < 0)
return ret;
1227 {
int m2 = l - c; (void)m2;
1229 {
int m3 = l - c; (void)m3;
1230 {
int ret = r_mark_lAr();
1231 if (ret == 0)
goto lab4;
1232 if (ret < 0)
return ret;
1235 {
int ret = slice_del();
1236 if (ret < 0)
return ret;
1238 {
int m4 = l - c; (void)m4;
1239 {
int ret = r_stem_suffix_chain_before_ki();
1240 if (ret == 0) { c = l - m4;
goto lab5; }
1241 if (ret < 0)
return ret;
1249 {
int ret = r_mark_possessives();
1250 if (ret == 0) { c = l - m2;
goto lab2; }
1251 if (ret < 0)
return ret;
1254 {
int ret = slice_del();
1255 if (ret < 0)
return ret;
1257 {
int m5 = l - c; (void)m5;
1259 {
int ret = r_mark_lAr();
1260 if (ret == 0) { c = l - m5;
goto lab6; }
1261 if (ret < 0)
return ret;
1264 {
int ret = slice_del();
1265 if (ret < 0)
return ret;
1267 {
int ret = r_stem_suffix_chain_before_ki();
1268 if (ret == 0) { c = l - m5;
goto lab6; }
1269 if (ret < 0)
return ret;
1282 {
int ret = r_mark_nUn();
1283 if (ret == 0)
goto lab7;
1284 if (ret < 0)
return ret;
1287 {
int ret = slice_del();
1288 if (ret < 0)
return ret;
1290 {
int m6 = l - c; (void)m6;
1292 {
int m7 = l - c; (void)m7;
1293 {
int ret = r_mark_lArI();
1294 if (ret == 0)
goto lab10;
1295 if (ret < 0)
return ret;
1298 {
int ret = slice_del();
1299 if (ret < 0)
return ret;
1305 {
int m8 = l - c; (void)m8;
1306 {
int ret = r_mark_possessives();
1307 if (ret == 0)
goto lab13;
1308 if (ret < 0)
return ret;
1313 {
int ret = r_mark_sU();
1314 if (ret == 0)
goto lab11;
1315 if (ret < 0)
return ret;
1320 {
int ret = slice_del();
1321 if (ret < 0)
return ret;
1323 {
int m9 = l - c; (void)m9;
1325 {
int ret = r_mark_lAr();
1326 if (ret == 0) { c = l - m9;
goto lab14; }
1327 if (ret < 0)
return ret;
1330 {
int ret = slice_del();
1331 if (ret < 0)
return ret;
1333 {
int ret = r_stem_suffix_chain_before_ki();
1334 if (ret == 0) { c = l - m9;
goto lab14; }
1335 if (ret < 0)
return ret;
1343 {
int ret = r_stem_suffix_chain_before_ki();
1344 if (ret == 0) { c = l - m6;
goto lab8; }
1345 if (ret < 0)
return ret;
1355 {
int ret = r_mark_ndA();
1356 if (ret <= 0)
return ret;
1358 {
int m10 = l - c; (void)m10;
1359 {
int ret = r_mark_lArI();
1360 if (ret == 0)
goto lab16;
1361 if (ret < 0)
return ret;
1364 {
int ret = slice_del();
1365 if (ret < 0)
return ret;
1370 {
int ret = r_mark_sU();
1371 if (ret == 0)
goto lab17;
1372 if (ret < 0)
return ret;
1375 {
int ret = slice_del();
1376 if (ret < 0)
return ret;
1378 {
int m11 = l - c; (void)m11;
1380 {
int ret = r_mark_lAr();
1381 if (ret == 0) { c = l - m11;
goto lab18; }
1382 if (ret < 0)
return ret;
1385 {
int ret = slice_del();
1386 if (ret < 0)
return ret;
1388 {
int ret = r_stem_suffix_chain_before_ki();
1389 if (ret == 0) { c = l - m11;
goto lab18; }
1390 if (ret < 0)
return ret;
1398 {
int ret = r_stem_suffix_chain_before_ki();
1399 if (ret <= 0)
return ret;
1410 {
int m1 = l - c; (void)m1;
1412 {
int ret = r_mark_lAr();
1413 if (ret == 0)
goto lab1;
1414 if (ret < 0)
return ret;
1417 {
int ret = slice_del();
1418 if (ret < 0)
return ret;
1420 {
int m2 = l - c; (void)m2;
1421 {
int ret = r_stem_suffix_chain_before_ki();
1422 if (ret == 0) { c = l - m2;
goto lab2; }
1423 if (ret < 0)
return ret;
1432 {
int ret = r_mark_ncA();
1433 if (ret == 0)
goto lab3;
1434 if (ret < 0)
return ret;
1437 {
int ret = slice_del();
1438 if (ret < 0)
return ret;
1440 {
int m3 = l - c; (void)m3;
1441 {
int m4 = l - c; (void)m4;
1443 {
int ret = r_mark_lArI();
1444 if (ret == 0)
goto lab6;
1445 if (ret < 0)
return ret;
1448 {
int ret = slice_del();
1449 if (ret < 0)
return ret;
1455 {
int m5 = l - c; (void)m5;
1456 {
int ret = r_mark_possessives();
1457 if (ret == 0)
goto lab9;
1458 if (ret < 0)
return ret;
1463 {
int ret = r_mark_sU();
1464 if (ret == 0)
goto lab7;
1465 if (ret < 0)
return ret;
1470 {
int ret = slice_del();
1471 if (ret < 0)
return ret;
1473 {
int m6 = l - c; (void)m6;
1475 {
int ret = r_mark_lAr();
1476 if (ret == 0) { c = l - m6;
goto lab10; }
1477 if (ret < 0)
return ret;
1480 {
int ret = slice_del();
1481 if (ret < 0)
return ret;
1483 {
int ret = r_stem_suffix_chain_before_ki();
1484 if (ret == 0) { c = l - m6;
goto lab10; }
1485 if (ret < 0)
return ret;
1494 {
int ret = r_mark_lAr();
1495 if (ret == 0) { c = l - m3;
goto lab4; }
1496 if (ret < 0)
return ret;
1499 {
int ret = slice_del();
1500 if (ret < 0)
return ret;
1502 {
int ret = r_stem_suffix_chain_before_ki();
1503 if (ret == 0) { c = l - m3;
goto lab4; }
1504 if (ret < 0)
return ret;
1515 {
int m7 = l - c; (void)m7;
1516 {
int ret = r_mark_ndA();
1517 if (ret == 0)
goto lab13;
1518 if (ret < 0)
return ret;
1523 {
int ret = r_mark_nA();
1524 if (ret == 0)
goto lab11;
1525 if (ret < 0)
return ret;
1529 {
int m8 = l - c; (void)m8;
1530 {
int ret = r_mark_lArI();
1531 if (ret == 0)
goto lab15;
1532 if (ret < 0)
return ret;
1535 {
int ret = slice_del();
1536 if (ret < 0)
return ret;
1541 {
int ret = r_mark_sU();
1542 if (ret == 0)
goto lab16;
1543 if (ret < 0)
return ret;
1546 {
int ret = slice_del();
1547 if (ret < 0)
return ret;
1549 {
int m9 = l - c; (void)m9;
1551 {
int ret = r_mark_lAr();
1552 if (ret == 0) { c = l - m9;
goto lab17; }
1553 if (ret < 0)
return ret;
1556 {
int ret = slice_del();
1557 if (ret < 0)
return ret;
1559 {
int ret = r_stem_suffix_chain_before_ki();
1560 if (ret == 0) { c = l - m9;
goto lab17; }
1561 if (ret < 0)
return ret;
1569 {
int ret = r_stem_suffix_chain_before_ki();
1570 if (ret == 0)
goto lab11;
1571 if (ret < 0)
return ret;
1579 {
int m10 = l - c; (void)m10;
1580 {
int ret = r_mark_ndAn();
1581 if (ret == 0)
goto lab20;
1582 if (ret < 0)
return ret;
1587 {
int ret = r_mark_nU();
1588 if (ret == 0)
goto lab18;
1589 if (ret < 0)
return ret;
1593 {
int m11 = l - c; (void)m11;
1594 {
int ret = r_mark_sU();
1595 if (ret == 0)
goto lab22;
1596 if (ret < 0)
return ret;
1599 {
int ret = slice_del();
1600 if (ret < 0)
return ret;
1602 {
int m12 = l - c; (void)m12;
1604 {
int ret = r_mark_lAr();
1605 if (ret == 0) { c = l - m12;
goto lab23; }
1606 if (ret < 0)
return ret;
1609 {
int ret = slice_del();
1610 if (ret < 0)
return ret;
1612 {
int ret = r_stem_suffix_chain_before_ki();
1613 if (ret == 0) { c = l - m12;
goto lab23; }
1614 if (ret < 0)
return ret;
1622 {
int ret = r_mark_lArI();
1623 if (ret == 0)
goto lab18;
1624 if (ret < 0)
return ret;
1632 {
int ret = r_mark_DAn();
1633 if (ret == 0)
goto lab24;
1634 if (ret < 0)
return ret;
1637 {
int ret = slice_del();
1638 if (ret < 0)
return ret;
1640 {
int m13 = l - c; (void)m13;
1642 {
int m14 = l - c; (void)m14;
1643 {
int ret = r_mark_possessives();
1644 if (ret == 0)
goto lab27;
1645 if (ret < 0)
return ret;
1648 {
int ret = slice_del();
1649 if (ret < 0)
return ret;
1651 {
int m15 = l - c; (void)m15;
1653 {
int ret = r_mark_lAr();
1654 if (ret == 0) { c = l - m15;
goto lab28; }
1655 if (ret < 0)
return ret;
1658 {
int ret = slice_del();
1659 if (ret < 0)
return ret;
1661 {
int ret = r_stem_suffix_chain_before_ki();
1662 if (ret == 0) { c = l - m15;
goto lab28; }
1663 if (ret < 0)
return ret;
1671 {
int ret = r_mark_lAr();
1672 if (ret == 0)
goto lab29;
1673 if (ret < 0)
return ret;
1676 {
int ret = slice_del();
1677 if (ret < 0)
return ret;
1679 {
int m16 = l - c; (void)m16;
1680 {
int ret = r_stem_suffix_chain_before_ki();
1681 if (ret == 0) { c = l - m16;
goto lab30; }
1682 if (ret < 0)
return ret;
1690 {
int ret = r_stem_suffix_chain_before_ki();
1691 if (ret == 0) { c = l - m13;
goto lab25; }
1692 if (ret < 0)
return ret;
1703 {
int m17 = l - c; (void)m17;
1704 {
int ret = r_mark_nUn();
1705 if (ret == 0)
goto lab33;
1706 if (ret < 0)
return ret;
1711 {
int ret = r_mark_ylA();
1712 if (ret == 0)
goto lab31;
1713 if (ret < 0)
return ret;
1718 {
int ret = slice_del();
1719 if (ret < 0)
return ret;
1721 {
int m18 = l - c; (void)m18;
1722 {
int m19 = l - c; (void)m19;
1724 {
int ret = r_mark_lAr();
1725 if (ret == 0)
goto lab36;
1726 if (ret < 0)
return ret;
1729 {
int ret = slice_del();
1730 if (ret < 0)
return ret;
1732 {
int ret = r_stem_suffix_chain_before_ki();
1733 if (ret == 0)
goto lab36;
1734 if (ret < 0)
return ret;
1740 {
int m20 = l - c; (void)m20;
1741 {
int ret = r_mark_possessives();
1742 if (ret == 0)
goto lab39;
1743 if (ret < 0)
return ret;
1748 {
int ret = r_mark_sU();
1749 if (ret == 0)
goto lab37;
1750 if (ret < 0)
return ret;
1755 {
int ret = slice_del();
1756 if (ret < 0)
return ret;
1758 {
int m21 = l - c; (void)m21;
1760 {
int ret = r_mark_lAr();
1761 if (ret == 0) { c = l - m21;
goto lab40; }
1762 if (ret < 0)
return ret;
1765 {
int ret = slice_del();
1766 if (ret < 0)
return ret;
1768 {
int ret = r_stem_suffix_chain_before_ki();
1769 if (ret == 0) { c = l - m21;
goto lab40; }
1770 if (ret < 0)
return ret;
1778 {
int ret = r_stem_suffix_chain_before_ki();
1779 if (ret == 0) { c = l - m18;
goto lab34; }
1780 if (ret < 0)
return ret;
1791 {
int ret = r_mark_lArI();
1792 if (ret == 0)
goto lab41;
1793 if (ret < 0)
return ret;
1796 {
int ret = slice_del();
1797 if (ret < 0)
return ret;
1802 {
int ret = r_stem_suffix_chain_before_ki();
1803 if (ret == 0)
goto lab42;
1804 if (ret < 0)
return ret;
1810 {
int m22 = l - c; (void)m22;
1811 {
int ret = r_mark_DA();
1812 if (ret == 0)
goto lab45;
1813 if (ret < 0)
return ret;
1818 {
int ret = r_mark_yU();
1819 if (ret == 0)
goto lab46;
1820 if (ret < 0)
return ret;
1825 {
int ret = r_mark_yA();
1826 if (ret == 0)
goto lab43;
1827 if (ret < 0)
return ret;
1832 {
int ret = slice_del();
1833 if (ret < 0)
return ret;
1835 {
int m23 = l - c; (void)m23;
1837 {
int m24 = l - c; (void)m24;
1838 {
int ret = r_mark_possessives();
1839 if (ret == 0)
goto lab49;
1840 if (ret < 0)
return ret;
1843 {
int ret = slice_del();
1844 if (ret < 0)
return ret;
1846 {
int m25 = l - c; (void)m25;
1848 {
int ret = r_mark_lAr();
1849 if (ret == 0) { c = l - m25;
goto lab50; }
1850 if (ret < 0)
return ret;
1858 {
int ret = r_mark_lAr();
1859 if (ret == 0) { c = l - m23;
goto lab47; }
1860 if (ret < 0)
return ret;
1865 {
int ret = slice_del();
1866 if (ret < 0)
return ret;
1869 {
int ret = r_stem_suffix_chain_before_ki();
1870 if (ret == 0) { c = l - m23;
goto lab47; }
1871 if (ret < 0)
return ret;
1880 {
int m26 = l - c; (void)m26;
1881 {
int ret = r_mark_possessives();
1882 if (ret == 0)
goto lab52;
1883 if (ret < 0)
return ret;
1888 {
int ret = r_mark_sU();
1889 if (ret <= 0)
return ret;
1894 {
int ret = slice_del();
1895 if (ret < 0)
return ret;
1897 {
int m27 = l - c; (void)m27;
1899 {
int ret = r_mark_lAr();
1900 if (ret == 0) { c = l - m27;
goto lab53; }
1901 if (ret < 0)
return ret;
1904 {
int ret = slice_del();
1905 if (ret < 0)
return ret;
1907 {
int ret = r_stem_suffix_chain_before_ki();
1908 if (ret == 0) { c = l - m27;
goto lab53; }
1909 if (ret < 0)
return ret;
1922 among_var = find_among_b(
s_pool,
a_23, 4, 0, 0);
1923 if (!(among_var))
return 0;
1925 switch (among_var) {
1927 {
int ret = slice_from_s(1,
s_5);
1928 if (ret < 0)
return ret;
1932 {
int ret = slice_from_s(2,
s_6);
1933 if (ret < 0)
return ret;
1937 {
int ret = slice_from_s(1,
s_7);
1938 if (ret < 0)
return ret;
1942 {
int ret = slice_from_s(1,
s_8);
1943 if (ret < 0)
return ret;
1953 {
int m1 = l - c; (void)m1;
1954 if (c <= lb || p[c - 1] !=
'd')
goto lab1;
1959 if (c <= lb || p[c - 1] !=
'g')
return 0;
1963 if (out_grouping_b_U(
g_vowel, 97, 305, 1) < 0)
return 0;
1964 {
int m2 = l - c; (void)m2;
1965 {
int m3 = l - c; (void)m3;
1966 if (c <= lb || p[c - 1] !=
'a')
goto lab5;
1971 if (!(eq_s_b(2,
s_9)))
goto lab3;
1974 {
int ret = slice_from_s(2,
s_10);
1975 if (ret < 0)
return ret;
1980 {
int m4 = l - c; (void)m4;
1981 if (c <= lb || p[c - 1] !=
'e')
goto lab8;
1986 if (c <= lb || p[c - 1] !=
'i')
goto lab6;
1990 {
int ret = slice_from_s(1,
s_11);
1991 if (ret < 0)
return ret;
1996 {
int m5 = l - c; (void)m5;
1997 if (c <= lb || p[c - 1] !=
'o')
goto lab11;
2002 if (c <= lb || p[c - 1] !=
'u')
goto lab9;
2006 {
int ret = slice_from_s(1,
s_12);
2007 if (ret < 0)
return ret;
2012 {
int m6 = l - c; (void)m6;
2013 if (!(eq_s_b(2,
s_13)))
goto lab13;
2017 if (!(eq_s_b(2,
s_14)))
return 0;
2020 {
int ret = slice_from_s(2,
s_15);
2021 if (ret < 0)
return ret;
2029 if (!(eq_s_b(2,
s_16)))
return 0;
2030 {
int m1 = l - c; (void)m1;
2031 if (!(eq_s_b(3,
s_17))) { c = l - m1;
goto lab0; }
2035 if (c > lb)
return 0;
2041 {
int i;
for (i = 2; i > 0; i--)
2043 int ret = out_grouping_U(
g_vowel, 97, 305, 1);
2044 if (ret < 0)
return 0;
2057 {
int m1 = l - c; (void)m1;
2058 {
int ret = r_is_reserved_word();
2059 if (ret == 0)
goto lab0;
2060 if (ret < 0)
return ret;
2066 {
int m2 = l - c; (void)m2;
2067 {
int ret = r_append_U_to_stems_ending_with_d_or_g();
2068 if (ret < 0)
return ret;
2072 {
int m3 = l - c; (void)m3;
2073 {
int ret = r_post_process_last_consonants();
2074 if (ret < 0)
return ret;
2083 {
int ret = r_more_than_one_syllable_word();
2084 if (ret <= 0)
return ret;
2088 {
int m1 = l - c; (void)m1;
2089 {
int ret = r_stem_nominal_verb_suffixes();
2090 if (ret < 0)
return ret;
2094 if (!(I_continue_stemming_noun_suffixes))
return 0;
2095 {
int m2 = l - c; (void)m2;
2096 {
int ret = r_stem_noun_suffixes();
2097 if (ret < 0)
return ret;
2102 {
int ret = r_postlude();
2103 if (ret <= 0)
return ret;
2109 : I_continue_stemming_noun_suffixes(0)
int r_mark_suffix_with_optional_U_vowel()
int r_post_process_last_consonants()
int r_append_U_to_stems_ending_with_d_or_g()
int stem()
Virtual method implemented by the subclass to actually do the work.
int r_check_vowel_harmony()
int r_stem_noun_suffixes()
int r_mark_suffix_with_optional_y_consonant()
int r_more_than_one_syllable_word()
int r_mark_suffix_with_optional_n_consonant()
std::string get_description() const
Return a string describing this object.
int r_stem_suffix_chain_before_ki()
int r_mark_suffix_with_optional_s_consonant()
int r_stem_nominal_verb_suffixes()
int eq_s_b(int s_size, const symbol *s)
int out_grouping_b_U(const unsigned char *s, int min, int max, int repeat)
static const symbol s_2[]
static const symbol s_4[]
static const struct among a_8[4]
static const struct among a_19[2]
static const struct among a_12[4]
static const struct among a_17[4]
static const unsigned char g_vowel5[]
static const struct among a_7[2]
static const unsigned char g_vowel2[]
static const struct among a_6[4]
static const struct among a_16[2]
static const struct among a_3[4]
static const symbol s_6[]
static const symbol s_3[]
static const struct among a_22[4]
static const struct among a_23[4]
static const struct among a_5[2]
static const symbol s_7[]
static const symbol s_13[]
static const struct among a_11[2]
static const struct among a_10[2]
static const struct among a_1[2]
static const struct among a_14[4]
static const symbol s_16[]
static const symbol s_14[]
static const unsigned char g_vowel1[]
static const struct among a_20[32]
static const struct among a_18[8]
static const struct among a_4[2]
static const struct among a_15[4]
static const symbol s_10[]
static const struct among a_2[4]
static const symbol s_1[]
static const struct among a_13[4]
static const struct among a_9[2]
static const symbol s_11[]
static const symbol s_12[]
static const unsigned char g_U[]
static const unsigned char g_vowel6[]
static const struct among a_21[8]
static const struct among a_0[10]
static const symbol s_pool[]
static const symbol s_17[]
static const unsigned char g_vowel4[]
static const unsigned char g_vowel[]
static const unsigned char g_vowel3[]
static const symbol s_8[]
static const symbol s_9[]
static const symbol s_5[]
static const symbol s_15[]
static const symbol s_0[]