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