languages/french.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 "french.h"
00005 
00006 static const symbol s_0_0[3] = { 'c', 'o', 'l' };
00007 static const symbol s_0_1[3] = { 'p', 'a', 'r' };
00008 static const symbol s_0_2[3] = { 't', 'a', 'p' };
00009 
00010 static const struct among a_0[3] =
00011 {
00012 /*  0 */ { 3, s_0_0, -1, -1},
00013 /*  1 */ { 3, s_0_1, -1, -1},
00014 /*  2 */ { 3, s_0_2, -1, -1}
00015 };
00016 
00017 static const symbol s_1_1[1] = { 'I' };
00018 static const symbol s_1_2[1] = { 'U' };
00019 static const symbol s_1_3[1] = { 'Y' };
00020 
00021 static const struct among a_1[4] =
00022 {
00023 /*  0 */ { 0, 0, -1, 4},
00024 /*  1 */ { 1, s_1_1, 0, 1},
00025 /*  2 */ { 1, s_1_2, 0, 2},
00026 /*  3 */ { 1, s_1_3, 0, 3}
00027 };
00028 
00029 static const symbol s_2_0[3] = { 'i', 'q', 'U' };
00030 static const symbol s_2_1[3] = { 'a', 'b', 'l' };
00031 static const symbol s_2_2[4] = { 'I', 0xC3, 0xA8, 'r' };
00032 static const symbol s_2_3[4] = { 'i', 0xC3, 0xA8, 'r' };
00033 static const symbol s_2_4[3] = { 'e', 'u', 's' };
00034 static const symbol s_2_5[2] = { 'i', 'v' };
00035 
00036 static const struct among a_2[6] =
00037 {
00038 /*  0 */ { 3, s_2_0, -1, 3},
00039 /*  1 */ { 3, s_2_1, -1, 3},
00040 /*  2 */ { 4, s_2_2, -1, 4},
00041 /*  3 */ { 4, s_2_3, -1, 4},
00042 /*  4 */ { 3, s_2_4, -1, 2},
00043 /*  5 */ { 2, s_2_5, -1, 1}
00044 };
00045 
00046 static const symbol s_3_0[2] = { 'i', 'c' };
00047 static const symbol s_3_1[4] = { 'a', 'b', 'i', 'l' };
00048 static const symbol s_3_2[2] = { 'i', 'v' };
00049 
00050 static const struct among a_3[3] =
00051 {
00052 /*  0 */ { 2, s_3_0, -1, 2},
00053 /*  1 */ { 4, s_3_1, -1, 1},
00054 /*  2 */ { 2, s_3_2, -1, 3}
00055 };
00056 
00057 static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' };
00058 static const symbol s_4_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
00059 static const symbol s_4_2[4] = { 'a', 'n', 'c', 'e' };
00060 static const symbol s_4_3[4] = { 'e', 'n', 'c', 'e' };
00061 static const symbol s_4_4[5] = { 'l', 'o', 'g', 'i', 'e' };
00062 static const symbol s_4_5[4] = { 'a', 'b', 'l', 'e' };
00063 static const symbol s_4_6[4] = { 'i', 's', 'm', 'e' };
00064 static const symbol s_4_7[4] = { 'e', 'u', 's', 'e' };
00065 static const symbol s_4_8[4] = { 'i', 's', 't', 'e' };
00066 static const symbol s_4_9[3] = { 'i', 'v', 'e' };
00067 static const symbol s_4_10[2] = { 'i', 'f' };
00068 static const symbol s_4_11[5] = { 'u', 's', 'i', 'o', 'n' };
00069 static const symbol s_4_12[5] = { 'a', 't', 'i', 'o', 'n' };
00070 static const symbol s_4_13[5] = { 'u', 't', 'i', 'o', 'n' };
00071 static const symbol s_4_14[5] = { 'a', 't', 'e', 'u', 'r' };
00072 static const symbol s_4_15[5] = { 'i', 'q', 'U', 'e', 's' };
00073 static const symbol s_4_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' };
00074 static const symbol s_4_17[5] = { 'a', 'n', 'c', 'e', 's' };
00075 static const symbol s_4_18[5] = { 'e', 'n', 'c', 'e', 's' };
00076 static const symbol s_4_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
00077 static const symbol s_4_20[5] = { 'a', 'b', 'l', 'e', 's' };
00078 static const symbol s_4_21[5] = { 'i', 's', 'm', 'e', 's' };
00079 static const symbol s_4_22[5] = { 'e', 'u', 's', 'e', 's' };
00080 static const symbol s_4_23[5] = { 'i', 's', 't', 'e', 's' };
00081 static const symbol s_4_24[4] = { 'i', 'v', 'e', 's' };
00082 static const symbol s_4_25[3] = { 'i', 'f', 's' };
00083 static const symbol s_4_26[6] = { 'u', 's', 'i', 'o', 'n', 's' };
00084 static const symbol s_4_27[6] = { 'a', 't', 'i', 'o', 'n', 's' };
00085 static const symbol s_4_28[6] = { 'u', 't', 'i', 'o', 'n', 's' };
00086 static const symbol s_4_29[6] = { 'a', 't', 'e', 'u', 'r', 's' };
00087 static const symbol s_4_30[5] = { 'm', 'e', 'n', 't', 's' };
00088 static const symbol s_4_31[6] = { 'e', 'm', 'e', 'n', 't', 's' };
00089 static const symbol s_4_32[9] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' };
00090 static const symbol s_4_33[5] = { 'i', 't', 0xC3, 0xA9, 's' };
00091 static const symbol s_4_34[4] = { 'm', 'e', 'n', 't' };
00092 static const symbol s_4_35[5] = { 'e', 'm', 'e', 'n', 't' };
00093 static const symbol s_4_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' };
00094 static const symbol s_4_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' };
00095 static const symbol s_4_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' };
00096 static const symbol s_4_39[3] = { 'a', 'u', 'x' };
00097 static const symbol s_4_40[4] = { 'e', 'a', 'u', 'x' };
00098 static const symbol s_4_41[3] = { 'e', 'u', 'x' };
00099 static const symbol s_4_42[4] = { 'i', 't', 0xC3, 0xA9 };
00100 
00101 static const struct among a_4[43] =
00102 {
00103 /*  0 */ { 4, s_4_0, -1, 1},
00104 /*  1 */ { 6, s_4_1, -1, 2},
00105 /*  2 */ { 4, s_4_2, -1, 1},
00106 /*  3 */ { 4, s_4_3, -1, 5},
00107 /*  4 */ { 5, s_4_4, -1, 3},
00108 /*  5 */ { 4, s_4_5, -1, 1},
00109 /*  6 */ { 4, s_4_6, -1, 1},
00110 /*  7 */ { 4, s_4_7, -1, 11},
00111 /*  8 */ { 4, s_4_8, -1, 1},
00112 /*  9 */ { 3, s_4_9, -1, 8},
00113 /* 10 */ { 2, s_4_10, -1, 8},
00114 /* 11 */ { 5, s_4_11, -1, 4},
00115 /* 12 */ { 5, s_4_12, -1, 2},
00116 /* 13 */ { 5, s_4_13, -1, 4},
00117 /* 14 */ { 5, s_4_14, -1, 2},
00118 /* 15 */ { 5, s_4_15, -1, 1},
00119 /* 16 */ { 7, s_4_16, -1, 2},
00120 /* 17 */ { 5, s_4_17, -1, 1},
00121 /* 18 */ { 5, s_4_18, -1, 5},
00122 /* 19 */ { 6, s_4_19, -1, 3},
00123 /* 20 */ { 5, s_4_20, -1, 1},
00124 /* 21 */ { 5, s_4_21, -1, 1},
00125 /* 22 */ { 5, s_4_22, -1, 11},
00126 /* 23 */ { 5, s_4_23, -1, 1},
00127 /* 24 */ { 4, s_4_24, -1, 8},
00128 /* 25 */ { 3, s_4_25, -1, 8},
00129 /* 26 */ { 6, s_4_26, -1, 4},
00130 /* 27 */ { 6, s_4_27, -1, 2},
00131 /* 28 */ { 6, s_4_28, -1, 4},
00132 /* 29 */ { 6, s_4_29, -1, 2},
00133 /* 30 */ { 5, s_4_30, -1, 15},
00134 /* 31 */ { 6, s_4_31, 30, 6},
00135 /* 32 */ { 9, s_4_32, 31, 12},
00136 /* 33 */ { 5, s_4_33, -1, 7},
00137 /* 34 */ { 4, s_4_34, -1, 15},
00138 /* 35 */ { 5, s_4_35, 34, 6},
00139 /* 36 */ { 8, s_4_36, 35, 12},
00140 /* 37 */ { 6, s_4_37, 34, 13},
00141 /* 38 */ { 6, s_4_38, 34, 14},
00142 /* 39 */ { 3, s_4_39, -1, 10},
00143 /* 40 */ { 4, s_4_40, 39, 9},
00144 /* 41 */ { 3, s_4_41, -1, 1},
00145 /* 42 */ { 4, s_4_42, -1, 7}
00146 };
00147 
00148 static const symbol s_5_0[3] = { 'i', 'r', 'a' };
00149 static const symbol s_5_1[2] = { 'i', 'e' };
00150 static const symbol s_5_2[4] = { 'i', 's', 's', 'e' };
00151 static const symbol s_5_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' };
00152 static const symbol s_5_4[1] = { 'i' };
00153 static const symbol s_5_5[4] = { 'i', 'r', 'a', 'i' };
00154 static const symbol s_5_6[2] = { 'i', 'r' };
00155 static const symbol s_5_7[4] = { 'i', 'r', 'a', 's' };
00156 static const symbol s_5_8[3] = { 'i', 'e', 's' };
00157 static const symbol s_5_9[5] = { 0xC3, 0xAE, 'm', 'e', 's' };
00158 static const symbol s_5_10[5] = { 'i', 's', 's', 'e', 's' };
00159 static const symbol s_5_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' };
00160 static const symbol s_5_12[5] = { 0xC3, 0xAE, 't', 'e', 's' };
00161 static const symbol s_5_13[2] = { 'i', 's' };
00162 static const symbol s_5_14[5] = { 'i', 'r', 'a', 'i', 's' };
00163 static const symbol s_5_15[6] = { 'i', 's', 's', 'a', 'i', 's' };
00164 static const symbol s_5_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' };
00165 static const symbol s_5_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' };
00166 static const symbol s_5_18[5] = { 'i', 'r', 'o', 'n', 's' };
00167 static const symbol s_5_19[6] = { 'i', 's', 's', 'o', 'n', 's' };
00168 static const symbol s_5_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' };
00169 static const symbol s_5_21[2] = { 'i', 't' };
00170 static const symbol s_5_22[5] = { 'i', 'r', 'a', 'i', 't' };
00171 static const symbol s_5_23[6] = { 'i', 's', 's', 'a', 'i', 't' };
00172 static const symbol s_5_24[6] = { 'i', 's', 's', 'a', 'n', 't' };
00173 static const symbol s_5_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' };
00174 static const symbol s_5_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' };
00175 static const symbol s_5_27[5] = { 'i', 'r', 'e', 'n', 't' };
00176 static const symbol s_5_28[6] = { 'i', 's', 's', 'e', 'n', 't' };
00177 static const symbol s_5_29[5] = { 'i', 'r', 'o', 'n', 't' };
00178 static const symbol s_5_30[3] = { 0xC3, 0xAE, 't' };
00179 static const symbol s_5_31[5] = { 'i', 'r', 'i', 'e', 'z' };
00180 static const symbol s_5_32[6] = { 'i', 's', 's', 'i', 'e', 'z' };
00181 static const symbol s_5_33[4] = { 'i', 'r', 'e', 'z' };
00182 static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' };
00183 
00184 static const struct among a_5[35] =
00185 {
00186 /*  0 */ { 3, s_5_0, -1, 1},
00187 /*  1 */ { 2, s_5_1, -1, 1},
00188 /*  2 */ { 4, s_5_2, -1, 1},
00189 /*  3 */ { 7, s_5_3, -1, 1},
00190 /*  4 */ { 1, s_5_4, -1, 1},
00191 /*  5 */ { 4, s_5_5, 4, 1},
00192 /*  6 */ { 2, s_5_6, -1, 1},
00193 /*  7 */ { 4, s_5_7, -1, 1},
00194 /*  8 */ { 3, s_5_8, -1, 1},
00195 /*  9 */ { 5, s_5_9, -1, 1},
00196 /* 10 */ { 5, s_5_10, -1, 1},
00197 /* 11 */ { 8, s_5_11, -1, 1},
00198 /* 12 */ { 5, s_5_12, -1, 1},
00199 /* 13 */ { 2, s_5_13, -1, 1},
00200 /* 14 */ { 5, s_5_14, 13, 1},
00201 /* 15 */ { 6, s_5_15, 13, 1},
00202 /* 16 */ { 6, s_5_16, -1, 1},
00203 /* 17 */ { 7, s_5_17, -1, 1},
00204 /* 18 */ { 5, s_5_18, -1, 1},
00205 /* 19 */ { 6, s_5_19, -1, 1},
00206 /* 20 */ { 7, s_5_20, -1, 1},
00207 /* 21 */ { 2, s_5_21, -1, 1},
00208 /* 22 */ { 5, s_5_22, 21, 1},
00209 /* 23 */ { 6, s_5_23, 21, 1},
00210 /* 24 */ { 6, s_5_24, -1, 1},
00211 /* 25 */ { 7, s_5_25, -1, 1},
00212 /* 26 */ { 8, s_5_26, -1, 1},
00213 /* 27 */ { 5, s_5_27, -1, 1},
00214 /* 28 */ { 6, s_5_28, -1, 1},
00215 /* 29 */ { 5, s_5_29, -1, 1},
00216 /* 30 */ { 3, s_5_30, -1, 1},
00217 /* 31 */ { 5, s_5_31, -1, 1},
00218 /* 32 */ { 6, s_5_32, -1, 1},
00219 /* 33 */ { 4, s_5_33, -1, 1},
00220 /* 34 */ { 5, s_5_34, -1, 1}
00221 };
00222 
00223 static const symbol s_6_0[1] = { 'a' };
00224 static const symbol s_6_1[3] = { 'e', 'r', 'a' };
00225 static const symbol s_6_2[4] = { 'a', 's', 's', 'e' };
00226 static const symbol s_6_3[4] = { 'a', 'n', 't', 'e' };
00227 static const symbol s_6_4[3] = { 0xC3, 0xA9, 'e' };
00228 static const symbol s_6_5[2] = { 'a', 'i' };
00229 static const symbol s_6_6[4] = { 'e', 'r', 'a', 'i' };
00230 static const symbol s_6_7[2] = { 'e', 'r' };
00231 static const symbol s_6_8[2] = { 'a', 's' };
00232 static const symbol s_6_9[4] = { 'e', 'r', 'a', 's' };
00233 static const symbol s_6_10[5] = { 0xC3, 0xA2, 'm', 'e', 's' };
00234 static const symbol s_6_11[5] = { 'a', 's', 's', 'e', 's' };
00235 static const symbol s_6_12[5] = { 'a', 'n', 't', 'e', 's' };
00236 static const symbol s_6_13[5] = { 0xC3, 0xA2, 't', 'e', 's' };
00237 static const symbol s_6_14[4] = { 0xC3, 0xA9, 'e', 's' };
00238 static const symbol s_6_15[3] = { 'a', 'i', 's' };
00239 static const symbol s_6_16[5] = { 'e', 'r', 'a', 'i', 's' };
00240 static const symbol s_6_17[4] = { 'i', 'o', 'n', 's' };
00241 static const symbol s_6_18[6] = { 'e', 'r', 'i', 'o', 'n', 's' };
00242 static const symbol s_6_19[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' };
00243 static const symbol s_6_20[5] = { 'e', 'r', 'o', 'n', 's' };
00244 static const symbol s_6_21[4] = { 'a', 'n', 't', 's' };
00245 static const symbol s_6_22[3] = { 0xC3, 0xA9, 's' };
00246 static const symbol s_6_23[3] = { 'a', 'i', 't' };
00247 static const symbol s_6_24[5] = { 'e', 'r', 'a', 'i', 't' };
00248 static const symbol s_6_25[3] = { 'a', 'n', 't' };
00249 static const symbol s_6_26[5] = { 'a', 'I', 'e', 'n', 't' };
00250 static const symbol s_6_27[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' };
00251 static const symbol s_6_28[6] = { 0xC3, 0xA8, 'r', 'e', 'n', 't' };
00252 static const symbol s_6_29[6] = { 'a', 's', 's', 'e', 'n', 't' };
00253 static const symbol s_6_30[5] = { 'e', 'r', 'o', 'n', 't' };
00254 static const symbol s_6_31[3] = { 0xC3, 0xA2, 't' };
00255 static const symbol s_6_32[2] = { 'e', 'z' };
00256 static const symbol s_6_33[3] = { 'i', 'e', 'z' };
00257 static const symbol s_6_34[5] = { 'e', 'r', 'i', 'e', 'z' };
00258 static const symbol s_6_35[6] = { 'a', 's', 's', 'i', 'e', 'z' };
00259 static const symbol s_6_36[4] = { 'e', 'r', 'e', 'z' };
00260 static const symbol s_6_37[2] = { 0xC3, 0xA9 };
00261 
00262 static const struct among a_6[38] =
00263 {
00264 /*  0 */ { 1, s_6_0, -1, 3},
00265 /*  1 */ { 3, s_6_1, 0, 2},
00266 /*  2 */ { 4, s_6_2, -1, 3},
00267 /*  3 */ { 4, s_6_3, -1, 3},
00268 /*  4 */ { 3, s_6_4, -1, 2},
00269 /*  5 */ { 2, s_6_5, -1, 3},
00270 /*  6 */ { 4, s_6_6, 5, 2},
00271 /*  7 */ { 2, s_6_7, -1, 2},
00272 /*  8 */ { 2, s_6_8, -1, 3},
00273 /*  9 */ { 4, s_6_9, 8, 2},
00274 /* 10 */ { 5, s_6_10, -1, 3},
00275 /* 11 */ { 5, s_6_11, -1, 3},
00276 /* 12 */ { 5, s_6_12, -1, 3},
00277 /* 13 */ { 5, s_6_13, -1, 3},
00278 /* 14 */ { 4, s_6_14, -1, 2},
00279 /* 15 */ { 3, s_6_15, -1, 3},
00280 /* 16 */ { 5, s_6_16, 15, 2},
00281 /* 17 */ { 4, s_6_17, -1, 1},
00282 /* 18 */ { 6, s_6_18, 17, 2},
00283 /* 19 */ { 7, s_6_19, 17, 3},
00284 /* 20 */ { 5, s_6_20, -1, 2},
00285 /* 21 */ { 4, s_6_21, -1, 3},
00286 /* 22 */ { 3, s_6_22, -1, 2},
00287 /* 23 */ { 3, s_6_23, -1, 3},
00288 /* 24 */ { 5, s_6_24, 23, 2},
00289 /* 25 */ { 3, s_6_25, -1, 3},
00290 /* 26 */ { 5, s_6_26, -1, 3},
00291 /* 27 */ { 7, s_6_27, 26, 2},
00292 /* 28 */ { 6, s_6_28, -1, 2},
00293 /* 29 */ { 6, s_6_29, -1, 3},
00294 /* 30 */ { 5, s_6_30, -1, 2},
00295 /* 31 */ { 3, s_6_31, -1, 3},
00296 /* 32 */ { 2, s_6_32, -1, 2},
00297 /* 33 */ { 3, s_6_33, 32, 2},
00298 /* 34 */ { 5, s_6_34, 33, 2},
00299 /* 35 */ { 6, s_6_35, 33, 3},
00300 /* 36 */ { 4, s_6_36, 32, 2},
00301 /* 37 */ { 2, s_6_37, -1, 2}
00302 };
00303 
00304 static const symbol s_7_0[1] = { 'e' };
00305 static const symbol s_7_1[5] = { 'I', 0xC3, 0xA8, 'r', 'e' };
00306 static const symbol s_7_2[5] = { 'i', 0xC3, 0xA8, 'r', 'e' };
00307 static const symbol s_7_3[3] = { 'i', 'o', 'n' };
00308 static const symbol s_7_4[3] = { 'I', 'e', 'r' };
00309 static const symbol s_7_5[3] = { 'i', 'e', 'r' };
00310 static const symbol s_7_6[2] = { 0xC3, 0xAB };
00311 
00312 static const struct among a_7[7] =
00313 {
00314 /*  0 */ { 1, s_7_0, -1, 3},
00315 /*  1 */ { 5, s_7_1, 0, 2},
00316 /*  2 */ { 5, s_7_2, 0, 2},
00317 /*  3 */ { 3, s_7_3, -1, 1},
00318 /*  4 */ { 3, s_7_4, -1, 2},
00319 /*  5 */ { 3, s_7_5, -1, 2},
00320 /*  6 */ { 2, s_7_6, -1, 4}
00321 };
00322 
00323 static const symbol s_8_0[3] = { 'e', 'l', 'l' };
00324 static const symbol s_8_1[4] = { 'e', 'i', 'l', 'l' };
00325 static const symbol s_8_2[3] = { 'e', 'n', 'n' };
00326 static const symbol s_8_3[3] = { 'o', 'n', 'n' };
00327 static const symbol s_8_4[3] = { 'e', 't', 't' };
00328 
00329 static const struct among a_8[5] =
00330 {
00331 /*  0 */ { 3, s_8_0, -1, -1},
00332 /*  1 */ { 4, s_8_1, -1, -1},
00333 /*  2 */ { 3, s_8_2, -1, -1},
00334 /*  3 */ { 3, s_8_3, -1, -1},
00335 /*  4 */ { 3, s_8_4, -1, -1}
00336 };
00337 
00338 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
00339 
00340 static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
00341 
00342 static const symbol s_0[] = { 'U' };
00343 static const symbol s_1[] = { 'I' };
00344 static const symbol s_2[] = { 'Y' };
00345 static const symbol s_3[] = { 'Y' };
00346 static const symbol s_4[] = { 'U' };
00347 static const symbol s_5[] = { 'i' };
00348 static const symbol s_6[] = { 'u' };
00349 static const symbol s_7[] = { 'y' };
00350 static const symbol s_8[] = { 'i', 'c' };
00351 static const symbol s_9[] = { 'i', 'q', 'U' };
00352 static const symbol s_10[] = { 'l', 'o', 'g' };
00353 static const symbol s_11[] = { 'u' };
00354 static const symbol s_12[] = { 'e', 'n', 't' };
00355 static const symbol s_13[] = { 'a', 't' };
00356 static const symbol s_14[] = { 'e', 'u', 'x' };
00357 static const symbol s_15[] = { 'i' };
00358 static const symbol s_16[] = { 'a', 'b', 'l' };
00359 static const symbol s_17[] = { 'i', 'q', 'U' };
00360 static const symbol s_18[] = { 'a', 't' };
00361 static const symbol s_19[] = { 'i', 'c' };
00362 static const symbol s_20[] = { 'i', 'q', 'U' };
00363 static const symbol s_21[] = { 'e', 'a', 'u' };
00364 static const symbol s_22[] = { 'a', 'l' };
00365 static const symbol s_23[] = { 'e', 'u', 'x' };
00366 static const symbol s_24[] = { 'a', 'n', 't' };
00367 static const symbol s_25[] = { 'e', 'n', 't' };
00368 static const symbol s_26[] = { 'i' };
00369 static const symbol s_27[] = { 'g', 'u' };
00370 static const symbol s_28[] = { 0xC3, 0xA9 };
00371 static const symbol s_29[] = { 0xC3, 0xA8 };
00372 static const symbol s_30[] = { 'e' };
00373 static const symbol s_31[] = { 'i' };
00374 static const symbol s_32[] = { 0xC3, 0xA7 };
00375 static const symbol s_33[] = { 'c' };
00376 
00377 int Xapian::InternalStemFrench::r_prelude() { /* forwardmode */
00378     while(1) { /* repeat, line 38 */
00379         int c1 = c;
00380         while(1) { /* goto, line 38 */
00381             int c2 = c;
00382             {   int c3 = c; /* or, line 44 */
00383                 if (in_grouping_U(g_v, 97, 251, 0)) goto lab3; /* grouping v, line 40 */
00384                 bra = c; /* [, line 40 */
00385                 {   int c4 = c; /* or, line 40 */
00386                     if (c == l || p[c] != 'u') goto lab5;
00387                     c++;
00388                     ket = c; /* ], line 40 */
00389                     if (in_grouping_U(g_v, 97, 251, 0)) goto lab5; /* grouping v, line 40 */
00390                     {   int ret = slice_from_s(1, s_0); /* <-, line 40 */
00391                         if (ret < 0) return ret;
00392                     }
00393                     goto lab4;
00394                 lab5:
00395                     c = c4;
00396                     if (c == l || p[c] != 'i') goto lab6;
00397                     c++;
00398                     ket = c; /* ], line 41 */
00399                     if (in_grouping_U(g_v, 97, 251, 0)) goto lab6; /* grouping v, line 41 */
00400                     {   int ret = slice_from_s(1, s_1); /* <-, line 41 */
00401                         if (ret < 0) return ret;
00402                     }
00403                     goto lab4;
00404                 lab6:
00405                     c = c4;
00406                     if (c == l || p[c] != 'y') goto lab3;
00407                     c++;
00408                     ket = c; /* ], line 42 */
00409                     {   int ret = slice_from_s(1, s_2); /* <-, line 42 */
00410                         if (ret < 0) return ret;
00411                     }
00412                 }
00413             lab4:
00414                 goto lab2;
00415             lab3:
00416                 c = c3;
00417                 bra = c; /* [, line 45 */
00418                 if (c == l || p[c] != 'y') goto lab7;
00419                 c++;
00420                 ket = c; /* ], line 45 */
00421                 if (in_grouping_U(g_v, 97, 251, 0)) goto lab7; /* grouping v, line 45 */
00422                 {   int ret = slice_from_s(1, s_3); /* <-, line 45 */
00423                     if (ret < 0) return ret;
00424                 }
00425                 goto lab2;
00426             lab7:
00427                 c = c3;
00428                 if (c == l || p[c] != 'q') goto lab1;
00429                 c++;
00430                 bra = c; /* [, line 47 */
00431                 if (c == l || p[c] != 'u') goto lab1;
00432                 c++;
00433                 ket = c; /* ], line 47 */
00434                 {   int ret = slice_from_s(1, s_4); /* <-, line 47 */
00435                     if (ret < 0) return ret;
00436                 }
00437             }
00438         lab2:
00439             c = c2;
00440             break;
00441         lab1:
00442             c = c2;
00443             {   int ret = skip_utf8(p, c, 0, l, 1);
00444                 if (ret < 0) goto lab0;
00445                 c = ret; /* goto, line 38 */
00446             }
00447         }
00448         continue;
00449     lab0:
00450         c = c1;
00451         break;
00452     }
00453     return 1;
00454 }
00455 
00456 int Xapian::InternalStemFrench::r_mark_regions() { /* forwardmode */
00457     I_pV = l; /* pV = <integer expression>, line 52 */
00458     I_p1 = l; /* p1 = <integer expression>, line 53 */
00459     I_p2 = l; /* p2 = <integer expression>, line 54 */
00460     {   int c1 = c; /* do, line 56 */
00461         {   int c2 = c; /* or, line 58 */
00462             if (in_grouping_U(g_v, 97, 251, 0)) goto lab2; /* grouping v, line 57 */
00463             if (in_grouping_U(g_v, 97, 251, 0)) goto lab2; /* grouping v, line 57 */
00464             {   int ret = skip_utf8(p, c, 0, l, 1);
00465                 if (ret < 0) goto lab2;
00466                 c = ret; /* next, line 57 */
00467             }
00468             goto lab1;
00469         lab2:
00470             c = c2;
00471             if (c + 2 >= l || p[c + 2] >> 5 != 3 || !((331776 >> (p[c + 2] & 0x1f)) & 1)) goto lab3; /* among, line 59 */
00472             if (!(find_among(a_0, 3, 0, 0))) goto lab3;
00473             goto lab1;
00474         lab3:
00475             c = c2;
00476             {   int ret = skip_utf8(p, c, 0, l, 1);
00477                 if (ret < 0) goto lab0;
00478                 c = ret; /* next, line 66 */
00479             }
00480             {   int ret = out_grouping_U(g_v, 97, 251, 1); /* gopast */ /* grouping v, line 66 */
00481                 if (ret < 0) goto lab0;
00482                 c += ret;
00483             }
00484         }
00485     lab1:
00486         I_pV = c; /* setmark pV, line 67 */
00487     lab0:
00488         c = c1;
00489     }
00490     {   int c3 = c; /* do, line 69 */
00491         {   int ret = out_grouping_U(g_v, 97, 251, 1); /* gopast */ /* grouping v, line 70 */
00492             if (ret < 0) goto lab4;
00493             c += ret;
00494         }
00495         {   int ret = in_grouping_U(g_v, 97, 251, 1); /* gopast */ /* non v, line 70 */
00496             if (ret < 0) goto lab4;
00497             c += ret;
00498         }
00499         I_p1 = c; /* setmark p1, line 70 */
00500         {   int ret = out_grouping_U(g_v, 97, 251, 1); /* gopast */ /* grouping v, line 71 */
00501             if (ret < 0) goto lab4;
00502             c += ret;
00503         }
00504         {   int ret = in_grouping_U(g_v, 97, 251, 1); /* gopast */ /* non v, line 71 */
00505             if (ret < 0) goto lab4;
00506             c += ret;
00507         }
00508         I_p2 = c; /* setmark p2, line 71 */
00509     lab4:
00510         c = c3;
00511     }
00512     return 1;
00513 }
00514 
00515 int Xapian::InternalStemFrench::r_postlude() { /* forwardmode */
00516     int among_var;
00517     while(1) { /* repeat, line 75 */
00518         int c1 = c;
00519         bra = c; /* [, line 77 */
00520         if (c >= l || p[c + 0] >> 5 != 2 || !((35652096 >> (p[c + 0] & 0x1f)) & 1)) among_var = 4; else /* substring, line 77 */
00521         among_var = find_among(a_1, 4, 0, 0);
00522         if (!(among_var)) goto lab0;
00523         ket = c; /* ], line 77 */
00524         switch(among_var) { /* among, line 77 */
00525             case 0: goto lab0;
00526             case 1:
00527                 {   int ret = slice_from_s(1, s_5); /* <-, line 78 */
00528                     if (ret < 0) return ret;
00529                 }
00530                 break;
00531             case 2:
00532                 {   int ret = slice_from_s(1, s_6); /* <-, line 79 */
00533                     if (ret < 0) return ret;
00534                 }
00535                 break;
00536             case 3:
00537                 {   int ret = slice_from_s(1, s_7); /* <-, line 80 */
00538                     if (ret < 0) return ret;
00539                 }
00540                 break;
00541             case 4:
00542                 {   int ret = skip_utf8(p, c, 0, l, 1);
00543                     if (ret < 0) goto lab0;
00544                     c = ret; /* next, line 81 */
00545                 }
00546                 break;
00547         }
00548         continue;
00549     lab0:
00550         c = c1;
00551         break;
00552     }
00553     return 1;
00554 }
00555 
00556 int Xapian::InternalStemFrench::r_RV() { /* backwardmode */
00557     if (!(I_pV <= c)) return 0; /* pV <= <integer expression>, line 87 */
00558     return 1;
00559 }
00560 
00561 int Xapian::InternalStemFrench::r_R1() { /* backwardmode */
00562     if (!(I_p1 <= c)) return 0; /* p1 <= <integer expression>, line 88 */
00563     return 1;
00564 }
00565 
00566 int Xapian::InternalStemFrench::r_R2() { /* backwardmode */
00567     if (!(I_p2 <= c)) return 0; /* p2 <= <integer expression>, line 89 */
00568     return 1;
00569 }
00570 
00571 int Xapian::InternalStemFrench::r_standard_suffix() { /* backwardmode */
00572     int among_var;
00573     ket = c; /* [, line 92 */
00574     among_var = find_among_b(a_4, 43, 0, 0); /* substring, line 92 */
00575     if (!(among_var)) return 0;
00576     bra = c; /* ], line 92 */
00577     switch(among_var) { /* among, line 92 */
00578         case 0: return 0;
00579         case 1:
00580             {   int ret = r_R2(); /* call R2, line 96 */
00581                 if (ret <= 0) return ret;
00582             }
00583             if (slice_del() == -1) return -1; /* delete, line 96 */
00584             break;
00585         case 2:
00586             {   int ret = r_R2(); /* call R2, line 99 */
00587                 if (ret <= 0) return ret;
00588             }
00589             if (slice_del() == -1) return -1; /* delete, line 99 */
00590             {   int m1 = l - c; (void)m1; /* try, line 100 */
00591                 ket = c; /* [, line 100 */
00592                 if (!(eq_s_b(2, s_8))) { c = l - m1; goto lab0; } /* literal, line 100 */
00593                 bra = c; /* ], line 100 */
00594                 {   int m2 = l - c; (void)m2; /* or, line 100 */
00595                     {   int ret = r_R2(); /* call R2, line 100 */
00596                         if (ret == 0) goto lab2;
00597                         if (ret < 0) return ret;
00598                     }
00599                     if (slice_del() == -1) return -1; /* delete, line 100 */
00600                     goto lab1;
00601                 lab2:
00602                     c = l - m2;
00603                     {   int ret = slice_from_s(3, s_9); /* <-, line 100 */
00604                         if (ret < 0) return ret;
00605                     }
00606                 }
00607             lab1:
00608             lab0:
00609                 ;
00610             }
00611             break;
00612         case 3:
00613             {   int ret = r_R2(); /* call R2, line 104 */
00614                 if (ret <= 0) return ret;
00615             }
00616             {   int ret = slice_from_s(3, s_10); /* <-, line 104 */
00617                 if (ret < 0) return ret;
00618             }
00619             break;
00620         case 4:
00621             {   int ret = r_R2(); /* call R2, line 107 */
00622                 if (ret <= 0) return ret;
00623             }
00624             {   int ret = slice_from_s(1, s_11); /* <-, line 107 */
00625                 if (ret < 0) return ret;
00626             }
00627             break;
00628         case 5:
00629             {   int ret = r_R2(); /* call R2, line 110 */
00630                 if (ret <= 0) return ret;
00631             }
00632             {   int ret = slice_from_s(3, s_12); /* <-, line 110 */
00633                 if (ret < 0) return ret;
00634             }
00635             break;
00636         case 6:
00637             {   int ret = r_RV(); /* call RV, line 114 */
00638                 if (ret <= 0) return ret;
00639             }
00640             if (slice_del() == -1) return -1; /* delete, line 114 */
00641             {   int m3 = l - c; (void)m3; /* try, line 115 */
00642                 ket = c; /* [, line 116 */
00643                 among_var = find_among_b(a_2, 6, 0, 0); /* substring, line 116 */
00644                 if (!(among_var)) { c = l - m3; goto lab3; }
00645                 bra = c; /* ], line 116 */
00646                 switch(among_var) { /* among, line 116 */
00647                     case 0: { c = l - m3; goto lab3; }
00648                     case 1:
00649                         {   int ret = r_R2(); /* call R2, line 117 */
00650                             if (ret == 0) { c = l - m3; goto lab3; }
00651                             if (ret < 0) return ret;
00652                         }
00653                         if (slice_del() == -1) return -1; /* delete, line 117 */
00654                         ket = c; /* [, line 117 */
00655                         if (!(eq_s_b(2, s_13))) { c = l - m3; goto lab3; } /* literal, line 117 */
00656                         bra = c; /* ], line 117 */
00657                         {   int ret = r_R2(); /* call R2, line 117 */
00658                             if (ret == 0) { c = l - m3; goto lab3; }
00659                             if (ret < 0) return ret;
00660                         }
00661                         if (slice_del() == -1) return -1; /* delete, line 117 */
00662                         break;
00663                     case 2:
00664                         {   int m4 = l - c; (void)m4; /* or, line 118 */
00665                             {   int ret = r_R2(); /* call R2, line 118 */
00666                                 if (ret == 0) goto lab5;
00667                                 if (ret < 0) return ret;
00668                             }
00669                             if (slice_del() == -1) return -1; /* delete, line 118 */
00670                             goto lab4;
00671                         lab5:
00672                             c = l - m4;
00673                             {   int ret = r_R1(); /* call R1, line 118 */
00674                                 if (ret == 0) { c = l - m3; goto lab3; }
00675                                 if (ret < 0) return ret;
00676                             }
00677                             {   int ret = slice_from_s(3, s_14); /* <-, line 118 */
00678                                 if (ret < 0) return ret;
00679                             }
00680                         }
00681                     lab4:
00682                         break;
00683                     case 3:
00684                         {   int ret = r_R2(); /* call R2, line 120 */
00685                             if (ret == 0) { c = l - m3; goto lab3; }
00686                             if (ret < 0) return ret;
00687                         }
00688                         if (slice_del() == -1) return -1; /* delete, line 120 */
00689                         break;
00690                     case 4:
00691                         {   int ret = r_RV(); /* call RV, line 122 */
00692                             if (ret == 0) { c = l - m3; goto lab3; }
00693                             if (ret < 0) return ret;
00694                         }
00695                         {   int ret = slice_from_s(1, s_15); /* <-, line 122 */
00696                             if (ret < 0) return ret;
00697                         }
00698                         break;
00699                 }
00700             lab3:
00701                 ;
00702             }
00703             break;
00704         case 7:
00705             {   int ret = r_R2(); /* call R2, line 129 */
00706                 if (ret <= 0) return ret;
00707             }
00708             if (slice_del() == -1) return -1; /* delete, line 129 */
00709             {   int m5 = l - c; (void)m5; /* try, line 130 */
00710                 ket = c; /* [, line 131 */
00711                 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((4198408 >> (p[c - 1] & 0x1f)) & 1)) { c = l - m5; goto lab6; } /* substring, line 131 */
00712                 among_var = find_among_b(a_3, 3, 0, 0);
00713                 if (!(among_var)) { c = l - m5; goto lab6; }
00714                 bra = c; /* ], line 131 */
00715                 switch(among_var) { /* among, line 131 */
00716                     case 0: { c = l - m5; goto lab6; }
00717                     case 1:
00718                         {   int m6 = l - c; (void)m6; /* or, line 132 */
00719                             {   int ret = r_R2(); /* call R2, line 132 */
00720                                 if (ret == 0) goto lab8;
00721                                 if (ret < 0) return ret;
00722                             }
00723                             if (slice_del() == -1) return -1; /* delete, line 132 */
00724                             goto lab7;
00725                         lab8:
00726                             c = l - m6;
00727                             {   int ret = slice_from_s(3, s_16); /* <-, line 132 */
00728                                 if (ret < 0) return ret;
00729                             }
00730                         }
00731                     lab7:
00732                         break;
00733                     case 2:
00734                         {   int m7 = l - c; (void)m7; /* or, line 133 */
00735                             {   int ret = r_R2(); /* call R2, line 133 */
00736                                 if (ret == 0) goto lab10;
00737                                 if (ret < 0) return ret;
00738                             }
00739                             if (slice_del() == -1) return -1; /* delete, line 133 */
00740                             goto lab9;
00741                         lab10:
00742                             c = l - m7;
00743                             {   int ret = slice_from_s(3, s_17); /* <-, line 133 */
00744                                 if (ret < 0) return ret;
00745                             }
00746                         }
00747                     lab9:
00748                         break;
00749                     case 3:
00750                         {   int ret = r_R2(); /* call R2, line 134 */
00751                             if (ret == 0) { c = l - m5; goto lab6; }
00752                             if (ret < 0) return ret;
00753                         }
00754                         if (slice_del() == -1) return -1; /* delete, line 134 */
00755                         break;
00756                 }
00757             lab6:
00758                 ;
00759             }
00760             break;
00761         case 8:
00762             {   int ret = r_R2(); /* call R2, line 141 */
00763                 if (ret <= 0) return ret;
00764             }
00765             if (slice_del() == -1) return -1; /* delete, line 141 */
00766             {   int m8 = l - c; (void)m8; /* try, line 142 */
00767                 ket = c; /* [, line 142 */
00768                 if (!(eq_s_b(2, s_18))) { c = l - m8; goto lab11; } /* literal, line 142 */
00769                 bra = c; /* ], line 142 */
00770                 {   int ret = r_R2(); /* call R2, line 142 */
00771                     if (ret == 0) { c = l - m8; goto lab11; }
00772                     if (ret < 0) return ret;
00773                 }
00774                 if (slice_del() == -1) return -1; /* delete, line 142 */
00775                 ket = c; /* [, line 142 */
00776                 if (!(eq_s_b(2, s_19))) { c = l - m8; goto lab11; } /* literal, line 142 */
00777                 bra = c; /* ], line 142 */
00778                 {   int m9 = l - c; (void)m9; /* or, line 142 */
00779                     {   int ret = r_R2(); /* call R2, line 142 */
00780                         if (ret == 0) goto lab13;
00781                         if (ret < 0) return ret;
00782                     }
00783                     if (slice_del() == -1) return -1; /* delete, line 142 */
00784                     goto lab12;
00785                 lab13:
00786                     c = l - m9;
00787                     {   int ret = slice_from_s(3, s_20); /* <-, line 142 */
00788                         if (ret < 0) return ret;
00789                     }
00790                 }
00791             lab12:
00792             lab11:
00793                 ;
00794             }
00795             break;
00796         case 9:
00797             {   int ret = slice_from_s(3, s_21); /* <-, line 144 */
00798                 if (ret < 0) return ret;
00799             }
00800             break;
00801         case 10:
00802             {   int ret = r_R1(); /* call R1, line 145 */
00803                 if (ret <= 0) return ret;
00804             }
00805             {   int ret = slice_from_s(2, s_22); /* <-, line 145 */
00806                 if (ret < 0) return ret;
00807             }
00808             break;
00809         case 11:
00810             {   int m10 = l - c; (void)m10; /* or, line 147 */
00811                 {   int ret = r_R2(); /* call R2, line 147 */
00812                     if (ret == 0) goto lab15;
00813                     if (ret < 0) return ret;
00814                 }
00815                 if (slice_del() == -1) return -1; /* delete, line 147 */
00816                 goto lab14;
00817             lab15:
00818                 c = l - m10;
00819                 {   int ret = r_R1(); /* call R1, line 147 */
00820                     if (ret <= 0) return ret;
00821                 }
00822                 {   int ret = slice_from_s(3, s_23); /* <-, line 147 */
00823                     if (ret < 0) return ret;
00824                 }
00825             }
00826         lab14:
00827             break;
00828         case 12:
00829             {   int ret = r_R1(); /* call R1, line 150 */
00830                 if (ret <= 0) return ret;
00831             }
00832             if (out_grouping_b_U(g_v, 97, 251, 0)) return 0; /* non v, line 150 */
00833             if (slice_del() == -1) return -1; /* delete, line 150 */
00834             break;
00835         case 13:
00836             {   int ret = r_RV(); /* call RV, line 155 */
00837                 if (ret <= 0) return ret;
00838             }
00839             {   int ret = slice_from_s(3, s_24); /* <-, line 155 */
00840                 if (ret < 0) return ret;
00841             }
00842             return 0; /* fail, line 155 */
00843             break;
00844         case 14:
00845             {   int ret = r_RV(); /* call RV, line 156 */
00846                 if (ret <= 0) return ret;
00847             }
00848             {   int ret = slice_from_s(3, s_25); /* <-, line 156 */
00849                 if (ret < 0) return ret;
00850             }
00851             return 0; /* fail, line 156 */
00852             break;
00853         case 15:
00854             {   int m_test11 = l - c; /* test, line 158 */
00855                 if (in_grouping_b_U(g_v, 97, 251, 0)) return 0; /* grouping v, line 158 */
00856                 {   int ret = r_RV(); /* call RV, line 158 */
00857                     if (ret <= 0) return ret;
00858                 }
00859                 c = l - m_test11;
00860             }
00861             if (slice_del() == -1) return -1; /* delete, line 158 */
00862             return 0; /* fail, line 158 */
00863             break;
00864     }
00865     return 1;
00866 }
00867 
00868 int Xapian::InternalStemFrench::r_i_verb_suffix() { /* backwardmode */
00869     int among_var;
00870     {   int m1 = l - c; (void)m1; /* setlimit, line 163 */
00871         int mlimit1;
00872         if (c < I_pV) return 0;
00873         c = I_pV; /* tomark, line 163 */
00874         mlimit1 = lb; lb = c;
00875         c = l - m1;
00876         ket = c; /* [, line 164 */
00877         if (c <= lb || p[c - 1] >> 5 != 3 || !((68944418 >> (p[c - 1] & 0x1f)) & 1)) { lb = mlimit1; return 0; } /* substring, line 164 */
00878         among_var = find_among_b(a_5, 35, 0, 0);
00879         if (!(among_var)) { lb = mlimit1; return 0; }
00880         bra = c; /* ], line 164 */
00881         switch(among_var) { /* among, line 164 */
00882             case 0: { lb = mlimit1; return 0; }
00883             case 1:
00884                 if (out_grouping_b_U(g_v, 97, 251, 0)) { lb = mlimit1; return 0; } /* non v, line 170 */
00885                 if (slice_del() == -1) return -1; /* delete, line 170 */
00886                 break;
00887         }
00888         lb = mlimit1;
00889     }
00890     return 1;
00891 }
00892 
00893 int Xapian::InternalStemFrench::r_verb_suffix() { /* backwardmode */
00894     int among_var;
00895     {   int m1 = l - c; (void)m1; /* setlimit, line 174 */
00896         int mlimit1;
00897         if (c < I_pV) return 0;
00898         c = I_pV; /* tomark, line 174 */
00899         mlimit1 = lb; lb = c;
00900         c = l - m1;
00901         ket = c; /* [, line 175 */
00902         among_var = find_among_b(a_6, 38, 0, 0); /* substring, line 175 */
00903         if (!(among_var)) { lb = mlimit1; return 0; }
00904         bra = c; /* ], line 175 */
00905         switch(among_var) { /* among, line 175 */
00906             case 0: { lb = mlimit1; return 0; }
00907             case 1:
00908                 {   int ret = r_R2(); /* call R2, line 177 */
00909                     if (ret == 0) { lb = mlimit1; return 0; }
00910                     if (ret < 0) return ret;
00911                 }
00912                 if (slice_del() == -1) return -1; /* delete, line 177 */
00913                 break;
00914             case 2:
00915                 if (slice_del() == -1) return -1; /* delete, line 185 */
00916                 break;
00917             case 3:
00918                 if (slice_del() == -1) return -1; /* delete, line 190 */
00919                 {   int m2 = l - c; (void)m2; /* try, line 191 */
00920                     ket = c; /* [, line 191 */
00921                     if (c <= lb || p[c - 1] != 'e') { c = l - m2; goto lab0; }
00922                     c--;
00923                     bra = c; /* ], line 191 */
00924                     if (slice_del() == -1) return -1; /* delete, line 191 */
00925                 lab0:
00926                     ;
00927                 }
00928                 break;
00929         }
00930         lb = mlimit1;
00931     }
00932     return 1;
00933 }
00934 
00935 int Xapian::InternalStemFrench::r_residual_suffix() { /* backwardmode */
00936     int among_var;
00937     {   int m1 = l - c; (void)m1; /* try, line 199 */
00938         ket = c; /* [, line 199 */
00939         if (c <= lb || p[c - 1] != 's') { c = l - m1; goto lab0; }
00940         c--;
00941         bra = c; /* ], line 199 */
00942         {   int m_test2 = l - c; /* test, line 199 */
00943             if (out_grouping_b_U(g_keep_with_s, 97, 232, 0)) { c = l - m1; goto lab0; } /* non keep_with_s, line 199 */
00944             c = l - m_test2;
00945         }
00946         if (slice_del() == -1) return -1; /* delete, line 199 */
00947     lab0:
00948         ;
00949     }
00950     {   int m3 = l - c; (void)m3; /* setlimit, line 200 */
00951         int mlimit3;
00952         if (c < I_pV) return 0;
00953         c = I_pV; /* tomark, line 200 */
00954         mlimit3 = lb; lb = c;
00955         c = l - m3;
00956         ket = c; /* [, line 201 */
00957         among_var = find_among_b(a_7, 7, 0, 0); /* substring, line 201 */
00958         if (!(among_var)) { lb = mlimit3; return 0; }
00959         bra = c; /* ], line 201 */
00960         switch(among_var) { /* among, line 201 */
00961             case 0: { lb = mlimit3; return 0; }
00962             case 1:
00963                 {   int ret = r_R2(); /* call R2, line 202 */
00964                     if (ret == 0) { lb = mlimit3; return 0; }
00965                     if (ret < 0) return ret;
00966                 }
00967                 {   int m4 = l - c; (void)m4; /* or, line 202 */
00968                     if (c <= lb || p[c - 1] != 's') goto lab2;
00969                     c--;
00970                     goto lab1;
00971                 lab2:
00972                     c = l - m4;
00973                     if (c <= lb || p[c - 1] != 't') { lb = mlimit3; return 0; }
00974                     c--;
00975                 }
00976             lab1:
00977                 if (slice_del() == -1) return -1; /* delete, line 202 */
00978                 break;
00979             case 2:
00980                 {   int ret = slice_from_s(1, s_26); /* <-, line 204 */
00981                     if (ret < 0) return ret;
00982                 }
00983                 break;
00984             case 3:
00985                 if (slice_del() == -1) return -1; /* delete, line 205 */
00986                 break;
00987             case 4:
00988                 if (!(eq_s_b(2, s_27))) { lb = mlimit3; return 0; } /* literal, line 206 */
00989                 if (slice_del() == -1) return -1; /* delete, line 206 */
00990                 break;
00991         }
00992         lb = mlimit3;
00993     }
00994     return 1;
00995 }
00996 
00997 int Xapian::InternalStemFrench::r_un_double() { /* backwardmode */
00998     {   int m_test1 = l - c; /* test, line 212 */
00999         if (c - 2 <= lb || p[c - 1] >> 5 != 3 || !((1069056 >> (p[c - 1] & 0x1f)) & 1)) return 0; /* among, line 212 */
01000         if (!(find_among_b(a_8, 5, 0, 0))) return 0;
01001         c = l - m_test1;
01002     }
01003     ket = c; /* [, line 212 */
01004     {   int ret = skip_utf8(p, c, lb, 0, -1);
01005         if (ret < 0) return 0;
01006         c = ret; /* next, line 212 */
01007     }
01008     bra = c; /* ], line 212 */
01009     if (slice_del() == -1) return -1; /* delete, line 212 */
01010     return 1;
01011 }
01012 
01013 int Xapian::InternalStemFrench::r_un_accent() { /* backwardmode */
01014     {   int i = 1;
01015         while(1) { /* atleast, line 216 */
01016             if (out_grouping_b_U(g_v, 97, 251, 0)) goto lab0; /* non v, line 216 */
01017             i--;
01018             continue;
01019         lab0:
01020             break;
01021         }
01022         if (i > 0) return 0;
01023     }
01024     ket = c; /* [, line 217 */
01025     {   int m1 = l - c; (void)m1; /* or, line 217 */
01026         if (!(eq_s_b(2, s_28))) goto lab2; /* literal, line 217 */
01027         goto lab1;
01028     lab2:
01029         c = l - m1;
01030         if (!(eq_s_b(2, s_29))) return 0; /* literal, line 217 */
01031     }
01032 lab1:
01033     bra = c; /* ], line 217 */
01034     {   int ret = slice_from_s(1, s_30); /* <-, line 217 */
01035         if (ret < 0) return ret;
01036     }
01037     return 1;
01038 }
01039 
01040 int Xapian::InternalStemFrench::stem() { /* forwardmode */
01041     {   int c1 = c; /* do, line 223 */
01042         {   int ret = r_prelude(); /* call prelude, line 223 */
01043             if (ret == 0) goto lab0;
01044             if (ret < 0) return ret;
01045         }
01046     lab0:
01047         c = c1;
01048     }
01049     {   int c2 = c; /* do, line 224 */
01050         {   int ret = r_mark_regions(); /* call mark_regions, line 224 */
01051             if (ret == 0) goto lab1;
01052             if (ret < 0) return ret;
01053         }
01054     lab1:
01055         c = c2;
01056     }
01057     lb = c; c = l; /* backwards, line 225 */
01058 
01059     {   int m3 = l - c; (void)m3; /* do, line 227 */
01060         {   int m4 = l - c; (void)m4; /* or, line 237 */
01061             {   int m5 = l - c; (void)m5; /* and, line 233 */
01062                 {   int m6 = l - c; (void)m6; /* or, line 229 */
01063                     {   int ret = r_standard_suffix(); /* call standard_suffix, line 229 */
01064                         if (ret == 0) goto lab6;
01065                         if (ret < 0) return ret;
01066                     }
01067                     goto lab5;
01068                 lab6:
01069                     c = l - m6;
01070                     {   int ret = r_i_verb_suffix(); /* call i_verb_suffix, line 230 */
01071                         if (ret == 0) goto lab7;
01072                         if (ret < 0) return ret;
01073                     }
01074                     goto lab5;
01075                 lab7:
01076                     c = l - m6;
01077                     {   int ret = r_verb_suffix(); /* call verb_suffix, line 231 */
01078                         if (ret == 0) goto lab4;
01079                         if (ret < 0) return ret;
01080                     }
01081                 }
01082             lab5:
01083                 c = l - m5;
01084                 {   int m7 = l - c; (void)m7; /* try, line 234 */
01085                     ket = c; /* [, line 234 */
01086                     {   int m8 = l - c; (void)m8; /* or, line 234 */
01087                         if (c <= lb || p[c - 1] != 'Y') goto lab10;
01088                         c--;
01089                         bra = c; /* ], line 234 */
01090                         {   int ret = slice_from_s(1, s_31); /* <-, line 234 */
01091                             if (ret < 0) return ret;
01092                         }
01093                         goto lab9;
01094                     lab10:
01095                         c = l - m8;
01096                         if (!(eq_s_b(2, s_32))) { c = l - m7; goto lab8; } /* literal, line 235 */
01097                         bra = c; /* ], line 235 */
01098                         {   int ret = slice_from_s(1, s_33); /* <-, line 235 */
01099                             if (ret < 0) return ret;
01100                         }
01101                     }
01102                 lab9:
01103                 lab8:
01104                     ;
01105                 }
01106             }
01107             goto lab3;
01108         lab4:
01109             c = l - m4;
01110             {   int ret = r_residual_suffix(); /* call residual_suffix, line 238 */
01111                 if (ret == 0) goto lab2;
01112                 if (ret < 0) return ret;
01113             }
01114         }
01115     lab3:
01116     lab2:
01117         c = l - m3;
01118     }
01119     {   int m9 = l - c; (void)m9; /* do, line 243 */
01120         {   int ret = r_un_double(); /* call un_double, line 243 */
01121             if (ret == 0) goto lab11;
01122             if (ret < 0) return ret;
01123         }
01124     lab11:
01125         c = l - m9;
01126     }
01127     {   int m10 = l - c; (void)m10; /* do, line 244 */
01128         {   int ret = r_un_accent(); /* call un_accent, line 244 */
01129             if (ret == 0) goto lab12;
01130             if (ret < 0) return ret;
01131         }
01132     lab12:
01133         c = l - m10;
01134     }
01135     c = lb;
01136     {   int c11 = c; /* do, line 246 */
01137         {   int ret = r_postlude(); /* call postlude, line 246 */
01138             if (ret == 0) goto lab13;
01139             if (ret < 0) return ret;
01140         }
01141     lab13:
01142         c = c11;
01143     }
01144     return 1;
01145 }
01146 
01147 Xapian::InternalStemFrench::InternalStemFrench()
01148     : I_p2(0), I_p1(0), I_pV(0)
01149 {
01150 }
01151 
01152 Xapian::InternalStemFrench::~InternalStemFrench()
01153 {
01154 }
01155 
01156 const char *
01157 Xapian::InternalStemFrench::get_description() const
01158 {
01159     return "french";
01160 }

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