00001
00002
00003 #include <limits.h>
00004 #include "kraaij_pohlmann.h"
00005
00006 static const symbol s_0_0[3] = { 'n', 'd', 'e' };
00007 static const symbol s_0_1[2] = { 'e', 'n' };
00008 static const symbol s_0_2[1] = { 's' };
00009 static const symbol s_0_3[2] = { '\'', 's' };
00010 static const symbol s_0_4[2] = { 'e', 's' };
00011 static const symbol s_0_5[3] = { 'i', 'e', 's' };
00012 static const symbol s_0_6[3] = { 'a', 'u', 's' };
00013
00014 static const struct among a_0[7] =
00015 {
00016 { 3, s_0_0, -1, 7},
00017 { 2, s_0_1, -1, 6},
00018 { 1, s_0_2, -1, 2},
00019 { 2, s_0_3, 2, 1},
00020 { 2, s_0_4, 2, 4},
00021 { 3, s_0_5, 4, 3},
00022 { 3, s_0_6, 2, 5}
00023 };
00024
00025 static const symbol s_1_0[2] = { 'd', 'e' };
00026 static const symbol s_1_1[2] = { 'g', 'e' };
00027 static const symbol s_1_2[5] = { 'i', 's', 'c', 'h', 'e' };
00028 static const symbol s_1_3[2] = { 'j', 'e' };
00029 static const symbol s_1_4[5] = { 'l', 'i', 'j', 'k', 'e' };
00030 static const symbol s_1_5[2] = { 'l', 'e' };
00031 static const symbol s_1_6[3] = { 'e', 'n', 'e' };
00032 static const symbol s_1_7[2] = { 'r', 'e' };
00033 static const symbol s_1_8[2] = { 's', 'e' };
00034 static const symbol s_1_9[2] = { 't', 'e' };
00035 static const symbol s_1_10[4] = { 'i', 'e', 'v', 'e' };
00036
00037 static const struct among a_1[11] =
00038 {
00039 { 2, s_1_0, -1, 5},
00040 { 2, s_1_1, -1, 2},
00041 { 5, s_1_2, -1, 4},
00042 { 2, s_1_3, -1, 1},
00043 { 5, s_1_4, -1, 3},
00044 { 2, s_1_5, -1, 9},
00045 { 3, s_1_6, -1, 10},
00046 { 2, s_1_7, -1, 8},
00047 { 2, s_1_8, -1, 7},
00048 { 2, s_1_9, -1, 6},
00049 { 4, s_1_10, -1, 11}
00050 };
00051
00052 static const symbol s_2_0[4] = { 'h', 'e', 'i', 'd' };
00053 static const symbol s_2_1[3] = { 'f', 'i', 'e' };
00054 static const symbol s_2_2[3] = { 'g', 'i', 'e' };
00055 static const symbol s_2_3[4] = { 'a', 't', 'i', 'e' };
00056 static const symbol s_2_4[4] = { 'i', 's', 'm', 'e' };
00057 static const symbol s_2_5[3] = { 'i', 'n', 'g' };
00058 static const symbol s_2_6[4] = { 'a', 'r', 'i', 'j' };
00059 static const symbol s_2_7[4] = { 'e', 'r', 'i', 'j' };
00060 static const symbol s_2_8[3] = { 's', 'e', 'l' };
00061 static const symbol s_2_9[4] = { 'r', 'd', 'e', 'r' };
00062 static const symbol s_2_10[4] = { 's', 't', 'e', 'r' };
00063 static const symbol s_2_11[5] = { 'i', 't', 'e', 'i', 't' };
00064 static const symbol s_2_12[3] = { 'd', 's', 't' };
00065 static const symbol s_2_13[3] = { 't', 's', 't' };
00066
00067 static const struct among a_2[14] =
00068 {
00069 { 4, s_2_0, -1, 3},
00070 { 3, s_2_1, -1, 7},
00071 { 3, s_2_2, -1, 8},
00072 { 4, s_2_3, -1, 1},
00073 { 4, s_2_4, -1, 5},
00074 { 3, s_2_5, -1, 5},
00075 { 4, s_2_6, -1, 6},
00076 { 4, s_2_7, -1, 5},
00077 { 3, s_2_8, -1, 3},
00078 { 4, s_2_9, -1, 4},
00079 { 4, s_2_10, -1, 3},
00080 { 5, s_2_11, -1, 2},
00081 { 3, s_2_12, -1, 10},
00082 { 3, s_2_13, -1, 9}
00083 };
00084
00085 static const symbol s_3_0[3] = { 'e', 'n', 'd' };
00086 static const symbol s_3_1[5] = { 'a', 't', 'i', 'e', 'f' };
00087 static const symbol s_3_2[4] = { 'e', 'r', 'i', 'g' };
00088 static const symbol s_3_3[6] = { 'a', 'c', 'h', 't', 'i', 'g' };
00089 static const symbol s_3_4[6] = { 'i', 'o', 'n', 'e', 'e', 'l' };
00090 static const symbol s_3_5[4] = { 'b', 'a', 'a', 'r' };
00091 static const symbol s_3_6[4] = { 'l', 'a', 'a', 'r' };
00092 static const symbol s_3_7[4] = { 'n', 'a', 'a', 'r' };
00093 static const symbol s_3_8[4] = { 'r', 'a', 'a', 'r' };
00094 static const symbol s_3_9[6] = { 'e', 'r', 'i', 'g', 'e', 'r' };
00095 static const symbol s_3_10[8] = { 'a', 'c', 'h', 't', 'i', 'g', 'e', 'r' };
00096 static const symbol s_3_11[6] = { 'l', 'i', 'j', 'k', 'e', 'r' };
00097 static const symbol s_3_12[4] = { 't', 'a', 'n', 't' };
00098 static const symbol s_3_13[6] = { 'e', 'r', 'i', 'g', 's', 't' };
00099 static const symbol s_3_14[8] = { 'a', 'c', 'h', 't', 'i', 'g', 's', 't' };
00100 static const symbol s_3_15[6] = { 'l', 'i', 'j', 'k', 's', 't' };
00101
00102 static const struct among a_3[16] =
00103 {
00104 { 3, s_3_0, -1, 10},
00105 { 5, s_3_1, -1, 2},
00106 { 4, s_3_2, -1, 10},
00107 { 6, s_3_3, -1, 9},
00108 { 6, s_3_4, -1, 1},
00109 { 4, s_3_5, -1, 3},
00110 { 4, s_3_6, -1, 5},
00111 { 4, s_3_7, -1, 4},
00112 { 4, s_3_8, -1, 6},
00113 { 6, s_3_9, -1, 10},
00114 { 8, s_3_10, -1, 9},
00115 { 6, s_3_11, -1, 8},
00116 { 4, s_3_12, -1, 7},
00117 { 6, s_3_13, -1, 10},
00118 { 8, s_3_14, -1, 9},
00119 { 6, s_3_15, -1, 8}
00120 };
00121
00122 static const symbol s_4_0[2] = { 'i', 'g' };
00123 static const symbol s_4_1[4] = { 'i', 'g', 'e', 'r' };
00124 static const symbol s_4_2[4] = { 'i', 'g', 's', 't' };
00125
00126 static const struct among a_4[3] =
00127 {
00128 { 2, s_4_0, -1, 1},
00129 { 4, s_4_1, -1, 1},
00130 { 4, s_4_2, -1, 1}
00131 };
00132
00133 static const symbol s_5_0[2] = { 'f', 't' };
00134 static const symbol s_5_1[2] = { 'k', 't' };
00135 static const symbol s_5_2[2] = { 'p', 't' };
00136
00137 static const struct among a_5[3] =
00138 {
00139 { 2, s_5_0, -1, 2},
00140 { 2, s_5_1, -1, 1},
00141 { 2, s_5_2, -1, 3}
00142 };
00143
00144 static const symbol s_6_0[2] = { 'b', 'b' };
00145 static const symbol s_6_1[2] = { 'c', 'c' };
00146 static const symbol s_6_2[2] = { 'd', 'd' };
00147 static const symbol s_6_3[2] = { 'f', 'f' };
00148 static const symbol s_6_4[2] = { 'g', 'g' };
00149 static const symbol s_6_5[2] = { 'h', 'h' };
00150 static const symbol s_6_6[2] = { 'j', 'j' };
00151 static const symbol s_6_7[2] = { 'k', 'k' };
00152 static const symbol s_6_8[2] = { 'l', 'l' };
00153 static const symbol s_6_9[2] = { 'm', 'm' };
00154 static const symbol s_6_10[2] = { 'n', 'n' };
00155 static const symbol s_6_11[2] = { 'p', 'p' };
00156 static const symbol s_6_12[2] = { 'q', 'q' };
00157 static const symbol s_6_13[2] = { 'r', 'r' };
00158 static const symbol s_6_14[2] = { 's', 's' };
00159 static const symbol s_6_15[2] = { 't', 't' };
00160 static const symbol s_6_16[1] = { 'v' };
00161 static const symbol s_6_17[2] = { 'v', 'v' };
00162 static const symbol s_6_18[2] = { 'w', 'w' };
00163 static const symbol s_6_19[2] = { 'x', 'x' };
00164 static const symbol s_6_20[1] = { 'z' };
00165 static const symbol s_6_21[2] = { 'z', 'z' };
00166
00167 static const struct among a_6[22] =
00168 {
00169 { 2, s_6_0, -1, 1},
00170 { 2, s_6_1, -1, 2},
00171 { 2, s_6_2, -1, 3},
00172 { 2, s_6_3, -1, 4},
00173 { 2, s_6_4, -1, 5},
00174 { 2, s_6_5, -1, 6},
00175 { 2, s_6_6, -1, 7},
00176 { 2, s_6_7, -1, 8},
00177 { 2, s_6_8, -1, 9},
00178 { 2, s_6_9, -1, 10},
00179 { 2, s_6_10, -1, 11},
00180 { 2, s_6_11, -1, 12},
00181 { 2, s_6_12, -1, 13},
00182 { 2, s_6_13, -1, 14},
00183 { 2, s_6_14, -1, 15},
00184 { 2, s_6_15, -1, 16},
00185 { 1, s_6_16, -1, 21},
00186 { 2, s_6_17, 16, 17},
00187 { 2, s_6_18, -1, 18},
00188 { 2, s_6_19, -1, 19},
00189 { 1, s_6_20, -1, 22},
00190 { 2, s_6_21, 20, 20}
00191 };
00192
00193 static const symbol s_7_0[1] = { 'd' };
00194 static const symbol s_7_1[1] = { 't' };
00195
00196 static const struct among a_7[2] =
00197 {
00198 { 1, s_7_0, -1, 1},
00199 { 1, s_7_1, -1, 2}
00200 };
00201
00202 static const unsigned char g_v[] = { 17, 65, 16, 1 };
00203
00204 static const unsigned char g_v_WX[] = { 17, 65, 208, 1 };
00205
00206 static const unsigned char g_AOU[] = { 1, 64, 16 };
00207
00208 static const unsigned char g_AIOU[] = { 1, 65, 16 };
00209
00210 static const symbol s_0[] = { 'i', 'j' };
00211 static const symbol s_1[] = { 'i', 'j' };
00212 static const symbol s_2[] = { 'i', 'j' };
00213 static const symbol s_3[] = { 'i', 'e' };
00214 static const symbol s_4[] = { 'a', 'r' };
00215 static const symbol s_5[] = { 'e', 'r' };
00216 static const symbol s_6[] = { 'e' };
00217 static const symbol s_7[] = { 'a', 'u' };
00218 static const symbol s_8[] = { 'h', 'e', 'd' };
00219 static const symbol s_9[] = { 'h', 'e', 'i', 'd' };
00220 static const symbol s_10[] = { 'n', 'd' };
00221 static const symbol s_11[] = { 'n', 'd' };
00222 static const symbol s_12[] = { '\'', 't' };
00223 static const symbol s_13[] = { 'e', 't' };
00224 static const symbol s_14[] = { 'r', 'n', 't' };
00225 static const symbol s_15[] = { 'r', 'n' };
00226 static const symbol s_16[] = { 'i', 'n', 'k' };
00227 static const symbol s_17[] = { 'i', 'n', 'g' };
00228 static const symbol s_18[] = { 'm', 'p' };
00229 static const symbol s_19[] = { 'm' };
00230 static const symbol s_20[] = { 'g' };
00231 static const symbol s_21[] = { 'l', 'i', 'j', 'k' };
00232 static const symbol s_22[] = { 'i', 's', 'c', 'h' };
00233 static const symbol s_23[] = { 't' };
00234 static const symbol s_24[] = { 's' };
00235 static const symbol s_25[] = { 'r' };
00236 static const symbol s_26[] = { 'l' };
00237 static const symbol s_27[] = { 'e', 'n' };
00238 static const symbol s_28[] = { 'i', 'e', 'f' };
00239 static const symbol s_29[] = { 'e', 'e', 'r' };
00240 static const symbol s_30[] = { 'r' };
00241 static const symbol s_31[] = { 'a', 'a', 'r' };
00242 static const symbol s_32[] = { 'f' };
00243 static const symbol s_33[] = { 'g' };
00244 static const symbol s_34[] = { 't' };
00245 static const symbol s_35[] = { 'd' };
00246 static const symbol s_36[] = { 'i', 'e' };
00247 static const symbol s_37[] = { 'e', 'e', 'r' };
00248 static const symbol s_38[] = { 'n' };
00249 static const symbol s_39[] = { 'l' };
00250 static const symbol s_40[] = { 'r' };
00251 static const symbol s_41[] = { 't', 'e', 'e', 'r' };
00252 static const symbol s_42[] = { 'l', 'i', 'j', 'k' };
00253 static const symbol s_43[] = { 'k' };
00254 static const symbol s_44[] = { 'f' };
00255 static const symbol s_45[] = { 'p' };
00256 static const symbol s_46[] = { 'b' };
00257 static const symbol s_47[] = { 'c' };
00258 static const symbol s_48[] = { 'd' };
00259 static const symbol s_49[] = { 'f' };
00260 static const symbol s_50[] = { 'g' };
00261 static const symbol s_51[] = { 'h' };
00262 static const symbol s_52[] = { 'j' };
00263 static const symbol s_53[] = { 'k' };
00264 static const symbol s_54[] = { 'l' };
00265 static const symbol s_55[] = { 'm' };
00266 static const symbol s_56[] = { 'n' };
00267 static const symbol s_57[] = { 'p' };
00268 static const symbol s_58[] = { 'q' };
00269 static const symbol s_59[] = { 'r' };
00270 static const symbol s_60[] = { 's' };
00271 static const symbol s_61[] = { 't' };
00272 static const symbol s_62[] = { 'v' };
00273 static const symbol s_63[] = { 'w' };
00274 static const symbol s_64[] = { 'x' };
00275 static const symbol s_65[] = { 'z' };
00276 static const symbol s_66[] = { 'f' };
00277 static const symbol s_67[] = { 's' };
00278 static const symbol s_68[] = { 'g', 'e' };
00279 static const symbol s_69[] = { 'g', 'e' };
00280 static const symbol s_70[] = { 'i', 'j' };
00281 static const symbol s_71[] = { 'i', 'j' };
00282 static const symbol s_72[] = { 'Y' };
00283 static const symbol s_73[] = { 'Y' };
00284 static const symbol s_74[] = { 'y' };
00285
00286 int Xapian::InternalStemKraaij_pohlmann::r_R1() {
00287 I_x = c;
00288 if (!(I_x >= I_p1)) return 0;
00289 return 1;
00290 }
00291
00292 int Xapian::InternalStemKraaij_pohlmann::r_R2() {
00293 I_x = c;
00294 if (!(I_x >= I_p2)) return 0;
00295 return 1;
00296 }
00297
00298 int Xapian::InternalStemKraaij_pohlmann::r_V() {
00299 { int m_test1 = l - c;
00300 { int m2 = l - c; (void)m2;
00301 if (in_grouping_b_U(g_v, 97, 121, 0)) goto lab1;
00302 goto lab0;
00303 lab1:
00304 c = l - m2;
00305 if (!(eq_s_b(2, s_0))) return 0;
00306 }
00307 lab0:
00308 c = l - m_test1;
00309 }
00310 return 1;
00311 }
00312
00313 int Xapian::InternalStemKraaij_pohlmann::r_VX() {
00314 { int m_test1 = l - c;
00315 { int ret = skip_utf8(p, c, lb, 0, -1);
00316 if (ret < 0) return 0;
00317 c = ret;
00318 }
00319 { int m2 = l - c; (void)m2;
00320 if (in_grouping_b_U(g_v, 97, 121, 0)) goto lab1;
00321 goto lab0;
00322 lab1:
00323 c = l - m2;
00324 if (!(eq_s_b(2, s_1))) return 0;
00325 }
00326 lab0:
00327 c = l - m_test1;
00328 }
00329 return 1;
00330 }
00331
00332 int Xapian::InternalStemKraaij_pohlmann::r_C() {
00333 { int m_test1 = l - c;
00334 { int m2 = l - c; (void)m2;
00335 if (!(eq_s_b(2, s_2))) goto lab0;
00336 return 0;
00337 lab0:
00338 c = l - m2;
00339 }
00340 if (out_grouping_b_U(g_v, 97, 121, 0)) return 0;
00341 c = l - m_test1;
00342 }
00343 return 1;
00344 }
00345
00346 int Xapian::InternalStemKraaij_pohlmann::r_lengthen_V() {
00347 { int m1 = l - c; (void)m1;
00348 if (out_grouping_b_U(g_v_WX, 97, 121, 0)) goto lab0;
00349 ket = c;
00350 { int m2 = l - c; (void)m2;
00351 if (in_grouping_b_U(g_AOU, 97, 117, 0)) goto lab2;
00352 bra = c;
00353 { int m_test3 = l - c;
00354 { int m4 = l - c; (void)m4;
00355 if (out_grouping_b_U(g_v, 97, 121, 0)) goto lab4;
00356 goto lab3;
00357 lab4:
00358 c = l - m4;
00359 if (c > lb) goto lab2;
00360 }
00361 lab3:
00362 c = l - m_test3;
00363 }
00364 goto lab1;
00365 lab2:
00366 c = l - m2;
00367 if (c <= lb || p[c - 1] != 'e') goto lab0;
00368 c--;
00369 bra = c;
00370 { int m_test5 = l - c;
00371 { int m6 = l - c; (void)m6;
00372 if (out_grouping_b_U(g_v, 97, 121, 0)) goto lab6;
00373 goto lab5;
00374 lab6:
00375 c = l - m6;
00376 if (c > lb) goto lab0;
00377 }
00378 lab5:
00379 { int m7 = l - c; (void)m7;
00380 if (in_grouping_b_U(g_AIOU, 97, 117, 0)) goto lab7;
00381 goto lab0;
00382 lab7:
00383 c = l - m7;
00384 }
00385 { int m8 = l - c; (void)m8;
00386 { int ret = skip_utf8(p, c, lb, 0, -1);
00387 if (ret < 0) goto lab8;
00388 c = ret;
00389 }
00390 if (in_grouping_b_U(g_AIOU, 97, 117, 0)) goto lab8;
00391 if (out_grouping_b_U(g_v, 97, 121, 0)) goto lab8;
00392 goto lab0;
00393 lab8:
00394 c = l - m8;
00395 }
00396 c = l - m_test5;
00397 }
00398 }
00399 lab1:
00400 { symbol * ret = slice_to(S_ch);
00401 if (ret == 0) return -1;
00402 S_ch = ret;
00403 }
00404 { int saved_c = c;
00405 insert_v(c, c, S_ch);
00406 c = saved_c;
00407 }
00408 lab0:
00409 c = l - m1;
00410 }
00411 return 1;
00412 }
00413
00414 int Xapian::InternalStemKraaij_pohlmann::r_Step_1() {
00415 int among_var;
00416 ket = c;
00417 if (c <= lb || p[c - 1] >> 5 != 3 || !((540704 >> (p[c - 1] & 0x1f)) & 1)) return 0;
00418 among_var = find_among_b(a_0, 7, 0, 0);
00419 if (!(among_var)) return 0;
00420 bra = c;
00421 switch(among_var) {
00422 case 0: return 0;
00423 case 1:
00424 if (slice_del() == -1) return -1;
00425 break;
00426 case 2:
00427 { int ret = r_R1();
00428 if (ret <= 0) return ret;
00429 }
00430 { int m1 = l - c; (void)m1;
00431 if (c <= lb || p[c - 1] != 't') goto lab0;
00432 c--;
00433 { int ret = r_R1();
00434 if (ret == 0) goto lab0;
00435 if (ret < 0) return ret;
00436 }
00437 return 0;
00438 lab0:
00439 c = l - m1;
00440 }
00441 { int ret = r_C();
00442 if (ret <= 0) return ret;
00443 }
00444 if (slice_del() == -1) return -1;
00445 break;
00446 case 3:
00447 { int ret = r_R1();
00448 if (ret <= 0) return ret;
00449 }
00450 { int ret = slice_from_s(2, s_3);
00451 if (ret < 0) return ret;
00452 }
00453 break;
00454 case 4:
00455 { int m2 = l - c; (void)m2;
00456 if (!(eq_s_b(2, s_4))) goto lab2;
00457 { int ret = r_R1();
00458 if (ret == 0) goto lab2;
00459 if (ret < 0) return ret;
00460 }
00461 { int ret = r_C();
00462 if (ret == 0) goto lab2;
00463 if (ret < 0) return ret;
00464 }
00465 bra = c;
00466 if (slice_del() == -1) return -1;
00467 { int ret = r_lengthen_V();
00468 if (ret == 0) goto lab2;
00469 if (ret < 0) return ret;
00470 }
00471 goto lab1;
00472 lab2:
00473 c = l - m2;
00474 if (!(eq_s_b(2, s_5))) goto lab3;
00475 { int ret = r_R1();
00476 if (ret == 0) goto lab3;
00477 if (ret < 0) return ret;
00478 }
00479 { int ret = r_C();
00480 if (ret == 0) goto lab3;
00481 if (ret < 0) return ret;
00482 }
00483 bra = c;
00484 if (slice_del() == -1) return -1;
00485 goto lab1;
00486 lab3:
00487 c = l - m2;
00488 { int ret = r_R1();
00489 if (ret <= 0) return ret;
00490 }
00491 { int ret = r_C();
00492 if (ret <= 0) return ret;
00493 }
00494 { int ret = slice_from_s(1, s_6);
00495 if (ret < 0) return ret;
00496 }
00497 }
00498 lab1:
00499 break;
00500 case 5:
00501 { int ret = r_R1();
00502 if (ret <= 0) return ret;
00503 }
00504 { int ret = r_V();
00505 if (ret <= 0) return ret;
00506 }
00507 { int ret = slice_from_s(2, s_7);
00508 if (ret < 0) return ret;
00509 }
00510 break;
00511 case 6:
00512 { int m3 = l - c; (void)m3;
00513 if (!(eq_s_b(3, s_8))) goto lab5;
00514 { int ret = r_R1();
00515 if (ret == 0) goto lab5;
00516 if (ret < 0) return ret;
00517 }
00518 bra = c;
00519 { int ret = slice_from_s(4, s_9);
00520 if (ret < 0) return ret;
00521 }
00522 goto lab4;
00523 lab5:
00524 c = l - m3;
00525 if (!(eq_s_b(2, s_10))) goto lab6;
00526 if (slice_del() == -1) return -1;
00527 goto lab4;
00528 lab6:
00529 c = l - m3;
00530 if (c <= lb || p[c - 1] != 'd') goto lab7;
00531 c--;
00532 { int ret = r_R1();
00533 if (ret == 0) goto lab7;
00534 if (ret < 0) return ret;
00535 }
00536 { int ret = r_C();
00537 if (ret == 0) goto lab7;
00538 if (ret < 0) return ret;
00539 }
00540 bra = c;
00541 if (slice_del() == -1) return -1;
00542 goto lab4;
00543 lab7:
00544 c = l - m3;
00545 { int m4 = l - c; (void)m4;
00546 if (c <= lb || p[c - 1] != 'i') goto lab10;
00547 c--;
00548 goto lab9;
00549 lab10:
00550 c = l - m4;
00551 if (c <= lb || p[c - 1] != 'j') goto lab8;
00552 c--;
00553 }
00554 lab9:
00555 { int ret = r_V();
00556 if (ret == 0) goto lab8;
00557 if (ret < 0) return ret;
00558 }
00559 if (slice_del() == -1) return -1;
00560 goto lab4;
00561 lab8:
00562 c = l - m3;
00563 { int ret = r_R1();
00564 if (ret <= 0) return ret;
00565 }
00566 { int ret = r_C();
00567 if (ret <= 0) return ret;
00568 }
00569 if (slice_del() == -1) return -1;
00570 { int ret = r_lengthen_V();
00571 if (ret <= 0) return ret;
00572 }
00573 }
00574 lab4:
00575 break;
00576 case 7:
00577 { int ret = slice_from_s(2, s_11);
00578 if (ret < 0) return ret;
00579 }
00580 break;
00581 }
00582 return 1;
00583 }
00584
00585 int Xapian::InternalStemKraaij_pohlmann::r_Step_2() {
00586 int among_var;
00587 ket = c;
00588 if (c - 1 <= lb || p[c - 1] != 101) return 0;
00589 among_var = find_among_b(a_1, 11, 0, 0);
00590 if (!(among_var)) return 0;
00591 bra = c;
00592 switch(among_var) {
00593 case 0: return 0;
00594 case 1:
00595 { int m1 = l - c; (void)m1;
00596 if (!(eq_s_b(2, s_12))) goto lab1;
00597 bra = c;
00598 if (slice_del() == -1) return -1;
00599 goto lab0;
00600 lab1:
00601 c = l - m1;
00602 if (!(eq_s_b(2, s_13))) goto lab2;
00603 bra = c;
00604 { int ret = r_R1();
00605 if (ret == 0) goto lab2;
00606 if (ret < 0) return ret;
00607 }
00608 { int ret = r_C();
00609 if (ret == 0) goto lab2;
00610 if (ret < 0) return ret;
00611 }
00612 if (slice_del() == -1) return -1;
00613 goto lab0;
00614 lab2:
00615 c = l - m1;
00616 if (!(eq_s_b(3, s_14))) goto lab3;
00617 bra = c;
00618 { int ret = slice_from_s(2, s_15);
00619 if (ret < 0) return ret;
00620 }
00621 goto lab0;
00622 lab3:
00623 c = l - m1;
00624 if (c <= lb || p[c - 1] != 't') goto lab4;
00625 c--;
00626 bra = c;
00627 { int ret = r_R1();
00628 if (ret == 0) goto lab4;
00629 if (ret < 0) return ret;
00630 }
00631 { int ret = r_VX();
00632 if (ret == 0) goto lab4;
00633 if (ret < 0) return ret;
00634 }
00635 if (slice_del() == -1) return -1;
00636 goto lab0;
00637 lab4:
00638 c = l - m1;
00639 if (!(eq_s_b(3, s_16))) goto lab5;
00640 bra = c;
00641 { int ret = slice_from_s(3, s_17);
00642 if (ret < 0) return ret;
00643 }
00644 goto lab0;
00645 lab5:
00646 c = l - m1;
00647 if (!(eq_s_b(2, s_18))) goto lab6;
00648 bra = c;
00649 { int ret = slice_from_s(1, s_19);
00650 if (ret < 0) return ret;
00651 }
00652 goto lab0;
00653 lab6:
00654 c = l - m1;
00655 if (c <= lb || p[c - 1] != 39) goto lab7;
00656 c--;
00657 bra = c;
00658 { int ret = r_R1();
00659 if (ret == 0) goto lab7;
00660 if (ret < 0) return ret;
00661 }
00662 if (slice_del() == -1) return -1;
00663 goto lab0;
00664 lab7:
00665 c = l - m1;
00666 bra = c;
00667 { int ret = r_R1();
00668 if (ret <= 0) return ret;
00669 }
00670 { int ret = r_C();
00671 if (ret <= 0) return ret;
00672 }
00673 if (slice_del() == -1) return -1;
00674 }
00675 lab0:
00676 break;
00677 case 2:
00678 { int ret = r_R1();
00679 if (ret <= 0) return ret;
00680 }
00681 { int ret = slice_from_s(1, s_20);
00682 if (ret < 0) return ret;
00683 }
00684 break;
00685 case 3:
00686 { int ret = r_R1();
00687 if (ret <= 0) return ret;
00688 }
00689 { int ret = slice_from_s(4, s_21);
00690 if (ret < 0) return ret;
00691 }
00692 break;
00693 case 4:
00694 { int ret = r_R1();
00695 if (ret <= 0) return ret;
00696 }
00697 { int ret = slice_from_s(4, s_22);
00698 if (ret < 0) return ret;
00699 }
00700 break;
00701 case 5:
00702 { int ret = r_R1();
00703 if (ret <= 0) return ret;
00704 }
00705 { int ret = r_C();
00706 if (ret <= 0) return ret;
00707 }
00708 if (slice_del() == -1) return -1;
00709 break;
00710 case 6:
00711 { int ret = r_R1();
00712 if (ret <= 0) return ret;
00713 }
00714 { int ret = slice_from_s(1, s_23);
00715 if (ret < 0) return ret;
00716 }
00717 break;
00718 case 7:
00719 { int ret = r_R1();
00720 if (ret <= 0) return ret;
00721 }
00722 { int ret = slice_from_s(1, s_24);
00723 if (ret < 0) return ret;
00724 }
00725 break;
00726 case 8:
00727 { int ret = r_R1();
00728 if (ret <= 0) return ret;
00729 }
00730 { int ret = slice_from_s(1, s_25);
00731 if (ret < 0) return ret;
00732 }
00733 break;
00734 case 9:
00735 { int ret = r_R1();
00736 if (ret <= 0) return ret;
00737 }
00738 if (slice_del() == -1) return -1;
00739 insert_s(c, c, 1, s_26);
00740 { int ret = r_lengthen_V();
00741 if (ret <= 0) return ret;
00742 }
00743 break;
00744 case 10:
00745 { int ret = r_R1();
00746 if (ret <= 0) return ret;
00747 }
00748 { int ret = r_C();
00749 if (ret <= 0) return ret;
00750 }
00751 if (slice_del() == -1) return -1;
00752 insert_s(c, c, 2, s_27);
00753 { int ret = r_lengthen_V();
00754 if (ret <= 0) return ret;
00755 }
00756 break;
00757 case 11:
00758 { int ret = r_R1();
00759 if (ret <= 0) return ret;
00760 }
00761 { int ret = r_C();
00762 if (ret <= 0) return ret;
00763 }
00764 { int ret = slice_from_s(3, s_28);
00765 if (ret < 0) return ret;
00766 }
00767 break;
00768 }
00769 return 1;
00770 }
00771
00772 int Xapian::InternalStemKraaij_pohlmann::r_Step_3() {
00773 int among_var;
00774 ket = c;
00775 if (c - 2 <= lb || p[c - 1] >> 5 != 3 || !((1316016 >> (p[c - 1] & 0x1f)) & 1)) return 0;
00776 among_var = find_among_b(a_2, 14, 0, 0);
00777 if (!(among_var)) return 0;
00778 bra = c;
00779 switch(among_var) {
00780 case 0: return 0;
00781 case 1:
00782 { int ret = r_R1();
00783 if (ret <= 0) return ret;
00784 }
00785 { int ret = slice_from_s(3, s_29);
00786 if (ret < 0) return ret;
00787 }
00788 break;
00789 case 2:
00790 { int ret = r_R1();
00791 if (ret <= 0) return ret;
00792 }
00793 if (slice_del() == -1) return -1;
00794 { int ret = r_lengthen_V();
00795 if (ret <= 0) return ret;
00796 }
00797 break;
00798 case 3:
00799 { int ret = r_R1();
00800 if (ret <= 0) return ret;
00801 }
00802 if (slice_del() == -1) return -1;
00803 break;
00804 case 4:
00805 { int ret = slice_from_s(1, s_30);
00806 if (ret < 0) return ret;
00807 }
00808 break;
00809 case 5:
00810 { int ret = r_R1();
00811 if (ret <= 0) return ret;
00812 }
00813 if (slice_del() == -1) return -1;
00814 { int ret = r_lengthen_V();
00815 if (ret <= 0) return ret;
00816 }
00817 break;
00818 case 6:
00819 { int ret = r_R1();
00820 if (ret <= 0) return ret;
00821 }
00822 { int ret = r_C();
00823 if (ret <= 0) return ret;
00824 }
00825 { int ret = slice_from_s(3, s_31);
00826 if (ret < 0) return ret;
00827 }
00828 break;
00829 case 7:
00830 { int ret = r_R2();
00831 if (ret <= 0) return ret;
00832 }
00833 if (slice_del() == -1) return -1;
00834 insert_s(c, c, 1, s_32);
00835 { int ret = r_lengthen_V();
00836 if (ret <= 0) return ret;
00837 }
00838 break;
00839 case 8:
00840 { int ret = r_R2();
00841 if (ret <= 0) return ret;
00842 }
00843 if (slice_del() == -1) return -1;
00844 insert_s(c, c, 1, s_33);
00845 { int ret = r_lengthen_V();
00846 if (ret <= 0) return ret;
00847 }
00848 break;
00849 case 9:
00850 { int ret = r_R1();
00851 if (ret <= 0) return ret;
00852 }
00853 { int ret = r_C();
00854 if (ret <= 0) return ret;
00855 }
00856 { int ret = slice_from_s(1, s_34);
00857 if (ret < 0) return ret;
00858 }
00859 break;
00860 case 10:
00861 { int ret = r_R1();
00862 if (ret <= 0) return ret;
00863 }
00864 { int ret = r_C();
00865 if (ret <= 0) return ret;
00866 }
00867 { int ret = slice_from_s(1, s_35);
00868 if (ret < 0) return ret;
00869 }
00870 break;
00871 }
00872 return 1;
00873 }
00874
00875 int Xapian::InternalStemKraaij_pohlmann::r_Step_4() {
00876 int among_var;
00877 { int m1 = l - c; (void)m1;
00878 ket = c;
00879 if (c - 2 <= lb || p[c - 1] >> 5 != 3 || !((1315024 >> (p[c - 1] & 0x1f)) & 1)) goto lab1;
00880 among_var = find_among_b(a_3, 16, 0, 0);
00881 if (!(among_var)) goto lab1;
00882 bra = c;
00883 switch(among_var) {
00884 case 0: goto lab1;
00885 case 1:
00886 { int ret = r_R1();
00887 if (ret == 0) goto lab1;
00888 if (ret < 0) return ret;
00889 }
00890 { int ret = slice_from_s(2, s_36);
00891 if (ret < 0) return ret;
00892 }
00893 break;
00894 case 2:
00895 { int ret = r_R1();
00896 if (ret == 0) goto lab1;
00897 if (ret < 0) return ret;
00898 }
00899 { int ret = slice_from_s(3, s_37);
00900 if (ret < 0) return ret;
00901 }
00902 break;
00903 case 3:
00904 { int ret = r_R1();
00905 if (ret == 0) goto lab1;
00906 if (ret < 0) return ret;
00907 }
00908 if (slice_del() == -1) return -1;
00909 break;
00910 case 4:
00911 { int ret = r_R1();
00912 if (ret == 0) goto lab1;
00913 if (ret < 0) return ret;
00914 }
00915 { int ret = r_V();
00916 if (ret == 0) goto lab1;
00917 if (ret < 0) return ret;
00918 }
00919 { int ret = slice_from_s(1, s_38);
00920 if (ret < 0) return ret;
00921 }
00922 break;
00923 case 5:
00924 { int ret = r_R1();
00925 if (ret == 0) goto lab1;
00926 if (ret < 0) return ret;
00927 }
00928 { int ret = r_V();
00929 if (ret == 0) goto lab1;
00930 if (ret < 0) return ret;
00931 }
00932 { int ret = slice_from_s(1, s_39);
00933 if (ret < 0) return ret;
00934 }
00935 break;
00936 case 6:
00937 { int ret = r_R1();
00938 if (ret == 0) goto lab1;
00939 if (ret < 0) return ret;
00940 }
00941 { int ret = r_V();
00942 if (ret == 0) goto lab1;
00943 if (ret < 0) return ret;
00944 }
00945 { int ret = slice_from_s(1, s_40);
00946 if (ret < 0) return ret;
00947 }
00948 break;
00949 case 7:
00950 { int ret = r_R1();
00951 if (ret == 0) goto lab1;
00952 if (ret < 0) return ret;
00953 }
00954 { int ret = slice_from_s(4, s_41);
00955 if (ret < 0) return ret;
00956 }
00957 break;
00958 case 8:
00959 { int ret = r_R1();
00960 if (ret == 0) goto lab1;
00961 if (ret < 0) return ret;
00962 }
00963 { int ret = slice_from_s(4, s_42);
00964 if (ret < 0) return ret;
00965 }
00966 break;
00967 case 9:
00968 { int ret = r_R1();
00969 if (ret == 0) goto lab1;
00970 if (ret < 0) return ret;
00971 }
00972 if (slice_del() == -1) return -1;
00973 break;
00974 case 10:
00975 { int ret = r_R1();
00976 if (ret == 0) goto lab1;
00977 if (ret < 0) return ret;
00978 }
00979 { int ret = r_C();
00980 if (ret == 0) goto lab1;
00981 if (ret < 0) return ret;
00982 }
00983 if (slice_del() == -1) return -1;
00984 { int ret = r_lengthen_V();
00985 if (ret == 0) goto lab1;
00986 if (ret < 0) return ret;
00987 }
00988 break;
00989 }
00990 goto lab0;
00991 lab1:
00992 c = l - m1;
00993 ket = c;
00994 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((1310848 >> (p[c - 1] & 0x1f)) & 1)) return 0;
00995 among_var = find_among_b(a_4, 3, 0, 0);
00996 if (!(among_var)) return 0;
00997 bra = c;
00998 switch(among_var) {
00999 case 0: return 0;
01000 case 1:
01001 { int ret = r_R1();
01002 if (ret <= 0) return ret;
01003 }
01004 { int ret = r_C();
01005 if (ret <= 0) return ret;
01006 }
01007 if (slice_del() == -1) return -1;
01008 { int ret = r_lengthen_V();
01009 if (ret <= 0) return ret;
01010 }
01011 break;
01012 }
01013 }
01014 lab0:
01015 return 1;
01016 }
01017
01018 int Xapian::InternalStemKraaij_pohlmann::r_Step_7() {
01019 int among_var;
01020 ket = c;
01021 if (c - 1 <= lb || p[c - 1] != 116) return 0;
01022 among_var = find_among_b(a_5, 3, 0, 0);
01023 if (!(among_var)) return 0;
01024 bra = c;
01025 switch(among_var) {
01026 case 0: return 0;
01027 case 1:
01028 { int ret = slice_from_s(1, s_43);
01029 if (ret < 0) return ret;
01030 }
01031 break;
01032 case 2:
01033 { int ret = slice_from_s(1, s_44);
01034 if (ret < 0) return ret;
01035 }
01036 break;
01037 case 3:
01038 { int ret = slice_from_s(1, s_45);
01039 if (ret < 0) return ret;
01040 }
01041 break;
01042 }
01043 return 1;
01044 }
01045
01046 int Xapian::InternalStemKraaij_pohlmann::r_Step_6() {
01047 int among_var;
01048 ket = c;
01049 if (c <= lb || p[c - 1] >> 5 != 3 || !((98532828 >> (p[c - 1] & 0x1f)) & 1)) return 0;
01050 among_var = find_among_b(a_6, 22, 0, 0);
01051 if (!(among_var)) return 0;
01052 bra = c;
01053 switch(among_var) {
01054 case 0: return 0;
01055 case 1:
01056 { int ret = slice_from_s(1, s_46);
01057 if (ret < 0) return ret;
01058 }
01059 break;
01060 case 2:
01061 { int ret = slice_from_s(1, s_47);
01062 if (ret < 0) return ret;
01063 }
01064 break;
01065 case 3:
01066 { int ret = slice_from_s(1, s_48);
01067 if (ret < 0) return ret;
01068 }
01069 break;
01070 case 4:
01071 { int ret = slice_from_s(1, s_49);
01072 if (ret < 0) return ret;
01073 }
01074 break;
01075 case 5:
01076 { int ret = slice_from_s(1, s_50);
01077 if (ret < 0) return ret;
01078 }
01079 break;
01080 case 6:
01081 { int ret = slice_from_s(1, s_51);
01082 if (ret < 0) return ret;
01083 }
01084 break;
01085 case 7:
01086 { int ret = slice_from_s(1, s_52);
01087 if (ret < 0) return ret;
01088 }
01089 break;
01090 case 8:
01091 { int ret = slice_from_s(1, s_53);
01092 if (ret < 0) return ret;
01093 }
01094 break;
01095 case 9:
01096 { int ret = slice_from_s(1, s_54);
01097 if (ret < 0) return ret;
01098 }
01099 break;
01100 case 10:
01101 { int ret = slice_from_s(1, s_55);
01102 if (ret < 0) return ret;
01103 }
01104 break;
01105 case 11:
01106 { int ret = slice_from_s(1, s_56);
01107 if (ret < 0) return ret;
01108 }
01109 break;
01110 case 12:
01111 { int ret = slice_from_s(1, s_57);
01112 if (ret < 0) return ret;
01113 }
01114 break;
01115 case 13:
01116 { int ret = slice_from_s(1, s_58);
01117 if (ret < 0) return ret;
01118 }
01119 break;
01120 case 14:
01121 { int ret = slice_from_s(1, s_59);
01122 if (ret < 0) return ret;
01123 }
01124 break;
01125 case 15:
01126 { int ret = slice_from_s(1, s_60);
01127 if (ret < 0) return ret;
01128 }
01129 break;
01130 case 16:
01131 { int ret = slice_from_s(1, s_61);
01132 if (ret < 0) return ret;
01133 }
01134 break;
01135 case 17:
01136 { int ret = slice_from_s(1, s_62);
01137 if (ret < 0) return ret;
01138 }
01139 break;
01140 case 18:
01141 { int ret = slice_from_s(1, s_63);
01142 if (ret < 0) return ret;
01143 }
01144 break;
01145 case 19:
01146 { int ret = slice_from_s(1, s_64);
01147 if (ret < 0) return ret;
01148 }
01149 break;
01150 case 20:
01151 { int ret = slice_from_s(1, s_65);
01152 if (ret < 0) return ret;
01153 }
01154 break;
01155 case 21:
01156 { int ret = slice_from_s(1, s_66);
01157 if (ret < 0) return ret;
01158 }
01159 break;
01160 case 22:
01161 { int ret = slice_from_s(1, s_67);
01162 if (ret < 0) return ret;
01163 }
01164 break;
01165 }
01166 return 1;
01167 }
01168
01169 int Xapian::InternalStemKraaij_pohlmann::r_Step_1c() {
01170 int among_var;
01171 ket = c;
01172 if (c <= lb || (p[c - 1] != 100 && p[c - 1] != 116)) return 0;
01173 among_var = find_among_b(a_7, 2, 0, 0);
01174 if (!(among_var)) return 0;
01175 bra = c;
01176 { int ret = r_R1();
01177 if (ret <= 0) return ret;
01178 }
01179 { int ret = r_C();
01180 if (ret <= 0) return ret;
01181 }
01182 switch(among_var) {
01183 case 0: return 0;
01184 case 1:
01185 { int m1 = l - c; (void)m1;
01186 if (c <= lb || p[c - 1] != 'n') goto lab0;
01187 c--;
01188 { int ret = r_R1();
01189 if (ret == 0) goto lab0;
01190 if (ret < 0) return ret;
01191 }
01192 return 0;
01193 lab0:
01194 c = l - m1;
01195 }
01196 if (slice_del() == -1) return -1;
01197 break;
01198 case 2:
01199 { int m2 = l - c; (void)m2;
01200 if (c <= lb || p[c - 1] != 'h') goto lab1;
01201 c--;
01202 { int ret = r_R1();
01203 if (ret == 0) goto lab1;
01204 if (ret < 0) return ret;
01205 }
01206 return 0;
01207 lab1:
01208 c = l - m2;
01209 }
01210 if (slice_del() == -1) return -1;
01211 break;
01212 }
01213 return 1;
01214 }
01215
01216 int Xapian::InternalStemKraaij_pohlmann::r_Lose_prefix() {
01217 bra = c;
01218 if (!(eq_s(2, s_68))) return 0;
01219 ket = c;
01220 { int c_test1 = c;
01221 { int ret = skip_utf8(p, c, 0, l, + 3);
01222 if (ret < 0) return 0;
01223 c = ret;
01224 }
01225 c = c_test1;
01226 }
01227 if (out_grouping_U(g_v, 97, 121, 1) < 0) return 0;
01228 if (in_grouping_U(g_v, 97, 121, 1) < 0) return 0;
01229 B_GE_removed = 1;
01230 if (slice_del() == -1) return -1;
01231 return 1;
01232 }
01233
01234 int Xapian::InternalStemKraaij_pohlmann::r_Lose_infix() {
01235 { int ret = skip_utf8(p, c, 0, l, 1);
01236 if (ret < 0) return 0;
01237 c = ret;
01238 }
01239 while(1) {
01240 bra = c;
01241 if (!(eq_s(2, s_69))) goto lab0;
01242 ket = c;
01243 break;
01244 lab0:
01245 { int ret = skip_utf8(p, c, 0, l, 1);
01246 if (ret < 0) return 0;
01247 c = ret;
01248 }
01249 }
01250 { int c_test1 = c;
01251 { int ret = skip_utf8(p, c, 0, l, + 3);
01252 if (ret < 0) return 0;
01253 c = ret;
01254 }
01255 c = c_test1;
01256 }
01257 if (out_grouping_U(g_v, 97, 121, 1) < 0) return 0;
01258 if (in_grouping_U(g_v, 97, 121, 1) < 0) return 0;
01259 B_GE_removed = 1;
01260 if (slice_del() == -1) return -1;
01261 return 1;
01262 }
01263
01264 int Xapian::InternalStemKraaij_pohlmann::r_measure() {
01265 { int c1 = c;
01266 c = l;
01267 I_p1 = c;
01268 I_p2 = c;
01269 c = c1;
01270 }
01271 { int c2 = c;
01272 while(1) {
01273 if (out_grouping_U(g_v, 97, 121, 0)) goto lab2;
01274 continue;
01275 lab2:
01276 break;
01277 }
01278 { int i = 1;
01279 while(1) {
01280 int c3 = c;
01281 { int c4 = c;
01282 if (!(eq_s(2, s_70))) goto lab5;
01283 goto lab4;
01284 lab5:
01285 c = c4;
01286 if (in_grouping_U(g_v, 97, 121, 0)) goto lab3;
01287 }
01288 lab4:
01289 i--;
01290 continue;
01291 lab3:
01292 c = c3;
01293 break;
01294 }
01295 if (i > 0) goto lab1;
01296 }
01297 if (out_grouping_U(g_v, 97, 121, 0)) goto lab1;
01298 I_p1 = c;
01299 while(1) {
01300 if (out_grouping_U(g_v, 97, 121, 0)) goto lab6;
01301 continue;
01302 lab6:
01303 break;
01304 }
01305 { int i = 1;
01306 while(1) {
01307 int c5 = c;
01308 { int c6 = c;
01309 if (!(eq_s(2, s_71))) goto lab9;
01310 goto lab8;
01311 lab9:
01312 c = c6;
01313 if (in_grouping_U(g_v, 97, 121, 0)) goto lab7;
01314 }
01315 lab8:
01316 i--;
01317 continue;
01318 lab7:
01319 c = c5;
01320 break;
01321 }
01322 if (i > 0) goto lab1;
01323 }
01324 if (out_grouping_U(g_v, 97, 121, 0)) goto lab1;
01325 I_p2 = c;
01326 lab1:
01327 c = c2;
01328 }
01329 return 1;
01330 }
01331
01332 int Xapian::InternalStemKraaij_pohlmann::stem() {
01333 B_Y_found = 0;
01334 B_stemmed = 0;
01335 { int c1 = c;
01336 bra = c;
01337 if (c == l || p[c] != 'y') goto lab0;
01338 c++;
01339 ket = c;
01340 { int ret = slice_from_s(1, s_72);
01341 if (ret < 0) return ret;
01342 }
01343 B_Y_found = 1;
01344 lab0:
01345 c = c1;
01346 }
01347 { int c2 = c;
01348 while(1) {
01349 int c3 = c;
01350 while(1) {
01351 int c4 = c;
01352 if (in_grouping_U(g_v, 97, 121, 0)) goto lab3;
01353 bra = c;
01354 if (c == l || p[c] != 'y') goto lab3;
01355 c++;
01356 ket = c;
01357 c = c4;
01358 break;
01359 lab3:
01360 c = c4;
01361 { int ret = skip_utf8(p, c, 0, l, 1);
01362 if (ret < 0) goto lab2;
01363 c = ret;
01364 }
01365 }
01366 { int ret = slice_from_s(1, s_73);
01367 if (ret < 0) return ret;
01368 }
01369 B_Y_found = 1;
01370 continue;
01371 lab2:
01372 c = c3;
01373 break;
01374 }
01375 c = c2;
01376 }
01377 { int ret = r_measure();
01378 if (ret <= 0) return ret;
01379 }
01380 lb = c; c = l;
01381
01382 { int m5 = l - c; (void)m5;
01383 { int ret = r_Step_1();
01384 if (ret == 0) goto lab4;
01385 if (ret < 0) return ret;
01386 }
01387 B_stemmed = 1;
01388 lab4:
01389 c = l - m5;
01390 }
01391 { int m6 = l - c; (void)m6;
01392 { int ret = r_Step_2();
01393 if (ret == 0) goto lab5;
01394 if (ret < 0) return ret;
01395 }
01396 B_stemmed = 1;
01397 lab5:
01398 c = l - m6;
01399 }
01400 { int m7 = l - c; (void)m7;
01401 { int ret = r_Step_3();
01402 if (ret == 0) goto lab6;
01403 if (ret < 0) return ret;
01404 }
01405 B_stemmed = 1;
01406 lab6:
01407 c = l - m7;
01408 }
01409 { int m8 = l - c; (void)m8;
01410 { int ret = r_Step_4();
01411 if (ret == 0) goto lab7;
01412 if (ret < 0) return ret;
01413 }
01414 B_stemmed = 1;
01415 lab7:
01416 c = l - m8;
01417 }
01418 c = lb;
01419 B_GE_removed = 0;
01420 { int c9 = c;
01421 { int c10 = c;
01422 { int ret = r_Lose_prefix();
01423 if (ret == 0) goto lab8;
01424 if (ret < 0) return ret;
01425 }
01426 c = c10;
01427 { int ret = r_measure();
01428 if (ret == 0) goto lab8;
01429 if (ret < 0) return ret;
01430 }
01431 }
01432 lab8:
01433 c = c9;
01434 }
01435 lb = c; c = l;
01436
01437 { int m11 = l - c; (void)m11;
01438 if (!(B_GE_removed)) goto lab9;
01439 { int ret = r_Step_1c();
01440 if (ret == 0) goto lab9;
01441 if (ret < 0) return ret;
01442 }
01443 lab9:
01444 c = l - m11;
01445 }
01446 c = lb;
01447 B_GE_removed = 0;
01448 { int c12 = c;
01449 { int c13 = c;
01450 { int ret = r_Lose_infix();
01451 if (ret == 0) goto lab10;
01452 if (ret < 0) return ret;
01453 }
01454 c = c13;
01455 { int ret = r_measure();
01456 if (ret == 0) goto lab10;
01457 if (ret < 0) return ret;
01458 }
01459 }
01460 lab10:
01461 c = c12;
01462 }
01463 lb = c; c = l;
01464
01465 { int m14 = l - c; (void)m14;
01466 if (!(B_GE_removed)) goto lab11;
01467 { int ret = r_Step_1c();
01468 if (ret == 0) goto lab11;
01469 if (ret < 0) return ret;
01470 }
01471 lab11:
01472 c = l - m14;
01473 }
01474 c = lb;
01475 lb = c; c = l;
01476
01477 { int m15 = l - c; (void)m15;
01478 { int ret = r_Step_7();
01479 if (ret == 0) goto lab12;
01480 if (ret < 0) return ret;
01481 }
01482 B_stemmed = 1;
01483 lab12:
01484 c = l - m15;
01485 }
01486 { int m16 = l - c; (void)m16;
01487 { int m17 = l - c; (void)m17;
01488 if (!(B_stemmed)) goto lab15;
01489 goto lab14;
01490 lab15:
01491 c = l - m17;
01492 if (!(B_GE_removed)) goto lab13;
01493 }
01494 lab14:
01495 { int ret = r_Step_6();
01496 if (ret == 0) goto lab13;
01497 if (ret < 0) return ret;
01498 }
01499 lab13:
01500 c = l - m16;
01501 }
01502 c = lb;
01503 { int c18 = c;
01504 if (!(B_Y_found)) goto lab16;
01505 while(1) {
01506 int c19 = c;
01507 while(1) {
01508 int c20 = c;
01509 bra = c;
01510 if (c == l || p[c] != 'Y') goto lab18;
01511 c++;
01512 ket = c;
01513 c = c20;
01514 break;
01515 lab18:
01516 c = c20;
01517 { int ret = skip_utf8(p, c, 0, l, 1);
01518 if (ret < 0) goto lab17;
01519 c = ret;
01520 }
01521 }
01522 { int ret = slice_from_s(1, s_74);
01523 if (ret < 0) return ret;
01524 }
01525 continue;
01526 lab17:
01527 c = c19;
01528 break;
01529 }
01530 lab16:
01531 c = c18;
01532 }
01533 return 1;
01534 }
01535
01536 Xapian::InternalStemKraaij_pohlmann::InternalStemKraaij_pohlmann()
01537 : B_GE_removed(0), B_stemmed(0), B_Y_found(0), I_p2(0), I_p1(0), I_x(0), S_ch(0)
01538 {
01539 S_ch = create_s();
01540 }
01541
01542 Xapian::InternalStemKraaij_pohlmann::~InternalStemKraaij_pohlmann()
01543 {
01544 lose_s(S_ch);
01545 }
01546
01547 const char *
01548 Xapian::InternalStemKraaij_pohlmann::get_description() const
01549 {
01550 return "kraaij_pohlmann";
01551 }