Update to latest Snowball sources.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 19 Feb 2025 02:13:46 +0000 (21:13 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 19 Feb 2025 02:13:54 +0000 (21:13 -0500)
It's been some time since we did this, partly because the upstream
snowball project hasn't formally tagged a new release since 2021.
The main motivation for doing it now is to absorb a bug fix
(their commit e322673a841d9abd69994ae8cd20e191090b6ef4), which
prevents a null pointer dereference crash if SN_create_env() gets
a malloc failure at just the wrong point.  We'll patch the back
branches with only that change, but we might as well do the full
sync dance on HEAD.

Aside from a bunch of mostly-minor tweaks to existing stemmers, this
update adds a new stemmer for Estonian.  It also removes the existing
stemmer for Romanian using ISO-8859-2 encoding.  Upstream apparently
concluded that ISO-8859-2 doesn't provide an adequate representation
of some Romanian characters, and the UTF-8 implementation should be
used instead.

While at it, update the README's instructions for doing a sync,
which have not been adjusted during the addition of meson tooling.

Thanks to Maksim Korotkov for discovering the null-pointer
bug and submitting the fix to upstream snowball.

Reported-by: Maksim Korotkov <m.korotkov@postgrespro.ru>
Discussion: https://postgr.es/m/1d1a46-67ab1000-21-80c451@83151435

61 files changed:
doc/src/sgml/textsearch.sgml
src/backend/snowball/Makefile
src/backend/snowball/README
src/backend/snowball/dict_snowball.c
src/backend/snowball/libstemmer/api.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_basque.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_catalan.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c
src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c
src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c [deleted file]
src/backend/snowball/libstemmer/stem_KOI8_R_russian.c
src/backend/snowball/libstemmer/stem_UTF_8_arabic.c
src/backend/snowball/libstemmer/stem_UTF_8_armenian.c
src/backend/snowball/libstemmer/stem_UTF_8_basque.c
src/backend/snowball/libstemmer/stem_UTF_8_catalan.c
src/backend/snowball/libstemmer/stem_UTF_8_danish.c
src/backend/snowball/libstemmer/stem_UTF_8_dutch.c
src/backend/snowball/libstemmer/stem_UTF_8_english.c
src/backend/snowball/libstemmer/stem_UTF_8_estonian.c [new file with mode: 0644]
src/backend/snowball/libstemmer/stem_UTF_8_finnish.c
src/backend/snowball/libstemmer/stem_UTF_8_french.c
src/backend/snowball/libstemmer/stem_UTF_8_german.c
src/backend/snowball/libstemmer/stem_UTF_8_greek.c
src/backend/snowball/libstemmer/stem_UTF_8_hindi.c
src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c
src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c
src/backend/snowball/libstemmer/stem_UTF_8_irish.c
src/backend/snowball/libstemmer/stem_UTF_8_italian.c
src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c
src/backend/snowball/libstemmer/stem_UTF_8_nepali.c
src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c
src/backend/snowball/libstemmer/stem_UTF_8_porter.c
src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c
src/backend/snowball/libstemmer/stem_UTF_8_romanian.c
src/backend/snowball/libstemmer/stem_UTF_8_russian.c
src/backend/snowball/libstemmer/stem_UTF_8_serbian.c
src/backend/snowball/libstemmer/stem_UTF_8_spanish.c
src/backend/snowball/libstemmer/stem_UTF_8_swedish.c
src/backend/snowball/libstemmer/stem_UTF_8_tamil.c
src/backend/snowball/libstemmer/stem_UTF_8_turkish.c
src/backend/snowball/libstemmer/stem_UTF_8_yiddish.c
src/backend/snowball/libstemmer/utilities.c
src/backend/snowball/meson.build
src/backend/snowball/snowball_create.pl
src/bin/initdb/initdb.c
src/include/snowball/libstemmer/header.h
src/include/snowball/libstemmer/stem_ISO_8859_2_romanian.h [deleted file]
src/include/snowball/libstemmer/stem_UTF_8_estonian.h [new file with mode: 0644]

index bde5f391e5c06c1f5e19b648a1954008f1170a1f..d171f8da8011650efcd59ab9be82d841e26b2782 100644 (file)
@@ -3852,6 +3852,7 @@ Parser: "pg_catalog.default"
  pg_catalog | danish_stem     | snowball stemmer for danish language
  pg_catalog | dutch_stem      | snowball stemmer for dutch language
  pg_catalog | english_stem    | snowball stemmer for english language
+ pg_catalog | estonian_stem   | snowball stemmer for estonian language
  pg_catalog | finnish_stem    | snowball stemmer for finnish language
  pg_catalog | french_stem     | snowball stemmer for french language
  pg_catalog | german_stem     | snowball stemmer for german language
index efc4300eb976dec30313bfdffabbcbf1a2746783..0398c9bb14ceb1a6f8d7fd1bb62aeec90fdaf994 100644 (file)
@@ -40,7 +40,6 @@ OBJS += \
    stem_ISO_8859_1_spanish.o \
    stem_ISO_8859_1_swedish.o \
    stem_ISO_8859_2_hungarian.o \
-   stem_ISO_8859_2_romanian.o \
    stem_KOI8_R_russian.o \
    stem_UTF_8_arabic.o \
    stem_UTF_8_armenian.o \
@@ -49,6 +48,7 @@ OBJS += \
    stem_UTF_8_danish.o \
    stem_UTF_8_dutch.o \
    stem_UTF_8_english.o \
+   stem_UTF_8_estonian.o \
    stem_UTF_8_finnish.o \
    stem_UTF_8_french.o \
    stem_UTF_8_german.o \
index 675baff5c9704aaca5ef44fa16ef96ddcca630bc..2e41bee11423ea602106451960494c5f97e52030 100644 (file)
@@ -29,8 +29,8 @@ We choose to include the derived files in the PostgreSQL distribution
 because most installations will not have the Snowball compiler available.
 
 We are currently synced with the Snowball git commit
-48a67a2831005f49c48ec29a5837640e23e54e6b (tag v2.2.0)
-of 2021-11-10.
+d19326ac6c1b9a417fc872f7c2f845265a5e9ece
+of 2025-02-19.
 
 To update the PostgreSQL sources from a new Snowball version:
 
@@ -44,8 +44,8 @@ do
     sed 's|\.\./runtime/header\.h|header.h|' $f >libstemmer/`basename $f`
 done
 
-Do not copy stemmers that are listed in libstemmer/modules.txt as
-nonstandard, such as "german2" or "lovins".
+Do not copy stemmers that are listed in their libstemmer/modules.txt as
+nonstandard, such as "kraaij_pohlmann" or "lovins".
 
 2. Copy the *.c files in snowball/runtime/ to
 src/backend/snowball/libstemmer, and edit them to remove direct inclusions
@@ -55,14 +55,18 @@ is sensitive to largefile compilation options.)
 
 3. Copy the *.h files in snowball/src_c/ and snowball/runtime/
 to src/include/snowball/libstemmer.  At this writing the header files
-do not require any changes.
+do not require any changes.  Again, omit the *.h files for nonstandard
+stemmers.
 
 4. Check whether any stemmer modules have been added or removed.  If so, edit
-the OBJS list in Makefile, the list of #include's in dict_snowball.c, and the
-stemmer_modules[] table in dict_snowball.c, as well as the list in the
-documentation in textsearch.sgml.  You might also need to change
-the LANGUAGES list in Makefile and tsearch_config_languages in initdb.c.
+the OBJS list in Makefile, the dict_snowball_sources list in meson.build,
+the list of #include's and the stemmer_modules[] table in dict_snowball.c,
+and the sample \dFd output in the documentation in textsearch.sgml.
+You might also need to change the @languages array in snowball_create.pl
+and the tsearch_config_languages[] table in initdb.c.
 
 5. The various stopword files in stopwords/ must be downloaded
 individually from pages on the snowballstem.org website.
 Be careful that these files must be stored in UTF-8 encoding.
+Update the stop_files list in Makefile if any are added or removed
+(the meson tooling does not require adjustment for that, though).
index 5197968e86002cabff8400c2755f6c096fda71d4..4c9cafbef35385ae09d861561793752e0475b882 100644 (file)
@@ -45,7 +45,6 @@
 #include "snowball/libstemmer/stem_ISO_8859_1_spanish.h"
 #include "snowball/libstemmer/stem_ISO_8859_1_swedish.h"
 #include "snowball/libstemmer/stem_ISO_8859_2_hungarian.h"
-#include "snowball/libstemmer/stem_ISO_8859_2_romanian.h"
 #include "snowball/libstemmer/stem_KOI8_R_russian.h"
 #include "snowball/libstemmer/stem_UTF_8_arabic.h"
 #include "snowball/libstemmer/stem_UTF_8_armenian.h"
@@ -54,6 +53,7 @@
 #include "snowball/libstemmer/stem_UTF_8_danish.h"
 #include "snowball/libstemmer/stem_UTF_8_dutch.h"
 #include "snowball/libstemmer/stem_UTF_8_english.h"
+#include "snowball/libstemmer/stem_UTF_8_estonian.h"
 #include "snowball/libstemmer/stem_UTF_8_finnish.h"
 #include "snowball/libstemmer/stem_UTF_8_french.h"
 #include "snowball/libstemmer/stem_UTF_8_german.h"
@@ -119,7 +119,6 @@ static const stemmer_module stemmer_modules[] =
    STEMMER_MODULE(spanish, PG_LATIN1, ISO_8859_1),
    STEMMER_MODULE(swedish, PG_LATIN1, ISO_8859_1),
    STEMMER_MODULE(hungarian, PG_LATIN2, ISO_8859_2),
-   STEMMER_MODULE(romanian, PG_LATIN2, ISO_8859_2),
    STEMMER_MODULE(russian, PG_KOI8R, KOI8_R),
    STEMMER_MODULE(arabic, PG_UTF8, UTF_8),
    STEMMER_MODULE(armenian, PG_UTF8, UTF_8),
@@ -128,6 +127,7 @@ static const stemmer_module stemmer_modules[] =
    STEMMER_MODULE(danish, PG_UTF8, UTF_8),
    STEMMER_MODULE(dutch, PG_UTF8, UTF_8),
    STEMMER_MODULE(english, PG_UTF8, UTF_8),
+   STEMMER_MODULE(estonian, PG_UTF8, UTF_8),
    STEMMER_MODULE(finnish, PG_UTF8, UTF_8),
    STEMMER_MODULE(french, PG_UTF8, UTF_8),
    STEMMER_MODULE(german, PG_UTF8, UTF_8),
index 375938e6d13fdfa106b0f330ef38916d10d61878..358f5633b28fea5a45f008b74f161cc0ca5e0010 100644 (file)
@@ -34,7 +34,7 @@ error:
 extern void SN_close_env(struct SN_env * z, int S_size)
 {
     if (z == NULL) return;
-    if (S_size)
+    if (z->S)
     {
         int i;
         for (i = 0; i < S_size; i++)
index 5089234ade4d3e4123d8ecb6a80efa7f6b7808fc..ec2d4e7482eccddf2a5b08a779e13557d643b82d 100644 (file)
@@ -912,7 +912,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (in_grouping(z, g_v, 97, 117, 0)) goto lab2;
             {   int c3 = z->c;
                 if (out_grouping(z, g_v, 97, 117, 0)) goto lab4;
-                {   
+
+                {
                     int ret = out_grouping(z, g_v, 97, 117, 1);
                     if (ret < 0) goto lab4;
                     z->c += ret;
@@ -921,7 +922,8 @@ static int r_mark_regions(struct SN_env * z) {
             lab4:
                 z->c = c3;
                 if (in_grouping(z, g_v, 97, 117, 0)) goto lab2;
-                {   
+
+                {
                     int ret = in_grouping(z, g_v, 97, 117, 1);
                     if (ret < 0) goto lab2;
                     z->c += ret;
@@ -934,7 +936,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (out_grouping(z, g_v, 97, 117, 0)) goto lab0;
             {   int c4 = z->c;
                 if (out_grouping(z, g_v, 97, 117, 0)) goto lab6;
-                {   
+
+                {
                     int ret = out_grouping(z, g_v, 97, 117, 1);
                     if (ret < 0) goto lab6;
                     z->c += ret;
@@ -955,23 +958,27 @@ static int r_mark_regions(struct SN_env * z) {
         z->c = c1;
     }
     {   int c5 = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
@@ -984,18 +991,15 @@ static int r_mark_regions(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_aditzak(struct SN_env * z) {
@@ -1003,7 +1007,7 @@ static int r_aditzak(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((70566434 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_0, 109);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1046,7 +1050,7 @@ static int r_izenak(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((71162402 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_1, 295);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1117,7 +1121,7 @@ static int r_adjetiboak(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((35362 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_2, 19);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1138,7 +1142,7 @@ static int r_adjetiboak(struct SN_env * z) {
 }
 
 extern int basque_ISO_8859_1_stem(struct SN_env * z) {
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index bdd3791541c7e3561138c9c864ba9671d28ca633..f2710534d62749ad7bb2d6020333ba01bc6bce6c 100644 (file)
@@ -1184,23 +1184,27 @@ static int r_mark_regions(struct SN_env * z) {
     z->I[1] = z->l;
     z->I[0] = z->l;
     {   int c1 = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
@@ -1218,7 +1222,6 @@ static int r_cleaning(struct SN_env * z) {
         int c1 = z->c;
         z->bra = z->c;
         among_var = find_among(z, a_0, 13);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
@@ -1265,19 +1268,17 @@ static int r_cleaning(struct SN_env * z) {
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_attached_pronoun(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1634850 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_1, 39))) return 0;
+    if (!find_among_b(z, a_1, 39)) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -1292,7 +1293,7 @@ static int r_standard_suffix(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_2, 200);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1343,7 +1344,7 @@ static int r_verb_suffix(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_3, 283);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1370,7 +1371,7 @@ static int r_residual_suffix(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_4, 22);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1394,7 +1395,7 @@ static int r_residual_suffix(struct SN_env * z) {
 }
 
 extern int catalan_ISO_8859_1_stem(struct SN_env * z) {
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index cb3df46b489045a29c27f4e102a3484c4889bbe5..372902d495c7b1861142ffdec2a08d4c96d83e92 100644 (file)
@@ -141,15 +141,17 @@ z->c = z->c + 3;
         z->I[0] = z->c;
         z->c = c_test1;
     }
+
     if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0;
-    {   
+
+    {
         int ret = in_grouping(z, g_v, 97, 248, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
     z->I[1] = z->c;
-    
-    if (!(z->I[1] < z->I[0])) goto lab0;
+
+    if (z->I[1] >= z->I[0]) goto lab0;
     z->I[1] = z->I[0];
 lab0:
     return 1;
@@ -164,7 +166,7 @@ static int r_main_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
         among_var = find_among_b(z, a_0, 32);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -192,7 +194,7 @@ static int r_consonant_pair(struct SN_env * z) {
             mlimit2 = z->lb; z->lb = z->I[1];
             z->ket = z->c;
             if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; }
-            if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
+            if (!find_among_b(z, a_1, 4)) { z->lb = mlimit2; return 0; }
             z->bra = z->c;
             z->lb = mlimit2;
         }
@@ -227,7 +229,7 @@ static int r_other_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; }
         among_var = find_among_b(z, a_2, 5);
-        if (!(among_var)) { z->lb = mlimit2; return 0; }
+        if (!among_var) { z->lb = mlimit2; return 0; }
         z->bra = z->c;
         z->lb = mlimit2;
     }
index efb8b60c7f69d456cd09094d7b2514ceda23db94..d2bc1baebef1020e33e5ad51f9e40b0a2ac84a54 100644 (file)
@@ -152,7 +152,6 @@ static int r_prelude(struct SN_env * z) {
             z->bra = z->c;
             if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else
             among_var = find_among(z, a_0, 11);
-            if (!(among_var)) goto lab0;
             z->ket = z->c;
             switch (among_var) {
                 case 1:
@@ -244,34 +243,44 @@ static int r_prelude(struct SN_env * z) {
 }
 
 static int r_mark_regions(struct SN_env * z) {
+    z->I[2] = z->l;
     z->I[1] = z->l;
-    z->I[0] = z->l;
-    {   
+    {   int c_test1 = z->c;
+z->c = z->c + 3;
+        if (z->c > z->l) return 0;
+        z->I[0] = z->c;
+        z->c = c_test1;
+    }
+
+    {
         int ret = out_grouping(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {   
+
+    {
         int ret = in_grouping(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[1] = z->c;
-    
-    if (!(z->I[1] < 3)) goto lab0;
-    z->I[1] = 3;
+    z->I[2] = z->c;
+
+    if (z->I[2] >= z->I[0]) goto lab0;
+    z->I[2] = z->I[0];
 lab0:
-    {   
+
+    {
         int ret = out_grouping(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {   
+
+    {
         int ret = in_grouping(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[0] = z->c;
+    z->I[1] = z->c;
     return 1;
 }
 
@@ -282,7 +291,6 @@ static int r_postlude(struct SN_env * z) {
         z->bra = z->c;
         if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
         among_var = find_among(z, a_1, 3);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
@@ -309,19 +317,17 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_undouble(struct SN_env * z) {
     {   int m_test1 = z->l - z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-        if (!(find_among_b(z, a_2, 3))) return 0;
+        if (!find_among_b(z, a_2, 3)) return 0;
         z->c = z->l - m_test1;
     }
     z->ket = z->c;
@@ -335,7 +341,7 @@ static int r_undouble(struct SN_env * z) {
 }
 
 static int r_e_ending(struct SN_env * z) {
-    z->I[2] = 0;
+    z->I[3] = 0;
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
     z->c--;
@@ -350,7 +356,7 @@ static int r_e_ending(struct SN_env * z) {
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    z->I[2] = 1;
+    z->I[3] = 1;
     {   int ret = r_undouble(z);
         if (ret <= 0) return ret;
     }
@@ -386,7 +392,7 @@ static int r_standard_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
         among_var = find_among_b(z, a_3, 5);
-        if (!(among_var)) goto lab0;
+        if (!among_var) goto lab0;
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -456,7 +462,7 @@ static int r_standard_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
         among_var = find_among_b(z, a_4, 6);
-        if (!(among_var)) goto lab3;
+        if (!among_var) goto lab3;
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -538,7 +544,7 @@ static int r_standard_suffix(struct SN_env * z) {
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
-                if (!(z->I[2])) goto lab3;
+                if (!(z->I[3])) goto lab3;
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
@@ -551,7 +557,7 @@ static int r_standard_suffix(struct SN_env * z) {
         if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab8;
         {   int m_test10 = z->l - z->c;
             if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8;
-            if (!(find_among_b(z, a_5, 4))) goto lab8;
+            if (!find_among_b(z, a_5, 4)) goto lab8;
             if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab8;
             z->c = z->l - m_test10;
         }
@@ -583,7 +589,7 @@ extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
     }
     z->lb = z->c; z->c = z->l;
 
-    
+
     {   int ret = r_standard_suffix(z);
         if (ret < 0) return ret;
     }
@@ -597,7 +603,7 @@ extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
     return 1;
 }
 
-extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
+extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 4); }
 
 extern void dutch_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index eac624ea272b928bf1f017eae9fca1b8765d3de0..ac36c163f93121a8aeb094e1c970982f528406f1 100644 (file)
@@ -310,6 +310,8 @@ static const struct among a_10[18] =
 { 4, s_10_17, -1, 8, 0}
 };
 
+static const unsigned char g_aeo[] = { 17, 64 };
+
 static const unsigned char g_v[] = { 17, 65, 16, 1 };
 
 static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
@@ -418,16 +420,18 @@ static int r_mark_regions(struct SN_env * z) {
     {   int c1 = z->c;
         {   int c2 = z->c;
             if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2;
-            if (!(find_among(z, a_0, 3))) goto lab2;
+            if (!find_among(z, a_0, 3)) goto lab2;
             goto lab1;
         lab2:
             z->c = c2;
-            {   
+
+            {
                 int ret = out_grouping(z, g_v, 97, 121, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
             }
-            {   
+
+            {
                 int ret = in_grouping(z, g_v, 97, 121, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
@@ -435,12 +439,14 @@ static int r_mark_regions(struct SN_env * z) {
         }
     lab1:
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
@@ -469,13 +475,11 @@ lab0:
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_Step_1a(struct SN_env * z) {
@@ -483,7 +487,7 @@ static int r_Step_1a(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
         if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; }
-        if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; }
+        if (!find_among_b(z, a_1, 3)) { z->c = z->l - m1; goto lab0; }
         z->bra = z->c;
         {   int ret = slice_del(z);
             if (ret < 0) return ret;
@@ -494,7 +498,7 @@ static int r_Step_1a(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0;
     among_var = find_among_b(z, a_2, 6);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -521,7 +525,8 @@ z->c = z->c - 2;
         case 3:
             if (z->c <= z->lb) return 0;
             z->c--;
-            {   
+
+            {
                 int ret = out_grouping_b(z, g_v, 97, 121, 1);
                 if (ret < 0) return 0;
                 z->c -= ret;
@@ -539,7 +544,7 @@ static int r_Step_1b(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_4, 6);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -552,7 +557,8 @@ static int r_Step_1b(struct SN_env * z) {
             break;
         case 2:
             {   int m_test1 = z->l - z->c;
-                {   
+
+                {
                     int ret = out_grouping_b(z, g_v, 97, 121, 1);
                     if (ret < 0) return 0;
                     z->c -= ret;
@@ -562,47 +568,49 @@ static int r_Step_1b(struct SN_env * z) {
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
+            z->ket = z->c;
+            z->bra = z->c;
             {   int m_test2 = z->l - z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
                 among_var = find_among_b(z, a_3, 13);
-                if (!(among_var)) return 0;
-                z->c = z->l - m_test2;
-            }
-            switch (among_var) {
-                case 1:
-                    {   int ret;
-                        {   int saved_c = z->c;
-                            ret = insert_s(z, z->c, z->c, 1, s_6);
-                            z->c = saved_c;
+                switch (among_var) {
+                    case 1:
+                        {   int ret = slice_from_s(z, 1, s_6);
+                            if (ret < 0) return ret;
                         }
-                        if (ret < 0) return ret;
-                    }
-                    break;
-                case 2:
-                    z->ket = z->c;
-                    if (z->c <= z->lb) return 0;
-                    z->c--;
-                    z->bra = z->c;
-                    {   int ret = slice_del(z);
-                        if (ret < 0) return ret;
-                    }
-                    break;
-                case 3:
-                    if (z->c != z->I[1]) return 0;
-                    {   int m_test3 = z->l - z->c;
-                        {   int ret = r_shortv(z);
-                            if (ret <= 0) return ret;
+                        return 0;
+                        break;
+                    case 2:
+                        {   int m3 = z->l - z->c; (void)m3;
+                            if (in_grouping_b(z, g_aeo, 97, 111, 0)) goto lab0;
+                            if (z->c > z->lb) goto lab0;
+                            return 0;
+                        lab0:
+                            z->c = z->l - m3;
                         }
-                        z->c = z->l - m_test3;
-                    }
-                    {   int ret;
-                        {   int saved_c = z->c;
-                            ret = insert_s(z, z->c, z->c, 1, s_7);
-                            z->c = saved_c;
+                        break;
+                    case 3:
+                        if (z->c != z->I[1]) return 0;
+                        {   int m_test4 = z->l - z->c;
+                            {   int ret = r_shortv(z);
+                                if (ret <= 0) return ret;
+                            }
+                            z->c = z->l - m_test4;
                         }
-                        if (ret < 0) return ret;
-                    }
-                    break;
+                        {   int ret = slice_from_s(z, 1, s_7);
+                            if (ret < 0) return ret;
+                        }
+                        return 0;
+                        break;
+                }
+                z->c = z->l - m_test2;
+            }
+            z->ket = z->c;
+            if (z->c <= z->lb) return 0;
+            z->c--;
+            z->bra = z->c;
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
             }
             break;
     }
@@ -623,7 +631,7 @@ static int r_Step_1c(struct SN_env * z) {
 lab0:
     z->bra = z->c;
     if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
-    
+
     if (z->c > z->lb) goto lab2;
     return 0;
 lab2:
@@ -638,7 +646,7 @@ static int r_Step_2(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_5, 24);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -731,7 +739,7 @@ static int r_Step_3(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_6, 9);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -779,7 +787,7 @@ static int r_Step_4(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_7, 18);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R2(z);
         if (ret <= 0) return ret;
@@ -814,30 +822,28 @@ static int r_Step_5(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0;
     among_var = find_among_b(z, a_8, 2);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
+
+            {   int ret = r_R2(z);
+                if (ret == 0) goto lab1;
+                if (ret < 0) return ret;
+            }
+            goto lab0;
+        lab1:
+            {   int ret = r_R1(z);
+                if (ret <= 0) return ret;
+            }
             {   int m1 = z->l - z->c; (void)m1;
-                {   int ret = r_R2(z);
-                    if (ret == 0) goto lab1;
+                {   int ret = r_shortv(z);
+                    if (ret == 0) goto lab2;
                     if (ret < 0) return ret;
                 }
-                goto lab0;
-            lab1:
+                return 0;
+            lab2:
                 z->c = z->l - m1;
-                {   int ret = r_R1(z);
-                    if (ret <= 0) return ret;
-                }
-                {   int m2 = z->l - z->c; (void)m2;
-                    {   int ret = r_shortv(z);
-                        if (ret == 0) goto lab2;
-                        if (ret < 0) return ret;
-                    }
-                    return 0;
-                lab2:
-                    z->c = z->l - m2;
-                }
             }
         lab0:
             {   int ret = slice_del(z);
@@ -861,7 +867,7 @@ static int r_Step_5(struct SN_env * z) {
 static int r_exception2(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
-    if (!(find_among_b(z, a_9, 8))) return 0;
+    if (!find_among_b(z, a_9, 8)) return 0;
     z->bra = z->c;
     if (z->c > z->lb) return 0;
     return 1;
@@ -872,7 +878,7 @@ static int r_exception1(struct SN_env * z) {
     z->bra = z->c;
     if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
     among_var = find_among(z, a_10, 18);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     if (z->c < z->l) return 0;
     switch (among_var) {
@@ -982,11 +988,11 @@ z->c = z->c + 3;
         goto lab0;
     lab2:
         z->c = c1;
-        
+
         {   int ret = r_prelude(z);
             if (ret < 0) return ret;
         }
-        
+
         {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
index 7835bd1fb2e6aaf1554918c51f0b1ecceaa842bc..978ecb02278900c7426f3ba9439280eab2b8151c 100644 (file)
@@ -277,15 +277,19 @@ static const symbol s_4[] = { 'p', 'o' };
 static int r_mark_regions(struct SN_env * z) {
     z->I[1] = z->l;
     z->I[0] = z->l;
+
     if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0;
-    {   
+
+    {
         int ret = in_grouping(z, g_V1, 97, 246, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
     z->I[1] = z->c;
+
     if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0;
-    {   
+
+    {
         int ret = in_grouping(z, g_V1, 97, 246, 1);
         if (ret < 0) return 0;
         z->c += ret;
@@ -295,8 +299,7 @@ static int r_mark_regions(struct SN_env * z) {
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_particle_etc(struct SN_env * z) {
@@ -307,7 +310,7 @@ static int r_particle_etc(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[1];
         z->ket = z->c;
         among_var = find_among_b(z, a_0, 10);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -335,7 +338,7 @@ static int r_possessive(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[1];
         z->ket = z->c;
         among_var = find_among_b(z, a_4, 9);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -370,21 +373,21 @@ static int r_possessive(struct SN_env * z) {
             break;
         case 4:
             if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
-            if (!(find_among_b(z, a_1, 6))) return 0;
+            if (!find_among_b(z, a_1, 6)) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
             if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0;
-            if (!(find_among_b(z, a_2, 6))) return 0;
+            if (!find_among_b(z, a_2, 6)) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
             if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
-            if (!(find_among_b(z, a_3, 2))) return 0;
+            if (!find_among_b(z, a_3, 2)) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
@@ -394,7 +397,7 @@ static int r_possessive(struct SN_env * z) {
 }
 
 static int r_LONG(struct SN_env * z) {
-    if (!(find_among_b(z, a_5, 7))) return 0;
+    if (!find_among_b(z, a_5, 7)) return 0;
     return 1;
 }
 
@@ -413,7 +416,7 @@ static int r_case_ending(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[1];
         z->ket = z->c;
         among_var = find_among_b(z, a_6, 30);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -485,7 +488,7 @@ static int r_other_endings(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[0];
         z->ket = z->c;
         among_var = find_among_b(z, a_7, 14);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -512,7 +515,7 @@ static int r_i_plural(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[1];
         z->ket = z->c;
         if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; }
-        if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_8, 2)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -548,7 +551,7 @@ static int r_t_plural(struct SN_env * z) {
         z->ket = z->c;
         if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; }
         among_var = find_among_b(z, a_9, 2);
-        if (!(among_var)) { z->lb = mlimit3; return 0; }
+        if (!among_var) { z->lb = mlimit3; return 0; }
         z->bra = z->c;
         z->lb = mlimit3;
     }
@@ -638,6 +641,7 @@ static int r_tidy(struct SN_env * z) {
         }
         z->lb = mlimit1;
     }
+
     if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0;
     z->ket = z->c;
     if (in_grouping_b(z, g_C, 98, 122, 0)) return 0;
@@ -685,7 +689,7 @@ extern int finnish_ISO_8859_1_stem(struct SN_env * z) {
         }
         z->c = z->l - m5;
     }
-    
+
     if (!(z->I[2])) goto lab1;
     {   int m6 = z->l - z->c; (void)m6;
         {   int ret = r_i_plural(z);
index 1951f0dbad5caa804fc08975b0d16422c7ebcb57..5706a5296bb9bf9c9632c9f5d449d00cfcb9dcaa 100644 (file)
@@ -21,6 +21,7 @@ static int r_RV(struct SN_env * z);
 static int r_mark_regions(struct SN_env * z);
 static int r_postlude(struct SN_env * z);
 static int r_prelude(struct SN_env * z);
+static int r_elisions(struct SN_env * z);
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -371,43 +372,69 @@ static const struct among a_8[5] =
 
 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
 
+static const unsigned char g_elision_char[] = { 131, 14, 3 };
+
 static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
 
-static const symbol s_0[] = { 'U' };
-static const symbol s_1[] = { 'I' };
-static const symbol s_2[] = { 'Y' };
-static const symbol s_3[] = { 'H', 'e' };
-static const symbol s_4[] = { 'H', 'i' };
-static const symbol s_5[] = { 'Y' };
-static const symbol s_6[] = { 'U' };
-static const symbol s_7[] = { 'i' };
-static const symbol s_8[] = { 'u' };
-static const symbol s_9[] = { 'y' };
-static const symbol s_10[] = { 0xEB };
-static const symbol s_11[] = { 0xEF };
-static const symbol s_12[] = { 'i', 'c' };
-static const symbol s_13[] = { 'i', 'q', 'U' };
-static const symbol s_14[] = { 'l', 'o', 'g' };
-static const symbol s_15[] = { 'u' };
-static const symbol s_16[] = { 'e', 'n', 't' };
-static const symbol s_17[] = { 'a', 't' };
-static const symbol s_18[] = { 'e', 'u', 'x' };
-static const symbol s_19[] = { 'i' };
-static const symbol s_20[] = { 'a', 'b', 'l' };
-static const symbol s_21[] = { 'i', 'q', 'U' };
-static const symbol s_22[] = { 'a', 't' };
-static const symbol s_23[] = { 'i', 'c' };
-static const symbol s_24[] = { 'i', 'q', 'U' };
-static const symbol s_25[] = { 'e', 'a', 'u' };
-static const symbol s_26[] = { 'a', 'l' };
-static const symbol s_27[] = { 'e', 'u', 'x' };
-static const symbol s_28[] = { 'a', 'n', 't' };
-static const symbol s_29[] = { 'e', 'n', 't' };
-static const symbol s_30[] = { 'H', 'i' };
-static const symbol s_31[] = { 'i' };
-static const symbol s_32[] = { 'e' };
-static const symbol s_33[] = { 'i' };
-static const symbol s_34[] = { 'c' };
+static const symbol s_0[] = { 'q', 'u' };
+static const symbol s_1[] = { 'U' };
+static const symbol s_2[] = { 'I' };
+static const symbol s_3[] = { 'Y' };
+static const symbol s_4[] = { 'H', 'e' };
+static const symbol s_5[] = { 'H', 'i' };
+static const symbol s_6[] = { 'Y' };
+static const symbol s_7[] = { 'U' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 'u' };
+static const symbol s_10[] = { 'y' };
+static const symbol s_11[] = { 0xEB };
+static const symbol s_12[] = { 0xEF };
+static const symbol s_13[] = { 'i', 'c' };
+static const symbol s_14[] = { 'i', 'q', 'U' };
+static const symbol s_15[] = { 'l', 'o', 'g' };
+static const symbol s_16[] = { 'u' };
+static const symbol s_17[] = { 'e', 'n', 't' };
+static const symbol s_18[] = { 'a', 't' };
+static const symbol s_19[] = { 'e', 'u', 'x' };
+static const symbol s_20[] = { 'i' };
+static const symbol s_21[] = { 'a', 'b', 'l' };
+static const symbol s_22[] = { 'i', 'q', 'U' };
+static const symbol s_23[] = { 'a', 't' };
+static const symbol s_24[] = { 'i', 'c' };
+static const symbol s_25[] = { 'i', 'q', 'U' };
+static const symbol s_26[] = { 'e', 'a', 'u' };
+static const symbol s_27[] = { 'a', 'l' };
+static const symbol s_28[] = { 'e', 'u', 'x' };
+static const symbol s_29[] = { 'a', 'n', 't' };
+static const symbol s_30[] = { 'e', 'n', 't' };
+static const symbol s_31[] = { 'H', 'i' };
+static const symbol s_32[] = { 'i' };
+static const symbol s_33[] = { 'e' };
+static const symbol s_34[] = { 'i' };
+static const symbol s_35[] = { 'c' };
+
+static int r_elisions(struct SN_env * z) {
+    z->bra = z->c;
+    {   int c1 = z->c;
+        if (in_grouping(z, g_elision_char, 99, 116, 0)) goto lab1;
+        goto lab0;
+    lab1:
+        z->c = c1;
+        if (!(eq_s(z, 2, s_0))) return 0;
+    }
+lab0:
+    if (z->c == z->l || z->p[z->c] != '\'') return 0;
+    z->c++;
+    z->ket = z->c;
+
+    if (z->c < z->l) goto lab2;
+    return 0;
+lab2:
+    {   int ret = slice_del(z);
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
 
 static int r_prelude(struct SN_env * z) {
     while(1) {
@@ -422,7 +449,7 @@ static int r_prelude(struct SN_env * z) {
                     z->c++;
                     z->ket = z->c;
                     if (in_grouping(z, g_v, 97, 251, 0)) goto lab5;
-                    {   int ret = slice_from_s(z, 1, s_0);
+                    {   int ret = slice_from_s(z, 1, s_1);
                         if (ret < 0) return ret;
                     }
                     goto lab4;
@@ -432,7 +459,7 @@ static int r_prelude(struct SN_env * z) {
                     z->c++;
                     z->ket = z->c;
                     if (in_grouping(z, g_v, 97, 251, 0)) goto lab6;
-                    {   int ret = slice_from_s(z, 1, s_1);
+                    {   int ret = slice_from_s(z, 1, s_2);
                         if (ret < 0) return ret;
                     }
                     goto lab4;
@@ -441,7 +468,7 @@ static int r_prelude(struct SN_env * z) {
                     if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
                     z->c++;
                     z->ket = z->c;
-                    {   int ret = slice_from_s(z, 1, s_2);
+                    {   int ret = slice_from_s(z, 1, s_3);
                         if (ret < 0) return ret;
                     }
                 }
@@ -453,7 +480,7 @@ static int r_prelude(struct SN_env * z) {
                 if (z->c == z->l || z->p[z->c] != 0xEB) goto lab7;
                 z->c++;
                 z->ket = z->c;
-                {   int ret = slice_from_s(z, 2, s_3);
+                {   int ret = slice_from_s(z, 2, s_4);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
@@ -463,7 +490,7 @@ static int r_prelude(struct SN_env * z) {
                 if (z->c == z->l || z->p[z->c] != 0xEF) goto lab8;
                 z->c++;
                 z->ket = z->c;
-                {   int ret = slice_from_s(z, 2, s_4);
+                {   int ret = slice_from_s(z, 2, s_5);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
@@ -474,7 +501,7 @@ static int r_prelude(struct SN_env * z) {
                 z->c++;
                 z->ket = z->c;
                 if (in_grouping(z, g_v, 97, 251, 0)) goto lab9;
-                {   int ret = slice_from_s(z, 1, s_5);
+                {   int ret = slice_from_s(z, 1, s_6);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
@@ -486,7 +513,7 @@ static int r_prelude(struct SN_env * z) {
                 if (z->c == z->l || z->p[z->c] != 'u') goto lab1;
                 z->c++;
                 z->ket = z->c;
-                {   int ret = slice_from_s(z, 1, s_6);
+                {   int ret = slice_from_s(z, 1, s_7);
                     if (ret < 0) return ret;
                 }
             }
@@ -520,13 +547,14 @@ static int r_mark_regions(struct SN_env * z) {
         lab2:
             z->c = c2;
             if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3;
-            if (!(find_among(z, a_0, 3))) goto lab3;
+            if (!find_among(z, a_0, 3)) goto lab3;
             goto lab1;
         lab3:
             z->c = c2;
             if (z->c >= z->l) goto lab0;
             z->c++;
-            {   
+
+            {
                 int ret = out_grouping(z, g_v, 97, 251, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
@@ -538,23 +566,27 @@ static int r_mark_regions(struct SN_env * z) {
         z->c = c1;
     }
     {   int c3 = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
@@ -573,31 +605,30 @@ static int r_postlude(struct SN_env * z) {
         z->bra = z->c;
         if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else
         among_var = find_among(z, a_1, 7);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_7);
+                {   int ret = slice_from_s(z, 1, s_8);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_8);
+                {   int ret = slice_from_s(z, 1, s_9);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_from_s(z, 1, s_9);
+                {   int ret = slice_from_s(z, 1, s_10);
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = slice_from_s(z, 1, s_10);
+                {   int ret = slice_from_s(z, 1, s_11);
                     if (ret < 0) return ret;
                 }
                 break;
             case 5:
-                {   int ret = slice_from_s(z, 1, s_11);
+                {   int ret = slice_from_s(z, 1, s_12);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -620,25 +651,22 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_standard_suffix(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_4, 43);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -658,7 +686,7 @@ static int r_standard_suffix(struct SN_env * z) {
             }
             {   int m1 = z->l - z->c; (void)m1;
                 z->ket = z->c;
-                if (!(eq_s_b(z, 2, s_12))) { z->c = z->l - m1; goto lab0; }
+                if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m1; goto lab0; }
                 z->bra = z->c;
                 {   int m2 = z->l - z->c; (void)m2;
                     {   int ret = r_R2(z);
@@ -671,7 +699,7 @@ static int r_standard_suffix(struct SN_env * z) {
                     goto lab1;
                 lab2:
                     z->c = z->l - m2;
-                    {   int ret = slice_from_s(z, 3, s_13);
+                    {   int ret = slice_from_s(z, 3, s_14);
                         if (ret < 0) return ret;
                     }
                 }
@@ -684,7 +712,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_14);
+            {   int ret = slice_from_s(z, 3, s_15);
                 if (ret < 0) return ret;
             }
             break;
@@ -692,7 +720,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 1, s_15);
+            {   int ret = slice_from_s(z, 1, s_16);
                 if (ret < 0) return ret;
             }
             break;
@@ -700,7 +728,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_16);
+            {   int ret = slice_from_s(z, 3, s_17);
                 if (ret < 0) return ret;
             }
             break;
@@ -714,7 +742,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int m3 = z->l - z->c; (void)m3;
                 z->ket = z->c;
                 among_var = find_among_b(z, a_2, 6);
-                if (!(among_var)) { z->c = z->l - m3; goto lab3; }
+                if (!among_var) { z->c = z->l - m3; goto lab3; }
                 z->bra = z->c;
                 switch (among_var) {
                     case 1:
@@ -726,7 +754,7 @@ static int r_standard_suffix(struct SN_env * z) {
                             if (ret < 0) return ret;
                         }
                         z->ket = z->c;
-                        if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m3; goto lab3; }
+                        if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m3; goto lab3; }
                         z->bra = z->c;
                         {   int ret = r_R2(z);
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
@@ -752,7 +780,7 @@ static int r_standard_suffix(struct SN_env * z) {
                                 if (ret == 0) { z->c = z->l - m3; goto lab3; }
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_from_s(z, 3, s_18);
+                            {   int ret = slice_from_s(z, 3, s_19);
                                 if (ret < 0) return ret;
                             }
                         }
@@ -772,7 +800,7 @@ static int r_standard_suffix(struct SN_env * z) {
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_from_s(z, 1, s_19);
+                        {   int ret = slice_from_s(z, 1, s_20);
                             if (ret < 0) return ret;
                         }
                         break;
@@ -792,7 +820,7 @@ static int r_standard_suffix(struct SN_env * z) {
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; }
                 among_var = find_among_b(z, a_3, 3);
-                if (!(among_var)) { z->c = z->l - m5; goto lab6; }
+                if (!among_var) { z->c = z->l - m5; goto lab6; }
                 z->bra = z->c;
                 switch (among_var) {
                     case 1:
@@ -807,7 +835,7 @@ static int r_standard_suffix(struct SN_env * z) {
                             goto lab7;
                         lab8:
                             z->c = z->l - m6;
-                            {   int ret = slice_from_s(z, 3, s_20);
+                            {   int ret = slice_from_s(z, 3, s_21);
                                 if (ret < 0) return ret;
                             }
                         }
@@ -825,7 +853,7 @@ static int r_standard_suffix(struct SN_env * z) {
                             goto lab9;
                         lab10:
                             z->c = z->l - m7;
-                            {   int ret = slice_from_s(z, 3, s_21);
+                            {   int ret = slice_from_s(z, 3, s_22);
                                 if (ret < 0) return ret;
                             }
                         }
@@ -854,7 +882,7 @@ static int r_standard_suffix(struct SN_env * z) {
             }
             {   int m8 = z->l - z->c; (void)m8;
                 z->ket = z->c;
-                if (!(eq_s_b(z, 2, s_22))) { z->c = z->l - m8; goto lab11; }
+                if (!(eq_s_b(z, 2, s_23))) { z->c = z->l - m8; goto lab11; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m8; goto lab11; }
@@ -864,7 +892,7 @@ static int r_standard_suffix(struct SN_env * z) {
                     if (ret < 0) return ret;
                 }
                 z->ket = z->c;
-                if (!(eq_s_b(z, 2, s_23))) { z->c = z->l - m8; goto lab11; }
+                if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m8; goto lab11; }
                 z->bra = z->c;
                 {   int m9 = z->l - z->c; (void)m9;
                     {   int ret = r_R2(z);
@@ -877,7 +905,7 @@ static int r_standard_suffix(struct SN_env * z) {
                     goto lab12;
                 lab13:
                     z->c = z->l - m9;
-                    {   int ret = slice_from_s(z, 3, s_24);
+                    {   int ret = slice_from_s(z, 3, s_25);
                         if (ret < 0) return ret;
                     }
                 }
@@ -887,7 +915,7 @@ static int r_standard_suffix(struct SN_env * z) {
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 3, s_25);
+            {   int ret = slice_from_s(z, 3, s_26);
                 if (ret < 0) return ret;
             }
             break;
@@ -895,7 +923,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_26);
+            {   int ret = slice_from_s(z, 2, s_27);
                 if (ret < 0) return ret;
             }
             break;
@@ -914,7 +942,7 @@ static int r_standard_suffix(struct SN_env * z) {
                 {   int ret = r_R1(z);
                     if (ret <= 0) return ret;
                 }
-                {   int ret = slice_from_s(z, 3, s_27);
+                {   int ret = slice_from_s(z, 3, s_28);
                     if (ret < 0) return ret;
                 }
             }
@@ -933,7 +961,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_28);
+            {   int ret = slice_from_s(z, 3, s_29);
                 if (ret < 0) return ret;
             }
             return 0;
@@ -942,7 +970,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_29);
+            {   int ret = slice_from_s(z, 3, s_30);
                 if (ret < 0) return ret;
             }
             return 0;
@@ -971,7 +999,7 @@ static int r_i_verb_suffix(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
-        if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_5, 35)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         {   int m2 = z->l - z->c; (void)m2;
             if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0;
@@ -997,7 +1025,7 @@ static int r_verb_suffix(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
         among_var = find_among_b(z, a_6, 38);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -1045,7 +1073,7 @@ static int r_residual_suffix(struct SN_env * z) {
         z->bra = z->c;
         {   int m_test2 = z->l - z->c;
             {   int m3 = z->l - z->c; (void)m3;
-                if (!(eq_s_b(z, 2, s_30))) goto lab2;
+                if (!(eq_s_b(z, 2, s_31))) goto lab2;
                 goto lab1;
             lab2:
                 z->c = z->l - m3;
@@ -1067,7 +1095,7 @@ static int r_residual_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; }
         among_var = find_among_b(z, a_7, 6);
-        if (!(among_var)) { z->lb = mlimit4; return 0; }
+        if (!among_var) { z->lb = mlimit4; return 0; }
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -1090,7 +1118,7 @@ static int r_residual_suffix(struct SN_env * z) {
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_31);
+                {   int ret = slice_from_s(z, 1, s_32);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -1108,7 +1136,7 @@ static int r_residual_suffix(struct SN_env * z) {
 static int r_un_double(struct SN_env * z) {
     {   int m_test1 = z->l - z->c;
         if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-        if (!(find_among_b(z, a_8, 5))) return 0;
+        if (!find_among_b(z, a_8, 5)) return 0;
         z->c = z->l - m_test1;
     }
     z->ket = z->c;
@@ -1144,7 +1172,7 @@ static int r_un_accent(struct SN_env * z) {
     }
 lab1:
     z->bra = z->c;
-    {   int ret = slice_from_s(z, 1, s_32);
+    {   int ret = slice_from_s(z, 1, s_33);
         if (ret < 0) return ret;
     }
     return 1;
@@ -1152,58 +1180,64 @@ lab1:
 
 extern int french_ISO_8859_1_stem(struct SN_env * z) {
     {   int c1 = z->c;
-        {   int ret = r_prelude(z);
+        {   int ret = r_elisions(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    
+    {   int c2 = z->c;
+        {   int ret = r_prelude(z);
+            if (ret < 0) return ret;
+        }
+        z->c = c2;
+    }
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
     z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2;
-        {   int m3 = z->l - z->c; (void)m3;
-            {   int m4 = z->l - z->c; (void)m4;
-                {   int m5 = z->l - z->c; (void)m5;
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int m4 = z->l - z->c; (void)m4;
+            {   int m5 = z->l - z->c; (void)m5;
+                {   int m6 = z->l - z->c; (void)m6;
                     {   int ret = r_standard_suffix(z);
                         if (ret == 0) goto lab4;
                         if (ret < 0) return ret;
                     }
                     goto lab3;
                 lab4:
-                    z->c = z->l - m5;
+                    z->c = z->l - m6;
                     {   int ret = r_i_verb_suffix(z);
                         if (ret == 0) goto lab5;
                         if (ret < 0) return ret;
                     }
                     goto lab3;
                 lab5:
-                    z->c = z->l - m5;
+                    z->c = z->l - m6;
                     {   int ret = r_verb_suffix(z);
                         if (ret == 0) goto lab2;
                         if (ret < 0) return ret;
                     }
                 }
             lab3:
-                z->c = z->l - m4;
-                {   int m6 = z->l - z->c; (void)m6;
+                z->c = z->l - m5;
+                {   int m7 = z->l - z->c; (void)m7;
                     z->ket = z->c;
-                    {   int m7 = z->l - z->c; (void)m7;
+                    {   int m8 = z->l - z->c; (void)m8;
                         if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8;
                         z->c--;
                         z->bra = z->c;
-                        {   int ret = slice_from_s(z, 1, s_33);
+                        {   int ret = slice_from_s(z, 1, s_34);
                             if (ret < 0) return ret;
                         }
                         goto lab7;
                     lab8:
-                        z->c = z->l - m7;
-                        if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m6; goto lab6; }
+                        z->c = z->l - m8;
+                        if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m7; goto lab6; }
                         z->c--;
                         z->bra = z->c;
-                        {   int ret = slice_from_s(z, 1, s_34);
+                        {   int ret = slice_from_s(z, 1, s_35);
                             if (ret < 0) return ret;
                         }
                     }
@@ -1214,7 +1248,7 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) {
             }
             goto lab1;
         lab2:
-            z->c = z->l - m3;
+            z->c = z->l - m4;
             {   int ret = r_residual_suffix(z);
                 if (ret == 0) goto lab0;
                 if (ret < 0) return ret;
@@ -1222,26 +1256,26 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) {
         }
     lab1:
     lab0:
-        z->c = z->l - m2;
+        z->c = z->l - m3;
     }
-    {   int m8 = z->l - z->c; (void)m8;
+    {   int m9 = z->l - z->c; (void)m9;
         {   int ret = r_un_double(z);
             if (ret < 0) return ret;
         }
-        z->c = z->l - m8;
+        z->c = z->l - m9;
     }
-    {   int m9 = z->l - z->c; (void)m9;
+    {   int m10 = z->l - z->c; (void)m10;
         {   int ret = r_un_accent(z);
             if (ret < 0) return ret;
         }
-        z->c = z->l - m9;
+        z->c = z->l - m10;
     }
     z->c = z->lb;
-    {   int c10 = z->c;
+    {   int c11 = z->c;
         {   int ret = r_postlude(z);
             if (ret < 0) return ret;
         }
-        z->c = c10;
+        z->c = c11;
     }
     return 1;
 }
index c5cbd6fe547e3595361053b17249cb4d48c748d4..c053b201d55038035e81bfff7b112fca51d132a7 100644 (file)
@@ -27,82 +27,106 @@ extern void german_ISO_8859_1_close_env(struct SN_env * z);
 #ifdef __cplusplus
 }
 #endif
-static const symbol s_0_1[1] = { 'U' };
-static const symbol s_0_2[1] = { 'Y' };
-static const symbol s_0_3[1] = { 0xE4 };
-static const symbol s_0_4[1] = { 0xF6 };
-static const symbol s_0_5[1] = { 0xFC };
+static const symbol s_0_1[2] = { 'a', 'e' };
+static const symbol s_0_2[2] = { 'o', 'e' };
+static const symbol s_0_3[2] = { 'q', 'u' };
+static const symbol s_0_4[2] = { 'u', 'e' };
+static const symbol s_0_5[1] = { 0xDF };
 
 static const struct among a_0[6] =
 {
 { 0, 0, -1, 5, 0},
-{ 1, s_0_1, 0, 2, 0},
-{ 1, s_0_2, 0, 1, 0},
-{ 1, s_0_3, 0, 3, 0},
-{ 1, s_0_4, 0, 4, 0},
-{ 1, s_0_5, 0, 2, 0}
+{ 2, s_0_1, 0, 2, 0},
+{ 2, s_0_2, 0, 3, 0},
+{ 2, s_0_3, 0, -1, 0},
+{ 2, s_0_4, 0, 4, 0},
+{ 1, s_0_5, 0, 1, 0}
 };
 
-static const symbol s_1_0[1] = { 'e' };
-static const symbol s_1_1[2] = { 'e', 'm' };
-static const symbol s_1_2[2] = { 'e', 'n' };
-static const symbol s_1_3[3] = { 'e', 'r', 'n' };
-static const symbol s_1_4[2] = { 'e', 'r' };
-static const symbol s_1_5[1] = { 's' };
-static const symbol s_1_6[2] = { 'e', 's' };
+static const symbol s_1_1[1] = { 'U' };
+static const symbol s_1_2[1] = { 'Y' };
+static const symbol s_1_3[1] = { 0xE4 };
+static const symbol s_1_4[1] = { 0xF6 };
+static const symbol s_1_5[1] = { 0xFC };
 
-static const struct among a_1[7] =
+static const struct among a_1[6] =
 {
-{ 1, s_1_0, -1, 2, 0},
-{ 2, s_1_1, -1, 1, 0},
-{ 2, s_1_2, -1, 2, 0},
-{ 3, s_1_3, -1, 1, 0},
-{ 2, s_1_4, -1, 1, 0},
-{ 1, s_1_5, -1, 3, 0},
-{ 2, s_1_6, 5, 2, 0}
+{ 0, 0, -1, 5, 0},
+{ 1, s_1_1, 0, 2, 0},
+{ 1, s_1_2, 0, 1, 0},
+{ 1, s_1_3, 0, 3, 0},
+{ 1, s_1_4, 0, 4, 0},
+{ 1, s_1_5, 0, 2, 0}
 };
 
-static const symbol s_2_0[2] = { 'e', 'n' };
-static const symbol s_2_1[2] = { 'e', 'r' };
-static const symbol s_2_2[2] = { 's', 't' };
-static const symbol s_2_3[3] = { 'e', 's', 't' };
+static const symbol s_2_0[1] = { 'e' };
+static const symbol s_2_1[2] = { 'e', 'm' };
+static const symbol s_2_2[2] = { 'e', 'n' };
+static const symbol s_2_3[7] = { 'e', 'r', 'i', 'n', 'n', 'e', 'n' };
+static const symbol s_2_4[4] = { 'e', 'r', 'i', 'n' };
+static const symbol s_2_5[2] = { 'l', 'n' };
+static const symbol s_2_6[3] = { 'e', 'r', 'n' };
+static const symbol s_2_7[2] = { 'e', 'r' };
+static const symbol s_2_8[1] = { 's' };
+static const symbol s_2_9[2] = { 'e', 's' };
+static const symbol s_2_10[3] = { 'l', 'n', 's' };
 
-static const struct among a_2[4] =
+static const struct among a_2[11] =
 {
-{ 2, s_2_0, -1, 1, 0},
+{ 1, s_2_0, -1, 3, 0},
 { 2, s_2_1, -1, 1, 0},
-{ 2, s_2_2, -1, 2, 0},
-{ 3, s_2_3, 2, 1, 0}
+{ 2, s_2_2, -1, 3, 0},
+{ 7, s_2_3, 2, 2, 0},
+{ 4, s_2_4, -1, 2, 0},
+{ 2, s_2_5, -1, 5, 0},
+{ 3, s_2_6, -1, 2, 0},
+{ 2, s_2_7, -1, 2, 0},
+{ 1, s_2_8, -1, 4, 0},
+{ 2, s_2_9, 8, 3, 0},
+{ 3, s_2_10, 8, 5, 0}
 };
 
-static const symbol s_3_0[2] = { 'i', 'g' };
-static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
+static const symbol s_3_0[2] = { 'e', 'n' };
+static const symbol s_3_1[2] = { 'e', 'r' };
+static const symbol s_3_2[2] = { 's', 't' };
+static const symbol s_3_3[3] = { 'e', 's', 't' };
 
-static const struct among a_3[2] =
+static const struct among a_3[4] =
 {
 { 2, s_3_0, -1, 1, 0},
-{ 4, s_3_1, -1, 1, 0}
+{ 2, s_3_1, -1, 1, 0},
+{ 2, s_3_2, -1, 2, 0},
+{ 3, s_3_3, 2, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 'i', 'g' };
+static const symbol s_4_1[4] = { 'l', 'i', 'c', 'h' };
+
+static const struct among a_4[2] =
+{
+{ 2, s_4_0, -1, 1, 0},
+{ 4, s_4_1, -1, 1, 0}
 };
 
-static const symbol s_4_0[3] = { 'e', 'n', 'd' };
-static const symbol s_4_1[2] = { 'i', 'g' };
-static const symbol s_4_2[3] = { 'u', 'n', 'g' };
-static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
-static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
-static const symbol s_4_5[2] = { 'i', 'k' };
-static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
-static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
+static const symbol s_5_0[3] = { 'e', 'n', 'd' };
+static const symbol s_5_1[2] = { 'i', 'g' };
+static const symbol s_5_2[3] = { 'u', 'n', 'g' };
+static const symbol s_5_3[4] = { 'l', 'i', 'c', 'h' };
+static const symbol s_5_4[4] = { 'i', 's', 'c', 'h' };
+static const symbol s_5_5[2] = { 'i', 'k' };
+static const symbol s_5_6[4] = { 'h', 'e', 'i', 't' };
+static const symbol s_5_7[4] = { 'k', 'e', 'i', 't' };
 
-static const struct among a_4[8] =
+static const struct among a_5[8] =
 {
-{ 3, s_4_0, -1, 1, 0},
-{ 2, s_4_1, -1, 2, 0},
-{ 3, s_4_2, -1, 1, 0},
-{ 4, s_4_3, -1, 3, 0},
-{ 4, s_4_4, -1, 2, 0},
-{ 2, s_4_5, -1, 2, 0},
-{ 4, s_4_6, -1, 3, 0},
-{ 4, s_4_7, -1, 4, 0}
+{ 3, s_5_0, -1, 1, 0},
+{ 2, s_5_1, -1, 2, 0},
+{ 3, s_5_2, -1, 1, 0},
+{ 4, s_5_3, -1, 3, 0},
+{ 4, s_5_4, -1, 2, 0},
+{ 2, s_5_5, -1, 2, 0},
+{ 4, s_5_6, -1, 3, 0},
+{ 4, s_5_7, -1, 4, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
@@ -111,37 +135,59 @@ static const unsigned char g_s_ending[] = { 117, 30, 5 };
 
 static const unsigned char g_st_ending[] = { 117, 30, 4 };
 
-static const symbol s_0[] = { 's', 's' };
-static const symbol s_1[] = { 'U' };
-static const symbol s_2[] = { 'Y' };
-static const symbol s_3[] = { 'y' };
-static const symbol s_4[] = { 'u' };
-static const symbol s_5[] = { 'a' };
-static const symbol s_6[] = { 'o' };
-static const symbol s_7[] = { 'n', 'i', 's' };
-static const symbol s_8[] = { 'i', 'g' };
-static const symbol s_9[] = { 'e', 'r' };
-static const symbol s_10[] = { 'e', 'n' };
+static const symbol s_0[] = { 'U' };
+static const symbol s_1[] = { 'Y' };
+static const symbol s_2[] = { 's', 's' };
+static const symbol s_3[] = { 0xE4 };
+static const symbol s_4[] = { 0xF6 };
+static const symbol s_5[] = { 0xFC };
+static const symbol s_6[] = { 'y' };
+static const symbol s_7[] = { 'u' };
+static const symbol s_8[] = { 'a' };
+static const symbol s_9[] = { 'o' };
+static const symbol s_10[] = { 's', 'y', 's', 't' };
+static const symbol s_11[] = { 'n', 'i', 's' };
+static const symbol s_12[] = { 'l' };
+static const symbol s_13[] = { 'i', 'g' };
+static const symbol s_14[] = { 'e', 'r' };
+static const symbol s_15[] = { 'e', 'n' };
 
 static int r_prelude(struct SN_env * z) {
+    int among_var;
     {   int c_test1 = z->c;
         while(1) {
             int c2 = z->c;
-            {   int c3 = z->c;
+            while(1) {
+                int c3 = z->c;
+                if (in_grouping(z, g_v, 97, 252, 0)) goto lab1;
                 z->bra = z->c;
-                if (z->c == z->l || z->p[z->c] != 0xDF) goto lab2;
-                z->c++;
-                z->ket = z->c;
-                {   int ret = slice_from_s(z, 2, s_0);
-                    if (ret < 0) return ret;
+                {   int c4 = z->c;
+                    if (z->c == z->l || z->p[z->c] != 'u') goto lab3;
+                    z->c++;
+                    z->ket = z->c;
+                    if (in_grouping(z, g_v, 97, 252, 0)) goto lab3;
+                    {   int ret = slice_from_s(z, 1, s_0);
+                        if (ret < 0) return ret;
+                    }
+                    goto lab2;
+                lab3:
+                    z->c = c4;
+                    if (z->c == z->l || z->p[z->c] != 'y') goto lab1;
+                    z->c++;
+                    z->ket = z->c;
+                    if (in_grouping(z, g_v, 97, 252, 0)) goto lab1;
+                    {   int ret = slice_from_s(z, 1, s_1);
+                        if (ret < 0) return ret;
+                    }
                 }
-                goto lab1;
             lab2:
+                z->c = c3;
+                break;
+            lab1:
                 z->c = c3;
                 if (z->c >= z->l) goto lab0;
                 z->c++;
             }
-        lab1:
             continue;
         lab0:
             z->c = c2;
@@ -150,41 +196,39 @@ static int r_prelude(struct SN_env * z) {
         z->c = c_test1;
     }
     while(1) {
-        int c4 = z->c;
-        while(1) {
-            int c5 = z->c;
-            if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
-            z->bra = z->c;
-            {   int c6 = z->c;
-                if (z->c == z->l || z->p[z->c] != 'u') goto lab6;
-                z->c++;
-                z->ket = z->c;
-                if (in_grouping(z, g_v, 97, 252, 0)) goto lab6;
-                {   int ret = slice_from_s(z, 1, s_1);
+        int c5 = z->c;
+        z->bra = z->c;
+        among_var = find_among(z, a_0, 6);
+        z->ket = z->c;
+        switch (among_var) {
+            case 1:
+                {   int ret = slice_from_s(z, 2, s_2);
                     if (ret < 0) return ret;
                 }
-                goto lab5;
-            lab6:
-                z->c = c6;
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
-                z->c++;
-                z->ket = z->c;
-                if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
-                {   int ret = slice_from_s(z, 1, s_2);
+                break;
+            case 2:
+                {   int ret = slice_from_s(z, 1, s_3);
                     if (ret < 0) return ret;
                 }
-            }
-        lab5:
-            z->c = c5;
-            break;
-        lab4:
-            z->c = c5;
-            if (z->c >= z->l) goto lab3;
-            z->c++;
+                break;
+            case 3:
+                {   int ret = slice_from_s(z, 1, s_4);
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 4:
+                {   int ret = slice_from_s(z, 1, s_5);
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 5:
+                if (z->c >= z->l) goto lab4;
+                z->c++;
+                break;
         }
         continue;
-    lab3:
-        z->c = c4;
+    lab4:
+        z->c = c5;
         break;
     }
     return 1;
@@ -199,27 +243,31 @@ z->c = z->c + 3;
         z->I[0] = z->c;
         z->c = c_test1;
     }
-    {   
+
+    {
         int ret = out_grouping(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {   
+
+    {
         int ret = in_grouping(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
     z->I[2] = z->c;
-    
-    if (!(z->I[2] < z->I[0])) goto lab0;
+
+    if (z->I[2] >= z->I[0]) goto lab0;
     z->I[2] = z->I[0];
 lab0:
-    {   
+
+    {
         int ret = out_grouping(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {   
+
+    {
         int ret = in_grouping(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
@@ -233,27 +281,26 @@ static int r_postlude(struct SN_env * z) {
     while(1) {
         int c1 = z->c;
         z->bra = z->c;
-        among_var = find_among(z, a_0, 6);
-        if (!(among_var)) goto lab0;
+        among_var = find_among(z, a_1, 6);
         z->ket = z->c;
         switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_3);
+                {   int ret = slice_from_s(z, 1, s_6);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_4);
+                {   int ret = slice_from_s(z, 1, s_7);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_from_s(z, 1, s_5);
+                {   int ret = slice_from_s(z, 1, s_8);
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = slice_from_s(z, 1, s_6);
+                {   int ret = slice_from_s(z, 1, s_9);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -271,13 +318,11 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_standard_suffix(struct SN_env * z) {
@@ -285,8 +330,8 @@ static int r_standard_suffix(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
-        among_var = find_among_b(z, a_1, 7);
-        if (!(among_var)) goto lab0;
+        among_var = find_among_b(z, a_2, 11);
+        if (!among_var) goto lab0;
         z->bra = z->c;
         {   int ret = r_R1(z);
             if (ret == 0) goto lab0;
@@ -294,6 +339,12 @@ static int r_standard_suffix(struct SN_env * z) {
         }
         switch (among_var) {
             case 1:
+                {   int m2 = z->l - z->c; (void)m2;
+                    if (!(eq_s_b(z, 4, s_10))) goto lab1;
+                    goto lab0;
+                lab1:
+                    z->c = z->l - m2;
+                }
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
@@ -302,37 +353,47 @@ static int r_standard_suffix(struct SN_env * z) {
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m2 = z->l - z->c; (void)m2;
+                break;
+            case 3:
+                {   int ret = slice_del(z);
+                    if (ret < 0) return ret;
+                }
+                {   int m3 = z->l - z->c; (void)m3;
                     z->ket = z->c;
-                    if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; }
+                    if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m3; goto lab2; }
                     z->c--;
                     z->bra = z->c;
-                    if (!(eq_s_b(z, 3, s_7))) { z->c = z->l - m2; goto lab1; }
+                    if (!(eq_s_b(z, 3, s_11))) { z->c = z->l - m3; goto lab2; }
                     {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
-                lab1:
+                lab2:
                     ;
                 }
                 break;
-            case 3:
+            case 4:
                 if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0;
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
+            case 5:
+                {   int ret = slice_from_s(z, 1, s_12);
+                    if (ret < 0) return ret;
+                }
+                break;
         }
     lab0:
         z->c = z->l - m1;
     }
-    {   int m3 = z->l - z->c; (void)m3;
+    {   int m4 = z->l - z->c; (void)m4;
         z->ket = z->c;
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
-        among_var = find_among_b(z, a_2, 4);
-        if (!(among_var)) goto lab2;
+        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
+        among_var = find_among_b(z, a_3, 4);
+        if (!among_var) goto lab3;
         z->bra = z->c;
         {   int ret = r_R1(z);
-            if (ret == 0) goto lab2;
+            if (ret == 0) goto lab3;
             if (ret < 0) return ret;
         }
         switch (among_var) {
@@ -342,25 +403,25 @@ static int r_standard_suffix(struct SN_env * z) {
                 }
                 break;
             case 2:
-                if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab2;
+                if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab3;
 z->c = z->c - 3;
-                if (z->c < z->lb) goto lab2;
+                if (z->c < z->lb) goto lab3;
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
         }
-    lab2:
-        z->c = z->l - m3;
+    lab3:
+        z->c = z->l - m4;
     }
-    {   int m4 = z->l - z->c; (void)m4;
+    {   int m5 = z->l - z->c; (void)m5;
         z->ket = z->c;
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
-        among_var = find_among_b(z, a_4, 8);
-        if (!(among_var)) goto lab3;
+        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab4;
+        among_var = find_among_b(z, a_5, 8);
+        if (!among_var) goto lab4;
         z->bra = z->c;
         {   int ret = r_R2(z);
-            if (ret == 0) goto lab3;
+            if (ret == 0) goto lab4;
             if (ret < 0) return ret;
         }
         switch (among_var) {
@@ -368,35 +429,35 @@ z->c = z->c - 3;
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m5 = z->l - z->c; (void)m5;
+                {   int m6 = z->l - z->c; (void)m6;
                     z->ket = z->c;
-                    if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m5; goto lab4; }
+                    if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m6; goto lab5; }
                     z->bra = z->c;
-                    {   int m6 = z->l - z->c; (void)m6;
-                        if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5;
+                    {   int m7 = z->l - z->c; (void)m7;
+                        if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
                         z->c--;
-                        { z->c = z->l - m5; goto lab4; }
-                    lab5:
-                        z->c = z->l - m6;
+                        { z->c = z->l - m6; goto lab5; }
+                    lab6:
+                        z->c = z->l - m7;
                     }
                     {   int ret = r_R2(z);
-                        if (ret == 0) { z->c = z->l - m5; goto lab4; }
+                        if (ret == 0) { z->c = z->l - m6; goto lab5; }
                         if (ret < 0) return ret;
                     }
                     {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
-                lab4:
+                lab5:
                     ;
                 }
                 break;
             case 2:
-                {   int m7 = z->l - z->c; (void)m7;
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
+                {   int m8 = z->l - z->c; (void)m8;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7;
                     z->c--;
-                    goto lab3;
-                lab6:
-                    z->c = z->l - m7;
+                    goto lab4;
+                lab7:
+                    z->c = z->l - m8;
                 }
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
@@ -406,25 +467,25 @@ z->c = z->c - 3;
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m8 = z->l - z->c; (void)m8;
+                {   int m9 = z->l - z->c; (void)m9;
                     z->ket = z->c;
-                    {   int m9 = z->l - z->c; (void)m9;
-                        if (!(eq_s_b(z, 2, s_9))) goto lab9;
-                        goto lab8;
-                    lab9:
-                        z->c = z->l - m9;
-                        if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m8; goto lab7; }
+                    {   int m10 = z->l - z->c; (void)m10;
+                        if (!(eq_s_b(z, 2, s_14))) goto lab10;
+                        goto lab9;
+                    lab10:
+                        z->c = z->l - m10;
+                        if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m9; goto lab8; }
                     }
-                lab8:
+                lab9:
                     z->bra = z->c;
                     {   int ret = r_R1(z);
-                        if (ret == 0) { z->c = z->l - m8; goto lab7; }
+                        if (ret == 0) { z->c = z->l - m9; goto lab8; }
                         if (ret < 0) return ret;
                     }
                     {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
-                lab7:
+                lab8:
                     ;
                 }
                 break;
@@ -432,25 +493,25 @@ z->c = z->c - 3;
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m10 = z->l - z->c; (void)m10;
+                {   int m11 = z->l - z->c; (void)m11;
                     z->ket = z->c;
-                    if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; }
-                    if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; }
+                    if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m11; goto lab11; }
+                    if (!find_among_b(z, a_4, 2)) { z->c = z->l - m11; goto lab11; }
                     z->bra = z->c;
                     {   int ret = r_R2(z);
-                        if (ret == 0) { z->c = z->l - m10; goto lab10; }
+                        if (ret == 0) { z->c = z->l - m11; goto lab11; }
                         if (ret < 0) return ret;
                     }
                     {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
-                lab10:
+                lab11:
                     ;
                 }
                 break;
         }
-    lab3:
-        z->c = z->l - m4;
+    lab4:
+        z->c = z->l - m5;
     }
     return 1;
 }
@@ -470,7 +531,7 @@ extern int german_ISO_8859_1_stem(struct SN_env * z) {
     }
     z->lb = z->c; z->c = z->l;
 
-    
+
     {   int ret = r_standard_suffix(z);
         if (ret < 0) return ret;
     }
index f653ee4d7bb684815d3a9081237b4f889a06c132..8624d0382ebde6d4288c4d5be7eb1ae9e135f851 100644 (file)
@@ -123,7 +123,7 @@ static const symbol s_6[] = { 'a', 'j', 'a', 'r' };
 static int r_remove_particle(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0;
-    if (!(find_among_b(z, a_0, 3))) return 0;
+    if (!find_among_b(z, a_0, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -135,7 +135,7 @@ static int r_remove_particle(struct SN_env * z) {
 static int r_remove_possessive_pronoun(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0;
-    if (!(find_among_b(z, a_1, 3))) return 0;
+    if (!find_among_b(z, a_1, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -145,19 +145,18 @@ static int r_remove_possessive_pronoun(struct SN_env * z) {
 }
 
 static int r_SUFFIX_KAN_OK(struct SN_env * z) {
-    
-    if (!(z->I[0] != 3)) return 0;
-    if (!(z->I[0] != 2)) return 0;
+
+    if (z->I[0] == 3) return 0;
+    if (z->I[0] == 2) return 0;
     return 1;
 }
 
 static int r_SUFFIX_AN_OK(struct SN_env * z) {
-    if (!(z->I[0] != 1)) return 0;
-    return 1;
+    return z->I[0] != 1;
 }
 
 static int r_SUFFIX_I_OK(struct SN_env * z) {
-    if (!(z->I[0] <= 2)) return 0;
+    if (z->I[0] > 2) return 0;
     {   int m1 = z->l - z->c; (void)m1;
         if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0;
         z->c--;
@@ -171,7 +170,7 @@ static int r_SUFFIX_I_OK(struct SN_env * z) {
 static int r_remove_suffix(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0;
-    if (!(find_among_b(z, a_2, 3))) return 0;
+    if (!find_among_b(z, a_2, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -196,7 +195,7 @@ static int r_remove_first_order_prefix(struct SN_env * z) {
     z->bra = z->c;
     if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0;
     among_var = find_among(z, a_3, 12);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     switch (among_var) {
         case 1:
@@ -276,7 +275,7 @@ static int r_remove_second_order_prefix(struct SN_env * z) {
     z->bra = z->c;
     if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0;
     among_var = find_among(z, a_4, 6);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     switch (among_var) {
         case 1:
@@ -315,7 +314,8 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
     {   int c1 = z->c;
         while(1) {
             int c2 = z->c;
-            {   
+
+            {
                 int ret = out_grouping(z, g_vowel, 97, 117, 1);
                 if (ret < 0) goto lab1;
                 z->c += ret;
@@ -328,7 +328,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
         }
         z->c = c1;
     }
-    if (!(z->I[1] > 2)) return 0;
+    if (z->I[1] <= 2) return 0;
     z->I[0] = 0;
     z->lb = z->c; z->c = z->l;
 
@@ -338,7 +338,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
         }
         z->c = z->l - m3;
     }
-    if (!(z->I[1] > 2)) return 0;
+    if (z->I[1] <= 2) return 0;
     {   int m4 = z->l - z->c; (void)m4;
         {   int ret = r_remove_possessive_pronoun(z);
             if (ret < 0) return ret;
@@ -346,7 +346,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
         z->c = z->l - m4;
     }
     z->c = z->lb;
-    if (!(z->I[1] > 2)) return 0;
+    if (z->I[1] <= 2) return 0;
     {   int c5 = z->c;
         {   int c_test6 = z->c;
             {   int ret = r_remove_first_order_prefix(z);
@@ -355,7 +355,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
             }
             {   int c7 = z->c;
                 {   int c_test8 = z->c;
-                    if (!(z->I[1] > 2)) goto lab4;
+                    if (z->I[1] <= 2) goto lab4;
                     z->lb = z->c; z->c = z->l;
 
                     {   int ret = r_remove_suffix(z);
@@ -365,7 +365,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
                     z->c = z->lb;
                     z->c = c_test8;
                 }
-                if (!(z->I[1] > 2)) goto lab4;
+                if (z->I[1] <= 2) goto lab4;
                 {   int ret = r_remove_second_order_prefix(z);
                     if (ret == 0) goto lab4;
                     if (ret < 0) return ret;
@@ -385,7 +385,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
             z->c = c9;
         }
         {   int c10 = z->c;
-            if (!(z->I[1] > 2)) goto lab5;
+            if (z->I[1] <= 2) goto lab5;
             z->lb = z->c; z->c = z->l;
 
             {   int ret = r_remove_suffix(z);
index c93d3216eb2420af99df08e39e7396a8f6fbdb17..a61591eab3f950c038403209522588feadc538ed 100644 (file)
@@ -225,24 +225,28 @@ static int r_mark_regions(struct SN_env * z) {
     z->I[1] = z->l;
     z->I[0] = z->l;
     {   int c1 = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
         z->I[2] = z->c;
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
@@ -258,7 +262,7 @@ static int r_initial_morph(struct SN_env * z) {
     int among_var;
     z->bra = z->c;
     among_var = find_among(z, a_0, 24);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     switch (among_var) {
         case 1:
@@ -316,25 +320,22 @@ static int r_initial_morph(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_noun_sfx(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_1, 16);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -361,7 +362,7 @@ static int r_deriv(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_2, 25);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -406,7 +407,7 @@ static int r_verb_sfx(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_3, 12);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -436,7 +437,7 @@ extern int irish_ISO_8859_1_stem(struct SN_env * z) {
         }
         z->c = c1;
     }
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index 7e9f6504876c4988321e4e045d9bd8a4b9fb821e..122449e90a9a1ea0cf87b6fdea40ffdb49161c1b 100644 (file)
@@ -19,6 +19,7 @@ static int r_RV(struct SN_env * z);
 static int r_mark_regions(struct SN_env * z);
 static int r_postlude(struct SN_env * z);
 static int r_prelude(struct SN_env * z);
+static int r_exceptions(struct SN_env * z);
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -487,6 +488,8 @@ static const symbol s_14[] = { 'e', 'n', 't', 'e' };
 static const symbol s_15[] = { 'a', 't' };
 static const symbol s_16[] = { 'a', 't' };
 static const symbol s_17[] = { 'i', 'c' };
+static const symbol s_18[] = { 'd', 'i', 'v', 'a', 'n', 'o' };
+static const symbol s_19[] = { 'd', 'i', 'v', 'a', 'n' };
 
 static int r_prelude(struct SN_env * z) {
     int among_var;
@@ -495,7 +498,6 @@ static int r_prelude(struct SN_env * z) {
             int c2 = z->c;
             z->bra = z->c;
             among_var = find_among(z, a_0, 7);
-            if (!(among_var)) goto lab0;
             z->ket = z->c;
             switch (among_var) {
                 case 1:
@@ -590,7 +592,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
             {   int c3 = z->c;
                 if (out_grouping(z, g_v, 97, 249, 0)) goto lab4;
-                {   
+
+                {
                     int ret = out_grouping(z, g_v, 97, 249, 1);
                     if (ret < 0) goto lab4;
                     z->c += ret;
@@ -599,7 +602,8 @@ static int r_mark_regions(struct SN_env * z) {
             lab4:
                 z->c = c3;
                 if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
-                {   
+
+                {
                     int ret = in_grouping(z, g_v, 97, 249, 1);
                     if (ret < 0) goto lab2;
                     z->c += ret;
@@ -612,7 +616,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (out_grouping(z, g_v, 97, 249, 0)) goto lab0;
             {   int c4 = z->c;
                 if (out_grouping(z, g_v, 97, 249, 0)) goto lab6;
-                {   
+
+                {
                     int ret = out_grouping(z, g_v, 97, 249, 1);
                     if (ret < 0) goto lab6;
                     z->c += ret;
@@ -633,23 +638,27 @@ static int r_mark_regions(struct SN_env * z) {
         z->c = c1;
     }
     {   int c5 = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 249, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 249, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 249, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 249, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
@@ -668,7 +677,6 @@ static int r_postlude(struct SN_env * z) {
         z->bra = z->c;
         if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
         among_var = find_among(z, a_1, 3);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
@@ -695,29 +703,26 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_attached_pronoun(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_2, 37))) return 0;
+    if (!find_among_b(z, a_2, 37)) return 0;
     z->bra = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
     among_var = find_among_b(z, a_3, 5);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     {   int ret = r_RV(z);
         if (ret <= 0) return ret;
     }
@@ -740,7 +745,7 @@ static int r_standard_suffix(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_6, 51);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -816,7 +821,7 @@ static int r_standard_suffix(struct SN_env * z) {
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; }
                 among_var = find_among_b(z, a_4, 4);
-                if (!(among_var)) { z->c = z->l - m2; goto lab1; }
+                if (!among_var) { z->c = z->l - m2; goto lab1; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m2; goto lab1; }
@@ -853,7 +858,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int m3 = z->l - z->c; (void)m3;
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; }
-                if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m3; goto lab2; }
+                if (!find_among_b(z, a_5, 3)) { z->c = z->l - m3; goto lab2; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m3; goto lab2; }
@@ -908,7 +913,7 @@ static int r_verb_suffix(struct SN_env * z) {
         if (z->c < z->I[2]) return 0;
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
-        if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_7, 87)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         {   int ret = slice_del(z);
             if (ret < 0) return ret;
@@ -963,56 +968,77 @@ static int r_vowel_suffix(struct SN_env * z) {
     return 1;
 }
 
+static int r_exceptions(struct SN_env * z) {
+    z->bra = z->c;
+    if (!(eq_s(z, 6, s_18))) return 0;
+    if (z->c < z->l) return 0;
+    z->ket = z->c;
+    {   int ret = slice_from_s(z, 5, s_19);
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
 extern int italian_ISO_8859_1_stem(struct SN_env * z) {
     {   int c1 = z->c;
-        {   int ret = r_prelude(z);
+        {   int ret = r_exceptions(z);
+            if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
+        goto lab0;
+    lab1:
         z->c = c1;
-    }
-    
-    {   int ret = r_mark_regions(z);
-        if (ret < 0) return ret;
-    }
-    z->lb = z->c; z->c = z->l;
+        {   int c2 = z->c;
+            {   int ret = r_prelude(z);
+                if (ret < 0) return ret;
+            }
+            z->c = c2;
+        }
 
-    {   int m2 = z->l - z->c; (void)m2;
-        {   int ret = r_attached_pronoun(z);
+        {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
-        z->c = z->l - m2;
-    }
-    {   int m3 = z->l - z->c; (void)m3;
-        {   int m4 = z->l - z->c; (void)m4;
-            {   int ret = r_standard_suffix(z);
-                if (ret == 0) goto lab2;
+        z->lb = z->c; z->c = z->l;
+
+        {   int m3 = z->l - z->c; (void)m3;
+            {   int ret = r_attached_pronoun(z);
                 if (ret < 0) return ret;
             }
-            goto lab1;
+            z->c = z->l - m3;
+        }
+        {   int m4 = z->l - z->c; (void)m4;
+            {   int m5 = z->l - z->c; (void)m5;
+                {   int ret = r_standard_suffix(z);
+                    if (ret == 0) goto lab4;
+                    if (ret < 0) return ret;
+                }
+                goto lab3;
+            lab4:
+                z->c = z->l - m5;
+                {   int ret = r_verb_suffix(z);
+                    if (ret == 0) goto lab2;
+                    if (ret < 0) return ret;
+                }
+            }
+        lab3:
         lab2:
             z->c = z->l - m4;
-            {   int ret = r_verb_suffix(z);
-                if (ret == 0) goto lab0;
+        }
+        {   int m6 = z->l - z->c; (void)m6;
+            {   int ret = r_vowel_suffix(z);
                 if (ret < 0) return ret;
             }
+            z->c = z->l - m6;
         }
-    lab1:
-    lab0:
-        z->c = z->l - m3;
-    }
-    {   int m5 = z->l - z->c; (void)m5;
-        {   int ret = r_vowel_suffix(z);
-            if (ret < 0) return ret;
-        }
-        z->c = z->l - m5;
-    }
-    z->c = z->lb;
-    {   int c6 = z->c;
-        {   int ret = r_postlude(z);
-            if (ret < 0) return ret;
+        z->c = z->lb;
+        {   int c7 = z->c;
+            {   int ret = r_postlude(z);
+                if (ret < 0) return ret;
+            }
+            z->c = c7;
         }
-        z->c = c6;
     }
+lab0:
     return 1;
 }
 
index 820029004bb2838468cdc6e72fd71e4865fbbf63..c10c0d761f1f5ffe8843798087ad89cf61dbe7e9 100644 (file)
@@ -138,15 +138,17 @@ z->c = z->c + 3;
         z->I[0] = z->c;
         z->c = c_test1;
     }
+
     if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0;
-    {   
+
+    {
         int ret = in_grouping(z, g_v, 97, 248, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
     z->I[1] = z->c;
-    
-    if (!(z->I[1] < z->I[0])) goto lab0;
+
+    if (z->I[1] >= z->I[0]) goto lab0;
     z->I[1] = z->I[0];
 lab0:
     return 1;
@@ -161,7 +163,7 @@ static int r_main_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
         among_var = find_among_b(z, a_0, 29);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -203,7 +205,7 @@ static int r_consonant_pair(struct SN_env * z) {
             mlimit2 = z->lb; z->lb = z->I[1];
             z->ket = z->c;
             if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; }
-            if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; }
+            if (!find_among_b(z, a_1, 2)) { z->lb = mlimit2; return 0; }
             z->bra = z->c;
             z->lb = mlimit2;
         }
@@ -225,7 +227,7 @@ static int r_other_suffix(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[1];
         z->ket = z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
-        if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_2, 11)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
index a782ce399687f0965b35e0d1521beee0f025e515..b8be0a26e4f0a46bb073177dedb4e50095a00e63 100644 (file)
@@ -230,13 +230,11 @@ static int r_shortv(struct SN_env * z) {
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_Step_1a(struct SN_env * z) {
@@ -244,7 +242,7 @@ static int r_Step_1a(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
     among_var = find_among_b(z, a_0, 4);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -271,7 +269,7 @@ static int r_Step_1b(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
     among_var = find_among_b(z, a_2, 3);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -284,7 +282,8 @@ static int r_Step_1b(struct SN_env * z) {
             break;
         case 2:
             {   int m_test1 = z->l - z->c;
-                {   
+
+                {
                     int ret = out_grouping_b(z, g_v, 97, 121, 1);
                     if (ret < 0) return 0;
                     z->c -= ret;
@@ -297,7 +296,6 @@ static int r_Step_1b(struct SN_env * z) {
             {   int m_test2 = z->l - z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
                 among_var = find_among_b(z, a_1, 13);
-                if (!(among_var)) return 0;
                 z->c = z->l - m_test2;
             }
             switch (among_var) {
@@ -354,7 +352,8 @@ static int r_Step_1c(struct SN_env * z) {
     }
 lab0:
     z->bra = z->c;
-    {   
+
+    {
         int ret = out_grouping_b(z, g_v, 97, 121, 1);
         if (ret < 0) return 0;
         z->c -= ret;
@@ -370,7 +369,7 @@ static int r_Step_2(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_3, 20);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -450,7 +449,7 @@ static int r_Step_3(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_4, 7);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -480,7 +479,7 @@ static int r_Step_4(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_5, 19);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R2(z);
         if (ret <= 0) return ret;
@@ -515,26 +514,24 @@ static int r_Step_5a(struct SN_env * z) {
     if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
     z->c--;
     z->bra = z->c;
+
+    {   int ret = r_R2(z);
+        if (ret == 0) goto lab1;
+        if (ret < 0) return ret;
+    }
+    goto lab0;
+lab1:
+    {   int ret = r_R1(z);
+        if (ret <= 0) return ret;
+    }
     {   int m1 = z->l - z->c; (void)m1;
-        {   int ret = r_R2(z);
-            if (ret == 0) goto lab1;
+        {   int ret = r_shortv(z);
+            if (ret == 0) goto lab2;
             if (ret < 0) return ret;
         }
-        goto lab0;
-    lab1:
+        return 0;
+    lab2:
         z->c = z->l - m1;
-        {   int ret = r_R1(z);
-            if (ret <= 0) return ret;
-        }
-        {   int m2 = z->l - z->c; (void)m2;
-            {   int ret = r_shortv(z);
-                if (ret == 0) goto lab2;
-                if (ret < 0) return ret;
-            }
-            return 0;
-        lab2:
-            z->c = z->l - m2;
-        }
     }
 lab0:
     {   int ret = slice_del(z);
@@ -604,23 +601,27 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
     z->I[1] = z->l;
     z->I[0] = z->l;
     {   int c5 = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
index c27db66e1efe7ce934c10a2bb4f9d01c54429e45..33aae89f7322bf7a1657ce72327e328b415a5769 100644 (file)
@@ -479,7 +479,6 @@ static int r_prelude(struct SN_env * z) {
         z->bra = z->c;
         if (z->c >= z->l || (z->p[z->c + 0] != 227 && z->p[z->c + 0] != 245)) among_var = 3; else
         among_var = find_among(z, a_0, 3);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
@@ -514,7 +513,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
             {   int c3 = z->c;
                 if (out_grouping(z, g_v, 97, 250, 0)) goto lab4;
-                {   
+
+                {
                     int ret = out_grouping(z, g_v, 97, 250, 1);
                     if (ret < 0) goto lab4;
                     z->c += ret;
@@ -523,7 +523,8 @@ static int r_mark_regions(struct SN_env * z) {
             lab4:
                 z->c = c3;
                 if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
-                {   
+
+                {
                     int ret = in_grouping(z, g_v, 97, 250, 1);
                     if (ret < 0) goto lab2;
                     z->c += ret;
@@ -536,7 +537,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (out_grouping(z, g_v, 97, 250, 0)) goto lab0;
             {   int c4 = z->c;
                 if (out_grouping(z, g_v, 97, 250, 0)) goto lab6;
-                {   
+
+                {
                     int ret = out_grouping(z, g_v, 97, 250, 1);
                     if (ret < 0) goto lab6;
                     z->c += ret;
@@ -557,23 +559,27 @@ static int r_mark_regions(struct SN_env * z) {
         z->c = c1;
     }
     {   int c5 = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
@@ -592,7 +598,6 @@ static int r_postlude(struct SN_env * z) {
         z->bra = z->c;
         if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else
         among_var = find_among(z, a_1, 3);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
@@ -619,18 +624,15 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_standard_suffix(struct SN_env * z) {
@@ -638,7 +640,7 @@ static int r_standard_suffix(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_5, 45);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -684,7 +686,7 @@ static int r_standard_suffix(struct SN_env * z) {
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; }
                 among_var = find_among_b(z, a_2, 4);
-                if (!(among_var)) { z->c = z->l - m1; goto lab0; }
+                if (!among_var) { z->c = z->l - m1; goto lab0; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m1; goto lab0; }
@@ -721,7 +723,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int m2 = z->l - z->c; (void)m2;
                 z->ket = z->c;
                 if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; }
-                if (!(find_among_b(z, a_3, 3))) { z->c = z->l - m2; goto lab1; }
+                if (!find_among_b(z, a_3, 3)) { z->c = z->l - m2; goto lab1; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m2; goto lab1; }
@@ -744,7 +746,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int m3 = z->l - z->c; (void)m3;
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; }
-                if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
+                if (!find_among_b(z, a_4, 3)) { z->c = z->l - m3; goto lab2; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m3; goto lab2; }
@@ -799,7 +801,7 @@ static int r_verb_suffix(struct SN_env * z) {
         if (z->c < z->I[2]) return 0;
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
-        if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_6, 120)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         {   int ret = slice_del(z);
             if (ret < 0) return ret;
@@ -811,7 +813,7 @@ static int r_verb_suffix(struct SN_env * z) {
 
 static int r_residual_suffix(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_7, 7))) return 0;
+    if (!find_among_b(z, a_7, 7)) return 0;
     z->bra = z->c;
     {   int ret = r_RV(z);
         if (ret <= 0) return ret;
@@ -826,7 +828,7 @@ static int r_residual_form(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_8, 4);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -882,7 +884,7 @@ extern int portuguese_ISO_8859_1_stem(struct SN_env * z) {
         }
         z->c = c1;
     }
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index 9fb6d3b660aa899402cd9bb696fa789d0cd0ffe2..252bb28cd3c43f212e8f2c7ac88e38338fbf6fd1 100644 (file)
@@ -512,7 +512,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (in_grouping(z, g_v, 97, 252, 0)) goto lab2;
             {   int c3 = z->c;
                 if (out_grouping(z, g_v, 97, 252, 0)) goto lab4;
-                {   
+
+                {
                     int ret = out_grouping(z, g_v, 97, 252, 1);
                     if (ret < 0) goto lab4;
                     z->c += ret;
@@ -521,7 +522,8 @@ static int r_mark_regions(struct SN_env * z) {
             lab4:
                 z->c = c3;
                 if (in_grouping(z, g_v, 97, 252, 0)) goto lab2;
-                {   
+
+                {
                     int ret = in_grouping(z, g_v, 97, 252, 1);
                     if (ret < 0) goto lab2;
                     z->c += ret;
@@ -534,7 +536,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (out_grouping(z, g_v, 97, 252, 0)) goto lab0;
             {   int c4 = z->c;
                 if (out_grouping(z, g_v, 97, 252, 0)) goto lab6;
-                {   
+
+                {
                     int ret = out_grouping(z, g_v, 97, 252, 1);
                     if (ret < 0) goto lab6;
                     z->c += ret;
@@ -555,23 +558,27 @@ static int r_mark_regions(struct SN_env * z) {
         z->c = c1;
     }
     {   int c5 = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
@@ -590,7 +597,6 @@ static int r_postlude(struct SN_env * z) {
         z->bra = z->c;
         if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((67641858 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else
         among_var = find_among(z, a_0, 6);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
@@ -632,29 +638,26 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_attached_pronoun(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_1, 13))) return 0;
+    if (!find_among_b(z, a_1, 13)) return 0;
     z->bra = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
     among_var = find_among_b(z, a_2, 11);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     {   int ret = r_RV(z);
         if (ret <= 0) return ret;
     }
@@ -710,7 +713,7 @@ static int r_standard_suffix(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_6, 46);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -778,7 +781,7 @@ static int r_standard_suffix(struct SN_env * z) {
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; }
                 among_var = find_among_b(z, a_3, 4);
-                if (!(among_var)) { z->c = z->l - m2; goto lab1; }
+                if (!among_var) { z->c = z->l - m2; goto lab1; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m2; goto lab1; }
@@ -815,7 +818,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int m3 = z->l - z->c; (void)m3;
                 z->ket = z->c;
                 if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; }
-                if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
+                if (!find_among_b(z, a_4, 3)) { z->c = z->l - m3; goto lab2; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m3; goto lab2; }
@@ -838,7 +841,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int m4 = z->l - z->c; (void)m4;
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m4; goto lab3; }
-                if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m4; goto lab3; }
+                if (!find_among_b(z, a_5, 3)) { z->c = z->l - m4; goto lab3; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m4; goto lab3; }
@@ -883,7 +886,7 @@ static int r_y_verb_suffix(struct SN_env * z) {
         if (z->c < z->I[2]) return 0;
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
-        if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_7, 12)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -903,7 +906,7 @@ static int r_verb_suffix(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
         among_var = find_among_b(z, a_8, 96);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -938,7 +941,7 @@ static int r_residual_suffix(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_9, 8);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -982,7 +985,7 @@ static int r_residual_suffix(struct SN_env * z) {
 }
 
 extern int spanish_ISO_8859_1_stem(struct SN_env * z) {
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index 27b710c175bffd280295422029e2364bc42dd0df..6cf715d14c4d7f2ede785c53dab9ca31b2d529e9 100644 (file)
@@ -127,7 +127,7 @@ static const symbol s_2_0[2] = { 'i', 'g' };
 static const symbol s_2_1[3] = { 'l', 'i', 'g' };
 static const symbol s_2_2[3] = { 'e', 'l', 's' };
 static const symbol s_2_3[5] = { 'f', 'u', 'l', 'l', 't' };
-static const symbol s_2_4[4] = { 'l', 0xF6, 's', 't' };
+static const symbol s_2_4[3] = { 0xF6, 's', 't' };
 
 static const struct among a_2[5] =
 {
@@ -135,14 +135,16 @@ static const struct among a_2[5] =
 { 3, s_2_1, 0, 1, 0},
 { 3, s_2_2, -1, 1, 0},
 { 5, s_2_3, -1, 3, 0},
-{ 4, s_2_4, -1, 2, 0}
+{ 3, s_2_4, -1, 2, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
 
 static const unsigned char g_s_ending[] = { 119, 127, 149 };
 
-static const symbol s_0[] = { 'l', 0xF6, 's' };
+static const unsigned char g_ost_ending[] = { 173, 58 };
+
+static const symbol s_0[] = { 0xF6, 's' };
 static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
 
 static int r_mark_regions(struct SN_env * z) {
@@ -153,15 +155,17 @@ z->c = z->c + 3;
         z->I[0] = z->c;
         z->c = c_test1;
     }
+
     if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0;
-    {   
+
+    {
         int ret = in_grouping(z, g_v, 97, 246, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
     z->I[1] = z->c;
-    
-    if (!(z->I[1] < z->I[0])) goto lab0;
+
+    if (z->I[1] >= z->I[0]) goto lab0;
     z->I[1] = z->I[0];
 lab0:
     return 1;
@@ -176,7 +180,7 @@ static int r_main_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
         among_var = find_among_b(z, a_0, 37);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -203,7 +207,7 @@ static int r_consonant_pair(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[1];
         {   int m2 = z->l - z->c; (void)m2;
             if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
-            if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; }
+            if (!find_among_b(z, a_1, 7)) { z->lb = mlimit1; return 0; }
             z->c = z->l - m2;
             z->ket = z->c;
             if (z->c <= z->lb) { z->lb = mlimit1; return 0; }
@@ -227,27 +231,28 @@ static int r_other_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
         among_var = find_among_b(z, a_2, 5);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
-        switch (among_var) {
-            case 1:
-                {   int ret = slice_del(z);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 2:
-                {   int ret = slice_from_s(z, 3, s_0);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 3:
-                {   int ret = slice_from_s(z, 4, s_1);
-                    if (ret < 0) return ret;
-                }
-                break;
-        }
         z->lb = mlimit1;
     }
+    switch (among_var) {
+        case 1:
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 2:
+            if (in_grouping_b(z, g_ost_ending, 105, 118, 0)) return 0;
+            {   int ret = slice_from_s(z, 2, s_0);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 3:
+            {   int ret = slice_from_s(z, 4, s_1);
+                if (ret < 0) return ret;
+            }
+            break;
+    }
     return 1;
 }
 
index 4650bd17ea359026bb9bd847cced13d63cac656e..7308963105d3f4de0ece4b3ee3e8705e778beb74 100644 (file)
@@ -480,10 +480,11 @@ static int r_mark_regions(struct SN_env * z) {
     z->I[0] = z->l;
     {   int c1 = z->c;
         if (in_grouping(z, g_v, 97, 252, 0)) goto lab1;
+
         if (in_grouping(z, g_v, 97, 252, 1) < 0) goto lab1;
         {   int c2 = z->c;
             if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3;
-            if (!(find_among(z, a_0, 8))) goto lab3;
+            if (!find_among(z, a_0, 8)) goto lab3;
             goto lab2;
         lab3:
             z->c = c2;
@@ -496,7 +497,8 @@ static int r_mark_regions(struct SN_env * z) {
     lab1:
         z->c = c1;
         if (out_grouping(z, g_v, 97, 252, 0)) return 0;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) return 0;
             z->c += ret;
@@ -508,8 +510,7 @@ lab0:
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_v_ending(struct SN_env * z) {
@@ -517,7 +518,7 @@ static int r_v_ending(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0;
     among_var = find_among_b(z, a_1, 2);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -540,7 +541,7 @@ static int r_v_ending(struct SN_env * z) {
 static int r_double(struct SN_env * z) {
     {   int m_test1 = z->l - z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-        if (!(find_among_b(z, a_2, 23))) return 0;
+        if (!find_among_b(z, a_2, 23)) return 0;
         z->c = z->l - m_test1;
     }
     return 1;
@@ -562,7 +563,7 @@ z->c = z->c - 1;
 static int r_instrum(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
-    if (!(find_among_b(z, a_3, 2))) return 0;
+    if (!find_among_b(z, a_3, 2)) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -581,7 +582,7 @@ static int r_instrum(struct SN_env * z) {
 
 static int r_case(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_4, 44))) return 0;
+    if (!find_among_b(z, a_4, 44)) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -600,7 +601,7 @@ static int r_case_special(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0;
     among_var = find_among_b(z, a_5, 3);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -625,7 +626,7 @@ static int r_case_other(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0;
     among_var = find_among_b(z, a_6, 6);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -653,7 +654,7 @@ static int r_case_other(struct SN_env * z) {
 static int r_factive(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0;
-    if (!(find_among_b(z, a_7, 2))) return 0;
+    if (!find_among_b(z, a_7, 2)) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -675,7 +676,7 @@ static int r_plural(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0;
     among_var = find_among_b(z, a_8, 7);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -705,7 +706,7 @@ static int r_owned(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 233)) return 0;
     among_var = find_among_b(z, a_9, 12);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -734,7 +735,7 @@ static int r_sing_owner(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_10, 31);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -764,7 +765,7 @@ static int r_plur_owner(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_11, 42);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c
deleted file mode 100644 (file)
index 0f3eb2c..0000000
+++ /dev/null
@@ -1,965 +0,0 @@
-/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
-
-#include "header.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern int romanian_ISO_8859_2_stem(struct SN_env * z);
-#ifdef __cplusplus
-}
-#endif
-static int r_vowel_suffix(struct SN_env * z);
-static int r_verb_suffix(struct SN_env * z);
-static int r_combo_suffix(struct SN_env * z);
-static int r_standard_suffix(struct SN_env * z);
-static int r_step_0(struct SN_env * z);
-static int r_R2(struct SN_env * z);
-static int r_R1(struct SN_env * z);
-static int r_RV(struct SN_env * z);
-static int r_mark_regions(struct SN_env * z);
-static int r_postlude(struct SN_env * z);
-static int r_prelude(struct SN_env * z);
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-extern struct SN_env * romanian_ISO_8859_2_create_env(void);
-extern void romanian_ISO_8859_2_close_env(struct SN_env * z);
-
-
-#ifdef __cplusplus
-}
-#endif
-static const symbol s_0_1[1] = { 'I' };
-static const symbol s_0_2[1] = { 'U' };
-
-static const struct among a_0[3] =
-{
-{ 0, 0, -1, 3, 0},
-{ 1, s_0_1, 0, 1, 0},
-{ 1, s_0_2, 0, 2, 0}
-};
-
-static const symbol s_1_0[2] = { 'e', 'a' };
-static const symbol s_1_1[4] = { 'a', 0xFE, 'i', 'a' };
-static const symbol s_1_2[3] = { 'a', 'u', 'a' };
-static const symbol s_1_3[3] = { 'i', 'u', 'a' };
-static const symbol s_1_4[4] = { 'a', 0xFE, 'i', 'e' };
-static const symbol s_1_5[3] = { 'e', 'l', 'e' };
-static const symbol s_1_6[3] = { 'i', 'l', 'e' };
-static const symbol s_1_7[4] = { 'i', 'i', 'l', 'e' };
-static const symbol s_1_8[3] = { 'i', 'e', 'i' };
-static const symbol s_1_9[4] = { 'a', 't', 'e', 'i' };
-static const symbol s_1_10[2] = { 'i', 'i' };
-static const symbol s_1_11[4] = { 'u', 'l', 'u', 'i' };
-static const symbol s_1_12[2] = { 'u', 'l' };
-static const symbol s_1_13[4] = { 'e', 'l', 'o', 'r' };
-static const symbol s_1_14[4] = { 'i', 'l', 'o', 'r' };
-static const symbol s_1_15[5] = { 'i', 'i', 'l', 'o', 'r' };
-
-static const struct among a_1[16] =
-{
-{ 2, s_1_0, -1, 3, 0},
-{ 4, s_1_1, -1, 7, 0},
-{ 3, s_1_2, -1, 2, 0},
-{ 3, s_1_3, -1, 4, 0},
-{ 4, s_1_4, -1, 7, 0},
-{ 3, s_1_5, -1, 3, 0},
-{ 3, s_1_6, -1, 5, 0},
-{ 4, s_1_7, 6, 4, 0},
-{ 3, s_1_8, -1, 4, 0},
-{ 4, s_1_9, -1, 6, 0},
-{ 2, s_1_10, -1, 4, 0},
-{ 4, s_1_11, -1, 1, 0},
-{ 2, s_1_12, -1, 1, 0},
-{ 4, s_1_13, -1, 3, 0},
-{ 4, s_1_14, -1, 4, 0},
-{ 5, s_1_15, 14, 4, 0}
-};
-
-static const symbol s_2_0[5] = { 'i', 'c', 'a', 'l', 'a' };
-static const symbol s_2_1[5] = { 'i', 'c', 'i', 'v', 'a' };
-static const symbol s_2_2[5] = { 'a', 't', 'i', 'v', 'a' };
-static const symbol s_2_3[5] = { 'i', 't', 'i', 'v', 'a' };
-static const symbol s_2_4[5] = { 'i', 'c', 'a', 'l', 'e' };
-static const symbol s_2_5[6] = { 'a', 0xFE, 'i', 'u', 'n', 'e' };
-static const symbol s_2_6[6] = { 'i', 0xFE, 'i', 'u', 'n', 'e' };
-static const symbol s_2_7[6] = { 'a', 't', 'o', 'a', 'r', 'e' };
-static const symbol s_2_8[6] = { 'i', 't', 'o', 'a', 'r', 'e' };
-static const symbol s_2_9[6] = { 0xE3, 't', 'o', 'a', 'r', 'e' };
-static const symbol s_2_10[7] = { 'i', 'c', 'i', 't', 'a', 't', 'e' };
-static const symbol s_2_11[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
-static const symbol s_2_12[9] = { 'i', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
-static const symbol s_2_13[7] = { 'i', 'v', 'i', 't', 'a', 't', 'e' };
-static const symbol s_2_14[5] = { 'i', 'c', 'i', 'v', 'e' };
-static const symbol s_2_15[5] = { 'a', 't', 'i', 'v', 'e' };
-static const symbol s_2_16[5] = { 'i', 't', 'i', 'v', 'e' };
-static const symbol s_2_17[5] = { 'i', 'c', 'a', 'l', 'i' };
-static const symbol s_2_18[5] = { 'a', 't', 'o', 'r', 'i' };
-static const symbol s_2_19[7] = { 'i', 'c', 'a', 't', 'o', 'r', 'i' };
-static const symbol s_2_20[5] = { 'i', 't', 'o', 'r', 'i' };
-static const symbol s_2_21[5] = { 0xE3, 't', 'o', 'r', 'i' };
-static const symbol s_2_22[7] = { 'i', 'c', 'i', 't', 'a', 't', 'i' };
-static const symbol s_2_23[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'i' };
-static const symbol s_2_24[7] = { 'i', 'v', 'i', 't', 'a', 't', 'i' };
-static const symbol s_2_25[5] = { 'i', 'c', 'i', 'v', 'i' };
-static const symbol s_2_26[5] = { 'a', 't', 'i', 'v', 'i' };
-static const symbol s_2_27[5] = { 'i', 't', 'i', 'v', 'i' };
-static const symbol s_2_28[6] = { 'i', 'c', 'i', 't', 0xE3, 'i' };
-static const symbol s_2_29[8] = { 'a', 'b', 'i', 'l', 'i', 't', 0xE3, 'i' };
-static const symbol s_2_30[6] = { 'i', 'v', 'i', 't', 0xE3, 'i' };
-static const symbol s_2_31[7] = { 'i', 'c', 'i', 't', 0xE3, 0xFE, 'i' };
-static const symbol s_2_32[9] = { 'a', 'b', 'i', 'l', 'i', 't', 0xE3, 0xFE, 'i' };
-static const symbol s_2_33[7] = { 'i', 'v', 'i', 't', 0xE3, 0xFE, 'i' };
-static const symbol s_2_34[4] = { 'i', 'c', 'a', 'l' };
-static const symbol s_2_35[4] = { 'a', 't', 'o', 'r' };
-static const symbol s_2_36[6] = { 'i', 'c', 'a', 't', 'o', 'r' };
-static const symbol s_2_37[4] = { 'i', 't', 'o', 'r' };
-static const symbol s_2_38[4] = { 0xE3, 't', 'o', 'r' };
-static const symbol s_2_39[4] = { 'i', 'c', 'i', 'v' };
-static const symbol s_2_40[4] = { 'a', 't', 'i', 'v' };
-static const symbol s_2_41[4] = { 'i', 't', 'i', 'v' };
-static const symbol s_2_42[5] = { 'i', 'c', 'a', 'l', 0xE3 };
-static const symbol s_2_43[5] = { 'i', 'c', 'i', 'v', 0xE3 };
-static const symbol s_2_44[5] = { 'a', 't', 'i', 'v', 0xE3 };
-static const symbol s_2_45[5] = { 'i', 't', 'i', 'v', 0xE3 };
-
-static const struct among a_2[46] =
-{
-{ 5, s_2_0, -1, 4, 0},
-{ 5, s_2_1, -1, 4, 0},
-{ 5, s_2_2, -1, 5, 0},
-{ 5, s_2_3, -1, 6, 0},
-{ 5, s_2_4, -1, 4, 0},
-{ 6, s_2_5, -1, 5, 0},
-{ 6, s_2_6, -1, 6, 0},
-{ 6, s_2_7, -1, 5, 0},
-{ 6, s_2_8, -1, 6, 0},
-{ 6, s_2_9, -1, 5, 0},
-{ 7, s_2_10, -1, 4, 0},
-{ 9, s_2_11, -1, 1, 0},
-{ 9, s_2_12, -1, 2, 0},
-{ 7, s_2_13, -1, 3, 0},
-{ 5, s_2_14, -1, 4, 0},
-{ 5, s_2_15, -1, 5, 0},
-{ 5, s_2_16, -1, 6, 0},
-{ 5, s_2_17, -1, 4, 0},
-{ 5, s_2_18, -1, 5, 0},
-{ 7, s_2_19, 18, 4, 0},
-{ 5, s_2_20, -1, 6, 0},
-{ 5, s_2_21, -1, 5, 0},
-{ 7, s_2_22, -1, 4, 0},
-{ 9, s_2_23, -1, 1, 0},
-{ 7, s_2_24, -1, 3, 0},
-{ 5, s_2_25, -1, 4, 0},
-{ 5, s_2_26, -1, 5, 0},
-{ 5, s_2_27, -1, 6, 0},
-{ 6, s_2_28, -1, 4, 0},
-{ 8, s_2_29, -1, 1, 0},
-{ 6, s_2_30, -1, 3, 0},
-{ 7, s_2_31, -1, 4, 0},
-{ 9, s_2_32, -1, 1, 0},
-{ 7, s_2_33, -1, 3, 0},
-{ 4, s_2_34, -1, 4, 0},
-{ 4, s_2_35, -1, 5, 0},
-{ 6, s_2_36, 35, 4, 0},
-{ 4, s_2_37, -1, 6, 0},
-{ 4, s_2_38, -1, 5, 0},
-{ 4, s_2_39, -1, 4, 0},
-{ 4, s_2_40, -1, 5, 0},
-{ 4, s_2_41, -1, 6, 0},
-{ 5, s_2_42, -1, 4, 0},
-{ 5, s_2_43, -1, 4, 0},
-{ 5, s_2_44, -1, 5, 0},
-{ 5, s_2_45, -1, 6, 0}
-};
-
-static const symbol s_3_0[3] = { 'i', 'c', 'a' };
-static const symbol s_3_1[5] = { 'a', 'b', 'i', 'l', 'a' };
-static const symbol s_3_2[5] = { 'i', 'b', 'i', 'l', 'a' };
-static const symbol s_3_3[4] = { 'o', 'a', 's', 'a' };
-static const symbol s_3_4[3] = { 'a', 't', 'a' };
-static const symbol s_3_5[3] = { 'i', 't', 'a' };
-static const symbol s_3_6[4] = { 'a', 'n', 't', 'a' };
-static const symbol s_3_7[4] = { 'i', 's', 't', 'a' };
-static const symbol s_3_8[3] = { 'u', 't', 'a' };
-static const symbol s_3_9[3] = { 'i', 'v', 'a' };
-static const symbol s_3_10[2] = { 'i', 'c' };
-static const symbol s_3_11[3] = { 'i', 'c', 'e' };
-static const symbol s_3_12[5] = { 'a', 'b', 'i', 'l', 'e' };
-static const symbol s_3_13[5] = { 'i', 'b', 'i', 'l', 'e' };
-static const symbol s_3_14[4] = { 'i', 's', 'm', 'e' };
-static const symbol s_3_15[4] = { 'i', 'u', 'n', 'e' };
-static const symbol s_3_16[4] = { 'o', 'a', 's', 'e' };
-static const symbol s_3_17[3] = { 'a', 't', 'e' };
-static const symbol s_3_18[5] = { 'i', 't', 'a', 't', 'e' };
-static const symbol s_3_19[3] = { 'i', 't', 'e' };
-static const symbol s_3_20[4] = { 'a', 'n', 't', 'e' };
-static const symbol s_3_21[4] = { 'i', 's', 't', 'e' };
-static const symbol s_3_22[3] = { 'u', 't', 'e' };
-static const symbol s_3_23[3] = { 'i', 'v', 'e' };
-static const symbol s_3_24[3] = { 'i', 'c', 'i' };
-static const symbol s_3_25[5] = { 'a', 'b', 'i', 'l', 'i' };
-static const symbol s_3_26[5] = { 'i', 'b', 'i', 'l', 'i' };
-static const symbol s_3_27[4] = { 'i', 'u', 'n', 'i' };
-static const symbol s_3_28[5] = { 'a', 't', 'o', 'r', 'i' };
-static const symbol s_3_29[3] = { 'o', 's', 'i' };
-static const symbol s_3_30[3] = { 'a', 't', 'i' };
-static const symbol s_3_31[5] = { 'i', 't', 'a', 't', 'i' };
-static const symbol s_3_32[3] = { 'i', 't', 'i' };
-static const symbol s_3_33[4] = { 'a', 'n', 't', 'i' };
-static const symbol s_3_34[4] = { 'i', 's', 't', 'i' };
-static const symbol s_3_35[3] = { 'u', 't', 'i' };
-static const symbol s_3_36[4] = { 'i', 0xBA, 't', 'i' };
-static const symbol s_3_37[3] = { 'i', 'v', 'i' };
-static const symbol s_3_38[3] = { 'o', 0xBA, 'i' };
-static const symbol s_3_39[4] = { 'i', 't', 0xE3, 'i' };
-static const symbol s_3_40[5] = { 'i', 't', 0xE3, 0xFE, 'i' };
-static const symbol s_3_41[4] = { 'a', 'b', 'i', 'l' };
-static const symbol s_3_42[4] = { 'i', 'b', 'i', 'l' };
-static const symbol s_3_43[3] = { 'i', 's', 'm' };
-static const symbol s_3_44[4] = { 'a', 't', 'o', 'r' };
-static const symbol s_3_45[2] = { 'o', 's' };
-static const symbol s_3_46[2] = { 'a', 't' };
-static const symbol s_3_47[2] = { 'i', 't' };
-static const symbol s_3_48[3] = { 'a', 'n', 't' };
-static const symbol s_3_49[3] = { 'i', 's', 't' };
-static const symbol s_3_50[2] = { 'u', 't' };
-static const symbol s_3_51[2] = { 'i', 'v' };
-static const symbol s_3_52[3] = { 'i', 'c', 0xE3 };
-static const symbol s_3_53[5] = { 'a', 'b', 'i', 'l', 0xE3 };
-static const symbol s_3_54[5] = { 'i', 'b', 'i', 'l', 0xE3 };
-static const symbol s_3_55[4] = { 'o', 'a', 's', 0xE3 };
-static const symbol s_3_56[3] = { 'a', 't', 0xE3 };
-static const symbol s_3_57[3] = { 'i', 't', 0xE3 };
-static const symbol s_3_58[4] = { 'a', 'n', 't', 0xE3 };
-static const symbol s_3_59[4] = { 'i', 's', 't', 0xE3 };
-static const symbol s_3_60[3] = { 'u', 't', 0xE3 };
-static const symbol s_3_61[3] = { 'i', 'v', 0xE3 };
-
-static const struct among a_3[62] =
-{
-{ 3, s_3_0, -1, 1, 0},
-{ 5, s_3_1, -1, 1, 0},
-{ 5, s_3_2, -1, 1, 0},
-{ 4, s_3_3, -1, 1, 0},
-{ 3, s_3_4, -1, 1, 0},
-{ 3, s_3_5, -1, 1, 0},
-{ 4, s_3_6, -1, 1, 0},
-{ 4, s_3_7, -1, 3, 0},
-{ 3, s_3_8, -1, 1, 0},
-{ 3, s_3_9, -1, 1, 0},
-{ 2, s_3_10, -1, 1, 0},
-{ 3, s_3_11, -1, 1, 0},
-{ 5, s_3_12, -1, 1, 0},
-{ 5, s_3_13, -1, 1, 0},
-{ 4, s_3_14, -1, 3, 0},
-{ 4, s_3_15, -1, 2, 0},
-{ 4, s_3_16, -1, 1, 0},
-{ 3, s_3_17, -1, 1, 0},
-{ 5, s_3_18, 17, 1, 0},
-{ 3, s_3_19, -1, 1, 0},
-{ 4, s_3_20, -1, 1, 0},
-{ 4, s_3_21, -1, 3, 0},
-{ 3, s_3_22, -1, 1, 0},
-{ 3, s_3_23, -1, 1, 0},
-{ 3, s_3_24, -1, 1, 0},
-{ 5, s_3_25, -1, 1, 0},
-{ 5, s_3_26, -1, 1, 0},
-{ 4, s_3_27, -1, 2, 0},
-{ 5, s_3_28, -1, 1, 0},
-{ 3, s_3_29, -1, 1, 0},
-{ 3, s_3_30, -1, 1, 0},
-{ 5, s_3_31, 30, 1, 0},
-{ 3, s_3_32, -1, 1, 0},
-{ 4, s_3_33, -1, 1, 0},
-{ 4, s_3_34, -1, 3, 0},
-{ 3, s_3_35, -1, 1, 0},
-{ 4, s_3_36, -1, 3, 0},
-{ 3, s_3_37, -1, 1, 0},
-{ 3, s_3_38, -1, 1, 0},
-{ 4, s_3_39, -1, 1, 0},
-{ 5, s_3_40, -1, 1, 0},
-{ 4, s_3_41, -1, 1, 0},
-{ 4, s_3_42, -1, 1, 0},
-{ 3, s_3_43, -1, 3, 0},
-{ 4, s_3_44, -1, 1, 0},
-{ 2, s_3_45, -1, 1, 0},
-{ 2, s_3_46, -1, 1, 0},
-{ 2, s_3_47, -1, 1, 0},
-{ 3, s_3_48, -1, 1, 0},
-{ 3, s_3_49, -1, 3, 0},
-{ 2, s_3_50, -1, 1, 0},
-{ 2, s_3_51, -1, 1, 0},
-{ 3, s_3_52, -1, 1, 0},
-{ 5, s_3_53, -1, 1, 0},
-{ 5, s_3_54, -1, 1, 0},
-{ 4, s_3_55, -1, 1, 0},
-{ 3, s_3_56, -1, 1, 0},
-{ 3, s_3_57, -1, 1, 0},
-{ 4, s_3_58, -1, 1, 0},
-{ 4, s_3_59, -1, 3, 0},
-{ 3, s_3_60, -1, 1, 0},
-{ 3, s_3_61, -1, 1, 0}
-};
-
-static const symbol s_4_0[2] = { 'e', 'a' };
-static const symbol s_4_1[2] = { 'i', 'a' };
-static const symbol s_4_2[3] = { 'e', 's', 'c' };
-static const symbol s_4_3[3] = { 0xE3, 's', 'c' };
-static const symbol s_4_4[3] = { 'i', 'n', 'd' };
-static const symbol s_4_5[3] = { 0xE2, 'n', 'd' };
-static const symbol s_4_6[3] = { 'a', 'r', 'e' };
-static const symbol s_4_7[3] = { 'e', 'r', 'e' };
-static const symbol s_4_8[3] = { 'i', 'r', 'e' };
-static const symbol s_4_9[3] = { 0xE2, 'r', 'e' };
-static const symbol s_4_10[2] = { 's', 'e' };
-static const symbol s_4_11[3] = { 'a', 's', 'e' };
-static const symbol s_4_12[4] = { 's', 'e', 's', 'e' };
-static const symbol s_4_13[3] = { 'i', 's', 'e' };
-static const symbol s_4_14[3] = { 'u', 's', 'e' };
-static const symbol s_4_15[3] = { 0xE2, 's', 'e' };
-static const symbol s_4_16[4] = { 'e', 0xBA, 't', 'e' };
-static const symbol s_4_17[4] = { 0xE3, 0xBA, 't', 'e' };
-static const symbol s_4_18[3] = { 'e', 'z', 'e' };
-static const symbol s_4_19[2] = { 'a', 'i' };
-static const symbol s_4_20[3] = { 'e', 'a', 'i' };
-static const symbol s_4_21[3] = { 'i', 'a', 'i' };
-static const symbol s_4_22[3] = { 's', 'e', 'i' };
-static const symbol s_4_23[4] = { 'e', 0xBA, 't', 'i' };
-static const symbol s_4_24[4] = { 0xE3, 0xBA, 't', 'i' };
-static const symbol s_4_25[2] = { 'u', 'i' };
-static const symbol s_4_26[3] = { 'e', 'z', 'i' };
-static const symbol s_4_27[3] = { 'a', 0xBA, 'i' };
-static const symbol s_4_28[4] = { 's', 'e', 0xBA, 'i' };
-static const symbol s_4_29[5] = { 'a', 's', 'e', 0xBA, 'i' };
-static const symbol s_4_30[6] = { 's', 'e', 's', 'e', 0xBA, 'i' };
-static const symbol s_4_31[5] = { 'i', 's', 'e', 0xBA, 'i' };
-static const symbol s_4_32[5] = { 'u', 's', 'e', 0xBA, 'i' };
-static const symbol s_4_33[5] = { 0xE2, 's', 'e', 0xBA, 'i' };
-static const symbol s_4_34[3] = { 'i', 0xBA, 'i' };
-static const symbol s_4_35[3] = { 'u', 0xBA, 'i' };
-static const symbol s_4_36[3] = { 0xE2, 0xBA, 'i' };
-static const symbol s_4_37[2] = { 0xE2, 'i' };
-static const symbol s_4_38[3] = { 'a', 0xFE, 'i' };
-static const symbol s_4_39[4] = { 'e', 'a', 0xFE, 'i' };
-static const symbol s_4_40[4] = { 'i', 'a', 0xFE, 'i' };
-static const symbol s_4_41[3] = { 'e', 0xFE, 'i' };
-static const symbol s_4_42[3] = { 'i', 0xFE, 'i' };
-static const symbol s_4_43[3] = { 0xE2, 0xFE, 'i' };
-static const symbol s_4_44[5] = { 'a', 'r', 0xE3, 0xFE, 'i' };
-static const symbol s_4_45[6] = { 's', 'e', 'r', 0xE3, 0xFE, 'i' };
-static const symbol s_4_46[7] = { 'a', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
-static const symbol s_4_47[8] = { 's', 'e', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
-static const symbol s_4_48[7] = { 'i', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
-static const symbol s_4_49[7] = { 'u', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
-static const symbol s_4_50[7] = { 0xE2, 's', 'e', 'r', 0xE3, 0xFE, 'i' };
-static const symbol s_4_51[5] = { 'i', 'r', 0xE3, 0xFE, 'i' };
-static const symbol s_4_52[5] = { 'u', 'r', 0xE3, 0xFE, 'i' };
-static const symbol s_4_53[5] = { 0xE2, 'r', 0xE3, 0xFE, 'i' };
-static const symbol s_4_54[2] = { 'a', 'm' };
-static const symbol s_4_55[3] = { 'e', 'a', 'm' };
-static const symbol s_4_56[3] = { 'i', 'a', 'm' };
-static const symbol s_4_57[2] = { 'e', 'm' };
-static const symbol s_4_58[4] = { 'a', 's', 'e', 'm' };
-static const symbol s_4_59[5] = { 's', 'e', 's', 'e', 'm' };
-static const symbol s_4_60[4] = { 'i', 's', 'e', 'm' };
-static const symbol s_4_61[4] = { 'u', 's', 'e', 'm' };
-static const symbol s_4_62[4] = { 0xE2, 's', 'e', 'm' };
-static const symbol s_4_63[2] = { 'i', 'm' };
-static const symbol s_4_64[2] = { 0xE2, 'm' };
-static const symbol s_4_65[2] = { 0xE3, 'm' };
-static const symbol s_4_66[4] = { 'a', 'r', 0xE3, 'm' };
-static const symbol s_4_67[5] = { 's', 'e', 'r', 0xE3, 'm' };
-static const symbol s_4_68[6] = { 'a', 's', 'e', 'r', 0xE3, 'm' };
-static const symbol s_4_69[7] = { 's', 'e', 's', 'e', 'r', 0xE3, 'm' };
-static const symbol s_4_70[6] = { 'i', 's', 'e', 'r', 0xE3, 'm' };
-static const symbol s_4_71[6] = { 'u', 's', 'e', 'r', 0xE3, 'm' };
-static const symbol s_4_72[6] = { 0xE2, 's', 'e', 'r', 0xE3, 'm' };
-static const symbol s_4_73[4] = { 'i', 'r', 0xE3, 'm' };
-static const symbol s_4_74[4] = { 'u', 'r', 0xE3, 'm' };
-static const symbol s_4_75[4] = { 0xE2, 'r', 0xE3, 'm' };
-static const symbol s_4_76[2] = { 'a', 'u' };
-static const symbol s_4_77[3] = { 'e', 'a', 'u' };
-static const symbol s_4_78[3] = { 'i', 'a', 'u' };
-static const symbol s_4_79[4] = { 'i', 'n', 'd', 'u' };
-static const symbol s_4_80[4] = { 0xE2, 'n', 'd', 'u' };
-static const symbol s_4_81[2] = { 'e', 'z' };
-static const symbol s_4_82[5] = { 'e', 'a', 's', 'c', 0xE3 };
-static const symbol s_4_83[3] = { 'a', 'r', 0xE3 };
-static const symbol s_4_84[4] = { 's', 'e', 'r', 0xE3 };
-static const symbol s_4_85[5] = { 'a', 's', 'e', 'r', 0xE3 };
-static const symbol s_4_86[6] = { 's', 'e', 's', 'e', 'r', 0xE3 };
-static const symbol s_4_87[5] = { 'i', 's', 'e', 'r', 0xE3 };
-static const symbol s_4_88[5] = { 'u', 's', 'e', 'r', 0xE3 };
-static const symbol s_4_89[5] = { 0xE2, 's', 'e', 'r', 0xE3 };
-static const symbol s_4_90[3] = { 'i', 'r', 0xE3 };
-static const symbol s_4_91[3] = { 'u', 'r', 0xE3 };
-static const symbol s_4_92[3] = { 0xE2, 'r', 0xE3 };
-static const symbol s_4_93[4] = { 'e', 'a', 'z', 0xE3 };
-
-static const struct among a_4[94] =
-{
-{ 2, s_4_0, -1, 1, 0},
-{ 2, s_4_1, -1, 1, 0},
-{ 3, s_4_2, -1, 1, 0},
-{ 3, s_4_3, -1, 1, 0},
-{ 3, s_4_4, -1, 1, 0},
-{ 3, s_4_5, -1, 1, 0},
-{ 3, s_4_6, -1, 1, 0},
-{ 3, s_4_7, -1, 1, 0},
-{ 3, s_4_8, -1, 1, 0},
-{ 3, s_4_9, -1, 1, 0},
-{ 2, s_4_10, -1, 2, 0},
-{ 3, s_4_11, 10, 1, 0},
-{ 4, s_4_12, 10, 2, 0},
-{ 3, s_4_13, 10, 1, 0},
-{ 3, s_4_14, 10, 1, 0},
-{ 3, s_4_15, 10, 1, 0},
-{ 4, s_4_16, -1, 1, 0},
-{ 4, s_4_17, -1, 1, 0},
-{ 3, s_4_18, -1, 1, 0},
-{ 2, s_4_19, -1, 1, 0},
-{ 3, s_4_20, 19, 1, 0},
-{ 3, s_4_21, 19, 1, 0},
-{ 3, s_4_22, -1, 2, 0},
-{ 4, s_4_23, -1, 1, 0},
-{ 4, s_4_24, -1, 1, 0},
-{ 2, s_4_25, -1, 1, 0},
-{ 3, s_4_26, -1, 1, 0},
-{ 3, s_4_27, -1, 1, 0},
-{ 4, s_4_28, -1, 2, 0},
-{ 5, s_4_29, 28, 1, 0},
-{ 6, s_4_30, 28, 2, 0},
-{ 5, s_4_31, 28, 1, 0},
-{ 5, s_4_32, 28, 1, 0},
-{ 5, s_4_33, 28, 1, 0},
-{ 3, s_4_34, -1, 1, 0},
-{ 3, s_4_35, -1, 1, 0},
-{ 3, s_4_36, -1, 1, 0},
-{ 2, s_4_37, -1, 1, 0},
-{ 3, s_4_38, -1, 2, 0},
-{ 4, s_4_39, 38, 1, 0},
-{ 4, s_4_40, 38, 1, 0},
-{ 3, s_4_41, -1, 2, 0},
-{ 3, s_4_42, -1, 2, 0},
-{ 3, s_4_43, -1, 2, 0},
-{ 5, s_4_44, -1, 1, 0},
-{ 6, s_4_45, -1, 2, 0},
-{ 7, s_4_46, 45, 1, 0},
-{ 8, s_4_47, 45, 2, 0},
-{ 7, s_4_48, 45, 1, 0},
-{ 7, s_4_49, 45, 1, 0},
-{ 7, s_4_50, 45, 1, 0},
-{ 5, s_4_51, -1, 1, 0},
-{ 5, s_4_52, -1, 1, 0},
-{ 5, s_4_53, -1, 1, 0},
-{ 2, s_4_54, -1, 1, 0},
-{ 3, s_4_55, 54, 1, 0},
-{ 3, s_4_56, 54, 1, 0},
-{ 2, s_4_57, -1, 2, 0},
-{ 4, s_4_58, 57, 1, 0},
-{ 5, s_4_59, 57, 2, 0},
-{ 4, s_4_60, 57, 1, 0},
-{ 4, s_4_61, 57, 1, 0},
-{ 4, s_4_62, 57, 1, 0},
-{ 2, s_4_63, -1, 2, 0},
-{ 2, s_4_64, -1, 2, 0},
-{ 2, s_4_65, -1, 2, 0},
-{ 4, s_4_66, 65, 1, 0},
-{ 5, s_4_67, 65, 2, 0},
-{ 6, s_4_68, 67, 1, 0},
-{ 7, s_4_69, 67, 2, 0},
-{ 6, s_4_70, 67, 1, 0},
-{ 6, s_4_71, 67, 1, 0},
-{ 6, s_4_72, 67, 1, 0},
-{ 4, s_4_73, 65, 1, 0},
-{ 4, s_4_74, 65, 1, 0},
-{ 4, s_4_75, 65, 1, 0},
-{ 2, s_4_76, -1, 1, 0},
-{ 3, s_4_77, 76, 1, 0},
-{ 3, s_4_78, 76, 1, 0},
-{ 4, s_4_79, -1, 1, 0},
-{ 4, s_4_80, -1, 1, 0},
-{ 2, s_4_81, -1, 1, 0},
-{ 5, s_4_82, -1, 1, 0},
-{ 3, s_4_83, -1, 1, 0},
-{ 4, s_4_84, -1, 2, 0},
-{ 5, s_4_85, 84, 1, 0},
-{ 6, s_4_86, 84, 2, 0},
-{ 5, s_4_87, 84, 1, 0},
-{ 5, s_4_88, 84, 1, 0},
-{ 5, s_4_89, 84, 1, 0},
-{ 3, s_4_90, -1, 1, 0},
-{ 3, s_4_91, -1, 1, 0},
-{ 3, s_4_92, -1, 1, 0},
-{ 4, s_4_93, -1, 1, 0}
-};
-
-static const symbol s_5_0[1] = { 'a' };
-static const symbol s_5_1[1] = { 'e' };
-static const symbol s_5_2[2] = { 'i', 'e' };
-static const symbol s_5_3[1] = { 'i' };
-static const symbol s_5_4[1] = { 0xE3 };
-
-static const struct among a_5[5] =
-{
-{ 1, s_5_0, -1, 1, 0},
-{ 1, s_5_1, -1, 1, 0},
-{ 2, s_5_2, 1, 1, 0},
-{ 1, s_5_3, -1, 1, 0},
-{ 1, s_5_4, -1, 1, 0}
-};
-
-static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 32 };
-
-static const symbol s_0[] = { 'U' };
-static const symbol s_1[] = { 'I' };
-static const symbol s_2[] = { 'i' };
-static const symbol s_3[] = { 'u' };
-static const symbol s_4[] = { 'a' };
-static const symbol s_5[] = { 'e' };
-static const symbol s_6[] = { 'i' };
-static const symbol s_7[] = { 'a', 'b' };
-static const symbol s_8[] = { 'i' };
-static const symbol s_9[] = { 'a', 't' };
-static const symbol s_10[] = { 'a', 0xFE, 'i' };
-static const symbol s_11[] = { 'a', 'b', 'i', 'l' };
-static const symbol s_12[] = { 'i', 'b', 'i', 'l' };
-static const symbol s_13[] = { 'i', 'v' };
-static const symbol s_14[] = { 'i', 'c' };
-static const symbol s_15[] = { 'a', 't' };
-static const symbol s_16[] = { 'i', 't' };
-static const symbol s_17[] = { 't' };
-static const symbol s_18[] = { 'i', 's', 't' };
-
-static int r_prelude(struct SN_env * z) {
-    while(1) {
-        int c1 = z->c;
-        while(1) {
-            int c2 = z->c;
-            if (in_grouping(z, g_v, 97, 238, 0)) goto lab1;
-            z->bra = z->c;
-            {   int c3 = z->c;
-                if (z->c == z->l || z->p[z->c] != 'u') goto lab3;
-                z->c++;
-                z->ket = z->c;
-                if (in_grouping(z, g_v, 97, 238, 0)) goto lab3;
-                {   int ret = slice_from_s(z, 1, s_0);
-                    if (ret < 0) return ret;
-                }
-                goto lab2;
-            lab3:
-                z->c = c3;
-                if (z->c == z->l || z->p[z->c] != 'i') goto lab1;
-                z->c++;
-                z->ket = z->c;
-                if (in_grouping(z, g_v, 97, 238, 0)) goto lab1;
-                {   int ret = slice_from_s(z, 1, s_1);
-                    if (ret < 0) return ret;
-                }
-            }
-        lab2:
-            z->c = c2;
-            break;
-        lab1:
-            z->c = c2;
-            if (z->c >= z->l) goto lab0;
-            z->c++;
-        }
-        continue;
-    lab0:
-        z->c = c1;
-        break;
-    }
-    return 1;
-}
-
-static int r_mark_regions(struct SN_env * z) {
-    z->I[2] = z->l;
-    z->I[1] = z->l;
-    z->I[0] = z->l;
-    {   int c1 = z->c;
-        {   int c2 = z->c;
-            if (in_grouping(z, g_v, 97, 238, 0)) goto lab2;
-            {   int c3 = z->c;
-                if (out_grouping(z, g_v, 97, 238, 0)) goto lab4;
-                {   
-                    int ret = out_grouping(z, g_v, 97, 238, 1);
-                    if (ret < 0) goto lab4;
-                    z->c += ret;
-                }
-                goto lab3;
-            lab4:
-                z->c = c3;
-                if (in_grouping(z, g_v, 97, 238, 0)) goto lab2;
-                {   
-                    int ret = in_grouping(z, g_v, 97, 238, 1);
-                    if (ret < 0) goto lab2;
-                    z->c += ret;
-                }
-            }
-        lab3:
-            goto lab1;
-        lab2:
-            z->c = c2;
-            if (out_grouping(z, g_v, 97, 238, 0)) goto lab0;
-            {   int c4 = z->c;
-                if (out_grouping(z, g_v, 97, 238, 0)) goto lab6;
-                {   
-                    int ret = out_grouping(z, g_v, 97, 238, 1);
-                    if (ret < 0) goto lab6;
-                    z->c += ret;
-                }
-                goto lab5;
-            lab6:
-                z->c = c4;
-                if (in_grouping(z, g_v, 97, 238, 0)) goto lab0;
-                if (z->c >= z->l) goto lab0;
-                z->c++;
-            }
-        lab5:
-            ;
-        }
-    lab1:
-        z->I[2] = z->c;
-    lab0:
-        z->c = c1;
-    }
-    {   int c5 = z->c;
-        {   
-            int ret = out_grouping(z, g_v, 97, 238, 1);
-            if (ret < 0) goto lab7;
-            z->c += ret;
-        }
-        {   
-            int ret = in_grouping(z, g_v, 97, 238, 1);
-            if (ret < 0) goto lab7;
-            z->c += ret;
-        }
-        z->I[1] = z->c;
-        {   
-            int ret = out_grouping(z, g_v, 97, 238, 1);
-            if (ret < 0) goto lab7;
-            z->c += ret;
-        }
-        {   
-            int ret = in_grouping(z, g_v, 97, 238, 1);
-            if (ret < 0) goto lab7;
-            z->c += ret;
-        }
-        z->I[0] = z->c;
-    lab7:
-        z->c = c5;
-    }
-    return 1;
-}
-
-static int r_postlude(struct SN_env * z) {
-    int among_var;
-    while(1) {
-        int c1 = z->c;
-        z->bra = z->c;
-        if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
-        among_var = find_among(z, a_0, 3);
-        if (!(among_var)) goto lab0;
-        z->ket = z->c;
-        switch (among_var) {
-            case 1:
-                {   int ret = slice_from_s(z, 1, s_2);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 2:
-                {   int ret = slice_from_s(z, 1, s_3);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 3:
-                if (z->c >= z->l) goto lab0;
-                z->c++;
-                break;
-        }
-        continue;
-    lab0:
-        z->c = c1;
-        break;
-    }
-    return 1;
-}
-
-static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
-}
-
-static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
-}
-
-static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
-}
-
-static int r_step_0(struct SN_env * z) {
-    int among_var;
-    z->ket = z->c;
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    among_var = find_among_b(z, a_1, 16);
-    if (!(among_var)) return 0;
-    z->bra = z->c;
-    {   int ret = r_R1(z);
-        if (ret <= 0) return ret;
-    }
-    switch (among_var) {
-        case 1:
-            {   int ret = slice_del(z);
-                if (ret < 0) return ret;
-            }
-            break;
-        case 2:
-            {   int ret = slice_from_s(z, 1, s_4);
-                if (ret < 0) return ret;
-            }
-            break;
-        case 3:
-            {   int ret = slice_from_s(z, 1, s_5);
-                if (ret < 0) return ret;
-            }
-            break;
-        case 4:
-            {   int ret = slice_from_s(z, 1, s_6);
-                if (ret < 0) return ret;
-            }
-            break;
-        case 5:
-            {   int m1 = z->l - z->c; (void)m1;
-                if (!(eq_s_b(z, 2, s_7))) goto lab0;
-                return 0;
-            lab0:
-                z->c = z->l - m1;
-            }
-            {   int ret = slice_from_s(z, 1, s_8);
-                if (ret < 0) return ret;
-            }
-            break;
-        case 6:
-            {   int ret = slice_from_s(z, 2, s_9);
-                if (ret < 0) return ret;
-            }
-            break;
-        case 7:
-            {   int ret = slice_from_s(z, 3, s_10);
-                if (ret < 0) return ret;
-            }
-            break;
-    }
-    return 1;
-}
-
-static int r_combo_suffix(struct SN_env * z) {
-    int among_var;
-    {   int m_test1 = z->l - z->c;
-        z->ket = z->c;
-        among_var = find_among_b(z, a_2, 46);
-        if (!(among_var)) return 0;
-        z->bra = z->c;
-        {   int ret = r_R1(z);
-            if (ret <= 0) return ret;
-        }
-        switch (among_var) {
-            case 1:
-                {   int ret = slice_from_s(z, 4, s_11);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 2:
-                {   int ret = slice_from_s(z, 4, s_12);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 3:
-                {   int ret = slice_from_s(z, 2, s_13);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 4:
-                {   int ret = slice_from_s(z, 2, s_14);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 5:
-                {   int ret = slice_from_s(z, 2, s_15);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 6:
-                {   int ret = slice_from_s(z, 2, s_16);
-                    if (ret < 0) return ret;
-                }
-                break;
-        }
-        z->I[3] = 1;
-        z->c = z->l - m_test1;
-    }
-    return 1;
-}
-
-static int r_standard_suffix(struct SN_env * z) {
-    int among_var;
-    z->I[3] = 0;
-    while(1) {
-        int m1 = z->l - z->c; (void)m1;
-        {   int ret = r_combo_suffix(z);
-            if (ret == 0) goto lab0;
-            if (ret < 0) return ret;
-        }
-        continue;
-    lab0:
-        z->c = z->l - m1;
-        break;
-    }
-    z->ket = z->c;
-    among_var = find_among_b(z, a_3, 62);
-    if (!(among_var)) return 0;
-    z->bra = z->c;
-    {   int ret = r_R2(z);
-        if (ret <= 0) return ret;
-    }
-    switch (among_var) {
-        case 1:
-            {   int ret = slice_del(z);
-                if (ret < 0) return ret;
-            }
-            break;
-        case 2:
-            if (z->c <= z->lb || z->p[z->c - 1] != 0xFE) return 0;
-            z->c--;
-            z->bra = z->c;
-            {   int ret = slice_from_s(z, 1, s_17);
-                if (ret < 0) return ret;
-            }
-            break;
-        case 3:
-            {   int ret = slice_from_s(z, 3, s_18);
-                if (ret < 0) return ret;
-            }
-            break;
-    }
-    z->I[3] = 1;
-    return 1;
-}
-
-static int r_verb_suffix(struct SN_env * z) {
-    int among_var;
-
-    {   int mlimit1;
-        if (z->c < z->I[2]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[2];
-        z->ket = z->c;
-        among_var = find_among_b(z, a_4, 94);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
-        z->bra = z->c;
-        switch (among_var) {
-            case 1:
-                {   int m2 = z->l - z->c; (void)m2;
-                    if (out_grouping_b(z, g_v, 97, 238, 0)) goto lab1;
-                    goto lab0;
-                lab1:
-                    z->c = z->l - m2;
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->lb = mlimit1; return 0; }
-                    z->c--;
-                }
-            lab0:
-                {   int ret = slice_del(z);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 2:
-                {   int ret = slice_del(z);
-                    if (ret < 0) return ret;
-                }
-                break;
-        }
-        z->lb = mlimit1;
-    }
-    return 1;
-}
-
-static int r_vowel_suffix(struct SN_env * z) {
-    z->ket = z->c;
-    if (!(find_among_b(z, a_5, 5))) return 0;
-    z->bra = z->c;
-    {   int ret = r_RV(z);
-        if (ret <= 0) return ret;
-    }
-    {   int ret = slice_del(z);
-        if (ret < 0) return ret;
-    }
-    return 1;
-}
-
-extern int romanian_ISO_8859_2_stem(struct SN_env * z) {
-    {   int c1 = z->c;
-        {   int ret = r_prelude(z);
-            if (ret < 0) return ret;
-        }
-        z->c = c1;
-    }
-    
-    {   int ret = r_mark_regions(z);
-        if (ret < 0) return ret;
-    }
-    z->lb = z->c; z->c = z->l;
-
-    {   int m2 = z->l - z->c; (void)m2;
-        {   int ret = r_step_0(z);
-            if (ret < 0) return ret;
-        }
-        z->c = z->l - m2;
-    }
-    {   int m3 = z->l - z->c; (void)m3;
-        {   int ret = r_standard_suffix(z);
-            if (ret < 0) return ret;
-        }
-        z->c = z->l - m3;
-    }
-    {   int m4 = z->l - z->c; (void)m4;
-        {   int m5 = z->l - z->c; (void)m5;
-            if (!(z->I[3])) goto lab2;
-            goto lab1;
-        lab2:
-            z->c = z->l - m5;
-            {   int ret = r_verb_suffix(z);
-                if (ret == 0) goto lab0;
-                if (ret < 0) return ret;
-            }
-        }
-    lab1:
-    lab0:
-        z->c = z->l - m4;
-    }
-    {   int m6 = z->l - z->c; (void)m6;
-        {   int ret = r_vowel_suffix(z);
-            if (ret < 0) return ret;
-        }
-        z->c = z->l - m6;
-    }
-    z->c = z->lb;
-    {   int c7 = z->c;
-        {   int ret = r_postlude(z);
-            if (ret < 0) return ret;
-        }
-        z->c = c7;
-    }
-    return 1;
-}
-
-extern struct SN_env * romanian_ISO_8859_2_create_env(void) { return SN_create_env(0, 4); }
-
-extern void romanian_ISO_8859_2_close_env(struct SN_env * z) { SN_close_env(z, 0); }
-
index 3bd2f71376df2668ccb59b00114f5fc53c1873e5..f9f0973b3935ed0b33dc864871d3e18790aedf82 100644 (file)
@@ -345,23 +345,27 @@ static int r_mark_regions(struct SN_env * z) {
     z->I[1] = z->l;
     z->I[0] = z->l;
     {   int c1 = z->c;
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 192, 220, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 192, 220, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = out_grouping(z, g_v, 192, 220, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping(z, g_v, 192, 220, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
@@ -374,8 +378,7 @@ static int r_mark_regions(struct SN_env * z) {
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_perfective_gerund(struct SN_env * z) {
@@ -383,7 +386,7 @@ static int r_perfective_gerund(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_0, 9);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -413,7 +416,7 @@ static int r_perfective_gerund(struct SN_env * z) {
 static int r_adjective(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_1, 26))) return 0;
+    if (!find_among_b(z, a_1, 26)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -430,7 +433,7 @@ static int r_adjectival(struct SN_env * z) {
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; }
         among_var = find_among_b(z, a_2, 8);
-        if (!(among_var)) { z->c = z->l - m1; goto lab0; }
+        if (!among_var) { z->c = z->l - m1; goto lab0; }
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -463,7 +466,7 @@ static int r_adjectival(struct SN_env * z) {
 static int r_reflexive(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0;
-    if (!(find_among_b(z, a_3, 2))) return 0;
+    if (!find_among_b(z, a_3, 2)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -476,7 +479,7 @@ static int r_verb(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_4, 46);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -506,7 +509,7 @@ static int r_verb(struct SN_env * z) {
 static int r_noun(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_5, 36))) return 0;
+    if (!find_among_b(z, a_5, 36)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -517,7 +520,7 @@ static int r_noun(struct SN_env * z) {
 static int r_derivational(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0;
-    if (!(find_among_b(z, a_6, 2))) return 0;
+    if (!find_among_b(z, a_6, 2)) return 0;
     z->bra = z->c;
     {   int ret = r_R2(z);
         if (ret <= 0) return ret;
@@ -533,7 +536,7 @@ static int r_tidy_up(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_7, 4);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -593,7 +596,7 @@ extern int russian_KOI8_R_stem(struct SN_env * z) {
         }
         z->c = c1;
     }
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index 51d443ef239d286e3cc7ff47eaf1ad6f4e8416b5..1f00dd95c89e5ebfcf5e173b4f94d064026b1272 100644 (file)
@@ -680,7 +680,7 @@ static int r_Normalize_pre(struct SN_env * z) {
             {   int c3 = z->c;
                 z->bra = z->c;
                 among_var = find_among(z, a_0, 144);
-                if (!(among_var)) goto lab3;
+                if (!among_var) goto lab3;
                 z->ket = z->c;
                 switch (among_var) {
                     case 1:
@@ -965,7 +965,7 @@ static int r_Normalize_post(struct SN_env * z) {
 
         z->ket = z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((124 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
-        if (!(find_among_b(z, a_1, 5))) goto lab0;
+        if (!find_among_b(z, a_1, 5)) goto lab0;
         z->bra = z->c;
         {   int ret = slice_from_s(z, 2, s_50);
             if (ret < 0) return ret;
@@ -981,7 +981,7 @@ static int r_Normalize_post(struct SN_env * z) {
                 z->bra = z->c;
                 if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((124 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab4;
                 among_var = find_among(z, a_2, 5);
-                if (!(among_var)) goto lab4;
+                if (!among_var) goto lab4;
                 z->ket = z->c;
                 switch (among_var) {
                     case 1:
@@ -1024,17 +1024,17 @@ static int r_Checks1(struct SN_env * z) {
     z->bra = z->c;
     if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0;
     among_var = find_among(z, a_3, 4);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) > 4)) return 0;
+            if (len_utf8(z->p) <= 4) return 0;
             z->I[2] = 1;
             z->I[1] = 0;
             z->I[0] = 1;
             break;
         case 2:
-            if (!(len_utf8(z->p) > 3)) return 0;
+            if (len_utf8(z->p) <= 3) return 0;
             z->I[2] = 1;
             z->I[1] = 0;
             z->I[0] = 1;
@@ -1048,29 +1048,29 @@ static int r_Prefix_Step1(struct SN_env * z) {
     z->bra = z->c;
     if (z->c + 3 >= z->l || z->p[z->c + 3] >> 5 != 5 || !((188 >> (z->p[z->c + 3] & 0x1f)) & 1)) return 0;
     among_var = find_among(z, a_4, 5);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) > 3)) return 0;
+            if (len_utf8(z->p) <= 3) return 0;
             {   int ret = slice_from_s(z, 2, s_54);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (!(len_utf8(z->p) > 3)) return 0;
+            if (len_utf8(z->p) <= 3) return 0;
             {   int ret = slice_from_s(z, 2, s_55);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            if (!(len_utf8(z->p) > 3)) return 0;
+            if (len_utf8(z->p) <= 3) return 0;
             {   int ret = slice_from_s(z, 2, s_56);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            if (!(len_utf8(z->p) > 3)) return 0;
+            if (len_utf8(z->p) <= 3) return 0;
             {   int ret = slice_from_s(z, 2, s_57);
                 if (ret < 0) return ret;
             }
@@ -1082,9 +1082,9 @@ static int r_Prefix_Step1(struct SN_env * z) {
 static int r_Prefix_Step2(struct SN_env * z) {
     z->bra = z->c;
     if (z->c + 1 >= z->l || (z->p[z->c + 1] != 129 && z->p[z->c + 1] != 136)) return 0;
-    if (!(find_among(z, a_5, 2))) return 0;
+    if (!find_among(z, a_5, 2)) return 0;
     z->ket = z->c;
-    if (!(len_utf8(z->p) > 3)) return 0;
+    if (len_utf8(z->p) <= 3) return 0;
     {   int c1 = z->c;
         if (!(eq_s(z, 2, s_58))) goto lab0;
         return 0;
@@ -1102,17 +1102,17 @@ static int r_Prefix_Step3a_Noun(struct SN_env * z) {
     z->bra = z->c;
     if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0;
     among_var = find_among(z, a_6, 4);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) > 5)) return 0;
+            if (len_utf8(z->p) <= 5) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (!(len_utf8(z->p) > 4)) return 0;
+            if (len_utf8(z->p) <= 4) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
@@ -1126,23 +1126,23 @@ static int r_Prefix_Step3b_Noun(struct SN_env * z) {
     z->bra = z->c;
     if (z->c + 1 >= z->l || (z->p[z->c + 1] != 168 && z->p[z->c + 1] != 131)) return 0;
     among_var = find_among(z, a_7, 4);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) > 3)) return 0;
+            if (len_utf8(z->p) <= 3) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (!(len_utf8(z->p) > 3)) return 0;
+            if (len_utf8(z->p) <= 3) return 0;
             {   int ret = slice_from_s(z, 2, s_59);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            if (!(len_utf8(z->p) > 3)) return 0;
+            if (len_utf8(z->p) <= 3) return 0;
             {   int ret = slice_from_s(z, 2, s_60);
                 if (ret < 0) return ret;
             }
@@ -1155,29 +1155,29 @@ static int r_Prefix_Step3_Verb(struct SN_env * z) {
     int among_var;
     z->bra = z->c;
     among_var = find_among(z, a_8, 4);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) > 4)) return 0;
+            if (len_utf8(z->p) <= 4) return 0;
             {   int ret = slice_from_s(z, 2, s_61);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (!(len_utf8(z->p) > 4)) return 0;
+            if (len_utf8(z->p) <= 4) return 0;
             {   int ret = slice_from_s(z, 2, s_62);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            if (!(len_utf8(z->p) > 4)) return 0;
+            if (len_utf8(z->p) <= 4) return 0;
             {   int ret = slice_from_s(z, 2, s_63);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            if (!(len_utf8(z->p) > 4)) return 0;
+            if (len_utf8(z->p) <= 4) return 0;
             {   int ret = slice_from_s(z, 2, s_64);
                 if (ret < 0) return ret;
             }
@@ -1189,9 +1189,9 @@ static int r_Prefix_Step3_Verb(struct SN_env * z) {
 static int r_Prefix_Step4_Verb(struct SN_env * z) {
     z->bra = z->c;
     if (z->c + 5 >= z->l || z->p[z->c + 5] != 170) return 0;
-    if (!(find_among(z, a_9, 3))) return 0;
+    if (!find_among(z, a_9, 3)) return 0;
     z->ket = z->c;
-    if (!(len_utf8(z->p) > 4)) return 0;
+    if (len_utf8(z->p) <= 4) return 0;
     z->I[1] = 1;
     z->I[2] = 0;
     {   int ret = slice_from_s(z, 6, s_65);
@@ -1204,23 +1204,23 @@ static int r_Suffix_Noun_Step1a(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_10, 10);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) >= 4)) return 0;
+            if (len_utf8(z->p) < 4) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (!(len_utf8(z->p) >= 5)) return 0;
+            if (len_utf8(z->p) < 5) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            if (!(len_utf8(z->p) >= 6)) return 0;
+            if (len_utf8(z->p) < 6) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
@@ -1232,9 +1232,9 @@ static int r_Suffix_Noun_Step1a(struct SN_env * z) {
 static int r_Suffix_Noun_Step1b(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 134) return 0;
-    if (!(find_among_b(z, a_11, 1))) return 0;
+    if (!find_among_b(z, a_11, 1)) return 0;
     z->bra = z->c;
-    if (!(len_utf8(z->p) > 5)) return 0;
+    if (len_utf8(z->p) <= 5) return 0;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
@@ -1243,9 +1243,9 @@ static int r_Suffix_Noun_Step1b(struct SN_env * z) {
 
 static int r_Suffix_Noun_Step2a(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_12, 3))) return 0;
+    if (!find_among_b(z, a_12, 3)) return 0;
     z->bra = z->c;
-    if (!(len_utf8(z->p) > 4)) return 0;
+    if (len_utf8(z->p) <= 4) return 0;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
@@ -1255,9 +1255,9 @@ static int r_Suffix_Noun_Step2a(struct SN_env * z) {
 static int r_Suffix_Noun_Step2b(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 3 <= z->lb || z->p[z->c - 1] != 170) return 0;
-    if (!(find_among_b(z, a_13, 1))) return 0;
+    if (!find_among_b(z, a_13, 1)) return 0;
     z->bra = z->c;
-    if (!(len_utf8(z->p) >= 5)) return 0;
+    if (len_utf8(z->p) < 5) return 0;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
@@ -1267,9 +1267,9 @@ static int r_Suffix_Noun_Step2b(struct SN_env * z) {
 static int r_Suffix_Noun_Step2c1(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 170) return 0;
-    if (!(find_among_b(z, a_14, 1))) return 0;
+    if (!find_among_b(z, a_14, 1)) return 0;
     z->bra = z->c;
-    if (!(len_utf8(z->p) >= 4)) return 0;
+    if (len_utf8(z->p) < 4) return 0;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
@@ -1279,9 +1279,9 @@ static int r_Suffix_Noun_Step2c1(struct SN_env * z) {
 static int r_Suffix_Noun_Step2c2(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 169) return 0;
-    if (!(find_among_b(z, a_15, 1))) return 0;
+    if (!find_among_b(z, a_15, 1)) return 0;
     z->bra = z->c;
-    if (!(len_utf8(z->p) >= 4)) return 0;
+    if (len_utf8(z->p) < 4) return 0;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
@@ -1291,9 +1291,9 @@ static int r_Suffix_Noun_Step2c2(struct SN_env * z) {
 static int r_Suffix_Noun_Step3(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 138) return 0;
-    if (!(find_among_b(z, a_16, 1))) return 0;
+    if (!find_among_b(z, a_16, 1)) return 0;
     z->bra = z->c;
-    if (!(len_utf8(z->p) >= 3)) return 0;
+    if (len_utf8(z->p) < 3) return 0;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
@@ -1304,23 +1304,23 @@ static int r_Suffix_Verb_Step1(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_17, 12);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) >= 4)) return 0;
+            if (len_utf8(z->p) < 4) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (!(len_utf8(z->p) >= 5)) return 0;
+            if (len_utf8(z->p) < 5) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            if (!(len_utf8(z->p) >= 6)) return 0;
+            if (len_utf8(z->p) < 6) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
@@ -1333,29 +1333,29 @@ static int r_Suffix_Verb_Step2a(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_18, 11);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) >= 4)) return 0;
+            if (len_utf8(z->p) < 4) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (!(len_utf8(z->p) >= 5)) return 0;
+            if (len_utf8(z->p) < 5) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            if (!(len_utf8(z->p) > 5)) return 0;
+            if (len_utf8(z->p) <= 5) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            if (!(len_utf8(z->p) >= 6)) return 0;
+            if (len_utf8(z->p) < 6) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
@@ -1367,9 +1367,9 @@ static int r_Suffix_Verb_Step2a(struct SN_env * z) {
 static int r_Suffix_Verb_Step2b(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 133 && z->p[z->c - 1] != 167)) return 0;
-    if (!(find_among_b(z, a_19, 2))) return 0;
+    if (!find_among_b(z, a_19, 2)) return 0;
     z->bra = z->c;
-    if (!(len_utf8(z->p) >= 5)) return 0;
+    if (len_utf8(z->p) < 5) return 0;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
@@ -1381,17 +1381,17 @@ static int r_Suffix_Verb_Step2c(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 136) return 0;
     among_var = find_among_b(z, a_20, 2);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) >= 4)) return 0;
+            if (len_utf8(z->p) < 4) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (!(len_utf8(z->p) >= 6)) return 0;
+            if (len_utf8(z->p) < 6) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
@@ -1403,7 +1403,7 @@ static int r_Suffix_Verb_Step2c(struct SN_env * z) {
 static int r_Suffix_All_alef_maqsura(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 137) return 0;
-    if (!(find_among_b(z, a_21, 1))) return 0;
+    if (!find_among_b(z, a_21, 1)) return 0;
     z->bra = z->c;
     {   int ret = slice_from_s(z, 2, s_66);
         if (ret < 0) return ret;
@@ -1421,7 +1421,7 @@ extern int arabic_UTF_8_stem(struct SN_env * z) {
         }
         z->c = c1;
     }
-    
+
     {   int ret = r_Normalize_pre(z);
         if (ret < 0) return ret;
     }
@@ -1496,7 +1496,7 @@ extern int arabic_UTF_8_stem(struct SN_env * z) {
                     goto lab12;
                 lab13:
                     z->c = z->l - m8;
-                    
+
                     if (!(z->I[0])) goto lab15;
                     goto lab14;
                 lab15:
@@ -1563,7 +1563,7 @@ extern int arabic_UTF_8_stem(struct SN_env * z) {
                     goto lab12;
                 lab20:
                     z->c = z->l - m8;
-                    
+
                     if (!(z->I[0])) goto lab25;
                     goto lab24;
                 lab25:
@@ -1651,7 +1651,7 @@ extern int arabic_UTF_8_stem(struct SN_env * z) {
     lab26:
         z->c = c11;
     }
-    
+
     {   int ret = r_Normalize_post(z);
         if (ret < 0) return ret;
     }
index 27f9f19f89815ad11b59c6a2d4efb414faa06c7d..81ec52fef2b2e1e9c9db06f65dac19c19c73f0da 100644 (file)
@@ -436,23 +436,27 @@ static int r_mark_regions(struct SN_env * z) {
     z->I[1] = z->l;
     z->I[0] = z->l;
     {   int c1 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 1377, 1413, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 1377, 1413, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 1377, 1413, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 1377, 1413, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
@@ -465,13 +469,12 @@ static int r_mark_regions(struct SN_env * z) {
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_adjective(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_0, 23))) return 0;
+    if (!find_among_b(z, a_0, 23)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -481,7 +484,7 @@ static int r_adjective(struct SN_env * z) {
 
 static int r_verb(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_1, 71))) return 0;
+    if (!find_among_b(z, a_1, 71)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -491,7 +494,7 @@ static int r_verb(struct SN_env * z) {
 
 static int r_noun(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_2, 40))) return 0;
+    if (!find_among_b(z, a_2, 40)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -501,7 +504,7 @@ static int r_noun(struct SN_env * z) {
 
 static int r_ending(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_3, 57))) return 0;
+    if (!find_among_b(z, a_3, 57)) return 0;
     z->bra = z->c;
     {   int ret = r_R2(z);
         if (ret <= 0) return ret;
@@ -513,7 +516,7 @@ static int r_ending(struct SN_env * z) {
 }
 
 extern int armenian_UTF_8_stem(struct SN_env * z) {
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index 03316b1da43e1a97d4566ff56fd65e565d72cdeb..67b5b4835b8728e44db0760eeb8fb6edcdc56201 100644 (file)
@@ -912,7 +912,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab2;
             {   int c3 = z->c;
                 if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab4;
-                {   
+
+                {
                     int ret = out_grouping_U(z, g_v, 97, 117, 1);
                     if (ret < 0) goto lab4;
                     z->c += ret;
@@ -921,7 +922,8 @@ static int r_mark_regions(struct SN_env * z) {
             lab4:
                 z->c = c3;
                 if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab2;
-                {   
+
+                {
                     int ret = in_grouping_U(z, g_v, 97, 117, 1);
                     if (ret < 0) goto lab2;
                     z->c += ret;
@@ -934,7 +936,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab0;
             {   int c4 = z->c;
                 if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab6;
-                {   
+
+                {
                     int ret = out_grouping_U(z, g_v, 97, 117, 1);
                     if (ret < 0) goto lab6;
                     z->c += ret;
@@ -957,23 +960,27 @@ static int r_mark_regions(struct SN_env * z) {
         z->c = c1;
     }
     {   int c5 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
@@ -986,18 +993,15 @@ static int r_mark_regions(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_aditzak(struct SN_env * z) {
@@ -1005,7 +1009,7 @@ static int r_aditzak(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((70566434 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_0, 109);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1048,7 +1052,7 @@ static int r_izenak(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((71162402 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_1, 295);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1119,7 +1123,7 @@ static int r_adjetiboak(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((35362 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_2, 19);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1140,7 +1144,7 @@ static int r_adjetiboak(struct SN_env * z) {
 }
 
 extern int basque_UTF_8_stem(struct SN_env * z) {
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index a215aab712171a05a6dad65b815262fd98c70d81..d261407883b150db7f36e386458ff1f5eca37332 100644 (file)
@@ -1184,23 +1184,27 @@ static int r_mark_regions(struct SN_env * z) {
     z->I[1] = z->l;
     z->I[0] = z->l;
     {   int c1 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
@@ -1219,7 +1223,6 @@ static int r_cleaning(struct SN_env * z) {
         z->bra = z->c;
         if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((344765187 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 7; else
         among_var = find_among(z, a_0, 13);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
@@ -1268,19 +1271,17 @@ static int r_cleaning(struct SN_env * z) {
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_attached_pronoun(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1634850 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_1, 39))) return 0;
+    if (!find_among_b(z, a_1, 39)) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -1295,7 +1296,7 @@ static int r_standard_suffix(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_2, 200);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1346,7 +1347,7 @@ static int r_verb_suffix(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_3, 283);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1373,7 +1374,7 @@ static int r_residual_suffix(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_4, 22);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1397,7 +1398,7 @@ static int r_residual_suffix(struct SN_env * z) {
 }
 
 extern int catalan_UTF_8_stem(struct SN_env * z) {
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index 3d60ffcdb99f8f0769f0138014343905418d77f8..b16c6e67423ea5e93f9260ce9351e2a31b07f681 100644 (file)
@@ -143,15 +143,17 @@ static int r_mark_regions(struct SN_env * z) {
         z->I[0] = z->c;
         z->c = c_test1;
     }
+
     if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0;
-    {   
+
+    {
         int ret = in_grouping_U(z, g_v, 97, 248, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
     z->I[1] = z->c;
-    
-    if (!(z->I[1] < z->I[0])) goto lab0;
+
+    if (z->I[1] >= z->I[0]) goto lab0;
     z->I[1] = z->I[0];
 lab0:
     return 1;
@@ -166,7 +168,7 @@ static int r_main_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
         among_var = find_among_b(z, a_0, 32);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -194,7 +196,7 @@ static int r_consonant_pair(struct SN_env * z) {
             mlimit2 = z->lb; z->lb = z->I[1];
             z->ket = z->c;
             if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; }
-            if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
+            if (!find_among_b(z, a_1, 4)) { z->lb = mlimit2; return 0; }
             z->bra = z->c;
             z->lb = mlimit2;
         }
@@ -231,7 +233,7 @@ static int r_other_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; }
         among_var = find_among_b(z, a_2, 5);
-        if (!(among_var)) { z->lb = mlimit2; return 0; }
+        if (!among_var) { z->lb = mlimit2; return 0; }
         z->bra = z->c;
         z->lb = mlimit2;
     }
index 7a307effe5430d22309d0409c5e72ed086b01079..8fde5390f4dce59407e1887e48372f2f7c20ba56 100644 (file)
@@ -152,7 +152,6 @@ static int r_prelude(struct SN_env * z) {
             z->bra = z->c;
             if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((340306450 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else
             among_var = find_among(z, a_0, 11);
-            if (!(among_var)) goto lab0;
             z->ket = z->c;
             switch (among_var) {
                 case 1:
@@ -248,34 +247,46 @@ static int r_prelude(struct SN_env * z) {
 }
 
 static int r_mark_regions(struct SN_env * z) {
+    z->I[2] = z->l;
     z->I[1] = z->l;
-    z->I[0] = z->l;
-    {   
+    {   int c_test1 = z->c;
+        {   int ret = skip_utf8(z->p, z->c, z->l, 3);
+            if (ret < 0) return 0;
+            z->c = ret;
+        }
+        z->I[0] = z->c;
+        z->c = c_test1;
+    }
+
+    {
         int ret = out_grouping_U(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {   
+
+    {
         int ret = in_grouping_U(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[1] = z->c;
-    
-    if (!(z->I[1] < 3)) goto lab0;
-    z->I[1] = 3;
+    z->I[2] = z->c;
+
+    if (z->I[2] >= z->I[0]) goto lab0;
+    z->I[2] = z->I[0];
 lab0:
-    {   
+
+    {
         int ret = out_grouping_U(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {   
+
+    {
         int ret = in_grouping_U(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[0] = z->c;
+    z->I[1] = z->c;
     return 1;
 }
 
@@ -286,7 +297,6 @@ static int r_postlude(struct SN_env * z) {
         z->bra = z->c;
         if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
         among_var = find_among(z, a_1, 3);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
@@ -315,19 +325,17 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_undouble(struct SN_env * z) {
     {   int m_test1 = z->l - z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-        if (!(find_among_b(z, a_2, 3))) return 0;
+        if (!find_among_b(z, a_2, 3)) return 0;
         z->c = z->l - m_test1;
     }
     z->ket = z->c;
@@ -343,7 +351,7 @@ static int r_undouble(struct SN_env * z) {
 }
 
 static int r_e_ending(struct SN_env * z) {
-    z->I[2] = 0;
+    z->I[3] = 0;
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
     z->c--;
@@ -358,7 +366,7 @@ static int r_e_ending(struct SN_env * z) {
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    z->I[2] = 1;
+    z->I[3] = 1;
     {   int ret = r_undouble(z);
         if (ret <= 0) return ret;
     }
@@ -394,7 +402,7 @@ static int r_standard_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
         among_var = find_among_b(z, a_3, 5);
-        if (!(among_var)) goto lab0;
+        if (!among_var) goto lab0;
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -464,7 +472,7 @@ static int r_standard_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
         among_var = find_among_b(z, a_4, 6);
-        if (!(among_var)) goto lab3;
+        if (!among_var) goto lab3;
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -546,7 +554,7 @@ static int r_standard_suffix(struct SN_env * z) {
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
-                if (!(z->I[2])) goto lab3;
+                if (!(z->I[3])) goto lab3;
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
@@ -559,7 +567,7 @@ static int r_standard_suffix(struct SN_env * z) {
         if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab8;
         {   int m_test10 = z->l - z->c;
             if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8;
-            if (!(find_among_b(z, a_5, 4))) goto lab8;
+            if (!find_among_b(z, a_5, 4)) goto lab8;
             if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab8;
             z->c = z->l - m_test10;
         }
@@ -593,7 +601,7 @@ extern int dutch_UTF_8_stem(struct SN_env * z) {
     }
     z->lb = z->c; z->c = z->l;
 
-    
+
     {   int ret = r_standard_suffix(z);
         if (ret < 0) return ret;
     }
@@ -607,7 +615,7 @@ extern int dutch_UTF_8_stem(struct SN_env * z) {
     return 1;
 }
 
-extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 3); }
+extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 4); }
 
 extern void dutch_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index bc6eae1674a72ca4d96e19310239bbb582a7d368..25144ad24afd27b6e174c8e20ba65765e9d26849 100644 (file)
@@ -310,6 +310,8 @@ static const struct among a_10[18] =
 { 4, s_10_17, -1, 8, 0}
 };
 
+static const unsigned char g_aeo[] = { 17, 64 };
+
 static const unsigned char g_v[] = { 17, 65, 16, 1 };
 
 static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
@@ -420,16 +422,18 @@ static int r_mark_regions(struct SN_env * z) {
     {   int c1 = z->c;
         {   int c2 = z->c;
             if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2;
-            if (!(find_among(z, a_0, 3))) goto lab2;
+            if (!find_among(z, a_0, 3)) goto lab2;
             goto lab1;
         lab2:
             z->c = c2;
-            {   
+
+            {
                 int ret = out_grouping_U(z, g_v, 97, 121, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
             }
-            {   
+
+            {
                 int ret = in_grouping_U(z, g_v, 97, 121, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
@@ -437,12 +441,14 @@ static int r_mark_regions(struct SN_env * z) {
         }
     lab1:
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
@@ -471,13 +477,11 @@ lab0:
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_Step_1a(struct SN_env * z) {
@@ -485,7 +489,7 @@ static int r_Step_1a(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
         if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; }
-        if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; }
+        if (!find_among_b(z, a_1, 3)) { z->c = z->l - m1; goto lab0; }
         z->bra = z->c;
         {   int ret = slice_del(z);
             if (ret < 0) return ret;
@@ -496,7 +500,7 @@ static int r_Step_1a(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0;
     among_var = find_among_b(z, a_2, 6);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -527,7 +531,8 @@ static int r_Step_1a(struct SN_env * z) {
                 if (ret < 0) return 0;
                 z->c = ret;
             }
-            {   
+
+            {
                 int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
                 if (ret < 0) return 0;
                 z->c -= ret;
@@ -545,7 +550,7 @@ static int r_Step_1b(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_4, 6);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -558,7 +563,8 @@ static int r_Step_1b(struct SN_env * z) {
             break;
         case 2:
             {   int m_test1 = z->l - z->c;
-                {   
+
+                {
                     int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
                     if (ret < 0) return 0;
                     z->c -= ret;
@@ -568,49 +574,51 @@ static int r_Step_1b(struct SN_env * z) {
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
+            z->ket = z->c;
+            z->bra = z->c;
             {   int m_test2 = z->l - z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
                 among_var = find_among_b(z, a_3, 13);
-                if (!(among_var)) return 0;
-                z->c = z->l - m_test2;
-            }
-            switch (among_var) {
-                case 1:
-                    {   int ret;
-                        {   int saved_c = z->c;
-                            ret = insert_s(z, z->c, z->c, 1, s_6);
-                            z->c = saved_c;
+                switch (among_var) {
+                    case 1:
+                        {   int ret = slice_from_s(z, 1, s_6);
+                            if (ret < 0) return ret;
+                        }
+                        return 0;
+                        break;
+                    case 2:
+                        {   int m3 = z->l - z->c; (void)m3;
+                            if (in_grouping_b_U(z, g_aeo, 97, 111, 0)) goto lab0;
+                            if (z->c > z->lb) goto lab0;
+                            return 0;
+                        lab0:
+                            z->c = z->l - m3;
                         }
-                        if (ret < 0) return ret;
-                    }
-                    break;
-                case 2:
-                    z->ket = z->c;
-                    {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
-                        if (ret < 0) return 0;
-                        z->c = ret;
-                    }
-                    z->bra = z->c;
-                    {   int ret = slice_del(z);
-                        if (ret < 0) return ret;
-                    }
-                    break;
-                case 3:
-                    if (z->c != z->I[1]) return 0;
-                    {   int m_test3 = z->l - z->c;
-                        {   int ret = r_shortv(z);
-                            if (ret <= 0) return ret;
+                        break;
+                    case 3:
+                        if (z->c != z->I[1]) return 0;
+                        {   int m_test4 = z->l - z->c;
+                            {   int ret = r_shortv(z);
+                                if (ret <= 0) return ret;
+                            }
+                            z->c = z->l - m_test4;
                         }
-                        z->c = z->l - m_test3;
-                    }
-                    {   int ret;
-                        {   int saved_c = z->c;
-                            ret = insert_s(z, z->c, z->c, 1, s_7);
-                            z->c = saved_c;
+                        {   int ret = slice_from_s(z, 1, s_7);
+                            if (ret < 0) return ret;
                         }
-                        if (ret < 0) return ret;
-                    }
-                    break;
+                        return 0;
+                        break;
+                }
+                z->c = z->l - m_test2;
+            }
+            z->ket = z->c;
+            {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+                if (ret < 0) return 0;
+                z->c = ret;
+            }
+            z->bra = z->c;
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
             }
             break;
     }
@@ -631,7 +639,7 @@ static int r_Step_1c(struct SN_env * z) {
 lab0:
     z->bra = z->c;
     if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
-    
+
     if (z->c > z->lb) goto lab2;
     return 0;
 lab2:
@@ -646,7 +654,7 @@ static int r_Step_2(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_5, 24);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -739,7 +747,7 @@ static int r_Step_3(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_6, 9);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -787,7 +795,7 @@ static int r_Step_4(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_7, 18);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R2(z);
         if (ret <= 0) return ret;
@@ -822,30 +830,28 @@ static int r_Step_5(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0;
     among_var = find_among_b(z, a_8, 2);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
+
+            {   int ret = r_R2(z);
+                if (ret == 0) goto lab1;
+                if (ret < 0) return ret;
+            }
+            goto lab0;
+        lab1:
+            {   int ret = r_R1(z);
+                if (ret <= 0) return ret;
+            }
             {   int m1 = z->l - z->c; (void)m1;
-                {   int ret = r_R2(z);
-                    if (ret == 0) goto lab1;
+                {   int ret = r_shortv(z);
+                    if (ret == 0) goto lab2;
                     if (ret < 0) return ret;
                 }
-                goto lab0;
-            lab1:
+                return 0;
+            lab2:
                 z->c = z->l - m1;
-                {   int ret = r_R1(z);
-                    if (ret <= 0) return ret;
-                }
-                {   int m2 = z->l - z->c; (void)m2;
-                    {   int ret = r_shortv(z);
-                        if (ret == 0) goto lab2;
-                        if (ret < 0) return ret;
-                    }
-                    return 0;
-                lab2:
-                    z->c = z->l - m2;
-                }
             }
         lab0:
             {   int ret = slice_del(z);
@@ -869,7 +875,7 @@ static int r_Step_5(struct SN_env * z) {
 static int r_exception2(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
-    if (!(find_among_b(z, a_9, 8))) return 0;
+    if (!find_among_b(z, a_9, 8)) return 0;
     z->bra = z->c;
     if (z->c > z->lb) return 0;
     return 1;
@@ -880,7 +886,7 @@ static int r_exception1(struct SN_env * z) {
     z->bra = z->c;
     if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
     among_var = find_among(z, a_10, 18);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     if (z->c < z->l) return 0;
     switch (among_var) {
@@ -994,11 +1000,11 @@ extern int english_UTF_8_stem(struct SN_env * z) {
         goto lab0;
     lab2:
         z->c = c1;
-        
+
         {   int ret = r_prelude(z);
             if (ret < 0) return ret;
         }
-        
+
         {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_estonian.c b/src/backend/snowball/libstemmer/stem_UTF_8_estonian.c
new file mode 100644 (file)
index 0000000..1682399
--- /dev/null
@@ -0,0 +1,1416 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int estonian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_nu(struct SN_env * z);
+static int r_verb(struct SN_env * z);
+static int r_verb_exceptions(struct SN_env * z);
+static int r_substantive(struct SN_env * z);
+static int r_degrees(struct SN_env * z);
+static int r_i_plural(struct SN_env * z);
+static int r_undouble_kpt(struct SN_env * z);
+static int r_plural_three_first_cases(struct SN_env * z);
+static int r_emphasis(struct SN_env * z);
+static int r_case_ending(struct SN_env * z);
+static int r_special_noun_endings(struct SN_env * z);
+static int r_LONGV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * estonian_UTF_8_create_env(void);
+extern void estonian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 'g', 'i' };
+static const symbol s_0_1[2] = { 'k', 'i' };
+
+static const struct among a_0[2] =
+{
+{ 2, s_0_0, -1, 1, 0},
+{ 2, s_0_1, -1, 2, 0}
+};
+
+static const symbol s_1_0[2] = { 'd', 'a' };
+static const symbol s_1_1[4] = { 'm', 'a', 't', 'a' };
+static const symbol s_1_2[1] = { 'b' };
+static const symbol s_1_3[4] = { 'k', 's', 'i', 'd' };
+static const symbol s_1_4[6] = { 'n', 'u', 'k', 's', 'i', 'd' };
+static const symbol s_1_5[2] = { 'm', 'e' };
+static const symbol s_1_6[4] = { 's', 'i', 'm', 'e' };
+static const symbol s_1_7[5] = { 'k', 's', 'i', 'm', 'e' };
+static const symbol s_1_8[7] = { 'n', 'u', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_1_9[4] = { 'a', 'k', 's', 'e' };
+static const symbol s_1_10[5] = { 'd', 'a', 'k', 's', 'e' };
+static const symbol s_1_11[5] = { 't', 'a', 'k', 's', 'e' };
+static const symbol s_1_12[4] = { 's', 'i', 't', 'e' };
+static const symbol s_1_13[5] = { 'k', 's', 'i', 't', 'e' };
+static const symbol s_1_14[7] = { 'n', 'u', 'k', 's', 'i', 't', 'e' };
+static const symbol s_1_15[1] = { 'n' };
+static const symbol s_1_16[3] = { 's', 'i', 'n' };
+static const symbol s_1_17[4] = { 'k', 's', 'i', 'n' };
+static const symbol s_1_18[6] = { 'n', 'u', 'k', 's', 'i', 'n' };
+static const symbol s_1_19[4] = { 'd', 'a', 'k', 's' };
+static const symbol s_1_20[4] = { 't', 'a', 'k', 's' };
+
+static const struct among a_1[21] =
+{
+{ 2, s_1_0, -1, 3, 0},
+{ 4, s_1_1, -1, 1, 0},
+{ 1, s_1_2, -1, 3, 0},
+{ 4, s_1_3, -1, 1, 0},
+{ 6, s_1_4, 3, 1, 0},
+{ 2, s_1_5, -1, 3, 0},
+{ 4, s_1_6, 5, 1, 0},
+{ 5, s_1_7, 6, 1, 0},
+{ 7, s_1_8, 7, 1, 0},
+{ 4, s_1_9, -1, 2, 0},
+{ 5, s_1_10, 9, 1, 0},
+{ 5, s_1_11, 9, 1, 0},
+{ 4, s_1_12, -1, 1, 0},
+{ 5, s_1_13, 12, 1, 0},
+{ 7, s_1_14, 13, 1, 0},
+{ 1, s_1_15, -1, 3, 0},
+{ 3, s_1_16, 15, 1, 0},
+{ 4, s_1_17, 16, 1, 0},
+{ 6, s_1_18, 17, 1, 0},
+{ 4, s_1_19, -1, 1, 0},
+{ 4, s_1_20, -1, 1, 0}
+};
+
+static const symbol s_2_0[2] = { 'a', 'a' };
+static const symbol s_2_1[2] = { 'e', 'e' };
+static const symbol s_2_2[2] = { 'i', 'i' };
+static const symbol s_2_3[2] = { 'o', 'o' };
+static const symbol s_2_4[2] = { 'u', 'u' };
+static const symbol s_2_5[4] = { 0xC3, 0xA4, 0xC3, 0xA4 };
+static const symbol s_2_6[4] = { 0xC3, 0xB5, 0xC3, 0xB5 };
+static const symbol s_2_7[4] = { 0xC3, 0xB6, 0xC3, 0xB6 };
+static const symbol s_2_8[4] = { 0xC3, 0xBC, 0xC3, 0xBC };
+
+static const struct among a_2[9] =
+{
+{ 2, s_2_0, -1, -1, 0},
+{ 2, s_2_1, -1, -1, 0},
+{ 2, s_2_2, -1, -1, 0},
+{ 2, s_2_3, -1, -1, 0},
+{ 2, s_2_4, -1, -1, 0},
+{ 4, s_2_5, -1, -1, 0},
+{ 4, s_2_6, -1, -1, 0},
+{ 4, s_2_7, -1, -1, 0},
+{ 4, s_2_8, -1, -1, 0}
+};
+
+static const symbol s_3_0[1] = { 'i' };
+
+static const struct among a_3[1] =
+{
+{ 1, s_3_0, -1, 1, 0}
+};
+
+static const symbol s_4_0[4] = { 'l', 'a', 'n', 'e' };
+static const symbol s_4_1[4] = { 'l', 'i', 'n', 'e' };
+static const symbol s_4_2[4] = { 'm', 'i', 'n', 'e' };
+static const symbol s_4_3[5] = { 'l', 'a', 's', 's', 'e' };
+static const symbol s_4_4[5] = { 'l', 'i', 's', 's', 'e' };
+static const symbol s_4_5[5] = { 'm', 'i', 's', 's', 'e' };
+static const symbol s_4_6[4] = { 'l', 'a', 's', 'i' };
+static const symbol s_4_7[4] = { 'l', 'i', 's', 'i' };
+static const symbol s_4_8[4] = { 'm', 'i', 's', 'i' };
+static const symbol s_4_9[4] = { 'l', 'a', 's', 't' };
+static const symbol s_4_10[4] = { 'l', 'i', 's', 't' };
+static const symbol s_4_11[4] = { 'm', 'i', 's', 't' };
+
+static const struct among a_4[12] =
+{
+{ 4, s_4_0, -1, 1, 0},
+{ 4, s_4_1, -1, 3, 0},
+{ 4, s_4_2, -1, 2, 0},
+{ 5, s_4_3, -1, 1, 0},
+{ 5, s_4_4, -1, 3, 0},
+{ 5, s_4_5, -1, 2, 0},
+{ 4, s_4_6, -1, 1, 0},
+{ 4, s_4_7, -1, 3, 0},
+{ 4, s_4_8, -1, 2, 0},
+{ 4, s_4_9, -1, 1, 0},
+{ 4, s_4_10, -1, 3, 0},
+{ 4, s_4_11, -1, 2, 0}
+};
+
+static const symbol s_5_0[2] = { 'g', 'a' };
+static const symbol s_5_1[2] = { 't', 'a' };
+static const symbol s_5_2[2] = { 'l', 'e' };
+static const symbol s_5_3[3] = { 's', 's', 'e' };
+static const symbol s_5_4[1] = { 'l' };
+static const symbol s_5_5[1] = { 's' };
+static const symbol s_5_6[2] = { 'k', 's' };
+static const symbol s_5_7[1] = { 't' };
+static const symbol s_5_8[2] = { 'l', 't' };
+static const symbol s_5_9[2] = { 's', 't' };
+
+static const struct among a_5[10] =
+{
+{ 2, s_5_0, -1, 1, 0},
+{ 2, s_5_1, -1, 1, 0},
+{ 2, s_5_2, -1, 1, 0},
+{ 3, s_5_3, -1, 1, 0},
+{ 1, s_5_4, -1, 1, 0},
+{ 1, s_5_5, -1, 1, 0},
+{ 2, s_5_6, 5, 1, 0},
+{ 1, s_5_7, -1, 2, 0},
+{ 2, s_5_8, 7, 1, 0},
+{ 2, s_5_9, 7, 1, 0}
+};
+
+static const symbol s_6_1[3] = { 'l', 'a', 's' };
+static const symbol s_6_2[3] = { 'l', 'i', 's' };
+static const symbol s_6_3[3] = { 'm', 'i', 's' };
+static const symbol s_6_4[1] = { 't' };
+
+static const struct among a_6[5] =
+{
+{ 0, 0, -1, 2, 0},
+{ 3, s_6_1, 0, 1, 0},
+{ 3, s_6_2, 0, 1, 0},
+{ 3, s_6_3, 0, 1, 0},
+{ 1, s_6_4, 0, -1, 0}
+};
+
+static const symbol s_7_0[1] = { 'd' };
+static const symbol s_7_1[3] = { 's', 'i', 'd' };
+static const symbol s_7_2[2] = { 'd', 'e' };
+static const symbol s_7_3[6] = { 'i', 'k', 'k', 'u', 'd', 'e' };
+static const symbol s_7_4[3] = { 'i', 'k', 'e' };
+static const symbol s_7_5[4] = { 'i', 'k', 'k', 'e' };
+static const symbol s_7_6[2] = { 't', 'e' };
+
+static const struct among a_7[7] =
+{
+{ 1, s_7_0, -1, 4, 0},
+{ 3, s_7_1, 0, 2, 0},
+{ 2, s_7_2, -1, 4, 0},
+{ 6, s_7_3, 2, 1, 0},
+{ 3, s_7_4, -1, 1, 0},
+{ 4, s_7_5, -1, 1, 0},
+{ 2, s_7_6, -1, 3, 0}
+};
+
+static const symbol s_8_0[2] = { 'v', 'a' };
+static const symbol s_8_1[2] = { 'd', 'u' };
+static const symbol s_8_2[2] = { 'n', 'u' };
+static const symbol s_8_3[2] = { 't', 'u' };
+
+static const struct among a_8[4] =
+{
+{ 2, s_8_0, -1, -1, 0},
+{ 2, s_8_1, -1, -1, 0},
+{ 2, s_8_2, -1, -1, 0},
+{ 2, s_8_3, -1, -1, 0}
+};
+
+static const symbol s_9_0[2] = { 'k', 'k' };
+static const symbol s_9_1[2] = { 'p', 'p' };
+static const symbol s_9_2[2] = { 't', 't' };
+
+static const struct among a_9[3] =
+{
+{ 2, s_9_0, -1, 1, 0},
+{ 2, s_9_1, -1, 2, 0},
+{ 2, s_9_2, -1, 3, 0}
+};
+
+static const symbol s_10_0[2] = { 'm', 'a' };
+static const symbol s_10_1[3] = { 'm', 'a', 'i' };
+static const symbol s_10_2[1] = { 'm' };
+
+static const struct among a_10[3] =
+{
+{ 2, s_10_0, -1, 2, 0},
+{ 3, s_10_1, -1, 1, 0},
+{ 1, s_10_2, -1, 1, 0}
+};
+
+static const symbol s_11_0[4] = { 'j', 'o', 'o', 'b' };
+static const symbol s_11_1[4] = { 'j', 'o', 'o', 'd' };
+static const symbol s_11_2[8] = { 'j', 'o', 'o', 'd', 'a', 'k', 's', 'e' };
+static const symbol s_11_3[5] = { 'j', 'o', 'o', 'm', 'a' };
+static const symbol s_11_4[7] = { 'j', 'o', 'o', 'm', 'a', 't', 'a' };
+static const symbol s_11_5[5] = { 'j', 'o', 'o', 'm', 'e' };
+static const symbol s_11_6[4] = { 'j', 'o', 'o', 'n' };
+static const symbol s_11_7[5] = { 'j', 'o', 'o', 't', 'e' };
+static const symbol s_11_8[6] = { 'j', 'o', 'o', 'v', 'a', 'd' };
+static const symbol s_11_9[4] = { 'j', 'u', 'u', 'a' };
+static const symbol s_11_10[7] = { 'j', 'u', 'u', 'a', 'k', 's', 'e' };
+static const symbol s_11_11[4] = { 'j', 0xC3, 0xA4, 'i' };
+static const symbol s_11_12[5] = { 'j', 0xC3, 0xA4, 'i', 'd' };
+static const symbol s_11_13[6] = { 'j', 0xC3, 0xA4, 'i', 'm', 'e' };
+static const symbol s_11_14[5] = { 'j', 0xC3, 0xA4, 'i', 'n' };
+static const symbol s_11_15[6] = { 'j', 0xC3, 0xA4, 'i', 't', 'e' };
+static const symbol s_11_16[6] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'b' };
+static const symbol s_11_17[6] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'd' };
+static const symbol s_11_18[7] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'd', 'a' };
+static const symbol s_11_19[10] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'd', 'a', 'k', 's', 'e' };
+static const symbol s_11_20[7] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'd', 'i' };
+static const symbol s_11_21[7] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'k', 's' };
+static const symbol s_11_22[9] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'k', 's', 'i', 'd' };
+static const symbol s_11_23[10] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_24[9] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'k', 's', 'i', 'n' };
+static const symbol s_11_25[10] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_26[7] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'm', 'a' };
+static const symbol s_11_27[9] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'm', 'a', 't', 'a' };
+static const symbol s_11_28[7] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'm', 'e' };
+static const symbol s_11_29[6] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'n' };
+static const symbol s_11_30[7] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 't', 'e' };
+static const symbol s_11_31[8] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'v', 'a', 'd' };
+static const symbol s_11_32[4] = { 'j', 0xC3, 0xB5, 'i' };
+static const symbol s_11_33[5] = { 'j', 0xC3, 0xB5, 'i', 'd' };
+static const symbol s_11_34[6] = { 'j', 0xC3, 0xB5, 'i', 'm', 'e' };
+static const symbol s_11_35[5] = { 'j', 0xC3, 0xB5, 'i', 'n' };
+static const symbol s_11_36[6] = { 'j', 0xC3, 0xB5, 'i', 't', 'e' };
+static const symbol s_11_37[4] = { 'k', 'e', 'e', 'b' };
+static const symbol s_11_38[4] = { 'k', 'e', 'e', 'd' };
+static const symbol s_11_39[8] = { 'k', 'e', 'e', 'd', 'a', 'k', 's', 'e' };
+static const symbol s_11_40[5] = { 'k', 'e', 'e', 'k', 's' };
+static const symbol s_11_41[7] = { 'k', 'e', 'e', 'k', 's', 'i', 'd' };
+static const symbol s_11_42[8] = { 'k', 'e', 'e', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_43[7] = { 'k', 'e', 'e', 'k', 's', 'i', 'n' };
+static const symbol s_11_44[8] = { 'k', 'e', 'e', 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_45[5] = { 'k', 'e', 'e', 'm', 'a' };
+static const symbol s_11_46[7] = { 'k', 'e', 'e', 'm', 'a', 't', 'a' };
+static const symbol s_11_47[5] = { 'k', 'e', 'e', 'm', 'e' };
+static const symbol s_11_48[4] = { 'k', 'e', 'e', 'n' };
+static const symbol s_11_49[4] = { 'k', 'e', 'e', 's' };
+static const symbol s_11_50[5] = { 'k', 'e', 'e', 't', 'a' };
+static const symbol s_11_51[5] = { 'k', 'e', 'e', 't', 'e' };
+static const symbol s_11_52[6] = { 'k', 'e', 'e', 'v', 'a', 'd' };
+static const symbol s_11_53[5] = { 'k', 0xC3, 0xA4, 'i', 'a' };
+static const symbol s_11_54[8] = { 'k', 0xC3, 0xA4, 'i', 'a', 'k', 's', 'e' };
+static const symbol s_11_55[5] = { 'k', 0xC3, 0xA4, 'i', 'b' };
+static const symbol s_11_56[5] = { 'k', 0xC3, 0xA4, 'i', 'd' };
+static const symbol s_11_57[6] = { 'k', 0xC3, 0xA4, 'i', 'd', 'i' };
+static const symbol s_11_58[6] = { 'k', 0xC3, 0xA4, 'i', 'k', 's' };
+static const symbol s_11_59[8] = { 'k', 0xC3, 0xA4, 'i', 'k', 's', 'i', 'd' };
+static const symbol s_11_60[9] = { 'k', 0xC3, 0xA4, 'i', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_61[8] = { 'k', 0xC3, 0xA4, 'i', 'k', 's', 'i', 'n' };
+static const symbol s_11_62[9] = { 'k', 0xC3, 0xA4, 'i', 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_63[6] = { 'k', 0xC3, 0xA4, 'i', 'm', 'a' };
+static const symbol s_11_64[8] = { 'k', 0xC3, 0xA4, 'i', 'm', 'a', 't', 'a' };
+static const symbol s_11_65[6] = { 'k', 0xC3, 0xA4, 'i', 'm', 'e' };
+static const symbol s_11_66[5] = { 'k', 0xC3, 0xA4, 'i', 'n' };
+static const symbol s_11_67[5] = { 'k', 0xC3, 0xA4, 'i', 's' };
+static const symbol s_11_68[6] = { 'k', 0xC3, 0xA4, 'i', 't', 'e' };
+static const symbol s_11_69[7] = { 'k', 0xC3, 0xA4, 'i', 'v', 'a', 'd' };
+static const symbol s_11_70[4] = { 'l', 'a', 'o', 'b' };
+static const symbol s_11_71[4] = { 'l', 'a', 'o', 'd' };
+static const symbol s_11_72[5] = { 'l', 'a', 'o', 'k', 's' };
+static const symbol s_11_73[7] = { 'l', 'a', 'o', 'k', 's', 'i', 'd' };
+static const symbol s_11_74[8] = { 'l', 'a', 'o', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_75[7] = { 'l', 'a', 'o', 'k', 's', 'i', 'n' };
+static const symbol s_11_76[8] = { 'l', 'a', 'o', 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_77[5] = { 'l', 'a', 'o', 'm', 'e' };
+static const symbol s_11_78[4] = { 'l', 'a', 'o', 'n' };
+static const symbol s_11_79[5] = { 'l', 'a', 'o', 't', 'e' };
+static const symbol s_11_80[6] = { 'l', 'a', 'o', 'v', 'a', 'd' };
+static const symbol s_11_81[4] = { 'l', 'o', 'e', 'b' };
+static const symbol s_11_82[4] = { 'l', 'o', 'e', 'd' };
+static const symbol s_11_83[5] = { 'l', 'o', 'e', 'k', 's' };
+static const symbol s_11_84[7] = { 'l', 'o', 'e', 'k', 's', 'i', 'd' };
+static const symbol s_11_85[8] = { 'l', 'o', 'e', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_86[7] = { 'l', 'o', 'e', 'k', 's', 'i', 'n' };
+static const symbol s_11_87[8] = { 'l', 'o', 'e', 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_88[5] = { 'l', 'o', 'e', 'm', 'e' };
+static const symbol s_11_89[4] = { 'l', 'o', 'e', 'n' };
+static const symbol s_11_90[5] = { 'l', 'o', 'e', 't', 'e' };
+static const symbol s_11_91[6] = { 'l', 'o', 'e', 'v', 'a', 'd' };
+static const symbol s_11_92[4] = { 'l', 'o', 'o', 'b' };
+static const symbol s_11_93[4] = { 'l', 'o', 'o', 'd' };
+static const symbol s_11_94[5] = { 'l', 'o', 'o', 'd', 'i' };
+static const symbol s_11_95[5] = { 'l', 'o', 'o', 'k', 's' };
+static const symbol s_11_96[7] = { 'l', 'o', 'o', 'k', 's', 'i', 'd' };
+static const symbol s_11_97[8] = { 'l', 'o', 'o', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_98[7] = { 'l', 'o', 'o', 'k', 's', 'i', 'n' };
+static const symbol s_11_99[8] = { 'l', 'o', 'o', 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_100[5] = { 'l', 'o', 'o', 'm', 'a' };
+static const symbol s_11_101[7] = { 'l', 'o', 'o', 'm', 'a', 't', 'a' };
+static const symbol s_11_102[5] = { 'l', 'o', 'o', 'm', 'e' };
+static const symbol s_11_103[4] = { 'l', 'o', 'o', 'n' };
+static const symbol s_11_104[5] = { 'l', 'o', 'o', 't', 'e' };
+static const symbol s_11_105[6] = { 'l', 'o', 'o', 'v', 'a', 'd' };
+static const symbol s_11_106[4] = { 'l', 'u', 'u', 'a' };
+static const symbol s_11_107[7] = { 'l', 'u', 'u', 'a', 'k', 's', 'e' };
+static const symbol s_11_108[4] = { 'l', 0xC3, 0xB5, 'i' };
+static const symbol s_11_109[5] = { 'l', 0xC3, 0xB5, 'i', 'd' };
+static const symbol s_11_110[6] = { 'l', 0xC3, 0xB5, 'i', 'm', 'e' };
+static const symbol s_11_111[5] = { 'l', 0xC3, 0xB5, 'i', 'n' };
+static const symbol s_11_112[6] = { 'l', 0xC3, 0xB5, 'i', 't', 'e' };
+static const symbol s_11_113[6] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'b' };
+static const symbol s_11_114[6] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'd' };
+static const symbol s_11_115[10] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'd', 'a', 'k', 's', 'e' };
+static const symbol s_11_116[7] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'd', 'i' };
+static const symbol s_11_117[7] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'k', 's' };
+static const symbol s_11_118[9] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'k', 's', 'i', 'd' };
+static const symbol s_11_119[10] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_120[9] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'k', 's', 'i', 'n' };
+static const symbol s_11_121[10] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_122[7] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'm', 'a' };
+static const symbol s_11_123[9] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'm', 'a', 't', 'a' };
+static const symbol s_11_124[7] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'm', 'e' };
+static const symbol s_11_125[6] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'n' };
+static const symbol s_11_126[7] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 't', 'e' };
+static const symbol s_11_127[8] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6, 'v', 'a', 'd' };
+static const symbol s_11_128[6] = { 'l', 0xC3, 0xBC, 0xC3, 0xBC, 'a' };
+static const symbol s_11_129[9] = { 'l', 0xC3, 0xBC, 0xC3, 0xBC, 'a', 'k', 's', 'e' };
+static const symbol s_11_130[6] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'a' };
+static const symbol s_11_131[9] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'a', 'k', 's', 'e' };
+static const symbol s_11_132[6] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'b' };
+static const symbol s_11_133[6] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'd' };
+static const symbol s_11_134[7] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'd', 'i' };
+static const symbol s_11_135[7] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'k', 's' };
+static const symbol s_11_136[9] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'k', 's', 'i', 'd' };
+static const symbol s_11_137[10] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_138[9] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'k', 's', 'i', 'n' };
+static const symbol s_11_139[10] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_140[7] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'm', 'a' };
+static const symbol s_11_141[9] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'm', 'a', 't', 'a' };
+static const symbol s_11_142[7] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'm', 'e' };
+static const symbol s_11_143[6] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'n' };
+static const symbol s_11_144[6] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 's' };
+static const symbol s_11_145[7] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 't', 'e' };
+static const symbol s_11_146[8] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 'v', 'a', 'd' };
+static const symbol s_11_147[5] = { 'n', 0xC3, 0xA4, 'e', 'b' };
+static const symbol s_11_148[5] = { 'n', 0xC3, 0xA4, 'e', 'd' };
+static const symbol s_11_149[6] = { 'n', 0xC3, 0xA4, 'e', 'k', 's' };
+static const symbol s_11_150[8] = { 'n', 0xC3, 0xA4, 'e', 'k', 's', 'i', 'd' };
+static const symbol s_11_151[9] = { 'n', 0xC3, 0xA4, 'e', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_152[8] = { 'n', 0xC3, 0xA4, 'e', 'k', 's', 'i', 'n' };
+static const symbol s_11_153[9] = { 'n', 0xC3, 0xA4, 'e', 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_154[6] = { 'n', 0xC3, 0xA4, 'e', 'm', 'e' };
+static const symbol s_11_155[5] = { 'n', 0xC3, 0xA4, 'e', 'n' };
+static const symbol s_11_156[6] = { 'n', 0xC3, 0xA4, 'e', 't', 'e' };
+static const symbol s_11_157[7] = { 'n', 0xC3, 0xA4, 'e', 'v', 'a', 'd' };
+static const symbol s_11_158[7] = { 'n', 0xC3, 0xA4, 'g', 'e', 'm', 'a' };
+static const symbol s_11_159[9] = { 'n', 0xC3, 0xA4, 'g', 'e', 'm', 'a', 't', 'a' };
+static const symbol s_11_160[5] = { 'n', 0xC3, 0xA4, 'h', 'a' };
+static const symbol s_11_161[8] = { 'n', 0xC3, 0xA4, 'h', 'a', 'k', 's', 'e' };
+static const symbol s_11_162[6] = { 'n', 0xC3, 0xA4, 'h', 't', 'i' };
+static const symbol s_11_163[5] = { 'p', 0xC3, 0xB5, 'e', 'b' };
+static const symbol s_11_164[5] = { 'p', 0xC3, 0xB5, 'e', 'd' };
+static const symbol s_11_165[6] = { 'p', 0xC3, 0xB5, 'e', 'k', 's' };
+static const symbol s_11_166[8] = { 'p', 0xC3, 0xB5, 'e', 'k', 's', 'i', 'd' };
+static const symbol s_11_167[9] = { 'p', 0xC3, 0xB5, 'e', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_168[8] = { 'p', 0xC3, 0xB5, 'e', 'k', 's', 'i', 'n' };
+static const symbol s_11_169[9] = { 'p', 0xC3, 0xB5, 'e', 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_170[6] = { 'p', 0xC3, 0xB5, 'e', 'm', 'e' };
+static const symbol s_11_171[5] = { 'p', 0xC3, 0xB5, 'e', 'n' };
+static const symbol s_11_172[6] = { 'p', 0xC3, 0xB5, 'e', 't', 'e' };
+static const symbol s_11_173[7] = { 'p', 0xC3, 0xB5, 'e', 'v', 'a', 'd' };
+static const symbol s_11_174[4] = { 's', 'a', 'a', 'b' };
+static const symbol s_11_175[4] = { 's', 'a', 'a', 'd' };
+static const symbol s_11_176[5] = { 's', 'a', 'a', 'd', 'a' };
+static const symbol s_11_177[8] = { 's', 'a', 'a', 'd', 'a', 'k', 's', 'e' };
+static const symbol s_11_178[5] = { 's', 'a', 'a', 'd', 'i' };
+static const symbol s_11_179[5] = { 's', 'a', 'a', 'k', 's' };
+static const symbol s_11_180[7] = { 's', 'a', 'a', 'k', 's', 'i', 'd' };
+static const symbol s_11_181[8] = { 's', 'a', 'a', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_182[7] = { 's', 'a', 'a', 'k', 's', 'i', 'n' };
+static const symbol s_11_183[8] = { 's', 'a', 'a', 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_184[5] = { 's', 'a', 'a', 'm', 'a' };
+static const symbol s_11_185[7] = { 's', 'a', 'a', 'm', 'a', 't', 'a' };
+static const symbol s_11_186[5] = { 's', 'a', 'a', 'm', 'e' };
+static const symbol s_11_187[4] = { 's', 'a', 'a', 'n' };
+static const symbol s_11_188[5] = { 's', 'a', 'a', 't', 'e' };
+static const symbol s_11_189[6] = { 's', 'a', 'a', 'v', 'a', 'd' };
+static const symbol s_11_190[3] = { 's', 'a', 'i' };
+static const symbol s_11_191[4] = { 's', 'a', 'i', 'd' };
+static const symbol s_11_192[5] = { 's', 'a', 'i', 'm', 'e' };
+static const symbol s_11_193[4] = { 's', 'a', 'i', 'n' };
+static const symbol s_11_194[5] = { 's', 'a', 'i', 't', 'e' };
+static const symbol s_11_195[4] = { 's', 0xC3, 0xB5, 'i' };
+static const symbol s_11_196[5] = { 's', 0xC3, 0xB5, 'i', 'd' };
+static const symbol s_11_197[6] = { 's', 0xC3, 0xB5, 'i', 'm', 'e' };
+static const symbol s_11_198[5] = { 's', 0xC3, 0xB5, 'i', 'n' };
+static const symbol s_11_199[6] = { 's', 0xC3, 0xB5, 'i', 't', 'e' };
+static const symbol s_11_200[6] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'b' };
+static const symbol s_11_201[6] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'd' };
+static const symbol s_11_202[10] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'd', 'a', 'k', 's', 'e' };
+static const symbol s_11_203[7] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'd', 'i' };
+static const symbol s_11_204[7] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'k', 's' };
+static const symbol s_11_205[9] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'k', 's', 'i', 'd' };
+static const symbol s_11_206[10] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_207[9] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'k', 's', 'i', 'n' };
+static const symbol s_11_208[10] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_209[7] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'm', 'a' };
+static const symbol s_11_210[9] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'm', 'a', 't', 'a' };
+static const symbol s_11_211[7] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'm', 'e' };
+static const symbol s_11_212[6] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'n' };
+static const symbol s_11_213[7] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 't', 'e' };
+static const symbol s_11_214[8] = { 's', 0xC3, 0xB6, 0xC3, 0xB6, 'v', 'a', 'd' };
+static const symbol s_11_215[6] = { 's', 0xC3, 0xBC, 0xC3, 0xBC, 'a' };
+static const symbol s_11_216[9] = { 's', 0xC3, 0xBC, 0xC3, 0xBC, 'a', 'k', 's', 'e' };
+static const symbol s_11_217[4] = { 't', 'e', 'e', 'b' };
+static const symbol s_11_218[4] = { 't', 'e', 'e', 'd' };
+static const symbol s_11_219[5] = { 't', 'e', 'e', 'k', 's' };
+static const symbol s_11_220[7] = { 't', 'e', 'e', 'k', 's', 'i', 'd' };
+static const symbol s_11_221[8] = { 't', 'e', 'e', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_222[7] = { 't', 'e', 'e', 'k', 's', 'i', 'n' };
+static const symbol s_11_223[8] = { 't', 'e', 'e', 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_224[5] = { 't', 'e', 'e', 'm', 'e' };
+static const symbol s_11_225[4] = { 't', 'e', 'e', 'n' };
+static const symbol s_11_226[5] = { 't', 'e', 'e', 't', 'e' };
+static const symbol s_11_227[6] = { 't', 'e', 'e', 'v', 'a', 'd' };
+static const symbol s_11_228[6] = { 't', 'e', 'g', 'e', 'm', 'a' };
+static const symbol s_11_229[8] = { 't', 'e', 'g', 'e', 'm', 'a', 't', 'a' };
+static const symbol s_11_230[4] = { 't', 'e', 'h', 'a' };
+static const symbol s_11_231[7] = { 't', 'e', 'h', 'a', 'k', 's', 'e' };
+static const symbol s_11_232[5] = { 't', 'e', 'h', 't', 'i' };
+static const symbol s_11_233[4] = { 't', 'o', 'o', 'b' };
+static const symbol s_11_234[4] = { 't', 'o', 'o', 'd' };
+static const symbol s_11_235[5] = { 't', 'o', 'o', 'd', 'i' };
+static const symbol s_11_236[5] = { 't', 'o', 'o', 'k', 's' };
+static const symbol s_11_237[7] = { 't', 'o', 'o', 'k', 's', 'i', 'd' };
+static const symbol s_11_238[8] = { 't', 'o', 'o', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_239[7] = { 't', 'o', 'o', 'k', 's', 'i', 'n' };
+static const symbol s_11_240[8] = { 't', 'o', 'o', 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_241[5] = { 't', 'o', 'o', 'm', 'a' };
+static const symbol s_11_242[7] = { 't', 'o', 'o', 'm', 'a', 't', 'a' };
+static const symbol s_11_243[5] = { 't', 'o', 'o', 'm', 'e' };
+static const symbol s_11_244[4] = { 't', 'o', 'o', 'n' };
+static const symbol s_11_245[5] = { 't', 'o', 'o', 't', 'e' };
+static const symbol s_11_246[6] = { 't', 'o', 'o', 'v', 'a', 'd' };
+static const symbol s_11_247[4] = { 't', 'u', 'u', 'a' };
+static const symbol s_11_248[7] = { 't', 'u', 'u', 'a', 'k', 's', 'e' };
+static const symbol s_11_249[4] = { 't', 0xC3, 0xB5, 'i' };
+static const symbol s_11_250[5] = { 't', 0xC3, 0xB5, 'i', 'd' };
+static const symbol s_11_251[6] = { 't', 0xC3, 0xB5, 'i', 'm', 'e' };
+static const symbol s_11_252[5] = { 't', 0xC3, 0xB5, 'i', 'n' };
+static const symbol s_11_253[6] = { 't', 0xC3, 0xB5, 'i', 't', 'e' };
+static const symbol s_11_254[4] = { 'v', 'i', 'i', 'a' };
+static const symbol s_11_255[7] = { 'v', 'i', 'i', 'a', 'k', 's', 'e' };
+static const symbol s_11_256[4] = { 'v', 'i', 'i', 'b' };
+static const symbol s_11_257[4] = { 'v', 'i', 'i', 'd' };
+static const symbol s_11_258[5] = { 'v', 'i', 'i', 'd', 'i' };
+static const symbol s_11_259[5] = { 'v', 'i', 'i', 'k', 's' };
+static const symbol s_11_260[7] = { 'v', 'i', 'i', 'k', 's', 'i', 'd' };
+static const symbol s_11_261[8] = { 'v', 'i', 'i', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_262[7] = { 'v', 'i', 'i', 'k', 's', 'i', 'n' };
+static const symbol s_11_263[8] = { 'v', 'i', 'i', 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_264[5] = { 'v', 'i', 'i', 'm', 'a' };
+static const symbol s_11_265[7] = { 'v', 'i', 'i', 'm', 'a', 't', 'a' };
+static const symbol s_11_266[5] = { 'v', 'i', 'i', 'm', 'e' };
+static const symbol s_11_267[4] = { 'v', 'i', 'i', 'n' };
+static const symbol s_11_268[7] = { 'v', 'i', 'i', 's', 'i', 'm', 'e' };
+static const symbol s_11_269[6] = { 'v', 'i', 'i', 's', 'i', 'n' };
+static const symbol s_11_270[7] = { 'v', 'i', 'i', 's', 'i', 't', 'e' };
+static const symbol s_11_271[5] = { 'v', 'i', 'i', 't', 'e' };
+static const symbol s_11_272[6] = { 'v', 'i', 'i', 'v', 'a', 'd' };
+static const symbol s_11_273[5] = { 'v', 0xC3, 0xB5, 'i', 'b' };
+static const symbol s_11_274[5] = { 'v', 0xC3, 0xB5, 'i', 'd' };
+static const symbol s_11_275[6] = { 'v', 0xC3, 0xB5, 'i', 'd', 'a' };
+static const symbol s_11_276[9] = { 'v', 0xC3, 0xB5, 'i', 'd', 'a', 'k', 's', 'e' };
+static const symbol s_11_277[6] = { 'v', 0xC3, 0xB5, 'i', 'd', 'i' };
+static const symbol s_11_278[6] = { 'v', 0xC3, 0xB5, 'i', 'k', 's' };
+static const symbol s_11_279[8] = { 'v', 0xC3, 0xB5, 'i', 'k', 's', 'i', 'd' };
+static const symbol s_11_280[9] = { 'v', 0xC3, 0xB5, 'i', 'k', 's', 'i', 'm', 'e' };
+static const symbol s_11_281[8] = { 'v', 0xC3, 0xB5, 'i', 'k', 's', 'i', 'n' };
+static const symbol s_11_282[9] = { 'v', 0xC3, 0xB5, 'i', 'k', 's', 'i', 't', 'e' };
+static const symbol s_11_283[6] = { 'v', 0xC3, 0xB5, 'i', 'm', 'a' };
+static const symbol s_11_284[8] = { 'v', 0xC3, 0xB5, 'i', 'm', 'a', 't', 'a' };
+static const symbol s_11_285[6] = { 'v', 0xC3, 0xB5, 'i', 'm', 'e' };
+static const symbol s_11_286[5] = { 'v', 0xC3, 0xB5, 'i', 'n' };
+static const symbol s_11_287[5] = { 'v', 0xC3, 0xB5, 'i', 's' };
+static const symbol s_11_288[6] = { 'v', 0xC3, 0xB5, 'i', 't', 'e' };
+static const symbol s_11_289[7] = { 'v', 0xC3, 0xB5, 'i', 'v', 'a', 'd' };
+
+static const struct among a_11[290] =
+{
+{ 4, s_11_0, -1, 1, 0},
+{ 4, s_11_1, -1, 1, 0},
+{ 8, s_11_2, 1, 1, 0},
+{ 5, s_11_3, -1, 1, 0},
+{ 7, s_11_4, 3, 1, 0},
+{ 5, s_11_5, -1, 1, 0},
+{ 4, s_11_6, -1, 1, 0},
+{ 5, s_11_7, -1, 1, 0},
+{ 6, s_11_8, -1, 1, 0},
+{ 4, s_11_9, -1, 1, 0},
+{ 7, s_11_10, 9, 1, 0},
+{ 4, s_11_11, -1, 12, 0},
+{ 5, s_11_12, 11, 12, 0},
+{ 6, s_11_13, 11, 12, 0},
+{ 5, s_11_14, 11, 12, 0},
+{ 6, s_11_15, 11, 12, 0},
+{ 6, s_11_16, -1, 12, 0},
+{ 6, s_11_17, -1, 12, 0},
+{ 7, s_11_18, 17, 12, 0},
+{ 10, s_11_19, 18, 12, 0},
+{ 7, s_11_20, 17, 12, 0},
+{ 7, s_11_21, -1, 12, 0},
+{ 9, s_11_22, 21, 12, 0},
+{ 10, s_11_23, 21, 12, 0},
+{ 9, s_11_24, 21, 12, 0},
+{ 10, s_11_25, 21, 12, 0},
+{ 7, s_11_26, -1, 12, 0},
+{ 9, s_11_27, 26, 12, 0},
+{ 7, s_11_28, -1, 12, 0},
+{ 6, s_11_29, -1, 12, 0},
+{ 7, s_11_30, -1, 12, 0},
+{ 8, s_11_31, -1, 12, 0},
+{ 4, s_11_32, -1, 1, 0},
+{ 5, s_11_33, 32, 1, 0},
+{ 6, s_11_34, 32, 1, 0},
+{ 5, s_11_35, 32, 1, 0},
+{ 6, s_11_36, 32, 1, 0},
+{ 4, s_11_37, -1, 4, 0},
+{ 4, s_11_38, -1, 4, 0},
+{ 8, s_11_39, 38, 4, 0},
+{ 5, s_11_40, -1, 4, 0},
+{ 7, s_11_41, 40, 4, 0},
+{ 8, s_11_42, 40, 4, 0},
+{ 7, s_11_43, 40, 4, 0},
+{ 8, s_11_44, 40, 4, 0},
+{ 5, s_11_45, -1, 4, 0},
+{ 7, s_11_46, 45, 4, 0},
+{ 5, s_11_47, -1, 4, 0},
+{ 4, s_11_48, -1, 4, 0},
+{ 4, s_11_49, -1, 4, 0},
+{ 5, s_11_50, -1, 4, 0},
+{ 5, s_11_51, -1, 4, 0},
+{ 6, s_11_52, -1, 4, 0},
+{ 5, s_11_53, -1, 8, 0},
+{ 8, s_11_54, 53, 8, 0},
+{ 5, s_11_55, -1, 8, 0},
+{ 5, s_11_56, -1, 8, 0},
+{ 6, s_11_57, 56, 8, 0},
+{ 6, s_11_58, -1, 8, 0},
+{ 8, s_11_59, 58, 8, 0},
+{ 9, s_11_60, 58, 8, 0},
+{ 8, s_11_61, 58, 8, 0},
+{ 9, s_11_62, 58, 8, 0},
+{ 6, s_11_63, -1, 8, 0},
+{ 8, s_11_64, 63, 8, 0},
+{ 6, s_11_65, -1, 8, 0},
+{ 5, s_11_66, -1, 8, 0},
+{ 5, s_11_67, -1, 8, 0},
+{ 6, s_11_68, -1, 8, 0},
+{ 7, s_11_69, -1, 8, 0},
+{ 4, s_11_70, -1, 16, 0},
+{ 4, s_11_71, -1, 16, 0},
+{ 5, s_11_72, -1, 16, 0},
+{ 7, s_11_73, 72, 16, 0},
+{ 8, s_11_74, 72, 16, 0},
+{ 7, s_11_75, 72, 16, 0},
+{ 8, s_11_76, 72, 16, 0},
+{ 5, s_11_77, -1, 16, 0},
+{ 4, s_11_78, -1, 16, 0},
+{ 5, s_11_79, -1, 16, 0},
+{ 6, s_11_80, -1, 16, 0},
+{ 4, s_11_81, -1, 14, 0},
+{ 4, s_11_82, -1, 14, 0},
+{ 5, s_11_83, -1, 14, 0},
+{ 7, s_11_84, 83, 14, 0},
+{ 8, s_11_85, 83, 14, 0},
+{ 7, s_11_86, 83, 14, 0},
+{ 8, s_11_87, 83, 14, 0},
+{ 5, s_11_88, -1, 14, 0},
+{ 4, s_11_89, -1, 14, 0},
+{ 5, s_11_90, -1, 14, 0},
+{ 6, s_11_91, -1, 14, 0},
+{ 4, s_11_92, -1, 7, 0},
+{ 4, s_11_93, -1, 7, 0},
+{ 5, s_11_94, 93, 7, 0},
+{ 5, s_11_95, -1, 7, 0},
+{ 7, s_11_96, 95, 7, 0},
+{ 8, s_11_97, 95, 7, 0},
+{ 7, s_11_98, 95, 7, 0},
+{ 8, s_11_99, 95, 7, 0},
+{ 5, s_11_100, -1, 7, 0},
+{ 7, s_11_101, 100, 7, 0},
+{ 5, s_11_102, -1, 7, 0},
+{ 4, s_11_103, -1, 7, 0},
+{ 5, s_11_104, -1, 7, 0},
+{ 6, s_11_105, -1, 7, 0},
+{ 4, s_11_106, -1, 7, 0},
+{ 7, s_11_107, 106, 7, 0},
+{ 4, s_11_108, -1, 6, 0},
+{ 5, s_11_109, 108, 6, 0},
+{ 6, s_11_110, 108, 6, 0},
+{ 5, s_11_111, 108, 6, 0},
+{ 6, s_11_112, 108, 6, 0},
+{ 6, s_11_113, -1, 5, 0},
+{ 6, s_11_114, -1, 5, 0},
+{ 10, s_11_115, 114, 5, 0},
+{ 7, s_11_116, 114, 5, 0},
+{ 7, s_11_117, -1, 5, 0},
+{ 9, s_11_118, 117, 5, 0},
+{ 10, s_11_119, 117, 5, 0},
+{ 9, s_11_120, 117, 5, 0},
+{ 10, s_11_121, 117, 5, 0},
+{ 7, s_11_122, -1, 5, 0},
+{ 9, s_11_123, 122, 5, 0},
+{ 7, s_11_124, -1, 5, 0},
+{ 6, s_11_125, -1, 5, 0},
+{ 7, s_11_126, -1, 5, 0},
+{ 8, s_11_127, -1, 5, 0},
+{ 6, s_11_128, -1, 5, 0},
+{ 9, s_11_129, 128, 5, 0},
+{ 6, s_11_130, -1, 13, 0},
+{ 9, s_11_131, 130, 13, 0},
+{ 6, s_11_132, -1, 13, 0},
+{ 6, s_11_133, -1, 13, 0},
+{ 7, s_11_134, 133, 13, 0},
+{ 7, s_11_135, -1, 13, 0},
+{ 9, s_11_136, 135, 13, 0},
+{ 10, s_11_137, 135, 13, 0},
+{ 9, s_11_138, 135, 13, 0},
+{ 10, s_11_139, 135, 13, 0},
+{ 7, s_11_140, -1, 13, 0},
+{ 9, s_11_141, 140, 13, 0},
+{ 7, s_11_142, -1, 13, 0},
+{ 6, s_11_143, -1, 13, 0},
+{ 6, s_11_144, -1, 13, 0},
+{ 7, s_11_145, -1, 13, 0},
+{ 8, s_11_146, -1, 13, 0},
+{ 5, s_11_147, -1, 18, 0},
+{ 5, s_11_148, -1, 18, 0},
+{ 6, s_11_149, -1, 18, 0},
+{ 8, s_11_150, 149, 18, 0},
+{ 9, s_11_151, 149, 18, 0},
+{ 8, s_11_152, 149, 18, 0},
+{ 9, s_11_153, 149, 18, 0},
+{ 6, s_11_154, -1, 18, 0},
+{ 5, s_11_155, -1, 18, 0},
+{ 6, s_11_156, -1, 18, 0},
+{ 7, s_11_157, -1, 18, 0},
+{ 7, s_11_158, -1, 18, 0},
+{ 9, s_11_159, 158, 18, 0},
+{ 5, s_11_160, -1, 18, 0},
+{ 8, s_11_161, 160, 18, 0},
+{ 6, s_11_162, -1, 18, 0},
+{ 5, s_11_163, -1, 15, 0},
+{ 5, s_11_164, -1, 15, 0},
+{ 6, s_11_165, -1, 15, 0},
+{ 8, s_11_166, 165, 15, 0},
+{ 9, s_11_167, 165, 15, 0},
+{ 8, s_11_168, 165, 15, 0},
+{ 9, s_11_169, 165, 15, 0},
+{ 6, s_11_170, -1, 15, 0},
+{ 5, s_11_171, -1, 15, 0},
+{ 6, s_11_172, -1, 15, 0},
+{ 7, s_11_173, -1, 15, 0},
+{ 4, s_11_174, -1, 2, 0},
+{ 4, s_11_175, -1, 2, 0},
+{ 5, s_11_176, 175, 2, 0},
+{ 8, s_11_177, 176, 2, 0},
+{ 5, s_11_178, 175, 2, 0},
+{ 5, s_11_179, -1, 2, 0},
+{ 7, s_11_180, 179, 2, 0},
+{ 8, s_11_181, 179, 2, 0},
+{ 7, s_11_182, 179, 2, 0},
+{ 8, s_11_183, 179, 2, 0},
+{ 5, s_11_184, -1, 2, 0},
+{ 7, s_11_185, 184, 2, 0},
+{ 5, s_11_186, -1, 2, 0},
+{ 4, s_11_187, -1, 2, 0},
+{ 5, s_11_188, -1, 2, 0},
+{ 6, s_11_189, -1, 2, 0},
+{ 3, s_11_190, -1, 2, 0},
+{ 4, s_11_191, 190, 2, 0},
+{ 5, s_11_192, 190, 2, 0},
+{ 4, s_11_193, 190, 2, 0},
+{ 5, s_11_194, 190, 2, 0},
+{ 4, s_11_195, -1, 9, 0},
+{ 5, s_11_196, 195, 9, 0},
+{ 6, s_11_197, 195, 9, 0},
+{ 5, s_11_198, 195, 9, 0},
+{ 6, s_11_199, 195, 9, 0},
+{ 6, s_11_200, -1, 9, 0},
+{ 6, s_11_201, -1, 9, 0},
+{ 10, s_11_202, 201, 9, 0},
+{ 7, s_11_203, 201, 9, 0},
+{ 7, s_11_204, -1, 9, 0},
+{ 9, s_11_205, 204, 9, 0},
+{ 10, s_11_206, 204, 9, 0},
+{ 9, s_11_207, 204, 9, 0},
+{ 10, s_11_208, 204, 9, 0},
+{ 7, s_11_209, -1, 9, 0},
+{ 9, s_11_210, 209, 9, 0},
+{ 7, s_11_211, -1, 9, 0},
+{ 6, s_11_212, -1, 9, 0},
+{ 7, s_11_213, -1, 9, 0},
+{ 8, s_11_214, -1, 9, 0},
+{ 6, s_11_215, -1, 9, 0},
+{ 9, s_11_216, 215, 9, 0},
+{ 4, s_11_217, -1, 17, 0},
+{ 4, s_11_218, -1, 17, 0},
+{ 5, s_11_219, -1, 17, 0},
+{ 7, s_11_220, 219, 17, 0},
+{ 8, s_11_221, 219, 17, 0},
+{ 7, s_11_222, 219, 17, 0},
+{ 8, s_11_223, 219, 17, 0},
+{ 5, s_11_224, -1, 17, 0},
+{ 4, s_11_225, -1, 17, 0},
+{ 5, s_11_226, -1, 17, 0},
+{ 6, s_11_227, -1, 17, 0},
+{ 6, s_11_228, -1, 17, 0},
+{ 8, s_11_229, 228, 17, 0},
+{ 4, s_11_230, -1, 17, 0},
+{ 7, s_11_231, 230, 17, 0},
+{ 5, s_11_232, -1, 17, 0},
+{ 4, s_11_233, -1, 10, 0},
+{ 4, s_11_234, -1, 10, 0},
+{ 5, s_11_235, 234, 10, 0},
+{ 5, s_11_236, -1, 10, 0},
+{ 7, s_11_237, 236, 10, 0},
+{ 8, s_11_238, 236, 10, 0},
+{ 7, s_11_239, 236, 10, 0},
+{ 8, s_11_240, 236, 10, 0},
+{ 5, s_11_241, -1, 10, 0},
+{ 7, s_11_242, 241, 10, 0},
+{ 5, s_11_243, -1, 10, 0},
+{ 4, s_11_244, -1, 10, 0},
+{ 5, s_11_245, -1, 10, 0},
+{ 6, s_11_246, -1, 10, 0},
+{ 4, s_11_247, -1, 10, 0},
+{ 7, s_11_248, 247, 10, 0},
+{ 4, s_11_249, -1, 10, 0},
+{ 5, s_11_250, 249, 10, 0},
+{ 6, s_11_251, 249, 10, 0},
+{ 5, s_11_252, 249, 10, 0},
+{ 6, s_11_253, 249, 10, 0},
+{ 4, s_11_254, -1, 3, 0},
+{ 7, s_11_255, 254, 3, 0},
+{ 4, s_11_256, -1, 3, 0},
+{ 4, s_11_257, -1, 3, 0},
+{ 5, s_11_258, 257, 3, 0},
+{ 5, s_11_259, -1, 3, 0},
+{ 7, s_11_260, 259, 3, 0},
+{ 8, s_11_261, 259, 3, 0},
+{ 7, s_11_262, 259, 3, 0},
+{ 8, s_11_263, 259, 3, 0},
+{ 5, s_11_264, -1, 3, 0},
+{ 7, s_11_265, 264, 3, 0},
+{ 5, s_11_266, -1, 3, 0},
+{ 4, s_11_267, -1, 3, 0},
+{ 7, s_11_268, -1, 3, 0},
+{ 6, s_11_269, -1, 3, 0},
+{ 7, s_11_270, -1, 3, 0},
+{ 5, s_11_271, -1, 3, 0},
+{ 6, s_11_272, -1, 3, 0},
+{ 5, s_11_273, -1, 11, 0},
+{ 5, s_11_274, -1, 11, 0},
+{ 6, s_11_275, 274, 11, 0},
+{ 9, s_11_276, 275, 11, 0},
+{ 6, s_11_277, 274, 11, 0},
+{ 6, s_11_278, -1, 11, 0},
+{ 8, s_11_279, 278, 11, 0},
+{ 9, s_11_280, 278, 11, 0},
+{ 8, s_11_281, 278, 11, 0},
+{ 9, s_11_282, 278, 11, 0},
+{ 6, s_11_283, -1, 11, 0},
+{ 8, s_11_284, 283, 11, 0},
+{ 6, s_11_285, -1, 11, 0},
+{ 5, s_11_286, -1, 11, 0},
+{ 5, s_11_287, -1, 11, 0},
+{ 6, s_11_288, -1, 11, 0},
+{ 7, s_11_289, -1, 11, 0}
+};
+
+static const unsigned char g_V1[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 48, 8 };
+
+static const unsigned char g_RV[] = { 17, 65, 16 };
+
+static const unsigned char g_KI[] = { 117, 66, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 16 };
+
+static const unsigned char g_GI[] = { 21, 123, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 48, 8 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'l', 'a', 's', 'e' };
+static const symbol s_2[] = { 'm', 'i', 's', 'e' };
+static const symbol s_3[] = { 'l', 'i', 's', 'e' };
+static const symbol s_4[] = { 'i', 'k', 'u' };
+static const symbol s_5[] = { 'e' };
+static const symbol s_6[] = { 't' };
+static const symbol s_7[] = { 'k' };
+static const symbol s_8[] = { 'p' };
+static const symbol s_9[] = { 't' };
+static const symbol s_10[] = { 'j', 'o', 'o' };
+static const symbol s_11[] = { 's', 'a', 'a' };
+static const symbol s_12[] = { 'v', 'i', 'i', 'm', 'a' };
+static const symbol s_13[] = { 'k', 'e', 'e', 's', 'i' };
+static const symbol s_14[] = { 'l', 0xC3, 0xB6, 0xC3, 0xB6 };
+static const symbol s_15[] = { 'l', 0xC3, 0xB5, 'i' };
+static const symbol s_16[] = { 'l', 'o', 'o' };
+static const symbol s_17[] = { 'k', 0xC3, 0xA4, 'i', 's', 'i' };
+static const symbol s_18[] = { 's', 0xC3, 0xB6, 0xC3, 0xB6 };
+static const symbol s_19[] = { 't', 'o', 'o' };
+static const symbol s_20[] = { 'v', 0xC3, 0xB5, 'i', 's', 'i' };
+static const symbol s_21[] = { 'j', 0xC3, 0xA4, 0xC3, 0xA4, 'm', 'a' };
+static const symbol s_22[] = { 'm', 0xC3, 0xBC, 0xC3, 0xBC, 's', 'i' };
+static const symbol s_23[] = { 'l', 'u', 'g', 'e' };
+static const symbol s_24[] = { 'p', 0xC3, 0xB5, 'd', 'e' };
+static const symbol s_25[] = { 'l', 'a', 'd', 'u' };
+static const symbol s_26[] = { 't', 'e', 'g', 'i' };
+static const symbol s_27[] = { 'n', 0xC3, 0xA4, 'g', 'i' };
+
+static int r_mark_regions(struct SN_env * z) {
+    z->I[0] = z->l;
+
+    if (out_grouping_U(z, g_V1, 97, 252, 1) < 0) return 0;
+
+    {
+        int ret = in_grouping_U(z, g_V1, 97, 252, 1);
+        if (ret < 0) return 0;
+        z->c += ret;
+    }
+    z->I[0] = z->c;
+    return 1;
+}
+
+static int r_emphasis(struct SN_env * z) {
+    int among_var;
+
+    {   int mlimit1;
+        if (z->c < z->I[0]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[0];
+        z->ket = z->c;
+        if (z->c - 1 <= z->lb || z->p[z->c - 1] != 105) { z->lb = mlimit1; return 0; }
+        among_var = find_among_b(z, a_0, 2);
+        if (!among_var) { z->lb = mlimit1; return 0; }
+        z->bra = z->c;
+        z->lb = mlimit1;
+    }
+    {   int m_test2 = z->l - z->c;
+        {   int ret = skip_b_utf8(z->p, z->c, z->lb, 4);
+            if (ret < 0) return 0;
+            z->c = ret;
+        }
+        z->c = z->l - m_test2;
+    }
+    switch (among_var) {
+        case 1:
+            {   int m3 = z->l - z->c; (void)m3;
+                if (in_grouping_b_U(z, g_GI, 97, 252, 0)) return 0;
+                z->c = z->l - m3;
+                {   int m4 = z->l - z->c; (void)m4;
+                    {   int ret = r_LONGV(z);
+                        if (ret == 0) goto lab0;
+                        if (ret < 0) return ret;
+                    }
+                    return 0;
+                lab0:
+                    z->c = z->l - m4;
+                }
+            }
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 2:
+            if (in_grouping_b_U(z, g_KI, 98, 382, 0)) return 0;
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
+            }
+            break;
+    }
+    return 1;
+}
+
+static int r_verb(struct SN_env * z) {
+    int among_var;
+
+    {   int mlimit1;
+        if (z->c < z->I[0]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[0];
+        z->ket = z->c;
+        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540726 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+        among_var = find_among_b(z, a_1, 21);
+        if (!among_var) { z->lb = mlimit1; return 0; }
+        z->bra = z->c;
+        z->lb = mlimit1;
+    }
+    switch (among_var) {
+        case 1:
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 2:
+            {   int ret = slice_from_s(z, 1, s_0);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 3:
+            if (in_grouping_b_U(z, g_V1, 97, 252, 0)) return 0;
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
+            }
+            break;
+    }
+    return 1;
+}
+
+static int r_LONGV(struct SN_env * z) {
+    if (!find_among_b(z, a_2, 9)) return 0;
+    return 1;
+}
+
+static int r_i_plural(struct SN_env * z) {
+
+    {   int mlimit1;
+        if (z->c < z->I[0]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[0];
+        z->ket = z->c;
+        if (z->c <= z->lb || z->p[z->c - 1] != 105) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_3, 1)) { z->lb = mlimit1; return 0; }
+        z->bra = z->c;
+        z->lb = mlimit1;
+    }
+    if (in_grouping_b_U(z, g_RV, 97, 117, 0)) return 0;
+    {   int ret = slice_del(z);
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_special_noun_endings(struct SN_env * z) {
+    int among_var;
+
+    {   int mlimit1;
+        if (z->c < z->I[0]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[0];
+        z->ket = z->c;
+        if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1049120 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+        among_var = find_among_b(z, a_4, 12);
+        if (!among_var) { z->lb = mlimit1; return 0; }
+        z->bra = z->c;
+        z->lb = mlimit1;
+    }
+    switch (among_var) {
+        case 1:
+            {   int ret = slice_from_s(z, 4, s_1);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 2:
+            {   int ret = slice_from_s(z, 4, s_2);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 3:
+            {   int ret = slice_from_s(z, 4, s_3);
+                if (ret < 0) return ret;
+            }
+            break;
+    }
+    return 1;
+}
+
+static int r_case_ending(struct SN_env * z) {
+    int among_var;
+
+    {   int mlimit1;
+        if (z->c < z->I[0]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[0];
+        z->ket = z->c;
+        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1576994 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+        among_var = find_among_b(z, a_5, 10);
+        if (!among_var) { z->lb = mlimit1; return 0; }
+        z->bra = z->c;
+        z->lb = mlimit1;
+    }
+    switch (among_var) {
+        case 1:
+            {   int m2 = z->l - z->c; (void)m2;
+                if (in_grouping_b_U(z, g_RV, 97, 117, 0)) goto lab1;
+                goto lab0;
+            lab1:
+                z->c = z->l - m2;
+                {   int ret = r_LONGV(z);
+                    if (ret <= 0) return ret;
+                }
+            }
+        lab0:
+            break;
+        case 2:
+            {   int m_test3 = z->l - z->c;
+                {   int ret = skip_b_utf8(z->p, z->c, z->lb, 4);
+                    if (ret < 0) return 0;
+                    z->c = ret;
+                }
+                z->c = z->l - m_test3;
+            }
+            break;
+    }
+    {   int ret = slice_del(z);
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_plural_three_first_cases(struct SN_env * z) {
+    int among_var;
+
+    {   int mlimit1;
+        if (z->c < z->I[0]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[0];
+        z->ket = z->c;
+        if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 101)) { z->lb = mlimit1; return 0; }
+        among_var = find_among_b(z, a_7, 7);
+        if (!among_var) { z->lb = mlimit1; return 0; }
+        z->bra = z->c;
+        z->lb = mlimit1;
+    }
+    switch (among_var) {
+        case 1:
+            {   int ret = slice_from_s(z, 3, s_4);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 2:
+            {   int m2 = z->l - z->c; (void)m2;
+                {   int ret = r_LONGV(z);
+                    if (ret == 0) goto lab0;
+                    if (ret < 0) return ret;
+                }
+                return 0;
+            lab0:
+                z->c = z->l - m2;
+            }
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 3:
+            {   int m3 = z->l - z->c; (void)m3;
+                {   int m_test4 = z->l - z->c;
+                    {   int ret = skip_b_utf8(z->p, z->c, z->lb, 4);
+                        if (ret < 0) goto lab2;
+                        z->c = ret;
+                    }
+                    z->c = z->l - m_test4;
+                }
+                if (z->c <= z->lb || (z->p[z->c - 1] != 115 && z->p[z->c - 1] != 116)) among_var = 2; else
+                among_var = find_among_b(z, a_6, 5);
+                switch (among_var) {
+                    case 1:
+                        {   int ret = slice_from_s(z, 1, s_5);
+                            if (ret < 0) return ret;
+                        }
+                        break;
+                    case 2:
+                        {   int ret = slice_del(z);
+                            if (ret < 0) return ret;
+                        }
+                        break;
+                }
+                goto lab1;
+            lab2:
+                z->c = z->l - m3;
+                {   int ret = slice_from_s(z, 1, s_6);
+                    if (ret < 0) return ret;
+                }
+            }
+        lab1:
+            break;
+        case 4:
+            {   int m5 = z->l - z->c; (void)m5;
+                if (in_grouping_b_U(z, g_RV, 97, 117, 0)) goto lab4;
+                goto lab3;
+            lab4:
+                z->c = z->l - m5;
+                {   int ret = r_LONGV(z);
+                    if (ret <= 0) return ret;
+                }
+            }
+        lab3:
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
+            }
+            break;
+    }
+    return 1;
+}
+
+static int r_nu(struct SN_env * z) {
+
+    {   int mlimit1;
+        if (z->c < z->I[0]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[0];
+        z->ket = z->c;
+        if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_8, 4)) { z->lb = mlimit1; return 0; }
+        z->bra = z->c;
+        z->lb = mlimit1;
+    }
+    {   int ret = slice_del(z);
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_undouble_kpt(struct SN_env * z) {
+    int among_var;
+    if (in_grouping_b_U(z, g_V1, 97, 252, 0)) return 0;
+    if (z->I[0] > z->c) return 0;
+    z->ket = z->c;
+    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1116160 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+    among_var = find_among_b(z, a_9, 3);
+    if (!among_var) return 0;
+    z->bra = z->c;
+    switch (among_var) {
+        case 1:
+            {   int ret = slice_from_s(z, 1, s_7);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 2:
+            {   int ret = slice_from_s(z, 1, s_8);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 3:
+            {   int ret = slice_from_s(z, 1, s_9);
+                if (ret < 0) return ret;
+            }
+            break;
+    }
+    return 1;
+}
+
+static int r_degrees(struct SN_env * z) {
+    int among_var;
+
+    {   int mlimit1;
+        if (z->c < z->I[0]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[0];
+        z->ket = z->c;
+        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((8706 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+        among_var = find_among_b(z, a_10, 3);
+        if (!among_var) { z->lb = mlimit1; return 0; }
+        z->bra = z->c;
+        z->lb = mlimit1;
+    }
+    switch (among_var) {
+        case 1:
+            if (in_grouping_b_U(z, g_RV, 97, 117, 0)) return 0;
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 2:
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
+            }
+            break;
+    }
+    return 1;
+}
+
+static int r_substantive(struct SN_env * z) {
+    {   int m1 = z->l - z->c; (void)m1;
+        {   int ret = r_special_noun_endings(z);
+            if (ret < 0) return ret;
+        }
+        z->c = z->l - m1;
+    }
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_case_ending(z);
+            if (ret < 0) return ret;
+        }
+        z->c = z->l - m2;
+    }
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_plural_three_first_cases(z);
+            if (ret < 0) return ret;
+        }
+        z->c = z->l - m3;
+    }
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int ret = r_degrees(z);
+            if (ret < 0) return ret;
+        }
+        z->c = z->l - m4;
+    }
+    {   int m5 = z->l - z->c; (void)m5;
+        {   int ret = r_i_plural(z);
+            if (ret < 0) return ret;
+        }
+        z->c = z->l - m5;
+    }
+    {   int m6 = z->l - z->c; (void)m6;
+        {   int ret = r_nu(z);
+            if (ret < 0) return ret;
+        }
+        z->c = z->l - m6;
+    }
+    return 1;
+}
+
+static int r_verb_exceptions(struct SN_env * z) {
+    int among_var;
+    z->bra = z->c;
+    among_var = find_among(z, a_11, 290);
+    if (!among_var) return 0;
+    z->ket = z->c;
+    if (z->c < z->l) return 0;
+    switch (among_var) {
+        case 1:
+            {   int ret = slice_from_s(z, 3, s_10);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 2:
+            {   int ret = slice_from_s(z, 3, s_11);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 3:
+            {   int ret = slice_from_s(z, 5, s_12);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 4:
+            {   int ret = slice_from_s(z, 5, s_13);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 5:
+            {   int ret = slice_from_s(z, 5, s_14);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 6:
+            {   int ret = slice_from_s(z, 4, s_15);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 7:
+            {   int ret = slice_from_s(z, 3, s_16);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 8:
+            {   int ret = slice_from_s(z, 6, s_17);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 9:
+            {   int ret = slice_from_s(z, 5, s_18);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 10:
+            {   int ret = slice_from_s(z, 3, s_19);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 11:
+            {   int ret = slice_from_s(z, 6, s_20);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 12:
+            {   int ret = slice_from_s(z, 7, s_21);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 13:
+            {   int ret = slice_from_s(z, 7, s_22);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 14:
+            {   int ret = slice_from_s(z, 4, s_23);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 15:
+            {   int ret = slice_from_s(z, 5, s_24);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 16:
+            {   int ret = slice_from_s(z, 4, s_25);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 17:
+            {   int ret = slice_from_s(z, 4, s_26);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 18:
+            {   int ret = slice_from_s(z, 5, s_27);
+                if (ret < 0) return ret;
+            }
+            break;
+    }
+    return 1;
+}
+
+extern int estonian_UTF_8_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_verb_exceptions(z);
+            if (ret == 0) goto lab0;
+            if (ret < 0) return ret;
+        }
+        return 0;
+    lab0:
+        z->c = c1;
+    }
+    {   int c2 = z->c;
+        {   int ret = r_mark_regions(z);
+            if (ret < 0) return ret;
+        }
+        z->c = c2;
+    }
+    z->lb = z->c; z->c = z->l;
+
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_emphasis(z);
+            if (ret < 0) return ret;
+        }
+        z->c = z->l - m3;
+    }
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int m5 = z->l - z->c; (void)m5;
+            {   int ret = r_verb(z);
+                if (ret == 0) goto lab3;
+                if (ret < 0) return ret;
+            }
+            goto lab2;
+        lab3:
+            z->c = z->l - m5;
+            {   int ret = r_substantive(z);
+                if (ret < 0) return ret;
+            }
+        }
+    lab2:
+        z->c = z->l - m4;
+    }
+    {   int m6 = z->l - z->c; (void)m6;
+        {   int ret = r_undouble_kpt(z);
+            if (ret < 0) return ret;
+        }
+        z->c = z->l - m6;
+    }
+    z->c = z->lb;
+    return 1;
+}
+
+extern struct SN_env * estonian_UTF_8_create_env(void) { return SN_create_env(0, 1); }
+
+extern void estonian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
index 385933ddcc5387dbaf5971fdb5f5f98c9340e8c3..bd8f9520fa8477e5664b3a46ad7bc1ea969d47a5 100644 (file)
@@ -279,15 +279,19 @@ static const symbol s_6[] = { 'p', 'o' };
 static int r_mark_regions(struct SN_env * z) {
     z->I[1] = z->l;
     z->I[0] = z->l;
+
     if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0;
-    {   
+
+    {
         int ret = in_grouping_U(z, g_V1, 97, 246, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
     z->I[1] = z->c;
+
     if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0;
-    {   
+
+    {
         int ret = in_grouping_U(z, g_V1, 97, 246, 1);
         if (ret < 0) return 0;
         z->c += ret;
@@ -297,8 +301,7 @@ static int r_mark_regions(struct SN_env * z) {
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_particle_etc(struct SN_env * z) {
@@ -309,7 +312,7 @@ static int r_particle_etc(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[1];
         z->ket = z->c;
         among_var = find_among_b(z, a_0, 10);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -337,7 +340,7 @@ static int r_possessive(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[1];
         z->ket = z->c;
         among_var = find_among_b(z, a_4, 9);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -372,21 +375,21 @@ static int r_possessive(struct SN_env * z) {
             break;
         case 4:
             if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
-            if (!(find_among_b(z, a_1, 6))) return 0;
+            if (!find_among_b(z, a_1, 6)) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
             if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0;
-            if (!(find_among_b(z, a_2, 6))) return 0;
+            if (!find_among_b(z, a_2, 6)) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
             if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
-            if (!(find_among_b(z, a_3, 2))) return 0;
+            if (!find_among_b(z, a_3, 2)) return 0;
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
@@ -396,7 +399,7 @@ static int r_possessive(struct SN_env * z) {
 }
 
 static int r_LONG(struct SN_env * z) {
-    if (!(find_among_b(z, a_5, 7))) return 0;
+    if (!find_among_b(z, a_5, 7)) return 0;
     return 1;
 }
 
@@ -415,7 +418,7 @@ static int r_case_ending(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[1];
         z->ket = z->c;
         among_var = find_among_b(z, a_6, 30);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -487,7 +490,7 @@ static int r_other_endings(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[0];
         z->ket = z->c;
         among_var = find_among_b(z, a_7, 14);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -514,7 +517,7 @@ static int r_i_plural(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[1];
         z->ket = z->c;
         if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; }
-        if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_8, 2)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -550,7 +553,7 @@ static int r_t_plural(struct SN_env * z) {
         z->ket = z->c;
         if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; }
         among_var = find_among_b(z, a_9, 2);
-        if (!(among_var)) { z->lb = mlimit3; return 0; }
+        if (!among_var) { z->lb = mlimit3; return 0; }
         z->bra = z->c;
         z->lb = mlimit3;
     }
@@ -642,6 +645,7 @@ static int r_tidy(struct SN_env * z) {
         }
         z->lb = mlimit1;
     }
+
     if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0;
     z->ket = z->c;
     if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0;
@@ -689,7 +693,7 @@ extern int finnish_UTF_8_stem(struct SN_env * z) {
         }
         z->c = z->l - m5;
     }
-    
+
     if (!(z->I[2])) goto lab1;
     {   int m6 = z->l - z->c; (void)m6;
         {   int ret = r_i_plural(z);
index 049d7c353b06ad6a0eae94e36b940ae528b179c3..de8685977ad40f73e0c330fc2a11ca60019fa43f 100644 (file)
@@ -21,6 +21,7 @@ static int r_RV(struct SN_env * z);
 static int r_mark_regions(struct SN_env * z);
 static int r_postlude(struct SN_env * z);
 static int r_prelude(struct SN_env * z);
+static int r_elisions(struct SN_env * z);
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -371,48 +372,74 @@ static const struct among a_8[5] =
 
 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
 
+static const unsigned char g_elision_char[] = { 131, 14, 3 };
+
 static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
 
-static const symbol s_0[] = { 'U' };
-static const symbol s_1[] = { 'I' };
-static const symbol s_2[] = { 'Y' };
-static const symbol s_3[] = { 0xC3, 0xAB };
-static const symbol s_4[] = { 'H', 'e' };
-static const symbol s_5[] = { 0xC3, 0xAF };
-static const symbol s_6[] = { 'H', 'i' };
-static const symbol s_7[] = { 'Y' };
-static const symbol s_8[] = { 'U' };
-static const symbol s_9[] = { 'i' };
-static const symbol s_10[] = { 'u' };
-static const symbol s_11[] = { 'y' };
-static const symbol s_12[] = { 0xC3, 0xAB };
-static const symbol s_13[] = { 0xC3, 0xAF };
-static const symbol s_14[] = { 'i', 'c' };
-static const symbol s_15[] = { 'i', 'q', 'U' };
-static const symbol s_16[] = { 'l', 'o', 'g' };
-static const symbol s_17[] = { 'u' };
-static const symbol s_18[] = { 'e', 'n', 't' };
-static const symbol s_19[] = { 'a', 't' };
-static const symbol s_20[] = { 'e', 'u', 'x' };
-static const symbol s_21[] = { 'i' };
-static const symbol s_22[] = { 'a', 'b', 'l' };
-static const symbol s_23[] = { 'i', 'q', 'U' };
-static const symbol s_24[] = { 'a', 't' };
-static const symbol s_25[] = { 'i', 'c' };
-static const symbol s_26[] = { 'i', 'q', 'U' };
-static const symbol s_27[] = { 'e', 'a', 'u' };
-static const symbol s_28[] = { 'a', 'l' };
-static const symbol s_29[] = { 'e', 'u', 'x' };
-static const symbol s_30[] = { 'a', 'n', 't' };
-static const symbol s_31[] = { 'e', 'n', 't' };
-static const symbol s_32[] = { 'H', 'i' };
-static const symbol s_33[] = { 'i' };
-static const symbol s_34[] = { 0xC3, 0xA9 };
-static const symbol s_35[] = { 0xC3, 0xA8 };
-static const symbol s_36[] = { 'e' };
-static const symbol s_37[] = { 'i' };
-static const symbol s_38[] = { 0xC3, 0xA7 };
-static const symbol s_39[] = { 'c' };
+static const symbol s_0[] = { 'q', 'u' };
+static const symbol s_1[] = { 'U' };
+static const symbol s_2[] = { 'I' };
+static const symbol s_3[] = { 'Y' };
+static const symbol s_4[] = { 0xC3, 0xAB };
+static const symbol s_5[] = { 'H', 'e' };
+static const symbol s_6[] = { 0xC3, 0xAF };
+static const symbol s_7[] = { 'H', 'i' };
+static const symbol s_8[] = { 'Y' };
+static const symbol s_9[] = { 'U' };
+static const symbol s_10[] = { 'i' };
+static const symbol s_11[] = { 'u' };
+static const symbol s_12[] = { 'y' };
+static const symbol s_13[] = { 0xC3, 0xAB };
+static const symbol s_14[] = { 0xC3, 0xAF };
+static const symbol s_15[] = { 'i', 'c' };
+static const symbol s_16[] = { 'i', 'q', 'U' };
+static const symbol s_17[] = { 'l', 'o', 'g' };
+static const symbol s_18[] = { 'u' };
+static const symbol s_19[] = { 'e', 'n', 't' };
+static const symbol s_20[] = { 'a', 't' };
+static const symbol s_21[] = { 'e', 'u', 'x' };
+static const symbol s_22[] = { 'i' };
+static const symbol s_23[] = { 'a', 'b', 'l' };
+static const symbol s_24[] = { 'i', 'q', 'U' };
+static const symbol s_25[] = { 'a', 't' };
+static const symbol s_26[] = { 'i', 'c' };
+static const symbol s_27[] = { 'i', 'q', 'U' };
+static const symbol s_28[] = { 'e', 'a', 'u' };
+static const symbol s_29[] = { 'a', 'l' };
+static const symbol s_30[] = { 'e', 'u', 'x' };
+static const symbol s_31[] = { 'a', 'n', 't' };
+static const symbol s_32[] = { 'e', 'n', 't' };
+static const symbol s_33[] = { 'H', 'i' };
+static const symbol s_34[] = { 'i' };
+static const symbol s_35[] = { 0xC3, 0xA9 };
+static const symbol s_36[] = { 0xC3, 0xA8 };
+static const symbol s_37[] = { 'e' };
+static const symbol s_38[] = { 'i' };
+static const symbol s_39[] = { 0xC3, 0xA7 };
+static const symbol s_40[] = { 'c' };
+
+static int r_elisions(struct SN_env * z) {
+    z->bra = z->c;
+    {   int c1 = z->c;
+        if (in_grouping_U(z, g_elision_char, 99, 116, 0)) goto lab1;
+        goto lab0;
+    lab1:
+        z->c = c1;
+        if (!(eq_s(z, 2, s_0))) return 0;
+    }
+lab0:
+    if (z->c == z->l || z->p[z->c] != '\'') return 0;
+    z->c++;
+    z->ket = z->c;
+
+    if (z->c < z->l) goto lab2;
+    return 0;
+lab2:
+    {   int ret = slice_del(z);
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
 
 static int r_prelude(struct SN_env * z) {
     while(1) {
@@ -427,7 +454,7 @@ static int r_prelude(struct SN_env * z) {
                     z->c++;
                     z->ket = z->c;
                     if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab5;
-                    {   int ret = slice_from_s(z, 1, s_0);
+                    {   int ret = slice_from_s(z, 1, s_1);
                         if (ret < 0) return ret;
                     }
                     goto lab4;
@@ -437,7 +464,7 @@ static int r_prelude(struct SN_env * z) {
                     z->c++;
                     z->ket = z->c;
                     if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab6;
-                    {   int ret = slice_from_s(z, 1, s_1);
+                    {   int ret = slice_from_s(z, 1, s_2);
                         if (ret < 0) return ret;
                     }
                     goto lab4;
@@ -446,7 +473,7 @@ static int r_prelude(struct SN_env * z) {
                     if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
                     z->c++;
                     z->ket = z->c;
-                    {   int ret = slice_from_s(z, 1, s_2);
+                    {   int ret = slice_from_s(z, 1, s_3);
                         if (ret < 0) return ret;
                     }
                 }
@@ -455,18 +482,18 @@ static int r_prelude(struct SN_env * z) {
             lab3:
                 z->c = c3;
                 z->bra = z->c;
-                if (!(eq_s(z, 2, s_3))) goto lab7;
+                if (!(eq_s(z, 2, s_4))) goto lab7;
                 z->ket = z->c;
-                {   int ret = slice_from_s(z, 2, s_4);
+                {   int ret = slice_from_s(z, 2, s_5);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
             lab7:
                 z->c = c3;
                 z->bra = z->c;
-                if (!(eq_s(z, 2, s_5))) goto lab8;
+                if (!(eq_s(z, 2, s_6))) goto lab8;
                 z->ket = z->c;
-                {   int ret = slice_from_s(z, 2, s_6);
+                {   int ret = slice_from_s(z, 2, s_7);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
@@ -477,7 +504,7 @@ static int r_prelude(struct SN_env * z) {
                 z->c++;
                 z->ket = z->c;
                 if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab9;
-                {   int ret = slice_from_s(z, 1, s_7);
+                {   int ret = slice_from_s(z, 1, s_8);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
@@ -489,7 +516,7 @@ static int r_prelude(struct SN_env * z) {
                 if (z->c == z->l || z->p[z->c] != 'u') goto lab1;
                 z->c++;
                 z->ket = z->c;
-                {   int ret = slice_from_s(z, 1, s_8);
+                {   int ret = slice_from_s(z, 1, s_9);
                     if (ret < 0) return ret;
                 }
             }
@@ -527,7 +554,7 @@ static int r_mark_regions(struct SN_env * z) {
         lab2:
             z->c = c2;
             if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3;
-            if (!(find_among(z, a_0, 3))) goto lab3;
+            if (!find_among(z, a_0, 3)) goto lab3;
             goto lab1;
         lab3:
             z->c = c2;
@@ -535,7 +562,8 @@ static int r_mark_regions(struct SN_env * z) {
                 if (ret < 0) goto lab0;
                 z->c = ret;
             }
-            {   
+
+            {
                 int ret = out_grouping_U(z, g_v, 97, 251, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
@@ -547,23 +575,27 @@ static int r_mark_regions(struct SN_env * z) {
         z->c = c1;
     }
     {   int c3 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
@@ -582,31 +614,30 @@ static int r_postlude(struct SN_env * z) {
         z->bra = z->c;
         if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else
         among_var = find_among(z, a_1, 7);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_9);
+                {   int ret = slice_from_s(z, 1, s_10);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_10);
+                {   int ret = slice_from_s(z, 1, s_11);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_from_s(z, 1, s_11);
+                {   int ret = slice_from_s(z, 1, s_12);
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = slice_from_s(z, 2, s_12);
+                {   int ret = slice_from_s(z, 2, s_13);
                     if (ret < 0) return ret;
                 }
                 break;
             case 5:
-                {   int ret = slice_from_s(z, 2, s_13);
+                {   int ret = slice_from_s(z, 2, s_14);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -631,25 +662,22 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_standard_suffix(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_4, 43);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -669,7 +697,7 @@ static int r_standard_suffix(struct SN_env * z) {
             }
             {   int m1 = z->l - z->c; (void)m1;
                 z->ket = z->c;
-                if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m1; goto lab0; }
+                if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m1; goto lab0; }
                 z->bra = z->c;
                 {   int m2 = z->l - z->c; (void)m2;
                     {   int ret = r_R2(z);
@@ -682,7 +710,7 @@ static int r_standard_suffix(struct SN_env * z) {
                     goto lab1;
                 lab2:
                     z->c = z->l - m2;
-                    {   int ret = slice_from_s(z, 3, s_15);
+                    {   int ret = slice_from_s(z, 3, s_16);
                         if (ret < 0) return ret;
                     }
                 }
@@ -695,7 +723,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_16);
+            {   int ret = slice_from_s(z, 3, s_17);
                 if (ret < 0) return ret;
             }
             break;
@@ -703,7 +731,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 1, s_17);
+            {   int ret = slice_from_s(z, 1, s_18);
                 if (ret < 0) return ret;
             }
             break;
@@ -711,7 +739,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_18);
+            {   int ret = slice_from_s(z, 3, s_19);
                 if (ret < 0) return ret;
             }
             break;
@@ -725,7 +753,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int m3 = z->l - z->c; (void)m3;
                 z->ket = z->c;
                 among_var = find_among_b(z, a_2, 6);
-                if (!(among_var)) { z->c = z->l - m3; goto lab3; }
+                if (!among_var) { z->c = z->l - m3; goto lab3; }
                 z->bra = z->c;
                 switch (among_var) {
                     case 1:
@@ -737,7 +765,7 @@ static int r_standard_suffix(struct SN_env * z) {
                             if (ret < 0) return ret;
                         }
                         z->ket = z->c;
-                        if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m3; goto lab3; }
+                        if (!(eq_s_b(z, 2, s_20))) { z->c = z->l - m3; goto lab3; }
                         z->bra = z->c;
                         {   int ret = r_R2(z);
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
@@ -763,7 +791,7 @@ static int r_standard_suffix(struct SN_env * z) {
                                 if (ret == 0) { z->c = z->l - m3; goto lab3; }
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_from_s(z, 3, s_20);
+                            {   int ret = slice_from_s(z, 3, s_21);
                                 if (ret < 0) return ret;
                             }
                         }
@@ -783,7 +811,7 @@ static int r_standard_suffix(struct SN_env * z) {
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_from_s(z, 1, s_21);
+                        {   int ret = slice_from_s(z, 1, s_22);
                             if (ret < 0) return ret;
                         }
                         break;
@@ -803,7 +831,7 @@ static int r_standard_suffix(struct SN_env * z) {
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; }
                 among_var = find_among_b(z, a_3, 3);
-                if (!(among_var)) { z->c = z->l - m5; goto lab6; }
+                if (!among_var) { z->c = z->l - m5; goto lab6; }
                 z->bra = z->c;
                 switch (among_var) {
                     case 1:
@@ -818,7 +846,7 @@ static int r_standard_suffix(struct SN_env * z) {
                             goto lab7;
                         lab8:
                             z->c = z->l - m6;
-                            {   int ret = slice_from_s(z, 3, s_22);
+                            {   int ret = slice_from_s(z, 3, s_23);
                                 if (ret < 0) return ret;
                             }
                         }
@@ -836,7 +864,7 @@ static int r_standard_suffix(struct SN_env * z) {
                             goto lab9;
                         lab10:
                             z->c = z->l - m7;
-                            {   int ret = slice_from_s(z, 3, s_23);
+                            {   int ret = slice_from_s(z, 3, s_24);
                                 if (ret < 0) return ret;
                             }
                         }
@@ -865,7 +893,7 @@ static int r_standard_suffix(struct SN_env * z) {
             }
             {   int m8 = z->l - z->c; (void)m8;
                 z->ket = z->c;
-                if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m8; goto lab11; }
+                if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m8; goto lab11; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m8; goto lab11; }
@@ -875,7 +903,7 @@ static int r_standard_suffix(struct SN_env * z) {
                     if (ret < 0) return ret;
                 }
                 z->ket = z->c;
-                if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m8; goto lab11; }
+                if (!(eq_s_b(z, 2, s_26))) { z->c = z->l - m8; goto lab11; }
                 z->bra = z->c;
                 {   int m9 = z->l - z->c; (void)m9;
                     {   int ret = r_R2(z);
@@ -888,7 +916,7 @@ static int r_standard_suffix(struct SN_env * z) {
                     goto lab12;
                 lab13:
                     z->c = z->l - m9;
-                    {   int ret = slice_from_s(z, 3, s_26);
+                    {   int ret = slice_from_s(z, 3, s_27);
                         if (ret < 0) return ret;
                     }
                 }
@@ -898,7 +926,7 @@ static int r_standard_suffix(struct SN_env * z) {
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 3, s_27);
+            {   int ret = slice_from_s(z, 3, s_28);
                 if (ret < 0) return ret;
             }
             break;
@@ -906,7 +934,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_28);
+            {   int ret = slice_from_s(z, 2, s_29);
                 if (ret < 0) return ret;
             }
             break;
@@ -925,7 +953,7 @@ static int r_standard_suffix(struct SN_env * z) {
                 {   int ret = r_R1(z);
                     if (ret <= 0) return ret;
                 }
-                {   int ret = slice_from_s(z, 3, s_29);
+                {   int ret = slice_from_s(z, 3, s_30);
                     if (ret < 0) return ret;
                 }
             }
@@ -944,7 +972,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_30);
+            {   int ret = slice_from_s(z, 3, s_31);
                 if (ret < 0) return ret;
             }
             return 0;
@@ -953,7 +981,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_31);
+            {   int ret = slice_from_s(z, 3, s_32);
                 if (ret < 0) return ret;
             }
             return 0;
@@ -982,7 +1010,7 @@ static int r_i_verb_suffix(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
-        if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_5, 35)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         {   int m2 = z->l - z->c; (void)m2;
             if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0;
@@ -1008,7 +1036,7 @@ static int r_verb_suffix(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
         among_var = find_among_b(z, a_6, 38);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -1056,7 +1084,7 @@ static int r_residual_suffix(struct SN_env * z) {
         z->bra = z->c;
         {   int m_test2 = z->l - z->c;
             {   int m3 = z->l - z->c; (void)m3;
-                if (!(eq_s_b(z, 2, s_32))) goto lab2;
+                if (!(eq_s_b(z, 2, s_33))) goto lab2;
                 goto lab1;
             lab2:
                 z->c = z->l - m3;
@@ -1078,7 +1106,7 @@ static int r_residual_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; }
         among_var = find_among_b(z, a_7, 6);
-        if (!(among_var)) { z->lb = mlimit4; return 0; }
+        if (!among_var) { z->lb = mlimit4; return 0; }
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -1101,7 +1129,7 @@ static int r_residual_suffix(struct SN_env * z) {
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_33);
+                {   int ret = slice_from_s(z, 1, s_34);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -1119,7 +1147,7 @@ static int r_residual_suffix(struct SN_env * z) {
 static int r_un_double(struct SN_env * z) {
     {   int m_test1 = z->l - z->c;
         if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-        if (!(find_among_b(z, a_8, 5))) return 0;
+        if (!find_among_b(z, a_8, 5)) return 0;
         z->c = z->l - m_test1;
     }
     z->ket = z->c;
@@ -1147,15 +1175,15 @@ static int r_un_accent(struct SN_env * z) {
     }
     z->ket = z->c;
     {   int m1 = z->l - z->c; (void)m1;
-        if (!(eq_s_b(z, 2, s_34))) goto lab2;
+        if (!(eq_s_b(z, 2, s_35))) goto lab2;
         goto lab1;
     lab2:
         z->c = z->l - m1;
-        if (!(eq_s_b(z, 2, s_35))) return 0;
+        if (!(eq_s_b(z, 2, s_36))) return 0;
     }
 lab1:
     z->bra = z->c;
-    {   int ret = slice_from_s(z, 1, s_36);
+    {   int ret = slice_from_s(z, 1, s_37);
         if (ret < 0) return ret;
     }
     return 1;
@@ -1163,57 +1191,63 @@ lab1:
 
 extern int french_UTF_8_stem(struct SN_env * z) {
     {   int c1 = z->c;
-        {   int ret = r_prelude(z);
+        {   int ret = r_elisions(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    
+    {   int c2 = z->c;
+        {   int ret = r_prelude(z);
+            if (ret < 0) return ret;
+        }
+        z->c = c2;
+    }
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
     z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2;
-        {   int m3 = z->l - z->c; (void)m3;
-            {   int m4 = z->l - z->c; (void)m4;
-                {   int m5 = z->l - z->c; (void)m5;
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int m4 = z->l - z->c; (void)m4;
+            {   int m5 = z->l - z->c; (void)m5;
+                {   int m6 = z->l - z->c; (void)m6;
                     {   int ret = r_standard_suffix(z);
                         if (ret == 0) goto lab4;
                         if (ret < 0) return ret;
                     }
                     goto lab3;
                 lab4:
-                    z->c = z->l - m5;
+                    z->c = z->l - m6;
                     {   int ret = r_i_verb_suffix(z);
                         if (ret == 0) goto lab5;
                         if (ret < 0) return ret;
                     }
                     goto lab3;
                 lab5:
-                    z->c = z->l - m5;
+                    z->c = z->l - m6;
                     {   int ret = r_verb_suffix(z);
                         if (ret == 0) goto lab2;
                         if (ret < 0) return ret;
                     }
                 }
             lab3:
-                z->c = z->l - m4;
-                {   int m6 = z->l - z->c; (void)m6;
+                z->c = z->l - m5;
+                {   int m7 = z->l - z->c; (void)m7;
                     z->ket = z->c;
-                    {   int m7 = z->l - z->c; (void)m7;
+                    {   int m8 = z->l - z->c; (void)m8;
                         if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8;
                         z->c--;
                         z->bra = z->c;
-                        {   int ret = slice_from_s(z, 1, s_37);
+                        {   int ret = slice_from_s(z, 1, s_38);
                             if (ret < 0) return ret;
                         }
                         goto lab7;
                     lab8:
-                        z->c = z->l - m7;
-                        if (!(eq_s_b(z, 2, s_38))) { z->c = z->l - m6; goto lab6; }
+                        z->c = z->l - m8;
+                        if (!(eq_s_b(z, 2, s_39))) { z->c = z->l - m7; goto lab6; }
                         z->bra = z->c;
-                        {   int ret = slice_from_s(z, 1, s_39);
+                        {   int ret = slice_from_s(z, 1, s_40);
                             if (ret < 0) return ret;
                         }
                     }
@@ -1224,7 +1258,7 @@ extern int french_UTF_8_stem(struct SN_env * z) {
             }
             goto lab1;
         lab2:
-            z->c = z->l - m3;
+            z->c = z->l - m4;
             {   int ret = r_residual_suffix(z);
                 if (ret == 0) goto lab0;
                 if (ret < 0) return ret;
@@ -1232,26 +1266,26 @@ extern int french_UTF_8_stem(struct SN_env * z) {
         }
     lab1:
     lab0:
-        z->c = z->l - m2;
+        z->c = z->l - m3;
     }
-    {   int m8 = z->l - z->c; (void)m8;
+    {   int m9 = z->l - z->c; (void)m9;
         {   int ret = r_un_double(z);
             if (ret < 0) return ret;
         }
-        z->c = z->l - m8;
+        z->c = z->l - m9;
     }
-    {   int m9 = z->l - z->c; (void)m9;
+    {   int m10 = z->l - z->c; (void)m10;
         {   int ret = r_un_accent(z);
             if (ret < 0) return ret;
         }
-        z->c = z->l - m9;
+        z->c = z->l - m10;
     }
     z->c = z->lb;
-    {   int c10 = z->c;
+    {   int c11 = z->c;
         {   int ret = r_postlude(z);
             if (ret < 0) return ret;
         }
-        z->c = c10;
+        z->c = c11;
     }
     return 1;
 }
index 13ce77e7c0babb0b25bac17f41e41b949d4cf401..6bb0ac050b431ede7044cc6e983a3543dc515a73 100644 (file)
@@ -27,82 +27,106 @@ extern void german_UTF_8_close_env(struct SN_env * z);
 #ifdef __cplusplus
 }
 #endif
-static const symbol s_0_1[1] = { 'U' };
-static const symbol s_0_2[1] = { 'Y' };
-static const symbol s_0_3[2] = { 0xC3, 0xA4 };
-static const symbol s_0_4[2] = { 0xC3, 0xB6 };
-static const symbol s_0_5[2] = { 0xC3, 0xBC };
+static const symbol s_0_1[2] = { 'a', 'e' };
+static const symbol s_0_2[2] = { 'o', 'e' };
+static const symbol s_0_3[2] = { 'q', 'u' };
+static const symbol s_0_4[2] = { 'u', 'e' };
+static const symbol s_0_5[2] = { 0xC3, 0x9F };
 
 static const struct among a_0[6] =
 {
 { 0, 0, -1, 5, 0},
-{ 1, s_0_1, 0, 2, 0},
-{ 1, s_0_2, 0, 1, 0},
-{ 2, s_0_3, 0, 3, 0},
+{ 2, s_0_1, 0, 2, 0},
+{ 2, s_0_2, 0, 3, 0},
+{ 2, s_0_3, 0, -1, 0},
 { 2, s_0_4, 0, 4, 0},
-{ 2, s_0_5, 0, 2, 0}
+{ 2, s_0_5, 0, 1, 0}
 };
 
-static const symbol s_1_0[1] = { 'e' };
-static const symbol s_1_1[2] = { 'e', 'm' };
-static const symbol s_1_2[2] = { 'e', 'n' };
-static const symbol s_1_3[3] = { 'e', 'r', 'n' };
-static const symbol s_1_4[2] = { 'e', 'r' };
-static const symbol s_1_5[1] = { 's' };
-static const symbol s_1_6[2] = { 'e', 's' };
+static const symbol s_1_1[1] = { 'U' };
+static const symbol s_1_2[1] = { 'Y' };
+static const symbol s_1_3[2] = { 0xC3, 0xA4 };
+static const symbol s_1_4[2] = { 0xC3, 0xB6 };
+static const symbol s_1_5[2] = { 0xC3, 0xBC };
 
-static const struct among a_1[7] =
+static const struct among a_1[6] =
 {
-{ 1, s_1_0, -1, 2, 0},
-{ 2, s_1_1, -1, 1, 0},
-{ 2, s_1_2, -1, 2, 0},
-{ 3, s_1_3, -1, 1, 0},
-{ 2, s_1_4, -1, 1, 0},
-{ 1, s_1_5, -1, 3, 0},
-{ 2, s_1_6, 5, 2, 0}
+{ 0, 0, -1, 5, 0},
+{ 1, s_1_1, 0, 2, 0},
+{ 1, s_1_2, 0, 1, 0},
+{ 2, s_1_3, 0, 3, 0},
+{ 2, s_1_4, 0, 4, 0},
+{ 2, s_1_5, 0, 2, 0}
 };
 
-static const symbol s_2_0[2] = { 'e', 'n' };
-static const symbol s_2_1[2] = { 'e', 'r' };
-static const symbol s_2_2[2] = { 's', 't' };
-static const symbol s_2_3[3] = { 'e', 's', 't' };
+static const symbol s_2_0[1] = { 'e' };
+static const symbol s_2_1[2] = { 'e', 'm' };
+static const symbol s_2_2[2] = { 'e', 'n' };
+static const symbol s_2_3[7] = { 'e', 'r', 'i', 'n', 'n', 'e', 'n' };
+static const symbol s_2_4[4] = { 'e', 'r', 'i', 'n' };
+static const symbol s_2_5[2] = { 'l', 'n' };
+static const symbol s_2_6[3] = { 'e', 'r', 'n' };
+static const symbol s_2_7[2] = { 'e', 'r' };
+static const symbol s_2_8[1] = { 's' };
+static const symbol s_2_9[2] = { 'e', 's' };
+static const symbol s_2_10[3] = { 'l', 'n', 's' };
 
-static const struct among a_2[4] =
+static const struct among a_2[11] =
 {
-{ 2, s_2_0, -1, 1, 0},
+{ 1, s_2_0, -1, 3, 0},
 { 2, s_2_1, -1, 1, 0},
-{ 2, s_2_2, -1, 2, 0},
-{ 3, s_2_3, 2, 1, 0}
+{ 2, s_2_2, -1, 3, 0},
+{ 7, s_2_3, 2, 2, 0},
+{ 4, s_2_4, -1, 2, 0},
+{ 2, s_2_5, -1, 5, 0},
+{ 3, s_2_6, -1, 2, 0},
+{ 2, s_2_7, -1, 2, 0},
+{ 1, s_2_8, -1, 4, 0},
+{ 2, s_2_9, 8, 3, 0},
+{ 3, s_2_10, 8, 5, 0}
 };
 
-static const symbol s_3_0[2] = { 'i', 'g' };
-static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
+static const symbol s_3_0[2] = { 'e', 'n' };
+static const symbol s_3_1[2] = { 'e', 'r' };
+static const symbol s_3_2[2] = { 's', 't' };
+static const symbol s_3_3[3] = { 'e', 's', 't' };
 
-static const struct among a_3[2] =
+static const struct among a_3[4] =
 {
 { 2, s_3_0, -1, 1, 0},
-{ 4, s_3_1, -1, 1, 0}
+{ 2, s_3_1, -1, 1, 0},
+{ 2, s_3_2, -1, 2, 0},
+{ 3, s_3_3, 2, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 'i', 'g' };
+static const symbol s_4_1[4] = { 'l', 'i', 'c', 'h' };
+
+static const struct among a_4[2] =
+{
+{ 2, s_4_0, -1, 1, 0},
+{ 4, s_4_1, -1, 1, 0}
 };
 
-static const symbol s_4_0[3] = { 'e', 'n', 'd' };
-static const symbol s_4_1[2] = { 'i', 'g' };
-static const symbol s_4_2[3] = { 'u', 'n', 'g' };
-static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
-static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
-static const symbol s_4_5[2] = { 'i', 'k' };
-static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
-static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
+static const symbol s_5_0[3] = { 'e', 'n', 'd' };
+static const symbol s_5_1[2] = { 'i', 'g' };
+static const symbol s_5_2[3] = { 'u', 'n', 'g' };
+static const symbol s_5_3[4] = { 'l', 'i', 'c', 'h' };
+static const symbol s_5_4[4] = { 'i', 's', 'c', 'h' };
+static const symbol s_5_5[2] = { 'i', 'k' };
+static const symbol s_5_6[4] = { 'h', 'e', 'i', 't' };
+static const symbol s_5_7[4] = { 'k', 'e', 'i', 't' };
 
-static const struct among a_4[8] =
+static const struct among a_5[8] =
 {
-{ 3, s_4_0, -1, 1, 0},
-{ 2, s_4_1, -1, 2, 0},
-{ 3, s_4_2, -1, 1, 0},
-{ 4, s_4_3, -1, 3, 0},
-{ 4, s_4_4, -1, 2, 0},
-{ 2, s_4_5, -1, 2, 0},
-{ 4, s_4_6, -1, 3, 0},
-{ 4, s_4_7, -1, 4, 0}
+{ 3, s_5_0, -1, 1, 0},
+{ 2, s_5_1, -1, 2, 0},
+{ 3, s_5_2, -1, 1, 0},
+{ 4, s_5_3, -1, 3, 0},
+{ 4, s_5_4, -1, 2, 0},
+{ 2, s_5_5, -1, 2, 0},
+{ 4, s_5_6, -1, 3, 0},
+{ 4, s_5_7, -1, 4, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
@@ -111,39 +135,61 @@ static const unsigned char g_s_ending[] = { 117, 30, 5 };
 
 static const unsigned char g_st_ending[] = { 117, 30, 4 };
 
-static const symbol s_0[] = { 0xC3, 0x9F };
-static const symbol s_1[] = { 's', 's' };
-static const symbol s_2[] = { 'U' };
-static const symbol s_3[] = { 'Y' };
-static const symbol s_4[] = { 'y' };
-static const symbol s_5[] = { 'u' };
-static const symbol s_6[] = { 'a' };
-static const symbol s_7[] = { 'o' };
-static const symbol s_8[] = { 'n', 'i', 's' };
-static const symbol s_9[] = { 'i', 'g' };
-static const symbol s_10[] = { 'e', 'r' };
-static const symbol s_11[] = { 'e', 'n' };
+static const symbol s_0[] = { 'U' };
+static const symbol s_1[] = { 'Y' };
+static const symbol s_2[] = { 's', 's' };
+static const symbol s_3[] = { 0xC3, 0xA4 };
+static const symbol s_4[] = { 0xC3, 0xB6 };
+static const symbol s_5[] = { 0xC3, 0xBC };
+static const symbol s_6[] = { 'y' };
+static const symbol s_7[] = { 'u' };
+static const symbol s_8[] = { 'a' };
+static const symbol s_9[] = { 'o' };
+static const symbol s_10[] = { 's', 'y', 's', 't' };
+static const symbol s_11[] = { 'n', 'i', 's' };
+static const symbol s_12[] = { 'l' };
+static const symbol s_13[] = { 'i', 'g' };
+static const symbol s_14[] = { 'e', 'r' };
+static const symbol s_15[] = { 'e', 'n' };
 
 static int r_prelude(struct SN_env * z) {
+    int among_var;
     {   int c_test1 = z->c;
         while(1) {
             int c2 = z->c;
-            {   int c3 = z->c;
+            while(1) {
+                int c3 = z->c;
+                if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab1;
                 z->bra = z->c;
-                if (!(eq_s(z, 2, s_0))) goto lab2;
-                z->ket = z->c;
-                {   int ret = slice_from_s(z, 2, s_1);
-                    if (ret < 0) return ret;
+                {   int c4 = z->c;
+                    if (z->c == z->l || z->p[z->c] != 'u') goto lab3;
+                    z->c++;
+                    z->ket = z->c;
+                    if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab3;
+                    {   int ret = slice_from_s(z, 1, s_0);
+                        if (ret < 0) return ret;
+                    }
+                    goto lab2;
+                lab3:
+                    z->c = c4;
+                    if (z->c == z->l || z->p[z->c] != 'y') goto lab1;
+                    z->c++;
+                    z->ket = z->c;
+                    if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab1;
+                    {   int ret = slice_from_s(z, 1, s_1);
+                        if (ret < 0) return ret;
+                    }
                 }
-                goto lab1;
             lab2:
+                z->c = c3;
+                break;
+            lab1:
                 z->c = c3;
                 {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                     if (ret < 0) goto lab0;
                     z->c = ret;
                 }
             }
-        lab1:
             continue;
         lab0:
             z->c = c2;
@@ -152,43 +198,41 @@ static int r_prelude(struct SN_env * z) {
         z->c = c_test1;
     }
     while(1) {
-        int c4 = z->c;
-        while(1) {
-            int c5 = z->c;
-            if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
-            z->bra = z->c;
-            {   int c6 = z->c;
-                if (z->c == z->l || z->p[z->c] != 'u') goto lab6;
-                z->c++;
-                z->ket = z->c;
-                if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
-                {   int ret = slice_from_s(z, 1, s_2);
+        int c5 = z->c;
+        z->bra = z->c;
+        among_var = find_among(z, a_0, 6);
+        z->ket = z->c;
+        switch (among_var) {
+            case 1:
+                {   int ret = slice_from_s(z, 2, s_2);
                     if (ret < 0) return ret;
                 }
-                goto lab5;
-            lab6:
-                z->c = c6;
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
-                z->c++;
-                z->ket = z->c;
-                if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
-                {   int ret = slice_from_s(z, 1, s_3);
+                break;
+            case 2:
+                {   int ret = slice_from_s(z, 2, s_3);
                     if (ret < 0) return ret;
                 }
-            }
-        lab5:
-            z->c = c5;
-            break;
-        lab4:
-            z->c = c5;
-            {   int ret = skip_utf8(z->p, z->c, z->l, 1);
-                if (ret < 0) goto lab3;
-                z->c = ret;
-            }
+                break;
+            case 3:
+                {   int ret = slice_from_s(z, 2, s_4);
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 4:
+                {   int ret = slice_from_s(z, 2, s_5);
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 5:
+                {   int ret = skip_utf8(z->p, z->c, z->l, 1);
+                    if (ret < 0) goto lab4;
+                    z->c = ret;
+                }
+                break;
         }
         continue;
-    lab3:
-        z->c = c4;
+    lab4:
+        z->c = c5;
         break;
     }
     return 1;
@@ -205,27 +249,31 @@ static int r_mark_regions(struct SN_env * z) {
         z->I[0] = z->c;
         z->c = c_test1;
     }
-    {   
+
+    {
         int ret = out_grouping_U(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {   
+
+    {
         int ret = in_grouping_U(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
     z->I[2] = z->c;
-    
-    if (!(z->I[2] < z->I[0])) goto lab0;
+
+    if (z->I[2] >= z->I[0]) goto lab0;
     z->I[2] = z->I[0];
 lab0:
-    {   
+
+    {
         int ret = out_grouping_U(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {   
+
+    {
         int ret = in_grouping_U(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
@@ -239,27 +287,26 @@ static int r_postlude(struct SN_env * z) {
     while(1) {
         int c1 = z->c;
         z->bra = z->c;
-        among_var = find_among(z, a_0, 6);
-        if (!(among_var)) goto lab0;
+        among_var = find_among(z, a_1, 6);
         z->ket = z->c;
         switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_4);
+                {   int ret = slice_from_s(z, 1, s_6);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_5);
+                {   int ret = slice_from_s(z, 1, s_7);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_from_s(z, 1, s_6);
+                {   int ret = slice_from_s(z, 1, s_8);
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = slice_from_s(z, 1, s_7);
+                {   int ret = slice_from_s(z, 1, s_9);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -279,13 +326,11 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_standard_suffix(struct SN_env * z) {
@@ -293,8 +338,8 @@ static int r_standard_suffix(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
-        among_var = find_among_b(z, a_1, 7);
-        if (!(among_var)) goto lab0;
+        among_var = find_among_b(z, a_2, 11);
+        if (!among_var) goto lab0;
         z->bra = z->c;
         {   int ret = r_R1(z);
             if (ret == 0) goto lab0;
@@ -302,6 +347,12 @@ static int r_standard_suffix(struct SN_env * z) {
         }
         switch (among_var) {
             case 1:
+                {   int m2 = z->l - z->c; (void)m2;
+                    if (!(eq_s_b(z, 4, s_10))) goto lab1;
+                    goto lab0;
+                lab1:
+                    z->c = z->l - m2;
+                }
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
@@ -310,37 +361,47 @@ static int r_standard_suffix(struct SN_env * z) {
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m2 = z->l - z->c; (void)m2;
+                break;
+            case 3:
+                {   int ret = slice_del(z);
+                    if (ret < 0) return ret;
+                }
+                {   int m3 = z->l - z->c; (void)m3;
                     z->ket = z->c;
-                    if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; }
+                    if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m3; goto lab2; }
                     z->c--;
                     z->bra = z->c;
-                    if (!(eq_s_b(z, 3, s_8))) { z->c = z->l - m2; goto lab1; }
+                    if (!(eq_s_b(z, 3, s_11))) { z->c = z->l - m3; goto lab2; }
                     {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
-                lab1:
+                lab2:
                     ;
                 }
                 break;
-            case 3:
+            case 4:
                 if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab0;
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
+            case 5:
+                {   int ret = slice_from_s(z, 1, s_12);
+                    if (ret < 0) return ret;
+                }
+                break;
         }
     lab0:
         z->c = z->l - m1;
     }
-    {   int m3 = z->l - z->c; (void)m3;
+    {   int m4 = z->l - z->c; (void)m4;
         z->ket = z->c;
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
-        among_var = find_among_b(z, a_2, 4);
-        if (!(among_var)) goto lab2;
+        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
+        among_var = find_among_b(z, a_3, 4);
+        if (!among_var) goto lab3;
         z->bra = z->c;
         {   int ret = r_R1(z);
-            if (ret == 0) goto lab2;
+            if (ret == 0) goto lab3;
             if (ret < 0) return ret;
         }
         switch (among_var) {
@@ -350,9 +411,9 @@ static int r_standard_suffix(struct SN_env * z) {
                 }
                 break;
             case 2:
-                if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab2;
+                if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab3;
                 {   int ret = skip_b_utf8(z->p, z->c, z->lb, 3);
-                    if (ret < 0) goto lab2;
+                    if (ret < 0) goto lab3;
                     z->c = ret;
                 }
                 {   int ret = slice_del(z);
@@ -360,17 +421,17 @@ static int r_standard_suffix(struct SN_env * z) {
                 }
                 break;
         }
-    lab2:
-        z->c = z->l - m3;
+    lab3:
+        z->c = z->l - m4;
     }
-    {   int m4 = z->l - z->c; (void)m4;
+    {   int m5 = z->l - z->c; (void)m5;
         z->ket = z->c;
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
-        among_var = find_among_b(z, a_4, 8);
-        if (!(among_var)) goto lab3;
+        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab4;
+        among_var = find_among_b(z, a_5, 8);
+        if (!among_var) goto lab4;
         z->bra = z->c;
         {   int ret = r_R2(z);
-            if (ret == 0) goto lab3;
+            if (ret == 0) goto lab4;
             if (ret < 0) return ret;
         }
         switch (among_var) {
@@ -378,35 +439,35 @@ static int r_standard_suffix(struct SN_env * z) {
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m5 = z->l - z->c; (void)m5;
+                {   int m6 = z->l - z->c; (void)m6;
                     z->ket = z->c;
-                    if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - m5; goto lab4; }
+                    if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m6; goto lab5; }
                     z->bra = z->c;
-                    {   int m6 = z->l - z->c; (void)m6;
-                        if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5;
+                    {   int m7 = z->l - z->c; (void)m7;
+                        if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
                         z->c--;
-                        { z->c = z->l - m5; goto lab4; }
-                    lab5:
-                        z->c = z->l - m6;
+                        { z->c = z->l - m6; goto lab5; }
+                    lab6:
+                        z->c = z->l - m7;
                     }
                     {   int ret = r_R2(z);
-                        if (ret == 0) { z->c = z->l - m5; goto lab4; }
+                        if (ret == 0) { z->c = z->l - m6; goto lab5; }
                         if (ret < 0) return ret;
                     }
                     {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
-                lab4:
+                lab5:
                     ;
                 }
                 break;
             case 2:
-                {   int m7 = z->l - z->c; (void)m7;
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
+                {   int m8 = z->l - z->c; (void)m8;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7;
                     z->c--;
-                    goto lab3;
-                lab6:
-                    z->c = z->l - m7;
+                    goto lab4;
+                lab7:
+                    z->c = z->l - m8;
                 }
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
@@ -416,25 +477,25 @@ static int r_standard_suffix(struct SN_env * z) {
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m8 = z->l - z->c; (void)m8;
+                {   int m9 = z->l - z->c; (void)m9;
                     z->ket = z->c;
-                    {   int m9 = z->l - z->c; (void)m9;
-                        if (!(eq_s_b(z, 2, s_10))) goto lab9;
-                        goto lab8;
-                    lab9:
-                        z->c = z->l - m9;
-                        if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m8; goto lab7; }
+                    {   int m10 = z->l - z->c; (void)m10;
+                        if (!(eq_s_b(z, 2, s_14))) goto lab10;
+                        goto lab9;
+                    lab10:
+                        z->c = z->l - m10;
+                        if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m9; goto lab8; }
                     }
-                lab8:
+                lab9:
                     z->bra = z->c;
                     {   int ret = r_R1(z);
-                        if (ret == 0) { z->c = z->l - m8; goto lab7; }
+                        if (ret == 0) { z->c = z->l - m9; goto lab8; }
                         if (ret < 0) return ret;
                     }
                     {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
-                lab7:
+                lab8:
                     ;
                 }
                 break;
@@ -442,25 +503,25 @@ static int r_standard_suffix(struct SN_env * z) {
                 {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m10 = z->l - z->c; (void)m10;
+                {   int m11 = z->l - z->c; (void)m11;
                     z->ket = z->c;
-                    if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; }
-                    if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; }
+                    if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m11; goto lab11; }
+                    if (!find_among_b(z, a_4, 2)) { z->c = z->l - m11; goto lab11; }
                     z->bra = z->c;
                     {   int ret = r_R2(z);
-                        if (ret == 0) { z->c = z->l - m10; goto lab10; }
+                        if (ret == 0) { z->c = z->l - m11; goto lab11; }
                         if (ret < 0) return ret;
                     }
                     {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
-                lab10:
+                lab11:
                     ;
                 }
                 break;
         }
-    lab3:
-        z->c = z->l - m4;
+    lab4:
+        z->c = z->l - m5;
     }
     return 1;
 }
@@ -480,7 +541,7 @@ extern int german_UTF_8_stem(struct SN_env * z) {
     }
     z->lb = z->c; z->c = z->l;
 
-    
+
     {   int ret = r_standard_suffix(z);
         if (ret < 0) return ret;
     }
index 7b3e017b90c9e2bc7f3787275e039c7ede69f8c9..33e5465267ca42c925b613db0bbb0214c16422d1 100644 (file)
@@ -2,38 +2,38 @@
 
 #include "header.h"
 
-static int r_step7(struct SN_env * z);
-static int r_step6(struct SN_env * z);
-static int r_step5m(struct SN_env * z);
-static int r_step5l(struct SN_env * z);
-static int r_step5k(struct SN_env * z);
-static int r_step5j(struct SN_env * z);
-static int r_step5i(struct SN_env * z);
-static int r_step5h(struct SN_env * z);
-static int r_step5g(struct SN_env * z);
-static int r_step5f(struct SN_env * z);
-static int r_step5e(struct SN_env * z);
-static int r_step5d(struct SN_env * z);
-static int r_step5c(struct SN_env * z);
-static int r_step5b(struct SN_env * z);
-static int r_step5a(struct SN_env * z);
-static int r_step4(struct SN_env * z);
-static int r_step3(struct SN_env * z);
-static int r_step2d(struct SN_env * z);
-static int r_step2c(struct SN_env * z);
-static int r_step2b(struct SN_env * z);
-static int r_step2a(struct SN_env * z);
-static int r_step1(struct SN_env * z);
-static int r_steps10(struct SN_env * z);
-static int r_steps9(struct SN_env * z);
-static int r_steps8(struct SN_env * z);
-static int r_steps7(struct SN_env * z);
-static int r_steps6(struct SN_env * z);
-static int r_steps5(struct SN_env * z);
-static int r_steps4(struct SN_env * z);
-static int r_steps3(struct SN_env * z);
-static int r_steps2(struct SN_env * z);
-static int r_steps1(struct SN_env * z);
+static int r_step_7(struct SN_env * z);
+static int r_step_6(struct SN_env * z);
+static int r_step_5m(struct SN_env * z);
+static int r_step_5l(struct SN_env * z);
+static int r_step_5k(struct SN_env * z);
+static int r_step_5j(struct SN_env * z);
+static int r_step_5i(struct SN_env * z);
+static int r_step_5h(struct SN_env * z);
+static int r_step_5g(struct SN_env * z);
+static int r_step_5f(struct SN_env * z);
+static int r_step_5e(struct SN_env * z);
+static int r_step_5d(struct SN_env * z);
+static int r_step_5c(struct SN_env * z);
+static int r_step_5b(struct SN_env * z);
+static int r_step_5a(struct SN_env * z);
+static int r_step_4(struct SN_env * z);
+static int r_step_3(struct SN_env * z);
+static int r_step_2d(struct SN_env * z);
+static int r_step_2c(struct SN_env * z);
+static int r_step_2b(struct SN_env * z);
+static int r_step_2a(struct SN_env * z);
+static int r_step_1(struct SN_env * z);
+static int r_step_s10(struct SN_env * z);
+static int r_step_s9(struct SN_env * z);
+static int r_step_s8(struct SN_env * z);
+static int r_step_s7(struct SN_env * z);
+static int r_step_s6(struct SN_env * z);
+static int r_step_s5(struct SN_env * z);
+static int r_step_s4(struct SN_env * z);
+static int r_step_s3(struct SN_env * z);
+static int r_step_s2(struct SN_env * z);
+static int r_step_s1(struct SN_env * z);
 static int r_has_min_length(struct SN_env * z);
 static int r_tolower(struct SN_env * z);
 #ifdef __cplusplus
@@ -2323,8 +2323,7 @@ static const symbol s_105[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC };
 static const symbol s_106[] = { 0xCE, 0xBC, 0xCE, 0xB1 };
 
 static int r_has_min_length(struct SN_env * z) {
-    if (!(len_utf8(z->p) >= 3)) return 0;
-    return 1;
+    return len_utf8(z->p) >= 3;
 }
 
 static int r_tolower(struct SN_env * z) {
@@ -2333,7 +2332,6 @@ static int r_tolower(struct SN_env * z) {
         int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
         among_var = find_among_b(z, a_0, 46);
-        if (!(among_var)) goto lab0;
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -2471,11 +2469,11 @@ static int r_tolower(struct SN_env * z) {
     return 1;
 }
 
-static int r_step1(struct SN_env * z) {
+static int r_step_1(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_1, 40);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -2538,10 +2536,10 @@ static int r_step1(struct SN_env * z) {
     return 1;
 }
 
-static int r_steps1(struct SN_env * z) {
+static int r_step_s1(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
-    if (!(find_among_b(z, a_3, 14))) return 0;
+    if (!find_among_b(z, a_3, 14)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2550,7 +2548,7 @@ static int r_steps1(struct SN_env * z) {
     z->ket = z->c;
     z->bra = z->c;
     among_var = find_among_b(z, a_2, 31);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     if (z->c > z->lb) return 0;
     switch (among_var) {
         case 1:
@@ -2567,9 +2565,9 @@ static int r_steps1(struct SN_env * z) {
     return 1;
 }
 
-static int r_steps2(struct SN_env * z) {
+static int r_step_s2(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_5, 7))) return 0;
+    if (!find_among_b(z, a_5, 7)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2577,7 +2575,7 @@ static int r_steps2(struct SN_env * z) {
     z->I[0] = 0;
     z->ket = z->c;
     z->bra = z->c;
-    if (!(find_among_b(z, a_4, 8))) return 0;
+    if (!find_among_b(z, a_4, 8)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 4, s_37);
         if (ret < 0) return ret;
@@ -2585,17 +2583,12 @@ static int r_steps2(struct SN_env * z) {
     return 1;
 }
 
-static int r_steps3(struct SN_env * z) {
+static int r_step_s3(struct SN_env * z) {
     int among_var;
-    z->ket = z->c;
-    if (!(find_among_b(z, a_7, 7))) return 0;
-    z->bra = z->c;
-    {   int ret = slice_del(z);
-        if (ret < 0) return ret;
-    }
-    z->I[0] = 0;
     {   int m1 = z->l - z->c; (void)m1;
+        z->ket = z->c;
         if (!(eq_s_b(z, 6, s_38))) goto lab1;
+        z->bra = z->c;
         if (z->c > z->lb) goto lab1;
         {   int ret = slice_from_s(z, 4, s_39);
             if (ret < 0) return ret;
@@ -2604,30 +2597,37 @@ static int r_steps3(struct SN_env * z) {
     lab1:
         z->c = z->l - m1;
         z->ket = z->c;
-        z->bra = z->c;
-        among_var = find_among_b(z, a_6, 32);
-        if (!(among_var)) return 0;
-        if (z->c > z->lb) return 0;
-        switch (among_var) {
-            case 1:
-                {   int ret = slice_from_s(z, 2, s_40);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 2:
-                {   int ret = slice_from_s(z, 4, s_41);
-                    if (ret < 0) return ret;
-                }
-                break;
-        }
     }
 lab0:
+    if (!find_among_b(z, a_7, 7)) return 0;
+    z->bra = z->c;
+    {   int ret = slice_del(z);
+        if (ret < 0) return ret;
+    }
+    z->I[0] = 0;
+    z->ket = z->c;
+    z->bra = z->c;
+    among_var = find_among_b(z, a_6, 32);
+    if (!among_var) return 0;
+    if (z->c > z->lb) return 0;
+    switch (among_var) {
+        case 1:
+            {   int ret = slice_from_s(z, 2, s_40);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 2:
+            {   int ret = slice_from_s(z, 4, s_41);
+                if (ret < 0) return ret;
+            }
+            break;
+    }
     return 1;
 }
 
-static int r_steps4(struct SN_env * z) {
+static int r_step_s4(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_9, 7))) return 0;
+    if (!find_among_b(z, a_9, 7)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2636,7 +2636,7 @@ static int r_steps4(struct SN_env * z) {
     z->ket = z->c;
     z->bra = z->c;
     if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_8, 19))) return 0;
+    if (!find_among_b(z, a_8, 19)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 2, s_42);
         if (ret < 0) return ret;
@@ -2644,10 +2644,10 @@ static int r_steps4(struct SN_env * z) {
     return 1;
 }
 
-static int r_steps5(struct SN_env * z) {
+static int r_step_s5(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
-    if (!(find_among_b(z, a_11, 11))) return 0;
+    if (!find_among_b(z, a_11, 11)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2656,7 +2656,7 @@ static int r_steps5(struct SN_env * z) {
     z->ket = z->c;
     z->bra = z->c;
     among_var = find_among_b(z, a_10, 40);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     if (z->c > z->lb) return 0;
     switch (among_var) {
         case 1:
@@ -2673,10 +2673,10 @@ static int r_steps5(struct SN_env * z) {
     return 1;
 }
 
-static int r_steps6(struct SN_env * z) {
+static int r_step_s6(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
-    if (!(find_among_b(z, a_14, 6))) return 0;
+    if (!find_among_b(z, a_14, 6)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2687,7 +2687,7 @@ static int r_steps6(struct SN_env * z) {
         z->bra = z->c;
         if (z->c - 3 <= z->lb || z->p[z->c - 1] != 181) goto lab1;
         among_var = find_among_b(z, a_12, 7);
-        if (!(among_var)) goto lab1;
+        if (!among_var) goto lab1;
         if (z->c > z->lb) goto lab1;
         switch (among_var) {
             case 1:
@@ -2707,7 +2707,7 @@ static int r_steps6(struct SN_env * z) {
         z->ket = z->c;
         if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 186 && z->p[z->c - 1] != 189)) return 0;
         among_var = find_among_b(z, a_13, 10);
-        if (!(among_var)) return 0;
+        if (!among_var) return 0;
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -2766,10 +2766,10 @@ lab0:
     return 1;
 }
 
-static int r_steps7(struct SN_env * z) {
+static int r_step_s7(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 177 && z->p[z->c - 1] != 185)) return 0;
-    if (!(find_among_b(z, a_16, 4))) return 0;
+    if (!find_among_b(z, a_16, 4)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2778,7 +2778,7 @@ static int r_steps7(struct SN_env * z) {
     z->ket = z->c;
     z->bra = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 135)) return 0;
-    if (!(find_among_b(z, a_15, 2))) return 0;
+    if (!find_among_b(z, a_15, 2)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 8, s_57);
         if (ret < 0) return ret;
@@ -2786,10 +2786,10 @@ static int r_steps7(struct SN_env * z) {
     return 1;
 }
 
-static int r_steps8(struct SN_env * z) {
+static int r_step_s8(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
-    if (!(find_among_b(z, a_18, 8))) return 0;
+    if (!find_among_b(z, a_18, 8)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2799,7 +2799,7 @@ static int r_steps8(struct SN_env * z) {
         z->ket = z->c;
         z->bra = z->c;
         among_var = find_among_b(z, a_17, 46);
-        if (!(among_var)) goto lab1;
+        if (!among_var) goto lab1;
         if (z->c > z->lb) goto lab1;
         switch (among_var) {
             case 1:
@@ -2827,10 +2827,10 @@ lab0:
     return 1;
 }
 
-static int r_steps9(struct SN_env * z) {
+static int r_step_s9(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 7 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-1610481664 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_21, 3))) return 0;
+    if (!find_among_b(z, a_21, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2839,7 +2839,7 @@ static int r_steps9(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
         z->bra = z->c;
-        if (!(find_among_b(z, a_19, 4))) goto lab1;
+        if (!find_among_b(z, a_19, 4)) goto lab1;
         if (z->c > z->lb) goto lab1;
         {   int ret = slice_from_s(z, 4, s_62);
             if (ret < 0) return ret;
@@ -2850,7 +2850,7 @@ static int r_steps9(struct SN_env * z) {
         z->ket = z->c;
         z->bra = z->c;
         if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 181 && z->p[z->c - 1] != 189)) return 0;
-        if (!(find_among_b(z, a_20, 2))) return 0;
+        if (!find_among_b(z, a_20, 2)) return 0;
         {   int ret = slice_from_s(z, 4, s_63);
             if (ret < 0) return ret;
         }
@@ -2859,9 +2859,9 @@ lab0:
     return 1;
 }
 
-static int r_steps10(struct SN_env * z) {
+static int r_step_s10(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_23, 4))) return 0;
+    if (!find_among_b(z, a_23, 4)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2869,7 +2869,7 @@ static int r_steps10(struct SN_env * z) {
     z->I[0] = 0;
     z->ket = z->c;
     z->bra = z->c;
-    if (!(find_among_b(z, a_22, 7))) return 0;
+    if (!find_among_b(z, a_22, 7)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 6, s_64);
         if (ret < 0) return ret;
@@ -2877,16 +2877,16 @@ static int r_steps10(struct SN_env * z) {
     return 1;
 }
 
-static int r_step2a(struct SN_env * z) {
+static int r_step_2a(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0;
-    if (!(find_among_b(z, a_24, 2))) return 0;
+    if (!find_among_b(z, a_24, 2)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     {   int m1 = z->l - z->c; (void)m1;
-        if (!(find_among_b(z, a_25, 10))) goto lab0;
+        if (!find_among_b(z, a_25, 10)) goto lab0;
         return 0;
     lab0:
         z->c = z->l - m1;
@@ -2901,10 +2901,10 @@ static int r_step2a(struct SN_env * z) {
     return 1;
 }
 
-static int r_step2b(struct SN_env * z) {
+static int r_step_2b(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0;
-    if (!(find_among_b(z, a_26, 2))) return 0;
+    if (!find_among_b(z, a_26, 2)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2912,34 +2912,34 @@ static int r_step2b(struct SN_env * z) {
     z->ket = z->c;
     z->bra = z->c;
     if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 128 && z->p[z->c - 1] != 187)) return 0;
-    if (!(find_among_b(z, a_27, 8))) return 0;
+    if (!find_among_b(z, a_27, 8)) return 0;
     {   int ret = slice_from_s(z, 4, s_66);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_step2c(struct SN_env * z) {
+static int r_step_2c(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0;
-    if (!(find_among_b(z, a_28, 2))) return 0;
+    if (!find_among_b(z, a_28, 2)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     z->ket = z->c;
     z->bra = z->c;
-    if (!(find_among_b(z, a_29, 15))) return 0;
+    if (!find_among_b(z, a_29, 15)) return 0;
     {   int ret = slice_from_s(z, 6, s_67);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_step2d(struct SN_env * z) {
+static int r_step_2d(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0;
-    if (!(find_among_b(z, a_30, 2))) return 0;
+    if (!find_among_b(z, a_30, 2)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2947,7 +2947,7 @@ static int r_step2d(struct SN_env * z) {
     z->I[0] = 0;
     z->ket = z->c;
     z->bra = z->c;
-    if (!(find_among_b(z, a_31, 8))) return 0;
+    if (!find_among_b(z, a_31, 8)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 2, s_68);
         if (ret < 0) return ret;
@@ -2955,9 +2955,9 @@ static int r_step2d(struct SN_env * z) {
     return 1;
 }
 
-static int r_step3(struct SN_env * z) {
+static int r_step_3(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_32, 3))) return 0;
+    if (!find_among_b(z, a_32, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2972,9 +2972,9 @@ static int r_step3(struct SN_env * z) {
     return 1;
 }
 
-static int r_step4(struct SN_env * z) {
+static int r_step_4(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_33, 4))) return 0;
+    if (!find_among_b(z, a_33, 4)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -2994,7 +2994,7 @@ static int r_step4(struct SN_env * z) {
     }
 lab0:
     z->bra = z->c;
-    if (!(find_among_b(z, a_34, 36))) return 0;
+    if (!find_among_b(z, a_34, 36)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 4, s_71);
         if (ret < 0) return ret;
@@ -3002,9 +3002,11 @@ lab0:
     return 1;
 }
 
-static int r_step5a(struct SN_env * z) {
+static int r_step_5a(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
+        z->ket = z->c;
         if (!(eq_s_b(z, 10, s_72))) goto lab0;
+        z->bra = z->c;
         if (z->c > z->lb) goto lab0;
         {   int ret = slice_from_s(z, 8, s_73);
             if (ret < 0) return ret;
@@ -3015,7 +3017,7 @@ static int r_step5a(struct SN_env * z) {
     {   int m2 = z->l - z->c; (void)m2;
         z->ket = z->c;
         if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab1;
-        if (!(find_among_b(z, a_35, 5))) goto lab1;
+        if (!find_among_b(z, a_35, 5)) goto lab1;
         z->bra = z->c;
         {   int ret = slice_del(z);
             if (ret < 0) return ret;
@@ -3033,7 +3035,7 @@ static int r_step5a(struct SN_env * z) {
     z->I[0] = 0;
     z->ket = z->c;
     z->bra = z->c;
-    if (!(find_among_b(z, a_36, 12))) return 0;
+    if (!find_among_b(z, a_36, 12)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 4, s_75);
         if (ret < 0) return ret;
@@ -3041,11 +3043,11 @@ static int r_step5a(struct SN_env * z) {
     return 1;
 }
 
-static int r_step5b(struct SN_env * z) {
+static int r_step_5b(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
         if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab0;
-        if (!(find_among_b(z, a_38, 11))) goto lab0;
+        if (!find_among_b(z, a_38, 11)) goto lab0;
         z->bra = z->c;
         {   int ret = slice_del(z);
             if (ret < 0) return ret;
@@ -3054,7 +3056,7 @@ static int r_step5b(struct SN_env * z) {
         z->ket = z->c;
         z->bra = z->c;
         if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 131)) goto lab0;
-        if (!(find_among_b(z, a_37, 2))) goto lab0;
+        if (!find_among_b(z, a_37, 2)) goto lab0;
         if (z->c > z->lb) goto lab0;
         {   int ret = slice_from_s(z, 8, s_76);
             if (ret < 0) return ret;
@@ -3083,7 +3085,7 @@ static int r_step5b(struct SN_env * z) {
     }
 lab1:
     z->bra = z->c;
-    if (!(find_among_b(z, a_39, 95))) return 0;
+    if (!find_among_b(z, a_39, 95)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 4, s_79);
         if (ret < 0) return ret;
@@ -3091,11 +3093,11 @@ lab1:
     return 1;
 }
 
-static int r_step5c(struct SN_env * z) {
+static int r_step_5c(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
         if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab0;
-        if (!(find_among_b(z, a_40, 1))) goto lab0;
+        if (!find_among_b(z, a_40, 1)) goto lab0;
         z->bra = z->c;
         {   int ret = slice_del(z);
             if (ret < 0) return ret;
@@ -3123,7 +3125,7 @@ static int r_step5c(struct SN_env * z) {
         z->c = z->l - m2;
         z->ket = z->c;
         z->bra = z->c;
-        if (!(find_among_b(z, a_41, 31))) goto lab3;
+        if (!find_among_b(z, a_41, 31)) goto lab3;
         {   int ret = slice_from_s(z, 4, s_82);
             if (ret < 0) return ret;
         }
@@ -3134,7 +3136,7 @@ static int r_step5c(struct SN_env * z) {
     }
 lab1:
     z->bra = z->c;
-    if (!(find_among_b(z, a_42, 25))) return 0;
+    if (!find_among_b(z, a_42, 25)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 4, s_83);
         if (ret < 0) return ret;
@@ -3142,10 +3144,10 @@ lab1:
     return 1;
 }
 
-static int r_step5d(struct SN_env * z) {
+static int r_step_5d(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 9 <= z->lb || z->p[z->c - 1] != 131) return 0;
-    if (!(find_among_b(z, a_43, 2))) return 0;
+    if (!find_among_b(z, a_43, 2)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -3173,10 +3175,10 @@ lab0:
     return 1;
 }
 
-static int r_step5e(struct SN_env * z) {
+static int r_step_5e(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 11 <= z->lb || z->p[z->c - 1] != 181) return 0;
-    if (!(find_among_b(z, a_44, 2))) return 0;
+    if (!find_among_b(z, a_44, 2)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -3192,7 +3194,7 @@ static int r_step5e(struct SN_env * z) {
     return 1;
 }
 
-static int r_step5f(struct SN_env * z) {
+static int r_step_5f(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
         if (!(eq_s_b(z, 10, s_90))) goto lab0;
@@ -3204,7 +3206,7 @@ static int r_step5f(struct SN_env * z) {
         z->ket = z->c;
         z->bra = z->c;
         if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 128 && z->p[z->c - 1] != 134)) goto lab0;
-        if (!(find_among_b(z, a_45, 6))) goto lab0;
+        if (!find_among_b(z, a_45, 6)) goto lab0;
         if (z->c > z->lb) goto lab0;
         {   int ret = slice_from_s(z, 8, s_91);
             if (ret < 0) return ret;
@@ -3221,7 +3223,7 @@ static int r_step5f(struct SN_env * z) {
     z->I[0] = 0;
     z->ket = z->c;
     z->bra = z->c;
-    if (!(find_among_b(z, a_46, 9))) return 0;
+    if (!find_among_b(z, a_46, 9)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 8, s_93);
         if (ret < 0) return ret;
@@ -3229,10 +3231,10 @@ static int r_step5f(struct SN_env * z) {
     return 1;
 }
 
-static int r_step5g(struct SN_env * z) {
+static int r_step_5g(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
-        if (!(find_among_b(z, a_47, 3))) goto lab0;
+        if (!find_among_b(z, a_47, 3)) goto lab0;
         z->bra = z->c;
         {   int ret = slice_del(z);
             if (ret < 0) return ret;
@@ -3242,7 +3244,7 @@ static int r_step5g(struct SN_env * z) {
         z->c = z->l - m1;
     }
     z->ket = z->c;
-    if (!(find_among_b(z, a_50, 3))) return 0;
+    if (!find_among_b(z, a_50, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -3251,7 +3253,7 @@ static int r_step5g(struct SN_env * z) {
     {   int m2 = z->l - z->c; (void)m2;
         z->ket = z->c;
         z->bra = z->c;
-        if (!(find_among_b(z, a_48, 6))) goto lab2;
+        if (!find_among_b(z, a_48, 6)) goto lab2;
         {   int ret = slice_from_s(z, 4, s_94);
             if (ret < 0) return ret;
         }
@@ -3261,7 +3263,7 @@ static int r_step5g(struct SN_env * z) {
         z->ket = z->c;
         z->bra = z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] != 184) return 0;
-        if (!(find_among_b(z, a_49, 5))) return 0;
+        if (!find_among_b(z, a_49, 5)) return 0;
         if (z->c > z->lb) return 0;
         {   int ret = slice_from_s(z, 4, s_95);
             if (ret < 0) return ret;
@@ -3271,9 +3273,9 @@ lab1:
     return 1;
 }
 
-static int r_step5h(struct SN_env * z) {
+static int r_step_5h(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_53, 3))) return 0;
+    if (!find_among_b(z, a_53, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -3282,7 +3284,7 @@ static int r_step5h(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
         z->bra = z->c;
-        if (!(find_among_b(z, a_51, 12))) goto lab1;
+        if (!find_among_b(z, a_51, 12)) goto lab1;
         {   int ret = slice_from_s(z, 6, s_96);
             if (ret < 0) return ret;
         }
@@ -3291,7 +3293,7 @@ static int r_step5h(struct SN_env * z) {
         z->c = z->l - m1;
         z->ket = z->c;
         z->bra = z->c;
-        if (!(find_among_b(z, a_52, 25))) return 0;
+        if (!find_among_b(z, a_52, 25)) return 0;
         if (z->c > z->lb) return 0;
         {   int ret = slice_from_s(z, 6, s_97);
             if (ret < 0) return ret;
@@ -3301,10 +3303,10 @@ lab0:
     return 1;
 }
 
-static int r_step5i(struct SN_env * z) {
+static int r_step_5i(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
-    if (!(find_among_b(z, a_56, 3))) return 0;
+    if (!find_among_b(z, a_56, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -3324,7 +3326,7 @@ static int r_step5i(struct SN_env * z) {
             z->ket = z->c;
             z->bra = z->c;
             among_var = find_among_b(z, a_54, 12);
-            if (!(among_var)) goto lab3;
+            if (!among_var) goto lab3;
             switch (among_var) {
                 case 1:
                     {   int ret = slice_from_s(z, 4, s_100);
@@ -3337,7 +3339,7 @@ static int r_step5i(struct SN_env * z) {
             z->c = z->l - m2;
             z->ket = z->c;
             z->bra = z->c;
-            if (!(find_among_b(z, a_55, 44))) return 0;
+            if (!find_among_b(z, a_55, 44)) return 0;
             if (z->c > z->lb) return 0;
             {   int ret = slice_from_s(z, 4, s_101);
                 if (ret < 0) return ret;
@@ -3350,9 +3352,9 @@ lab0:
     return 1;
 }
 
-static int r_step5j(struct SN_env * z) {
+static int r_step_5j(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_57, 3))) return 0;
+    if (!find_among_b(z, a_57, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -3361,7 +3363,7 @@ static int r_step5j(struct SN_env * z) {
     z->ket = z->c;
     z->bra = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 189) return 0;
-    if (!(find_among_b(z, a_58, 6))) return 0;
+    if (!find_among_b(z, a_58, 6)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 4, s_102);
         if (ret < 0) return ret;
@@ -3369,10 +3371,10 @@ static int r_step5j(struct SN_env * z) {
     return 1;
 }
 
-static int r_step5k(struct SN_env * z) {
+static int r_step_5k(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0;
-    if (!(find_among_b(z, a_59, 1))) return 0;
+    if (!find_among_b(z, a_59, 1)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -3380,7 +3382,7 @@ static int r_step5k(struct SN_env * z) {
     z->I[0] = 0;
     z->ket = z->c;
     z->bra = z->c;
-    if (!(find_among_b(z, a_60, 10))) return 0;
+    if (!find_among_b(z, a_60, 10)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 6, s_103);
         if (ret < 0) return ret;
@@ -3388,10 +3390,10 @@ static int r_step5k(struct SN_env * z) {
     return 1;
 }
 
-static int r_step5l(struct SN_env * z) {
+static int r_step_5l(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0;
-    if (!(find_among_b(z, a_61, 3))) return 0;
+    if (!find_among_b(z, a_61, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -3399,7 +3401,7 @@ static int r_step5l(struct SN_env * z) {
     z->I[0] = 0;
     z->ket = z->c;
     z->bra = z->c;
-    if (!(find_among_b(z, a_62, 6))) return 0;
+    if (!find_among_b(z, a_62, 6)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 6, s_104);
         if (ret < 0) return ret;
@@ -3407,10 +3409,10 @@ static int r_step5l(struct SN_env * z) {
     return 1;
 }
 
-static int r_step5m(struct SN_env * z) {
+static int r_step_5m(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0;
-    if (!(find_among_b(z, a_63, 3))) return 0;
+    if (!find_among_b(z, a_63, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -3418,7 +3420,7 @@ static int r_step5m(struct SN_env * z) {
     z->I[0] = 0;
     z->ket = z->c;
     z->bra = z->c;
-    if (!(find_among_b(z, a_64, 7))) return 0;
+    if (!find_among_b(z, a_64, 7)) return 0;
     if (z->c > z->lb) return 0;
     {   int ret = slice_from_s(z, 6, s_105);
         if (ret < 0) return ret;
@@ -3426,10 +3428,10 @@ static int r_step5m(struct SN_env * z) {
     return 1;
 }
 
-static int r_step6(struct SN_env * z) {
+static int r_step_6(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
-        if (!(find_among_b(z, a_65, 3))) goto lab0;
+        if (!find_among_b(z, a_65, 3)) goto lab0;
         z->bra = z->c;
         {   int ret = slice_from_s(z, 4, s_106);
             if (ret < 0) return ret;
@@ -3439,7 +3441,7 @@ static int r_step6(struct SN_env * z) {
     }
     if (!(z->I[0])) return 0;
     z->ket = z->c;
-    if (!(find_among_b(z, a_66, 84))) return 0;
+    if (!find_among_b(z, a_66, 84)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -3447,10 +3449,10 @@ static int r_step6(struct SN_env * z) {
     return 1;
 }
 
-static int r_step7(struct SN_env * z) {
+static int r_step_7(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 132)) return 0;
-    if (!(find_among_b(z, a_67, 8))) return 0;
+    if (!find_among_b(z, a_67, 8)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -3472,193 +3474,193 @@ extern int greek_UTF_8_stem(struct SN_env * z) {
     }
     z->I[0] = 1;
     {   int m2 = z->l - z->c; (void)m2;
-        {   int ret = r_step1(z);
+        {   int ret = r_step_1(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m2;
     }
     {   int m3 = z->l - z->c; (void)m3;
-        {   int ret = r_steps1(z);
+        {   int ret = r_step_s1(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m3;
     }
     {   int m4 = z->l - z->c; (void)m4;
-        {   int ret = r_steps2(z);
+        {   int ret = r_step_s2(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m4;
     }
     {   int m5 = z->l - z->c; (void)m5;
-        {   int ret = r_steps3(z);
+        {   int ret = r_step_s3(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m5;
     }
     {   int m6 = z->l - z->c; (void)m6;
-        {   int ret = r_steps4(z);
+        {   int ret = r_step_s4(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m6;
     }
     {   int m7 = z->l - z->c; (void)m7;
-        {   int ret = r_steps5(z);
+        {   int ret = r_step_s5(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m7;
     }
     {   int m8 = z->l - z->c; (void)m8;
-        {   int ret = r_steps6(z);
+        {   int ret = r_step_s6(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m8;
     }
     {   int m9 = z->l - z->c; (void)m9;
-        {   int ret = r_steps7(z);
+        {   int ret = r_step_s7(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m9;
     }
     {   int m10 = z->l - z->c; (void)m10;
-        {   int ret = r_steps8(z);
+        {   int ret = r_step_s8(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m10;
     }
     {   int m11 = z->l - z->c; (void)m11;
-        {   int ret = r_steps9(z);
+        {   int ret = r_step_s9(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m11;
     }
     {   int m12 = z->l - z->c; (void)m12;
-        {   int ret = r_steps10(z);
+        {   int ret = r_step_s10(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m12;
     }
     {   int m13 = z->l - z->c; (void)m13;
-        {   int ret = r_step2a(z);
+        {   int ret = r_step_2a(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m13;
     }
     {   int m14 = z->l - z->c; (void)m14;
-        {   int ret = r_step2b(z);
+        {   int ret = r_step_2b(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m14;
     }
     {   int m15 = z->l - z->c; (void)m15;
-        {   int ret = r_step2c(z);
+        {   int ret = r_step_2c(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m15;
     }
     {   int m16 = z->l - z->c; (void)m16;
-        {   int ret = r_step2d(z);
+        {   int ret = r_step_2d(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m16;
     }
     {   int m17 = z->l - z->c; (void)m17;
-        {   int ret = r_step3(z);
+        {   int ret = r_step_3(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m17;
     }
     {   int m18 = z->l - z->c; (void)m18;
-        {   int ret = r_step4(z);
+        {   int ret = r_step_4(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m18;
     }
     {   int m19 = z->l - z->c; (void)m19;
-        {   int ret = r_step5a(z);
+        {   int ret = r_step_5a(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m19;
     }
     {   int m20 = z->l - z->c; (void)m20;
-        {   int ret = r_step5b(z);
+        {   int ret = r_step_5b(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m20;
     }
     {   int m21 = z->l - z->c; (void)m21;
-        {   int ret = r_step5c(z);
+        {   int ret = r_step_5c(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m21;
     }
     {   int m22 = z->l - z->c; (void)m22;
-        {   int ret = r_step5d(z);
+        {   int ret = r_step_5d(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m22;
     }
     {   int m23 = z->l - z->c; (void)m23;
-        {   int ret = r_step5e(z);
+        {   int ret = r_step_5e(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m23;
     }
     {   int m24 = z->l - z->c; (void)m24;
-        {   int ret = r_step5f(z);
+        {   int ret = r_step_5f(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m24;
     }
     {   int m25 = z->l - z->c; (void)m25;
-        {   int ret = r_step5g(z);
+        {   int ret = r_step_5g(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m25;
     }
     {   int m26 = z->l - z->c; (void)m26;
-        {   int ret = r_step5h(z);
+        {   int ret = r_step_5h(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m26;
     }
     {   int m27 = z->l - z->c; (void)m27;
-        {   int ret = r_step5j(z);
+        {   int ret = r_step_5j(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m27;
     }
     {   int m28 = z->l - z->c; (void)m28;
-        {   int ret = r_step5i(z);
+        {   int ret = r_step_5i(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m28;
     }
     {   int m29 = z->l - z->c; (void)m29;
-        {   int ret = r_step5k(z);
+        {   int ret = r_step_5k(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m29;
     }
     {   int m30 = z->l - z->c; (void)m30;
-        {   int ret = r_step5l(z);
+        {   int ret = r_step_5l(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m30;
     }
     {   int m31 = z->l - z->c; (void)m31;
-        {   int ret = r_step5m(z);
+        {   int ret = r_step_5m(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m31;
     }
     {   int m32 = z->l - z->c; (void)m32;
-        {   int ret = r_step6(z);
+        {   int ret = r_step_6(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m32;
     }
     {   int m33 = z->l - z->c; (void)m33;
-        {   int ret = r_step7(z);
+        {   int ret = r_step_7(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m33;
index ddd7201e1cfecaf99186949822f4f2a074d3680f..a2f2ec7f20fee6611761c00ae550dcc44da14993 100644 (file)
@@ -307,7 +307,7 @@ extern int hindi_UTF_8_stem(struct SN_env * z) {
     z->lb = z->c; z->c = z->l;
 
     z->ket = z->c;
-    if (!(find_among_b(z, a_0, 132))) return 0;
+    if (!find_among_b(z, a_0, 132)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
index 90bee21699c1afb6bd6686950b54294d428bbda5..ff193a4d336d65cbdb248d728520b3c3d82e3fe3 100644 (file)
@@ -480,10 +480,11 @@ static int r_mark_regions(struct SN_env * z) {
     z->I[0] = z->l;
     {   int c1 = z->c;
         if (in_grouping_U(z, g_v, 97, 369, 0)) goto lab1;
+
         if (in_grouping_U(z, g_v, 97, 369, 1) < 0) goto lab1;
         {   int c2 = z->c;
             if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3;
-            if (!(find_among(z, a_0, 8))) goto lab3;
+            if (!find_among(z, a_0, 8)) goto lab3;
             goto lab2;
         lab3:
             z->c = c2;
@@ -498,7 +499,8 @@ static int r_mark_regions(struct SN_env * z) {
     lab1:
         z->c = c1;
         if (out_grouping_U(z, g_v, 97, 369, 0)) return 0;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 369, 1);
             if (ret < 0) return 0;
             z->c += ret;
@@ -510,8 +512,7 @@ lab0:
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_v_ending(struct SN_env * z) {
@@ -519,7 +520,7 @@ static int r_v_ending(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
     among_var = find_among_b(z, a_1, 2);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -542,7 +543,7 @@ static int r_v_ending(struct SN_env * z) {
 static int r_double(struct SN_env * z) {
     {   int m_test1 = z->l - z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-        if (!(find_among_b(z, a_2, 23))) return 0;
+        if (!find_among_b(z, a_2, 23)) return 0;
         z->c = z->l - m_test1;
     }
     return 1;
@@ -568,7 +569,7 @@ static int r_undouble(struct SN_env * z) {
 static int r_instrum(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
-    if (!(find_among_b(z, a_3, 2))) return 0;
+    if (!find_among_b(z, a_3, 2)) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -587,7 +588,7 @@ static int r_instrum(struct SN_env * z) {
 
 static int r_case(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_4, 44))) return 0;
+    if (!find_among_b(z, a_4, 44)) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -606,7 +607,7 @@ static int r_case_special(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0;
     among_var = find_among_b(z, a_5, 3);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -631,7 +632,7 @@ static int r_case_other(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0;
     among_var = find_among_b(z, a_6, 6);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -659,7 +660,7 @@ static int r_case_other(struct SN_env * z) {
 static int r_factive(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
-    if (!(find_among_b(z, a_7, 2))) return 0;
+    if (!find_among_b(z, a_7, 2)) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -681,7 +682,7 @@ static int r_plural(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0;
     among_var = find_among_b(z, a_8, 7);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -711,7 +712,7 @@ static int r_owned(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 169)) return 0;
     among_var = find_among_b(z, a_9, 12);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -740,7 +741,7 @@ static int r_sing_owner(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_10, 31);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -770,7 +771,7 @@ static int r_plur_owner(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_11, 42);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
index ee9473a0563656be4969cf20c1be36c0f7f900fc..2c0e5904951c69193ee374c9444cc505fb10a438 100644 (file)
@@ -123,7 +123,7 @@ static const symbol s_6[] = { 'a', 'j', 'a', 'r' };
 static int r_remove_particle(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0;
-    if (!(find_among_b(z, a_0, 3))) return 0;
+    if (!find_among_b(z, a_0, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -135,7 +135,7 @@ static int r_remove_particle(struct SN_env * z) {
 static int r_remove_possessive_pronoun(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0;
-    if (!(find_among_b(z, a_1, 3))) return 0;
+    if (!find_among_b(z, a_1, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -145,19 +145,18 @@ static int r_remove_possessive_pronoun(struct SN_env * z) {
 }
 
 static int r_SUFFIX_KAN_OK(struct SN_env * z) {
-    
-    if (!(z->I[0] != 3)) return 0;
-    if (!(z->I[0] != 2)) return 0;
+
+    if (z->I[0] == 3) return 0;
+    if (z->I[0] == 2) return 0;
     return 1;
 }
 
 static int r_SUFFIX_AN_OK(struct SN_env * z) {
-    if (!(z->I[0] != 1)) return 0;
-    return 1;
+    return z->I[0] != 1;
 }
 
 static int r_SUFFIX_I_OK(struct SN_env * z) {
-    if (!(z->I[0] <= 2)) return 0;
+    if (z->I[0] > 2) return 0;
     {   int m1 = z->l - z->c; (void)m1;
         if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0;
         z->c--;
@@ -171,7 +170,7 @@ static int r_SUFFIX_I_OK(struct SN_env * z) {
 static int r_remove_suffix(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0;
-    if (!(find_among_b(z, a_2, 3))) return 0;
+    if (!find_among_b(z, a_2, 3)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -196,7 +195,7 @@ static int r_remove_first_order_prefix(struct SN_env * z) {
     z->bra = z->c;
     if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0;
     among_var = find_among(z, a_3, 12);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     switch (among_var) {
         case 1:
@@ -276,7 +275,7 @@ static int r_remove_second_order_prefix(struct SN_env * z) {
     z->bra = z->c;
     if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0;
     among_var = find_among(z, a_4, 6);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     switch (among_var) {
         case 1:
@@ -315,7 +314,8 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
     {   int c1 = z->c;
         while(1) {
             int c2 = z->c;
-            {   
+
+            {
                 int ret = out_grouping_U(z, g_vowel, 97, 117, 1);
                 if (ret < 0) goto lab1;
                 z->c += ret;
@@ -328,7 +328,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
         }
         z->c = c1;
     }
-    if (!(z->I[1] > 2)) return 0;
+    if (z->I[1] <= 2) return 0;
     z->I[0] = 0;
     z->lb = z->c; z->c = z->l;
 
@@ -338,7 +338,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
         }
         z->c = z->l - m3;
     }
-    if (!(z->I[1] > 2)) return 0;
+    if (z->I[1] <= 2) return 0;
     {   int m4 = z->l - z->c; (void)m4;
         {   int ret = r_remove_possessive_pronoun(z);
             if (ret < 0) return ret;
@@ -346,7 +346,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
         z->c = z->l - m4;
     }
     z->c = z->lb;
-    if (!(z->I[1] > 2)) return 0;
+    if (z->I[1] <= 2) return 0;
     {   int c5 = z->c;
         {   int c_test6 = z->c;
             {   int ret = r_remove_first_order_prefix(z);
@@ -355,7 +355,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
             }
             {   int c7 = z->c;
                 {   int c_test8 = z->c;
-                    if (!(z->I[1] > 2)) goto lab4;
+                    if (z->I[1] <= 2) goto lab4;
                     z->lb = z->c; z->c = z->l;
 
                     {   int ret = r_remove_suffix(z);
@@ -365,7 +365,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
                     z->c = z->lb;
                     z->c = c_test8;
                 }
-                if (!(z->I[1] > 2)) goto lab4;
+                if (z->I[1] <= 2) goto lab4;
                 {   int ret = r_remove_second_order_prefix(z);
                     if (ret == 0) goto lab4;
                     if (ret < 0) return ret;
@@ -385,7 +385,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
             z->c = c9;
         }
         {   int c10 = z->c;
-            if (!(z->I[1] > 2)) goto lab5;
+            if (z->I[1] <= 2) goto lab5;
             z->lb = z->c; z->c = z->l;
 
             {   int ret = r_remove_suffix(z);
index 9410819dd98627e8feeb1817c5a1d3d3f7fad89c..c79b9ee57e64aacb185663cec2428a7bd0aebed3 100644 (file)
@@ -225,24 +225,28 @@ static int r_mark_regions(struct SN_env * z) {
     z->I[1] = z->l;
     z->I[0] = z->l;
     {   int c1 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
         z->I[2] = z->c;
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
@@ -258,7 +262,7 @@ static int r_initial_morph(struct SN_env * z) {
     int among_var;
     z->bra = z->c;
     among_var = find_among(z, a_0, 24);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->ket = z->c;
     switch (among_var) {
         case 1:
@@ -316,25 +320,22 @@ static int r_initial_morph(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_noun_sfx(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_1, 16);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -361,7 +362,7 @@ static int r_deriv(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_2, 25);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -406,7 +407,7 @@ static int r_verb_sfx(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_3, 12);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -436,7 +437,7 @@ extern int irish_UTF_8_stem(struct SN_env * z) {
         }
         z->c = c1;
     }
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index 8a05ce411aa21f32f5d6b8b1a5bbe0a1398a40ab..cd4db27c84d3c0d573a84a291195d1f3866b3810 100644 (file)
@@ -19,6 +19,7 @@ static int r_RV(struct SN_env * z);
 static int r_mark_regions(struct SN_env * z);
 static int r_postlude(struct SN_env * z);
 static int r_prelude(struct SN_env * z);
+static int r_exceptions(struct SN_env * z);
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -487,6 +488,8 @@ static const symbol s_14[] = { 'e', 'n', 't', 'e' };
 static const symbol s_15[] = { 'a', 't' };
 static const symbol s_16[] = { 'a', 't' };
 static const symbol s_17[] = { 'i', 'c' };
+static const symbol s_18[] = { 'd', 'i', 'v', 'a', 'n', 'o' };
+static const symbol s_19[] = { 'd', 'i', 'v', 'a', 'n' };
 
 static int r_prelude(struct SN_env * z) {
     int among_var;
@@ -495,7 +498,6 @@ static int r_prelude(struct SN_env * z) {
             int c2 = z->c;
             z->bra = z->c;
             among_var = find_among(z, a_0, 7);
-            if (!(among_var)) goto lab0;
             z->ket = z->c;
             switch (among_var) {
                 case 1:
@@ -594,7 +596,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
             {   int c3 = z->c;
                 if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab4;
-                {   
+
+                {
                     int ret = out_grouping_U(z, g_v, 97, 249, 1);
                     if (ret < 0) goto lab4;
                     z->c += ret;
@@ -603,7 +606,8 @@ static int r_mark_regions(struct SN_env * z) {
             lab4:
                 z->c = c3;
                 if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
-                {   
+
+                {
                     int ret = in_grouping_U(z, g_v, 97, 249, 1);
                     if (ret < 0) goto lab2;
                     z->c += ret;
@@ -616,7 +620,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab0;
             {   int c4 = z->c;
                 if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab6;
-                {   
+
+                {
                     int ret = out_grouping_U(z, g_v, 97, 249, 1);
                     if (ret < 0) goto lab6;
                     z->c += ret;
@@ -639,23 +644,27 @@ static int r_mark_regions(struct SN_env * z) {
         z->c = c1;
     }
     {   int c5 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 249, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 249, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 249, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 249, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
@@ -674,7 +683,6 @@ static int r_postlude(struct SN_env * z) {
         z->bra = z->c;
         if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
         among_var = find_among(z, a_1, 3);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
@@ -703,29 +711,26 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_attached_pronoun(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_2, 37))) return 0;
+    if (!find_among_b(z, a_2, 37)) return 0;
     z->bra = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
     among_var = find_among_b(z, a_3, 5);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     {   int ret = r_RV(z);
         if (ret <= 0) return ret;
     }
@@ -748,7 +753,7 @@ static int r_standard_suffix(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_6, 51);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -824,7 +829,7 @@ static int r_standard_suffix(struct SN_env * z) {
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; }
                 among_var = find_among_b(z, a_4, 4);
-                if (!(among_var)) { z->c = z->l - m2; goto lab1; }
+                if (!among_var) { z->c = z->l - m2; goto lab1; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m2; goto lab1; }
@@ -861,7 +866,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int m3 = z->l - z->c; (void)m3;
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; }
-                if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m3; goto lab2; }
+                if (!find_among_b(z, a_5, 3)) { z->c = z->l - m3; goto lab2; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m3; goto lab2; }
@@ -916,7 +921,7 @@ static int r_verb_suffix(struct SN_env * z) {
         if (z->c < z->I[2]) return 0;
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
-        if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_7, 87)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         {   int ret = slice_del(z);
             if (ret < 0) return ret;
@@ -971,56 +976,77 @@ static int r_vowel_suffix(struct SN_env * z) {
     return 1;
 }
 
+static int r_exceptions(struct SN_env * z) {
+    z->bra = z->c;
+    if (!(eq_s(z, 6, s_18))) return 0;
+    if (z->c < z->l) return 0;
+    z->ket = z->c;
+    {   int ret = slice_from_s(z, 5, s_19);
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
 extern int italian_UTF_8_stem(struct SN_env * z) {
     {   int c1 = z->c;
-        {   int ret = r_prelude(z);
+        {   int ret = r_exceptions(z);
+            if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
+        goto lab0;
+    lab1:
         z->c = c1;
-    }
-    
-    {   int ret = r_mark_regions(z);
-        if (ret < 0) return ret;
-    }
-    z->lb = z->c; z->c = z->l;
+        {   int c2 = z->c;
+            {   int ret = r_prelude(z);
+                if (ret < 0) return ret;
+            }
+            z->c = c2;
+        }
 
-    {   int m2 = z->l - z->c; (void)m2;
-        {   int ret = r_attached_pronoun(z);
+        {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
-        z->c = z->l - m2;
-    }
-    {   int m3 = z->l - z->c; (void)m3;
-        {   int m4 = z->l - z->c; (void)m4;
-            {   int ret = r_standard_suffix(z);
-                if (ret == 0) goto lab2;
+        z->lb = z->c; z->c = z->l;
+
+        {   int m3 = z->l - z->c; (void)m3;
+            {   int ret = r_attached_pronoun(z);
                 if (ret < 0) return ret;
             }
-            goto lab1;
+            z->c = z->l - m3;
+        }
+        {   int m4 = z->l - z->c; (void)m4;
+            {   int m5 = z->l - z->c; (void)m5;
+                {   int ret = r_standard_suffix(z);
+                    if (ret == 0) goto lab4;
+                    if (ret < 0) return ret;
+                }
+                goto lab3;
+            lab4:
+                z->c = z->l - m5;
+                {   int ret = r_verb_suffix(z);
+                    if (ret == 0) goto lab2;
+                    if (ret < 0) return ret;
+                }
+            }
+        lab3:
         lab2:
             z->c = z->l - m4;
-            {   int ret = r_verb_suffix(z);
-                if (ret == 0) goto lab0;
+        }
+        {   int m6 = z->l - z->c; (void)m6;
+            {   int ret = r_vowel_suffix(z);
                 if (ret < 0) return ret;
             }
+            z->c = z->l - m6;
         }
-    lab1:
-    lab0:
-        z->c = z->l - m3;
-    }
-    {   int m5 = z->l - z->c; (void)m5;
-        {   int ret = r_vowel_suffix(z);
-            if (ret < 0) return ret;
-        }
-        z->c = z->l - m5;
-    }
-    z->c = z->lb;
-    {   int c6 = z->c;
-        {   int ret = r_postlude(z);
-            if (ret < 0) return ret;
+        z->c = z->lb;
+        {   int c7 = z->c;
+            {   int ret = r_postlude(z);
+                if (ret < 0) return ret;
+            }
+            z->c = c7;
         }
-        z->c = c6;
     }
+lab0:
     return 1;
 }
 
index 505b92e23873e7ff88928a43816abdf82fdbf6d9..5dd8b038fd48d5ad5fdaba7f37021c964f315bcf 100644 (file)
@@ -6,7 +6,6 @@ static int r_fix_conflicts(struct SN_env * z);
 static int r_fix_gd(struct SN_env * z);
 static int r_fix_chdz(struct SN_env * z);
 static int r_step1(struct SN_env * z);
-static int r_R1(struct SN_env * z);
 static int r_step2(struct SN_env * z);
 #ifdef __cplusplus
 extern "C" {
@@ -626,24 +625,16 @@ static const symbol s_8[] = { 't' };
 static const symbol s_9[] = { 'd' };
 static const symbol s_10[] = { 'g' };
 
-static int r_R1(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
-}
-
 static int r_step1(struct SN_env * z) {
 
     {   int mlimit1;
         if (z->c < z->I[0]) return 0;
         mlimit1 = z->lb; z->lb = z->I[0];
         z->ket = z->c;
-        if (!(find_among_b(z, a_0, 204))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_0, 204)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
-    {   int ret = r_R1(z);
-        if (ret <= 0) return ret;
-    }
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
@@ -658,7 +649,7 @@ static int r_step2(struct SN_env * z) {
             if (z->c < z->I[0]) goto lab0;
             mlimit2 = z->lb; z->lb = z->I[0];
             z->ket = z->c;
-            if (!(find_among_b(z, a_1, 62))) { z->lb = mlimit2; goto lab0; }
+            if (!find_among_b(z, a_1, 62)) { z->lb = mlimit2; goto lab0; }
             z->bra = z->c;
             z->lb = mlimit2;
         }
@@ -678,7 +669,7 @@ static int r_fix_conflicts(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2621472 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_2, 11);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -730,7 +721,7 @@ static int r_fix_chdz(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 190)) return 0;
     among_var = find_among_b(z, a_3, 2);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -750,7 +741,7 @@ static int r_fix_chdz(struct SN_env * z) {
 static int r_fix_gd(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 100) return 0;
-    if (!(find_among_b(z, a_4, 1))) return 0;
+    if (!find_among_b(z, a_4, 1)) return 0;
     z->bra = z->c;
     {   int ret = slice_from_s(z, 1, s_10);
         if (ret < 0) return ret;
@@ -767,7 +758,7 @@ extern int lithuanian_UTF_8_stem(struct SN_env * z) {
                 z->c++;
                 z->c = c_test3;
             }
-            if (!(len_utf8(z->p) > 6)) { z->c = c2; goto lab1; }
+            if (len_utf8(z->p) <= 6) { z->c = c2; goto lab1; }
             {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                 if (ret < 0) { z->c = c2; goto lab1; }
                 z->c = ret;
@@ -775,12 +766,14 @@ extern int lithuanian_UTF_8_stem(struct SN_env * z) {
         lab1:
             ;
         }
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 371, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 371, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
index b1810c55cb1410b3692cc0bc8f535d1a6ae60f50..7cec8523cfa1f2c3b3e9b6d3ef9f4d7534e98be1 100644 (file)
@@ -285,7 +285,7 @@ static int r_remove_category_1(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_0, 17);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -319,7 +319,7 @@ static int r_remove_category_1(struct SN_env * z) {
 static int r_check_category_2(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_1, 3))) return 0;
+    if (!find_among_b(z, a_1, 3)) return 0;
     z->bra = z->c;
     return 1;
 }
@@ -329,7 +329,7 @@ static int r_remove_category_2(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_2, 3);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -365,7 +365,7 @@ static int r_remove_category_2(struct SN_env * z) {
 
 static int r_remove_category_3(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_3, 91))) return 0;
+    if (!find_among_b(z, a_3, 91)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
index 41aa668a968f9a5094d8126f817dea2509b8781d..8d50961d50bf1a2febb941f6539aa1e021d410d1 100644 (file)
@@ -140,15 +140,17 @@ static int r_mark_regions(struct SN_env * z) {
         z->I[0] = z->c;
         z->c = c_test1;
     }
+
     if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0;
-    {   
+
+    {
         int ret = in_grouping_U(z, g_v, 97, 248, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
     z->I[1] = z->c;
-    
-    if (!(z->I[1] < z->I[0])) goto lab0;
+
+    if (z->I[1] >= z->I[0]) goto lab0;
     z->I[1] = z->I[0];
 lab0:
     return 1;
@@ -163,7 +165,7 @@ static int r_main_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
         among_var = find_among_b(z, a_0, 29);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -205,7 +207,7 @@ static int r_consonant_pair(struct SN_env * z) {
             mlimit2 = z->lb; z->lb = z->I[1];
             z->ket = z->c;
             if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; }
-            if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; }
+            if (!find_among_b(z, a_1, 2)) { z->lb = mlimit2; return 0; }
             z->bra = z->c;
             z->lb = mlimit2;
         }
@@ -229,7 +231,7 @@ static int r_other_suffix(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[1];
         z->ket = z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
-        if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_2, 11)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
index fb44f5626a7543ffebc579c9ec01ec37f7cbac25..297ce1405009c7890d7b4df04509e3b11a8979cf 100644 (file)
@@ -230,13 +230,11 @@ static int r_shortv(struct SN_env * z) {
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_Step_1a(struct SN_env * z) {
@@ -244,7 +242,7 @@ static int r_Step_1a(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
     among_var = find_among_b(z, a_0, 4);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -271,7 +269,7 @@ static int r_Step_1b(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
     among_var = find_among_b(z, a_2, 3);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -284,7 +282,8 @@ static int r_Step_1b(struct SN_env * z) {
             break;
         case 2:
             {   int m_test1 = z->l - z->c;
-                {   
+
+                {
                     int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
                     if (ret < 0) return 0;
                     z->c -= ret;
@@ -297,7 +296,6 @@ static int r_Step_1b(struct SN_env * z) {
             {   int m_test2 = z->l - z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
                 among_var = find_among_b(z, a_1, 13);
-                if (!(among_var)) return 0;
                 z->c = z->l - m_test2;
             }
             switch (among_var) {
@@ -356,7 +354,8 @@ static int r_Step_1c(struct SN_env * z) {
     }
 lab0:
     z->bra = z->c;
-    {   
+
+    {
         int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
         if (ret < 0) return 0;
         z->c -= ret;
@@ -372,7 +371,7 @@ static int r_Step_2(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_3, 20);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -452,7 +451,7 @@ static int r_Step_3(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_4, 7);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -482,7 +481,7 @@ static int r_Step_4(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_5, 19);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R2(z);
         if (ret <= 0) return ret;
@@ -517,26 +516,24 @@ static int r_Step_5a(struct SN_env * z) {
     if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
     z->c--;
     z->bra = z->c;
+
+    {   int ret = r_R2(z);
+        if (ret == 0) goto lab1;
+        if (ret < 0) return ret;
+    }
+    goto lab0;
+lab1:
+    {   int ret = r_R1(z);
+        if (ret <= 0) return ret;
+    }
     {   int m1 = z->l - z->c; (void)m1;
-        {   int ret = r_R2(z);
-            if (ret == 0) goto lab1;
+        {   int ret = r_shortv(z);
+            if (ret == 0) goto lab2;
             if (ret < 0) return ret;
         }
-        goto lab0;
-    lab1:
+        return 0;
+    lab2:
         z->c = z->l - m1;
-        {   int ret = r_R1(z);
-            if (ret <= 0) return ret;
-        }
-        {   int m2 = z->l - z->c; (void)m2;
-            {   int ret = r_shortv(z);
-                if (ret == 0) goto lab2;
-                if (ret < 0) return ret;
-            }
-            return 0;
-        lab2:
-            z->c = z->l - m2;
-        }
     }
 lab0:
     {   int ret = slice_del(z);
@@ -608,23 +605,27 @@ extern int porter_UTF_8_stem(struct SN_env * z) {
     z->I[1] = z->l;
     z->I[0] = z->l;
     {   int c5 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
index af0a8e1764adbdb24ac45315af633665ddd7067b..3ccf24cd735e955215ff297516940c2e224ad61e 100644 (file)
@@ -479,7 +479,6 @@ static int r_prelude(struct SN_env * z) {
         z->bra = z->c;
         if (z->c + 1 >= z->l || (z->p[z->c + 1] != 163 && z->p[z->c + 1] != 181)) among_var = 3; else
         among_var = find_among(z, a_0, 3);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
@@ -516,7 +515,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2;
             {   int c3 = z->c;
                 if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab4;
-                {   
+
+                {
                     int ret = out_grouping_U(z, g_v, 97, 250, 1);
                     if (ret < 0) goto lab4;
                     z->c += ret;
@@ -525,7 +525,8 @@ static int r_mark_regions(struct SN_env * z) {
             lab4:
                 z->c = c3;
                 if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2;
-                {   
+
+                {
                     int ret = in_grouping_U(z, g_v, 97, 250, 1);
                     if (ret < 0) goto lab2;
                     z->c += ret;
@@ -538,7 +539,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab0;
             {   int c4 = z->c;
                 if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab6;
-                {   
+
+                {
                     int ret = out_grouping_U(z, g_v, 97, 250, 1);
                     if (ret < 0) goto lab6;
                     z->c += ret;
@@ -561,23 +563,27 @@ static int r_mark_regions(struct SN_env * z) {
         z->c = c1;
     }
     {   int c5 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
@@ -596,7 +602,6 @@ static int r_postlude(struct SN_env * z) {
         z->bra = z->c;
         if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else
         among_var = find_among(z, a_1, 3);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
@@ -625,18 +630,15 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_standard_suffix(struct SN_env * z) {
@@ -644,7 +646,7 @@ static int r_standard_suffix(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_5, 45);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -690,7 +692,7 @@ static int r_standard_suffix(struct SN_env * z) {
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; }
                 among_var = find_among_b(z, a_2, 4);
-                if (!(among_var)) { z->c = z->l - m1; goto lab0; }
+                if (!among_var) { z->c = z->l - m1; goto lab0; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m1; goto lab0; }
@@ -727,7 +729,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int m2 = z->l - z->c; (void)m2;
                 z->ket = z->c;
                 if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; }
-                if (!(find_among_b(z, a_3, 3))) { z->c = z->l - m2; goto lab1; }
+                if (!find_among_b(z, a_3, 3)) { z->c = z->l - m2; goto lab1; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m2; goto lab1; }
@@ -750,7 +752,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int m3 = z->l - z->c; (void)m3;
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; }
-                if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
+                if (!find_among_b(z, a_4, 3)) { z->c = z->l - m3; goto lab2; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m3; goto lab2; }
@@ -805,7 +807,7 @@ static int r_verb_suffix(struct SN_env * z) {
         if (z->c < z->I[2]) return 0;
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
-        if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_6, 120)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         {   int ret = slice_del(z);
             if (ret < 0) return ret;
@@ -817,7 +819,7 @@ static int r_verb_suffix(struct SN_env * z) {
 
 static int r_residual_suffix(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_7, 7))) return 0;
+    if (!find_among_b(z, a_7, 7)) return 0;
     z->bra = z->c;
     {   int ret = r_RV(z);
         if (ret <= 0) return ret;
@@ -832,7 +834,7 @@ static int r_residual_form(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_8, 4);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -888,7 +890,7 @@ extern int portuguese_UTF_8_stem(struct SN_env * z) {
         }
         z->c = c1;
     }
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index d4bbbf53a4e466e207585c7290e3b5fac2f910a0..f0d688a9413f5b892b039180ece7fd605fcce361 100644 (file)
@@ -20,6 +20,7 @@ static int r_RV(struct SN_env * z);
 static int r_mark_regions(struct SN_env * z);
 static int r_postlude(struct SN_env * z);
 static int r_prelude(struct SN_env * z);
+static int r_norm(struct SN_env * z);
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -32,509 +33,563 @@ extern void romanian_UTF_8_close_env(struct SN_env * z);
 #ifdef __cplusplus
 }
 #endif
-static const symbol s_0_1[1] = { 'I' };
-static const symbol s_0_2[1] = { 'U' };
+static const symbol s_0_0[2] = { 0xC5, 0x9F };
+static const symbol s_0_1[2] = { 0xC5, 0xA3 };
 
-static const struct among a_0[3] =
+static const struct among a_0[2] =
 {
-{ 0, 0, -1, 3, 0},
-{ 1, s_0_1, 0, 1, 0},
-{ 1, s_0_2, 0, 2, 0}
+{ 2, s_0_0, -1, 1, 0},
+{ 2, s_0_1, -1, 2, 0}
 };
 
-static const symbol s_1_0[2] = { 'e', 'a' };
-static const symbol s_1_1[5] = { 'a', 0xC5, 0xA3, 'i', 'a' };
-static const symbol s_1_2[3] = { 'a', 'u', 'a' };
-static const symbol s_1_3[3] = { 'i', 'u', 'a' };
-static const symbol s_1_4[5] = { 'a', 0xC5, 0xA3, 'i', 'e' };
-static const symbol s_1_5[3] = { 'e', 'l', 'e' };
-static const symbol s_1_6[3] = { 'i', 'l', 'e' };
-static const symbol s_1_7[4] = { 'i', 'i', 'l', 'e' };
-static const symbol s_1_8[3] = { 'i', 'e', 'i' };
-static const symbol s_1_9[4] = { 'a', 't', 'e', 'i' };
-static const symbol s_1_10[2] = { 'i', 'i' };
-static const symbol s_1_11[4] = { 'u', 'l', 'u', 'i' };
-static const symbol s_1_12[2] = { 'u', 'l' };
-static const symbol s_1_13[4] = { 'e', 'l', 'o', 'r' };
-static const symbol s_1_14[4] = { 'i', 'l', 'o', 'r' };
-static const symbol s_1_15[5] = { 'i', 'i', 'l', 'o', 'r' };
-
-static const struct among a_1[16] =
+static const symbol s_1_1[1] = { 'I' };
+static const symbol s_1_2[1] = { 'U' };
+
+static const struct among a_1[3] =
 {
-{ 2, s_1_0, -1, 3, 0},
-{ 5, s_1_1, -1, 7, 0},
-{ 3, s_1_2, -1, 2, 0},
-{ 3, s_1_3, -1, 4, 0},
-{ 5, s_1_4, -1, 7, 0},
-{ 3, s_1_5, -1, 3, 0},
-{ 3, s_1_6, -1, 5, 0},
-{ 4, s_1_7, 6, 4, 0},
-{ 3, s_1_8, -1, 4, 0},
-{ 4, s_1_9, -1, 6, 0},
-{ 2, s_1_10, -1, 4, 0},
-{ 4, s_1_11, -1, 1, 0},
-{ 2, s_1_12, -1, 1, 0},
-{ 4, s_1_13, -1, 3, 0},
-{ 4, s_1_14, -1, 4, 0},
-{ 5, s_1_15, 14, 4, 0}
+{ 0, 0, -1, 3, 0},
+{ 1, s_1_1, 0, 1, 0},
+{ 1, s_1_2, 0, 2, 0}
 };
 
-static const symbol s_2_0[5] = { 'i', 'c', 'a', 'l', 'a' };
-static const symbol s_2_1[5] = { 'i', 'c', 'i', 'v', 'a' };
-static const symbol s_2_2[5] = { 'a', 't', 'i', 'v', 'a' };
-static const symbol s_2_3[5] = { 'i', 't', 'i', 'v', 'a' };
-static const symbol s_2_4[5] = { 'i', 'c', 'a', 'l', 'e' };
-static const symbol s_2_5[7] = { 'a', 0xC5, 0xA3, 'i', 'u', 'n', 'e' };
-static const symbol s_2_6[7] = { 'i', 0xC5, 0xA3, 'i', 'u', 'n', 'e' };
-static const symbol s_2_7[6] = { 'a', 't', 'o', 'a', 'r', 'e' };
-static const symbol s_2_8[6] = { 'i', 't', 'o', 'a', 'r', 'e' };
-static const symbol s_2_9[7] = { 0xC4, 0x83, 't', 'o', 'a', 'r', 'e' };
-static const symbol s_2_10[7] = { 'i', 'c', 'i', 't', 'a', 't', 'e' };
-static const symbol s_2_11[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
-static const symbol s_2_12[9] = { 'i', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
-static const symbol s_2_13[7] = { 'i', 'v', 'i', 't', 'a', 't', 'e' };
-static const symbol s_2_14[5] = { 'i', 'c', 'i', 'v', 'e' };
-static const symbol s_2_15[5] = { 'a', 't', 'i', 'v', 'e' };
-static const symbol s_2_16[5] = { 'i', 't', 'i', 'v', 'e' };
-static const symbol s_2_17[5] = { 'i', 'c', 'a', 'l', 'i' };
-static const symbol s_2_18[5] = { 'a', 't', 'o', 'r', 'i' };
-static const symbol s_2_19[7] = { 'i', 'c', 'a', 't', 'o', 'r', 'i' };
-static const symbol s_2_20[5] = { 'i', 't', 'o', 'r', 'i' };
-static const symbol s_2_21[6] = { 0xC4, 0x83, 't', 'o', 'r', 'i' };
-static const symbol s_2_22[7] = { 'i', 'c', 'i', 't', 'a', 't', 'i' };
-static const symbol s_2_23[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'i' };
-static const symbol s_2_24[7] = { 'i', 'v', 'i', 't', 'a', 't', 'i' };
-static const symbol s_2_25[5] = { 'i', 'c', 'i', 'v', 'i' };
-static const symbol s_2_26[5] = { 'a', 't', 'i', 'v', 'i' };
-static const symbol s_2_27[5] = { 'i', 't', 'i', 'v', 'i' };
-static const symbol s_2_28[7] = { 'i', 'c', 'i', 't', 0xC4, 0x83, 'i' };
-static const symbol s_2_29[9] = { 'a', 'b', 'i', 'l', 'i', 't', 0xC4, 0x83, 'i' };
-static const symbol s_2_30[7] = { 'i', 'v', 'i', 't', 0xC4, 0x83, 'i' };
-static const symbol s_2_31[9] = { 'i', 'c', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_2_32[11] = { 'a', 'b', 'i', 'l', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_2_33[9] = { 'i', 'v', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_2_34[4] = { 'i', 'c', 'a', 'l' };
-static const symbol s_2_35[4] = { 'a', 't', 'o', 'r' };
-static const symbol s_2_36[6] = { 'i', 'c', 'a', 't', 'o', 'r' };
-static const symbol s_2_37[4] = { 'i', 't', 'o', 'r' };
-static const symbol s_2_38[5] = { 0xC4, 0x83, 't', 'o', 'r' };
-static const symbol s_2_39[4] = { 'i', 'c', 'i', 'v' };
-static const symbol s_2_40[4] = { 'a', 't', 'i', 'v' };
-static const symbol s_2_41[4] = { 'i', 't', 'i', 'v' };
-static const symbol s_2_42[6] = { 'i', 'c', 'a', 'l', 0xC4, 0x83 };
-static const symbol s_2_43[6] = { 'i', 'c', 'i', 'v', 0xC4, 0x83 };
-static const symbol s_2_44[6] = { 'a', 't', 'i', 'v', 0xC4, 0x83 };
-static const symbol s_2_45[6] = { 'i', 't', 'i', 'v', 0xC4, 0x83 };
-
-static const struct among a_2[46] =
+static const symbol s_2_0[2] = { 'e', 'a' };
+static const symbol s_2_1[5] = { 'a', 0xC8, 0x9B, 'i', 'a' };
+static const symbol s_2_2[3] = { 'a', 'u', 'a' };
+static const symbol s_2_3[3] = { 'i', 'u', 'a' };
+static const symbol s_2_4[5] = { 'a', 0xC8, 0x9B, 'i', 'e' };
+static const symbol s_2_5[3] = { 'e', 'l', 'e' };
+static const symbol s_2_6[3] = { 'i', 'l', 'e' };
+static const symbol s_2_7[4] = { 'i', 'i', 'l', 'e' };
+static const symbol s_2_8[3] = { 'i', 'e', 'i' };
+static const symbol s_2_9[4] = { 'a', 't', 'e', 'i' };
+static const symbol s_2_10[2] = { 'i', 'i' };
+static const symbol s_2_11[4] = { 'u', 'l', 'u', 'i' };
+static const symbol s_2_12[2] = { 'u', 'l' };
+static const symbol s_2_13[4] = { 'e', 'l', 'o', 'r' };
+static const symbol s_2_14[4] = { 'i', 'l', 'o', 'r' };
+static const symbol s_2_15[5] = { 'i', 'i', 'l', 'o', 'r' };
+
+static const struct among a_2[16] =
 {
-{ 5, s_2_0, -1, 4, 0},
-{ 5, s_2_1, -1, 4, 0},
-{ 5, s_2_2, -1, 5, 0},
-{ 5, s_2_3, -1, 6, 0},
-{ 5, s_2_4, -1, 4, 0},
-{ 7, s_2_5, -1, 5, 0},
-{ 7, s_2_6, -1, 6, 0},
-{ 6, s_2_7, -1, 5, 0},
-{ 6, s_2_8, -1, 6, 0},
-{ 7, s_2_9, -1, 5, 0},
-{ 7, s_2_10, -1, 4, 0},
-{ 9, s_2_11, -1, 1, 0},
-{ 9, s_2_12, -1, 2, 0},
-{ 7, s_2_13, -1, 3, 0},
-{ 5, s_2_14, -1, 4, 0},
-{ 5, s_2_15, -1, 5, 0},
-{ 5, s_2_16, -1, 6, 0},
-{ 5, s_2_17, -1, 4, 0},
-{ 5, s_2_18, -1, 5, 0},
-{ 7, s_2_19, 18, 4, 0},
-{ 5, s_2_20, -1, 6, 0},
-{ 6, s_2_21, -1, 5, 0},
-{ 7, s_2_22, -1, 4, 0},
-{ 9, s_2_23, -1, 1, 0},
-{ 7, s_2_24, -1, 3, 0},
-{ 5, s_2_25, -1, 4, 0},
-{ 5, s_2_26, -1, 5, 0},
-{ 5, s_2_27, -1, 6, 0},
-{ 7, s_2_28, -1, 4, 0},
-{ 9, s_2_29, -1, 1, 0},
-{ 7, s_2_30, -1, 3, 0},
-{ 9, s_2_31, -1, 4, 0},
-{ 11, s_2_32, -1, 1, 0},
-{ 9, s_2_33, -1, 3, 0},
-{ 4, s_2_34, -1, 4, 0},
-{ 4, s_2_35, -1, 5, 0},
-{ 6, s_2_36, 35, 4, 0},
-{ 4, s_2_37, -1, 6, 0},
-{ 5, s_2_38, -1, 5, 0},
-{ 4, s_2_39, -1, 4, 0},
-{ 4, s_2_40, -1, 5, 0},
-{ 4, s_2_41, -1, 6, 0},
-{ 6, s_2_42, -1, 4, 0},
-{ 6, s_2_43, -1, 4, 0},
-{ 6, s_2_44, -1, 5, 0},
-{ 6, s_2_45, -1, 6, 0}
+{ 2, s_2_0, -1, 3, 0},
+{ 5, s_2_1, -1, 7, 0},
+{ 3, s_2_2, -1, 2, 0},
+{ 3, s_2_3, -1, 4, 0},
+{ 5, s_2_4, -1, 7, 0},
+{ 3, s_2_5, -1, 3, 0},
+{ 3, s_2_6, -1, 5, 0},
+{ 4, s_2_7, 6, 4, 0},
+{ 3, s_2_8, -1, 4, 0},
+{ 4, s_2_9, -1, 6, 0},
+{ 2, s_2_10, -1, 4, 0},
+{ 4, s_2_11, -1, 1, 0},
+{ 2, s_2_12, -1, 1, 0},
+{ 4, s_2_13, -1, 3, 0},
+{ 4, s_2_14, -1, 4, 0},
+{ 5, s_2_15, 14, 4, 0}
 };
 
-static const symbol s_3_0[3] = { 'i', 'c', 'a' };
-static const symbol s_3_1[5] = { 'a', 'b', 'i', 'l', 'a' };
-static const symbol s_3_2[5] = { 'i', 'b', 'i', 'l', 'a' };
-static const symbol s_3_3[4] = { 'o', 'a', 's', 'a' };
-static const symbol s_3_4[3] = { 'a', 't', 'a' };
-static const symbol s_3_5[3] = { 'i', 't', 'a' };
-static const symbol s_3_6[4] = { 'a', 'n', 't', 'a' };
-static const symbol s_3_7[4] = { 'i', 's', 't', 'a' };
-static const symbol s_3_8[3] = { 'u', 't', 'a' };
-static const symbol s_3_9[3] = { 'i', 'v', 'a' };
-static const symbol s_3_10[2] = { 'i', 'c' };
-static const symbol s_3_11[3] = { 'i', 'c', 'e' };
-static const symbol s_3_12[5] = { 'a', 'b', 'i', 'l', 'e' };
-static const symbol s_3_13[5] = { 'i', 'b', 'i', 'l', 'e' };
-static const symbol s_3_14[4] = { 'i', 's', 'm', 'e' };
-static const symbol s_3_15[4] = { 'i', 'u', 'n', 'e' };
-static const symbol s_3_16[4] = { 'o', 'a', 's', 'e' };
-static const symbol s_3_17[3] = { 'a', 't', 'e' };
-static const symbol s_3_18[5] = { 'i', 't', 'a', 't', 'e' };
-static const symbol s_3_19[3] = { 'i', 't', 'e' };
-static const symbol s_3_20[4] = { 'a', 'n', 't', 'e' };
-static const symbol s_3_21[4] = { 'i', 's', 't', 'e' };
-static const symbol s_3_22[3] = { 'u', 't', 'e' };
-static const symbol s_3_23[3] = { 'i', 'v', 'e' };
-static const symbol s_3_24[3] = { 'i', 'c', 'i' };
-static const symbol s_3_25[5] = { 'a', 'b', 'i', 'l', 'i' };
-static const symbol s_3_26[5] = { 'i', 'b', 'i', 'l', 'i' };
-static const symbol s_3_27[4] = { 'i', 'u', 'n', 'i' };
-static const symbol s_3_28[5] = { 'a', 't', 'o', 'r', 'i' };
-static const symbol s_3_29[3] = { 'o', 's', 'i' };
-static const symbol s_3_30[3] = { 'a', 't', 'i' };
-static const symbol s_3_31[5] = { 'i', 't', 'a', 't', 'i' };
-static const symbol s_3_32[3] = { 'i', 't', 'i' };
-static const symbol s_3_33[4] = { 'a', 'n', 't', 'i' };
-static const symbol s_3_34[4] = { 'i', 's', 't', 'i' };
-static const symbol s_3_35[3] = { 'u', 't', 'i' };
-static const symbol s_3_36[5] = { 'i', 0xC5, 0x9F, 't', 'i' };
-static const symbol s_3_37[3] = { 'i', 'v', 'i' };
-static const symbol s_3_38[5] = { 'i', 't', 0xC4, 0x83, 'i' };
-static const symbol s_3_39[4] = { 'o', 0xC5, 0x9F, 'i' };
-static const symbol s_3_40[7] = { 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_3_41[4] = { 'a', 'b', 'i', 'l' };
-static const symbol s_3_42[4] = { 'i', 'b', 'i', 'l' };
-static const symbol s_3_43[3] = { 'i', 's', 'm' };
-static const symbol s_3_44[4] = { 'a', 't', 'o', 'r' };
-static const symbol s_3_45[2] = { 'o', 's' };
-static const symbol s_3_46[2] = { 'a', 't' };
-static const symbol s_3_47[2] = { 'i', 't' };
-static const symbol s_3_48[3] = { 'a', 'n', 't' };
-static const symbol s_3_49[3] = { 'i', 's', 't' };
-static const symbol s_3_50[2] = { 'u', 't' };
-static const symbol s_3_51[2] = { 'i', 'v' };
-static const symbol s_3_52[4] = { 'i', 'c', 0xC4, 0x83 };
-static const symbol s_3_53[6] = { 'a', 'b', 'i', 'l', 0xC4, 0x83 };
-static const symbol s_3_54[6] = { 'i', 'b', 'i', 'l', 0xC4, 0x83 };
-static const symbol s_3_55[5] = { 'o', 'a', 's', 0xC4, 0x83 };
-static const symbol s_3_56[4] = { 'a', 't', 0xC4, 0x83 };
-static const symbol s_3_57[4] = { 'i', 't', 0xC4, 0x83 };
-static const symbol s_3_58[5] = { 'a', 'n', 't', 0xC4, 0x83 };
-static const symbol s_3_59[5] = { 'i', 's', 't', 0xC4, 0x83 };
-static const symbol s_3_60[4] = { 'u', 't', 0xC4, 0x83 };
-static const symbol s_3_61[4] = { 'i', 'v', 0xC4, 0x83 };
-
-static const struct among a_3[62] =
+static const symbol s_3_0[5] = { 'i', 'c', 'a', 'l', 'a' };
+static const symbol s_3_1[5] = { 'i', 'c', 'i', 'v', 'a' };
+static const symbol s_3_2[5] = { 'a', 't', 'i', 'v', 'a' };
+static const symbol s_3_3[5] = { 'i', 't', 'i', 'v', 'a' };
+static const symbol s_3_4[5] = { 'i', 'c', 'a', 'l', 'e' };
+static const symbol s_3_5[7] = { 'a', 0xC8, 0x9B, 'i', 'u', 'n', 'e' };
+static const symbol s_3_6[7] = { 'i', 0xC8, 0x9B, 'i', 'u', 'n', 'e' };
+static const symbol s_3_7[6] = { 'a', 't', 'o', 'a', 'r', 'e' };
+static const symbol s_3_8[6] = { 'i', 't', 'o', 'a', 'r', 'e' };
+static const symbol s_3_9[7] = { 0xC4, 0x83, 't', 'o', 'a', 'r', 'e' };
+static const symbol s_3_10[7] = { 'i', 'c', 'i', 't', 'a', 't', 'e' };
+static const symbol s_3_11[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
+static const symbol s_3_12[9] = { 'i', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
+static const symbol s_3_13[7] = { 'i', 'v', 'i', 't', 'a', 't', 'e' };
+static const symbol s_3_14[5] = { 'i', 'c', 'i', 'v', 'e' };
+static const symbol s_3_15[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_3_16[5] = { 'i', 't', 'i', 'v', 'e' };
+static const symbol s_3_17[5] = { 'i', 'c', 'a', 'l', 'i' };
+static const symbol s_3_18[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_3_19[7] = { 'i', 'c', 'a', 't', 'o', 'r', 'i' };
+static const symbol s_3_20[5] = { 'i', 't', 'o', 'r', 'i' };
+static const symbol s_3_21[6] = { 0xC4, 0x83, 't', 'o', 'r', 'i' };
+static const symbol s_3_22[7] = { 'i', 'c', 'i', 't', 'a', 't', 'i' };
+static const symbol s_3_23[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'i' };
+static const symbol s_3_24[7] = { 'i', 'v', 'i', 't', 'a', 't', 'i' };
+static const symbol s_3_25[5] = { 'i', 'c', 'i', 'v', 'i' };
+static const symbol s_3_26[5] = { 'a', 't', 'i', 'v', 'i' };
+static const symbol s_3_27[5] = { 'i', 't', 'i', 'v', 'i' };
+static const symbol s_3_28[7] = { 'i', 'c', 'i', 't', 0xC4, 0x83, 'i' };
+static const symbol s_3_29[9] = { 'a', 'b', 'i', 'l', 'i', 't', 0xC4, 0x83, 'i' };
+static const symbol s_3_30[7] = { 'i', 'v', 'i', 't', 0xC4, 0x83, 'i' };
+static const symbol s_3_31[9] = { 'i', 'c', 'i', 't', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_3_32[11] = { 'a', 'b', 'i', 'l', 'i', 't', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_3_33[9] = { 'i', 'v', 'i', 't', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_3_34[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_3_35[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_3_36[6] = { 'i', 'c', 'a', 't', 'o', 'r' };
+static const symbol s_3_37[4] = { 'i', 't', 'o', 'r' };
+static const symbol s_3_38[5] = { 0xC4, 0x83, 't', 'o', 'r' };
+static const symbol s_3_39[4] = { 'i', 'c', 'i', 'v' };
+static const symbol s_3_40[4] = { 'a', 't', 'i', 'v' };
+static const symbol s_3_41[4] = { 'i', 't', 'i', 'v' };
+static const symbol s_3_42[6] = { 'i', 'c', 'a', 'l', 0xC4, 0x83 };
+static const symbol s_3_43[6] = { 'i', 'c', 'i', 'v', 0xC4, 0x83 };
+static const symbol s_3_44[6] = { 'a', 't', 'i', 'v', 0xC4, 0x83 };
+static const symbol s_3_45[6] = { 'i', 't', 'i', 'v', 0xC4, 0x83 };
+
+static const struct among a_3[46] =
 {
-{ 3, s_3_0, -1, 1, 0},
-{ 5, s_3_1, -1, 1, 0},
-{ 5, s_3_2, -1, 1, 0},
-{ 4, s_3_3, -1, 1, 0},
-{ 3, s_3_4, -1, 1, 0},
-{ 3, s_3_5, -1, 1, 0},
-{ 4, s_3_6, -1, 1, 0},
-{ 4, s_3_7, -1, 3, 0},
-{ 3, s_3_8, -1, 1, 0},
-{ 3, s_3_9, -1, 1, 0},
-{ 2, s_3_10, -1, 1, 0},
-{ 3, s_3_11, -1, 1, 0},
-{ 5, s_3_12, -1, 1, 0},
-{ 5, s_3_13, -1, 1, 0},
-{ 4, s_3_14, -1, 3, 0},
-{ 4, s_3_15, -1, 2, 0},
-{ 4, s_3_16, -1, 1, 0},
-{ 3, s_3_17, -1, 1, 0},
-{ 5, s_3_18, 17, 1, 0},
-{ 3, s_3_19, -1, 1, 0},
-{ 4, s_3_20, -1, 1, 0},
-{ 4, s_3_21, -1, 3, 0},
-{ 3, s_3_22, -1, 1, 0},
-{ 3, s_3_23, -1, 1, 0},
-{ 3, s_3_24, -1, 1, 0},
-{ 5, s_3_25, -1, 1, 0},
-{ 5, s_3_26, -1, 1, 0},
-{ 4, s_3_27, -1, 2, 0},
-{ 5, s_3_28, -1, 1, 0},
-{ 3, s_3_29, -1, 1, 0},
-{ 3, s_3_30, -1, 1, 0},
-{ 5, s_3_31, 30, 1, 0},
-{ 3, s_3_32, -1, 1, 0},
-{ 4, s_3_33, -1, 1, 0},
-{ 4, s_3_34, -1, 3, 0},
-{ 3, s_3_35, -1, 1, 0},
-{ 5, s_3_36, -1, 3, 0},
-{ 3, s_3_37, -1, 1, 0},
-{ 5, s_3_38, -1, 1, 0},
-{ 4, s_3_39, -1, 1, 0},
-{ 7, s_3_40, -1, 1, 0},
-{ 4, s_3_41, -1, 1, 0},
-{ 4, s_3_42, -1, 1, 0},
-{ 3, s_3_43, -1, 3, 0},
-{ 4, s_3_44, -1, 1, 0},
-{ 2, s_3_45, -1, 1, 0},
-{ 2, s_3_46, -1, 1, 0},
-{ 2, s_3_47, -1, 1, 0},
-{ 3, s_3_48, -1, 1, 0},
-{ 3, s_3_49, -1, 3, 0},
-{ 2, s_3_50, -1, 1, 0},
-{ 2, s_3_51, -1, 1, 0},
-{ 4, s_3_52, -1, 1, 0},
-{ 6, s_3_53, -1, 1, 0},
-{ 6, s_3_54, -1, 1, 0},
-{ 5, s_3_55, -1, 1, 0},
-{ 4, s_3_56, -1, 1, 0},
-{ 4, s_3_57, -1, 1, 0},
-{ 5, s_3_58, -1, 1, 0},
-{ 5, s_3_59, -1, 3, 0},
-{ 4, s_3_60, -1, 1, 0},
-{ 4, s_3_61, -1, 1, 0}
+{ 5, s_3_0, -1, 4, 0},
+{ 5, s_3_1, -1, 4, 0},
+{ 5, s_3_2, -1, 5, 0},
+{ 5, s_3_3, -1, 6, 0},
+{ 5, s_3_4, -1, 4, 0},
+{ 7, s_3_5, -1, 5, 0},
+{ 7, s_3_6, -1, 6, 0},
+{ 6, s_3_7, -1, 5, 0},
+{ 6, s_3_8, -1, 6, 0},
+{ 7, s_3_9, -1, 5, 0},
+{ 7, s_3_10, -1, 4, 0},
+{ 9, s_3_11, -1, 1, 0},
+{ 9, s_3_12, -1, 2, 0},
+{ 7, s_3_13, -1, 3, 0},
+{ 5, s_3_14, -1, 4, 0},
+{ 5, s_3_15, -1, 5, 0},
+{ 5, s_3_16, -1, 6, 0},
+{ 5, s_3_17, -1, 4, 0},
+{ 5, s_3_18, -1, 5, 0},
+{ 7, s_3_19, 18, 4, 0},
+{ 5, s_3_20, -1, 6, 0},
+{ 6, s_3_21, -1, 5, 0},
+{ 7, s_3_22, -1, 4, 0},
+{ 9, s_3_23, -1, 1, 0},
+{ 7, s_3_24, -1, 3, 0},
+{ 5, s_3_25, -1, 4, 0},
+{ 5, s_3_26, -1, 5, 0},
+{ 5, s_3_27, -1, 6, 0},
+{ 7, s_3_28, -1, 4, 0},
+{ 9, s_3_29, -1, 1, 0},
+{ 7, s_3_30, -1, 3, 0},
+{ 9, s_3_31, -1, 4, 0},
+{ 11, s_3_32, -1, 1, 0},
+{ 9, s_3_33, -1, 3, 0},
+{ 4, s_3_34, -1, 4, 0},
+{ 4, s_3_35, -1, 5, 0},
+{ 6, s_3_36, 35, 4, 0},
+{ 4, s_3_37, -1, 6, 0},
+{ 5, s_3_38, -1, 5, 0},
+{ 4, s_3_39, -1, 4, 0},
+{ 4, s_3_40, -1, 5, 0},
+{ 4, s_3_41, -1, 6, 0},
+{ 6, s_3_42, -1, 4, 0},
+{ 6, s_3_43, -1, 4, 0},
+{ 6, s_3_44, -1, 5, 0},
+{ 6, s_3_45, -1, 6, 0}
 };
 
-static const symbol s_4_0[2] = { 'e', 'a' };
-static const symbol s_4_1[2] = { 'i', 'a' };
-static const symbol s_4_2[3] = { 'e', 's', 'c' };
-static const symbol s_4_3[4] = { 0xC4, 0x83, 's', 'c' };
-static const symbol s_4_4[3] = { 'i', 'n', 'd' };
-static const symbol s_4_5[4] = { 0xC3, 0xA2, 'n', 'd' };
-static const symbol s_4_6[3] = { 'a', 'r', 'e' };
-static const symbol s_4_7[3] = { 'e', 'r', 'e' };
-static const symbol s_4_8[3] = { 'i', 'r', 'e' };
-static const symbol s_4_9[4] = { 0xC3, 0xA2, 'r', 'e' };
-static const symbol s_4_10[2] = { 's', 'e' };
-static const symbol s_4_11[3] = { 'a', 's', 'e' };
-static const symbol s_4_12[4] = { 's', 'e', 's', 'e' };
-static const symbol s_4_13[3] = { 'i', 's', 'e' };
-static const symbol s_4_14[3] = { 'u', 's', 'e' };
-static const symbol s_4_15[4] = { 0xC3, 0xA2, 's', 'e' };
-static const symbol s_4_16[5] = { 'e', 0xC5, 0x9F, 't', 'e' };
-static const symbol s_4_17[6] = { 0xC4, 0x83, 0xC5, 0x9F, 't', 'e' };
-static const symbol s_4_18[3] = { 'e', 'z', 'e' };
-static const symbol s_4_19[2] = { 'a', 'i' };
-static const symbol s_4_20[3] = { 'e', 'a', 'i' };
-static const symbol s_4_21[3] = { 'i', 'a', 'i' };
-static const symbol s_4_22[3] = { 's', 'e', 'i' };
-static const symbol s_4_23[5] = { 'e', 0xC5, 0x9F, 't', 'i' };
-static const symbol s_4_24[6] = { 0xC4, 0x83, 0xC5, 0x9F, 't', 'i' };
-static const symbol s_4_25[2] = { 'u', 'i' };
-static const symbol s_4_26[3] = { 'e', 'z', 'i' };
-static const symbol s_4_27[4] = { 'a', 0xC5, 0x9F, 'i' };
-static const symbol s_4_28[5] = { 's', 'e', 0xC5, 0x9F, 'i' };
-static const symbol s_4_29[6] = { 'a', 's', 'e', 0xC5, 0x9F, 'i' };
-static const symbol s_4_30[7] = { 's', 'e', 's', 'e', 0xC5, 0x9F, 'i' };
-static const symbol s_4_31[6] = { 'i', 's', 'e', 0xC5, 0x9F, 'i' };
-static const symbol s_4_32[6] = { 'u', 's', 'e', 0xC5, 0x9F, 'i' };
-static const symbol s_4_33[7] = { 0xC3, 0xA2, 's', 'e', 0xC5, 0x9F, 'i' };
-static const symbol s_4_34[4] = { 'i', 0xC5, 0x9F, 'i' };
-static const symbol s_4_35[4] = { 'u', 0xC5, 0x9F, 'i' };
-static const symbol s_4_36[5] = { 0xC3, 0xA2, 0xC5, 0x9F, 'i' };
-static const symbol s_4_37[3] = { 0xC3, 0xA2, 'i' };
-static const symbol s_4_38[4] = { 'a', 0xC5, 0xA3, 'i' };
-static const symbol s_4_39[5] = { 'e', 'a', 0xC5, 0xA3, 'i' };
-static const symbol s_4_40[5] = { 'i', 'a', 0xC5, 0xA3, 'i' };
-static const symbol s_4_41[4] = { 'e', 0xC5, 0xA3, 'i' };
-static const symbol s_4_42[4] = { 'i', 0xC5, 0xA3, 'i' };
-static const symbol s_4_43[7] = { 'a', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_4_44[8] = { 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_4_45[9] = { 'a', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_4_46[10] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_4_47[9] = { 'i', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_4_48[9] = { 'u', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_4_49[10] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_4_50[7] = { 'i', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_4_51[7] = { 'u', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_4_52[8] = { 0xC3, 0xA2, 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
-static const symbol s_4_53[5] = { 0xC3, 0xA2, 0xC5, 0xA3, 'i' };
-static const symbol s_4_54[2] = { 'a', 'm' };
-static const symbol s_4_55[3] = { 'e', 'a', 'm' };
-static const symbol s_4_56[3] = { 'i', 'a', 'm' };
-static const symbol s_4_57[2] = { 'e', 'm' };
-static const symbol s_4_58[4] = { 'a', 's', 'e', 'm' };
-static const symbol s_4_59[5] = { 's', 'e', 's', 'e', 'm' };
-static const symbol s_4_60[4] = { 'i', 's', 'e', 'm' };
-static const symbol s_4_61[4] = { 'u', 's', 'e', 'm' };
-static const symbol s_4_62[5] = { 0xC3, 0xA2, 's', 'e', 'm' };
-static const symbol s_4_63[2] = { 'i', 'm' };
-static const symbol s_4_64[3] = { 0xC4, 0x83, 'm' };
-static const symbol s_4_65[5] = { 'a', 'r', 0xC4, 0x83, 'm' };
-static const symbol s_4_66[6] = { 's', 'e', 'r', 0xC4, 0x83, 'm' };
-static const symbol s_4_67[7] = { 'a', 's', 'e', 'r', 0xC4, 0x83, 'm' };
-static const symbol s_4_68[8] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83, 'm' };
-static const symbol s_4_69[7] = { 'i', 's', 'e', 'r', 0xC4, 0x83, 'm' };
-static const symbol s_4_70[7] = { 'u', 's', 'e', 'r', 0xC4, 0x83, 'm' };
-static const symbol s_4_71[8] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83, 'm' };
-static const symbol s_4_72[5] = { 'i', 'r', 0xC4, 0x83, 'm' };
-static const symbol s_4_73[5] = { 'u', 'r', 0xC4, 0x83, 'm' };
-static const symbol s_4_74[6] = { 0xC3, 0xA2, 'r', 0xC4, 0x83, 'm' };
-static const symbol s_4_75[3] = { 0xC3, 0xA2, 'm' };
-static const symbol s_4_76[2] = { 'a', 'u' };
-static const symbol s_4_77[3] = { 'e', 'a', 'u' };
-static const symbol s_4_78[3] = { 'i', 'a', 'u' };
-static const symbol s_4_79[4] = { 'i', 'n', 'd', 'u' };
-static const symbol s_4_80[5] = { 0xC3, 0xA2, 'n', 'd', 'u' };
-static const symbol s_4_81[2] = { 'e', 'z' };
-static const symbol s_4_82[6] = { 'e', 'a', 's', 'c', 0xC4, 0x83 };
-static const symbol s_4_83[4] = { 'a', 'r', 0xC4, 0x83 };
-static const symbol s_4_84[5] = { 's', 'e', 'r', 0xC4, 0x83 };
-static const symbol s_4_85[6] = { 'a', 's', 'e', 'r', 0xC4, 0x83 };
-static const symbol s_4_86[7] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83 };
-static const symbol s_4_87[6] = { 'i', 's', 'e', 'r', 0xC4, 0x83 };
-static const symbol s_4_88[6] = { 'u', 's', 'e', 'r', 0xC4, 0x83 };
-static const symbol s_4_89[7] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83 };
-static const symbol s_4_90[4] = { 'i', 'r', 0xC4, 0x83 };
-static const symbol s_4_91[4] = { 'u', 'r', 0xC4, 0x83 };
-static const symbol s_4_92[5] = { 0xC3, 0xA2, 'r', 0xC4, 0x83 };
-static const symbol s_4_93[5] = { 'e', 'a', 'z', 0xC4, 0x83 };
-
-static const struct among a_4[94] =
+static const symbol s_4_0[3] = { 'i', 'c', 'a' };
+static const symbol s_4_1[5] = { 'a', 'b', 'i', 'l', 'a' };
+static const symbol s_4_2[5] = { 'i', 'b', 'i', 'l', 'a' };
+static const symbol s_4_3[4] = { 'o', 'a', 's', 'a' };
+static const symbol s_4_4[3] = { 'a', 't', 'a' };
+static const symbol s_4_5[3] = { 'i', 't', 'a' };
+static const symbol s_4_6[4] = { 'a', 'n', 't', 'a' };
+static const symbol s_4_7[4] = { 'i', 's', 't', 'a' };
+static const symbol s_4_8[3] = { 'u', 't', 'a' };
+static const symbol s_4_9[3] = { 'i', 'v', 'a' };
+static const symbol s_4_10[2] = { 'i', 'c' };
+static const symbol s_4_11[3] = { 'i', 'c', 'e' };
+static const symbol s_4_12[5] = { 'a', 'b', 'i', 'l', 'e' };
+static const symbol s_4_13[5] = { 'i', 'b', 'i', 'l', 'e' };
+static const symbol s_4_14[4] = { 'i', 's', 'm', 'e' };
+static const symbol s_4_15[4] = { 'i', 'u', 'n', 'e' };
+static const symbol s_4_16[4] = { 'o', 'a', 's', 'e' };
+static const symbol s_4_17[3] = { 'a', 't', 'e' };
+static const symbol s_4_18[5] = { 'i', 't', 'a', 't', 'e' };
+static const symbol s_4_19[3] = { 'i', 't', 'e' };
+static const symbol s_4_20[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_4_21[4] = { 'i', 's', 't', 'e' };
+static const symbol s_4_22[3] = { 'u', 't', 'e' };
+static const symbol s_4_23[3] = { 'i', 'v', 'e' };
+static const symbol s_4_24[3] = { 'i', 'c', 'i' };
+static const symbol s_4_25[5] = { 'a', 'b', 'i', 'l', 'i' };
+static const symbol s_4_26[5] = { 'i', 'b', 'i', 'l', 'i' };
+static const symbol s_4_27[4] = { 'i', 'u', 'n', 'i' };
+static const symbol s_4_28[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_4_29[3] = { 'o', 's', 'i' };
+static const symbol s_4_30[3] = { 'a', 't', 'i' };
+static const symbol s_4_31[5] = { 'i', 't', 'a', 't', 'i' };
+static const symbol s_4_32[3] = { 'i', 't', 'i' };
+static const symbol s_4_33[4] = { 'a', 'n', 't', 'i' };
+static const symbol s_4_34[4] = { 'i', 's', 't', 'i' };
+static const symbol s_4_35[3] = { 'u', 't', 'i' };
+static const symbol s_4_36[5] = { 'i', 0xC8, 0x99, 't', 'i' };
+static const symbol s_4_37[3] = { 'i', 'v', 'i' };
+static const symbol s_4_38[5] = { 'i', 't', 0xC4, 0x83, 'i' };
+static const symbol s_4_39[4] = { 'o', 0xC8, 0x99, 'i' };
+static const symbol s_4_40[7] = { 'i', 't', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_4_41[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_4_42[4] = { 'i', 'b', 'i', 'l' };
+static const symbol s_4_43[3] = { 'i', 's', 'm' };
+static const symbol s_4_44[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_4_45[2] = { 'o', 's' };
+static const symbol s_4_46[2] = { 'a', 't' };
+static const symbol s_4_47[2] = { 'i', 't' };
+static const symbol s_4_48[3] = { 'a', 'n', 't' };
+static const symbol s_4_49[3] = { 'i', 's', 't' };
+static const symbol s_4_50[2] = { 'u', 't' };
+static const symbol s_4_51[2] = { 'i', 'v' };
+static const symbol s_4_52[4] = { 'i', 'c', 0xC4, 0x83 };
+static const symbol s_4_53[6] = { 'a', 'b', 'i', 'l', 0xC4, 0x83 };
+static const symbol s_4_54[6] = { 'i', 'b', 'i', 'l', 0xC4, 0x83 };
+static const symbol s_4_55[5] = { 'o', 'a', 's', 0xC4, 0x83 };
+static const symbol s_4_56[4] = { 'a', 't', 0xC4, 0x83 };
+static const symbol s_4_57[4] = { 'i', 't', 0xC4, 0x83 };
+static const symbol s_4_58[5] = { 'a', 'n', 't', 0xC4, 0x83 };
+static const symbol s_4_59[5] = { 'i', 's', 't', 0xC4, 0x83 };
+static const symbol s_4_60[4] = { 'u', 't', 0xC4, 0x83 };
+static const symbol s_4_61[4] = { 'i', 'v', 0xC4, 0x83 };
+
+static const struct among a_4[62] =
 {
-{ 2, s_4_0, -1, 1, 0},
-{ 2, s_4_1, -1, 1, 0},
-{ 3, s_4_2, -1, 1, 0},
+{ 3, s_4_0, -1, 1, 0},
+{ 5, s_4_1, -1, 1, 0},
+{ 5, s_4_2, -1, 1, 0},
 { 4, s_4_3, -1, 1, 0},
 { 3, s_4_4, -1, 1, 0},
-{ 4, s_4_5, -1, 1, 0},
-{ 3, s_4_6, -1, 1, 0},
-{ 3, s_4_7, -1, 1, 0},
+{ 3, s_4_5, -1, 1, 0},
+{ 4, s_4_6, -1, 1, 0},
+{ 4, s_4_7, -1, 3, 0},
 { 3, s_4_8, -1, 1, 0},
-{ 4, s_4_9, -1, 1, 0},
-{ 2, s_4_10, -1, 2, 0},
-{ 3, s_4_11, 10, 1, 0},
-{ 4, s_4_12, 10, 2, 0},
-{ 3, s_4_13, 10, 1, 0},
-{ 3, s_4_14, 10, 1, 0},
-{ 4, s_4_15, 10, 1, 0},
-{ 5, s_4_16, -1, 1, 0},
-{ 6, s_4_17, -1, 1, 0},
-{ 3, s_4_18, -1, 1, 0},
-{ 2, s_4_19, -1, 1, 0},
-{ 3, s_4_20, 19, 1, 0},
-{ 3, s_4_21, 19, 1, 0},
-{ 3, s_4_22, -1, 2, 0},
-{ 5, s_4_23, -1, 1, 0},
-{ 6, s_4_24, -1, 1, 0},
-{ 2, s_4_25, -1, 1, 0},
-{ 3, s_4_26, -1, 1, 0},
-{ 4, s_4_27, -1, 1, 0},
-{ 5, s_4_28, -1, 2, 0},
-{ 6, s_4_29, 28, 1, 0},
-{ 7, s_4_30, 28, 2, 0},
-{ 6, s_4_31, 28, 1, 0},
-{ 6, s_4_32, 28, 1, 0},
-{ 7, s_4_33, 28, 1, 0},
-{ 4, s_4_34, -1, 1, 0},
-{ 4, s_4_35, -1, 1, 0},
-{ 5, s_4_36, -1, 1, 0},
+{ 3, s_4_9, -1, 1, 0},
+{ 2, s_4_10, -1, 1, 0},
+{ 3, s_4_11, -1, 1, 0},
+{ 5, s_4_12, -1, 1, 0},
+{ 5, s_4_13, -1, 1, 0},
+{ 4, s_4_14, -1, 3, 0},
+{ 4, s_4_15, -1, 2, 0},
+{ 4, s_4_16, -1, 1, 0},
+{ 3, s_4_17, -1, 1, 0},
+{ 5, s_4_18, 17, 1, 0},
+{ 3, s_4_19, -1, 1, 0},
+{ 4, s_4_20, -1, 1, 0},
+{ 4, s_4_21, -1, 3, 0},
+{ 3, s_4_22, -1, 1, 0},
+{ 3, s_4_23, -1, 1, 0},
+{ 3, s_4_24, -1, 1, 0},
+{ 5, s_4_25, -1, 1, 0},
+{ 5, s_4_26, -1, 1, 0},
+{ 4, s_4_27, -1, 2, 0},
+{ 5, s_4_28, -1, 1, 0},
+{ 3, s_4_29, -1, 1, 0},
+{ 3, s_4_30, -1, 1, 0},
+{ 5, s_4_31, 30, 1, 0},
+{ 3, s_4_32, -1, 1, 0},
+{ 4, s_4_33, -1, 1, 0},
+{ 4, s_4_34, -1, 3, 0},
+{ 3, s_4_35, -1, 1, 0},
+{ 5, s_4_36, -1, 3, 0},
 { 3, s_4_37, -1, 1, 0},
-{ 4, s_4_38, -1, 2, 0},
-{ 5, s_4_39, 38, 1, 0},
-{ 5, s_4_40, 38, 1, 0},
-{ 4, s_4_41, -1, 2, 0},
-{ 4, s_4_42, -1, 2, 0},
-{ 7, s_4_43, -1, 1, 0},
-{ 8, s_4_44, -1, 2, 0},
-{ 9, s_4_45, 44, 1, 0},
-{ 10, s_4_46, 44, 2, 0},
-{ 9, s_4_47, 44, 1, 0},
-{ 9, s_4_48, 44, 1, 0},
-{ 10, s_4_49, 44, 1, 0},
-{ 7, s_4_50, -1, 1, 0},
-{ 7, s_4_51, -1, 1, 0},
-{ 8, s_4_52, -1, 1, 0},
-{ 5, s_4_53, -1, 2, 0},
-{ 2, s_4_54, -1, 1, 0},
-{ 3, s_4_55, 54, 1, 0},
-{ 3, s_4_56, 54, 1, 0},
-{ 2, s_4_57, -1, 2, 0},
-{ 4, s_4_58, 57, 1, 0},
-{ 5, s_4_59, 57, 2, 0},
-{ 4, s_4_60, 57, 1, 0},
-{ 4, s_4_61, 57, 1, 0},
-{ 5, s_4_62, 57, 1, 0},
-{ 2, s_4_63, -1, 2, 0},
-{ 3, s_4_64, -1, 2, 0},
-{ 5, s_4_65, 64, 1, 0},
-{ 6, s_4_66, 64, 2, 0},
-{ 7, s_4_67, 66, 1, 0},
-{ 8, s_4_68, 66, 2, 0},
-{ 7, s_4_69, 66, 1, 0},
-{ 7, s_4_70, 66, 1, 0},
-{ 8, s_4_71, 66, 1, 0},
-{ 5, s_4_72, 64, 1, 0},
-{ 5, s_4_73, 64, 1, 0},
-{ 6, s_4_74, 64, 1, 0},
-{ 3, s_4_75, -1, 2, 0},
-{ 2, s_4_76, -1, 1, 0},
-{ 3, s_4_77, 76, 1, 0},
-{ 3, s_4_78, 76, 1, 0},
-{ 4, s_4_79, -1, 1, 0},
-{ 5, s_4_80, -1, 1, 0},
-{ 2, s_4_81, -1, 1, 0},
-{ 6, s_4_82, -1, 1, 0},
-{ 4, s_4_83, -1, 1, 0},
-{ 5, s_4_84, -1, 2, 0},
-{ 6, s_4_85, 84, 1, 0},
-{ 7, s_4_86, 84, 2, 0},
-{ 6, s_4_87, 84, 1, 0},
-{ 6, s_4_88, 84, 1, 0},
-{ 7, s_4_89, 84, 1, 0},
-{ 4, s_4_90, -1, 1, 0},
-{ 4, s_4_91, -1, 1, 0},
-{ 5, s_4_92, -1, 1, 0},
-{ 5, s_4_93, -1, 1, 0}
+{ 5, s_4_38, -1, 1, 0},
+{ 4, s_4_39, -1, 1, 0},
+{ 7, s_4_40, -1, 1, 0},
+{ 4, s_4_41, -1, 1, 0},
+{ 4, s_4_42, -1, 1, 0},
+{ 3, s_4_43, -1, 3, 0},
+{ 4, s_4_44, -1, 1, 0},
+{ 2, s_4_45, -1, 1, 0},
+{ 2, s_4_46, -1, 1, 0},
+{ 2, s_4_47, -1, 1, 0},
+{ 3, s_4_48, -1, 1, 0},
+{ 3, s_4_49, -1, 3, 0},
+{ 2, s_4_50, -1, 1, 0},
+{ 2, s_4_51, -1, 1, 0},
+{ 4, s_4_52, -1, 1, 0},
+{ 6, s_4_53, -1, 1, 0},
+{ 6, s_4_54, -1, 1, 0},
+{ 5, s_4_55, -1, 1, 0},
+{ 4, s_4_56, -1, 1, 0},
+{ 4, s_4_57, -1, 1, 0},
+{ 5, s_4_58, -1, 1, 0},
+{ 5, s_4_59, -1, 3, 0},
+{ 4, s_4_60, -1, 1, 0},
+{ 4, s_4_61, -1, 1, 0}
 };
 
-static const symbol s_5_0[1] = { 'a' };
-static const symbol s_5_1[1] = { 'e' };
-static const symbol s_5_2[2] = { 'i', 'e' };
-static const symbol s_5_3[1] = { 'i' };
-static const symbol s_5_4[2] = { 0xC4, 0x83 };
+static const symbol s_5_0[2] = { 'e', 'a' };
+static const symbol s_5_1[2] = { 'i', 'a' };
+static const symbol s_5_2[3] = { 'e', 's', 'c' };
+static const symbol s_5_3[4] = { 0xC4, 0x83, 's', 'c' };
+static const symbol s_5_4[3] = { 'i', 'n', 'd' };
+static const symbol s_5_5[4] = { 0xC3, 0xA2, 'n', 'd' };
+static const symbol s_5_6[3] = { 'a', 'r', 'e' };
+static const symbol s_5_7[3] = { 'e', 'r', 'e' };
+static const symbol s_5_8[3] = { 'i', 'r', 'e' };
+static const symbol s_5_9[4] = { 0xC3, 0xA2, 'r', 'e' };
+static const symbol s_5_10[2] = { 's', 'e' };
+static const symbol s_5_11[3] = { 'a', 's', 'e' };
+static const symbol s_5_12[4] = { 's', 'e', 's', 'e' };
+static const symbol s_5_13[3] = { 'i', 's', 'e' };
+static const symbol s_5_14[3] = { 'u', 's', 'e' };
+static const symbol s_5_15[4] = { 0xC3, 0xA2, 's', 'e' };
+static const symbol s_5_16[5] = { 'e', 0xC8, 0x99, 't', 'e' };
+static const symbol s_5_17[6] = { 0xC4, 0x83, 0xC8, 0x99, 't', 'e' };
+static const symbol s_5_18[3] = { 'e', 'z', 'e' };
+static const symbol s_5_19[2] = { 'a', 'i' };
+static const symbol s_5_20[3] = { 'e', 'a', 'i' };
+static const symbol s_5_21[3] = { 'i', 'a', 'i' };
+static const symbol s_5_22[3] = { 's', 'e', 'i' };
+static const symbol s_5_23[5] = { 'e', 0xC8, 0x99, 't', 'i' };
+static const symbol s_5_24[6] = { 0xC4, 0x83, 0xC8, 0x99, 't', 'i' };
+static const symbol s_5_25[2] = { 'u', 'i' };
+static const symbol s_5_26[3] = { 'e', 'z', 'i' };
+static const symbol s_5_27[4] = { 'a', 0xC8, 0x99, 'i' };
+static const symbol s_5_28[5] = { 's', 'e', 0xC8, 0x99, 'i' };
+static const symbol s_5_29[6] = { 'a', 's', 'e', 0xC8, 0x99, 'i' };
+static const symbol s_5_30[7] = { 's', 'e', 's', 'e', 0xC8, 0x99, 'i' };
+static const symbol s_5_31[6] = { 'i', 's', 'e', 0xC8, 0x99, 'i' };
+static const symbol s_5_32[6] = { 'u', 's', 'e', 0xC8, 0x99, 'i' };
+static const symbol s_5_33[7] = { 0xC3, 0xA2, 's', 'e', 0xC8, 0x99, 'i' };
+static const symbol s_5_34[4] = { 'i', 0xC8, 0x99, 'i' };
+static const symbol s_5_35[4] = { 'u', 0xC8, 0x99, 'i' };
+static const symbol s_5_36[5] = { 0xC3, 0xA2, 0xC8, 0x99, 'i' };
+static const symbol s_5_37[4] = { 'a', 0xC8, 0x9B, 'i' };
+static const symbol s_5_38[5] = { 'e', 'a', 0xC8, 0x9B, 'i' };
+static const symbol s_5_39[5] = { 'i', 'a', 0xC8, 0x9B, 'i' };
+static const symbol s_5_40[4] = { 'e', 0xC8, 0x9B, 'i' };
+static const symbol s_5_41[4] = { 'i', 0xC8, 0x9B, 'i' };
+static const symbol s_5_42[7] = { 'a', 'r', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_5_43[8] = { 's', 'e', 'r', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_5_44[9] = { 'a', 's', 'e', 'r', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_5_45[10] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_5_46[9] = { 'i', 's', 'e', 'r', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_5_47[9] = { 'u', 's', 'e', 'r', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_5_48[10] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_5_49[7] = { 'i', 'r', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_5_50[7] = { 'u', 'r', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_5_51[8] = { 0xC3, 0xA2, 'r', 0xC4, 0x83, 0xC8, 0x9B, 'i' };
+static const symbol s_5_52[5] = { 0xC3, 0xA2, 0xC8, 0x9B, 'i' };
+static const symbol s_5_53[3] = { 0xC3, 0xA2, 'i' };
+static const symbol s_5_54[2] = { 'a', 'm' };
+static const symbol s_5_55[3] = { 'e', 'a', 'm' };
+static const symbol s_5_56[3] = { 'i', 'a', 'm' };
+static const symbol s_5_57[2] = { 'e', 'm' };
+static const symbol s_5_58[4] = { 'a', 's', 'e', 'm' };
+static const symbol s_5_59[5] = { 's', 'e', 's', 'e', 'm' };
+static const symbol s_5_60[4] = { 'i', 's', 'e', 'm' };
+static const symbol s_5_61[4] = { 'u', 's', 'e', 'm' };
+static const symbol s_5_62[5] = { 0xC3, 0xA2, 's', 'e', 'm' };
+static const symbol s_5_63[2] = { 'i', 'm' };
+static const symbol s_5_64[3] = { 0xC4, 0x83, 'm' };
+static const symbol s_5_65[5] = { 'a', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_5_66[6] = { 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_5_67[7] = { 'a', 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_5_68[8] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_5_69[7] = { 'i', 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_5_70[7] = { 'u', 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_5_71[8] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_5_72[5] = { 'i', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_5_73[5] = { 'u', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_5_74[6] = { 0xC3, 0xA2, 'r', 0xC4, 0x83, 'm' };
+static const symbol s_5_75[3] = { 0xC3, 0xA2, 'm' };
+static const symbol s_5_76[2] = { 'a', 'u' };
+static const symbol s_5_77[3] = { 'e', 'a', 'u' };
+static const symbol s_5_78[3] = { 'i', 'a', 'u' };
+static const symbol s_5_79[4] = { 'i', 'n', 'd', 'u' };
+static const symbol s_5_80[5] = { 0xC3, 0xA2, 'n', 'd', 'u' };
+static const symbol s_5_81[2] = { 'e', 'z' };
+static const symbol s_5_82[6] = { 'e', 'a', 's', 'c', 0xC4, 0x83 };
+static const symbol s_5_83[4] = { 'a', 'r', 0xC4, 0x83 };
+static const symbol s_5_84[5] = { 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_5_85[6] = { 'a', 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_5_86[7] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_5_87[6] = { 'i', 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_5_88[6] = { 'u', 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_5_89[7] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_5_90[4] = { 'i', 'r', 0xC4, 0x83 };
+static const symbol s_5_91[4] = { 'u', 'r', 0xC4, 0x83 };
+static const symbol s_5_92[5] = { 0xC3, 0xA2, 'r', 0xC4, 0x83 };
+static const symbol s_5_93[5] = { 'e', 'a', 'z', 0xC4, 0x83 };
 
-static const struct among a_5[5] =
+static const struct among a_5[94] =
 {
-{ 1, s_5_0, -1, 1, 0},
-{ 1, s_5_1, -1, 1, 0},
-{ 2, s_5_2, 1, 1, 0},
-{ 1, s_5_3, -1, 1, 0},
-{ 2, s_5_4, -1, 1, 0}
+{ 2, s_5_0, -1, 1, 0},
+{ 2, s_5_1, -1, 1, 0},
+{ 3, s_5_2, -1, 1, 0},
+{ 4, s_5_3, -1, 1, 0},
+{ 3, s_5_4, -1, 1, 0},
+{ 4, s_5_5, -1, 1, 0},
+{ 3, s_5_6, -1, 1, 0},
+{ 3, s_5_7, -1, 1, 0},
+{ 3, s_5_8, -1, 1, 0},
+{ 4, s_5_9, -1, 1, 0},
+{ 2, s_5_10, -1, 2, 0},
+{ 3, s_5_11, 10, 1, 0},
+{ 4, s_5_12, 10, 2, 0},
+{ 3, s_5_13, 10, 1, 0},
+{ 3, s_5_14, 10, 1, 0},
+{ 4, s_5_15, 10, 1, 0},
+{ 5, s_5_16, -1, 1, 0},
+{ 6, s_5_17, -1, 1, 0},
+{ 3, s_5_18, -1, 1, 0},
+{ 2, s_5_19, -1, 1, 0},
+{ 3, s_5_20, 19, 1, 0},
+{ 3, s_5_21, 19, 1, 0},
+{ 3, s_5_22, -1, 2, 0},
+{ 5, s_5_23, -1, 1, 0},
+{ 6, s_5_24, -1, 1, 0},
+{ 2, s_5_25, -1, 1, 0},
+{ 3, s_5_26, -1, 1, 0},
+{ 4, s_5_27, -1, 1, 0},
+{ 5, s_5_28, -1, 2, 0},
+{ 6, s_5_29, 28, 1, 0},
+{ 7, s_5_30, 28, 2, 0},
+{ 6, s_5_31, 28, 1, 0},
+{ 6, s_5_32, 28, 1, 0},
+{ 7, s_5_33, 28, 1, 0},
+{ 4, s_5_34, -1, 1, 0},
+{ 4, s_5_35, -1, 1, 0},
+{ 5, s_5_36, -1, 1, 0},
+{ 4, s_5_37, -1, 2, 0},
+{ 5, s_5_38, 37, 1, 0},
+{ 5, s_5_39, 37, 1, 0},
+{ 4, s_5_40, -1, 2, 0},
+{ 4, s_5_41, -1, 2, 0},
+{ 7, s_5_42, -1, 1, 0},
+{ 8, s_5_43, -1, 2, 0},
+{ 9, s_5_44, 43, 1, 0},
+{ 10, s_5_45, 43, 2, 0},
+{ 9, s_5_46, 43, 1, 0},
+{ 9, s_5_47, 43, 1, 0},
+{ 10, s_5_48, 43, 1, 0},
+{ 7, s_5_49, -1, 1, 0},
+{ 7, s_5_50, -1, 1, 0},
+{ 8, s_5_51, -1, 1, 0},
+{ 5, s_5_52, -1, 2, 0},
+{ 3, s_5_53, -1, 1, 0},
+{ 2, s_5_54, -1, 1, 0},
+{ 3, s_5_55, 54, 1, 0},
+{ 3, s_5_56, 54, 1, 0},
+{ 2, s_5_57, -1, 2, 0},
+{ 4, s_5_58, 57, 1, 0},
+{ 5, s_5_59, 57, 2, 0},
+{ 4, s_5_60, 57, 1, 0},
+{ 4, s_5_61, 57, 1, 0},
+{ 5, s_5_62, 57, 1, 0},
+{ 2, s_5_63, -1, 2, 0},
+{ 3, s_5_64, -1, 2, 0},
+{ 5, s_5_65, 64, 1, 0},
+{ 6, s_5_66, 64, 2, 0},
+{ 7, s_5_67, 66, 1, 0},
+{ 8, s_5_68, 66, 2, 0},
+{ 7, s_5_69, 66, 1, 0},
+{ 7, s_5_70, 66, 1, 0},
+{ 8, s_5_71, 66, 1, 0},
+{ 5, s_5_72, 64, 1, 0},
+{ 5, s_5_73, 64, 1, 0},
+{ 6, s_5_74, 64, 1, 0},
+{ 3, s_5_75, -1, 2, 0},
+{ 2, s_5_76, -1, 1, 0},
+{ 3, s_5_77, 76, 1, 0},
+{ 3, s_5_78, 76, 1, 0},
+{ 4, s_5_79, -1, 1, 0},
+{ 5, s_5_80, -1, 1, 0},
+{ 2, s_5_81, -1, 1, 0},
+{ 6, s_5_82, -1, 1, 0},
+{ 4, s_5_83, -1, 1, 0},
+{ 5, s_5_84, -1, 2, 0},
+{ 6, s_5_85, 84, 1, 0},
+{ 7, s_5_86, 84, 2, 0},
+{ 6, s_5_87, 84, 1, 0},
+{ 6, s_5_88, 84, 1, 0},
+{ 7, s_5_89, 84, 1, 0},
+{ 4, s_5_90, -1, 1, 0},
+{ 4, s_5_91, -1, 1, 0},
+{ 5, s_5_92, -1, 1, 0},
+{ 5, s_5_93, -1, 1, 0}
+};
+
+static const symbol s_6_0[1] = { 'a' };
+static const symbol s_6_1[1] = { 'e' };
+static const symbol s_6_2[2] = { 'i', 'e' };
+static const symbol s_6_3[1] = { 'i' };
+static const symbol s_6_4[2] = { 0xC4, 0x83 };
+
+static const struct among a_6[5] =
+{
+{ 1, s_6_0, -1, 1, 0},
+{ 1, s_6_1, -1, 1, 0},
+{ 2, s_6_2, 1, 1, 0},
+{ 1, s_6_3, -1, 1, 0},
+{ 2, s_6_4, -1, 1, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4 };
 
-static const symbol s_0[] = { 'U' };
-static const symbol s_1[] = { 'I' };
-static const symbol s_2[] = { 'i' };
-static const symbol s_3[] = { 'u' };
-static const symbol s_4[] = { 'a' };
-static const symbol s_5[] = { 'e' };
-static const symbol s_6[] = { 'i' };
-static const symbol s_7[] = { 'a', 'b' };
+static const symbol s_0[] = { 0xC8, 0x99 };
+static const symbol s_1[] = { 0xC8, 0x9B };
+static const symbol s_2[] = { 'U' };
+static const symbol s_3[] = { 'I' };
+static const symbol s_4[] = { 'i' };
+static const symbol s_5[] = { 'u' };
+static const symbol s_6[] = { 'a' };
+static const symbol s_7[] = { 'e' };
 static const symbol s_8[] = { 'i' };
-static const symbol s_9[] = { 'a', 't' };
-static const symbol s_10[] = { 'a', 0xC5, 0xA3, 'i' };
-static const symbol s_11[] = { 'a', 'b', 'i', 'l' };
-static const symbol s_12[] = { 'i', 'b', 'i', 'l' };
-static const symbol s_13[] = { 'i', 'v' };
-static const symbol s_14[] = { 'i', 'c' };
-static const symbol s_15[] = { 'a', 't' };
-static const symbol s_16[] = { 'i', 't' };
-static const symbol s_17[] = { 0xC5, 0xA3 };
-static const symbol s_18[] = { 't' };
-static const symbol s_19[] = { 'i', 's', 't' };
+static const symbol s_9[] = { 'a', 'b' };
+static const symbol s_10[] = { 'i' };
+static const symbol s_11[] = { 'a', 't' };
+static const symbol s_12[] = { 'a', 0xC8, 0x9B, 'i' };
+static const symbol s_13[] = { 'a', 'b', 'i', 'l' };
+static const symbol s_14[] = { 'i', 'b', 'i', 'l' };
+static const symbol s_15[] = { 'i', 'v' };
+static const symbol s_16[] = { 'i', 'c' };
+static const symbol s_17[] = { 'a', 't' };
+static const symbol s_18[] = { 'i', 't' };
+static const symbol s_19[] = { 0xC8, 0x9B };
+static const symbol s_20[] = { 't' };
+static const symbol s_21[] = { 'i', 's', 't' };
+
+static int r_norm(struct SN_env * z) {
+    int among_var;
+    {   int c1 = z->c;
+        while(1) {
+            int c2 = z->c;
+            while(1) {
+                int c3 = z->c;
+                z->bra = z->c;
+                if (z->c + 1 >= z->l || (z->p[z->c + 1] != 159 && z->p[z->c + 1] != 163)) goto lab2;
+                among_var = find_among(z, a_0, 2);
+                if (!among_var) goto lab2;
+                z->ket = z->c;
+                switch (among_var) {
+                    case 1:
+                        {   int ret = slice_from_s(z, 2, s_0);
+                            if (ret < 0) return ret;
+                        }
+                        break;
+                    case 2:
+                        {   int ret = slice_from_s(z, 2, s_1);
+                            if (ret < 0) return ret;
+                        }
+                        break;
+                }
+                z->c = c3;
+                break;
+            lab2:
+                z->c = c3;
+                {   int ret = skip_utf8(z->p, z->c, z->l, 1);
+                    if (ret < 0) goto lab1;
+                    z->c = ret;
+                }
+            }
+            continue;
+        lab1:
+            z->c = c2;
+            break;
+        }
+        z->c = c1;
+    }
+    return 1;
+}
 
 static int r_prelude(struct SN_env * z) {
     while(1) {
@@ -548,7 +603,7 @@ static int r_prelude(struct SN_env * z) {
                 z->c++;
                 z->ket = z->c;
                 if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab3;
-                {   int ret = slice_from_s(z, 1, s_0);
+                {   int ret = slice_from_s(z, 1, s_2);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
@@ -558,7 +613,7 @@ static int r_prelude(struct SN_env * z) {
                 z->c++;
                 z->ket = z->c;
                 if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1;
-                {   int ret = slice_from_s(z, 1, s_1);
+                {   int ret = slice_from_s(z, 1, s_3);
                     if (ret < 0) return ret;
                 }
             }
@@ -589,7 +644,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2;
             {   int c3 = z->c;
                 if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab4;
-                {   
+
+                {
                     int ret = out_grouping_U(z, g_v, 97, 259, 1);
                     if (ret < 0) goto lab4;
                     z->c += ret;
@@ -598,7 +654,8 @@ static int r_mark_regions(struct SN_env * z) {
             lab4:
                 z->c = c3;
                 if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2;
-                {   
+
+                {
                     int ret = in_grouping_U(z, g_v, 97, 259, 1);
                     if (ret < 0) goto lab2;
                     z->c += ret;
@@ -611,7 +668,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab0;
             {   int c4 = z->c;
                 if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab6;
-                {   
+
+                {
                     int ret = out_grouping_U(z, g_v, 97, 259, 1);
                     if (ret < 0) goto lab6;
                     z->c += ret;
@@ -634,23 +692,27 @@ static int r_mark_regions(struct SN_env * z) {
         z->c = c1;
     }
     {   int c5 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 259, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 259, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 259, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 259, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
@@ -668,17 +730,16 @@ static int r_postlude(struct SN_env * z) {
         int c1 = z->c;
         z->bra = z->c;
         if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
-        among_var = find_among(z, a_0, 3);
-        if (!(among_var)) goto lab0;
+        among_var = find_among(z, a_1, 3);
         z->ket = z->c;
         switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_2);
+                {   int ret = slice_from_s(z, 1, s_4);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_3);
+                {   int ret = slice_from_s(z, 1, s_5);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -698,26 +759,23 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_step_0(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    among_var = find_among_b(z, a_1, 16);
-    if (!(among_var)) return 0;
+    among_var = find_among_b(z, a_2, 16);
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -729,38 +787,38 @@ static int r_step_0(struct SN_env * z) {
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_4);
+            {   int ret = slice_from_s(z, 1, s_6);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 1, s_5);
+            {   int ret = slice_from_s(z, 1, s_7);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = slice_from_s(z, 1, s_6);
+            {   int ret = slice_from_s(z, 1, s_8);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
             {   int m1 = z->l - z->c; (void)m1;
-                if (!(eq_s_b(z, 2, s_7))) goto lab0;
+                if (!(eq_s_b(z, 2, s_9))) goto lab0;
                 return 0;
             lab0:
                 z->c = z->l - m1;
             }
-            {   int ret = slice_from_s(z, 1, s_8);
+            {   int ret = slice_from_s(z, 1, s_10);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = slice_from_s(z, 2, s_9);
+            {   int ret = slice_from_s(z, 2, s_11);
                 if (ret < 0) return ret;
             }
             break;
         case 7:
-            {   int ret = slice_from_s(z, 4, s_10);
+            {   int ret = slice_from_s(z, 4, s_12);
                 if (ret < 0) return ret;
             }
             break;
@@ -772,40 +830,40 @@ static int r_combo_suffix(struct SN_env * z) {
     int among_var;
     {   int m_test1 = z->l - z->c;
         z->ket = z->c;
-        among_var = find_among_b(z, a_2, 46);
-        if (!(among_var)) return 0;
+        among_var = find_among_b(z, a_3, 46);
+        if (!among_var) return 0;
         z->bra = z->c;
         {   int ret = r_R1(z);
             if (ret <= 0) return ret;
         }
         switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 4, s_11);
+                {   int ret = slice_from_s(z, 4, s_13);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 4, s_12);
+                {   int ret = slice_from_s(z, 4, s_14);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_from_s(z, 2, s_13);
+                {   int ret = slice_from_s(z, 2, s_15);
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = slice_from_s(z, 2, s_14);
+                {   int ret = slice_from_s(z, 2, s_16);
                     if (ret < 0) return ret;
                 }
                 break;
             case 5:
-                {   int ret = slice_from_s(z, 2, s_15);
+                {   int ret = slice_from_s(z, 2, s_17);
                     if (ret < 0) return ret;
                 }
                 break;
             case 6:
-                {   int ret = slice_from_s(z, 2, s_16);
+                {   int ret = slice_from_s(z, 2, s_18);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -831,8 +889,8 @@ static int r_standard_suffix(struct SN_env * z) {
         break;
     }
     z->ket = z->c;
-    among_var = find_among_b(z, a_3, 62);
-    if (!(among_var)) return 0;
+    among_var = find_among_b(z, a_4, 62);
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R2(z);
         if (ret <= 0) return ret;
@@ -844,14 +902,14 @@ static int r_standard_suffix(struct SN_env * z) {
             }
             break;
         case 2:
-            if (!(eq_s_b(z, 2, s_17))) return 0;
+            if (!(eq_s_b(z, 2, s_19))) return 0;
             z->bra = z->c;
-            {   int ret = slice_from_s(z, 1, s_18);
+            {   int ret = slice_from_s(z, 1, s_20);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 3, s_19);
+            {   int ret = slice_from_s(z, 3, s_21);
                 if (ret < 0) return ret;
             }
             break;
@@ -867,8 +925,8 @@ static int r_verb_suffix(struct SN_env * z) {
         if (z->c < z->I[2]) return 0;
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
-        among_var = find_among_b(z, a_4, 94);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        among_var = find_among_b(z, a_5, 94);
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -898,7 +956,7 @@ static int r_verb_suffix(struct SN_env * z) {
 
 static int r_vowel_suffix(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_5, 5))) return 0;
+    if (!find_among_b(z, a_6, 5)) return 0;
     z->bra = z->c;
     {   int ret = r_RV(z);
         if (ret <= 0) return ret;
@@ -910,13 +968,17 @@ static int r_vowel_suffix(struct SN_env * z) {
 }
 
 extern int romanian_UTF_8_stem(struct SN_env * z) {
+
+    {   int ret = r_norm(z);
+        if (ret < 0) return ret;
+    }
     {   int c1 = z->c;
         {   int ret = r_prelude(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index 1d1b831426e06294e007c3976d6bfa930355df1d..815af215e87a56d5de38d400a305f56df39348bb 100644 (file)
@@ -356,23 +356,27 @@ static int r_mark_regions(struct SN_env * z) {
     z->I[1] = z->l;
     z->I[0] = z->l;
     {   int c1 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 1072, 1103, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 1072, 1103, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 1072, 1103, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 1072, 1103, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
@@ -385,15 +389,14 @@ static int r_mark_regions(struct SN_env * z) {
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_perfective_gerund(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_0, 9);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -420,7 +423,7 @@ static int r_perfective_gerund(struct SN_env * z) {
 
 static int r_adjective(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_1, 26))) return 0;
+    if (!find_among_b(z, a_1, 26)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -436,7 +439,7 @@ static int r_adjectival(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
         among_var = find_among_b(z, a_2, 8);
-        if (!(among_var)) { z->c = z->l - m1; goto lab0; }
+        if (!among_var) { z->c = z->l - m1; goto lab0; }
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -467,7 +470,7 @@ static int r_adjectival(struct SN_env * z) {
 static int r_reflexive(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 140 && z->p[z->c - 1] != 143)) return 0;
-    if (!(find_among_b(z, a_3, 2))) return 0;
+    if (!find_among_b(z, a_3, 2)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -479,7 +482,7 @@ static int r_verb(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_4, 46);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -506,7 +509,7 @@ static int r_verb(struct SN_env * z) {
 
 static int r_noun(struct SN_env * z) {
     z->ket = z->c;
-    if (!(find_among_b(z, a_5, 36))) return 0;
+    if (!find_among_b(z, a_5, 36)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -517,7 +520,7 @@ static int r_noun(struct SN_env * z) {
 static int r_derivational(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 130 && z->p[z->c - 1] != 140)) return 0;
-    if (!(find_among_b(z, a_6, 2))) return 0;
+    if (!find_among_b(z, a_6, 2)) return 0;
     z->bra = z->c;
     {   int ret = r_R2(z);
         if (ret <= 0) return ret;
@@ -532,7 +535,7 @@ static int r_tidy_up(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_7, 4);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -590,7 +593,7 @@ extern int russian_UTF_8_stem(struct SN_env * z) {
         }
         z->c = c1;
     }
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index d2d206e0fa7729f80f7c9e9c642c68e3cc422893..e20301b72ffb61321bed275bf0c6768da84e715a 100644 (file)
@@ -4799,7 +4799,7 @@ static int r_cyr_to_lat(struct SN_env * z) {
                 int c3 = z->c;
                 z->bra = z->c;
                 among_var = find_among(z, a_0, 30);
-                if (!(among_var)) goto lab2;
+                if (!among_var) goto lab2;
                 z->ket = z->c;
                 switch (among_var) {
                     case 1:
@@ -5064,7 +5064,8 @@ static int r_prelude(struct SN_env * z) {
 static int r_mark_regions(struct SN_env * z) {
     z->I[1] = 1;
     {   int c1 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_sa, 263, 382, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
@@ -5075,14 +5076,16 @@ static int r_mark_regions(struct SN_env * z) {
     }
     z->I[0] = z->l;
     {   int c2 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab1;
             z->c += ret;
         }
         z->I[0] = z->c;
-        if (!(z->I[0] < 2)) goto lab1;
-        {   
+        if (z->I[0] >= 2) goto lab1;
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab1;
             z->c += ret;
@@ -5103,18 +5106,19 @@ static int r_mark_regions(struct SN_env * z) {
             }
         }
         {   int c4 = z->c;
-            if (!(z->c >= 2)) goto lab5;
+            if (z->c < 2) goto lab5;
             goto lab4;
         lab5:
             z->c = c4;
-            {   
+
+            {
                 int ret = in_grouping_U(z, g_rg, 114, 114, 1);
                 if (ret < 0) goto lab2;
                 z->c += ret;
             }
         }
     lab4:
-        if (!((z->I[0] - z->c) > 1)) goto lab2;
+        if ((z->I[0] - z->c) <= 1) goto lab2;
         z->I[0] = z->c;
     lab2:
         z->c = c3;
@@ -5123,8 +5127,7 @@ static int r_mark_regions(struct SN_env * z) {
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_Step_1(struct SN_env * z) {
@@ -5132,7 +5135,7 @@ static int r_Step_1(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3435050 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_1, 130);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -5606,7 +5609,7 @@ static int r_Step_2(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_2, 2035);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -6483,7 +6486,7 @@ static int r_Step_2(struct SN_env * z) {
 static int r_Step_3(struct SN_env * z) {
     z->ket = z->c;
     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3188642 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_3, 26))) return 0;
+    if (!find_among_b(z, a_3, 26)) return 0;
     z->bra = z->c;
     {   int ret = r_R1(z);
         if (ret <= 0) return ret;
@@ -6495,15 +6498,15 @@ static int r_Step_3(struct SN_env * z) {
 }
 
 extern int serbian_UTF_8_stem(struct SN_env * z) {
-    
+
     {   int ret = r_cyr_to_lat(z);
         if (ret < 0) return ret;
     }
-    
+
     {   int ret = r_prelude(z);
         if (ret < 0) return ret;
     }
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index 27698e1d826601af7529d90e167e8cb28c8828b7..1b2e27bcc72414e36f8732c1a2301a77260a66a8 100644 (file)
@@ -512,7 +512,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
             {   int c3 = z->c;
                 if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
-                {   
+
+                {
                     int ret = out_grouping_U(z, g_v, 97, 252, 1);
                     if (ret < 0) goto lab4;
                     z->c += ret;
@@ -521,7 +522,8 @@ static int r_mark_regions(struct SN_env * z) {
             lab4:
                 z->c = c3;
                 if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
-                {   
+
+                {
                     int ret = in_grouping_U(z, g_v, 97, 252, 1);
                     if (ret < 0) goto lab2;
                     z->c += ret;
@@ -534,7 +536,8 @@ static int r_mark_regions(struct SN_env * z) {
             if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
             {   int c4 = z->c;
                 if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
-                {   
+
+                {
                     int ret = out_grouping_U(z, g_v, 97, 252, 1);
                     if (ret < 0) goto lab6;
                     z->c += ret;
@@ -557,23 +560,27 @@ static int r_mark_regions(struct SN_env * z) {
         z->c = c1;
     }
     {   int c5 = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
         z->I[1] = z->c;
-        {   
+
+        {
             int ret = out_grouping_U(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {   
+
+        {
             int ret = in_grouping_U(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
@@ -592,7 +599,6 @@ static int r_postlude(struct SN_env * z) {
         z->bra = z->c;
         if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((67641858 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else
         among_var = find_among(z, a_0, 6);
-        if (!(among_var)) goto lab0;
         z->ket = z->c;
         switch (among_var) {
             case 1:
@@ -636,29 +642,26 @@ static int r_postlude(struct SN_env * z) {
 }
 
 static int r_RV(struct SN_env * z) {
-    if (!(z->I[2] <= z->c)) return 0;
-    return 1;
+    return z->I[2] <= z->c;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R2(struct SN_env * z) {
-    if (!(z->I[0] <= z->c)) return 0;
-    return 1;
+    return z->I[0] <= z->c;
 }
 
 static int r_attached_pronoun(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_1, 13))) return 0;
+    if (!find_among_b(z, a_1, 13)) return 0;
     z->bra = z->c;
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
     among_var = find_among_b(z, a_2, 11);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     {   int ret = r_RV(z);
         if (ret <= 0) return ret;
     }
@@ -714,7 +717,7 @@ static int r_standard_suffix(struct SN_env * z) {
     z->ket = z->c;
     if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
     among_var = find_among_b(z, a_6, 46);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -782,7 +785,7 @@ static int r_standard_suffix(struct SN_env * z) {
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; }
                 among_var = find_among_b(z, a_3, 4);
-                if (!(among_var)) { z->c = z->l - m2; goto lab1; }
+                if (!among_var) { z->c = z->l - m2; goto lab1; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m2; goto lab1; }
@@ -819,7 +822,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int m3 = z->l - z->c; (void)m3;
                 z->ket = z->c;
                 if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; }
-                if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
+                if (!find_among_b(z, a_4, 3)) { z->c = z->l - m3; goto lab2; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m3; goto lab2; }
@@ -842,7 +845,7 @@ static int r_standard_suffix(struct SN_env * z) {
             {   int m4 = z->l - z->c; (void)m4;
                 z->ket = z->c;
                 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m4; goto lab3; }
-                if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m4; goto lab3; }
+                if (!find_among_b(z, a_5, 3)) { z->c = z->l - m4; goto lab3; }
                 z->bra = z->c;
                 {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m4; goto lab3; }
@@ -887,7 +890,7 @@ static int r_y_verb_suffix(struct SN_env * z) {
         if (z->c < z->I[2]) return 0;
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
-        if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; }
+        if (!find_among_b(z, a_7, 12)) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -907,7 +910,7 @@ static int r_verb_suffix(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[2];
         z->ket = z->c;
         among_var = find_among_b(z, a_8, 96);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -942,7 +945,7 @@ static int r_residual_suffix(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_9, 8);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -986,7 +989,7 @@ static int r_residual_suffix(struct SN_env * z) {
 }
 
 extern int spanish_UTF_8_stem(struct SN_env * z) {
-    
+
     {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
index 2631862863297ec9c75287cd6fdb02fab8881f67..c082cb0778dc0b978c9721e7ee4f7ac1f046a2c2 100644 (file)
@@ -127,7 +127,7 @@ static const symbol s_2_0[2] = { 'i', 'g' };
 static const symbol s_2_1[3] = { 'l', 'i', 'g' };
 static const symbol s_2_2[3] = { 'e', 'l', 's' };
 static const symbol s_2_3[5] = { 'f', 'u', 'l', 'l', 't' };
-static const symbol s_2_4[5] = { 'l', 0xC3, 0xB6, 's', 't' };
+static const symbol s_2_4[4] = { 0xC3, 0xB6, 's', 't' };
 
 static const struct among a_2[5] =
 {
@@ -135,14 +135,16 @@ static const struct among a_2[5] =
 { 3, s_2_1, 0, 1, 0},
 { 3, s_2_2, -1, 1, 0},
 { 5, s_2_3, -1, 3, 0},
-{ 5, s_2_4, -1, 2, 0}
+{ 4, s_2_4, -1, 2, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
 
 static const unsigned char g_s_ending[] = { 119, 127, 149 };
 
-static const symbol s_0[] = { 'l', 0xC3, 0xB6, 's' };
+static const unsigned char g_ost_ending[] = { 173, 58 };
+
+static const symbol s_0[] = { 0xC3, 0xB6, 's' };
 static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
 
 static int r_mark_regions(struct SN_env * z) {
@@ -155,15 +157,17 @@ static int r_mark_regions(struct SN_env * z) {
         z->I[0] = z->c;
         z->c = c_test1;
     }
+
     if (out_grouping_U(z, g_v, 97, 246, 1) < 0) return 0;
-    {   
+
+    {
         int ret = in_grouping_U(z, g_v, 97, 246, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
     z->I[1] = z->c;
-    
-    if (!(z->I[1] < z->I[0])) goto lab0;
+
+    if (z->I[1] >= z->I[0]) goto lab0;
     z->I[1] = z->I[0];
 lab0:
     return 1;
@@ -178,7 +182,7 @@ static int r_main_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
         among_var = find_among_b(z, a_0, 37);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
         z->lb = mlimit1;
     }
@@ -205,7 +209,7 @@ static int r_consonant_pair(struct SN_env * z) {
         mlimit1 = z->lb; z->lb = z->I[1];
         {   int m2 = z->l - z->c; (void)m2;
             if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
-            if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; }
+            if (!find_among_b(z, a_1, 7)) { z->lb = mlimit1; return 0; }
             z->c = z->l - m2;
             z->ket = z->c;
             {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
@@ -231,27 +235,28 @@ static int r_other_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
         among_var = find_among_b(z, a_2, 5);
-        if (!(among_var)) { z->lb = mlimit1; return 0; }
+        if (!among_var) { z->lb = mlimit1; return 0; }
         z->bra = z->c;
-        switch (among_var) {
-            case 1:
-                {   int ret = slice_del(z);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 2:
-                {   int ret = slice_from_s(z, 4, s_0);
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 3:
-                {   int ret = slice_from_s(z, 4, s_1);
-                    if (ret < 0) return ret;
-                }
-                break;
-        }
         z->lb = mlimit1;
     }
+    switch (among_var) {
+        case 1:
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 2:
+            if (in_grouping_b_U(z, g_ost_ending, 105, 118, 0)) return 0;
+            {   int ret = slice_from_s(z, 3, s_0);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 3:
+            {   int ret = slice_from_s(z, 4, s_1);
+                if (ret < 0) return ret;
+            }
+            break;
+    }
     return 1;
 }
 
index 44cbdbaec749d4a1caa3580433609481908b8601..72e610fdb1ea86fe13c6ddfd841d1cdb299dc59a 100644 (file)
@@ -35,40 +35,42 @@ extern void tamil_UTF_8_close_env(struct SN_env * z);
 #ifdef __cplusplus
 }
 #endif
-static const symbol s_0_0[3] = { 0xE0, 0xAE, 0x95 };
-static const symbol s_0_1[3] = { 0xE0, 0xAE, 0x99 };
-static const symbol s_0_2[3] = { 0xE0, 0xAE, 0x9A };
-static const symbol s_0_3[3] = { 0xE0, 0xAE, 0x9E };
-static const symbol s_0_4[3] = { 0xE0, 0xAE, 0xA4 };
-static const symbol s_0_5[3] = { 0xE0, 0xAE, 0xA8 };
-static const symbol s_0_6[3] = { 0xE0, 0xAE, 0xAA };
-static const symbol s_0_7[3] = { 0xE0, 0xAE, 0xAE };
-static const symbol s_0_8[3] = { 0xE0, 0xAE, 0xAF };
-static const symbol s_0_9[3] = { 0xE0, 0xAE, 0xB5 };
-
-static const struct among a_0[10] =
+static const symbol s_0_0[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x81 };
+static const symbol s_0_1[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x82 };
+static const symbol s_0_2[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8A };
+static const symbol s_0_3[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8B };
+
+static const struct among a_0[4] =
 {
-{ 3, s_0_0, -1, -1, 0},
-{ 3, s_0_1, -1, -1, 0},
-{ 3, s_0_2, -1, -1, 0},
-{ 3, s_0_3, -1, -1, 0},
-{ 3, s_0_4, -1, -1, 0},
-{ 3, s_0_5, -1, -1, 0},
-{ 3, s_0_6, -1, -1, 0},
-{ 3, s_0_7, -1, -1, 0},
-{ 3, s_0_8, -1, -1, 0},
-{ 3, s_0_9, -1, -1, 0}
+{ 6, s_0_0, -1, 3, 0},
+{ 6, s_0_1, -1, 4, 0},
+{ 6, s_0_2, -1, 2, 0},
+{ 6, s_0_3, -1, 1, 0}
 };
 
-static const symbol s_1_0[12] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D };
-static const symbol s_1_1[6] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D };
-static const symbol s_1_2[9] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4 };
-
-static const struct among a_1[3] =
+static const symbol s_1_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_1_1[3] = { 0xE0, 0xAE, 0x99 };
+static const symbol s_1_2[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_1_3[3] = { 0xE0, 0xAE, 0x9E };
+static const symbol s_1_4[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_1_5[3] = { 0xE0, 0xAE, 0xA8 };
+static const symbol s_1_6[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_1_7[3] = { 0xE0, 0xAE, 0xAE };
+static const symbol s_1_8[3] = { 0xE0, 0xAE, 0xAF };
+static const symbol s_1_9[3] = { 0xE0, 0xAE, 0xB5 };
+
+static const struct among a_1[10] =
 {
-{ 12, s_1_0, -1, -1, 0},
-{ 6, s_1_1, -1, -1, 0},
-{ 9, s_1_2, -1, -1, 0}
+{ 3, s_1_0, -1, -1, 0},
+{ 3, s_1_1, -1, -1, 0},
+{ 3, s_1_2, -1, -1, 0},
+{ 3, s_1_3, -1, -1, 0},
+{ 3, s_1_4, -1, -1, 0},
+{ 3, s_1_5, -1, -1, 0},
+{ 3, s_1_6, -1, -1, 0},
+{ 3, s_1_7, -1, -1, 0},
+{ 3, s_1_8, -1, -1, 0},
+{ 3, s_1_9, -1, -1, 0}
 };
 
 static const symbol s_2_0[3] = { 0xE0, 0xAF, 0x80 };
@@ -82,63 +84,82 @@ static const struct among a_2[3] =
 { 3, s_2_2, -1, -1, 0}
 };
 
-static const symbol s_3_0[3] = { 0xE0, 0xAE, 0x95 };
-static const symbol s_3_1[3] = { 0xE0, 0xAE, 0x9A };
-static const symbol s_3_2[3] = { 0xE0, 0xAE, 0x9F };
-static const symbol s_3_3[3] = { 0xE0, 0xAE, 0xA4 };
-static const symbol s_3_4[3] = { 0xE0, 0xAE, 0xAA };
-static const symbol s_3_5[3] = { 0xE0, 0xAE, 0xB1 };
+static const symbol s_3_0[3] = { 0xE0, 0xAF, 0x80 };
+static const symbol s_3_1[3] = { 0xE0, 0xAF, 0x81 };
+static const symbol s_3_2[3] = { 0xE0, 0xAF, 0x82 };
+static const symbol s_3_3[3] = { 0xE0, 0xAF, 0x86 };
+static const symbol s_3_4[3] = { 0xE0, 0xAF, 0x87 };
+static const symbol s_3_5[3] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_3_6[3] = { 0xE0, 0xAE, 0xBE };
+static const symbol s_3_7[3] = { 0xE0, 0xAE, 0xBF };
 
-static const struct among a_3[6] =
+static const struct among a_3[8] =
 {
 { 3, s_3_0, -1, -1, 0},
 { 3, s_3_1, -1, -1, 0},
 { 3, s_3_2, -1, -1, 0},
 { 3, s_3_3, -1, -1, 0},
 { 3, s_3_4, -1, -1, 0},
-{ 3, s_3_5, -1, -1, 0}
+{ 3, s_3_5, -1, -1, 0},
+{ 3, s_3_6, -1, -1, 0},
+{ 3, s_3_7, -1, -1, 0}
 };
 
-static const symbol s_4_0[3] = { 0xE0, 0xAE, 0x95 };
-static const symbol s_4_1[3] = { 0xE0, 0xAE, 0x9A };
-static const symbol s_4_2[3] = { 0xE0, 0xAE, 0x9F };
-static const symbol s_4_3[3] = { 0xE0, 0xAE, 0xA4 };
-static const symbol s_4_4[3] = { 0xE0, 0xAE, 0xAA };
-static const symbol s_4_5[3] = { 0xE0, 0xAE, 0xB1 };
+static const symbol s_4_1[3] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_4_2[3] = { 0xE0, 0xAF, 0x8D };
 
-static const struct among a_4[6] =
+static const struct among a_4[3] =
 {
-{ 3, s_4_0, -1, -1, 0},
-{ 3, s_4_1, -1, -1, 0},
-{ 3, s_4_2, -1, -1, 0},
-{ 3, s_4_3, -1, -1, 0},
-{ 3, s_4_4, -1, -1, 0},
-{ 3, s_4_5, -1, -1, 0}
+{ 0, 0, -1, 2, 0},
+{ 3, s_4_1, 0, 1, 0},
+{ 3, s_4_2, 0, 1, 0}
 };
 
-static const symbol s_5_0[3] = { 0xE0, 0xAE, 0x95 };
-static const symbol s_5_1[3] = { 0xE0, 0xAE, 0x9A };
-static const symbol s_5_2[3] = { 0xE0, 0xAE, 0x9F };
-static const symbol s_5_3[3] = { 0xE0, 0xAE, 0xA4 };
-static const symbol s_5_4[3] = { 0xE0, 0xAE, 0xAA };
-static const symbol s_5_5[3] = { 0xE0, 0xAE, 0xB1 };
-
-static const struct among a_5[6] =
+static const symbol s_5_0[6] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81 };
+static const symbol s_5_1[9] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_2[15] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_3[12] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_4[12] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_5[6] = { 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_6[12] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_7[12] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_8[12] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_9[6] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_10[12] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xAA, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_11[6] = { 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_12[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_13[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8D };
+static const symbol s_5_14[9] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4 };
+static const symbol s_5_15[3] = { 0xE0, 0xAE, 0xAF };
+static const symbol s_5_16[3] = { 0xE0, 0xAE, 0xB5 };
+
+static const struct among a_5[17] =
 {
-{ 3, s_5_0, -1, -1, 0},
-{ 3, s_5_1, -1, -1, 0},
-{ 3, s_5_2, -1, -1, 0},
-{ 3, s_5_3, -1, -1, 0},
-{ 3, s_5_4, -1, -1, 0},
-{ 3, s_5_5, -1, -1, 0}
+{ 6, s_5_0, -1, 8, 0},
+{ 9, s_5_1, -1, 7, 0},
+{ 15, s_5_2, -1, 7, 0},
+{ 12, s_5_3, -1, 3, 0},
+{ 12, s_5_4, -1, 4, 0},
+{ 6, s_5_5, -1, 9, 0},
+{ 12, s_5_6, -1, 5, 0},
+{ 12, s_5_7, -1, 6, 0},
+{ 12, s_5_8, -1, 1, 0},
+{ 6, s_5_9, -1, 1, 0},
+{ 12, s_5_10, -1, 3, 0},
+{ 6, s_5_11, -1, 2, 0},
+{ 12, s_5_12, -1, 4, 0},
+{ 6, s_5_13, -1, 1, 0},
+{ 9, s_5_14, -1, 1, 0},
+{ 3, s_5_15, -1, 1, 0},
+{ 3, s_5_16, -1, 1, 0}
 };
 
-static const symbol s_6_0[3] = { 0xE0, 0xAE, 0xAF };
-static const symbol s_6_1[3] = { 0xE0, 0xAE, 0xB0 };
-static const symbol s_6_2[3] = { 0xE0, 0xAE, 0xB2 };
-static const symbol s_6_3[3] = { 0xE0, 0xAE, 0xB3 };
-static const symbol s_6_4[3] = { 0xE0, 0xAE, 0xB4 };
-static const symbol s_6_5[3] = { 0xE0, 0xAE, 0xB5 };
+static const symbol s_6_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_6_1[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_6_2[3] = { 0xE0, 0xAE, 0x9F };
+static const symbol s_6_3[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_6_4[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_6_5[3] = { 0xE0, 0xAE, 0xB1 };
 
 static const struct among a_6[6] =
 {
@@ -150,12 +171,12 @@ static const struct among a_6[6] =
 { 3, s_6_5, -1, -1, 0}
 };
 
-static const symbol s_7_0[3] = { 0xE0, 0xAE, 0x99 };
-static const symbol s_7_1[3] = { 0xE0, 0xAE, 0x9E };
-static const symbol s_7_2[3] = { 0xE0, 0xAE, 0xA3 };
-static const symbol s_7_3[3] = { 0xE0, 0xAE, 0xA8 };
-static const symbol s_7_4[3] = { 0xE0, 0xAE, 0xA9 };
-static const symbol s_7_5[3] = { 0xE0, 0xAE, 0xAE };
+static const symbol s_7_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_7_1[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_7_2[3] = { 0xE0, 0xAE, 0x9F };
+static const symbol s_7_3[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_7_4[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_7_5[3] = { 0xE0, 0xAE, 0xB1 };
 
 static const struct among a_7[6] =
 {
@@ -167,15 +188,31 @@ static const struct among a_7[6] =
 { 3, s_7_5, -1, -1, 0}
 };
 
-static const symbol s_8_0[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8D };
-static const symbol s_8_1[3] = { 0xE0, 0xAE, 0xAF };
-static const symbol s_8_2[3] = { 0xE0, 0xAE, 0xB5 };
-
-static const struct among a_8[3] =
+static const symbol s_8_0[3] = { 0xE0, 0xAE, 0x9E };
+static const symbol s_8_1[3] = { 0xE0, 0xAE, 0xA3 };
+static const symbol s_8_2[3] = { 0xE0, 0xAE, 0xA8 };
+static const symbol s_8_3[3] = { 0xE0, 0xAE, 0xA9 };
+static const symbol s_8_4[3] = { 0xE0, 0xAE, 0xAE };
+static const symbol s_8_5[3] = { 0xE0, 0xAE, 0xAF };
+static const symbol s_8_6[3] = { 0xE0, 0xAE, 0xB0 };
+static const symbol s_8_7[3] = { 0xE0, 0xAE, 0xB2 };
+static const symbol s_8_8[3] = { 0xE0, 0xAE, 0xB3 };
+static const symbol s_8_9[3] = { 0xE0, 0xAE, 0xB4 };
+static const symbol s_8_10[3] = { 0xE0, 0xAE, 0xB5 };
+
+static const struct among a_8[11] =
 {
-{ 6, s_8_0, -1, -1, 0},
+{ 3, s_8_0, -1, -1, 0},
 { 3, s_8_1, -1, -1, 0},
-{ 3, s_8_2, -1, -1, 0}
+{ 3, s_8_2, -1, -1, 0},
+{ 3, s_8_3, -1, -1, 0},
+{ 3, s_8_4, -1, -1, 0},
+{ 3, s_8_5, -1, -1, 0},
+{ 3, s_8_6, -1, -1, 0},
+{ 3, s_8_7, -1, -1, 0},
+{ 3, s_8_8, -1, -1, 0},
+{ 3, s_8_9, -1, -1, 0},
+{ 3, s_8_10, -1, -1, 0}
 };
 
 static const symbol s_9_0[3] = { 0xE0, 0xAF, 0x80 };
@@ -184,10 +221,11 @@ static const symbol s_9_2[3] = { 0xE0, 0xAF, 0x82 };
 static const symbol s_9_3[3] = { 0xE0, 0xAF, 0x86 };
 static const symbol s_9_4[3] = { 0xE0, 0xAF, 0x87 };
 static const symbol s_9_5[3] = { 0xE0, 0xAF, 0x88 };
-static const symbol s_9_6[3] = { 0xE0, 0xAE, 0xBE };
-static const symbol s_9_7[3] = { 0xE0, 0xAE, 0xBF };
+static const symbol s_9_6[3] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_9_7[3] = { 0xE0, 0xAE, 0xBE };
+static const symbol s_9_8[3] = { 0xE0, 0xAE, 0xBF };
 
-static const struct among a_9[8] =
+static const struct among a_9[9] =
 {
 { 3, s_9_0, -1, -1, 0},
 { 3, s_9_1, -1, -1, 0},
@@ -196,81 +234,74 @@ static const struct among a_9[8] =
 { 3, s_9_4, -1, -1, 0},
 { 3, s_9_5, -1, -1, 0},
 { 3, s_9_6, -1, -1, 0},
-{ 3, s_9_7, -1, -1, 0}
+{ 3, s_9_7, -1, -1, 0},
+{ 3, s_9_8, -1, -1, 0}
 };
 
-static const symbol s_10_0[3] = { 0xE0, 0xAF, 0x80 };
-static const symbol s_10_1[3] = { 0xE0, 0xAF, 0x81 };
-static const symbol s_10_2[3] = { 0xE0, 0xAF, 0x82 };
-static const symbol s_10_3[3] = { 0xE0, 0xAF, 0x86 };
-static const symbol s_10_4[3] = { 0xE0, 0xAF, 0x87 };
-static const symbol s_10_5[3] = { 0xE0, 0xAF, 0x88 };
-static const symbol s_10_6[3] = { 0xE0, 0xAE, 0xBE };
-static const symbol s_10_7[3] = { 0xE0, 0xAE, 0xBF };
+static const symbol s_10_0[3] = { 0xE0, 0xAE, 0x85 };
+static const symbol s_10_1[3] = { 0xE0, 0xAE, 0x87 };
+static const symbol s_10_2[3] = { 0xE0, 0xAE, 0x89 };
 
-static const struct among a_10[8] =
+static const struct among a_10[3] =
 {
 { 3, s_10_0, -1, -1, 0},
 { 3, s_10_1, -1, -1, 0},
-{ 3, s_10_2, -1, -1, 0},
-{ 3, s_10_3, -1, -1, 0},
-{ 3, s_10_4, -1, -1, 0},
-{ 3, s_10_5, -1, -1, 0},
-{ 3, s_10_6, -1, -1, 0},
-{ 3, s_10_7, -1, -1, 0}
+{ 3, s_10_2, -1, -1, 0}
 };
 
-static const symbol s_11_0[3] = { 0xE0, 0xAE, 0x85 };
-static const symbol s_11_1[3] = { 0xE0, 0xAE, 0x87 };
-static const symbol s_11_2[3] = { 0xE0, 0xAE, 0x89 };
-
-static const struct among a_11[3] =
+static const symbol s_11_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_11_1[3] = { 0xE0, 0xAE, 0x99 };
+static const symbol s_11_2[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_11_3[3] = { 0xE0, 0xAE, 0x9E };
+static const symbol s_11_4[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_11_5[3] = { 0xE0, 0xAE, 0xA8 };
+static const symbol s_11_6[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_11_7[3] = { 0xE0, 0xAE, 0xAE };
+static const symbol s_11_8[3] = { 0xE0, 0xAE, 0xAF };
+static const symbol s_11_9[3] = { 0xE0, 0xAE, 0xB5 };
+
+static const struct among a_11[10] =
 {
 { 3, s_11_0, -1, -1, 0},
 { 3, s_11_1, -1, -1, 0},
-{ 3, s_11_2, -1, -1, 0}
+{ 3, s_11_2, -1, -1, 0},
+{ 3, s_11_3, -1, -1, 0},
+{ 3, s_11_4, -1, -1, 0},
+{ 3, s_11_5, -1, -1, 0},
+{ 3, s_11_6, -1, -1, 0},
+{ 3, s_11_7, -1, -1, 0},
+{ 3, s_11_8, -1, -1, 0},
+{ 3, s_11_9, -1, -1, 0}
 };
 
 static const symbol s_12_0[3] = { 0xE0, 0xAE, 0x95 };
-static const symbol s_12_1[3] = { 0xE0, 0xAE, 0x99 };
-static const symbol s_12_2[3] = { 0xE0, 0xAE, 0x9A };
-static const symbol s_12_3[3] = { 0xE0, 0xAE, 0x9E };
-static const symbol s_12_4[3] = { 0xE0, 0xAE, 0xA4 };
-static const symbol s_12_5[3] = { 0xE0, 0xAE, 0xA8 };
-static const symbol s_12_6[3] = { 0xE0, 0xAE, 0xAA };
-static const symbol s_12_7[3] = { 0xE0, 0xAE, 0xAE };
-static const symbol s_12_8[3] = { 0xE0, 0xAE, 0xAF };
-static const symbol s_12_9[3] = { 0xE0, 0xAE, 0xB5 };
-
-static const struct among a_12[10] =
+static const symbol s_12_1[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_12_2[3] = { 0xE0, 0xAE, 0x9F };
+static const symbol s_12_3[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_12_4[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_12_5[3] = { 0xE0, 0xAE, 0xB1 };
+
+static const struct among a_12[6] =
 {
 { 3, s_12_0, -1, -1, 0},
 { 3, s_12_1, -1, -1, 0},
 { 3, s_12_2, -1, -1, 0},
 { 3, s_12_3, -1, -1, 0},
 { 3, s_12_4, -1, -1, 0},
-{ 3, s_12_5, -1, -1, 0},
-{ 3, s_12_6, -1, -1, 0},
-{ 3, s_12_7, -1, -1, 0},
-{ 3, s_12_8, -1, -1, 0},
-{ 3, s_12_9, -1, -1, 0}
+{ 3, s_12_5, -1, -1, 0}
 };
 
-static const symbol s_13_0[3] = { 0xE0, 0xAE, 0x95 };
-static const symbol s_13_1[3] = { 0xE0, 0xAE, 0x9A };
-static const symbol s_13_2[3] = { 0xE0, 0xAE, 0x9F };
-static const symbol s_13_3[3] = { 0xE0, 0xAE, 0xA4 };
-static const symbol s_13_4[3] = { 0xE0, 0xAE, 0xAA };
-static const symbol s_13_5[3] = { 0xE0, 0xAE, 0xB1 };
+static const symbol s_13_0[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_13_1[18] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_13_2[15] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_13_3[15] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
 
-static const struct among a_13[6] =
+static const struct among a_13[4] =
 {
-{ 3, s_13_0, -1, -1, 0},
-{ 3, s_13_1, -1, -1, 0},
-{ 3, s_13_2, -1, -1, 0},
-{ 3, s_13_3, -1, -1, 0},
-{ 3, s_13_4, -1, -1, 0},
-{ 3, s_13_5, -1, -1, 0}
+{ 9, s_13_0, -1, 4, 0},
+{ 18, s_13_1, 0, 1, 0},
+{ 15, s_13_2, 0, 3, 0},
+{ 15, s_13_3, 0, 2, 0}
 };
 
 static const symbol s_14_0[3] = { 0xE0, 0xAF, 0x87 };
@@ -319,115 +350,181 @@ static const symbol s_17_1[18] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xA
 static const symbol s_17_2[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
 static const symbol s_17_3[12] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
 static const symbol s_17_4[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
-static const symbol s_17_5[21] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_17_6[12] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F };
-static const symbol s_17_7[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA3 };
-static const symbol s_17_8[9] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 };
-static const symbol s_17_9[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 };
-static const symbol s_17_10[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB0, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF };
-static const symbol s_17_11[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF };
-static const symbol s_17_12[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF };
-
-static const struct among a_17[13] =
+static const symbol s_17_5[15] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
+static const symbol s_17_6[9] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 };
+static const symbol s_17_7[15] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x88 };
+static const symbol s_17_8[12] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_17_9[15] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_17_10[12] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_17_11[21] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_17_12[12] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F };
+static const symbol s_17_13[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA3 };
+static const symbol s_17_14[6] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9 };
+static const symbol s_17_15[9] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 };
+static const symbol s_17_16[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 };
+static const symbol s_17_17[12] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88, 0xE0, 0xAE, 0xAF };
+static const symbol s_17_18[12] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF };
+static const symbol s_17_19[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB0, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF };
+static const symbol s_17_20[9] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2 };
+static const symbol s_17_21[12] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB3 };
+static const symbol s_17_22[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF };
+static const symbol s_17_23[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF };
+static const symbol s_17_24[15] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF };
+static const symbol s_17_25[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF };
+
+static const struct among a_17[26] =
 {
-{ 15, s_17_0, -1, -1, 0},
-{ 18, s_17_1, -1, -1, 0},
-{ 9, s_17_2, -1, -1, 0},
-{ 12, s_17_3, -1, -1, 0},
-{ 18, s_17_4, -1, -1, 0},
-{ 21, s_17_5, -1, -1, 0},
-{ 12, s_17_6, -1, -1, 0},
-{ 15, s_17_7, -1, -1, 0},
-{ 9, s_17_8, -1, -1, 0},
-{ 18, s_17_9, 8, -1, 0},
-{ 15, s_17_10, -1, -1, 0},
-{ 9, s_17_11, -1, -1, 0},
-{ 15, s_17_12, -1, -1, 0}
+{ 15, s_17_0, -1, 3, 0},
+{ 18, s_17_1, -1, 3, 0},
+{ 9, s_17_2, -1, 3, 0},
+{ 12, s_17_3, -1, 3, 0},
+{ 18, s_17_4, -1, 3, 0},
+{ 15, s_17_5, -1, 1, 0},
+{ 9, s_17_6, -1, 1, 0},
+{ 15, s_17_7, -1, 1, 0},
+{ 12, s_17_8, -1, 1, 0},
+{ 15, s_17_9, -1, 1, 0},
+{ 12, s_17_10, -1, 1, 0},
+{ 21, s_17_11, -1, 3, 0},
+{ 12, s_17_12, -1, 3, 0},
+{ 15, s_17_13, -1, 3, 0},
+{ 6, s_17_14, -1, 1, 0},
+{ 9, s_17_15, -1, 3, 0},
+{ 18, s_17_16, 15, 3, 0},
+{ 12, s_17_17, -1, 1, 0},
+{ 12, s_17_18, -1, 1, 0},
+{ 15, s_17_19, -1, 3, 0},
+{ 9, s_17_20, -1, 2, 0},
+{ 12, s_17_21, -1, 1, 0},
+{ 9, s_17_22, -1, 1, 0},
+{ 9, s_17_23, -1, 3, 0},
+{ 15, s_17_24, -1, 1, 0},
+{ 15, s_17_25, -1, 3, 0}
 };
 
-static const symbol s_18_0[3] = { 0xE0, 0xAE, 0x95 };
-static const symbol s_18_1[3] = { 0xE0, 0xAE, 0x9A };
-static const symbol s_18_2[3] = { 0xE0, 0xAE, 0x9F };
-static const symbol s_18_3[3] = { 0xE0, 0xAE, 0xA4 };
-static const symbol s_18_4[3] = { 0xE0, 0xAE, 0xAA };
-static const symbol s_18_5[3] = { 0xE0, 0xAE, 0xB1 };
+static const symbol s_18_0[3] = { 0xE0, 0xAF, 0x80 };
+static const symbol s_18_1[3] = { 0xE0, 0xAF, 0x81 };
+static const symbol s_18_2[3] = { 0xE0, 0xAF, 0x82 };
+static const symbol s_18_3[3] = { 0xE0, 0xAF, 0x86 };
+static const symbol s_18_4[3] = { 0xE0, 0xAF, 0x87 };
+static const symbol s_18_5[3] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_18_6[3] = { 0xE0, 0xAE, 0xBE };
+static const symbol s_18_7[3] = { 0xE0, 0xAE, 0xBF };
 
-static const struct among a_18[6] =
+static const struct among a_18[8] =
 {
 { 3, s_18_0, -1, -1, 0},
 { 3, s_18_1, -1, -1, 0},
 { 3, s_18_2, -1, -1, 0},
 { 3, s_18_3, -1, -1, 0},
 { 3, s_18_4, -1, -1, 0},
-{ 3, s_18_5, -1, -1, 0}
+{ 3, s_18_5, -1, -1, 0},
+{ 3, s_18_6, -1, -1, 0},
+{ 3, s_18_7, -1, -1, 0}
 };
 
-static const symbol s_19_0[3] = { 0xE0, 0xAE, 0x95 };
-static const symbol s_19_1[3] = { 0xE0, 0xAE, 0x9A };
-static const symbol s_19_2[3] = { 0xE0, 0xAE, 0x9F };
-static const symbol s_19_3[3] = { 0xE0, 0xAE, 0xA4 };
-static const symbol s_19_4[3] = { 0xE0, 0xAE, 0xAA };
-static const symbol s_19_5[3] = { 0xE0, 0xAE, 0xB1 };
+static const symbol s_19_0[3] = { 0xE0, 0xAF, 0x80 };
+static const symbol s_19_1[3] = { 0xE0, 0xAF, 0x81 };
+static const symbol s_19_2[3] = { 0xE0, 0xAF, 0x82 };
+static const symbol s_19_3[3] = { 0xE0, 0xAF, 0x86 };
+static const symbol s_19_4[3] = { 0xE0, 0xAF, 0x87 };
+static const symbol s_19_5[3] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_19_6[3] = { 0xE0, 0xAE, 0xBE };
+static const symbol s_19_7[3] = { 0xE0, 0xAE, 0xBF };
 
-static const struct among a_19[6] =
+static const struct among a_19[8] =
 {
 { 3, s_19_0, -1, -1, 0},
 { 3, s_19_1, -1, -1, 0},
 { 3, s_19_2, -1, -1, 0},
 { 3, s_19_3, -1, -1, 0},
 { 3, s_19_4, -1, -1, 0},
-{ 3, s_19_5, -1, -1, 0}
+{ 3, s_19_5, -1, -1, 0},
+{ 3, s_19_6, -1, -1, 0},
+{ 3, s_19_7, -1, -1, 0}
 };
 
 static const symbol s_20_0[3] = { 0xE0, 0xAF, 0x80 };
-static const symbol s_20_1[3] = { 0xE0, 0xAF, 0x81 };
-static const symbol s_20_2[3] = { 0xE0, 0xAF, 0x82 };
-static const symbol s_20_3[3] = { 0xE0, 0xAF, 0x86 };
-static const symbol s_20_4[3] = { 0xE0, 0xAF, 0x87 };
-static const symbol s_20_5[3] = { 0xE0, 0xAF, 0x88 };
-static const symbol s_20_6[3] = { 0xE0, 0xAE, 0xBE };
-static const symbol s_20_7[3] = { 0xE0, 0xAE, 0xBF };
-
-static const struct among a_20[8] =
+static const symbol s_20_1[9] = { 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
+static const symbol s_20_2[9] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
+static const symbol s_20_3[6] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
+static const symbol s_20_4[21] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
+static const symbol s_20_5[15] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
+static const symbol s_20_6[9] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 };
+static const symbol s_20_7[6] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
+static const symbol s_20_8[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_9[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_10[9] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_11[12] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_12[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_13[9] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_14[6] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_15[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_16[12] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_17[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_18[9] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_19[9] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_20[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB4, 0xE0, 0xAF, 0x8D };
+static const symbol s_20_21[9] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F };
+
+static const struct among a_20[22] =
 {
-{ 3, s_20_0, -1, -1, 0},
-{ 3, s_20_1, -1, -1, 0},
-{ 3, s_20_2, -1, -1, 0},
-{ 3, s_20_3, -1, -1, 0},
-{ 3, s_20_4, -1, -1, 0},
-{ 3, s_20_5, -1, -1, 0},
-{ 3, s_20_6, -1, -1, 0},
-{ 3, s_20_7, -1, -1, 0}
+{ 3, s_20_0, -1, 7, 0},
+{ 9, s_20_1, -1, 2, 0},
+{ 9, s_20_2, -1, 2, 0},
+{ 6, s_20_3, -1, 6, 0},
+{ 21, s_20_4, 3, 2, 0},
+{ 15, s_20_5, -1, 2, 0},
+{ 9, s_20_6, -1, 2, 0},
+{ 6, s_20_7, -1, 1, 0},
+{ 9, s_20_8, -1, 1, 0},
+{ 12, s_20_9, -1, 1, 0},
+{ 9, s_20_10, -1, 3, 0},
+{ 12, s_20_11, -1, 4, 0},
+{ 12, s_20_12, -1, 1, 0},
+{ 9, s_20_13, -1, 2, 0},
+{ 6, s_20_14, -1, 5, 0},
+{ 12, s_20_15, 14, 1, 0},
+{ 12, s_20_16, 14, 2, 0},
+{ 9, s_20_17, 14, 2, 0},
+{ 9, s_20_18, 14, 2, 0},
+{ 9, s_20_19, -1, 2, 0},
+{ 12, s_20_20, -1, 1, 0},
+{ 9, s_20_21, -1, 2, 0}
 };
 
-static const symbol s_21_0[3] = { 0xE0, 0xAF, 0x80 };
-static const symbol s_21_1[3] = { 0xE0, 0xAF, 0x81 };
-static const symbol s_21_2[3] = { 0xE0, 0xAF, 0x82 };
-static const symbol s_21_3[3] = { 0xE0, 0xAF, 0x86 };
-static const symbol s_21_4[3] = { 0xE0, 0xAF, 0x87 };
-static const symbol s_21_5[3] = { 0xE0, 0xAF, 0x88 };
-static const symbol s_21_6[3] = { 0xE0, 0xAE, 0xBE };
-static const symbol s_21_7[3] = { 0xE0, 0xAE, 0xBF };
+static const symbol s_21_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_21_1[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_21_2[3] = { 0xE0, 0xAE, 0x9F };
+static const symbol s_21_3[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_21_4[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_21_5[3] = { 0xE0, 0xAE, 0xB1 };
 
-static const struct among a_21[8] =
+static const struct among a_21[6] =
 {
 { 3, s_21_0, -1, -1, 0},
 { 3, s_21_1, -1, -1, 0},
 { 3, s_21_2, -1, -1, 0},
 { 3, s_21_3, -1, -1, 0},
 { 3, s_21_4, -1, -1, 0},
-{ 3, s_21_5, -1, -1, 0},
-{ 3, s_21_6, -1, -1, 0},
-{ 3, s_21_7, -1, -1, 0}
+{ 3, s_21_5, -1, -1, 0}
 };
 
-static const symbol s_22_0[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
-static const symbol s_22_1[24] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_22_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_22_1[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_22_2[3] = { 0xE0, 0xAE, 0x9F };
+static const symbol s_22_3[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_22_4[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_22_5[3] = { 0xE0, 0xAE, 0xB1 };
 
-static const struct among a_22[2] =
+static const struct among a_22[6] =
 {
-{ 9, s_22_0, -1, -1, 0},
-{ 24, s_22_1, -1, -1, 0}
+{ 3, s_22_0, -1, -1, 0},
+{ 3, s_22_1, -1, -1, 0},
+{ 3, s_22_2, -1, -1, 0},
+{ 3, s_22_3, -1, -1, 0},
+{ 3, s_22_4, -1, -1, 0},
+{ 3, s_22_5, -1, -1, 0}
 };
 
 static const symbol s_23_0[3] = { 0xE0, 0xAE, 0x85 };
@@ -480,254 +577,195 @@ static const struct among a_24[8] =
 { 3, s_24_7, -1, -1, 0}
 };
 
-static const symbol s_25_0[18] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
-static const symbol s_25_1[21] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
-static const symbol s_25_2[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
-static const symbol s_25_3[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 };
-static const symbol s_25_4[18] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 };
-static const symbol s_25_5[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1 };
+static const symbol s_25_0[6] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81 };
+static const symbol s_25_1[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
+static const symbol s_25_2[6] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
+static const symbol s_25_3[15] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
+static const symbol s_25_4[6] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
+static const symbol s_25_5[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x88 };
+static const symbol s_25_6[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_7[9] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_8[9] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_9[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_10[9] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_11[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_12[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_13[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_14[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_15[12] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_16[12] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_17[12] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_18[9] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_19[9] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_20[9] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_21[9] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_22[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_23[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_24[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_25[9] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_26[9] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_27[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_28[12] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xAF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_29[9] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_30[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_31[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_32[12] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_33[24] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_34[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_35[9] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_36[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_37[9] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_38[9] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_39[12] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_40[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_25_41[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_25_42[3] = { 0xE0, 0xAE, 0xA9 };
+static const symbol s_25_43[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_25_44[3] = { 0xE0, 0xAE, 0xAF };
+static const symbol s_25_45[3] = { 0xE0, 0xAE, 0xBE };
+
+static const struct among a_25[46] =
+{
+{ 6, s_25_0, -1, 6, 0},
+{ 9, s_25_1, -1, 1, 0},
+{ 6, s_25_2, -1, 3, 0},
+{ 15, s_25_3, -1, 1, 0},
+{ 6, s_25_4, -1, 1, 0},
+{ 6, s_25_5, -1, 1, 0},
+{ 12, s_25_6, -1, 1, 0},
+{ 9, s_25_7, -1, 5, 0},
+{ 9, s_25_8, -1, 1, 0},
+{ 9, s_25_9, -1, 1, 0},
+{ 9, s_25_10, -1, 2, 0},
+{ 9, s_25_11, -1, 4, 0},
+{ 12, s_25_12, 11, 1, 0},
+{ 12, s_25_13, -1, 1, 0},
+{ 12, s_25_14, -1, 1, 0},
+{ 12, s_25_15, -1, 5, 0},
+{ 12, s_25_16, -1, 1, 0},
+{ 12, s_25_17, -1, 1, 0},
+{ 9, s_25_18, -1, 5, 0},
+{ 9, s_25_19, -1, 5, 0},
+{ 9, s_25_20, -1, 5, 0},
+{ 9, s_25_21, -1, 1, 0},
+{ 9, s_25_22, -1, 1, 0},
+{ 9, s_25_23, -1, 5, 0},
+{ 9, s_25_24, -1, 5, 0},
+{ 9, s_25_25, -1, 5, 0},
+{ 9, s_25_26, -1, 1, 0},
+{ 9, s_25_27, -1, 1, 0},
+{ 12, s_25_28, -1, 5, 0},
+{ 9, s_25_29, -1, 1, 0},
+{ 9, s_25_30, -1, 5, 0},
+{ 12, s_25_31, 30, 1, 0},
+{ 12, s_25_32, 30, 1, 0},
+{ 24, s_25_33, -1, 1, 0},
+{ 12, s_25_34, -1, 5, 0},
+{ 9, s_25_35, -1, 1, 0},
+{ 9, s_25_36, -1, 1, 0},
+{ 9, s_25_37, -1, 1, 0},
+{ 9, s_25_38, -1, 5, 0},
+{ 12, s_25_39, 38, 1, 0},
+{ 3, s_25_40, -1, 1, 0},
+{ 3, s_25_41, -1, 1, 0},
+{ 3, s_25_42, -1, 1, 0},
+{ 3, s_25_43, -1, 1, 0},
+{ 3, s_25_44, -1, 1, 0},
+{ 3, s_25_45, -1, 5, 0}
+};
+
+static const symbol s_26_0[18] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_26_1[21] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_26_2[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_26_3[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 };
+static const symbol s_26_4[18] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 };
+static const symbol s_26_5[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1 };
 
-static const struct among a_25[6] =
+static const struct among a_26[6] =
 {
-{ 18, s_25_0, -1, -1, 0},
-{ 21, s_25_1, -1, -1, 0},
-{ 12, s_25_2, -1, -1, 0},
-{ 15, s_25_3, -1, -1, 0},
-{ 18, s_25_4, -1, -1, 0},
-{ 9, s_25_5, -1, -1, 0}
+{ 18, s_26_0, -1, -1, 0},
+{ 21, s_26_1, -1, -1, 0},
+{ 12, s_26_2, -1, -1, 0},
+{ 15, s_26_3, -1, -1, 0},
+{ 18, s_26_4, -1, -1, 0},
+{ 9, s_26_5, -1, -1, 0}
 };
 
-static const symbol s_0[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8B };
-static const symbol s_1[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8B };
-static const symbol s_2[] = { 0xE0, 0xAE, 0x93 };
-static const symbol s_3[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8A };
-static const symbol s_4[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8A };
-static const symbol s_5[] = { 0xE0, 0xAE, 0x92 };
-static const symbol s_6[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x81 };
-static const symbol s_7[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x81 };
-static const symbol s_8[] = { 0xE0, 0xAE, 0x89 };
-static const symbol s_9[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x82 };
-static const symbol s_10[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x82 };
-static const symbol s_11[] = { 0xE0, 0xAE, 0x8A };
-static const symbol s_12[] = { 0xE0, 0xAE, 0x8E };
+static const symbol s_0[] = { 0xE0, 0xAE, 0x93 };
+static const symbol s_1[] = { 0xE0, 0xAE, 0x92 };
+static const symbol s_2[] = { 0xE0, 0xAE, 0x89 };
+static const symbol s_3[] = { 0xE0, 0xAE, 0x8A };
+static const symbol s_4[] = { 0xE0, 0xAE, 0x8E };
+static const symbol s_5[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_6[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_7[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_8[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
+static const symbol s_9[] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_10[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_11[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_12[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
 static const symbol s_13[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_14[] = { 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D };
-static const symbol s_15[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xAA, 0xE0, 0xAF, 0x8D };
-static const symbol s_16[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
-static const symbol s_17[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
-static const symbol s_18[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_14[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_15[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_16[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_17[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D };
+static const symbol s_18[] = { 0xE0, 0xAF, 0x8D };
 static const symbol s_19[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
-static const symbol s_20[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
-static const symbol s_21[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
-static const symbol s_22[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D };
-static const symbol s_23[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
-static const symbol s_24[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D };
-static const symbol s_25[] = { 0xE0, 0xAF, 0x88 };
-static const symbol s_26[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_27[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
-static const symbol s_28[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
+static const symbol s_20[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_21[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_22[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_23[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_24[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_25[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_26[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_27[] = { 0xE0, 0xAE, 0xAE };
+static const symbol s_28[] = { 0xE0, 0xAF, 0x8D };
 static const symbol s_29[] = { 0xE0, 0xAF, 0x8D };
 static const symbol s_30[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_31[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_32[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
+static const symbol s_31[] = { 0xE0, 0xAE, 0xBF };
+static const symbol s_32[] = { 0xE0, 0xAF, 0x88 };
 static const symbol s_33[] = { 0xE0, 0xAF, 0x8D };
 static const symbol s_34[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_35[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_35[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
 static const symbol s_36[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_37[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_38[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81 };
-static const symbol s_39[] = { 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D };
-static const symbol s_40[] = { 0xE0, 0xAF, 0x88 };
-static const symbol s_41[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_42[] = { 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D };
-static const symbol s_43[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_44[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_45[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_46[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
-static const symbol s_47[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_48[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
-static const symbol s_49[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
-static const symbol s_50[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
-static const symbol s_51[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
-static const symbol s_52[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
-static const symbol s_53[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_54[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_55[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_56[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_57[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x88 };
-static const symbol s_58[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_59[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF };
-static const symbol s_60[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF };
-static const symbol s_61[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF };
-static const symbol s_62[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
-static const symbol s_63[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB3 };
-static const symbol s_64[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88, 0xE0, 0xAE, 0xAF };
-static const symbol s_65[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 };
-static const symbol s_66[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_67[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2 };
-static const symbol s_68[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9 };
-static const symbol s_69[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF };
-static const symbol s_70[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_71[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
-static const symbol s_72[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
-static const symbol s_73[] = { 0xE0, 0xAF, 0x88 };
-static const symbol s_74[] = { 0xE0, 0xAF, 0x88 };
-static const symbol s_75[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_76[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_77[] = { 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
-static const symbol s_78[] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
-static const symbol s_79[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
-static const symbol s_80[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
-static const symbol s_81[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_82[] = { 0xE0, 0xAE, 0xAE };
-static const symbol s_83[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
-static const symbol s_84[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
-static const symbol s_85[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F };
-static const symbol s_86[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_87[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
-static const symbol s_88[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 };
-static const symbol s_89[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
-static const symbol s_90[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
-static const symbol s_91[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
-static const symbol s_92[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_93[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D };
-static const symbol s_94[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_95[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
-static const symbol s_96[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
-static const symbol s_97[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB4, 0xE0, 0xAF, 0x8D };
-static const symbol s_98[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_99[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
-static const symbol s_100[] = { 0xE0, 0xAF, 0x80 };
-static const symbol s_101[] = { 0xE0, 0xAE, 0xBF };
-static const symbol s_102[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_103[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_104[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
-static const symbol s_105[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_106[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_107[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_108[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
-static const symbol s_109[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
-static const symbol s_110[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_111[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
-static const symbol s_112[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
-static const symbol s_113[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
-static const symbol s_114[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
-static const symbol s_115[] = { 0xE0, 0xAE, 0xA9 };
-static const symbol s_116[] = { 0xE0, 0xAE, 0xAA };
-static const symbol s_117[] = { 0xE0, 0xAE, 0x95 };
-static const symbol s_118[] = { 0xE0, 0xAE, 0xA4 };
-static const symbol s_119[] = { 0xE0, 0xAE, 0xAF };
-static const symbol s_120[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_121[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
-static const symbol s_122[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
-static const symbol s_123[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
-static const symbol s_124[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
-static const symbol s_125[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_126[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_127[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_128[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_129[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_130[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_131[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
-static const symbol s_132[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x88 };
-static const symbol s_133[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_134[] = { 0xE0, 0xAE, 0x9A };
-static const symbol s_135[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
-static const symbol s_136[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
-static const symbol s_137[] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_138[] = { 0xE0, 0xAE, 0xBE };
-static const symbol s_139[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_140[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_141[] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_142[] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_143[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_144[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_145[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_146[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
-static const symbol s_147[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D };
-static const symbol s_148[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
-static const symbol s_149[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
-static const symbol s_150[] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
-static const symbol s_151[] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xAF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
-static const symbol s_152[] = { 0xE0, 0xAF, 0x8D };
-static const symbol s_153[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81 };
-static const symbol s_154[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
-static const symbol s_155[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_37[] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_38[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_39[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_40[] = { 0xE0, 0xAF, 0x8D };
 
 static int r_has_min_length(struct SN_env * z) {
-    if (!(len_utf8(z->p) > 4)) return 0;
-    return 1;
+    return len_utf8(z->p) > 4;
 }
 
 static int r_fix_va_start(struct SN_env * z) {
-    {   int c1 = z->c;
-        {   int c2 = z->c;
-            {   int c3 = z->c;
-                if (!(eq_s(z, 6, s_0))) { z->c = c3; goto lab2; }
-            lab2:
-                ;
+    int among_var;
+    z->bra = z->c;
+    if (z->c + 5 >= z->l || z->p[z->c + 5] >> 5 != 4 || !((3078 >> (z->p[z->c + 5] & 0x1f)) & 1)) return 0;
+    among_var = find_among(z, a_0, 4);
+    if (!among_var) return 0;
+    z->ket = z->c;
+    switch (among_var) {
+        case 1:
+            {   int ret = slice_from_s(z, 3, s_0);
+                if (ret < 0) return ret;
             }
-            z->c = c2;
-            z->bra = z->c;
-        }
-        if (!(eq_s(z, 6, s_1))) goto lab1;
-        z->ket = z->c;
-        {   int ret = slice_from_s(z, 3, s_2);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab1:
-        z->c = c1;
-        {   int c4 = z->c;
-            {   int c5 = z->c;
-                if (!(eq_s(z, 6, s_3))) { z->c = c5; goto lab4; }
-            lab4:
-                ;
+            break;
+        case 2:
+            {   int ret = slice_from_s(z, 3, s_1);
+                if (ret < 0) return ret;
             }
-            z->c = c4;
-            z->bra = z->c;
-        }
-        if (!(eq_s(z, 6, s_4))) goto lab3;
-        z->ket = z->c;
-        {   int ret = slice_from_s(z, 3, s_5);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab3:
-        z->c = c1;
-        {   int c6 = z->c;
-            {   int c7 = z->c;
-                if (!(eq_s(z, 6, s_6))) { z->c = c7; goto lab6; }
-            lab6:
-                ;
+            break;
+        case 3:
+            {   int ret = slice_from_s(z, 3, s_2);
+                if (ret < 0) return ret;
             }
-            z->c = c6;
-            z->bra = z->c;
-        }
-        if (!(eq_s(z, 6, s_7))) goto lab5;
-        z->ket = z->c;
-        {   int ret = slice_from_s(z, 3, s_8);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab5:
-        z->c = c1;
-        {   int c8 = z->c;
-            {   int c9 = z->c;
-                if (!(eq_s(z, 6, s_9))) { z->c = c9; goto lab7; }
-            lab7:
-                ;
+            break;
+        case 4:
+            {   int ret = slice_from_s(z, 3, s_3);
+                if (ret < 0) return ret;
             }
-            z->c = c8;
-            z->bra = z->c;
-        }
-        if (!(eq_s(z, 6, s_10))) return 0;
-        z->ket = z->c;
-        {   int ret = slice_from_s(z, 3, s_11);
-            if (ret < 0) return ret;
-        }
+            break;
     }
-lab0:
     return 1;
 }
 
@@ -751,9 +789,9 @@ static int r_fix_endings(struct SN_env * z) {
 
 static int r_remove_question_prefixes(struct SN_env * z) {
     z->bra = z->c;
-    if (!(eq_s(z, 3, s_12))) return 0;
-    if (!(find_among(z, a_0, 10))) return 0;
-    if (!(eq_s(z, 3, s_13))) return 0;
+    if (!(eq_s(z, 3, s_4))) return 0;
+    if (!find_among(z, a_1, 10)) return 0;
+    if (!(eq_s(z, 3, s_5))) return 0;
     z->ket = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
@@ -768,233 +806,130 @@ static int r_remove_question_prefixes(struct SN_env * z) {
 }
 
 static int r_fix_ending(struct SN_env * z) {
-    if (!(len_utf8(z->p) > 3)) return 0;
+    int among_var;
+    if (len_utf8(z->p) <= 3) return 0;
     z->lb = z->c; z->c = z->l;
 
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
-        if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 164)) goto lab1;
-        if (!(find_among_b(z, a_1, 3))) goto lab1;
+        among_var = find_among_b(z, a_5, 17);
+        if (!among_var) goto lab1;
         z->bra = z->c;
-        {   int ret = slice_del(z);
-            if (ret < 0) return ret;
+        switch (among_var) {
+            case 1:
+                {   int ret = slice_del(z);
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 2:
+                {   int m_test2 = z->l - z->c;
+                    if (!find_among_b(z, a_2, 3)) goto lab1;
+                    z->c = z->l - m_test2;
+                }
+                {   int ret = slice_del(z);
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 3:
+                {   int ret = slice_from_s(z, 6, s_6);
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 4:
+                {   int ret = slice_from_s(z, 6, s_7);
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 5:
+                {   int ret = slice_from_s(z, 6, s_8);
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 6:
+                if (!(z->I[0])) goto lab1;
+                {   int m3 = z->l - z->c; (void)m3;
+                    if (!(eq_s_b(z, 3, s_9))) goto lab2;
+                    goto lab1;
+                lab2:
+                    z->c = z->l - m3;
+                }
+                {   int ret = slice_from_s(z, 6, s_10);
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 7:
+                {   int ret = slice_from_s(z, 3, s_11);
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 8:
+                {   int m4 = z->l - z->c; (void)m4;
+                    if (!find_among_b(z, a_3, 8)) goto lab3;
+                    goto lab1;
+                lab3:
+                    z->c = z->l - m4;
+                }
+                {   int ret = slice_del(z);
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 9:
+                if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 136 && z->p[z->c - 1] != 141)) among_var = 2; else
+                among_var = find_among_b(z, a_4, 3);
+                switch (among_var) {
+                    case 1:
+                        {   int ret = slice_del(z);
+                            if (ret < 0) return ret;
+                        }
+                        break;
+                    case 2:
+                        {   int ret = slice_from_s(z, 6, s_12);
+                            if (ret < 0) return ret;
+                        }
+                        break;
+                }
+                break;
         }
         goto lab0;
     lab1:
         z->c = z->l - m1;
         z->ket = z->c;
-        if (!(eq_s_b(z, 6, s_14))) goto lab2;
-        {   int m_test2 = z->l - z->c;
-            if (!(find_among_b(z, a_2, 3))) goto lab2;
-            z->c = z->l - m_test2;
-        }
-        z->bra = z->c;
-        {   int ret = slice_del(z);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab2:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        {   int m3 = z->l - z->c; (void)m3;
-            if (!(eq_s_b(z, 12, s_15))) goto lab5;
+        if (!(eq_s_b(z, 3, s_13))) return 0;
+        {   int m5 = z->l - z->c; (void)m5;
+            if (!find_among_b(z, a_6, 6)) goto lab5;
+            {   int m6 = z->l - z->c; (void)m6;
+                if (!(eq_s_b(z, 3, s_14))) { z->c = z->l - m6; goto lab6; }
+                if (!find_among_b(z, a_7, 6)) { z->c = z->l - m6; goto lab6; }
+            lab6:
+                ;
+            }
+            z->bra = z->c;
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
+            }
             goto lab4;
         lab5:
-            z->c = z->l - m3;
-            if (!(eq_s_b(z, 12, s_16))) goto lab3;
-        }
-    lab4:
-        z->bra = z->c;
-        {   int ret = slice_from_s(z, 6, s_17);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab3:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 12, s_18))) goto lab6;
-        z->bra = z->c;
-        {   int ret = slice_from_s(z, 6, s_19);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab6:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 12, s_20))) goto lab7;
-        z->bra = z->c;
-        {   int ret = slice_from_s(z, 6, s_21);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab7:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 12, s_22))) goto lab8;
-        z->bra = z->c;
-        {   int ret = slice_from_s(z, 6, s_23);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab8:
-        z->c = z->l - m1;
-        if (!(z->I[0])) goto lab9;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 12, s_24))) goto lab9;
-        {   int m_test4 = z->l - z->c;
-            {   int m5 = z->l - z->c; (void)m5;
-                if (!(eq_s_b(z, 3, s_25))) goto lab10;
-                goto lab9;
-            lab10:
-                z->c = z->l - m5;
-            }
-            z->c = z->l - m_test4;
-        }
-        z->bra = z->c;
-        {   int ret = slice_from_s(z, 6, s_26);
-            if (ret < 0) return ret;
-        }
-        z->bra = z->c;
-        goto lab0;
-    lab9:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        {   int m6 = z->l - z->c; (void)m6;
-            if (!(eq_s_b(z, 9, s_27))) goto lab13;
-            goto lab12;
-        lab13:
-            z->c = z->l - m6;
-            if (!(eq_s_b(z, 15, s_28))) goto lab11;
-        }
-    lab12:
-        z->bra = z->c;
-        {   int ret = slice_from_s(z, 3, s_29);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab11:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 3, s_30))) goto lab14;
-        if (!(find_among_b(z, a_3, 6))) goto lab14;
-        if (!(eq_s_b(z, 3, s_31))) goto lab14;
-        if (!(find_among_b(z, a_4, 6))) goto lab14;
-        z->bra = z->c;
-        {   int ret = slice_del(z);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab14:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 9, s_32))) goto lab15;
-        z->bra = z->c;
-        {   int ret = slice_from_s(z, 3, s_33);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab15:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 3, s_34))) goto lab16;
-        if (!(find_among_b(z, a_5, 6))) goto lab16;
-        z->bra = z->c;
-        {   int ret = slice_del(z);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab16:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 3, s_35))) goto lab17;
-        {   int m7 = z->l - z->c; (void)m7;
-            if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((4030464 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab19;
-            if (!(find_among_b(z, a_6, 6))) goto lab19;
-            goto lab18;
-        lab19:
-            z->c = z->l - m7;
-            if (!(find_among_b(z, a_7, 6))) goto lab17;
-        }
-    lab18:
-        if (!(eq_s_b(z, 3, s_36))) goto lab17;
-        z->bra = z->c;
-        {   int ret = slice_from_s(z, 3, s_37);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab17:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(find_among_b(z, a_8, 3))) goto lab20;
-        z->bra = z->c;
-        {   int ret = slice_del(z);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab20:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 6, s_38))) goto lab21;
-        {   int m_test8 = z->l - z->c;
-            {   int m9 = z->l - z->c; (void)m9;
-                if (!(find_among_b(z, a_9, 8))) goto lab22;
-                goto lab21;
-            lab22:
-                z->c = z->l - m9;
+            z->c = z->l - m5;
+            if (!find_among_b(z, a_8, 11)) goto lab7;
+            z->bra = z->c;
+            if (!(eq_s_b(z, 3, s_15))) goto lab7;
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
             }
-            z->c = z->l - m_test8;
-        }
-        z->bra = z->c;
-        {   int ret = slice_del(z);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab21:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 6, s_39))) goto lab23;
-        {   int m_test10 = z->l - z->c;
-            {   int m11 = z->l - z->c; (void)m11;
-                if (!(eq_s_b(z, 3, s_40))) goto lab24;
-                goto lab23;
-            lab24:
-                z->c = z->l - m11;
+            goto lab4;
+        lab7:
+            z->c = z->l - m5;
+            {   int m_test7 = z->l - z->c;
+                if (!find_among_b(z, a_9, 9)) return 0;
+                z->c = z->l - m_test7;
             }
-            z->c = z->l - m_test10;
-        }
-        z->bra = z->c;
-        {   int ret = slice_from_s(z, 6, s_41);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab23:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 6, s_42))) goto lab25;
-        z->bra = z->c;
-        {   int ret = slice_del(z);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab25:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 3, s_43))) return 0;
-        {   int m_test12 = z->l - z->c;
-            {   int m13 = z->l - z->c; (void)m13;
-                if (!(find_among_b(z, a_10, 8))) goto lab27;
-                goto lab26;
-            lab27:
-                z->c = z->l - m13;
-                if (!(eq_s_b(z, 3, s_44))) return 0;
+            z->bra = z->c;
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
             }
-        lab26:
-            z->c = z->l - m_test12;
-        }
-        z->bra = z->c;
-        {   int ret = slice_del(z);
-            if (ret < 0) return ret;
         }
+    lab4:
+        ;
     }
 lab0:
     z->c = z->lb;
@@ -1002,17 +937,15 @@ lab0:
 }
 
 static int r_remove_pronoun_prefixes(struct SN_env * z) {
-    z->I[1] = 0;
     z->bra = z->c;
     if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 4 || !((672 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
-    if (!(find_among(z, a_11, 3))) return 0;
-    if (!(find_among(z, a_12, 10))) return 0;
-    if (!(eq_s(z, 3, s_45))) return 0;
+    if (!find_among(z, a_10, 3)) return 0;
+    if (!find_among(z, a_11, 10)) return 0;
+    if (!(eq_s(z, 3, s_16))) return 0;
     z->ket = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    z->I[1] = 1;
     {   int c1 = z->c;
         {   int ret = r_fix_va_start(z);
             if (ret < 0) return ret;
@@ -1023,55 +956,46 @@ static int r_remove_pronoun_prefixes(struct SN_env * z) {
 }
 
 static int r_remove_plural_suffix(struct SN_env * z) {
-    z->I[1] = 0;
+    int among_var;
     z->lb = z->c; z->c = z->l;
 
-    {   int m1 = z->l - z->c; (void)m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 18, s_46))) goto lab1;
-        {   int m_test2 = z->l - z->c;
-            {   int m3 = z->l - z->c; (void)m3;
-                if (!(find_among_b(z, a_13, 6))) goto lab2;
-                goto lab1;
-            lab2:
-                z->c = z->l - m3;
+    z->ket = z->c;
+    if (z->c - 8 <= z->lb || z->p[z->c - 1] != 141) return 0;
+    among_var = find_among_b(z, a_13, 4);
+    if (!among_var) return 0;
+    z->bra = z->c;
+    switch (among_var) {
+        case 1:
+            {   int m1 = z->l - z->c; (void)m1;
+                if (!find_among_b(z, a_12, 6)) goto lab1;
+                {   int ret = slice_from_s(z, 9, s_17);
+                    if (ret < 0) return ret;
+                }
+                goto lab0;
+            lab1:
+                z->c = z->l - m1;
+                {   int ret = slice_from_s(z, 3, s_18);
+                    if (ret < 0) return ret;
+                }
             }
-            z->c = z->l - m_test2;
-        }
-        z->bra = z->c;
-        {   int ret = slice_from_s(z, 3, s_47);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab1:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 15, s_48))) goto lab3;
-        z->bra = z->c;
-        {   int ret = slice_from_s(z, 6, s_49);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab3:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 15, s_50))) goto lab4;
-        z->bra = z->c;
-        {   int ret = slice_from_s(z, 6, s_51);
-            if (ret < 0) return ret;
-        }
-        goto lab0;
-    lab4:
-        z->c = z->l - m1;
-        z->ket = z->c;
-        if (!(eq_s_b(z, 9, s_52))) return 0;
-        z->bra = z->c;
-        {   int ret = slice_del(z);
-            if (ret < 0) return ret;
-        }
+        lab0:
+            break;
+        case 2:
+            {   int ret = slice_from_s(z, 6, s_19);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 3:
+            {   int ret = slice_from_s(z, 6, s_20);
+                if (ret < 0) return ret;
+            }
+            break;
+        case 4:
+            {   int ret = slice_del(z);
+                if (ret < 0) return ret;
+            }
+            break;
     }
-lab0:
-    z->I[1] = 1;
     z->c = z->lb;
     return 1;
 }
@@ -1080,22 +1004,20 @@ static int r_remove_question_suffixes(struct SN_env * z) {
     {   int ret = r_has_min_length(z);
         if (ret <= 0) return ret;
     }
-    z->I[1] = 0;
     z->lb = z->c; z->c = z->l;
 
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
-        if (!(find_among_b(z, a_14, 3))) goto lab0;
+        if (!find_among_b(z, a_14, 3)) goto lab0;
         z->bra = z->c;
-        {   int ret = slice_from_s(z, 3, s_53);
+        {   int ret = slice_from_s(z, 3, s_21);
             if (ret < 0) return ret;
         }
-        z->I[1] = 1;
     lab0:
         z->c = z->l - m1;
     }
     z->c = z->lb;
-    
+
     {   int ret = r_fix_endings(z);
         if (ret < 0) return ret;
     }
@@ -1106,35 +1028,31 @@ static int r_remove_command_suffixes(struct SN_env * z) {
     {   int ret = r_has_min_length(z);
         if (ret <= 0) return ret;
     }
-    z->I[1] = 0;
     z->lb = z->c; z->c = z->l;
 
     z->ket = z->c;
     if (z->c - 5 <= z->lb || z->p[z->c - 1] != 191) return 0;
-    if (!(find_among_b(z, a_15, 2))) return 0;
+    if (!find_among_b(z, a_15, 2)) return 0;
     z->bra = z->c;
     {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    z->I[1] = 1;
     z->c = z->lb;
     return 1;
 }
 
 static int r_remove_um(struct SN_env * z) {
-    z->I[1] = 0;
     {   int ret = r_has_min_length(z);
         if (ret <= 0) return ret;
     }
     z->lb = z->c; z->c = z->l;
 
     z->ket = z->c;
-    if (!(eq_s_b(z, 9, s_54))) return 0;
+    if (!(eq_s_b(z, 9, s_22))) return 0;
     z->bra = z->c;
-    {   int ret = slice_from_s(z, 3, s_55);
+    {   int ret = slice_from_s(z, 3, s_23);
         if (ret < 0) return ret;
     }
-    z->I[1] = 1;
     z->c = z->lb;
     {   int c1 = z->c;
         {   int ret = r_fix_ending(z);
@@ -1146,104 +1064,41 @@ static int r_remove_um(struct SN_env * z) {
 }
 
 static int r_remove_common_word_endings(struct SN_env * z) {
-    z->I[1] = 0;
+    int among_var;
     {   int ret = r_has_min_length(z);
         if (ret <= 0) return ret;
     }
     z->lb = z->c; z->c = z->l;
 
-    {   int m1 = z->l - z->c; (void)m1;
-        {   int m_test2 = z->l - z->c;
-            z->ket = z->c;
-            {   int m3 = z->l - z->c; (void)m3;
-                if (!(eq_s_b(z, 12, s_56))) goto lab3;
-                goto lab2;
-            lab3:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 15, s_57))) goto lab4;
-                goto lab2;
-            lab4:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 12, s_58))) goto lab5;
-                goto lab2;
-            lab5:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 15, s_59))) goto lab6;
-                goto lab2;
-            lab6:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 9, s_60))) goto lab7;
-                goto lab2;
-            lab7:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 12, s_61))) goto lab8;
-                goto lab2;
-            lab8:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 15, s_62))) goto lab9;
-                goto lab2;
-            lab9:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 12, s_63))) goto lab10;
-                goto lab2;
-            lab10:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 12, s_64))) goto lab11;
-                goto lab2;
-            lab11:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 9, s_65))) goto lab12;
-                goto lab2;
-            lab12:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 15, s_66))) goto lab13;
-                goto lab2;
-            lab13:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 9, s_67))) goto lab14;
-                {   int m_test4 = z->l - z->c;
-                    {   int m5 = z->l - z->c; (void)m5;
-                        if (!(find_among_b(z, a_16, 8))) goto lab15;
-                        goto lab14;
-                    lab15:
-                        z->c = z->l - m5;
-                    }
-                    z->c = z->l - m_test4;
-                }
-                goto lab2;
-            lab14:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 6, s_68))) goto lab16;
-                goto lab2;
-            lab16:
-                z->c = z->l - m3;
-                if (!(eq_s_b(z, 9, s_69))) goto lab1;
+    z->ket = z->c;
+    among_var = find_among_b(z, a_17, 26);
+    if (!among_var) return 0;
+    z->bra = z->c;
+    switch (among_var) {
+        case 1:
+            {   int ret = slice_from_s(z, 3, s_24);
+                if (ret < 0) return ret;
             }
-        lab2:
-            z->bra = z->c;
-            {   int ret = slice_from_s(z, 3, s_70);
+            break;
+        case 2:
+            {   int m1 = z->l - z->c; (void)m1;
+                if (!find_among_b(z, a_16, 8)) goto lab0;
+                return 0;
+            lab0:
+                z->c = z->l - m1;
+            }
+            {   int ret = slice_from_s(z, 3, s_25);
                 if (ret < 0) return ret;
             }
-            z->I[1] = 1;
-            z->c = z->l - m_test2;
-        }
-        goto lab0;
-    lab1:
-        z->c = z->l - m1;
-        {   int m_test6 = z->l - z->c;
-            z->ket = z->c;
-            if (!(find_among_b(z, a_17, 13))) return 0;
-            z->bra = z->c;
+            break;
+        case 3:
             {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            z->I[1] = 1;
-            z->c = z->l - m_test6;
-        }
+            break;
     }
-lab0:
     z->c = z->lb;
-    
+
     {   int ret = r_fix_endings(z);
         if (ret < 0) return ret;
     }
@@ -1251,7 +1106,7 @@ lab0:
 }
 
 static int r_remove_vetrumai_urupukal(struct SN_env * z) {
-    z->I[1] = 0;
+    int among_var;
     z->I[0] = 0;
     {   int ret = r_has_min_length(z);
         if (ret <= 0) return ret;
@@ -1261,215 +1116,112 @@ static int r_remove_vetrumai_urupukal(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         {   int m_test2 = z->l - z->c;
             z->ket = z->c;
-            if (!(eq_s_b(z, 6, s_71))) goto lab1;
+            if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((-2147475197 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1;
+            among_var = find_among_b(z, a_20, 22);
+            if (!among_var) goto lab1;
             z->bra = z->c;
-            {   int ret = slice_del(z);
-                if (ret < 0) return ret;
-            }
-            z->c = z->l - m_test2;
-        }
-        goto lab0;
-    lab1:
-        z->c = z->l - m1;
-        {   int m_test3 = z->l - z->c;
-            z->ket = z->c;
-            {   int m4 = z->l - z->c; (void)m4;
-                {   int m5 = z->l - z->c; (void)m5;
-                    if (!(eq_s_b(z, 9, s_72))) goto lab6;
-                    goto lab5;
-                lab6:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 3, s_73))) goto lab4;
-                }
-            lab5:
-                {   int m_test6 = z->l - z->c;
-                    {   int m7 = z->l - z->c; (void)m7;
-                        if (!(find_among_b(z, a_18, 6))) goto lab7;
-                        goto lab4;
-                    lab7:
-                        z->c = z->l - m7;
+            switch (among_var) {
+                case 1:
+                    {   int ret = slice_del(z);
+                        if (ret < 0) return ret;
                     }
-                    z->c = z->l - m_test6;
-                }
-                goto lab3;
-            lab4:
-                z->c = z->l - m4;
-                if (!(eq_s_b(z, 3, s_74))) goto lab2;
-                {   int m_test8 = z->l - z->c;
-                    if (!(find_among_b(z, a_19, 6))) goto lab2;
-                    if (!(eq_s_b(z, 3, s_75))) goto lab2;
-                    z->c = z->l - m_test8;
-                }
-            }
-        lab3:
-            z->bra = z->c;
-            {   int ret = slice_from_s(z, 3, s_76);
-                if (ret < 0) return ret;
-            }
-            z->c = z->l - m_test3;
-        }
-        goto lab0;
-    lab2:
-        z->c = z->l - m1;
-        {   int m_test9 = z->l - z->c;
-            z->ket = z->c;
-            {   int m10 = z->l - z->c; (void)m10;
-                if (!(eq_s_b(z, 9, s_77))) goto lab10;
-                goto lab9;
-            lab10:
-                z->c = z->l - m10;
-                if (!(eq_s_b(z, 9, s_78))) goto lab11;
-                goto lab9;
-            lab11:
-                z->c = z->l - m10;
-                if (!(eq_s_b(z, 9, s_79))) goto lab12;
-                goto lab9;
-            lab12:
-                z->c = z->l - m10;
-                if (!(eq_s_b(z, 9, s_80))) goto lab13;
-                goto lab9;
-            lab13:
-                z->c = z->l - m10;
-                if (!(eq_s_b(z, 9, s_81))) goto lab14;
-                {   int m_test11 = z->l - z->c;
-                    {   int m12 = z->l - z->c; (void)m12;
-                        if (!(eq_s_b(z, 3, s_82))) goto lab15;
-                        goto lab14;
-                    lab15:
-                        z->c = z->l - m12;
+                    break;
+                case 2:
+                    {   int ret = slice_from_s(z, 3, s_26);
+                        if (ret < 0) return ret;
                     }
-                    z->c = z->l - m_test11;
-                }
-                goto lab9;
-            lab14:
-                z->c = z->l - m10;
-                if (!(eq_s_b(z, 15, s_83))) goto lab16;
-                goto lab9;
-            lab16:
-                z->c = z->l - m10;
-                if (!(eq_s_b(z, 21, s_84))) goto lab17;
-                goto lab9;
-            lab17:
-                z->c = z->l - m10;
-                if (!(eq_s_b(z, 9, s_85))) goto lab18;
-                goto lab9;
-            lab18:
-                z->c = z->l - m10;
-                if (!(len_utf8(z->p) >= 7)) goto lab19;
-                if (!(eq_s_b(z, 12, s_86))) goto lab19;
-                goto lab9;
-            lab19:
-                z->c = z->l - m10;
-                if (!(eq_s_b(z, 9, s_87))) goto lab20;
-                goto lab9;
-            lab20:
-                z->c = z->l - m10;
-                if (!(eq_s_b(z, 9, s_88))) goto lab21;
-                goto lab9;
-            lab21:
-                z->c = z->l - m10;
-                if (!(eq_s_b(z, 12, s_89))) goto lab22;
-                goto lab9;
-            lab22:
-                z->c = z->l - m10;
-                if (!(eq_s_b(z, 6, s_90))) goto lab23;
-                {   int m_test13 = z->l - z->c;
-                    {   int m14 = z->l - z->c; (void)m14;
-                        if (!(find_among_b(z, a_20, 8))) goto lab24;
-                        goto lab23;
-                    lab24:
-                        z->c = z->l - m14;
+                    break;
+                case 3:
+                    {   int m3 = z->l - z->c; (void)m3;
+                        if (!(eq_s_b(z, 3, s_27))) goto lab2;
+                        goto lab1;
+                    lab2:
+                        z->c = z->l - m3;
                     }
-                    z->c = z->l - m_test13;
-                }
-                goto lab9;
-            lab23:
-                z->c = z->l - m10;
-                if (!(eq_s_b(z, 9, s_91))) goto lab8;
-            }
-        lab9:
-            z->bra = z->c;
-            {   int ret = slice_from_s(z, 3, s_92);
-                if (ret < 0) return ret;
+                    {   int ret = slice_from_s(z, 3, s_28);
+                        if (ret < 0) return ret;
+                    }
+                    break;
+                case 4:
+                    if (len_utf8(z->p) < 7) goto lab1;
+                    {   int ret = slice_from_s(z, 3, s_29);
+                        if (ret < 0) return ret;
+                    }
+                    break;
+                case 5:
+                    {   int m4 = z->l - z->c; (void)m4;
+                        if (!find_among_b(z, a_18, 8)) goto lab3;
+                        goto lab1;
+                    lab3:
+                        z->c = z->l - m4;
+                    }
+                    {   int ret = slice_from_s(z, 3, s_30);
+                        if (ret < 0) return ret;
+                    }
+                    break;
+                case 6:
+                    {   int m5 = z->l - z->c; (void)m5;
+                        if (!find_among_b(z, a_19, 8)) goto lab4;
+                        goto lab1;
+                    lab4:
+                        z->c = z->l - m5;
+                    }
+                    {   int ret = slice_del(z);
+                        if (ret < 0) return ret;
+                    }
+                    break;
+                case 7:
+                    {   int ret = slice_from_s(z, 3, s_31);
+                        if (ret < 0) return ret;
+                    }
+                    break;
             }
-            z->c = z->l - m_test9;
+            z->c = z->l - m_test2;
         }
         goto lab0;
-    lab8:
+    lab1:
         z->c = z->l - m1;
-        {   int m_test15 = z->l - z->c;
+        {   int m_test6 = z->l - z->c;
             z->ket = z->c;
-            {   int m16 = z->l - z->c; (void)m16;
-                if (!(eq_s_b(z, 9, s_93))) goto lab27;
-                goto lab26;
-            lab27:
-                z->c = z->l - m16;
-                if (!(eq_s_b(z, 12, s_94))) goto lab28;
-                goto lab26;
-            lab28:
-                z->c = z->l - m16;
-                if (!(eq_s_b(z, 12, s_95))) goto lab29;
-                goto lab26;
-            lab29:
-                z->c = z->l - m16;
-                if (!(eq_s_b(z, 12, s_96))) goto lab30;
-                goto lab26;
-            lab30:
-                z->c = z->l - m16;
-                if (!(eq_s_b(z, 12, s_97))) goto lab31;
-                goto lab26;
-            lab31:
-                z->c = z->l - m16;
-                if (!(eq_s_b(z, 12, s_98))) goto lab32;
-                goto lab26;
-            lab32:
-                z->c = z->l - m16;
-                if (!(eq_s_b(z, 6, s_99))) goto lab25;
-                {   int m_test17 = z->l - z->c;
-                    {   int m18 = z->l - z->c; (void)m18;
-                        if (!(find_among_b(z, a_21, 8))) goto lab33;
-                        goto lab25;
-                    lab33:
-                        z->c = z->l - m18;
-                    }
-                    z->c = z->l - m_test17;
+            if (!(eq_s_b(z, 3, s_32))) return 0;
+            {   int m7 = z->l - z->c; (void)m7;
+                {   int m8 = z->l - z->c; (void)m8;
+                    if (!find_among_b(z, a_21, 6)) goto lab7;
+                    goto lab6;
+                lab7:
+                    z->c = z->l - m8;
+                }
+                goto lab5;
+            lab6:
+                z->c = z->l - m7;
+                {   int m_test9 = z->l - z->c;
+                    if (!find_among_b(z, a_22, 6)) return 0;
+                    if (!(eq_s_b(z, 3, s_33))) return 0;
+                    z->c = z->l - m_test9;
                 }
             }
-        lab26:
-            z->bra = z->c;
-            {   int ret = slice_del(z);
-                if (ret < 0) return ret;
-            }
-            z->c = z->l - m_test15;
-        }
-        goto lab0;
-    lab25:
-        z->c = z->l - m1;
-        {   int m_test19 = z->l - z->c;
-            z->ket = z->c;
-            if (!(eq_s_b(z, 3, s_100))) return 0;
+        lab5:
             z->bra = z->c;
-            {   int ret = slice_from_s(z, 3, s_101);
+            {   int ret = slice_from_s(z, 3, s_34);
                 if (ret < 0) return ret;
             }
-            z->c = z->l - m_test19;
+            z->c = z->l - m_test6;
         }
     }
 lab0:
-    z->I[1] = 1;
     z->I[0] = 1;
-    {   int m20 = z->l - z->c; (void)m20;
+    {   int m10 = z->l - z->c; (void)m10;
         z->ket = z->c;
-        if (!(eq_s_b(z, 9, s_102))) goto lab34;
+        if (!(eq_s_b(z, 9, s_35))) goto lab8;
         z->bra = z->c;
-        {   int ret = slice_from_s(z, 3, s_103);
+        {   int ret = slice_from_s(z, 3, s_36);
             if (ret < 0) return ret;
         }
-    lab34:
-        z->c = z->l - m20;
+    lab8:
+        z->c = z->l - m10;
     }
     z->c = z->lb;
-    
+
     {   int ret = r_fix_endings(z);
         if (ret < 0) return ret;
     }
@@ -1496,6 +1248,7 @@ static int r_remove_tense_suffixes(struct SN_env * z) {
 }
 
 static int r_remove_tense_suffix(struct SN_env * z) {
+    int among_var;
     z->I[1] = 0;
     {   int ret = r_has_min_length(z);
         if (ret <= 0) return ret;
@@ -1503,301 +1256,86 @@ static int r_remove_tense_suffix(struct SN_env * z) {
     z->lb = z->c; z->c = z->l;
 
     {   int m1 = z->l - z->c; (void)m1;
-        {   int m2 = z->l - z->c; (void)m2;
-            {   int m_test3 = z->l - z->c;
-                z->ket = z->c;
-                if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 141)) goto lab2;
-                if (!(find_among_b(z, a_22, 2))) goto lab2;
-                z->bra = z->c;
-                {   int ret = slice_del(z);
-                    if (ret < 0) return ret;
-                }
-                z->I[1] = 1;
-                z->c = z->l - m_test3;
-            }
-            goto lab1;
-        lab2:
-            z->c = z->l - m2;
-            {   int m_test4 = z->l - z->c;
-                z->ket = z->c;
-                {   int m5 = z->l - z->c; (void)m5;
-                    if (!(eq_s_b(z, 12, s_104))) goto lab5;
-                    goto lab4;
-                lab5:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 12, s_105))) goto lab6;
-                    goto lab4;
-                lab6:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 9, s_106))) goto lab7;
-                    goto lab4;
-                lab7:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 12, s_107))) goto lab8;
-                    goto lab4;
-                lab8:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 12, s_108))) goto lab9;
-                    goto lab4;
-                lab9:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 12, s_109))) goto lab10;
-                    goto lab4;
-                lab10:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 9, s_110))) goto lab11;
+        {   int m_test2 = z->l - z->c;
+            z->ket = z->c;
+            among_var = find_among_b(z, a_25, 46);
+            if (!among_var) goto lab0;
+            z->bra = z->c;
+            switch (among_var) {
+                case 1:
+                    {   int ret = slice_del(z);
+                        if (ret < 0) return ret;
+                    }
+                    break;
+                case 2:
+                    {   int m3 = z->l - z->c; (void)m3;
+                        if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((1951712 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1;
+                        if (!find_among_b(z, a_23, 12)) goto lab1;
+                        goto lab0;
+                    lab1:
+                        z->c = z->l - m3;
+                    }
+                    {   int ret = slice_del(z);
+                        if (ret < 0) return ret;
+                    }
+                    break;
+                case 3:
+                    {   int m4 = z->l - z->c; (void)m4;
+                        if (!find_among_b(z, a_24, 8)) goto lab2;
+                        goto lab0;
+                    lab2:
+                        z->c = z->l - m4;
+                    }
+                    {   int ret = slice_del(z);
+                        if (ret < 0) return ret;
+                    }
+                    break;
+                case 4:
+                    {   int m5 = z->l - z->c; (void)m5;
+                        if (!(eq_s_b(z, 3, s_37))) goto lab3;
+                        goto lab0;
+                    lab3:
+                        z->c = z->l - m5;
+                    }
+                    {   int ret = slice_from_s(z, 3, s_38);
+                        if (ret < 0) return ret;
+                    }
+                    break;
+                case 5:
+                    {   int ret = slice_from_s(z, 3, s_39);
+                        if (ret < 0) return ret;
+                    }
+                    break;
+                case 6:
                     {   int m_test6 = z->l - z->c;
-                        {   int m7 = z->l - z->c; (void)m7;
-                            if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((1951712 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab12;
-                            if (!(find_among_b(z, a_23, 12))) goto lab12;
-                            goto lab11;
-                        lab12:
-                            z->c = z->l - m7;
-                        }
+                        if (!(eq_s_b(z, 3, s_40))) goto lab0;
                         z->c = z->l - m_test6;
                     }
-                    goto lab4;
-                lab11:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 9, s_111))) goto lab13;
-                    goto lab4;
-                lab13:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 9, s_112))) goto lab14;
-                    goto lab4;
-                lab14:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 9, s_113))) goto lab15;
-                    goto lab4;
-                lab15:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 9, s_114))) goto lab16;
-                    goto lab4;
-                lab16:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 3, s_115))) goto lab17;
-                    goto lab4;
-                lab17:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 3, s_116))) goto lab18;
-                    goto lab4;
-                lab18:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 3, s_117))) goto lab19;
-                    goto lab4;
-                lab19:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 3, s_118))) goto lab20;
-                    goto lab4;
-                lab20:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 3, s_119))) goto lab21;
-                    goto lab4;
-                lab21:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 9, s_120))) goto lab22;
-                    goto lab4;
-                lab22:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 9, s_121))) goto lab23;
-                    goto lab4;
-                lab23:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 9, s_122))) goto lab24;
-                    goto lab4;
-                lab24:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 6, s_123))) goto lab25;
-                    {   int m_test8 = z->l - z->c;
-                        {   int m9 = z->l - z->c; (void)m9;
-                            if (!(find_among_b(z, a_24, 8))) goto lab26;
-                            goto lab25;
-                        lab26:
-                            z->c = z->l - m9;
-                        }
-                        z->c = z->l - m_test8;
-                    }
-                    goto lab4;
-                lab25:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 15, s_124))) goto lab27;
-                    goto lab4;
-                lab27:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 9, s_125))) goto lab28;
-                    goto lab4;
-                lab28:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 9, s_126))) goto lab29;
-                    goto lab4;
-                lab29:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 12, s_127))) goto lab30;
-                    goto lab4;
-                lab30:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 12, s_128))) goto lab31;
-                    goto lab4;
-                lab31:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 12, s_129))) goto lab32;
-                    goto lab4;
-                lab32:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 12, s_130))) goto lab33;
-                    goto lab4;
-                lab33:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 6, s_131))) goto lab34;
-                    goto lab4;
-                lab34:
-                    z->c = z->l - m5;
-                    if (!(eq_s_b(z, 6, s_132))) goto lab3;
-                }
-            lab4:
-                z->bra = z->c;
-                {   int ret = slice_del(z);
-                    if (ret < 0) return ret;
-                }
-                z->I[1] = 1;
-                z->c = z->l - m_test4;
-            }
-            goto lab1;
-        lab3:
-            z->c = z->l - m2;
-            {   int m_test10 = z->l - z->c;
-                z->ket = z->c;
-                {   int m11 = z->l - z->c; (void)m11;
-                    if (!(eq_s_b(z, 9, s_133))) goto lab37;
-                    {   int m_test12 = z->l - z->c;
-                        {   int m13 = z->l - z->c; (void)m13;
-                            if (!(eq_s_b(z, 3, s_134))) goto lab38;
-                            goto lab37;
-                        lab38:
-                            z->c = z->l - m13;
-                        }
-                        z->c = z->l - m_test12;
+                    {   int ret = slice_del(z);
+                        if (ret < 0) return ret;
                     }
-                    goto lab36;
-                lab37:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 9, s_135))) goto lab39;
-                    goto lab36;
-                lab39:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 9, s_136))) goto lab40;
-                    goto lab36;
-                lab40:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 9, s_137))) goto lab41;
-                    goto lab36;
-                lab41:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 3, s_138))) goto lab42;
-                    goto lab36;
-                lab42:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 9, s_139))) goto lab43;
-                    goto lab36;
-                lab43:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 9, s_140))) goto lab44;
-                    goto lab36;
-                lab44:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 9, s_141))) goto lab45;
-                    goto lab36;
-                lab45:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 9, s_142))) goto lab46;
-                    goto lab36;
-                lab46:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 12, s_143))) goto lab47;
-                    goto lab36;
-                lab47:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 12, s_144))) goto lab48;
-                    goto lab36;
-                lab48:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 12, s_145))) goto lab49;
-                    goto lab36;
-                lab49:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 12, s_146))) goto lab50;
-                    goto lab36;
-                lab50:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 9, s_147))) goto lab51;
-                    goto lab36;
-                lab51:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 12, s_148))) goto lab52;
-                    goto lab36;
-                lab52:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 12, s_149))) goto lab53;
-                    goto lab36;
-                lab53:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 9, s_150))) goto lab54;
-                    goto lab36;
-                lab54:
-                    z->c = z->l - m11;
-                    if (!(eq_s_b(z, 12, s_151))) goto lab35;
-                }
-            lab36:
-                z->bra = z->c;
-                {   int ret = slice_from_s(z, 3, s_152);
-                    if (ret < 0) return ret;
-                }
-                z->I[1] = 1;
-                z->c = z->l - m_test10;
-            }
-            goto lab1;
-        lab35:
-            z->c = z->l - m2;
-            {   int m_test14 = z->l - z->c;
-                z->ket = z->c;
-                {   int m15 = z->l - z->c; (void)m15;
-                    if (!(eq_s_b(z, 6, s_153))) goto lab56;
-                    goto lab55;
-                lab56:
-                    z->c = z->l - m15;
-                    if (!(eq_s_b(z, 6, s_154))) goto lab0;
-                }
-            lab55:
-                {   int m_test16 = z->l - z->c;
-                    if (!(eq_s_b(z, 3, s_155))) goto lab0;
-                    z->c = z->l - m_test16;
-                }
-                z->bra = z->c;
-                {   int ret = slice_del(z);
-                    if (ret < 0) return ret;
-                }
-                z->I[1] = 1;
-                z->c = z->l - m_test14;
+                    break;
             }
+            z->I[1] = 1;
+            z->c = z->l - m_test2;
         }
-    lab1:
     lab0:
         z->c = z->l - m1;
     }
-    {   int m17 = z->l - z->c; (void)m17;
+    {   int m7 = z->l - z->c; (void)m7;
         z->ket = z->c;
-        if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 177)) goto lab57;
-        if (!(find_among_b(z, a_25, 6))) goto lab57;
+        if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 177)) goto lab4;
+        if (!find_among_b(z, a_26, 6)) goto lab4;
         z->bra = z->c;
         {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
         z->I[1] = 1;
-    lab57:
-        z->c = z->l - m17;
+    lab4:
+        z->c = z->l - m7;
     }
     z->c = z->lb;
-    
+
     {   int ret = r_fix_endings(z);
         if (ret < 0) return ret;
     }
index 3d0403278776f2d8acffc77c4776e23b684ed567..efb1b30604b17427fb588b876378bee9d20695d1 100644 (file)
@@ -12,6 +12,7 @@ extern int turkish_UTF_8_stem(struct SN_env * z);
 static int r_stem_suffix_chain_before_ki(struct SN_env * z);
 static int r_stem_noun_suffixes(struct SN_env * z);
 static int r_stem_nominal_verb_suffixes(struct SN_env * z);
+static int r_remove_proper_noun_suffix(struct SN_env * z);
 static int r_postlude(struct SN_env * z);
 static int r_post_process_last_consonants(struct SN_env * z);
 static int r_more_than_one_syllable_word(struct SN_env * z);
@@ -458,49 +459,58 @@ static const symbol s_17[] = { 's', 'o', 'y' };
 
 static int r_check_vowel_harmony(struct SN_env * z) {
     {   int m_test1 = z->l - z->c;
+
         if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
         {   int m2 = z->l - z->c; (void)m2;
             if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab1;
             z->c--;
+
             if (out_grouping_b_U(z, g_vowel1, 97, 305, 1) < 0) goto lab1;
             goto lab0;
         lab1:
             z->c = z->l - m2;
             if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab2;
             z->c--;
+
             if (out_grouping_b_U(z, g_vowel2, 101, 252, 1) < 0) goto lab2;
             goto lab0;
         lab2:
             z->c = z->l - m2;
             if (!(eq_s_b(z, 2, s_0))) goto lab3;
+
             if (out_grouping_b_U(z, g_vowel3, 97, 305, 1) < 0) goto lab3;
             goto lab0;
         lab3:
             z->c = z->l - m2;
             if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab4;
             z->c--;
+
             if (out_grouping_b_U(z, g_vowel4, 101, 105, 1) < 0) goto lab4;
             goto lab0;
         lab4:
             z->c = z->l - m2;
             if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5;
             z->c--;
+
             if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab5;
             goto lab0;
         lab5:
             z->c = z->l - m2;
             if (!(eq_s_b(z, 2, s_1))) goto lab6;
+
             if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) goto lab6;
             goto lab0;
         lab6:
             z->c = z->l - m2;
             if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab7;
             z->c--;
+
             if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab7;
             goto lab0;
         lab7:
             z->c = z->l - m2;
             if (!(eq_s_b(z, 2, s_2))) return 0;
+
             if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) return 0;
         }
     lab0:
@@ -645,7 +655,7 @@ lab0:
 
 static int r_mark_possessives(struct SN_env * z) {
     if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((67133440 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_0, 10))) return 0;
+    if (!find_among_b(z, a_0, 10)) return 0;
     {   int ret = r_mark_suffix_with_optional_U_vowel(z);
         if (ret <= 0) return ret;
     }
@@ -665,7 +675,7 @@ static int r_mark_sU(struct SN_env * z) {
 
 static int r_mark_lArI(struct SN_env * z) {
     if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 177)) return 0;
-    if (!(find_among_b(z, a_1, 2))) return 0;
+    if (!find_among_b(z, a_1, 2)) return 0;
     return 1;
 }
 
@@ -684,7 +694,7 @@ static int r_mark_nU(struct SN_env * z) {
     {   int ret = r_check_vowel_harmony(z);
         if (ret <= 0) return ret;
     }
-    if (!(find_among_b(z, a_2, 4))) return 0;
+    if (!find_among_b(z, a_2, 4)) return 0;
     return 1;
 }
 
@@ -693,7 +703,7 @@ static int r_mark_nUn(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 110) return 0;
-    if (!(find_among_b(z, a_3, 4))) return 0;
+    if (!find_among_b(z, a_3, 4)) return 0;
     {   int ret = r_mark_suffix_with_optional_n_consonant(z);
         if (ret <= 0) return ret;
     }
@@ -705,7 +715,7 @@ static int r_mark_yA(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
-    if (!(find_among_b(z, a_4, 2))) return 0;
+    if (!find_among_b(z, a_4, 2)) return 0;
     {   int ret = r_mark_suffix_with_optional_y_consonant(z);
         if (ret <= 0) return ret;
     }
@@ -717,7 +727,7 @@ static int r_mark_nA(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
-    if (!(find_among_b(z, a_5, 2))) return 0;
+    if (!find_among_b(z, a_5, 2)) return 0;
     return 1;
 }
 
@@ -726,7 +736,7 @@ static int r_mark_DA(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
-    if (!(find_among_b(z, a_6, 4))) return 0;
+    if (!find_among_b(z, a_6, 4)) return 0;
     return 1;
 }
 
@@ -735,7 +745,7 @@ static int r_mark_ndA(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
-    if (!(find_among_b(z, a_7, 2))) return 0;
+    if (!find_among_b(z, a_7, 2)) return 0;
     return 1;
 }
 
@@ -744,7 +754,7 @@ static int r_mark_DAn(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
-    if (!(find_among_b(z, a_8, 4))) return 0;
+    if (!find_among_b(z, a_8, 4)) return 0;
     return 1;
 }
 
@@ -753,7 +763,7 @@ static int r_mark_ndAn(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 3 <= z->lb || z->p[z->c - 1] != 110) return 0;
-    if (!(find_among_b(z, a_9, 2))) return 0;
+    if (!find_among_b(z, a_9, 2)) return 0;
     return 1;
 }
 
@@ -762,7 +772,7 @@ static int r_mark_ylA(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
-    if (!(find_among_b(z, a_10, 2))) return 0;
+    if (!find_among_b(z, a_10, 2)) return 0;
     {   int ret = r_mark_suffix_with_optional_y_consonant(z);
         if (ret <= 0) return ret;
     }
@@ -779,7 +789,7 @@ static int r_mark_ncA(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
-    if (!(find_among_b(z, a_11, 2))) return 0;
+    if (!find_among_b(z, a_11, 2)) return 0;
     {   int ret = r_mark_suffix_with_optional_n_consonant(z);
         if (ret <= 0) return ret;
     }
@@ -791,7 +801,7 @@ static int r_mark_yUm(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 109) return 0;
-    if (!(find_among_b(z, a_12, 4))) return 0;
+    if (!find_among_b(z, a_12, 4)) return 0;
     {   int ret = r_mark_suffix_with_optional_y_consonant(z);
         if (ret <= 0) return ret;
     }
@@ -803,7 +813,7 @@ static int r_mark_sUn(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
-    if (!(find_among_b(z, a_13, 4))) return 0;
+    if (!find_among_b(z, a_13, 4)) return 0;
     return 1;
 }
 
@@ -812,7 +822,7 @@ static int r_mark_yUz(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 1 <= z->lb || z->p[z->c - 1] != 122) return 0;
-    if (!(find_among_b(z, a_14, 4))) return 0;
+    if (!find_among_b(z, a_14, 4)) return 0;
     {   int ret = r_mark_suffix_with_optional_y_consonant(z);
         if (ret <= 0) return ret;
     }
@@ -821,7 +831,7 @@ static int r_mark_yUz(struct SN_env * z) {
 
 static int r_mark_sUnUz(struct SN_env * z) {
     if (z->c - 4 <= z->lb || z->p[z->c - 1] != 122) return 0;
-    if (!(find_among_b(z, a_15, 4))) return 0;
+    if (!find_among_b(z, a_15, 4)) return 0;
     return 1;
 }
 
@@ -830,7 +840,7 @@ static int r_mark_lAr(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
-    if (!(find_among_b(z, a_16, 2))) return 0;
+    if (!find_among_b(z, a_16, 2)) return 0;
     return 1;
 }
 
@@ -839,7 +849,7 @@ static int r_mark_nUz(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 122) return 0;
-    if (!(find_among_b(z, a_17, 4))) return 0;
+    if (!find_among_b(z, a_17, 4)) return 0;
     return 1;
 }
 
@@ -848,13 +858,13 @@ static int r_mark_DUr(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
-    if (!(find_among_b(z, a_18, 8))) return 0;
+    if (!find_among_b(z, a_18, 8)) return 0;
     return 1;
 }
 
 static int r_mark_cAsInA(struct SN_env * z) {
     if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
-    if (!(find_among_b(z, a_19, 2))) return 0;
+    if (!find_among_b(z, a_19, 2)) return 0;
     return 1;
 }
 
@@ -862,7 +872,7 @@ static int r_mark_yDU(struct SN_env * z) {
     {   int ret = r_check_vowel_harmony(z);
         if (ret <= 0) return ret;
     }
-    if (!(find_among_b(z, a_20, 32))) return 0;
+    if (!find_among_b(z, a_20, 32)) return 0;
     {   int ret = r_mark_suffix_with_optional_y_consonant(z);
         if (ret <= 0) return ret;
     }
@@ -871,7 +881,7 @@ static int r_mark_yDU(struct SN_env * z) {
 
 static int r_mark_ysA(struct SN_env * z) {
     if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((26658 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
-    if (!(find_among_b(z, a_21, 8))) return 0;
+    if (!find_among_b(z, a_21, 8)) return 0;
     {   int ret = r_mark_suffix_with_optional_y_consonant(z);
         if (ret <= 0) return ret;
     }
@@ -883,7 +893,7 @@ static int r_mark_ymUs_(struct SN_env * z) {
         if (ret <= 0) return ret;
     }
     if (z->c - 3 <= z->lb || z->p[z->c - 1] != 159) return 0;
-    if (!(find_among_b(z, a_22, 4))) return 0;
+    if (!find_among_b(z, a_22, 4)) return 0;
     {   int ret = r_mark_suffix_with_optional_y_consonant(z);
         if (ret <= 0) return ret;
     }
@@ -1865,7 +1875,7 @@ static int r_post_process_last_consonants(struct SN_env * z) {
     int among_var;
     z->ket = z->c;
     among_var = find_among_b(z, a_23, 4);
-    if (!(among_var)) return 0;
+    if (!among_var) return 0;
     z->bra = z->c;
     switch (among_var) {
         case 1:
@@ -1893,108 +1903,77 @@ static int r_post_process_last_consonants(struct SN_env * z) {
 }
 
 static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) {
-    {   int m_test1 = z->l - z->c;
-        {   int m2 = z->l - z->c; (void)m2;
-            if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab1;
-            z->c--;
-            goto lab0;
-        lab1:
-            z->c = z->l - m2;
-            if (z->c <= z->lb || z->p[z->c - 1] != 'g') return 0;
-            z->c--;
-        }
-    lab0:
-        z->c = z->l - m_test1;
+    z->ket = z->c;
+    z->bra = z->c;
+    {   int m1 = z->l - z->c; (void)m1;
+        if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab1;
+        z->c--;
+        goto lab0;
+    lab1:
+        z->c = z->l - m1;
+        if (z->c <= z->lb || z->p[z->c - 1] != 'g') return 0;
+        z->c--;
     }
-    {   int m3 = z->l - z->c; (void)m3;
-        {   int m_test4 = z->l - z->c;
-            if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab3;
-            {   int m5 = z->l - z->c; (void)m5;
-                if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab5;
-                z->c--;
-                goto lab4;
-            lab5:
-                z->c = z->l - m5;
-                if (!(eq_s_b(z, 2, s_9))) goto lab3;
-            }
-        lab4:
-            z->c = z->l - m_test4;
+lab0:
+
+    if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int m3 = z->l - z->c; (void)m3;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab5;
+            z->c--;
+            goto lab4;
+        lab5:
+            z->c = z->l - m3;
+            if (!(eq_s_b(z, 2, s_9))) goto lab3;
         }
-        {   int ret;
-            {   int saved_c = z->c;
-                ret = insert_s(z, z->c, z->c, 2, s_10);
-                z->c = saved_c;
-            }
+    lab4:
+        {   int ret = slice_from_s(z, 2, s_10);
             if (ret < 0) return ret;
         }
         goto lab2;
     lab3:
-        z->c = z->l - m3;
-        {   int m_test6 = z->l - z->c;
-            if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab6;
-            {   int m7 = z->l - z->c; (void)m7;
-                if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8;
-                z->c--;
-                goto lab7;
-            lab8:
-                z->c = z->l - m7;
-                if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab6;
-                z->c--;
-            }
-        lab7:
-            z->c = z->l - m_test6;
+        z->c = z->l - m2;
+        {   int m4 = z->l - z->c; (void)m4;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8;
+            z->c--;
+            goto lab7;
+        lab8:
+            z->c = z->l - m4;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab6;
+            z->c--;
         }
-        {   int ret;
-            {   int saved_c = z->c;
-                ret = insert_s(z, z->c, z->c, 1, s_11);
-                z->c = saved_c;
-            }
+    lab7:
+        {   int ret = slice_from_s(z, 1, s_11);
             if (ret < 0) return ret;
         }
         goto lab2;
     lab6:
-        z->c = z->l - m3;
-        {   int m_test8 = z->l - z->c;
-            if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab9;
-            {   int m9 = z->l - z->c; (void)m9;
-                if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab11;
-                z->c--;
-                goto lab10;
-            lab11:
-                z->c = z->l - m9;
-                if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab9;
-                z->c--;
-            }
-        lab10:
-            z->c = z->l - m_test8;
+        z->c = z->l - m2;
+        {   int m5 = z->l - z->c; (void)m5;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab11;
+            z->c--;
+            goto lab10;
+        lab11:
+            z->c = z->l - m5;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab9;
+            z->c--;
         }
-        {   int ret;
-            {   int saved_c = z->c;
-                ret = insert_s(z, z->c, z->c, 1, s_12);
-                z->c = saved_c;
-            }
+    lab10:
+        {   int ret = slice_from_s(z, 1, s_12);
             if (ret < 0) return ret;
         }
         goto lab2;
     lab9:
-        z->c = z->l - m3;
-        {   int m_test10 = z->l - z->c;
-            if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
-            {   int m11 = z->l - z->c; (void)m11;
-                if (!(eq_s_b(z, 2, s_13))) goto lab13;
-                goto lab12;
-            lab13:
-                z->c = z->l - m11;
-                if (!(eq_s_b(z, 2, s_14))) return 0;
-            }
-        lab12:
-            z->c = z->l - m_test10;
+        z->c = z->l - m2;
+        {   int m6 = z->l - z->c; (void)m6;
+            if (!(eq_s_b(z, 2, s_13))) goto lab13;
+            goto lab12;
+        lab13:
+            z->c = z->l - m6;
+            if (!(eq_s_b(z, 2, s_14))) return 0;
         }
-        {   int ret;
-            {   int saved_c = z->c;
-                ret = insert_s(z, z->c, z->c, 2, s_15);
-                z->c = saved_c;
-            }
+    lab12:
+        {   int ret = slice_from_s(z, 2, s_15);
             if (ret < 0) return ret;
         }
     }
@@ -2013,23 +1992,43 @@ static int r_is_reserved_word(struct SN_env * z) {
     return 1;
 }
 
+static int r_remove_proper_noun_suffix(struct SN_env * z) {
+    {   int c1 = z->c;
+        while(1) {
+            int c2 = z->c;
+            if (z->c == z->l || z->p[z->c] != '\'') goto lab1;
+            z->c++;
+            z->c = c2;
+            break;
+        lab1:
+            z->c = c2;
+            {   int ret = skip_utf8(z->p, z->c, z->l, 1);
+                if (ret < 0) goto lab0;
+                z->c = ret;
+            }
+        }
+        z->bra = z->c;
+        z->c = z->l;
+        z->ket = z->c;
+        {   int ret = slice_del(z);
+            if (ret < 0) return ret;
+        }
+    lab0:
+        z->c = c1;
+    }
+    return 1;
+}
+
 static int r_more_than_one_syllable_word(struct SN_env * z) {
     {   int c_test1 = z->c;
-        {   int i = 2;
-            while(1) {
-                int c2 = z->c;
-                {   
+        {   int i; for (i = 2; i > 0; i--)
+            {
+                {
                     int ret = out_grouping_U(z, g_vowel, 97, 305, 1);
-                    if (ret < 0) goto lab0;
+                    if (ret < 0) return 0;
                     z->c += ret;
                 }
-                i--;
-                continue;
-            lab0:
-                z->c = c2;
-                break;
             }
-            if (i > 0) return 0;
         }
         z->c = c_test1;
     }
@@ -2065,6 +2064,10 @@ static int r_postlude(struct SN_env * z) {
 }
 
 extern int turkish_UTF_8_stem(struct SN_env * z) {
+
+    {   int ret = r_remove_proper_noun_suffix(z);
+        if (ret < 0) return ret;
+    }
     {   int ret = r_more_than_one_syllable_word(z);
         if (ret <= 0) return ret;
     }
index f169e056072ed0217fe3c57878169f0da3d55ba8..d98347407d60610841fbffa62eecc0dc27cbf80f 100644 (file)
@@ -508,7 +508,7 @@ static int r_prelude(struct SN_env * z) {
                 int c3 = z->c;
                 z->bra = z->c;
                 among_var = find_among(z, a_0, 8);
-                if (!(among_var)) goto lab2;
+                if (!among_var) goto lab2;
                 z->ket = z->c;
                 switch (among_var) {
                     case 1:
@@ -628,7 +628,11 @@ static int r_mark_regions(struct SN_env * z) {
                 goto lab2;
             lab3:
                 z->c = c3;
-                if (!(eq_s(z, 4, s_13))) goto lab1;
+                if (!(eq_s(z, 4, s_13))) goto lab4;
+                goto lab2;
+            lab4:
+                z->c = c3;
+                if (z->c < z->l) goto lab1;
             }
         lab2:
             { z->c = c1; goto lab0; }
@@ -642,52 +646,52 @@ static int r_mark_regions(struct SN_env * z) {
         ;
     }
     {   int c4 = z->c;
-        if (!(find_among(z, a_1, 40))) { z->c = c4; goto lab4; }
+        if (!find_among(z, a_1, 40)) { z->c = c4; goto lab5; }
         {   int c5 = z->c;
             {   int c_test6 = z->c;
                 {   int c7 = z->c;
-                    if (!(eq_s(z, 8, s_15))) goto lab8;
-                    goto lab7;
-                lab8:
-                    z->c = c7;
-                    if (!(eq_s(z, 8, s_16))) goto lab9;
-                    goto lab7;
+                    if (!(eq_s(z, 8, s_15))) goto lab9;
+                    goto lab8;
                 lab9:
                     z->c = c7;
-                    if (!(eq_s(z, 8, s_17))) goto lab6;
+                    if (!(eq_s(z, 8, s_16))) goto lab10;
+                    goto lab8;
+                lab10:
+                    z->c = c7;
+                    if (!(eq_s(z, 8, s_17))) goto lab7;
                 }
-            lab7:
-                if (z->c < z->l) goto lab6;
+            lab8:
+                if (z->c < z->l) goto lab7;
                 z->c = c_test6;
             }
-            goto lab5;
-        lab6:
+            goto lab6;
+        lab7:
             z->c = c5;
             {   int c_test8 = z->c;
-                if (!(eq_s(z, 8, s_18))) goto lab10;
+                if (!(eq_s(z, 8, s_18))) goto lab11;
                 z->c = c_test8;
             }
-            goto lab5;
-        lab10:
+            goto lab6;
+        lab11:
             z->c = c5;
             z->bra = z->c;
-            if (!(eq_s(z, 4, s_19))) goto lab11;
+            if (!(eq_s(z, 4, s_19))) goto lab12;
             z->ket = z->c;
             {   int ret = slice_from_s(z, 2, s_20);
                 if (ret < 0) return ret;
             }
-            goto lab5;
-        lab11:
+            goto lab6;
+        lab12:
             z->c = c5;
             z->bra = z->c;
-            if (!(eq_s(z, 4, s_21))) { z->c = c4; goto lab4; }
+            if (!(eq_s(z, 4, s_21))) { z->c = c4; goto lab5; }
             z->ket = z->c;
             {   int ret = slice_from_s(z, 3, s_22);
                 if (ret < 0) return ret;
             }
         }
+    lab6:
     lab5:
-    lab4:
         ;
     }
     {   int c_test9 = z->c;
@@ -699,43 +703,42 @@ static int r_mark_regions(struct SN_env * z) {
         z->c = c_test9;
     }
     {   int c10 = z->c;
-        if (z->c + 5 >= z->l || (z->p[z->c + 5] != 169 && z->p[z->c + 5] != 168)) { z->c = c10; goto lab12; }
-        if (!(find_among(z, a_2, 4))) { z->c = c10; goto lab12; }
-    lab12:
+        if (z->c + 5 >= z->l || (z->p[z->c + 5] != 169 && z->p[z->c + 5] != 168)) { z->c = c10; goto lab13; }
+        if (!find_among(z, a_2, 4)) { z->c = c10; goto lab13; }
+    lab13:
         ;
     }
     {   int c11 = z->c;
-        if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab13;
-        if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab13;
-        if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab13;
+        if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab14;
+        if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab14;
+        if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab14;
         z->I[1] = z->c;
         return 0;
-    lab13:
+    lab14:
         z->c = c11;
     }
+
     if (out_grouping_U(z, g_vowel, 1488, 1522, 1) < 0) return 0;
     while(1) {
-        if (in_grouping_U(z, g_vowel, 1488, 1522, 0)) goto lab14;
+        if (in_grouping_U(z, g_vowel, 1488, 1522, 0)) goto lab15;
         continue;
-    lab14:
+    lab15:
         break;
     }
     z->I[1] = z->c;
-    
-    if (!(z->I[1] < z->I[0])) goto lab15;
+
+    if (z->I[1] >= z->I[0]) goto lab16;
     z->I[1] = z->I[0];
-lab15:
+lab16:
     return 1;
 }
 
 static int r_R1(struct SN_env * z) {
-    if (!(z->I[1] <= z->c)) return 0;
-    return 1;
+    return z->I[1] <= z->c;
 }
 
 static int r_R1plus3(struct SN_env * z) {
-    if (!(z->I[1] <= (z->c + 6))) return 0;
-    return 1;
+    return z->I[1] <= (z->c + 6);
 }
 
 static int r_standard_suffix(struct SN_env * z) {
@@ -743,7 +746,7 @@ static int r_standard_suffix(struct SN_env * z) {
     {   int m1 = z->l - z->c; (void)m1;
         z->ket = z->c;
         among_var = find_among_b(z, a_4, 79);
-        if (!(among_var)) goto lab0;
+        if (!among_var) goto lab0;
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -774,7 +777,7 @@ static int r_standard_suffix(struct SN_env * z) {
                 }
                 z->ket = z->c;
                 among_var = find_among_b(z, a_3, 26);
-                if (!(among_var)) goto lab0;
+                if (!among_var) goto lab0;
                 z->bra = z->c;
                 switch (among_var) {
                     case 1:
@@ -1124,7 +1127,7 @@ static int r_standard_suffix(struct SN_env * z) {
         z->ket = z->c;
         if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((285474816 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab9;
         among_var = find_among_b(z, a_5, 6);
-        if (!(among_var)) goto lab9;
+        if (!among_var) goto lab9;
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -1153,7 +1156,7 @@ static int r_standard_suffix(struct SN_env * z) {
     {   int m8 = z->l - z->c; (void)m8;
         z->ket = z->c;
         among_var = find_among_b(z, a_6, 9);
-        if (!(among_var)) goto lab10;
+        if (!among_var) goto lab10;
         z->bra = z->c;
         switch (among_var) {
             case 1:
@@ -1207,7 +1210,7 @@ static int r_standard_suffix(struct SN_env * z) {
 }
 
 extern int yiddish_UTF_8_stem(struct SN_env * z) {
-    
+
     {   int ret = r_prelude(z);
         if (ret < 0) return ret;
     }
@@ -1219,7 +1222,7 @@ extern int yiddish_UTF_8_stem(struct SN_env * z) {
     }
     z->lb = z->c; z->c = z->l;
 
-    
+
     {   int ret = r_standard_suffix(z);
         if (ret < 0) return ret;
     }
index 1ecd2410fe7e629c13a859affbd00ae158da3d5d..8acc18541d5a8588367514789139e853d0ae2160 100644 (file)
@@ -281,7 +281,7 @@ extern int find_among(struct SN_env * z, const struct among * v, int v_size) {
         w = v + i;
         if (common_i >= w->s_size) {
             z->c = c + w->s_size;
-            if (w->function == 0) return w->result;
+            if (w->function == NULL) return w->result;
             {
                 int res = w->function(z);
                 z->c = c + w->s_size;
@@ -336,7 +336,7 @@ extern int find_among_b(struct SN_env * z, const struct among * v, int v_size) {
         w = v + i;
         if (common_i >= w->s_size) {
             z->c = c - w->s_size;
-            if (w->function == 0) return w->result;
+            if (w->function == NULL) return w->result;
             {
                 int res = w->function(z);
                 z->c = c - w->s_size;
@@ -429,7 +429,7 @@ extern int slice_from_v(struct SN_env * z, const symbol * p) {
 }
 
 extern int slice_del(struct SN_env * z) {
-    return slice_from_s(z, 0, 0);
+    return slice_from_s(z, 0, NULL);
 }
 
 extern int insert_s(struct SN_env * z, int bra, int ket, int s_size, const symbol * s) {
index 4a39d4e2f3f881b48eecd994c3d993769d7d2d81..8e73d9d7368236a427f468eac2f88233bf3c7407 100644 (file)
@@ -24,7 +24,6 @@ dict_snowball_sources += files(
   'libstemmer/stem_ISO_8859_1_spanish.c',
   'libstemmer/stem_ISO_8859_1_swedish.c',
   'libstemmer/stem_ISO_8859_2_hungarian.c',
-  'libstemmer/stem_ISO_8859_2_romanian.c',
   'libstemmer/stem_KOI8_R_russian.c',
   'libstemmer/stem_UTF_8_arabic.c',
   'libstemmer/stem_UTF_8_armenian.c',
@@ -33,6 +32,7 @@ dict_snowball_sources += files(
   'libstemmer/stem_UTF_8_danish.c',
   'libstemmer/stem_UTF_8_dutch.c',
   'libstemmer/stem_UTF_8_english.c',
+  'libstemmer/stem_UTF_8_estonian.c',
   'libstemmer/stem_UTF_8_finnish.c',
   'libstemmer/stem_UTF_8_french.c',
   'libstemmer/stem_UTF_8_german.c',
index 76fa8960e2d5512bd120436db5144b95ffa608aa..dffa8feb769002d3ac708704004870a9ee9fb34c 100644 (file)
@@ -19,6 +19,7 @@ our @languages = qw(
   danish
   dutch
   english
+  estonian
   finnish
   french
   german
index 759672a9b97c911d7ebe71b4d61d4ba579b666cf..21a0fe3ecd97d696e03c8a194d4ddd4006a78dfa 100644 (file)
@@ -883,6 +883,8 @@ static const struct tsearch_config_match tsearch_config_languages[] =
    {"english", "POSIX"},
    {"english", "en"},
    {"english", "English"},
+   {"estonian", "et"},
+   {"estonian", "Estonian"},
    {"finnish", "fi"},
    {"finnish", "Finnish"},
    {"french", "fr"},
index ef5a5464067e927776470670913067b1aae078fd..bf172d5b9bdf98e0fa49e4a1affdf2dab1169d14 100644 (file)
@@ -45,7 +45,7 @@ extern int eq_v_b(struct SN_env * z, const symbol * p);
 extern int find_among(struct SN_env * z, const struct among * v, int v_size);
 extern int find_among_b(struct SN_env * z, const struct among * v, int v_size);
 
-extern int replace_s(struct SN_env * z, int c_bra, int c_ket, int s_size, const symbol * s, int * adjptr);
+extern int replace_s(struct SN_env * z, int c_bra, int c_ket, int s_size, const symbol * s, int * adjustment);
 extern int slice_from_s(struct SN_env * z, int s_size, const symbol * s);
 extern int slice_from_v(struct SN_env * z, const symbol * p);
 extern int slice_del(struct SN_env * z);
diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_2_romanian.h b/src/include/snowball/libstemmer/stem_ISO_8859_2_romanian.h
deleted file mode 100644 (file)
index a7acc38..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern struct SN_env * romanian_ISO_8859_2_create_env(void);
-extern void romanian_ISO_8859_2_close_env(struct SN_env * z);
-
-extern int romanian_ISO_8859_2_stem(struct SN_env * z);
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/include/snowball/libstemmer/stem_UTF_8_estonian.h b/src/include/snowball/libstemmer/stem_UTF_8_estonian.h
new file mode 100644 (file)
index 0000000..9b9deb1
--- /dev/null
@@ -0,0 +1,15 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern struct SN_env * estonian_UTF_8_create_env(void);
+extern void estonian_UTF_8_close_env(struct SN_env * z);
+
+extern int estonian_UTF_8_stem(struct SN_env * z);
+
+#ifdef __cplusplus
+}
+#endif
+