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