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

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