Line data Source code
1 : /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2 :
3 : #include "header.h"
4 :
5 : #ifdef __cplusplus
6 : extern "C" {
7 : #endif
8 : extern int arabic_UTF_8_stem(struct SN_env * z);
9 : #ifdef __cplusplus
10 : }
11 : #endif
12 : static int r_Checks1(struct SN_env * z);
13 : static int r_Normalize_pre(struct SN_env * z);
14 : static int r_Normalize_post(struct SN_env * z);
15 : static int r_Suffix_Verb_Step2c(struct SN_env * z);
16 : static int r_Suffix_Verb_Step2b(struct SN_env * z);
17 : static int r_Suffix_Verb_Step2a(struct SN_env * z);
18 : static int r_Suffix_Verb_Step1(struct SN_env * z);
19 : static int r_Suffix_Noun_Step3(struct SN_env * z);
20 : static int r_Suffix_Noun_Step2c2(struct SN_env * z);
21 : static int r_Suffix_Noun_Step2c1(struct SN_env * z);
22 : static int r_Suffix_Noun_Step2b(struct SN_env * z);
23 : static int r_Suffix_Noun_Step2a(struct SN_env * z);
24 : static int r_Suffix_Noun_Step1b(struct SN_env * z);
25 : static int r_Suffix_Noun_Step1a(struct SN_env * z);
26 : static int r_Suffix_All_alef_maqsura(struct SN_env * z);
27 : static int r_Prefix_Step4_Verb(struct SN_env * z);
28 : static int r_Prefix_Step3_Verb(struct SN_env * z);
29 : static int r_Prefix_Step3b_Noun(struct SN_env * z);
30 : static int r_Prefix_Step3a_Noun(struct SN_env * z);
31 : static int r_Prefix_Step2(struct SN_env * z);
32 : static int r_Prefix_Step1(struct SN_env * z);
33 : #ifdef __cplusplus
34 : extern "C" {
35 : #endif
36 :
37 :
38 : extern struct SN_env * arabic_UTF_8_create_env(void);
39 : extern void arabic_UTF_8_close_env(struct SN_env * z);
40 :
41 :
42 : #ifdef __cplusplus
43 : }
44 : #endif
45 : static const symbol s_0_0[2] = { 0xD9, 0x80 };
46 : static const symbol s_0_1[2] = { 0xD9, 0x8B };
47 : static const symbol s_0_2[2] = { 0xD9, 0x8C };
48 : static const symbol s_0_3[2] = { 0xD9, 0x8D };
49 : static const symbol s_0_4[2] = { 0xD9, 0x8E };
50 : static const symbol s_0_5[2] = { 0xD9, 0x8F };
51 : static const symbol s_0_6[2] = { 0xD9, 0x90 };
52 : static const symbol s_0_7[2] = { 0xD9, 0x91 };
53 : static const symbol s_0_8[2] = { 0xD9, 0x92 };
54 : static const symbol s_0_9[2] = { 0xD9, 0xA0 };
55 : static const symbol s_0_10[2] = { 0xD9, 0xA1 };
56 : static const symbol s_0_11[2] = { 0xD9, 0xA2 };
57 : static const symbol s_0_12[2] = { 0xD9, 0xA3 };
58 : static const symbol s_0_13[2] = { 0xD9, 0xA4 };
59 : static const symbol s_0_14[2] = { 0xD9, 0xA5 };
60 : static const symbol s_0_15[2] = { 0xD9, 0xA6 };
61 : static const symbol s_0_16[2] = { 0xD9, 0xA7 };
62 : static const symbol s_0_17[2] = { 0xD9, 0xA8 };
63 : static const symbol s_0_18[2] = { 0xD9, 0xA9 };
64 : static const symbol s_0_19[3] = { 0xEF, 0xBA, 0x80 };
65 : static const symbol s_0_20[3] = { 0xEF, 0xBA, 0x81 };
66 : static const symbol s_0_21[3] = { 0xEF, 0xBA, 0x82 };
67 : static const symbol s_0_22[3] = { 0xEF, 0xBA, 0x83 };
68 : static const symbol s_0_23[3] = { 0xEF, 0xBA, 0x84 };
69 : static const symbol s_0_24[3] = { 0xEF, 0xBA, 0x85 };
70 : static const symbol s_0_25[3] = { 0xEF, 0xBA, 0x86 };
71 : static const symbol s_0_26[3] = { 0xEF, 0xBA, 0x87 };
72 : static const symbol s_0_27[3] = { 0xEF, 0xBA, 0x88 };
73 : static const symbol s_0_28[3] = { 0xEF, 0xBA, 0x89 };
74 : static const symbol s_0_29[3] = { 0xEF, 0xBA, 0x8A };
75 : static const symbol s_0_30[3] = { 0xEF, 0xBA, 0x8B };
76 : static const symbol s_0_31[3] = { 0xEF, 0xBA, 0x8C };
77 : static const symbol s_0_32[3] = { 0xEF, 0xBA, 0x8D };
78 : static const symbol s_0_33[3] = { 0xEF, 0xBA, 0x8E };
79 : static const symbol s_0_34[3] = { 0xEF, 0xBA, 0x8F };
80 : static const symbol s_0_35[3] = { 0xEF, 0xBA, 0x90 };
81 : static const symbol s_0_36[3] = { 0xEF, 0xBA, 0x91 };
82 : static const symbol s_0_37[3] = { 0xEF, 0xBA, 0x92 };
83 : static const symbol s_0_38[3] = { 0xEF, 0xBA, 0x93 };
84 : static const symbol s_0_39[3] = { 0xEF, 0xBA, 0x94 };
85 : static const symbol s_0_40[3] = { 0xEF, 0xBA, 0x95 };
86 : static const symbol s_0_41[3] = { 0xEF, 0xBA, 0x96 };
87 : static const symbol s_0_42[3] = { 0xEF, 0xBA, 0x97 };
88 : static const symbol s_0_43[3] = { 0xEF, 0xBA, 0x98 };
89 : static const symbol s_0_44[3] = { 0xEF, 0xBA, 0x99 };
90 : static const symbol s_0_45[3] = { 0xEF, 0xBA, 0x9A };
91 : static const symbol s_0_46[3] = { 0xEF, 0xBA, 0x9B };
92 : static const symbol s_0_47[3] = { 0xEF, 0xBA, 0x9C };
93 : static const symbol s_0_48[3] = { 0xEF, 0xBA, 0x9D };
94 : static const symbol s_0_49[3] = { 0xEF, 0xBA, 0x9E };
95 : static const symbol s_0_50[3] = { 0xEF, 0xBA, 0x9F };
96 : static const symbol s_0_51[3] = { 0xEF, 0xBA, 0xA0 };
97 : static const symbol s_0_52[3] = { 0xEF, 0xBA, 0xA1 };
98 : static const symbol s_0_53[3] = { 0xEF, 0xBA, 0xA2 };
99 : static const symbol s_0_54[3] = { 0xEF, 0xBA, 0xA3 };
100 : static const symbol s_0_55[3] = { 0xEF, 0xBA, 0xA4 };
101 : static const symbol s_0_56[3] = { 0xEF, 0xBA, 0xA5 };
102 : static const symbol s_0_57[3] = { 0xEF, 0xBA, 0xA6 };
103 : static const symbol s_0_58[3] = { 0xEF, 0xBA, 0xA7 };
104 : static const symbol s_0_59[3] = { 0xEF, 0xBA, 0xA8 };
105 : static const symbol s_0_60[3] = { 0xEF, 0xBA, 0xA9 };
106 : static const symbol s_0_61[3] = { 0xEF, 0xBA, 0xAA };
107 : static const symbol s_0_62[3] = { 0xEF, 0xBA, 0xAB };
108 : static const symbol s_0_63[3] = { 0xEF, 0xBA, 0xAC };
109 : static const symbol s_0_64[3] = { 0xEF, 0xBA, 0xAD };
110 : static const symbol s_0_65[3] = { 0xEF, 0xBA, 0xAE };
111 : static const symbol s_0_66[3] = { 0xEF, 0xBA, 0xAF };
112 : static const symbol s_0_67[3] = { 0xEF, 0xBA, 0xB0 };
113 : static const symbol s_0_68[3] = { 0xEF, 0xBA, 0xB1 };
114 : static const symbol s_0_69[3] = { 0xEF, 0xBA, 0xB2 };
115 : static const symbol s_0_70[3] = { 0xEF, 0xBA, 0xB3 };
116 : static const symbol s_0_71[3] = { 0xEF, 0xBA, 0xB4 };
117 : static const symbol s_0_72[3] = { 0xEF, 0xBA, 0xB5 };
118 : static const symbol s_0_73[3] = { 0xEF, 0xBA, 0xB6 };
119 : static const symbol s_0_74[3] = { 0xEF, 0xBA, 0xB7 };
120 : static const symbol s_0_75[3] = { 0xEF, 0xBA, 0xB8 };
121 : static const symbol s_0_76[3] = { 0xEF, 0xBA, 0xB9 };
122 : static const symbol s_0_77[3] = { 0xEF, 0xBA, 0xBA };
123 : static const symbol s_0_78[3] = { 0xEF, 0xBA, 0xBB };
124 : static const symbol s_0_79[3] = { 0xEF, 0xBA, 0xBC };
125 : static const symbol s_0_80[3] = { 0xEF, 0xBA, 0xBD };
126 : static const symbol s_0_81[3] = { 0xEF, 0xBA, 0xBE };
127 : static const symbol s_0_82[3] = { 0xEF, 0xBA, 0xBF };
128 : static const symbol s_0_83[3] = { 0xEF, 0xBB, 0x80 };
129 : static const symbol s_0_84[3] = { 0xEF, 0xBB, 0x81 };
130 : static const symbol s_0_85[3] = { 0xEF, 0xBB, 0x82 };
131 : static const symbol s_0_86[3] = { 0xEF, 0xBB, 0x83 };
132 : static const symbol s_0_87[3] = { 0xEF, 0xBB, 0x84 };
133 : static const symbol s_0_88[3] = { 0xEF, 0xBB, 0x85 };
134 : static const symbol s_0_89[3] = { 0xEF, 0xBB, 0x86 };
135 : static const symbol s_0_90[3] = { 0xEF, 0xBB, 0x87 };
136 : static const symbol s_0_91[3] = { 0xEF, 0xBB, 0x88 };
137 : static const symbol s_0_92[3] = { 0xEF, 0xBB, 0x89 };
138 : static const symbol s_0_93[3] = { 0xEF, 0xBB, 0x8A };
139 : static const symbol s_0_94[3] = { 0xEF, 0xBB, 0x8B };
140 : static const symbol s_0_95[3] = { 0xEF, 0xBB, 0x8C };
141 : static const symbol s_0_96[3] = { 0xEF, 0xBB, 0x8D };
142 : static const symbol s_0_97[3] = { 0xEF, 0xBB, 0x8E };
143 : static const symbol s_0_98[3] = { 0xEF, 0xBB, 0x8F };
144 : static const symbol s_0_99[3] = { 0xEF, 0xBB, 0x90 };
145 : static const symbol s_0_100[3] = { 0xEF, 0xBB, 0x91 };
146 : static const symbol s_0_101[3] = { 0xEF, 0xBB, 0x92 };
147 : static const symbol s_0_102[3] = { 0xEF, 0xBB, 0x93 };
148 : static const symbol s_0_103[3] = { 0xEF, 0xBB, 0x94 };
149 : static const symbol s_0_104[3] = { 0xEF, 0xBB, 0x95 };
150 : static const symbol s_0_105[3] = { 0xEF, 0xBB, 0x96 };
151 : static const symbol s_0_106[3] = { 0xEF, 0xBB, 0x97 };
152 : static const symbol s_0_107[3] = { 0xEF, 0xBB, 0x98 };
153 : static const symbol s_0_108[3] = { 0xEF, 0xBB, 0x99 };
154 : static const symbol s_0_109[3] = { 0xEF, 0xBB, 0x9A };
155 : static const symbol s_0_110[3] = { 0xEF, 0xBB, 0x9B };
156 : static const symbol s_0_111[3] = { 0xEF, 0xBB, 0x9C };
157 : static const symbol s_0_112[3] = { 0xEF, 0xBB, 0x9D };
158 : static const symbol s_0_113[3] = { 0xEF, 0xBB, 0x9E };
159 : static const symbol s_0_114[3] = { 0xEF, 0xBB, 0x9F };
160 : static const symbol s_0_115[3] = { 0xEF, 0xBB, 0xA0 };
161 : static const symbol s_0_116[3] = { 0xEF, 0xBB, 0xA1 };
162 : static const symbol s_0_117[3] = { 0xEF, 0xBB, 0xA2 };
163 : static const symbol s_0_118[3] = { 0xEF, 0xBB, 0xA3 };
164 : static const symbol s_0_119[3] = { 0xEF, 0xBB, 0xA4 };
165 : static const symbol s_0_120[3] = { 0xEF, 0xBB, 0xA5 };
166 : static const symbol s_0_121[3] = { 0xEF, 0xBB, 0xA6 };
167 : static const symbol s_0_122[3] = { 0xEF, 0xBB, 0xA7 };
168 : static const symbol s_0_123[3] = { 0xEF, 0xBB, 0xA8 };
169 : static const symbol s_0_124[3] = { 0xEF, 0xBB, 0xA9 };
170 : static const symbol s_0_125[3] = { 0xEF, 0xBB, 0xAA };
171 : static const symbol s_0_126[3] = { 0xEF, 0xBB, 0xAB };
172 : static const symbol s_0_127[3] = { 0xEF, 0xBB, 0xAC };
173 : static const symbol s_0_128[3] = { 0xEF, 0xBB, 0xAD };
174 : static const symbol s_0_129[3] = { 0xEF, 0xBB, 0xAE };
175 : static const symbol s_0_130[3] = { 0xEF, 0xBB, 0xAF };
176 : static const symbol s_0_131[3] = { 0xEF, 0xBB, 0xB0 };
177 : static const symbol s_0_132[3] = { 0xEF, 0xBB, 0xB1 };
178 : static const symbol s_0_133[3] = { 0xEF, 0xBB, 0xB2 };
179 : static const symbol s_0_134[3] = { 0xEF, 0xBB, 0xB3 };
180 : static const symbol s_0_135[3] = { 0xEF, 0xBB, 0xB4 };
181 : static const symbol s_0_136[3] = { 0xEF, 0xBB, 0xB5 };
182 : static const symbol s_0_137[3] = { 0xEF, 0xBB, 0xB6 };
183 : static const symbol s_0_138[3] = { 0xEF, 0xBB, 0xB7 };
184 : static const symbol s_0_139[3] = { 0xEF, 0xBB, 0xB8 };
185 : static const symbol s_0_140[3] = { 0xEF, 0xBB, 0xB9 };
186 : static const symbol s_0_141[3] = { 0xEF, 0xBB, 0xBA };
187 : static const symbol s_0_142[3] = { 0xEF, 0xBB, 0xBB };
188 : static const symbol s_0_143[3] = { 0xEF, 0xBB, 0xBC };
189 :
190 : static const struct among a_0[144] =
191 : {
192 : { 2, s_0_0, -1, 1, 0},
193 : { 2, s_0_1, -1, 1, 0},
194 : { 2, s_0_2, -1, 1, 0},
195 : { 2, s_0_3, -1, 1, 0},
196 : { 2, s_0_4, -1, 1, 0},
197 : { 2, s_0_5, -1, 1, 0},
198 : { 2, s_0_6, -1, 1, 0},
199 : { 2, s_0_7, -1, 1, 0},
200 : { 2, s_0_8, -1, 1, 0},
201 : { 2, s_0_9, -1, 2, 0},
202 : { 2, s_0_10, -1, 3, 0},
203 : { 2, s_0_11, -1, 4, 0},
204 : { 2, s_0_12, -1, 5, 0},
205 : { 2, s_0_13, -1, 6, 0},
206 : { 2, s_0_14, -1, 7, 0},
207 : { 2, s_0_15, -1, 8, 0},
208 : { 2, s_0_16, -1, 9, 0},
209 : { 2, s_0_17, -1, 10, 0},
210 : { 2, s_0_18, -1, 11, 0},
211 : { 3, s_0_19, -1, 12, 0},
212 : { 3, s_0_20, -1, 16, 0},
213 : { 3, s_0_21, -1, 16, 0},
214 : { 3, s_0_22, -1, 13, 0},
215 : { 3, s_0_23, -1, 13, 0},
216 : { 3, s_0_24, -1, 17, 0},
217 : { 3, s_0_25, -1, 17, 0},
218 : { 3, s_0_26, -1, 14, 0},
219 : { 3, s_0_27, -1, 14, 0},
220 : { 3, s_0_28, -1, 15, 0},
221 : { 3, s_0_29, -1, 15, 0},
222 : { 3, s_0_30, -1, 15, 0},
223 : { 3, s_0_31, -1, 15, 0},
224 : { 3, s_0_32, -1, 18, 0},
225 : { 3, s_0_33, -1, 18, 0},
226 : { 3, s_0_34, -1, 19, 0},
227 : { 3, s_0_35, -1, 19, 0},
228 : { 3, s_0_36, -1, 19, 0},
229 : { 3, s_0_37, -1, 19, 0},
230 : { 3, s_0_38, -1, 20, 0},
231 : { 3, s_0_39, -1, 20, 0},
232 : { 3, s_0_40, -1, 21, 0},
233 : { 3, s_0_41, -1, 21, 0},
234 : { 3, s_0_42, -1, 21, 0},
235 : { 3, s_0_43, -1, 21, 0},
236 : { 3, s_0_44, -1, 22, 0},
237 : { 3, s_0_45, -1, 22, 0},
238 : { 3, s_0_46, -1, 22, 0},
239 : { 3, s_0_47, -1, 22, 0},
240 : { 3, s_0_48, -1, 23, 0},
241 : { 3, s_0_49, -1, 23, 0},
242 : { 3, s_0_50, -1, 23, 0},
243 : { 3, s_0_51, -1, 23, 0},
244 : { 3, s_0_52, -1, 24, 0},
245 : { 3, s_0_53, -1, 24, 0},
246 : { 3, s_0_54, -1, 24, 0},
247 : { 3, s_0_55, -1, 24, 0},
248 : { 3, s_0_56, -1, 25, 0},
249 : { 3, s_0_57, -1, 25, 0},
250 : { 3, s_0_58, -1, 25, 0},
251 : { 3, s_0_59, -1, 25, 0},
252 : { 3, s_0_60, -1, 26, 0},
253 : { 3, s_0_61, -1, 26, 0},
254 : { 3, s_0_62, -1, 27, 0},
255 : { 3, s_0_63, -1, 27, 0},
256 : { 3, s_0_64, -1, 28, 0},
257 : { 3, s_0_65, -1, 28, 0},
258 : { 3, s_0_66, -1, 29, 0},
259 : { 3, s_0_67, -1, 29, 0},
260 : { 3, s_0_68, -1, 30, 0},
261 : { 3, s_0_69, -1, 30, 0},
262 : { 3, s_0_70, -1, 30, 0},
263 : { 3, s_0_71, -1, 30, 0},
264 : { 3, s_0_72, -1, 31, 0},
265 : { 3, s_0_73, -1, 31, 0},
266 : { 3, s_0_74, -1, 31, 0},
267 : { 3, s_0_75, -1, 31, 0},
268 : { 3, s_0_76, -1, 32, 0},
269 : { 3, s_0_77, -1, 32, 0},
270 : { 3, s_0_78, -1, 32, 0},
271 : { 3, s_0_79, -1, 32, 0},
272 : { 3, s_0_80, -1, 33, 0},
273 : { 3, s_0_81, -1, 33, 0},
274 : { 3, s_0_82, -1, 33, 0},
275 : { 3, s_0_83, -1, 33, 0},
276 : { 3, s_0_84, -1, 34, 0},
277 : { 3, s_0_85, -1, 34, 0},
278 : { 3, s_0_86, -1, 34, 0},
279 : { 3, s_0_87, -1, 34, 0},
280 : { 3, s_0_88, -1, 35, 0},
281 : { 3, s_0_89, -1, 35, 0},
282 : { 3, s_0_90, -1, 35, 0},
283 : { 3, s_0_91, -1, 35, 0},
284 : { 3, s_0_92, -1, 36, 0},
285 : { 3, s_0_93, -1, 36, 0},
286 : { 3, s_0_94, -1, 36, 0},
287 : { 3, s_0_95, -1, 36, 0},
288 : { 3, s_0_96, -1, 37, 0},
289 : { 3, s_0_97, -1, 37, 0},
290 : { 3, s_0_98, -1, 37, 0},
291 : { 3, s_0_99, -1, 37, 0},
292 : { 3, s_0_100, -1, 38, 0},
293 : { 3, s_0_101, -1, 38, 0},
294 : { 3, s_0_102, -1, 38, 0},
295 : { 3, s_0_103, -1, 38, 0},
296 : { 3, s_0_104, -1, 39, 0},
297 : { 3, s_0_105, -1, 39, 0},
298 : { 3, s_0_106, -1, 39, 0},
299 : { 3, s_0_107, -1, 39, 0},
300 : { 3, s_0_108, -1, 40, 0},
301 : { 3, s_0_109, -1, 40, 0},
302 : { 3, s_0_110, -1, 40, 0},
303 : { 3, s_0_111, -1, 40, 0},
304 : { 3, s_0_112, -1, 41, 0},
305 : { 3, s_0_113, -1, 41, 0},
306 : { 3, s_0_114, -1, 41, 0},
307 : { 3, s_0_115, -1, 41, 0},
308 : { 3, s_0_116, -1, 42, 0},
309 : { 3, s_0_117, -1, 42, 0},
310 : { 3, s_0_118, -1, 42, 0},
311 : { 3, s_0_119, -1, 42, 0},
312 : { 3, s_0_120, -1, 43, 0},
313 : { 3, s_0_121, -1, 43, 0},
314 : { 3, s_0_122, -1, 43, 0},
315 : { 3, s_0_123, -1, 43, 0},
316 : { 3, s_0_124, -1, 44, 0},
317 : { 3, s_0_125, -1, 44, 0},
318 : { 3, s_0_126, -1, 44, 0},
319 : { 3, s_0_127, -1, 44, 0},
320 : { 3, s_0_128, -1, 45, 0},
321 : { 3, s_0_129, -1, 45, 0},
322 : { 3, s_0_130, -1, 46, 0},
323 : { 3, s_0_131, -1, 46, 0},
324 : { 3, s_0_132, -1, 47, 0},
325 : { 3, s_0_133, -1, 47, 0},
326 : { 3, s_0_134, -1, 47, 0},
327 : { 3, s_0_135, -1, 47, 0},
328 : { 3, s_0_136, -1, 51, 0},
329 : { 3, s_0_137, -1, 51, 0},
330 : { 3, s_0_138, -1, 49, 0},
331 : { 3, s_0_139, -1, 49, 0},
332 : { 3, s_0_140, -1, 50, 0},
333 : { 3, s_0_141, -1, 50, 0},
334 : { 3, s_0_142, -1, 48, 0},
335 : { 3, s_0_143, -1, 48, 0}
336 : };
337 :
338 : static const symbol s_1_0[2] = { 0xD8, 0xA2 };
339 : static const symbol s_1_1[2] = { 0xD8, 0xA3 };
340 : static const symbol s_1_2[2] = { 0xD8, 0xA4 };
341 : static const symbol s_1_3[2] = { 0xD8, 0xA5 };
342 : static const symbol s_1_4[2] = { 0xD8, 0xA6 };
343 :
344 : static const struct among a_1[5] =
345 : {
346 : { 2, s_1_0, -1, 1, 0},
347 : { 2, s_1_1, -1, 1, 0},
348 : { 2, s_1_2, -1, 1, 0},
349 : { 2, s_1_3, -1, 1, 0},
350 : { 2, s_1_4, -1, 1, 0}
351 : };
352 :
353 : static const symbol s_2_0[2] = { 0xD8, 0xA2 };
354 : static const symbol s_2_1[2] = { 0xD8, 0xA3 };
355 : static const symbol s_2_2[2] = { 0xD8, 0xA4 };
356 : static const symbol s_2_3[2] = { 0xD8, 0xA5 };
357 : static const symbol s_2_4[2] = { 0xD8, 0xA6 };
358 :
359 : static const struct among a_2[5] =
360 : {
361 : { 2, s_2_0, -1, 1, 0},
362 : { 2, s_2_1, -1, 1, 0},
363 : { 2, s_2_2, -1, 2, 0},
364 : { 2, s_2_3, -1, 1, 0},
365 : { 2, s_2_4, -1, 3, 0}
366 : };
367 :
368 : static const symbol s_3_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 };
369 : static const symbol s_3_1[6] = { 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x84 };
370 : static const symbol s_3_2[6] = { 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x84 };
371 : static const symbol s_3_3[4] = { 0xD9, 0x84, 0xD9, 0x84 };
372 :
373 : static const struct among a_3[4] =
374 : {
375 : { 4, s_3_0, -1, 2, 0},
376 : { 6, s_3_1, -1, 1, 0},
377 : { 6, s_3_2, -1, 1, 0},
378 : { 4, s_3_3, -1, 2, 0}
379 : };
380 :
381 : static const symbol s_4_0[4] = { 0xD8, 0xA3, 0xD8, 0xA2 };
382 : static const symbol s_4_1[4] = { 0xD8, 0xA3, 0xD8, 0xA3 };
383 : static const symbol s_4_2[4] = { 0xD8, 0xA3, 0xD8, 0xA4 };
384 : static const symbol s_4_3[4] = { 0xD8, 0xA3, 0xD8, 0xA5 };
385 : static const symbol s_4_4[4] = { 0xD8, 0xA3, 0xD8, 0xA7 };
386 :
387 : static const struct among a_4[5] =
388 : {
389 : { 4, s_4_0, -1, 2, 0},
390 : { 4, s_4_1, -1, 1, 0},
391 : { 4, s_4_2, -1, 1, 0},
392 : { 4, s_4_3, -1, 4, 0},
393 : { 4, s_4_4, -1, 3, 0}
394 : };
395 :
396 : static const symbol s_5_0[2] = { 0xD9, 0x81 };
397 : static const symbol s_5_1[2] = { 0xD9, 0x88 };
398 :
399 : static const struct among a_5[2] =
400 : {
401 : { 2, s_5_0, -1, 1, 0},
402 : { 2, s_5_1, -1, 1, 0}
403 : };
404 :
405 : static const symbol s_6_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 };
406 : static const symbol s_6_1[6] = { 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x84 };
407 : static const symbol s_6_2[6] = { 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x84 };
408 : static const symbol s_6_3[4] = { 0xD9, 0x84, 0xD9, 0x84 };
409 :
410 : static const struct among a_6[4] =
411 : {
412 : { 4, s_6_0, -1, 2, 0},
413 : { 6, s_6_1, -1, 1, 0},
414 : { 6, s_6_2, -1, 1, 0},
415 : { 4, s_6_3, -1, 2, 0}
416 : };
417 :
418 : static const symbol s_7_0[2] = { 0xD8, 0xA8 };
419 : static const symbol s_7_1[4] = { 0xD8, 0xA8, 0xD8, 0xA7 };
420 : static const symbol s_7_2[4] = { 0xD8, 0xA8, 0xD8, 0xA8 };
421 : static const symbol s_7_3[4] = { 0xD9, 0x83, 0xD9, 0x83 };
422 :
423 : static const struct among a_7[4] =
424 : {
425 : { 2, s_7_0, -1, 1, 0},
426 : { 4, s_7_1, 0, -1, 0},
427 : { 4, s_7_2, 0, 2, 0},
428 : { 4, s_7_3, -1, 3, 0}
429 : };
430 :
431 : static const symbol s_8_0[4] = { 0xD8, 0xB3, 0xD8, 0xA3 };
432 : static const symbol s_8_1[4] = { 0xD8, 0xB3, 0xD8, 0xAA };
433 : static const symbol s_8_2[4] = { 0xD8, 0xB3, 0xD9, 0x86 };
434 : static const symbol s_8_3[4] = { 0xD8, 0xB3, 0xD9, 0x8A };
435 :
436 : static const struct among a_8[4] =
437 : {
438 : { 4, s_8_0, -1, 4, 0},
439 : { 4, s_8_1, -1, 2, 0},
440 : { 4, s_8_2, -1, 3, 0},
441 : { 4, s_8_3, -1, 1, 0}
442 : };
443 :
444 : static const symbol s_9_0[6] = { 0xD8, 0xAA, 0xD8, 0xB3, 0xD8, 0xAA };
445 : static const symbol s_9_1[6] = { 0xD9, 0x86, 0xD8, 0xB3, 0xD8, 0xAA };
446 : static const symbol s_9_2[6] = { 0xD9, 0x8A, 0xD8, 0xB3, 0xD8, 0xAA };
447 :
448 : static const struct among a_9[3] =
449 : {
450 : { 6, s_9_0, -1, 1, 0},
451 : { 6, s_9_1, -1, 1, 0},
452 : { 6, s_9_2, -1, 1, 0}
453 : };
454 :
455 : static const symbol s_10_0[2] = { 0xD9, 0x83 };
456 : static const symbol s_10_1[4] = { 0xD9, 0x83, 0xD9, 0x85 };
457 : static const symbol s_10_2[4] = { 0xD9, 0x87, 0xD9, 0x85 };
458 : static const symbol s_10_3[4] = { 0xD9, 0x87, 0xD9, 0x86 };
459 : static const symbol s_10_4[2] = { 0xD9, 0x87 };
460 : static const symbol s_10_5[2] = { 0xD9, 0x8A };
461 : static const symbol s_10_6[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD8, 0xA7 };
462 : static const symbol s_10_7[6] = { 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xA7 };
463 : static const symbol s_10_8[4] = { 0xD9, 0x86, 0xD8, 0xA7 };
464 : static const symbol s_10_9[4] = { 0xD9, 0x87, 0xD8, 0xA7 };
465 :
466 : static const struct among a_10[10] =
467 : {
468 : { 2, s_10_0, -1, 1, 0},
469 : { 4, s_10_1, -1, 2, 0},
470 : { 4, s_10_2, -1, 2, 0},
471 : { 4, s_10_3, -1, 2, 0},
472 : { 2, s_10_4, -1, 1, 0},
473 : { 2, s_10_5, -1, 1, 0},
474 : { 6, s_10_6, -1, 3, 0},
475 : { 6, s_10_7, -1, 3, 0},
476 : { 4, s_10_8, -1, 2, 0},
477 : { 4, s_10_9, -1, 2, 0}
478 : };
479 :
480 : static const symbol s_11_0[2] = { 0xD9, 0x86 };
481 :
482 : static const struct among a_11[1] =
483 : {
484 : { 2, s_11_0, -1, 1, 0}
485 : };
486 :
487 : static const symbol s_12_0[2] = { 0xD9, 0x88 };
488 : static const symbol s_12_1[2] = { 0xD9, 0x8A };
489 : static const symbol s_12_2[2] = { 0xD8, 0xA7 };
490 :
491 : static const struct among a_12[3] =
492 : {
493 : { 2, s_12_0, -1, 1, 0},
494 : { 2, s_12_1, -1, 1, 0},
495 : { 2, s_12_2, -1, 1, 0}
496 : };
497 :
498 : static const symbol s_13_0[4] = { 0xD8, 0xA7, 0xD8, 0xAA };
499 :
500 : static const struct among a_13[1] =
501 : {
502 : { 4, s_13_0, -1, 1, 0}
503 : };
504 :
505 : static const symbol s_14_0[2] = { 0xD8, 0xAA };
506 :
507 : static const struct among a_14[1] =
508 : {
509 : { 2, s_14_0, -1, 1, 0}
510 : };
511 :
512 : static const symbol s_15_0[2] = { 0xD8, 0xA9 };
513 :
514 : static const struct among a_15[1] =
515 : {
516 : { 2, s_15_0, -1, 1, 0}
517 : };
518 :
519 : static const symbol s_16_0[2] = { 0xD9, 0x8A };
520 :
521 : static const struct among a_16[1] =
522 : {
523 : { 2, s_16_0, -1, 1, 0}
524 : };
525 :
526 : static const symbol s_17_0[2] = { 0xD9, 0x83 };
527 : static const symbol s_17_1[4] = { 0xD9, 0x83, 0xD9, 0x85 };
528 : static const symbol s_17_2[4] = { 0xD9, 0x87, 0xD9, 0x85 };
529 : static const symbol s_17_3[4] = { 0xD9, 0x83, 0xD9, 0x86 };
530 : static const symbol s_17_4[4] = { 0xD9, 0x87, 0xD9, 0x86 };
531 : static const symbol s_17_5[2] = { 0xD9, 0x87 };
532 : static const symbol s_17_6[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x88 };
533 : static const symbol s_17_7[4] = { 0xD9, 0x86, 0xD9, 0x8A };
534 : static const symbol s_17_8[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD8, 0xA7 };
535 : static const symbol s_17_9[6] = { 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xA7 };
536 : static const symbol s_17_10[4] = { 0xD9, 0x86, 0xD8, 0xA7 };
537 : static const symbol s_17_11[4] = { 0xD9, 0x87, 0xD8, 0xA7 };
538 :
539 : static const struct among a_17[12] =
540 : {
541 : { 2, s_17_0, -1, 1, 0},
542 : { 4, s_17_1, -1, 2, 0},
543 : { 4, s_17_2, -1, 2, 0},
544 : { 4, s_17_3, -1, 2, 0},
545 : { 4, s_17_4, -1, 2, 0},
546 : { 2, s_17_5, -1, 1, 0},
547 : { 6, s_17_6, -1, 3, 0},
548 : { 4, s_17_7, -1, 2, 0},
549 : { 6, s_17_8, -1, 3, 0},
550 : { 6, s_17_9, -1, 3, 0},
551 : { 4, s_17_10, -1, 2, 0},
552 : { 4, s_17_11, -1, 2, 0}
553 : };
554 :
555 : static const symbol s_18_0[2] = { 0xD9, 0x86 };
556 : static const symbol s_18_1[4] = { 0xD9, 0x88, 0xD9, 0x86 };
557 : static const symbol s_18_2[4] = { 0xD9, 0x8A, 0xD9, 0x86 };
558 : static const symbol s_18_3[4] = { 0xD8, 0xA7, 0xD9, 0x86 };
559 : static const symbol s_18_4[4] = { 0xD8, 0xAA, 0xD9, 0x86 };
560 : static const symbol s_18_5[2] = { 0xD9, 0x8A };
561 : static const symbol s_18_6[2] = { 0xD8, 0xA7 };
562 : static const symbol s_18_7[6] = { 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xA7 };
563 : static const symbol s_18_8[4] = { 0xD9, 0x86, 0xD8, 0xA7 };
564 : static const symbol s_18_9[4] = { 0xD8, 0xAA, 0xD8, 0xA7 };
565 : static const symbol s_18_10[2] = { 0xD8, 0xAA };
566 :
567 : static const struct among a_18[11] =
568 : {
569 : { 2, s_18_0, -1, 1, 0},
570 : { 4, s_18_1, 0, 3, 0},
571 : { 4, s_18_2, 0, 3, 0},
572 : { 4, s_18_3, 0, 3, 0},
573 : { 4, s_18_4, 0, 2, 0},
574 : { 2, s_18_5, -1, 1, 0},
575 : { 2, s_18_6, -1, 1, 0},
576 : { 6, s_18_7, 6, 4, 0},
577 : { 4, s_18_8, 6, 2, 0},
578 : { 4, s_18_9, 6, 2, 0},
579 : { 2, s_18_10, -1, 1, 0}
580 : };
581 :
582 : static const symbol s_19_0[4] = { 0xD8, 0xAA, 0xD9, 0x85 };
583 : static const symbol s_19_1[4] = { 0xD9, 0x88, 0xD8, 0xA7 };
584 :
585 : static const struct among a_19[2] =
586 : {
587 : { 4, s_19_0, -1, 1, 0},
588 : { 4, s_19_1, -1, 1, 0}
589 : };
590 :
591 : static const symbol s_20_0[2] = { 0xD9, 0x88 };
592 : static const symbol s_20_1[6] = { 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x88 };
593 :
594 : static const struct among a_20[2] =
595 : {
596 : { 2, s_20_0, -1, 1, 0},
597 : { 6, s_20_1, 0, 2, 0}
598 : };
599 :
600 : static const symbol s_21_0[2] = { 0xD9, 0x89 };
601 :
602 : static const struct among a_21[1] =
603 : {
604 : { 2, s_21_0, -1, 1, 0}
605 : };
606 :
607 : static const symbol s_0[] = { '0' };
608 : static const symbol s_1[] = { '1' };
609 : static const symbol s_2[] = { '2' };
610 : static const symbol s_3[] = { '3' };
611 : static const symbol s_4[] = { '4' };
612 : static const symbol s_5[] = { '5' };
613 : static const symbol s_6[] = { '6' };
614 : static const symbol s_7[] = { '7' };
615 : static const symbol s_8[] = { '8' };
616 : static const symbol s_9[] = { '9' };
617 : static const symbol s_10[] = { 0xD8, 0xA1 };
618 : static const symbol s_11[] = { 0xD8, 0xA3 };
619 : static const symbol s_12[] = { 0xD8, 0xA5 };
620 : static const symbol s_13[] = { 0xD8, 0xA6 };
621 : static const symbol s_14[] = { 0xD8, 0xA2 };
622 : static const symbol s_15[] = { 0xD8, 0xA4 };
623 : static const symbol s_16[] = { 0xD8, 0xA7 };
624 : static const symbol s_17[] = { 0xD8, 0xA8 };
625 : static const symbol s_18[] = { 0xD8, 0xA9 };
626 : static const symbol s_19[] = { 0xD8, 0xAA };
627 : static const symbol s_20[] = { 0xD8, 0xAB };
628 : static const symbol s_21[] = { 0xD8, 0xAC };
629 : static const symbol s_22[] = { 0xD8, 0xAD };
630 : static const symbol s_23[] = { 0xD8, 0xAE };
631 : static const symbol s_24[] = { 0xD8, 0xAF };
632 : static const symbol s_25[] = { 0xD8, 0xB0 };
633 : static const symbol s_26[] = { 0xD8, 0xB1 };
634 : static const symbol s_27[] = { 0xD8, 0xB2 };
635 : static const symbol s_28[] = { 0xD8, 0xB3 };
636 : static const symbol s_29[] = { 0xD8, 0xB4 };
637 : static const symbol s_30[] = { 0xD8, 0xB5 };
638 : static const symbol s_31[] = { 0xD8, 0xB6 };
639 : static const symbol s_32[] = { 0xD8, 0xB7 };
640 : static const symbol s_33[] = { 0xD8, 0xB8 };
641 : static const symbol s_34[] = { 0xD8, 0xB9 };
642 : static const symbol s_35[] = { 0xD8, 0xBA };
643 : static const symbol s_36[] = { 0xD9, 0x81 };
644 : static const symbol s_37[] = { 0xD9, 0x82 };
645 : static const symbol s_38[] = { 0xD9, 0x83 };
646 : static const symbol s_39[] = { 0xD9, 0x84 };
647 : static const symbol s_40[] = { 0xD9, 0x85 };
648 : static const symbol s_41[] = { 0xD9, 0x86 };
649 : static const symbol s_42[] = { 0xD9, 0x87 };
650 : static const symbol s_43[] = { 0xD9, 0x88 };
651 : static const symbol s_44[] = { 0xD9, 0x89 };
652 : static const symbol s_45[] = { 0xD9, 0x8A };
653 : static const symbol s_46[] = { 0xD9, 0x84, 0xD8, 0xA7 };
654 : static const symbol s_47[] = { 0xD9, 0x84, 0xD8, 0xA3 };
655 : static const symbol s_48[] = { 0xD9, 0x84, 0xD8, 0xA5 };
656 : static const symbol s_49[] = { 0xD9, 0x84, 0xD8, 0xA2 };
657 : static const symbol s_50[] = { 0xD8, 0xA1 };
658 : static const symbol s_51[] = { 0xD8, 0xA7 };
659 : static const symbol s_52[] = { 0xD9, 0x88 };
660 : static const symbol s_53[] = { 0xD9, 0x8A };
661 : static const symbol s_54[] = { 0xD8, 0xA3 };
662 : static const symbol s_55[] = { 0xD8, 0xA2 };
663 : static const symbol s_56[] = { 0xD8, 0xA7 };
664 : static const symbol s_57[] = { 0xD8, 0xA5 };
665 : static const symbol s_58[] = { 0xD8, 0xA7 };
666 : static const symbol s_59[] = { 0xD8, 0xA8 };
667 : static const symbol s_60[] = { 0xD9, 0x83 };
668 : static const symbol s_61[] = { 0xD9, 0x8A };
669 : static const symbol s_62[] = { 0xD8, 0xAA };
670 : static const symbol s_63[] = { 0xD9, 0x86 };
671 : static const symbol s_64[] = { 0xD8, 0xA3 };
672 : static const symbol s_65[] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xAA };
673 : static const symbol s_66[] = { 0xD9, 0x8A };
674 :
675 0 : static int r_Normalize_pre(struct SN_env * z) {
676 : int among_var;
677 0 : { int c1 = z->c;
678 0 : while(1) {
679 0 : int c2 = z->c;
680 0 : { int c3 = z->c;
681 0 : z->bra = z->c;
682 0 : among_var = find_among(z, a_0, 144);
683 0 : if (!(among_var)) goto lab3;
684 0 : z->ket = z->c;
685 0 : switch (among_var) {
686 0 : case 1:
687 0 : { int ret = slice_del(z);
688 0 : if (ret < 0) return ret;
689 : }
690 0 : break;
691 0 : case 2:
692 0 : { int ret = slice_from_s(z, 1, s_0);
693 0 : if (ret < 0) return ret;
694 : }
695 0 : break;
696 0 : case 3:
697 0 : { int ret = slice_from_s(z, 1, s_1);
698 0 : if (ret < 0) return ret;
699 : }
700 0 : break;
701 0 : case 4:
702 0 : { int ret = slice_from_s(z, 1, s_2);
703 0 : if (ret < 0) return ret;
704 : }
705 0 : break;
706 0 : case 5:
707 0 : { int ret = slice_from_s(z, 1, s_3);
708 0 : if (ret < 0) return ret;
709 : }
710 0 : break;
711 0 : case 6:
712 0 : { int ret = slice_from_s(z, 1, s_4);
713 0 : if (ret < 0) return ret;
714 : }
715 0 : break;
716 0 : case 7:
717 0 : { int ret = slice_from_s(z, 1, s_5);
718 0 : if (ret < 0) return ret;
719 : }
720 0 : break;
721 0 : case 8:
722 0 : { int ret = slice_from_s(z, 1, s_6);
723 0 : if (ret < 0) return ret;
724 : }
725 0 : break;
726 0 : case 9:
727 0 : { int ret = slice_from_s(z, 1, s_7);
728 0 : if (ret < 0) return ret;
729 : }
730 0 : break;
731 0 : case 10:
732 0 : { int ret = slice_from_s(z, 1, s_8);
733 0 : if (ret < 0) return ret;
734 : }
735 0 : break;
736 0 : case 11:
737 0 : { int ret = slice_from_s(z, 1, s_9);
738 0 : if (ret < 0) return ret;
739 : }
740 0 : break;
741 0 : case 12:
742 0 : { int ret = slice_from_s(z, 2, s_10);
743 0 : if (ret < 0) return ret;
744 : }
745 0 : break;
746 0 : case 13:
747 0 : { int ret = slice_from_s(z, 2, s_11);
748 0 : if (ret < 0) return ret;
749 : }
750 0 : break;
751 0 : case 14:
752 0 : { int ret = slice_from_s(z, 2, s_12);
753 0 : if (ret < 0) return ret;
754 : }
755 0 : break;
756 0 : case 15:
757 0 : { int ret = slice_from_s(z, 2, s_13);
758 0 : if (ret < 0) return ret;
759 : }
760 0 : break;
761 0 : case 16:
762 0 : { int ret = slice_from_s(z, 2, s_14);
763 0 : if (ret < 0) return ret;
764 : }
765 0 : break;
766 0 : case 17:
767 0 : { int ret = slice_from_s(z, 2, s_15);
768 0 : if (ret < 0) return ret;
769 : }
770 0 : break;
771 0 : case 18:
772 0 : { int ret = slice_from_s(z, 2, s_16);
773 0 : if (ret < 0) return ret;
774 : }
775 0 : break;
776 0 : case 19:
777 0 : { int ret = slice_from_s(z, 2, s_17);
778 0 : if (ret < 0) return ret;
779 : }
780 0 : break;
781 0 : case 20:
782 0 : { int ret = slice_from_s(z, 2, s_18);
783 0 : if (ret < 0) return ret;
784 : }
785 0 : break;
786 0 : case 21:
787 0 : { int ret = slice_from_s(z, 2, s_19);
788 0 : if (ret < 0) return ret;
789 : }
790 0 : break;
791 0 : case 22:
792 0 : { int ret = slice_from_s(z, 2, s_20);
793 0 : if (ret < 0) return ret;
794 : }
795 0 : break;
796 0 : case 23:
797 0 : { int ret = slice_from_s(z, 2, s_21);
798 0 : if (ret < 0) return ret;
799 : }
800 0 : break;
801 0 : case 24:
802 0 : { int ret = slice_from_s(z, 2, s_22);
803 0 : if (ret < 0) return ret;
804 : }
805 0 : break;
806 0 : case 25:
807 0 : { int ret = slice_from_s(z, 2, s_23);
808 0 : if (ret < 0) return ret;
809 : }
810 0 : break;
811 0 : case 26:
812 0 : { int ret = slice_from_s(z, 2, s_24);
813 0 : if (ret < 0) return ret;
814 : }
815 0 : break;
816 0 : case 27:
817 0 : { int ret = slice_from_s(z, 2, s_25);
818 0 : if (ret < 0) return ret;
819 : }
820 0 : break;
821 0 : case 28:
822 0 : { int ret = slice_from_s(z, 2, s_26);
823 0 : if (ret < 0) return ret;
824 : }
825 0 : break;
826 0 : case 29:
827 0 : { int ret = slice_from_s(z, 2, s_27);
828 0 : if (ret < 0) return ret;
829 : }
830 0 : break;
831 0 : case 30:
832 0 : { int ret = slice_from_s(z, 2, s_28);
833 0 : if (ret < 0) return ret;
834 : }
835 0 : break;
836 0 : case 31:
837 0 : { int ret = slice_from_s(z, 2, s_29);
838 0 : if (ret < 0) return ret;
839 : }
840 0 : break;
841 0 : case 32:
842 0 : { int ret = slice_from_s(z, 2, s_30);
843 0 : if (ret < 0) return ret;
844 : }
845 0 : break;
846 0 : case 33:
847 0 : { int ret = slice_from_s(z, 2, s_31);
848 0 : if (ret < 0) return ret;
849 : }
850 0 : break;
851 0 : case 34:
852 0 : { int ret = slice_from_s(z, 2, s_32);
853 0 : if (ret < 0) return ret;
854 : }
855 0 : break;
856 0 : case 35:
857 0 : { int ret = slice_from_s(z, 2, s_33);
858 0 : if (ret < 0) return ret;
859 : }
860 0 : break;
861 0 : case 36:
862 0 : { int ret = slice_from_s(z, 2, s_34);
863 0 : if (ret < 0) return ret;
864 : }
865 0 : break;
866 0 : case 37:
867 0 : { int ret = slice_from_s(z, 2, s_35);
868 0 : if (ret < 0) return ret;
869 : }
870 0 : break;
871 0 : case 38:
872 0 : { int ret = slice_from_s(z, 2, s_36);
873 0 : if (ret < 0) return ret;
874 : }
875 0 : break;
876 0 : case 39:
877 0 : { int ret = slice_from_s(z, 2, s_37);
878 0 : if (ret < 0) return ret;
879 : }
880 0 : break;
881 0 : case 40:
882 0 : { int ret = slice_from_s(z, 2, s_38);
883 0 : if (ret < 0) return ret;
884 : }
885 0 : break;
886 0 : case 41:
887 0 : { int ret = slice_from_s(z, 2, s_39);
888 0 : if (ret < 0) return ret;
889 : }
890 0 : break;
891 0 : case 42:
892 0 : { int ret = slice_from_s(z, 2, s_40);
893 0 : if (ret < 0) return ret;
894 : }
895 0 : break;
896 0 : case 43:
897 0 : { int ret = slice_from_s(z, 2, s_41);
898 0 : if (ret < 0) return ret;
899 : }
900 0 : break;
901 0 : case 44:
902 0 : { int ret = slice_from_s(z, 2, s_42);
903 0 : if (ret < 0) return ret;
904 : }
905 0 : break;
906 0 : case 45:
907 0 : { int ret = slice_from_s(z, 2, s_43);
908 0 : if (ret < 0) return ret;
909 : }
910 0 : break;
911 0 : case 46:
912 0 : { int ret = slice_from_s(z, 2, s_44);
913 0 : if (ret < 0) return ret;
914 : }
915 0 : break;
916 0 : case 47:
917 0 : { int ret = slice_from_s(z, 2, s_45);
918 0 : if (ret < 0) return ret;
919 : }
920 0 : break;
921 0 : case 48:
922 0 : { int ret = slice_from_s(z, 4, s_46);
923 0 : if (ret < 0) return ret;
924 : }
925 0 : break;
926 0 : case 49:
927 0 : { int ret = slice_from_s(z, 4, s_47);
928 0 : if (ret < 0) return ret;
929 : }
930 0 : break;
931 0 : case 50:
932 0 : { int ret = slice_from_s(z, 4, s_48);
933 0 : if (ret < 0) return ret;
934 : }
935 0 : break;
936 0 : case 51:
937 0 : { int ret = slice_from_s(z, 4, s_49);
938 0 : if (ret < 0) return ret;
939 : }
940 0 : break;
941 : }
942 0 : goto lab2;
943 0 : lab3:
944 0 : z->c = c3;
945 0 : { int ret = skip_utf8(z->p, z->c, z->l, 1);
946 0 : if (ret < 0) goto lab1;
947 0 : z->c = ret;
948 : }
949 : }
950 0 : lab2:
951 0 : continue;
952 0 : lab1:
953 0 : z->c = c2;
954 0 : break;
955 : }
956 0 : z->c = c1;
957 : }
958 0 : return 1;
959 : }
960 :
961 0 : static int r_Normalize_post(struct SN_env * z) {
962 : int among_var;
963 0 : { int c1 = z->c;
964 0 : z->lb = z->c; z->c = z->l;
965 :
966 0 : z->ket = z->c;
967 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((124 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
968 0 : if (!(find_among_b(z, a_1, 5))) goto lab0;
969 0 : z->bra = z->c;
970 0 : { int ret = slice_from_s(z, 2, s_50);
971 0 : if (ret < 0) return ret;
972 : }
973 0 : z->c = z->lb;
974 0 : lab0:
975 0 : z->c = c1;
976 : }
977 0 : { int c2 = z->c;
978 0 : while(1) {
979 0 : int c3 = z->c;
980 0 : { int c4 = z->c;
981 0 : z->bra = z->c;
982 0 : if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((124 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab4;
983 0 : among_var = find_among(z, a_2, 5);
984 0 : if (!(among_var)) goto lab4;
985 0 : z->ket = z->c;
986 0 : switch (among_var) {
987 0 : case 1:
988 0 : { int ret = slice_from_s(z, 2, s_51);
989 0 : if (ret < 0) return ret;
990 : }
991 0 : break;
992 0 : case 2:
993 0 : { int ret = slice_from_s(z, 2, s_52);
994 0 : if (ret < 0) return ret;
995 : }
996 0 : break;
997 0 : case 3:
998 0 : { int ret = slice_from_s(z, 2, s_53);
999 0 : if (ret < 0) return ret;
1000 : }
1001 0 : break;
1002 : }
1003 0 : goto lab3;
1004 0 : lab4:
1005 0 : z->c = c4;
1006 0 : { int ret = skip_utf8(z->p, z->c, z->l, 1);
1007 0 : if (ret < 0) goto lab2;
1008 0 : z->c = ret;
1009 : }
1010 : }
1011 0 : lab3:
1012 0 : continue;
1013 0 : lab2:
1014 0 : z->c = c3;
1015 0 : break;
1016 : }
1017 0 : z->c = c2;
1018 : }
1019 0 : return 1;
1020 : }
1021 :
1022 0 : static int r_Checks1(struct SN_env * z) {
1023 : int among_var;
1024 0 : z->bra = z->c;
1025 0 : if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0;
1026 0 : among_var = find_among(z, a_3, 4);
1027 0 : if (!(among_var)) return 0;
1028 0 : z->ket = z->c;
1029 0 : switch (among_var) {
1030 0 : case 1:
1031 0 : if (!(len_utf8(z->p) > 4)) return 0;
1032 0 : z->I[2] = 1;
1033 0 : z->I[1] = 0;
1034 0 : z->I[0] = 1;
1035 0 : break;
1036 0 : case 2:
1037 0 : if (!(len_utf8(z->p) > 3)) return 0;
1038 0 : z->I[2] = 1;
1039 0 : z->I[1] = 0;
1040 0 : z->I[0] = 1;
1041 0 : break;
1042 : }
1043 0 : return 1;
1044 : }
1045 :
1046 0 : static int r_Prefix_Step1(struct SN_env * z) {
1047 : int among_var;
1048 0 : z->bra = z->c;
1049 0 : if (z->c + 3 >= z->l || z->p[z->c + 3] >> 5 != 5 || !((188 >> (z->p[z->c + 3] & 0x1f)) & 1)) return 0;
1050 0 : among_var = find_among(z, a_4, 5);
1051 0 : if (!(among_var)) return 0;
1052 0 : z->ket = z->c;
1053 0 : switch (among_var) {
1054 0 : case 1:
1055 0 : if (!(len_utf8(z->p) > 3)) return 0;
1056 0 : { int ret = slice_from_s(z, 2, s_54);
1057 0 : if (ret < 0) return ret;
1058 : }
1059 0 : break;
1060 0 : case 2:
1061 0 : if (!(len_utf8(z->p) > 3)) return 0;
1062 0 : { int ret = slice_from_s(z, 2, s_55);
1063 0 : if (ret < 0) return ret;
1064 : }
1065 0 : break;
1066 0 : case 3:
1067 0 : if (!(len_utf8(z->p) > 3)) return 0;
1068 0 : { int ret = slice_from_s(z, 2, s_56);
1069 0 : if (ret < 0) return ret;
1070 : }
1071 0 : break;
1072 0 : case 4:
1073 0 : if (!(len_utf8(z->p) > 3)) return 0;
1074 0 : { int ret = slice_from_s(z, 2, s_57);
1075 0 : if (ret < 0) return ret;
1076 : }
1077 0 : break;
1078 : }
1079 0 : return 1;
1080 : }
1081 :
1082 0 : static int r_Prefix_Step2(struct SN_env * z) {
1083 0 : z->bra = z->c;
1084 0 : if (z->c + 1 >= z->l || (z->p[z->c + 1] != 129 && z->p[z->c + 1] != 136)) return 0;
1085 0 : if (!(find_among(z, a_5, 2))) return 0;
1086 0 : z->ket = z->c;
1087 0 : if (!(len_utf8(z->p) > 3)) return 0;
1088 0 : { int c1 = z->c;
1089 0 : if (!(eq_s(z, 2, s_58))) goto lab0;
1090 0 : return 0;
1091 0 : lab0:
1092 0 : z->c = c1;
1093 : }
1094 0 : { int ret = slice_del(z);
1095 0 : if (ret < 0) return ret;
1096 : }
1097 0 : return 1;
1098 : }
1099 :
1100 0 : static int r_Prefix_Step3a_Noun(struct SN_env * z) {
1101 : int among_var;
1102 0 : z->bra = z->c;
1103 0 : if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0;
1104 0 : among_var = find_among(z, a_6, 4);
1105 0 : if (!(among_var)) return 0;
1106 0 : z->ket = z->c;
1107 0 : switch (among_var) {
1108 0 : case 1:
1109 0 : if (!(len_utf8(z->p) > 5)) return 0;
1110 0 : { int ret = slice_del(z);
1111 0 : if (ret < 0) return ret;
1112 : }
1113 0 : break;
1114 0 : case 2:
1115 0 : if (!(len_utf8(z->p) > 4)) return 0;
1116 0 : { int ret = slice_del(z);
1117 0 : if (ret < 0) return ret;
1118 : }
1119 0 : break;
1120 : }
1121 0 : return 1;
1122 : }
1123 :
1124 0 : static int r_Prefix_Step3b_Noun(struct SN_env * z) {
1125 : int among_var;
1126 0 : z->bra = z->c;
1127 0 : if (z->c + 1 >= z->l || (z->p[z->c + 1] != 168 && z->p[z->c + 1] != 131)) return 0;
1128 0 : among_var = find_among(z, a_7, 4);
1129 0 : if (!(among_var)) return 0;
1130 0 : z->ket = z->c;
1131 0 : switch (among_var) {
1132 0 : case 1:
1133 0 : if (!(len_utf8(z->p) > 3)) return 0;
1134 0 : { int ret = slice_del(z);
1135 0 : if (ret < 0) return ret;
1136 : }
1137 0 : break;
1138 0 : case 2:
1139 0 : if (!(len_utf8(z->p) > 3)) return 0;
1140 0 : { int ret = slice_from_s(z, 2, s_59);
1141 0 : if (ret < 0) return ret;
1142 : }
1143 0 : break;
1144 0 : case 3:
1145 0 : if (!(len_utf8(z->p) > 3)) return 0;
1146 0 : { int ret = slice_from_s(z, 2, s_60);
1147 0 : if (ret < 0) return ret;
1148 : }
1149 0 : break;
1150 : }
1151 0 : return 1;
1152 : }
1153 :
1154 0 : static int r_Prefix_Step3_Verb(struct SN_env * z) {
1155 : int among_var;
1156 0 : z->bra = z->c;
1157 0 : among_var = find_among(z, a_8, 4);
1158 0 : if (!(among_var)) return 0;
1159 0 : z->ket = z->c;
1160 0 : switch (among_var) {
1161 0 : case 1:
1162 0 : if (!(len_utf8(z->p) > 4)) return 0;
1163 0 : { int ret = slice_from_s(z, 2, s_61);
1164 0 : if (ret < 0) return ret;
1165 : }
1166 0 : break;
1167 0 : case 2:
1168 0 : if (!(len_utf8(z->p) > 4)) return 0;
1169 0 : { int ret = slice_from_s(z, 2, s_62);
1170 0 : if (ret < 0) return ret;
1171 : }
1172 0 : break;
1173 0 : case 3:
1174 0 : if (!(len_utf8(z->p) > 4)) return 0;
1175 0 : { int ret = slice_from_s(z, 2, s_63);
1176 0 : if (ret < 0) return ret;
1177 : }
1178 0 : break;
1179 0 : case 4:
1180 0 : if (!(len_utf8(z->p) > 4)) return 0;
1181 0 : { int ret = slice_from_s(z, 2, s_64);
1182 0 : if (ret < 0) return ret;
1183 : }
1184 0 : break;
1185 : }
1186 0 : return 1;
1187 : }
1188 :
1189 0 : static int r_Prefix_Step4_Verb(struct SN_env * z) {
1190 0 : z->bra = z->c;
1191 0 : if (z->c + 5 >= z->l || z->p[z->c + 5] != 170) return 0;
1192 0 : if (!(find_among(z, a_9, 3))) return 0;
1193 0 : z->ket = z->c;
1194 0 : if (!(len_utf8(z->p) > 4)) return 0;
1195 0 : z->I[1] = 1;
1196 0 : z->I[2] = 0;
1197 0 : { int ret = slice_from_s(z, 6, s_65);
1198 0 : if (ret < 0) return ret;
1199 : }
1200 0 : return 1;
1201 : }
1202 :
1203 0 : static int r_Suffix_Noun_Step1a(struct SN_env * z) {
1204 : int among_var;
1205 0 : z->ket = z->c;
1206 0 : among_var = find_among_b(z, a_10, 10);
1207 0 : if (!(among_var)) return 0;
1208 0 : z->bra = z->c;
1209 0 : switch (among_var) {
1210 0 : case 1:
1211 0 : if (!(len_utf8(z->p) >= 4)) return 0;
1212 0 : { int ret = slice_del(z);
1213 0 : if (ret < 0) return ret;
1214 : }
1215 0 : break;
1216 0 : case 2:
1217 0 : if (!(len_utf8(z->p) >= 5)) return 0;
1218 0 : { int ret = slice_del(z);
1219 0 : if (ret < 0) return ret;
1220 : }
1221 0 : break;
1222 0 : case 3:
1223 0 : if (!(len_utf8(z->p) >= 6)) return 0;
1224 0 : { int ret = slice_del(z);
1225 0 : if (ret < 0) return ret;
1226 : }
1227 0 : break;
1228 : }
1229 0 : return 1;
1230 : }
1231 :
1232 0 : static int r_Suffix_Noun_Step1b(struct SN_env * z) {
1233 0 : z->ket = z->c;
1234 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] != 134) return 0;
1235 0 : if (!(find_among_b(z, a_11, 1))) return 0;
1236 0 : z->bra = z->c;
1237 0 : if (!(len_utf8(z->p) > 5)) return 0;
1238 0 : { int ret = slice_del(z);
1239 0 : if (ret < 0) return ret;
1240 : }
1241 0 : return 1;
1242 : }
1243 :
1244 0 : static int r_Suffix_Noun_Step2a(struct SN_env * z) {
1245 0 : z->ket = z->c;
1246 0 : if (!(find_among_b(z, a_12, 3))) return 0;
1247 0 : z->bra = z->c;
1248 0 : if (!(len_utf8(z->p) > 4)) return 0;
1249 0 : { int ret = slice_del(z);
1250 0 : if (ret < 0) return ret;
1251 : }
1252 0 : return 1;
1253 : }
1254 :
1255 0 : static int r_Suffix_Noun_Step2b(struct SN_env * z) {
1256 0 : z->ket = z->c;
1257 0 : if (z->c - 3 <= z->lb || z->p[z->c - 1] != 170) return 0;
1258 0 : if (!(find_among_b(z, a_13, 1))) return 0;
1259 0 : z->bra = z->c;
1260 0 : if (!(len_utf8(z->p) >= 5)) return 0;
1261 0 : { int ret = slice_del(z);
1262 0 : if (ret < 0) return ret;
1263 : }
1264 0 : return 1;
1265 : }
1266 :
1267 0 : static int r_Suffix_Noun_Step2c1(struct SN_env * z) {
1268 0 : z->ket = z->c;
1269 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] != 170) return 0;
1270 0 : if (!(find_among_b(z, a_14, 1))) return 0;
1271 0 : z->bra = z->c;
1272 0 : if (!(len_utf8(z->p) >= 4)) return 0;
1273 0 : { int ret = slice_del(z);
1274 0 : if (ret < 0) return ret;
1275 : }
1276 0 : return 1;
1277 : }
1278 :
1279 0 : static int r_Suffix_Noun_Step2c2(struct SN_env * z) {
1280 0 : z->ket = z->c;
1281 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] != 169) return 0;
1282 0 : if (!(find_among_b(z, a_15, 1))) return 0;
1283 0 : z->bra = z->c;
1284 0 : if (!(len_utf8(z->p) >= 4)) return 0;
1285 0 : { int ret = slice_del(z);
1286 0 : if (ret < 0) return ret;
1287 : }
1288 0 : return 1;
1289 : }
1290 :
1291 0 : static int r_Suffix_Noun_Step3(struct SN_env * z) {
1292 0 : z->ket = z->c;
1293 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] != 138) return 0;
1294 0 : if (!(find_among_b(z, a_16, 1))) return 0;
1295 0 : z->bra = z->c;
1296 0 : if (!(len_utf8(z->p) >= 3)) return 0;
1297 0 : { int ret = slice_del(z);
1298 0 : if (ret < 0) return ret;
1299 : }
1300 0 : return 1;
1301 : }
1302 :
1303 0 : static int r_Suffix_Verb_Step1(struct SN_env * z) {
1304 : int among_var;
1305 0 : z->ket = z->c;
1306 0 : among_var = find_among_b(z, a_17, 12);
1307 0 : if (!(among_var)) return 0;
1308 0 : z->bra = z->c;
1309 0 : switch (among_var) {
1310 0 : case 1:
1311 0 : if (!(len_utf8(z->p) >= 4)) return 0;
1312 0 : { int ret = slice_del(z);
1313 0 : if (ret < 0) return ret;
1314 : }
1315 0 : break;
1316 0 : case 2:
1317 0 : if (!(len_utf8(z->p) >= 5)) return 0;
1318 0 : { int ret = slice_del(z);
1319 0 : if (ret < 0) return ret;
1320 : }
1321 0 : break;
1322 0 : case 3:
1323 0 : if (!(len_utf8(z->p) >= 6)) return 0;
1324 0 : { int ret = slice_del(z);
1325 0 : if (ret < 0) return ret;
1326 : }
1327 0 : break;
1328 : }
1329 0 : return 1;
1330 : }
1331 :
1332 0 : static int r_Suffix_Verb_Step2a(struct SN_env * z) {
1333 : int among_var;
1334 0 : z->ket = z->c;
1335 0 : among_var = find_among_b(z, a_18, 11);
1336 0 : if (!(among_var)) return 0;
1337 0 : z->bra = z->c;
1338 0 : switch (among_var) {
1339 0 : case 1:
1340 0 : if (!(len_utf8(z->p) >= 4)) return 0;
1341 0 : { int ret = slice_del(z);
1342 0 : if (ret < 0) return ret;
1343 : }
1344 0 : break;
1345 0 : case 2:
1346 0 : if (!(len_utf8(z->p) >= 5)) return 0;
1347 0 : { int ret = slice_del(z);
1348 0 : if (ret < 0) return ret;
1349 : }
1350 0 : break;
1351 0 : case 3:
1352 0 : if (!(len_utf8(z->p) > 5)) return 0;
1353 0 : { int ret = slice_del(z);
1354 0 : if (ret < 0) return ret;
1355 : }
1356 0 : break;
1357 0 : case 4:
1358 0 : if (!(len_utf8(z->p) >= 6)) return 0;
1359 0 : { int ret = slice_del(z);
1360 0 : if (ret < 0) return ret;
1361 : }
1362 0 : break;
1363 : }
1364 0 : return 1;
1365 : }
1366 :
1367 0 : static int r_Suffix_Verb_Step2b(struct SN_env * z) {
1368 0 : z->ket = z->c;
1369 0 : if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 133 && z->p[z->c - 1] != 167)) return 0;
1370 0 : if (!(find_among_b(z, a_19, 2))) return 0;
1371 0 : z->bra = z->c;
1372 0 : if (!(len_utf8(z->p) >= 5)) return 0;
1373 0 : { int ret = slice_del(z);
1374 0 : if (ret < 0) return ret;
1375 : }
1376 0 : return 1;
1377 : }
1378 :
1379 0 : static int r_Suffix_Verb_Step2c(struct SN_env * z) {
1380 : int among_var;
1381 0 : z->ket = z->c;
1382 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] != 136) return 0;
1383 0 : among_var = find_among_b(z, a_20, 2);
1384 0 : if (!(among_var)) return 0;
1385 0 : z->bra = z->c;
1386 0 : switch (among_var) {
1387 0 : case 1:
1388 0 : if (!(len_utf8(z->p) >= 4)) return 0;
1389 0 : { int ret = slice_del(z);
1390 0 : if (ret < 0) return ret;
1391 : }
1392 0 : break;
1393 0 : case 2:
1394 0 : if (!(len_utf8(z->p) >= 6)) return 0;
1395 0 : { int ret = slice_del(z);
1396 0 : if (ret < 0) return ret;
1397 : }
1398 0 : break;
1399 : }
1400 0 : return 1;
1401 : }
1402 :
1403 0 : static int r_Suffix_All_alef_maqsura(struct SN_env * z) {
1404 0 : z->ket = z->c;
1405 0 : if (z->c - 1 <= z->lb || z->p[z->c - 1] != 137) return 0;
1406 0 : if (!(find_among_b(z, a_21, 1))) return 0;
1407 0 : z->bra = z->c;
1408 0 : { int ret = slice_from_s(z, 2, s_66);
1409 0 : if (ret < 0) return ret;
1410 : }
1411 0 : return 1;
1412 : }
1413 :
1414 0 : extern int arabic_UTF_8_stem(struct SN_env * z) {
1415 0 : z->I[2] = 1;
1416 0 : z->I[1] = 1;
1417 0 : z->I[0] = 0;
1418 0 : { int c1 = z->c;
1419 0 : { int ret = r_Checks1(z);
1420 0 : if (ret < 0) return ret;
1421 : }
1422 0 : z->c = c1;
1423 : }
1424 :
1425 0 : { int ret = r_Normalize_pre(z);
1426 0 : if (ret < 0) return ret;
1427 : }
1428 0 : z->lb = z->c; z->c = z->l;
1429 :
1430 0 : { int m2 = z->l - z->c; (void)m2;
1431 0 : { int m3 = z->l - z->c; (void)m3;
1432 0 : if (!(z->I[1])) goto lab2;
1433 0 : { int m4 = z->l - z->c; (void)m4;
1434 0 : { int i = 1;
1435 0 : while(1) {
1436 0 : int m5 = z->l - z->c; (void)m5;
1437 0 : { int ret = r_Suffix_Verb_Step1(z);
1438 0 : if (ret == 0) goto lab5;
1439 0 : if (ret < 0) return ret;
1440 : }
1441 0 : i--;
1442 0 : continue;
1443 0 : lab5:
1444 0 : z->c = z->l - m5;
1445 0 : break;
1446 : }
1447 0 : if (i > 0) goto lab4;
1448 : }
1449 0 : { int m6 = z->l - z->c; (void)m6;
1450 0 : { int ret = r_Suffix_Verb_Step2a(z);
1451 0 : if (ret == 0) goto lab7;
1452 0 : if (ret < 0) return ret;
1453 : }
1454 0 : goto lab6;
1455 0 : lab7:
1456 0 : z->c = z->l - m6;
1457 0 : { int ret = r_Suffix_Verb_Step2c(z);
1458 0 : if (ret == 0) goto lab8;
1459 0 : if (ret < 0) return ret;
1460 : }
1461 0 : goto lab6;
1462 0 : lab8:
1463 0 : z->c = z->l - m6;
1464 0 : { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
1465 0 : if (ret < 0) goto lab4;
1466 0 : z->c = ret;
1467 : }
1468 : }
1469 0 : lab6:
1470 0 : goto lab3;
1471 0 : lab4:
1472 0 : z->c = z->l - m4;
1473 0 : { int ret = r_Suffix_Verb_Step2b(z);
1474 0 : if (ret == 0) goto lab9;
1475 0 : if (ret < 0) return ret;
1476 : }
1477 0 : goto lab3;
1478 0 : lab9:
1479 0 : z->c = z->l - m4;
1480 0 : { int ret = r_Suffix_Verb_Step2a(z);
1481 0 : if (ret == 0) goto lab2;
1482 0 : if (ret < 0) return ret;
1483 : }
1484 : }
1485 0 : lab3:
1486 0 : goto lab1;
1487 0 : lab2:
1488 0 : z->c = z->l - m3;
1489 0 : if (!(z->I[2])) goto lab10;
1490 0 : { int m7 = z->l - z->c; (void)m7;
1491 0 : { int m8 = z->l - z->c; (void)m8;
1492 0 : { int ret = r_Suffix_Noun_Step2c2(z);
1493 0 : if (ret == 0) goto lab13;
1494 0 : if (ret < 0) return ret;
1495 : }
1496 0 : goto lab12;
1497 0 : lab13:
1498 0 : z->c = z->l - m8;
1499 :
1500 0 : if (!(z->I[0])) goto lab15;
1501 0 : goto lab14;
1502 0 : lab15:
1503 0 : { int ret = r_Suffix_Noun_Step1a(z);
1504 0 : if (ret == 0) goto lab14;
1505 0 : if (ret < 0) return ret;
1506 : }
1507 0 : { int m9 = z->l - z->c; (void)m9;
1508 0 : { int ret = r_Suffix_Noun_Step2a(z);
1509 0 : if (ret == 0) goto lab17;
1510 0 : if (ret < 0) return ret;
1511 : }
1512 0 : goto lab16;
1513 0 : lab17:
1514 0 : z->c = z->l - m9;
1515 0 : { int ret = r_Suffix_Noun_Step2b(z);
1516 0 : if (ret == 0) goto lab18;
1517 0 : if (ret < 0) return ret;
1518 : }
1519 0 : goto lab16;
1520 0 : lab18:
1521 0 : z->c = z->l - m9;
1522 0 : { int ret = r_Suffix_Noun_Step2c1(z);
1523 0 : if (ret == 0) goto lab19;
1524 0 : if (ret < 0) return ret;
1525 : }
1526 0 : goto lab16;
1527 0 : lab19:
1528 0 : z->c = z->l - m9;
1529 0 : { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
1530 0 : if (ret < 0) goto lab14;
1531 0 : z->c = ret;
1532 : }
1533 : }
1534 0 : lab16:
1535 0 : goto lab12;
1536 0 : lab14:
1537 0 : z->c = z->l - m8;
1538 0 : { int ret = r_Suffix_Noun_Step1b(z);
1539 0 : if (ret == 0) goto lab20;
1540 0 : if (ret < 0) return ret;
1541 : }
1542 0 : { int m10 = z->l - z->c; (void)m10;
1543 0 : { int ret = r_Suffix_Noun_Step2a(z);
1544 0 : if (ret == 0) goto lab22;
1545 0 : if (ret < 0) return ret;
1546 : }
1547 0 : goto lab21;
1548 0 : lab22:
1549 0 : z->c = z->l - m10;
1550 0 : { int ret = r_Suffix_Noun_Step2b(z);
1551 0 : if (ret == 0) goto lab23;
1552 0 : if (ret < 0) return ret;
1553 : }
1554 0 : goto lab21;
1555 0 : lab23:
1556 0 : z->c = z->l - m10;
1557 0 : { int ret = r_Suffix_Noun_Step2c1(z);
1558 0 : if (ret == 0) goto lab20;
1559 0 : if (ret < 0) return ret;
1560 : }
1561 : }
1562 0 : lab21:
1563 0 : goto lab12;
1564 0 : lab20:
1565 0 : z->c = z->l - m8;
1566 :
1567 0 : if (!(z->I[0])) goto lab25;
1568 0 : goto lab24;
1569 0 : lab25:
1570 0 : { int ret = r_Suffix_Noun_Step2a(z);
1571 0 : if (ret == 0) goto lab24;
1572 0 : if (ret < 0) return ret;
1573 : }
1574 0 : goto lab12;
1575 0 : lab24:
1576 0 : z->c = z->l - m8;
1577 0 : { int ret = r_Suffix_Noun_Step2b(z);
1578 0 : if (ret == 0) { z->c = z->l - m7; goto lab11; }
1579 0 : if (ret < 0) return ret;
1580 : }
1581 : }
1582 0 : lab12:
1583 0 : lab11:
1584 : ;
1585 : }
1586 0 : { int ret = r_Suffix_Noun_Step3(z);
1587 0 : if (ret == 0) goto lab10;
1588 0 : if (ret < 0) return ret;
1589 : }
1590 0 : goto lab1;
1591 0 : lab10:
1592 0 : z->c = z->l - m3;
1593 0 : { int ret = r_Suffix_All_alef_maqsura(z);
1594 0 : if (ret == 0) goto lab0;
1595 0 : if (ret < 0) return ret;
1596 : }
1597 : }
1598 0 : lab1:
1599 0 : lab0:
1600 0 : z->c = z->l - m2;
1601 : }
1602 0 : z->c = z->lb;
1603 0 : { int c11 = z->c;
1604 0 : { int c12 = z->c;
1605 0 : { int ret = r_Prefix_Step1(z);
1606 0 : if (ret == 0) { z->c = c12; goto lab27; }
1607 0 : if (ret < 0) return ret;
1608 : }
1609 0 : lab27:
1610 : ;
1611 : }
1612 0 : { int c13 = z->c;
1613 0 : { int ret = r_Prefix_Step2(z);
1614 0 : if (ret == 0) { z->c = c13; goto lab28; }
1615 0 : if (ret < 0) return ret;
1616 : }
1617 0 : lab28:
1618 : ;
1619 : }
1620 0 : { int c14 = z->c;
1621 0 : { int ret = r_Prefix_Step3a_Noun(z);
1622 0 : if (ret == 0) goto lab30;
1623 0 : if (ret < 0) return ret;
1624 : }
1625 0 : goto lab29;
1626 0 : lab30:
1627 0 : z->c = c14;
1628 0 : if (!(z->I[2])) goto lab31;
1629 0 : { int ret = r_Prefix_Step3b_Noun(z);
1630 0 : if (ret == 0) goto lab31;
1631 0 : if (ret < 0) return ret;
1632 : }
1633 0 : goto lab29;
1634 0 : lab31:
1635 0 : z->c = c14;
1636 0 : if (!(z->I[1])) goto lab26;
1637 0 : { int c15 = z->c;
1638 0 : { int ret = r_Prefix_Step3_Verb(z);
1639 0 : if (ret == 0) { z->c = c15; goto lab32; }
1640 0 : if (ret < 0) return ret;
1641 : }
1642 0 : lab32:
1643 : ;
1644 : }
1645 0 : { int ret = r_Prefix_Step4_Verb(z);
1646 0 : if (ret == 0) goto lab26;
1647 0 : if (ret < 0) return ret;
1648 : }
1649 : }
1650 0 : lab29:
1651 0 : lab26:
1652 0 : z->c = c11;
1653 : }
1654 :
1655 0 : { int ret = r_Normalize_post(z);
1656 0 : if (ret < 0) return ret;
1657 : }
1658 0 : return 1;
1659 : }
1660 :
1661 0 : extern struct SN_env * arabic_UTF_8_create_env(void) { return SN_create_env(0, 3); }
1662 :
1663 0 : extern void arabic_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
1664 :
|