LCOV - code coverage report
Current view: top level - src/backend/snowball/libstemmer - stem_UTF_8_tamil.c (source / functions) Hit Total Coverage
Test: PostgreSQL 19devel Lines: 0 503 0.0 %
Date: 2026-02-02 16:19:03 Functions: 0 17 0.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             :                 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 1.16