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

            Line data    Source code
       1              : /* Generated from arabic.sbl by Snowball 3.0.0 - https://snowballstem.org/ */
       2              : 
       3              : #include "stem_UTF_8_arabic.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_is_defined;
      12              :     unsigned char b_is_verb;
      13              :     unsigned char b_is_noun;
      14              : };
      15              : 
      16              : typedef struct SN_local SN_local;
      17              : 
      18              : #ifdef __cplusplus
      19              : extern "C" {
      20              : #endif
      21              : extern int arabic_UTF_8_stem(struct SN_env * z);
      22              : #ifdef __cplusplus
      23              : }
      24              : #endif
      25              : 
      26              : static int r_Checks1(struct SN_env * z);
      27              : static int r_Normalize_pre(struct SN_env * z);
      28              : static int r_Normalize_post(struct SN_env * z);
      29              : static int r_Suffix_Verb_Step2c(struct SN_env * z);
      30              : static int r_Suffix_Verb_Step2b(struct SN_env * z);
      31              : static int r_Suffix_Verb_Step2a(struct SN_env * z);
      32              : static int r_Suffix_Verb_Step1(struct SN_env * z);
      33              : static int r_Suffix_Noun_Step3(struct SN_env * z);
      34              : static int r_Suffix_Noun_Step2c2(struct SN_env * z);
      35              : static int r_Suffix_Noun_Step2c1(struct SN_env * z);
      36              : static int r_Suffix_Noun_Step2b(struct SN_env * z);
      37              : static int r_Suffix_Noun_Step2a(struct SN_env * z);
      38              : static int r_Suffix_Noun_Step1b(struct SN_env * z);
      39              : static int r_Suffix_Noun_Step1a(struct SN_env * z);
      40              : static int r_Suffix_All_alef_maqsura(struct SN_env * z);
      41              : static int r_Prefix_Step4_Verb(struct SN_env * z);
      42              : static int r_Prefix_Step3_Verb(struct SN_env * z);
      43              : static int r_Prefix_Step3b_Noun(struct SN_env * z);
      44              : static int r_Prefix_Step3a_Noun(struct SN_env * z);
      45              : static int r_Prefix_Step2(struct SN_env * z);
      46              : static int r_Prefix_Step1(struct SN_env * z);
      47              : 
      48              : static const symbol s_0[] = { '0' };
      49              : static const symbol s_1[] = { '1' };
      50              : static const symbol s_2[] = { '2' };
      51              : static const symbol s_3[] = { '3' };
      52              : static const symbol s_4[] = { '4' };
      53              : static const symbol s_5[] = { '5' };
      54              : static const symbol s_6[] = { '6' };
      55              : static const symbol s_7[] = { '7' };
      56              : static const symbol s_8[] = { '8' };
      57              : static const symbol s_9[] = { '9' };
      58              : static const symbol s_10[] = { 0xD8, 0xA1 };
      59              : static const symbol s_11[] = { 0xD8, 0xA3 };
      60              : static const symbol s_12[] = { 0xD8, 0xA5 };
      61              : static const symbol s_13[] = { 0xD8, 0xA6 };
      62              : static const symbol s_14[] = { 0xD8, 0xA2 };
      63              : static const symbol s_15[] = { 0xD8, 0xA4 };
      64              : static const symbol s_16[] = { 0xD8, 0xA7 };
      65              : static const symbol s_17[] = { 0xD8, 0xA8 };
      66              : static const symbol s_18[] = { 0xD8, 0xA9 };
      67              : static const symbol s_19[] = { 0xD8, 0xAA };
      68              : static const symbol s_20[] = { 0xD8, 0xAB };
      69              : static const symbol s_21[] = { 0xD8, 0xAC };
      70              : static const symbol s_22[] = { 0xD8, 0xAD };
      71              : static const symbol s_23[] = { 0xD8, 0xAE };
      72              : static const symbol s_24[] = { 0xD8, 0xAF };
      73              : static const symbol s_25[] = { 0xD8, 0xB0 };
      74              : static const symbol s_26[] = { 0xD8, 0xB1 };
      75              : static const symbol s_27[] = { 0xD8, 0xB2 };
      76              : static const symbol s_28[] = { 0xD8, 0xB3 };
      77              : static const symbol s_29[] = { 0xD8, 0xB4 };
      78              : static const symbol s_30[] = { 0xD8, 0xB5 };
      79              : static const symbol s_31[] = { 0xD8, 0xB6 };
      80              : static const symbol s_32[] = { 0xD8, 0xB7 };
      81              : static const symbol s_33[] = { 0xD8, 0xB8 };
      82              : static const symbol s_34[] = { 0xD8, 0xB9 };
      83              : static const symbol s_35[] = { 0xD8, 0xBA };
      84              : static const symbol s_36[] = { 0xD9, 0x81 };
      85              : static const symbol s_37[] = { 0xD9, 0x82 };
      86              : static const symbol s_38[] = { 0xD9, 0x83 };
      87              : static const symbol s_39[] = { 0xD9, 0x84 };
      88              : static const symbol s_40[] = { 0xD9, 0x85 };
      89              : static const symbol s_41[] = { 0xD9, 0x86 };
      90              : static const symbol s_42[] = { 0xD9, 0x87 };
      91              : static const symbol s_43[] = { 0xD9, 0x88 };
      92              : static const symbol s_44[] = { 0xD9, 0x89 };
      93              : static const symbol s_45[] = { 0xD9, 0x8A };
      94              : static const symbol s_46[] = { 0xD9, 0x84, 0xD8, 0xA7 };
      95              : static const symbol s_47[] = { 0xD9, 0x84, 0xD8, 0xA3 };
      96              : static const symbol s_48[] = { 0xD9, 0x84, 0xD8, 0xA5 };
      97              : static const symbol s_49[] = { 0xD9, 0x84, 0xD8, 0xA2 };
      98              : static const symbol s_50[] = { 0xD8, 0xA1 };
      99              : static const symbol s_51[] = { 0xD8, 0xA7 };
     100              : static const symbol s_52[] = { 0xD9, 0x88 };
     101              : static const symbol s_53[] = { 0xD9, 0x8A };
     102              : static const symbol s_54[] = { 0xD8, 0xA3 };
     103              : static const symbol s_55[] = { 0xD8, 0xA2 };
     104              : static const symbol s_56[] = { 0xD8, 0xA7 };
     105              : static const symbol s_57[] = { 0xD8, 0xA5 };
     106              : static const symbol s_58[] = { 0xD8, 0xA7 };
     107              : static const symbol s_59[] = { 0xD8, 0xA8 };
     108              : static const symbol s_60[] = { 0xD9, 0x83 };
     109              : static const symbol s_61[] = { 0xD9, 0x8A };
     110              : static const symbol s_62[] = { 0xD8, 0xAA };
     111              : static const symbol s_63[] = { 0xD9, 0x86 };
     112              : static const symbol s_64[] = { 0xD8, 0xA3 };
     113              : static const symbol s_65[] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xAA };
     114              : static const symbol s_66[] = { 0xD9, 0x86 };
     115              : static const symbol s_67[] = { 0xD8, 0xA7, 0xD8, 0xAA };
     116              : static const symbol s_68[] = { 0xD8, 0xAA };
     117              : static const symbol s_69[] = { 0xD8, 0xA9 };
     118              : static const symbol s_70[] = { 0xD9, 0x8A };
     119              : static const symbol s_71[] = { 0xD9, 0x89 };
     120              : static const symbol s_72[] = { 0xD9, 0x8A };
     121              : 
     122              : static const symbol s_0_0[2] = { 0xD9, 0x80 };
     123              : static const symbol s_0_1[2] = { 0xD9, 0x8B };
     124              : static const symbol s_0_2[2] = { 0xD9, 0x8C };
     125              : static const symbol s_0_3[2] = { 0xD9, 0x8D };
     126              : static const symbol s_0_4[2] = { 0xD9, 0x8E };
     127              : static const symbol s_0_5[2] = { 0xD9, 0x8F };
     128              : static const symbol s_0_6[2] = { 0xD9, 0x90 };
     129              : static const symbol s_0_7[2] = { 0xD9, 0x91 };
     130              : static const symbol s_0_8[2] = { 0xD9, 0x92 };
     131              : static const symbol s_0_9[2] = { 0xD9, 0xA0 };
     132              : static const symbol s_0_10[2] = { 0xD9, 0xA1 };
     133              : static const symbol s_0_11[2] = { 0xD9, 0xA2 };
     134              : static const symbol s_0_12[2] = { 0xD9, 0xA3 };
     135              : static const symbol s_0_13[2] = { 0xD9, 0xA4 };
     136              : static const symbol s_0_14[2] = { 0xD9, 0xA5 };
     137              : static const symbol s_0_15[2] = { 0xD9, 0xA6 };
     138              : static const symbol s_0_16[2] = { 0xD9, 0xA7 };
     139              : static const symbol s_0_17[2] = { 0xD9, 0xA8 };
     140              : static const symbol s_0_18[2] = { 0xD9, 0xA9 };
     141              : static const symbol s_0_19[3] = { 0xEF, 0xBA, 0x80 };
     142              : static const symbol s_0_20[3] = { 0xEF, 0xBA, 0x81 };
     143              : static const symbol s_0_21[3] = { 0xEF, 0xBA, 0x82 };
     144              : static const symbol s_0_22[3] = { 0xEF, 0xBA, 0x83 };
     145              : static const symbol s_0_23[3] = { 0xEF, 0xBA, 0x84 };
     146              : static const symbol s_0_24[3] = { 0xEF, 0xBA, 0x85 };
     147              : static const symbol s_0_25[3] = { 0xEF, 0xBA, 0x86 };
     148              : static const symbol s_0_26[3] = { 0xEF, 0xBA, 0x87 };
     149              : static const symbol s_0_27[3] = { 0xEF, 0xBA, 0x88 };
     150              : static const symbol s_0_28[3] = { 0xEF, 0xBA, 0x89 };
     151              : static const symbol s_0_29[3] = { 0xEF, 0xBA, 0x8A };
     152              : static const symbol s_0_30[3] = { 0xEF, 0xBA, 0x8B };
     153              : static const symbol s_0_31[3] = { 0xEF, 0xBA, 0x8C };
     154              : static const symbol s_0_32[3] = { 0xEF, 0xBA, 0x8D };
     155              : static const symbol s_0_33[3] = { 0xEF, 0xBA, 0x8E };
     156              : static const symbol s_0_34[3] = { 0xEF, 0xBA, 0x8F };
     157              : static const symbol s_0_35[3] = { 0xEF, 0xBA, 0x90 };
     158              : static const symbol s_0_36[3] = { 0xEF, 0xBA, 0x91 };
     159              : static const symbol s_0_37[3] = { 0xEF, 0xBA, 0x92 };
     160              : static const symbol s_0_38[3] = { 0xEF, 0xBA, 0x93 };
     161              : static const symbol s_0_39[3] = { 0xEF, 0xBA, 0x94 };
     162              : static const symbol s_0_40[3] = { 0xEF, 0xBA, 0x95 };
     163              : static const symbol s_0_41[3] = { 0xEF, 0xBA, 0x96 };
     164              : static const symbol s_0_42[3] = { 0xEF, 0xBA, 0x97 };
     165              : static const symbol s_0_43[3] = { 0xEF, 0xBA, 0x98 };
     166              : static const symbol s_0_44[3] = { 0xEF, 0xBA, 0x99 };
     167              : static const symbol s_0_45[3] = { 0xEF, 0xBA, 0x9A };
     168              : static const symbol s_0_46[3] = { 0xEF, 0xBA, 0x9B };
     169              : static const symbol s_0_47[3] = { 0xEF, 0xBA, 0x9C };
     170              : static const symbol s_0_48[3] = { 0xEF, 0xBA, 0x9D };
     171              : static const symbol s_0_49[3] = { 0xEF, 0xBA, 0x9E };
     172              : static const symbol s_0_50[3] = { 0xEF, 0xBA, 0x9F };
     173              : static const symbol s_0_51[3] = { 0xEF, 0xBA, 0xA0 };
     174              : static const symbol s_0_52[3] = { 0xEF, 0xBA, 0xA1 };
     175              : static const symbol s_0_53[3] = { 0xEF, 0xBA, 0xA2 };
     176              : static const symbol s_0_54[3] = { 0xEF, 0xBA, 0xA3 };
     177              : static const symbol s_0_55[3] = { 0xEF, 0xBA, 0xA4 };
     178              : static const symbol s_0_56[3] = { 0xEF, 0xBA, 0xA5 };
     179              : static const symbol s_0_57[3] = { 0xEF, 0xBA, 0xA6 };
     180              : static const symbol s_0_58[3] = { 0xEF, 0xBA, 0xA7 };
     181              : static const symbol s_0_59[3] = { 0xEF, 0xBA, 0xA8 };
     182              : static const symbol s_0_60[3] = { 0xEF, 0xBA, 0xA9 };
     183              : static const symbol s_0_61[3] = { 0xEF, 0xBA, 0xAA };
     184              : static const symbol s_0_62[3] = { 0xEF, 0xBA, 0xAB };
     185              : static const symbol s_0_63[3] = { 0xEF, 0xBA, 0xAC };
     186              : static const symbol s_0_64[3] = { 0xEF, 0xBA, 0xAD };
     187              : static const symbol s_0_65[3] = { 0xEF, 0xBA, 0xAE };
     188              : static const symbol s_0_66[3] = { 0xEF, 0xBA, 0xAF };
     189              : static const symbol s_0_67[3] = { 0xEF, 0xBA, 0xB0 };
     190              : static const symbol s_0_68[3] = { 0xEF, 0xBA, 0xB1 };
     191              : static const symbol s_0_69[3] = { 0xEF, 0xBA, 0xB2 };
     192              : static const symbol s_0_70[3] = { 0xEF, 0xBA, 0xB3 };
     193              : static const symbol s_0_71[3] = { 0xEF, 0xBA, 0xB4 };
     194              : static const symbol s_0_72[3] = { 0xEF, 0xBA, 0xB5 };
     195              : static const symbol s_0_73[3] = { 0xEF, 0xBA, 0xB6 };
     196              : static const symbol s_0_74[3] = { 0xEF, 0xBA, 0xB7 };
     197              : static const symbol s_0_75[3] = { 0xEF, 0xBA, 0xB8 };
     198              : static const symbol s_0_76[3] = { 0xEF, 0xBA, 0xB9 };
     199              : static const symbol s_0_77[3] = { 0xEF, 0xBA, 0xBA };
     200              : static const symbol s_0_78[3] = { 0xEF, 0xBA, 0xBB };
     201              : static const symbol s_0_79[3] = { 0xEF, 0xBA, 0xBC };
     202              : static const symbol s_0_80[3] = { 0xEF, 0xBA, 0xBD };
     203              : static const symbol s_0_81[3] = { 0xEF, 0xBA, 0xBE };
     204              : static const symbol s_0_82[3] = { 0xEF, 0xBA, 0xBF };
     205              : static const symbol s_0_83[3] = { 0xEF, 0xBB, 0x80 };
     206              : static const symbol s_0_84[3] = { 0xEF, 0xBB, 0x81 };
     207              : static const symbol s_0_85[3] = { 0xEF, 0xBB, 0x82 };
     208              : static const symbol s_0_86[3] = { 0xEF, 0xBB, 0x83 };
     209              : static const symbol s_0_87[3] = { 0xEF, 0xBB, 0x84 };
     210              : static const symbol s_0_88[3] = { 0xEF, 0xBB, 0x85 };
     211              : static const symbol s_0_89[3] = { 0xEF, 0xBB, 0x86 };
     212              : static const symbol s_0_90[3] = { 0xEF, 0xBB, 0x87 };
     213              : static const symbol s_0_91[3] = { 0xEF, 0xBB, 0x88 };
     214              : static const symbol s_0_92[3] = { 0xEF, 0xBB, 0x89 };
     215              : static const symbol s_0_93[3] = { 0xEF, 0xBB, 0x8A };
     216              : static const symbol s_0_94[3] = { 0xEF, 0xBB, 0x8B };
     217              : static const symbol s_0_95[3] = { 0xEF, 0xBB, 0x8C };
     218              : static const symbol s_0_96[3] = { 0xEF, 0xBB, 0x8D };
     219              : static const symbol s_0_97[3] = { 0xEF, 0xBB, 0x8E };
     220              : static const symbol s_0_98[3] = { 0xEF, 0xBB, 0x8F };
     221              : static const symbol s_0_99[3] = { 0xEF, 0xBB, 0x90 };
     222              : static const symbol s_0_100[3] = { 0xEF, 0xBB, 0x91 };
     223              : static const symbol s_0_101[3] = { 0xEF, 0xBB, 0x92 };
     224              : static const symbol s_0_102[3] = { 0xEF, 0xBB, 0x93 };
     225              : static const symbol s_0_103[3] = { 0xEF, 0xBB, 0x94 };
     226              : static const symbol s_0_104[3] = { 0xEF, 0xBB, 0x95 };
     227              : static const symbol s_0_105[3] = { 0xEF, 0xBB, 0x96 };
     228              : static const symbol s_0_106[3] = { 0xEF, 0xBB, 0x97 };
     229              : static const symbol s_0_107[3] = { 0xEF, 0xBB, 0x98 };
     230              : static const symbol s_0_108[3] = { 0xEF, 0xBB, 0x99 };
     231              : static const symbol s_0_109[3] = { 0xEF, 0xBB, 0x9A };
     232              : static const symbol s_0_110[3] = { 0xEF, 0xBB, 0x9B };
     233              : static const symbol s_0_111[3] = { 0xEF, 0xBB, 0x9C };
     234              : static const symbol s_0_112[3] = { 0xEF, 0xBB, 0x9D };
     235              : static const symbol s_0_113[3] = { 0xEF, 0xBB, 0x9E };
     236              : static const symbol s_0_114[3] = { 0xEF, 0xBB, 0x9F };
     237              : static const symbol s_0_115[3] = { 0xEF, 0xBB, 0xA0 };
     238              : static const symbol s_0_116[3] = { 0xEF, 0xBB, 0xA1 };
     239              : static const symbol s_0_117[3] = { 0xEF, 0xBB, 0xA2 };
     240              : static const symbol s_0_118[3] = { 0xEF, 0xBB, 0xA3 };
     241              : static const symbol s_0_119[3] = { 0xEF, 0xBB, 0xA4 };
     242              : static const symbol s_0_120[3] = { 0xEF, 0xBB, 0xA5 };
     243              : static const symbol s_0_121[3] = { 0xEF, 0xBB, 0xA6 };
     244              : static const symbol s_0_122[3] = { 0xEF, 0xBB, 0xA7 };
     245              : static const symbol s_0_123[3] = { 0xEF, 0xBB, 0xA8 };
     246              : static const symbol s_0_124[3] = { 0xEF, 0xBB, 0xA9 };
     247              : static const symbol s_0_125[3] = { 0xEF, 0xBB, 0xAA };
     248              : static const symbol s_0_126[3] = { 0xEF, 0xBB, 0xAB };
     249              : static const symbol s_0_127[3] = { 0xEF, 0xBB, 0xAC };
     250              : static const symbol s_0_128[3] = { 0xEF, 0xBB, 0xAD };
     251              : static const symbol s_0_129[3] = { 0xEF, 0xBB, 0xAE };
     252              : static const symbol s_0_130[3] = { 0xEF, 0xBB, 0xAF };
     253              : static const symbol s_0_131[3] = { 0xEF, 0xBB, 0xB0 };
     254              : static const symbol s_0_132[3] = { 0xEF, 0xBB, 0xB1 };
     255              : static const symbol s_0_133[3] = { 0xEF, 0xBB, 0xB2 };
     256              : static const symbol s_0_134[3] = { 0xEF, 0xBB, 0xB3 };
     257              : static const symbol s_0_135[3] = { 0xEF, 0xBB, 0xB4 };
     258              : static const symbol s_0_136[3] = { 0xEF, 0xBB, 0xB5 };
     259              : static const symbol s_0_137[3] = { 0xEF, 0xBB, 0xB6 };
     260              : static const symbol s_0_138[3] = { 0xEF, 0xBB, 0xB7 };
     261              : static const symbol s_0_139[3] = { 0xEF, 0xBB, 0xB8 };
     262              : static const symbol s_0_140[3] = { 0xEF, 0xBB, 0xB9 };
     263              : static const symbol s_0_141[3] = { 0xEF, 0xBB, 0xBA };
     264              : static const symbol s_0_142[3] = { 0xEF, 0xBB, 0xBB };
     265              : static const symbol s_0_143[3] = { 0xEF, 0xBB, 0xBC };
     266              : static const struct among a_0[144] = {
     267              : { 2, s_0_0, 0, 1, 0},
     268              : { 2, s_0_1, 0, 1, 0},
     269              : { 2, s_0_2, 0, 1, 0},
     270              : { 2, s_0_3, 0, 1, 0},
     271              : { 2, s_0_4, 0, 1, 0},
     272              : { 2, s_0_5, 0, 1, 0},
     273              : { 2, s_0_6, 0, 1, 0},
     274              : { 2, s_0_7, 0, 1, 0},
     275              : { 2, s_0_8, 0, 1, 0},
     276              : { 2, s_0_9, 0, 2, 0},
     277              : { 2, s_0_10, 0, 3, 0},
     278              : { 2, s_0_11, 0, 4, 0},
     279              : { 2, s_0_12, 0, 5, 0},
     280              : { 2, s_0_13, 0, 6, 0},
     281              : { 2, s_0_14, 0, 7, 0},
     282              : { 2, s_0_15, 0, 8, 0},
     283              : { 2, s_0_16, 0, 9, 0},
     284              : { 2, s_0_17, 0, 10, 0},
     285              : { 2, s_0_18, 0, 11, 0},
     286              : { 3, s_0_19, 0, 12, 0},
     287              : { 3, s_0_20, 0, 16, 0},
     288              : { 3, s_0_21, 0, 16, 0},
     289              : { 3, s_0_22, 0, 13, 0},
     290              : { 3, s_0_23, 0, 13, 0},
     291              : { 3, s_0_24, 0, 17, 0},
     292              : { 3, s_0_25, 0, 17, 0},
     293              : { 3, s_0_26, 0, 14, 0},
     294              : { 3, s_0_27, 0, 14, 0},
     295              : { 3, s_0_28, 0, 15, 0},
     296              : { 3, s_0_29, 0, 15, 0},
     297              : { 3, s_0_30, 0, 15, 0},
     298              : { 3, s_0_31, 0, 15, 0},
     299              : { 3, s_0_32, 0, 18, 0},
     300              : { 3, s_0_33, 0, 18, 0},
     301              : { 3, s_0_34, 0, 19, 0},
     302              : { 3, s_0_35, 0, 19, 0},
     303              : { 3, s_0_36, 0, 19, 0},
     304              : { 3, s_0_37, 0, 19, 0},
     305              : { 3, s_0_38, 0, 20, 0},
     306              : { 3, s_0_39, 0, 20, 0},
     307              : { 3, s_0_40, 0, 21, 0},
     308              : { 3, s_0_41, 0, 21, 0},
     309              : { 3, s_0_42, 0, 21, 0},
     310              : { 3, s_0_43, 0, 21, 0},
     311              : { 3, s_0_44, 0, 22, 0},
     312              : { 3, s_0_45, 0, 22, 0},
     313              : { 3, s_0_46, 0, 22, 0},
     314              : { 3, s_0_47, 0, 22, 0},
     315              : { 3, s_0_48, 0, 23, 0},
     316              : { 3, s_0_49, 0, 23, 0},
     317              : { 3, s_0_50, 0, 23, 0},
     318              : { 3, s_0_51, 0, 23, 0},
     319              : { 3, s_0_52, 0, 24, 0},
     320              : { 3, s_0_53, 0, 24, 0},
     321              : { 3, s_0_54, 0, 24, 0},
     322              : { 3, s_0_55, 0, 24, 0},
     323              : { 3, s_0_56, 0, 25, 0},
     324              : { 3, s_0_57, 0, 25, 0},
     325              : { 3, s_0_58, 0, 25, 0},
     326              : { 3, s_0_59, 0, 25, 0},
     327              : { 3, s_0_60, 0, 26, 0},
     328              : { 3, s_0_61, 0, 26, 0},
     329              : { 3, s_0_62, 0, 27, 0},
     330              : { 3, s_0_63, 0, 27, 0},
     331              : { 3, s_0_64, 0, 28, 0},
     332              : { 3, s_0_65, 0, 28, 0},
     333              : { 3, s_0_66, 0, 29, 0},
     334              : { 3, s_0_67, 0, 29, 0},
     335              : { 3, s_0_68, 0, 30, 0},
     336              : { 3, s_0_69, 0, 30, 0},
     337              : { 3, s_0_70, 0, 30, 0},
     338              : { 3, s_0_71, 0, 30, 0},
     339              : { 3, s_0_72, 0, 31, 0},
     340              : { 3, s_0_73, 0, 31, 0},
     341              : { 3, s_0_74, 0, 31, 0},
     342              : { 3, s_0_75, 0, 31, 0},
     343              : { 3, s_0_76, 0, 32, 0},
     344              : { 3, s_0_77, 0, 32, 0},
     345              : { 3, s_0_78, 0, 32, 0},
     346              : { 3, s_0_79, 0, 32, 0},
     347              : { 3, s_0_80, 0, 33, 0},
     348              : { 3, s_0_81, 0, 33, 0},
     349              : { 3, s_0_82, 0, 33, 0},
     350              : { 3, s_0_83, 0, 33, 0},
     351              : { 3, s_0_84, 0, 34, 0},
     352              : { 3, s_0_85, 0, 34, 0},
     353              : { 3, s_0_86, 0, 34, 0},
     354              : { 3, s_0_87, 0, 34, 0},
     355              : { 3, s_0_88, 0, 35, 0},
     356              : { 3, s_0_89, 0, 35, 0},
     357              : { 3, s_0_90, 0, 35, 0},
     358              : { 3, s_0_91, 0, 35, 0},
     359              : { 3, s_0_92, 0, 36, 0},
     360              : { 3, s_0_93, 0, 36, 0},
     361              : { 3, s_0_94, 0, 36, 0},
     362              : { 3, s_0_95, 0, 36, 0},
     363              : { 3, s_0_96, 0, 37, 0},
     364              : { 3, s_0_97, 0, 37, 0},
     365              : { 3, s_0_98, 0, 37, 0},
     366              : { 3, s_0_99, 0, 37, 0},
     367              : { 3, s_0_100, 0, 38, 0},
     368              : { 3, s_0_101, 0, 38, 0},
     369              : { 3, s_0_102, 0, 38, 0},
     370              : { 3, s_0_103, 0, 38, 0},
     371              : { 3, s_0_104, 0, 39, 0},
     372              : { 3, s_0_105, 0, 39, 0},
     373              : { 3, s_0_106, 0, 39, 0},
     374              : { 3, s_0_107, 0, 39, 0},
     375              : { 3, s_0_108, 0, 40, 0},
     376              : { 3, s_0_109, 0, 40, 0},
     377              : { 3, s_0_110, 0, 40, 0},
     378              : { 3, s_0_111, 0, 40, 0},
     379              : { 3, s_0_112, 0, 41, 0},
     380              : { 3, s_0_113, 0, 41, 0},
     381              : { 3, s_0_114, 0, 41, 0},
     382              : { 3, s_0_115, 0, 41, 0},
     383              : { 3, s_0_116, 0, 42, 0},
     384              : { 3, s_0_117, 0, 42, 0},
     385              : { 3, s_0_118, 0, 42, 0},
     386              : { 3, s_0_119, 0, 42, 0},
     387              : { 3, s_0_120, 0, 43, 0},
     388              : { 3, s_0_121, 0, 43, 0},
     389              : { 3, s_0_122, 0, 43, 0},
     390              : { 3, s_0_123, 0, 43, 0},
     391              : { 3, s_0_124, 0, 44, 0},
     392              : { 3, s_0_125, 0, 44, 0},
     393              : { 3, s_0_126, 0, 44, 0},
     394              : { 3, s_0_127, 0, 44, 0},
     395              : { 3, s_0_128, 0, 45, 0},
     396              : { 3, s_0_129, 0, 45, 0},
     397              : { 3, s_0_130, 0, 46, 0},
     398              : { 3, s_0_131, 0, 46, 0},
     399              : { 3, s_0_132, 0, 47, 0},
     400              : { 3, s_0_133, 0, 47, 0},
     401              : { 3, s_0_134, 0, 47, 0},
     402              : { 3, s_0_135, 0, 47, 0},
     403              : { 3, s_0_136, 0, 51, 0},
     404              : { 3, s_0_137, 0, 51, 0},
     405              : { 3, s_0_138, 0, 49, 0},
     406              : { 3, s_0_139, 0, 49, 0},
     407              : { 3, s_0_140, 0, 50, 0},
     408              : { 3, s_0_141, 0, 50, 0},
     409              : { 3, s_0_142, 0, 48, 0},
     410              : { 3, s_0_143, 0, 48, 0}
     411              : };
     412              : 
     413              : static const symbol s_1_0[2] = { 0xD8, 0xA2 };
     414              : static const symbol s_1_1[2] = { 0xD8, 0xA3 };
     415              : static const symbol s_1_2[2] = { 0xD8, 0xA4 };
     416              : static const symbol s_1_3[2] = { 0xD8, 0xA5 };
     417              : static const symbol s_1_4[2] = { 0xD8, 0xA6 };
     418              : static const struct among a_1[5] = {
     419              : { 2, s_1_0, 0, 1, 0},
     420              : { 2, s_1_1, 0, 1, 0},
     421              : { 2, s_1_2, 0, 1, 0},
     422              : { 2, s_1_3, 0, 1, 0},
     423              : { 2, s_1_4, 0, 1, 0}
     424              : };
     425              : 
     426              : static const symbol s_2_0[2] = { 0xD8, 0xA2 };
     427              : static const symbol s_2_1[2] = { 0xD8, 0xA3 };
     428              : static const symbol s_2_2[2] = { 0xD8, 0xA4 };
     429              : static const symbol s_2_3[2] = { 0xD8, 0xA5 };
     430              : static const symbol s_2_4[2] = { 0xD8, 0xA6 };
     431              : static const struct among a_2[5] = {
     432              : { 2, s_2_0, 0, 1, 0},
     433              : { 2, s_2_1, 0, 1, 0},
     434              : { 2, s_2_2, 0, 2, 0},
     435              : { 2, s_2_3, 0, 1, 0},
     436              : { 2, s_2_4, 0, 3, 0}
     437              : };
     438              : 
     439              : static const symbol s_3_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 };
     440              : static const symbol s_3_1[6] = { 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x84 };
     441              : static const symbol s_3_2[6] = { 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x84 };
     442              : static const symbol s_3_3[4] = { 0xD9, 0x84, 0xD9, 0x84 };
     443              : static const struct among a_3[4] = {
     444              : { 4, s_3_0, 0, 2, 0},
     445              : { 6, s_3_1, 0, 1, 0},
     446              : { 6, s_3_2, 0, 1, 0},
     447              : { 4, s_3_3, 0, 2, 0}
     448              : };
     449              : 
     450              : static const symbol s_4_0[4] = { 0xD8, 0xA3, 0xD8, 0xA2 };
     451              : static const symbol s_4_1[4] = { 0xD8, 0xA3, 0xD8, 0xA3 };
     452              : static const symbol s_4_2[4] = { 0xD8, 0xA3, 0xD8, 0xA4 };
     453              : static const symbol s_4_3[4] = { 0xD8, 0xA3, 0xD8, 0xA5 };
     454              : static const symbol s_4_4[4] = { 0xD8, 0xA3, 0xD8, 0xA7 };
     455              : static const struct among a_4[5] = {
     456              : { 4, s_4_0, 0, 2, 0},
     457              : { 4, s_4_1, 0, 1, 0},
     458              : { 4, s_4_2, 0, 1, 0},
     459              : { 4, s_4_3, 0, 4, 0},
     460              : { 4, s_4_4, 0, 3, 0}
     461              : };
     462              : 
     463              : static const symbol s_5_0[2] = { 0xD9, 0x81 };
     464              : static const symbol s_5_1[2] = { 0xD9, 0x88 };
     465              : static const struct among a_5[2] = {
     466              : { 2, s_5_0, 0, 1, 0},
     467              : { 2, s_5_1, 0, 1, 0}
     468              : };
     469              : 
     470              : static const symbol s_6_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 };
     471              : static const symbol s_6_1[6] = { 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x84 };
     472              : static const symbol s_6_2[6] = { 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x84 };
     473              : static const symbol s_6_3[4] = { 0xD9, 0x84, 0xD9, 0x84 };
     474              : static const struct among a_6[4] = {
     475              : { 4, s_6_0, 0, 2, 0},
     476              : { 6, s_6_1, 0, 1, 0},
     477              : { 6, s_6_2, 0, 1, 0},
     478              : { 4, s_6_3, 0, 2, 0}
     479              : };
     480              : 
     481              : static const symbol s_7_0[2] = { 0xD8, 0xA8 };
     482              : static const symbol s_7_1[4] = { 0xD8, 0xA8, 0xD8, 0xA7 };
     483              : static const symbol s_7_2[4] = { 0xD8, 0xA8, 0xD8, 0xA8 };
     484              : static const symbol s_7_3[4] = { 0xD9, 0x83, 0xD9, 0x83 };
     485              : static const struct among a_7[4] = {
     486              : { 2, s_7_0, 0, 1, 0},
     487              : { 4, s_7_1, -1, -1, 0},
     488              : { 4, s_7_2, -2, 2, 0},
     489              : { 4, s_7_3, 0, 3, 0}
     490              : };
     491              : 
     492              : static const symbol s_8_0[4] = { 0xD8, 0xB3, 0xD8, 0xA3 };
     493              : static const symbol s_8_1[4] = { 0xD8, 0xB3, 0xD8, 0xAA };
     494              : static const symbol s_8_2[4] = { 0xD8, 0xB3, 0xD9, 0x86 };
     495              : static const symbol s_8_3[4] = { 0xD8, 0xB3, 0xD9, 0x8A };
     496              : static const struct among a_8[4] = {
     497              : { 4, s_8_0, 0, 4, 0},
     498              : { 4, s_8_1, 0, 2, 0},
     499              : { 4, s_8_2, 0, 3, 0},
     500              : { 4, s_8_3, 0, 1, 0}
     501              : };
     502              : 
     503              : static const symbol s_9_0[6] = { 0xD8, 0xAA, 0xD8, 0xB3, 0xD8, 0xAA };
     504              : static const symbol s_9_1[6] = { 0xD9, 0x86, 0xD8, 0xB3, 0xD8, 0xAA };
     505              : static const symbol s_9_2[6] = { 0xD9, 0x8A, 0xD8, 0xB3, 0xD8, 0xAA };
     506              : static const struct among a_9[3] = {
     507              : { 6, s_9_0, 0, 1, 0},
     508              : { 6, s_9_1, 0, 1, 0},
     509              : { 6, s_9_2, 0, 1, 0}
     510              : };
     511              : 
     512              : static const symbol s_10_0[2] = { 0xD9, 0x83 };
     513              : static const symbol s_10_1[4] = { 0xD9, 0x83, 0xD9, 0x85 };
     514              : static const symbol s_10_2[4] = { 0xD9, 0x87, 0xD9, 0x85 };
     515              : static const symbol s_10_3[4] = { 0xD9, 0x87, 0xD9, 0x86 };
     516              : static const symbol s_10_4[2] = { 0xD9, 0x87 };
     517              : static const symbol s_10_5[2] = { 0xD9, 0x8A };
     518              : static const symbol s_10_6[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD8, 0xA7 };
     519              : static const symbol s_10_7[6] = { 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xA7 };
     520              : static const symbol s_10_8[4] = { 0xD9, 0x86, 0xD8, 0xA7 };
     521              : static const symbol s_10_9[4] = { 0xD9, 0x87, 0xD8, 0xA7 };
     522              : static const struct among a_10[10] = {
     523              : { 2, s_10_0, 0, 1, 0},
     524              : { 4, s_10_1, 0, 2, 0},
     525              : { 4, s_10_2, 0, 2, 0},
     526              : { 4, s_10_3, 0, 2, 0},
     527              : { 2, s_10_4, 0, 1, 0},
     528              : { 2, s_10_5, 0, 1, 0},
     529              : { 6, s_10_6, 0, 3, 0},
     530              : { 6, s_10_7, 0, 3, 0},
     531              : { 4, s_10_8, 0, 2, 0},
     532              : { 4, s_10_9, 0, 2, 0}
     533              : };
     534              : 
     535              : static const symbol s_11_0[2] = { 0xD9, 0x88 };
     536              : static const symbol s_11_1[2] = { 0xD9, 0x8A };
     537              : static const symbol s_11_2[2] = { 0xD8, 0xA7 };
     538              : static const struct among a_11[3] = {
     539              : { 2, s_11_0, 0, 1, 0},
     540              : { 2, s_11_1, 0, 1, 0},
     541              : { 2, s_11_2, 0, 1, 0}
     542              : };
     543              : 
     544              : static const symbol s_12_0[2] = { 0xD9, 0x83 };
     545              : static const symbol s_12_1[4] = { 0xD9, 0x83, 0xD9, 0x85 };
     546              : static const symbol s_12_2[4] = { 0xD9, 0x87, 0xD9, 0x85 };
     547              : static const symbol s_12_3[4] = { 0xD9, 0x83, 0xD9, 0x86 };
     548              : static const symbol s_12_4[4] = { 0xD9, 0x87, 0xD9, 0x86 };
     549              : static const symbol s_12_5[2] = { 0xD9, 0x87 };
     550              : static const symbol s_12_6[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x88 };
     551              : static const symbol s_12_7[4] = { 0xD9, 0x86, 0xD9, 0x8A };
     552              : static const symbol s_12_8[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD8, 0xA7 };
     553              : static const symbol s_12_9[6] = { 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xA7 };
     554              : static const symbol s_12_10[4] = { 0xD9, 0x86, 0xD8, 0xA7 };
     555              : static const symbol s_12_11[4] = { 0xD9, 0x87, 0xD8, 0xA7 };
     556              : static const struct among a_12[12] = {
     557              : { 2, s_12_0, 0, 1, 0},
     558              : { 4, s_12_1, 0, 2, 0},
     559              : { 4, s_12_2, 0, 2, 0},
     560              : { 4, s_12_3, 0, 2, 0},
     561              : { 4, s_12_4, 0, 2, 0},
     562              : { 2, s_12_5, 0, 1, 0},
     563              : { 6, s_12_6, 0, 3, 0},
     564              : { 4, s_12_7, 0, 2, 0},
     565              : { 6, s_12_8, 0, 3, 0},
     566              : { 6, s_12_9, 0, 3, 0},
     567              : { 4, s_12_10, 0, 2, 0},
     568              : { 4, s_12_11, 0, 2, 0}
     569              : };
     570              : 
     571              : static const symbol s_13_0[2] = { 0xD9, 0x86 };
     572              : static const symbol s_13_1[4] = { 0xD9, 0x88, 0xD9, 0x86 };
     573              : static const symbol s_13_2[4] = { 0xD9, 0x8A, 0xD9, 0x86 };
     574              : static const symbol s_13_3[4] = { 0xD8, 0xA7, 0xD9, 0x86 };
     575              : static const symbol s_13_4[4] = { 0xD8, 0xAA, 0xD9, 0x86 };
     576              : static const symbol s_13_5[2] = { 0xD9, 0x8A };
     577              : static const symbol s_13_6[2] = { 0xD8, 0xA7 };
     578              : static const symbol s_13_7[6] = { 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xA7 };
     579              : static const symbol s_13_8[4] = { 0xD9, 0x86, 0xD8, 0xA7 };
     580              : static const symbol s_13_9[4] = { 0xD8, 0xAA, 0xD8, 0xA7 };
     581              : static const symbol s_13_10[2] = { 0xD8, 0xAA };
     582              : static const struct among a_13[11] = {
     583              : { 2, s_13_0, 0, 1, 0},
     584              : { 4, s_13_1, -1, 3, 0},
     585              : { 4, s_13_2, -2, 3, 0},
     586              : { 4, s_13_3, -3, 3, 0},
     587              : { 4, s_13_4, -4, 2, 0},
     588              : { 2, s_13_5, 0, 1, 0},
     589              : { 2, s_13_6, 0, 1, 0},
     590              : { 6, s_13_7, -1, 4, 0},
     591              : { 4, s_13_8, -2, 2, 0},
     592              : { 4, s_13_9, -3, 2, 0},
     593              : { 2, s_13_10, 0, 1, 0}
     594              : };
     595              : 
     596              : static const symbol s_14_0[4] = { 0xD8, 0xAA, 0xD9, 0x85 };
     597              : static const symbol s_14_1[4] = { 0xD9, 0x88, 0xD8, 0xA7 };
     598              : static const struct among a_14[2] = {
     599              : { 4, s_14_0, 0, 1, 0},
     600              : { 4, s_14_1, 0, 1, 0}
     601              : };
     602              : 
     603              : static const symbol s_15_0[2] = { 0xD9, 0x88 };
     604              : static const symbol s_15_1[6] = { 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x88 };
     605              : static const struct among a_15[2] = {
     606              : { 2, s_15_0, 0, 1, 0},
     607              : { 6, s_15_1, -1, 2, 0}
     608              : };
     609              : 
     610            0 : static int r_Normalize_pre(struct SN_env * z) {
     611              :     int among_var;
     612              :     {
     613            0 :         int v_1 = z->c;
     614            0 :         while (1) {
     615            0 :             int v_2 = z->c;
     616              :             do {
     617            0 :                 int v_3 = z->c;
     618            0 :                 z->bra = z->c;
     619            0 :                 among_var = find_among(z, a_0, 144, 0);
     620            0 :                 if (!among_var) goto lab2;
     621            0 :                 z->ket = z->c;
     622            0 :                 switch (among_var) {
     623            0 :                     case 1:
     624              :                         {
     625            0 :                             int ret = slice_del(z);
     626            0 :                             if (ret < 0) return ret;
     627              :                         }
     628            0 :                         break;
     629            0 :                     case 2:
     630              :                         {
     631            0 :                             int ret = slice_from_s(z, 1, s_0);
     632            0 :                             if (ret < 0) return ret;
     633              :                         }
     634            0 :                         break;
     635            0 :                     case 3:
     636              :                         {
     637            0 :                             int ret = slice_from_s(z, 1, s_1);
     638            0 :                             if (ret < 0) return ret;
     639              :                         }
     640            0 :                         break;
     641            0 :                     case 4:
     642              :                         {
     643            0 :                             int ret = slice_from_s(z, 1, s_2);
     644            0 :                             if (ret < 0) return ret;
     645              :                         }
     646            0 :                         break;
     647            0 :                     case 5:
     648              :                         {
     649            0 :                             int ret = slice_from_s(z, 1, s_3);
     650            0 :                             if (ret < 0) return ret;
     651              :                         }
     652            0 :                         break;
     653            0 :                     case 6:
     654              :                         {
     655            0 :                             int ret = slice_from_s(z, 1, s_4);
     656            0 :                             if (ret < 0) return ret;
     657              :                         }
     658            0 :                         break;
     659            0 :                     case 7:
     660              :                         {
     661            0 :                             int ret = slice_from_s(z, 1, s_5);
     662            0 :                             if (ret < 0) return ret;
     663              :                         }
     664            0 :                         break;
     665            0 :                     case 8:
     666              :                         {
     667            0 :                             int ret = slice_from_s(z, 1, s_6);
     668            0 :                             if (ret < 0) return ret;
     669              :                         }
     670            0 :                         break;
     671            0 :                     case 9:
     672              :                         {
     673            0 :                             int ret = slice_from_s(z, 1, s_7);
     674            0 :                             if (ret < 0) return ret;
     675              :                         }
     676            0 :                         break;
     677            0 :                     case 10:
     678              :                         {
     679            0 :                             int ret = slice_from_s(z, 1, s_8);
     680            0 :                             if (ret < 0) return ret;
     681              :                         }
     682            0 :                         break;
     683            0 :                     case 11:
     684              :                         {
     685            0 :                             int ret = slice_from_s(z, 1, s_9);
     686            0 :                             if (ret < 0) return ret;
     687              :                         }
     688            0 :                         break;
     689            0 :                     case 12:
     690              :                         {
     691            0 :                             int ret = slice_from_s(z, 2, s_10);
     692            0 :                             if (ret < 0) return ret;
     693              :                         }
     694            0 :                         break;
     695            0 :                     case 13:
     696              :                         {
     697            0 :                             int ret = slice_from_s(z, 2, s_11);
     698            0 :                             if (ret < 0) return ret;
     699              :                         }
     700            0 :                         break;
     701            0 :                     case 14:
     702              :                         {
     703            0 :                             int ret = slice_from_s(z, 2, s_12);
     704            0 :                             if (ret < 0) return ret;
     705              :                         }
     706            0 :                         break;
     707            0 :                     case 15:
     708              :                         {
     709            0 :                             int ret = slice_from_s(z, 2, s_13);
     710            0 :                             if (ret < 0) return ret;
     711              :                         }
     712            0 :                         break;
     713            0 :                     case 16:
     714              :                         {
     715            0 :                             int ret = slice_from_s(z, 2, s_14);
     716            0 :                             if (ret < 0) return ret;
     717              :                         }
     718            0 :                         break;
     719            0 :                     case 17:
     720              :                         {
     721            0 :                             int ret = slice_from_s(z, 2, s_15);
     722            0 :                             if (ret < 0) return ret;
     723              :                         }
     724            0 :                         break;
     725            0 :                     case 18:
     726              :                         {
     727            0 :                             int ret = slice_from_s(z, 2, s_16);
     728            0 :                             if (ret < 0) return ret;
     729              :                         }
     730            0 :                         break;
     731            0 :                     case 19:
     732              :                         {
     733            0 :                             int ret = slice_from_s(z, 2, s_17);
     734            0 :                             if (ret < 0) return ret;
     735              :                         }
     736            0 :                         break;
     737            0 :                     case 20:
     738              :                         {
     739            0 :                             int ret = slice_from_s(z, 2, s_18);
     740            0 :                             if (ret < 0) return ret;
     741              :                         }
     742            0 :                         break;
     743            0 :                     case 21:
     744              :                         {
     745            0 :                             int ret = slice_from_s(z, 2, s_19);
     746            0 :                             if (ret < 0) return ret;
     747              :                         }
     748            0 :                         break;
     749            0 :                     case 22:
     750              :                         {
     751            0 :                             int ret = slice_from_s(z, 2, s_20);
     752            0 :                             if (ret < 0) return ret;
     753              :                         }
     754            0 :                         break;
     755            0 :                     case 23:
     756              :                         {
     757            0 :                             int ret = slice_from_s(z, 2, s_21);
     758            0 :                             if (ret < 0) return ret;
     759              :                         }
     760            0 :                         break;
     761            0 :                     case 24:
     762              :                         {
     763            0 :                             int ret = slice_from_s(z, 2, s_22);
     764            0 :                             if (ret < 0) return ret;
     765              :                         }
     766            0 :                         break;
     767            0 :                     case 25:
     768              :                         {
     769            0 :                             int ret = slice_from_s(z, 2, s_23);
     770            0 :                             if (ret < 0) return ret;
     771              :                         }
     772            0 :                         break;
     773            0 :                     case 26:
     774              :                         {
     775            0 :                             int ret = slice_from_s(z, 2, s_24);
     776            0 :                             if (ret < 0) return ret;
     777              :                         }
     778            0 :                         break;
     779            0 :                     case 27:
     780              :                         {
     781            0 :                             int ret = slice_from_s(z, 2, s_25);
     782            0 :                             if (ret < 0) return ret;
     783              :                         }
     784            0 :                         break;
     785            0 :                     case 28:
     786              :                         {
     787            0 :                             int ret = slice_from_s(z, 2, s_26);
     788            0 :                             if (ret < 0) return ret;
     789              :                         }
     790            0 :                         break;
     791            0 :                     case 29:
     792              :                         {
     793            0 :                             int ret = slice_from_s(z, 2, s_27);
     794            0 :                             if (ret < 0) return ret;
     795              :                         }
     796            0 :                         break;
     797            0 :                     case 30:
     798              :                         {
     799            0 :                             int ret = slice_from_s(z, 2, s_28);
     800            0 :                             if (ret < 0) return ret;
     801              :                         }
     802            0 :                         break;
     803            0 :                     case 31:
     804              :                         {
     805            0 :                             int ret = slice_from_s(z, 2, s_29);
     806            0 :                             if (ret < 0) return ret;
     807              :                         }
     808            0 :                         break;
     809            0 :                     case 32:
     810              :                         {
     811            0 :                             int ret = slice_from_s(z, 2, s_30);
     812            0 :                             if (ret < 0) return ret;
     813              :                         }
     814            0 :                         break;
     815            0 :                     case 33:
     816              :                         {
     817            0 :                             int ret = slice_from_s(z, 2, s_31);
     818            0 :                             if (ret < 0) return ret;
     819              :                         }
     820            0 :                         break;
     821            0 :                     case 34:
     822              :                         {
     823            0 :                             int ret = slice_from_s(z, 2, s_32);
     824            0 :                             if (ret < 0) return ret;
     825              :                         }
     826            0 :                         break;
     827            0 :                     case 35:
     828              :                         {
     829            0 :                             int ret = slice_from_s(z, 2, s_33);
     830            0 :                             if (ret < 0) return ret;
     831              :                         }
     832            0 :                         break;
     833            0 :                     case 36:
     834              :                         {
     835            0 :                             int ret = slice_from_s(z, 2, s_34);
     836            0 :                             if (ret < 0) return ret;
     837              :                         }
     838            0 :                         break;
     839            0 :                     case 37:
     840              :                         {
     841            0 :                             int ret = slice_from_s(z, 2, s_35);
     842            0 :                             if (ret < 0) return ret;
     843              :                         }
     844            0 :                         break;
     845            0 :                     case 38:
     846              :                         {
     847            0 :                             int ret = slice_from_s(z, 2, s_36);
     848            0 :                             if (ret < 0) return ret;
     849              :                         }
     850            0 :                         break;
     851            0 :                     case 39:
     852              :                         {
     853            0 :                             int ret = slice_from_s(z, 2, s_37);
     854            0 :                             if (ret < 0) return ret;
     855              :                         }
     856            0 :                         break;
     857            0 :                     case 40:
     858              :                         {
     859            0 :                             int ret = slice_from_s(z, 2, s_38);
     860            0 :                             if (ret < 0) return ret;
     861              :                         }
     862            0 :                         break;
     863            0 :                     case 41:
     864              :                         {
     865            0 :                             int ret = slice_from_s(z, 2, s_39);
     866            0 :                             if (ret < 0) return ret;
     867              :                         }
     868            0 :                         break;
     869            0 :                     case 42:
     870              :                         {
     871            0 :                             int ret = slice_from_s(z, 2, s_40);
     872            0 :                             if (ret < 0) return ret;
     873              :                         }
     874            0 :                         break;
     875            0 :                     case 43:
     876              :                         {
     877            0 :                             int ret = slice_from_s(z, 2, s_41);
     878            0 :                             if (ret < 0) return ret;
     879              :                         }
     880            0 :                         break;
     881            0 :                     case 44:
     882              :                         {
     883            0 :                             int ret = slice_from_s(z, 2, s_42);
     884            0 :                             if (ret < 0) return ret;
     885              :                         }
     886            0 :                         break;
     887            0 :                     case 45:
     888              :                         {
     889            0 :                             int ret = slice_from_s(z, 2, s_43);
     890            0 :                             if (ret < 0) return ret;
     891              :                         }
     892            0 :                         break;
     893            0 :                     case 46:
     894              :                         {
     895            0 :                             int ret = slice_from_s(z, 2, s_44);
     896            0 :                             if (ret < 0) return ret;
     897              :                         }
     898            0 :                         break;
     899            0 :                     case 47:
     900              :                         {
     901            0 :                             int ret = slice_from_s(z, 2, s_45);
     902            0 :                             if (ret < 0) return ret;
     903              :                         }
     904            0 :                         break;
     905            0 :                     case 48:
     906              :                         {
     907            0 :                             int ret = slice_from_s(z, 4, s_46);
     908            0 :                             if (ret < 0) return ret;
     909              :                         }
     910            0 :                         break;
     911            0 :                     case 49:
     912              :                         {
     913            0 :                             int ret = slice_from_s(z, 4, s_47);
     914            0 :                             if (ret < 0) return ret;
     915              :                         }
     916            0 :                         break;
     917            0 :                     case 50:
     918              :                         {
     919            0 :                             int ret = slice_from_s(z, 4, s_48);
     920            0 :                             if (ret < 0) return ret;
     921              :                         }
     922            0 :                         break;
     923            0 :                     case 51:
     924              :                         {
     925            0 :                             int ret = slice_from_s(z, 4, s_49);
     926            0 :                             if (ret < 0) return ret;
     927              :                         }
     928            0 :                         break;
     929              :                 }
     930            0 :                 break;
     931            0 :             lab2:
     932            0 :                 z->c = v_3;
     933              :                 {
     934            0 :                     int ret = skip_utf8(z->p, z->c, z->l, 1);
     935            0 :                     if (ret < 0) goto lab1;
     936            0 :                     z->c = ret;
     937              :                 }
     938              :             } while (0);
     939            0 :             continue;
     940            0 :         lab1:
     941            0 :             z->c = v_2;
     942            0 :             break;
     943              :         }
     944            0 :         z->c = v_1;
     945              :     }
     946            0 :     return 1;
     947              : }
     948              : 
     949            0 : static int r_Normalize_post(struct SN_env * z) {
     950              :     int among_var;
     951              :     {
     952            0 :         int v_1 = z->c;
     953            0 :         z->lb = z->c; z->c = z->l;
     954            0 :         z->ket = z->c;
     955            0 :         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((124 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
     956            0 :         if (!find_among_b(z, a_1, 5, 0)) goto lab0;
     957            0 :         z->bra = z->c;
     958              :         {
     959            0 :             int ret = slice_from_s(z, 2, s_50);
     960            0 :             if (ret < 0) return ret;
     961              :         }
     962            0 :         z->c = z->lb;
     963            0 :     lab0:
     964            0 :         z->c = v_1;
     965              :     }
     966              :     {
     967            0 :         int v_2 = z->c;
     968            0 :         while (1) {
     969            0 :             int v_3 = z->c;
     970              :             do {
     971            0 :                 int v_4 = z->c;
     972            0 :                 z->bra = z->c;
     973            0 :                 if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((124 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3;
     974            0 :                 among_var = find_among(z, a_2, 5, 0);
     975            0 :                 if (!among_var) goto lab3;
     976            0 :                 z->ket = z->c;
     977            0 :                 switch (among_var) {
     978            0 :                     case 1:
     979              :                         {
     980            0 :                             int ret = slice_from_s(z, 2, s_51);
     981            0 :                             if (ret < 0) return ret;
     982              :                         }
     983            0 :                         break;
     984            0 :                     case 2:
     985              :                         {
     986            0 :                             int ret = slice_from_s(z, 2, s_52);
     987            0 :                             if (ret < 0) return ret;
     988              :                         }
     989            0 :                         break;
     990            0 :                     case 3:
     991              :                         {
     992            0 :                             int ret = slice_from_s(z, 2, s_53);
     993            0 :                             if (ret < 0) return ret;
     994              :                         }
     995            0 :                         break;
     996              :                 }
     997            0 :                 break;
     998            0 :             lab3:
     999            0 :                 z->c = v_4;
    1000              :                 {
    1001            0 :                     int ret = skip_utf8(z->p, z->c, z->l, 1);
    1002            0 :                     if (ret < 0) goto lab2;
    1003            0 :                     z->c = ret;
    1004              :                 }
    1005              :             } while (0);
    1006            0 :             continue;
    1007            0 :         lab2:
    1008            0 :             z->c = v_3;
    1009            0 :             break;
    1010              :         }
    1011            0 :         z->c = v_2;
    1012              :     }
    1013            0 :     return 1;
    1014              : }
    1015              : 
    1016            0 : static int r_Checks1(struct SN_env * z) {
    1017              :     int among_var;
    1018            0 :     z->bra = z->c;
    1019            0 :     if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0;
    1020            0 :     among_var = find_among(z, a_3, 4, 0);
    1021            0 :     if (!among_var) return 0;
    1022            0 :     z->ket = z->c;
    1023            0 :     switch (among_var) {
    1024            0 :         case 1:
    1025            0 :             if (len_utf8(z->p) <= 4) return 0;
    1026            0 :             ((SN_local *)z)->b_is_noun = 1;
    1027            0 :             ((SN_local *)z)->b_is_verb = 0;
    1028            0 :             ((SN_local *)z)->b_is_defined = 1;
    1029            0 :             break;
    1030            0 :         case 2:
    1031            0 :             if (len_utf8(z->p) <= 3) return 0;
    1032            0 :             ((SN_local *)z)->b_is_noun = 1;
    1033            0 :             ((SN_local *)z)->b_is_verb = 0;
    1034            0 :             ((SN_local *)z)->b_is_defined = 1;
    1035            0 :             break;
    1036              :     }
    1037            0 :     return 1;
    1038              : }
    1039              : 
    1040            0 : static int r_Prefix_Step1(struct SN_env * z) {
    1041              :     int among_var;
    1042            0 :     z->bra = z->c;
    1043            0 :     if (z->c + 3 >= z->l || z->p[z->c + 3] >> 5 != 5 || !((188 >> (z->p[z->c + 3] & 0x1f)) & 1)) return 0;
    1044            0 :     among_var = find_among(z, a_4, 5, 0);
    1045            0 :     if (!among_var) return 0;
    1046            0 :     z->ket = z->c;
    1047            0 :     switch (among_var) {
    1048            0 :         case 1:
    1049            0 :             if (len_utf8(z->p) <= 3) return 0;
    1050              :             {
    1051            0 :                 int ret = slice_from_s(z, 2, s_54);
    1052            0 :                 if (ret < 0) return ret;
    1053              :             }
    1054            0 :             break;
    1055            0 :         case 2:
    1056            0 :             if (len_utf8(z->p) <= 3) return 0;
    1057              :             {
    1058            0 :                 int ret = slice_from_s(z, 2, s_55);
    1059            0 :                 if (ret < 0) return ret;
    1060              :             }
    1061            0 :             break;
    1062            0 :         case 3:
    1063            0 :             if (len_utf8(z->p) <= 3) return 0;
    1064              :             {
    1065            0 :                 int ret = slice_from_s(z, 2, s_56);
    1066            0 :                 if (ret < 0) return ret;
    1067              :             }
    1068            0 :             break;
    1069            0 :         case 4:
    1070            0 :             if (len_utf8(z->p) <= 3) return 0;
    1071              :             {
    1072            0 :                 int ret = slice_from_s(z, 2, s_57);
    1073            0 :                 if (ret < 0) return ret;
    1074              :             }
    1075            0 :             break;
    1076              :     }
    1077            0 :     return 1;
    1078              : }
    1079              : 
    1080            0 : static int r_Prefix_Step2(struct SN_env * z) {
    1081            0 :     z->bra = z->c;
    1082            0 :     if (z->c + 1 >= z->l || (z->p[z->c + 1] != 129 && z->p[z->c + 1] != 136)) return 0;
    1083            0 :     if (!find_among(z, a_5, 2, 0)) return 0;
    1084            0 :     z->ket = z->c;
    1085            0 :     if (len_utf8(z->p) <= 3) return 0;
    1086              :     {
    1087            0 :         int v_1 = z->c;
    1088            0 :         if (!(eq_s(z, 2, s_58))) goto lab0;
    1089            0 :         return 0;
    1090            0 :     lab0:
    1091            0 :         z->c = v_1;
    1092              :     }
    1093              :     {
    1094            0 :         int ret = slice_del(z);
    1095            0 :         if (ret < 0) return ret;
    1096              :     }
    1097            0 :     return 1;
    1098              : }
    1099              : 
    1100            0 : static int r_Prefix_Step3a_Noun(struct SN_env * z) {
    1101              :     int among_var;
    1102            0 :     z->bra = z->c;
    1103            0 :     if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0;
    1104            0 :     among_var = find_among(z, a_6, 4, 0);
    1105            0 :     if (!among_var) return 0;
    1106            0 :     z->ket = z->c;
    1107            0 :     switch (among_var) {
    1108            0 :         case 1:
    1109            0 :             if (len_utf8(z->p) <= 5) return 0;
    1110              :             {
    1111            0 :                 int ret = slice_del(z);
    1112            0 :                 if (ret < 0) return ret;
    1113              :             }
    1114            0 :             break;
    1115            0 :         case 2:
    1116            0 :             if (len_utf8(z->p) <= 4) return 0;
    1117              :             {
    1118            0 :                 int ret = slice_del(z);
    1119            0 :                 if (ret < 0) return ret;
    1120              :             }
    1121            0 :             break;
    1122              :     }
    1123            0 :     return 1;
    1124              : }
    1125              : 
    1126            0 : static int r_Prefix_Step3b_Noun(struct SN_env * z) {
    1127              :     int among_var;
    1128            0 :     z->bra = z->c;
    1129            0 :     if (z->c + 1 >= z->l || (z->p[z->c + 1] != 168 && z->p[z->c + 1] != 131)) return 0;
    1130            0 :     among_var = find_among(z, a_7, 4, 0);
    1131            0 :     if (!among_var) return 0;
    1132            0 :     z->ket = z->c;
    1133            0 :     switch (among_var) {
    1134            0 :         case 1:
    1135            0 :             if (len_utf8(z->p) <= 3) return 0;
    1136              :             {
    1137            0 :                 int ret = slice_del(z);
    1138            0 :                 if (ret < 0) return ret;
    1139              :             }
    1140            0 :             break;
    1141            0 :         case 2:
    1142            0 :             if (len_utf8(z->p) <= 3) return 0;
    1143              :             {
    1144            0 :                 int ret = slice_from_s(z, 2, s_59);
    1145            0 :                 if (ret < 0) return ret;
    1146              :             }
    1147            0 :             break;
    1148            0 :         case 3:
    1149            0 :             if (len_utf8(z->p) <= 3) return 0;
    1150              :             {
    1151            0 :                 int ret = slice_from_s(z, 2, s_60);
    1152            0 :                 if (ret < 0) return ret;
    1153              :             }
    1154            0 :             break;
    1155              :     }
    1156            0 :     return 1;
    1157              : }
    1158              : 
    1159            0 : static int r_Prefix_Step3_Verb(struct SN_env * z) {
    1160              :     int among_var;
    1161            0 :     z->bra = z->c;
    1162            0 :     among_var = find_among(z, a_8, 4, 0);
    1163            0 :     if (!among_var) return 0;
    1164            0 :     z->ket = z->c;
    1165            0 :     switch (among_var) {
    1166            0 :         case 1:
    1167            0 :             if (len_utf8(z->p) <= 4) return 0;
    1168              :             {
    1169            0 :                 int ret = slice_from_s(z, 2, s_61);
    1170            0 :                 if (ret < 0) return ret;
    1171              :             }
    1172            0 :             break;
    1173            0 :         case 2:
    1174            0 :             if (len_utf8(z->p) <= 4) return 0;
    1175              :             {
    1176            0 :                 int ret = slice_from_s(z, 2, s_62);
    1177            0 :                 if (ret < 0) return ret;
    1178              :             }
    1179            0 :             break;
    1180            0 :         case 3:
    1181            0 :             if (len_utf8(z->p) <= 4) return 0;
    1182              :             {
    1183            0 :                 int ret = slice_from_s(z, 2, s_63);
    1184            0 :                 if (ret < 0) return ret;
    1185              :             }
    1186            0 :             break;
    1187            0 :         case 4:
    1188            0 :             if (len_utf8(z->p) <= 4) return 0;
    1189              :             {
    1190            0 :                 int ret = slice_from_s(z, 2, s_64);
    1191            0 :                 if (ret < 0) return ret;
    1192              :             }
    1193            0 :             break;
    1194              :     }
    1195            0 :     return 1;
    1196              : }
    1197              : 
    1198            0 : static int r_Prefix_Step4_Verb(struct SN_env * z) {
    1199            0 :     z->bra = z->c;
    1200            0 :     if (z->c + 5 >= z->l || z->p[z->c + 5] != 170) return 0;
    1201            0 :     if (!find_among(z, a_9, 3, 0)) return 0;
    1202            0 :     z->ket = z->c;
    1203            0 :     if (len_utf8(z->p) <= 4) return 0;
    1204            0 :     ((SN_local *)z)->b_is_verb = 1;
    1205            0 :     ((SN_local *)z)->b_is_noun = 0;
    1206              :     {
    1207            0 :         int ret = slice_from_s(z, 6, s_65);
    1208            0 :         if (ret < 0) return ret;
    1209              :     }
    1210            0 :     return 1;
    1211              : }
    1212              : 
    1213            0 : static int r_Suffix_Noun_Step1a(struct SN_env * z) {
    1214              :     int among_var;
    1215            0 :     z->ket = z->c;
    1216            0 :     among_var = find_among_b(z, a_10, 10, 0);
    1217            0 :     if (!among_var) return 0;
    1218            0 :     z->bra = z->c;
    1219            0 :     switch (among_var) {
    1220            0 :         case 1:
    1221            0 :             if (len_utf8(z->p) < 4) return 0;
    1222              :             {
    1223            0 :                 int ret = slice_del(z);
    1224            0 :                 if (ret < 0) return ret;
    1225              :             }
    1226            0 :             break;
    1227            0 :         case 2:
    1228            0 :             if (len_utf8(z->p) < 5) return 0;
    1229              :             {
    1230            0 :                 int ret = slice_del(z);
    1231            0 :                 if (ret < 0) return ret;
    1232              :             }
    1233            0 :             break;
    1234            0 :         case 3:
    1235            0 :             if (len_utf8(z->p) < 6) return 0;
    1236              :             {
    1237            0 :                 int ret = slice_del(z);
    1238            0 :                 if (ret < 0) return ret;
    1239              :             }
    1240            0 :             break;
    1241              :     }
    1242            0 :     return 1;
    1243              : }
    1244              : 
    1245            0 : static int r_Suffix_Noun_Step1b(struct SN_env * z) {
    1246            0 :     z->ket = z->c;
    1247            0 :     if (!(eq_s_b(z, 2, s_66))) return 0;
    1248            0 :     z->bra = z->c;
    1249            0 :     if (len_utf8(z->p) <= 5) return 0;
    1250              :     {
    1251            0 :         int ret = slice_del(z);
    1252            0 :         if (ret < 0) return ret;
    1253              :     }
    1254            0 :     return 1;
    1255              : }
    1256              : 
    1257            0 : static int r_Suffix_Noun_Step2a(struct SN_env * z) {
    1258            0 :     z->ket = z->c;
    1259            0 :     if (!find_among_b(z, a_11, 3, 0)) return 0;
    1260            0 :     z->bra = z->c;
    1261            0 :     if (len_utf8(z->p) <= 4) return 0;
    1262              :     {
    1263            0 :         int ret = slice_del(z);
    1264            0 :         if (ret < 0) return ret;
    1265              :     }
    1266            0 :     return 1;
    1267              : }
    1268              : 
    1269            0 : static int r_Suffix_Noun_Step2b(struct SN_env * z) {
    1270            0 :     z->ket = z->c;
    1271            0 :     if (!(eq_s_b(z, 4, s_67))) return 0;
    1272            0 :     z->bra = z->c;
    1273            0 :     if (len_utf8(z->p) < 5) return 0;
    1274              :     {
    1275            0 :         int ret = slice_del(z);
    1276            0 :         if (ret < 0) return ret;
    1277              :     }
    1278            0 :     return 1;
    1279              : }
    1280              : 
    1281            0 : static int r_Suffix_Noun_Step2c1(struct SN_env * z) {
    1282            0 :     z->ket = z->c;
    1283            0 :     if (!(eq_s_b(z, 2, s_68))) return 0;
    1284            0 :     z->bra = z->c;
    1285            0 :     if (len_utf8(z->p) < 4) return 0;
    1286              :     {
    1287            0 :         int ret = slice_del(z);
    1288            0 :         if (ret < 0) return ret;
    1289              :     }
    1290            0 :     return 1;
    1291              : }
    1292              : 
    1293            0 : static int r_Suffix_Noun_Step2c2(struct SN_env * z) {
    1294            0 :     z->ket = z->c;
    1295            0 :     if (!(eq_s_b(z, 2, s_69))) return 0;
    1296            0 :     z->bra = z->c;
    1297            0 :     if (len_utf8(z->p) < 4) return 0;
    1298              :     {
    1299            0 :         int ret = slice_del(z);
    1300            0 :         if (ret < 0) return ret;
    1301              :     }
    1302            0 :     return 1;
    1303              : }
    1304              : 
    1305            0 : static int r_Suffix_Noun_Step3(struct SN_env * z) {
    1306            0 :     z->ket = z->c;
    1307            0 :     if (!(eq_s_b(z, 2, s_70))) return 0;
    1308            0 :     z->bra = z->c;
    1309            0 :     if (len_utf8(z->p) < 3) return 0;
    1310              :     {
    1311            0 :         int ret = slice_del(z);
    1312            0 :         if (ret < 0) return ret;
    1313              :     }
    1314            0 :     return 1;
    1315              : }
    1316              : 
    1317            0 : static int r_Suffix_Verb_Step1(struct SN_env * z) {
    1318              :     int among_var;
    1319            0 :     z->ket = z->c;
    1320            0 :     among_var = find_among_b(z, a_12, 12, 0);
    1321            0 :     if (!among_var) return 0;
    1322            0 :     z->bra = z->c;
    1323            0 :     switch (among_var) {
    1324            0 :         case 1:
    1325            0 :             if (len_utf8(z->p) < 4) return 0;
    1326              :             {
    1327            0 :                 int ret = slice_del(z);
    1328            0 :                 if (ret < 0) return ret;
    1329              :             }
    1330            0 :             break;
    1331            0 :         case 2:
    1332            0 :             if (len_utf8(z->p) < 5) return 0;
    1333              :             {
    1334            0 :                 int ret = slice_del(z);
    1335            0 :                 if (ret < 0) return ret;
    1336              :             }
    1337            0 :             break;
    1338            0 :         case 3:
    1339            0 :             if (len_utf8(z->p) < 6) return 0;
    1340              :             {
    1341            0 :                 int ret = slice_del(z);
    1342            0 :                 if (ret < 0) return ret;
    1343              :             }
    1344            0 :             break;
    1345              :     }
    1346            0 :     return 1;
    1347              : }
    1348              : 
    1349            0 : static int r_Suffix_Verb_Step2a(struct SN_env * z) {
    1350              :     int among_var;
    1351            0 :     z->ket = z->c;
    1352            0 :     among_var = find_among_b(z, a_13, 11, 0);
    1353            0 :     if (!among_var) return 0;
    1354            0 :     z->bra = z->c;
    1355            0 :     switch (among_var) {
    1356            0 :         case 1:
    1357            0 :             if (len_utf8(z->p) < 4) return 0;
    1358              :             {
    1359            0 :                 int ret = slice_del(z);
    1360            0 :                 if (ret < 0) return ret;
    1361              :             }
    1362            0 :             break;
    1363            0 :         case 2:
    1364            0 :             if (len_utf8(z->p) < 5) return 0;
    1365              :             {
    1366            0 :                 int ret = slice_del(z);
    1367            0 :                 if (ret < 0) return ret;
    1368              :             }
    1369            0 :             break;
    1370            0 :         case 3:
    1371            0 :             if (len_utf8(z->p) <= 5) return 0;
    1372              :             {
    1373            0 :                 int ret = slice_del(z);
    1374            0 :                 if (ret < 0) return ret;
    1375              :             }
    1376            0 :             break;
    1377            0 :         case 4:
    1378            0 :             if (len_utf8(z->p) < 6) return 0;
    1379              :             {
    1380            0 :                 int ret = slice_del(z);
    1381            0 :                 if (ret < 0) return ret;
    1382              :             }
    1383            0 :             break;
    1384              :     }
    1385            0 :     return 1;
    1386              : }
    1387              : 
    1388            0 : static int r_Suffix_Verb_Step2b(struct SN_env * z) {
    1389            0 :     z->ket = z->c;
    1390            0 :     if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 133 && z->p[z->c - 1] != 167)) return 0;
    1391            0 :     if (!find_among_b(z, a_14, 2, 0)) return 0;
    1392            0 :     z->bra = z->c;
    1393            0 :     if (len_utf8(z->p) < 5) return 0;
    1394              :     {
    1395            0 :         int ret = slice_del(z);
    1396            0 :         if (ret < 0) return ret;
    1397              :     }
    1398            0 :     return 1;
    1399              : }
    1400              : 
    1401            0 : static int r_Suffix_Verb_Step2c(struct SN_env * z) {
    1402              :     int among_var;
    1403            0 :     z->ket = z->c;
    1404            0 :     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 136) return 0;
    1405            0 :     among_var = find_among_b(z, a_15, 2, 0);
    1406            0 :     if (!among_var) return 0;
    1407            0 :     z->bra = z->c;
    1408            0 :     switch (among_var) {
    1409            0 :         case 1:
    1410            0 :             if (len_utf8(z->p) < 4) return 0;
    1411              :             {
    1412            0 :                 int ret = slice_del(z);
    1413            0 :                 if (ret < 0) return ret;
    1414              :             }
    1415            0 :             break;
    1416            0 :         case 2:
    1417            0 :             if (len_utf8(z->p) < 6) return 0;
    1418              :             {
    1419            0 :                 int ret = slice_del(z);
    1420            0 :                 if (ret < 0) return ret;
    1421              :             }
    1422            0 :             break;
    1423              :     }
    1424            0 :     return 1;
    1425              : }
    1426              : 
    1427            0 : static int r_Suffix_All_alef_maqsura(struct SN_env * z) {
    1428            0 :     z->ket = z->c;
    1429            0 :     if (!(eq_s_b(z, 2, s_71))) return 0;
    1430            0 :     z->bra = z->c;
    1431              :     {
    1432            0 :         int ret = slice_from_s(z, 2, s_72);
    1433            0 :         if (ret < 0) return ret;
    1434              :     }
    1435            0 :     return 1;
    1436              : }
    1437              : 
    1438            0 : extern int arabic_UTF_8_stem(struct SN_env * z) {
    1439            0 :     ((SN_local *)z)->b_is_noun = 1;
    1440            0 :     ((SN_local *)z)->b_is_verb = 1;
    1441            0 :     ((SN_local *)z)->b_is_defined = 0;
    1442              :     {
    1443            0 :         int v_1 = z->c;
    1444              :         {
    1445            0 :             int ret = r_Checks1(z);
    1446            0 :             if (ret < 0) return ret;
    1447              :         }
    1448            0 :         z->c = v_1;
    1449              :     }
    1450              :     {
    1451            0 :         int ret = r_Normalize_pre(z);
    1452            0 :         if (ret < 0) return ret;
    1453              :     }
    1454            0 :     z->lb = z->c; z->c = z->l;
    1455              :     {
    1456            0 :         int v_2 = z->l - z->c;
    1457              :         do {
    1458            0 :             int v_3 = z->l - z->c;
    1459            0 :             if (!((SN_local *)z)->b_is_verb) goto lab1;
    1460              :             do {
    1461            0 :                 int v_4 = z->l - z->c;
    1462              :                 {
    1463            0 :                     int v_5 = 1;
    1464            0 :                     while (1) {
    1465            0 :                         int v_6 = z->l - z->c;
    1466              :                         {
    1467            0 :                             int ret = r_Suffix_Verb_Step1(z);
    1468            0 :                             if (ret == 0) goto lab3;
    1469            0 :                             if (ret < 0) return ret;
    1470              :                         }
    1471            0 :                         v_5--;
    1472            0 :                         continue;
    1473            0 :                     lab3:
    1474            0 :                         z->c = z->l - v_6;
    1475            0 :                         break;
    1476              :                     }
    1477            0 :                     if (v_5 > 0) goto lab2;
    1478              :                 }
    1479              :                 do {
    1480            0 :                     int v_7 = z->l - z->c;
    1481              :                     {
    1482            0 :                         int ret = r_Suffix_Verb_Step2a(z);
    1483            0 :                         if (ret == 0) goto lab4;
    1484            0 :                         if (ret < 0) return ret;
    1485              :                     }
    1486            0 :                     break;
    1487            0 :                 lab4:
    1488            0 :                     z->c = z->l - v_7;
    1489              :                     {
    1490            0 :                         int ret = r_Suffix_Verb_Step2c(z);
    1491            0 :                         if (ret == 0) goto lab5;
    1492            0 :                         if (ret < 0) return ret;
    1493              :                     }
    1494            0 :                     break;
    1495            0 :                 lab5:
    1496            0 :                     z->c = z->l - v_7;
    1497              :                     {
    1498            0 :                         int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
    1499            0 :                         if (ret < 0) goto lab2;
    1500            0 :                         z->c = ret;
    1501              :                     }
    1502              :                 } while (0);
    1503            0 :                 break;
    1504            0 :             lab2:
    1505            0 :                 z->c = z->l - v_4;
    1506              :                 {
    1507            0 :                     int ret = r_Suffix_Verb_Step2b(z);
    1508            0 :                     if (ret == 0) goto lab6;
    1509            0 :                     if (ret < 0) return ret;
    1510              :                 }
    1511            0 :                 break;
    1512            0 :             lab6:
    1513            0 :                 z->c = z->l - v_4;
    1514              :                 {
    1515            0 :                     int ret = r_Suffix_Verb_Step2a(z);
    1516            0 :                     if (ret == 0) goto lab1;
    1517            0 :                     if (ret < 0) return ret;
    1518              :                 }
    1519              :             } while (0);
    1520            0 :             break;
    1521            0 :         lab1:
    1522            0 :             z->c = z->l - v_3;
    1523            0 :             if (!((SN_local *)z)->b_is_noun) goto lab7;
    1524              :             {
    1525            0 :                 int v_8 = z->l - z->c;
    1526              :                 do {
    1527            0 :                     int v_9 = z->l - z->c;
    1528              :                     {
    1529            0 :                         int ret = r_Suffix_Noun_Step2c2(z);
    1530            0 :                         if (ret == 0) goto lab9;
    1531            0 :                         if (ret < 0) return ret;
    1532              :                     }
    1533            0 :                     break;
    1534            0 :                 lab9:
    1535            0 :                     z->c = z->l - v_9;
    1536            0 :                     if (((SN_local *)z)->b_is_defined) goto lab10;
    1537              :                     {
    1538            0 :                         int ret = r_Suffix_Noun_Step1a(z);
    1539            0 :                         if (ret == 0) goto lab10;
    1540            0 :                         if (ret < 0) return ret;
    1541              :                     }
    1542              :                     do {
    1543            0 :                         int v_10 = z->l - z->c;
    1544              :                         {
    1545            0 :                             int ret = r_Suffix_Noun_Step2a(z);
    1546            0 :                             if (ret == 0) goto lab11;
    1547            0 :                             if (ret < 0) return ret;
    1548              :                         }
    1549            0 :                         break;
    1550            0 :                     lab11:
    1551            0 :                         z->c = z->l - v_10;
    1552              :                         {
    1553            0 :                             int ret = r_Suffix_Noun_Step2b(z);
    1554            0 :                             if (ret == 0) goto lab12;
    1555            0 :                             if (ret < 0) return ret;
    1556              :                         }
    1557            0 :                         break;
    1558            0 :                     lab12:
    1559            0 :                         z->c = z->l - v_10;
    1560              :                         {
    1561            0 :                             int ret = r_Suffix_Noun_Step2c1(z);
    1562            0 :                             if (ret == 0) goto lab13;
    1563            0 :                             if (ret < 0) return ret;
    1564              :                         }
    1565            0 :                         break;
    1566            0 :                     lab13:
    1567            0 :                         z->c = z->l - v_10;
    1568              :                         {
    1569            0 :                             int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
    1570            0 :                             if (ret < 0) goto lab10;
    1571            0 :                             z->c = ret;
    1572              :                         }
    1573              :                     } while (0);
    1574            0 :                     break;
    1575            0 :                 lab10:
    1576            0 :                     z->c = z->l - v_9;
    1577              :                     {
    1578            0 :                         int ret = r_Suffix_Noun_Step1b(z);
    1579            0 :                         if (ret == 0) goto lab14;
    1580            0 :                         if (ret < 0) return ret;
    1581              :                     }
    1582              :                     do {
    1583            0 :                         int v_11 = z->l - z->c;
    1584              :                         {
    1585            0 :                             int ret = r_Suffix_Noun_Step2a(z);
    1586            0 :                             if (ret == 0) goto lab15;
    1587            0 :                             if (ret < 0) return ret;
    1588              :                         }
    1589            0 :                         break;
    1590            0 :                     lab15:
    1591            0 :                         z->c = z->l - v_11;
    1592              :                         {
    1593            0 :                             int ret = r_Suffix_Noun_Step2b(z);
    1594            0 :                             if (ret == 0) goto lab16;
    1595            0 :                             if (ret < 0) return ret;
    1596              :                         }
    1597            0 :                         break;
    1598            0 :                     lab16:
    1599            0 :                         z->c = z->l - v_11;
    1600              :                         {
    1601            0 :                             int ret = r_Suffix_Noun_Step2c1(z);
    1602            0 :                             if (ret == 0) goto lab14;
    1603            0 :                             if (ret < 0) return ret;
    1604              :                         }
    1605              :                     } while (0);
    1606            0 :                     break;
    1607            0 :                 lab14:
    1608            0 :                     z->c = z->l - v_9;
    1609            0 :                     if (((SN_local *)z)->b_is_defined) goto lab17;
    1610              :                     {
    1611            0 :                         int ret = r_Suffix_Noun_Step2a(z);
    1612            0 :                         if (ret == 0) goto lab17;
    1613            0 :                         if (ret < 0) return ret;
    1614              :                     }
    1615            0 :                     break;
    1616            0 :                 lab17:
    1617            0 :                     z->c = z->l - v_9;
    1618              :                     {
    1619            0 :                         int ret = r_Suffix_Noun_Step2b(z);
    1620            0 :                         if (ret == 0) { z->c = z->l - v_8; goto lab8; }
    1621            0 :                         if (ret < 0) return ret;
    1622              :                     }
    1623              :                 } while (0);
    1624            0 :             lab8:
    1625              :                 ;
    1626              :             }
    1627              :             {
    1628            0 :                 int ret = r_Suffix_Noun_Step3(z);
    1629            0 :                 if (ret == 0) goto lab7;
    1630            0 :                 if (ret < 0) return ret;
    1631              :             }
    1632            0 :             break;
    1633            0 :         lab7:
    1634            0 :             z->c = z->l - v_3;
    1635              :             {
    1636            0 :                 int ret = r_Suffix_All_alef_maqsura(z);
    1637            0 :                 if (ret == 0) goto lab0;
    1638            0 :                 if (ret < 0) return ret;
    1639              :             }
    1640              :         } while (0);
    1641            0 :     lab0:
    1642            0 :         z->c = z->l - v_2;
    1643              :     }
    1644            0 :     z->c = z->lb;
    1645              :     {
    1646            0 :         int v_12 = z->c;
    1647              :         {
    1648            0 :             int v_13 = z->c;
    1649              :             {
    1650            0 :                 int ret = r_Prefix_Step1(z);
    1651            0 :                 if (ret == 0) { z->c = v_13; goto lab19; }
    1652            0 :                 if (ret < 0) return ret;
    1653              :             }
    1654            0 :         lab19:
    1655              :             ;
    1656              :         }
    1657              :         {
    1658            0 :             int v_14 = z->c;
    1659              :             {
    1660            0 :                 int ret = r_Prefix_Step2(z);
    1661            0 :                 if (ret == 0) { z->c = v_14; goto lab20; }
    1662            0 :                 if (ret < 0) return ret;
    1663              :             }
    1664            0 :         lab20:
    1665              :             ;
    1666              :         }
    1667              :         do {
    1668            0 :             int v_15 = z->c;
    1669              :             {
    1670            0 :                 int ret = r_Prefix_Step3a_Noun(z);
    1671            0 :                 if (ret == 0) goto lab21;
    1672            0 :                 if (ret < 0) return ret;
    1673              :             }
    1674            0 :             break;
    1675            0 :         lab21:
    1676            0 :             z->c = v_15;
    1677            0 :             if (!((SN_local *)z)->b_is_noun) goto lab22;
    1678              :             {
    1679            0 :                 int ret = r_Prefix_Step3b_Noun(z);
    1680            0 :                 if (ret == 0) goto lab22;
    1681            0 :                 if (ret < 0) return ret;
    1682              :             }
    1683            0 :             break;
    1684            0 :         lab22:
    1685            0 :             z->c = v_15;
    1686            0 :             if (!((SN_local *)z)->b_is_verb) goto lab18;
    1687              :             {
    1688            0 :                 int v_16 = z->c;
    1689              :                 {
    1690            0 :                     int ret = r_Prefix_Step3_Verb(z);
    1691            0 :                     if (ret == 0) { z->c = v_16; goto lab23; }
    1692            0 :                     if (ret < 0) return ret;
    1693              :                 }
    1694            0 :             lab23:
    1695              :                 ;
    1696              :             }
    1697              :             {
    1698            0 :                 int ret = r_Prefix_Step4_Verb(z);
    1699            0 :                 if (ret == 0) goto lab18;
    1700            0 :                 if (ret < 0) return ret;
    1701              :             }
    1702              :         } while (0);
    1703            0 :     lab18:
    1704            0 :         z->c = v_12;
    1705              :     }
    1706              :     {
    1707            0 :         int ret = r_Normalize_post(z);
    1708            0 :         if (ret < 0) return ret;
    1709              :     }
    1710            0 :     return 1;
    1711              : }
    1712              : 
    1713            0 : extern struct SN_env * arabic_UTF_8_create_env(void) {
    1714            0 :     struct SN_env * z = SN_new_env(sizeof(SN_local));
    1715            0 :     if (z) {
    1716            0 :         ((SN_local *)z)->b_is_defined = 0;
    1717            0 :         ((SN_local *)z)->b_is_verb = 0;
    1718            0 :         ((SN_local *)z)->b_is_noun = 0;
    1719              :     }
    1720            0 :     return z;
    1721              : }
    1722              : 
    1723            0 : extern void arabic_UTF_8_close_env(struct SN_env * z) {
    1724            0 :     SN_delete_env(z);
    1725            0 : }
    1726              : 
        

Generated by: LCOV version 2.0-1