LCOV - differential code coverage report
Current view: top level - src/backend/snowball/libstemmer - stem_UTF_8_turkish.c (source / functions) Coverage Total Hit UBC
Current: Differential Code Coverage HEAD vs 15 Lines: 0.0 % 1231 0 1231
Current Date: 2023-04-08 15:15:32 Functions: 0.0 % 43 0 43
Baseline: 15
Baseline Date: 2023-04-08 15:09:40
Legend: Lines: hit not hit

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

Generated by: LCOV version v1.16-55-g56c0a2a