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