LCOV - code coverage report
Current view: top level - src/backend/snowball/libstemmer - stem_UTF_8_tamil.c (source / functions) Hit Total Coverage
Test: PostgreSQL 18devel Lines: 0 505 0.0 %
Date: 2025-04-01 16:15:31 Functions: 0 17 0.0 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.14