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

Documentation for Xapian (version 1.0.10).
Generated on 24 Dec 2008 by Doxygen 1.5.2.