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