|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
|
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ |
|
|
|
|
/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */ |
|
|
|
|
|
|
|
|
|
#include "header.h" |
|
|
|
|
|
|
|
|
|
@ -416,14 +416,16 @@ static const struct among a_6[4] = |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static const symbol s_7_0[2] = { 0xD8, 0xA8 }; |
|
|
|
|
static const symbol s_7_1[4] = { 0xD8, 0xA8, 0xD8, 0xA8 }; |
|
|
|
|
static const symbol s_7_2[4] = { 0xD9, 0x83, 0xD9, 0x83 }; |
|
|
|
|
static const symbol s_7_1[4] = { 0xD8, 0xA8, 0xD8, 0xA7 }; |
|
|
|
|
static const symbol s_7_2[4] = { 0xD8, 0xA8, 0xD8, 0xA8 }; |
|
|
|
|
static const symbol s_7_3[4] = { 0xD9, 0x83, 0xD9, 0x83 }; |
|
|
|
|
|
|
|
|
|
static const struct among a_7[3] = |
|
|
|
|
static const struct among a_7[4] = |
|
|
|
|
{ |
|
|
|
|
{ 2, s_7_0, -1, 1, 0}, |
|
|
|
|
{ 4, s_7_1, 0, 2, 0}, |
|
|
|
|
{ 4, s_7_2, -1, 3, 0} |
|
|
|
|
{ 4, s_7_1, 0, -1, 0}, |
|
|
|
|
{ 4, s_7_2, 0, 2, 0}, |
|
|
|
|
{ 4, s_7_3, -1, 3, 0} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static const symbol s_8_0[4] = { 0xD8, 0xB3, 0xD8, 0xA3 }; |
|
|
|
|
@ -660,17 +662,15 @@ static const symbol s_54[] = { 0xD8, 0xA3 }; |
|
|
|
|
static const symbol s_55[] = { 0xD8, 0xA2 }; |
|
|
|
|
static const symbol s_56[] = { 0xD8, 0xA7 }; |
|
|
|
|
static const symbol s_57[] = { 0xD8, 0xA5 }; |
|
|
|
|
static const symbol s_58[] = { 0xD9, 0x81, 0xD8, 0xA7 }; |
|
|
|
|
static const symbol s_59[] = { 0xD9, 0x88, 0xD8, 0xA7 }; |
|
|
|
|
static const symbol s_60[] = { 0xD8, 0xA8, 0xD8, 0xA7 }; |
|
|
|
|
static const symbol s_61[] = { 0xD8, 0xA8 }; |
|
|
|
|
static const symbol s_62[] = { 0xD9, 0x83 }; |
|
|
|
|
static const symbol s_63[] = { 0xD9, 0x8A }; |
|
|
|
|
static const symbol s_64[] = { 0xD8, 0xAA }; |
|
|
|
|
static const symbol s_65[] = { 0xD9, 0x86 }; |
|
|
|
|
static const symbol s_66[] = { 0xD8, 0xA3 }; |
|
|
|
|
static const symbol s_67[] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xAA }; |
|
|
|
|
static const symbol s_68[] = { 0xD9, 0x8A }; |
|
|
|
|
static const symbol s_58[] = { 0xD8, 0xA7 }; |
|
|
|
|
static const symbol s_59[] = { 0xD8, 0xA8 }; |
|
|
|
|
static const symbol s_60[] = { 0xD9, 0x83 }; |
|
|
|
|
static const symbol s_61[] = { 0xD9, 0x8A }; |
|
|
|
|
static const symbol s_62[] = { 0xD8, 0xAA }; |
|
|
|
|
static const symbol s_63[] = { 0xD9, 0x86 }; |
|
|
|
|
static const symbol s_64[] = { 0xD8, 0xA3 }; |
|
|
|
|
static const symbol s_65[] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xAA }; |
|
|
|
|
static const symbol s_66[] = { 0xD9, 0x8A }; |
|
|
|
|
|
|
|
|
|
static int r_Normalize_pre(struct SN_env * z) { |
|
|
|
|
int among_var; |
|
|
|
|
@ -1080,23 +1080,17 @@ static int r_Prefix_Step1(struct SN_env * z) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int r_Prefix_Step2(struct SN_env * z) { |
|
|
|
|
{ int c1 = z->c; |
|
|
|
|
if (!(eq_s(z, 4, s_58))) goto lab0; |
|
|
|
|
return 0; |
|
|
|
|
lab0: |
|
|
|
|
z->c = c1; |
|
|
|
|
} |
|
|
|
|
{ int c2 = z->c; |
|
|
|
|
if (!(eq_s(z, 4, s_59))) goto lab1; |
|
|
|
|
return 0; |
|
|
|
|
lab1: |
|
|
|
|
z->c = c2; |
|
|
|
|
} |
|
|
|
|
z->bra = z->c; |
|
|
|
|
if (z->c + 1 >= z->l || (z->p[z->c + 1] != 129 && z->p[z->c + 1] != 136)) return 0; |
|
|
|
|
if (!(find_among(z, a_5, 2))) return 0; |
|
|
|
|
z->ket = z->c; |
|
|
|
|
if (!(len_utf8(z->p) > 3)) return 0; |
|
|
|
|
{ int c1 = z->c; |
|
|
|
|
if (!(eq_s(z, 2, s_58))) goto lab0; |
|
|
|
|
return 0; |
|
|
|
|
lab0: |
|
|
|
|
z->c = c1; |
|
|
|
|
} |
|
|
|
|
{ int ret = slice_del(z); |
|
|
|
|
if (ret < 0) return ret; |
|
|
|
|
} |
|
|
|
|
@ -1129,15 +1123,9 @@ static int r_Prefix_Step3a_Noun(struct SN_env * z) { |
|
|
|
|
|
|
|
|
|
static int r_Prefix_Step3b_Noun(struct SN_env * z) { |
|
|
|
|
int among_var; |
|
|
|
|
{ int c1 = z->c; |
|
|
|
|
if (!(eq_s(z, 4, s_60))) goto lab0; |
|
|
|
|
return 0; |
|
|
|
|
lab0: |
|
|
|
|
z->c = c1; |
|
|
|
|
} |
|
|
|
|
z->bra = z->c; |
|
|
|
|
if (z->c + 1 >= z->l || (z->p[z->c + 1] != 168 && z->p[z->c + 1] != 131)) return 0; |
|
|
|
|
among_var = find_among(z, a_7, 3); |
|
|
|
|
among_var = find_among(z, a_7, 4); |
|
|
|
|
if (!(among_var)) return 0; |
|
|
|
|
z->ket = z->c; |
|
|
|
|
switch (among_var) { |
|
|
|
|
@ -1149,13 +1137,13 @@ static int r_Prefix_Step3b_Noun(struct SN_env * z) { |
|
|
|
|
break; |
|
|
|
|
case 2: |
|
|
|
|
if (!(len_utf8(z->p) > 3)) return 0; |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_61); |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_59); |
|
|
|
|
if (ret < 0) return ret; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case 3: |
|
|
|
|
if (!(len_utf8(z->p) > 3)) return 0; |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_62); |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_60); |
|
|
|
|
if (ret < 0) return ret; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
@ -1172,25 +1160,25 @@ static int r_Prefix_Step3_Verb(struct SN_env * z) { |
|
|
|
|
switch (among_var) { |
|
|
|
|
case 1: |
|
|
|
|
if (!(len_utf8(z->p) > 4)) return 0; |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_63); |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_61); |
|
|
|
|
if (ret < 0) return ret; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case 2: |
|
|
|
|
if (!(len_utf8(z->p) > 4)) return 0; |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_64); |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_62); |
|
|
|
|
if (ret < 0) return ret; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case 3: |
|
|
|
|
if (!(len_utf8(z->p) > 4)) return 0; |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_65); |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_63); |
|
|
|
|
if (ret < 0) return ret; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case 4: |
|
|
|
|
if (!(len_utf8(z->p) > 4)) return 0; |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_66); |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_64); |
|
|
|
|
if (ret < 0) return ret; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
@ -1206,7 +1194,7 @@ static int r_Prefix_Step4_Verb(struct SN_env * z) { |
|
|
|
|
if (!(len_utf8(z->p) > 4)) return 0; |
|
|
|
|
z->I[1] = 1; |
|
|
|
|
z->I[2] = 0; |
|
|
|
|
{ int ret = slice_from_s(z, 6, s_67); |
|
|
|
|
{ int ret = slice_from_s(z, 6, s_65); |
|
|
|
|
if (ret < 0) return ret; |
|
|
|
|
} |
|
|
|
|
return 1; |
|
|
|
|
@ -1417,7 +1405,7 @@ static int r_Suffix_All_alef_maqsura(struct SN_env * z) { |
|
|
|
|
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 137) return 0; |
|
|
|
|
if (!(find_among_b(z, a_21, 1))) return 0; |
|
|
|
|
z->bra = z->c; |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_68); |
|
|
|
|
{ int ret = slice_from_s(z, 2, s_66); |
|
|
|
|
if (ret < 0) return ret; |
|
|
|
|
} |
|
|
|
|
return 1; |
|
|
|
|
|