languages/kraaij_pohlmann.cc

Go to the documentation of this file.
00001 /* This file was generated automatically by the Snowball to ISO C++ compiler */
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 /*  0 */ { 3, s_0_0, -1, 7},
00169 /*  1 */ { 2, s_0_1, -1, 6},
00170 /*  2 */ { 1, s_0_2, -1, 2},
00171 /*  3 */ { 2, s_0_3, 2, 1},
00172 /*  4 */ { 2, s_0_4, 2, 4},
00173 /*  5 */ { 3, s_0_5, 4, 3},
00174 /*  6 */ { 3, s_0_6, 2, 5}
00175 };
00176 
00177 
00178 static const struct among a_1[11] =
00179 {
00180 /*  0 */ { 2, s_1_0, -1, 5},
00181 /*  1 */ { 2, s_1_1, -1, 2},
00182 /*  2 */ { 5, s_1_2, -1, 4},
00183 /*  3 */ { 2, s_1_3, -1, 1},
00184 /*  4 */ { 5, s_1_4, -1, 3},
00185 /*  5 */ { 2, s_1_5, -1, 9},
00186 /*  6 */ { 3, s_1_6, -1, 10},
00187 /*  7 */ { 2, s_1_7, -1, 8},
00188 /*  8 */ { 2, s_1_8, -1, 7},
00189 /*  9 */ { 2, s_1_9, -1, 6},
00190 /* 10 */ { 4, s_1_10, -1, 11}
00191 };
00192 
00193 
00194 static const struct among a_2[14] =
00195 {
00196 /*  0 */ { 4, s_2_0, -1, 3},
00197 /*  1 */ { 3, s_2_1, -1, 7},
00198 /*  2 */ { 3, s_2_2, -1, 8},
00199 /*  3 */ { 4, s_2_3, -1, 1},
00200 /*  4 */ { 4, s_2_4, -1, 5},
00201 /*  5 */ { 3, s_2_5, -1, 5},
00202 /*  6 */ { 4, s_2_6, -1, 6},
00203 /*  7 */ { 4, s_2_7, -1, 5},
00204 /*  8 */ { 3, s_2_8, -1, 3},
00205 /*  9 */ { 4, s_2_9, -1, 4},
00206 /* 10 */ { 4, s_2_10, -1, 3},
00207 /* 11 */ { 5, s_2_11, -1, 2},
00208 /* 12 */ { 3, s_2_12, -1, 10},
00209 /* 13 */ { 3, s_2_13, -1, 9}
00210 };
00211 
00212 
00213 static const struct among a_3[16] =
00214 {
00215 /*  0 */ { 3, s_3_0, -1, 10},
00216 /*  1 */ { 5, s_3_1, -1, 2},
00217 /*  2 */ { 4, s_3_2, -1, 10},
00218 /*  3 */ { 6, s_3_3, -1, 9},
00219 /*  4 */ { 6, s_3_4, -1, 1},
00220 /*  5 */ { 4, s_3_5, -1, 3},
00221 /*  6 */ { 4, s_3_6, -1, 5},
00222 /*  7 */ { 4, s_3_7, -1, 4},
00223 /*  8 */ { 4, s_3_8, -1, 6},
00224 /*  9 */ { 6, s_3_9, -1, 10},
00225 /* 10 */ { 8, s_3_10, -1, 9},
00226 /* 11 */ { 6, s_3_11, -1, 8},
00227 /* 12 */ { 4, s_3_12, -1, 7},
00228 /* 13 */ { 6, s_3_13, -1, 10},
00229 /* 14 */ { 8, s_3_14, -1, 9},
00230 /* 15 */ { 6, s_3_15, -1, 8}
00231 };
00232 
00233 
00234 static const struct among a_4[3] =
00235 {
00236 /*  0 */ { 2, s_4_0, -1, 1},
00237 /*  1 */ { 4, s_4_1, -1, 1},
00238 /*  2 */ { 4, s_4_2, -1, 1}
00239 };
00240 
00241 
00242 static const struct among a_5[3] =
00243 {
00244 /*  0 */ { 2, s_5_0, -1, 2},
00245 /*  1 */ { 2, s_5_1, -1, 1},
00246 /*  2 */ { 2, s_5_2, -1, 3}
00247 };
00248 
00249 
00250 static const struct among a_6[22] =
00251 {
00252 /*  0 */ { 2, s_6_0, -1, 1},
00253 /*  1 */ { 2, s_6_1, -1, 2},
00254 /*  2 */ { 2, s_6_2, -1, 3},
00255 /*  3 */ { 2, s_6_3, -1, 4},
00256 /*  4 */ { 2, s_6_4, -1, 5},
00257 /*  5 */ { 2, s_6_5, -1, 6},
00258 /*  6 */ { 2, s_6_6, -1, 7},
00259 /*  7 */ { 2, s_6_7, -1, 8},
00260 /*  8 */ { 2, s_6_8, -1, 9},
00261 /*  9 */ { 2, s_6_9, -1, 10},
00262 /* 10 */ { 2, s_6_10, -1, 11},
00263 /* 11 */ { 2, s_6_11, -1, 12},
00264 /* 12 */ { 2, s_6_12, -1, 13},
00265 /* 13 */ { 2, s_6_13, -1, 14},
00266 /* 14 */ { 2, s_6_14, -1, 15},
00267 /* 15 */ { 2, s_6_15, -1, 16},
00268 /* 16 */ { 1, s_6_16, -1, 21},
00269 /* 17 */ { 2, s_6_17, 16, 17},
00270 /* 18 */ { 2, s_6_18, -1, 18},
00271 /* 19 */ { 2, s_6_19, -1, 19},
00272 /* 20 */ { 1, s_6_20, -1, 22},
00273 /* 21 */ { 2, s_6_21, 20, 20}
00274 };
00275 
00276 
00277 static const struct among a_7[2] =
00278 {
00279 /*  0 */ { 1, s_7_0, -1, 1},
00280 /*  1 */ { 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() { /* backwardmode */
00368     I_x = c; /* setmark x, line 32 */
00369     if (!(I_x >= I_p1)) return 0; /* x >= <integer expression>, line 32 */
00370     return 1;
00371 }
00372 
00373 int Xapian::InternalStemKraaij_pohlmann::r_R2() { /* backwardmode */
00374     I_x = c; /* setmark x, line 33 */
00375     if (!(I_x >= I_p2)) return 0; /* x >= <integer expression>, line 33 */
00376     return 1;
00377 }
00378 
00379 int Xapian::InternalStemKraaij_pohlmann::r_V() { /* backwardmode */
00380     {   int m_test1 = l - c; /* test, line 35 */
00381         {   int m2 = l - c; (void)m2; /* or, line 35 */
00382             if (in_grouping_b_U(g_v, 97, 121, 0)) goto lab1; /* grouping v, line 35 */
00383             goto lab0;
00384         lab1:
00385             c = l - m2;
00386             if (!(eq_s_b(2, s_0))) return 0; /* literal, line 35 */
00387         }
00388     lab0:
00389         c = l - m_test1;
00390     }
00391     return 1;
00392 }
00393 
00394 int Xapian::InternalStemKraaij_pohlmann::r_VX() { /* backwardmode */
00395     {   int m_test1 = l - c; /* test, line 36 */
00396         {   int ret = skip_utf8(p, c, lb, 0, -1);
00397             if (ret < 0) return 0;
00398             c = ret; /* next, line 36 */
00399         }
00400         {   int m2 = l - c; (void)m2; /* or, line 36 */
00401             if (in_grouping_b_U(g_v, 97, 121, 0)) goto lab1; /* grouping v, line 36 */
00402             goto lab0;
00403         lab1:
00404             c = l - m2;
00405             if (!(eq_s_b(2, s_1))) return 0; /* literal, line 36 */
00406         }
00407     lab0:
00408         c = l - m_test1;
00409     }
00410     return 1;
00411 }
00412 
00413 int Xapian::InternalStemKraaij_pohlmann::r_C() { /* backwardmode */
00414     {   int m_test1 = l - c; /* test, line 37 */
00415         {   int m2 = l - c; (void)m2; /* not, line 37 */
00416             if (!(eq_s_b(2, s_2))) goto lab0; /* literal, line 37 */
00417             return 0;
00418         lab0:
00419             c = l - m2;
00420         }
00421         if (out_grouping_b_U(g_v, 97, 121, 0)) return 0; /* non v, line 37 */
00422         c = l - m_test1;
00423     }
00424     return 1;
00425 }
00426 
00427 int Xapian::InternalStemKraaij_pohlmann::r_lengthen_V() { /* backwardmode */
00428     {   int m1 = l - c; (void)m1; /* do, line 39 */
00429         if (out_grouping_b_U(g_v_WX, 97, 121, 0)) goto lab0; /* non v_WX, line 40 */
00430         ket = c; /* [, line 40 */
00431         {   int m2 = l - c; (void)m2; /* or, line 40 */
00432             if (in_grouping_b_U(g_AOU, 97, 117, 0)) goto lab2; /* grouping AOU, line 40 */
00433             bra = c; /* ], line 40 */
00434             {   int m_test3 = l - c; /* test, line 40 */
00435                 {   int m4 = l - c; (void)m4; /* or, line 40 */
00436                     if (out_grouping_b_U(g_v, 97, 121, 0)) goto lab4; /* non v, line 40 */
00437                     goto lab3;
00438                 lab4:
00439                     c = l - m4;
00440                     if (c > lb) goto lab2; /* atlimit, line 40 */
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; /* ], line 41 */
00451             {   int m_test5 = l - c; /* test, line 41 */
00452                 {   int m6 = l - c; (void)m6; /* or, line 41 */
00453                     if (out_grouping_b_U(g_v, 97, 121, 0)) goto lab6; /* non v, line 41 */
00454                     goto lab5;
00455                 lab6:
00456                     c = l - m6;
00457                     if (c > lb) goto lab0; /* atlimit, line 41 */
00458                 }
00459             lab5:
00460                 {   int m7 = l - c; (void)m7; /* not, line 42 */
00461                     if (in_grouping_b_U(g_AIOU, 97, 117, 0)) goto lab7; /* grouping AIOU, line 42 */
00462                     goto lab0;
00463                 lab7:
00464                     c = l - m7;
00465                 }
00466                 {   int m8 = l - c; (void)m8; /* not, line 43 */
00467                     {   int ret = skip_utf8(p, c, lb, 0, -1);
00468                         if (ret < 0) goto lab8;
00469                         c = ret; /* next, line 43 */
00470                     }
00471                     if (in_grouping_b_U(g_AIOU, 97, 117, 0)) goto lab8; /* grouping AIOU, line 43 */
00472                     if (out_grouping_b_U(g_v, 97, 121, 0)) goto lab8; /* non v, line 43 */
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); /* -> ch, line 44 */
00482             if (ret == 0) return -1;
00483             S_ch = ret;
00484         }
00485         {   int saved_c = c;
00486             insert_v(c, c, S_ch); /* <+ ch, line 44 */
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() { /* backwardmode */
00496     int among_var;
00497     ket = c; /* [, line 49 */
00498     if (c <= lb || p[c - 1] >> 5 != 3 || !((540704 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* among, line 49 */
00499     among_var = find_among_b(s_pool, a_0, 7, 0, 0);
00500     if (!(among_var)) return 0;
00501     bra = c; /* ], line 49 */
00502     switch(among_var) { /* among, line 49 */
00503         case 0: return 0;
00504         case 1:
00505             if (slice_del() == -1) return -1; /* delete, line 51 */
00506             break;
00507         case 2:
00508             {   int ret = r_R1(); /* call R1, line 52 */
00509                 if (ret <= 0) return ret;
00510             }
00511             {   int m1 = l - c; (void)m1; /* not, line 52 */
00512                 if (c <= lb || p[c - 1] != 't') goto lab0;
00513                 c--;
00514                 {   int ret = r_R1(); /* call R1, line 52 */
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(); /* call C, line 52 */
00523                 if (ret <= 0) return ret;
00524             }
00525             if (slice_del() == -1) return -1; /* delete, line 52 */
00526             break;
00527         case 3:
00528             {   int ret = r_R1(); /* call R1, line 53 */
00529                 if (ret <= 0) return ret;
00530             }
00531             {   int ret = slice_from_s(2, s_3); /* <-, line 53 */
00532                 if (ret < 0) return ret;
00533             }
00534             break;
00535         case 4:
00536             {   int m2 = l - c; (void)m2; /* or, line 55 */
00537                 if (!(eq_s_b(2, s_4))) goto lab2; /* literal, line 55 */
00538                 {   int ret = r_R1(); /* call R1, line 55 */
00539                     if (ret == 0) goto lab2;
00540                     if (ret < 0) return ret;
00541                 }
00542                 {   int ret = r_C(); /* call C, line 55 */
00543                     if (ret == 0) goto lab2;
00544                     if (ret < 0) return ret;
00545                 }
00546                 bra = c; /* ], line 55 */
00547                 if (slice_del() == -1) return -1; /* delete, line 55 */
00548                 {   int ret = r_lengthen_V(); /* call lengthen_V, line 55 */
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; /* literal, line 56 */
00556                 {   int ret = r_R1(); /* call R1, line 56 */
00557                     if (ret == 0) goto lab3;
00558                     if (ret < 0) return ret;
00559                 }
00560                 {   int ret = r_C(); /* call C, line 56 */
00561                     if (ret == 0) goto lab3;
00562                     if (ret < 0) return ret;
00563                 }
00564                 bra = c; /* ], line 56 */
00565                 if (slice_del() == -1) return -1; /* delete, line 56 */
00566                 goto lab1;
00567             lab3:
00568                 c = l - m2;
00569                 {   int ret = r_R1(); /* call R1, line 57 */
00570                     if (ret <= 0) return ret;
00571                 }
00572                 {   int ret = r_C(); /* call C, line 57 */
00573                     if (ret <= 0) return ret;
00574                 }
00575                 {   int ret = slice_from_s(1, s_6); /* <-, line 57 */
00576                     if (ret < 0) return ret;
00577                 }
00578             }
00579         lab1:
00580             break;
00581         case 5:
00582             {   int ret = r_R1(); /* call R1, line 59 */
00583                 if (ret <= 0) return ret;
00584             }
00585             {   int ret = r_V(); /* call V, line 59 */
00586                 if (ret <= 0) return ret;
00587             }
00588             {   int ret = slice_from_s(2, s_7); /* <-, line 59 */
00589                 if (ret < 0) return ret;
00590             }
00591             break;
00592         case 6:
00593             {   int m3 = l - c; (void)m3; /* or, line 60 */
00594                 if (!(eq_s_b(3, s_8))) goto lab5; /* literal, line 60 */
00595                 {   int ret = r_R1(); /* call R1, line 60 */
00596                     if (ret == 0) goto lab5;
00597                     if (ret < 0) return ret;
00598                 }
00599                 bra = c; /* ], line 60 */
00600                 {   int ret = slice_from_s(4, s_9); /* <-, line 60 */
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; /* literal, line 61 */
00607                 if (slice_del() == -1) return -1; /* delete, line 61 */
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(); /* call R1, line 62 */
00614                     if (ret == 0) goto lab7;
00615                     if (ret < 0) return ret;
00616                 }
00617                 {   int ret = r_C(); /* call C, line 62 */
00618                     if (ret == 0) goto lab7;
00619                     if (ret < 0) return ret;
00620                 }
00621                 bra = c; /* ], line 62 */
00622                 if (slice_del() == -1) return -1; /* delete, line 62 */
00623                 goto lab4;
00624             lab7:
00625                 c = l - m3;
00626                 {   int m4 = l - c; (void)m4; /* or, line 63 */
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(); /* call V, line 63 */
00637                     if (ret == 0) goto lab8;
00638                     if (ret < 0) return ret;
00639                 }
00640                 if (slice_del() == -1) return -1; /* delete, line 63 */
00641                 goto lab4;
00642             lab8:
00643                 c = l - m3;
00644                 {   int ret = r_R1(); /* call R1, line 64 */
00645                     if (ret <= 0) return ret;
00646                 }
00647                 {   int ret = r_C(); /* call C, line 64 */
00648                     if (ret <= 0) return ret;
00649                 }
00650                 if (slice_del() == -1) return -1; /* delete, line 64 */
00651                 {   int ret = r_lengthen_V(); /* call lengthen_V, line 64 */
00652                     if (ret <= 0) return ret;
00653                 }
00654             }
00655         lab4:
00656             break;
00657         case 7:
00658             {   int ret = slice_from_s(2, s_11); /* <-, line 65 */
00659                 if (ret < 0) return ret;
00660             }
00661             break;
00662     }
00663     return 1;
00664 }
00665 
00666 int Xapian::InternalStemKraaij_pohlmann::r_Step_2() { /* backwardmode */
00667     int among_var;
00668     ket = c; /* [, line 71 */
00669     if (c - 1 <= lb || p[c - 1] != 101) return 0; /* among, line 71 */
00670     among_var = find_among_b(s_pool, a_1, 11, 0, 0);
00671     if (!(among_var)) return 0;
00672     bra = c; /* ], line 71 */
00673     switch(among_var) { /* among, line 71 */
00674         case 0: return 0;
00675         case 1:
00676             {   int m1 = l - c; (void)m1; /* or, line 72 */
00677                 if (!(eq_s_b(2, s_12))) goto lab1; /* literal, line 72 */
00678                 bra = c; /* ], line 72 */
00679                 if (slice_del() == -1) return -1; /* delete, line 72 */
00680                 goto lab0;
00681             lab1:
00682                 c = l - m1;
00683                 if (!(eq_s_b(2, s_13))) goto lab2; /* literal, line 73 */
00684                 bra = c; /* ], line 73 */
00685                 {   int ret = r_R1(); /* call R1, line 73 */
00686                     if (ret == 0) goto lab2;
00687                     if (ret < 0) return ret;
00688                 }
00689                 {   int ret = r_C(); /* call C, line 73 */
00690                     if (ret == 0) goto lab2;
00691                     if (ret < 0) return ret;
00692                 }
00693                 if (slice_del() == -1) return -1; /* delete, line 73 */
00694                 goto lab0;
00695             lab2:
00696                 c = l - m1;
00697                 if (!(eq_s_b(3, s_14))) goto lab3; /* literal, line 74 */
00698                 bra = c; /* ], line 74 */
00699                 {   int ret = slice_from_s(2, s_15); /* <-, line 74 */
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; /* ], line 75 */
00708                 {   int ret = r_R1(); /* call R1, line 75 */
00709                     if (ret == 0) goto lab4;
00710                     if (ret < 0) return ret;
00711                 }
00712                 {   int ret = r_VX(); /* call VX, line 75 */
00713                     if (ret == 0) goto lab4;
00714                     if (ret < 0) return ret;
00715                 }
00716                 if (slice_del() == -1) return -1; /* delete, line 75 */
00717                 goto lab0;
00718             lab4:
00719                 c = l - m1;
00720                 if (!(eq_s_b(3, s_16))) goto lab5; /* literal, line 76 */
00721                 bra = c; /* ], line 76 */
00722                 {   int ret = slice_from_s(3, s_17); /* <-, line 76 */
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; /* literal, line 77 */
00729                 bra = c; /* ], line 77 */
00730                 {   int ret = slice_from_s(1, s_19); /* <-, line 77 */
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; /* ], line 78 */
00739                 {   int ret = r_R1(); /* call R1, line 78 */
00740                     if (ret == 0) goto lab7;
00741                     if (ret < 0) return ret;
00742                 }
00743                 if (slice_del() == -1) return -1; /* delete, line 78 */
00744                 goto lab0;
00745             lab7:
00746                 c = l - m1;
00747                 bra = c; /* ], line 79 */
00748                 {   int ret = r_R1(); /* call R1, line 79 */
00749                     if (ret <= 0) return ret;
00750                 }
00751                 {   int ret = r_C(); /* call C, line 79 */
00752                     if (ret <= 0) return ret;
00753                 }
00754                 if (slice_del() == -1) return -1; /* delete, line 79 */
00755             }
00756         lab0:
00757             break;
00758         case 2:
00759             {   int ret = r_R1(); /* call R1, line 80 */
00760                 if (ret <= 0) return ret;
00761             }
00762             {   int ret = slice_from_s(1, s_20); /* <-, line 80 */
00763                 if (ret < 0) return ret;
00764             }
00765             break;
00766         case 3:
00767             {   int ret = r_R1(); /* call R1, line 81 */
00768                 if (ret <= 0) return ret;
00769             }
00770             {   int ret = slice_from_s(4, s_21); /* <-, line 81 */
00771                 if (ret < 0) return ret;
00772             }
00773             break;
00774         case 4:
00775             {   int ret = r_R1(); /* call R1, line 82 */
00776                 if (ret <= 0) return ret;
00777             }
00778             {   int ret = slice_from_s(4, s_22); /* <-, line 82 */
00779                 if (ret < 0) return ret;
00780             }
00781             break;
00782         case 5:
00783             {   int ret = r_R1(); /* call R1, line 83 */
00784                 if (ret <= 0) return ret;
00785             }
00786             {   int ret = r_C(); /* call C, line 83 */
00787                 if (ret <= 0) return ret;
00788             }
00789             if (slice_del() == -1) return -1; /* delete, line 83 */
00790             break;
00791         case 6:
00792             {   int ret = r_R1(); /* call R1, line 84 */
00793                 if (ret <= 0) return ret;
00794             }
00795             {   int ret = slice_from_s(1, s_23); /* <-, line 84 */
00796                 if (ret < 0) return ret;
00797             }
00798             break;
00799         case 7:
00800             {   int ret = r_R1(); /* call R1, line 85 */
00801                 if (ret <= 0) return ret;
00802             }
00803             {   int ret = slice_from_s(1, s_24); /* <-, line 85 */
00804                 if (ret < 0) return ret;
00805             }
00806             break;
00807         case 8:
00808             {   int ret = r_R1(); /* call R1, line 86 */
00809                 if (ret <= 0) return ret;
00810             }
00811             {   int ret = slice_from_s(1, s_25); /* <-, line 86 */
00812                 if (ret < 0) return ret;
00813             }
00814             break;
00815         case 9:
00816             {   int ret = r_R1(); /* call R1, line 87 */
00817                 if (ret <= 0) return ret;
00818             }
00819             if (slice_del() == -1) return -1; /* delete, line 87 */
00820             insert_s(c, c, 1, s_26); /* attach, line 87 */
00821             {   int ret = r_lengthen_V(); /* call lengthen_V, line 87 */
00822                 if (ret <= 0) return ret;
00823             }
00824             break;
00825         case 10:
00826             {   int ret = r_R1(); /* call R1, line 88 */
00827                 if (ret <= 0) return ret;
00828             }
00829             {   int ret = r_C(); /* call C, line 88 */
00830                 if (ret <= 0) return ret;
00831             }
00832             if (slice_del() == -1) return -1; /* delete, line 88 */
00833             insert_s(c, c, 2, s_27); /* attach, line 88 */
00834             {   int ret = r_lengthen_V(); /* call lengthen_V, line 88 */
00835                 if (ret <= 0) return ret;
00836             }
00837             break;
00838         case 11:
00839             {   int ret = r_R1(); /* call R1, line 89 */
00840                 if (ret <= 0) return ret;
00841             }
00842             {   int ret = r_C(); /* call C, line 89 */
00843                 if (ret <= 0) return ret;
00844             }
00845             {   int ret = slice_from_s(3, s_28); /* <-, line 89 */
00846                 if (ret < 0) return ret;
00847             }
00848             break;
00849     }
00850     return 1;
00851 }
00852 
00853 int Xapian::InternalStemKraaij_pohlmann::r_Step_3() { /* backwardmode */
00854     int among_var;
00855     ket = c; /* [, line 95 */
00856     if (c - 2 <= lb || p[c - 1] >> 5 != 3 || !((1316016 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* among, line 95 */
00857     among_var = find_among_b(s_pool, a_2, 14, 0, 0);
00858     if (!(among_var)) return 0;
00859     bra = c; /* ], line 95 */
00860     switch(among_var) { /* among, line 95 */
00861         case 0: return 0;
00862         case 1:
00863             {   int ret = r_R1(); /* call R1, line 96 */
00864                 if (ret <= 0) return ret;
00865             }
00866             {   int ret = slice_from_s(3, s_29); /* <-, line 96 */
00867                 if (ret < 0) return ret;
00868             }
00869             break;
00870         case 2:
00871             {   int ret = r_R1(); /* call R1, line 97 */
00872                 if (ret <= 0) return ret;
00873             }
00874             if (slice_del() == -1) return -1; /* delete, line 97 */
00875             {   int ret = r_lengthen_V(); /* call lengthen_V, line 97 */
00876                 if (ret <= 0) return ret;
00877             }
00878             break;
00879         case 3:
00880             {   int ret = r_R1(); /* call R1, line 100 */
00881                 if (ret <= 0) return ret;
00882             }
00883             if (slice_del() == -1) return -1; /* delete, line 100 */
00884             break;
00885         case 4:
00886             {   int ret = slice_from_s(1, s_30); /* <-, line 101 */
00887                 if (ret < 0) return ret;
00888             }
00889             break;
00890         case 5:
00891             {   int ret = r_R1(); /* call R1, line 104 */
00892                 if (ret <= 0) return ret;
00893             }
00894             if (slice_del() == -1) return -1; /* delete, line 104 */
00895             {   int ret = r_lengthen_V(); /* call lengthen_V, line 104 */
00896                 if (ret <= 0) return ret;
00897             }
00898             break;
00899         case 6:
00900             {   int ret = r_R1(); /* call R1, line 105 */
00901                 if (ret <= 0) return ret;
00902             }
00903             {   int ret = r_C(); /* call C, line 105 */
00904                 if (ret <= 0) return ret;
00905             }
00906             {   int ret = slice_from_s(3, s_31); /* <-, line 105 */
00907                 if (ret < 0) return ret;
00908             }
00909             break;
00910         case 7:
00911             {   int ret = r_R2(); /* call R2, line 106 */
00912                 if (ret <= 0) return ret;
00913             }
00914             if (slice_del() == -1) return -1; /* delete, line 106 */
00915             insert_s(c, c, 1, s_32); /* attach, line 106 */
00916             {   int ret = r_lengthen_V(); /* call lengthen_V, line 106 */
00917                 if (ret <= 0) return ret;
00918             }
00919             break;
00920         case 8:
00921             {   int ret = r_R2(); /* call R2, line 107 */
00922                 if (ret <= 0) return ret;
00923             }
00924             if (slice_del() == -1) return -1; /* delete, line 107 */
00925             insert_s(c, c, 1, s_33); /* attach, line 107 */
00926             {   int ret = r_lengthen_V(); /* call lengthen_V, line 107 */
00927                 if (ret <= 0) return ret;
00928             }
00929             break;
00930         case 9:
00931             {   int ret = r_R1(); /* call R1, line 108 */
00932                 if (ret <= 0) return ret;
00933             }
00934             {   int ret = r_C(); /* call C, line 108 */
00935                 if (ret <= 0) return ret;
00936             }
00937             {   int ret = slice_from_s(1, s_34); /* <-, line 108 */
00938                 if (ret < 0) return ret;
00939             }
00940             break;
00941         case 10:
00942             {   int ret = r_R1(); /* call R1, line 109 */
00943                 if (ret <= 0) return ret;
00944             }
00945             {   int ret = r_C(); /* call C, line 109 */
00946                 if (ret <= 0) return ret;
00947             }
00948             {   int ret = slice_from_s(1, s_35); /* <-, line 109 */
00949                 if (ret < 0) return ret;
00950             }
00951             break;
00952     }
00953     return 1;
00954 }
00955 
00956 int Xapian::InternalStemKraaij_pohlmann::r_Step_4() { /* backwardmode */
00957     int among_var;
00958     {   int m1 = l - c; (void)m1; /* or, line 134 */
00959         ket = c; /* [, line 115 */
00960         if (c - 2 <= lb || p[c - 1] >> 5 != 3 || !((1315024 >> (p[c - 1] & 0x1f)) & 1)) goto lab1; /* among, line 115 */
00961         among_var = find_among_b(s_pool, a_3, 16, 0, 0);
00962         if (!(among_var)) goto lab1;
00963         bra = c; /* ], line 115 */
00964         switch(among_var) { /* among, line 115 */
00965             case 0: goto lab1;
00966             case 1:
00967                 {   int ret = r_R1(); /* call R1, line 116 */
00968                     if (ret == 0) goto lab1;
00969                     if (ret < 0) return ret;
00970                 }
00971                 {   int ret = slice_from_s(2, s_36); /* <-, line 116 */
00972                     if (ret < 0) return ret;
00973                 }
00974                 break;
00975             case 2:
00976                 {   int ret = r_R1(); /* call R1, line 117 */
00977                     if (ret == 0) goto lab1;
00978                     if (ret < 0) return ret;
00979                 }
00980                 {   int ret = slice_from_s(3, s_37); /* <-, line 117 */
00981                     if (ret < 0) return ret;
00982                 }
00983                 break;
00984             case 3:
00985                 {   int ret = r_R1(); /* call R1, line 118 */
00986                     if (ret == 0) goto lab1;
00987                     if (ret < 0) return ret;
00988                 }
00989                 if (slice_del() == -1) return -1; /* delete, line 118 */
00990                 break;
00991             case 4:
00992                 {   int ret = r_R1(); /* call R1, line 119 */
00993                     if (ret == 0) goto lab1;
00994                     if (ret < 0) return ret;
00995                 }
00996                 {   int ret = r_V(); /* call V, line 119 */
00997                     if (ret == 0) goto lab1;
00998                     if (ret < 0) return ret;
00999                 }
01000                 {   int ret = slice_from_s(1, s_38); /* <-, line 119 */
01001                     if (ret < 0) return ret;
01002                 }
01003                 break;
01004             case 5:
01005                 {   int ret = r_R1(); /* call R1, line 120 */
01006                     if (ret == 0) goto lab1;
01007                     if (ret < 0) return ret;
01008                 }
01009                 {   int ret = r_V(); /* call V, line 120 */
01010                     if (ret == 0) goto lab1;
01011                     if (ret < 0) return ret;
01012                 }
01013                 {   int ret = slice_from_s(1, s_39); /* <-, line 120 */
01014                     if (ret < 0) return ret;
01015                 }
01016                 break;
01017             case 6:
01018                 {   int ret = r_R1(); /* call R1, line 121 */
01019                     if (ret == 0) goto lab1;
01020                     if (ret < 0) return ret;
01021                 }
01022                 {   int ret = r_V(); /* call V, line 121 */
01023                     if (ret == 0) goto lab1;
01024                     if (ret < 0) return ret;
01025                 }
01026                 {   int ret = slice_from_s(1, s_40); /* <-, line 121 */
01027                     if (ret < 0) return ret;
01028                 }
01029                 break;
01030             case 7:
01031                 {   int ret = r_R1(); /* call R1, line 122 */
01032                     if (ret == 0) goto lab1;
01033                     if (ret < 0) return ret;
01034                 }
01035                 {   int ret = slice_from_s(4, s_41); /* <-, line 122 */
01036                     if (ret < 0) return ret;
01037                 }
01038                 break;
01039             case 8:
01040                 {   int ret = r_R1(); /* call R1, line 124 */
01041                     if (ret == 0) goto lab1;
01042                     if (ret < 0) return ret;
01043                 }
01044                 {   int ret = slice_from_s(4, s_42); /* <-, line 124 */
01045                     if (ret < 0) return ret;
01046                 }
01047                 break;
01048             case 9:
01049                 {   int ret = r_R1(); /* call R1, line 127 */
01050                     if (ret == 0) goto lab1;
01051                     if (ret < 0) return ret;
01052                 }
01053                 if (slice_del() == -1) return -1; /* delete, line 127 */
01054                 break;
01055             case 10:
01056                 {   int ret = r_R1(); /* call R1, line 131 */
01057                     if (ret == 0) goto lab1;
01058                     if (ret < 0) return ret;
01059                 }
01060                 {   int ret = r_C(); /* call C, line 131 */
01061                     if (ret == 0) goto lab1;
01062                     if (ret < 0) return ret;
01063                 }
01064                 if (slice_del() == -1) return -1; /* delete, line 131 */
01065                 {   int ret = r_lengthen_V(); /* call lengthen_V, line 131 */
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; /* [, line 135 */
01075         if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((1310848 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* among, line 135 */
01076         among_var = find_among_b(s_pool, a_4, 3, 0, 0);
01077         if (!(among_var)) return 0;
01078         bra = c; /* ], line 135 */
01079         switch(among_var) { /* among, line 135 */
01080             case 0: return 0;
01081             case 1:
01082                 {   int ret = r_R1(); /* call R1, line 138 */
01083                     if (ret <= 0) return ret;
01084                 }
01085                 {   int ret = r_C(); /* call C, line 138 */
01086                     if (ret <= 0) return ret;
01087                 }
01088                 if (slice_del() == -1) return -1; /* delete, line 138 */
01089                 {   int ret = r_lengthen_V(); /* call lengthen_V, line 138 */
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() { /* backwardmode */
01100     int among_var;
01101     ket = c; /* [, line 145 */
01102     if (c - 1 <= lb || p[c - 1] != 116) return 0; /* among, line 145 */
01103     among_var = find_among_b(s_pool, a_5, 3, 0, 0);
01104     if (!(among_var)) return 0;
01105     bra = c; /* ], line 145 */
01106     switch(among_var) { /* among, line 145 */
01107         case 0: return 0;
01108         case 1:
01109             {   int ret = slice_from_s(1, s_43); /* <-, line 146 */
01110                 if (ret < 0) return ret;
01111             }
01112             break;
01113         case 2:
01114             {   int ret = slice_from_s(1, s_44); /* <-, line 147 */
01115                 if (ret < 0) return ret;
01116             }
01117             break;
01118         case 3:
01119             {   int ret = slice_from_s(1, s_45); /* <-, line 148 */
01120                 if (ret < 0) return ret;
01121             }
01122             break;
01123     }
01124     return 1;
01125 }
01126 
01127 int Xapian::InternalStemKraaij_pohlmann::r_Step_6() { /* backwardmode */
01128     int among_var;
01129     ket = c; /* [, line 154 */
01130     if (c <= lb || p[c - 1] >> 5 != 3 || !((98532828 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* among, line 154 */
01131     among_var = find_among_b(s_pool, a_6, 22, 0, 0);
01132     if (!(among_var)) return 0;
01133     bra = c; /* ], line 154 */
01134     switch(among_var) { /* among, line 154 */
01135         case 0: return 0;
01136         case 1:
01137             {   int ret = slice_from_s(1, s_46); /* <-, line 155 */
01138                 if (ret < 0) return ret;
01139             }
01140             break;
01141         case 2:
01142             {   int ret = slice_from_s(1, s_47); /* <-, line 156 */
01143                 if (ret < 0) return ret;
01144             }
01145             break;
01146         case 3:
01147             {   int ret = slice_from_s(1, s_48); /* <-, line 157 */
01148                 if (ret < 0) return ret;
01149             }
01150             break;
01151         case 4:
01152             {   int ret = slice_from_s(1, s_49); /* <-, line 158 */
01153                 if (ret < 0) return ret;
01154             }
01155             break;
01156         case 5:
01157             {   int ret = slice_from_s(1, s_50); /* <-, line 159 */
01158                 if (ret < 0) return ret;
01159             }
01160             break;
01161         case 6:
01162             {   int ret = slice_from_s(1, s_51); /* <-, line 160 */
01163                 if (ret < 0) return ret;
01164             }
01165             break;
01166         case 7:
01167             {   int ret = slice_from_s(1, s_52); /* <-, line 161 */
01168                 if (ret < 0) return ret;
01169             }
01170             break;
01171         case 8:
01172             {   int ret = slice_from_s(1, s_53); /* <-, line 162 */
01173                 if (ret < 0) return ret;
01174             }
01175             break;
01176         case 9:
01177             {   int ret = slice_from_s(1, s_54); /* <-, line 163 */
01178                 if (ret < 0) return ret;
01179             }
01180             break;
01181         case 10:
01182             {   int ret = slice_from_s(1, s_55); /* <-, line 164 */
01183                 if (ret < 0) return ret;
01184             }
01185             break;
01186         case 11:
01187             {   int ret = slice_from_s(1, s_56); /* <-, line 165 */
01188                 if (ret < 0) return ret;
01189             }
01190             break;
01191         case 12:
01192             {   int ret = slice_from_s(1, s_57); /* <-, line 166 */
01193                 if (ret < 0) return ret;
01194             }
01195             break;
01196         case 13:
01197             {   int ret = slice_from_s(1, s_58); /* <-, line 167 */
01198                 if (ret < 0) return ret;
01199             }
01200             break;
01201         case 14:
01202             {   int ret = slice_from_s(1, s_59); /* <-, line 168 */
01203                 if (ret < 0) return ret;
01204             }
01205             break;
01206         case 15:
01207             {   int ret = slice_from_s(1, s_60); /* <-, line 169 */
01208                 if (ret < 0) return ret;
01209             }
01210             break;
01211         case 16:
01212             {   int ret = slice_from_s(1, s_61); /* <-, line 170 */
01213                 if (ret < 0) return ret;
01214             }
01215             break;
01216         case 17:
01217             {   int ret = slice_from_s(1, s_62); /* <-, line 171 */
01218                 if (ret < 0) return ret;
01219             }
01220             break;
01221         case 18:
01222             {   int ret = slice_from_s(1, s_63); /* <-, line 172 */
01223                 if (ret < 0) return ret;
01224             }
01225             break;
01226         case 19:
01227             {   int ret = slice_from_s(1, s_64); /* <-, line 173 */
01228                 if (ret < 0) return ret;
01229             }
01230             break;
01231         case 20:
01232             {   int ret = slice_from_s(1, s_65); /* <-, line 174 */
01233                 if (ret < 0) return ret;
01234             }
01235             break;
01236         case 21:
01237             {   int ret = slice_from_s(1, s_66); /* <-, line 175 */
01238                 if (ret < 0) return ret;
01239             }
01240             break;
01241         case 22:
01242             {   int ret = slice_from_s(1, s_67); /* <-, line 176 */
01243                 if (ret < 0) return ret;
01244             }
01245             break;
01246     }
01247     return 1;
01248 }
01249 
01250 int Xapian::InternalStemKraaij_pohlmann::r_Step_1c() { /* backwardmode */
01251     int among_var;
01252     ket = c; /* [, line 182 */
01253     if (c <= lb || (p[c - 1] != 100 && p[c - 1] != 116)) return 0; /* among, line 182 */
01254     among_var = find_among_b(s_pool, a_7, 2, 0, 0);
01255     if (!(among_var)) return 0;
01256     bra = c; /* ], line 182 */
01257     {   int ret = r_R1(); /* call R1, line 182 */
01258         if (ret <= 0) return ret;
01259     }
01260     {   int ret = r_C(); /* call C, line 182 */
01261         if (ret <= 0) return ret;
01262     }
01263     switch(among_var) { /* among, line 182 */
01264         case 0: return 0;
01265         case 1:
01266             {   int m1 = l - c; (void)m1; /* not, line 183 */
01267                 if (c <= lb || p[c - 1] != 'n') goto lab0;
01268                 c--;
01269                 {   int ret = r_R1(); /* call R1, line 183 */
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; /* delete, line 183 */
01278             break;
01279         case 2:
01280             {   int m2 = l - c; (void)m2; /* not, line 184 */
01281                 if (c <= lb || p[c - 1] != 'h') goto lab1;
01282                 c--;
01283                 {   int ret = r_R1(); /* call R1, line 184 */
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; /* delete, line 184 */
01292             break;
01293     }
01294     return 1;
01295 }
01296 
01297 int Xapian::InternalStemKraaij_pohlmann::r_Lose_prefix() { /* forwardmode */
01298     bra = c; /* [, line 190 */
01299     if (!(eq_s(2, s_68))) return 0; /* literal, line 190 */
01300     ket = c; /* ], line 190 */
01301     {   int c_test1 = c; /* test, line 190 */
01302         {   int ret = skip_utf8(p, c, 0, l, + 3); /* hop, line 190 */
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; /* goto */ /* grouping v, line 190 */
01309     if (in_grouping_U(g_v, 97, 121, 1) < 0) return 0; /* goto */ /* non v, line 190 */
01310     B_GE_removed = 1; /* set GE_removed, line 191 */
01311     if (slice_del() == -1) return -1; /* delete, line 192 */
01312     return 1;
01313 }
01314 
01315 int Xapian::InternalStemKraaij_pohlmann::r_Lose_infix() { /* forwardmode */
01316     {   int ret = skip_utf8(p, c, 0, l, 1);
01317         if (ret < 0) return 0;
01318         c = ret; /* next, line 196 */
01319     }
01320     while(1) { /* gopast, line 197 */
01321         bra = c; /* [, line 197 */
01322         if (!(eq_s(2, s_69))) goto lab0; /* literal, line 197 */
01323         ket = c; /* ], line 197 */
01324         break;
01325     lab0:
01326         {   int ret = skip_utf8(p, c, 0, l, 1);
01327             if (ret < 0) return 0;
01328             c = ret; /* gopast, line 197 */
01329         }
01330     }
01331     {   int c_test1 = c; /* test, line 197 */
01332         {   int ret = skip_utf8(p, c, 0, l, + 3); /* hop, line 197 */
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; /* goto */ /* grouping v, line 197 */
01339     if (in_grouping_U(g_v, 97, 121, 1) < 0) return 0; /* goto */ /* non v, line 197 */
01340     B_GE_removed = 1; /* set GE_removed, line 198 */
01341     if (slice_del() == -1) return -1; /* delete, line 199 */
01342     return 1;
01343 }
01344 
01345 int Xapian::InternalStemKraaij_pohlmann::r_measure() { /* forwardmode */
01346     {   int c1 = c; /* do, line 203 */
01347         c = l; /* tolimit, line 204 */
01348         I_p1 = c; /* setmark p1, line 205 */
01349         I_p2 = c; /* setmark p2, line 206 */
01350         c = c1;
01351     }
01352     {   int c2 = c; /* do, line 208 */
01353         while(1) { /* repeat, line 209 */
01354             if (out_grouping_U(g_v, 97, 121, 0)) goto lab2; /* non v, line 209 */
01355             continue;
01356         lab2:
01357             break;
01358         }
01359         {   int i = 1;
01360             while(1) { /* atleast, line 209 */
01361                 int c3 = c;
01362                 {   int c4 = c; /* or, line 209 */
01363                     if (!(eq_s(2, s_70))) goto lab5; /* literal, line 209 */
01364                     goto lab4;
01365                 lab5:
01366                     c = c4;
01367                     if (in_grouping_U(g_v, 97, 121, 0)) goto lab3; /* grouping v, line 209 */
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; /* non v, line 209 */
01379         I_p1 = c; /* setmark p1, line 209 */
01380         while(1) { /* repeat, line 210 */
01381             if (out_grouping_U(g_v, 97, 121, 0)) goto lab6; /* non v, line 210 */
01382             continue;
01383         lab6:
01384             break;
01385         }
01386         {   int i = 1;
01387             while(1) { /* atleast, line 210 */
01388                 int c5 = c;
01389                 {   int c6 = c; /* or, line 210 */
01390                     if (!(eq_s(2, s_71))) goto lab9; /* literal, line 210 */
01391                     goto lab8;
01392                 lab9:
01393                     c = c6;
01394                     if (in_grouping_U(g_v, 97, 121, 0)) goto lab7; /* grouping v, line 210 */
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; /* non v, line 210 */
01406         I_p2 = c; /* setmark p2, line 210 */
01407     lab1:
01408         c = c2;
01409     }
01410     return 1;
01411 }
01412 
01413 int Xapian::InternalStemKraaij_pohlmann::stem() { /* forwardmode */
01414     B_Y_found = 0; /* unset Y_found, line 216 */
01415     B_stemmed = 0; /* unset stemmed, line 217 */
01416     {   int c1 = c; /* do, line 218 */
01417         bra = c; /* [, line 218 */
01418         if (c == l || p[c] != 'y') goto lab0;
01419         c++;
01420         ket = c; /* ], line 218 */
01421         {   int ret = slice_from_s(1, s_72); /* <-, line 218 */
01422             if (ret < 0) return ret;
01423         }
01424         B_Y_found = 1; /* set Y_found, line 218 */
01425     lab0:
01426         c = c1;
01427     }
01428     {   int c2 = c; /* do, line 219 */
01429         while(1) { /* repeat, line 219 */
01430             int c3 = c;
01431             while(1) { /* goto, line 219 */
01432                 int c4 = c;
01433                 if (in_grouping_U(g_v, 97, 121, 0)) goto lab3; /* grouping v, line 219 */
01434                 bra = c; /* [, line 219 */
01435                 if (c == l || p[c] != 'y') goto lab3;
01436                 c++;
01437                 ket = c; /* ], line 219 */
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; /* goto, line 219 */
01445                 }
01446             }
01447             {   int ret = slice_from_s(1, s_73); /* <-, line 219 */
01448                 if (ret < 0) return ret;
01449             }
01450             B_Y_found = 1; /* set Y_found, line 219 */
01451             continue;
01452         lab2:
01453             c = c3;
01454             break;
01455         }
01456         c = c2;
01457     }
01458     {   int ret = r_measure(); /* call measure, line 221 */
01459         if (ret <= 0) return ret;
01460     }
01461     lb = c; c = l; /* backwards, line 223 */
01462 
01463     {   int m5 = l - c; (void)m5; /* do, line 224 */
01464         {   int ret = r_Step_1(); /* call Step_1, line 224 */
01465             if (ret == 0) goto lab4;
01466             if (ret < 0) return ret;
01467         }
01468         B_stemmed = 1; /* set stemmed, line 224 */
01469     lab4:
01470         c = l - m5;
01471     }
01472     {   int m6 = l - c; (void)m6; /* do, line 225 */
01473         {   int ret = r_Step_2(); /* call Step_2, line 225 */
01474             if (ret == 0) goto lab5;
01475             if (ret < 0) return ret;
01476         }
01477         B_stemmed = 1; /* set stemmed, line 225 */
01478     lab5:
01479         c = l - m6;
01480     }
01481     {   int m7 = l - c; (void)m7; /* do, line 226 */
01482         {   int ret = r_Step_3(); /* call Step_3, line 226 */
01483             if (ret == 0) goto lab6;
01484             if (ret < 0) return ret;
01485         }
01486         B_stemmed = 1; /* set stemmed, line 226 */
01487     lab6:
01488         c = l - m7;
01489     }
01490     {   int m8 = l - c; (void)m8; /* do, line 227 */
01491         {   int ret = r_Step_4(); /* call Step_4, line 227 */
01492             if (ret == 0) goto lab7;
01493             if (ret < 0) return ret;
01494         }
01495         B_stemmed = 1; /* set stemmed, line 227 */
01496     lab7:
01497         c = l - m8;
01498     }
01499     c = lb;
01500     B_GE_removed = 0; /* unset GE_removed, line 229 */
01501     {   int c9 = c; /* do, line 230 */
01502         {   int c10 = c; /* and, line 230 */
01503             {   int ret = r_Lose_prefix(); /* call Lose_prefix, line 230 */
01504                 if (ret == 0) goto lab8;
01505                 if (ret < 0) return ret;
01506             }
01507             c = c10;
01508             {   int ret = r_measure(); /* call measure, line 230 */
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; /* backwards, line 231 */
01517 
01518     {   int m11 = l - c; (void)m11; /* do, line 232 */
01519         if (!(B_GE_removed)) goto lab9; /* Boolean test GE_removed, line 232 */
01520         {   int ret = r_Step_1c(); /* call Step_1c, line 232 */
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; /* unset GE_removed, line 234 */
01529     {   int c12 = c; /* do, line 235 */
01530         {   int c13 = c; /* and, line 235 */
01531             {   int ret = r_Lose_infix(); /* call Lose_infix, line 235 */
01532                 if (ret == 0) goto lab10;
01533                 if (ret < 0) return ret;
01534             }
01535             c = c13;
01536             {   int ret = r_measure(); /* call measure, line 235 */
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; /* backwards, line 236 */
01545 
01546     {   int m14 = l - c; (void)m14; /* do, line 237 */
01547         if (!(B_GE_removed)) goto lab11; /* Boolean test GE_removed, line 237 */
01548         {   int ret = r_Step_1c(); /* call Step_1c, line 237 */
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; /* backwards, line 239 */
01557 
01558     {   int m15 = l - c; (void)m15; /* do, line 240 */
01559         {   int ret = r_Step_7(); /* call Step_7, line 240 */
01560             if (ret == 0) goto lab12;
01561             if (ret < 0) return ret;
01562         }
01563         B_stemmed = 1; /* set stemmed, line 240 */
01564     lab12:
01565         c = l - m15;
01566     }
01567     {   int m16 = l - c; (void)m16; /* do, line 241 */
01568         {   int m17 = l - c; (void)m17; /* or, line 241 */
01569             if (!(B_stemmed)) goto lab15; /* Boolean test stemmed, line 241 */
01570             goto lab14;
01571         lab15:
01572             c = l - m17;
01573             if (!(B_GE_removed)) goto lab13; /* Boolean test GE_removed, line 241 */
01574         }
01575     lab14:
01576         {   int ret = r_Step_6(); /* call Step_6, line 241 */
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; /* do, line 243 */
01585         if (!(B_Y_found)) goto lab16; /* Boolean test Y_found, line 243 */
01586         while(1) { /* repeat, line 243 */
01587             int c19 = c;
01588             while(1) { /* goto, line 243 */
01589                 int c20 = c;
01590                 bra = c; /* [, line 243 */
01591                 if (c == l || p[c] != 'Y') goto lab18;
01592                 c++;
01593                 ket = c; /* ], line 243 */
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; /* goto, line 243 */
01601                 }
01602             }
01603             {   int ret = slice_from_s(1, s_74); /* <-, line 243 */
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 }

Documentation for Xapian (version 1.0.20).
Generated on 28 Apr 2010 by Doxygen 1.5.2.