351 #define s_3_0 (s_3_1 + 2) 353 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x84,
355 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x84,
357 0xD9, 0x84, 0xD9, 0x84,
359 0xD8, 0xA3, 0xD8, 0xA2,
361 0xD8, 0xA3, 0xD8, 0xA3,
363 0xD8, 0xA3, 0xD8, 0xA4,
365 0xD8, 0xA3, 0xD8, 0xA5,
367 0xD8, 0xA3, 0xD8, 0xA7,
372 #define s_6_0 (s_6_1 + 2) 374 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x84,
376 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x84,
378 0xD9, 0x84, 0xD9, 0x84,
379 #define s_7_0 (s_7_1 + 2) 381 0xD8, 0xA8, 0xD8, 0xA8,
383 0xD9, 0x83, 0xD9, 0x83,
385 0xD8, 0xB3, 0xD8, 0xA3,
387 0xD8, 0xB3, 0xD8, 0xAA,
389 0xD8, 0xB3, 0xD9, 0x86,
391 0xD8, 0xB3, 0xD9, 0x8A,
393 0xD8, 0xAA, 0xD8, 0xB3, 0xD8, 0xAA,
395 0xD9, 0x86, 0xD8, 0xB3, 0xD8, 0xAA,
397 0xD9, 0x8A, 0xD8, 0xB3, 0xD8, 0xAA,
398 #define s_10_0 s_10_1 399 #define s_10_1 s_10_6 400 #define s_10_2 s_10_7 402 0xD9, 0x87, 0xD9, 0x86,
403 #define s_10_4 s_10_2 407 0xD9, 0x83, 0xD9, 0x85, 0xD8, 0xA7,
409 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xA7,
411 0xD9, 0x86, 0xD8, 0xA7,
413 0xD9, 0x87, 0xD8, 0xA7,
423 0xD8, 0xA7, 0xD8, 0xAA,
430 #define s_17_0 s_17_1 431 #define s_17_1 s_17_6 432 #define s_17_2 s_17_9 434 0xD9, 0x83, 0xD9, 0x86,
436 0xD9, 0x87, 0xD9, 0x86,
437 #define s_17_5 s_17_2 439 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x88,
441 0xD9, 0x86, 0xD9, 0x8A,
443 0xD9, 0x83, 0xD9, 0x85, 0xD8, 0xA7,
445 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xA7,
447 0xD9, 0x86, 0xD8, 0xA7,
449 0xD9, 0x87, 0xD8, 0xA7,
450 #define s_18_0 (s_18_1 + 2) 452 0xD9, 0x88, 0xD9, 0x86,
454 0xD9, 0x8A, 0xD9, 0x86,
456 0xD8, 0xA7, 0xD9, 0x86,
458 0xD8, 0xAA, 0xD9, 0x86,
459 #define s_18_5 s_18_2 460 #define s_18_6 s_18_3 462 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xA7,
464 0xD9, 0x86, 0xD8, 0xA7,
466 0xD8, 0xAA, 0xD8, 0xA7,
467 #define s_18_10 s_18_4 469 0xD8, 0xAA, 0xD9, 0x85,
471 0xD9, 0x88, 0xD8, 0xA7,
472 #define s_20_0 (s_20_1 + 4) 474 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x88,
898 static const symbol s_67[] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xAA };
903 {
int i;
for (i =
len_utf8(
p); i > 0; i--)
907 if (!(among_var))
goto lab1;
912 if (ret < 0)
return ret;
917 if (ret < 0)
return ret;
922 if (ret < 0)
return ret;
927 if (ret < 0)
return ret;
932 if (ret < 0)
return ret;
937 if (ret < 0)
return ret;
942 if (ret < 0)
return ret;
947 if (ret < 0)
return ret;
952 if (ret < 0)
return ret;
957 if (ret < 0)
return ret;
962 if (ret < 0)
return ret;
967 if (ret < 0)
return ret;
972 if (ret < 0)
return ret;
977 if (ret < 0)
return ret;
982 if (ret < 0)
return ret;
987 if (ret < 0)
return ret;
992 if (ret < 0)
return ret;
997 if (ret < 0)
return ret;
1002 if (ret < 0)
return ret;
1007 if (ret < 0)
return ret;
1012 if (ret < 0)
return ret;
1017 if (ret < 0)
return ret;
1022 if (ret < 0)
return ret;
1027 if (ret < 0)
return ret;
1032 if (ret < 0)
return ret;
1037 if (ret < 0)
return ret;
1042 if (ret < 0)
return ret;
1047 if (ret < 0)
return ret;
1052 if (ret < 0)
return ret;
1057 if (ret < 0)
return ret;
1062 if (ret < 0)
return ret;
1067 if (ret < 0)
return ret;
1072 if (ret < 0)
return ret;
1077 if (ret < 0)
return ret;
1082 if (ret < 0)
return ret;
1087 if (ret < 0)
return ret;
1092 if (ret < 0)
return ret;
1097 if (ret < 0)
return ret;
1102 if (ret < 0)
return ret;
1107 if (ret < 0)
return ret;
1112 if (ret < 0)
return ret;
1117 if (ret < 0)
return ret;
1122 if (ret < 0)
return ret;
1127 if (ret < 0)
return ret;
1132 if (ret < 0)
return ret;
1137 if (ret < 0)
return ret;
1142 if (ret < 0)
return ret;
1147 if (ret < 0)
return ret;
1152 if (ret < 0)
return ret;
1157 if (ret < 0)
return ret;
1162 if (ret < 0)
return ret;
1170 if (ret < 0)
return 0;
1187 if (
c - 1 <=
lb ||
p[
c - 1] >> 5 != 5 || !((124 >> (
p[
c - 1] & 0x1f)) & 1))
goto lab0;
1191 if (ret < 0)
return ret;
1202 if (
c + 1 >=
l ||
p[
c + 1] >> 5 != 5 || !((124 >> (
p[
c + 1] & 0x1f)) & 1))
goto lab4;
1204 if (!(among_var))
goto lab4;
1206 switch (among_var) {
1209 if (ret < 0)
return ret;
1214 if (ret < 0)
return ret;
1219 if (ret < 0)
return ret;
1227 if (ret < 0)
goto lab2;
1245 if (
c + 3 >=
l || (
p[
c + 3] != 132 &&
p[
c + 3] != 167))
return 0;
1247 if (!(among_var))
return 0;
1249 switch (among_var) {
1269 if (
c + 3 >=
l ||
p[
c + 3] >> 5 != 5 || !((188 >> (
p[
c + 3] & 0x1f)) & 1))
return 0;
1271 if (!(among_var))
return 0;
1273 switch (among_var) {
1277 if (ret < 0)
return ret;
1283 if (ret < 0)
return ret;
1289 if (ret < 0)
return ret;
1295 if (ret < 0)
return ret;
1316 if (
c + 1 >=
l || (
p[
c + 1] != 129 &&
p[
c + 1] != 136))
return 0;
1321 if (ret < 0)
return ret;
1329 if (
c + 3 >=
l || (
p[
c + 3] != 132 &&
p[
c + 3] != 167))
return 0;
1331 if (!(among_var))
return 0;
1333 switch (among_var) {
1337 if (ret < 0)
return ret;
1343 if (ret < 0)
return ret;
1359 if (
c + 1 >=
l || (
p[
c + 1] != 168 &&
p[
c + 1] != 131))
return 0;
1361 if (!(among_var))
return 0;
1363 switch (among_var) {
1367 if (ret < 0)
return ret;
1373 if (ret < 0)
return ret;
1379 if (ret < 0)
return ret;
1390 if (!(among_var))
return 0;
1392 switch (among_var) {
1396 if (ret < 0)
return ret;
1402 if (ret < 0)
return ret;
1408 if (ret < 0)
return ret;
1414 if (ret < 0)
return ret;
1423 if (
c + 5 >=
l ||
p[
c + 5] != 170)
return 0;
1430 if (ret < 0)
return ret;
1439 if (!(among_var))
return 0;
1441 switch (among_var) {
1445 if (ret < 0)
return ret;
1451 if (ret < 0)
return ret;
1457 if (ret < 0)
return ret;
1466 if (
c - 1 <=
lb ||
p[
c - 1] != 134)
return 0;
1471 if (ret < 0)
return ret;
1482 if (ret < 0)
return ret;
1489 if (
c - 3 <=
lb ||
p[
c - 1] != 170)
return 0;
1494 if (ret < 0)
return ret;
1501 if (
c - 1 <=
lb ||
p[
c - 1] != 170)
return 0;
1506 if (ret < 0)
return ret;
1513 if (
c - 1 <=
lb ||
p[
c - 1] != 169)
return 0;
1518 if (ret < 0)
return ret;
1525 if (
c - 1 <=
lb ||
p[
c - 1] != 138)
return 0;
1530 if (ret < 0)
return ret;
1539 if (!(among_var))
return 0;
1541 switch (among_var) {
1545 if (ret < 0)
return ret;
1551 if (ret < 0)
return ret;
1557 if (ret < 0)
return ret;
1568 if (!(among_var))
return 0;
1570 switch (among_var) {
1574 if (ret < 0)
return ret;
1580 if (ret < 0)
return ret;
1586 if (ret < 0)
return ret;
1592 if (ret < 0)
return ret;
1601 if (
c - 3 <=
lb || (
p[
c - 1] != 133 &&
p[
c - 1] != 167))
return 0;
1606 if (ret < 0)
return ret;
1614 if (
c - 1 <=
lb ||
p[
c - 1] != 136)
return 0;
1616 if (!(among_var))
return 0;
1618 switch (among_var) {
1622 if (ret < 0)
return ret;
1628 if (ret < 0)
return ret;
1637 if (
c - 1 <=
lb ||
p[
c - 1] != 137)
return 0;
1641 if (ret < 0)
return ret;
1652 if (ret < 0)
return ret;
1658 if (ret < 0)
return ret;
1664 {
int m3 =
l -
c; (void)m3;
1665 {
int m4 =
l -
c; (void)m4;
1667 {
int m5 =
l -
c; (void)m5;
1670 int m6 =
l -
c; (void)m6;
1672 if (ret == 0)
goto lab5;
1673 if (ret < 0)
return ret;
1681 if (i > 0)
goto lab4;
1683 {
int m7 =
l -
c; (void)m7;
1685 if (ret == 0)
goto lab7;
1686 if (ret < 0)
return ret;
1692 if (ret == 0)
goto lab8;
1693 if (ret < 0)
return ret;
1699 if (ret < 0)
goto lab4;
1708 if (ret == 0)
goto lab9;
1709 if (ret < 0)
return ret;
1715 if (ret == 0)
goto lab2;
1716 if (ret < 0)
return ret;
1724 {
int m8 =
l -
c; (void)m8;
1725 {
int m9 =
l -
c; (void)m9;
1727 if (ret == 0)
goto lab13;
1728 if (ret < 0)
return ret;
1738 if (ret == 0)
goto lab14;
1739 if (ret < 0)
return ret;
1741 {
int m10 =
l -
c; (void)m10;
1743 if (ret == 0)
goto lab17;
1744 if (ret < 0)
return ret;
1750 if (ret == 0)
goto lab18;
1751 if (ret < 0)
return ret;
1757 if (ret == 0)
goto lab19;
1758 if (ret < 0)
return ret;
1764 if (ret < 0)
goto lab14;
1773 if (ret == 0)
goto lab20;
1774 if (ret < 0)
return ret;
1776 {
int m11 =
l -
c; (void)m11;
1778 if (ret == 0)
goto lab22;
1779 if (ret < 0)
return ret;
1785 if (ret == 0)
goto lab23;
1786 if (ret < 0)
return ret;
1792 if (ret == 0)
goto lab20;
1793 if (ret < 0)
return ret;
1805 if (ret == 0)
goto lab24;
1806 if (ret < 0)
return ret;
1812 if (ret == 0) { c =
l - m8;
goto lab11; }
1813 if (ret < 0)
return ret;
1821 if (ret == 0)
goto lab10;
1822 if (ret < 0)
return ret;
1828 if (ret == 0)
goto lab0;
1829 if (ret < 0)
return ret;
1840 if (ret == 0) {
c = c13;
goto lab27; }
1841 if (ret < 0)
return ret;
1848 if (ret == 0) {
c = c14;
goto lab28; }
1849 if (ret < 0)
return ret;
1856 if (ret == 0)
goto lab30;
1857 if (ret < 0)
return ret;
1864 if (ret == 0)
goto lab31;
1865 if (ret < 0)
return ret;
1873 if (ret == 0) {
c = c16;
goto lab32; }
1874 if (ret < 0)
return ret;
1880 if (ret == 0)
goto lab26;
1881 if (ret < 0)
return ret;
1890 if (ret < 0)
return ret;
static const symbol s_1[]
static const symbol s_15[]
static const symbol s_26[]
static const symbol s_25[]
static const symbol s_40[]
static const struct among a_6[4]
static const symbol s_47[]
static const struct among a_4[5]
static const symbol s_53[]
int find_among_b(const symbol *pool, const struct among *v, int v_size, const unsigned char *fnum, const among_function *f)
static const struct among a_12[3]
static const symbol s_28[]
static const struct among a_2[5]
static const symbol s_12[]
int r_Suffix_Verb_Step2a()
static const struct among a_21[1]
int r_Prefix_Step3_Verb()
static const symbol s_56[]
static const symbol s_60[]
static const struct among a_11[1]
static const symbol s_48[]
std::string get_description() const
Return a string describing this object.
static const struct among a_9[3]
static const symbol s_33[]
static const symbol s_29[]
static const symbol s_50[]
static const symbol s_59[]
int eq_s(int s_size, const symbol *s)
static const symbol s_68[]
static const symbol s_38[]
int r_Suffix_Verb_Step1()
static const symbol s_62[]
static const symbol s_45[]
int r_Suffix_All_alef_maqsura()
static const symbol s_2[]
int r_Suffix_Noun_Step2c1()
static const symbol s_67[]
static const symbol s_66[]
static const symbol s_22[]
static const symbol s_34[]
static const struct among a_5[2]
static const symbol s_35[]
static const struct among a_8[4]
int r_Suffix_Noun_Step2a()
int r_Suffix_Verb_Step2c()
static const struct among a_19[2]
int r_Prefix_Step3a_Noun()
int slice_from_s(int s_size, const symbol *s)
static const symbol s_0[]
static const symbol s_42[]
static const symbol s_19[]
static const symbol s_41[]
static const symbol s_3[]
static const struct among a_3[4]
static const symbol s_13[]
static const symbol s_14[]
static const symbol s_31[]
static const struct among a_16[1]
static const symbol s_18[]
static const symbol s_11[]
static const struct among a_14[1]
static const symbol s_24[]
static const symbol s_61[]
static const symbol s_44[]
static const symbol s_21[]
static const symbol s_63[]
static const symbol s_64[]
static const struct among a_13[1]
static const symbol s_23[]
static const symbol s_51[]
static const symbol s_39[]
static const symbol s_46[]
static const struct among a_15[1]
int r_Suffix_Noun_Step1a()
static const struct among a_0[161]
static const symbol s_54[]
static const struct among a_1[5]
static const struct among a_20[2]
static const symbol s_32[]
static const symbol s_17[]
int r_Suffix_Noun_Step2b()
static const symbol s_57[]
int r_Prefix_Step3b_Noun()
static const symbol s_4[]
static const symbol s_49[]
static int skip_utf8(const symbol *p, int c, int lb, int l, int n)
static const struct among a_7[3]
static const symbol s_27[]
static const struct among a_17[12]
static const struct among a_10[10]
int r_Suffix_Noun_Step2c2()
int stem()
Virtual method implemented by the subclass to actually do the work.
static const symbol s_65[]
static const symbol s_36[]
static const symbol s_30[]
int len_utf8(const symbol *v)
int r_Prefix_Step4_Verb()
static const symbol s_7[]
static const symbol s_16[]
static const symbol s_8[]
static const symbol s_10[]
int find_among(const symbol *pool, const struct among *v, int v_size, const unsigned char *fnum, const among_function *f)
static const symbol s_55[]
int r_Suffix_Noun_Step1b()
static const symbol s_37[]
static const symbol s_43[]
static const symbol s_6[]
static const symbol s_5[]
static const symbol s_52[]
static const symbol s_9[]
unsigned char I_is_defined
static const struct among a_18[11]
static const symbol s_58[]
int r_Suffix_Verb_Step2b()
static const symbol s_pool[]
int r_Suffix_Noun_Step3()
static const symbol s_20[]