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