LCOV - code coverage report
Current view: top level - src/backend/snowball/libstemmer - stem_UTF_8_french.c (source / functions) Coverage Total Hit
Test: PostgreSQL 19devel Lines: 0.0 % 674 0
Test Date: 2026-02-28 13:14:45 Functions: 0.0 % 16 0
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /* Generated from french.sbl by Snowball 3.0.0 - https://snowballstem.org/ */
       2              : 
       3              : #include "stem_UTF_8_french.h"
       4              : 
       5              : #include <stddef.h>
       6              : 
       7              : #include "snowball_runtime.h"
       8              : 
       9              : struct SN_local {
      10              :     struct SN_env z;
      11              :     int i_p2;
      12              :     int i_p1;
      13              :     int i_pV;
      14              : };
      15              : 
      16              : typedef struct SN_local SN_local;
      17              : 
      18              : #ifdef __cplusplus
      19              : extern "C" {
      20              : #endif
      21              : extern int french_UTF_8_stem(struct SN_env * z);
      22              : #ifdef __cplusplus
      23              : }
      24              : #endif
      25              : 
      26              : static int r_un_accent(struct SN_env * z);
      27              : static int r_un_double(struct SN_env * z);
      28              : static int r_residual_suffix(struct SN_env * z);
      29              : static int r_verb_suffix(struct SN_env * z);
      30              : static int r_i_verb_suffix(struct SN_env * z);
      31              : static int r_standard_suffix(struct SN_env * z);
      32              : static int r_R2(struct SN_env * z);
      33              : static int r_R1(struct SN_env * z);
      34              : static int r_RV(struct SN_env * z);
      35              : static int r_mark_regions(struct SN_env * z);
      36              : static int r_postlude(struct SN_env * z);
      37              : static int r_prelude(struct SN_env * z);
      38              : static int r_elisions(struct SN_env * z);
      39              : 
      40              : static const symbol s_0[] = { 'q', 'u' };
      41              : static const symbol s_1[] = { 'U' };
      42              : static const symbol s_2[] = { 'I' };
      43              : static const symbol s_3[] = { 'Y' };
      44              : static const symbol s_4[] = { 0xC3, 0xAB };
      45              : static const symbol s_5[] = { 'H', 'e' };
      46              : static const symbol s_6[] = { 0xC3, 0xAF };
      47              : static const symbol s_7[] = { 'H', 'i' };
      48              : static const symbol s_8[] = { 'Y' };
      49              : static const symbol s_9[] = { 'U' };
      50              : static const symbol s_10[] = { 'i' };
      51              : static const symbol s_11[] = { 'u' };
      52              : static const symbol s_12[] = { 'y' };
      53              : static const symbol s_13[] = { 0xC3, 0xAB };
      54              : static const symbol s_14[] = { 0xC3, 0xAF };
      55              : static const symbol s_15[] = { 'i', 'c' };
      56              : static const symbol s_16[] = { 'i', 'q', 'U' };
      57              : static const symbol s_17[] = { 'l', 'o', 'g' };
      58              : static const symbol s_18[] = { 'u' };
      59              : static const symbol s_19[] = { 'e', 'n', 't' };
      60              : static const symbol s_20[] = { 'a', 't' };
      61              : static const symbol s_21[] = { 'e', 'u', 'x' };
      62              : static const symbol s_22[] = { 'i' };
      63              : static const symbol s_23[] = { 'a', 'b', 'l' };
      64              : static const symbol s_24[] = { 'i', 'q', 'U' };
      65              : static const symbol s_25[] = { 'a', 't' };
      66              : static const symbol s_26[] = { 'i', 'c' };
      67              : static const symbol s_27[] = { 'i', 'q', 'U' };
      68              : static const symbol s_28[] = { 'e', 'a', 'u' };
      69              : static const symbol s_29[] = { 'a', 'l' };
      70              : static const symbol s_30[] = { 'o', 'u' };
      71              : static const symbol s_31[] = { 'e', 'u', 'x' };
      72              : static const symbol s_32[] = { 'a', 'n', 't' };
      73              : static const symbol s_33[] = { 'e', 'n', 't' };
      74              : static const symbol s_34[] = { 'H', 'i' };
      75              : static const symbol s_35[] = { 'i' };
      76              : static const symbol s_36[] = { 0xC3, 0xA9 };
      77              : static const symbol s_37[] = { 0xC3, 0xA8 };
      78              : static const symbol s_38[] = { 'e' };
      79              : static const symbol s_39[] = { 'i' };
      80              : static const symbol s_40[] = { 0xC3, 0xA7 };
      81              : static const symbol s_41[] = { 'c' };
      82              : 
      83              : static const symbol s_0_0[3] = { 'c', 'o', 'l' };
      84              : static const symbol s_0_1[2] = { 'n', 'i' };
      85              : static const symbol s_0_2[3] = { 'p', 'a', 'r' };
      86              : static const symbol s_0_3[3] = { 't', 'a', 'p' };
      87              : static const struct among a_0[4] = {
      88              : { 3, s_0_0, 0, -1, 0},
      89              : { 2, s_0_1, 0, 1, 0},
      90              : { 3, s_0_2, 0, -1, 0},
      91              : { 3, s_0_3, 0, -1, 0}
      92              : };
      93              : 
      94              : static const symbol s_1_1[1] = { 'H' };
      95              : static const symbol s_1_2[2] = { 'H', 'e' };
      96              : static const symbol s_1_3[2] = { 'H', 'i' };
      97              : static const symbol s_1_4[1] = { 'I' };
      98              : static const symbol s_1_5[1] = { 'U' };
      99              : static const symbol s_1_6[1] = { 'Y' };
     100              : static const struct among a_1[7] = {
     101              : { 0, 0, 0, 7, 0},
     102              : { 1, s_1_1, -1, 6, 0},
     103              : { 2, s_1_2, -1, 4, 0},
     104              : { 2, s_1_3, -2, 5, 0},
     105              : { 1, s_1_4, -4, 1, 0},
     106              : { 1, s_1_5, -5, 2, 0},
     107              : { 1, s_1_6, -6, 3, 0}
     108              : };
     109              : 
     110              : static const symbol s_2_0[3] = { 'i', 'q', 'U' };
     111              : static const symbol s_2_1[3] = { 'a', 'b', 'l' };
     112              : static const symbol s_2_2[4] = { 'I', 0xC3, 0xA8, 'r' };
     113              : static const symbol s_2_3[4] = { 'i', 0xC3, 0xA8, 'r' };
     114              : static const symbol s_2_4[3] = { 'e', 'u', 's' };
     115              : static const symbol s_2_5[2] = { 'i', 'v' };
     116              : static const struct among a_2[6] = {
     117              : { 3, s_2_0, 0, 3, 0},
     118              : { 3, s_2_1, 0, 3, 0},
     119              : { 4, s_2_2, 0, 4, 0},
     120              : { 4, s_2_3, 0, 4, 0},
     121              : { 3, s_2_4, 0, 2, 0},
     122              : { 2, s_2_5, 0, 1, 0}
     123              : };
     124              : 
     125              : static const symbol s_3_0[2] = { 'i', 'c' };
     126              : static const symbol s_3_1[4] = { 'a', 'b', 'i', 'l' };
     127              : static const symbol s_3_2[2] = { 'i', 'v' };
     128              : static const struct among a_3[3] = {
     129              : { 2, s_3_0, 0, 2, 0},
     130              : { 4, s_3_1, 0, 1, 0},
     131              : { 2, s_3_2, 0, 3, 0}
     132              : };
     133              : 
     134              : static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' };
     135              : static const symbol s_4_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
     136              : static const symbol s_4_2[4] = { 'a', 'n', 'c', 'e' };
     137              : static const symbol s_4_3[4] = { 'e', 'n', 'c', 'e' };
     138              : static const symbol s_4_4[5] = { 'l', 'o', 'g', 'i', 'e' };
     139              : static const symbol s_4_5[4] = { 'a', 'b', 'l', 'e' };
     140              : static const symbol s_4_6[4] = { 'i', 's', 'm', 'e' };
     141              : static const symbol s_4_7[4] = { 'e', 'u', 's', 'e' };
     142              : static const symbol s_4_8[4] = { 'i', 's', 't', 'e' };
     143              : static const symbol s_4_9[3] = { 'i', 'v', 'e' };
     144              : static const symbol s_4_10[2] = { 'i', 'f' };
     145              : static const symbol s_4_11[5] = { 'u', 's', 'i', 'o', 'n' };
     146              : static const symbol s_4_12[5] = { 'a', 't', 'i', 'o', 'n' };
     147              : static const symbol s_4_13[5] = { 'u', 't', 'i', 'o', 'n' };
     148              : static const symbol s_4_14[5] = { 'a', 't', 'e', 'u', 'r' };
     149              : static const symbol s_4_15[5] = { 'i', 'q', 'U', 'e', 's' };
     150              : static const symbol s_4_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' };
     151              : static const symbol s_4_17[5] = { 'a', 'n', 'c', 'e', 's' };
     152              : static const symbol s_4_18[5] = { 'e', 'n', 'c', 'e', 's' };
     153              : static const symbol s_4_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
     154              : static const symbol s_4_20[5] = { 'a', 'b', 'l', 'e', 's' };
     155              : static const symbol s_4_21[5] = { 'i', 's', 'm', 'e', 's' };
     156              : static const symbol s_4_22[5] = { 'e', 'u', 's', 'e', 's' };
     157              : static const symbol s_4_23[5] = { 'i', 's', 't', 'e', 's' };
     158              : static const symbol s_4_24[4] = { 'i', 'v', 'e', 's' };
     159              : static const symbol s_4_25[3] = { 'i', 'f', 's' };
     160              : static const symbol s_4_26[6] = { 'u', 's', 'i', 'o', 'n', 's' };
     161              : static const symbol s_4_27[6] = { 'a', 't', 'i', 'o', 'n', 's' };
     162              : static const symbol s_4_28[6] = { 'u', 't', 'i', 'o', 'n', 's' };
     163              : static const symbol s_4_29[6] = { 'a', 't', 'e', 'u', 'r', 's' };
     164              : static const symbol s_4_30[5] = { 'm', 'e', 'n', 't', 's' };
     165              : static const symbol s_4_31[6] = { 'e', 'm', 'e', 'n', 't', 's' };
     166              : static const symbol s_4_32[9] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' };
     167              : static const symbol s_4_33[5] = { 'i', 't', 0xC3, 0xA9, 's' };
     168              : static const symbol s_4_34[4] = { 'm', 'e', 'n', 't' };
     169              : static const symbol s_4_35[5] = { 'e', 'm', 'e', 'n', 't' };
     170              : static const symbol s_4_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' };
     171              : static const symbol s_4_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' };
     172              : static const symbol s_4_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' };
     173              : static const symbol s_4_39[3] = { 'a', 'u', 'x' };
     174              : static const symbol s_4_40[4] = { 'e', 'a', 'u', 'x' };
     175              : static const symbol s_4_41[3] = { 'e', 'u', 'x' };
     176              : static const symbol s_4_42[3] = { 'o', 'u', 'x' };
     177              : static const symbol s_4_43[4] = { 'i', 't', 0xC3, 0xA9 };
     178              : static const struct among a_4[44] = {
     179              : { 4, s_4_0, 0, 1, 0},
     180              : { 6, s_4_1, 0, 2, 0},
     181              : { 4, s_4_2, 0, 1, 0},
     182              : { 4, s_4_3, 0, 5, 0},
     183              : { 5, s_4_4, 0, 3, 0},
     184              : { 4, s_4_5, 0, 1, 0},
     185              : { 4, s_4_6, 0, 1, 0},
     186              : { 4, s_4_7, 0, 12, 0},
     187              : { 4, s_4_8, 0, 1, 0},
     188              : { 3, s_4_9, 0, 8, 0},
     189              : { 2, s_4_10, 0, 8, 0},
     190              : { 5, s_4_11, 0, 4, 0},
     191              : { 5, s_4_12, 0, 2, 0},
     192              : { 5, s_4_13, 0, 4, 0},
     193              : { 5, s_4_14, 0, 2, 0},
     194              : { 5, s_4_15, 0, 1, 0},
     195              : { 7, s_4_16, 0, 2, 0},
     196              : { 5, s_4_17, 0, 1, 0},
     197              : { 5, s_4_18, 0, 5, 0},
     198              : { 6, s_4_19, 0, 3, 0},
     199              : { 5, s_4_20, 0, 1, 0},
     200              : { 5, s_4_21, 0, 1, 0},
     201              : { 5, s_4_22, 0, 12, 0},
     202              : { 5, s_4_23, 0, 1, 0},
     203              : { 4, s_4_24, 0, 8, 0},
     204              : { 3, s_4_25, 0, 8, 0},
     205              : { 6, s_4_26, 0, 4, 0},
     206              : { 6, s_4_27, 0, 2, 0},
     207              : { 6, s_4_28, 0, 4, 0},
     208              : { 6, s_4_29, 0, 2, 0},
     209              : { 5, s_4_30, 0, 16, 0},
     210              : { 6, s_4_31, -1, 6, 0},
     211              : { 9, s_4_32, -1, 13, 0},
     212              : { 5, s_4_33, 0, 7, 0},
     213              : { 4, s_4_34, 0, 16, 0},
     214              : { 5, s_4_35, -1, 6, 0},
     215              : { 8, s_4_36, -1, 13, 0},
     216              : { 6, s_4_37, -3, 14, 0},
     217              : { 6, s_4_38, -4, 15, 0},
     218              : { 3, s_4_39, 0, 10, 0},
     219              : { 4, s_4_40, -1, 9, 0},
     220              : { 3, s_4_41, 0, 1, 0},
     221              : { 3, s_4_42, 0, 11, 0},
     222              : { 4, s_4_43, 0, 7, 0}
     223              : };
     224              : 
     225              : static const symbol s_5_0[3] = { 'i', 'r', 'a' };
     226              : static const symbol s_5_1[2] = { 'i', 'e' };
     227              : static const symbol s_5_2[4] = { 'i', 's', 's', 'e' };
     228              : static const symbol s_5_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' };
     229              : static const symbol s_5_4[1] = { 'i' };
     230              : static const symbol s_5_5[4] = { 'i', 'r', 'a', 'i' };
     231              : static const symbol s_5_6[2] = { 'i', 'r' };
     232              : static const symbol s_5_7[4] = { 'i', 'r', 'a', 's' };
     233              : static const symbol s_5_8[3] = { 'i', 'e', 's' };
     234              : static const symbol s_5_9[5] = { 0xC3, 0xAE, 'm', 'e', 's' };
     235              : static const symbol s_5_10[5] = { 'i', 's', 's', 'e', 's' };
     236              : static const symbol s_5_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' };
     237              : static const symbol s_5_12[5] = { 0xC3, 0xAE, 't', 'e', 's' };
     238              : static const symbol s_5_13[2] = { 'i', 's' };
     239              : static const symbol s_5_14[5] = { 'i', 'r', 'a', 'i', 's' };
     240              : static const symbol s_5_15[6] = { 'i', 's', 's', 'a', 'i', 's' };
     241              : static const symbol s_5_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' };
     242              : static const symbol s_5_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' };
     243              : static const symbol s_5_18[5] = { 'i', 'r', 'o', 'n', 's' };
     244              : static const symbol s_5_19[6] = { 'i', 's', 's', 'o', 'n', 's' };
     245              : static const symbol s_5_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' };
     246              : static const symbol s_5_21[2] = { 'i', 't' };
     247              : static const symbol s_5_22[5] = { 'i', 'r', 'a', 'i', 't' };
     248              : static const symbol s_5_23[6] = { 'i', 's', 's', 'a', 'i', 't' };
     249              : static const symbol s_5_24[6] = { 'i', 's', 's', 'a', 'n', 't' };
     250              : static const symbol s_5_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' };
     251              : static const symbol s_5_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' };
     252              : static const symbol s_5_27[5] = { 'i', 'r', 'e', 'n', 't' };
     253              : static const symbol s_5_28[6] = { 'i', 's', 's', 'e', 'n', 't' };
     254              : static const symbol s_5_29[5] = { 'i', 'r', 'o', 'n', 't' };
     255              : static const symbol s_5_30[3] = { 0xC3, 0xAE, 't' };
     256              : static const symbol s_5_31[5] = { 'i', 'r', 'i', 'e', 'z' };
     257              : static const symbol s_5_32[6] = { 'i', 's', 's', 'i', 'e', 'z' };
     258              : static const symbol s_5_33[4] = { 'i', 'r', 'e', 'z' };
     259              : static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' };
     260              : static const struct among a_5[35] = {
     261              : { 3, s_5_0, 0, 1, 0},
     262              : { 2, s_5_1, 0, 1, 0},
     263              : { 4, s_5_2, 0, 1, 0},
     264              : { 7, s_5_3, 0, 1, 0},
     265              : { 1, s_5_4, 0, 1, 0},
     266              : { 4, s_5_5, -1, 1, 0},
     267              : { 2, s_5_6, 0, 1, 0},
     268              : { 4, s_5_7, 0, 1, 0},
     269              : { 3, s_5_8, 0, 1, 0},
     270              : { 5, s_5_9, 0, 1, 0},
     271              : { 5, s_5_10, 0, 1, 0},
     272              : { 8, s_5_11, 0, 1, 0},
     273              : { 5, s_5_12, 0, 1, 0},
     274              : { 2, s_5_13, 0, 1, 0},
     275              : { 5, s_5_14, -1, 1, 0},
     276              : { 6, s_5_15, -2, 1, 0},
     277              : { 6, s_5_16, 0, 1, 0},
     278              : { 7, s_5_17, 0, 1, 0},
     279              : { 5, s_5_18, 0, 1, 0},
     280              : { 6, s_5_19, 0, 1, 0},
     281              : { 7, s_5_20, 0, 1, 0},
     282              : { 2, s_5_21, 0, 1, 0},
     283              : { 5, s_5_22, -1, 1, 0},
     284              : { 6, s_5_23, -2, 1, 0},
     285              : { 6, s_5_24, 0, 1, 0},
     286              : { 7, s_5_25, 0, 1, 0},
     287              : { 8, s_5_26, 0, 1, 0},
     288              : { 5, s_5_27, 0, 1, 0},
     289              : { 6, s_5_28, 0, 1, 0},
     290              : { 5, s_5_29, 0, 1, 0},
     291              : { 3, s_5_30, 0, 1, 0},
     292              : { 5, s_5_31, 0, 1, 0},
     293              : { 6, s_5_32, 0, 1, 0},
     294              : { 4, s_5_33, 0, 1, 0},
     295              : { 5, s_5_34, 0, 1, 0}
     296              : };
     297              : 
     298              : static const symbol s_6_0[2] = { 'a', 'l' };
     299              : static const symbol s_6_1[4] = { 0xC3, 0xA9, 'p', 'l' };
     300              : static const symbol s_6_2[3] = { 'a', 'u', 'v' };
     301              : static const struct among a_6[3] = {
     302              : { 2, s_6_0, 0, 1, 0},
     303              : { 4, s_6_1, 0, -1, 0},
     304              : { 3, s_6_2, 0, -1, 0}
     305              : };
     306              : 
     307              : static const symbol s_7_0[1] = { 'a' };
     308              : static const symbol s_7_1[3] = { 'e', 'r', 'a' };
     309              : static const symbol s_7_2[4] = { 'a', 'i', 's', 'e' };
     310              : static const symbol s_7_3[4] = { 'a', 's', 's', 'e' };
     311              : static const symbol s_7_4[4] = { 'a', 'n', 't', 'e' };
     312              : static const symbol s_7_5[3] = { 0xC3, 0xA9, 'e' };
     313              : static const symbol s_7_6[2] = { 'a', 'i' };
     314              : static const symbol s_7_7[4] = { 'e', 'r', 'a', 'i' };
     315              : static const symbol s_7_8[2] = { 'e', 'r' };
     316              : static const symbol s_7_9[2] = { 'a', 's' };
     317              : static const symbol s_7_10[4] = { 'e', 'r', 'a', 's' };
     318              : static const symbol s_7_11[5] = { 0xC3, 0xA2, 'm', 'e', 's' };
     319              : static const symbol s_7_12[5] = { 'a', 'i', 's', 'e', 's' };
     320              : static const symbol s_7_13[5] = { 'a', 's', 's', 'e', 's' };
     321              : static const symbol s_7_14[5] = { 'a', 'n', 't', 'e', 's' };
     322              : static const symbol s_7_15[5] = { 0xC3, 0xA2, 't', 'e', 's' };
     323              : static const symbol s_7_16[4] = { 0xC3, 0xA9, 'e', 's' };
     324              : static const symbol s_7_17[3] = { 'a', 'i', 's' };
     325              : static const symbol s_7_18[4] = { 'e', 'a', 'i', 's' };
     326              : static const symbol s_7_19[5] = { 'e', 'r', 'a', 'i', 's' };
     327              : static const symbol s_7_20[4] = { 'i', 'o', 'n', 's' };
     328              : static const symbol s_7_21[6] = { 'e', 'r', 'i', 'o', 'n', 's' };
     329              : static const symbol s_7_22[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' };
     330              : static const symbol s_7_23[5] = { 'e', 'r', 'o', 'n', 's' };
     331              : static const symbol s_7_24[4] = { 'a', 'n', 't', 's' };
     332              : static const symbol s_7_25[3] = { 0xC3, 0xA9, 's' };
     333              : static const symbol s_7_26[3] = { 'a', 'i', 't' };
     334              : static const symbol s_7_27[5] = { 'e', 'r', 'a', 'i', 't' };
     335              : static const symbol s_7_28[3] = { 'a', 'n', 't' };
     336              : static const symbol s_7_29[5] = { 'a', 'I', 'e', 'n', 't' };
     337              : static const symbol s_7_30[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' };
     338              : static const symbol s_7_31[6] = { 0xC3, 0xA8, 'r', 'e', 'n', 't' };
     339              : static const symbol s_7_32[6] = { 'a', 's', 's', 'e', 'n', 't' };
     340              : static const symbol s_7_33[5] = { 'e', 'r', 'o', 'n', 't' };
     341              : static const symbol s_7_34[3] = { 0xC3, 0xA2, 't' };
     342              : static const symbol s_7_35[2] = { 'e', 'z' };
     343              : static const symbol s_7_36[3] = { 'i', 'e', 'z' };
     344              : static const symbol s_7_37[5] = { 'e', 'r', 'i', 'e', 'z' };
     345              : static const symbol s_7_38[6] = { 'a', 's', 's', 'i', 'e', 'z' };
     346              : static const symbol s_7_39[4] = { 'e', 'r', 'e', 'z' };
     347              : static const symbol s_7_40[2] = { 0xC3, 0xA9 };
     348              : static const struct among a_7[41] = {
     349              : { 1, s_7_0, 0, 3, 0},
     350              : { 3, s_7_1, -1, 2, 0},
     351              : { 4, s_7_2, 0, 4, 0},
     352              : { 4, s_7_3, 0, 3, 0},
     353              : { 4, s_7_4, 0, 3, 0},
     354              : { 3, s_7_5, 0, 2, 0},
     355              : { 2, s_7_6, 0, 3, 0},
     356              : { 4, s_7_7, -1, 2, 0},
     357              : { 2, s_7_8, 0, 2, 0},
     358              : { 2, s_7_9, 0, 3, 0},
     359              : { 4, s_7_10, -1, 2, 0},
     360              : { 5, s_7_11, 0, 3, 0},
     361              : { 5, s_7_12, 0, 4, 0},
     362              : { 5, s_7_13, 0, 3, 0},
     363              : { 5, s_7_14, 0, 3, 0},
     364              : { 5, s_7_15, 0, 3, 0},
     365              : { 4, s_7_16, 0, 2, 0},
     366              : { 3, s_7_17, 0, 4, 0},
     367              : { 4, s_7_18, -1, 2, 0},
     368              : { 5, s_7_19, -2, 2, 0},
     369              : { 4, s_7_20, 0, 1, 0},
     370              : { 6, s_7_21, -1, 2, 0},
     371              : { 7, s_7_22, -2, 3, 0},
     372              : { 5, s_7_23, 0, 2, 0},
     373              : { 4, s_7_24, 0, 3, 0},
     374              : { 3, s_7_25, 0, 2, 0},
     375              : { 3, s_7_26, 0, 3, 0},
     376              : { 5, s_7_27, -1, 2, 0},
     377              : { 3, s_7_28, 0, 3, 0},
     378              : { 5, s_7_29, 0, 3, 0},
     379              : { 7, s_7_30, -1, 2, 0},
     380              : { 6, s_7_31, 0, 2, 0},
     381              : { 6, s_7_32, 0, 3, 0},
     382              : { 5, s_7_33, 0, 2, 0},
     383              : { 3, s_7_34, 0, 3, 0},
     384              : { 2, s_7_35, 0, 2, 0},
     385              : { 3, s_7_36, -1, 2, 0},
     386              : { 5, s_7_37, -1, 2, 0},
     387              : { 6, s_7_38, -2, 3, 0},
     388              : { 4, s_7_39, -4, 2, 0},
     389              : { 2, s_7_40, 0, 2, 0}
     390              : };
     391              : 
     392              : static const symbol s_8_0[1] = { 'e' };
     393              : static const symbol s_8_1[5] = { 'I', 0xC3, 0xA8, 'r', 'e' };
     394              : static const symbol s_8_2[5] = { 'i', 0xC3, 0xA8, 'r', 'e' };
     395              : static const symbol s_8_3[3] = { 'i', 'o', 'n' };
     396              : static const symbol s_8_4[3] = { 'I', 'e', 'r' };
     397              : static const symbol s_8_5[3] = { 'i', 'e', 'r' };
     398              : static const struct among a_8[6] = {
     399              : { 1, s_8_0, 0, 3, 0},
     400              : { 5, s_8_1, -1, 2, 0},
     401              : { 5, s_8_2, -2, 2, 0},
     402              : { 3, s_8_3, 0, 1, 0},
     403              : { 3, s_8_4, 0, 2, 0},
     404              : { 3, s_8_5, 0, 2, 0}
     405              : };
     406              : 
     407              : static const symbol s_9_0[3] = { 'e', 'l', 'l' };
     408              : static const symbol s_9_1[4] = { 'e', 'i', 'l', 'l' };
     409              : static const symbol s_9_2[3] = { 'e', 'n', 'n' };
     410              : static const symbol s_9_3[3] = { 'o', 'n', 'n' };
     411              : static const symbol s_9_4[3] = { 'e', 't', 't' };
     412              : static const struct among a_9[5] = {
     413              : { 3, s_9_0, 0, -1, 0},
     414              : { 4, s_9_1, 0, -1, 0},
     415              : { 3, s_9_2, 0, -1, 0},
     416              : { 3, s_9_3, 0, -1, 0},
     417              : { 3, s_9_4, 0, -1, 0}
     418              : };
     419              : 
     420              : 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 };
     421              : 
     422              : static const unsigned char g_oux_ending[] = { 65, 85 };
     423              : 
     424              : static const unsigned char g_elision_char[] = { 131, 14, 3 };
     425              : 
     426              : 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 };
     427              : 
     428            0 : static int r_elisions(struct SN_env * z) {
     429            0 :     z->bra = z->c;
     430              :     do {
     431            0 :         int v_1 = z->c;
     432            0 :         if (in_grouping_U(z, g_elision_char, 99, 116, 0)) goto lab0;
     433            0 :         break;
     434            0 :     lab0:
     435            0 :         z->c = v_1;
     436            0 :         if (!(eq_s(z, 2, s_0))) return 0;
     437              :     } while (0);
     438            0 :     if (z->c == z->l || z->p[z->c] != '\'') return 0;
     439            0 :     z->c++;
     440            0 :     z->ket = z->c;
     441            0 :     if (z->c < z->l) goto lab1;
     442            0 :     return 0;
     443            0 : lab1:
     444              :     {
     445            0 :         int ret = slice_del(z);
     446            0 :         if (ret < 0) return ret;
     447              :     }
     448            0 :     return 1;
     449              : }
     450              : 
     451            0 : static int r_prelude(struct SN_env * z) {
     452            0 :     while (1) {
     453            0 :         int v_1 = z->c;
     454            0 :         while (1) {
     455            0 :             int v_2 = z->c;
     456              :             do {
     457            0 :                 int v_3 = z->c;
     458            0 :                 if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2;
     459            0 :                 z->bra = z->c;
     460              :                 do {
     461            0 :                     int v_4 = z->c;
     462            0 :                     if (z->c == z->l || z->p[z->c] != 'u') goto lab3;
     463            0 :                     z->c++;
     464            0 :                     z->ket = z->c;
     465            0 :                     if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab3;
     466              :                     {
     467            0 :                         int ret = slice_from_s(z, 1, s_1);
     468            0 :                         if (ret < 0) return ret;
     469              :                     }
     470            0 :                     break;
     471            0 :                 lab3:
     472            0 :                     z->c = v_4;
     473            0 :                     if (z->c == z->l || z->p[z->c] != 'i') goto lab4;
     474            0 :                     z->c++;
     475            0 :                     z->ket = z->c;
     476            0 :                     if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab4;
     477              :                     {
     478            0 :                         int ret = slice_from_s(z, 1, s_2);
     479            0 :                         if (ret < 0) return ret;
     480              :                     }
     481            0 :                     break;
     482            0 :                 lab4:
     483            0 :                     z->c = v_4;
     484            0 :                     if (z->c == z->l || z->p[z->c] != 'y') goto lab2;
     485            0 :                     z->c++;
     486            0 :                     z->ket = z->c;
     487              :                     {
     488            0 :                         int ret = slice_from_s(z, 1, s_3);
     489            0 :                         if (ret < 0) return ret;
     490              :                     }
     491              :                 } while (0);
     492            0 :                 break;
     493            0 :             lab2:
     494            0 :                 z->c = v_3;
     495            0 :                 z->bra = z->c;
     496            0 :                 if (!(eq_s(z, 2, s_4))) goto lab5;
     497            0 :                 z->ket = z->c;
     498              :                 {
     499            0 :                     int ret = slice_from_s(z, 2, s_5);
     500            0 :                     if (ret < 0) return ret;
     501              :                 }
     502            0 :                 break;
     503            0 :             lab5:
     504            0 :                 z->c = v_3;
     505            0 :                 z->bra = z->c;
     506            0 :                 if (!(eq_s(z, 2, s_6))) goto lab6;
     507            0 :                 z->ket = z->c;
     508              :                 {
     509            0 :                     int ret = slice_from_s(z, 2, s_7);
     510            0 :                     if (ret < 0) return ret;
     511              :                 }
     512            0 :                 break;
     513            0 :             lab6:
     514            0 :                 z->c = v_3;
     515            0 :                 z->bra = z->c;
     516            0 :                 if (z->c == z->l || z->p[z->c] != 'y') goto lab7;
     517            0 :                 z->c++;
     518            0 :                 z->ket = z->c;
     519            0 :                 if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab7;
     520              :                 {
     521            0 :                     int ret = slice_from_s(z, 1, s_8);
     522            0 :                     if (ret < 0) return ret;
     523              :                 }
     524            0 :                 break;
     525            0 :             lab7:
     526            0 :                 z->c = v_3;
     527            0 :                 if (z->c == z->l || z->p[z->c] != 'q') goto lab1;
     528            0 :                 z->c++;
     529            0 :                 z->bra = z->c;
     530            0 :                 if (z->c == z->l || z->p[z->c] != 'u') goto lab1;
     531            0 :                 z->c++;
     532            0 :                 z->ket = z->c;
     533              :                 {
     534            0 :                     int ret = slice_from_s(z, 1, s_9);
     535            0 :                     if (ret < 0) return ret;
     536              :                 }
     537              :             } while (0);
     538            0 :             z->c = v_2;
     539            0 :             break;
     540            0 :         lab1:
     541            0 :             z->c = v_2;
     542              :             {
     543            0 :                 int ret = skip_utf8(z->p, z->c, z->l, 1);
     544            0 :                 if (ret < 0) goto lab0;
     545            0 :                 z->c = ret;
     546              :             }
     547              :         }
     548            0 :         continue;
     549            0 :     lab0:
     550            0 :         z->c = v_1;
     551            0 :         break;
     552              :     }
     553            0 :     return 1;
     554              : }
     555              : 
     556            0 : static int r_mark_regions(struct SN_env * z) {
     557              :     int among_var;
     558            0 :     ((SN_local *)z)->i_pV = z->l;
     559            0 :     ((SN_local *)z)->i_p1 = z->l;
     560            0 :     ((SN_local *)z)->i_p2 = z->l;
     561              :     {
     562            0 :         int v_1 = z->c;
     563              :         do {
     564            0 :             int v_2 = z->c;
     565            0 :             if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab1;
     566            0 :             if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab1;
     567              :             {
     568            0 :                 int ret = skip_utf8(z->p, z->c, z->l, 1);
     569            0 :                 if (ret < 0) goto lab1;
     570            0 :                 z->c = ret;
     571              :             }
     572            0 :             break;
     573            0 :         lab1:
     574            0 :             z->c = v_2;
     575            0 :             if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((33282 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab2;
     576            0 :             among_var = find_among(z, a_0, 4, 0);
     577            0 :             if (!among_var) goto lab2;
     578            0 :             switch (among_var) {
     579            0 :                 case 1:
     580            0 :                     if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2;
     581            0 :                     break;
     582              :             }
     583            0 :             break;
     584            0 :         lab2:
     585            0 :             z->c = v_2;
     586              :             {
     587            0 :                 int ret = skip_utf8(z->p, z->c, z->l, 1);
     588            0 :                 if (ret < 0) goto lab0;
     589            0 :                 z->c = ret;
     590              :             }
     591              :             {
     592            0 :                 int ret = out_grouping_U(z, g_v, 97, 251, 1);
     593            0 :                 if (ret < 0) goto lab0;
     594            0 :                 z->c += ret;
     595              :             }
     596              :         } while (0);
     597            0 :         ((SN_local *)z)->i_pV = z->c;
     598            0 :     lab0:
     599            0 :         z->c = v_1;
     600              :     }
     601              :     {
     602            0 :         int v_3 = z->c;
     603              :         {
     604            0 :             int ret = out_grouping_U(z, g_v, 97, 251, 1);
     605            0 :             if (ret < 0) goto lab3;
     606            0 :             z->c += ret;
     607              :         }
     608              :         {
     609            0 :             int ret = in_grouping_U(z, g_v, 97, 251, 1);
     610            0 :             if (ret < 0) goto lab3;
     611            0 :             z->c += ret;
     612              :         }
     613            0 :         ((SN_local *)z)->i_p1 = z->c;
     614              :         {
     615            0 :             int ret = out_grouping_U(z, g_v, 97, 251, 1);
     616            0 :             if (ret < 0) goto lab3;
     617            0 :             z->c += ret;
     618              :         }
     619              :         {
     620            0 :             int ret = in_grouping_U(z, g_v, 97, 251, 1);
     621            0 :             if (ret < 0) goto lab3;
     622            0 :             z->c += ret;
     623              :         }
     624            0 :         ((SN_local *)z)->i_p2 = z->c;
     625            0 :     lab3:
     626            0 :         z->c = v_3;
     627              :     }
     628            0 :     return 1;
     629              : }
     630              : 
     631            0 : static int r_postlude(struct SN_env * z) {
     632              :     int among_var;
     633            0 :     while (1) {
     634            0 :         int v_1 = z->c;
     635            0 :         z->bra = z->c;
     636            0 :         if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else
     637            0 :         among_var = find_among(z, a_1, 7, 0);
     638            0 :         z->ket = z->c;
     639            0 :         switch (among_var) {
     640            0 :             case 1:
     641              :                 {
     642            0 :                     int ret = slice_from_s(z, 1, s_10);
     643            0 :                     if (ret < 0) return ret;
     644              :                 }
     645            0 :                 break;
     646            0 :             case 2:
     647              :                 {
     648            0 :                     int ret = slice_from_s(z, 1, s_11);
     649            0 :                     if (ret < 0) return ret;
     650              :                 }
     651            0 :                 break;
     652            0 :             case 3:
     653              :                 {
     654            0 :                     int ret = slice_from_s(z, 1, s_12);
     655            0 :                     if (ret < 0) return ret;
     656              :                 }
     657            0 :                 break;
     658            0 :             case 4:
     659              :                 {
     660            0 :                     int ret = slice_from_s(z, 2, s_13);
     661            0 :                     if (ret < 0) return ret;
     662              :                 }
     663            0 :                 break;
     664            0 :             case 5:
     665              :                 {
     666            0 :                     int ret = slice_from_s(z, 2, s_14);
     667            0 :                     if (ret < 0) return ret;
     668              :                 }
     669            0 :                 break;
     670            0 :             case 6:
     671              :                 {
     672            0 :                     int ret = slice_del(z);
     673            0 :                     if (ret < 0) return ret;
     674              :                 }
     675            0 :                 break;
     676            0 :             case 7:
     677              :                 {
     678            0 :                     int ret = skip_utf8(z->p, z->c, z->l, 1);
     679            0 :                     if (ret < 0) goto lab0;
     680            0 :                     z->c = ret;
     681              :                 }
     682            0 :                 break;
     683              :         }
     684            0 :         continue;
     685            0 :     lab0:
     686            0 :         z->c = v_1;
     687            0 :         break;
     688              :     }
     689            0 :     return 1;
     690              : }
     691              : 
     692            0 : static int r_RV(struct SN_env * z) {
     693            0 :     return ((SN_local *)z)->i_pV <= z->c;
     694              : }
     695              : 
     696            0 : static int r_R1(struct SN_env * z) {
     697            0 :     return ((SN_local *)z)->i_p1 <= z->c;
     698              : }
     699              : 
     700            0 : static int r_R2(struct SN_env * z) {
     701            0 :     return ((SN_local *)z)->i_p2 <= z->c;
     702              : }
     703              : 
     704            0 : static int r_standard_suffix(struct SN_env * z) {
     705              :     int among_var;
     706            0 :     z->ket = z->c;
     707            0 :     among_var = find_among_b(z, a_4, 44, 0);
     708            0 :     if (!among_var) return 0;
     709            0 :     z->bra = z->c;
     710            0 :     switch (among_var) {
     711            0 :         case 1:
     712              :             {
     713            0 :                 int ret = r_R2(z);
     714            0 :                 if (ret <= 0) return ret;
     715              :             }
     716              :             {
     717            0 :                 int ret = slice_del(z);
     718            0 :                 if (ret < 0) return ret;
     719              :             }
     720            0 :             break;
     721            0 :         case 2:
     722              :             {
     723            0 :                 int ret = r_R2(z);
     724            0 :                 if (ret <= 0) return ret;
     725              :             }
     726              :             {
     727            0 :                 int ret = slice_del(z);
     728            0 :                 if (ret < 0) return ret;
     729              :             }
     730              :             {
     731            0 :                 int v_1 = z->l - z->c;
     732            0 :                 z->ket = z->c;
     733            0 :                 if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - v_1; goto lab0; }
     734            0 :                 z->bra = z->c;
     735              :                 do {
     736            0 :                     int v_2 = z->l - z->c;
     737              :                     {
     738            0 :                         int ret = r_R2(z);
     739            0 :                         if (ret == 0) goto lab1;
     740            0 :                         if (ret < 0) return ret;
     741              :                     }
     742              :                     {
     743            0 :                         int ret = slice_del(z);
     744            0 :                         if (ret < 0) return ret;
     745              :                     }
     746            0 :                     break;
     747            0 :                 lab1:
     748            0 :                     z->c = z->l - v_2;
     749              :                     {
     750            0 :                         int ret = slice_from_s(z, 3, s_16);
     751            0 :                         if (ret < 0) return ret;
     752              :                     }
     753              :                 } while (0);
     754            0 :             lab0:
     755              :                 ;
     756              :             }
     757            0 :             break;
     758            0 :         case 3:
     759              :             {
     760            0 :                 int ret = r_R2(z);
     761            0 :                 if (ret <= 0) return ret;
     762              :             }
     763              :             {
     764            0 :                 int ret = slice_from_s(z, 3, s_17);
     765            0 :                 if (ret < 0) return ret;
     766              :             }
     767            0 :             break;
     768            0 :         case 4:
     769              :             {
     770            0 :                 int ret = r_R2(z);
     771            0 :                 if (ret <= 0) return ret;
     772              :             }
     773              :             {
     774            0 :                 int ret = slice_from_s(z, 1, s_18);
     775            0 :                 if (ret < 0) return ret;
     776              :             }
     777            0 :             break;
     778            0 :         case 5:
     779              :             {
     780            0 :                 int ret = r_R2(z);
     781            0 :                 if (ret <= 0) return ret;
     782              :             }
     783              :             {
     784            0 :                 int ret = slice_from_s(z, 3, s_19);
     785            0 :                 if (ret < 0) return ret;
     786              :             }
     787            0 :             break;
     788            0 :         case 6:
     789              :             {
     790            0 :                 int ret = r_RV(z);
     791            0 :                 if (ret <= 0) return ret;
     792              :             }
     793              :             {
     794            0 :                 int ret = slice_del(z);
     795            0 :                 if (ret < 0) return ret;
     796              :             }
     797              :             {
     798            0 :                 int v_3 = z->l - z->c;
     799            0 :                 z->ket = z->c;
     800            0 :                 among_var = find_among_b(z, a_2, 6, 0);
     801            0 :                 if (!among_var) { z->c = z->l - v_3; goto lab2; }
     802            0 :                 z->bra = z->c;
     803            0 :                 switch (among_var) {
     804            0 :                     case 1:
     805              :                         {
     806            0 :                             int ret = r_R2(z);
     807            0 :                             if (ret == 0) { z->c = z->l - v_3; goto lab2; }
     808            0 :                             if (ret < 0) return ret;
     809              :                         }
     810              :                         {
     811            0 :                             int ret = slice_del(z);
     812            0 :                             if (ret < 0) return ret;
     813              :                         }
     814            0 :                         z->ket = z->c;
     815            0 :                         if (!(eq_s_b(z, 2, s_20))) { z->c = z->l - v_3; goto lab2; }
     816            0 :                         z->bra = z->c;
     817              :                         {
     818            0 :                             int ret = r_R2(z);
     819            0 :                             if (ret == 0) { z->c = z->l - v_3; goto lab2; }
     820            0 :                             if (ret < 0) return ret;
     821              :                         }
     822              :                         {
     823            0 :                             int ret = slice_del(z);
     824            0 :                             if (ret < 0) return ret;
     825              :                         }
     826            0 :                         break;
     827            0 :                     case 2:
     828              :                         do {
     829            0 :                             int v_4 = z->l - z->c;
     830              :                             {
     831            0 :                                 int ret = r_R2(z);
     832            0 :                                 if (ret == 0) goto lab3;
     833            0 :                                 if (ret < 0) return ret;
     834              :                             }
     835              :                             {
     836            0 :                                 int ret = slice_del(z);
     837            0 :                                 if (ret < 0) return ret;
     838              :                             }
     839            0 :                             break;
     840            0 :                         lab3:
     841            0 :                             z->c = z->l - v_4;
     842              :                             {
     843            0 :                                 int ret = r_R1(z);
     844            0 :                                 if (ret == 0) { z->c = z->l - v_3; goto lab2; }
     845            0 :                                 if (ret < 0) return ret;
     846              :                             }
     847              :                             {
     848            0 :                                 int ret = slice_from_s(z, 3, s_21);
     849            0 :                                 if (ret < 0) return ret;
     850              :                             }
     851              :                         } while (0);
     852            0 :                         break;
     853            0 :                     case 3:
     854              :                         {
     855            0 :                             int ret = r_R2(z);
     856            0 :                             if (ret == 0) { z->c = z->l - v_3; goto lab2; }
     857            0 :                             if (ret < 0) return ret;
     858              :                         }
     859              :                         {
     860            0 :                             int ret = slice_del(z);
     861            0 :                             if (ret < 0) return ret;
     862              :                         }
     863            0 :                         break;
     864            0 :                     case 4:
     865              :                         {
     866            0 :                             int ret = r_RV(z);
     867            0 :                             if (ret == 0) { z->c = z->l - v_3; goto lab2; }
     868            0 :                             if (ret < 0) return ret;
     869              :                         }
     870              :                         {
     871            0 :                             int ret = slice_from_s(z, 1, s_22);
     872            0 :                             if (ret < 0) return ret;
     873              :                         }
     874            0 :                         break;
     875              :                 }
     876            0 :             lab2:
     877              :                 ;
     878              :             }
     879            0 :             break;
     880            0 :         case 7:
     881              :             {
     882            0 :                 int ret = r_R2(z);
     883            0 :                 if (ret <= 0) return ret;
     884              :             }
     885              :             {
     886            0 :                 int ret = slice_del(z);
     887            0 :                 if (ret < 0) return ret;
     888              :             }
     889              :             {
     890            0 :                 int v_5 = z->l - z->c;
     891            0 :                 z->ket = z->c;
     892            0 :                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - v_5; goto lab4; }
     893            0 :                 among_var = find_among_b(z, a_3, 3, 0);
     894            0 :                 if (!among_var) { z->c = z->l - v_5; goto lab4; }
     895            0 :                 z->bra = z->c;
     896            0 :                 switch (among_var) {
     897            0 :                     case 1:
     898              :                         do {
     899            0 :                             int v_6 = z->l - z->c;
     900              :                             {
     901            0 :                                 int ret = r_R2(z);
     902            0 :                                 if (ret == 0) goto lab5;
     903            0 :                                 if (ret < 0) return ret;
     904              :                             }
     905              :                             {
     906            0 :                                 int ret = slice_del(z);
     907            0 :                                 if (ret < 0) return ret;
     908              :                             }
     909            0 :                             break;
     910            0 :                         lab5:
     911            0 :                             z->c = z->l - v_6;
     912              :                             {
     913            0 :                                 int ret = slice_from_s(z, 3, s_23);
     914            0 :                                 if (ret < 0) return ret;
     915              :                             }
     916              :                         } while (0);
     917            0 :                         break;
     918            0 :                     case 2:
     919              :                         do {
     920            0 :                             int v_7 = z->l - z->c;
     921              :                             {
     922            0 :                                 int ret = r_R2(z);
     923            0 :                                 if (ret == 0) goto lab6;
     924            0 :                                 if (ret < 0) return ret;
     925              :                             }
     926              :                             {
     927            0 :                                 int ret = slice_del(z);
     928            0 :                                 if (ret < 0) return ret;
     929              :                             }
     930            0 :                             break;
     931            0 :                         lab6:
     932            0 :                             z->c = z->l - v_7;
     933              :                             {
     934            0 :                                 int ret = slice_from_s(z, 3, s_24);
     935            0 :                                 if (ret < 0) return ret;
     936              :                             }
     937              :                         } while (0);
     938            0 :                         break;
     939            0 :                     case 3:
     940              :                         {
     941            0 :                             int ret = r_R2(z);
     942            0 :                             if (ret == 0) { z->c = z->l - v_5; goto lab4; }
     943            0 :                             if (ret < 0) return ret;
     944              :                         }
     945              :                         {
     946            0 :                             int ret = slice_del(z);
     947            0 :                             if (ret < 0) return ret;
     948              :                         }
     949            0 :                         break;
     950              :                 }
     951            0 :             lab4:
     952              :                 ;
     953              :             }
     954            0 :             break;
     955            0 :         case 8:
     956              :             {
     957            0 :                 int ret = r_R2(z);
     958            0 :                 if (ret <= 0) return ret;
     959              :             }
     960              :             {
     961            0 :                 int ret = slice_del(z);
     962            0 :                 if (ret < 0) return ret;
     963              :             }
     964              :             {
     965            0 :                 int v_8 = z->l - z->c;
     966            0 :                 z->ket = z->c;
     967            0 :                 if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - v_8; goto lab7; }
     968            0 :                 z->bra = z->c;
     969              :                 {
     970            0 :                     int ret = r_R2(z);
     971            0 :                     if (ret == 0) { z->c = z->l - v_8; goto lab7; }
     972            0 :                     if (ret < 0) return ret;
     973              :                 }
     974              :                 {
     975            0 :                     int ret = slice_del(z);
     976            0 :                     if (ret < 0) return ret;
     977              :                 }
     978            0 :                 z->ket = z->c;
     979            0 :                 if (!(eq_s_b(z, 2, s_26))) { z->c = z->l - v_8; goto lab7; }
     980            0 :                 z->bra = z->c;
     981              :                 do {
     982            0 :                     int v_9 = z->l - z->c;
     983              :                     {
     984            0 :                         int ret = r_R2(z);
     985            0 :                         if (ret == 0) goto lab8;
     986            0 :                         if (ret < 0) return ret;
     987              :                     }
     988              :                     {
     989            0 :                         int ret = slice_del(z);
     990            0 :                         if (ret < 0) return ret;
     991              :                     }
     992            0 :                     break;
     993            0 :                 lab8:
     994            0 :                     z->c = z->l - v_9;
     995              :                     {
     996            0 :                         int ret = slice_from_s(z, 3, s_27);
     997            0 :                         if (ret < 0) return ret;
     998              :                     }
     999              :                 } while (0);
    1000            0 :             lab7:
    1001              :                 ;
    1002              :             }
    1003            0 :             break;
    1004            0 :         case 9:
    1005              :             {
    1006            0 :                 int ret = slice_from_s(z, 3, s_28);
    1007            0 :                 if (ret < 0) return ret;
    1008              :             }
    1009            0 :             break;
    1010            0 :         case 10:
    1011              :             {
    1012            0 :                 int ret = r_R1(z);
    1013            0 :                 if (ret <= 0) return ret;
    1014              :             }
    1015              :             {
    1016            0 :                 int ret = slice_from_s(z, 2, s_29);
    1017            0 :                 if (ret < 0) return ret;
    1018              :             }
    1019            0 :             break;
    1020            0 :         case 11:
    1021            0 :             if (in_grouping_b_U(z, g_oux_ending, 98, 112, 0)) return 0;
    1022              :             {
    1023            0 :                 int ret = slice_from_s(z, 2, s_30);
    1024            0 :                 if (ret < 0) return ret;
    1025              :             }
    1026            0 :             break;
    1027            0 :         case 12:
    1028              :             do {
    1029            0 :                 int v_10 = z->l - z->c;
    1030              :                 {
    1031            0 :                     int ret = r_R2(z);
    1032            0 :                     if (ret == 0) goto lab9;
    1033            0 :                     if (ret < 0) return ret;
    1034              :                 }
    1035              :                 {
    1036            0 :                     int ret = slice_del(z);
    1037            0 :                     if (ret < 0) return ret;
    1038              :                 }
    1039            0 :                 break;
    1040            0 :             lab9:
    1041            0 :                 z->c = z->l - v_10;
    1042              :                 {
    1043            0 :                     int ret = r_R1(z);
    1044            0 :                     if (ret <= 0) return ret;
    1045              :                 }
    1046              :                 {
    1047            0 :                     int ret = slice_from_s(z, 3, s_31);
    1048            0 :                     if (ret < 0) return ret;
    1049              :                 }
    1050              :             } while (0);
    1051            0 :             break;
    1052            0 :         case 13:
    1053              :             {
    1054            0 :                 int ret = r_R1(z);
    1055            0 :                 if (ret <= 0) return ret;
    1056              :             }
    1057            0 :             if (out_grouping_b_U(z, g_v, 97, 251, 0)) return 0;
    1058              :             {
    1059            0 :                 int ret = slice_del(z);
    1060            0 :                 if (ret < 0) return ret;
    1061              :             }
    1062            0 :             break;
    1063            0 :         case 14:
    1064              :             {
    1065            0 :                 int ret = r_RV(z);
    1066            0 :                 if (ret <= 0) return ret;
    1067              :             }
    1068              :             {
    1069            0 :                 int ret = slice_from_s(z, 3, s_32);
    1070            0 :                 if (ret < 0) return ret;
    1071              :             }
    1072            0 :             return 0;
    1073              :             break;
    1074            0 :         case 15:
    1075              :             {
    1076            0 :                 int ret = r_RV(z);
    1077            0 :                 if (ret <= 0) return ret;
    1078              :             }
    1079              :             {
    1080            0 :                 int ret = slice_from_s(z, 3, s_33);
    1081            0 :                 if (ret < 0) return ret;
    1082              :             }
    1083            0 :             return 0;
    1084              :             break;
    1085            0 :         case 16:
    1086              :             {
    1087            0 :                 int v_11 = z->l - z->c;
    1088            0 :                 if (in_grouping_b_U(z, g_v, 97, 251, 0)) return 0;
    1089              :                 {
    1090            0 :                     int ret = r_RV(z);
    1091            0 :                     if (ret <= 0) return ret;
    1092              :                 }
    1093            0 :                 z->c = z->l - v_11;
    1094              :             }
    1095              :             {
    1096            0 :                 int ret = slice_del(z);
    1097            0 :                 if (ret < 0) return ret;
    1098              :             }
    1099            0 :             return 0;
    1100              :             break;
    1101              :     }
    1102            0 :     return 1;
    1103              : }
    1104              : 
    1105            0 : static int r_i_verb_suffix(struct SN_env * z) {
    1106              :     {
    1107              :         int v_1;
    1108            0 :         if (z->c < ((SN_local *)z)->i_pV) return 0;
    1109            0 :         v_1 = z->lb; z->lb = ((SN_local *)z)->i_pV;
    1110            0 :         z->ket = z->c;
    1111            0 :         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = v_1; return 0; }
    1112            0 :         if (!find_among_b(z, a_5, 35, 0)) { z->lb = v_1; return 0; }
    1113            0 :         z->bra = z->c;
    1114              :         {
    1115            0 :             int v_2 = z->l - z->c;
    1116            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0;
    1117            0 :             z->c--;
    1118            0 :             { z->lb = v_1; return 0; }
    1119            0 :         lab0:
    1120            0 :             z->c = z->l - v_2;
    1121              :         }
    1122            0 :         if (out_grouping_b_U(z, g_v, 97, 251, 0)) { z->lb = v_1; return 0; }
    1123              :         {
    1124            0 :             int ret = slice_del(z);
    1125            0 :             if (ret < 0) return ret;
    1126              :         }
    1127            0 :         z->lb = v_1;
    1128              :     }
    1129            0 :     return 1;
    1130              : }
    1131              : 
    1132            0 : static int r_verb_suffix(struct SN_env * z) {
    1133              :     int among_var;
    1134              :     {
    1135              :         int v_1;
    1136            0 :         if (z->c < ((SN_local *)z)->i_pV) return 0;
    1137            0 :         v_1 = z->lb; z->lb = ((SN_local *)z)->i_pV;
    1138            0 :         z->ket = z->c;
    1139            0 :         among_var = find_among_b(z, a_7, 41, 0);
    1140            0 :         if (!among_var) { z->lb = v_1; return 0; }
    1141            0 :         z->bra = z->c;
    1142            0 :         z->lb = v_1;
    1143              :     }
    1144            0 :     switch (among_var) {
    1145            0 :         case 1:
    1146              :             {
    1147            0 :                 int ret = r_R2(z);
    1148            0 :                 if (ret <= 0) return ret;
    1149              :             }
    1150              :             {
    1151            0 :                 int ret = slice_del(z);
    1152            0 :                 if (ret < 0) return ret;
    1153              :             }
    1154            0 :             break;
    1155            0 :         case 2:
    1156              :             {
    1157            0 :                 int ret = slice_del(z);
    1158            0 :                 if (ret < 0) return ret;
    1159              :             }
    1160            0 :             break;
    1161            0 :         case 3:
    1162              :             {
    1163            0 :                 int v_2 = z->l - z->c;
    1164            0 :                 if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - v_2; goto lab0; }
    1165            0 :                 z->c--;
    1166              :                 {
    1167            0 :                     int ret = r_RV(z);
    1168            0 :                     if (ret == 0) { z->c = z->l - v_2; goto lab0; }
    1169            0 :                     if (ret < 0) return ret;
    1170              :                 }
    1171            0 :                 z->bra = z->c;
    1172            0 :             lab0:
    1173              :                 ;
    1174              :             }
    1175              :             {
    1176            0 :                 int ret = slice_del(z);
    1177            0 :                 if (ret < 0) return ret;
    1178              :             }
    1179            0 :             break;
    1180            0 :         case 4:
    1181              :             {
    1182            0 :                 int v_3 = z->l - z->c;
    1183            0 :                 if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 108 && z->p[z->c - 1] != 118)) goto lab1;
    1184            0 :                 among_var = find_among_b(z, a_6, 3, 0);
    1185            0 :                 if (!among_var) goto lab1;
    1186            0 :                 switch (among_var) {
    1187            0 :                     case 1:
    1188              :                         {
    1189            0 :                             int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
    1190            0 :                             if (ret < 0) goto lab1;
    1191            0 :                             z->c = ret;
    1192              :                         }
    1193            0 :                         if (z->c > z->lb) goto lab1;
    1194            0 :                         break;
    1195              :                 }
    1196            0 :                 return 0;
    1197            0 :             lab1:
    1198            0 :                 z->c = z->l - v_3;
    1199              :             }
    1200              :             {
    1201            0 :                 int ret = slice_del(z);
    1202            0 :                 if (ret < 0) return ret;
    1203              :             }
    1204            0 :             break;
    1205              :     }
    1206            0 :     return 1;
    1207              : }
    1208              : 
    1209            0 : static int r_residual_suffix(struct SN_env * z) {
    1210              :     int among_var;
    1211              :     {
    1212            0 :         int v_1 = z->l - z->c;
    1213            0 :         z->ket = z->c;
    1214            0 :         if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - v_1; goto lab0; }
    1215            0 :         z->c--;
    1216            0 :         z->bra = z->c;
    1217              :         {
    1218            0 :             int v_2 = z->l - z->c;
    1219              :             do {
    1220            0 :                 int v_3 = z->l - z->c;
    1221            0 :                 if (!(eq_s_b(z, 2, s_34))) goto lab1;
    1222            0 :                 break;
    1223            0 :             lab1:
    1224            0 :                 z->c = z->l - v_3;
    1225            0 :                 if (out_grouping_b_U(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - v_1; goto lab0; }
    1226              :             } while (0);
    1227            0 :             z->c = z->l - v_2;
    1228              :         }
    1229              :         {
    1230            0 :             int ret = slice_del(z);
    1231            0 :             if (ret < 0) return ret;
    1232              :         }
    1233            0 :     lab0:
    1234              :         ;
    1235              :     }
    1236              :     {
    1237              :         int v_4;
    1238            0 :         if (z->c < ((SN_local *)z)->i_pV) return 0;
    1239            0 :         v_4 = z->lb; z->lb = ((SN_local *)z)->i_pV;
    1240            0 :         z->ket = z->c;
    1241            0 :         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = v_4; return 0; }
    1242            0 :         among_var = find_among_b(z, a_8, 6, 0);
    1243            0 :         if (!among_var) { z->lb = v_4; return 0; }
    1244            0 :         z->bra = z->c;
    1245            0 :         switch (among_var) {
    1246            0 :             case 1:
    1247              :                 {
    1248            0 :                     int ret = r_R2(z);
    1249            0 :                     if (ret == 0) { z->lb = v_4; return 0; }
    1250            0 :                     if (ret < 0) return ret;
    1251              :                 }
    1252              :                 do {
    1253            0 :                     int v_5 = z->l - z->c;
    1254            0 :                     if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab2;
    1255            0 :                     z->c--;
    1256            0 :                     break;
    1257            0 :                 lab2:
    1258            0 :                     z->c = z->l - v_5;
    1259            0 :                     if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = v_4; return 0; }
    1260            0 :                     z->c--;
    1261              :                 } while (0);
    1262              :                 {
    1263            0 :                     int ret = slice_del(z);
    1264            0 :                     if (ret < 0) return ret;
    1265              :                 }
    1266            0 :                 break;
    1267            0 :             case 2:
    1268              :                 {
    1269            0 :                     int ret = slice_from_s(z, 1, s_35);
    1270            0 :                     if (ret < 0) return ret;
    1271              :                 }
    1272            0 :                 break;
    1273            0 :             case 3:
    1274              :                 {
    1275            0 :                     int ret = slice_del(z);
    1276            0 :                     if (ret < 0) return ret;
    1277              :                 }
    1278            0 :                 break;
    1279              :         }
    1280            0 :         z->lb = v_4;
    1281              :     }
    1282            0 :     return 1;
    1283              : }
    1284              : 
    1285            0 : static int r_un_double(struct SN_env * z) {
    1286              :     {
    1287            0 :         int v_1 = z->l - z->c;
    1288            0 :         if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
    1289            0 :         if (!find_among_b(z, a_9, 5, 0)) return 0;
    1290            0 :         z->c = z->l - v_1;
    1291              :     }
    1292            0 :     z->ket = z->c;
    1293              :     {
    1294            0 :         int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
    1295            0 :         if (ret < 0) return 0;
    1296            0 :         z->c = ret;
    1297              :     }
    1298            0 :     z->bra = z->c;
    1299              :     {
    1300            0 :         int ret = slice_del(z);
    1301            0 :         if (ret < 0) return ret;
    1302              :     }
    1303            0 :     return 1;
    1304              : }
    1305              : 
    1306            0 : static int r_un_accent(struct SN_env * z) {
    1307            0 :     {
    1308            0 :         int v_1 = 1;
    1309              :         while (1) {
    1310            0 :             if (out_grouping_b_U(z, g_v, 97, 251, 0)) goto lab0;
    1311            0 :             v_1--;
    1312            0 :             continue;
    1313            0 :         lab0:
    1314            0 :             break;
    1315              :         }
    1316            0 :         if (v_1 > 0) return 0;
    1317              :     }
    1318            0 :     z->ket = z->c;
    1319              :     do {
    1320            0 :         int v_2 = z->l - z->c;
    1321            0 :         if (!(eq_s_b(z, 2, s_36))) goto lab1;
    1322            0 :         break;
    1323            0 :     lab1:
    1324            0 :         z->c = z->l - v_2;
    1325            0 :         if (!(eq_s_b(z, 2, s_37))) return 0;
    1326              :     } while (0);
    1327            0 :     z->bra = z->c;
    1328              :     {
    1329            0 :         int ret = slice_from_s(z, 1, s_38);
    1330            0 :         if (ret < 0) return ret;
    1331              :     }
    1332            0 :     return 1;
    1333              : }
    1334              : 
    1335            0 : extern int french_UTF_8_stem(struct SN_env * z) {
    1336              :     {
    1337            0 :         int v_1 = z->c;
    1338              :         {
    1339            0 :             int ret = r_elisions(z);
    1340            0 :             if (ret < 0) return ret;
    1341              :         }
    1342            0 :         z->c = v_1;
    1343              :     }
    1344              :     {
    1345            0 :         int v_2 = z->c;
    1346              :         {
    1347            0 :             int ret = r_prelude(z);
    1348            0 :             if (ret < 0) return ret;
    1349              :         }
    1350            0 :         z->c = v_2;
    1351              :     }
    1352              :     {
    1353            0 :         int ret = r_mark_regions(z);
    1354            0 :         if (ret < 0) return ret;
    1355              :     }
    1356            0 :     z->lb = z->c; z->c = z->l;
    1357              :     {
    1358            0 :         int v_3 = z->l - z->c;
    1359              :         do {
    1360            0 :             int v_4 = z->l - z->c;
    1361              :             {
    1362            0 :                 int v_5 = z->l - z->c;
    1363              :                 do {
    1364            0 :                     int v_6 = z->l - z->c;
    1365              :                     {
    1366            0 :                         int ret = r_standard_suffix(z);
    1367            0 :                         if (ret == 0) goto lab2;
    1368            0 :                         if (ret < 0) return ret;
    1369              :                     }
    1370            0 :                     break;
    1371            0 :                 lab2:
    1372            0 :                     z->c = z->l - v_6;
    1373              :                     {
    1374            0 :                         int ret = r_i_verb_suffix(z);
    1375            0 :                         if (ret == 0) goto lab3;
    1376            0 :                         if (ret < 0) return ret;
    1377              :                     }
    1378            0 :                     break;
    1379            0 :                 lab3:
    1380            0 :                     z->c = z->l - v_6;
    1381              :                     {
    1382            0 :                         int ret = r_verb_suffix(z);
    1383            0 :                         if (ret == 0) goto lab1;
    1384            0 :                         if (ret < 0) return ret;
    1385              :                     }
    1386              :                 } while (0);
    1387            0 :                 z->c = z->l - v_5;
    1388              :                 {
    1389            0 :                     int v_7 = z->l - z->c;
    1390            0 :                     z->ket = z->c;
    1391              :                     do {
    1392            0 :                         int v_8 = z->l - z->c;
    1393            0 :                         if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab5;
    1394            0 :                         z->c--;
    1395            0 :                         z->bra = z->c;
    1396              :                         {
    1397            0 :                             int ret = slice_from_s(z, 1, s_39);
    1398            0 :                             if (ret < 0) return ret;
    1399              :                         }
    1400            0 :                         break;
    1401            0 :                     lab5:
    1402            0 :                         z->c = z->l - v_8;
    1403            0 :                         if (!(eq_s_b(z, 2, s_40))) { z->c = z->l - v_7; goto lab4; }
    1404            0 :                         z->bra = z->c;
    1405              :                         {
    1406            0 :                             int ret = slice_from_s(z, 1, s_41);
    1407            0 :                             if (ret < 0) return ret;
    1408              :                         }
    1409              :                     } while (0);
    1410            0 :                 lab4:
    1411              :                     ;
    1412              :                 }
    1413              :             }
    1414            0 :             break;
    1415            0 :         lab1:
    1416            0 :             z->c = z->l - v_4;
    1417              :             {
    1418            0 :                 int ret = r_residual_suffix(z);
    1419            0 :                 if (ret == 0) goto lab0;
    1420            0 :                 if (ret < 0) return ret;
    1421              :             }
    1422              :         } while (0);
    1423            0 :     lab0:
    1424            0 :         z->c = z->l - v_3;
    1425              :     }
    1426              :     {
    1427            0 :         int v_9 = z->l - z->c;
    1428              :         {
    1429            0 :             int ret = r_un_double(z);
    1430            0 :             if (ret < 0) return ret;
    1431              :         }
    1432            0 :         z->c = z->l - v_9;
    1433              :     }
    1434              :     {
    1435            0 :         int v_10 = z->l - z->c;
    1436              :         {
    1437            0 :             int ret = r_un_accent(z);
    1438            0 :             if (ret < 0) return ret;
    1439              :         }
    1440            0 :         z->c = z->l - v_10;
    1441              :     }
    1442            0 :     z->c = z->lb;
    1443              :     {
    1444            0 :         int v_11 = z->c;
    1445              :         {
    1446            0 :             int ret = r_postlude(z);
    1447            0 :             if (ret < 0) return ret;
    1448              :         }
    1449            0 :         z->c = v_11;
    1450              :     }
    1451            0 :     return 1;
    1452              : }
    1453              : 
    1454            0 : extern struct SN_env * french_UTF_8_create_env(void) {
    1455            0 :     struct SN_env * z = SN_new_env(sizeof(SN_local));
    1456            0 :     if (z) {
    1457            0 :         ((SN_local *)z)->i_p2 = 0;
    1458            0 :         ((SN_local *)z)->i_p1 = 0;
    1459            0 :         ((SN_local *)z)->i_pV = 0;
    1460              :     }
    1461            0 :     return z;
    1462              : }
    1463              : 
    1464            0 : extern void french_UTF_8_close_env(struct SN_env * z) {
    1465            0 :     SN_delete_env(z);
    1466            0 : }
    1467              : 
        

Generated by: LCOV version 2.0-1