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