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

            Line data    Source code
       1              : /* Generated from tamil.sbl by Snowball 3.0.0 - https://snowballstem.org/ */
       2              : 
       3              : #include "stem_UTF_8_tamil.h"
       4              : 
       5              : #include <stddef.h>
       6              : 
       7              : #include "snowball_runtime.h"
       8              : 
       9              : struct SN_local {
      10              :     struct SN_env z;
      11              :     unsigned char b_found_vetrumai_urupu;
      12              : };
      13              : 
      14              : typedef struct SN_local SN_local;
      15              : 
      16              : #ifdef __cplusplus
      17              : extern "C" {
      18              : #endif
      19              : extern int tamil_UTF_8_stem(struct SN_env * z);
      20              : #ifdef __cplusplus
      21              : }
      22              : #endif
      23              : 
      24              : static int r_has_min_length(struct SN_env * z);
      25              : static int r_remove_common_word_endings(struct SN_env * z);
      26              : static int r_remove_tense_suffixes(struct SN_env * z);
      27              : static int r_remove_tense_suffix(struct SN_env * z);
      28              : static int r_fix_endings(struct SN_env * z);
      29              : static int r_fix_ending(struct SN_env * z);
      30              : static int r_fix_va_start(struct SN_env * z);
      31              : static int r_remove_vetrumai_urupukal(struct SN_env * z);
      32              : static int r_remove_um(struct SN_env * z);
      33              : static int r_remove_command_suffixes(struct SN_env * z);
      34              : static int r_remove_pronoun_prefixes(struct SN_env * z);
      35              : static int r_remove_question_prefixes(struct SN_env * z);
      36              : static int r_remove_question_suffixes(struct SN_env * z);
      37              : static int r_remove_plural_suffix(struct SN_env * z);
      38              : 
      39              : static const symbol s_0[] = { 0xE0, 0xAE, 0x93 };
      40              : static const symbol s_1[] = { 0xE0, 0xAE, 0x92 };
      41              : static const symbol s_2[] = { 0xE0, 0xAE, 0x89 };
      42              : static const symbol s_3[] = { 0xE0, 0xAE, 0x8A };
      43              : static const symbol s_4[] = { 0xE0, 0xAE, 0x8E };
      44              : static const symbol s_5[] = { 0xE0, 0xAF, 0x8D };
      45              : static const symbol s_6[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
      46              : static const symbol s_7[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
      47              : static const symbol s_8[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
      48              : static const symbol s_9[] = { 0xE0, 0xAF, 0x88 };
      49              : static const symbol s_10[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
      50              : static const symbol s_11[] = { 0xE0, 0xAF, 0x8D };
      51              : static const symbol s_12[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
      52              : static const symbol s_13[] = { 0xE0, 0xAF, 0x8D };
      53              : static const symbol s_14[] = { 0xE0, 0xAF, 0x8D };
      54              : static const symbol s_15[] = { 0xE0, 0xAF, 0x8D };
      55              : static const symbol s_16[] = { 0xE0, 0xAF, 0x8D };
      56              : static const symbol s_17[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D };
      57              : static const symbol s_18[] = { 0xE0, 0xAF, 0x8D };
      58              : static const symbol s_19[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
      59              : static const symbol s_20[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
      60              : static const symbol s_21[] = { 0xE0, 0xAF, 0x8D };
      61              : static const symbol s_22[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
      62              : static const symbol s_23[] = { 0xE0, 0xAF, 0x8D };
      63              : static const symbol s_24[] = { 0xE0, 0xAF, 0x8D };
      64              : static const symbol s_25[] = { 0xE0, 0xAF, 0x8D };
      65              : static const symbol s_26[] = { 0xE0, 0xAF, 0x8D };
      66              : static const symbol s_27[] = { 0xE0, 0xAE, 0xAE };
      67              : static const symbol s_28[] = { 0xE0, 0xAF, 0x8D };
      68              : static const symbol s_29[] = { 0xE0, 0xAF, 0x8D };
      69              : static const symbol s_30[] = { 0xE0, 0xAF, 0x8D };
      70              : static const symbol s_31[] = { 0xE0, 0xAE, 0xBF };
      71              : static const symbol s_32[] = { 0xE0, 0xAF, 0x88 };
      72              : static const symbol s_33[] = { 0xE0, 0xAF, 0x8D };
      73              : static const symbol s_34[] = { 0xE0, 0xAF, 0x8D };
      74              : static const symbol s_35[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
      75              : static const symbol s_36[] = { 0xE0, 0xAF, 0x8D };
      76              : static const symbol s_37[] = { 0xE0, 0xAE, 0x9A };
      77              : static const symbol s_38[] = { 0xE0, 0xAF, 0x8D };
      78              : static const symbol s_39[] = { 0xE0, 0xAF, 0x8D };
      79              : static const symbol s_40[] = { 0xE0, 0xAF, 0x8D };
      80              : 
      81              : static const symbol s_0_0[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x81 };
      82              : static const symbol s_0_1[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x82 };
      83              : static const symbol s_0_2[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8A };
      84              : static const symbol s_0_3[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8B };
      85              : static const struct among a_0[4] = {
      86              : { 6, s_0_0, 0, 3, 0},
      87              : { 6, s_0_1, 0, 4, 0},
      88              : { 6, s_0_2, 0, 2, 0},
      89              : { 6, s_0_3, 0, 1, 0}
      90              : };
      91              : 
      92              : static const symbol s_1_0[3] = { 0xE0, 0xAE, 0x95 };
      93              : static const symbol s_1_1[3] = { 0xE0, 0xAE, 0x99 };
      94              : static const symbol s_1_2[3] = { 0xE0, 0xAE, 0x9A };
      95              : static const symbol s_1_3[3] = { 0xE0, 0xAE, 0x9E };
      96              : static const symbol s_1_4[3] = { 0xE0, 0xAE, 0xA4 };
      97              : static const symbol s_1_5[3] = { 0xE0, 0xAE, 0xA8 };
      98              : static const symbol s_1_6[3] = { 0xE0, 0xAE, 0xAA };
      99              : static const symbol s_1_7[3] = { 0xE0, 0xAE, 0xAE };
     100              : static const symbol s_1_8[3] = { 0xE0, 0xAE, 0xAF };
     101              : static const symbol s_1_9[3] = { 0xE0, 0xAE, 0xB5 };
     102              : static const struct among a_1[10] = {
     103              : { 3, s_1_0, 0, -1, 0},
     104              : { 3, s_1_1, 0, -1, 0},
     105              : { 3, s_1_2, 0, -1, 0},
     106              : { 3, s_1_3, 0, -1, 0},
     107              : { 3, s_1_4, 0, -1, 0},
     108              : { 3, s_1_5, 0, -1, 0},
     109              : { 3, s_1_6, 0, -1, 0},
     110              : { 3, s_1_7, 0, -1, 0},
     111              : { 3, s_1_8, 0, -1, 0},
     112              : { 3, s_1_9, 0, -1, 0}
     113              : };
     114              : 
     115              : static const symbol s_2_0[3] = { 0xE0, 0xAF, 0x80 };
     116              : static const symbol s_2_1[3] = { 0xE0, 0xAF, 0x88 };
     117              : static const symbol s_2_2[3] = { 0xE0, 0xAE, 0xBF };
     118              : static const struct among a_2[3] = {
     119              : { 3, s_2_0, 0, -1, 0},
     120              : { 3, s_2_1, 0, -1, 0},
     121              : { 3, s_2_2, 0, -1, 0}
     122              : };
     123              : 
     124              : static const symbol s_3_0[3] = { 0xE0, 0xAF, 0x80 };
     125              : static const symbol s_3_1[3] = { 0xE0, 0xAF, 0x81 };
     126              : static const symbol s_3_2[3] = { 0xE0, 0xAF, 0x82 };
     127              : static const symbol s_3_3[3] = { 0xE0, 0xAF, 0x86 };
     128              : static const symbol s_3_4[3] = { 0xE0, 0xAF, 0x87 };
     129              : static const symbol s_3_5[3] = { 0xE0, 0xAF, 0x88 };
     130              : static const symbol s_3_6[3] = { 0xE0, 0xAE, 0xBE };
     131              : static const symbol s_3_7[3] = { 0xE0, 0xAE, 0xBF };
     132              : static const struct among a_3[8] = {
     133              : { 3, s_3_0, 0, -1, 0},
     134              : { 3, s_3_1, 0, -1, 0},
     135              : { 3, s_3_2, 0, -1, 0},
     136              : { 3, s_3_3, 0, -1, 0},
     137              : { 3, s_3_4, 0, -1, 0},
     138              : { 3, s_3_5, 0, -1, 0},
     139              : { 3, s_3_6, 0, -1, 0},
     140              : { 3, s_3_7, 0, -1, 0}
     141              : };
     142              : 
     143              : static const symbol s_4_1[3] = { 0xE0, 0xAF, 0x88 };
     144              : static const symbol s_4_2[3] = { 0xE0, 0xAF, 0x8D };
     145              : static const struct among a_4[3] = {
     146              : { 0, 0, 0, 2, 0},
     147              : { 3, s_4_1, -1, 1, 0},
     148              : { 3, s_4_2, -2, 1, 0}
     149              : };
     150              : 
     151              : static const symbol s_5_0[6] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81 };
     152              : static const symbol s_5_1[9] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
     153              : static const symbol s_5_2[15] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
     154              : static const symbol s_5_3[12] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
     155              : static const symbol s_5_4[12] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
     156              : static const symbol s_5_5[6] = { 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D };
     157              : static const symbol s_5_6[12] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D };
     158              : static const symbol s_5_7[12] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D };
     159              : static const symbol s_5_8[12] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D };
     160              : static const symbol s_5_9[6] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D };
     161              : static const symbol s_5_10[12] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xAA, 0xE0, 0xAF, 0x8D };
     162              : static const symbol s_5_11[6] = { 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D };
     163              : static const symbol s_5_12[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
     164              : static const symbol s_5_13[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8D };
     165              : static const symbol s_5_14[9] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4 };
     166              : static const symbol s_5_15[3] = { 0xE0, 0xAE, 0xAF };
     167              : static const symbol s_5_16[3] = { 0xE0, 0xAE, 0xB5 };
     168              : static const struct among a_5[17] = {
     169              : { 6, s_5_0, 0, 8, 0},
     170              : { 9, s_5_1, 0, 7, 0},
     171              : { 15, s_5_2, 0, 7, 0},
     172              : { 12, s_5_3, 0, 3, 0},
     173              : { 12, s_5_4, 0, 4, 0},
     174              : { 6, s_5_5, 0, 9, 0},
     175              : { 12, s_5_6, 0, 5, 0},
     176              : { 12, s_5_7, 0, 6, 0},
     177              : { 12, s_5_8, 0, 1, 0},
     178              : { 6, s_5_9, 0, 1, 0},
     179              : { 12, s_5_10, 0, 3, 0},
     180              : { 6, s_5_11, 0, 2, 0},
     181              : { 12, s_5_12, 0, 4, 0},
     182              : { 6, s_5_13, 0, 1, 0},
     183              : { 9, s_5_14, 0, 1, 0},
     184              : { 3, s_5_15, 0, 1, 0},
     185              : { 3, s_5_16, 0, 1, 0}
     186              : };
     187              : 
     188              : static const symbol s_6_0[3] = { 0xE0, 0xAE, 0x95 };
     189              : static const symbol s_6_1[3] = { 0xE0, 0xAE, 0x9A };
     190              : static const symbol s_6_2[3] = { 0xE0, 0xAE, 0x9F };
     191              : static const symbol s_6_3[3] = { 0xE0, 0xAE, 0xA4 };
     192              : static const symbol s_6_4[3] = { 0xE0, 0xAE, 0xAA };
     193              : static const symbol s_6_5[3] = { 0xE0, 0xAE, 0xB1 };
     194              : static const struct among a_6[6] = {
     195              : { 3, s_6_0, 0, -1, 0},
     196              : { 3, s_6_1, 0, -1, 0},
     197              : { 3, s_6_2, 0, -1, 0},
     198              : { 3, s_6_3, 0, -1, 0},
     199              : { 3, s_6_4, 0, -1, 0},
     200              : { 3, s_6_5, 0, -1, 0}
     201              : };
     202              : 
     203              : static const symbol s_7_0[3] = { 0xE0, 0xAE, 0x95 };
     204              : static const symbol s_7_1[3] = { 0xE0, 0xAE, 0x9A };
     205              : static const symbol s_7_2[3] = { 0xE0, 0xAE, 0x9F };
     206              : static const symbol s_7_3[3] = { 0xE0, 0xAE, 0xA4 };
     207              : static const symbol s_7_4[3] = { 0xE0, 0xAE, 0xAA };
     208              : static const symbol s_7_5[3] = { 0xE0, 0xAE, 0xB1 };
     209              : static const struct among a_7[6] = {
     210              : { 3, s_7_0, 0, -1, 0},
     211              : { 3, s_7_1, 0, -1, 0},
     212              : { 3, s_7_2, 0, -1, 0},
     213              : { 3, s_7_3, 0, -1, 0},
     214              : { 3, s_7_4, 0, -1, 0},
     215              : { 3, s_7_5, 0, -1, 0}
     216              : };
     217              : 
     218              : static const symbol s_8_0[3] = { 0xE0, 0xAE, 0x9E };
     219              : static const symbol s_8_1[3] = { 0xE0, 0xAE, 0xA3 };
     220              : static const symbol s_8_2[3] = { 0xE0, 0xAE, 0xA8 };
     221              : static const symbol s_8_3[3] = { 0xE0, 0xAE, 0xA9 };
     222              : static const symbol s_8_4[3] = { 0xE0, 0xAE, 0xAE };
     223              : static const symbol s_8_5[3] = { 0xE0, 0xAE, 0xAF };
     224              : static const symbol s_8_6[3] = { 0xE0, 0xAE, 0xB0 };
     225              : static const symbol s_8_7[3] = { 0xE0, 0xAE, 0xB2 };
     226              : static const symbol s_8_8[3] = { 0xE0, 0xAE, 0xB3 };
     227              : static const symbol s_8_9[3] = { 0xE0, 0xAE, 0xB4 };
     228              : static const symbol s_8_10[3] = { 0xE0, 0xAE, 0xB5 };
     229              : static const struct among a_8[11] = {
     230              : { 3, s_8_0, 0, -1, 0},
     231              : { 3, s_8_1, 0, -1, 0},
     232              : { 3, s_8_2, 0, -1, 0},
     233              : { 3, s_8_3, 0, -1, 0},
     234              : { 3, s_8_4, 0, -1, 0},
     235              : { 3, s_8_5, 0, -1, 0},
     236              : { 3, s_8_6, 0, -1, 0},
     237              : { 3, s_8_7, 0, -1, 0},
     238              : { 3, s_8_8, 0, -1, 0},
     239              : { 3, s_8_9, 0, -1, 0},
     240              : { 3, s_8_10, 0, -1, 0}
     241              : };
     242              : 
     243              : static const symbol s_9_0[3] = { 0xE0, 0xAF, 0x80 };
     244              : static const symbol s_9_1[3] = { 0xE0, 0xAF, 0x81 };
     245              : static const symbol s_9_2[3] = { 0xE0, 0xAF, 0x82 };
     246              : static const symbol s_9_3[3] = { 0xE0, 0xAF, 0x86 };
     247              : static const symbol s_9_4[3] = { 0xE0, 0xAF, 0x87 };
     248              : static const symbol s_9_5[3] = { 0xE0, 0xAF, 0x88 };
     249              : static const symbol s_9_6[3] = { 0xE0, 0xAF, 0x8D };
     250              : static const symbol s_9_7[3] = { 0xE0, 0xAE, 0xBE };
     251              : static const symbol s_9_8[3] = { 0xE0, 0xAE, 0xBF };
     252              : static const struct among a_9[9] = {
     253              : { 3, s_9_0, 0, -1, 0},
     254              : { 3, s_9_1, 0, -1, 0},
     255              : { 3, s_9_2, 0, -1, 0},
     256              : { 3, s_9_3, 0, -1, 0},
     257              : { 3, s_9_4, 0, -1, 0},
     258              : { 3, s_9_5, 0, -1, 0},
     259              : { 3, s_9_6, 0, -1, 0},
     260              : { 3, s_9_7, 0, -1, 0},
     261              : { 3, s_9_8, 0, -1, 0}
     262              : };
     263              : 
     264              : static const symbol s_10_0[3] = { 0xE0, 0xAE, 0x85 };
     265              : static const symbol s_10_1[3] = { 0xE0, 0xAE, 0x87 };
     266              : static const symbol s_10_2[3] = { 0xE0, 0xAE, 0x89 };
     267              : static const struct among a_10[3] = {
     268              : { 3, s_10_0, 0, -1, 0},
     269              : { 3, s_10_1, 0, -1, 0},
     270              : { 3, s_10_2, 0, -1, 0}
     271              : };
     272              : 
     273              : static const symbol s_11_0[3] = { 0xE0, 0xAE, 0x95 };
     274              : static const symbol s_11_1[3] = { 0xE0, 0xAE, 0x99 };
     275              : static const symbol s_11_2[3] = { 0xE0, 0xAE, 0x9A };
     276              : static const symbol s_11_3[3] = { 0xE0, 0xAE, 0x9E };
     277              : static const symbol s_11_4[3] = { 0xE0, 0xAE, 0xA4 };
     278              : static const symbol s_11_5[3] = { 0xE0, 0xAE, 0xA8 };
     279              : static const symbol s_11_6[3] = { 0xE0, 0xAE, 0xAA };
     280              : static const symbol s_11_7[3] = { 0xE0, 0xAE, 0xAE };
     281              : static const symbol s_11_8[3] = { 0xE0, 0xAE, 0xAF };
     282              : static const symbol s_11_9[3] = { 0xE0, 0xAE, 0xB5 };
     283              : static const struct among a_11[10] = {
     284              : { 3, s_11_0, 0, -1, 0},
     285              : { 3, s_11_1, 0, -1, 0},
     286              : { 3, s_11_2, 0, -1, 0},
     287              : { 3, s_11_3, 0, -1, 0},
     288              : { 3, s_11_4, 0, -1, 0},
     289              : { 3, s_11_5, 0, -1, 0},
     290              : { 3, s_11_6, 0, -1, 0},
     291              : { 3, s_11_7, 0, -1, 0},
     292              : { 3, s_11_8, 0, -1, 0},
     293              : { 3, s_11_9, 0, -1, 0}
     294              : };
     295              : 
     296              : static const symbol s_12_0[3] = { 0xE0, 0xAE, 0x95 };
     297              : static const symbol s_12_1[3] = { 0xE0, 0xAE, 0x9A };
     298              : static const symbol s_12_2[3] = { 0xE0, 0xAE, 0x9F };
     299              : static const symbol s_12_3[3] = { 0xE0, 0xAE, 0xA4 };
     300              : static const symbol s_12_4[3] = { 0xE0, 0xAE, 0xAA };
     301              : static const symbol s_12_5[3] = { 0xE0, 0xAE, 0xB1 };
     302              : static const struct among a_12[6] = {
     303              : { 3, s_12_0, 0, -1, 0},
     304              : { 3, s_12_1, 0, -1, 0},
     305              : { 3, s_12_2, 0, -1, 0},
     306              : { 3, s_12_3, 0, -1, 0},
     307              : { 3, s_12_4, 0, -1, 0},
     308              : { 3, s_12_5, 0, -1, 0}
     309              : };
     310              : 
     311              : static const symbol s_13_0[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
     312              : static const symbol s_13_1[18] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
     313              : static const symbol s_13_2[15] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
     314              : static const symbol s_13_3[15] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
     315              : static const struct among a_13[4] = {
     316              : { 9, s_13_0, 0, 4, 0},
     317              : { 18, s_13_1, -1, 1, 0},
     318              : { 15, s_13_2, -2, 3, 0},
     319              : { 15, s_13_3, -3, 2, 0}
     320              : };
     321              : 
     322              : static const symbol s_14_0[3] = { 0xE0, 0xAF, 0x87 };
     323              : static const symbol s_14_1[3] = { 0xE0, 0xAF, 0x8B };
     324              : static const symbol s_14_2[3] = { 0xE0, 0xAE, 0xBE };
     325              : static const struct among a_14[3] = {
     326              : { 3, s_14_0, 0, -1, 0},
     327              : { 3, s_14_1, 0, -1, 0},
     328              : { 3, s_14_2, 0, -1, 0}
     329              : };
     330              : 
     331              : static const symbol s_15_0[6] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xBF };
     332              : static const symbol s_15_1[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF };
     333              : static const struct among a_15[2] = {
     334              : { 6, s_15_0, 0, -1, 0},
     335              : { 6, s_15_1, 0, -1, 0}
     336              : };
     337              : 
     338              : static const symbol s_16_0[3] = { 0xE0, 0xAF, 0x80 };
     339              : static const symbol s_16_1[3] = { 0xE0, 0xAF, 0x81 };
     340              : static const symbol s_16_2[3] = { 0xE0, 0xAF, 0x82 };
     341              : static const symbol s_16_3[3] = { 0xE0, 0xAF, 0x86 };
     342              : static const symbol s_16_4[3] = { 0xE0, 0xAF, 0x87 };
     343              : static const symbol s_16_5[3] = { 0xE0, 0xAF, 0x88 };
     344              : static const symbol s_16_6[3] = { 0xE0, 0xAE, 0xBE };
     345              : static const symbol s_16_7[3] = { 0xE0, 0xAE, 0xBF };
     346              : static const struct among a_16[8] = {
     347              : { 3, s_16_0, 0, -1, 0},
     348              : { 3, s_16_1, 0, -1, 0},
     349              : { 3, s_16_2, 0, -1, 0},
     350              : { 3, s_16_3, 0, -1, 0},
     351              : { 3, s_16_4, 0, -1, 0},
     352              : { 3, s_16_5, 0, -1, 0},
     353              : { 3, s_16_6, 0, -1, 0},
     354              : { 3, s_16_7, 0, -1, 0}
     355              : };
     356              : 
     357              : static const symbol s_17_0[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
     358              : static const symbol s_17_1[18] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
     359              : static const symbol s_17_2[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
     360              : static const symbol s_17_3[12] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
     361              : static const symbol s_17_4[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
     362              : static const symbol s_17_5[15] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
     363              : static const symbol s_17_6[9] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 };
     364              : static const symbol s_17_7[15] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x88 };
     365              : static const symbol s_17_8[12] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
     366              : static const symbol s_17_9[15] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     367              : static const symbol s_17_10[12] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     368              : static const symbol s_17_11[21] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     369              : static const symbol s_17_12[12] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F };
     370              : static const symbol s_17_13[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA3 };
     371              : static const symbol s_17_14[6] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9 };
     372              : static const symbol s_17_15[9] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 };
     373              : static const symbol s_17_16[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 };
     374              : static const symbol s_17_17[12] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88, 0xE0, 0xAE, 0xAF };
     375              : static const symbol s_17_18[12] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF };
     376              : static const symbol s_17_19[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB0, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF };
     377              : static const symbol s_17_20[9] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2 };
     378              : static const symbol s_17_21[12] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB3 };
     379              : static const symbol s_17_22[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF };
     380              : static const symbol s_17_23[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF };
     381              : static const symbol s_17_24[15] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF };
     382              : static const symbol s_17_25[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF };
     383              : static const struct among a_17[26] = {
     384              : { 15, s_17_0, 0, 3, 0},
     385              : { 18, s_17_1, 0, 3, 0},
     386              : { 9, s_17_2, 0, 3, 0},
     387              : { 12, s_17_3, 0, 3, 0},
     388              : { 18, s_17_4, 0, 3, 0},
     389              : { 15, s_17_5, 0, 1, 0},
     390              : { 9, s_17_6, 0, 1, 0},
     391              : { 15, s_17_7, 0, 1, 0},
     392              : { 12, s_17_8, 0, 1, 0},
     393              : { 15, s_17_9, 0, 1, 0},
     394              : { 12, s_17_10, 0, 1, 0},
     395              : { 21, s_17_11, 0, 3, 0},
     396              : { 12, s_17_12, 0, 3, 0},
     397              : { 15, s_17_13, 0, 3, 0},
     398              : { 6, s_17_14, 0, 1, 0},
     399              : { 9, s_17_15, 0, 3, 0},
     400              : { 18, s_17_16, -1, 3, 0},
     401              : { 12, s_17_17, 0, 1, 0},
     402              : { 12, s_17_18, 0, 1, 0},
     403              : { 15, s_17_19, 0, 3, 0},
     404              : { 9, s_17_20, 0, 2, 0},
     405              : { 12, s_17_21, 0, 1, 0},
     406              : { 9, s_17_22, 0, 1, 0},
     407              : { 9, s_17_23, 0, 3, 0},
     408              : { 15, s_17_24, 0, 1, 0},
     409              : { 15, s_17_25, 0, 3, 0}
     410              : };
     411              : 
     412              : static const symbol s_18_0[3] = { 0xE0, 0xAF, 0x80 };
     413              : static const symbol s_18_1[3] = { 0xE0, 0xAF, 0x81 };
     414              : static const symbol s_18_2[3] = { 0xE0, 0xAF, 0x82 };
     415              : static const symbol s_18_3[3] = { 0xE0, 0xAF, 0x86 };
     416              : static const symbol s_18_4[3] = { 0xE0, 0xAF, 0x87 };
     417              : static const symbol s_18_5[3] = { 0xE0, 0xAF, 0x88 };
     418              : static const symbol s_18_6[3] = { 0xE0, 0xAE, 0xBE };
     419              : static const symbol s_18_7[3] = { 0xE0, 0xAE, 0xBF };
     420              : static const struct among a_18[8] = {
     421              : { 3, s_18_0, 0, -1, 0},
     422              : { 3, s_18_1, 0, -1, 0},
     423              : { 3, s_18_2, 0, -1, 0},
     424              : { 3, s_18_3, 0, -1, 0},
     425              : { 3, s_18_4, 0, -1, 0},
     426              : { 3, s_18_5, 0, -1, 0},
     427              : { 3, s_18_6, 0, -1, 0},
     428              : { 3, s_18_7, 0, -1, 0}
     429              : };
     430              : 
     431              : static const symbol s_19_0[3] = { 0xE0, 0xAF, 0x80 };
     432              : static const symbol s_19_1[3] = { 0xE0, 0xAF, 0x81 };
     433              : static const symbol s_19_2[3] = { 0xE0, 0xAF, 0x82 };
     434              : static const symbol s_19_3[3] = { 0xE0, 0xAF, 0x86 };
     435              : static const symbol s_19_4[3] = { 0xE0, 0xAF, 0x87 };
     436              : static const symbol s_19_5[3] = { 0xE0, 0xAF, 0x88 };
     437              : static const symbol s_19_6[3] = { 0xE0, 0xAE, 0xBE };
     438              : static const symbol s_19_7[3] = { 0xE0, 0xAE, 0xBF };
     439              : static const struct among a_19[8] = {
     440              : { 3, s_19_0, 0, -1, 0},
     441              : { 3, s_19_1, 0, -1, 0},
     442              : { 3, s_19_2, 0, -1, 0},
     443              : { 3, s_19_3, 0, -1, 0},
     444              : { 3, s_19_4, 0, -1, 0},
     445              : { 3, s_19_5, 0, -1, 0},
     446              : { 3, s_19_6, 0, -1, 0},
     447              : { 3, s_19_7, 0, -1, 0}
     448              : };
     449              : 
     450              : static const symbol s_20_0[3] = { 0xE0, 0xAF, 0x80 };
     451              : static const symbol s_20_1[9] = { 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
     452              : static const symbol s_20_2[9] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
     453              : static const symbol s_20_3[6] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
     454              : static const symbol s_20_4[21] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
     455              : static const symbol s_20_5[15] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
     456              : static const symbol s_20_6[9] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 };
     457              : static const symbol s_20_7[6] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
     458              : static const symbol s_20_8[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D };
     459              : static const symbol s_20_9[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
     460              : static const symbol s_20_10[9] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
     461              : static const symbol s_20_11[12] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     462              : static const symbol s_20_12[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
     463              : static const symbol s_20_13[9] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
     464              : static const symbol s_20_14[6] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
     465              : static const symbol s_20_15[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
     466              : static const symbol s_20_16[12] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
     467              : static const symbol s_20_17[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
     468              : static const symbol s_20_18[9] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
     469              : static const symbol s_20_19[9] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
     470              : static const symbol s_20_20[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB4, 0xE0, 0xAF, 0x8D };
     471              : static const symbol s_20_21[9] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F };
     472              : static const struct among a_20[22] = {
     473              : { 3, s_20_0, 0, 7, 0},
     474              : { 9, s_20_1, 0, 2, 0},
     475              : { 9, s_20_2, 0, 2, 0},
     476              : { 6, s_20_3, 0, 6, 0},
     477              : { 21, s_20_4, -1, 2, 0},
     478              : { 15, s_20_5, 0, 2, 0},
     479              : { 9, s_20_6, 0, 2, 0},
     480              : { 6, s_20_7, 0, 1, 0},
     481              : { 9, s_20_8, 0, 1, 0},
     482              : { 12, s_20_9, 0, 1, 0},
     483              : { 9, s_20_10, 0, 3, 0},
     484              : { 12, s_20_11, 0, 4, 0},
     485              : { 12, s_20_12, 0, 1, 0},
     486              : { 9, s_20_13, 0, 2, 0},
     487              : { 6, s_20_14, 0, 5, 0},
     488              : { 12, s_20_15, -1, 1, 0},
     489              : { 12, s_20_16, -2, 2, 0},
     490              : { 9, s_20_17, -3, 2, 0},
     491              : { 9, s_20_18, -4, 2, 0},
     492              : { 9, s_20_19, 0, 2, 0},
     493              : { 12, s_20_20, 0, 1, 0},
     494              : { 9, s_20_21, 0, 2, 0}
     495              : };
     496              : 
     497              : static const symbol s_21_0[3] = { 0xE0, 0xAE, 0x95 };
     498              : static const symbol s_21_1[3] = { 0xE0, 0xAE, 0x9A };
     499              : static const symbol s_21_2[3] = { 0xE0, 0xAE, 0x9F };
     500              : static const symbol s_21_3[3] = { 0xE0, 0xAE, 0xA4 };
     501              : static const symbol s_21_4[3] = { 0xE0, 0xAE, 0xAA };
     502              : static const symbol s_21_5[3] = { 0xE0, 0xAE, 0xB1 };
     503              : static const struct among a_21[6] = {
     504              : { 3, s_21_0, 0, -1, 0},
     505              : { 3, s_21_1, 0, -1, 0},
     506              : { 3, s_21_2, 0, -1, 0},
     507              : { 3, s_21_3, 0, -1, 0},
     508              : { 3, s_21_4, 0, -1, 0},
     509              : { 3, s_21_5, 0, -1, 0}
     510              : };
     511              : 
     512              : static const symbol s_22_0[3] = { 0xE0, 0xAE, 0x95 };
     513              : static const symbol s_22_1[3] = { 0xE0, 0xAE, 0x9A };
     514              : static const symbol s_22_2[3] = { 0xE0, 0xAE, 0x9F };
     515              : static const symbol s_22_3[3] = { 0xE0, 0xAE, 0xA4 };
     516              : static const symbol s_22_4[3] = { 0xE0, 0xAE, 0xAA };
     517              : static const symbol s_22_5[3] = { 0xE0, 0xAE, 0xB1 };
     518              : static const struct among a_22[6] = {
     519              : { 3, s_22_0, 0, -1, 0},
     520              : { 3, s_22_1, 0, -1, 0},
     521              : { 3, s_22_2, 0, -1, 0},
     522              : { 3, s_22_3, 0, -1, 0},
     523              : { 3, s_22_4, 0, -1, 0},
     524              : { 3, s_22_5, 0, -1, 0}
     525              : };
     526              : 
     527              : static const symbol s_23_0[3] = { 0xE0, 0xAE, 0x85 };
     528              : static const symbol s_23_1[3] = { 0xE0, 0xAE, 0x86 };
     529              : static const symbol s_23_2[3] = { 0xE0, 0xAE, 0x87 };
     530              : static const symbol s_23_3[3] = { 0xE0, 0xAE, 0x88 };
     531              : static const symbol s_23_4[3] = { 0xE0, 0xAE, 0x89 };
     532              : static const symbol s_23_5[3] = { 0xE0, 0xAE, 0x8A };
     533              : static const symbol s_23_6[3] = { 0xE0, 0xAE, 0x8E };
     534              : static const symbol s_23_7[3] = { 0xE0, 0xAE, 0x8F };
     535              : static const symbol s_23_8[3] = { 0xE0, 0xAE, 0x90 };
     536              : static const symbol s_23_9[3] = { 0xE0, 0xAE, 0x92 };
     537              : static const symbol s_23_10[3] = { 0xE0, 0xAE, 0x93 };
     538              : static const symbol s_23_11[3] = { 0xE0, 0xAE, 0x94 };
     539              : static const struct among a_23[12] = {
     540              : { 3, s_23_0, 0, -1, 0},
     541              : { 3, s_23_1, 0, -1, 0},
     542              : { 3, s_23_2, 0, -1, 0},
     543              : { 3, s_23_3, 0, -1, 0},
     544              : { 3, s_23_4, 0, -1, 0},
     545              : { 3, s_23_5, 0, -1, 0},
     546              : { 3, s_23_6, 0, -1, 0},
     547              : { 3, s_23_7, 0, -1, 0},
     548              : { 3, s_23_8, 0, -1, 0},
     549              : { 3, s_23_9, 0, -1, 0},
     550              : { 3, s_23_10, 0, -1, 0},
     551              : { 3, s_23_11, 0, -1, 0}
     552              : };
     553              : 
     554              : static const symbol s_24_0[3] = { 0xE0, 0xAF, 0x80 };
     555              : static const symbol s_24_1[3] = { 0xE0, 0xAF, 0x81 };
     556              : static const symbol s_24_2[3] = { 0xE0, 0xAF, 0x82 };
     557              : static const symbol s_24_3[3] = { 0xE0, 0xAF, 0x86 };
     558              : static const symbol s_24_4[3] = { 0xE0, 0xAF, 0x87 };
     559              : static const symbol s_24_5[3] = { 0xE0, 0xAF, 0x88 };
     560              : static const symbol s_24_6[3] = { 0xE0, 0xAE, 0xBE };
     561              : static const symbol s_24_7[3] = { 0xE0, 0xAE, 0xBF };
     562              : static const struct among a_24[8] = {
     563              : { 3, s_24_0, 0, -1, 0},
     564              : { 3, s_24_1, 0, -1, 0},
     565              : { 3, s_24_2, 0, -1, 0},
     566              : { 3, s_24_3, 0, -1, 0},
     567              : { 3, s_24_4, 0, -1, 0},
     568              : { 3, s_24_5, 0, -1, 0},
     569              : { 3, s_24_6, 0, -1, 0},
     570              : { 3, s_24_7, 0, -1, 0}
     571              : };
     572              : 
     573              : static const symbol s_25_0[6] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81 };
     574              : static const symbol s_25_1[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
     575              : static const symbol s_25_2[6] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
     576              : static const symbol s_25_3[15] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
     577              : static const symbol s_25_4[6] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
     578              : static const symbol s_25_5[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x88 };
     579              : static const symbol s_25_6[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
     580              : static const symbol s_25_7[9] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
     581              : static const symbol s_25_8[9] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
     582              : static const symbol s_25_9[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
     583              : static const symbol s_25_10[9] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
     584              : static const symbol s_25_11[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
     585              : static const symbol s_25_12[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
     586              : static const symbol s_25_13[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
     587              : static const symbol s_25_14[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     588              : static const symbol s_25_15[12] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     589              : static const symbol s_25_16[12] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     590              : static const symbol s_25_17[12] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     591              : static const symbol s_25_18[9] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     592              : static const symbol s_25_19[9] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     593              : static const symbol s_25_20[9] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     594              : static const symbol s_25_21[9] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     595              : static const symbol s_25_22[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     596              : static const symbol s_25_23[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
     597              : static const symbol s_25_24[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D };
     598              : static const symbol s_25_25[9] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
     599              : static const symbol s_25_26[9] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
     600              : static const symbol s_25_27[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
     601              : static const symbol s_25_28[12] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xAF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
     602              : static const symbol s_25_29[9] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
     603              : static const symbol s_25_30[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
     604              : static const symbol s_25_31[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
     605              : static const symbol s_25_32[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
     606              : static const symbol s_25_33[24] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
     607              : static const symbol s_25_34[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
     608              : static const symbol s_25_35[9] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
     609              : static const symbol s_25_36[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
     610              : static const symbol s_25_37[9] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
     611              : static const symbol s_25_38[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
     612              : static const symbol s_25_39[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
     613              : static const symbol s_25_40[3] = { 0xE0, 0xAE, 0x95 };
     614              : static const symbol s_25_41[3] = { 0xE0, 0xAE, 0xA4 };
     615              : static const symbol s_25_42[3] = { 0xE0, 0xAE, 0xA9 };
     616              : static const symbol s_25_43[3] = { 0xE0, 0xAE, 0xAA };
     617              : static const symbol s_25_44[3] = { 0xE0, 0xAE, 0xAF };
     618              : static const symbol s_25_45[3] = { 0xE0, 0xAE, 0xBE };
     619              : static const struct among a_25[46] = {
     620              : { 6, s_25_0, 0, 6, 0},
     621              : { 9, s_25_1, 0, 1, 0},
     622              : { 6, s_25_2, 0, 3, 0},
     623              : { 15, s_25_3, 0, 1, 0},
     624              : { 6, s_25_4, 0, 1, 0},
     625              : { 6, s_25_5, 0, 1, 0},
     626              : { 12, s_25_6, 0, 1, 0},
     627              : { 9, s_25_7, 0, 5, 0},
     628              : { 9, s_25_8, 0, 1, 0},
     629              : { 9, s_25_9, 0, 1, 0},
     630              : { 9, s_25_10, 0, 2, 0},
     631              : { 9, s_25_11, 0, 4, 0},
     632              : { 12, s_25_12, -1, 1, 0},
     633              : { 12, s_25_13, 0, 1, 0},
     634              : { 12, s_25_14, 0, 1, 0},
     635              : { 12, s_25_15, 0, 5, 0},
     636              : { 12, s_25_16, 0, 1, 0},
     637              : { 12, s_25_17, 0, 1, 0},
     638              : { 9, s_25_18, 0, 5, 0},
     639              : { 9, s_25_19, 0, 5, 0},
     640              : { 9, s_25_20, 0, 5, 0},
     641              : { 9, s_25_21, 0, 1, 0},
     642              : { 9, s_25_22, 0, 1, 0},
     643              : { 9, s_25_23, 0, 5, 0},
     644              : { 9, s_25_24, 0, 5, 0},
     645              : { 9, s_25_25, 0, 5, 0},
     646              : { 9, s_25_26, 0, 1, 0},
     647              : { 9, s_25_27, 0, 1, 0},
     648              : { 12, s_25_28, 0, 5, 0},
     649              : { 9, s_25_29, 0, 1, 0},
     650              : { 9, s_25_30, 0, 5, 0},
     651              : { 12, s_25_31, -1, 1, 0},
     652              : { 12, s_25_32, -2, 1, 0},
     653              : { 24, s_25_33, 0, 1, 0},
     654              : { 12, s_25_34, 0, 5, 0},
     655              : { 9, s_25_35, 0, 1, 0},
     656              : { 9, s_25_36, 0, 1, 0},
     657              : { 9, s_25_37, 0, 1, 0},
     658              : { 9, s_25_38, 0, 5, 0},
     659              : { 12, s_25_39, -1, 1, 0},
     660              : { 3, s_25_40, 0, 1, 0},
     661              : { 3, s_25_41, 0, 1, 0},
     662              : { 3, s_25_42, 0, 1, 0},
     663              : { 3, s_25_43, 0, 1, 0},
     664              : { 3, s_25_44, 0, 1, 0},
     665              : { 3, s_25_45, 0, 5, 0}
     666              : };
     667              : 
     668              : static const symbol s_26_0[18] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
     669              : static const symbol s_26_1[21] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
     670              : static const symbol s_26_2[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
     671              : static const symbol s_26_3[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 };
     672              : static const symbol s_26_4[18] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 };
     673              : static const symbol s_26_5[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1 };
     674              : static const struct among a_26[6] = {
     675              : { 18, s_26_0, 0, -1, 0},
     676              : { 21, s_26_1, 0, -1, 0},
     677              : { 12, s_26_2, 0, -1, 0},
     678              : { 15, s_26_3, 0, -1, 0},
     679              : { 18, s_26_4, 0, -1, 0},
     680              : { 9, s_26_5, 0, -1, 0}
     681              : };
     682              : 
     683            0 : static int r_has_min_length(struct SN_env * z) {
     684            0 :     return len_utf8(z->p) > 4;
     685              : }
     686              : 
     687            0 : static int r_fix_va_start(struct SN_env * z) {
     688              :     int among_var;
     689            0 :     z->bra = z->c;
     690            0 :     if (z->c + 5 >= z->l || z->p[z->c + 5] >> 5 != 4 || !((3078 >> (z->p[z->c + 5] & 0x1f)) & 1)) return 0;
     691            0 :     among_var = find_among(z, a_0, 4, 0);
     692            0 :     if (!among_var) return 0;
     693            0 :     z->ket = z->c;
     694            0 :     switch (among_var) {
     695            0 :         case 1:
     696              :             {
     697            0 :                 int ret = slice_from_s(z, 3, s_0);
     698            0 :                 if (ret < 0) return ret;
     699              :             }
     700            0 :             break;
     701            0 :         case 2:
     702              :             {
     703            0 :                 int ret = slice_from_s(z, 3, s_1);
     704            0 :                 if (ret < 0) return ret;
     705              :             }
     706            0 :             break;
     707            0 :         case 3:
     708              :             {
     709            0 :                 int ret = slice_from_s(z, 3, s_2);
     710            0 :                 if (ret < 0) return ret;
     711              :             }
     712            0 :             break;
     713            0 :         case 4:
     714              :             {
     715            0 :                 int ret = slice_from_s(z, 3, s_3);
     716            0 :                 if (ret < 0) return ret;
     717              :             }
     718            0 :             break;
     719              :     }
     720            0 :     return 1;
     721              : }
     722              : 
     723            0 : static int r_fix_endings(struct SN_env * z) {
     724              :     {
     725            0 :         int v_1 = z->c;
     726            0 :         while (1) {
     727            0 :             int v_2 = z->c;
     728              :             {
     729            0 :                 int ret = r_fix_ending(z);
     730            0 :                 if (ret == 0) goto lab1;
     731            0 :                 if (ret < 0) return ret;
     732              :             }
     733            0 :             continue;
     734            0 :         lab1:
     735            0 :             z->c = v_2;
     736            0 :             break;
     737              :         }
     738            0 :         z->c = v_1;
     739              :     }
     740            0 :     return 1;
     741              : }
     742              : 
     743            0 : static int r_remove_question_prefixes(struct SN_env * z) {
     744            0 :     z->bra = z->c;
     745            0 :     if (!(eq_s(z, 3, s_4))) return 0;
     746            0 :     if (!find_among(z, a_1, 10, 0)) return 0;
     747            0 :     if (!(eq_s(z, 3, s_5))) return 0;
     748            0 :     z->ket = z->c;
     749              :     {
     750            0 :         int ret = slice_del(z);
     751            0 :         if (ret < 0) return ret;
     752              :     }
     753              :     {
     754            0 :         int v_1 = z->c;
     755              :         {
     756            0 :             int ret = r_fix_va_start(z);
     757            0 :             if (ret < 0) return ret;
     758              :         }
     759            0 :         z->c = v_1;
     760              :     }
     761            0 :     return 1;
     762              : }
     763              : 
     764            0 : static int r_fix_ending(struct SN_env * z) {
     765              :     int among_var;
     766            0 :     if (len_utf8(z->p) <= 3) return 0;
     767            0 :     z->lb = z->c; z->c = z->l;
     768              :     do {
     769            0 :         int v_1 = z->l - z->c;
     770            0 :         z->ket = z->c;
     771            0 :         among_var = find_among_b(z, a_5, 17, 0);
     772            0 :         if (!among_var) goto lab0;
     773            0 :         z->bra = z->c;
     774            0 :         switch (among_var) {
     775            0 :             case 1:
     776              :                 {
     777            0 :                     int ret = slice_del(z);
     778            0 :                     if (ret < 0) return ret;
     779              :                 }
     780            0 :                 break;
     781            0 :             case 2:
     782              :                 {
     783            0 :                     int v_2 = z->l - z->c;
     784            0 :                     if (!find_among_b(z, a_2, 3, 0)) goto lab0;
     785            0 :                     z->c = z->l - v_2;
     786              :                 }
     787              :                 {
     788            0 :                     int ret = slice_del(z);
     789            0 :                     if (ret < 0) return ret;
     790              :                 }
     791            0 :                 break;
     792            0 :             case 3:
     793              :                 {
     794            0 :                     int ret = slice_from_s(z, 6, s_6);
     795            0 :                     if (ret < 0) return ret;
     796              :                 }
     797            0 :                 break;
     798            0 :             case 4:
     799              :                 {
     800            0 :                     int ret = slice_from_s(z, 6, s_7);
     801            0 :                     if (ret < 0) return ret;
     802              :                 }
     803            0 :                 break;
     804            0 :             case 5:
     805              :                 {
     806            0 :                     int ret = slice_from_s(z, 6, s_8);
     807            0 :                     if (ret < 0) return ret;
     808              :                 }
     809            0 :                 break;
     810            0 :             case 6:
     811            0 :                 if (!((SN_local *)z)->b_found_vetrumai_urupu) goto lab0;
     812              :                 {
     813            0 :                     int v_3 = z->l - z->c;
     814            0 :                     if (!(eq_s_b(z, 3, s_9))) goto lab1;
     815            0 :                     goto lab0;
     816            0 :                 lab1:
     817            0 :                     z->c = z->l - v_3;
     818              :                 }
     819              :                 {
     820            0 :                     int ret = slice_from_s(z, 6, s_10);
     821            0 :                     if (ret < 0) return ret;
     822              :                 }
     823            0 :                 break;
     824            0 :             case 7:
     825              :                 {
     826            0 :                     int ret = slice_from_s(z, 3, s_11);
     827            0 :                     if (ret < 0) return ret;
     828              :                 }
     829            0 :                 break;
     830            0 :             case 8:
     831              :                 {
     832            0 :                     int v_4 = z->l - z->c;
     833            0 :                     if (!find_among_b(z, a_3, 8, 0)) goto lab2;
     834            0 :                     goto lab0;
     835            0 :                 lab2:
     836            0 :                     z->c = z->l - v_4;
     837              :                 }
     838              :                 {
     839            0 :                     int ret = slice_del(z);
     840            0 :                     if (ret < 0) return ret;
     841              :                 }
     842            0 :                 break;
     843            0 :             case 9:
     844            0 :                 if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 136 && z->p[z->c - 1] != 141)) among_var = 2; else
     845            0 :                 among_var = find_among_b(z, a_4, 3, 0);
     846            0 :                 switch (among_var) {
     847            0 :                     case 1:
     848              :                         {
     849            0 :                             int ret = slice_del(z);
     850            0 :                             if (ret < 0) return ret;
     851              :                         }
     852            0 :                         break;
     853            0 :                     case 2:
     854              :                         {
     855            0 :                             int ret = slice_from_s(z, 6, s_12);
     856            0 :                             if (ret < 0) return ret;
     857              :                         }
     858            0 :                         break;
     859              :                 }
     860            0 :                 break;
     861              :         }
     862            0 :         break;
     863            0 :     lab0:
     864            0 :         z->c = z->l - v_1;
     865            0 :         z->ket = z->c;
     866            0 :         if (!(eq_s_b(z, 3, s_13))) return 0;
     867              :         do {
     868            0 :             int v_5 = z->l - z->c;
     869            0 :             if (!find_among_b(z, a_6, 6, 0)) goto lab3;
     870              :             {
     871            0 :                 int v_6 = z->l - z->c;
     872            0 :                 if (!(eq_s_b(z, 3, s_14))) { z->c = z->l - v_6; goto lab4; }
     873            0 :                 if (!find_among_b(z, a_7, 6, 0)) { z->c = z->l - v_6; goto lab4; }
     874            0 :             lab4:
     875              :                 ;
     876              :             }
     877            0 :             z->bra = z->c;
     878              :             {
     879            0 :                 int ret = slice_del(z);
     880            0 :                 if (ret < 0) return ret;
     881              :             }
     882            0 :             break;
     883            0 :         lab3:
     884            0 :             z->c = z->l - v_5;
     885            0 :             if (!find_among_b(z, a_8, 11, 0)) goto lab5;
     886            0 :             z->bra = z->c;
     887            0 :             if (!(eq_s_b(z, 3, s_15))) goto lab5;
     888              :             {
     889            0 :                 int ret = slice_del(z);
     890            0 :                 if (ret < 0) return ret;
     891              :             }
     892            0 :             break;
     893            0 :         lab5:
     894            0 :             z->c = z->l - v_5;
     895              :             {
     896            0 :                 int v_7 = z->l - z->c;
     897            0 :                 if (!find_among_b(z, a_9, 9, 0)) return 0;
     898            0 :                 z->c = z->l - v_7;
     899              :             }
     900            0 :             z->bra = z->c;
     901              :             {
     902            0 :                 int ret = slice_del(z);
     903            0 :                 if (ret < 0) return ret;
     904              :             }
     905              :         } while (0);
     906              :     } while (0);
     907            0 :     z->c = z->lb;
     908            0 :     return 1;
     909              : }
     910              : 
     911            0 : static int r_remove_pronoun_prefixes(struct SN_env * z) {
     912            0 :     z->bra = z->c;
     913            0 :     if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 4 || !((672 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
     914            0 :     if (!find_among(z, a_10, 3, 0)) return 0;
     915            0 :     if (!find_among(z, a_11, 10, 0)) return 0;
     916            0 :     if (!(eq_s(z, 3, s_16))) return 0;
     917            0 :     z->ket = z->c;
     918              :     {
     919            0 :         int ret = slice_del(z);
     920            0 :         if (ret < 0) return ret;
     921              :     }
     922              :     {
     923            0 :         int v_1 = z->c;
     924              :         {
     925            0 :             int ret = r_fix_va_start(z);
     926            0 :             if (ret < 0) return ret;
     927              :         }
     928            0 :         z->c = v_1;
     929              :     }
     930            0 :     return 1;
     931              : }
     932              : 
     933            0 : static int r_remove_plural_suffix(struct SN_env * z) {
     934              :     int among_var;
     935            0 :     z->lb = z->c; z->c = z->l;
     936            0 :     z->ket = z->c;
     937            0 :     if (z->c - 8 <= z->lb || z->p[z->c - 1] != 141) return 0;
     938            0 :     among_var = find_among_b(z, a_13, 4, 0);
     939            0 :     if (!among_var) return 0;
     940            0 :     z->bra = z->c;
     941            0 :     switch (among_var) {
     942            0 :         case 1:
     943              :             do {
     944            0 :                 int v_1 = z->l - z->c;
     945            0 :                 if (!find_among_b(z, a_12, 6, 0)) goto lab0;
     946              :                 {
     947            0 :                     int ret = slice_from_s(z, 9, s_17);
     948            0 :                     if (ret < 0) return ret;
     949              :                 }
     950            0 :                 break;
     951            0 :             lab0:
     952            0 :                 z->c = z->l - v_1;
     953              :                 {
     954            0 :                     int ret = slice_from_s(z, 3, s_18);
     955            0 :                     if (ret < 0) return ret;
     956              :                 }
     957              :             } while (0);
     958            0 :             break;
     959            0 :         case 2:
     960              :             {
     961            0 :                 int ret = slice_from_s(z, 6, s_19);
     962            0 :                 if (ret < 0) return ret;
     963              :             }
     964            0 :             break;
     965            0 :         case 3:
     966              :             {
     967            0 :                 int ret = slice_from_s(z, 6, s_20);
     968            0 :                 if (ret < 0) return ret;
     969              :             }
     970            0 :             break;
     971            0 :         case 4:
     972              :             {
     973            0 :                 int ret = slice_del(z);
     974            0 :                 if (ret < 0) return ret;
     975              :             }
     976            0 :             break;
     977              :     }
     978            0 :     z->c = z->lb;
     979            0 :     return 1;
     980              : }
     981              : 
     982            0 : static int r_remove_question_suffixes(struct SN_env * z) {
     983              :     {
     984            0 :         int ret = r_has_min_length(z);
     985            0 :         if (ret <= 0) return ret;
     986              :     }
     987            0 :     z->lb = z->c; z->c = z->l;
     988              :     {
     989            0 :         int v_1 = z->l - z->c;
     990            0 :         z->ket = z->c;
     991            0 :         if (!find_among_b(z, a_14, 3, 0)) goto lab0;
     992            0 :         z->bra = z->c;
     993              :         {
     994            0 :             int ret = slice_from_s(z, 3, s_21);
     995            0 :             if (ret < 0) return ret;
     996              :         }
     997            0 :     lab0:
     998            0 :         z->c = z->l - v_1;
     999              :     }
    1000            0 :     z->c = z->lb;
    1001              :     {
    1002            0 :         int ret = r_fix_endings(z);
    1003            0 :         if (ret < 0) return ret;
    1004              :     }
    1005            0 :     return 1;
    1006              : }
    1007              : 
    1008            0 : static int r_remove_command_suffixes(struct SN_env * z) {
    1009              :     {
    1010            0 :         int ret = r_has_min_length(z);
    1011            0 :         if (ret <= 0) return ret;
    1012              :     }
    1013            0 :     z->lb = z->c; z->c = z->l;
    1014            0 :     z->ket = z->c;
    1015            0 :     if (z->c - 5 <= z->lb || z->p[z->c - 1] != 191) return 0;
    1016            0 :     if (!find_among_b(z, a_15, 2, 0)) return 0;
    1017            0 :     z->bra = z->c;
    1018              :     {
    1019            0 :         int ret = slice_del(z);
    1020            0 :         if (ret < 0) return ret;
    1021              :     }
    1022            0 :     z->c = z->lb;
    1023            0 :     return 1;
    1024              : }
    1025              : 
    1026            0 : static int r_remove_um(struct SN_env * z) {
    1027              :     {
    1028            0 :         int ret = r_has_min_length(z);
    1029            0 :         if (ret <= 0) return ret;
    1030              :     }
    1031            0 :     z->lb = z->c; z->c = z->l;
    1032            0 :     z->ket = z->c;
    1033            0 :     if (!(eq_s_b(z, 9, s_22))) return 0;
    1034            0 :     z->bra = z->c;
    1035              :     {
    1036            0 :         int ret = slice_from_s(z, 3, s_23);
    1037            0 :         if (ret < 0) return ret;
    1038              :     }
    1039            0 :     z->c = z->lb;
    1040              :     {
    1041            0 :         int v_1 = z->c;
    1042              :         {
    1043            0 :             int ret = r_fix_ending(z);
    1044            0 :             if (ret < 0) return ret;
    1045              :         }
    1046            0 :         z->c = v_1;
    1047              :     }
    1048            0 :     return 1;
    1049              : }
    1050              : 
    1051            0 : static int r_remove_common_word_endings(struct SN_env * z) {
    1052              :     int among_var;
    1053              :     {
    1054            0 :         int ret = r_has_min_length(z);
    1055            0 :         if (ret <= 0) return ret;
    1056              :     }
    1057            0 :     z->lb = z->c; z->c = z->l;
    1058            0 :     z->ket = z->c;
    1059            0 :     among_var = find_among_b(z, a_17, 26, 0);
    1060            0 :     if (!among_var) return 0;
    1061            0 :     z->bra = z->c;
    1062            0 :     switch (among_var) {
    1063            0 :         case 1:
    1064              :             {
    1065            0 :                 int ret = slice_from_s(z, 3, s_24);
    1066            0 :                 if (ret < 0) return ret;
    1067              :             }
    1068            0 :             break;
    1069            0 :         case 2:
    1070              :             {
    1071            0 :                 int v_1 = z->l - z->c;
    1072            0 :                 if (!find_among_b(z, a_16, 8, 0)) goto lab0;
    1073            0 :                 return 0;
    1074            0 :             lab0:
    1075            0 :                 z->c = z->l - v_1;
    1076              :             }
    1077              :             {
    1078            0 :                 int ret = slice_from_s(z, 3, s_25);
    1079            0 :                 if (ret < 0) return ret;
    1080              :             }
    1081            0 :             break;
    1082            0 :         case 3:
    1083              :             {
    1084            0 :                 int ret = slice_del(z);
    1085            0 :                 if (ret < 0) return ret;
    1086              :             }
    1087            0 :             break;
    1088              :     }
    1089            0 :     z->c = z->lb;
    1090              :     {
    1091            0 :         int ret = r_fix_endings(z);
    1092            0 :         if (ret < 0) return ret;
    1093              :     }
    1094            0 :     return 1;
    1095              : }
    1096              : 
    1097            0 : static int r_remove_vetrumai_urupukal(struct SN_env * z) {
    1098              :     int among_var;
    1099            0 :     ((SN_local *)z)->b_found_vetrumai_urupu = 0;
    1100              :     {
    1101            0 :         int ret = r_has_min_length(z);
    1102            0 :         if (ret <= 0) return ret;
    1103              :     }
    1104            0 :     z->lb = z->c; z->c = z->l;
    1105              :     do {
    1106            0 :         int v_1 = z->l - z->c;
    1107              :         {
    1108            0 :             int v_2 = z->l - z->c;
    1109            0 :             z->ket = z->c;
    1110            0 :             if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((-2147475197 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
    1111            0 :             among_var = find_among_b(z, a_20, 22, 0);
    1112            0 :             if (!among_var) goto lab0;
    1113            0 :             z->bra = z->c;
    1114            0 :             switch (among_var) {
    1115            0 :                 case 1:
    1116              :                     {
    1117            0 :                         int ret = slice_del(z);
    1118            0 :                         if (ret < 0) return ret;
    1119              :                     }
    1120            0 :                     break;
    1121            0 :                 case 2:
    1122              :                     {
    1123            0 :                         int ret = slice_from_s(z, 3, s_26);
    1124            0 :                         if (ret < 0) return ret;
    1125              :                     }
    1126            0 :                     break;
    1127            0 :                 case 3:
    1128              :                     {
    1129            0 :                         int v_3 = z->l - z->c;
    1130            0 :                         if (!(eq_s_b(z, 3, s_27))) goto lab1;
    1131            0 :                         goto lab0;
    1132            0 :                     lab1:
    1133            0 :                         z->c = z->l - v_3;
    1134              :                     }
    1135              :                     {
    1136            0 :                         int ret = slice_from_s(z, 3, s_28);
    1137            0 :                         if (ret < 0) return ret;
    1138              :                     }
    1139            0 :                     break;
    1140            0 :                 case 4:
    1141            0 :                     if (len_utf8(z->p) < 7) goto lab0;
    1142              :                     {
    1143            0 :                         int ret = slice_from_s(z, 3, s_29);
    1144            0 :                         if (ret < 0) return ret;
    1145              :                     }
    1146            0 :                     break;
    1147            0 :                 case 5:
    1148              :                     {
    1149            0 :                         int v_4 = z->l - z->c;
    1150            0 :                         if (!find_among_b(z, a_18, 8, 0)) goto lab2;
    1151            0 :                         goto lab0;
    1152            0 :                     lab2:
    1153            0 :                         z->c = z->l - v_4;
    1154              :                     }
    1155              :                     {
    1156            0 :                         int ret = slice_from_s(z, 3, s_30);
    1157            0 :                         if (ret < 0) return ret;
    1158              :                     }
    1159            0 :                     break;
    1160            0 :                 case 6:
    1161              :                     {
    1162            0 :                         int v_5 = z->l - z->c;
    1163            0 :                         if (!find_among_b(z, a_19, 8, 0)) goto lab3;
    1164            0 :                         goto lab0;
    1165            0 :                     lab3:
    1166            0 :                         z->c = z->l - v_5;
    1167              :                     }
    1168              :                     {
    1169            0 :                         int ret = slice_del(z);
    1170            0 :                         if (ret < 0) return ret;
    1171              :                     }
    1172            0 :                     break;
    1173            0 :                 case 7:
    1174              :                     {
    1175            0 :                         int ret = slice_from_s(z, 3, s_31);
    1176            0 :                         if (ret < 0) return ret;
    1177              :                     }
    1178            0 :                     break;
    1179              :             }
    1180            0 :             z->c = z->l - v_2;
    1181              :         }
    1182            0 :         break;
    1183            0 :     lab0:
    1184            0 :         z->c = z->l - v_1;
    1185              :         {
    1186            0 :             int v_6 = z->l - z->c;
    1187            0 :             z->ket = z->c;
    1188            0 :             if (!(eq_s_b(z, 3, s_32))) return 0;
    1189              :             do {
    1190            0 :                 int v_7 = z->l - z->c;
    1191              :                 {
    1192            0 :                     int v_8 = z->l - z->c;
    1193            0 :                     if (!find_among_b(z, a_21, 6, 0)) goto lab5;
    1194            0 :                     goto lab4;
    1195            0 :                 lab5:
    1196            0 :                     z->c = z->l - v_8;
    1197              :                 }
    1198            0 :                 break;
    1199            0 :             lab4:
    1200            0 :                 z->c = z->l - v_7;
    1201              :                 {
    1202            0 :                     int v_9 = z->l - z->c;
    1203            0 :                     if (!find_among_b(z, a_22, 6, 0)) return 0;
    1204            0 :                     if (!(eq_s_b(z, 3, s_33))) return 0;
    1205            0 :                     z->c = z->l - v_9;
    1206              :                 }
    1207              :             } while (0);
    1208            0 :             z->bra = z->c;
    1209              :             {
    1210            0 :                 int ret = slice_from_s(z, 3, s_34);
    1211            0 :                 if (ret < 0) return ret;
    1212              :             }
    1213            0 :             z->c = z->l - v_6;
    1214              :         }
    1215              :     } while (0);
    1216            0 :     ((SN_local *)z)->b_found_vetrumai_urupu = 1;
    1217              :     {
    1218            0 :         int v_10 = z->l - z->c;
    1219            0 :         z->ket = z->c;
    1220            0 :         if (!(eq_s_b(z, 9, s_35))) goto lab6;
    1221            0 :         z->bra = z->c;
    1222              :         {
    1223            0 :             int ret = slice_from_s(z, 3, s_36);
    1224            0 :             if (ret < 0) return ret;
    1225              :         }
    1226            0 :     lab6:
    1227            0 :         z->c = z->l - v_10;
    1228              :     }
    1229            0 :     z->c = z->lb;
    1230              :     {
    1231            0 :         int ret = r_fix_endings(z);
    1232            0 :         if (ret < 0) return ret;
    1233              :     }
    1234            0 :     return 1;
    1235              : }
    1236              : 
    1237            0 : static int r_remove_tense_suffixes(struct SN_env * z) {
    1238            0 :     while (1) {
    1239            0 :         int v_1 = z->c;
    1240              :         {
    1241            0 :             int ret = r_remove_tense_suffix(z);
    1242            0 :             if (ret == 0) goto lab0;
    1243            0 :             if (ret < 0) return ret;
    1244              :         }
    1245            0 :         continue;
    1246            0 :     lab0:
    1247            0 :         z->c = v_1;
    1248            0 :         break;
    1249              :     }
    1250            0 :     return 1;
    1251              : }
    1252              : 
    1253            0 : static int r_remove_tense_suffix(struct SN_env * z) {
    1254              :     int among_var;
    1255              :     int b_found_a_match;
    1256            0 :     b_found_a_match = 0;
    1257              :     {
    1258            0 :         int ret = r_has_min_length(z);
    1259            0 :         if (ret <= 0) return ret;
    1260              :     }
    1261            0 :     z->lb = z->c; z->c = z->l;
    1262              :     {
    1263            0 :         int v_1 = z->l - z->c;
    1264              :         {
    1265            0 :             int v_2 = z->l - z->c;
    1266            0 :             z->ket = z->c;
    1267            0 :             among_var = find_among_b(z, a_25, 46, 0);
    1268            0 :             if (!among_var) goto lab0;
    1269            0 :             z->bra = z->c;
    1270            0 :             switch (among_var) {
    1271            0 :                 case 1:
    1272              :                     {
    1273            0 :                         int ret = slice_del(z);
    1274            0 :                         if (ret < 0) return ret;
    1275              :                     }
    1276            0 :                     break;
    1277            0 :                 case 2:
    1278              :                     {
    1279            0 :                         int v_3 = z->l - z->c;
    1280            0 :                         if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((1951712 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1;
    1281            0 :                         if (!find_among_b(z, a_23, 12, 0)) goto lab1;
    1282            0 :                         goto lab0;
    1283            0 :                     lab1:
    1284            0 :                         z->c = z->l - v_3;
    1285              :                     }
    1286              :                     {
    1287            0 :                         int ret = slice_del(z);
    1288            0 :                         if (ret < 0) return ret;
    1289              :                     }
    1290            0 :                     break;
    1291            0 :                 case 3:
    1292              :                     {
    1293            0 :                         int v_4 = z->l - z->c;
    1294            0 :                         if (!find_among_b(z, a_24, 8, 0)) goto lab2;
    1295            0 :                         goto lab0;
    1296            0 :                     lab2:
    1297            0 :                         z->c = z->l - v_4;
    1298              :                     }
    1299              :                     {
    1300            0 :                         int ret = slice_del(z);
    1301            0 :                         if (ret < 0) return ret;
    1302              :                     }
    1303            0 :                     break;
    1304            0 :                 case 4:
    1305              :                     {
    1306            0 :                         int v_5 = z->l - z->c;
    1307            0 :                         if (!(eq_s_b(z, 3, s_37))) goto lab3;
    1308            0 :                         goto lab0;
    1309            0 :                     lab3:
    1310            0 :                         z->c = z->l - v_5;
    1311              :                     }
    1312              :                     {
    1313            0 :                         int ret = slice_from_s(z, 3, s_38);
    1314            0 :                         if (ret < 0) return ret;
    1315              :                     }
    1316            0 :                     break;
    1317            0 :                 case 5:
    1318              :                     {
    1319            0 :                         int ret = slice_from_s(z, 3, s_39);
    1320            0 :                         if (ret < 0) return ret;
    1321              :                     }
    1322            0 :                     break;
    1323            0 :                 case 6:
    1324              :                     {
    1325            0 :                         int v_6 = z->l - z->c;
    1326            0 :                         if (!(eq_s_b(z, 3, s_40))) goto lab0;
    1327            0 :                         z->c = z->l - v_6;
    1328              :                     }
    1329              :                     {
    1330            0 :                         int ret = slice_del(z);
    1331            0 :                         if (ret < 0) return ret;
    1332              :                     }
    1333            0 :                     break;
    1334              :             }
    1335            0 :             b_found_a_match = 1;
    1336            0 :             z->c = z->l - v_2;
    1337              :         }
    1338            0 :     lab0:
    1339            0 :         z->c = z->l - v_1;
    1340              :     }
    1341              :     {
    1342            0 :         int v_7 = z->l - z->c;
    1343            0 :         z->ket = z->c;
    1344            0 :         if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 177)) goto lab4;
    1345            0 :         if (!find_among_b(z, a_26, 6, 0)) goto lab4;
    1346            0 :         z->bra = z->c;
    1347              :         {
    1348            0 :             int ret = slice_del(z);
    1349            0 :             if (ret < 0) return ret;
    1350              :         }
    1351            0 :         b_found_a_match = 1;
    1352            0 :     lab4:
    1353            0 :         z->c = z->l - v_7;
    1354              :     }
    1355            0 :     z->c = z->lb;
    1356              :     {
    1357            0 :         int ret = r_fix_endings(z);
    1358            0 :         if (ret < 0) return ret;
    1359              :     }
    1360            0 :     return b_found_a_match;
    1361              : }
    1362              : 
    1363            0 : extern int tamil_UTF_8_stem(struct SN_env * z) {
    1364            0 :     ((SN_local *)z)->b_found_vetrumai_urupu = 0;
    1365              :     {
    1366            0 :         int v_1 = z->c;
    1367              :         {
    1368            0 :             int ret = r_fix_ending(z);
    1369            0 :             if (ret < 0) return ret;
    1370              :         }
    1371            0 :         z->c = v_1;
    1372              :     }
    1373              :     {
    1374            0 :         int ret = r_has_min_length(z);
    1375            0 :         if (ret <= 0) return ret;
    1376              :     }
    1377              :     {
    1378            0 :         int v_2 = z->c;
    1379              :         {
    1380            0 :             int ret = r_remove_question_prefixes(z);
    1381            0 :             if (ret < 0) return ret;
    1382              :         }
    1383            0 :         z->c = v_2;
    1384              :     }
    1385              :     {
    1386            0 :         int v_3 = z->c;
    1387              :         {
    1388            0 :             int ret = r_remove_pronoun_prefixes(z);
    1389            0 :             if (ret < 0) return ret;
    1390              :         }
    1391            0 :         z->c = v_3;
    1392              :     }
    1393              :     {
    1394            0 :         int v_4 = z->c;
    1395              :         {
    1396            0 :             int ret = r_remove_question_suffixes(z);
    1397            0 :             if (ret < 0) return ret;
    1398              :         }
    1399            0 :         z->c = v_4;
    1400              :     }
    1401              :     {
    1402            0 :         int v_5 = z->c;
    1403              :         {
    1404            0 :             int ret = r_remove_um(z);
    1405            0 :             if (ret < 0) return ret;
    1406              :         }
    1407            0 :         z->c = v_5;
    1408              :     }
    1409              :     {
    1410            0 :         int v_6 = z->c;
    1411              :         {
    1412            0 :             int ret = r_remove_common_word_endings(z);
    1413            0 :             if (ret < 0) return ret;
    1414              :         }
    1415            0 :         z->c = v_6;
    1416              :     }
    1417              :     {
    1418            0 :         int v_7 = z->c;
    1419              :         {
    1420            0 :             int ret = r_remove_vetrumai_urupukal(z);
    1421            0 :             if (ret < 0) return ret;
    1422              :         }
    1423            0 :         z->c = v_7;
    1424              :     }
    1425              :     {
    1426            0 :         int v_8 = z->c;
    1427              :         {
    1428            0 :             int ret = r_remove_plural_suffix(z);
    1429            0 :             if (ret < 0) return ret;
    1430              :         }
    1431            0 :         z->c = v_8;
    1432              :     }
    1433              :     {
    1434            0 :         int v_9 = z->c;
    1435              :         {
    1436            0 :             int ret = r_remove_command_suffixes(z);
    1437            0 :             if (ret < 0) return ret;
    1438              :         }
    1439            0 :         z->c = v_9;
    1440              :     }
    1441              :     {
    1442            0 :         int v_10 = z->c;
    1443              :         {
    1444            0 :             int ret = r_remove_tense_suffixes(z);
    1445            0 :             if (ret < 0) return ret;
    1446              :         }
    1447            0 :         z->c = v_10;
    1448              :     }
    1449            0 :     return 1;
    1450              : }
    1451              : 
    1452            0 : extern struct SN_env * tamil_UTF_8_create_env(void) {
    1453            0 :     struct SN_env * z = SN_new_env(sizeof(SN_local));
    1454            0 :     if (z) {
    1455            0 :         ((SN_local *)z)->b_found_vetrumai_urupu = 0;
    1456              :     }
    1457            0 :     return z;
    1458              : }
    1459              : 
    1460            0 : extern void tamil_UTF_8_close_env(struct SN_env * z) {
    1461            0 :     SN_delete_env(z);
    1462            0 : }
    1463              : 
        

Generated by: LCOV version 2.0-1