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

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

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