LCOV - code coverage report
Current view: top level - src/backend/snowball/libstemmer - stem_UTF_8_turkish.c (source / functions) Coverage Total Hit
Test: PostgreSQL 19devel Lines: 0.0 % 1171 0
Test Date: 2026-03-01 05:14:52 Functions: 0.0 % 44 0
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /* Generated from turkish.sbl by Snowball 3.0.0 - https://snowballstem.org/ */
       2              : 
       3              : #include "stem_UTF_8_turkish.h"
       4              : 
       5              : #include <stddef.h>
       6              : 
       7              : #include "snowball_runtime.h"
       8              : 
       9              : struct SN_local {
      10              :     struct SN_env z;
      11              :     unsigned char b_continue_stemming_noun_suffixes;
      12              : };
      13              : 
      14              : typedef struct SN_local SN_local;
      15              : 
      16              : #ifdef __cplusplus
      17              : extern "C" {
      18              : #endif
      19              : extern int turkish_UTF_8_stem(struct SN_env * z);
      20              : #ifdef __cplusplus
      21              : }
      22              : #endif
      23              : 
      24              : static int r_stem_suffix_chain_before_ki(struct SN_env * z);
      25              : static int r_stem_noun_suffixes(struct SN_env * z);
      26              : static int r_stem_nominal_verb_suffixes(struct SN_env * z);
      27              : static int r_remove_proper_noun_suffix(struct SN_env * z);
      28              : static int r_postlude(struct SN_env * z);
      29              : static int r_post_process_last_consonants(struct SN_env * z);
      30              : static int r_more_than_one_syllable_word(struct SN_env * z);
      31              : static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z);
      32              : static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z);
      33              : static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z);
      34              : static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z);
      35              : static int r_mark_ysA(struct SN_env * z);
      36              : static int r_mark_ymUs_(struct SN_env * z);
      37              : static int r_mark_yken(struct SN_env * z);
      38              : static int r_mark_yDU(struct SN_env * z);
      39              : static int r_mark_yUz(struct SN_env * z);
      40              : static int r_mark_yUm(struct SN_env * z);
      41              : static int r_mark_yU(struct SN_env * z);
      42              : static int r_mark_ylA(struct SN_env * z);
      43              : static int r_mark_yA(struct SN_env * z);
      44              : static int r_mark_possessives(struct SN_env * z);
      45              : static int r_mark_sUnUz(struct SN_env * z);
      46              : static int r_mark_sUn(struct SN_env * z);
      47              : static int r_mark_sU(struct SN_env * z);
      48              : static int r_mark_nUz(struct SN_env * z);
      49              : static int r_mark_nUn(struct SN_env * z);
      50              : static int r_mark_nU(struct SN_env * z);
      51              : static int r_mark_ndAn(struct SN_env * z);
      52              : static int r_mark_ndA(struct SN_env * z);
      53              : static int r_mark_ncA(struct SN_env * z);
      54              : static int r_mark_nA(struct SN_env * z);
      55              : static int r_mark_lArI(struct SN_env * z);
      56              : static int r_mark_lAr(struct SN_env * z);
      57              : static int r_mark_ki(struct SN_env * z);
      58              : static int r_mark_DUr(struct SN_env * z);
      59              : static int r_mark_DAn(struct SN_env * z);
      60              : static int r_mark_DA(struct SN_env * z);
      61              : static int r_mark_cAsInA(struct SN_env * z);
      62              : static int r_is_reserved_word(struct SN_env * z);
      63              : static int r_check_vowel_harmony(struct SN_env * z);
      64              : static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z);
      65              : 
      66              : static const symbol s_0[] = { 0xC4, 0xB1 };
      67              : static const symbol s_1[] = { 0xC3, 0xB6 };
      68              : static const symbol s_2[] = { 0xC3, 0xBC };
      69              : static const symbol s_3[] = { 'k', 'i' };
      70              : static const symbol s_4[] = { 'k', 'e', 'n' };
      71              : static const symbol s_5[] = { 'p' };
      72              : static const symbol s_6[] = { 0xC3, 0xA7 };
      73              : static const symbol s_7[] = { 't' };
      74              : static const symbol s_8[] = { 'k' };
      75              : static const symbol s_9[] = { 0xC4, 0xB1 };
      76              : static const symbol s_10[] = { 0xC4, 0xB1 };
      77              : static const symbol s_11[] = { 'i' };
      78              : static const symbol s_12[] = { 'u' };
      79              : static const symbol s_13[] = { 0xC3, 0xB6 };
      80              : static const symbol s_14[] = { 0xC3, 0xBC };
      81              : static const symbol s_15[] = { 0xC3, 0xBC };
      82              : static const symbol s_16[] = { 'a', 'd' };
      83              : static const symbol s_17[] = { 's', 'o', 'y' };
      84              : 
      85              : static const symbol s_0_0[1] = { 'm' };
      86              : static const symbol s_0_1[1] = { 'n' };
      87              : static const symbol s_0_2[3] = { 'm', 'i', 'z' };
      88              : static const symbol s_0_3[3] = { 'n', 'i', 'z' };
      89              : static const symbol s_0_4[3] = { 'm', 'u', 'z' };
      90              : static const symbol s_0_5[3] = { 'n', 'u', 'z' };
      91              : static const symbol s_0_6[4] = { 'm', 0xC4, 0xB1, 'z' };
      92              : static const symbol s_0_7[4] = { 'n', 0xC4, 0xB1, 'z' };
      93              : static const symbol s_0_8[4] = { 'm', 0xC3, 0xBC, 'z' };
      94              : static const symbol s_0_9[4] = { 'n', 0xC3, 0xBC, 'z' };
      95              : static const struct among a_0[10] = {
      96              : { 1, s_0_0, 0, -1, 0},
      97              : { 1, s_0_1, 0, -1, 0},
      98              : { 3, s_0_2, 0, -1, 0},
      99              : { 3, s_0_3, 0, -1, 0},
     100              : { 3, s_0_4, 0, -1, 0},
     101              : { 3, s_0_5, 0, -1, 0},
     102              : { 4, s_0_6, 0, -1, 0},
     103              : { 4, s_0_7, 0, -1, 0},
     104              : { 4, s_0_8, 0, -1, 0},
     105              : { 4, s_0_9, 0, -1, 0}
     106              : };
     107              : 
     108              : static const symbol s_1_0[4] = { 'l', 'e', 'r', 'i' };
     109              : static const symbol s_1_1[5] = { 'l', 'a', 'r', 0xC4, 0xB1 };
     110              : static const struct among a_1[2] = {
     111              : { 4, s_1_0, 0, -1, 0},
     112              : { 5, s_1_1, 0, -1, 0}
     113              : };
     114              : 
     115              : static const symbol s_2_0[2] = { 'n', 'i' };
     116              : static const symbol s_2_1[2] = { 'n', 'u' };
     117              : static const symbol s_2_2[3] = { 'n', 0xC4, 0xB1 };
     118              : static const symbol s_2_3[3] = { 'n', 0xC3, 0xBC };
     119              : static const struct among a_2[4] = {
     120              : { 2, s_2_0, 0, -1, 0},
     121              : { 2, s_2_1, 0, -1, 0},
     122              : { 3, s_2_2, 0, -1, 0},
     123              : { 3, s_2_3, 0, -1, 0}
     124              : };
     125              : 
     126              : static const symbol s_3_0[2] = { 'i', 'n' };
     127              : static const symbol s_3_1[2] = { 'u', 'n' };
     128              : static const symbol s_3_2[3] = { 0xC4, 0xB1, 'n' };
     129              : static const symbol s_3_3[3] = { 0xC3, 0xBC, 'n' };
     130              : static const struct among a_3[4] = {
     131              : { 2, s_3_0, 0, -1, 0},
     132              : { 2, s_3_1, 0, -1, 0},
     133              : { 3, s_3_2, 0, -1, 0},
     134              : { 3, s_3_3, 0, -1, 0}
     135              : };
     136              : 
     137              : static const symbol s_5_0[2] = { 'n', 'a' };
     138              : static const symbol s_5_1[2] = { 'n', 'e' };
     139              : static const struct among a_5[2] = {
     140              : { 2, s_5_0, 0, -1, 0},
     141              : { 2, s_5_1, 0, -1, 0}
     142              : };
     143              : 
     144              : static const symbol s_6_0[2] = { 'd', 'a' };
     145              : static const symbol s_6_1[2] = { 't', 'a' };
     146              : static const symbol s_6_2[2] = { 'd', 'e' };
     147              : static const symbol s_6_3[2] = { 't', 'e' };
     148              : static const struct among a_6[4] = {
     149              : { 2, s_6_0, 0, -1, 0},
     150              : { 2, s_6_1, 0, -1, 0},
     151              : { 2, s_6_2, 0, -1, 0},
     152              : { 2, s_6_3, 0, -1, 0}
     153              : };
     154              : 
     155              : static const symbol s_7_0[3] = { 'n', 'd', 'a' };
     156              : static const symbol s_7_1[3] = { 'n', 'd', 'e' };
     157              : static const struct among a_7[2] = {
     158              : { 3, s_7_0, 0, -1, 0},
     159              : { 3, s_7_1, 0, -1, 0}
     160              : };
     161              : 
     162              : static const symbol s_8_0[3] = { 'd', 'a', 'n' };
     163              : static const symbol s_8_1[3] = { 't', 'a', 'n' };
     164              : static const symbol s_8_2[3] = { 'd', 'e', 'n' };
     165              : static const symbol s_8_3[3] = { 't', 'e', 'n' };
     166              : static const struct among a_8[4] = {
     167              : { 3, s_8_0, 0, -1, 0},
     168              : { 3, s_8_1, 0, -1, 0},
     169              : { 3, s_8_2, 0, -1, 0},
     170              : { 3, s_8_3, 0, -1, 0}
     171              : };
     172              : 
     173              : static const symbol s_9_0[4] = { 'n', 'd', 'a', 'n' };
     174              : static const symbol s_9_1[4] = { 'n', 'd', 'e', 'n' };
     175              : static const struct among a_9[2] = {
     176              : { 4, s_9_0, 0, -1, 0},
     177              : { 4, s_9_1, 0, -1, 0}
     178              : };
     179              : 
     180              : static const symbol s_10_0[2] = { 'l', 'a' };
     181              : static const symbol s_10_1[2] = { 'l', 'e' };
     182              : static const struct among a_10[2] = {
     183              : { 2, s_10_0, 0, -1, 0},
     184              : { 2, s_10_1, 0, -1, 0}
     185              : };
     186              : 
     187              : static const symbol s_11_0[2] = { 'c', 'a' };
     188              : static const symbol s_11_1[2] = { 'c', 'e' };
     189              : static const struct among a_11[2] = {
     190              : { 2, s_11_0, 0, -1, 0},
     191              : { 2, s_11_1, 0, -1, 0}
     192              : };
     193              : 
     194              : static const symbol s_12_0[2] = { 'i', 'm' };
     195              : static const symbol s_12_1[2] = { 'u', 'm' };
     196              : static const symbol s_12_2[3] = { 0xC4, 0xB1, 'm' };
     197              : static const symbol s_12_3[3] = { 0xC3, 0xBC, 'm' };
     198              : static const struct among a_12[4] = {
     199              : { 2, s_12_0, 0, -1, 0},
     200              : { 2, s_12_1, 0, -1, 0},
     201              : { 3, s_12_2, 0, -1, 0},
     202              : { 3, s_12_3, 0, -1, 0}
     203              : };
     204              : 
     205              : static const symbol s_13_0[3] = { 's', 'i', 'n' };
     206              : static const symbol s_13_1[3] = { 's', 'u', 'n' };
     207              : static const symbol s_13_2[4] = { 's', 0xC4, 0xB1, 'n' };
     208              : static const symbol s_13_3[4] = { 's', 0xC3, 0xBC, 'n' };
     209              : static const struct among a_13[4] = {
     210              : { 3, s_13_0, 0, -1, 0},
     211              : { 3, s_13_1, 0, -1, 0},
     212              : { 4, s_13_2, 0, -1, 0},
     213              : { 4, s_13_3, 0, -1, 0}
     214              : };
     215              : 
     216              : static const symbol s_14_0[2] = { 'i', 'z' };
     217              : static const symbol s_14_1[2] = { 'u', 'z' };
     218              : static const symbol s_14_2[3] = { 0xC4, 0xB1, 'z' };
     219              : static const symbol s_14_3[3] = { 0xC3, 0xBC, 'z' };
     220              : static const struct among a_14[4] = {
     221              : { 2, s_14_0, 0, -1, 0},
     222              : { 2, s_14_1, 0, -1, 0},
     223              : { 3, s_14_2, 0, -1, 0},
     224              : { 3, s_14_3, 0, -1, 0}
     225              : };
     226              : 
     227              : static const symbol s_15_0[5] = { 's', 'i', 'n', 'i', 'z' };
     228              : static const symbol s_15_1[5] = { 's', 'u', 'n', 'u', 'z' };
     229              : static const symbol s_15_2[7] = { 's', 0xC4, 0xB1, 'n', 0xC4, 0xB1, 'z' };
     230              : static const symbol s_15_3[7] = { 's', 0xC3, 0xBC, 'n', 0xC3, 0xBC, 'z' };
     231              : static const struct among a_15[4] = {
     232              : { 5, s_15_0, 0, -1, 0},
     233              : { 5, s_15_1, 0, -1, 0},
     234              : { 7, s_15_2, 0, -1, 0},
     235              : { 7, s_15_3, 0, -1, 0}
     236              : };
     237              : 
     238              : static const symbol s_16_0[3] = { 'l', 'a', 'r' };
     239              : static const symbol s_16_1[3] = { 'l', 'e', 'r' };
     240              : static const struct among a_16[2] = {
     241              : { 3, s_16_0, 0, -1, 0},
     242              : { 3, s_16_1, 0, -1, 0}
     243              : };
     244              : 
     245              : static const symbol s_17_0[3] = { 'n', 'i', 'z' };
     246              : static const symbol s_17_1[3] = { 'n', 'u', 'z' };
     247              : static const symbol s_17_2[4] = { 'n', 0xC4, 0xB1, 'z' };
     248              : static const symbol s_17_3[4] = { 'n', 0xC3, 0xBC, 'z' };
     249              : static const struct among a_17[4] = {
     250              : { 3, s_17_0, 0, -1, 0},
     251              : { 3, s_17_1, 0, -1, 0},
     252              : { 4, s_17_2, 0, -1, 0},
     253              : { 4, s_17_3, 0, -1, 0}
     254              : };
     255              : 
     256              : static const symbol s_18_0[3] = { 'd', 'i', 'r' };
     257              : static const symbol s_18_1[3] = { 't', 'i', 'r' };
     258              : static const symbol s_18_2[3] = { 'd', 'u', 'r' };
     259              : static const symbol s_18_3[3] = { 't', 'u', 'r' };
     260              : static const symbol s_18_4[4] = { 'd', 0xC4, 0xB1, 'r' };
     261              : static const symbol s_18_5[4] = { 't', 0xC4, 0xB1, 'r' };
     262              : static const symbol s_18_6[4] = { 'd', 0xC3, 0xBC, 'r' };
     263              : static const symbol s_18_7[4] = { 't', 0xC3, 0xBC, 'r' };
     264              : static const struct among a_18[8] = {
     265              : { 3, s_18_0, 0, -1, 0},
     266              : { 3, s_18_1, 0, -1, 0},
     267              : { 3, s_18_2, 0, -1, 0},
     268              : { 3, s_18_3, 0, -1, 0},
     269              : { 4, s_18_4, 0, -1, 0},
     270              : { 4, s_18_5, 0, -1, 0},
     271              : { 4, s_18_6, 0, -1, 0},
     272              : { 4, s_18_7, 0, -1, 0}
     273              : };
     274              : 
     275              : static const symbol s_19_0[7] = { 'c', 'a', 's', 0xC4, 0xB1, 'n', 'a' };
     276              : static const symbol s_19_1[6] = { 'c', 'e', 's', 'i', 'n', 'e' };
     277              : static const struct among a_19[2] = {
     278              : { 7, s_19_0, 0, -1, 0},
     279              : { 6, s_19_1, 0, -1, 0}
     280              : };
     281              : 
     282              : static const symbol s_20_0[2] = { 'd', 'i' };
     283              : static const symbol s_20_1[2] = { 't', 'i' };
     284              : static const symbol s_20_2[3] = { 'd', 'i', 'k' };
     285              : static const symbol s_20_3[3] = { 't', 'i', 'k' };
     286              : static const symbol s_20_4[3] = { 'd', 'u', 'k' };
     287              : static const symbol s_20_5[3] = { 't', 'u', 'k' };
     288              : static const symbol s_20_6[4] = { 'd', 0xC4, 0xB1, 'k' };
     289              : static const symbol s_20_7[4] = { 't', 0xC4, 0xB1, 'k' };
     290              : static const symbol s_20_8[4] = { 'd', 0xC3, 0xBC, 'k' };
     291              : static const symbol s_20_9[4] = { 't', 0xC3, 0xBC, 'k' };
     292              : static const symbol s_20_10[3] = { 'd', 'i', 'm' };
     293              : static const symbol s_20_11[3] = { 't', 'i', 'm' };
     294              : static const symbol s_20_12[3] = { 'd', 'u', 'm' };
     295              : static const symbol s_20_13[3] = { 't', 'u', 'm' };
     296              : static const symbol s_20_14[4] = { 'd', 0xC4, 0xB1, 'm' };
     297              : static const symbol s_20_15[4] = { 't', 0xC4, 0xB1, 'm' };
     298              : static const symbol s_20_16[4] = { 'd', 0xC3, 0xBC, 'm' };
     299              : static const symbol s_20_17[4] = { 't', 0xC3, 0xBC, 'm' };
     300              : static const symbol s_20_18[3] = { 'd', 'i', 'n' };
     301              : static const symbol s_20_19[3] = { 't', 'i', 'n' };
     302              : static const symbol s_20_20[3] = { 'd', 'u', 'n' };
     303              : static const symbol s_20_21[3] = { 't', 'u', 'n' };
     304              : static const symbol s_20_22[4] = { 'd', 0xC4, 0xB1, 'n' };
     305              : static const symbol s_20_23[4] = { 't', 0xC4, 0xB1, 'n' };
     306              : static const symbol s_20_24[4] = { 'd', 0xC3, 0xBC, 'n' };
     307              : static const symbol s_20_25[4] = { 't', 0xC3, 0xBC, 'n' };
     308              : static const symbol s_20_26[2] = { 'd', 'u' };
     309              : static const symbol s_20_27[2] = { 't', 'u' };
     310              : static const symbol s_20_28[3] = { 'd', 0xC4, 0xB1 };
     311              : static const symbol s_20_29[3] = { 't', 0xC4, 0xB1 };
     312              : static const symbol s_20_30[3] = { 'd', 0xC3, 0xBC };
     313              : static const symbol s_20_31[3] = { 't', 0xC3, 0xBC };
     314              : static const struct among a_20[32] = {
     315              : { 2, s_20_0, 0, -1, 0},
     316              : { 2, s_20_1, 0, -1, 0},
     317              : { 3, s_20_2, 0, -1, 0},
     318              : { 3, s_20_3, 0, -1, 0},
     319              : { 3, s_20_4, 0, -1, 0},
     320              : { 3, s_20_5, 0, -1, 0},
     321              : { 4, s_20_6, 0, -1, 0},
     322              : { 4, s_20_7, 0, -1, 0},
     323              : { 4, s_20_8, 0, -1, 0},
     324              : { 4, s_20_9, 0, -1, 0},
     325              : { 3, s_20_10, 0, -1, 0},
     326              : { 3, s_20_11, 0, -1, 0},
     327              : { 3, s_20_12, 0, -1, 0},
     328              : { 3, s_20_13, 0, -1, 0},
     329              : { 4, s_20_14, 0, -1, 0},
     330              : { 4, s_20_15, 0, -1, 0},
     331              : { 4, s_20_16, 0, -1, 0},
     332              : { 4, s_20_17, 0, -1, 0},
     333              : { 3, s_20_18, 0, -1, 0},
     334              : { 3, s_20_19, 0, -1, 0},
     335              : { 3, s_20_20, 0, -1, 0},
     336              : { 3, s_20_21, 0, -1, 0},
     337              : { 4, s_20_22, 0, -1, 0},
     338              : { 4, s_20_23, 0, -1, 0},
     339              : { 4, s_20_24, 0, -1, 0},
     340              : { 4, s_20_25, 0, -1, 0},
     341              : { 2, s_20_26, 0, -1, 0},
     342              : { 2, s_20_27, 0, -1, 0},
     343              : { 3, s_20_28, 0, -1, 0},
     344              : { 3, s_20_29, 0, -1, 0},
     345              : { 3, s_20_30, 0, -1, 0},
     346              : { 3, s_20_31, 0, -1, 0}
     347              : };
     348              : 
     349              : static const symbol s_21_0[2] = { 's', 'a' };
     350              : static const symbol s_21_1[2] = { 's', 'e' };
     351              : static const symbol s_21_2[3] = { 's', 'a', 'k' };
     352              : static const symbol s_21_3[3] = { 's', 'e', 'k' };
     353              : static const symbol s_21_4[3] = { 's', 'a', 'm' };
     354              : static const symbol s_21_5[3] = { 's', 'e', 'm' };
     355              : static const symbol s_21_6[3] = { 's', 'a', 'n' };
     356              : static const symbol s_21_7[3] = { 's', 'e', 'n' };
     357              : static const struct among a_21[8] = {
     358              : { 2, s_21_0, 0, -1, 0},
     359              : { 2, s_21_1, 0, -1, 0},
     360              : { 3, s_21_2, 0, -1, 0},
     361              : { 3, s_21_3, 0, -1, 0},
     362              : { 3, s_21_4, 0, -1, 0},
     363              : { 3, s_21_5, 0, -1, 0},
     364              : { 3, s_21_6, 0, -1, 0},
     365              : { 3, s_21_7, 0, -1, 0}
     366              : };
     367              : 
     368              : static const symbol s_22_0[4] = { 'm', 'i', 0xC5, 0x9F };
     369              : static const symbol s_22_1[4] = { 'm', 'u', 0xC5, 0x9F };
     370              : static const symbol s_22_2[5] = { 'm', 0xC4, 0xB1, 0xC5, 0x9F };
     371              : static const symbol s_22_3[5] = { 'm', 0xC3, 0xBC, 0xC5, 0x9F };
     372              : static const struct among a_22[4] = {
     373              : { 4, s_22_0, 0, -1, 0},
     374              : { 4, s_22_1, 0, -1, 0},
     375              : { 5, s_22_2, 0, -1, 0},
     376              : { 5, s_22_3, 0, -1, 0}
     377              : };
     378              : 
     379              : static const symbol s_23_0[1] = { 'b' };
     380              : static const symbol s_23_1[1] = { 'c' };
     381              : static const symbol s_23_2[1] = { 'd' };
     382              : static const symbol s_23_3[2] = { 0xC4, 0x9F };
     383              : static const struct among a_23[4] = {
     384              : { 1, s_23_0, 0, 1, 0},
     385              : { 1, s_23_1, 0, 2, 0},
     386              : { 1, s_23_2, 0, 3, 0},
     387              : { 2, s_23_3, 0, 4, 0}
     388              : };
     389              : 
     390              : static const unsigned char g_vowel[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 };
     391              : 
     392              : static const unsigned char g_U[] = { 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1 };
     393              : 
     394              : static const unsigned char g_vowel1[] = { 1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
     395              : 
     396              : static const unsigned char g_vowel2[] = { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 };
     397              : 
     398              : static const unsigned char g_vowel3[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
     399              : 
     400              : static const unsigned char g_vowel4[] = { 17 };
     401              : 
     402              : static const unsigned char g_vowel5[] = { 65 };
     403              : 
     404              : static const unsigned char g_vowel6[] = { 65 };
     405              : 
     406            0 : static int r_check_vowel_harmony(struct SN_env * z) {
     407              :     {
     408            0 :         int v_1 = z->l - z->c;
     409            0 :         if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
     410              :         do {
     411            0 :             int v_2 = z->l - z->c;
     412            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab0;
     413            0 :             z->c--;
     414            0 :             if (out_grouping_b_U(z, g_vowel1, 97, 305, 1) < 0) goto lab0;
     415            0 :             break;
     416            0 :         lab0:
     417            0 :             z->c = z->l - v_2;
     418            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab1;
     419            0 :             z->c--;
     420            0 :             if (out_grouping_b_U(z, g_vowel2, 101, 252, 1) < 0) goto lab1;
     421            0 :             break;
     422            0 :         lab1:
     423            0 :             z->c = z->l - v_2;
     424            0 :             if (!(eq_s_b(z, 2, s_0))) goto lab2;
     425            0 :             if (out_grouping_b_U(z, g_vowel3, 97, 305, 1) < 0) goto lab2;
     426            0 :             break;
     427            0 :         lab2:
     428            0 :             z->c = z->l - v_2;
     429            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab3;
     430            0 :             z->c--;
     431            0 :             if (out_grouping_b_U(z, g_vowel4, 101, 105, 1) < 0) goto lab3;
     432            0 :             break;
     433            0 :         lab3:
     434            0 :             z->c = z->l - v_2;
     435            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4;
     436            0 :             z->c--;
     437            0 :             if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab4;
     438            0 :             break;
     439            0 :         lab4:
     440            0 :             z->c = z->l - v_2;
     441            0 :             if (!(eq_s_b(z, 2, s_1))) goto lab5;
     442            0 :             if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) goto lab5;
     443            0 :             break;
     444            0 :         lab5:
     445            0 :             z->c = z->l - v_2;
     446            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab6;
     447            0 :             z->c--;
     448            0 :             if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab6;
     449            0 :             break;
     450            0 :         lab6:
     451            0 :             z->c = z->l - v_2;
     452            0 :             if (!(eq_s_b(z, 2, s_2))) return 0;
     453            0 :             if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) return 0;
     454              :         } while (0);
     455            0 :         z->c = z->l - v_1;
     456              :     }
     457            0 :     return 1;
     458              : }
     459              : 
     460            0 : static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z) {
     461              :     do {
     462            0 :         int v_1 = z->l - z->c;
     463            0 :         if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab0;
     464            0 :         z->c--;
     465              :         {
     466            0 :             int v_2 = z->l - z->c;
     467            0 :             if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab0;
     468            0 :             z->c = z->l - v_2;
     469              :         }
     470            0 :         break;
     471            0 :     lab0:
     472            0 :         z->c = z->l - v_1;
     473              :         {
     474            0 :             int v_3 = z->l - z->c;
     475            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab1;
     476            0 :             z->c--;
     477            0 :             return 0;
     478            0 :         lab1:
     479            0 :             z->c = z->l - v_3;
     480              :         }
     481              :         {
     482            0 :             int v_4 = z->l - z->c;
     483              :             {
     484            0 :                 int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
     485            0 :                 if (ret < 0) return 0;
     486            0 :                 z->c = ret;
     487              :             }
     488            0 :             if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
     489            0 :             z->c = z->l - v_4;
     490              :         }
     491              :     } while (0);
     492            0 :     return 1;
     493              : }
     494              : 
     495            0 : static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z) {
     496              :     do {
     497            0 :         int v_1 = z->l - z->c;
     498            0 :         if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0;
     499            0 :         z->c--;
     500              :         {
     501            0 :             int v_2 = z->l - z->c;
     502            0 :             if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab0;
     503            0 :             z->c = z->l - v_2;
     504              :         }
     505            0 :         break;
     506            0 :     lab0:
     507            0 :         z->c = z->l - v_1;
     508              :         {
     509            0 :             int v_3 = z->l - z->c;
     510            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
     511            0 :             z->c--;
     512            0 :             return 0;
     513            0 :         lab1:
     514            0 :             z->c = z->l - v_3;
     515              :         }
     516              :         {
     517            0 :             int v_4 = z->l - z->c;
     518              :             {
     519            0 :                 int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
     520            0 :                 if (ret < 0) return 0;
     521            0 :                 z->c = ret;
     522              :             }
     523            0 :             if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
     524            0 :             z->c = z->l - v_4;
     525              :         }
     526              :     } while (0);
     527            0 :     return 1;
     528              : }
     529              : 
     530            0 : static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z) {
     531              :     do {
     532            0 :         int v_1 = z->l - z->c;
     533            0 :         if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab0;
     534            0 :         z->c--;
     535              :         {
     536            0 :             int v_2 = z->l - z->c;
     537            0 :             if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab0;
     538            0 :             z->c = z->l - v_2;
     539              :         }
     540            0 :         break;
     541            0 :     lab0:
     542            0 :         z->c = z->l - v_1;
     543              :         {
     544            0 :             int v_3 = z->l - z->c;
     545            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
     546            0 :             z->c--;
     547            0 :             return 0;
     548            0 :         lab1:
     549            0 :             z->c = z->l - v_3;
     550              :         }
     551              :         {
     552            0 :             int v_4 = z->l - z->c;
     553              :             {
     554            0 :                 int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
     555            0 :                 if (ret < 0) return 0;
     556            0 :                 z->c = ret;
     557              :             }
     558            0 :             if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
     559            0 :             z->c = z->l - v_4;
     560              :         }
     561              :     } while (0);
     562            0 :     return 1;
     563              : }
     564              : 
     565            0 : static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z) {
     566              :     do {
     567            0 :         int v_1 = z->l - z->c;
     568            0 :         if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab0;
     569              :         {
     570            0 :             int v_2 = z->l - z->c;
     571            0 :             if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab0;
     572            0 :             z->c = z->l - v_2;
     573              :         }
     574            0 :         break;
     575            0 :     lab0:
     576            0 :         z->c = z->l - v_1;
     577              :         {
     578            0 :             int v_3 = z->l - z->c;
     579            0 :             if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab1;
     580            0 :             return 0;
     581            0 :         lab1:
     582            0 :             z->c = z->l - v_3;
     583              :         }
     584              :         {
     585            0 :             int v_4 = z->l - z->c;
     586              :             {
     587            0 :                 int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
     588            0 :                 if (ret < 0) return 0;
     589            0 :                 z->c = ret;
     590              :             }
     591            0 :             if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
     592            0 :             z->c = z->l - v_4;
     593              :         }
     594              :     } while (0);
     595            0 :     return 1;
     596              : }
     597              : 
     598            0 : static int r_mark_possessives(struct SN_env * z) {
     599            0 :     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((67133440 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     600            0 :     if (!find_among_b(z, a_0, 10, 0)) return 0;
     601            0 :     return r_mark_suffix_with_optional_U_vowel(z);
     602              : }
     603              : 
     604            0 : static int r_mark_sU(struct SN_env * z) {
     605              :     {
     606            0 :         int ret = r_check_vowel_harmony(z);
     607            0 :         if (ret <= 0) return ret;
     608              :     }
     609            0 :     if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0;
     610            0 :     return r_mark_suffix_with_optional_s_consonant(z);
     611              : }
     612              : 
     613            0 : static int r_mark_lArI(struct SN_env * z) {
     614            0 :     if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 177)) return 0;
     615            0 :     return find_among_b(z, a_1, 2, 0) != 0;
     616              : }
     617              : 
     618            0 : static int r_mark_yU(struct SN_env * z) {
     619              :     {
     620            0 :         int ret = r_check_vowel_harmony(z);
     621            0 :         if (ret <= 0) return ret;
     622              :     }
     623            0 :     if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0;
     624            0 :     return r_mark_suffix_with_optional_y_consonant(z);
     625              : }
     626              : 
     627            0 : static int r_mark_nU(struct SN_env * z) {
     628              :     {
     629            0 :         int ret = r_check_vowel_harmony(z);
     630            0 :         if (ret <= 0) return ret;
     631              :     }
     632            0 :     return find_among_b(z, a_2, 4, 0) != 0;
     633              : }
     634              : 
     635            0 : static int r_mark_nUn(struct SN_env * z) {
     636              :     {
     637            0 :         int ret = r_check_vowel_harmony(z);
     638            0 :         if (ret <= 0) return ret;
     639              :     }
     640            0 :     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 110) return 0;
     641            0 :     if (!find_among_b(z, a_3, 4, 0)) return 0;
     642            0 :     return r_mark_suffix_with_optional_n_consonant(z);
     643              : }
     644              : 
     645            0 : static int r_mark_yA(struct SN_env * z) {
     646              :     {
     647            0 :         int ret = r_check_vowel_harmony(z);
     648            0 :         if (ret <= 0) return ret;
     649              :     }
     650            0 :     if (z->c <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
     651            0 :     z->c--;
     652            0 :     return r_mark_suffix_with_optional_y_consonant(z);
     653              : }
     654              : 
     655            0 : static int r_mark_nA(struct SN_env * z) {
     656              :     {
     657            0 :         int ret = r_check_vowel_harmony(z);
     658            0 :         if (ret <= 0) return ret;
     659              :     }
     660            0 :     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
     661            0 :     return find_among_b(z, a_5, 2, 0) != 0;
     662              : }
     663              : 
     664            0 : static int r_mark_DA(struct SN_env * z) {
     665              :     {
     666            0 :         int ret = r_check_vowel_harmony(z);
     667            0 :         if (ret <= 0) return ret;
     668              :     }
     669            0 :     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
     670            0 :     return find_among_b(z, a_6, 4, 0) != 0;
     671              : }
     672              : 
     673            0 : static int r_mark_ndA(struct SN_env * z) {
     674              :     {
     675            0 :         int ret = r_check_vowel_harmony(z);
     676            0 :         if (ret <= 0) return ret;
     677              :     }
     678            0 :     if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
     679            0 :     return find_among_b(z, a_7, 2, 0) != 0;
     680              : }
     681              : 
     682            0 : static int r_mark_DAn(struct SN_env * z) {
     683              :     {
     684            0 :         int ret = r_check_vowel_harmony(z);
     685            0 :         if (ret <= 0) return ret;
     686              :     }
     687            0 :     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
     688            0 :     return find_among_b(z, a_8, 4, 0) != 0;
     689              : }
     690              : 
     691            0 : static int r_mark_ndAn(struct SN_env * z) {
     692              :     {
     693            0 :         int ret = r_check_vowel_harmony(z);
     694            0 :         if (ret <= 0) return ret;
     695              :     }
     696            0 :     if (z->c - 3 <= z->lb || z->p[z->c - 1] != 110) return 0;
     697            0 :     return find_among_b(z, a_9, 2, 0) != 0;
     698              : }
     699              : 
     700            0 : static int r_mark_ylA(struct SN_env * z) {
     701              :     {
     702            0 :         int ret = r_check_vowel_harmony(z);
     703            0 :         if (ret <= 0) return ret;
     704              :     }
     705            0 :     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
     706            0 :     if (!find_among_b(z, a_10, 2, 0)) return 0;
     707            0 :     return r_mark_suffix_with_optional_y_consonant(z);
     708              : }
     709              : 
     710            0 : static int r_mark_ki(struct SN_env * z) {
     711            0 :     return eq_s_b(z, 2, s_3);
     712              : }
     713              : 
     714            0 : static int r_mark_ncA(struct SN_env * z) {
     715              :     {
     716            0 :         int ret = r_check_vowel_harmony(z);
     717            0 :         if (ret <= 0) return ret;
     718              :     }
     719            0 :     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
     720            0 :     if (!find_among_b(z, a_11, 2, 0)) return 0;
     721            0 :     return r_mark_suffix_with_optional_n_consonant(z);
     722              : }
     723              : 
     724            0 : static int r_mark_yUm(struct SN_env * z) {
     725              :     {
     726            0 :         int ret = r_check_vowel_harmony(z);
     727            0 :         if (ret <= 0) return ret;
     728              :     }
     729            0 :     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 109) return 0;
     730            0 :     if (!find_among_b(z, a_12, 4, 0)) return 0;
     731            0 :     return r_mark_suffix_with_optional_y_consonant(z);
     732              : }
     733              : 
     734            0 : static int r_mark_sUn(struct SN_env * z) {
     735              :     {
     736            0 :         int ret = r_check_vowel_harmony(z);
     737            0 :         if (ret <= 0) return ret;
     738              :     }
     739            0 :     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
     740            0 :     return find_among_b(z, a_13, 4, 0) != 0;
     741              : }
     742              : 
     743            0 : static int r_mark_yUz(struct SN_env * z) {
     744              :     {
     745            0 :         int ret = r_check_vowel_harmony(z);
     746            0 :         if (ret <= 0) return ret;
     747              :     }
     748            0 :     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 122) return 0;
     749            0 :     if (!find_among_b(z, a_14, 4, 0)) return 0;
     750            0 :     return r_mark_suffix_with_optional_y_consonant(z);
     751              : }
     752              : 
     753            0 : static int r_mark_sUnUz(struct SN_env * z) {
     754            0 :     if (z->c - 4 <= z->lb || z->p[z->c - 1] != 122) return 0;
     755            0 :     return find_among_b(z, a_15, 4, 0) != 0;
     756              : }
     757              : 
     758            0 : static int r_mark_lAr(struct SN_env * z) {
     759              :     {
     760            0 :         int ret = r_check_vowel_harmony(z);
     761            0 :         if (ret <= 0) return ret;
     762              :     }
     763            0 :     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
     764            0 :     return find_among_b(z, a_16, 2, 0) != 0;
     765              : }
     766              : 
     767            0 : static int r_mark_nUz(struct SN_env * z) {
     768              :     {
     769            0 :         int ret = r_check_vowel_harmony(z);
     770            0 :         if (ret <= 0) return ret;
     771              :     }
     772            0 :     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 122) return 0;
     773            0 :     return find_among_b(z, a_17, 4, 0) != 0;
     774              : }
     775              : 
     776            0 : static int r_mark_DUr(struct SN_env * z) {
     777              :     {
     778            0 :         int ret = r_check_vowel_harmony(z);
     779            0 :         if (ret <= 0) return ret;
     780              :     }
     781            0 :     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
     782            0 :     return find_among_b(z, a_18, 8, 0) != 0;
     783              : }
     784              : 
     785            0 : static int r_mark_cAsInA(struct SN_env * z) {
     786            0 :     if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
     787            0 :     return find_among_b(z, a_19, 2, 0) != 0;
     788              : }
     789              : 
     790            0 : static int r_mark_yDU(struct SN_env * z) {
     791              :     {
     792            0 :         int ret = r_check_vowel_harmony(z);
     793            0 :         if (ret <= 0) return ret;
     794              :     }
     795            0 :     if (!find_among_b(z, a_20, 32, 0)) return 0;
     796            0 :     return r_mark_suffix_with_optional_y_consonant(z);
     797              : }
     798              : 
     799            0 : static int r_mark_ysA(struct SN_env * z) {
     800            0 :     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((26658 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     801            0 :     if (!find_among_b(z, a_21, 8, 0)) return 0;
     802            0 :     return r_mark_suffix_with_optional_y_consonant(z);
     803              : }
     804              : 
     805            0 : static int r_mark_ymUs_(struct SN_env * z) {
     806              :     {
     807            0 :         int ret = r_check_vowel_harmony(z);
     808            0 :         if (ret <= 0) return ret;
     809              :     }
     810            0 :     if (z->c - 3 <= z->lb || z->p[z->c - 1] != 159) return 0;
     811            0 :     if (!find_among_b(z, a_22, 4, 0)) return 0;
     812            0 :     return r_mark_suffix_with_optional_y_consonant(z);
     813              : }
     814              : 
     815            0 : static int r_mark_yken(struct SN_env * z) {
     816            0 :     if (!(eq_s_b(z, 3, s_4))) return 0;
     817            0 :     return r_mark_suffix_with_optional_y_consonant(z);
     818              : }
     819              : 
     820            0 : static int r_stem_nominal_verb_suffixes(struct SN_env * z) {
     821            0 :     z->ket = z->c;
     822            0 :     ((SN_local *)z)->b_continue_stemming_noun_suffixes = 1;
     823              :     do {
     824            0 :         int v_1 = z->l - z->c;
     825              :         do {
     826            0 :             int v_2 = z->l - z->c;
     827              :             {
     828            0 :                 int ret = r_mark_ymUs_(z);
     829            0 :                 if (ret == 0) goto lab1;
     830            0 :                 if (ret < 0) return ret;
     831              :             }
     832            0 :             break;
     833            0 :         lab1:
     834            0 :             z->c = z->l - v_2;
     835              :             {
     836            0 :                 int ret = r_mark_yDU(z);
     837            0 :                 if (ret == 0) goto lab2;
     838            0 :                 if (ret < 0) return ret;
     839              :             }
     840            0 :             break;
     841            0 :         lab2:
     842            0 :             z->c = z->l - v_2;
     843              :             {
     844            0 :                 int ret = r_mark_ysA(z);
     845            0 :                 if (ret == 0) goto lab3;
     846            0 :                 if (ret < 0) return ret;
     847              :             }
     848            0 :             break;
     849            0 :         lab3:
     850            0 :             z->c = z->l - v_2;
     851              :             {
     852            0 :                 int ret = r_mark_yken(z);
     853            0 :                 if (ret == 0) goto lab0;
     854            0 :                 if (ret < 0) return ret;
     855              :             }
     856              :         } while (0);
     857            0 :         break;
     858            0 :     lab0:
     859            0 :         z->c = z->l - v_1;
     860              :         {
     861            0 :             int ret = r_mark_cAsInA(z);
     862            0 :             if (ret == 0) goto lab4;
     863            0 :             if (ret < 0) return ret;
     864              :         }
     865              :         do {
     866            0 :             int v_3 = z->l - z->c;
     867              :             {
     868            0 :                 int ret = r_mark_sUnUz(z);
     869            0 :                 if (ret == 0) goto lab5;
     870            0 :                 if (ret < 0) return ret;
     871              :             }
     872            0 :             break;
     873            0 :         lab5:
     874            0 :             z->c = z->l - v_3;
     875              :             {
     876            0 :                 int ret = r_mark_lAr(z);
     877            0 :                 if (ret == 0) goto lab6;
     878            0 :                 if (ret < 0) return ret;
     879              :             }
     880            0 :             break;
     881            0 :         lab6:
     882            0 :             z->c = z->l - v_3;
     883              :             {
     884            0 :                 int ret = r_mark_yUm(z);
     885            0 :                 if (ret == 0) goto lab7;
     886            0 :                 if (ret < 0) return ret;
     887              :             }
     888            0 :             break;
     889            0 :         lab7:
     890            0 :             z->c = z->l - v_3;
     891              :             {
     892            0 :                 int ret = r_mark_sUn(z);
     893            0 :                 if (ret == 0) goto lab8;
     894            0 :                 if (ret < 0) return ret;
     895              :             }
     896            0 :             break;
     897            0 :         lab8:
     898            0 :             z->c = z->l - v_3;
     899              :             {
     900            0 :                 int ret = r_mark_yUz(z);
     901            0 :                 if (ret == 0) goto lab9;
     902            0 :                 if (ret < 0) return ret;
     903              :             }
     904            0 :             break;
     905            0 :         lab9:
     906            0 :             z->c = z->l - v_3;
     907              :         } while (0);
     908              :         {
     909            0 :             int ret = r_mark_ymUs_(z);
     910            0 :             if (ret == 0) goto lab4;
     911            0 :             if (ret < 0) return ret;
     912              :         }
     913            0 :         break;
     914            0 :     lab4:
     915            0 :         z->c = z->l - v_1;
     916              :         {
     917            0 :             int ret = r_mark_lAr(z);
     918            0 :             if (ret == 0) goto lab10;
     919            0 :             if (ret < 0) return ret;
     920              :         }
     921            0 :         z->bra = z->c;
     922              :         {
     923            0 :             int ret = slice_del(z);
     924            0 :             if (ret < 0) return ret;
     925              :         }
     926              :         {
     927            0 :             int v_4 = z->l - z->c;
     928            0 :             z->ket = z->c;
     929              :             do {
     930            0 :                 int v_5 = z->l - z->c;
     931              :                 {
     932            0 :                     int ret = r_mark_DUr(z);
     933            0 :                     if (ret == 0) goto lab12;
     934            0 :                     if (ret < 0) return ret;
     935              :                 }
     936            0 :                 break;
     937            0 :             lab12:
     938            0 :                 z->c = z->l - v_5;
     939              :                 {
     940            0 :                     int ret = r_mark_yDU(z);
     941            0 :                     if (ret == 0) goto lab13;
     942            0 :                     if (ret < 0) return ret;
     943              :                 }
     944            0 :                 break;
     945            0 :             lab13:
     946            0 :                 z->c = z->l - v_5;
     947              :                 {
     948            0 :                     int ret = r_mark_ysA(z);
     949            0 :                     if (ret == 0) goto lab14;
     950            0 :                     if (ret < 0) return ret;
     951              :                 }
     952            0 :                 break;
     953            0 :             lab14:
     954            0 :                 z->c = z->l - v_5;
     955              :                 {
     956            0 :                     int ret = r_mark_ymUs_(z);
     957            0 :                     if (ret == 0) { z->c = z->l - v_4; goto lab11; }
     958            0 :                     if (ret < 0) return ret;
     959              :                 }
     960              :             } while (0);
     961            0 :         lab11:
     962              :             ;
     963              :         }
     964            0 :         ((SN_local *)z)->b_continue_stemming_noun_suffixes = 0;
     965            0 :         break;
     966            0 :     lab10:
     967            0 :         z->c = z->l - v_1;
     968              :         {
     969            0 :             int ret = r_mark_nUz(z);
     970            0 :             if (ret == 0) goto lab15;
     971            0 :             if (ret < 0) return ret;
     972              :         }
     973              :         do {
     974            0 :             int v_6 = z->l - z->c;
     975              :             {
     976            0 :                 int ret = r_mark_yDU(z);
     977            0 :                 if (ret == 0) goto lab16;
     978            0 :                 if (ret < 0) return ret;
     979              :             }
     980            0 :             break;
     981            0 :         lab16:
     982            0 :             z->c = z->l - v_6;
     983              :             {
     984            0 :                 int ret = r_mark_ysA(z);
     985            0 :                 if (ret == 0) goto lab15;
     986            0 :                 if (ret < 0) return ret;
     987              :             }
     988              :         } while (0);
     989            0 :         break;
     990            0 :     lab15:
     991            0 :         z->c = z->l - v_1;
     992              :         do {
     993            0 :             int v_7 = z->l - z->c;
     994              :             {
     995            0 :                 int ret = r_mark_sUnUz(z);
     996            0 :                 if (ret == 0) goto lab18;
     997            0 :                 if (ret < 0) return ret;
     998              :             }
     999            0 :             break;
    1000            0 :         lab18:
    1001            0 :             z->c = z->l - v_7;
    1002              :             {
    1003            0 :                 int ret = r_mark_yUz(z);
    1004            0 :                 if (ret == 0) goto lab19;
    1005            0 :                 if (ret < 0) return ret;
    1006              :             }
    1007            0 :             break;
    1008            0 :         lab19:
    1009            0 :             z->c = z->l - v_7;
    1010              :             {
    1011            0 :                 int ret = r_mark_sUn(z);
    1012            0 :                 if (ret == 0) goto lab20;
    1013            0 :                 if (ret < 0) return ret;
    1014              :             }
    1015            0 :             break;
    1016            0 :         lab20:
    1017            0 :             z->c = z->l - v_7;
    1018              :             {
    1019            0 :                 int ret = r_mark_yUm(z);
    1020            0 :                 if (ret == 0) goto lab17;
    1021            0 :                 if (ret < 0) return ret;
    1022              :             }
    1023              :         } while (0);
    1024            0 :         z->bra = z->c;
    1025              :         {
    1026            0 :             int ret = slice_del(z);
    1027            0 :             if (ret < 0) return ret;
    1028              :         }
    1029              :         {
    1030            0 :             int v_8 = z->l - z->c;
    1031            0 :             z->ket = z->c;
    1032              :             {
    1033            0 :                 int ret = r_mark_ymUs_(z);
    1034            0 :                 if (ret == 0) { z->c = z->l - v_8; goto lab21; }
    1035            0 :                 if (ret < 0) return ret;
    1036              :             }
    1037            0 :         lab21:
    1038              :             ;
    1039              :         }
    1040            0 :         break;
    1041            0 :     lab17:
    1042            0 :         z->c = z->l - v_1;
    1043              :         {
    1044            0 :             int ret = r_mark_DUr(z);
    1045            0 :             if (ret <= 0) return ret;
    1046              :         }
    1047            0 :         z->bra = z->c;
    1048              :         {
    1049            0 :             int ret = slice_del(z);
    1050            0 :             if (ret < 0) return ret;
    1051              :         }
    1052              :         {
    1053            0 :             int v_9 = z->l - z->c;
    1054            0 :             z->ket = z->c;
    1055              :             do {
    1056            0 :                 int v_10 = z->l - z->c;
    1057              :                 {
    1058            0 :                     int ret = r_mark_sUnUz(z);
    1059            0 :                     if (ret == 0) goto lab23;
    1060            0 :                     if (ret < 0) return ret;
    1061              :                 }
    1062            0 :                 break;
    1063            0 :             lab23:
    1064            0 :                 z->c = z->l - v_10;
    1065              :                 {
    1066            0 :                     int ret = r_mark_lAr(z);
    1067            0 :                     if (ret == 0) goto lab24;
    1068            0 :                     if (ret < 0) return ret;
    1069              :                 }
    1070            0 :                 break;
    1071            0 :             lab24:
    1072            0 :                 z->c = z->l - v_10;
    1073              :                 {
    1074            0 :                     int ret = r_mark_yUm(z);
    1075            0 :                     if (ret == 0) goto lab25;
    1076            0 :                     if (ret < 0) return ret;
    1077              :                 }
    1078            0 :                 break;
    1079            0 :             lab25:
    1080            0 :                 z->c = z->l - v_10;
    1081              :                 {
    1082            0 :                     int ret = r_mark_sUn(z);
    1083            0 :                     if (ret == 0) goto lab26;
    1084            0 :                     if (ret < 0) return ret;
    1085              :                 }
    1086            0 :                 break;
    1087            0 :             lab26:
    1088            0 :                 z->c = z->l - v_10;
    1089              :                 {
    1090            0 :                     int ret = r_mark_yUz(z);
    1091            0 :                     if (ret == 0) goto lab27;
    1092            0 :                     if (ret < 0) return ret;
    1093              :                 }
    1094            0 :                 break;
    1095            0 :             lab27:
    1096            0 :                 z->c = z->l - v_10;
    1097              :             } while (0);
    1098              :             {
    1099            0 :                 int ret = r_mark_ymUs_(z);
    1100            0 :                 if (ret == 0) { z->c = z->l - v_9; goto lab22; }
    1101            0 :                 if (ret < 0) return ret;
    1102              :             }
    1103            0 :         lab22:
    1104              :             ;
    1105              :         }
    1106              :     } while (0);
    1107            0 :     z->bra = z->c;
    1108              :     {
    1109            0 :         int ret = slice_del(z);
    1110            0 :         if (ret < 0) return ret;
    1111              :     }
    1112            0 :     return 1;
    1113              : }
    1114              : 
    1115            0 : static int r_stem_suffix_chain_before_ki(struct SN_env * z) {
    1116            0 :     z->ket = z->c;
    1117              :     {
    1118            0 :         int ret = r_mark_ki(z);
    1119            0 :         if (ret <= 0) return ret;
    1120              :     }
    1121              :     do {
    1122            0 :         int v_1 = z->l - z->c;
    1123              :         {
    1124            0 :             int ret = r_mark_DA(z);
    1125            0 :             if (ret == 0) goto lab0;
    1126            0 :             if (ret < 0) return ret;
    1127              :         }
    1128            0 :         z->bra = z->c;
    1129              :         {
    1130            0 :             int ret = slice_del(z);
    1131            0 :             if (ret < 0) return ret;
    1132              :         }
    1133              :         {
    1134            0 :             int v_2 = z->l - z->c;
    1135            0 :             z->ket = z->c;
    1136              :             do {
    1137            0 :                 int v_3 = z->l - z->c;
    1138              :                 {
    1139            0 :                     int ret = r_mark_lAr(z);
    1140            0 :                     if (ret == 0) goto lab2;
    1141            0 :                     if (ret < 0) return ret;
    1142              :                 }
    1143            0 :                 z->bra = z->c;
    1144              :                 {
    1145            0 :                     int ret = slice_del(z);
    1146            0 :                     if (ret < 0) return ret;
    1147              :                 }
    1148              :                 {
    1149            0 :                     int v_4 = z->l - z->c;
    1150              :                     {
    1151            0 :                         int ret = r_stem_suffix_chain_before_ki(z);
    1152            0 :                         if (ret == 0) { z->c = z->l - v_4; goto lab3; }
    1153            0 :                         if (ret < 0) return ret;
    1154              :                     }
    1155            0 :                 lab3:
    1156              :                     ;
    1157              :                 }
    1158            0 :                 break;
    1159            0 :             lab2:
    1160            0 :                 z->c = z->l - v_3;
    1161              :                 {
    1162            0 :                     int ret = r_mark_possessives(z);
    1163            0 :                     if (ret == 0) { z->c = z->l - v_2; goto lab1; }
    1164            0 :                     if (ret < 0) return ret;
    1165              :                 }
    1166            0 :                 z->bra = z->c;
    1167              :                 {
    1168            0 :                     int ret = slice_del(z);
    1169            0 :                     if (ret < 0) return ret;
    1170              :                 }
    1171              :                 {
    1172            0 :                     int v_5 = z->l - z->c;
    1173            0 :                     z->ket = z->c;
    1174              :                     {
    1175            0 :                         int ret = r_mark_lAr(z);
    1176            0 :                         if (ret == 0) { z->c = z->l - v_5; goto lab4; }
    1177            0 :                         if (ret < 0) return ret;
    1178              :                     }
    1179            0 :                     z->bra = z->c;
    1180              :                     {
    1181            0 :                         int ret = slice_del(z);
    1182            0 :                         if (ret < 0) return ret;
    1183              :                     }
    1184              :                     {
    1185            0 :                         int ret = r_stem_suffix_chain_before_ki(z);
    1186            0 :                         if (ret == 0) { z->c = z->l - v_5; goto lab4; }
    1187            0 :                         if (ret < 0) return ret;
    1188              :                     }
    1189            0 :                 lab4:
    1190              :                     ;
    1191              :                 }
    1192              :             } while (0);
    1193            0 :         lab1:
    1194              :             ;
    1195              :         }
    1196            0 :         break;
    1197            0 :     lab0:
    1198            0 :         z->c = z->l - v_1;
    1199              :         {
    1200            0 :             int ret = r_mark_nUn(z);
    1201            0 :             if (ret == 0) goto lab5;
    1202            0 :             if (ret < 0) return ret;
    1203              :         }
    1204            0 :         z->bra = z->c;
    1205              :         {
    1206            0 :             int ret = slice_del(z);
    1207            0 :             if (ret < 0) return ret;
    1208              :         }
    1209              :         {
    1210            0 :             int v_6 = z->l - z->c;
    1211            0 :             z->ket = z->c;
    1212              :             do {
    1213            0 :                 int v_7 = z->l - z->c;
    1214              :                 {
    1215            0 :                     int ret = r_mark_lArI(z);
    1216            0 :                     if (ret == 0) goto lab7;
    1217            0 :                     if (ret < 0) return ret;
    1218              :                 }
    1219            0 :                 z->bra = z->c;
    1220              :                 {
    1221            0 :                     int ret = slice_del(z);
    1222            0 :                     if (ret < 0) return ret;
    1223              :                 }
    1224            0 :                 break;
    1225            0 :             lab7:
    1226            0 :                 z->c = z->l - v_7;
    1227            0 :                 z->ket = z->c;
    1228              :                 do {
    1229            0 :                     int v_8 = z->l - z->c;
    1230              :                     {
    1231            0 :                         int ret = r_mark_possessives(z);
    1232            0 :                         if (ret == 0) goto lab9;
    1233            0 :                         if (ret < 0) return ret;
    1234              :                     }
    1235            0 :                     break;
    1236            0 :                 lab9:
    1237            0 :                     z->c = z->l - v_8;
    1238              :                     {
    1239            0 :                         int ret = r_mark_sU(z);
    1240            0 :                         if (ret == 0) goto lab8;
    1241            0 :                         if (ret < 0) return ret;
    1242              :                     }
    1243              :                 } while (0);
    1244            0 :                 z->bra = z->c;
    1245              :                 {
    1246            0 :                     int ret = slice_del(z);
    1247            0 :                     if (ret < 0) return ret;
    1248              :                 }
    1249              :                 {
    1250            0 :                     int v_9 = z->l - z->c;
    1251            0 :                     z->ket = z->c;
    1252              :                     {
    1253            0 :                         int ret = r_mark_lAr(z);
    1254            0 :                         if (ret == 0) { z->c = z->l - v_9; goto lab10; }
    1255            0 :                         if (ret < 0) return ret;
    1256              :                     }
    1257            0 :                     z->bra = z->c;
    1258              :                     {
    1259            0 :                         int ret = slice_del(z);
    1260            0 :                         if (ret < 0) return ret;
    1261              :                     }
    1262              :                     {
    1263            0 :                         int ret = r_stem_suffix_chain_before_ki(z);
    1264            0 :                         if (ret == 0) { z->c = z->l - v_9; goto lab10; }
    1265            0 :                         if (ret < 0) return ret;
    1266              :                     }
    1267            0 :                 lab10:
    1268              :                     ;
    1269              :                 }
    1270            0 :                 break;
    1271            0 :             lab8:
    1272            0 :                 z->c = z->l - v_7;
    1273              :                 {
    1274            0 :                     int ret = r_stem_suffix_chain_before_ki(z);
    1275            0 :                     if (ret == 0) { z->c = z->l - v_6; goto lab6; }
    1276            0 :                     if (ret < 0) return ret;
    1277              :                 }
    1278              :             } while (0);
    1279            0 :         lab6:
    1280              :             ;
    1281              :         }
    1282            0 :         break;
    1283            0 :     lab5:
    1284            0 :         z->c = z->l - v_1;
    1285              :         {
    1286            0 :             int ret = r_mark_ndA(z);
    1287            0 :             if (ret <= 0) return ret;
    1288              :         }
    1289              :         do {
    1290            0 :             int v_10 = z->l - z->c;
    1291              :             {
    1292            0 :                 int ret = r_mark_lArI(z);
    1293            0 :                 if (ret == 0) goto lab11;
    1294            0 :                 if (ret < 0) return ret;
    1295              :             }
    1296            0 :             z->bra = z->c;
    1297              :             {
    1298            0 :                 int ret = slice_del(z);
    1299            0 :                 if (ret < 0) return ret;
    1300              :             }
    1301            0 :             break;
    1302            0 :         lab11:
    1303            0 :             z->c = z->l - v_10;
    1304              :             {
    1305            0 :                 int ret = r_mark_sU(z);
    1306            0 :                 if (ret == 0) goto lab12;
    1307            0 :                 if (ret < 0) return ret;
    1308              :             }
    1309            0 :             z->bra = z->c;
    1310              :             {
    1311            0 :                 int ret = slice_del(z);
    1312            0 :                 if (ret < 0) return ret;
    1313              :             }
    1314              :             {
    1315            0 :                 int v_11 = z->l - z->c;
    1316            0 :                 z->ket = z->c;
    1317              :                 {
    1318            0 :                     int ret = r_mark_lAr(z);
    1319            0 :                     if (ret == 0) { z->c = z->l - v_11; goto lab13; }
    1320            0 :                     if (ret < 0) return ret;
    1321              :                 }
    1322            0 :                 z->bra = z->c;
    1323              :                 {
    1324            0 :                     int ret = slice_del(z);
    1325            0 :                     if (ret < 0) return ret;
    1326              :                 }
    1327              :                 {
    1328            0 :                     int ret = r_stem_suffix_chain_before_ki(z);
    1329            0 :                     if (ret == 0) { z->c = z->l - v_11; goto lab13; }
    1330            0 :                     if (ret < 0) return ret;
    1331              :                 }
    1332            0 :             lab13:
    1333              :                 ;
    1334              :             }
    1335            0 :             break;
    1336            0 :         lab12:
    1337            0 :             z->c = z->l - v_10;
    1338              :             {
    1339            0 :                 int ret = r_stem_suffix_chain_before_ki(z);
    1340            0 :                 if (ret <= 0) return ret;
    1341              :             }
    1342              :         } while (0);
    1343              :     } while (0);
    1344            0 :     return 1;
    1345              : }
    1346              : 
    1347            0 : static int r_stem_noun_suffixes(struct SN_env * z) {
    1348              :     do {
    1349            0 :         int v_1 = z->l - z->c;
    1350            0 :         z->ket = z->c;
    1351              :         {
    1352            0 :             int ret = r_mark_lAr(z);
    1353            0 :             if (ret == 0) goto lab0;
    1354            0 :             if (ret < 0) return ret;
    1355              :         }
    1356            0 :         z->bra = z->c;
    1357              :         {
    1358            0 :             int ret = slice_del(z);
    1359            0 :             if (ret < 0) return ret;
    1360              :         }
    1361              :         {
    1362            0 :             int v_2 = z->l - z->c;
    1363              :             {
    1364            0 :                 int ret = r_stem_suffix_chain_before_ki(z);
    1365            0 :                 if (ret == 0) { z->c = z->l - v_2; goto lab1; }
    1366            0 :                 if (ret < 0) return ret;
    1367              :             }
    1368            0 :         lab1:
    1369              :             ;
    1370              :         }
    1371            0 :         break;
    1372            0 :     lab0:
    1373            0 :         z->c = z->l - v_1;
    1374            0 :         z->ket = z->c;
    1375              :         {
    1376            0 :             int ret = r_mark_ncA(z);
    1377            0 :             if (ret == 0) goto lab2;
    1378            0 :             if (ret < 0) return ret;
    1379              :         }
    1380            0 :         z->bra = z->c;
    1381              :         {
    1382            0 :             int ret = slice_del(z);
    1383            0 :             if (ret < 0) return ret;
    1384              :         }
    1385              :         {
    1386            0 :             int v_3 = z->l - z->c;
    1387              :             do {
    1388            0 :                 int v_4 = z->l - z->c;
    1389            0 :                 z->ket = z->c;
    1390              :                 {
    1391            0 :                     int ret = r_mark_lArI(z);
    1392            0 :                     if (ret == 0) goto lab4;
    1393            0 :                     if (ret < 0) return ret;
    1394              :                 }
    1395            0 :                 z->bra = z->c;
    1396              :                 {
    1397            0 :                     int ret = slice_del(z);
    1398            0 :                     if (ret < 0) return ret;
    1399              :                 }
    1400            0 :                 break;
    1401            0 :             lab4:
    1402            0 :                 z->c = z->l - v_4;
    1403            0 :                 z->ket = z->c;
    1404              :                 do {
    1405            0 :                     int v_5 = z->l - z->c;
    1406              :                     {
    1407            0 :                         int ret = r_mark_possessives(z);
    1408            0 :                         if (ret == 0) goto lab6;
    1409            0 :                         if (ret < 0) return ret;
    1410              :                     }
    1411            0 :                     break;
    1412            0 :                 lab6:
    1413            0 :                     z->c = z->l - v_5;
    1414              :                     {
    1415            0 :                         int ret = r_mark_sU(z);
    1416            0 :                         if (ret == 0) goto lab5;
    1417            0 :                         if (ret < 0) return ret;
    1418              :                     }
    1419              :                 } while (0);
    1420            0 :                 z->bra = z->c;
    1421              :                 {
    1422            0 :                     int ret = slice_del(z);
    1423            0 :                     if (ret < 0) return ret;
    1424              :                 }
    1425              :                 {
    1426            0 :                     int v_6 = z->l - z->c;
    1427            0 :                     z->ket = z->c;
    1428              :                     {
    1429            0 :                         int ret = r_mark_lAr(z);
    1430            0 :                         if (ret == 0) { z->c = z->l - v_6; goto lab7; }
    1431            0 :                         if (ret < 0) return ret;
    1432              :                     }
    1433            0 :                     z->bra = z->c;
    1434              :                     {
    1435            0 :                         int ret = slice_del(z);
    1436            0 :                         if (ret < 0) return ret;
    1437              :                     }
    1438              :                     {
    1439            0 :                         int ret = r_stem_suffix_chain_before_ki(z);
    1440            0 :                         if (ret == 0) { z->c = z->l - v_6; goto lab7; }
    1441            0 :                         if (ret < 0) return ret;
    1442              :                     }
    1443            0 :                 lab7:
    1444              :                     ;
    1445              :                 }
    1446            0 :                 break;
    1447            0 :             lab5:
    1448            0 :                 z->c = z->l - v_4;
    1449            0 :                 z->ket = z->c;
    1450              :                 {
    1451            0 :                     int ret = r_mark_lAr(z);
    1452            0 :                     if (ret == 0) { z->c = z->l - v_3; goto lab3; }
    1453            0 :                     if (ret < 0) return ret;
    1454              :                 }
    1455            0 :                 z->bra = z->c;
    1456              :                 {
    1457            0 :                     int ret = slice_del(z);
    1458            0 :                     if (ret < 0) return ret;
    1459              :                 }
    1460              :                 {
    1461            0 :                     int ret = r_stem_suffix_chain_before_ki(z);
    1462            0 :                     if (ret == 0) { z->c = z->l - v_3; goto lab3; }
    1463            0 :                     if (ret < 0) return ret;
    1464              :                 }
    1465              :             } while (0);
    1466            0 :         lab3:
    1467              :             ;
    1468              :         }
    1469            0 :         break;
    1470            0 :     lab2:
    1471            0 :         z->c = z->l - v_1;
    1472            0 :         z->ket = z->c;
    1473              :         do {
    1474            0 :             int v_7 = z->l - z->c;
    1475              :             {
    1476            0 :                 int ret = r_mark_ndA(z);
    1477            0 :                 if (ret == 0) goto lab9;
    1478            0 :                 if (ret < 0) return ret;
    1479              :             }
    1480            0 :             break;
    1481            0 :         lab9:
    1482            0 :             z->c = z->l - v_7;
    1483              :             {
    1484            0 :                 int ret = r_mark_nA(z);
    1485            0 :                 if (ret == 0) goto lab8;
    1486            0 :                 if (ret < 0) return ret;
    1487              :             }
    1488              :         } while (0);
    1489              :         do {
    1490            0 :             int v_8 = z->l - z->c;
    1491              :             {
    1492            0 :                 int ret = r_mark_lArI(z);
    1493            0 :                 if (ret == 0) goto lab10;
    1494            0 :                 if (ret < 0) return ret;
    1495              :             }
    1496            0 :             z->bra = z->c;
    1497              :             {
    1498            0 :                 int ret = slice_del(z);
    1499            0 :                 if (ret < 0) return ret;
    1500              :             }
    1501            0 :             break;
    1502            0 :         lab10:
    1503            0 :             z->c = z->l - v_8;
    1504              :             {
    1505            0 :                 int ret = r_mark_sU(z);
    1506            0 :                 if (ret == 0) goto lab11;
    1507            0 :                 if (ret < 0) return ret;
    1508              :             }
    1509            0 :             z->bra = z->c;
    1510              :             {
    1511            0 :                 int ret = slice_del(z);
    1512            0 :                 if (ret < 0) return ret;
    1513              :             }
    1514              :             {
    1515            0 :                 int v_9 = z->l - z->c;
    1516            0 :                 z->ket = z->c;
    1517              :                 {
    1518            0 :                     int ret = r_mark_lAr(z);
    1519            0 :                     if (ret == 0) { z->c = z->l - v_9; goto lab12; }
    1520            0 :                     if (ret < 0) return ret;
    1521              :                 }
    1522            0 :                 z->bra = z->c;
    1523              :                 {
    1524            0 :                     int ret = slice_del(z);
    1525            0 :                     if (ret < 0) return ret;
    1526              :                 }
    1527              :                 {
    1528            0 :                     int ret = r_stem_suffix_chain_before_ki(z);
    1529            0 :                     if (ret == 0) { z->c = z->l - v_9; goto lab12; }
    1530            0 :                     if (ret < 0) return ret;
    1531              :                 }
    1532            0 :             lab12:
    1533              :                 ;
    1534              :             }
    1535            0 :             break;
    1536            0 :         lab11:
    1537            0 :             z->c = z->l - v_8;
    1538              :             {
    1539            0 :                 int ret = r_stem_suffix_chain_before_ki(z);
    1540            0 :                 if (ret == 0) goto lab8;
    1541            0 :                 if (ret < 0) return ret;
    1542              :             }
    1543              :         } while (0);
    1544            0 :         break;
    1545            0 :     lab8:
    1546            0 :         z->c = z->l - v_1;
    1547            0 :         z->ket = z->c;
    1548              :         do {
    1549            0 :             int v_10 = z->l - z->c;
    1550              :             {
    1551            0 :                 int ret = r_mark_ndAn(z);
    1552            0 :                 if (ret == 0) goto lab14;
    1553            0 :                 if (ret < 0) return ret;
    1554              :             }
    1555            0 :             break;
    1556            0 :         lab14:
    1557            0 :             z->c = z->l - v_10;
    1558              :             {
    1559            0 :                 int ret = r_mark_nU(z);
    1560            0 :                 if (ret == 0) goto lab13;
    1561            0 :                 if (ret < 0) return ret;
    1562              :             }
    1563              :         } while (0);
    1564              :         do {
    1565            0 :             int v_11 = z->l - z->c;
    1566              :             {
    1567            0 :                 int ret = r_mark_sU(z);
    1568            0 :                 if (ret == 0) goto lab15;
    1569            0 :                 if (ret < 0) return ret;
    1570              :             }
    1571            0 :             z->bra = z->c;
    1572              :             {
    1573            0 :                 int ret = slice_del(z);
    1574            0 :                 if (ret < 0) return ret;
    1575              :             }
    1576              :             {
    1577            0 :                 int v_12 = z->l - z->c;
    1578            0 :                 z->ket = z->c;
    1579              :                 {
    1580            0 :                     int ret = r_mark_lAr(z);
    1581            0 :                     if (ret == 0) { z->c = z->l - v_12; goto lab16; }
    1582            0 :                     if (ret < 0) return ret;
    1583              :                 }
    1584            0 :                 z->bra = z->c;
    1585              :                 {
    1586            0 :                     int ret = slice_del(z);
    1587            0 :                     if (ret < 0) return ret;
    1588              :                 }
    1589              :                 {
    1590            0 :                     int ret = r_stem_suffix_chain_before_ki(z);
    1591            0 :                     if (ret == 0) { z->c = z->l - v_12; goto lab16; }
    1592            0 :                     if (ret < 0) return ret;
    1593              :                 }
    1594            0 :             lab16:
    1595              :                 ;
    1596              :             }
    1597            0 :             break;
    1598            0 :         lab15:
    1599            0 :             z->c = z->l - v_11;
    1600              :             {
    1601            0 :                 int ret = r_mark_lArI(z);
    1602            0 :                 if (ret == 0) goto lab13;
    1603            0 :                 if (ret < 0) return ret;
    1604              :             }
    1605              :         } while (0);
    1606            0 :         break;
    1607            0 :     lab13:
    1608            0 :         z->c = z->l - v_1;
    1609            0 :         z->ket = z->c;
    1610              :         {
    1611            0 :             int ret = r_mark_DAn(z);
    1612            0 :             if (ret == 0) goto lab17;
    1613            0 :             if (ret < 0) return ret;
    1614              :         }
    1615            0 :         z->bra = z->c;
    1616              :         {
    1617            0 :             int ret = slice_del(z);
    1618            0 :             if (ret < 0) return ret;
    1619              :         }
    1620              :         {
    1621            0 :             int v_13 = z->l - z->c;
    1622            0 :             z->ket = z->c;
    1623              :             do {
    1624            0 :                 int v_14 = z->l - z->c;
    1625              :                 {
    1626            0 :                     int ret = r_mark_possessives(z);
    1627            0 :                     if (ret == 0) goto lab19;
    1628            0 :                     if (ret < 0) return ret;
    1629              :                 }
    1630            0 :                 z->bra = z->c;
    1631              :                 {
    1632            0 :                     int ret = slice_del(z);
    1633            0 :                     if (ret < 0) return ret;
    1634              :                 }
    1635              :                 {
    1636            0 :                     int v_15 = z->l - z->c;
    1637            0 :                     z->ket = z->c;
    1638              :                     {
    1639            0 :                         int ret = r_mark_lAr(z);
    1640            0 :                         if (ret == 0) { z->c = z->l - v_15; goto lab20; }
    1641            0 :                         if (ret < 0) return ret;
    1642              :                     }
    1643            0 :                     z->bra = z->c;
    1644              :                     {
    1645            0 :                         int ret = slice_del(z);
    1646            0 :                         if (ret < 0) return ret;
    1647              :                     }
    1648              :                     {
    1649            0 :                         int ret = r_stem_suffix_chain_before_ki(z);
    1650            0 :                         if (ret == 0) { z->c = z->l - v_15; goto lab20; }
    1651            0 :                         if (ret < 0) return ret;
    1652              :                     }
    1653            0 :                 lab20:
    1654              :                     ;
    1655              :                 }
    1656            0 :                 break;
    1657            0 :             lab19:
    1658            0 :                 z->c = z->l - v_14;
    1659              :                 {
    1660            0 :                     int ret = r_mark_lAr(z);
    1661            0 :                     if (ret == 0) goto lab21;
    1662            0 :                     if (ret < 0) return ret;
    1663              :                 }
    1664            0 :                 z->bra = z->c;
    1665              :                 {
    1666            0 :                     int ret = slice_del(z);
    1667            0 :                     if (ret < 0) return ret;
    1668              :                 }
    1669              :                 {
    1670            0 :                     int v_16 = z->l - z->c;
    1671              :                     {
    1672            0 :                         int ret = r_stem_suffix_chain_before_ki(z);
    1673            0 :                         if (ret == 0) { z->c = z->l - v_16; goto lab22; }
    1674            0 :                         if (ret < 0) return ret;
    1675              :                     }
    1676            0 :                 lab22:
    1677              :                     ;
    1678              :                 }
    1679            0 :                 break;
    1680            0 :             lab21:
    1681            0 :                 z->c = z->l - v_14;
    1682              :                 {
    1683            0 :                     int ret = r_stem_suffix_chain_before_ki(z);
    1684            0 :                     if (ret == 0) { z->c = z->l - v_13; goto lab18; }
    1685            0 :                     if (ret < 0) return ret;
    1686              :                 }
    1687              :             } while (0);
    1688            0 :         lab18:
    1689              :             ;
    1690              :         }
    1691            0 :         break;
    1692            0 :     lab17:
    1693            0 :         z->c = z->l - v_1;
    1694            0 :         z->ket = z->c;
    1695              :         do {
    1696            0 :             int v_17 = z->l - z->c;
    1697              :             {
    1698            0 :                 int ret = r_mark_nUn(z);
    1699            0 :                 if (ret == 0) goto lab24;
    1700            0 :                 if (ret < 0) return ret;
    1701              :             }
    1702            0 :             break;
    1703            0 :         lab24:
    1704            0 :             z->c = z->l - v_17;
    1705              :             {
    1706            0 :                 int ret = r_mark_ylA(z);
    1707            0 :                 if (ret == 0) goto lab23;
    1708            0 :                 if (ret < 0) return ret;
    1709              :             }
    1710              :         } while (0);
    1711            0 :         z->bra = z->c;
    1712              :         {
    1713            0 :             int ret = slice_del(z);
    1714            0 :             if (ret < 0) return ret;
    1715              :         }
    1716              :         {
    1717            0 :             int v_18 = z->l - z->c;
    1718              :             do {
    1719            0 :                 int v_19 = z->l - z->c;
    1720            0 :                 z->ket = z->c;
    1721              :                 {
    1722            0 :                     int ret = r_mark_lAr(z);
    1723            0 :                     if (ret == 0) goto lab26;
    1724            0 :                     if (ret < 0) return ret;
    1725              :                 }
    1726            0 :                 z->bra = z->c;
    1727              :                 {
    1728            0 :                     int ret = slice_del(z);
    1729            0 :                     if (ret < 0) return ret;
    1730              :                 }
    1731              :                 {
    1732            0 :                     int ret = r_stem_suffix_chain_before_ki(z);
    1733            0 :                     if (ret == 0) goto lab26;
    1734            0 :                     if (ret < 0) return ret;
    1735              :                 }
    1736            0 :                 break;
    1737            0 :             lab26:
    1738            0 :                 z->c = z->l - v_19;
    1739            0 :                 z->ket = z->c;
    1740              :                 do {
    1741            0 :                     int v_20 = z->l - z->c;
    1742              :                     {
    1743            0 :                         int ret = r_mark_possessives(z);
    1744            0 :                         if (ret == 0) goto lab28;
    1745            0 :                         if (ret < 0) return ret;
    1746              :                     }
    1747            0 :                     break;
    1748            0 :                 lab28:
    1749            0 :                     z->c = z->l - v_20;
    1750              :                     {
    1751            0 :                         int ret = r_mark_sU(z);
    1752            0 :                         if (ret == 0) goto lab27;
    1753            0 :                         if (ret < 0) return ret;
    1754              :                     }
    1755              :                 } while (0);
    1756            0 :                 z->bra = z->c;
    1757              :                 {
    1758            0 :                     int ret = slice_del(z);
    1759            0 :                     if (ret < 0) return ret;
    1760              :                 }
    1761              :                 {
    1762            0 :                     int v_21 = z->l - z->c;
    1763            0 :                     z->ket = z->c;
    1764              :                     {
    1765            0 :                         int ret = r_mark_lAr(z);
    1766            0 :                         if (ret == 0) { z->c = z->l - v_21; goto lab29; }
    1767            0 :                         if (ret < 0) return ret;
    1768              :                     }
    1769            0 :                     z->bra = z->c;
    1770              :                     {
    1771            0 :                         int ret = slice_del(z);
    1772            0 :                         if (ret < 0) return ret;
    1773              :                     }
    1774              :                     {
    1775            0 :                         int ret = r_stem_suffix_chain_before_ki(z);
    1776            0 :                         if (ret == 0) { z->c = z->l - v_21; goto lab29; }
    1777            0 :                         if (ret < 0) return ret;
    1778              :                     }
    1779            0 :                 lab29:
    1780              :                     ;
    1781              :                 }
    1782            0 :                 break;
    1783            0 :             lab27:
    1784            0 :                 z->c = z->l - v_19;
    1785              :                 {
    1786            0 :                     int ret = r_stem_suffix_chain_before_ki(z);
    1787            0 :                     if (ret == 0) { z->c = z->l - v_18; goto lab25; }
    1788            0 :                     if (ret < 0) return ret;
    1789              :                 }
    1790              :             } while (0);
    1791            0 :         lab25:
    1792              :             ;
    1793              :         }
    1794            0 :         break;
    1795            0 :     lab23:
    1796            0 :         z->c = z->l - v_1;
    1797            0 :         z->ket = z->c;
    1798              :         {
    1799            0 :             int ret = r_mark_lArI(z);
    1800            0 :             if (ret == 0) goto lab30;
    1801            0 :             if (ret < 0) return ret;
    1802              :         }
    1803            0 :         z->bra = z->c;
    1804              :         {
    1805            0 :             int ret = slice_del(z);
    1806            0 :             if (ret < 0) return ret;
    1807              :         }
    1808            0 :         break;
    1809            0 :     lab30:
    1810            0 :         z->c = z->l - v_1;
    1811              :         {
    1812            0 :             int ret = r_stem_suffix_chain_before_ki(z);
    1813            0 :             if (ret == 0) goto lab31;
    1814            0 :             if (ret < 0) return ret;
    1815              :         }
    1816            0 :         break;
    1817            0 :     lab31:
    1818            0 :         z->c = z->l - v_1;
    1819            0 :         z->ket = z->c;
    1820              :         do {
    1821            0 :             int v_22 = z->l - z->c;
    1822              :             {
    1823            0 :                 int ret = r_mark_DA(z);
    1824            0 :                 if (ret == 0) goto lab33;
    1825            0 :                 if (ret < 0) return ret;
    1826              :             }
    1827            0 :             break;
    1828            0 :         lab33:
    1829            0 :             z->c = z->l - v_22;
    1830              :             {
    1831            0 :                 int ret = r_mark_yU(z);
    1832            0 :                 if (ret == 0) goto lab34;
    1833            0 :                 if (ret < 0) return ret;
    1834              :             }
    1835            0 :             break;
    1836            0 :         lab34:
    1837            0 :             z->c = z->l - v_22;
    1838              :             {
    1839            0 :                 int ret = r_mark_yA(z);
    1840            0 :                 if (ret == 0) goto lab32;
    1841            0 :                 if (ret < 0) return ret;
    1842              :             }
    1843              :         } while (0);
    1844            0 :         z->bra = z->c;
    1845              :         {
    1846            0 :             int ret = slice_del(z);
    1847            0 :             if (ret < 0) return ret;
    1848              :         }
    1849              :         {
    1850            0 :             int v_23 = z->l - z->c;
    1851            0 :             z->ket = z->c;
    1852              :             do {
    1853            0 :                 int v_24 = z->l - z->c;
    1854              :                 {
    1855            0 :                     int ret = r_mark_possessives(z);
    1856            0 :                     if (ret == 0) goto lab36;
    1857            0 :                     if (ret < 0) return ret;
    1858              :                 }
    1859            0 :                 z->bra = z->c;
    1860              :                 {
    1861            0 :                     int ret = slice_del(z);
    1862            0 :                     if (ret < 0) return ret;
    1863              :                 }
    1864              :                 {
    1865            0 :                     int v_25 = z->l - z->c;
    1866            0 :                     z->ket = z->c;
    1867              :                     {
    1868            0 :                         int ret = r_mark_lAr(z);
    1869            0 :                         if (ret == 0) { z->c = z->l - v_25; goto lab37; }
    1870            0 :                         if (ret < 0) return ret;
    1871              :                     }
    1872            0 :                 lab37:
    1873              :                     ;
    1874              :                 }
    1875            0 :                 break;
    1876            0 :             lab36:
    1877            0 :                 z->c = z->l - v_24;
    1878              :                 {
    1879            0 :                     int ret = r_mark_lAr(z);
    1880            0 :                     if (ret == 0) { z->c = z->l - v_23; goto lab35; }
    1881            0 :                     if (ret < 0) return ret;
    1882              :                 }
    1883              :             } while (0);
    1884            0 :             z->bra = z->c;
    1885              :             {
    1886            0 :                 int ret = slice_del(z);
    1887            0 :                 if (ret < 0) return ret;
    1888              :             }
    1889            0 :             z->ket = z->c;
    1890              :             {
    1891            0 :                 int ret = r_stem_suffix_chain_before_ki(z);
    1892            0 :                 if (ret == 0) { z->c = z->l - v_23; goto lab35; }
    1893            0 :                 if (ret < 0) return ret;
    1894              :             }
    1895            0 :         lab35:
    1896              :             ;
    1897              :         }
    1898            0 :         break;
    1899            0 :     lab32:
    1900            0 :         z->c = z->l - v_1;
    1901            0 :         z->ket = z->c;
    1902              :         do {
    1903            0 :             int v_26 = z->l - z->c;
    1904              :             {
    1905            0 :                 int ret = r_mark_possessives(z);
    1906            0 :                 if (ret == 0) goto lab38;
    1907            0 :                 if (ret < 0) return ret;
    1908              :             }
    1909            0 :             break;
    1910            0 :         lab38:
    1911            0 :             z->c = z->l - v_26;
    1912              :             {
    1913            0 :                 int ret = r_mark_sU(z);
    1914            0 :                 if (ret <= 0) return ret;
    1915              :             }
    1916              :         } while (0);
    1917            0 :         z->bra = z->c;
    1918              :         {
    1919            0 :             int ret = slice_del(z);
    1920            0 :             if (ret < 0) return ret;
    1921              :         }
    1922              :         {
    1923            0 :             int v_27 = z->l - z->c;
    1924            0 :             z->ket = z->c;
    1925              :             {
    1926            0 :                 int ret = r_mark_lAr(z);
    1927            0 :                 if (ret == 0) { z->c = z->l - v_27; goto lab39; }
    1928            0 :                 if (ret < 0) return ret;
    1929              :             }
    1930            0 :             z->bra = z->c;
    1931              :             {
    1932            0 :                 int ret = slice_del(z);
    1933            0 :                 if (ret < 0) return ret;
    1934              :             }
    1935              :             {
    1936            0 :                 int ret = r_stem_suffix_chain_before_ki(z);
    1937            0 :                 if (ret == 0) { z->c = z->l - v_27; goto lab39; }
    1938            0 :                 if (ret < 0) return ret;
    1939              :             }
    1940            0 :         lab39:
    1941              :             ;
    1942              :         }
    1943              :     } while (0);
    1944            0 :     return 1;
    1945              : }
    1946              : 
    1947            0 : static int r_post_process_last_consonants(struct SN_env * z) {
    1948              :     int among_var;
    1949            0 :     z->ket = z->c;
    1950            0 :     among_var = find_among_b(z, a_23, 4, 0);
    1951            0 :     if (!among_var) return 0;
    1952            0 :     z->bra = z->c;
    1953            0 :     switch (among_var) {
    1954            0 :         case 1:
    1955              :             {
    1956            0 :                 int ret = slice_from_s(z, 1, s_5);
    1957            0 :                 if (ret < 0) return ret;
    1958              :             }
    1959            0 :             break;
    1960            0 :         case 2:
    1961              :             {
    1962            0 :                 int ret = slice_from_s(z, 2, s_6);
    1963            0 :                 if (ret < 0) return ret;
    1964              :             }
    1965            0 :             break;
    1966            0 :         case 3:
    1967              :             {
    1968            0 :                 int ret = slice_from_s(z, 1, s_7);
    1969            0 :                 if (ret < 0) return ret;
    1970              :             }
    1971            0 :             break;
    1972            0 :         case 4:
    1973              :             {
    1974            0 :                 int ret = slice_from_s(z, 1, s_8);
    1975            0 :                 if (ret < 0) return ret;
    1976              :             }
    1977            0 :             break;
    1978              :     }
    1979            0 :     return 1;
    1980              : }
    1981              : 
    1982            0 : static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) {
    1983            0 :     z->ket = z->c;
    1984            0 :     z->bra = z->c;
    1985              :     do {
    1986            0 :         int v_1 = z->l - z->c;
    1987            0 :         if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab0;
    1988            0 :         z->c--;
    1989            0 :         break;
    1990            0 :     lab0:
    1991            0 :         z->c = z->l - v_1;
    1992            0 :         if (z->c <= z->lb || z->p[z->c - 1] != 'g') return 0;
    1993            0 :         z->c--;
    1994              :     } while (0);
    1995            0 :     if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
    1996              :     do {
    1997            0 :         int v_2 = z->l - z->c;
    1998              :         do {
    1999            0 :             int v_3 = z->l - z->c;
    2000            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab2;
    2001            0 :             z->c--;
    2002            0 :             break;
    2003            0 :         lab2:
    2004            0 :             z->c = z->l - v_3;
    2005            0 :             if (!(eq_s_b(z, 2, s_9))) goto lab1;
    2006              :         } while (0);
    2007              :         {
    2008            0 :             int ret = slice_from_s(z, 2, s_10);
    2009            0 :             if (ret < 0) return ret;
    2010              :         }
    2011            0 :         break;
    2012            0 :     lab1:
    2013            0 :         z->c = z->l - v_2;
    2014              :         do {
    2015            0 :             int v_4 = z->l - z->c;
    2016            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab4;
    2017            0 :             z->c--;
    2018            0 :             break;
    2019            0 :         lab4:
    2020            0 :             z->c = z->l - v_4;
    2021            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab3;
    2022            0 :             z->c--;
    2023              :         } while (0);
    2024              :         {
    2025            0 :             int ret = slice_from_s(z, 1, s_11);
    2026            0 :             if (ret < 0) return ret;
    2027              :         }
    2028            0 :         break;
    2029            0 :     lab3:
    2030            0 :         z->c = z->l - v_2;
    2031              :         do {
    2032            0 :             int v_5 = z->l - z->c;
    2033            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab6;
    2034            0 :             z->c--;
    2035            0 :             break;
    2036            0 :         lab6:
    2037            0 :             z->c = z->l - v_5;
    2038            0 :             if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab5;
    2039            0 :             z->c--;
    2040              :         } while (0);
    2041              :         {
    2042            0 :             int ret = slice_from_s(z, 1, s_12);
    2043            0 :             if (ret < 0) return ret;
    2044              :         }
    2045            0 :         break;
    2046            0 :     lab5:
    2047            0 :         z->c = z->l - v_2;
    2048              :         do {
    2049            0 :             int v_6 = z->l - z->c;
    2050            0 :             if (!(eq_s_b(z, 2, s_13))) goto lab7;
    2051            0 :             break;
    2052            0 :         lab7:
    2053            0 :             z->c = z->l - v_6;
    2054            0 :             if (!(eq_s_b(z, 2, s_14))) return 0;
    2055              :         } while (0);
    2056              :         {
    2057            0 :             int ret = slice_from_s(z, 2, s_15);
    2058            0 :             if (ret < 0) return ret;
    2059              :         }
    2060              :     } while (0);
    2061            0 :     return 1;
    2062              : }
    2063              : 
    2064            0 : static int r_is_reserved_word(struct SN_env * z) {
    2065            0 :     if (!(eq_s_b(z, 2, s_16))) return 0;
    2066              :     {
    2067            0 :         int v_1 = z->l - z->c;
    2068            0 :         if (!(eq_s_b(z, 3, s_17))) { z->c = z->l - v_1; goto lab0; }
    2069            0 :     lab0:
    2070              :         ;
    2071              :     }
    2072            0 :     if (z->c > z->lb) return 0;
    2073            0 :     return 1;
    2074              : }
    2075              : 
    2076            0 : static int r_remove_proper_noun_suffix(struct SN_env * z) {
    2077              :     {
    2078            0 :         int v_1 = z->c;
    2079            0 :         z->bra = z->c;
    2080            0 :         while (1) {
    2081            0 :             int v_2 = z->c;
    2082              :             {
    2083            0 :                 int v_3 = z->c;
    2084            0 :                 if (z->c == z->l || z->p[z->c] != '\'') goto lab2;
    2085            0 :                 z->c++;
    2086            0 :                 goto lab1;
    2087            0 :             lab2:
    2088            0 :                 z->c = v_3;
    2089              :             }
    2090            0 :             z->c = v_2;
    2091            0 :             break;
    2092            0 :         lab1:
    2093            0 :             z->c = v_2;
    2094              :             {
    2095            0 :                 int ret = skip_utf8(z->p, z->c, z->l, 1);
    2096            0 :                 if (ret < 0) goto lab0;
    2097            0 :                 z->c = ret;
    2098              :             }
    2099              :         }
    2100            0 :         z->ket = z->c;
    2101              :         {
    2102            0 :             int ret = slice_del(z);
    2103            0 :             if (ret < 0) return ret;
    2104              :         }
    2105            0 :     lab0:
    2106            0 :         z->c = v_1;
    2107              :     }
    2108              :     {
    2109            0 :         int v_4 = z->c;
    2110              :         {
    2111            0 :             int ret = skip_utf8(z->p, z->c, z->l, 2);
    2112            0 :             if (ret < 0) goto lab3;
    2113            0 :             z->c = ret;
    2114              :         }
    2115            0 :         while (1) {
    2116            0 :             int v_5 = z->c;
    2117            0 :             if (z->c == z->l || z->p[z->c] != '\'') goto lab4;
    2118            0 :             z->c++;
    2119            0 :             z->c = v_5;
    2120            0 :             break;
    2121            0 :         lab4:
    2122            0 :             z->c = v_5;
    2123              :             {
    2124            0 :                 int ret = skip_utf8(z->p, z->c, z->l, 1);
    2125            0 :                 if (ret < 0) goto lab3;
    2126            0 :                 z->c = ret;
    2127              :             }
    2128              :         }
    2129            0 :         z->bra = z->c;
    2130            0 :         z->c = z->l;
    2131            0 :         z->ket = z->c;
    2132              :         {
    2133            0 :             int ret = slice_del(z);
    2134            0 :             if (ret < 0) return ret;
    2135              :         }
    2136            0 :     lab3:
    2137            0 :         z->c = v_4;
    2138              :     }
    2139            0 :     return 1;
    2140              : }
    2141              : 
    2142            0 : static int r_more_than_one_syllable_word(struct SN_env * z) {
    2143              :     {
    2144            0 :         int v_1 = z->c;
    2145              :         {
    2146            0 :             int i; for (i = 2; i > 0; i--) {
    2147              :                 {
    2148            0 :                     int ret = out_grouping_U(z, g_vowel, 97, 305, 1);
    2149            0 :                     if (ret < 0) return 0;
    2150            0 :                     z->c += ret;
    2151              :                 }
    2152              :             }
    2153              :         }
    2154            0 :         z->c = v_1;
    2155              :     }
    2156            0 :     return 1;
    2157              : }
    2158              : 
    2159            0 : static int r_postlude(struct SN_env * z) {
    2160            0 :     z->lb = z->c; z->c = z->l;
    2161              :     {
    2162            0 :         int v_1 = z->l - z->c;
    2163              :         {
    2164            0 :             int ret = r_is_reserved_word(z);
    2165            0 :             if (ret == 0) goto lab0;
    2166            0 :             if (ret < 0) return ret;
    2167              :         }
    2168            0 :         return 0;
    2169            0 :     lab0:
    2170            0 :         z->c = z->l - v_1;
    2171              :     }
    2172              :     {
    2173            0 :         int v_2 = z->l - z->c;
    2174              :         {
    2175            0 :             int ret = r_append_U_to_stems_ending_with_d_or_g(z);
    2176            0 :             if (ret < 0) return ret;
    2177              :         }
    2178            0 :         z->c = z->l - v_2;
    2179              :     }
    2180              :     {
    2181            0 :         int v_3 = z->l - z->c;
    2182              :         {
    2183            0 :             int ret = r_post_process_last_consonants(z);
    2184            0 :             if (ret < 0) return ret;
    2185              :         }
    2186            0 :         z->c = z->l - v_3;
    2187              :     }
    2188            0 :     z->c = z->lb;
    2189            0 :     return 1;
    2190              : }
    2191              : 
    2192            0 : extern int turkish_UTF_8_stem(struct SN_env * z) {
    2193              :     {
    2194            0 :         int ret = r_remove_proper_noun_suffix(z);
    2195            0 :         if (ret < 0) return ret;
    2196              :     }
    2197              :     {
    2198            0 :         int ret = r_more_than_one_syllable_word(z);
    2199            0 :         if (ret <= 0) return ret;
    2200              :     }
    2201            0 :     z->lb = z->c; z->c = z->l;
    2202              :     {
    2203            0 :         int v_1 = z->l - z->c;
    2204              :         {
    2205            0 :             int ret = r_stem_nominal_verb_suffixes(z);
    2206            0 :             if (ret < 0) return ret;
    2207              :         }
    2208            0 :         z->c = z->l - v_1;
    2209              :     }
    2210            0 :     if (!((SN_local *)z)->b_continue_stemming_noun_suffixes) return 0;
    2211              :     {
    2212            0 :         int v_2 = z->l - z->c;
    2213              :         {
    2214            0 :             int ret = r_stem_noun_suffixes(z);
    2215            0 :             if (ret < 0) return ret;
    2216              :         }
    2217            0 :         z->c = z->l - v_2;
    2218              :     }
    2219            0 :     z->c = z->lb;
    2220            0 :     return r_postlude(z);
    2221              : }
    2222              : 
    2223            0 : extern struct SN_env * turkish_UTF_8_create_env(void) {
    2224            0 :     struct SN_env * z = SN_new_env(sizeof(SN_local));
    2225            0 :     if (z) {
    2226            0 :         ((SN_local *)z)->b_continue_stemming_noun_suffixes = 0;
    2227              :     }
    2228            0 :     return z;
    2229              : }
    2230              : 
    2231            0 : extern void turkish_UTF_8_close_env(struct SN_env * z) {
    2232            0 :     SN_delete_env(z);
    2233            0 : }
    2234              : 
        

Generated by: LCOV version 2.0-1