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