5 #define SNOWBALL_RUNTIME_THROW_EXCEPTIONS
18 static const symbol s_6[] = { 0xD8, 0xAE, 0xD8, 0xA8, 0xD8, 0xB1 };
19 static const symbol s_7[] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xAA, 0xD8, 0xA7, 0xD8, 0xAF };
20 static const symbol s_8[] = { 0xD8, 0xB1, 0xD9, 0x81, 0xD8, 0xAA };
34 static const struct among a_0[11] = {
36 { 1,
s_0_1, -1, 6, 0},
37 { 2,
s_0_2, -2, 4, 0},
38 { 2,
s_0_3, -3, 5, 0},
39 { 2,
s_0_4, -4, 4, 0},
40 { 2,
s_0_5, -5, 2, 0},
41 { 2,
s_0_6, -6, 3, 0},
42 { 2,
s_0_7, -7, 1, 0},
43 { 2,
s_0_8, -8, 2, 0},
44 { 2,
s_0_9, -9, 3, 0},
48 static const symbol s_1_0[7] = { 0xD9, 0x85, 0xDB, 0x8C, 0xE2, 0x80, 0x8C };
49 static const symbol s_1_1[9] = { 0xD9, 0x86, 0xD9, 0x85, 0xDB, 0x8C, 0xE2, 0x80, 0x8C };
55 static const symbol s_2_0[6] = { 0xD9, 0x88, 0xD8, 0xA7, 0xD9, 0x86 };
56 static const symbol s_2_1[8] = { 0xD8, 0xB3, 0xD8, 0xAA, 0xD8, 0xA7, 0xD9, 0x86 };
57 static const symbol s_2_2[6] = { 0xD8, 0xB1, 0xD8, 0xA7, 0xD9, 0x86 };
58 static const symbol s_2_3[6] = { 0xD8, 0xB3, 0xD8, 0xA7, 0xD9, 0x86 };
60 { 6,
s_2_0, 0, -1, 0},
61 { 8,
s_2_1, 0, -1, 0},
62 { 6,
s_2_2, 0, -1, 0},
66 static const symbol s_3_0[10] = { 0xDA, 0xAF, 0xDB, 0x8C, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x86 };
67 static const symbol s_3_1[10] = { 0xD8, 0xA2, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
68 static const symbol s_3_2[12] = { 0xD9, 0x85, 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
69 static const symbol s_3_3[12] = { 0xD8, 0xB3, 0xD9, 0x84, 0xDB, 0x8C, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
70 static const symbol s_3_4[10] = { 0xD8, 0xA7, 0xDB, 0x8C, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
71 static const symbol s_3_5[10] = { 0xD9, 0xBE, 0xDB, 0x8C, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
72 static const symbol s_3_6[14] = { 0xD8, 0xB3, 0xD8, 0xA7, 0xD8, 0xAE, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
73 static const symbol s_3_7[8] = { 0xD8, 0xB1, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
74 static const symbol s_3_8[12] = { 0xD9, 0x82, 0xD9, 0x87, 0xD8, 0xB1, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
75 static const symbol s_3_9[10] = { 0xDA, 0xA9, 0xD8, 0xB1, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
76 static const symbol s_3_10[10] = { 0xD8, 0xAF, 0xD8, 0xB1, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
77 static const symbol s_3_11[12] = { 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xB2, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
78 static const symbol s_3_12[12] = { 0xD8, 0xB3, 0xD8, 0xA7, 0xD8, 0xB2, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
79 static const symbol s_3_13[10] = { 0xD8, 0xA2, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x86 };
80 static const symbol s_3_14[10] = { 0xDB, 0x8C, 0xD9, 0x88, 0xD9, 0x86, 0xD8, 0xA7, 0xD9, 0x86 };
81 static const symbol s_3_15[10] = { 0xD9, 0x84, 0xD8, 0xA8, 0xD9, 0x86, 0xD8, 0xA7, 0xD9, 0x86 };
82 static const symbol s_3_16[12] = { 0xD8, 0xA7, 0xD8, 0xB5, 0xD9, 0x81, 0xD9, 0x87, 0xD8, 0xA7, 0xD9, 0x86 };
83 static const symbol s_3_17[10] = { 0xD9, 0xBE, 0xD8, 0xA7, 0xDB, 0x8C, 0xD8, 0xA7, 0xD9, 0x86 };
84 static const symbol s_3_18[8] = { 0xD8, 0xA8, 0xDB, 0x8C, 0xD8, 0xA7, 0xD9, 0x86 };
85 static const symbol s_3_19[10] = { 0xD8, 0xAC, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, 0xD9, 0x86 };
86 static const symbol s_3_20[10] = { 0xD8, 0xA7, 0xD9, 0x85, 0xDA, 0xA9, 0xD8, 0xA7, 0xD9, 0x86 };
87 static const symbol s_3_21[18] = { 0xD8, 0xA2, 0xD8, 0xB0, 0xD8, 0xB1, 0xD8, 0xA8, 0xD8, 0xA7, 0xDB, 0x8C, 0xD8, 0xAC, 0xD8, 0xA7, 0xD9, 0x86 };
88 static const symbol s_3_22[10] = { 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAF, 0xD8, 0xA7, 0xD9, 0x86 };
89 static const symbol s_3_23[12] = { 0xD8, 0xAE, 0xD8, 0xA7, 0xD9, 0x86, 0xD8, 0xAF, 0xD8, 0xA7, 0xD9, 0x86 };
90 static const symbol s_3_24[10] = { 0xD8, 0xB2, 0xD9, 0x86, 0xD8, 0xAF, 0xD8, 0xA7, 0xD9, 0x86 };
91 static const symbol s_3_25[10] = { 0xD9, 0x85, 0xDB, 0x8C, 0xD8, 0xB2, 0xD8, 0xA7, 0xD9, 0x86 };
92 static const symbol s_3_26[14] = { 0xD8, 0xA2, 0xD8, 0xAA, 0xD8, 0xB4, 0xD9, 0x81, 0xD8, 0xB4, 0xD8, 0xA7, 0xD9, 0x86 };
93 static const symbol s_3_27[8] = { 0xD9, 0x86, 0xD8, 0xB4, 0xD8, 0xA7, 0xD9, 0x86 };
94 static const symbol s_3_28[10] = { 0xD8, 0xA7, 0xDB, 0x8C, 0xD8, 0xB4, 0xD8, 0xA7, 0xD9, 0x86 };
95 static const symbol s_3_29[12] = { 0xD9, 0xBE, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xB4, 0xD8, 0xA7, 0xD9, 0x86 };
96 static const symbol s_3_30[12] = { 0xDA, 0xA9, 0xD9, 0x87, 0xDA, 0xA9, 0xD8, 0xB4, 0xD8, 0xA7, 0xD9, 0x86 };
97 static const symbol s_3_31[12] = { 0xD8, 0xAF, 0xD8, 0xB1, 0xD8, 0xAE, 0xD8, 0xB4, 0xD8, 0xA7, 0xD9, 0x86 };
98 static const symbol s_3_32[10] = { 0xD8, 0xB3, 0xD9, 0x84, 0xD8, 0xB7, 0xD8, 0xA7, 0xD9, 0x86 };
99 static const struct among a_3[33] = {
100 { 10,
s_3_0, 0, 1, 0},
101 { 10,
s_3_1, 0, 1, 0},
102 { 12,
s_3_2, 0, 1, 0},
103 { 12,
s_3_3, 0, 1, 0},
104 { 10,
s_3_4, 0, 1, 0},
105 { 10,
s_3_5, 0, 1, 0},
106 { 14,
s_3_6, 0, 1, 0},
107 { 8,
s_3_7, 0, 1, 0},
108 { 12,
s_3_8, -1, 1, 0},
109 { 10,
s_3_9, -2, 1, 0},
135 static const symbol s_4_0[12] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xA7, 0xD8, 0xAA, 0xDB, 0x8C, 0xD8, 0xAF };
136 static const symbol s_4_1[10] = { 0xD8, 0xA7, 0xD8, 0xAE, 0xD8, 0xA8, 0xD8, 0xA7, 0xD8, 0xB1 };
137 static const struct among a_4[2] = {
138 { 12,
s_4_0, 0, 2, 0},
139 { 10,
s_4_1, 0, 1, 0}
144 static const symbol s_5_2[8] = { 0xD8, 0xAA, 0xD8, 0xB1, 0xDB, 0x8C, 0xD9, 0x86 };
146 static const symbol s_5_4[6] = { 0xDB, 0x8C, 0xD8, 0xA7, 0xD9, 0x86 };
147 static const symbol s_5_5[6] = { 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x86 };
148 static const symbol s_5_6[6] = { 0xDA, 0xAF, 0xD8, 0xA7, 0xD9, 0x86 };
149 static const symbol s_5_7[6] = { 0xD8, 0xA7, 0xD9, 0x86, 0xD9, 0x87 };
150 static const symbol s_5_8[6] = { 0xDA, 0xAF, 0xD8, 0xA7, 0xD9, 0x87 };
151 static const symbol s_5_9[6] = { 0xD8, 0xA7, 0xD9, 0x86, 0xDB, 0x8C };
153 static const symbol s_5_11[6] = { 0xD9, 0x87, 0xD8, 0xA7, 0xDB, 0x8C };
156 static const symbol s_5_14[6] = { 0xD9, 0x86, 0xD8, 0xA7, 0xDA, 0xA9 };
159 static const symbol s_5_17[6] = { 0xD9, 0x85, 0xD9, 0x86, 0xD8, 0xAF };
160 static const symbol s_5_18[6] = { 0xD9, 0x88, 0xD8, 0xA7, 0xD8, 0xB1 };
161 static const symbol s_5_19[6] = { 0xDA, 0xAF, 0xD8, 0xA7, 0xD8, 0xB1 };
164 static const struct among a_5[22] = {
165 { 4,
s_5_0, 0, 1, 0},
166 { 4,
s_5_1, 0, 1, 0},
167 { 8,
s_5_2, -1, 1, 0},
168 { 4,
s_5_3, 0, 1, 0},
169 { 6,
s_5_4, -1, 1, 0},
170 { 6,
s_5_5, -2, 1, 0},
171 { 6,
s_5_6, -3, 1, 0},
172 { 6,
s_5_7, 0, 1, 0},
173 { 6,
s_5_8, 0, 1, 0},
174 { 6,
s_5_9, 0, 1, 0},
190 static const symbol s_6_1[6] = { 0xD8, 0xA7, 0xDB, 0x8C, 0xD9, 0x85 };
192 static const symbol s_6_3[6] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xAA };
193 static const symbol s_6_4[6] = { 0xD8, 0xA7, 0xD9, 0x86, 0xD8, 0xAF };
195 static const symbol s_6_6[6] = { 0xD8, 0xA7, 0xDB, 0x8C, 0xD8, 0xAF };
197 static const struct among a_6[8] = {
198 { 4,
s_6_0, 0, 1, 0},
199 { 6,
s_6_1, -1, 1, 0},
200 { 4,
s_6_2, 0, 1, 0},
201 { 6,
s_6_3, 0, 1, 0},
202 { 6,
s_6_4, 0, 1, 0},
203 { 4,
s_6_5, 0, 1, 0},
204 { 6,
s_6_6, -1, 1, 0},
210 static const symbol s_7_2[10] = { 0xD8, 0xB1, 0xD9, 0x81, 0xD8, 0xAA, 0xDB, 0x8C, 0xD9, 0x85 };
212 static const symbol s_7_4[8] = { 0xD8, 0xB1, 0xD9, 0x81, 0xD8, 0xAA, 0xD9, 0x85 };
216 static const symbol s_7_8[6] = { 0xD9, 0x86, 0xD8, 0xAF, 0xD9, 0x87 };
217 static const symbol s_7_9[8] = { 0xD8, 0xB1, 0xD9, 0x81, 0xD8, 0xAA, 0xDB, 0x8C };
219 static const symbol s_7_11[6] = { 0xD8, 0xA7, 0xD9, 0x86, 0xD8, 0xAF };
220 static const symbol s_7_12[12] = { 0xD8, 0xB1, 0xD9, 0x81, 0xD8, 0xAA, 0xD8, 0xA7, 0xD9, 0x86, 0xD8, 0xAF };
222 static const symbol s_7_14[10] = { 0xD8, 0xB1, 0xD9, 0x81, 0xD8, 0xAA, 0xDB, 0x8C, 0xD8, 0xAF };
223 static const struct among a_7[15] = {
224 { 2,
s_7_0, 0, 1, 0},
225 { 4,
s_7_1, -1, 1, 0},
226 { 10,
s_7_2, -1, 2, 0},
227 { 4,
s_7_3, -3, 1, 0},
228 { 8,
s_7_4, -4, 2, 0},
229 { 4,
s_7_5, 0, 3, 0},
230 { 4,
s_7_6, 0, 5, 0},
231 { 4,
s_7_7, 0, 4, 0},
232 { 6,
s_7_8, -1, 3, 0},
233 { 8,
s_7_9, 0, 2, 0},
244 bool b_remove_verb_person_endings;
245 bool b_saw_present_prefix;
246 b_saw_present_prefix =
false;
276 if (ret < 0)
goto lab1;
291 if (z->
c + 6 >= z->
l || (z->
p[z->
c + 6] != 140 && z->
p[z->
c + 6] != 226))
goto lab2;
293 if (!among_var)
goto lab2;
299 if (ret < 0)
goto lab2;
302 b_saw_present_prefix =
true;
307 if (ret < 0)
goto lab2;
311 b_saw_present_prefix =
true;
324 if (!(
eq_s(z, 3,
s_5)))
goto lab5;
333 if (ret < 0)
goto lab4;
349 if (ret < 0)
goto lab6;
356 z->
lb = z->
c; z->
c = z->
l;
358 int v_8 = z->
l - z->
c;
360 int v_9 = z->
l - z->
c;
361 b_remove_verb_person_endings =
false;
362 if (!b_saw_present_prefix)
goto lab8;
363 b_remove_verb_person_endings =
true;
366 int v_10 = z->
l - z->
c;
367 if (z->
c - 7 <= z->
lb || z->
p[z->
c - 1] != 134)
goto lab9;
369 if (z->
c > z->
lb)
goto lab9;
375 int v_11 = z->
l - z->
c;
376 if (z->
c - 5 <= z->
lb || z->
p[z->
c - 1] != 134)
goto lab10;
383 int v_12 = z->
l - z->
c;
385 int v_13 = z->
l - z->
c;
387 if (z->
c - 9 <= z->
lb || (z->
p[z->
c - 1] != 175 && z->
p[z->
c - 1] != 177))
goto lab12;
389 if (!among_var)
goto lab12;
404 if (z->
c < i_p1)
goto lab11;
405 v_14 = z->
lb; z->
lb = i_p1;
408 if (!among_var) { z->
lb = v_14;
goto lab11; }
415 if (z->
c <= z->
lb) { z->
lb = v_14;
goto lab11; }
426 int v_15 = z->
l - z->
c;
430 if (i_p1 > z->
c)
goto lab13;
437 if (!among_var)
goto lab7;
441 if (!b_remove_verb_person_endings)
goto lab7;
442 if (i_p1 > z->
c)
goto lab7;
449 if (i_p1 > z->
c)
goto lab7;
451 b_remove_verb_person_endings =
true;
454 if (z->
c <= z->
lb)
goto lab7;
456 b_remove_verb_person_endings =
true;
459 if (z->
c <= z->
lb)
goto lab7;
461 b_remove_verb_person_endings =
true;
static int stem(struct SN_env *z)
static const symbol s_7_2[10]
static const symbol s_2[]
static const symbol s_0_4[2]
static const struct among a_3[33]
static const symbol s_6_6[6]
static const symbol s_0_5[2]
static const symbol s_4[]
static const symbol s_6_3[6]
static const symbol s_7_13[4]
static const symbol s_5_11[6]
static const symbol s_3_14[10]
static const symbol s_3_6[14]
Xapian::Internal::Snowball::Persian::SN_local SN_local
static const symbol s_0_8[2]
static const symbol s_0_10[3]
static const symbol s_3_0[10]
static const symbol s_3_16[12]
static const symbol s_5_0[4]
static const symbol s_3_30[12]
static const symbol s_7_14[10]
static const symbol s_3_12[12]
static const symbol s_6_1[6]
static const symbol s_3_23[12]
static const symbol s_6_7[4]
static const symbol s_3_29[12]
static const struct among a_7[15]
static const symbol s_5_2[8]
static const struct among a_6[8]
static const symbol s_5_18[6]
static const symbol s_3_18[8]
static const symbol s_2_1[8]
static const symbol s_6[]
static const symbol s_7_4[8]
static const symbol s_7_1[4]
static const symbol s_5_17[6]
static const symbol s_3[]
static const symbol s_0_7[2]
static const symbol s_3_1[10]
static const symbol s_3_8[12]
static const symbol s_3_31[12]
static const symbol s_7_9[8]
static const symbol s_6_2[4]
static const symbol s_7_0[2]
static const symbol s_3_5[10]
static const symbol s_3_10[10]
static const symbol s_7_6[4]
static const symbol s_7[]
static const symbol s_4_1[10]
static const symbol s_3_20[10]
static const symbol s_3_13[10]
static const symbol s_4_0[12]
static const symbol s_3_21[18]
static const symbol s_1_0[7]
static const symbol s_3_24[10]
static const symbol s_7_3[4]
static const symbol s_7_8[6]
static const symbol s_2_3[6]
static const struct among a_1[2]
static const symbol s_3_22[10]
static const symbol s_3_27[8]
static const symbol s_5_6[6]
static const symbol s_7_7[4]
static const symbol s_7_11[6]
static const symbol s_5_4[6]
static const symbol s_5_3[4]
static const symbol s_3_7[8]
static const symbol s_5_5[6]
static const symbol s_3_28[10]
static const struct among a_4[2]
static const symbol s_10[]
static const symbol s_5_12[4]
static const symbol s_6_4[6]
static const symbol s_5_8[6]
static const struct among a_2[4]
static const symbol s_1[]
static const symbol s_5_21[4]
static const symbol s_2_0[6]
static const symbol s_5_13[4]
static const symbol s_3_11[12]
static const symbol s_5_10[4]
static const symbol s_7_12[12]
static const struct among a_5[22]
static const struct among a_0[11]
static const symbol s_5_19[6]
static const symbol s_7_5[4]
static const symbol s_0_6[2]
static const symbol s_3_9[10]
static const symbol s_0_1[1]
static const symbol s_3_26[14]
static const symbol s_3_32[10]
static const symbol s_5_7[6]
static const symbol s_3_17[10]
static const symbol s_5_16[4]
static const symbol s_3_4[10]
static const symbol s_0_2[2]
static const symbol s_6_0[4]
static const symbol s_3_25[10]
static const symbol s_3_19[10]
static const symbol s_2_2[6]
static const symbol s_0_3[2]
static const symbol s_5_14[6]
static const symbol s_7_10[2]
static const symbol s_3_2[12]
static const symbol s_8[]
static const symbol s_9[]
static const symbol s_5_9[6]
static const symbol s_0_9[2]
static const symbol s_6_5[4]
static const symbol s_5[]
static const symbol s_3_15[10]
static const symbol s_5_20[4]
static const symbol s_3_3[12]
static const symbol s_5_1[4]
static const symbol s_0[]
static const symbol s_5_15[4]
static const symbol s_1_1[9]
SNOWBALL_ERR slice_from_s(struct SN_env *z, int s_size, const symbol *s)
int eq_s(struct SN_env *z, int s_size, const symbol *s)
int find_among_b(struct SN_env *z, const struct among *v, int v_size, int(*call_among_func)(struct SN_env *))
SNOWBALL_ERR slice_del(struct SN_env *z)
int skip_utf8(const symbol *p, int c, int limit, int n)
int find_among(struct SN_env *z, const struct among *v, int v_size, int(*call_among_func)(struct SN_env *))