Update snowball
authorPeter Eisentraut <peter@eisentraut.org>
Fri, 19 Feb 2021 06:57:42 +0000 (07:57 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Fri, 19 Feb 2021 07:10:15 +0000 (08:10 +0100)
Update to snowball tag v2.1.0.  Major changes are new stemmers for
Armenian, Serbian, and Yiddish.

106 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
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 [new file with mode: 0644]
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_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 [new file with mode: 0644]
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 [new file with mode: 0644]
src/backend/snowball/libstemmer/utilities.c
src/bin/initdb/initdb.c
src/include/catalog/catversion.h
src/include/snowball/libstemmer/api.h
src/include/snowball/libstemmer/header.h
src/include/snowball/libstemmer/stem_ISO_8859_1_basque.h
src/include/snowball/libstemmer/stem_ISO_8859_1_catalan.h
src/include/snowball/libstemmer/stem_ISO_8859_1_danish.h
src/include/snowball/libstemmer/stem_ISO_8859_1_dutch.h
src/include/snowball/libstemmer/stem_ISO_8859_1_english.h
src/include/snowball/libstemmer/stem_ISO_8859_1_finnish.h
src/include/snowball/libstemmer/stem_ISO_8859_1_french.h
src/include/snowball/libstemmer/stem_ISO_8859_1_german.h
src/include/snowball/libstemmer/stem_ISO_8859_1_indonesian.h
src/include/snowball/libstemmer/stem_ISO_8859_1_irish.h
src/include/snowball/libstemmer/stem_ISO_8859_1_italian.h
src/include/snowball/libstemmer/stem_ISO_8859_1_norwegian.h
src/include/snowball/libstemmer/stem_ISO_8859_1_porter.h
src/include/snowball/libstemmer/stem_ISO_8859_1_portuguese.h
src/include/snowball/libstemmer/stem_ISO_8859_1_spanish.h
src/include/snowball/libstemmer/stem_ISO_8859_1_swedish.h
src/include/snowball/libstemmer/stem_ISO_8859_2_hungarian.h
src/include/snowball/libstemmer/stem_ISO_8859_2_romanian.h
src/include/snowball/libstemmer/stem_KOI8_R_russian.h
src/include/snowball/libstemmer/stem_UTF_8_arabic.h
src/include/snowball/libstemmer/stem_UTF_8_armenian.h [new file with mode: 0644]
src/include/snowball/libstemmer/stem_UTF_8_basque.h
src/include/snowball/libstemmer/stem_UTF_8_catalan.h
src/include/snowball/libstemmer/stem_UTF_8_danish.h
src/include/snowball/libstemmer/stem_UTF_8_dutch.h
src/include/snowball/libstemmer/stem_UTF_8_english.h
src/include/snowball/libstemmer/stem_UTF_8_finnish.h
src/include/snowball/libstemmer/stem_UTF_8_french.h
src/include/snowball/libstemmer/stem_UTF_8_german.h
src/include/snowball/libstemmer/stem_UTF_8_greek.h
src/include/snowball/libstemmer/stem_UTF_8_hindi.h
src/include/snowball/libstemmer/stem_UTF_8_hungarian.h
src/include/snowball/libstemmer/stem_UTF_8_indonesian.h
src/include/snowball/libstemmer/stem_UTF_8_irish.h
src/include/snowball/libstemmer/stem_UTF_8_italian.h
src/include/snowball/libstemmer/stem_UTF_8_lithuanian.h
src/include/snowball/libstemmer/stem_UTF_8_nepali.h
src/include/snowball/libstemmer/stem_UTF_8_norwegian.h
src/include/snowball/libstemmer/stem_UTF_8_porter.h
src/include/snowball/libstemmer/stem_UTF_8_portuguese.h
src/include/snowball/libstemmer/stem_UTF_8_romanian.h
src/include/snowball/libstemmer/stem_UTF_8_russian.h
src/include/snowball/libstemmer/stem_UTF_8_serbian.h [new file with mode: 0644]
src/include/snowball/libstemmer/stem_UTF_8_spanish.h
src/include/snowball/libstemmer/stem_UTF_8_swedish.h
src/include/snowball/libstemmer/stem_UTF_8_tamil.h
src/include/snowball/libstemmer/stem_UTF_8_turkish.h
src/include/snowball/libstemmer/stem_UTF_8_yiddish.h [new file with mode: 0644]

index 1e52d193b44b128718a0741a64e15ab64679be88..168d84f06b5e1fb29fcb4853920fd72899fdc739 100644 (file)
@@ -3837,6 +3837,7 @@ Parser: "pg_catalog.default"
    Schema   |      Name       |                        Description
 ------------+-----------------+-----------------------------------------------------------
  pg_catalog | arabic_stem     | snowball stemmer for arabic language
+ pg_catalog | armenian_stem   | snowball stemmer for armenian language
  pg_catalog | basque_stem     | snowball stemmer for basque language
  pg_catalog | catalan_stem    | snowball stemmer for catalan language
  pg_catalog | danish_stem     | snowball stemmer for danish language
@@ -3857,11 +3858,13 @@ Parser: "pg_catalog.default"
  pg_catalog | portuguese_stem | snowball stemmer for portuguese language
  pg_catalog | romanian_stem   | snowball stemmer for romanian language
  pg_catalog | russian_stem    | snowball stemmer for russian language
+ pg_catalog | serbian_stem    | snowball stemmer for serbian language
  pg_catalog | simple          | simple dictionary: just lower case and check for stopword
  pg_catalog | spanish_stem    | snowball stemmer for spanish language
  pg_catalog | swedish_stem    | snowball stemmer for swedish language
  pg_catalog | tamil_stem      | snowball stemmer for tamil language
  pg_catalog | turkish_stem    | snowball stemmer for turkish language
+ pg_catalog | yiddish_stem    | snowball stemmer for yiddish language
 </screen>
      </para>
     </listitem>
index ad8482cdd1a710da9ea33ba1eec7e6af35f03df3..50b9199910c5b05eb4e99e69c94661b505eadfe5 100644 (file)
@@ -43,6 +43,7 @@ OBJS += \
    stem_ISO_8859_2_romanian.o \
    stem_KOI8_R_russian.o \
    stem_UTF_8_arabic.o \
+   stem_UTF_8_armenian.o \
    stem_UTF_8_basque.o \
    stem_UTF_8_catalan.o \
    stem_UTF_8_danish.o \
@@ -64,10 +65,12 @@ OBJS += \
    stem_UTF_8_portuguese.o \
    stem_UTF_8_romanian.o \
    stem_UTF_8_russian.o \
+   stem_UTF_8_serbian.o \
    stem_UTF_8_spanish.o \
    stem_UTF_8_swedish.o \
    stem_UTF_8_tamil.o \
-   stem_UTF_8_turkish.o
+   stem_UTF_8_turkish.o \
+   stem_UTF_8_yiddish.o
 
 # first column is language name and also name of dictionary for not-all-ASCII
 # words, second is name of dictionary for all-ASCII words
@@ -75,6 +78,7 @@ OBJS += \
 # must come after creation of that language
 LANGUAGES=  \
    arabic      arabic      \
+   armenian    armenian    \
    basque      basque      \
    catalan     catalan     \
    danish      danish      \
@@ -95,10 +99,12 @@ LANGUAGES=  \
    portuguese  portuguese  \
    romanian    romanian    \
    russian     english     \
+   serbian     serbian     \
    spanish     spanish     \
    swedish     swedish     \
    tamil       tamil       \
-   turkish     turkish
+   turkish     turkish     \
+   yiddish     yiddish
 
 
 SQLSCRIPT= snowball_create.sql
index 6948c28b69f3855fb7dd42fce3203015b75457ea..d83321bad439a219d009d36107bdd174f43c2bdf 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
-c70ed64f9d41c1032fba4e962b054f8e9d489a74 (tag v2.0.0)
-of 2019-10-02.
+4764395431c8f2a0b4fe18b816ab1fc966a45837 (tag v2.1.0)
+of 2021-01-21.
 
 To update the PostgreSQL sources from a new Snowball version:
 
@@ -59,7 +59,8 @@ do not require any changes.
 
 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.  You might also need to change
+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.
 
 5. The various stopword files in stopwords/ must be downloaded
index 044e20cef85c3dfa83ac35c124cffab65d04c3df..8c25f3ebbf2f36d0219a666fc8378076f5648c7b 100644 (file)
@@ -46,6 +46,7 @@
 #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"
 #include "snowball/libstemmer/stem_UTF_8_basque.h"
 #include "snowball/libstemmer/stem_UTF_8_catalan.h"
 #include "snowball/libstemmer/stem_UTF_8_danish.h"
 #include "snowball/libstemmer/stem_UTF_8_portuguese.h"
 #include "snowball/libstemmer/stem_UTF_8_romanian.h"
 #include "snowball/libstemmer/stem_UTF_8_russian.h"
+#include "snowball/libstemmer/stem_UTF_8_serbian.h"
 #include "snowball/libstemmer/stem_UTF_8_spanish.h"
 #include "snowball/libstemmer/stem_UTF_8_swedish.h"
 #include "snowball/libstemmer/stem_UTF_8_tamil.h"
 #include "snowball/libstemmer/stem_UTF_8_turkish.h"
+#include "snowball/libstemmer/stem_UTF_8_yiddish.h"
 
 PG_MODULE_MAGIC;
 
@@ -117,6 +120,7 @@ static const stemmer_module stemmer_modules[] =
    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),
    STEMMER_MODULE(basque, PG_UTF8, UTF_8),
    STEMMER_MODULE(catalan, PG_UTF8, UTF_8),
    STEMMER_MODULE(danish, PG_UTF8, UTF_8),
@@ -138,10 +142,12 @@ static const stemmer_module stemmer_modules[] =
    STEMMER_MODULE(portuguese, PG_UTF8, UTF_8),
    STEMMER_MODULE(romanian, PG_UTF8, UTF_8),
    STEMMER_MODULE(russian, PG_UTF8, UTF_8),
+   STEMMER_MODULE(serbian, PG_UTF8, UTF_8),
    STEMMER_MODULE(spanish, PG_UTF8, UTF_8),
    STEMMER_MODULE(swedish, PG_UTF8, UTF_8),
    STEMMER_MODULE(tamil, PG_UTF8, UTF_8),
    STEMMER_MODULE(turkish, PG_UTF8, UTF_8),
+   STEMMER_MODULE(yiddish, PG_UTF8, UTF_8),
 
    /*
     * Stemmer with PG_SQL_ASCII encoding should be valid for any server
index 8dd32df3d4298dad42b247ee6542e4ce533e4274..375938e6d13fdfa106b0f330ef38916d10d61878 100644 (file)
@@ -1,6 +1,6 @@
 #include "header.h"
 
-extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size)
+extern struct SN_env * SN_create_env(int S_size, int I_size)
 {
     struct SN_env * z = (struct SN_env *) calloc(1, sizeof(struct SN_env));
     if (z == NULL) return NULL;
@@ -25,12 +25,6 @@ extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size)
         if (z->I == NULL) goto error;
     }
 
-    if (B_size)
-    {
-        z->B = (unsigned char *) calloc(B_size, sizeof(unsigned char));
-        if (z->B == NULL) goto error;
-    }
-
     return z;
 error:
     SN_close_env(z, S_size);
@@ -50,7 +44,6 @@ extern void SN_close_env(struct SN_env * z, int S_size)
         free(z->S);
     }
     free(z->I);
-    free(z->B);
     if (z->p) lose_s(z->p);
     free(z);
 }
index 7f080d8e84cefd9a92871cb0037677dc40c2b5f9..994ac234bb232d398c749a792b2e5d4e54c8eb20 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -140,115 +140,115 @@ static const symbol s_0_108[5] = { 'k', 'a', 'i', 't', 'z' };
 
 static const struct among a_0[109] =
 {
-/*  0 */ { 4, s_0_0, -1, 1, 0},
-/*  1 */ { 5, s_0_1, 0, 1, 0},
-/*  2 */ { 5, s_0_2, 0, 1, 0},
-/*  3 */ { 5, s_0_3, 0, 1, 0},
-/*  4 */ { 6, s_0_4, -1, 1, 0},
-/*  5 */ { 5, s_0_5, -1, 1, 0},
-/*  6 */ { 6, s_0_6, -1, 1, 0},
-/*  7 */ { 7, s_0_7, -1, 1, 0},
-/*  8 */ { 5, s_0_8, -1, 1, 0},
-/*  9 */ { 5, s_0_9, -1, 1, 0},
-/* 10 */ { 5, s_0_10, -1, 1, 0},
-/* 11 */ { 4, s_0_11, -1, 1, 0},
-/* 12 */ { 5, s_0_12, -1, 1, 0},
-/* 13 */ { 6, s_0_13, 12, 1, 0},
-/* 14 */ { 5, s_0_14, -1, 1, 0},
-/* 15 */ { 6, s_0_15, -1, 2, 0},
-/* 16 */ { 6, s_0_16, -1, 1, 0},
-/* 17 */ { 2, s_0_17, -1, 1, 0},
-/* 18 */ { 5, s_0_18, 17, 1, 0},
-/* 19 */ { 2, s_0_19, -1, 1, 0},
-/* 20 */ { 4, s_0_20, -1, 1, 0},
-/* 21 */ { 4, s_0_21, -1, 1, 0},
-/* 22 */ { 4, s_0_22, -1, 1, 0},
-/* 23 */ { 5, s_0_23, -1, 1, 0},
-/* 24 */ { 6, s_0_24, 23, 1, 0},
-/* 25 */ { 4, s_0_25, -1, 1, 0},
-/* 26 */ { 4, s_0_26, -1, 1, 0},
-/* 27 */ { 6, s_0_27, -1, 1, 0},
-/* 28 */ { 3, s_0_28, -1, 1, 0},
-/* 29 */ { 4, s_0_29, 28, 1, 0},
-/* 30 */ { 7, s_0_30, 29, 4, 0},
-/* 31 */ { 4, s_0_31, 28, 1, 0},
-/* 32 */ { 4, s_0_32, 28, 1, 0},
-/* 33 */ { 4, s_0_33, -1, 1, 0},
-/* 34 */ { 5, s_0_34, 33, 1, 0},
-/* 35 */ { 4, s_0_35, -1, 1, 0},
-/* 36 */ { 4, s_0_36, -1, 1, 0},
-/* 37 */ { 4, s_0_37, -1, 1, 0},
-/* 38 */ { 4, s_0_38, -1, 1, 0},
-/* 39 */ { 3, s_0_39, -1, 1, 0},
-/* 40 */ { 4, s_0_40, 39, 1, 0},
-/* 41 */ { 6, s_0_41, -1, 1, 0},
-/* 42 */ { 3, s_0_42, -1, 1, 0},
-/* 43 */ { 6, s_0_43, 42, 1, 0},
-/* 44 */ { 3, s_0_44, -1, 2, 0},
-/* 45 */ { 6, s_0_45, 44, 1, 0},
-/* 46 */ { 6, s_0_46, 44, 1, 0},
-/* 47 */ { 6, s_0_47, 44, 1, 0},
-/* 48 */ { 3, s_0_48, -1, 1, 0},
-/* 49 */ { 4, s_0_49, 48, 1, 0},
-/* 50 */ { 4, s_0_50, 48, 1, 0},
-/* 51 */ { 4, s_0_51, 48, 1, 0},
-/* 52 */ { 5, s_0_52, -1, 1, 0},
-/* 53 */ { 5, s_0_53, -1, 1, 0},
-/* 54 */ { 5, s_0_54, -1, 1, 0},
-/* 55 */ { 2, s_0_55, -1, 1, 0},
-/* 56 */ { 4, s_0_56, 55, 1, 0},
-/* 57 */ { 5, s_0_57, 55, 1, 0},
-/* 58 */ { 6, s_0_58, 55, 1, 0},
-/* 59 */ { 4, s_0_59, -1, 1, 0},
-/* 60 */ { 4, s_0_60, -1, 1, 0},
-/* 61 */ { 3, s_0_61, -1, 1, 0},
-/* 62 */ { 4, s_0_62, 61, 1, 0},
-/* 63 */ { 3, s_0_63, -1, 1, 0},
-/* 64 */ { 4, s_0_64, -1, 1, 0},
-/* 65 */ { 5, s_0_65, 64, 1, 0},
-/* 66 */ { 2, s_0_66, -1, 1, 0},
-/* 67 */ { 3, s_0_67, -1, 1, 0},
-/* 68 */ { 4, s_0_68, 67, 1, 0},
-/* 69 */ { 4, s_0_69, 67, 1, 0},
-/* 70 */ { 4, s_0_70, 67, 1, 0},
-/* 71 */ { 5, s_0_71, 70, 1, 0},
-/* 72 */ { 5, s_0_72, -1, 2, 0},
-/* 73 */ { 5, s_0_73, -1, 1, 0},
-/* 74 */ { 5, s_0_74, -1, 1, 0},
-/* 75 */ { 6, s_0_75, 74, 1, 0},
-/* 76 */ { 2, s_0_76, -1, 1, 0},
-/* 77 */ { 3, s_0_77, 76, 1, 0},
-/* 78 */ { 4, s_0_78, 77, 1, 0},
-/* 79 */ { 3, s_0_79, 76, 1, 0},
-/* 80 */ { 4, s_0_80, 76, 1, 0},
-/* 81 */ { 7, s_0_81, -1, 3, 0},
-/* 82 */ { 3, s_0_82, -1, 1, 0},
-/* 83 */ { 3, s_0_83, -1, 1, 0},
-/* 84 */ { 3, s_0_84, -1, 1, 0},
-/* 85 */ { 5, s_0_85, 84, 1, 0},
-/* 86 */ { 4, s_0_86, -1, 1, 0},
-/* 87 */ { 5, s_0_87, 86, 1, 0},
-/* 88 */ { 3, s_0_88, -1, 1, 0},
-/* 89 */ { 5, s_0_89, -1, 1, 0},
-/* 90 */ { 2, s_0_90, -1, 1, 0},
-/* 91 */ { 3, s_0_91, 90, 1, 0},
-/* 92 */ { 3, s_0_92, -1, 1, 0},
-/* 93 */ { 4, s_0_93, -1, 1, 0},
-/* 94 */ { 2, s_0_94, -1, 1, 0},
-/* 95 */ { 3, s_0_95, 94, 1, 0},
-/* 96 */ { 4, s_0_96, -1, 1, 0},
-/* 97 */ { 2, s_0_97, -1, 1, 0},
-/* 98 */ { 5, s_0_98, -1, 1, 0},
-/* 99 */ { 2, s_0_99, -1, 1, 0},
-/*100 */ { 3, s_0_100, 99, 1, 0},
-/*101 */ { 6, s_0_101, 100, 1, 0},
-/*102 */ { 4, s_0_102, 100, 1, 0},
-/*103 */ { 6, s_0_103, 99, 5, 0},
-/*104 */ { 2, s_0_104, -1, 1, 0},
-/*105 */ { 5, s_0_105, 104, 1, 0},
-/*106 */ { 4, s_0_106, 104, 1, 0},
-/*107 */ { 5, s_0_107, -1, 1, 0},
-/*108 */ { 5, s_0_108, -1, 1, 0}
+{ 4, s_0_0, -1, 1, 0},
+{ 5, s_0_1, 0, 1, 0},
+{ 5, s_0_2, 0, 1, 0},
+{ 5, s_0_3, 0, 1, 0},
+{ 6, s_0_4, -1, 1, 0},
+{ 5, s_0_5, -1, 1, 0},
+{ 6, s_0_6, -1, 1, 0},
+{ 7, s_0_7, -1, 1, 0},
+{ 5, s_0_8, -1, 1, 0},
+{ 5, s_0_9, -1, 1, 0},
+{ 5, s_0_10, -1, 1, 0},
+{ 4, s_0_11, -1, 1, 0},
+{ 5, s_0_12, -1, 1, 0},
+{ 6, s_0_13, 12, 1, 0},
+{ 5, s_0_14, -1, 1, 0},
+{ 6, s_0_15, -1, 2, 0},
+{ 6, s_0_16, -1, 1, 0},
+{ 2, s_0_17, -1, 1, 0},
+{ 5, s_0_18, 17, 1, 0},
+{ 2, s_0_19, -1, 1, 0},
+{ 4, s_0_20, -1, 1, 0},
+{ 4, s_0_21, -1, 1, 0},
+{ 4, s_0_22, -1, 1, 0},
+{ 5, s_0_23, -1, 1, 0},
+{ 6, s_0_24, 23, 1, 0},
+{ 4, s_0_25, -1, 1, 0},
+{ 4, s_0_26, -1, 1, 0},
+{ 6, s_0_27, -1, 1, 0},
+{ 3, s_0_28, -1, 1, 0},
+{ 4, s_0_29, 28, 1, 0},
+{ 7, s_0_30, 29, 4, 0},
+{ 4, s_0_31, 28, 1, 0},
+{ 4, s_0_32, 28, 1, 0},
+{ 4, s_0_33, -1, 1, 0},
+{ 5, s_0_34, 33, 1, 0},
+{ 4, s_0_35, -1, 1, 0},
+{ 4, s_0_36, -1, 1, 0},
+{ 4, s_0_37, -1, 1, 0},
+{ 4, s_0_38, -1, 1, 0},
+{ 3, s_0_39, -1, 1, 0},
+{ 4, s_0_40, 39, 1, 0},
+{ 6, s_0_41, -1, 1, 0},
+{ 3, s_0_42, -1, 1, 0},
+{ 6, s_0_43, 42, 1, 0},
+{ 3, s_0_44, -1, 2, 0},
+{ 6, s_0_45, 44, 1, 0},
+{ 6, s_0_46, 44, 1, 0},
+{ 6, s_0_47, 44, 1, 0},
+{ 3, s_0_48, -1, 1, 0},
+{ 4, s_0_49, 48, 1, 0},
+{ 4, s_0_50, 48, 1, 0},
+{ 4, s_0_51, 48, 1, 0},
+{ 5, s_0_52, -1, 1, 0},
+{ 5, s_0_53, -1, 1, 0},
+{ 5, s_0_54, -1, 1, 0},
+{ 2, s_0_55, -1, 1, 0},
+{ 4, s_0_56, 55, 1, 0},
+{ 5, s_0_57, 55, 1, 0},
+{ 6, s_0_58, 55, 1, 0},
+{ 4, s_0_59, -1, 1, 0},
+{ 4, s_0_60, -1, 1, 0},
+{ 3, s_0_61, -1, 1, 0},
+{ 4, s_0_62, 61, 1, 0},
+{ 3, s_0_63, -1, 1, 0},
+{ 4, s_0_64, -1, 1, 0},
+{ 5, s_0_65, 64, 1, 0},
+{ 2, s_0_66, -1, 1, 0},
+{ 3, s_0_67, -1, 1, 0},
+{ 4, s_0_68, 67, 1, 0},
+{ 4, s_0_69, 67, 1, 0},
+{ 4, s_0_70, 67, 1, 0},
+{ 5, s_0_71, 70, 1, 0},
+{ 5, s_0_72, -1, 2, 0},
+{ 5, s_0_73, -1, 1, 0},
+{ 5, s_0_74, -1, 1, 0},
+{ 6, s_0_75, 74, 1, 0},
+{ 2, s_0_76, -1, 1, 0},
+{ 3, s_0_77, 76, 1, 0},
+{ 4, s_0_78, 77, 1, 0},
+{ 3, s_0_79, 76, 1, 0},
+{ 4, s_0_80, 76, 1, 0},
+{ 7, s_0_81, -1, 3, 0},
+{ 3, s_0_82, -1, 1, 0},
+{ 3, s_0_83, -1, 1, 0},
+{ 3, s_0_84, -1, 1, 0},
+{ 5, s_0_85, 84, 1, 0},
+{ 4, s_0_86, -1, 1, 0},
+{ 5, s_0_87, 86, 1, 0},
+{ 3, s_0_88, -1, 1, 0},
+{ 5, s_0_89, -1, 1, 0},
+{ 2, s_0_90, -1, 1, 0},
+{ 3, s_0_91, 90, 1, 0},
+{ 3, s_0_92, -1, 1, 0},
+{ 4, s_0_93, -1, 1, 0},
+{ 2, s_0_94, -1, 1, 0},
+{ 3, s_0_95, 94, 1, 0},
+{ 4, s_0_96, -1, 1, 0},
+{ 2, s_0_97, -1, 1, 0},
+{ 5, s_0_98, -1, 1, 0},
+{ 2, s_0_99, -1, 1, 0},
+{ 3, s_0_100, 99, 1, 0},
+{ 6, s_0_101, 100, 1, 0},
+{ 4, s_0_102, 100, 1, 0},
+{ 6, s_0_103, 99, 5, 0},
+{ 2, s_0_104, -1, 1, 0},
+{ 5, s_0_105, 104, 1, 0},
+{ 4, s_0_106, 104, 1, 0},
+{ 5, s_0_107, -1, 1, 0},
+{ 5, s_0_108, -1, 1, 0}
 };
 
 static const symbol s_1_0[3] = { 'a', 'd', 'a' };
@@ -549,301 +549,301 @@ static const symbol s_1_294[5] = { 'k', 'o', 'i', 't', 'z' };
 
 static const struct among a_1[295] =
 {
-/*  0 */ { 3, s_1_0, -1, 1, 0},
-/*  1 */ { 4, s_1_1, 0, 1, 0},
-/*  2 */ { 4, s_1_2, -1, 1, 0},
-/*  3 */ { 5, s_1_3, -1, 1, 0},
-/*  4 */ { 5, s_1_4, -1, 1, 0},
-/*  5 */ { 5, s_1_5, -1, 1, 0},
-/*  6 */ { 5, s_1_6, -1, 1, 0},
-/*  7 */ { 6, s_1_7, 6, 1, 0},
-/*  8 */ { 6, s_1_8, 6, 1, 0},
-/*  9 */ { 5, s_1_9, -1, 1, 0},
-/* 10 */ { 5, s_1_10, -1, 1, 0},
-/* 11 */ { 6, s_1_11, 10, 1, 0},
-/* 12 */ { 5, s_1_12, -1, 1, 0},
-/* 13 */ { 4, s_1_13, -1, 1, 0},
-/* 14 */ { 5, s_1_14, -1, 1, 0},
-/* 15 */ { 3, s_1_15, -1, 1, 0},
-/* 16 */ { 4, s_1_16, 15, 1, 0},
-/* 17 */ { 6, s_1_17, 15, 1, 0},
-/* 18 */ { 4, s_1_18, 15, 1, 0},
-/* 19 */ { 5, s_1_19, 18, 1, 0},
-/* 20 */ { 3, s_1_20, -1, 1, 0},
-/* 21 */ { 6, s_1_21, -1, 1, 0},
-/* 22 */ { 3, s_1_22, -1, 1, 0},
-/* 23 */ { 5, s_1_23, 22, 1, 0},
-/* 24 */ { 5, s_1_24, 22, 1, 0},
-/* 25 */ { 5, s_1_25, 22, 1, 0},
-/* 26 */ { 5, s_1_26, -1, 1, 0},
-/* 27 */ { 2, s_1_27, -1, 1, 0},
-/* 28 */ { 4, s_1_28, 27, 1, 0},
-/* 29 */ { 4, s_1_29, -1, 1, 0},
-/* 30 */ { 5, s_1_30, -1, 1, 0},
-/* 31 */ { 6, s_1_31, 30, 1, 0},
-/* 32 */ { 6, s_1_32, -1, 1, 0},
-/* 33 */ { 6, s_1_33, -1, 1, 0},
-/* 34 */ { 4, s_1_34, -1, 1, 0},
-/* 35 */ { 4, s_1_35, -1, 1, 0},
-/* 36 */ { 5, s_1_36, 35, 1, 0},
-/* 37 */ { 5, s_1_37, 35, 1, 0},
-/* 38 */ { 5, s_1_38, -1, 1, 0},
-/* 39 */ { 4, s_1_39, -1, 1, 0},
-/* 40 */ { 3, s_1_40, -1, 1, 0},
-/* 41 */ { 5, s_1_41, 40, 1, 0},
-/* 42 */ { 3, s_1_42, -1, 1, 0},
-/* 43 */ { 4, s_1_43, 42, 1, 0},
-/* 44 */ { 4, s_1_44, -1, 1, 0},
-/* 45 */ { 5, s_1_45, 44, 1, 0},
-/* 46 */ { 5, s_1_46, 44, 1, 0},
-/* 47 */ { 5, s_1_47, 44, 1, 0},
-/* 48 */ { 4, s_1_48, -1, 1, 0},
-/* 49 */ { 5, s_1_49, 48, 1, 0},
-/* 50 */ { 5, s_1_50, 48, 1, 0},
-/* 51 */ { 6, s_1_51, -1, 2, 0},
-/* 52 */ { 6, s_1_52, -1, 1, 0},
-/* 53 */ { 6, s_1_53, -1, 1, 0},
-/* 54 */ { 5, s_1_54, -1, 1, 0},
-/* 55 */ { 4, s_1_55, -1, 1, 0},
-/* 56 */ { 3, s_1_56, -1, 1, 0},
-/* 57 */ { 4, s_1_57, -1, 1, 0},
-/* 58 */ { 5, s_1_58, -1, 1, 0},
-/* 59 */ { 6, s_1_59, -1, 1, 0},
-/* 60 */ { 2, s_1_60, -1, 1, 0},
-/* 61 */ { 4, s_1_61, 60, 3, 0},
-/* 62 */ { 5, s_1_62, 60, 10, 0},
-/* 63 */ { 3, s_1_63, 60, 1, 0},
-/* 64 */ { 3, s_1_64, 60, 1, 0},
-/* 65 */ { 3, s_1_65, 60, 1, 0},
-/* 66 */ { 6, s_1_66, -1, 1, 0},
-/* 67 */ { 4, s_1_67, -1, 1, 0},
-/* 68 */ { 5, s_1_68, -1, 1, 0},
-/* 69 */ { 5, s_1_69, -1, 1, 0},
-/* 70 */ { 4, s_1_70, -1, 1, 0},
-/* 71 */ { 3, s_1_71, -1, 1, 0},
-/* 72 */ { 2, s_1_72, -1, 1, 0},
-/* 73 */ { 4, s_1_73, 72, 1, 0},
-/* 74 */ { 3, s_1_74, 72, 1, 0},
-/* 75 */ { 7, s_1_75, 74, 1, 0},
-/* 76 */ { 7, s_1_76, 74, 1, 0},
-/* 77 */ { 6, s_1_77, 74, 1, 0},
-/* 78 */ { 5, s_1_78, 72, 1, 0},
-/* 79 */ { 6, s_1_79, 78, 1, 0},
-/* 80 */ { 4, s_1_80, 72, 1, 0},
-/* 81 */ { 4, s_1_81, 72, 1, 0},
-/* 82 */ { 5, s_1_82, 72, 1, 0},
-/* 83 */ { 3, s_1_83, 72, 1, 0},
-/* 84 */ { 4, s_1_84, 83, 1, 0},
-/* 85 */ { 5, s_1_85, 83, 1, 0},
-/* 86 */ { 6, s_1_86, 85, 1, 0},
-/* 87 */ { 5, s_1_87, -1, 1, 0},
-/* 88 */ { 6, s_1_88, 87, 1, 0},
-/* 89 */ { 4, s_1_89, -1, 1, 0},
-/* 90 */ { 4, s_1_90, -1, 1, 0},
-/* 91 */ { 3, s_1_91, -1, 1, 0},
-/* 92 */ { 5, s_1_92, 91, 1, 0},
-/* 93 */ { 4, s_1_93, 91, 1, 0},
-/* 94 */ { 3, s_1_94, -1, 1, 0},
-/* 95 */ { 5, s_1_95, 94, 1, 0},
-/* 96 */ { 4, s_1_96, -1, 1, 0},
-/* 97 */ { 5, s_1_97, 96, 1, 0},
-/* 98 */ { 5, s_1_98, 96, 1, 0},
-/* 99 */ { 4, s_1_99, -1, 1, 0},
-/*100 */ { 4, s_1_100, -1, 1, 0},
-/*101 */ { 4, s_1_101, -1, 1, 0},
-/*102 */ { 3, s_1_102, -1, 1, 0},
-/*103 */ { 4, s_1_103, 102, 1, 0},
-/*104 */ { 4, s_1_104, 102, 1, 0},
-/*105 */ { 4, s_1_105, -1, 1, 0},
-/*106 */ { 4, s_1_106, -1, 1, 0},
-/*107 */ { 3, s_1_107, -1, 1, 0},
-/*108 */ { 2, s_1_108, -1, 1, 0},
-/*109 */ { 3, s_1_109, 108, 1, 0},
-/*110 */ { 4, s_1_110, 109, 1, 0},
-/*111 */ { 5, s_1_111, 109, 1, 0},
-/*112 */ { 5, s_1_112, 109, 1, 0},
-/*113 */ { 4, s_1_113, 109, 1, 0},
-/*114 */ { 5, s_1_114, 113, 1, 0},
-/*115 */ { 5, s_1_115, 109, 1, 0},
-/*116 */ { 4, s_1_116, 108, 1, 0},
-/*117 */ { 4, s_1_117, 108, 1, 0},
-/*118 */ { 4, s_1_118, 108, 1, 0},
-/*119 */ { 3, s_1_119, 108, 2, 0},
-/*120 */ { 6, s_1_120, 108, 1, 0},
-/*121 */ { 5, s_1_121, 108, 1, 0},
-/*122 */ { 3, s_1_122, 108, 1, 0},
-/*123 */ { 2, s_1_123, -1, 1, 0},
-/*124 */ { 3, s_1_124, 123, 1, 0},
-/*125 */ { 2, s_1_125, -1, 1, 0},
-/*126 */ { 3, s_1_126, 125, 1, 0},
-/*127 */ { 4, s_1_127, 126, 1, 0},
-/*128 */ { 3, s_1_128, 125, 1, 0},
-/*129 */ { 3, s_1_129, -1, 1, 0},
-/*130 */ { 6, s_1_130, 129, 1, 0},
-/*131 */ { 5, s_1_131, 129, 1, 0},
-/*132 */ { 5, s_1_132, -1, 1, 0},
-/*133 */ { 5, s_1_133, -1, 1, 0},
-/*134 */ { 5, s_1_134, -1, 1, 0},
-/*135 */ { 4, s_1_135, -1, 1, 0},
-/*136 */ { 3, s_1_136, -1, 1, 0},
-/*137 */ { 6, s_1_137, 136, 1, 0},
-/*138 */ { 5, s_1_138, 136, 1, 0},
-/*139 */ { 4, s_1_139, -1, 1, 0},
-/*140 */ { 3, s_1_140, -1, 1, 0},
-/*141 */ { 4, s_1_141, 140, 1, 0},
-/*142 */ { 2, s_1_142, -1, 1, 0},
-/*143 */ { 3, s_1_143, 142, 1, 0},
-/*144 */ { 5, s_1_144, 142, 1, 0},
-/*145 */ { 3, s_1_145, 142, 2, 0},
-/*146 */ { 6, s_1_146, 145, 1, 0},
-/*147 */ { 5, s_1_147, 145, 1, 0},
-/*148 */ { 6, s_1_148, 145, 1, 0},
-/*149 */ { 6, s_1_149, 145, 1, 0},
-/*150 */ { 6, s_1_150, 145, 1, 0},
-/*151 */ { 4, s_1_151, -1, 1, 0},
-/*152 */ { 4, s_1_152, -1, 1, 0},
-/*153 */ { 4, s_1_153, -1, 1, 0},
-/*154 */ { 4, s_1_154, -1, 1, 0},
-/*155 */ { 5, s_1_155, 154, 1, 0},
-/*156 */ { 5, s_1_156, 154, 1, 0},
-/*157 */ { 4, s_1_157, -1, 1, 0},
-/*158 */ { 2, s_1_158, -1, 1, 0},
-/*159 */ { 4, s_1_159, -1, 1, 0},
-/*160 */ { 5, s_1_160, 159, 1, 0},
-/*161 */ { 4, s_1_161, -1, 1, 0},
-/*162 */ { 3, s_1_162, -1, 1, 0},
-/*163 */ { 4, s_1_163, -1, 1, 0},
-/*164 */ { 2, s_1_164, -1, 1, 0},
-/*165 */ { 5, s_1_165, 164, 1, 0},
-/*166 */ { 3, s_1_166, 164, 1, 0},
-/*167 */ { 4, s_1_167, 166, 1, 0},
-/*168 */ { 2, s_1_168, -1, 1, 0},
-/*169 */ { 5, s_1_169, -1, 1, 0},
-/*170 */ { 2, s_1_170, -1, 1, 0},
-/*171 */ { 4, s_1_171, 170, 1, 0},
-/*172 */ { 4, s_1_172, 170, 1, 0},
-/*173 */ { 4, s_1_173, 170, 1, 0},
-/*174 */ { 4, s_1_174, -1, 1, 0},
-/*175 */ { 3, s_1_175, -1, 1, 0},
-/*176 */ { 2, s_1_176, -1, 1, 0},
-/*177 */ { 4, s_1_177, 176, 1, 0},
-/*178 */ { 5, s_1_178, 177, 1, 0},
-/*179 */ { 5, s_1_179, 176, 8, 0},
-/*180 */ { 5, s_1_180, 176, 1, 0},
-/*181 */ { 5, s_1_181, 176, 1, 0},
-/*182 */ { 3, s_1_182, -1, 1, 0},
-/*183 */ { 3, s_1_183, -1, 1, 0},
-/*184 */ { 4, s_1_184, 183, 1, 0},
-/*185 */ { 4, s_1_185, 183, 1, 0},
-/*186 */ { 4, s_1_186, -1, 1, 0},
-/*187 */ { 3, s_1_187, -1, 1, 0},
-/*188 */ { 2, s_1_188, -1, 1, 0},
-/*189 */ { 4, s_1_189, 188, 1, 0},
-/*190 */ { 2, s_1_190, -1, 1, 0},
-/*191 */ { 3, s_1_191, 190, 1, 0},
-/*192 */ { 3, s_1_192, 190, 1, 0},
-/*193 */ { 3, s_1_193, -1, 1, 0},
-/*194 */ { 4, s_1_194, 193, 1, 0},
-/*195 */ { 4, s_1_195, 193, 1, 0},
-/*196 */ { 4, s_1_196, 193, 1, 0},
-/*197 */ { 5, s_1_197, -1, 2, 0},
-/*198 */ { 5, s_1_198, -1, 1, 0},
-/*199 */ { 5, s_1_199, -1, 1, 0},
-/*200 */ { 4, s_1_200, -1, 1, 0},
-/*201 */ { 3, s_1_201, -1, 1, 0},
-/*202 */ { 2, s_1_202, -1, 1, 0},
-/*203 */ { 5, s_1_203, -1, 1, 0},
-/*204 */ { 2, s_1_204, -1, 1, 0},
-/*205 */ { 2, s_1_205, -1, 1, 0},
-/*206 */ { 2, s_1_206, -1, 1, 0},
-/*207 */ { 5, s_1_207, -1, 1, 0},
-/*208 */ { 5, s_1_208, -1, 1, 0},
-/*209 */ { 3, s_1_209, -1, 1, 0},
-/*210 */ { 4, s_1_210, 209, 1, 0},
-/*211 */ { 3, s_1_211, -1, 1, 0},
-/*212 */ { 3, s_1_212, -1, 1, 0},
-/*213 */ { 4, s_1_213, 212, 1, 0},
-/*214 */ { 2, s_1_214, -1, 4, 0},
-/*215 */ { 3, s_1_215, 214, 2, 0},
-/*216 */ { 6, s_1_216, 215, 1, 0},
-/*217 */ { 6, s_1_217, 215, 1, 0},
-/*218 */ { 5, s_1_218, 215, 1, 0},
-/*219 */ { 3, s_1_219, 214, 4, 0},
-/*220 */ { 4, s_1_220, 214, 4, 0},
-/*221 */ { 4, s_1_221, -1, 1, 0},
-/*222 */ { 5, s_1_222, 221, 1, 0},
-/*223 */ { 3, s_1_223, -1, 1, 0},
-/*224 */ { 3, s_1_224, -1, 1, 0},
-/*225 */ { 3, s_1_225, -1, 1, 0},
-/*226 */ { 4, s_1_226, -1, 1, 0},
-/*227 */ { 5, s_1_227, 226, 1, 0},
-/*228 */ { 5, s_1_228, -1, 1, 0},
-/*229 */ { 4, s_1_229, -1, 1, 0},
-/*230 */ { 5, s_1_230, 229, 1, 0},
-/*231 */ { 2, s_1_231, -1, 1, 0},
-/*232 */ { 3, s_1_232, 231, 1, 0},
-/*233 */ { 3, s_1_233, -1, 1, 0},
-/*234 */ { 2, s_1_234, -1, 1, 0},
-/*235 */ { 5, s_1_235, 234, 5, 0},
-/*236 */ { 4, s_1_236, 234, 1, 0},
-/*237 */ { 5, s_1_237, 236, 1, 0},
-/*238 */ { 3, s_1_238, 234, 1, 0},
-/*239 */ { 6, s_1_239, 234, 1, 0},
-/*240 */ { 3, s_1_240, 234, 1, 0},
-/*241 */ { 4, s_1_241, 234, 1, 0},
-/*242 */ { 8, s_1_242, 241, 6, 0},
-/*243 */ { 3, s_1_243, 234, 1, 0},
-/*244 */ { 2, s_1_244, -1, 1, 0},
-/*245 */ { 4, s_1_245, 244, 1, 0},
-/*246 */ { 2, s_1_246, -1, 1, 0},
-/*247 */ { 3, s_1_247, 246, 1, 0},
-/*248 */ { 5, s_1_248, 247, 9, 0},
-/*249 */ { 4, s_1_249, 247, 1, 0},
-/*250 */ { 4, s_1_250, 247, 1, 0},
-/*251 */ { 3, s_1_251, 246, 1, 0},
-/*252 */ { 4, s_1_252, 246, 1, 0},
-/*253 */ { 3, s_1_253, 246, 1, 0},
-/*254 */ { 3, s_1_254, -1, 1, 0},
-/*255 */ { 2, s_1_255, -1, 1, 0},
-/*256 */ { 3, s_1_256, 255, 1, 0},
-/*257 */ { 3, s_1_257, 255, 1, 0},
-/*258 */ { 3, s_1_258, -1, 1, 0},
-/*259 */ { 3, s_1_259, -1, 1, 0},
-/*260 */ { 6, s_1_260, 259, 1, 0},
-/*261 */ { 2, s_1_261, -1, 1, 0},
-/*262 */ { 2, s_1_262, -1, 1, 0},
-/*263 */ { 2, s_1_263, -1, 1, 0},
-/*264 */ { 3, s_1_264, 263, 1, 0},
-/*265 */ { 5, s_1_265, 263, 1, 0},
-/*266 */ { 5, s_1_266, 263, 7, 0},
-/*267 */ { 4, s_1_267, 263, 1, 0},
-/*268 */ { 4, s_1_268, 263, 1, 0},
-/*269 */ { 3, s_1_269, 263, 1, 0},
-/*270 */ { 4, s_1_270, 263, 1, 0},
-/*271 */ { 2, s_1_271, -1, 2, 0},
-/*272 */ { 3, s_1_272, 271, 1, 0},
-/*273 */ { 2, s_1_273, -1, 1, 0},
-/*274 */ { 3, s_1_274, -1, 1, 0},
-/*275 */ { 2, s_1_275, -1, 1, 0},
-/*276 */ { 5, s_1_276, 275, 1, 0},
-/*277 */ { 4, s_1_277, 275, 1, 0},
-/*278 */ { 4, s_1_278, -1, 1, 0},
-/*279 */ { 4, s_1_279, -1, 2, 0},
-/*280 */ { 4, s_1_280, -1, 1, 0},
-/*281 */ { 3, s_1_281, -1, 1, 0},
-/*282 */ { 2, s_1_282, -1, 1, 0},
-/*283 */ { 4, s_1_283, 282, 4, 0},
-/*284 */ { 5, s_1_284, 282, 1, 0},
-/*285 */ { 4, s_1_285, 282, 1, 0},
-/*286 */ { 3, s_1_286, -1, 1, 0},
-/*287 */ { 2, s_1_287, -1, 1, 0},
-/*288 */ { 3, s_1_288, 287, 1, 0},
-/*289 */ { 6, s_1_289, 288, 1, 0},
-/*290 */ { 1, s_1_290, -1, 1, 0},
-/*291 */ { 2, s_1_291, 290, 1, 0},
-/*292 */ { 4, s_1_292, 290, 1, 0},
-/*293 */ { 2, s_1_293, 290, 1, 0},
-/*294 */ { 5, s_1_294, 293, 1, 0}
+{ 3, s_1_0, -1, 1, 0},
+{ 4, s_1_1, 0, 1, 0},
+{ 4, s_1_2, -1, 1, 0},
+{ 5, s_1_3, -1, 1, 0},
+{ 5, s_1_4, -1, 1, 0},
+{ 5, s_1_5, -1, 1, 0},
+{ 5, s_1_6, -1, 1, 0},
+{ 6, s_1_7, 6, 1, 0},
+{ 6, s_1_8, 6, 1, 0},
+{ 5, s_1_9, -1, 1, 0},
+{ 5, s_1_10, -1, 1, 0},
+{ 6, s_1_11, 10, 1, 0},
+{ 5, s_1_12, -1, 1, 0},
+{ 4, s_1_13, -1, 1, 0},
+{ 5, s_1_14, -1, 1, 0},
+{ 3, s_1_15, -1, 1, 0},
+{ 4, s_1_16, 15, 1, 0},
+{ 6, s_1_17, 15, 1, 0},
+{ 4, s_1_18, 15, 1, 0},
+{ 5, s_1_19, 18, 1, 0},
+{ 3, s_1_20, -1, 1, 0},
+{ 6, s_1_21, -1, 1, 0},
+{ 3, s_1_22, -1, 1, 0},
+{ 5, s_1_23, 22, 1, 0},
+{ 5, s_1_24, 22, 1, 0},
+{ 5, s_1_25, 22, 1, 0},
+{ 5, s_1_26, -1, 1, 0},
+{ 2, s_1_27, -1, 1, 0},
+{ 4, s_1_28, 27, 1, 0},
+{ 4, s_1_29, -1, 1, 0},
+{ 5, s_1_30, -1, 1, 0},
+{ 6, s_1_31, 30, 1, 0},
+{ 6, s_1_32, -1, 1, 0},
+{ 6, s_1_33, -1, 1, 0},
+{ 4, s_1_34, -1, 1, 0},
+{ 4, s_1_35, -1, 1, 0},
+{ 5, s_1_36, 35, 1, 0},
+{ 5, s_1_37, 35, 1, 0},
+{ 5, s_1_38, -1, 1, 0},
+{ 4, s_1_39, -1, 1, 0},
+{ 3, s_1_40, -1, 1, 0},
+{ 5, s_1_41, 40, 1, 0},
+{ 3, s_1_42, -1, 1, 0},
+{ 4, s_1_43, 42, 1, 0},
+{ 4, s_1_44, -1, 1, 0},
+{ 5, s_1_45, 44, 1, 0},
+{ 5, s_1_46, 44, 1, 0},
+{ 5, s_1_47, 44, 1, 0},
+{ 4, s_1_48, -1, 1, 0},
+{ 5, s_1_49, 48, 1, 0},
+{ 5, s_1_50, 48, 1, 0},
+{ 6, s_1_51, -1, 2, 0},
+{ 6, s_1_52, -1, 1, 0},
+{ 6, s_1_53, -1, 1, 0},
+{ 5, s_1_54, -1, 1, 0},
+{ 4, s_1_55, -1, 1, 0},
+{ 3, s_1_56, -1, 1, 0},
+{ 4, s_1_57, -1, 1, 0},
+{ 5, s_1_58, -1, 1, 0},
+{ 6, s_1_59, -1, 1, 0},
+{ 2, s_1_60, -1, 1, 0},
+{ 4, s_1_61, 60, 3, 0},
+{ 5, s_1_62, 60, 10, 0},
+{ 3, s_1_63, 60, 1, 0},
+{ 3, s_1_64, 60, 1, 0},
+{ 3, s_1_65, 60, 1, 0},
+{ 6, s_1_66, -1, 1, 0},
+{ 4, s_1_67, -1, 1, 0},
+{ 5, s_1_68, -1, 1, 0},
+{ 5, s_1_69, -1, 1, 0},
+{ 4, s_1_70, -1, 1, 0},
+{ 3, s_1_71, -1, 1, 0},
+{ 2, s_1_72, -1, 1, 0},
+{ 4, s_1_73, 72, 1, 0},
+{ 3, s_1_74, 72, 1, 0},
+{ 7, s_1_75, 74, 1, 0},
+{ 7, s_1_76, 74, 1, 0},
+{ 6, s_1_77, 74, 1, 0},
+{ 5, s_1_78, 72, 1, 0},
+{ 6, s_1_79, 78, 1, 0},
+{ 4, s_1_80, 72, 1, 0},
+{ 4, s_1_81, 72, 1, 0},
+{ 5, s_1_82, 72, 1, 0},
+{ 3, s_1_83, 72, 1, 0},
+{ 4, s_1_84, 83, 1, 0},
+{ 5, s_1_85, 83, 1, 0},
+{ 6, s_1_86, 85, 1, 0},
+{ 5, s_1_87, -1, 1, 0},
+{ 6, s_1_88, 87, 1, 0},
+{ 4, s_1_89, -1, 1, 0},
+{ 4, s_1_90, -1, 1, 0},
+{ 3, s_1_91, -1, 1, 0},
+{ 5, s_1_92, 91, 1, 0},
+{ 4, s_1_93, 91, 1, 0},
+{ 3, s_1_94, -1, 1, 0},
+{ 5, s_1_95, 94, 1, 0},
+{ 4, s_1_96, -1, 1, 0},
+{ 5, s_1_97, 96, 1, 0},
+{ 5, s_1_98, 96, 1, 0},
+{ 4, s_1_99, -1, 1, 0},
+{ 4, s_1_100, -1, 1, 0},
+{ 4, s_1_101, -1, 1, 0},
+{ 3, s_1_102, -1, 1, 0},
+{ 4, s_1_103, 102, 1, 0},
+{ 4, s_1_104, 102, 1, 0},
+{ 4, s_1_105, -1, 1, 0},
+{ 4, s_1_106, -1, 1, 0},
+{ 3, s_1_107, -1, 1, 0},
+{ 2, s_1_108, -1, 1, 0},
+{ 3, s_1_109, 108, 1, 0},
+{ 4, s_1_110, 109, 1, 0},
+{ 5, s_1_111, 109, 1, 0},
+{ 5, s_1_112, 109, 1, 0},
+{ 4, s_1_113, 109, 1, 0},
+{ 5, s_1_114, 113, 1, 0},
+{ 5, s_1_115, 109, 1, 0},
+{ 4, s_1_116, 108, 1, 0},
+{ 4, s_1_117, 108, 1, 0},
+{ 4, s_1_118, 108, 1, 0},
+{ 3, s_1_119, 108, 2, 0},
+{ 6, s_1_120, 108, 1, 0},
+{ 5, s_1_121, 108, 1, 0},
+{ 3, s_1_122, 108, 1, 0},
+{ 2, s_1_123, -1, 1, 0},
+{ 3, s_1_124, 123, 1, 0},
+{ 2, s_1_125, -1, 1, 0},
+{ 3, s_1_126, 125, 1, 0},
+{ 4, s_1_127, 126, 1, 0},
+{ 3, s_1_128, 125, 1, 0},
+{ 3, s_1_129, -1, 1, 0},
+{ 6, s_1_130, 129, 1, 0},
+{ 5, s_1_131, 129, 1, 0},
+{ 5, s_1_132, -1, 1, 0},
+{ 5, s_1_133, -1, 1, 0},
+{ 5, s_1_134, -1, 1, 0},
+{ 4, s_1_135, -1, 1, 0},
+{ 3, s_1_136, -1, 1, 0},
+{ 6, s_1_137, 136, 1, 0},
+{ 5, s_1_138, 136, 1, 0},
+{ 4, s_1_139, -1, 1, 0},
+{ 3, s_1_140, -1, 1, 0},
+{ 4, s_1_141, 140, 1, 0},
+{ 2, s_1_142, -1, 1, 0},
+{ 3, s_1_143, 142, 1, 0},
+{ 5, s_1_144, 142, 1, 0},
+{ 3, s_1_145, 142, 2, 0},
+{ 6, s_1_146, 145, 1, 0},
+{ 5, s_1_147, 145, 1, 0},
+{ 6, s_1_148, 145, 1, 0},
+{ 6, s_1_149, 145, 1, 0},
+{ 6, s_1_150, 145, 1, 0},
+{ 4, s_1_151, -1, 1, 0},
+{ 4, s_1_152, -1, 1, 0},
+{ 4, s_1_153, -1, 1, 0},
+{ 4, s_1_154, -1, 1, 0},
+{ 5, s_1_155, 154, 1, 0},
+{ 5, s_1_156, 154, 1, 0},
+{ 4, s_1_157, -1, 1, 0},
+{ 2, s_1_158, -1, 1, 0},
+{ 4, s_1_159, -1, 1, 0},
+{ 5, s_1_160, 159, 1, 0},
+{ 4, s_1_161, -1, 1, 0},
+{ 3, s_1_162, -1, 1, 0},
+{ 4, s_1_163, -1, 1, 0},
+{ 2, s_1_164, -1, 1, 0},
+{ 5, s_1_165, 164, 1, 0},
+{ 3, s_1_166, 164, 1, 0},
+{ 4, s_1_167, 166, 1, 0},
+{ 2, s_1_168, -1, 1, 0},
+{ 5, s_1_169, -1, 1, 0},
+{ 2, s_1_170, -1, 1, 0},
+{ 4, s_1_171, 170, 1, 0},
+{ 4, s_1_172, 170, 1, 0},
+{ 4, s_1_173, 170, 1, 0},
+{ 4, s_1_174, -1, 1, 0},
+{ 3, s_1_175, -1, 1, 0},
+{ 2, s_1_176, -1, 1, 0},
+{ 4, s_1_177, 176, 1, 0},
+{ 5, s_1_178, 177, 1, 0},
+{ 5, s_1_179, 176, 8, 0},
+{ 5, s_1_180, 176, 1, 0},
+{ 5, s_1_181, 176, 1, 0},
+{ 3, s_1_182, -1, 1, 0},
+{ 3, s_1_183, -1, 1, 0},
+{ 4, s_1_184, 183, 1, 0},
+{ 4, s_1_185, 183, 1, 0},
+{ 4, s_1_186, -1, 1, 0},
+{ 3, s_1_187, -1, 1, 0},
+{ 2, s_1_188, -1, 1, 0},
+{ 4, s_1_189, 188, 1, 0},
+{ 2, s_1_190, -1, 1, 0},
+{ 3, s_1_191, 190, 1, 0},
+{ 3, s_1_192, 190, 1, 0},
+{ 3, s_1_193, -1, 1, 0},
+{ 4, s_1_194, 193, 1, 0},
+{ 4, s_1_195, 193, 1, 0},
+{ 4, s_1_196, 193, 1, 0},
+{ 5, s_1_197, -1, 2, 0},
+{ 5, s_1_198, -1, 1, 0},
+{ 5, s_1_199, -1, 1, 0},
+{ 4, s_1_200, -1, 1, 0},
+{ 3, s_1_201, -1, 1, 0},
+{ 2, s_1_202, -1, 1, 0},
+{ 5, s_1_203, -1, 1, 0},
+{ 2, s_1_204, -1, 1, 0},
+{ 2, s_1_205, -1, 1, 0},
+{ 2, s_1_206, -1, 1, 0},
+{ 5, s_1_207, -1, 1, 0},
+{ 5, s_1_208, -1, 1, 0},
+{ 3, s_1_209, -1, 1, 0},
+{ 4, s_1_210, 209, 1, 0},
+{ 3, s_1_211, -1, 1, 0},
+{ 3, s_1_212, -1, 1, 0},
+{ 4, s_1_213, 212, 1, 0},
+{ 2, s_1_214, -1, 4, 0},
+{ 3, s_1_215, 214, 2, 0},
+{ 6, s_1_216, 215, 1, 0},
+{ 6, s_1_217, 215, 1, 0},
+{ 5, s_1_218, 215, 1, 0},
+{ 3, s_1_219, 214, 4, 0},
+{ 4, s_1_220, 214, 4, 0},
+{ 4, s_1_221, -1, 1, 0},
+{ 5, s_1_222, 221, 1, 0},
+{ 3, s_1_223, -1, 1, 0},
+{ 3, s_1_224, -1, 1, 0},
+{ 3, s_1_225, -1, 1, 0},
+{ 4, s_1_226, -1, 1, 0},
+{ 5, s_1_227, 226, 1, 0},
+{ 5, s_1_228, -1, 1, 0},
+{ 4, s_1_229, -1, 1, 0},
+{ 5, s_1_230, 229, 1, 0},
+{ 2, s_1_231, -1, 1, 0},
+{ 3, s_1_232, 231, 1, 0},
+{ 3, s_1_233, -1, 1, 0},
+{ 2, s_1_234, -1, 1, 0},
+{ 5, s_1_235, 234, 5, 0},
+{ 4, s_1_236, 234, 1, 0},
+{ 5, s_1_237, 236, 1, 0},
+{ 3, s_1_238, 234, 1, 0},
+{ 6, s_1_239, 234, 1, 0},
+{ 3, s_1_240, 234, 1, 0},
+{ 4, s_1_241, 234, 1, 0},
+{ 8, s_1_242, 241, 6, 0},
+{ 3, s_1_243, 234, 1, 0},
+{ 2, s_1_244, -1, 1, 0},
+{ 4, s_1_245, 244, 1, 0},
+{ 2, s_1_246, -1, 1, 0},
+{ 3, s_1_247, 246, 1, 0},
+{ 5, s_1_248, 247, 9, 0},
+{ 4, s_1_249, 247, 1, 0},
+{ 4, s_1_250, 247, 1, 0},
+{ 3, s_1_251, 246, 1, 0},
+{ 4, s_1_252, 246, 1, 0},
+{ 3, s_1_253, 246, 1, 0},
+{ 3, s_1_254, -1, 1, 0},
+{ 2, s_1_255, -1, 1, 0},
+{ 3, s_1_256, 255, 1, 0},
+{ 3, s_1_257, 255, 1, 0},
+{ 3, s_1_258, -1, 1, 0},
+{ 3, s_1_259, -1, 1, 0},
+{ 6, s_1_260, 259, 1, 0},
+{ 2, s_1_261, -1, 1, 0},
+{ 2, s_1_262, -1, 1, 0},
+{ 2, s_1_263, -1, 1, 0},
+{ 3, s_1_264, 263, 1, 0},
+{ 5, s_1_265, 263, 1, 0},
+{ 5, s_1_266, 263, 7, 0},
+{ 4, s_1_267, 263, 1, 0},
+{ 4, s_1_268, 263, 1, 0},
+{ 3, s_1_269, 263, 1, 0},
+{ 4, s_1_270, 263, 1, 0},
+{ 2, s_1_271, -1, 2, 0},
+{ 3, s_1_272, 271, 1, 0},
+{ 2, s_1_273, -1, 1, 0},
+{ 3, s_1_274, -1, 1, 0},
+{ 2, s_1_275, -1, 1, 0},
+{ 5, s_1_276, 275, 1, 0},
+{ 4, s_1_277, 275, 1, 0},
+{ 4, s_1_278, -1, 1, 0},
+{ 4, s_1_279, -1, 2, 0},
+{ 4, s_1_280, -1, 1, 0},
+{ 3, s_1_281, -1, 1, 0},
+{ 2, s_1_282, -1, 1, 0},
+{ 4, s_1_283, 282, 4, 0},
+{ 5, s_1_284, 282, 1, 0},
+{ 4, s_1_285, 282, 1, 0},
+{ 3, s_1_286, -1, 1, 0},
+{ 2, s_1_287, -1, 1, 0},
+{ 3, s_1_288, 287, 1, 0},
+{ 6, s_1_289, 288, 1, 0},
+{ 1, s_1_290, -1, 1, 0},
+{ 2, s_1_291, 290, 1, 0},
+{ 4, s_1_292, 290, 1, 0},
+{ 2, s_1_293, 290, 1, 0},
+{ 5, s_1_294, 293, 1, 0}
 };
 
 static const symbol s_2_0[4] = { 'z', 'l', 'e', 'a' };
@@ -868,25 +868,25 @@ static const symbol s_2_18[2] = { 't', 'o' };
 
 static const struct among a_2[19] =
 {
-/*  0 */ { 4, s_2_0, -1, 2, 0},
-/*  1 */ { 5, s_2_1, -1, 1, 0},
-/*  2 */ { 2, s_2_2, -1, 1, 0},
-/*  3 */ { 3, s_2_3, -1, 1, 0},
-/*  4 */ { 4, s_2_4, -1, 1, 0},
-/*  5 */ { 4, s_2_5, -1, 1, 0},
-/*  6 */ { 4, s_2_6, -1, 1, 0},
-/*  7 */ { 4, s_2_7, -1, 1, 0},
-/*  8 */ { 2, s_2_8, -1, 1, 0},
-/*  9 */ { 2, s_2_9, -1, 1, 0},
-/* 10 */ { 2, s_2_10, -1, 1, 0},
-/* 11 */ { 5, s_2_11, 10, 1, 0},
-/* 12 */ { 3, s_2_12, 10, 1, 0},
-/* 13 */ { 5, s_2_13, 12, 1, 0},
-/* 14 */ { 4, s_2_14, 10, 1, 0},
-/* 15 */ { 2, s_2_15, -1, 1, 0},
-/* 16 */ { 2, s_2_16, -1, 1, 0},
-/* 17 */ { 3, s_2_17, 16, 1, 0},
-/* 18 */ { 2, s_2_18, -1, 1, 0}
+{ 4, s_2_0, -1, 2, 0},
+{ 5, s_2_1, -1, 1, 0},
+{ 2, s_2_2, -1, 1, 0},
+{ 3, s_2_3, -1, 1, 0},
+{ 4, 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},
+{ 2, s_2_8, -1, 1, 0},
+{ 2, s_2_9, -1, 1, 0},
+{ 2, s_2_10, -1, 1, 0},
+{ 5, s_2_11, 10, 1, 0},
+{ 3, s_2_12, 10, 1, 0},
+{ 5, s_2_13, 12, 1, 0},
+{ 4, s_2_14, 10, 1, 0},
+{ 2, s_2_15, -1, 1, 0},
+{ 2, s_2_16, -1, 1, 0},
+{ 3, s_2_17, 16, 1, 0},
+{ 2, s_2_18, -1, 1, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16 };
@@ -903,16 +903,16 @@ static const symbol s_8[] = { 'i', 'g', 'a', 'r', 'o' };
 static const symbol s_9[] = { 'a', 'u', 'r', 'k', 'a' };
 static const symbol s_10[] = { 'z' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $pV = <integer expression>, line 25 */
-    z->I[1] = z->l; /* $p1 = <integer expression>, line 26 */
-    z->I[2] = z->l; /* $p2 = <integer expression>, line 27 */
-    {   int c1 = z->c; /* do, line 29 */
-        {   int c2 = z->c; /* or, line 31 */
-            if (in_grouping(z, g_v, 97, 117, 0)) goto lab2; /* grouping v, line 30 */
-            {   int c3 = z->c; /* or, line 30 */
-                if (out_grouping(z, g_v, 97, 117, 0)) goto lab4; /* non v, line 30 */
-                {    /* gopast */ /* grouping v, line 30 */
+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, 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;
@@ -920,8 +920,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
                 goto lab3;
             lab4:
                 z->c = c3;
-                if (in_grouping(z, g_v, 97, 117, 0)) goto lab2; /* grouping v, line 30 */
-                {    /* gopast */ /* non v, line 30 */
+                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;
@@ -931,10 +931,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
             goto lab1;
         lab2:
             z->c = c2;
-            if (out_grouping(z, g_v, 97, 117, 0)) goto lab0; /* non v, line 32 */
-            {   int c4 = z->c; /* or, line 32 */
-                if (out_grouping(z, g_v, 97, 117, 0)) goto lab6; /* non v, line 32 */
-                {    /* gopast */ /* grouping v, line 32 */
+            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;
@@ -942,98 +942,98 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
                 goto lab5;
             lab6:
                 z->c = c4;
-                if (in_grouping(z, g_v, 97, 117, 0)) goto lab0; /* grouping v, line 32 */
+                if (in_grouping(z, g_v, 97, 117, 0)) goto lab0;
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 32 */
+                z->c++;
             }
         lab5:
             ;
         }
     lab1:
-        z->I[0] = z->c; /* setmark pV, line 33 */
+        z->I[2] = z->c;
     lab0:
         z->c = c1;
     }
-    {   int c5 = z->c; /* do, line 35 */
-        {    /* gopast */ /* grouping v, line 36 */
+    {   int c5 = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 36 */
+        {   
             int ret = in_grouping(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p1, line 36 */
-        {    /* gopast */ /* grouping v, line 37 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 37 */
+        {   
             int ret = in_grouping(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        z->I[2] = z->c; /* setmark p2, line 37 */
+        z->I[0] = z->c;
     lab7:
         z->c = c5;
     }
     return 1;
 }
 
-static int r_RV(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 43 */
+static int r_RV(struct SN_env * z) {
+    if (!(z->I[2] <= z->c)) return 0;
     return 1;
 }
 
-static int r_R2(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 44 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 45 */
+static int r_R1(struct SN_env * z) {
+    if (!(z->I[1] <= z->c)) return 0;
     return 1;
 }
 
-static int r_aditzak(struct SN_env * z) { /* backwardmode */
+static int r_aditzak(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 48 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((70566434 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 48 */
+    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;
-    z->bra = z->c; /* ], line 48 */
-    switch (among_var) { /* among, line 48 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_RV(z); /* call RV, line 59 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 59 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 61 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 61 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 7, s_0); /* <-, line 63 */
+            {   int ret = slice_from_s(z, 7, s_0);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = slice_from_s(z, 7, s_1); /* <-, line 65 */
+            {   int ret = slice_from_s(z, 7, s_1);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_from_s(z, 6, s_2); /* <-, line 67 */
+            {   int ret = slice_from_s(z, 6, s_2);
                 if (ret < 0) return ret;
             }
             break;
@@ -1041,70 +1041,70 @@ static int r_aditzak(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_izenak(struct SN_env * z) { /* backwardmode */
+static int r_izenak(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 73 */
-    if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((71162402 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 73 */
+    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;
-    z->bra = z->c; /* ], line 73 */
-    switch (among_var) { /* among, line 73 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_RV(z); /* call RV, line 103 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 103 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 105 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 105 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 3, s_3); /* <-, line 107 */
+            {   int ret = slice_from_s(z, 3, s_3);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = r_R1(z); /* call R1, line 109 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 109 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_from_s(z, 3, s_4); /* <-, line 111 */
+            {   int ret = slice_from_s(z, 3, s_4);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = slice_from_s(z, 6, s_5); /* <-, line 113 */
+            {   int ret = slice_from_s(z, 6, s_5);
                 if (ret < 0) return ret;
             }
             break;
         case 7:
-            {   int ret = slice_from_s(z, 5, s_6); /* <-, line 115 */
+            {   int ret = slice_from_s(z, 5, s_6);
                 if (ret < 0) return ret;
             }
             break;
         case 8:
-            {   int ret = slice_from_s(z, 5, s_7); /* <-, line 117 */
+            {   int ret = slice_from_s(z, 5, s_7);
                 if (ret < 0) return ret;
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 5, s_8); /* <-, line 119 */
+            {   int ret = slice_from_s(z, 5, s_8);
                 if (ret < 0) return ret;
             }
             break;
         case 10:
-            {   int ret = slice_from_s(z, 5, s_9); /* <-, line 121 */
+            {   int ret = slice_from_s(z, 5, s_9);
                 if (ret < 0) return ret;
             }
             break;
@@ -1112,24 +1112,24 @@ static int r_izenak(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_adjetiboak(struct SN_env * z) { /* backwardmode */
+static int r_adjetiboak(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 126 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((35362 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 126 */
+    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;
-    z->bra = z->c; /* ], line 126 */
-    switch (among_var) { /* among, line 126 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_RV(z); /* call RV, line 129 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 129 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_10); /* <-, line 131 */
+            {   int ret = slice_from_s(z, 1, s_10);
                 if (ret < 0) return ret;
             }
             break;
@@ -1137,17 +1137,16 @@ static int r_adjetiboak(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int basque_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    /* do, line 138 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 138 */
+extern int basque_ISO_8859_1_stem(struct SN_env * z) {
+    
+    {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 139 */
+    z->lb = z->c; z->c = z->l;
 
-/* repeat, line 140 */
-
-    while(1) {        int m1 = z->l - z->c; (void)m1;
-        {   int ret = r_aditzak(z); /* call aditzak, line 140 */
+    while(1) {
+        int m1 = z->l - z->c; (void)m1;
+        {   int ret = r_aditzak(z);
             if (ret == 0) goto lab0;
             if (ret < 0) return ret;
         }
@@ -1156,10 +1155,9 @@ extern int basque_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
         z->c = z->l - m1;
         break;
     }
-/* repeat, line 141 */
-
-    while(1) {        int m2 = z->l - z->c; (void)m2;
-        {   int ret = r_izenak(z); /* call izenak, line 141 */
+    while(1) {
+        int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_izenak(z);
             if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
@@ -1168,8 +1166,8 @@ extern int basque_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
         z->c = z->l - m2;
         break;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 142 */
-        {   int ret = r_adjetiboak(z); /* call adjetiboak, line 142 */
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_adjetiboak(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m3;
@@ -1178,7 +1176,7 @@ extern int basque_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * basque_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
+extern struct SN_env * basque_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
 
 extern void basque_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 87c0cada3df90e2c767ce30e3713702744423877..283d2c6482118b229fd993b3c5681cd4da47cf42 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -44,19 +44,19 @@ static const symbol s_0_12[1] = { 0xFC };
 
 static const struct among a_0[13] =
 {
-/*  0 */ { 0, 0, -1, 7, 0},
-/*  1 */ { 1, s_0_1, 0, 6, 0},
-/*  2 */ { 1, s_0_2, 0, 1, 0},
-/*  3 */ { 1, s_0_3, 0, 1, 0},
-/*  4 */ { 1, s_0_4, 0, 2, 0},
-/*  5 */ { 1, s_0_5, 0, 2, 0},
-/*  6 */ { 1, s_0_6, 0, 3, 0},
-/*  7 */ { 1, s_0_7, 0, 3, 0},
-/*  8 */ { 1, s_0_8, 0, 3, 0},
-/*  9 */ { 1, s_0_9, 0, 4, 0},
-/* 10 */ { 1, s_0_10, 0, 4, 0},
-/* 11 */ { 1, s_0_11, 0, 5, 0},
-/* 12 */ { 1, s_0_12, 0, 5, 0}
+{ 0, 0, -1, 7, 0},
+{ 1, s_0_1, 0, 6, 0},
+{ 1, s_0_2, 0, 1, 0},
+{ 1, s_0_3, 0, 1, 0},
+{ 1, s_0_4, 0, 2, 0},
+{ 1, s_0_5, 0, 2, 0},
+{ 1, s_0_6, 0, 3, 0},
+{ 1, s_0_7, 0, 3, 0},
+{ 1, s_0_8, 0, 3, 0},
+{ 1, s_0_9, 0, 4, 0},
+{ 1, s_0_10, 0, 4, 0},
+{ 1, s_0_11, 0, 5, 0},
+{ 1, s_0_12, 0, 5, 0}
 };
 
 static const symbol s_1_0[2] = { 'l', 'a' };
@@ -101,45 +101,45 @@ static const symbol s_1_38[2] = { '\'', 't' };
 
 static const struct among a_1[39] =
 {
-/*  0 */ { 2, s_1_0, -1, 1, 0},
-/*  1 */ { 3, s_1_1, 0, 1, 0},
-/*  2 */ { 4, s_1_2, 0, 1, 0},
-/*  3 */ { 2, s_1_3, -1, 1, 0},
-/*  4 */ { 2, s_1_4, -1, 1, 0},
-/*  5 */ { 3, s_1_5, 4, 1, 0},
-/*  6 */ { 2, s_1_6, -1, 1, 0},
-/*  7 */ { 3, s_1_7, -1, 1, 0},
-/*  8 */ { 2, s_1_8, -1, 1, 0},
-/*  9 */ { 3, s_1_9, 8, 1, 0},
-/* 10 */ { 2, s_1_10, -1, 1, 0},
-/* 11 */ { 3, s_1_11, 10, 1, 0},
-/* 12 */ { 2, s_1_12, -1, 1, 0},
-/* 13 */ { 2, s_1_13, -1, 1, 0},
-/* 14 */ { 2, s_1_14, -1, 1, 0},
-/* 15 */ { 2, s_1_15, -1, 1, 0},
-/* 16 */ { 2, s_1_16, -1, 1, 0},
-/* 17 */ { 2, s_1_17, -1, 1, 0},
-/* 18 */ { 3, s_1_18, 17, 1, 0},
-/* 19 */ { 2, s_1_19, -1, 1, 0},
-/* 20 */ { 4, s_1_20, 19, 1, 0},
-/* 21 */ { 2, s_1_21, -1, 1, 0},
-/* 22 */ { 3, s_1_22, -1, 1, 0},
-/* 23 */ { 5, s_1_23, 22, 1, 0},
-/* 24 */ { 3, s_1_24, -1, 1, 0},
-/* 25 */ { 4, s_1_25, 24, 1, 0},
-/* 26 */ { 3, s_1_26, -1, 1, 0},
-/* 27 */ { 3, s_1_27, -1, 1, 0},
-/* 28 */ { 3, s_1_28, -1, 1, 0},
-/* 29 */ { 3, s_1_29, -1, 1, 0},
-/* 30 */ { 3, s_1_30, -1, 1, 0},
-/* 31 */ { 3, s_1_31, -1, 1, 0},
-/* 32 */ { 5, s_1_32, 31, 1, 0},
-/* 33 */ { 3, s_1_33, -1, 1, 0},
-/* 34 */ { 4, s_1_34, 33, 1, 0},
-/* 35 */ { 3, s_1_35, -1, 1, 0},
-/* 36 */ { 2, s_1_36, -1, 1, 0},
-/* 37 */ { 3, s_1_37, 36, 1, 0},
-/* 38 */ { 2, s_1_38, -1, 1, 0}
+{ 2, s_1_0, -1, 1, 0},
+{ 3, s_1_1, 0, 1, 0},
+{ 4, s_1_2, 0, 1, 0},
+{ 2, s_1_3, -1, 1, 0},
+{ 2, s_1_4, -1, 1, 0},
+{ 3, s_1_5, 4, 1, 0},
+{ 2, s_1_6, -1, 1, 0},
+{ 3, s_1_7, -1, 1, 0},
+{ 2, s_1_8, -1, 1, 0},
+{ 3, s_1_9, 8, 1, 0},
+{ 2, s_1_10, -1, 1, 0},
+{ 3, s_1_11, 10, 1, 0},
+{ 2, s_1_12, -1, 1, 0},
+{ 2, s_1_13, -1, 1, 0},
+{ 2, s_1_14, -1, 1, 0},
+{ 2, s_1_15, -1, 1, 0},
+{ 2, s_1_16, -1, 1, 0},
+{ 2, s_1_17, -1, 1, 0},
+{ 3, s_1_18, 17, 1, 0},
+{ 2, s_1_19, -1, 1, 0},
+{ 4, s_1_20, 19, 1, 0},
+{ 2, s_1_21, -1, 1, 0},
+{ 3, s_1_22, -1, 1, 0},
+{ 5, s_1_23, 22, 1, 0},
+{ 3, s_1_24, -1, 1, 0},
+{ 4, s_1_25, 24, 1, 0},
+{ 3, s_1_26, -1, 1, 0},
+{ 3, s_1_27, -1, 1, 0},
+{ 3, s_1_28, -1, 1, 0},
+{ 3, s_1_29, -1, 1, 0},
+{ 3, s_1_30, -1, 1, 0},
+{ 3, s_1_31, -1, 1, 0},
+{ 5, s_1_32, 31, 1, 0},
+{ 3, s_1_33, -1, 1, 0},
+{ 4, s_1_34, 33, 1, 0},
+{ 3, s_1_35, -1, 1, 0},
+{ 2, s_1_36, -1, 1, 0},
+{ 3, s_1_37, 36, 1, 0},
+{ 2, s_1_38, -1, 1, 0}
 };
 
 static const symbol s_2_0[3] = { 'i', 'c', 'a' };
@@ -345,206 +345,206 @@ static const symbol s_2_199[4] = { 'a', 'c', 'i', 0xF3 };
 
 static const struct among a_2[200] =
 {
-/*  0 */ { 3, s_2_0, -1, 4, 0},
-/*  1 */ { 6, s_2_1, 0, 3, 0},
-/*  2 */ { 4, s_2_2, -1, 1, 0},
-/*  3 */ { 3, s_2_3, -1, 2, 0},
-/*  4 */ { 5, s_2_4, -1, 1, 0},
-/*  5 */ { 5, s_2_5, -1, 1, 0},
-/*  6 */ { 5, s_2_6, -1, 1, 0},
-/*  7 */ { 4, s_2_7, -1, 1, 0},
-/*  8 */ { 5, s_2_8, -1, 3, 0},
-/*  9 */ { 4, s_2_9, -1, 1, 0},
-/* 10 */ { 5, s_2_10, 9, 1, 0},
-/* 11 */ { 4, s_2_11, -1, 1, 0},
-/* 12 */ { 4, s_2_12, -1, 1, 0},
-/* 13 */ { 6, s_2_13, -1, 1, 0},
-/* 14 */ { 4, s_2_14, -1, 1, 0},
-/* 15 */ { 4, s_2_15, -1, 1, 0},
-/* 16 */ { 5, s_2_16, -1, 1, 0},
-/* 17 */ { 3, s_2_17, -1, 1, 0},
-/* 18 */ { 6, s_2_18, 17, 1, 0},
-/* 19 */ { 8, s_2_19, 18, 5, 0},
-/* 20 */ { 3, s_2_20, -1, 1, 0},
-/* 21 */ { 3, s_2_21, -1, 1, 0},
-/* 22 */ { 3, s_2_22, -1, 1, 0},
-/* 23 */ { 5, s_2_23, 22, 1, 0},
-/* 24 */ { 3, s_2_24, -1, 1, 0},
-/* 25 */ { 4, s_2_25, 24, 1, 0},
-/* 26 */ { 5, s_2_26, 25, 1, 0},
-/* 27 */ { 5, s_2_27, -1, 1, 0},
-/* 28 */ { 3, s_2_28, -1, 1, 0},
-/* 29 */ { 3, s_2_29, -1, 1, 0},
-/* 30 */ { 4, s_2_30, -1, 1, 0},
-/* 31 */ { 4, s_2_31, -1, 1, 0},
-/* 32 */ { 4, s_2_32, -1, 1, 0},
-/* 33 */ { 3, s_2_33, -1, 1, 0},
-/* 34 */ { 3, s_2_34, -1, 1, 0},
-/* 35 */ { 3, s_2_35, -1, 1, 0},
-/* 36 */ { 4, s_2_36, -1, 1, 0},
-/* 37 */ { 7, s_2_37, 36, 1, 0},
-/* 38 */ { 7, s_2_38, 36, 1, 0},
-/* 39 */ { 3, s_2_39, -1, 1, 0},
-/* 40 */ { 5, s_2_40, 39, 1, 0},
-/* 41 */ { 3, s_2_41, -1, 1, 0},
-/* 42 */ { 5, s_2_42, -1, 3, 0},
-/* 43 */ { 2, s_2_43, -1, 4, 0},
-/* 44 */ { 5, s_2_44, 43, 1, 0},
-/* 45 */ { 3, s_2_45, -1, 1, 0},
-/* 46 */ { 3, s_2_46, -1, 1, 0},
-/* 47 */ { 2, s_2_47, -1, 1, 0},
-/* 48 */ { 4, s_2_48, -1, 1, 0},
-/* 49 */ { 3, s_2_49, -1, 1, 0},
-/* 50 */ { 4, s_2_50, 49, 1, 0},
-/* 51 */ { 4, s_2_51, 49, 1, 0},
-/* 52 */ { 4, s_2_52, -1, 1, 0},
-/* 53 */ { 7, s_2_53, 52, 1, 0},
-/* 54 */ { 7, s_2_54, 52, 1, 0},
-/* 55 */ { 6, s_2_55, 52, 1, 0},
-/* 56 */ { 4, s_2_56, -1, 1, 0},
-/* 57 */ { 4, s_2_57, -1, 1, 0},
-/* 58 */ { 4, s_2_58, -1, 1, 0},
-/* 59 */ { 3, s_2_59, -1, 1, 0},
-/* 60 */ { 3, s_2_60, -1, 1, 0},
-/* 61 */ { 4, s_2_61, -1, 3, 0},
-/* 62 */ { 3, s_2_62, -1, 1, 0},
-/* 63 */ { 4, s_2_63, -1, 1, 0},
-/* 64 */ { 2, s_2_64, -1, 1, 0},
-/* 65 */ { 2, s_2_65, -1, 1, 0},
-/* 66 */ { 3, s_2_66, -1, 1, 0},
-/* 67 */ { 3, s_2_67, -1, 1, 0},
-/* 68 */ { 4, s_2_68, -1, 1, 0},
-/* 69 */ { 4, s_2_69, -1, 1, 0},
-/* 70 */ { 5, s_2_70, -1, 1, 0},
-/* 71 */ { 5, s_2_71, -1, 1, 0},
-/* 72 */ { 5, s_2_72, -1, 1, 0},
-/* 73 */ { 5, s_2_73, -1, 1, 0},
-/* 74 */ { 7, s_2_74, 73, 5, 0},
-/* 75 */ { 4, s_2_75, -1, 1, 0},
-/* 76 */ { 5, s_2_76, -1, 1, 0},
-/* 77 */ { 2, s_2_77, -1, 1, 0},
-/* 78 */ { 6, s_2_78, 77, 1, 0},
-/* 79 */ { 4, s_2_79, 77, 1, 0},
-/* 80 */ { 4, s_2_80, 77, 1, 0},
-/* 81 */ { 4, s_2_81, 77, 1, 0},
-/* 82 */ { 5, s_2_82, 77, 1, 0},
-/* 83 */ { 3, s_2_83, -1, 1, 0},
-/* 84 */ { 2, s_2_84, -1, 1, 0},
-/* 85 */ { 3, s_2_85, 84, 1, 0},
-/* 86 */ { 3, s_2_86, -1, 1, 0},
-/* 87 */ { 5, s_2_87, -1, 1, 0},
-/* 88 */ { 3, s_2_88, -1, 4, 0},
-/* 89 */ { 6, s_2_89, 88, 3, 0},
-/* 90 */ { 3, s_2_90, -1, 1, 0},
-/* 91 */ { 4, s_2_91, -1, 1, 0},
-/* 92 */ { 4, s_2_92, -1, 2, 0},
-/* 93 */ { 6, s_2_93, -1, 1, 0},
-/* 94 */ { 6, s_2_94, -1, 1, 0},
-/* 95 */ { 6, s_2_95, -1, 1, 0},
-/* 96 */ { 5, s_2_96, -1, 1, 0},
-/* 97 */ { 6, s_2_97, -1, 3, 0},
-/* 98 */ { 5, s_2_98, -1, 1, 0},
-/* 99 */ { 5, s_2_99, -1, 1, 0},
-/*100 */ { 5, s_2_100, -1, 1, 0},
-/*101 */ { 5, s_2_101, -1, 1, 0},
-/*102 */ { 7, s_2_102, -1, 1, 0},
-/*103 */ { 4, s_2_103, -1, 1, 0},
-/*104 */ { 5, s_2_104, 103, 1, 0},
-/*105 */ { 5, s_2_105, 103, 1, 0},
-/*106 */ { 4, s_2_106, -1, 1, 0},
-/*107 */ { 7, s_2_107, 106, 1, 0},
-/*108 */ { 9, s_2_108, 107, 5, 0},
-/*109 */ { 6, s_2_109, -1, 1, 0},
-/*110 */ { 5, s_2_110, -1, 1, 0},
-/*111 */ { 8, s_2_111, 110, 1, 0},
-/*112 */ { 4, s_2_112, -1, 1, 0},
-/*113 */ { 4, s_2_113, -1, 1, 0},
-/*114 */ { 4, s_2_114, -1, 1, 0},
-/*115 */ { 5, s_2_115, 114, 1, 0},
-/*116 */ { 6, s_2_116, 115, 1, 0},
-/*117 */ { 5, s_2_117, -1, 1, 0},
-/*118 */ { 4, s_2_118, -1, 1, 0},
-/*119 */ { 4, s_2_119, -1, 1, 0},
-/*120 */ { 5, s_2_120, -1, 1, 0},
-/*121 */ { 5, s_2_121, -1, 1, 0},
-/*122 */ { 4, s_2_122, -1, 1, 0},
-/*123 */ { 4, s_2_123, -1, 1, 0},
-/*124 */ { 5, s_2_124, -1, 1, 0},
-/*125 */ { 8, s_2_125, 124, 1, 0},
-/*126 */ { 8, s_2_126, 124, 1, 0},
-/*127 */ { 5, s_2_127, -1, 4, 0},
-/*128 */ { 8, s_2_128, 127, 3, 0},
-/*129 */ { 4, s_2_129, -1, 1, 0},
-/*130 */ { 6, s_2_130, 129, 1, 0},
-/*131 */ { 6, s_2_131, -1, 3, 0},
-/*132 */ { 9, s_2_132, -1, 1, 0},
-/*133 */ { 4, s_2_133, -1, 1, 0},
-/*134 */ { 4, s_2_134, -1, 1, 0},
-/*135 */ { 5, s_2_135, -1, 3, 0},
-/*136 */ { 4, s_2_136, -1, 1, 0},
-/*137 */ { 5, s_2_137, -1, 1, 0},
-/*138 */ { 2, s_2_138, -1, 1, 0},
-/*139 */ { 3, s_2_139, 138, 1, 0},
-/*140 */ { 4, s_2_140, 138, 1, 0},
-/*141 */ { 3, s_2_141, -1, 1, 0},
-/*142 */ { 6, s_2_142, 141, 1, 0},
-/*143 */ { 8, s_2_143, 142, 5, 0},
-/*144 */ { 4, s_2_144, -1, 1, 0},
-/*145 */ { 5, s_2_145, 144, 1, 0},
-/*146 */ { 6, s_2_146, 145, 2, 0},
-/*147 */ { 4, s_2_147, -1, 1, 0},
-/*148 */ { 4, s_2_148, -1, 1, 0},
-/*149 */ { 5, s_2_149, -1, 1, 0},
-/*150 */ { 5, s_2_150, -1, 1, 0},
-/*151 */ { 3, s_2_151, -1, 1, 0},
-/*152 */ { 3, s_2_152, -1, 1, 0},
-/*153 */ { 4, s_2_153, 152, 1, 0},
-/*154 */ { 5, s_2_154, 153, 1, 0},
-/*155 */ { 5, s_2_155, 153, 1, 0},
-/*156 */ { 3, s_2_156, -1, 1, 0},
-/*157 */ { 5, s_2_157, 156, 1, 0},
-/*158 */ { 8, s_2_158, 157, 1, 0},
-/*159 */ { 7, s_2_159, 157, 1, 0},
-/*160 */ { 9, s_2_160, 159, 1, 0},
-/*161 */ { 5, s_2_161, 156, 1, 0},
-/*162 */ { 3, s_2_162, -1, 1, 0},
-/*163 */ { 4, s_2_163, -1, 1, 0},
-/*164 */ { 4, s_2_164, -1, 1, 0},
-/*165 */ { 5, s_2_165, 164, 1, 0},
-/*166 */ { 6, s_2_166, 165, 1, 0},
-/*167 */ { 3, s_2_167, -1, 1, 0},
-/*168 */ { 3, s_2_168, -1, 1, 0},
-/*169 */ { 3, s_2_169, -1, 1, 0},
-/*170 */ { 5, s_2_170, 169, 1, 0},
-/*171 */ { 5, s_2_171, 169, 1, 0},
-/*172 */ { 2, s_2_172, -1, 1, 0},
-/*173 */ { 2, s_2_173, -1, 1, 0},
-/*174 */ { 2, s_2_174, -1, 1, 0},
-/*175 */ { 3, s_2_175, 174, 1, 0},
-/*176 */ { 2, s_2_176, -1, 1, 0},
-/*177 */ { 4, s_2_177, -1, 1, 0},
-/*178 */ { 7, s_2_178, 177, 1, 0},
-/*179 */ { 6, s_2_179, 177, 1, 0},
-/*180 */ { 8, s_2_180, 179, 1, 0},
-/*181 */ { 4, s_2_181, -1, 1, 0},
-/*182 */ { 2, s_2_182, -1, 1, 0},
-/*183 */ { 3, s_2_183, -1, 1, 0},
-/*184 */ { 3, s_2_184, -1, 1, 0},
-/*185 */ { 4, s_2_185, 184, 1, 0},
-/*186 */ { 4, s_2_186, 184, 1, 0},
-/*187 */ { 5, s_2_187, 186, 1, 0},
-/*188 */ { 7, s_2_188, 187, 1, 0},
-/*189 */ { 2, s_2_189, -1, 1, 0},
-/*190 */ { 5, s_2_190, -1, 1, 0},
-/*191 */ { 5, s_2_191, -1, 1, 0},
-/*192 */ { 5, s_2_192, -1, 1, 0},
-/*193 */ { 4, s_2_193, -1, 1, 0},
-/*194 */ { 5, s_2_194, -1, 1, 0},
-/*195 */ { 4, s_2_195, -1, 1, 0},
-/*196 */ { 1, s_2_196, -1, 1, 0},
-/*197 */ { 2, s_2_197, 196, 1, 0},
-/*198 */ { 3, s_2_198, 197, 1, 0},
-/*199 */ { 4, s_2_199, 198, 1, 0}
+{ 3, s_2_0, -1, 4, 0},
+{ 6, s_2_1, 0, 3, 0},
+{ 4, s_2_2, -1, 1, 0},
+{ 3, s_2_3, -1, 2, 0},
+{ 5, s_2_4, -1, 1, 0},
+{ 5, s_2_5, -1, 1, 0},
+{ 5, s_2_6, -1, 1, 0},
+{ 4, s_2_7, -1, 1, 0},
+{ 5, s_2_8, -1, 3, 0},
+{ 4, s_2_9, -1, 1, 0},
+{ 5, s_2_10, 9, 1, 0},
+{ 4, s_2_11, -1, 1, 0},
+{ 4, s_2_12, -1, 1, 0},
+{ 6, s_2_13, -1, 1, 0},
+{ 4, s_2_14, -1, 1, 0},
+{ 4, s_2_15, -1, 1, 0},
+{ 5, s_2_16, -1, 1, 0},
+{ 3, s_2_17, -1, 1, 0},
+{ 6, s_2_18, 17, 1, 0},
+{ 8, s_2_19, 18, 5, 0},
+{ 3, s_2_20, -1, 1, 0},
+{ 3, s_2_21, -1, 1, 0},
+{ 3, s_2_22, -1, 1, 0},
+{ 5, s_2_23, 22, 1, 0},
+{ 3, s_2_24, -1, 1, 0},
+{ 4, s_2_25, 24, 1, 0},
+{ 5, s_2_26, 25, 1, 0},
+{ 5, s_2_27, -1, 1, 0},
+{ 3, s_2_28, -1, 1, 0},
+{ 3, s_2_29, -1, 1, 0},
+{ 4, s_2_30, -1, 1, 0},
+{ 4, s_2_31, -1, 1, 0},
+{ 4, s_2_32, -1, 1, 0},
+{ 3, s_2_33, -1, 1, 0},
+{ 3, s_2_34, -1, 1, 0},
+{ 3, s_2_35, -1, 1, 0},
+{ 4, s_2_36, -1, 1, 0},
+{ 7, s_2_37, 36, 1, 0},
+{ 7, s_2_38, 36, 1, 0},
+{ 3, s_2_39, -1, 1, 0},
+{ 5, s_2_40, 39, 1, 0},
+{ 3, s_2_41, -1, 1, 0},
+{ 5, s_2_42, -1, 3, 0},
+{ 2, s_2_43, -1, 4, 0},
+{ 5, s_2_44, 43, 1, 0},
+{ 3, s_2_45, -1, 1, 0},
+{ 3, s_2_46, -1, 1, 0},
+{ 2, s_2_47, -1, 1, 0},
+{ 4, s_2_48, -1, 1, 0},
+{ 3, s_2_49, -1, 1, 0},
+{ 4, s_2_50, 49, 1, 0},
+{ 4, s_2_51, 49, 1, 0},
+{ 4, s_2_52, -1, 1, 0},
+{ 7, s_2_53, 52, 1, 0},
+{ 7, s_2_54, 52, 1, 0},
+{ 6, s_2_55, 52, 1, 0},
+{ 4, s_2_56, -1, 1, 0},
+{ 4, s_2_57, -1, 1, 0},
+{ 4, s_2_58, -1, 1, 0},
+{ 3, s_2_59, -1, 1, 0},
+{ 3, s_2_60, -1, 1, 0},
+{ 4, s_2_61, -1, 3, 0},
+{ 3, s_2_62, -1, 1, 0},
+{ 4, s_2_63, -1, 1, 0},
+{ 2, s_2_64, -1, 1, 0},
+{ 2, s_2_65, -1, 1, 0},
+{ 3, s_2_66, -1, 1, 0},
+{ 3, s_2_67, -1, 1, 0},
+{ 4, s_2_68, -1, 1, 0},
+{ 4, s_2_69, -1, 1, 0},
+{ 5, s_2_70, -1, 1, 0},
+{ 5, s_2_71, -1, 1, 0},
+{ 5, s_2_72, -1, 1, 0},
+{ 5, s_2_73, -1, 1, 0},
+{ 7, s_2_74, 73, 5, 0},
+{ 4, s_2_75, -1, 1, 0},
+{ 5, s_2_76, -1, 1, 0},
+{ 2, s_2_77, -1, 1, 0},
+{ 6, s_2_78, 77, 1, 0},
+{ 4, s_2_79, 77, 1, 0},
+{ 4, s_2_80, 77, 1, 0},
+{ 4, s_2_81, 77, 1, 0},
+{ 5, s_2_82, 77, 1, 0},
+{ 3, s_2_83, -1, 1, 0},
+{ 2, s_2_84, -1, 1, 0},
+{ 3, s_2_85, 84, 1, 0},
+{ 3, s_2_86, -1, 1, 0},
+{ 5, s_2_87, -1, 1, 0},
+{ 3, s_2_88, -1, 4, 0},
+{ 6, s_2_89, 88, 3, 0},
+{ 3, s_2_90, -1, 1, 0},
+{ 4, s_2_91, -1, 1, 0},
+{ 4, s_2_92, -1, 2, 0},
+{ 6, s_2_93, -1, 1, 0},
+{ 6, s_2_94, -1, 1, 0},
+{ 6, s_2_95, -1, 1, 0},
+{ 5, s_2_96, -1, 1, 0},
+{ 6, s_2_97, -1, 3, 0},
+{ 5, s_2_98, -1, 1, 0},
+{ 5, s_2_99, -1, 1, 0},
+{ 5, s_2_100, -1, 1, 0},
+{ 5, s_2_101, -1, 1, 0},
+{ 7, s_2_102, -1, 1, 0},
+{ 4, s_2_103, -1, 1, 0},
+{ 5, s_2_104, 103, 1, 0},
+{ 5, s_2_105, 103, 1, 0},
+{ 4, s_2_106, -1, 1, 0},
+{ 7, s_2_107, 106, 1, 0},
+{ 9, s_2_108, 107, 5, 0},
+{ 6, s_2_109, -1, 1, 0},
+{ 5, s_2_110, -1, 1, 0},
+{ 8, s_2_111, 110, 1, 0},
+{ 4, s_2_112, -1, 1, 0},
+{ 4, s_2_113, -1, 1, 0},
+{ 4, s_2_114, -1, 1, 0},
+{ 5, s_2_115, 114, 1, 0},
+{ 6, s_2_116, 115, 1, 0},
+{ 5, s_2_117, -1, 1, 0},
+{ 4, s_2_118, -1, 1, 0},
+{ 4, s_2_119, -1, 1, 0},
+{ 5, s_2_120, -1, 1, 0},
+{ 5, s_2_121, -1, 1, 0},
+{ 4, s_2_122, -1, 1, 0},
+{ 4, s_2_123, -1, 1, 0},
+{ 5, s_2_124, -1, 1, 0},
+{ 8, s_2_125, 124, 1, 0},
+{ 8, s_2_126, 124, 1, 0},
+{ 5, s_2_127, -1, 4, 0},
+{ 8, s_2_128, 127, 3, 0},
+{ 4, s_2_129, -1, 1, 0},
+{ 6, s_2_130, 129, 1, 0},
+{ 6, s_2_131, -1, 3, 0},
+{ 9, s_2_132, -1, 1, 0},
+{ 4, s_2_133, -1, 1, 0},
+{ 4, s_2_134, -1, 1, 0},
+{ 5, s_2_135, -1, 3, 0},
+{ 4, s_2_136, -1, 1, 0},
+{ 5, s_2_137, -1, 1, 0},
+{ 2, s_2_138, -1, 1, 0},
+{ 3, s_2_139, 138, 1, 0},
+{ 4, s_2_140, 138, 1, 0},
+{ 3, s_2_141, -1, 1, 0},
+{ 6, s_2_142, 141, 1, 0},
+{ 8, s_2_143, 142, 5, 0},
+{ 4, s_2_144, -1, 1, 0},
+{ 5, s_2_145, 144, 1, 0},
+{ 6, s_2_146, 145, 2, 0},
+{ 4, s_2_147, -1, 1, 0},
+{ 4, s_2_148, -1, 1, 0},
+{ 5, s_2_149, -1, 1, 0},
+{ 5, s_2_150, -1, 1, 0},
+{ 3, s_2_151, -1, 1, 0},
+{ 3, s_2_152, -1, 1, 0},
+{ 4, s_2_153, 152, 1, 0},
+{ 5, s_2_154, 153, 1, 0},
+{ 5, s_2_155, 153, 1, 0},
+{ 3, s_2_156, -1, 1, 0},
+{ 5, s_2_157, 156, 1, 0},
+{ 8, s_2_158, 157, 1, 0},
+{ 7, s_2_159, 157, 1, 0},
+{ 9, s_2_160, 159, 1, 0},
+{ 5, s_2_161, 156, 1, 0},
+{ 3, s_2_162, -1, 1, 0},
+{ 4, s_2_163, -1, 1, 0},
+{ 4, s_2_164, -1, 1, 0},
+{ 5, s_2_165, 164, 1, 0},
+{ 6, s_2_166, 165, 1, 0},
+{ 3, s_2_167, -1, 1, 0},
+{ 3, s_2_168, -1, 1, 0},
+{ 3, s_2_169, -1, 1, 0},
+{ 5, s_2_170, 169, 1, 0},
+{ 5, s_2_171, 169, 1, 0},
+{ 2, s_2_172, -1, 1, 0},
+{ 2, s_2_173, -1, 1, 0},
+{ 2, s_2_174, -1, 1, 0},
+{ 3, s_2_175, 174, 1, 0},
+{ 2, s_2_176, -1, 1, 0},
+{ 4, s_2_177, -1, 1, 0},
+{ 7, s_2_178, 177, 1, 0},
+{ 6, s_2_179, 177, 1, 0},
+{ 8, s_2_180, 179, 1, 0},
+{ 4, s_2_181, -1, 1, 0},
+{ 2, s_2_182, -1, 1, 0},
+{ 3, s_2_183, -1, 1, 0},
+{ 3, s_2_184, -1, 1, 0},
+{ 4, s_2_185, 184, 1, 0},
+{ 4, s_2_186, 184, 1, 0},
+{ 5, s_2_187, 186, 1, 0},
+{ 7, s_2_188, 187, 1, 0},
+{ 2, s_2_189, -1, 1, 0},
+{ 5, s_2_190, -1, 1, 0},
+{ 5, s_2_191, -1, 1, 0},
+{ 5, s_2_192, -1, 1, 0},
+{ 4, s_2_193, -1, 1, 0},
+{ 5, s_2_194, -1, 1, 0},
+{ 4, s_2_195, -1, 1, 0},
+{ 1, s_2_196, -1, 1, 0},
+{ 2, s_2_197, 196, 1, 0},
+{ 3, s_2_198, 197, 1, 0},
+{ 4, s_2_199, 198, 1, 0}
 };
 
 static const symbol s_3_0[3] = { 'a', 'b', 'a' };
@@ -833,289 +833,289 @@ static const symbol s_3_282[2] = { 'i', 0xF3 };
 
 static const struct among a_3[283] =
 {
-/*  0 */ { 3, s_3_0, -1, 1, 0},
-/*  1 */ { 4, s_3_1, -1, 1, 0},
-/*  2 */ { 4, s_3_2, -1, 1, 0},
-/*  3 */ { 4, s_3_3, -1, 1, 0},
-/*  4 */ { 3, s_3_4, -1, 1, 0},
-/*  5 */ { 3, s_3_5, -1, 1, 0},
-/*  6 */ { 3, s_3_6, -1, 1, 0},
-/*  7 */ { 3, s_3_7, -1, 1, 0},
-/*  8 */ { 2, s_3_8, -1, 1, 0},
-/*  9 */ { 4, s_3_9, 8, 1, 0},
-/* 10 */ { 4, s_3_10, 8, 1, 0},
-/* 11 */ { 3, s_3_11, -1, 1, 0},
-/* 12 */ { 4, s_3_12, -1, 1, 0},
-/* 13 */ { 3, s_3_13, -1, 1, 0},
-/* 14 */ { 5, s_3_14, -1, 1, 0},
-/* 15 */ { 3, s_3_15, -1, 1, 0},
-/* 16 */ { 3, s_3_16, -1, 1, 0},
-/* 17 */ { 3, s_3_17, -1, 1, 0},
-/* 18 */ { 4, s_3_18, -1, 1, 0},
-/* 19 */ { 2, s_3_19, -1, 1, 0},
-/* 20 */ { 4, s_3_20, 19, 1, 0},
-/* 21 */ { 4, s_3_21, 19, 1, 0},
-/* 22 */ { 4, s_3_22, 19, 1, 0},
-/* 23 */ { 2, s_3_23, -1, 1, 0},
-/* 24 */ { 3, s_3_24, -1, 1, 0},
-/* 25 */ { 3, s_3_25, -1, 1, 0},
-/* 26 */ { 2, s_3_26, -1, 1, 0},
-/* 27 */ { 2, s_3_27, -1, 1, 0},
-/* 28 */ { 2, s_3_28, -1, 1, 0},
-/* 29 */ { 2, s_3_29, -1, 1, 0},
-/* 30 */ { 2, s_3_30, -1, 1, 0},
-/* 31 */ { 3, s_3_31, 30, 1, 0},
-/* 32 */ { 3, s_3_32, -1, 1, 0},
-/* 33 */ { 4, s_3_33, -1, 1, 0},
-/* 34 */ { 4, s_3_34, -1, 1, 0},
-/* 35 */ { 4, s_3_35, -1, 1, 0},
-/* 36 */ { 2, s_3_36, -1, 1, 0},
-/* 37 */ { 3, s_3_37, -1, 1, 0},
-/* 38 */ { 5, s_3_38, -1, 1, 0},
-/* 39 */ { 4, s_3_39, -1, 1, 0},
-/* 40 */ { 4, s_3_40, -1, 1, 0},
-/* 41 */ { 2, s_3_41, -1, 1, 0},
-/* 42 */ { 2, s_3_42, -1, 1, 0},
-/* 43 */ { 4, s_3_43, 42, 1, 0},
-/* 44 */ { 4, s_3_44, 42, 1, 0},
-/* 45 */ { 4, s_3_45, 42, 1, 0},
-/* 46 */ { 4, s_3_46, 42, 1, 0},
-/* 47 */ { 5, s_3_47, 42, 1, 0},
-/* 48 */ { 5, s_3_48, 42, 1, 0},
-/* 49 */ { 5, s_3_49, 42, 1, 0},
-/* 50 */ { 5, s_3_50, 42, 1, 0},
-/* 51 */ { 4, s_3_51, 42, 1, 0},
-/* 52 */ { 4, s_3_52, 42, 1, 0},
-/* 53 */ { 4, s_3_53, 42, 1, 0},
-/* 54 */ { 5, s_3_54, 42, 1, 0},
-/* 55 */ { 3, s_3_55, 42, 1, 0},
-/* 56 */ { 5, s_3_56, 55, 1, 0},
-/* 57 */ { 5, s_3_57, 55, 1, 0},
-/* 58 */ { 5, s_3_58, -1, 1, 0},
-/* 59 */ { 5, s_3_59, -1, 1, 0},
-/* 60 */ { 5, s_3_60, -1, 1, 0},
-/* 61 */ { 5, s_3_61, -1, 1, 0},
-/* 62 */ { 5, s_3_62, -1, 1, 0},
-/* 63 */ { 5, s_3_63, -1, 1, 0},
-/* 64 */ { 5, s_3_64, -1, 1, 0},
-/* 65 */ { 2, s_3_65, -1, 1, 0},
-/* 66 */ { 2, s_3_66, -1, 1, 0},
-/* 67 */ { 4, s_3_67, 66, 1, 0},
-/* 68 */ { 5, s_3_68, 66, 1, 0},
-/* 69 */ { 4, s_3_69, 66, 1, 0},
-/* 70 */ { 5, s_3_70, 66, 1, 0},
-/* 71 */ { 4, s_3_71, 66, 1, 0},
-/* 72 */ { 3, s_3_72, 66, 1, 0},
-/* 73 */ { 5, s_3_73, 72, 1, 0},
-/* 74 */ { 5, s_3_74, 72, 1, 0},
-/* 75 */ { 5, s_3_75, 72, 1, 0},
-/* 76 */ { 2, s_3_76, -1, 1, 0},
-/* 77 */ { 3, s_3_77, 76, 1, 0},
-/* 78 */ { 5, s_3_78, 77, 1, 0},
-/* 79 */ { 5, s_3_79, 77, 1, 0},
-/* 80 */ { 4, s_3_80, 76, 1, 0},
-/* 81 */ { 4, s_3_81, 76, 1, 0},
-/* 82 */ { 4, s_3_82, 76, 1, 0},
-/* 83 */ { 4, s_3_83, 76, 1, 0},
-/* 84 */ { 4, s_3_84, 76, 1, 0},
-/* 85 */ { 4, s_3_85, 76, 1, 0},
-/* 86 */ { 5, s_3_86, 76, 1, 0},
-/* 87 */ { 5, s_3_87, 76, 1, 0},
-/* 88 */ { 5, s_3_88, 76, 1, 0},
-/* 89 */ { 5, s_3_89, 76, 1, 0},
-/* 90 */ { 5, s_3_90, 76, 1, 0},
-/* 91 */ { 5, s_3_91, 76, 1, 0},
-/* 92 */ { 6, s_3_92, 76, 1, 0},
-/* 93 */ { 6, s_3_93, 76, 1, 0},
-/* 94 */ { 6, s_3_94, 76, 1, 0},
-/* 95 */ { 4, s_3_95, 76, 1, 0},
-/* 96 */ { 4, s_3_96, 76, 1, 0},
-/* 97 */ { 5, s_3_97, 96, 1, 0},
-/* 98 */ { 4, s_3_98, 76, 1, 0},
-/* 99 */ { 3, s_3_99, 76, 1, 0},
-/*100 */ { 2, s_3_100, -1, 1, 0},
-/*101 */ { 4, s_3_101, 100, 1, 0},
-/*102 */ { 3, s_3_102, 100, 1, 0},
-/*103 */ { 4, s_3_103, 102, 1, 0},
-/*104 */ { 5, s_3_104, 102, 1, 0},
-/*105 */ { 5, s_3_105, 102, 1, 0},
-/*106 */ { 5, s_3_106, 102, 1, 0},
-/*107 */ { 5, s_3_107, 102, 1, 0},
-/*108 */ { 6, s_3_108, 100, 1, 0},
-/*109 */ { 5, s_3_109, 100, 1, 0},
-/*110 */ { 4, s_3_110, -1, 1, 0},
-/*111 */ { 5, s_3_111, -1, 1, 0},
-/*112 */ { 4, s_3_112, -1, 1, 0},
-/*113 */ { 4, s_3_113, -1, 1, 0},
-/*114 */ { 4, s_3_114, -1, 1, 0},
-/*115 */ { 3, s_3_115, -1, 1, 0},
-/*116 */ { 3, s_3_116, -1, 1, 0},
-/*117 */ { 3, s_3_117, -1, 1, 0},
-/*118 */ { 4, s_3_118, -1, 2, 0},
-/*119 */ { 5, s_3_119, -1, 1, 0},
-/*120 */ { 2, s_3_120, -1, 1, 0},
-/*121 */ { 3, s_3_121, -1, 1, 0},
-/*122 */ { 4, s_3_122, 121, 1, 0},
-/*123 */ { 3, s_3_123, -1, 1, 0},
-/*124 */ { 4, s_3_124, -1, 1, 0},
-/*125 */ { 2, s_3_125, -1, 1, 0},
-/*126 */ { 4, s_3_126, 125, 1, 0},
-/*127 */ { 2, s_3_127, -1, 1, 0},
-/*128 */ { 5, s_3_128, 127, 1, 0},
-/*129 */ { 2, s_3_129, -1, 1, 0},
-/*130 */ { 4, s_3_130, -1, 1, 0},
-/*131 */ { 2, s_3_131, -1, 1, 0},
-/*132 */ { 4, s_3_132, 131, 1, 0},
-/*133 */ { 4, s_3_133, 131, 1, 0},
-/*134 */ { 4, s_3_134, 131, 1, 0},
-/*135 */ { 4, s_3_135, 131, 1, 0},
-/*136 */ { 5, s_3_136, 131, 1, 0},
-/*137 */ { 3, s_3_137, 131, 1, 0},
-/*138 */ { 5, s_3_138, 137, 1, 0},
-/*139 */ { 5, s_3_139, 137, 1, 0},
-/*140 */ { 5, s_3_140, 137, 1, 0},
-/*141 */ { 3, s_3_141, -1, 1, 0},
-/*142 */ { 2, s_3_142, -1, 1, 0},
-/*143 */ { 4, s_3_143, 142, 1, 0},
-/*144 */ { 4, s_3_144, 142, 1, 0},
-/*145 */ { 4, s_3_145, 142, 1, 0},
-/*146 */ { 4, s_3_146, 142, 1, 0},
-/*147 */ { 5, s_3_147, 142, 1, 0},
-/*148 */ { 3, s_3_148, 142, 1, 0},
-/*149 */ { 5, s_3_149, 148, 1, 0},
-/*150 */ { 5, s_3_150, 148, 1, 0},
-/*151 */ { 4, s_3_151, 142, 1, 0},
-/*152 */ { 4, s_3_152, 142, 1, 0},
-/*153 */ { 6, s_3_153, 142, 1, 0},
-/*154 */ { 4, s_3_154, 142, 1, 0},
-/*155 */ { 4, s_3_155, 142, 1, 0},
-/*156 */ { 5, s_3_156, 142, 1, 0},
-/*157 */ { 5, s_3_157, 142, 1, 0},
-/*158 */ { 5, s_3_158, 142, 1, 0},
-/*159 */ { 5, s_3_159, 142, 1, 0},
-/*160 */ { 5, s_3_160, 142, 1, 0},
-/*161 */ { 4, s_3_161, 142, 1, 0},
-/*162 */ { 6, s_3_162, 161, 1, 0},
-/*163 */ { 6, s_3_163, 161, 1, 0},
-/*164 */ { 4, s_3_164, 142, 1, 0},
-/*165 */ { 4, s_3_165, 142, 1, 0},
-/*166 */ { 5, s_3_166, 165, 1, 0},
-/*167 */ { 4, s_3_167, 142, 1, 0},
-/*168 */ { 3, s_3_168, 142, 1, 0},
-/*169 */ { 5, s_3_169, -1, 1, 0},
-/*170 */ { 5, s_3_170, -1, 1, 0},
-/*171 */ { 6, s_3_171, -1, 1, 0},
-/*172 */ { 4, s_3_172, -1, 1, 0},
-/*173 */ { 6, s_3_173, 172, 1, 0},
-/*174 */ { 6, s_3_174, 172, 1, 0},
-/*175 */ { 6, s_3_175, 172, 1, 0},
-/*176 */ { 5, s_3_176, -1, 1, 0},
-/*177 */ { 6, s_3_177, -1, 1, 0},
-/*178 */ { 6, s_3_178, -1, 1, 0},
-/*179 */ { 6, s_3_179, -1, 1, 0},
-/*180 */ { 4, s_3_180, -1, 1, 0},
-/*181 */ { 3, s_3_181, -1, 1, 0},
-/*182 */ { 4, s_3_182, 181, 1, 0},
-/*183 */ { 5, s_3_183, 181, 1, 0},
-/*184 */ { 5, s_3_184, 181, 1, 0},
-/*185 */ { 5, s_3_185, 181, 1, 0},
-/*186 */ { 5, s_3_186, 181, 1, 0},
-/*187 */ { 6, s_3_187, -1, 1, 0},
-/*188 */ { 5, s_3_188, -1, 1, 0},
-/*189 */ { 5, s_3_189, -1, 1, 0},
-/*190 */ { 3, s_3_190, -1, 1, 0},
-/*191 */ { 5, s_3_191, -1, 1, 0},
-/*192 */ { 5, s_3_192, -1, 1, 0},
-/*193 */ { 5, s_3_193, -1, 1, 0},
-/*194 */ { 3, s_3_194, -1, 1, 0},
-/*195 */ { 4, s_3_195, -1, 1, 0},
-/*196 */ { 4, s_3_196, -1, 1, 0},
-/*197 */ { 4, s_3_197, -1, 1, 0},
-/*198 */ { 6, s_3_198, 197, 1, 0},
-/*199 */ { 6, s_3_199, 197, 1, 0},
-/*200 */ { 7, s_3_200, 197, 1, 0},
-/*201 */ { 5, s_3_201, 197, 1, 0},
-/*202 */ { 7, s_3_202, 201, 1, 0},
-/*203 */ { 7, s_3_203, 201, 1, 0},
-/*204 */ { 7, s_3_204, 201, 1, 0},
-/*205 */ { 6, s_3_205, -1, 1, 0},
-/*206 */ { 6, s_3_206, -1, 1, 0},
-/*207 */ { 6, s_3_207, -1, 1, 0},
-/*208 */ { 6, s_3_208, -1, 1, 0},
-/*209 */ { 7, s_3_209, -1, 1, 0},
-/*210 */ { 4, s_3_210, -1, 1, 0},
-/*211 */ { 5, s_3_211, -1, 1, 0},
-/*212 */ { 3, s_3_212, -1, 1, 0},
-/*213 */ { 5, s_3_213, 212, 1, 0},
-/*214 */ { 3, s_3_214, -1, 1, 0},
-/*215 */ { 3, s_3_215, -1, 1, 0},
-/*216 */ { 3, s_3_216, -1, 1, 0},
-/*217 */ { 4, s_3_217, -1, 1, 0},
-/*218 */ { 2, s_3_218, -1, 1, 0},
-/*219 */ { 4, s_3_219, 218, 1, 0},
-/*220 */ { 4, s_3_220, 218, 1, 0},
-/*221 */ { 4, s_3_221, -1, 1, 0},
-/*222 */ { 4, s_3_222, -1, 1, 0},
-/*223 */ { 4, s_3_223, -1, 1, 0},
-/*224 */ { 2, s_3_224, -1, 1, 0},
-/*225 */ { 4, s_3_225, 224, 1, 0},
-/*226 */ { 2, s_3_226, -1, 1, 0},
-/*227 */ { 3, s_3_227, -1, 1, 0},
-/*228 */ { 2, s_3_228, -1, 1, 0},
-/*229 */ { 2, s_3_229, -1, 1, 0},
-/*230 */ { 3, s_3_230, -1, 1, 0},
-/*231 */ { 3, s_3_231, -1, 1, 0},
-/*232 */ { 3, s_3_232, -1, 1, 0},
-/*233 */ { 2, s_3_233, -1, 1, 0},
-/*234 */ { 2, s_3_234, -1, 1, 0},
-/*235 */ { 2, s_3_235, -1, 1, 0},
-/*236 */ { 4, s_3_236, 235, 1, 0},
-/*237 */ { 3, s_3_237, -1, 1, 0},
-/*238 */ { 4, s_3_238, -1, 1, 0},
-/*239 */ { 4, s_3_239, -1, 1, 0},
-/*240 */ { 4, s_3_240, -1, 1, 0},
-/*241 */ { 4, s_3_241, -1, 1, 0},
-/*242 */ { 4, s_3_242, -1, 1, 0},
-/*243 */ { 5, s_3_243, -1, 1, 0},
-/*244 */ { 5, s_3_244, -1, 1, 0},
-/*245 */ { 7, s_3_245, 244, 1, 0},
-/*246 */ { 5, s_3_246, -1, 1, 0},
-/*247 */ { 5, s_3_247, -1, 1, 0},
-/*248 */ { 5, s_3_248, -1, 1, 0},
-/*249 */ { 5, s_3_249, -1, 1, 0},
-/*250 */ { 4, s_3_250, -1, 1, 0},
-/*251 */ { 4, s_3_251, -1, 1, 0},
-/*252 */ { 5, s_3_252, -1, 1, 0},
-/*253 */ { 3, s_3_253, -1, 1, 0},
-/*254 */ { 5, s_3_254, 253, 1, 0},
-/*255 */ { 3, s_3_255, -1, 1, 0},
-/*256 */ { 5, s_3_256, 255, 1, 0},
-/*257 */ { 5, s_3_257, 255, 1, 0},
-/*258 */ { 5, s_3_258, -1, 1, 0},
-/*259 */ { 5, s_3_259, -1, 1, 0},
-/*260 */ { 5, s_3_260, -1, 1, 0},
-/*261 */ { 5, s_3_261, -1, 1, 0},
-/*262 */ { 5, s_3_262, -1, 1, 0},
-/*263 */ { 5, s_3_263, -1, 1, 0},
-/*264 */ { 2, s_3_264, -1, 1, 0},
-/*265 */ { 2, s_3_265, -1, 1, 0},
-/*266 */ { 3, s_3_266, 265, 1, 0},
-/*267 */ { 2, s_3_267, -1, 1, 0},
-/*268 */ { 3, s_3_268, -1, 1, 0},
-/*269 */ { 2, s_3_269, -1, 1, 0},
-/*270 */ { 3, s_3_270, -1, 1, 0},
-/*271 */ { 3, s_3_271, -1, 1, 0},
-/*272 */ { 4, s_3_272, -1, 1, 0},
-/*273 */ { 3, s_3_273, -1, 1, 0},
-/*274 */ { 3, s_3_274, -1, 1, 0},
-/*275 */ { 3, s_3_275, -1, 1, 0},
-/*276 */ { 3, s_3_276, -1, 1, 0},
-/*277 */ { 3, s_3_277, -1, 1, 0},
-/*278 */ { 3, s_3_278, -1, 1, 0},
-/*279 */ { 3, s_3_279, -1, 1, 0},
-/*280 */ { 1, s_3_280, -1, 1, 0},
-/*281 */ { 2, s_3_281, -1, 1, 0},
-/*282 */ { 2, s_3_282, -1, 1, 0}
+{ 3, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 4, 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},
+{ 3, s_3_6, -1, 1, 0},
+{ 3, s_3_7, -1, 1, 0},
+{ 2, s_3_8, -1, 1, 0},
+{ 4, s_3_9, 8, 1, 0},
+{ 4, s_3_10, 8, 1, 0},
+{ 3, s_3_11, -1, 1, 0},
+{ 4, s_3_12, -1, 1, 0},
+{ 3, s_3_13, -1, 1, 0},
+{ 5, s_3_14, -1, 1, 0},
+{ 3, s_3_15, -1, 1, 0},
+{ 3, s_3_16, -1, 1, 0},
+{ 3, s_3_17, -1, 1, 0},
+{ 4, s_3_18, -1, 1, 0},
+{ 2, s_3_19, -1, 1, 0},
+{ 4, s_3_20, 19, 1, 0},
+{ 4, s_3_21, 19, 1, 0},
+{ 4, s_3_22, 19, 1, 0},
+{ 2, s_3_23, -1, 1, 0},
+{ 3, s_3_24, -1, 1, 0},
+{ 3, s_3_25, -1, 1, 0},
+{ 2, s_3_26, -1, 1, 0},
+{ 2, s_3_27, -1, 1, 0},
+{ 2, s_3_28, -1, 1, 0},
+{ 2, s_3_29, -1, 1, 0},
+{ 2, s_3_30, -1, 1, 0},
+{ 3, 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, 1, 0},
+{ 4, s_3_35, -1, 1, 0},
+{ 2, s_3_36, -1, 1, 0},
+{ 3, s_3_37, -1, 1, 0},
+{ 5, s_3_38, -1, 1, 0},
+{ 4, s_3_39, -1, 1, 0},
+{ 4, s_3_40, -1, 1, 0},
+{ 2, s_3_41, -1, 1, 0},
+{ 2, s_3_42, -1, 1, 0},
+{ 4, s_3_43, 42, 1, 0},
+{ 4, s_3_44, 42, 1, 0},
+{ 4, s_3_45, 42, 1, 0},
+{ 4, s_3_46, 42, 1, 0},
+{ 5, s_3_47, 42, 1, 0},
+{ 5, s_3_48, 42, 1, 0},
+{ 5, s_3_49, 42, 1, 0},
+{ 5, s_3_50, 42, 1, 0},
+{ 4, s_3_51, 42, 1, 0},
+{ 4, s_3_52, 42, 1, 0},
+{ 4, s_3_53, 42, 1, 0},
+{ 5, s_3_54, 42, 1, 0},
+{ 3, s_3_55, 42, 1, 0},
+{ 5, s_3_56, 55, 1, 0},
+{ 5, s_3_57, 55, 1, 0},
+{ 5, s_3_58, -1, 1, 0},
+{ 5, s_3_59, -1, 1, 0},
+{ 5, s_3_60, -1, 1, 0},
+{ 5, s_3_61, -1, 1, 0},
+{ 5, s_3_62, -1, 1, 0},
+{ 5, s_3_63, -1, 1, 0},
+{ 5, s_3_64, -1, 1, 0},
+{ 2, s_3_65, -1, 1, 0},
+{ 2, s_3_66, -1, 1, 0},
+{ 4, s_3_67, 66, 1, 0},
+{ 5, s_3_68, 66, 1, 0},
+{ 4, s_3_69, 66, 1, 0},
+{ 5, s_3_70, 66, 1, 0},
+{ 4, s_3_71, 66, 1, 0},
+{ 3, s_3_72, 66, 1, 0},
+{ 5, s_3_73, 72, 1, 0},
+{ 5, s_3_74, 72, 1, 0},
+{ 5, s_3_75, 72, 1, 0},
+{ 2, s_3_76, -1, 1, 0},
+{ 3, s_3_77, 76, 1, 0},
+{ 5, s_3_78, 77, 1, 0},
+{ 5, s_3_79, 77, 1, 0},
+{ 4, s_3_80, 76, 1, 0},
+{ 4, s_3_81, 76, 1, 0},
+{ 4, s_3_82, 76, 1, 0},
+{ 4, s_3_83, 76, 1, 0},
+{ 4, s_3_84, 76, 1, 0},
+{ 4, s_3_85, 76, 1, 0},
+{ 5, s_3_86, 76, 1, 0},
+{ 5, s_3_87, 76, 1, 0},
+{ 5, s_3_88, 76, 1, 0},
+{ 5, s_3_89, 76, 1, 0},
+{ 5, s_3_90, 76, 1, 0},
+{ 5, s_3_91, 76, 1, 0},
+{ 6, s_3_92, 76, 1, 0},
+{ 6, s_3_93, 76, 1, 0},
+{ 6, s_3_94, 76, 1, 0},
+{ 4, s_3_95, 76, 1, 0},
+{ 4, s_3_96, 76, 1, 0},
+{ 5, s_3_97, 96, 1, 0},
+{ 4, s_3_98, 76, 1, 0},
+{ 3, s_3_99, 76, 1, 0},
+{ 2, s_3_100, -1, 1, 0},
+{ 4, s_3_101, 100, 1, 0},
+{ 3, s_3_102, 100, 1, 0},
+{ 4, s_3_103, 102, 1, 0},
+{ 5, s_3_104, 102, 1, 0},
+{ 5, s_3_105, 102, 1, 0},
+{ 5, s_3_106, 102, 1, 0},
+{ 5, s_3_107, 102, 1, 0},
+{ 6, s_3_108, 100, 1, 0},
+{ 5, s_3_109, 100, 1, 0},
+{ 4, s_3_110, -1, 1, 0},
+{ 5, s_3_111, -1, 1, 0},
+{ 4, s_3_112, -1, 1, 0},
+{ 4, s_3_113, -1, 1, 0},
+{ 4, s_3_114, -1, 1, 0},
+{ 3, s_3_115, -1, 1, 0},
+{ 3, s_3_116, -1, 1, 0},
+{ 3, s_3_117, -1, 1, 0},
+{ 4, s_3_118, -1, 2, 0},
+{ 5, s_3_119, -1, 1, 0},
+{ 2, s_3_120, -1, 1, 0},
+{ 3, s_3_121, -1, 1, 0},
+{ 4, s_3_122, 121, 1, 0},
+{ 3, s_3_123, -1, 1, 0},
+{ 4, s_3_124, -1, 1, 0},
+{ 2, s_3_125, -1, 1, 0},
+{ 4, s_3_126, 125, 1, 0},
+{ 2, s_3_127, -1, 1, 0},
+{ 5, s_3_128, 127, 1, 0},
+{ 2, s_3_129, -1, 1, 0},
+{ 4, s_3_130, -1, 1, 0},
+{ 2, s_3_131, -1, 1, 0},
+{ 4, s_3_132, 131, 1, 0},
+{ 4, s_3_133, 131, 1, 0},
+{ 4, s_3_134, 131, 1, 0},
+{ 4, s_3_135, 131, 1, 0},
+{ 5, s_3_136, 131, 1, 0},
+{ 3, s_3_137, 131, 1, 0},
+{ 5, s_3_138, 137, 1, 0},
+{ 5, s_3_139, 137, 1, 0},
+{ 5, s_3_140, 137, 1, 0},
+{ 3, s_3_141, -1, 1, 0},
+{ 2, s_3_142, -1, 1, 0},
+{ 4, s_3_143, 142, 1, 0},
+{ 4, s_3_144, 142, 1, 0},
+{ 4, s_3_145, 142, 1, 0},
+{ 4, s_3_146, 142, 1, 0},
+{ 5, s_3_147, 142, 1, 0},
+{ 3, s_3_148, 142, 1, 0},
+{ 5, s_3_149, 148, 1, 0},
+{ 5, s_3_150, 148, 1, 0},
+{ 4, s_3_151, 142, 1, 0},
+{ 4, s_3_152, 142, 1, 0},
+{ 6, s_3_153, 142, 1, 0},
+{ 4, s_3_154, 142, 1, 0},
+{ 4, s_3_155, 142, 1, 0},
+{ 5, s_3_156, 142, 1, 0},
+{ 5, s_3_157, 142, 1, 0},
+{ 5, s_3_158, 142, 1, 0},
+{ 5, s_3_159, 142, 1, 0},
+{ 5, s_3_160, 142, 1, 0},
+{ 4, s_3_161, 142, 1, 0},
+{ 6, s_3_162, 161, 1, 0},
+{ 6, s_3_163, 161, 1, 0},
+{ 4, s_3_164, 142, 1, 0},
+{ 4, s_3_165, 142, 1, 0},
+{ 5, s_3_166, 165, 1, 0},
+{ 4, s_3_167, 142, 1, 0},
+{ 3, s_3_168, 142, 1, 0},
+{ 5, s_3_169, -1, 1, 0},
+{ 5, s_3_170, -1, 1, 0},
+{ 6, s_3_171, -1, 1, 0},
+{ 4, s_3_172, -1, 1, 0},
+{ 6, s_3_173, 172, 1, 0},
+{ 6, s_3_174, 172, 1, 0},
+{ 6, s_3_175, 172, 1, 0},
+{ 5, s_3_176, -1, 1, 0},
+{ 6, s_3_177, -1, 1, 0},
+{ 6, s_3_178, -1, 1, 0},
+{ 6, s_3_179, -1, 1, 0},
+{ 4, s_3_180, -1, 1, 0},
+{ 3, s_3_181, -1, 1, 0},
+{ 4, s_3_182, 181, 1, 0},
+{ 5, s_3_183, 181, 1, 0},
+{ 5, s_3_184, 181, 1, 0},
+{ 5, s_3_185, 181, 1, 0},
+{ 5, s_3_186, 181, 1, 0},
+{ 6, s_3_187, -1, 1, 0},
+{ 5, s_3_188, -1, 1, 0},
+{ 5, s_3_189, -1, 1, 0},
+{ 3, s_3_190, -1, 1, 0},
+{ 5, s_3_191, -1, 1, 0},
+{ 5, s_3_192, -1, 1, 0},
+{ 5, s_3_193, -1, 1, 0},
+{ 3, s_3_194, -1, 1, 0},
+{ 4, s_3_195, -1, 1, 0},
+{ 4, s_3_196, -1, 1, 0},
+{ 4, s_3_197, -1, 1, 0},
+{ 6, s_3_198, 197, 1, 0},
+{ 6, s_3_199, 197, 1, 0},
+{ 7, s_3_200, 197, 1, 0},
+{ 5, s_3_201, 197, 1, 0},
+{ 7, s_3_202, 201, 1, 0},
+{ 7, s_3_203, 201, 1, 0},
+{ 7, s_3_204, 201, 1, 0},
+{ 6, s_3_205, -1, 1, 0},
+{ 6, s_3_206, -1, 1, 0},
+{ 6, s_3_207, -1, 1, 0},
+{ 6, s_3_208, -1, 1, 0},
+{ 7, s_3_209, -1, 1, 0},
+{ 4, s_3_210, -1, 1, 0},
+{ 5, s_3_211, -1, 1, 0},
+{ 3, s_3_212, -1, 1, 0},
+{ 5, s_3_213, 212, 1, 0},
+{ 3, s_3_214, -1, 1, 0},
+{ 3, s_3_215, -1, 1, 0},
+{ 3, s_3_216, -1, 1, 0},
+{ 4, s_3_217, -1, 1, 0},
+{ 2, s_3_218, -1, 1, 0},
+{ 4, s_3_219, 218, 1, 0},
+{ 4, s_3_220, 218, 1, 0},
+{ 4, s_3_221, -1, 1, 0},
+{ 4, s_3_222, -1, 1, 0},
+{ 4, s_3_223, -1, 1, 0},
+{ 2, s_3_224, -1, 1, 0},
+{ 4, s_3_225, 224, 1, 0},
+{ 2, s_3_226, -1, 1, 0},
+{ 3, s_3_227, -1, 1, 0},
+{ 2, s_3_228, -1, 1, 0},
+{ 2, s_3_229, -1, 1, 0},
+{ 3, s_3_230, -1, 1, 0},
+{ 3, s_3_231, -1, 1, 0},
+{ 3, s_3_232, -1, 1, 0},
+{ 2, s_3_233, -1, 1, 0},
+{ 2, s_3_234, -1, 1, 0},
+{ 2, s_3_235, -1, 1, 0},
+{ 4, s_3_236, 235, 1, 0},
+{ 3, s_3_237, -1, 1, 0},
+{ 4, s_3_238, -1, 1, 0},
+{ 4, s_3_239, -1, 1, 0},
+{ 4, s_3_240, -1, 1, 0},
+{ 4, s_3_241, -1, 1, 0},
+{ 4, s_3_242, -1, 1, 0},
+{ 5, s_3_243, -1, 1, 0},
+{ 5, s_3_244, -1, 1, 0},
+{ 7, s_3_245, 244, 1, 0},
+{ 5, s_3_246, -1, 1, 0},
+{ 5, s_3_247, -1, 1, 0},
+{ 5, s_3_248, -1, 1, 0},
+{ 5, s_3_249, -1, 1, 0},
+{ 4, s_3_250, -1, 1, 0},
+{ 4, s_3_251, -1, 1, 0},
+{ 5, s_3_252, -1, 1, 0},
+{ 3, s_3_253, -1, 1, 0},
+{ 5, s_3_254, 253, 1, 0},
+{ 3, s_3_255, -1, 1, 0},
+{ 5, s_3_256, 255, 1, 0},
+{ 5, s_3_257, 255, 1, 0},
+{ 5, s_3_258, -1, 1, 0},
+{ 5, s_3_259, -1, 1, 0},
+{ 5, s_3_260, -1, 1, 0},
+{ 5, s_3_261, -1, 1, 0},
+{ 5, s_3_262, -1, 1, 0},
+{ 5, s_3_263, -1, 1, 0},
+{ 2, s_3_264, -1, 1, 0},
+{ 2, s_3_265, -1, 1, 0},
+{ 3, s_3_266, 265, 1, 0},
+{ 2, s_3_267, -1, 1, 0},
+{ 3, s_3_268, -1, 1, 0},
+{ 2, s_3_269, -1, 1, 0},
+{ 3, s_3_270, -1, 1, 0},
+{ 3, s_3_271, -1, 1, 0},
+{ 4, s_3_272, -1, 1, 0},
+{ 3, s_3_273, -1, 1, 0},
+{ 3, s_3_274, -1, 1, 0},
+{ 3, s_3_275, -1, 1, 0},
+{ 3, s_3_276, -1, 1, 0},
+{ 3, s_3_277, -1, 1, 0},
+{ 3, s_3_278, -1, 1, 0},
+{ 3, s_3_279, -1, 1, 0},
+{ 1, s_3_280, -1, 1, 0},
+{ 2, s_3_281, -1, 1, 0},
+{ 2, s_3_282, -1, 1, 0}
 };
 
 static const symbol s_4_0[1] = { 'a' };
@@ -1143,28 +1143,28 @@ static const symbol s_4_21[1] = { 0xF3 };
 
 static const struct among a_4[22] =
 {
-/*  0 */ { 1, s_4_0, -1, 1, 0},
-/*  1 */ { 1, s_4_1, -1, 1, 0},
-/*  2 */ { 1, s_4_2, -1, 1, 0},
-/*  3 */ { 2, s_4_3, -1, 1, 0},
-/*  4 */ { 1, s_4_4, -1, 1, 0},
-/*  5 */ { 2, s_4_5, -1, 1, 0},
-/*  6 */ { 1, s_4_6, -1, 1, 0},
-/*  7 */ { 2, s_4_7, 6, 1, 0},
-/*  8 */ { 2, s_4_8, 6, 1, 0},
-/*  9 */ { 2, s_4_9, 6, 1, 0},
-/* 10 */ { 2, s_4_10, -1, 1, 0},
-/* 11 */ { 2, s_4_11, -1, 1, 0},
-/* 12 */ { 2, s_4_12, -1, 1, 0},
-/* 13 */ { 3, s_4_13, -1, 2, 0},
-/* 14 */ { 3, s_4_14, -1, 1, 0},
-/* 15 */ { 1, s_4_15, -1, 1, 0},
-/* 16 */ { 1, s_4_16, -1, 1, 0},
-/* 17 */ { 1, s_4_17, -1, 1, 0},
-/* 18 */ { 1, s_4_18, -1, 1, 0},
-/* 19 */ { 1, s_4_19, -1, 1, 0},
-/* 20 */ { 1, s_4_20, -1, 1, 0},
-/* 21 */ { 1, s_4_21, -1, 1, 0}
+{ 1, s_4_0, -1, 1, 0},
+{ 1, s_4_1, -1, 1, 0},
+{ 1, s_4_2, -1, 1, 0},
+{ 2, s_4_3, -1, 1, 0},
+{ 1, s_4_4, -1, 1, 0},
+{ 2, s_4_5, -1, 1, 0},
+{ 1, s_4_6, -1, 1, 0},
+{ 2, s_4_7, 6, 1, 0},
+{ 2, s_4_8, 6, 1, 0},
+{ 2, s_4_9, 6, 1, 0},
+{ 2, s_4_10, -1, 1, 0},
+{ 2, s_4_11, -1, 1, 0},
+{ 2, s_4_12, -1, 1, 0},
+{ 3, s_4_13, -1, 2, 0},
+{ 3, s_4_14, -1, 1, 0},
+{ 1, s_4_15, -1, 1, 0},
+{ 1, s_4_16, -1, 1, 0},
+{ 1, s_4_17, -1, 1, 0},
+{ 1, s_4_18, -1, 1, 0},
+{ 1, s_4_19, -1, 1, 0},
+{ 1, s_4_20, -1, 1, 0},
+{ 1, s_4_21, -1, 1, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 129, 81, 6, 10 };
@@ -1180,81 +1180,80 @@ static const symbol s_7[] = { 'i', 'c' };
 static const symbol s_8[] = { 'c' };
 static const symbol s_9[] = { 'i', 'c' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 38 */
-    z->I[1] = z->l; /* $p2 = <integer expression>, line 39 */
-    {   int c1 = z->c; /* do, line 41 */
-        {    /* gopast */ /* grouping v, line 42 */
+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;
         }
-        {    /* gopast */ /* non v, line 42 */
+        {   
             int ret = in_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        z->I[0] = z->c; /* setmark p1, line 42 */
-        {    /* gopast */ /* grouping v, line 43 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 43 */
+        {   
             int ret = in_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p2, line 43 */
+        z->I[0] = z->c;
     lab0:
         z->c = c1;
     }
     return 1;
 }
 
-static int r_cleaning(struct SN_env * z) { /* forwardmode */
+static int r_cleaning(struct SN_env * z) {
     int among_var;
-/* repeat, line 47 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 48 */
-        among_var = find_among(z, a_0, 13); /* substring, line 48 */
+    while(1) {
+        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; /* ], line 48 */
-        switch (among_var) { /* among, line 48 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_0); /* <-, line 49 */
+                {   int ret = slice_from_s(z, 1, s_0);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_1); /* <-, line 51 */
+                {   int ret = slice_from_s(z, 1, s_1);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_from_s(z, 1, s_2); /* <-, line 53 */
+                {   int ret = slice_from_s(z, 1, s_2);
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = slice_from_s(z, 1, s_3); /* <-, line 55 */
+                {   int ret = slice_from_s(z, 1, s_3);
                     if (ret < 0) return ret;
                 }
                 break;
             case 5:
-                {   int ret = slice_from_s(z, 1, s_4); /* <-, line 57 */
+                {   int ret = slice_from_s(z, 1, s_4);
                     if (ret < 0) return ret;
                 }
                 break;
             case 6:
-                {   int ret = slice_from_s(z, 1, s_5); /* <-, line 60 */
+                {   int ret = slice_from_s(z, 1, s_5);
                     if (ret < 0) return ret;
                 }
                 break;
             case 7:
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 61 */
+                z->c++;
                 break;
         }
         continue;
@@ -1265,74 +1264,74 @@ static int r_cleaning(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 67 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 68 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 71 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1634850 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 71 */
+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;
-    z->bra = z->c; /* ], line 71 */
-    {   int ret = r_R1(z); /* call R1, line 81 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    {   int ret = slice_del(z); /* delete, line 81 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
+static int r_standard_suffix(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 86 */
-    among_var = find_among_b(z, a_2, 200); /* substring, line 86 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_2, 200);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 86 */
-    switch (among_var) { /* among, line 86 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R1(z); /* call R1, line 110 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 110 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 112 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 112 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = r_R2(z); /* call R2, line 114 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_6); /* <-, line 114 */
+            {   int ret = slice_from_s(z, 3, s_6);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = r_R2(z); /* call R2, line 116 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_7); /* <-, line 116 */
+            {   int ret = slice_from_s(z, 2, s_7);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = r_R1(z); /* call R1, line 118 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 1, s_8); /* <-, line 118 */
+            {   int ret = slice_from_s(z, 1, s_8);
                 if (ret < 0) return ret;
             }
             break;
@@ -1340,26 +1339,26 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
+static int r_verb_suffix(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 123 */
-    among_var = find_among_b(z, a_3, 283); /* substring, line 123 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_3, 283);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 123 */
-    switch (among_var) { /* among, line 123 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R1(z); /* call R1, line 168 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 168 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 170 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 170 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -1367,26 +1366,26 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
+static int r_residual_suffix(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 175 */
-    among_var = find_among_b(z, a_4, 22); /* substring, line 175 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_4, 22);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 175 */
-    switch (among_var) { /* among, line 175 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R1(z); /* call R1, line 178 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 178 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R1(z); /* call R1, line 180 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_9); /* <-, line 180 */
+            {   int ret = slice_from_s(z, 2, s_9);
                 if (ret < 0) return ret;
             }
             break;
@@ -1394,29 +1393,29 @@ static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int catalan_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    /* do, line 186 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 186 */
+extern int catalan_ISO_8859_1_stem(struct SN_env * z) {
+    
+    {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 187 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m1 = z->l - z->c; (void)m1; /* do, line 188 */
-        {   int ret = r_attached_pronoun(z); /* call attached_pronoun, line 188 */
+    {   int m1 = z->l - z->c; (void)m1;
+        {   int ret = r_attached_pronoun(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m1;
     }
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 189 */
-        {   int m3 = z->l - z->c; (void)m3; /* or, line 189 */
-            {   int ret = r_standard_suffix(z); /* call standard_suffix, line 189 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int m3 = z->l - z->c; (void)m3;
+            {   int ret = r_standard_suffix(z);
                 if (ret == 0) goto lab2;
                 if (ret < 0) return ret;
             }
             goto lab1;
         lab2:
             z->c = z->l - m3;
-            {   int ret = r_verb_suffix(z); /* call verb_suffix, line 190 */
+            {   int ret = r_verb_suffix(z);
                 if (ret == 0) goto lab0;
                 if (ret < 0) return ret;
             }
@@ -1425,15 +1424,15 @@ extern int catalan_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     lab0:
         z->c = z->l - m2;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 192 */
-        {   int ret = r_residual_suffix(z); /* call residual_suffix, line 192 */
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int ret = r_residual_suffix(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m4;
     }
     z->c = z->lb;
-    {   int c5 = z->c; /* do, line 194 */
-        {   int ret = r_cleaning(z); /* call cleaning, line 194 */
+    {   int c5 = z->c;
+        {   int ret = r_cleaning(z);
             if (ret < 0) return ret;
         }
         z->c = c5;
@@ -1441,7 +1440,7 @@ extern int catalan_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * catalan_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); }
+extern struct SN_env * catalan_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); }
 
 extern void catalan_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index dff225884b8aa3259daa3a23246cdbaf925072e0..88ce5717c706c77209070331525d947954aeeb57 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -61,38 +61,38 @@ static const symbol s_0_31[4] = { 'e', 'r', 'e', 't' };
 
 static const struct among a_0[32] =
 {
-/*  0 */ { 3, s_0_0, -1, 1, 0},
-/*  1 */ { 5, s_0_1, 0, 1, 0},
-/*  2 */ { 4, s_0_2, -1, 1, 0},
-/*  3 */ { 1, s_0_3, -1, 1, 0},
-/*  4 */ { 5, s_0_4, 3, 1, 0},
-/*  5 */ { 4, s_0_5, 3, 1, 0},
-/*  6 */ { 6, s_0_6, 5, 1, 0},
-/*  7 */ { 3, s_0_7, 3, 1, 0},
-/*  8 */ { 4, s_0_8, 3, 1, 0},
-/*  9 */ { 3, s_0_9, 3, 1, 0},
-/* 10 */ { 2, s_0_10, -1, 1, 0},
-/* 11 */ { 5, s_0_11, 10, 1, 0},
-/* 12 */ { 4, s_0_12, 10, 1, 0},
-/* 13 */ { 2, s_0_13, -1, 1, 0},
-/* 14 */ { 5, s_0_14, 13, 1, 0},
-/* 15 */ { 4, s_0_15, 13, 1, 0},
-/* 16 */ { 1, s_0_16, -1, 2, 0},
-/* 17 */ { 4, s_0_17, 16, 1, 0},
-/* 18 */ { 2, s_0_18, 16, 1, 0},
-/* 19 */ { 5, s_0_19, 18, 1, 0},
-/* 20 */ { 7, s_0_20, 19, 1, 0},
-/* 21 */ { 4, s_0_21, 18, 1, 0},
-/* 22 */ { 5, s_0_22, 18, 1, 0},
-/* 23 */ { 4, s_0_23, 18, 1, 0},
-/* 24 */ { 3, s_0_24, 16, 1, 0},
-/* 25 */ { 6, s_0_25, 24, 1, 0},
-/* 26 */ { 5, s_0_26, 24, 1, 0},
-/* 27 */ { 3, s_0_27, 16, 1, 0},
-/* 28 */ { 3, s_0_28, 16, 1, 0},
-/* 29 */ { 5, s_0_29, 28, 1, 0},
-/* 30 */ { 2, s_0_30, -1, 1, 0},
-/* 31 */ { 4, s_0_31, 30, 1, 0}
+{ 3, s_0_0, -1, 1, 0},
+{ 5, s_0_1, 0, 1, 0},
+{ 4, s_0_2, -1, 1, 0},
+{ 1, s_0_3, -1, 1, 0},
+{ 5, s_0_4, 3, 1, 0},
+{ 4, s_0_5, 3, 1, 0},
+{ 6, s_0_6, 5, 1, 0},
+{ 3, s_0_7, 3, 1, 0},
+{ 4, s_0_8, 3, 1, 0},
+{ 3, s_0_9, 3, 1, 0},
+{ 2, s_0_10, -1, 1, 0},
+{ 5, s_0_11, 10, 1, 0},
+{ 4, s_0_12, 10, 1, 0},
+{ 2, s_0_13, -1, 1, 0},
+{ 5, s_0_14, 13, 1, 0},
+{ 4, s_0_15, 13, 1, 0},
+{ 1, s_0_16, -1, 2, 0},
+{ 4, s_0_17, 16, 1, 0},
+{ 2, s_0_18, 16, 1, 0},
+{ 5, s_0_19, 18, 1, 0},
+{ 7, s_0_20, 19, 1, 0},
+{ 4, s_0_21, 18, 1, 0},
+{ 5, s_0_22, 18, 1, 0},
+{ 4, s_0_23, 18, 1, 0},
+{ 3, s_0_24, 16, 1, 0},
+{ 6, s_0_25, 24, 1, 0},
+{ 5, s_0_26, 24, 1, 0},
+{ 3, s_0_27, 16, 1, 0},
+{ 3, s_0_28, 16, 1, 0},
+{ 5, s_0_29, 28, 1, 0},
+{ 2, s_0_30, -1, 1, 0},
+{ 4, s_0_31, 30, 1, 0}
 };
 
 static const symbol s_1_0[2] = { 'g', 'd' };
@@ -102,10 +102,10 @@ static const symbol s_1_3[2] = { 'k', 't' };
 
 static const struct among a_1[4] =
 {
-/*  0 */ { 2, s_1_0, -1, -1, 0},
-/*  1 */ { 2, s_1_1, -1, -1, 0},
-/*  2 */ { 2, s_1_2, -1, -1, 0},
-/*  3 */ { 2, s_1_3, -1, -1, 0}
+{ 2, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0},
+{ 2, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0}
 };
 
 static const symbol s_2_0[2] = { 'i', 'g' };
@@ -116,11 +116,11 @@ static const symbol s_2_4[4] = { 'l', 0xF8, 's', 't' };
 
 static const struct among a_2[5] =
 {
-/*  0 */ { 2, s_2_0, -1, 1, 0},
-/*  1 */ { 3, s_2_1, 0, 1, 0},
-/*  2 */ { 4, s_2_2, 1, 1, 0},
-/*  3 */ { 3, s_2_3, -1, 1, 0},
-/*  4 */ { 4, s_2_4, -1, 2, 0}
+{ 2, s_2_0, -1, 1, 0},
+{ 3, s_2_1, 0, 1, 0},
+{ 4, s_2_2, 1, 1, 0},
+{ 3, s_2_3, -1, 1, 0},
+{ 4, s_2_4, -1, 2, 0}
 };
 
 static const unsigned char g_c[] = { 119, 223, 119, 1 };
@@ -133,52 +133,50 @@ static const symbol s_0[] = { 's', 't' };
 static const symbol s_1[] = { 'i', 'g' };
 static const symbol s_2[] = { 'l', 0xF8, 's' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 33 */
-    {   int c_test1 = z->c; /* test, line 35 */
-        {   int ret = z->c + 3; /* hop, line 35 */
-            if (0 > ret || ret > z->l) return 0;
-            z->c = ret;
-        }
-        z->I[1] = z->c; /* setmark x, line 35 */
+static int r_mark_regions(struct SN_env * z) {
+    z->I[1] = 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;
     }
-    if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 36 */
-    {    /* gopast */ /* non v, line 36 */
+    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[0] = z->c; /* setmark p1, line 36 */
-    /* try, line 37 */
-    if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 37 */
-    z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 37 */
+    z->I[1] = z->c;
+    
+    if (!(z->I[1] < z->I[0])) goto lab0;
+    z->I[1] = z->I[0];
 lab0:
     return 1;
 }
 
-static int r_main_suffix(struct SN_env * z) { /* backwardmode */
+static int r_main_suffix(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 43 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 43 */
-        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; } /* substring, line 43 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[1];
+        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; }
-        z->bra = z->c; /* ], line 43 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 44 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 50 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 52 */
-            {   int ret = slice_del(z); /* delete, line 52 */
+            if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -186,67 +184,67 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
-    {   int m_test1 = z->l - z->c; /* test, line 57 */
+static int r_consonant_pair(struct SN_env * z) {
+    {   int m_test1 = z->l - z->c;
 
-        {   int mlimit2; /* setlimit, line 58 */
-            if (z->c < z->I[0]) return 0;
-            mlimit2 = z->lb; z->lb = z->I[0];
-            z->ket = z->c; /* [, line 58 */
-            if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 58 */
+        {   int mlimit2;
+            if (z->c < z->I[1]) return 0;
+            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; }
-            z->bra = z->c; /* ], line 58 */
+            z->bra = z->c;
             z->lb = mlimit2;
         }
         z->c = z->l - m_test1;
     }
     if (z->c <= z->lb) return 0;
-    z->c--; /* next, line 64 */
-    z->bra = z->c; /* ], line 64 */
-    {   int ret = slice_del(z); /* delete, line 64 */
+    z->c--;
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_other_suffix(struct SN_env * z) { /* backwardmode */
+static int r_other_suffix(struct SN_env * z) {
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* do, line 68 */
-        z->ket = z->c; /* [, line 68 */
-        if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 68 */
-        z->bra = z->c; /* ], line 68 */
-        if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 68 */
-        {   int ret = slice_del(z); /* delete, line 68 */
+    {   int m1 = z->l - z->c; (void)m1;
+        z->ket = z->c;
+        if (!(eq_s_b(z, 2, s_0))) goto lab0;
+        z->bra = z->c;
+        if (!(eq_s_b(z, 2, s_1))) goto lab0;
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
     lab0:
         z->c = z->l - m1;
     }
 
-    {   int mlimit2; /* setlimit, line 69 */
-        if (z->c < z->I[0]) return 0;
-        mlimit2 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 69 */
-        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; } /* substring, line 69 */
+    {   int mlimit2;
+        if (z->c < z->I[1]) return 0;
+        mlimit2 = z->lb; z->lb = z->I[1];
+        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; }
-        z->bra = z->c; /* ], line 69 */
+        z->bra = z->c;
         z->lb = mlimit2;
     }
-    switch (among_var) { /* among, line 70 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 72 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m3 = z->l - z->c; (void)m3; /* do, line 72 */
-                {   int ret = r_consonant_pair(z); /* call consonant_pair, line 72 */
+            {   int m3 = z->l - z->c; (void)m3;
+                {   int ret = r_consonant_pair(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m3;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 3, s_2); /* <-, line 74 */
+            {   int ret = slice_from_s(z, 3, s_2);
                 if (ret < 0) return ret;
             }
             break;
@@ -254,54 +252,54 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_undouble(struct SN_env * z) { /* backwardmode */
+static int r_undouble(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 78 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 78 */
-        if (in_grouping_b(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; } /* grouping c, line 78 */
-        z->bra = z->c; /* ], line 78 */
-        z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 78 */
-        if (z->S[0] == 0) return -1; /* -> ch, line 78 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[1];
+        z->ket = z->c;
+        if (in_grouping_b(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; }
+        z->bra = z->c;
+        z->S[0] = slice_to(z, z->S[0]);
+        if (z->S[0] == 0) return -1;
         z->lb = mlimit1;
     }
-    if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 79 */
-    {   int ret = slice_del(z); /* delete, line 80 */
+    if (!(eq_v_b(z, z->S[0]))) return 0;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-extern int danish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 86 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 86 */
+extern int danish_ISO_8859_1_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 87 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 88 */
-        {   int ret = r_main_suffix(z); /* call main_suffix, line 88 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_main_suffix(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 89 */
-        {   int ret = r_consonant_pair(z); /* call consonant_pair, line 89 */
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_consonant_pair(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m3;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 90 */
-        {   int ret = r_other_suffix(z); /* call other_suffix, line 90 */
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int ret = r_other_suffix(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m4;
     }
-    {   int m5 = z->l - z->c; (void)m5; /* do, line 91 */
-        {   int ret = r_undouble(z); /* call undouble, line 91 */
+    {   int m5 = z->l - z->c; (void)m5;
+        {   int ret = r_undouble(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m5;
@@ -310,7 +308,7 @@ extern int danish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * danish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2, 0); }
+extern struct SN_env * danish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2); }
 
 extern void danish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 1); }
 
index aa33b42df39601d2152fa3b7c45b44f96aa411e8..08de47a0959c24c9123fa6584b1e42595fcb5e08 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -43,17 +43,17 @@ static const symbol s_0_10[1] = { 0xFC };
 
 static const struct among a_0[11] =
 {
-/*  0 */ { 0, 0, -1, 6, 0},
-/*  1 */ { 1, s_0_1, 0, 1, 0},
-/*  2 */ { 1, s_0_2, 0, 1, 0},
-/*  3 */ { 1, s_0_3, 0, 2, 0},
-/*  4 */ { 1, s_0_4, 0, 2, 0},
-/*  5 */ { 1, s_0_5, 0, 3, 0},
-/*  6 */ { 1, s_0_6, 0, 3, 0},
-/*  7 */ { 1, s_0_7, 0, 4, 0},
-/*  8 */ { 1, s_0_8, 0, 4, 0},
-/*  9 */ { 1, s_0_9, 0, 5, 0},
-/* 10 */ { 1, s_0_10, 0, 5, 0}
+{ 0, 0, -1, 6, 0},
+{ 1, s_0_1, 0, 1, 0},
+{ 1, s_0_2, 0, 1, 0},
+{ 1, s_0_3, 0, 2, 0},
+{ 1, s_0_4, 0, 2, 0},
+{ 1, s_0_5, 0, 3, 0},
+{ 1, s_0_6, 0, 3, 0},
+{ 1, s_0_7, 0, 4, 0},
+{ 1, s_0_8, 0, 4, 0},
+{ 1, s_0_9, 0, 5, 0},
+{ 1, s_0_10, 0, 5, 0}
 };
 
 static const symbol s_1_1[1] = { 'I' };
@@ -61,9 +61,9 @@ static const symbol s_1_2[1] = { 'Y' };
 
 static const struct among a_1[3] =
 {
-/*  0 */ { 0, 0, -1, 3, 0},
-/*  1 */ { 1, s_1_1, 0, 2, 0},
-/*  2 */ { 1, s_1_2, 0, 1, 0}
+{ 0, 0, -1, 3, 0},
+{ 1, s_1_1, 0, 2, 0},
+{ 1, s_1_2, 0, 1, 0}
 };
 
 static const symbol s_2_0[2] = { 'd', 'd' };
@@ -72,9 +72,9 @@ static const symbol s_2_2[2] = { 't', 't' };
 
 static const struct among a_2[3] =
 {
-/*  0 */ { 2, s_2_0, -1, -1, 0},
-/*  1 */ { 2, s_2_1, -1, -1, 0},
-/*  2 */ { 2, s_2_2, -1, -1, 0}
+{ 2, s_2_0, -1, -1, 0},
+{ 2, s_2_1, -1, -1, 0},
+{ 2, s_2_2, -1, -1, 0}
 };
 
 static const symbol s_3_0[3] = { 'e', 'n', 'e' };
@@ -85,11 +85,11 @@ static const symbol s_3_4[1] = { 's' };
 
 static const struct among a_3[5] =
 {
-/*  0 */ { 3, s_3_0, -1, 2, 0},
-/*  1 */ { 2, s_3_1, -1, 3, 0},
-/*  2 */ { 2, s_3_2, -1, 2, 0},
-/*  3 */ { 5, s_3_3, 2, 1, 0},
-/*  4 */ { 1, s_3_4, -1, 3, 0}
+{ 3, s_3_0, -1, 2, 0},
+{ 2, s_3_1, -1, 3, 0},
+{ 2, s_3_2, -1, 2, 0},
+{ 5, s_3_3, 2, 1, 0},
+{ 1, s_3_4, -1, 3, 0}
 };
 
 static const symbol s_4_0[3] = { 'e', 'n', 'd' };
@@ -101,12 +101,12 @@ static const symbol s_4_5[3] = { 'b', 'a', 'r' };
 
 static const struct among a_4[6] =
 {
-/*  0 */ { 3, s_4_0, -1, 1, 0},
-/*  1 */ { 2, s_4_1, -1, 2, 0},
-/*  2 */ { 3, s_4_2, -1, 1, 0},
-/*  3 */ { 4, s_4_3, -1, 3, 0},
-/*  4 */ { 4, s_4_4, -1, 4, 0},
-/*  5 */ { 3, s_4_5, -1, 5, 0}
+{ 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, 4, 0},
+{ 3, s_4_5, -1, 5, 0}
 };
 
 static const symbol s_5_0[2] = { 'a', 'a' };
@@ -116,10 +116,10 @@ static const symbol s_5_3[2] = { 'u', 'u' };
 
 static const struct among a_5[4] =
 {
-/*  0 */ { 2, s_5_0, -1, -1, 0},
-/*  1 */ { 2, s_5_1, -1, -1, 0},
-/*  2 */ { 2, s_5_2, -1, -1, 0},
-/*  3 */ { 2, s_5_3, -1, -1, 0}
+{ 2, s_5_0, -1, -1, 0},
+{ 2, s_5_1, -1, -1, 0},
+{ 2, s_5_2, -1, -1, 0},
+{ 2, s_5_3, -1, -1, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
@@ -144,46 +144,45 @@ static const symbol s_12[] = { 'h', 'e', 'i', 'd' };
 static const symbol s_13[] = { 'e', 'n' };
 static const symbol s_14[] = { 'i', 'g' };
 
-static int r_prelude(struct SN_env * z) { /* forwardmode */
+static int r_prelude(struct SN_env * z) {
     int among_var;
-    {   int c_test1 = z->c; /* test, line 42 */
-/* repeat, line 42 */
-
-        while(1) {            int c2 = z->c;
-            z->bra = z->c; /* [, line 43 */
-            if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else /* substring, line 43 */
+    {   int c_test1 = z->c;
+        while(1) {
+            int c2 = z->c;
+            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; /* ], line 43 */
-            switch (among_var) { /* among, line 43 */
+            z->ket = z->c;
+            switch (among_var) {
                 case 1:
-                    {   int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
+                    {   int ret = slice_from_s(z, 1, s_0);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 2:
-                    {   int ret = slice_from_s(z, 1, s_1); /* <-, line 47 */
+                    {   int ret = slice_from_s(z, 1, s_1);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 3:
-                    {   int ret = slice_from_s(z, 1, s_2); /* <-, line 49 */
+                    {   int ret = slice_from_s(z, 1, s_2);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 4:
-                    {   int ret = slice_from_s(z, 1, s_3); /* <-, line 51 */
+                    {   int ret = slice_from_s(z, 1, s_3);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 5:
-                    {   int ret = slice_from_s(z, 1, s_4); /* <-, line 53 */
+                    {   int ret = slice_from_s(z, 1, s_4);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 6:
                     if (z->c >= z->l) goto lab0;
-                    z->c++; /* next, line 54 */
+                    z->c++;
                     break;
             }
             continue;
@@ -193,39 +192,38 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
         }
         z->c = c_test1;
     }
-    {   int c3 = z->c; /* try, line 57 */
-        z->bra = z->c; /* [, line 57 */
-        if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } /* literal, line 57 */
+    {   int c3 = z->c;
+        z->bra = z->c;
+        if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; }
         z->c++;
-        z->ket = z->c; /* ], line 57 */
-        {   int ret = slice_from_s(z, 1, s_5); /* <-, line 57 */
+        z->ket = z->c;
+        {   int ret = slice_from_s(z, 1, s_5);
             if (ret < 0) return ret;
         }
     lab1:
         ;
     }
-/* repeat, line 58 */
-
-    while(1) {        int c4 = z->c;
-        while(1) { /* goto, line 58 */
+    while(1) {
+        int c4 = z->c;
+        while(1) {
             int c5 = z->c;
-            if (in_grouping(z, g_v, 97, 232, 0)) goto lab3; /* grouping v, line 59 */
-            z->bra = z->c; /* [, line 59 */
-            {   int c6 = z->c; /* or, line 59 */
-                if (z->c == z->l || z->p[z->c] != 'i') goto lab5; /* literal, line 59 */
+            if (in_grouping(z, g_v, 97, 232, 0)) goto lab3;
+            z->bra = z->c;
+            {   int c6 = z->c;
+                if (z->c == z->l || z->p[z->c] != 'i') goto lab5;
                 z->c++;
-                z->ket = z->c; /* ], line 59 */
-                if (in_grouping(z, g_v, 97, 232, 0)) goto lab5; /* grouping v, line 59 */
-                {   int ret = slice_from_s(z, 1, s_6); /* <-, line 59 */
+                z->ket = z->c;
+                if (in_grouping(z, g_v, 97, 232, 0)) goto lab5;
+                {   int ret = slice_from_s(z, 1, s_6);
                     if (ret < 0) return ret;
                 }
                 goto lab4;
             lab5:
                 z->c = c6;
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 60 */
+                if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
                 z->c++;
-                z->ket = z->c; /* ], line 60 */
-                {   int ret = slice_from_s(z, 1, s_7); /* <-, line 60 */
+                z->ket = z->c;
+                {   int ret = slice_from_s(z, 1, s_7);
                     if (ret < 0) return ret;
                 }
             }
@@ -235,7 +233,7 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
         lab3:
             z->c = c5;
             if (z->c >= z->l) goto lab2;
-            z->c++; /* goto, line 58 */
+            z->c++;
         }
         continue;
     lab2:
@@ -245,62 +243,61 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 66 */
-    z->I[1] = z->l; /* $p2 = <integer expression>, line 67 */
-    {    /* gopast */ /* grouping v, line 69 */
+static int r_mark_regions(struct SN_env * z) {
+    z->I[1] = z->l;
+    z->I[0] = z->l;
+    {   
         int ret = out_grouping(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {    /* gopast */ /* non v, line 69 */
+    {   
         int ret = in_grouping(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[0] = z->c; /* setmark p1, line 69 */
-    /* try, line 70 */
-    if (!(z->I[0] < 3)) goto lab0; /* $(<integer expression> < <integer expression>), line 70 */
-    z->I[0] = 3; /* $p1 = <integer expression>, line 70 */
+    z->I[1] = z->c;
+    
+    if (!(z->I[1] < 3)) goto lab0;
+    z->I[1] = 3;
 lab0:
-    {    /* gopast */ /* grouping v, line 71 */
+    {   
         int ret = out_grouping(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {    /* gopast */ /* non v, line 71 */
+    {   
         int ret = in_grouping(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[1] = z->c; /* setmark p2, line 71 */
+    z->I[0] = z->c;
     return 1;
 }
 
-static int r_postlude(struct SN_env * z) { /* forwardmode */
+static int r_postlude(struct SN_env * z) {
     int among_var;
-/* repeat, line 75 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 77 */
-        if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else /* substring, line 77 */
+    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] != 89)) among_var = 3; else
         among_var = find_among(z, a_1, 3);
         if (!(among_var)) goto lab0;
-        z->ket = z->c; /* ], line 77 */
-        switch (among_var) { /* among, line 77 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_8); /* <-, line 78 */
+                {   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_9); /* <-, line 79 */
+                {   int ret = slice_from_s(z, 1, s_9);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 80 */
+                z->c++;
                 break;
         }
         continue;
@@ -311,109 +308,109 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 87 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 88 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_undouble(struct SN_env * z) { /* backwardmode */
-    {   int m_test1 = z->l - z->c; /* test, line 91 */
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 91 */
+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;
         z->c = z->l - m_test1;
     }
-    z->ket = z->c; /* [, line 91 */
+    z->ket = z->c;
     if (z->c <= z->lb) return 0;
-    z->c--; /* next, line 91 */
-    z->bra = z->c; /* ], line 91 */
-    {   int ret = slice_del(z); /* delete, line 91 */
+    z->c--;
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_e_ending(struct SN_env * z) { /* backwardmode */
-    z->B[0] = 0; /* unset e_found, line 95 */
-    z->ket = z->c; /* [, line 96 */
-    if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 96 */
+static int r_e_ending(struct SN_env * z) {
+    z->I[2] = 0;
+    z->ket = z->c;
+    if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
     z->c--;
-    z->bra = z->c; /* ], line 96 */
-    {   int ret = r_R1(z); /* call R1, line 96 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    {   int m_test1 = z->l - z->c; /* test, line 96 */
-        if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; /* non v, line 96 */
+    {   int m_test1 = z->l - z->c;
+        if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
         z->c = z->l - m_test1;
     }
-    {   int ret = slice_del(z); /* delete, line 96 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    z->B[0] = 1; /* set e_found, line 97 */
-    {   int ret = r_undouble(z); /* call undouble, line 98 */
+    z->I[2] = 1;
+    {   int ret = r_undouble(z);
         if (ret <= 0) return ret;
     }
     return 1;
 }
 
-static int r_en_ending(struct SN_env * z) { /* backwardmode */
-    {   int ret = r_R1(z); /* call R1, line 102 */
+static int r_en_ending(struct SN_env * z) {
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    {   int m1 = z->l - z->c; (void)m1; /* and, line 102 */
-        if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; /* non v, line 102 */
+    {   int m1 = z->l - z->c; (void)m1;
+        if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
         z->c = z->l - m1;
-        {   int m2 = z->l - z->c; (void)m2; /* not, line 102 */
-            if (!(eq_s_b(z, 3, s_10))) goto lab0; /* literal, line 102 */
+        {   int m2 = z->l - z->c; (void)m2;
+            if (!(eq_s_b(z, 3, s_10))) goto lab0;
             return 0;
         lab0:
             z->c = z->l - m2;
         }
     }
-    {   int ret = slice_del(z); /* delete, line 102 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    {   int ret = r_undouble(z); /* call undouble, line 103 */
+    {   int ret = r_undouble(z);
         if (ret <= 0) return ret;
     }
     return 1;
 }
 
-static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
+static int r_standard_suffix(struct SN_env * z) {
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* do, line 107 */
-        z->ket = z->c; /* [, line 108 */
-        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 108 */
+    {   int m1 = z->l - z->c; (void)m1;
+        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;
-        z->bra = z->c; /* ], line 108 */
-        switch (among_var) { /* among, line 108 */
+        z->bra = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = r_R1(z); /* call R1, line 110 */
+                {   int ret = r_R1(z);
                     if (ret == 0) goto lab0;
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_from_s(z, 4, s_11); /* <-, line 110 */
+                {   int ret = slice_from_s(z, 4, s_11);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = r_en_ending(z); /* call en_ending, line 113 */
+                {   int ret = r_en_ending(z);
                     if (ret == 0) goto lab0;
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = r_R1(z); /* call R1, line 116 */
+                {   int ret = r_R1(z);
                     if (ret == 0) goto lab0;
                     if (ret < 0) return ret;
                 }
-                if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0; /* non v_j, line 116 */
-                {   int ret = slice_del(z); /* delete, line 116 */
+                if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0;
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -421,77 +418,77 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     lab0:
         z->c = z->l - m1;
     }
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 120 */
-        {   int ret = r_e_ending(z); /* call e_ending, line 120 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_e_ending(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 122 */
-        z->ket = z->c; /* [, line 122 */
-        if (!(eq_s_b(z, 4, s_12))) goto lab1; /* literal, line 122 */
-        z->bra = z->c; /* ], line 122 */
-        {   int ret = r_R2(z); /* call R2, line 122 */
+    {   int m3 = z->l - z->c; (void)m3;
+        z->ket = z->c;
+        if (!(eq_s_b(z, 4, s_12))) goto lab1;
+        z->bra = z->c;
+        {   int ret = r_R2(z);
             if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
-        {   int m4 = z->l - z->c; (void)m4; /* not, line 122 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2; /* literal, line 122 */
+        {   int m4 = z->l - z->c; (void)m4;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2;
             z->c--;
             goto lab1;
         lab2:
             z->c = z->l - m4;
         }
-        {   int ret = slice_del(z); /* delete, line 122 */
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
-        z->ket = z->c; /* [, line 123 */
-        if (!(eq_s_b(z, 2, s_13))) goto lab1; /* literal, line 123 */
-        z->bra = z->c; /* ], line 123 */
-        {   int ret = r_en_ending(z); /* call en_ending, line 123 */
+        z->ket = z->c;
+        if (!(eq_s_b(z, 2, s_13))) goto lab1;
+        z->bra = z->c;
+        {   int ret = r_en_ending(z);
             if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
     lab1:
         z->c = z->l - m3;
     }
-    {   int m5 = z->l - z->c; (void)m5; /* do, line 126 */
-        z->ket = z->c; /* [, line 127 */
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 127 */
+    {   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 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
         among_var = find_among_b(z, a_4, 6);
         if (!(among_var)) goto lab3;
-        z->bra = z->c; /* ], line 127 */
-        switch (among_var) { /* among, line 127 */
+        z->bra = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = r_R2(z); /* call R2, line 129 */
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 129 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m6 = z->l - z->c; (void)m6; /* or, line 130 */
-                    z->ket = z->c; /* [, line 130 */
-                    if (!(eq_s_b(z, 2, s_14))) goto lab5; /* literal, line 130 */
-                    z->bra = z->c; /* ], line 130 */
-                    {   int ret = r_R2(z); /* call R2, line 130 */
+                {   int m6 = z->l - z->c; (void)m6;
+                    z->ket = z->c;
+                    if (!(eq_s_b(z, 2, s_14))) goto lab5;
+                    z->bra = z->c;
+                    {   int ret = r_R2(z);
                         if (ret == 0) goto lab5;
                         if (ret < 0) return ret;
                     }
-                    {   int m7 = z->l - z->c; (void)m7; /* not, line 130 */
-                        if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 130 */
+                    {   int m7 = z->l - z->c; (void)m7;
+                        if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
                         z->c--;
                         goto lab5;
                     lab6:
                         z->c = z->l - m7;
                     }
-                    {   int ret = slice_del(z); /* delete, line 130 */
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                     goto lab4;
                 lab5:
                     z->c = z->l - m6;
-                    {   int ret = r_undouble(z); /* call undouble, line 130 */
+                    {   int ret = r_undouble(z);
                         if (ret == 0) goto lab3;
                         if (ret < 0) return ret;
                     }
@@ -499,50 +496,50 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             lab4:
                 break;
             case 2:
-                {   int ret = r_R2(z); /* call R2, line 133 */
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
-                {   int m8 = z->l - z->c; (void)m8; /* not, line 133 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7; /* literal, line 133 */
+                {   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;
                 lab7:
                     z->c = z->l - m8;
                 }
-                {   int ret = slice_del(z); /* delete, line 133 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = r_R2(z); /* call R2, line 136 */
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 136 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int ret = r_e_ending(z); /* call e_ending, line 136 */
+                {   int ret = r_e_ending(z);
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = r_R2(z); /* call R2, line 139 */
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 139 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 5:
-                {   int ret = r_R2(z); /* call R2, line 142 */
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
-                if (!(z->B[0])) goto lab3; /* Boolean test e_found, line 142 */
-                {   int ret = slice_del(z); /* delete, line 142 */
+                if (!(z->I[2])) goto lab3;
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -550,19 +547,19 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     lab3:
         z->c = z->l - m5;
     }
-    {   int m9 = z->l - z->c; (void)m9; /* do, line 146 */
-        if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab8; /* non v_I, line 147 */
-        {   int m_test10 = z->l - z->c; /* test, line 148 */
-            if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8; /* among, line 149 */
+    {   int m9 = z->l - z->c; (void)m9;
+        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 (out_grouping_b(z, g_v, 97, 232, 0)) goto lab8; /* non v, line 150 */
+            if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab8;
             z->c = z->l - m_test10;
         }
-        z->ket = z->c; /* [, line 152 */
+        z->ket = z->c;
         if (z->c <= z->lb) goto lab8;
-        z->c--; /* next, line 152 */
-        z->bra = z->c; /* ], line 152 */
-        {   int ret = slice_del(z); /* delete, line 152 */
+        z->c--;
+        z->bra = z->c;
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
     lab8:
@@ -571,28 +568,28 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int dutch_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 159 */
-        {   int ret = r_prelude(z); /* call prelude, line 159 */
+extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_prelude(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    {   int c2 = z->c; /* do, line 160 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 160 */
+    {   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; /* backwards, line 161 */
+    z->lb = z->c; z->c = z->l;
 
-    /* do, line 162 */
-    {   int ret = r_standard_suffix(z); /* call standard_suffix, line 162 */
+    
+    {   int ret = r_standard_suffix(z);
         if (ret < 0) return ret;
     }
     z->c = z->lb;
-    {   int c3 = z->c; /* do, line 163 */
-        {   int ret = r_postlude(z); /* call postlude, line 163 */
+    {   int c3 = z->c;
+        {   int ret = r_postlude(z);
             if (ret < 0) return ret;
         }
         z->c = c3;
@@ -600,7 +597,7 @@ extern int dutch_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); }
+extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
 
 extern void dutch_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index d1f80c6c3b3c803ac38a7691c88a142fd580db65..db67d68aed408f32d1be54149c10595c80c0c38d 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -42,9 +42,9 @@ static const symbol s_0_2[5] = { 'g', 'e', 'n', 'e', 'r' };
 
 static const struct among a_0[3] =
 {
-/*  0 */ { 5, s_0_0, -1, -1, 0},
-/*  1 */ { 6, s_0_1, -1, -1, 0},
-/*  2 */ { 5, s_0_2, -1, -1, 0}
+{ 5, s_0_0, -1, -1, 0},
+{ 6, s_0_1, -1, -1, 0},
+{ 5, s_0_2, -1, -1, 0}
 };
 
 static const symbol s_1_0[1] = { '\'' };
@@ -53,9 +53,9 @@ static const symbol s_1_2[2] = { '\'', 's' };
 
 static const struct among a_1[3] =
 {
-/*  0 */ { 1, s_1_0, -1, 1, 0},
-/*  1 */ { 3, s_1_1, 0, 1, 0},
-/*  2 */ { 2, s_1_2, -1, 1, 0}
+{ 1, s_1_0, -1, 1, 0},
+{ 3, s_1_1, 0, 1, 0},
+{ 2, s_1_2, -1, 1, 0}
 };
 
 static const symbol s_2_0[3] = { 'i', 'e', 'd' };
@@ -67,12 +67,12 @@ static const symbol s_2_5[2] = { 'u', 's' };
 
 static const struct among a_2[6] =
 {
-/*  0 */ { 3, s_2_0, -1, 2, 0},
-/*  1 */ { 1, s_2_1, -1, 3, 0},
-/*  2 */ { 3, s_2_2, 1, 2, 0},
-/*  3 */ { 4, s_2_3, 1, 1, 0},
-/*  4 */ { 2, s_2_4, 1, -1, 0},
-/*  5 */ { 2, s_2_5, 1, -1, 0}
+{ 3, s_2_0, -1, 2, 0},
+{ 1, s_2_1, -1, 3, 0},
+{ 3, s_2_2, 1, 2, 0},
+{ 4, s_2_3, 1, 1, 0},
+{ 2, s_2_4, 1, -1, 0},
+{ 2, s_2_5, 1, -1, 0}
 };
 
 static const symbol s_3_1[2] = { 'b', 'b' };
@@ -90,19 +90,19 @@ static const symbol s_3_12[2] = { 'i', 'z' };
 
 static const struct among a_3[13] =
 {
-/*  0 */ { 0, 0, -1, 3, 0},
-/*  1 */ { 2, s_3_1, 0, 2, 0},
-/*  2 */ { 2, s_3_2, 0, 2, 0},
-/*  3 */ { 2, s_3_3, 0, 2, 0},
-/*  4 */ { 2, s_3_4, 0, 2, 0},
-/*  5 */ { 2, s_3_5, 0, 1, 0},
-/*  6 */ { 2, s_3_6, 0, 2, 0},
-/*  7 */ { 2, s_3_7, 0, 2, 0},
-/*  8 */ { 2, s_3_8, 0, 2, 0},
-/*  9 */ { 2, s_3_9, 0, 2, 0},
-/* 10 */ { 2, s_3_10, 0, 1, 0},
-/* 11 */ { 2, s_3_11, 0, 2, 0},
-/* 12 */ { 2, s_3_12, 0, 1, 0}
+{ 0, 0, -1, 3, 0},
+{ 2, s_3_1, 0, 2, 0},
+{ 2, s_3_2, 0, 2, 0},
+{ 2, s_3_3, 0, 2, 0},
+{ 2, s_3_4, 0, 2, 0},
+{ 2, s_3_5, 0, 1, 0},
+{ 2, s_3_6, 0, 2, 0},
+{ 2, s_3_7, 0, 2, 0},
+{ 2, s_3_8, 0, 2, 0},
+{ 2, s_3_9, 0, 2, 0},
+{ 2, s_3_10, 0, 1, 0},
+{ 2, s_3_11, 0, 2, 0},
+{ 2, s_3_12, 0, 1, 0}
 };
 
 static const symbol s_4_0[2] = { 'e', 'd' };
@@ -114,12 +114,12 @@ static const symbol s_4_5[5] = { 'i', 'n', 'g', 'l', 'y' };
 
 static const struct among a_4[6] =
 {
-/*  0 */ { 2, s_4_0, -1, 2, 0},
-/*  1 */ { 3, s_4_1, 0, 1, 0},
-/*  2 */ { 3, s_4_2, -1, 2, 0},
-/*  3 */ { 4, s_4_3, -1, 2, 0},
-/*  4 */ { 5, s_4_4, 3, 1, 0},
-/*  5 */ { 5, s_4_5, -1, 2, 0}
+{ 2, s_4_0, -1, 2, 0},
+{ 3, s_4_1, 0, 1, 0},
+{ 3, s_4_2, -1, 2, 0},
+{ 4, s_4_3, -1, 2, 0},
+{ 5, s_4_4, 3, 1, 0},
+{ 5, s_4_5, -1, 2, 0}
 };
 
 static const symbol s_5_0[4] = { 'a', 'n', 'c', 'i' };
@@ -149,30 +149,30 @@ static const symbol s_5_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
 
 static const struct among a_5[24] =
 {
-/*  0 */ { 4, s_5_0, -1, 3, 0},
-/*  1 */ { 4, s_5_1, -1, 2, 0},
-/*  2 */ { 3, s_5_2, -1, 13, 0},
-/*  3 */ { 2, s_5_3, -1, 15, 0},
-/*  4 */ { 3, s_5_4, 3, 12, 0},
-/*  5 */ { 4, s_5_5, 4, 4, 0},
-/*  6 */ { 4, s_5_6, 3, 8, 0},
-/*  7 */ { 5, s_5_7, 3, 9, 0},
-/*  8 */ { 6, s_5_8, 3, 14, 0},
-/*  9 */ { 5, s_5_9, 3, 10, 0},
-/* 10 */ { 5, s_5_10, 3, 5, 0},
-/* 11 */ { 5, s_5_11, -1, 8, 0},
-/* 12 */ { 6, s_5_12, -1, 12, 0},
-/* 13 */ { 5, s_5_13, -1, 11, 0},
-/* 14 */ { 6, s_5_14, -1, 1, 0},
-/* 15 */ { 7, s_5_15, 14, 7, 0},
-/* 16 */ { 5, s_5_16, -1, 8, 0},
-/* 17 */ { 5, s_5_17, -1, 7, 0},
-/* 18 */ { 7, s_5_18, 17, 6, 0},
-/* 19 */ { 4, s_5_19, -1, 6, 0},
-/* 20 */ { 4, s_5_20, -1, 7, 0},
-/* 21 */ { 7, s_5_21, -1, 11, 0},
-/* 22 */ { 7, s_5_22, -1, 9, 0},
-/* 23 */ { 7, s_5_23, -1, 10, 0}
+{ 4, s_5_0, -1, 3, 0},
+{ 4, s_5_1, -1, 2, 0},
+{ 3, s_5_2, -1, 13, 0},
+{ 2, s_5_3, -1, 15, 0},
+{ 3, s_5_4, 3, 12, 0},
+{ 4, s_5_5, 4, 4, 0},
+{ 4, s_5_6, 3, 8, 0},
+{ 5, s_5_7, 3, 9, 0},
+{ 6, s_5_8, 3, 14, 0},
+{ 5, s_5_9, 3, 10, 0},
+{ 5, s_5_10, 3, 5, 0},
+{ 5, s_5_11, -1, 8, 0},
+{ 6, s_5_12, -1, 12, 0},
+{ 5, s_5_13, -1, 11, 0},
+{ 6, s_5_14, -1, 1, 0},
+{ 7, s_5_15, 14, 7, 0},
+{ 5, s_5_16, -1, 8, 0},
+{ 5, s_5_17, -1, 7, 0},
+{ 7, s_5_18, 17, 6, 0},
+{ 4, s_5_19, -1, 6, 0},
+{ 4, s_5_20, -1, 7, 0},
+{ 7, s_5_21, -1, 11, 0},
+{ 7, s_5_22, -1, 9, 0},
+{ 7, s_5_23, -1, 10, 0}
 };
 
 static const symbol s_6_0[5] = { 'i', 'c', 'a', 't', 'e' };
@@ -187,15 +187,15 @@ static const symbol s_6_8[4] = { 'n', 'e', 's', 's' };
 
 static const struct among a_6[9] =
 {
-/*  0 */ { 5, s_6_0, -1, 4, 0},
-/*  1 */ { 5, s_6_1, -1, 6, 0},
-/*  2 */ { 5, s_6_2, -1, 3, 0},
-/*  3 */ { 5, s_6_3, -1, 4, 0},
-/*  4 */ { 4, s_6_4, -1, 4, 0},
-/*  5 */ { 6, s_6_5, -1, 1, 0},
-/*  6 */ { 7, s_6_6, 5, 2, 0},
-/*  7 */ { 3, s_6_7, -1, 5, 0},
-/*  8 */ { 4, s_6_8, -1, 5, 0}
+{ 5, s_6_0, -1, 4, 0},
+{ 5, s_6_1, -1, 6, 0},
+{ 5, s_6_2, -1, 3, 0},
+{ 5, s_6_3, -1, 4, 0},
+{ 4, s_6_4, -1, 4, 0},
+{ 6, s_6_5, -1, 1, 0},
+{ 7, s_6_6, 5, 2, 0},
+{ 3, s_6_7, -1, 5, 0},
+{ 4, s_6_8, -1, 5, 0}
 };
 
 static const symbol s_7_0[2] = { 'i', 'c' };
@@ -219,24 +219,24 @@ static const symbol s_7_17[5] = { 'e', 'm', 'e', 'n', 't' };
 
 static const struct among a_7[18] =
 {
-/*  0 */ { 2, s_7_0, -1, 1, 0},
-/*  1 */ { 4, s_7_1, -1, 1, 0},
-/*  2 */ { 4, s_7_2, -1, 1, 0},
-/*  3 */ { 4, s_7_3, -1, 1, 0},
-/*  4 */ { 4, s_7_4, -1, 1, 0},
-/*  5 */ { 3, s_7_5, -1, 1, 0},
-/*  6 */ { 3, s_7_6, -1, 1, 0},
-/*  7 */ { 3, s_7_7, -1, 1, 0},
-/*  8 */ { 3, s_7_8, -1, 1, 0},
-/*  9 */ { 2, s_7_9, -1, 1, 0},
-/* 10 */ { 3, s_7_10, -1, 1, 0},
-/* 11 */ { 3, s_7_11, -1, 2, 0},
-/* 12 */ { 2, s_7_12, -1, 1, 0},
-/* 13 */ { 3, s_7_13, -1, 1, 0},
-/* 14 */ { 3, s_7_14, -1, 1, 0},
-/* 15 */ { 3, s_7_15, -1, 1, 0},
-/* 16 */ { 4, s_7_16, 15, 1, 0},
-/* 17 */ { 5, s_7_17, 16, 1, 0}
+{ 2, s_7_0, -1, 1, 0},
+{ 4, s_7_1, -1, 1, 0},
+{ 4, s_7_2, -1, 1, 0},
+{ 4, s_7_3, -1, 1, 0},
+{ 4, s_7_4, -1, 1, 0},
+{ 3, s_7_5, -1, 1, 0},
+{ 3, s_7_6, -1, 1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 3, s_7_8, -1, 1, 0},
+{ 2, s_7_9, -1, 1, 0},
+{ 3, s_7_10, -1, 1, 0},
+{ 3, s_7_11, -1, 2, 0},
+{ 2, s_7_12, -1, 1, 0},
+{ 3, s_7_13, -1, 1, 0},
+{ 3, s_7_14, -1, 1, 0},
+{ 3, s_7_15, -1, 1, 0},
+{ 4, s_7_16, 15, 1, 0},
+{ 5, s_7_17, 16, 1, 0}
 };
 
 static const symbol s_8_0[1] = { 'e' };
@@ -244,8 +244,8 @@ static const symbol s_8_1[1] = { 'l' };
 
 static const struct among a_8[2] =
 {
-/*  0 */ { 1, s_8_0, -1, 1, 0},
-/*  1 */ { 1, s_8_1, -1, 2, 0}
+{ 1, s_8_0, -1, 1, 0},
+{ 1, s_8_1, -1, 2, 0}
 };
 
 static const symbol s_9_0[7] = { 's', 'u', 'c', 'c', 'e', 'e', 'd' };
@@ -259,14 +259,14 @@ static const symbol s_9_7[6] = { 'o', 'u', 't', 'i', 'n', 'g' };
 
 static const struct among a_9[8] =
 {
-/*  0 */ { 7, s_9_0, -1, -1, 0},
-/*  1 */ { 7, s_9_1, -1, -1, 0},
-/*  2 */ { 6, s_9_2, -1, -1, 0},
-/*  3 */ { 7, s_9_3, -1, -1, 0},
-/*  4 */ { 6, s_9_4, -1, -1, 0},
-/*  5 */ { 7, s_9_5, -1, -1, 0},
-/*  6 */ { 7, s_9_6, -1, -1, 0},
-/*  7 */ { 6, s_9_7, -1, -1, 0}
+{ 7, s_9_0, -1, -1, 0},
+{ 7, s_9_1, -1, -1, 0},
+{ 6, s_9_2, -1, -1, 0},
+{ 7, s_9_3, -1, -1, 0},
+{ 6, s_9_4, -1, -1, 0},
+{ 7, s_9_5, -1, -1, 0},
+{ 7, s_9_6, -1, -1, 0},
+{ 6, s_9_7, -1, -1, 0}
 };
 
 static const symbol s_10_0[5] = { 'a', 'n', 'd', 'e', 's' };
@@ -290,24 +290,24 @@ static const symbol s_10_17[4] = { 'u', 'g', 'l', 'y' };
 
 static const struct among a_10[18] =
 {
-/*  0 */ { 5, s_10_0, -1, -1, 0},
-/*  1 */ { 5, s_10_1, -1, -1, 0},
-/*  2 */ { 4, s_10_2, -1, -1, 0},
-/*  3 */ { 6, s_10_3, -1, -1, 0},
-/*  4 */ { 5, s_10_4, -1, 3, 0},
-/*  5 */ { 5, s_10_5, -1, 9, 0},
-/*  6 */ { 6, s_10_6, -1, 7, 0},
-/*  7 */ { 4, s_10_7, -1, -1, 0},
-/*  8 */ { 4, s_10_8, -1, 6, 0},
-/*  9 */ { 5, s_10_9, -1, 4, 0},
-/* 10 */ { 4, s_10_10, -1, -1, 0},
-/* 11 */ { 4, s_10_11, -1, 10, 0},
-/* 12 */ { 6, s_10_12, -1, 11, 0},
-/* 13 */ { 5, s_10_13, -1, 2, 0},
-/* 14 */ { 4, s_10_14, -1, 1, 0},
-/* 15 */ { 3, s_10_15, -1, -1, 0},
-/* 16 */ { 5, s_10_16, -1, 5, 0},
-/* 17 */ { 4, s_10_17, -1, 8, 0}
+{ 5, s_10_0, -1, -1, 0},
+{ 5, s_10_1, -1, -1, 0},
+{ 4, s_10_2, -1, -1, 0},
+{ 6, s_10_3, -1, -1, 0},
+{ 5, s_10_4, -1, 3, 0},
+{ 5, s_10_5, -1, 9, 0},
+{ 6, s_10_6, -1, 7, 0},
+{ 4, s_10_7, -1, -1, 0},
+{ 4, s_10_8, -1, 6, 0},
+{ 5, s_10_9, -1, 4, 0},
+{ 4, s_10_10, -1, -1, 0},
+{ 4, s_10_11, -1, 10, 0},
+{ 6, s_10_12, -1, 11, 0},
+{ 5, s_10_13, -1, 2, 0},
+{ 4, s_10_14, -1, 1, 0},
+{ 3, s_10_15, -1, -1, 0},
+{ 5, s_10_16, -1, 5, 0},
+{ 4, s_10_17, -1, 8, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 1 };
@@ -356,53 +356,52 @@ static const symbol s_36[] = { 'o', 'n', 'l', 'i' };
 static const symbol s_37[] = { 's', 'i', 'n', 'g', 'l' };
 static const symbol s_38[] = { 'y' };
 
-static int r_prelude(struct SN_env * z) { /* forwardmode */
-    z->B[0] = 0; /* unset Y_found, line 26 */
-    {   int c1 = z->c; /* do, line 27 */
-        z->bra = z->c; /* [, line 27 */
-        if (z->c == z->l || z->p[z->c] != '\'') goto lab0; /* literal, line 27 */
+static int r_prelude(struct SN_env * z) {
+    z->I[2] = 0;
+    {   int c1 = z->c;
+        z->bra = z->c;
+        if (z->c == z->l || z->p[z->c] != '\'') goto lab0;
         z->c++;
-        z->ket = z->c; /* ], line 27 */
-        {   int ret = slice_del(z); /* delete, line 27 */
+        z->ket = z->c;
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
     lab0:
         z->c = c1;
     }
-    {   int c2 = z->c; /* do, line 28 */
-        z->bra = z->c; /* [, line 28 */
-        if (z->c == z->l || z->p[z->c] != 'y') goto lab1; /* literal, line 28 */
+    {   int c2 = z->c;
+        z->bra = z->c;
+        if (z->c == z->l || z->p[z->c] != 'y') goto lab1;
         z->c++;
-        z->ket = z->c; /* ], line 28 */
-        {   int ret = slice_from_s(z, 1, s_0); /* <-, line 28 */
+        z->ket = z->c;
+        {   int ret = slice_from_s(z, 1, s_0);
             if (ret < 0) return ret;
         }
-        z->B[0] = 1; /* set Y_found, line 28 */
+        z->I[2] = 1;
     lab1:
         z->c = c2;
     }
-    {   int c3 = z->c; /* do, line 29 */
-/* repeat, line 29 */
-
-        while(1) {            int c4 = z->c;
-            while(1) { /* goto, line 29 */
+    {   int c3 = z->c;
+        while(1) {
+            int c4 = z->c;
+            while(1) {
                 int c5 = z->c;
-                if (in_grouping(z, g_v, 97, 121, 0)) goto lab4; /* grouping v, line 29 */
-                z->bra = z->c; /* [, line 29 */
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 29 */
+                if (in_grouping(z, g_v, 97, 121, 0)) goto lab4;
+                z->bra = z->c;
+                if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
                 z->c++;
-                z->ket = z->c; /* ], line 29 */
+                z->ket = z->c;
                 z->c = c5;
                 break;
             lab4:
                 z->c = c5;
                 if (z->c >= z->l) goto lab3;
-                z->c++; /* goto, line 29 */
+                z->c++;
             }
-            {   int ret = slice_from_s(z, 1, s_1); /* <-, line 29 */
+            {   int ret = slice_from_s(z, 1, s_1);
                 if (ret < 0) return ret;
             }
-            z->B[0] = 1; /* set Y_found, line 29 */
+            z->I[2] = 1;
             continue;
         lab3:
             z->c = c4;
@@ -413,109 +412,107 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 33 */
-    z->I[1] = z->l; /* $p2 = <integer expression>, line 34 */
-    {   int c1 = z->c; /* do, line 35 */
-        {   int c2 = z->c; /* or, line 41 */
-            if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2; /* among, line 36 */
+static int r_mark_regions(struct SN_env * z) {
+    z->I[1] = z->l;
+    z->I[0] = z->l;
+    {   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;
             goto lab1;
         lab2:
             z->c = c2;
-            {    /* gopast */ /* grouping v, line 41 */
+            {   
                 int ret = out_grouping(z, g_v, 97, 121, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
             }
-            {    /* gopast */ /* non v, line 41 */
+            {   
                 int ret = in_grouping(z, g_v, 97, 121, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
             }
         }
     lab1:
-        z->I[0] = z->c; /* setmark p1, line 42 */
-        {    /* gopast */ /* grouping v, line 43 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 43 */
+        {   
             int ret = in_grouping(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p2, line 43 */
+        z->I[0] = z->c;
     lab0:
         z->c = c1;
     }
     return 1;
 }
 
-static int r_shortv(struct SN_env * z) { /* backwardmode */
-    {   int m1 = z->l - z->c; (void)m1; /* or, line 51 */
-        if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) goto lab1; /* non v_WXY, line 50 */
-        if (in_grouping_b(z, g_v, 97, 121, 0)) goto lab1; /* grouping v, line 50 */
-        if (out_grouping_b(z, g_v, 97, 121, 0)) goto lab1; /* non v, line 50 */
+static int r_shortv(struct SN_env * z) {
+    {   int m1 = z->l - z->c; (void)m1;
+        if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) goto lab1;
+        if (in_grouping_b(z, g_v, 97, 121, 0)) goto lab1;
+        if (out_grouping_b(z, g_v, 97, 121, 0)) goto lab1;
         goto lab0;
     lab1:
         z->c = z->l - m1;
-        if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 52 */
-        if (in_grouping_b(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 52 */
-        if (z->c > z->lb) return 0; /* atlimit, line 52 */
+        if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
+        if (in_grouping_b(z, g_v, 97, 121, 0)) return 0;
+        if (z->c > z->lb) return 0;
     }
 lab0:
     return 1;
 }
 
-static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 55 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 56 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_Step_1a(struct SN_env * z) { /* backwardmode */
+static int r_Step_1a(struct SN_env * z) {
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* try, line 59 */
-        z->ket = z->c; /* [, line 60 */
-        if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; } /* substring, line 60 */
+    {   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; }
-        z->bra = z->c; /* ], line 60 */
-        {   int ret = slice_del(z); /* delete, line 62 */
+        z->bra = z->c;
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
     lab0:
         ;
     }
-    z->ket = z->c; /* [, line 65 */
-    if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0; /* substring, line 65 */
+    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;
-    z->bra = z->c; /* ], line 65 */
-    switch (among_var) { /* among, line 65 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 2, s_2); /* <-, line 66 */
+            {   int ret = slice_from_s(z, 2, s_2);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int m2 = z->l - z->c; (void)m2; /* or, line 68 */
-                {   int ret = z->c - 2; /* hop, line 68 */
-                    if (z->lb > ret || ret > z->l) goto lab2;
-                    z->c = ret;
-                }
-                {   int ret = slice_from_s(z, 1, s_3); /* <-, line 68 */
+            {   int m2 = z->l - z->c; (void)m2;
+z->c = z->c - 2;
+                if (z->c < z->lb) goto lab2;
+                {   int ret = slice_from_s(z, 1, s_3);
                     if (ret < 0) return ret;
                 }
                 goto lab1;
             lab2:
                 z->c = z->l - m2;
-                {   int ret = slice_from_s(z, 2, s_4); /* <-, line 68 */
+                {   int ret = slice_from_s(z, 2, s_4);
                     if (ret < 0) return ret;
                 }
             }
@@ -523,13 +520,13 @@ static int r_Step_1a(struct SN_env * z) { /* backwardmode */
             break;
         case 3:
             if (z->c <= z->lb) return 0;
-            z->c--; /* next, line 69 */
-            {    /* gopast */ /* grouping v, line 69 */
+            z->c--;
+            {   
                 int ret = out_grouping_b(z, g_v, 97, 121, 1);
                 if (ret < 0) return 0;
                 z->c -= ret;
             }
-            {   int ret = slice_del(z); /* delete, line 69 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -537,70 +534,70 @@ static int r_Step_1a(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_1b(struct SN_env * z) { /* backwardmode */
+static int r_Step_1b(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 75 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 75 */
+    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;
-    z->bra = z->c; /* ], line 75 */
-    switch (among_var) { /* among, line 75 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R1(z); /* call R1, line 77 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_5); /* <-, line 77 */
+            {   int ret = slice_from_s(z, 2, s_5);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int m_test1 = z->l - z->c; /* test, line 80 */
-                {    /* gopast */ /* grouping v, line 80 */
+            {   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;
                 }
                 z->c = z->l - m_test1;
             }
-            {   int ret = slice_del(z); /* delete, line 80 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m_test2 = z->l - z->c; /* test, line 81 */
-                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 /* substring, line 81 */
+            {   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) { /* among, line 81 */
+            switch (among_var) {
                 case 1:
                     {   int ret;
                         {   int saved_c = z->c;
-                            ret = insert_s(z, z->c, z->c, 1, s_6); /* <+, line 83 */
+                            ret = insert_s(z, z->c, z->c, 1, s_6);
                             z->c = saved_c;
                         }
                         if (ret < 0) return ret;
                     }
                     break;
                 case 2:
-                    z->ket = z->c; /* [, line 86 */
+                    z->ket = z->c;
                     if (z->c <= z->lb) return 0;
-                    z->c--; /* next, line 86 */
-                    z->bra = z->c; /* ], line 86 */
-                    {   int ret = slice_del(z); /* delete, line 86 */
+                    z->c--;
+                    z->bra = z->c;
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 3:
-                    if (z->c != z->I[0]) return 0; /* atmark, line 87 */
-                    {   int m_test3 = z->l - z->c; /* test, line 87 */
-                        {   int ret = r_shortv(z); /* call shortv, line 87 */
+                    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;
                         }
                         z->c = z->l - m_test3;
                     }
                     {   int ret;
                         {   int saved_c = z->c;
-                            ret = insert_s(z, z->c, z->c, 1, s_7); /* <+, line 87 */
+                            ret = insert_s(z, z->c, z->c, 1, s_7);
                             z->c = saved_c;
                         }
                         if (ret < 0) return ret;
@@ -612,116 +609,116 @@ static int r_Step_1b(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_1c(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 94 */
-    {   int m1 = z->l - z->c; (void)m1; /* or, line 94 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 94 */
+static int r_Step_1c(struct SN_env * z) {
+    z->ket = z->c;
+    {   int m1 = z->l - z->c; (void)m1;
+        if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
         z->c--;
         goto lab0;
     lab1:
         z->c = z->l - m1;
-        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 94 */
+        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0;
         z->c--;
     }
 lab0:
-    z->bra = z->c; /* ], line 94 */
-    if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 95 */
-    /* not, line 95 */
-    if (z->c > z->lb) goto lab2; /* atlimit, line 95 */
+    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:
-    {   int ret = slice_from_s(z, 1, s_8); /* <-, line 96 */
+    {   int ret = slice_from_s(z, 1, s_8);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Step_2(struct SN_env * z) { /* backwardmode */
+static int r_Step_2(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 100 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 100 */
+    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;
-    z->bra = z->c; /* ], line 100 */
-    {   int ret = r_R1(z); /* call R1, line 100 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 100 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 4, s_9); /* <-, line 101 */
+            {   int ret = slice_from_s(z, 4, s_9);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 4, s_10); /* <-, line 102 */
+            {   int ret = slice_from_s(z, 4, s_10);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 4, s_11); /* <-, line 103 */
+            {   int ret = slice_from_s(z, 4, s_11);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */
+            {   int ret = slice_from_s(z, 4, s_12);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_from_s(z, 3, s_13); /* <-, line 105 */
+            {   int ret = slice_from_s(z, 3, s_13);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = slice_from_s(z, 3, s_14); /* <-, line 107 */
+            {   int ret = slice_from_s(z, 3, s_14);
                 if (ret < 0) return ret;
             }
             break;
         case 7:
-            {   int ret = slice_from_s(z, 3, s_15); /* <-, line 109 */
+            {   int ret = slice_from_s(z, 3, s_15);
                 if (ret < 0) return ret;
             }
             break;
         case 8:
-            {   int ret = slice_from_s(z, 2, s_16); /* <-, line 111 */
+            {   int ret = slice_from_s(z, 2, s_16);
                 if (ret < 0) return ret;
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 3, s_17); /* <-, line 112 */
+            {   int ret = slice_from_s(z, 3, s_17);
                 if (ret < 0) return ret;
             }
             break;
         case 10:
-            {   int ret = slice_from_s(z, 3, s_18); /* <-, line 114 */
+            {   int ret = slice_from_s(z, 3, s_18);
                 if (ret < 0) return ret;
             }
             break;
         case 11:
-            {   int ret = slice_from_s(z, 3, s_19); /* <-, line 116 */
+            {   int ret = slice_from_s(z, 3, s_19);
                 if (ret < 0) return ret;
             }
             break;
         case 12:
-            {   int ret = slice_from_s(z, 3, s_20); /* <-, line 118 */
+            {   int ret = slice_from_s(z, 3, s_20);
                 if (ret < 0) return ret;
             }
             break;
         case 13:
-            if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 119 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
             z->c--;
-            {   int ret = slice_from_s(z, 2, s_21); /* <-, line 119 */
+            {   int ret = slice_from_s(z, 2, s_21);
                 if (ret < 0) return ret;
             }
             break;
         case 14:
-            {   int ret = slice_from_s(z, 4, s_22); /* <-, line 121 */
+            {   int ret = slice_from_s(z, 4, s_22);
                 if (ret < 0) return ret;
             }
             break;
         case 15:
-            if (in_grouping_b(z, g_valid_LI, 99, 116, 0)) return 0; /* grouping valid_LI, line 122 */
-            {   int ret = slice_del(z); /* delete, line 122 */
+            if (in_grouping_b(z, g_valid_LI, 99, 116, 0)) return 0;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -729,47 +726,47 @@ static int r_Step_2(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_3(struct SN_env * z) { /* backwardmode */
+static int r_Step_3(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 127 */
-    if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 127 */
+    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;
-    z->bra = z->c; /* ], line 127 */
-    {   int ret = r_R1(z); /* call R1, line 127 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 127 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 4, s_23); /* <-, line 128 */
+            {   int ret = slice_from_s(z, 4, s_23);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 3, s_24); /* <-, line 129 */
+            {   int ret = slice_from_s(z, 3, s_24);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 2, s_25); /* <-, line 130 */
+            {   int ret = slice_from_s(z, 2, s_25);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = slice_from_s(z, 2, s_26); /* <-, line 132 */
+            {   int ret = slice_from_s(z, 2, s_26);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_del(z); /* delete, line 134 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = r_R2(z); /* call R2, line 136 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 136 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -777,34 +774,34 @@ static int r_Step_3(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_4(struct SN_env * z) { /* backwardmode */
+static int r_Step_4(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 141 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 141 */
+    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;
-    z->bra = z->c; /* ], line 141 */
-    {   int ret = r_R2(z); /* call R2, line 141 */
+    z->bra = z->c;
+    {   int ret = r_R2(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 141 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 144 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int m1 = z->l - z->c; (void)m1; /* or, line 145 */
-                if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 145 */
+            {   int m1 = z->l - z->c; (void)m1;
+                if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
                 z->c--;
                 goto lab0;
             lab1:
                 z->c = z->l - m1;
-                if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 145 */
+                if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0;
                 z->c--;
             }
         lab0:
-            {   int ret = slice_del(z); /* delete, line 145 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -812,28 +809,28 @@ static int r_Step_4(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_5(struct SN_env * z) { /* backwardmode */
+static int r_Step_5(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 150 */
-    if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0; /* substring, line 150 */
+    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;
-    z->bra = z->c; /* ], line 150 */
-    switch (among_var) { /* among, line 150 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int m1 = z->l - z->c; (void)m1; /* or, line 151 */
-                {   int ret = r_R2(z); /* call R2, line 151 */
+            {   int m1 = z->l - z->c; (void)m1;
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab1;
                     if (ret < 0) return ret;
                 }
                 goto lab0;
             lab1:
                 z->c = z->l - m1;
-                {   int ret = r_R1(z); /* call R1, line 151 */
+                {   int ret = r_R1(z);
                     if (ret <= 0) return ret;
                 }
-                {   int m2 = z->l - z->c; (void)m2; /* not, line 151 */
-                    {   int ret = r_shortv(z); /* call shortv, line 151 */
+                {   int m2 = z->l - z->c; (void)m2;
+                    {   int ret = r_shortv(z);
                         if (ret == 0) goto lab2;
                         if (ret < 0) return ret;
                     }
@@ -843,17 +840,17 @@ static int r_Step_5(struct SN_env * z) { /* backwardmode */
                 }
             }
         lab0:
-            {   int ret = slice_del(z); /* delete, line 151 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 152 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 152 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
             z->c--;
-            {   int ret = slice_del(z); /* delete, line 152 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -861,76 +858,76 @@ static int r_Step_5(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_exception2(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 158 */
-    if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 158 */
+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;
-    z->bra = z->c; /* ], line 158 */
-    if (z->c > z->lb) return 0; /* atlimit, line 158 */
+    z->bra = z->c;
+    if (z->c > z->lb) return 0;
     return 1;
 }
 
-static int r_exception1(struct SN_env * z) { /* forwardmode */
+static int r_exception1(struct SN_env * z) {
     int among_var;
-    z->bra = z->c; /* [, line 170 */
-    if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0; /* substring, line 170 */
+    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;
-    z->ket = z->c; /* ], line 170 */
-    if (z->c < z->l) return 0; /* atlimit, line 170 */
-    switch (among_var) { /* among, line 170 */
+    z->ket = z->c;
+    if (z->c < z->l) return 0;
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 3, s_27); /* <-, line 174 */
+            {   int ret = slice_from_s(z, 3, s_27);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 3, s_28); /* <-, line 175 */
+            {   int ret = slice_from_s(z, 3, s_28);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 3, s_29); /* <-, line 176 */
+            {   int ret = slice_from_s(z, 3, s_29);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = slice_from_s(z, 3, s_30); /* <-, line 177 */
+            {   int ret = slice_from_s(z, 3, s_30);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_from_s(z, 3, s_31); /* <-, line 178 */
+            {   int ret = slice_from_s(z, 3, s_31);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = slice_from_s(z, 3, s_32); /* <-, line 182 */
+            {   int ret = slice_from_s(z, 3, s_32);
                 if (ret < 0) return ret;
             }
             break;
         case 7:
-            {   int ret = slice_from_s(z, 5, s_33); /* <-, line 183 */
+            {   int ret = slice_from_s(z, 5, s_33);
                 if (ret < 0) return ret;
             }
             break;
         case 8:
-            {   int ret = slice_from_s(z, 4, s_34); /* <-, line 184 */
+            {   int ret = slice_from_s(z, 4, s_34);
                 if (ret < 0) return ret;
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 5, s_35); /* <-, line 185 */
+            {   int ret = slice_from_s(z, 5, s_35);
                 if (ret < 0) return ret;
             }
             break;
         case 10:
-            {   int ret = slice_from_s(z, 4, s_36); /* <-, line 186 */
+            {   int ret = slice_from_s(z, 4, s_36);
                 if (ret < 0) return ret;
             }
             break;
         case 11:
-            {   int ret = slice_from_s(z, 5, s_37); /* <-, line 187 */
+            {   int ret = slice_from_s(z, 5, s_37);
                 if (ret < 0) return ret;
             }
             break;
@@ -938,25 +935,24 @@ static int r_exception1(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_postlude(struct SN_env * z) { /* forwardmode */
-    if (!(z->B[0])) return 0; /* Boolean test Y_found, line 203 */
-/* repeat, line 203 */
-
-    while(1) {        int c1 = z->c;
-        while(1) { /* goto, line 203 */
+static int r_postlude(struct SN_env * z) {
+    if (!(z->I[2])) return 0;
+    while(1) {
+        int c1 = z->c;
+        while(1) {
             int c2 = z->c;
-            z->bra = z->c; /* [, line 203 */
-            if (z->c == z->l || z->p[z->c] != 'Y') goto lab1; /* literal, line 203 */
+            z->bra = z->c;
+            if (z->c == z->l || z->p[z->c] != 'Y') goto lab1;
             z->c++;
-            z->ket = z->c; /* ], line 203 */
+            z->ket = z->c;
             z->c = c2;
             break;
         lab1:
             z->c = c2;
             if (z->c >= z->l) goto lab0;
-            z->c++; /* goto, line 203 */
+            z->c++;
         }
-        {   int ret = slice_from_s(z, 1, s_38); /* <-, line 203 */
+        {   int ret = slice_from_s(z, 1, s_38);
             if (ret < 0) return ret;
         }
         continue;
@@ -967,20 +963,18 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern int english_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* or, line 207 */
-        {   int ret = r_exception1(z); /* call exception1, line 207 */
+extern int english_ISO_8859_1_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_exception1(z);
             if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
         goto lab0;
     lab1:
         z->c = c1;
-        {   int c2 = z->c; /* not, line 208 */
-            {   int ret = z->c + 3; /* hop, line 208 */
-                if (0 > ret || ret > z->l) goto lab3;
-                z->c = ret;
-            }
+        {   int c2 = z->c;
+z->c = z->c + 3;
+            if (z->c > z->l) goto lab3;
             goto lab2;
         lab3:
             z->c = c2;
@@ -988,62 +982,62 @@ extern int english_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
         goto lab0;
     lab2:
         z->c = c1;
-        /* do, line 209 */
-        {   int ret = r_prelude(z); /* call prelude, line 209 */
+        
+        {   int ret = r_prelude(z);
             if (ret < 0) return ret;
         }
-        /* do, line 210 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 210 */
+        
+        {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
-        z->lb = z->c; z->c = z->l; /* backwards, line 211 */
+        z->lb = z->c; z->c = z->l;
 
-        {   int m3 = z->l - z->c; (void)m3; /* do, line 213 */
-            {   int ret = r_Step_1a(z); /* call Step_1a, line 213 */
+        {   int m3 = z->l - z->c; (void)m3;
+            {   int ret = r_Step_1a(z);
                 if (ret < 0) return ret;
             }
             z->c = z->l - m3;
         }
-        {   int m4 = z->l - z->c; (void)m4; /* or, line 215 */
-            {   int ret = r_exception2(z); /* call exception2, line 215 */
+        {   int m4 = z->l - z->c; (void)m4;
+            {   int ret = r_exception2(z);
                 if (ret == 0) goto lab5;
                 if (ret < 0) return ret;
             }
             goto lab4;
         lab5:
             z->c = z->l - m4;
-            {   int m5 = z->l - z->c; (void)m5; /* do, line 217 */
-                {   int ret = r_Step_1b(z); /* call Step_1b, line 217 */
+            {   int m5 = z->l - z->c; (void)m5;
+                {   int ret = r_Step_1b(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m5;
             }
-            {   int m6 = z->l - z->c; (void)m6; /* do, line 218 */
-                {   int ret = r_Step_1c(z); /* call Step_1c, line 218 */
+            {   int m6 = z->l - z->c; (void)m6;
+                {   int ret = r_Step_1c(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m6;
             }
-            {   int m7 = z->l - z->c; (void)m7; /* do, line 220 */
-                {   int ret = r_Step_2(z); /* call Step_2, line 220 */
+            {   int m7 = z->l - z->c; (void)m7;
+                {   int ret = r_Step_2(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m7;
             }
-            {   int m8 = z->l - z->c; (void)m8; /* do, line 221 */
-                {   int ret = r_Step_3(z); /* call Step_3, line 221 */
+            {   int m8 = z->l - z->c; (void)m8;
+                {   int ret = r_Step_3(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m8;
             }
-            {   int m9 = z->l - z->c; (void)m9; /* do, line 222 */
-                {   int ret = r_Step_4(z); /* call Step_4, line 222 */
+            {   int m9 = z->l - z->c; (void)m9;
+                {   int ret = r_Step_4(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m9;
             }
-            {   int m10 = z->l - z->c; (void)m10; /* do, line 224 */
-                {   int ret = r_Step_5(z); /* call Step_5, line 224 */
+            {   int m10 = z->l - z->c; (void)m10;
+                {   int ret = r_Step_5(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m10;
@@ -1051,8 +1045,8 @@ extern int english_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
         }
     lab4:
         z->c = z->lb;
-        {   int c11 = z->c; /* do, line 227 */
-            {   int ret = r_postlude(z); /* call postlude, line 227 */
+        {   int c11 = z->c;
+            {   int ret = r_postlude(z);
                 if (ret < 0) return ret;
             }
             z->c = c11;
@@ -1062,7 +1056,7 @@ lab0:
     return 1;
 }
 
-extern struct SN_env * english_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); }
+extern struct SN_env * english_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
 
 extern void english_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 3bb6615a68c446c6458e568984404e8ad1461e14..70eae3a3fa380ad2fb8c0bd5c2e0298ba2df8ef1 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -45,16 +45,16 @@ static const symbol s_0_9[2] = { 'k', 0xF6 };
 
 static const struct among a_0[10] =
 {
-/*  0 */ { 2, s_0_0, -1, 1, 0},
-/*  1 */ { 3, s_0_1, -1, 2, 0},
-/*  2 */ { 4, s_0_2, -1, 1, 0},
-/*  3 */ { 3, s_0_3, -1, 1, 0},
-/*  4 */ { 3, s_0_4, -1, 1, 0},
-/*  5 */ { 3, s_0_5, -1, 1, 0},
-/*  6 */ { 4, s_0_6, -1, 1, 0},
-/*  7 */ { 2, s_0_7, -1, 1, 0},
-/*  8 */ { 2, s_0_8, -1, 1, 0},
-/*  9 */ { 2, s_0_9, -1, 1, 0}
+{ 2, s_0_0, -1, 1, 0},
+{ 3, s_0_1, -1, 2, 0},
+{ 4, 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},
+{ 4, s_0_6, -1, 1, 0},
+{ 2, s_0_7, -1, 1, 0},
+{ 2, s_0_8, -1, 1, 0},
+{ 2, s_0_9, -1, 1, 0}
 };
 
 static const symbol s_1_0[3] = { 'l', 'l', 'a' };
@@ -66,12 +66,12 @@ static const symbol s_1_5[3] = { 's', 't', 'a' };
 
 static const struct among a_1[6] =
 {
-/*  0 */ { 3, s_1_0, -1, -1, 0},
-/*  1 */ { 2, s_1_1, -1, -1, 0},
-/*  2 */ { 3, s_1_2, -1, -1, 0},
-/*  3 */ { 2, s_1_3, -1, -1, 0},
-/*  4 */ { 3, s_1_4, 3, -1, 0},
-/*  5 */ { 3, s_1_5, 3, -1, 0}
+{ 3, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0},
+{ 3, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0},
+{ 3, s_1_4, 3, -1, 0},
+{ 3, s_1_5, 3, -1, 0}
 };
 
 static const symbol s_2_0[3] = { 'l', 'l', 0xE4 };
@@ -83,12 +83,12 @@ static const symbol s_2_5[3] = { 's', 't', 0xE4 };
 
 static const struct among a_2[6] =
 {
-/*  0 */ { 3, s_2_0, -1, -1, 0},
-/*  1 */ { 2, s_2_1, -1, -1, 0},
-/*  2 */ { 3, s_2_2, -1, -1, 0},
-/*  3 */ { 2, s_2_3, -1, -1, 0},
-/*  4 */ { 3, s_2_4, 3, -1, 0},
-/*  5 */ { 3, s_2_5, 3, -1, 0}
+{ 3, s_2_0, -1, -1, 0},
+{ 2, s_2_1, -1, -1, 0},
+{ 3, s_2_2, -1, -1, 0},
+{ 2, s_2_3, -1, -1, 0},
+{ 3, s_2_4, 3, -1, 0},
+{ 3, s_2_5, 3, -1, 0}
 };
 
 static const symbol s_3_0[3] = { 'l', 'l', 'e' };
@@ -96,8 +96,8 @@ static const symbol s_3_1[3] = { 'i', 'n', 'e' };
 
 static const struct among a_3[2] =
 {
-/*  0 */ { 3, s_3_0, -1, -1, 0},
-/*  1 */ { 3, s_3_1, -1, -1, 0}
+{ 3, s_3_0, -1, -1, 0},
+{ 3, s_3_1, -1, -1, 0}
 };
 
 static const symbol s_4_0[3] = { 'n', 's', 'a' };
@@ -112,15 +112,15 @@ static const symbol s_4_8[3] = { 'n', 's', 0xE4 };
 
 static const struct among a_4[9] =
 {
-/*  0 */ { 3, s_4_0, -1, 3, 0},
-/*  1 */ { 3, s_4_1, -1, 3, 0},
-/*  2 */ { 3, s_4_2, -1, 3, 0},
-/*  3 */ { 2, s_4_3, -1, 2, 0},
-/*  4 */ { 2, s_4_4, -1, 1, 0},
-/*  5 */ { 2, s_4_5, -1, 4, 0},
-/*  6 */ { 2, s_4_6, -1, 6, 0},
-/*  7 */ { 2, s_4_7, -1, 5, 0},
-/*  8 */ { 3, s_4_8, -1, 3, 0}
+{ 3, s_4_0, -1, 3, 0},
+{ 3, s_4_1, -1, 3, 0},
+{ 3, s_4_2, -1, 3, 0},
+{ 2, s_4_3, -1, 2, 0},
+{ 2, s_4_4, -1, 1, 0},
+{ 2, s_4_5, -1, 4, 0},
+{ 2, s_4_6, -1, 6, 0},
+{ 2, s_4_7, -1, 5, 0},
+{ 3, s_4_8, -1, 3, 0}
 };
 
 static const symbol s_5_0[2] = { 'a', 'a' };
@@ -133,13 +133,13 @@ static const symbol s_5_6[2] = { 0xF6, 0xF6 };
 
 static const struct among a_5[7] =
 {
-/*  0 */ { 2, s_5_0, -1, -1, 0},
-/*  1 */ { 2, s_5_1, -1, -1, 0},
-/*  2 */ { 2, s_5_2, -1, -1, 0},
-/*  3 */ { 2, s_5_3, -1, -1, 0},
-/*  4 */ { 2, s_5_4, -1, -1, 0},
-/*  5 */ { 2, s_5_5, -1, -1, 0},
-/*  6 */ { 2, s_5_6, -1, -1, 0}
+{ 2, s_5_0, -1, -1, 0},
+{ 2, s_5_1, -1, -1, 0},
+{ 2, s_5_2, -1, -1, 0},
+{ 2, s_5_3, -1, -1, 0},
+{ 2, s_5_4, -1, -1, 0},
+{ 2, s_5_5, -1, -1, 0},
+{ 2, s_5_6, -1, -1, 0}
 };
 
 static const symbol s_6_0[1] = { 'a' };
@@ -175,36 +175,36 @@ static const symbol s_6_29[3] = { 't', 't', 0xE4 };
 
 static const struct among a_6[30] =
 {
-/*  0 */ { 1, s_6_0, -1, 8, 0},
-/*  1 */ { 3, s_6_1, 0, -1, 0},
-/*  2 */ { 2, s_6_2, 0, -1, 0},
-/*  3 */ { 3, s_6_3, 0, -1, 0},
-/*  4 */ { 2, s_6_4, 0, -1, 0},
-/*  5 */ { 3, s_6_5, 4, -1, 0},
-/*  6 */ { 3, s_6_6, 4, -1, 0},
-/*  7 */ { 3, s_6_7, 4, 2, 0},
-/*  8 */ { 3, s_6_8, -1, -1, 0},
-/*  9 */ { 3, s_6_9, -1, -1, 0},
-/* 10 */ { 3, s_6_10, -1, -1, 0},
-/* 11 */ { 1, s_6_11, -1, 7, 0},
-/* 12 */ { 3, s_6_12, 11, 1, 0},
-/* 13 */ { 3, s_6_13, 11, -1, r_VI},
-/* 14 */ { 4, s_6_14, 11, -1, r_LONG},
-/* 15 */ { 3, s_6_15, 11, 2, 0},
-/* 16 */ { 4, s_6_16, 11, -1, r_VI},
-/* 17 */ { 3, s_6_17, 11, 3, 0},
-/* 18 */ { 4, s_6_18, 11, -1, r_VI},
-/* 19 */ { 3, s_6_19, 11, 4, 0},
-/* 20 */ { 3, s_6_20, 11, 5, 0},
-/* 21 */ { 3, s_6_21, 11, 6, 0},
-/* 22 */ { 1, s_6_22, -1, 8, 0},
-/* 23 */ { 3, s_6_23, 22, -1, 0},
-/* 24 */ { 2, s_6_24, 22, -1, 0},
-/* 25 */ { 3, s_6_25, 22, -1, 0},
-/* 26 */ { 2, s_6_26, 22, -1, 0},
-/* 27 */ { 3, s_6_27, 26, -1, 0},
-/* 28 */ { 3, s_6_28, 26, -1, 0},
-/* 29 */ { 3, s_6_29, 26, 2, 0}
+{ 1, s_6_0, -1, 8, 0},
+{ 3, s_6_1, 0, -1, 0},
+{ 2, s_6_2, 0, -1, 0},
+{ 3, s_6_3, 0, -1, 0},
+{ 2, s_6_4, 0, -1, 0},
+{ 3, s_6_5, 4, -1, 0},
+{ 3, s_6_6, 4, -1, 0},
+{ 3, s_6_7, 4, 2, 0},
+{ 3, s_6_8, -1, -1, 0},
+{ 3, s_6_9, -1, -1, 0},
+{ 3, s_6_10, -1, -1, 0},
+{ 1, s_6_11, -1, 7, 0},
+{ 3, s_6_12, 11, 1, 0},
+{ 3, s_6_13, 11, -1, r_VI},
+{ 4, s_6_14, 11, -1, r_LONG},
+{ 3, s_6_15, 11, 2, 0},
+{ 4, s_6_16, 11, -1, r_VI},
+{ 3, s_6_17, 11, 3, 0},
+{ 4, s_6_18, 11, -1, r_VI},
+{ 3, s_6_19, 11, 4, 0},
+{ 3, s_6_20, 11, 5, 0},
+{ 3, s_6_21, 11, 6, 0},
+{ 1, s_6_22, -1, 8, 0},
+{ 3, s_6_23, 22, -1, 0},
+{ 2, s_6_24, 22, -1, 0},
+{ 3, s_6_25, 22, -1, 0},
+{ 2, s_6_26, 22, -1, 0},
+{ 3, s_6_27, 26, -1, 0},
+{ 3, s_6_28, 26, -1, 0},
+{ 3, s_6_29, 26, 2, 0}
 };
 
 static const symbol s_7_0[3] = { 'e', 'j', 'a' };
@@ -224,20 +224,20 @@ static const symbol s_7_13[4] = { 'i', 'm', 'p', 0xE4 };
 
 static const struct among a_7[14] =
 {
-/*  0 */ { 3, s_7_0, -1, -1, 0},
-/*  1 */ { 3, s_7_1, -1, 1, 0},
-/*  2 */ { 4, s_7_2, 1, -1, 0},
-/*  3 */ { 3, s_7_3, -1, 1, 0},
-/*  4 */ { 4, s_7_4, 3, -1, 0},
-/*  5 */ { 3, s_7_5, -1, 1, 0},
-/*  6 */ { 4, s_7_6, 5, -1, 0},
-/*  7 */ { 3, s_7_7, -1, 1, 0},
-/*  8 */ { 4, s_7_8, 7, -1, 0},
-/*  9 */ { 3, s_7_9, -1, -1, 0},
-/* 10 */ { 3, s_7_10, -1, 1, 0},
-/* 11 */ { 4, s_7_11, 10, -1, 0},
-/* 12 */ { 3, s_7_12, -1, 1, 0},
-/* 13 */ { 4, s_7_13, 12, -1, 0}
+{ 3, s_7_0, -1, -1, 0},
+{ 3, s_7_1, -1, 1, 0},
+{ 4, s_7_2, 1, -1, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 4, s_7_4, 3, -1, 0},
+{ 3, s_7_5, -1, 1, 0},
+{ 4, s_7_6, 5, -1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 4, s_7_8, 7, -1, 0},
+{ 3, s_7_9, -1, -1, 0},
+{ 3, s_7_10, -1, 1, 0},
+{ 4, s_7_11, 10, -1, 0},
+{ 3, s_7_12, -1, 1, 0},
+{ 4, s_7_13, 12, -1, 0}
 };
 
 static const symbol s_8_0[1] = { 'i' };
@@ -245,8 +245,8 @@ static const symbol s_8_1[1] = { 'j' };
 
 static const struct among a_8[2] =
 {
-/*  0 */ { 1, s_8_0, -1, -1, 0},
-/*  1 */ { 1, s_8_1, -1, -1, 0}
+{ 1, s_8_0, -1, -1, 0},
+{ 1, s_8_1, -1, -1, 0}
 };
 
 static const symbol s_9_0[3] = { 'm', 'm', 'a' };
@@ -254,8 +254,8 @@ static const symbol s_9_1[4] = { 'i', 'm', 'm', 'a' };
 
 static const struct among a_9[2] =
 {
-/*  0 */ { 3, s_9_0, -1, 1, 0},
-/*  1 */ { 4, s_9_1, 0, -1, 0}
+{ 3, s_9_0, -1, 1, 0},
+{ 4, s_9_1, 0, -1, 0}
 };
 
 static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
@@ -274,118 +274,118 @@ static const symbol s_2[] = { 'i', 'e' };
 static const symbol s_3[] = { 'p', 'o' };
 static const symbol s_4[] = { 'p', 'o' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 44 */
-    z->I[1] = z->l; /* $p2 = <integer expression>, line 45 */
-    if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 47 */
-    {    /* gopast */ /* non V1, line 47 */
+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[0] = z->c; /* setmark p1, line 47 */
-    if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 48 */
-    {    /* gopast */ /* non V1, line 48 */
+    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;
     }
-    z->I[1] = z->c; /* setmark p2, line 48 */
+    z->I[0] = z->c;
     return 1;
 }
 
-static int r_R2(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 53 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_particle_etc(struct SN_env * z) { /* backwardmode */
+static int r_particle_etc(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 56 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 56 */
-        among_var = find_among_b(z, a_0, 10); /* substring, line 56 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 56 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 57 */
+    switch (among_var) {
         case 1:
-            if (in_grouping_b(z, g_particle_end, 97, 246, 0)) return 0; /* grouping particle_end, line 63 */
+            if (in_grouping_b(z, g_particle_end, 97, 246, 0)) return 0;
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 65 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
             break;
     }
-    {   int ret = slice_del(z); /* delete, line 67 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_possessive(struct SN_env * z) { /* backwardmode */
+static int r_possessive(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 70 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 70 */
-        among_var = find_among_b(z, a_4, 9); /* substring, line 70 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 70 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 71 */
+    switch (among_var) {
         case 1:
-            {   int m2 = z->l - z->c; (void)m2; /* not, line 73 */
-                if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0; /* literal, line 73 */
+            {   int m2 = z->l - z->c; (void)m2;
+                if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0;
                 z->c--;
                 return 0;
             lab0:
                 z->c = z->l - m2;
             }
-            {   int ret = slice_del(z); /* delete, line 73 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_del(z); /* delete, line 75 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            z->ket = z->c; /* [, line 75 */
-            if (!(eq_s_b(z, 3, s_0))) return 0; /* literal, line 75 */
-            z->bra = z->c; /* ], line 75 */
-            {   int ret = slice_from_s(z, 3, s_1); /* <-, line 75 */
+            z->ket = z->c;
+            if (!(eq_s_b(z, 3, s_0))) return 0;
+            z->bra = z->c;
+            {   int ret = slice_from_s(z, 3, s_1);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_del(z); /* delete, line 79 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0; /* among, line 82 */
+            if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
             if (!(find_among_b(z, a_1, 6))) return 0;
-            {   int ret = slice_del(z); /* delete, line 82 */
+            {   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; /* among, line 84 */
+            if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0;
             if (!(find_among_b(z, a_2, 6))) return 0;
-            {   int ret = slice_del(z); /* delete, line 85 */
+            {   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; /* among, line 87 */
+            if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
             if (!(find_among_b(z, a_3, 2))) return 0;
-            {   int ret = slice_del(z); /* delete, line 87 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -393,244 +393,244 @@ static int r_possessive(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_LONG(struct SN_env * z) { /* backwardmode */
-    if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 92 */
+static int r_LONG(struct SN_env * z) {
+    if (!(find_among_b(z, a_5, 7))) return 0;
     return 1;
 }
 
-static int r_VI(struct SN_env * z) { /* backwardmode */
-    if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 94 */
+static int r_VI(struct SN_env * z) {
+    if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
     z->c--;
-    if (in_grouping_b(z, g_V2, 97, 246, 0)) return 0; /* grouping V2, line 94 */
+    if (in_grouping_b(z, g_V2, 97, 246, 0)) return 0;
     return 1;
 }
 
-static int r_case_ending(struct SN_env * z) { /* backwardmode */
+static int r_case_ending(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 97 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 97 */
-        among_var = find_among_b(z, a_6, 30); /* substring, line 97 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 97 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 98 */
+    switch (among_var) {
         case 1:
-            if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; /* literal, line 99 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0;
             z->c--;
             break;
         case 2:
-            if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 100 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
             z->c--;
             break;
         case 3:
-            if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 101 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
             z->c--;
             break;
         case 4:
-            if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; /* literal, line 102 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0;
             z->c--;
             break;
         case 5:
-            if (z->c <= z->lb || z->p[z->c - 1] != 0xE4) return 0; /* literal, line 103 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 0xE4) return 0;
             z->c--;
             break;
         case 6:
-            if (z->c <= z->lb || z->p[z->c - 1] != 0xF6) return 0; /* literal, line 104 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 0xF6) return 0;
             z->c--;
             break;
         case 7:
-            {   int m2 = z->l - z->c; (void)m2; /* try, line 112 */
-                {   int m3 = z->l - z->c; (void)m3; /* and, line 114 */
-                    {   int m4 = z->l - z->c; (void)m4; /* or, line 113 */
-                        {   int ret = r_LONG(z); /* call LONG, line 112 */
+            {   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 ret = r_LONG(z);
                             if (ret == 0) goto lab2;
                             if (ret < 0) return ret;
                         }
                         goto lab1;
                     lab2:
                         z->c = z->l - m4;
-                        if (!(eq_s_b(z, 2, s_2))) { z->c = z->l - m2; goto lab0; } /* literal, line 113 */
+                        if (!(eq_s_b(z, 2, s_2))) { z->c = z->l - m2; goto lab0; }
                     }
                 lab1:
                     z->c = z->l - m3;
                     if (z->c <= z->lb) { z->c = z->l - m2; goto lab0; }
-                    z->c--; /* next, line 114 */
+                    z->c--;
                 }
-                z->bra = z->c; /* ], line 114 */
+                z->bra = z->c;
             lab0:
                 ;
             }
             break;
         case 8:
-            if (in_grouping_b(z, g_V1, 97, 246, 0)) return 0; /* grouping V1, line 120 */
-            if (in_grouping_b(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 120 */
+            if (in_grouping_b(z, g_V1, 97, 246, 0)) return 0;
+            if (in_grouping_b(z, g_C, 98, 122, 0)) return 0;
             break;
     }
-    {   int ret = slice_del(z); /* delete, line 139 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    z->B[0] = 1; /* set ending_removed, line 140 */
+    z->I[2] = 1;
     return 1;
 }
 
-static int r_other_endings(struct SN_env * z) { /* backwardmode */
+static int r_other_endings(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 143 */
-        if (z->c < z->I[1]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[1];
-        z->ket = z->c; /* [, line 143 */
-        among_var = find_among_b(z, a_7, 14); /* substring, line 143 */
+    {   int mlimit1;
+        if (z->c < z->I[0]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 143 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 144 */
+    switch (among_var) {
         case 1:
-            {   int m2 = z->l - z->c; (void)m2; /* not, line 147 */
-                if (!(eq_s_b(z, 2, s_3))) goto lab0; /* literal, line 147 */
+            {   int m2 = z->l - z->c; (void)m2;
+                if (!(eq_s_b(z, 2, s_3))) goto lab0;
                 return 0;
             lab0:
                 z->c = z->l - m2;
             }
             break;
     }
-    {   int ret = slice_del(z); /* delete, line 152 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_i_plural(struct SN_env * z) { /* backwardmode */
+static int r_i_plural(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 155 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 155 */
-        if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; } /* substring, line 155 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 155 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    {   int ret = slice_del(z); /* delete, line 159 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_t_plural(struct SN_env * z) { /* backwardmode */
+static int r_t_plural(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 162 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 163 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } /* literal, line 163 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[1];
+        z->ket = z->c;
+        if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; }
         z->c--;
-        z->bra = z->c; /* ], line 163 */
-        {   int m_test2 = z->l - z->c; /* test, line 163 */
-            if (in_grouping_b(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; } /* grouping V1, line 163 */
+        z->bra = z->c;
+        {   int m_test2 = z->l - z->c;
+            if (in_grouping_b(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; }
             z->c = z->l - m_test2;
         }
-        {   int ret = slice_del(z); /* delete, line 164 */
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
         z->lb = mlimit1;
     }
 
-    {   int mlimit3; /* setlimit, line 166 */
-        if (z->c < z->I[1]) return 0;
-        mlimit3 = z->lb; z->lb = z->I[1];
-        z->ket = z->c; /* [, line 166 */
-        if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } /* substring, line 166 */
+    {   int mlimit3;
+        if (z->c < z->I[0]) return 0;
+        mlimit3 = z->lb; z->lb = z->I[0];
+        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; }
-        z->bra = z->c; /* ], line 166 */
+        z->bra = z->c;
         z->lb = mlimit3;
     }
-    switch (among_var) { /* among, line 167 */
+    switch (among_var) {
         case 1:
-            {   int m4 = z->l - z->c; (void)m4; /* not, line 168 */
-                if (!(eq_s_b(z, 2, s_4))) goto lab0; /* literal, line 168 */
+            {   int m4 = z->l - z->c; (void)m4;
+                if (!(eq_s_b(z, 2, s_4))) goto lab0;
                 return 0;
             lab0:
                 z->c = z->l - m4;
             }
             break;
     }
-    {   int ret = slice_del(z); /* delete, line 171 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_tidy(struct SN_env * z) { /* backwardmode */
+static int r_tidy(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 174 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        {   int m2 = z->l - z->c; (void)m2; /* do, line 175 */
-            {   int m3 = z->l - z->c; (void)m3; /* and, line 175 */
-                {   int ret = r_LONG(z); /* call LONG, line 175 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[1];
+        {   int m2 = z->l - z->c; (void)m2;
+            {   int m3 = z->l - z->c; (void)m3;
+                {   int ret = r_LONG(z);
                     if (ret == 0) goto lab0;
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m3;
-                z->ket = z->c; /* [, line 175 */
+                z->ket = z->c;
                 if (z->c <= z->lb) goto lab0;
-                z->c--; /* next, line 175 */
-                z->bra = z->c; /* ], line 175 */
-                {   int ret = slice_del(z); /* delete, line 175 */
+                z->c--;
+                z->bra = z->c;
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             }
         lab0:
             z->c = z->l - m2;
         }
-        {   int m4 = z->l - z->c; (void)m4; /* do, line 176 */
-            z->ket = z->c; /* [, line 176 */
-            if (in_grouping_b(z, g_AEI, 97, 228, 0)) goto lab1; /* grouping AEI, line 176 */
-            z->bra = z->c; /* ], line 176 */
-            if (in_grouping_b(z, g_C, 98, 122, 0)) goto lab1; /* grouping C, line 176 */
-            {   int ret = slice_del(z); /* delete, line 176 */
+        {   int m4 = z->l - z->c; (void)m4;
+            z->ket = z->c;
+            if (in_grouping_b(z, g_AEI, 97, 228, 0)) goto lab1;
+            z->bra = z->c;
+            if (in_grouping_b(z, g_C, 98, 122, 0)) goto lab1;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
         lab1:
             z->c = z->l - m4;
         }
-        {   int m5 = z->l - z->c; (void)m5; /* do, line 177 */
-            z->ket = z->c; /* [, line 177 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2; /* literal, line 177 */
+        {   int m5 = z->l - z->c; (void)m5;
+            z->ket = z->c;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2;
             z->c--;
-            z->bra = z->c; /* ], line 177 */
-            {   int m6 = z->l - z->c; (void)m6; /* or, line 177 */
-                if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4; /* literal, line 177 */
+            z->bra = z->c;
+            {   int m6 = z->l - z->c; (void)m6;
+                if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4;
                 z->c--;
                 goto lab3;
             lab4:
                 z->c = z->l - m6;
-                if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2; /* literal, line 177 */
+                if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2;
                 z->c--;
             }
         lab3:
-            {   int ret = slice_del(z); /* delete, line 177 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
         lab2:
             z->c = z->l - m5;
         }
-        {   int m7 = z->l - z->c; (void)m7; /* do, line 178 */
-            z->ket = z->c; /* [, line 178 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 178 */
+        {   int m7 = z->l - z->c; (void)m7;
+            z->ket = z->c;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5;
             z->c--;
-            z->bra = z->c; /* ], line 178 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5; /* literal, line 178 */
+            z->bra = z->c;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5;
             z->c--;
-            {   int ret = slice_del(z); /* delete, line 178 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
         lab5:
@@ -638,72 +638,72 @@ static int r_tidy(struct SN_env * z) { /* backwardmode */
         }
         z->lb = mlimit1;
     }
-    if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 180 */
-    z->ket = z->c; /* [, line 180 */
-    if (in_grouping_b(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 180 */
-    z->bra = z->c; /* ], line 180 */
-    z->S[0] = slice_to(z, z->S[0]); /* -> x, line 180 */
-    if (z->S[0] == 0) return -1; /* -> x, line 180 */
-    if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 180 */
-    {   int ret = slice_del(z); /* delete, line 180 */
+    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;
+    z->bra = z->c;
+    z->S[0] = slice_to(z, z->S[0]);
+    if (z->S[0] == 0) return -1;
+    if (!(eq_v_b(z, z->S[0]))) return 0;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-extern int finnish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 186 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 186 */
+extern int finnish_ISO_8859_1_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    z->B[0] = 0; /* unset ending_removed, line 187 */
-    z->lb = z->c; z->c = z->l; /* backwards, line 188 */
+    z->I[2] = 0;
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 189 */
-        {   int ret = r_particle_etc(z); /* call particle_etc, line 189 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_particle_etc(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 190 */
-        {   int ret = r_possessive(z); /* call possessive, line 190 */
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_possessive(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m3;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 191 */
-        {   int ret = r_case_ending(z); /* call case_ending, line 191 */
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int ret = r_case_ending(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m4;
     }
-    {   int m5 = z->l - z->c; (void)m5; /* do, line 192 */
-        {   int ret = r_other_endings(z); /* call other_endings, line 192 */
+    {   int m5 = z->l - z->c; (void)m5;
+        {   int ret = r_other_endings(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m5;
     }
-    /* or, line 193 */
-    if (!(z->B[0])) goto lab1; /* Boolean test ending_removed, line 193 */
-    {   int m6 = z->l - z->c; (void)m6; /* do, line 193 */
-        {   int ret = r_i_plural(z); /* call i_plural, line 193 */
+    
+    if (!(z->I[2])) goto lab1;
+    {   int m6 = z->l - z->c; (void)m6;
+        {   int ret = r_i_plural(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m6;
     }
     goto lab0;
 lab1:
-    {   int m7 = z->l - z->c; (void)m7; /* do, line 193 */
-        {   int ret = r_t_plural(z); /* call t_plural, line 193 */
+    {   int m7 = z->l - z->c; (void)m7;
+        {   int ret = r_t_plural(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m7;
     }
 lab0:
-    {   int m8 = z->l - z->c; (void)m8; /* do, line 194 */
-        {   int ret = r_tidy(z); /* call tidy, line 194 */
+    {   int m8 = z->l - z->c; (void)m8;
+        {   int ret = r_tidy(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m8;
@@ -712,7 +712,7 @@ lab0:
     return 1;
 }
 
-extern struct SN_env * finnish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2, 1); }
+extern struct SN_env * finnish_ISO_8859_1_create_env(void) { return SN_create_env(1, 3); }
 
 extern void finnish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 1); }
 
index bbf6985ba58419eb58fdc02f7535c0041f855492..05fd6b61a246effc4a1a804fe3e3a1c544fd8eec 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -39,9 +39,9 @@ static const symbol s_0_2[3] = { 't', 'a', 'p' };
 
 static const struct among a_0[3] =
 {
-/*  0 */ { 3, s_0_0, -1, -1, 0},
-/*  1 */ { 3, s_0_1, -1, -1, 0},
-/*  2 */ { 3, s_0_2, -1, -1, 0}
+{ 3, s_0_0, -1, -1, 0},
+{ 3, s_0_1, -1, -1, 0},
+{ 3, s_0_2, -1, -1, 0}
 };
 
 static const symbol s_1_1[1] = { 'H' };
@@ -53,13 +53,13 @@ static const symbol s_1_6[1] = { 'Y' };
 
 static const struct among a_1[7] =
 {
-/*  0 */ { 0, 0, -1, 7, 0},
-/*  1 */ { 1, s_1_1, 0, 6, 0},
-/*  2 */ { 2, s_1_2, 1, 4, 0},
-/*  3 */ { 2, s_1_3, 1, 5, 0},
-/*  4 */ { 1, s_1_4, 0, 1, 0},
-/*  5 */ { 1, s_1_5, 0, 2, 0},
-/*  6 */ { 1, s_1_6, 0, 3, 0}
+{ 0, 0, -1, 7, 0},
+{ 1, s_1_1, 0, 6, 0},
+{ 2, s_1_2, 1, 4, 0},
+{ 2, s_1_3, 1, 5, 0},
+{ 1, s_1_4, 0, 1, 0},
+{ 1, s_1_5, 0, 2, 0},
+{ 1, s_1_6, 0, 3, 0}
 };
 
 static const symbol s_2_0[3] = { 'i', 'q', 'U' };
@@ -71,12 +71,12 @@ static const symbol s_2_5[2] = { 'i', 'v' };
 
 static const struct among a_2[6] =
 {
-/*  0 */ { 3, s_2_0, -1, 3, 0},
-/*  1 */ { 3, s_2_1, -1, 3, 0},
-/*  2 */ { 3, s_2_2, -1, 4, 0},
-/*  3 */ { 3, s_2_3, -1, 4, 0},
-/*  4 */ { 3, s_2_4, -1, 2, 0},
-/*  5 */ { 2, s_2_5, -1, 1, 0}
+{ 3, s_2_0, -1, 3, 0},
+{ 3, s_2_1, -1, 3, 0},
+{ 3, s_2_2, -1, 4, 0},
+{ 3, s_2_3, -1, 4, 0},
+{ 3, s_2_4, -1, 2, 0},
+{ 2, s_2_5, -1, 1, 0}
 };
 
 static const symbol s_3_0[2] = { 'i', 'c' };
@@ -85,9 +85,9 @@ static const symbol s_3_2[2] = { 'i', 'v' };
 
 static const struct among a_3[3] =
 {
-/*  0 */ { 2, s_3_0, -1, 2, 0},
-/*  1 */ { 4, s_3_1, -1, 1, 0},
-/*  2 */ { 2, s_3_2, -1, 3, 0}
+{ 2, s_3_0, -1, 2, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 2, s_3_2, -1, 3, 0}
 };
 
 static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' };
@@ -136,49 +136,49 @@ static const symbol s_4_42[3] = { 'i', 't', 0xE9 };
 
 static const struct among a_4[43] =
 {
-/*  0 */ { 4, s_4_0, -1, 1, 0},
-/*  1 */ { 6, s_4_1, -1, 2, 0},
-/*  2 */ { 4, s_4_2, -1, 1, 0},
-/*  3 */ { 4, s_4_3, -1, 5, 0},
-/*  4 */ { 5, s_4_4, -1, 3, 0},
-/*  5 */ { 4, s_4_5, -1, 1, 0},
-/*  6 */ { 4, s_4_6, -1, 1, 0},
-/*  7 */ { 4, s_4_7, -1, 11, 0},
-/*  8 */ { 4, s_4_8, -1, 1, 0},
-/*  9 */ { 3, s_4_9, -1, 8, 0},
-/* 10 */ { 2, s_4_10, -1, 8, 0},
-/* 11 */ { 5, s_4_11, -1, 4, 0},
-/* 12 */ { 5, s_4_12, -1, 2, 0},
-/* 13 */ { 5, s_4_13, -1, 4, 0},
-/* 14 */ { 5, s_4_14, -1, 2, 0},
-/* 15 */ { 5, s_4_15, -1, 1, 0},
-/* 16 */ { 7, s_4_16, -1, 2, 0},
-/* 17 */ { 5, s_4_17, -1, 1, 0},
-/* 18 */ { 5, s_4_18, -1, 5, 0},
-/* 19 */ { 6, s_4_19, -1, 3, 0},
-/* 20 */ { 5, s_4_20, -1, 1, 0},
-/* 21 */ { 5, s_4_21, -1, 1, 0},
-/* 22 */ { 5, s_4_22, -1, 11, 0},
-/* 23 */ { 5, s_4_23, -1, 1, 0},
-/* 24 */ { 4, s_4_24, -1, 8, 0},
-/* 25 */ { 3, s_4_25, -1, 8, 0},
-/* 26 */ { 6, s_4_26, -1, 4, 0},
-/* 27 */ { 6, s_4_27, -1, 2, 0},
-/* 28 */ { 6, s_4_28, -1, 4, 0},
-/* 29 */ { 6, s_4_29, -1, 2, 0},
-/* 30 */ { 5, s_4_30, -1, 15, 0},
-/* 31 */ { 6, s_4_31, 30, 6, 0},
-/* 32 */ { 9, s_4_32, 31, 12, 0},
-/* 33 */ { 4, s_4_33, -1, 7, 0},
-/* 34 */ { 4, s_4_34, -1, 15, 0},
-/* 35 */ { 5, s_4_35, 34, 6, 0},
-/* 36 */ { 8, s_4_36, 35, 12, 0},
-/* 37 */ { 6, s_4_37, 34, 13, 0},
-/* 38 */ { 6, s_4_38, 34, 14, 0},
-/* 39 */ { 3, s_4_39, -1, 10, 0},
-/* 40 */ { 4, s_4_40, 39, 9, 0},
-/* 41 */ { 3, s_4_41, -1, 1, 0},
-/* 42 */ { 3, s_4_42, -1, 7, 0}
+{ 4, s_4_0, -1, 1, 0},
+{ 6, s_4_1, -1, 2, 0},
+{ 4, s_4_2, -1, 1, 0},
+{ 4, s_4_3, -1, 5, 0},
+{ 5, s_4_4, -1, 3, 0},
+{ 4, s_4_5, -1, 1, 0},
+{ 4, s_4_6, -1, 1, 0},
+{ 4, s_4_7, -1, 11, 0},
+{ 4, s_4_8, -1, 1, 0},
+{ 3, s_4_9, -1, 8, 0},
+{ 2, s_4_10, -1, 8, 0},
+{ 5, s_4_11, -1, 4, 0},
+{ 5, s_4_12, -1, 2, 0},
+{ 5, s_4_13, -1, 4, 0},
+{ 5, s_4_14, -1, 2, 0},
+{ 5, s_4_15, -1, 1, 0},
+{ 7, s_4_16, -1, 2, 0},
+{ 5, s_4_17, -1, 1, 0},
+{ 5, s_4_18, -1, 5, 0},
+{ 6, s_4_19, -1, 3, 0},
+{ 5, s_4_20, -1, 1, 0},
+{ 5, s_4_21, -1, 1, 0},
+{ 5, s_4_22, -1, 11, 0},
+{ 5, s_4_23, -1, 1, 0},
+{ 4, s_4_24, -1, 8, 0},
+{ 3, s_4_25, -1, 8, 0},
+{ 6, s_4_26, -1, 4, 0},
+{ 6, s_4_27, -1, 2, 0},
+{ 6, s_4_28, -1, 4, 0},
+{ 6, s_4_29, -1, 2, 0},
+{ 5, s_4_30, -1, 15, 0},
+{ 6, s_4_31, 30, 6, 0},
+{ 9, s_4_32, 31, 12, 0},
+{ 4, s_4_33, -1, 7, 0},
+{ 4, s_4_34, -1, 15, 0},
+{ 5, s_4_35, 34, 6, 0},
+{ 8, s_4_36, 35, 12, 0},
+{ 6, s_4_37, 34, 13, 0},
+{ 6, s_4_38, 34, 14, 0},
+{ 3, s_4_39, -1, 10, 0},
+{ 4, s_4_40, 39, 9, 0},
+{ 3, s_4_41, -1, 1, 0},
+{ 3, s_4_42, -1, 7, 0}
 };
 
 static const symbol s_5_0[3] = { 'i', 'r', 'a' };
@@ -219,41 +219,41 @@ static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' };
 
 static const struct among a_5[35] =
 {
-/*  0 */ { 3, s_5_0, -1, 1, 0},
-/*  1 */ { 2, s_5_1, -1, 1, 0},
-/*  2 */ { 4, s_5_2, -1, 1, 0},
-/*  3 */ { 7, s_5_3, -1, 1, 0},
-/*  4 */ { 1, s_5_4, -1, 1, 0},
-/*  5 */ { 4, s_5_5, 4, 1, 0},
-/*  6 */ { 2, s_5_6, -1, 1, 0},
-/*  7 */ { 4, s_5_7, -1, 1, 0},
-/*  8 */ { 3, s_5_8, -1, 1, 0},
-/*  9 */ { 4, s_5_9, -1, 1, 0},
-/* 10 */ { 5, s_5_10, -1, 1, 0},
-/* 11 */ { 8, s_5_11, -1, 1, 0},
-/* 12 */ { 4, s_5_12, -1, 1, 0},
-/* 13 */ { 2, s_5_13, -1, 1, 0},
-/* 14 */ { 5, s_5_14, 13, 1, 0},
-/* 15 */ { 6, s_5_15, 13, 1, 0},
-/* 16 */ { 6, s_5_16, -1, 1, 0},
-/* 17 */ { 7, s_5_17, -1, 1, 0},
-/* 18 */ { 5, s_5_18, -1, 1, 0},
-/* 19 */ { 6, s_5_19, -1, 1, 0},
-/* 20 */ { 7, s_5_20, -1, 1, 0},
-/* 21 */ { 2, s_5_21, -1, 1, 0},
-/* 22 */ { 5, s_5_22, 21, 1, 0},
-/* 23 */ { 6, s_5_23, 21, 1, 0},
-/* 24 */ { 6, s_5_24, -1, 1, 0},
-/* 25 */ { 7, s_5_25, -1, 1, 0},
-/* 26 */ { 8, s_5_26, -1, 1, 0},
-/* 27 */ { 5, s_5_27, -1, 1, 0},
-/* 28 */ { 6, s_5_28, -1, 1, 0},
-/* 29 */ { 5, s_5_29, -1, 1, 0},
-/* 30 */ { 2, s_5_30, -1, 1, 0},
-/* 31 */ { 5, s_5_31, -1, 1, 0},
-/* 32 */ { 6, s_5_32, -1, 1, 0},
-/* 33 */ { 4, s_5_33, -1, 1, 0},
-/* 34 */ { 5, s_5_34, -1, 1, 0}
+{ 3, s_5_0, -1, 1, 0},
+{ 2, s_5_1, -1, 1, 0},
+{ 4, s_5_2, -1, 1, 0},
+{ 7, s_5_3, -1, 1, 0},
+{ 1, s_5_4, -1, 1, 0},
+{ 4, s_5_5, 4, 1, 0},
+{ 2, s_5_6, -1, 1, 0},
+{ 4, s_5_7, -1, 1, 0},
+{ 3, s_5_8, -1, 1, 0},
+{ 4, s_5_9, -1, 1, 0},
+{ 5, s_5_10, -1, 1, 0},
+{ 8, s_5_11, -1, 1, 0},
+{ 4, s_5_12, -1, 1, 0},
+{ 2, s_5_13, -1, 1, 0},
+{ 5, s_5_14, 13, 1, 0},
+{ 6, s_5_15, 13, 1, 0},
+{ 6, s_5_16, -1, 1, 0},
+{ 7, s_5_17, -1, 1, 0},
+{ 5, s_5_18, -1, 1, 0},
+{ 6, s_5_19, -1, 1, 0},
+{ 7, s_5_20, -1, 1, 0},
+{ 2, s_5_21, -1, 1, 0},
+{ 5, s_5_22, 21, 1, 0},
+{ 6, s_5_23, 21, 1, 0},
+{ 6, s_5_24, -1, 1, 0},
+{ 7, s_5_25, -1, 1, 0},
+{ 8, s_5_26, -1, 1, 0},
+{ 5, s_5_27, -1, 1, 0},
+{ 6, s_5_28, -1, 1, 0},
+{ 5, s_5_29, -1, 1, 0},
+{ 2, s_5_30, -1, 1, 0},
+{ 5, s_5_31, -1, 1, 0},
+{ 6, s_5_32, -1, 1, 0},
+{ 4, s_5_33, -1, 1, 0},
+{ 5, s_5_34, -1, 1, 0}
 };
 
 static const symbol s_6_0[1] = { 'a' };
@@ -297,44 +297,44 @@ static const symbol s_6_37[1] = { 0xE9 };
 
 static const struct among a_6[38] =
 {
-/*  0 */ { 1, s_6_0, -1, 3, 0},
-/*  1 */ { 3, s_6_1, 0, 2, 0},
-/*  2 */ { 4, s_6_2, -1, 3, 0},
-/*  3 */ { 4, s_6_3, -1, 3, 0},
-/*  4 */ { 2, s_6_4, -1, 2, 0},
-/*  5 */ { 2, s_6_5, -1, 3, 0},
-/*  6 */ { 4, s_6_6, 5, 2, 0},
-/*  7 */ { 2, s_6_7, -1, 2, 0},
-/*  8 */ { 2, s_6_8, -1, 3, 0},
-/*  9 */ { 4, s_6_9, 8, 2, 0},
-/* 10 */ { 4, s_6_10, -1, 3, 0},
-/* 11 */ { 5, s_6_11, -1, 3, 0},
-/* 12 */ { 5, s_6_12, -1, 3, 0},
-/* 13 */ { 4, s_6_13, -1, 3, 0},
-/* 14 */ { 3, s_6_14, -1, 2, 0},
-/* 15 */ { 3, s_6_15, -1, 3, 0},
-/* 16 */ { 5, s_6_16, 15, 2, 0},
-/* 17 */ { 4, s_6_17, -1, 1, 0},
-/* 18 */ { 6, s_6_18, 17, 2, 0},
-/* 19 */ { 7, s_6_19, 17, 3, 0},
-/* 20 */ { 5, s_6_20, -1, 2, 0},
-/* 21 */ { 4, s_6_21, -1, 3, 0},
-/* 22 */ { 2, s_6_22, -1, 2, 0},
-/* 23 */ { 3, s_6_23, -1, 3, 0},
-/* 24 */ { 5, s_6_24, 23, 2, 0},
-/* 25 */ { 3, s_6_25, -1, 3, 0},
-/* 26 */ { 5, s_6_26, -1, 3, 0},
-/* 27 */ { 7, s_6_27, 26, 2, 0},
-/* 28 */ { 5, s_6_28, -1, 2, 0},
-/* 29 */ { 6, s_6_29, -1, 3, 0},
-/* 30 */ { 5, s_6_30, -1, 2, 0},
-/* 31 */ { 2, s_6_31, -1, 3, 0},
-/* 32 */ { 2, s_6_32, -1, 2, 0},
-/* 33 */ { 3, s_6_33, 32, 2, 0},
-/* 34 */ { 5, s_6_34, 33, 2, 0},
-/* 35 */ { 6, s_6_35, 33, 3, 0},
-/* 36 */ { 4, s_6_36, 32, 2, 0},
-/* 37 */ { 1, s_6_37, -1, 2, 0}
+{ 1, s_6_0, -1, 3, 0},
+{ 3, s_6_1, 0, 2, 0},
+{ 4, s_6_2, -1, 3, 0},
+{ 4, s_6_3, -1, 3, 0},
+{ 2, s_6_4, -1, 2, 0},
+{ 2, s_6_5, -1, 3, 0},
+{ 4, s_6_6, 5, 2, 0},
+{ 2, s_6_7, -1, 2, 0},
+{ 2, s_6_8, -1, 3, 0},
+{ 4, s_6_9, 8, 2, 0},
+{ 4, s_6_10, -1, 3, 0},
+{ 5, s_6_11, -1, 3, 0},
+{ 5, s_6_12, -1, 3, 0},
+{ 4, s_6_13, -1, 3, 0},
+{ 3, s_6_14, -1, 2, 0},
+{ 3, s_6_15, -1, 3, 0},
+{ 5, s_6_16, 15, 2, 0},
+{ 4, s_6_17, -1, 1, 0},
+{ 6, s_6_18, 17, 2, 0},
+{ 7, s_6_19, 17, 3, 0},
+{ 5, s_6_20, -1, 2, 0},
+{ 4, s_6_21, -1, 3, 0},
+{ 2, s_6_22, -1, 2, 0},
+{ 3, s_6_23, -1, 3, 0},
+{ 5, s_6_24, 23, 2, 0},
+{ 3, s_6_25, -1, 3, 0},
+{ 5, s_6_26, -1, 3, 0},
+{ 7, s_6_27, 26, 2, 0},
+{ 5, s_6_28, -1, 2, 0},
+{ 6, s_6_29, -1, 3, 0},
+{ 5, s_6_30, -1, 2, 0},
+{ 2, s_6_31, -1, 3, 0},
+{ 2, s_6_32, -1, 2, 0},
+{ 3, s_6_33, 32, 2, 0},
+{ 5, s_6_34, 33, 2, 0},
+{ 6, s_6_35, 33, 3, 0},
+{ 4, s_6_36, 32, 2, 0},
+{ 1, s_6_37, -1, 2, 0}
 };
 
 static const symbol s_7_0[1] = { 'e' };
@@ -346,12 +346,12 @@ static const symbol s_7_5[3] = { 'i', 'e', 'r' };
 
 static const struct among a_7[6] =
 {
-/*  0 */ { 1, s_7_0, -1, 3, 0},
-/*  1 */ { 4, s_7_1, 0, 2, 0},
-/*  2 */ { 4, s_7_2, 0, 2, 0},
-/*  3 */ { 3, s_7_3, -1, 1, 0},
-/*  4 */ { 3, s_7_4, -1, 2, 0},
-/*  5 */ { 3, s_7_5, -1, 2, 0}
+{ 1, s_7_0, -1, 3, 0},
+{ 4, s_7_1, 0, 2, 0},
+{ 4, s_7_2, 0, 2, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 3, s_7_4, -1, 2, 0},
+{ 3, s_7_5, -1, 2, 0}
 };
 
 static const symbol s_8_0[3] = { 'e', 'l', 'l' };
@@ -362,11 +362,11 @@ static const symbol s_8_4[3] = { 'e', 't', 't' };
 
 static const struct among a_8[5] =
 {
-/*  0 */ { 3, s_8_0, -1, -1, 0},
-/*  1 */ { 4, s_8_1, -1, -1, 0},
-/*  2 */ { 3, s_8_2, -1, -1, 0},
-/*  3 */ { 3, s_8_3, -1, -1, 0},
-/*  4 */ { 3, s_8_4, -1, -1, 0}
+{ 3, s_8_0, -1, -1, 0},
+{ 4, s_8_1, -1, -1, 0},
+{ 3, s_8_2, -1, -1, 0},
+{ 3, s_8_3, -1, -1, 0},
+{ 3, s_8_4, -1, -1, 0}
 };
 
 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 };
@@ -409,40 +409,39 @@ static const symbol s_32[] = { 'e' };
 static const symbol s_33[] = { 'i' };
 static const symbol s_34[] = { 'c' };
 
-static int r_prelude(struct SN_env * z) { /* forwardmode */
-/* repeat, line 38 */
-
-    while(1) {        int c1 = z->c;
-        while(1) { /* goto, line 38 */
+static int r_prelude(struct SN_env * z) {
+    while(1) {
+        int c1 = z->c;
+        while(1) {
             int c2 = z->c;
-            {   int c3 = z->c; /* or, line 44 */
-                if (in_grouping(z, g_v, 97, 251, 0)) goto lab3; /* grouping v, line 40 */
-                z->bra = z->c; /* [, line 40 */
-                {   int c4 = z->c; /* or, line 40 */
-                    if (z->c == z->l || z->p[z->c] != 'u') goto lab5; /* literal, line 40 */
+            {   int c3 = z->c;
+                if (in_grouping(z, g_v, 97, 251, 0)) goto lab3;
+                z->bra = z->c;
+                {   int c4 = z->c;
+                    if (z->c == z->l || z->p[z->c] != 'u') goto lab5;
                     z->c++;
-                    z->ket = z->c; /* ], line 40 */
-                    if (in_grouping(z, g_v, 97, 251, 0)) goto lab5; /* grouping v, line 40 */
-                    {   int ret = slice_from_s(z, 1, s_0); /* <-, line 40 */
+                    z->ket = z->c;
+                    if (in_grouping(z, g_v, 97, 251, 0)) goto lab5;
+                    {   int ret = slice_from_s(z, 1, s_0);
                         if (ret < 0) return ret;
                     }
                     goto lab4;
                 lab5:
                     z->c = c4;
-                    if (z->c == z->l || z->p[z->c] != 'i') goto lab6; /* literal, line 41 */
+                    if (z->c == z->l || z->p[z->c] != 'i') goto lab6;
                     z->c++;
-                    z->ket = z->c; /* ], line 41 */
-                    if (in_grouping(z, g_v, 97, 251, 0)) goto lab6; /* grouping v, line 41 */
-                    {   int ret = slice_from_s(z, 1, s_1); /* <-, line 41 */
+                    z->ket = z->c;
+                    if (in_grouping(z, g_v, 97, 251, 0)) goto lab6;
+                    {   int ret = slice_from_s(z, 1, s_1);
                         if (ret < 0) return ret;
                     }
                     goto lab4;
                 lab6:
                     z->c = c4;
-                    if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 42 */
+                    if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
                     z->c++;
-                    z->ket = z->c; /* ], line 42 */
-                    {   int ret = slice_from_s(z, 1, s_2); /* <-, line 42 */
+                    z->ket = z->c;
+                    {   int ret = slice_from_s(z, 1, s_2);
                         if (ret < 0) return ret;
                     }
                 }
@@ -450,44 +449,44 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
                 goto lab2;
             lab3:
                 z->c = c3;
-                z->bra = z->c; /* [, line 45 */
-                if (z->c == z->l || z->p[z->c] != 0xEB) goto lab7; /* literal, line 45 */
+                z->bra = z->c;
+                if (z->c == z->l || z->p[z->c] != 0xEB) goto lab7;
                 z->c++;
-                z->ket = z->c; /* ], line 45 */
-                {   int ret = slice_from_s(z, 2, s_3); /* <-, line 45 */
+                z->ket = z->c;
+                {   int ret = slice_from_s(z, 2, s_3);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
             lab7:
                 z->c = c3;
-                z->bra = z->c; /* [, line 47 */
-                if (z->c == z->l || z->p[z->c] != 0xEF) goto lab8; /* literal, line 47 */
+                z->bra = z->c;
+                if (z->c == z->l || z->p[z->c] != 0xEF) goto lab8;
                 z->c++;
-                z->ket = z->c; /* ], line 47 */
-                {   int ret = slice_from_s(z, 2, s_4); /* <-, line 47 */
+                z->ket = z->c;
+                {   int ret = slice_from_s(z, 2, s_4);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
             lab8:
                 z->c = c3;
-                z->bra = z->c; /* [, line 49 */
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab9; /* literal, line 49 */
+                z->bra = z->c;
+                if (z->c == z->l || z->p[z->c] != 'y') goto lab9;
                 z->c++;
-                z->ket = z->c; /* ], line 49 */
-                if (in_grouping(z, g_v, 97, 251, 0)) goto lab9; /* grouping v, line 49 */
-                {   int ret = slice_from_s(z, 1, s_5); /* <-, line 49 */
+                z->ket = z->c;
+                if (in_grouping(z, g_v, 97, 251, 0)) goto lab9;
+                {   int ret = slice_from_s(z, 1, s_5);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
             lab9:
                 z->c = c3;
-                if (z->c == z->l || z->p[z->c] != 'q') goto lab1; /* literal, line 51 */
+                if (z->c == z->l || z->p[z->c] != 'q') goto lab1;
                 z->c++;
-                z->bra = z->c; /* [, line 51 */
-                if (z->c == z->l || z->p[z->c] != 'u') goto lab1; /* literal, line 51 */
+                z->bra = z->c;
+                if (z->c == z->l || z->p[z->c] != 'u') goto lab1;
                 z->c++;
-                z->ket = z->c; /* ], line 51 */
-                {   int ret = slice_from_s(z, 1, s_6); /* <-, line 51 */
+                z->ket = z->c;
+                {   int ret = slice_from_s(z, 1, s_6);
                     if (ret < 0) return ret;
                 }
             }
@@ -497,7 +496,7 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
         lab1:
             z->c = c2;
             if (z->c >= z->l) goto lab0;
-            z->c++; /* goto, line 38 */
+            z->c++;
         }
         continue;
     lab0:
@@ -507,110 +506,109 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $pV = <integer expression>, line 56 */
-    z->I[1] = z->l; /* $p1 = <integer expression>, line 57 */
-    z->I[2] = z->l; /* $p2 = <integer expression>, line 58 */
-    {   int c1 = z->c; /* do, line 60 */
-        {   int c2 = z->c; /* or, line 62 */
-            if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */
-            if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */
+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, 251, 0)) goto lab2;
+            if (in_grouping(z, g_v, 97, 251, 0)) goto lab2;
             if (z->c >= z->l) goto lab2;
-            z->c++; /* next, line 61 */
+            z->c++;
             goto lab1;
         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; /* among, line 63 */
+            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;
             goto lab1;
         lab3:
             z->c = c2;
             if (z->c >= z->l) goto lab0;
-            z->c++; /* next, line 70 */
-            {    /* gopast */ /* grouping v, line 70 */
+            z->c++;
+            {   
                 int ret = out_grouping(z, g_v, 97, 251, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
             }
         }
     lab1:
-        z->I[0] = z->c; /* setmark pV, line 71 */
+        z->I[2] = z->c;
     lab0:
         z->c = c1;
     }
-    {   int c3 = z->c; /* do, line 73 */
-        {    /* gopast */ /* grouping v, line 74 */
+    {   int c3 = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 74 */
+        {   
             int ret = in_grouping(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p1, line 74 */
-        {    /* gopast */ /* grouping v, line 75 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 75 */
+        {   
             int ret = in_grouping(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        z->I[2] = z->c; /* setmark p2, line 75 */
+        z->I[0] = z->c;
     lab4:
         z->c = c3;
     }
     return 1;
 }
 
-static int r_postlude(struct SN_env * z) { /* forwardmode */
+static int r_postlude(struct SN_env * z) {
     int among_var;
-/* repeat, line 79 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 81 */
-        if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else /* substring, line 81 */
+    while(1) {
+        int c1 = z->c;
+        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; /* ], line 81 */
-        switch (among_var) { /* among, line 81 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_7); /* <-, line 82 */
+                {   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); /* <-, line 83 */
+                {   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); /* <-, line 84 */
+                {   int ret = slice_from_s(z, 1, s_9);
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = slice_from_s(z, 1, s_10); /* <-, line 85 */
+                {   int ret = slice_from_s(z, 1, s_10);
                     if (ret < 0) return ret;
                 }
                 break;
             case 5:
-                {   int ret = slice_from_s(z, 1, s_11); /* <-, line 86 */
+                {   int ret = slice_from_s(z, 1, s_11);
                     if (ret < 0) return ret;
                 }
                 break;
             case 6:
-                {   int ret = slice_del(z); /* delete, line 87 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 7:
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 88 */
+                z->c++;
                 break;
         }
         continue;
@@ -621,59 +619,59 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_RV(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 94 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 95 */
+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) { /* backwardmode */
-    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 96 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
+static int r_standard_suffix(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 99 */
-    among_var = find_among_b(z, a_4, 43); /* substring, line 99 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_4, 43);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 99 */
-    switch (among_var) { /* among, line 99 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R2(z); /* call R2, line 103 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 103 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 106 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 106 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m1 = z->l - z->c; (void)m1; /* try, line 107 */
-                z->ket = z->c; /* [, line 107 */
-                if (!(eq_s_b(z, 2, s_12))) { z->c = z->l - m1; goto lab0; } /* literal, line 107 */
-                z->bra = z->c; /* ], line 107 */
-                {   int m2 = z->l - z->c; (void)m2; /* or, line 107 */
-                    {   int ret = r_R2(z); /* call R2, line 107 */
+            {   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; }
+                z->bra = z->c;
+                {   int m2 = z->l - z->c; (void)m2;
+                    {   int ret = r_R2(z);
                         if (ret == 0) goto lab2;
                         if (ret < 0) return ret;
                     }
-                    {   int ret = slice_del(z); /* delete, line 107 */
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                     goto lab1;
                 lab2:
                     z->c = z->l - m2;
-                    {   int ret = slice_from_s(z, 3, s_13); /* <-, line 107 */
+                    {   int ret = slice_from_s(z, 3, s_13);
                         if (ret < 0) return ret;
                     }
                 }
@@ -683,98 +681,98 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 3:
-            {   int ret = r_R2(z); /* call R2, line 111 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_14); /* <-, line 111 */
+            {   int ret = slice_from_s(z, 3, s_14);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = r_R2(z); /* call R2, line 114 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 1, s_15); /* <-, line 114 */
+            {   int ret = slice_from_s(z, 1, s_15);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = r_R2(z); /* call R2, line 117 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_16); /* <-, line 117 */
+            {   int ret = slice_from_s(z, 3, s_16);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = r_RV(z); /* call RV, line 121 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 121 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m3 = z->l - z->c; (void)m3; /* try, line 122 */
-                z->ket = z->c; /* [, line 123 */
-                among_var = find_among_b(z, a_2, 6); /* substring, line 123 */
+            {   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; }
-                z->bra = z->c; /* ], line 123 */
-                switch (among_var) { /* among, line 123 */
+                z->bra = z->c;
+                switch (among_var) {
                     case 1:
-                        {   int ret = r_R2(z); /* call R2, line 124 */
+                        {   int ret = r_R2(z);
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 124 */
+                        {   int ret = slice_del(z);
                             if (ret < 0) return ret;
                         }
-                        z->ket = z->c; /* [, line 124 */
-                        if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m3; goto lab3; } /* literal, line 124 */
-                        z->bra = z->c; /* ], line 124 */
-                        {   int ret = r_R2(z); /* call R2, line 124 */
+                        z->ket = z->c;
+                        if (!(eq_s_b(z, 2, s_17))) { 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; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 124 */
+                        {   int ret = slice_del(z);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 2:
-                        {   int m4 = z->l - z->c; (void)m4; /* or, line 125 */
-                            {   int ret = r_R2(z); /* call R2, line 125 */
+                        {   int m4 = z->l - z->c; (void)m4;
+                            {   int ret = r_R2(z);
                                 if (ret == 0) goto lab5;
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_del(z); /* delete, line 125 */
+                            {   int ret = slice_del(z);
                                 if (ret < 0) return ret;
                             }
                             goto lab4;
                         lab5:
                             z->c = z->l - m4;
-                            {   int ret = r_R1(z); /* call R1, line 125 */
+                            {   int ret = r_R1(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); /* <-, line 125 */
+                            {   int ret = slice_from_s(z, 3, s_18);
                                 if (ret < 0) return ret;
                             }
                         }
                     lab4:
                         break;
                     case 3:
-                        {   int ret = r_R2(z); /* call R2, line 127 */
+                        {   int ret = r_R2(z);
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 127 */
+                        {   int ret = slice_del(z);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 4:
-                        {   int ret = r_RV(z); /* call RV, line 129 */
+                        {   int ret = r_RV(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); /* <-, line 129 */
+                        {   int ret = slice_from_s(z, 1, s_19);
                             if (ret < 0) return ret;
                         }
                         break;
@@ -784,61 +782,61 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 7:
-            {   int ret = r_R2(z); /* call R2, line 136 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 136 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m5 = z->l - z->c; (void)m5; /* try, line 137 */
-                z->ket = z->c; /* [, line 138 */
-                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; } /* substring, line 138 */
+            {   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 || !((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; }
-                z->bra = z->c; /* ], line 138 */
-                switch (among_var) { /* among, line 138 */
+                z->bra = z->c;
+                switch (among_var) {
                     case 1:
-                        {   int m6 = z->l - z->c; (void)m6; /* or, line 139 */
-                            {   int ret = r_R2(z); /* call R2, line 139 */
+                        {   int m6 = z->l - z->c; (void)m6;
+                            {   int ret = r_R2(z);
                                 if (ret == 0) goto lab8;
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_del(z); /* delete, line 139 */
+                            {   int ret = slice_del(z);
                                 if (ret < 0) return ret;
                             }
                             goto lab7;
                         lab8:
                             z->c = z->l - m6;
-                            {   int ret = slice_from_s(z, 3, s_20); /* <-, line 139 */
+                            {   int ret = slice_from_s(z, 3, s_20);
                                 if (ret < 0) return ret;
                             }
                         }
                     lab7:
                         break;
                     case 2:
-                        {   int m7 = z->l - z->c; (void)m7; /* or, line 140 */
-                            {   int ret = r_R2(z); /* call R2, line 140 */
+                        {   int m7 = z->l - z->c; (void)m7;
+                            {   int ret = r_R2(z);
                                 if (ret == 0) goto lab10;
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_del(z); /* delete, line 140 */
+                            {   int ret = slice_del(z);
                                 if (ret < 0) return ret;
                             }
                             goto lab9;
                         lab10:
                             z->c = z->l - m7;
-                            {   int ret = slice_from_s(z, 3, s_21); /* <-, line 140 */
+                            {   int ret = slice_from_s(z, 3, s_21);
                                 if (ret < 0) return ret;
                             }
                         }
                     lab9:
                         break;
                     case 3:
-                        {   int ret = r_R2(z); /* call R2, line 141 */
+                        {   int ret = r_R2(z);
                             if (ret == 0) { z->c = z->l - m5; goto lab6; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 141 */
+                        {   int ret = slice_del(z);
                             if (ret < 0) return ret;
                         }
                         break;
@@ -848,38 +846,38 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 8:
-            {   int ret = r_R2(z); /* call R2, line 148 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 148 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m8 = z->l - z->c; (void)m8; /* try, line 149 */
-                z->ket = z->c; /* [, line 149 */
-                if (!(eq_s_b(z, 2, s_22))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */
-                z->bra = z->c; /* ], line 149 */
-                {   int ret = r_R2(z); /* call R2, line 149 */
+            {   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; }
+                z->bra = z->c;
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m8; goto lab11; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 149 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                z->ket = z->c; /* [, line 149 */
-                if (!(eq_s_b(z, 2, s_23))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */
-                z->bra = z->c; /* ], line 149 */
-                {   int m9 = z->l - z->c; (void)m9; /* or, line 149 */
-                    {   int ret = r_R2(z); /* call R2, line 149 */
+                z->ket = z->c;
+                if (!(eq_s_b(z, 2, s_23))) { z->c = z->l - m8; goto lab11; }
+                z->bra = z->c;
+                {   int m9 = z->l - z->c; (void)m9;
+                    {   int ret = r_R2(z);
                         if (ret == 0) goto lab13;
                         if (ret < 0) return ret;
                     }
-                    {   int ret = slice_del(z); /* delete, line 149 */
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                     goto lab12;
                 lab13:
                     z->c = z->l - m9;
-                    {   int ret = slice_from_s(z, 3, s_24); /* <-, line 149 */
+                    {   int ret = slice_from_s(z, 3, s_24);
                         if (ret < 0) return ret;
                     }
                 }
@@ -889,101 +887,101 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 3, s_25); /* <-, line 151 */
+            {   int ret = slice_from_s(z, 3, s_25);
                 if (ret < 0) return ret;
             }
             break;
         case 10:
-            {   int ret = r_R1(z); /* call R1, line 152 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_26); /* <-, line 152 */
+            {   int ret = slice_from_s(z, 2, s_26);
                 if (ret < 0) return ret;
             }
             break;
         case 11:
-            {   int m10 = z->l - z->c; (void)m10; /* or, line 154 */
-                {   int ret = r_R2(z); /* call R2, line 154 */
+            {   int m10 = z->l - z->c; (void)m10;
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab15;
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 154 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 goto lab14;
             lab15:
                 z->c = z->l - m10;
-                {   int ret = r_R1(z); /* call R1, line 154 */
+                {   int ret = r_R1(z);
                     if (ret <= 0) return ret;
                 }
-                {   int ret = slice_from_s(z, 3, s_27); /* <-, line 154 */
+                {   int ret = slice_from_s(z, 3, s_27);
                     if (ret < 0) return ret;
                 }
             }
         lab14:
             break;
         case 12:
-            {   int ret = r_R1(z); /* call R1, line 157 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            if (out_grouping_b(z, g_v, 97, 251, 0)) return 0; /* non v, line 157 */
-            {   int ret = slice_del(z); /* delete, line 157 */
+            if (out_grouping_b(z, g_v, 97, 251, 0)) return 0;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 13:
-            {   int ret = r_RV(z); /* call RV, line 162 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_28); /* <-, line 162 */
+            {   int ret = slice_from_s(z, 3, s_28);
                 if (ret < 0) return ret;
             }
-            return 0; /* fail, line 162 */
+            return 0;
             break;
         case 14:
-            {   int ret = r_RV(z); /* call RV, line 163 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_29); /* <-, line 163 */
+            {   int ret = slice_from_s(z, 3, s_29);
                 if (ret < 0) return ret;
             }
-            return 0; /* fail, line 163 */
+            return 0;
             break;
         case 15:
-            {   int m_test11 = z->l - z->c; /* test, line 165 */
-                if (in_grouping_b(z, g_v, 97, 251, 0)) return 0; /* grouping v, line 165 */
-                {   int ret = r_RV(z); /* call RV, line 165 */
+            {   int m_test11 = z->l - z->c;
+                if (in_grouping_b(z, g_v, 97, 251, 0)) return 0;
+                {   int ret = r_RV(z);
                     if (ret <= 0) return ret;
                 }
                 z->c = z->l - m_test11;
             }
-            {   int ret = slice_del(z); /* delete, line 165 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            return 0; /* fail, line 165 */
+            return 0;
             break;
     }
     return 1;
 }
 
-static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */
+static int r_i_verb_suffix(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 170 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 171 */
-        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; } /* substring, line 171 */
+    {   int mlimit1;
+        if (z->c < z->I[2]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 171 */
-        {   int m2 = z->l - z->c; (void)m2; /* not, line 177 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0; /* literal, line 177 */
+        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;
             z->c--;
             { z->lb = mlimit1; return 0; }
         lab0:
             z->c = z->l - m2;
         }
-        if (out_grouping_b(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } /* non v, line 177 */
-        {   int ret = slice_del(z); /* delete, line 177 */
+        if (out_grouping_b(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; }
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
         z->lb = mlimit1;
@@ -991,41 +989,41 @@ static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
+static int r_verb_suffix(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 181 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 182 */
-        among_var = find_among_b(z, a_6, 38); /* substring, line 182 */
+    {   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_6, 38);
         if (!(among_var)) { z->lb = mlimit1; return 0; }
-        z->bra = z->c; /* ], line 182 */
-        switch (among_var) { /* among, line 182 */
+        z->bra = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = r_R2(z); /* call R2, line 184 */
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->lb = mlimit1; return 0; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 184 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_del(z); /* delete, line 192 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_del(z); /* delete, line 197 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m2 = z->l - z->c; (void)m2; /* try, line 198 */
-                    z->ket = z->c; /* [, line 198 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } /* literal, line 198 */
+                {   int m2 = z->l - z->c; (void)m2;
+                    z->ket = z->c;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; }
                     z->c--;
-                    z->bra = z->c; /* ], line 198 */
-                    {   int ret = slice_del(z); /* delete, line 198 */
+                    z->bra = z->c;
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                 lab0:
@@ -1038,66 +1036,66 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
+static int r_residual_suffix(struct SN_env * z) {
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* try, line 206 */
-        z->ket = z->c; /* [, line 206 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } /* literal, line 206 */
+    {   int m1 = z->l - z->c; (void)m1;
+        z->ket = z->c;
+        if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; }
         z->c--;
-        z->bra = z->c; /* ], line 206 */
-        {   int m_test2 = z->l - z->c; /* test, line 206 */
-            {   int m3 = z->l - z->c; (void)m3; /* or, line 206 */
-                if (!(eq_s_b(z, 2, s_30))) goto lab2; /* literal, line 206 */
+        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;
                 goto lab1;
             lab2:
                 z->c = z->l - m3;
-                if (out_grouping_b(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } /* non keep_with_s, line 206 */
+                if (out_grouping_b(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; }
             }
         lab1:
             z->c = z->l - m_test2;
         }
-        {   int ret = slice_del(z); /* delete, line 206 */
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
     lab0:
         ;
     }
 
-    {   int mlimit4; /* setlimit, line 207 */
-        if (z->c < z->I[0]) return 0;
-        mlimit4 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 208 */
-        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; } /* substring, line 208 */
+    {   int mlimit4;
+        if (z->c < z->I[2]) return 0;
+        mlimit4 = z->lb; z->lb = z->I[2];
+        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; }
-        z->bra = z->c; /* ], line 208 */
-        switch (among_var) { /* among, line 208 */
+        z->bra = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = r_R2(z); /* call R2, line 209 */
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->lb = mlimit4; return 0; }
                     if (ret < 0) return ret;
                 }
-                {   int m5 = z->l - z->c; (void)m5; /* or, line 209 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4; /* literal, line 209 */
+                {   int m5 = z->l - z->c; (void)m5;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4;
                     z->c--;
                     goto lab3;
                 lab4:
                     z->c = z->l - m5;
-                    if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; } /* literal, line 209 */
+                    if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; }
                     z->c--;
                 }
             lab3:
-                {   int ret = slice_del(z); /* delete, line 209 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_31); /* <-, line 211 */
+                {   int ret = slice_from_s(z, 1, s_31);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_del(z); /* delete, line 212 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -1107,25 +1105,26 @@ static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_un_double(struct SN_env * z) { /* backwardmode */
-    {   int m_test1 = z->l - z->c; /* test, line 218 */
-        if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 218 */
+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;
         z->c = z->l - m_test1;
     }
-    z->ket = z->c; /* [, line 218 */
+    z->ket = z->c;
     if (z->c <= z->lb) return 0;
-    z->c--; /* next, line 218 */
-    z->bra = z->c; /* ], line 218 */
-    {   int ret = slice_del(z); /* delete, line 218 */
+    z->c--;
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_un_accent(struct SN_env * z) { /* backwardmode */
+static int r_un_accent(struct SN_env * z) {
     {   int i = 1;
-        while(1) {            if (out_grouping_b(z, g_v, 97, 251, 0)) goto lab0; /* non v, line 222 */
+        while(1) {
+            if (out_grouping_b(z, g_v, 97, 251, 0)) goto lab0;
             i--;
             continue;
         lab0:
@@ -1133,78 +1132,78 @@ static int r_un_accent(struct SN_env * z) { /* backwardmode */
         }
         if (i > 0) return 0;
     }
-    z->ket = z->c; /* [, line 223 */
-    {   int m1 = z->l - z->c; (void)m1; /* or, line 223 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 0xE9) goto lab2; /* literal, line 223 */
+    z->ket = z->c;
+    {   int m1 = z->l - z->c; (void)m1;
+        if (z->c <= z->lb || z->p[z->c - 1] != 0xE9) goto lab2;
         z->c--;
         goto lab1;
     lab2:
         z->c = z->l - m1;
-        if (z->c <= z->lb || z->p[z->c - 1] != 0xE8) return 0; /* literal, line 223 */
+        if (z->c <= z->lb || z->p[z->c - 1] != 0xE8) return 0;
         z->c--;
     }
 lab1:
-    z->bra = z->c; /* ], line 223 */
-    {   int ret = slice_from_s(z, 1, s_32); /* <-, line 223 */
+    z->bra = z->c;
+    {   int ret = slice_from_s(z, 1, s_32);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-extern int french_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 229 */
-        {   int ret = r_prelude(z); /* call prelude, line 229 */
+extern int french_ISO_8859_1_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_prelude(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    /* do, line 230 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 230 */
+    
+    {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 231 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 233 */
-        {   int m3 = z->l - z->c; (void)m3; /* or, line 243 */
-            {   int m4 = z->l - z->c; (void)m4; /* and, line 239 */
-                {   int m5 = z->l - z->c; (void)m5; /* or, line 235 */
-                    {   int ret = r_standard_suffix(z); /* call standard_suffix, line 235 */
+    {   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 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_i_verb_suffix(z); /* call i_verb_suffix, line 236 */
+                    {   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;
-                    {   int ret = r_verb_suffix(z); /* call verb_suffix, line 237 */
+                    {   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; /* try, line 240 */
-                    z->ket = z->c; /* [, line 240 */
-                    {   int m7 = z->l - z->c; (void)m7; /* or, line 240 */
-                        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8; /* literal, line 240 */
+                {   int m6 = z->l - z->c; (void)m6;
+                    z->ket = z->c;
+                    {   int m7 = z->l - z->c; (void)m7;
+                        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8;
                         z->c--;
-                        z->bra = z->c; /* ], line 240 */
-                        {   int ret = slice_from_s(z, 1, s_33); /* <-, line 240 */
+                        z->bra = z->c;
+                        {   int ret = slice_from_s(z, 1, s_33);
                             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; } /* literal, line 241 */
+                        if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m6; goto lab6; }
                         z->c--;
-                        z->bra = z->c; /* ], line 241 */
-                        {   int ret = slice_from_s(z, 1, s_34); /* <-, line 241 */
+                        z->bra = z->c;
+                        {   int ret = slice_from_s(z, 1, s_34);
                             if (ret < 0) return ret;
                         }
                     }
@@ -1216,7 +1215,7 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
             goto lab1;
         lab2:
             z->c = z->l - m3;
-            {   int ret = r_residual_suffix(z); /* call residual_suffix, line 244 */
+            {   int ret = r_residual_suffix(z);
                 if (ret == 0) goto lab0;
                 if (ret < 0) return ret;
             }
@@ -1225,21 +1224,21 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     lab0:
         z->c = z->l - m2;
     }
-    {   int m8 = z->l - z->c; (void)m8; /* do, line 249 */
-        {   int ret = r_un_double(z); /* call un_double, line 249 */
+    {   int m8 = z->l - z->c; (void)m8;
+        {   int ret = r_un_double(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m8;
     }
-    {   int m9 = z->l - z->c; (void)m9; /* do, line 250 */
-        {   int ret = r_un_accent(z); /* call un_accent, line 250 */
+    {   int m9 = z->l - z->c; (void)m9;
+        {   int ret = r_un_accent(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m9;
     }
     z->c = z->lb;
-    {   int c10 = z->c; /* do, line 252 */
-        {   int ret = r_postlude(z); /* call postlude, line 252 */
+    {   int c10 = z->c;
+        {   int ret = r_postlude(z);
             if (ret < 0) return ret;
         }
         z->c = c10;
@@ -1247,7 +1246,7 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * french_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
+extern struct SN_env * french_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
 
 extern void french_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 48d6fbc294a1c44d61726e11b5648d6c69163256..5c5cfb6e80a076570e35a8e9726471c579e351d5 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -35,12 +35,12 @@ static const symbol s_0_5[1] = { 0xFC };
 
 static const struct among a_0[6] =
 {
-/*  0 */ { 0, 0, -1, 5, 0},
-/*  1 */ { 1, s_0_1, 0, 2, 0},
-/*  2 */ { 1, s_0_2, 0, 1, 0},
-/*  3 */ { 1, s_0_3, 0, 3, 0},
-/*  4 */ { 1, s_0_4, 0, 4, 0},
-/*  5 */ { 1, s_0_5, 0, 2, 0}
+{ 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}
 };
 
 static const symbol s_1_0[1] = { 'e' };
@@ -53,13 +53,13 @@ static const symbol s_1_6[2] = { 'e', 's' };
 
 static const struct among a_1[7] =
 {
-/*  0 */ { 1, s_1_0, -1, 2, 0},
-/*  1 */ { 2, s_1_1, -1, 1, 0},
-/*  2 */ { 2, s_1_2, -1, 2, 0},
-/*  3 */ { 3, s_1_3, -1, 1, 0},
-/*  4 */ { 2, s_1_4, -1, 1, 0},
-/*  5 */ { 1, s_1_5, -1, 3, 0},
-/*  6 */ { 2, s_1_6, 5, 2, 0}
+{ 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}
 };
 
 static const symbol s_2_0[2] = { 'e', 'n' };
@@ -69,10 +69,10 @@ static const symbol s_2_3[3] = { 'e', 's', 't' };
 
 static const struct among a_2[4] =
 {
-/*  0 */ { 2, s_2_0, -1, 1, 0},
-/*  1 */ { 2, s_2_1, -1, 1, 0},
-/*  2 */ { 2, s_2_2, -1, 2, 0},
-/*  3 */ { 3, s_2_3, 2, 1, 0}
+{ 2, s_2_0, -1, 1, 0},
+{ 2, s_2_1, -1, 1, 0},
+{ 2, s_2_2, -1, 2, 0},
+{ 3, s_2_3, 2, 1, 0}
 };
 
 static const symbol s_3_0[2] = { 'i', 'g' };
@@ -80,8 +80,8 @@ static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
 
 static const struct among a_3[2] =
 {
-/*  0 */ { 2, s_3_0, -1, 1, 0},
-/*  1 */ { 4, s_3_1, -1, 1, 0}
+{ 2, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0}
 };
 
 static const symbol s_4_0[3] = { 'e', 'n', 'd' };
@@ -95,14 +95,14 @@ static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
 
 static const struct among a_4[8] =
 {
-/*  0 */ { 3, s_4_0, -1, 1, 0},
-/*  1 */ { 2, s_4_1, -1, 2, 0},
-/*  2 */ { 3, s_4_2, -1, 1, 0},
-/*  3 */ { 4, s_4_3, -1, 3, 0},
-/*  4 */ { 4, s_4_4, -1, 2, 0},
-/*  5 */ { 2, s_4_5, -1, 2, 0},
-/*  6 */ { 4, s_4_6, -1, 3, 0},
-/*  7 */ { 4, s_4_7, -1, 4, 0}
+{ 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}
 };
 
 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 };
@@ -123,24 +123,23 @@ static const symbol s_8[] = { 'i', 'g' };
 static const symbol s_9[] = { 'e', 'r' };
 static const symbol s_10[] = { 'e', 'n' };
 
-static int r_prelude(struct SN_env * z) { /* forwardmode */
-    {   int c_test1 = z->c; /* test, line 35 */
-/* repeat, line 35 */
-
-        while(1) {            int c2 = z->c;
-            {   int c3 = z->c; /* or, line 38 */
-                z->bra = z->c; /* [, line 37 */
-                if (z->c == z->l || z->p[z->c] != 0xDF) goto lab2; /* literal, line 37 */
+static int r_prelude(struct SN_env * z) {
+    {   int c_test1 = z->c;
+        while(1) {
+            int c2 = z->c;
+            {   int c3 = z->c;
+                z->bra = z->c;
+                if (z->c == z->l || z->p[z->c] != 0xDF) goto lab2;
                 z->c++;
-                z->ket = z->c; /* ], line 37 */
-                {   int ret = slice_from_s(z, 2, s_0); /* <-, line 37 */
+                z->ket = z->c;
+                {   int ret = slice_from_s(z, 2, s_0);
                     if (ret < 0) return ret;
                 }
                 goto lab1;
             lab2:
                 z->c = c3;
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 38 */
+                z->c++;
             }
         lab1:
             continue;
@@ -150,29 +149,28 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
         }
         z->c = c_test1;
     }
-/* repeat, line 41 */
-
-    while(1) {        int c4 = z->c;
-        while(1) { /* goto, line 41 */
+    while(1) {
+        int c4 = z->c;
+        while(1) {
             int c5 = z->c;
-            if (in_grouping(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 42 */
-            z->bra = z->c; /* [, line 42 */
-            {   int c6 = z->c; /* or, line 42 */
-                if (z->c == z->l || z->p[z->c] != 'u') goto lab6; /* literal, line 42 */
+            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; /* ], line 42 */
-                if (in_grouping(z, g_v, 97, 252, 0)) goto lab6; /* grouping v, line 42 */
-                {   int ret = slice_from_s(z, 1, s_1); /* <-, line 42 */
+                z->ket = z->c;
+                if (in_grouping(z, g_v, 97, 252, 0)) goto lab6;
+                {   int ret = slice_from_s(z, 1, s_1);
                     if (ret < 0) return ret;
                 }
                 goto lab5;
             lab6:
                 z->c = c6;
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 43 */
+                if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
                 z->c++;
-                z->ket = z->c; /* ], line 43 */
-                if (in_grouping(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 43 */
-                {   int ret = slice_from_s(z, 1, s_2); /* <-, line 43 */
+                z->ket = z->c;
+                if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
+                {   int ret = slice_from_s(z, 1, s_2);
                     if (ret < 0) return ret;
                 }
             }
@@ -182,7 +180,7 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
         lab4:
             z->c = c5;
             if (z->c >= z->l) goto lab3;
-            z->c++; /* goto, line 41 */
+            z->c++;
         }
         continue;
     lab3:
@@ -192,79 +190,76 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 49 */
-    z->I[1] = z->l; /* $p2 = <integer expression>, line 50 */
-    {   int c_test1 = z->c; /* test, line 52 */
-        {   int ret = z->c + 3; /* hop, line 52 */
-            if (0 > ret || ret > z->l) return 0;
-            z->c = ret;
-        }
-        z->I[2] = z->c; /* setmark x, line 52 */
+static int r_mark_regions(struct SN_env * z) {
+    z->I[2] = z->l;
+    z->I[1] = 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;
     }
-    {    /* gopast */ /* grouping v, line 54 */
+    {   
         int ret = out_grouping(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {    /* gopast */ /* non v, line 54 */
+    {   
         int ret = in_grouping(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[0] = z->c; /* setmark p1, line 54 */
-    /* try, line 55 */
-    if (!(z->I[0] < z->I[2])) goto lab0; /* $(<integer expression> < <integer expression>), line 55 */
-    z->I[0] = z->I[2]; /* $p1 = <integer expression>, line 55 */
+    z->I[2] = z->c;
+    
+    if (!(z->I[2] < z->I[0])) goto lab0;
+    z->I[2] = z->I[0];
 lab0:
-    {    /* gopast */ /* grouping v, line 56 */
+    {   
         int ret = out_grouping(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {    /* gopast */ /* non v, line 56 */
+    {   
         int ret = in_grouping(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[1] = z->c; /* setmark p2, line 56 */
+    z->I[1] = z->c;
     return 1;
 }
 
-static int r_postlude(struct SN_env * z) { /* forwardmode */
+static int r_postlude(struct SN_env * z) {
     int among_var;
-/* repeat, line 60 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 62 */
-        among_var = find_among(z, a_0, 6); /* substring, line 62 */
+    while(1) {
+        int c1 = z->c;
+        z->bra = z->c;
+        among_var = find_among(z, a_0, 6);
         if (!(among_var)) goto lab0;
-        z->ket = z->c; /* ], line 62 */
-        switch (among_var) { /* among, line 62 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_3); /* <-, line 63 */
+                {   int ret = slice_from_s(z, 1, s_3);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_4); /* <-, line 64 */
+                {   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); /* <-, line 65 */
+                {   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); /* <-, line 66 */
+                {   int ret = slice_from_s(z, 1, s_6);
                     if (ret < 0) return ret;
                 }
                 break;
             case 5:
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 68 */
+                z->c++;
                 break;
         }
         continue;
@@ -275,45 +270,45 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 75 */
+static int r_R1(struct SN_env * z) {
+    if (!(z->I[2] <= z->c)) return 0;
     return 1;
 }
 
-static int r_R2(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 76 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[1] <= z->c)) return 0;
     return 1;
 }
 
-static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
+static int r_standard_suffix(struct SN_env * z) {
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* do, line 79 */
-        z->ket = z->c; /* [, line 80 */
-        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 80 */
+    {   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;
-        z->bra = z->c; /* ], line 80 */
-        {   int ret = r_R1(z); /* call R1, line 80 */
+        z->bra = z->c;
+        {   int ret = r_R1(z);
             if (ret == 0) goto lab0;
             if (ret < 0) return ret;
         }
-        switch (among_var) { /* among, line 80 */
+        switch (among_var) {
             case 1:
-                {   int ret = slice_del(z); /* delete, line 82 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_del(z); /* delete, line 85 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m2 = z->l - z->c; (void)m2; /* try, line 86 */
-                    z->ket = z->c; /* [, line 86 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; } /* literal, line 86 */
+                {   int m2 = z->l - z->c; (void)m2;
+                    z->ket = z->c;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; }
                     z->c--;
-                    z->bra = z->c; /* ], line 86 */
-                    if (!(eq_s_b(z, 3, s_7))) { z->c = z->l - m2; goto lab1; } /* literal, line 86 */
-                    {   int ret = slice_del(z); /* delete, line 86 */
+                    z->bra = z->c;
+                    if (!(eq_s_b(z, 3, s_7))) { z->c = z->l - m2; goto lab1; }
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                 lab1:
@@ -321,8 +316,8 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
                 }
                 break;
             case 3:
-                if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0; /* grouping s_ending, line 89 */
-                {   int ret = slice_del(z); /* delete, line 89 */
+                if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0;
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -330,29 +325,27 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     lab0:
         z->c = z->l - m1;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 93 */
-        z->ket = z->c; /* [, line 94 */
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 94 */
+    {   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 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
         among_var = find_among_b(z, a_2, 4);
         if (!(among_var)) goto lab2;
-        z->bra = z->c; /* ], line 94 */
-        {   int ret = r_R1(z); /* call R1, line 94 */
+        z->bra = z->c;
+        {   int ret = r_R1(z);
             if (ret == 0) goto lab2;
             if (ret < 0) return ret;
         }
-        switch (among_var) { /* among, line 94 */
+        switch (among_var) {
             case 1:
-                {   int ret = slice_del(z); /* delete, line 96 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab2; /* grouping st_ending, line 99 */
-                {   int ret = z->c - 3; /* hop, line 99 */
-                    if (z->lb > ret || ret > z->l) goto lab2;
-                    z->c = ret;
-                }
-                {   int ret = slice_del(z); /* delete, line 99 */
+                if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab2;
+z->c = z->c - 3;
+                if (z->c < z->lb) goto lab2;
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -360,37 +353,37 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     lab2:
         z->c = z->l - m3;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 103 */
-        z->ket = z->c; /* [, line 104 */
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 104 */
+    {   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 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
         among_var = find_among_b(z, a_4, 8);
         if (!(among_var)) goto lab3;
-        z->bra = z->c; /* ], line 104 */
-        {   int ret = r_R2(z); /* call R2, line 104 */
+        z->bra = z->c;
+        {   int ret = r_R2(z);
             if (ret == 0) goto lab3;
             if (ret < 0) return ret;
         }
-        switch (among_var) { /* among, line 104 */
+        switch (among_var) {
             case 1:
-                {   int ret = slice_del(z); /* delete, line 106 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m5 = z->l - z->c; (void)m5; /* try, line 107 */
-                    z->ket = z->c; /* [, line 107 */
-                    if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m5; goto lab4; } /* literal, line 107 */
-                    z->bra = z->c; /* ], line 107 */
-                    {   int m6 = z->l - z->c; (void)m6; /* not, line 107 */
-                        if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5; /* literal, line 107 */
+                {   int m5 = z->l - z->c; (void)m5;
+                    z->ket = z->c;
+                    if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m5; goto lab4; }
+                    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;
                         z->c--;
                         { z->c = z->l - m5; goto lab4; }
                     lab5:
                         z->c = z->l - m6;
                     }
-                    {   int ret = r_R2(z); /* call R2, line 107 */
+                    {   int ret = r_R2(z);
                         if (ret == 0) { z->c = z->l - m5; goto lab4; }
                         if (ret < 0) return ret;
                     }
-                    {   int ret = slice_del(z); /* delete, line 107 */
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                 lab4:
@@ -398,37 +391,37 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
                 }
                 break;
             case 2:
-                {   int m7 = z->l - z->c; (void)m7; /* not, line 110 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 110 */
+                {   int m7 = z->l - z->c; (void)m7;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
                     z->c--;
                     goto lab3;
                 lab6:
                     z->c = z->l - m7;
                 }
-                {   int ret = slice_del(z); /* delete, line 110 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_del(z); /* delete, line 113 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m8 = z->l - z->c; (void)m8; /* try, line 114 */
-                    z->ket = z->c; /* [, line 115 */
-                    {   int m9 = z->l - z->c; (void)m9; /* or, line 115 */
-                        if (!(eq_s_b(z, 2, s_9))) goto lab9; /* literal, line 115 */
+                {   int m8 = z->l - z->c; (void)m8;
+                    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; } /* literal, line 115 */
+                        if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m8; goto lab7; }
                     }
                 lab8:
-                    z->bra = z->c; /* ], line 115 */
-                    {   int ret = r_R1(z); /* call R1, line 115 */
+                    z->bra = z->c;
+                    {   int ret = r_R1(z);
                         if (ret == 0) { z->c = z->l - m8; goto lab7; }
                         if (ret < 0) return ret;
                     }
-                    {   int ret = slice_del(z); /* delete, line 115 */
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                 lab7:
@@ -436,19 +429,19 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
                 }
                 break;
             case 4:
-                {   int ret = slice_del(z); /* delete, line 119 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m10 = z->l - z->c; (void)m10; /* try, line 120 */
-                    z->ket = z->c; /* [, line 121 */
-                    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; } /* substring, line 121 */
+                {   int m10 = z->l - z->c; (void)m10;
+                    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; }
-                    z->bra = z->c; /* ], line 121 */
-                    {   int ret = r_R2(z); /* call R2, line 121 */
+                    z->bra = z->c;
+                    {   int ret = r_R2(z);
                         if (ret == 0) { z->c = z->l - m10; goto lab10; }
                         if (ret < 0) return ret;
                     }
-                    {   int ret = slice_del(z); /* delete, line 123 */
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                 lab10:
@@ -462,28 +455,28 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int german_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 134 */
-        {   int ret = r_prelude(z); /* call prelude, line 134 */
+extern int german_ISO_8859_1_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_prelude(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    {   int c2 = z->c; /* do, line 135 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 135 */
+    {   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; /* backwards, line 136 */
+    z->lb = z->c; z->c = z->l;
 
-    /* do, line 137 */
-    {   int ret = r_standard_suffix(z); /* call standard_suffix, line 137 */
+    
+    {   int ret = r_standard_suffix(z);
         if (ret < 0) return ret;
     }
     z->c = z->lb;
-    {   int c3 = z->c; /* do, line 138 */
-        {   int ret = r_postlude(z); /* call postlude, line 138 */
+    {   int c3 = z->c;
+        {   int ret = r_postlude(z);
             if (ret < 0) return ret;
         }
         z->c = c3;
@@ -491,7 +484,7 @@ extern int german_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * german_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
+extern struct SN_env * german_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
 
 extern void german_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 6e0c911d690f9054574c27c48b2cdc7298d993bc..5fda5450cf87e68993fa912342f9427678a952e7 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -37,9 +37,9 @@ static const symbol s_0_2[3] = { 'p', 'u', 'n' };
 
 static const struct among a_0[3] =
 {
-/*  0 */ { 3, s_0_0, -1, 1, 0},
-/*  1 */ { 3, s_0_1, -1, 1, 0},
-/*  2 */ { 3, s_0_2, -1, 1, 0}
+{ 3, s_0_0, -1, 1, 0},
+{ 3, s_0_1, -1, 1, 0},
+{ 3, s_0_2, -1, 1, 0}
 };
 
 static const symbol s_1_0[3] = { 'n', 'y', 'a' };
@@ -48,9 +48,9 @@ static const symbol s_1_2[2] = { 'm', 'u' };
 
 static const struct among a_1[3] =
 {
-/*  0 */ { 3, s_1_0, -1, 1, 0},
-/*  1 */ { 2, s_1_1, -1, 1, 0},
-/*  2 */ { 2, s_1_2, -1, 1, 0}
+{ 3, s_1_0, -1, 1, 0},
+{ 2, s_1_1, -1, 1, 0},
+{ 2, s_1_2, -1, 1, 0}
 };
 
 static const symbol s_2_0[1] = { 'i' };
@@ -59,9 +59,9 @@ static const symbol s_2_2[3] = { 'k', 'a', 'n' };
 
 static const struct among a_2[3] =
 {
-/*  0 */ { 1, s_2_0, -1, 1, r_SUFFIX_I_OK},
-/*  1 */ { 2, s_2_1, -1, 1, r_SUFFIX_AN_OK},
-/*  2 */ { 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK}
+{ 1, s_2_0, -1, 1, r_SUFFIX_I_OK},
+{ 2, s_2_1, -1, 1, r_SUFFIX_AN_OK},
+{ 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK}
 };
 
 static const symbol s_3_0[2] = { 'd', 'i' };
@@ -79,18 +79,18 @@ static const symbol s_3_11[3] = { 't', 'e', 'r' };
 
 static const struct among a_3[12] =
 {
-/*  0 */ { 2, s_3_0, -1, 1, 0},
-/*  1 */ { 2, s_3_1, -1, 2, 0},
-/*  2 */ { 2, s_3_2, -1, 1, 0},
-/*  3 */ { 3, s_3_3, 2, 5, 0},
-/*  4 */ { 3, s_3_4, 2, 1, 0},
-/*  5 */ { 4, s_3_5, 4, 1, 0},
-/*  6 */ { 4, s_3_6, 4, 3, r_VOWEL},
-/*  7 */ { 3, s_3_7, -1, 6, 0},
-/*  8 */ { 3, s_3_8, -1, 2, 0},
-/*  9 */ { 4, s_3_9, 8, 2, 0},
-/* 10 */ { 4, s_3_10, 8, 4, r_VOWEL},
-/* 11 */ { 3, s_3_11, -1, 1, 0}
+{ 2, s_3_0, -1, 1, 0},
+{ 2, s_3_1, -1, 2, 0},
+{ 2, s_3_2, -1, 1, 0},
+{ 3, s_3_3, 2, 5, 0},
+{ 3, s_3_4, 2, 1, 0},
+{ 4, s_3_5, 4, 1, 0},
+{ 4, s_3_6, 4, 3, r_VOWEL},
+{ 3, s_3_7, -1, 6, 0},
+{ 3, s_3_8, -1, 2, 0},
+{ 4, s_3_9, 8, 2, 0},
+{ 4, s_3_10, 8, 4, r_VOWEL},
+{ 3, s_3_11, -1, 1, 0}
 };
 
 static const symbol s_4_0[2] = { 'b', 'e' };
@@ -102,12 +102,12 @@ static const symbol s_4_5[3] = { 'p', 'e', 'r' };
 
 static const struct among a_4[6] =
 {
-/*  0 */ { 2, s_4_0, -1, 3, r_KER},
-/*  1 */ { 7, s_4_1, 0, 4, 0},
-/*  2 */ { 3, s_4_2, 0, 3, 0},
-/*  3 */ { 2, s_4_3, -1, 1, 0},
-/*  4 */ { 7, s_4_4, 3, 2, 0},
-/*  5 */ { 3, s_4_5, 3, 1, 0}
+{ 2, s_4_0, -1, 3, r_KER},
+{ 7, s_4_1, 0, 4, 0},
+{ 3, s_4_2, 0, 3, 0},
+{ 2, s_4_3, -1, 1, 0},
+{ 7, s_4_4, 3, 2, 0},
+{ 3, s_4_5, 3, 1, 0}
 };
 
 static const unsigned char g_vowel[] = { 17, 65, 16 };
@@ -120,46 +120,46 @@ static const symbol s_4[] = { 'p' };
 static const symbol s_5[] = { 'a', 'j', 'a', 'r' };
 static const symbol s_6[] = { 'a', 'j', 'a', 'r' };
 
-static int r_remove_particle(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 51 */
-    if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0; /* substring, line 51 */
+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;
-    z->bra = z->c; /* ], line 51 */
-    {   int ret = slice_del(z); /* delete, line 52 */
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    z->I[0] -= 1; /* $measure -= <integer expression>, line 52 */
+    z->I[1] -= 1;
     return 1;
 }
 
-static int r_remove_possessive_pronoun(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 57 */
-    if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0; /* substring, line 57 */
+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;
-    z->bra = z->c; /* ], line 57 */
-    {   int ret = slice_del(z); /* delete, line 58 */
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    z->I[0] -= 1; /* $measure -= <integer expression>, line 58 */
+    z->I[1] -= 1;
     return 1;
 }
 
-static int r_SUFFIX_KAN_OK(struct SN_env * z) { /* backwardmode */
-    /* and, line 85 */
-    if (!(z->I[1] != 3)) return 0; /* $(<integer expression> != <integer expression>), line 85 */
-    if (!(z->I[1] != 2)) return 0; /* $(<integer expression> != <integer expression>), line 85 */
+static int r_SUFFIX_KAN_OK(struct SN_env * z) {
+    
+    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) { /* backwardmode */
-    if (!(z->I[1] != 1)) return 0; /* $(<integer expression> != <integer expression>), line 89 */
+static int r_SUFFIX_AN_OK(struct SN_env * z) {
+    if (!(z->I[0] != 1)) return 0;
     return 1;
 }
 
-static int r_SUFFIX_I_OK(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[1] <= 2)) return 0; /* $(<integer expression> <= <integer expression>), line 93 */
-    {   int m1 = z->l - z->c; (void)m1; /* not, line 128 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0; /* literal, line 128 */
+static int r_SUFFIX_I_OK(struct SN_env * z) {
+    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--;
         return 0;
     lab0:
@@ -168,100 +168,100 @@ static int r_SUFFIX_I_OK(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_remove_suffix(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 132 */
-    if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0; /* substring, line 132 */
+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;
-    z->bra = z->c; /* ], line 132 */
-    {   int ret = slice_del(z); /* delete, line 134 */
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    z->I[0] -= 1; /* $measure -= <integer expression>, line 134 */
+    z->I[1] -= 1;
     return 1;
 }
 
-static int r_VOWEL(struct SN_env * z) { /* forwardmode */
-    if (in_grouping(z, g_vowel, 97, 117, 0)) return 0; /* grouping vowel, line 141 */
+static int r_VOWEL(struct SN_env * z) {
+    if (in_grouping(z, g_vowel, 97, 117, 0)) return 0;
     return 1;
 }
 
-static int r_KER(struct SN_env * z) { /* forwardmode */
-    if (out_grouping(z, g_vowel, 97, 117, 0)) return 0; /* non vowel, line 143 */
-    if (!(eq_s(z, 2, s_0))) return 0; /* literal, line 143 */
+static int r_KER(struct SN_env * z) {
+    if (out_grouping(z, g_vowel, 97, 117, 0)) return 0;
+    if (!(eq_s(z, 2, s_0))) return 0;
     return 1;
 }
 
-static int r_remove_first_order_prefix(struct SN_env * z) { /* forwardmode */
+static int r_remove_first_order_prefix(struct SN_env * z) {
     int among_var;
-    z->bra = z->c; /* [, line 146 */
-    if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0; /* substring, line 146 */
+    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;
-    z->ket = z->c; /* ], line 146 */
-    switch (among_var) { /* among, line 146 */
+    z->ket = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 147 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            z->I[1] = 1; /* $prefix = <integer expression>, line 147 */
-            z->I[0] -= 1; /* $measure -= <integer expression>, line 147 */
+            z->I[0] = 1;
+            z->I[1] -= 1;
             break;
         case 2:
-            {   int ret = slice_del(z); /* delete, line 148 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            z->I[1] = 3; /* $prefix = <integer expression>, line 148 */
-            z->I[0] -= 1; /* $measure -= <integer expression>, line 148 */
+            z->I[0] = 3;
+            z->I[1] -= 1;
             break;
         case 3:
-            z->I[1] = 1; /* $prefix = <integer expression>, line 149 */
-            {   int ret = slice_from_s(z, 1, s_1); /* <-, line 149 */
+            z->I[0] = 1;
+            {   int ret = slice_from_s(z, 1, s_1);
                 if (ret < 0) return ret;
             }
-            z->I[0] -= 1; /* $measure -= <integer expression>, line 149 */
+            z->I[1] -= 1;
             break;
         case 4:
-            z->I[1] = 3; /* $prefix = <integer expression>, line 150 */
-            {   int ret = slice_from_s(z, 1, s_2); /* <-, line 150 */
+            z->I[0] = 3;
+            {   int ret = slice_from_s(z, 1, s_2);
                 if (ret < 0) return ret;
             }
-            z->I[0] -= 1; /* $measure -= <integer expression>, line 150 */
+            z->I[1] -= 1;
             break;
         case 5:
-            z->I[1] = 1; /* $prefix = <integer expression>, line 151 */
-            z->I[0] -= 1; /* $measure -= <integer expression>, line 151 */
-            {   int c1 = z->c; /* or, line 151 */
-                {   int c2 = z->c; /* and, line 151 */
-                    if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab1; /* grouping vowel, line 151 */
+            z->I[0] = 1;
+            z->I[1] -= 1;
+            {   int c1 = z->c;
+                {   int c2 = z->c;
+                    if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab1;
                     z->c = c2;
-                    {   int ret = slice_from_s(z, 1, s_3); /* <-, line 151 */
+                    {   int ret = slice_from_s(z, 1, s_3);
                         if (ret < 0) return ret;
                     }
                 }
                 goto lab0;
             lab1:
                 z->c = c1;
-                {   int ret = slice_del(z); /* delete, line 151 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             }
         lab0:
             break;
         case 6:
-            z->I[1] = 3; /* $prefix = <integer expression>, line 152 */
-            z->I[0] -= 1; /* $measure -= <integer expression>, line 152 */
-            {   int c3 = z->c; /* or, line 152 */
-                {   int c4 = z->c; /* and, line 152 */
-                    if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab3; /* grouping vowel, line 152 */
+            z->I[0] = 3;
+            z->I[1] -= 1;
+            {   int c3 = z->c;
+                {   int c4 = z->c;
+                    if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab3;
                     z->c = c4;
-                    {   int ret = slice_from_s(z, 1, s_4); /* <-, line 152 */
+                    {   int ret = slice_from_s(z, 1, s_4);
                         if (ret < 0) return ret;
                     }
                 }
                 goto lab2;
             lab3:
                 z->c = c3;
-                {   int ret = slice_del(z); /* delete, line 152 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             }
@@ -271,57 +271,56 @@ static int r_remove_first_order_prefix(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_remove_second_order_prefix(struct SN_env * z) { /* forwardmode */
+static int r_remove_second_order_prefix(struct SN_env * z) {
     int among_var;
-    z->bra = z->c; /* [, line 162 */
-    if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0; /* substring, line 162 */
+    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;
-    z->ket = z->c; /* ], line 162 */
-    switch (among_var) { /* among, line 162 */
+    z->ket = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 163 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            z->I[1] = 2; /* $prefix = <integer expression>, line 163 */
-            z->I[0] -= 1; /* $measure -= <integer expression>, line 163 */
+            z->I[0] = 2;
+            z->I[1] -= 1;
             break;
         case 2:
-            {   int ret = slice_from_s(z, 4, s_5); /* <-, line 164 */
+            {   int ret = slice_from_s(z, 4, s_5);
                 if (ret < 0) return ret;
             }
-            z->I[0] -= 1; /* $measure -= <integer expression>, line 164 */
+            z->I[1] -= 1;
             break;
         case 3:
-            {   int ret = slice_del(z); /* delete, line 165 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            z->I[1] = 4; /* $prefix = <integer expression>, line 165 */
-            z->I[0] -= 1; /* $measure -= <integer expression>, line 165 */
+            z->I[0] = 4;
+            z->I[1] -= 1;
             break;
         case 4:
-            {   int ret = slice_from_s(z, 4, s_6); /* <-, line 166 */
+            {   int ret = slice_from_s(z, 4, s_6);
                 if (ret < 0) return ret;
             }
-            z->I[1] = 4; /* $prefix = <integer expression>, line 166 */
-            z->I[0] -= 1; /* $measure -= <integer expression>, line 166 */
+            z->I[0] = 4;
+            z->I[1] -= 1;
             break;
     }
     return 1;
 }
 
-extern int indonesian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    z->I[0] = 0; /* $measure = <integer expression>, line 172 */
-    {   int c1 = z->c; /* do, line 173 */
-/* repeat, line 173 */
-
-        while(1) {            int c2 = z->c;
-            {    /* gopast */ /* grouping vowel, line 173 */
+extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
+    z->I[1] = 0;
+    {   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;
             }
-            z->I[0] += 1; /* $measure += <integer expression>, line 173 */
+            z->I[1] += 1;
             continue;
         lab1:
             z->c = c2;
@@ -329,45 +328,45 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
         }
         z->c = c1;
     }
-    if (!(z->I[0] > 2)) return 0; /* $(<integer expression> > <integer expression>), line 174 */
-    z->I[1] = 0; /* $prefix = <integer expression>, line 175 */
-    z->lb = z->c; z->c = z->l; /* backwards, line 176 */
+    if (!(z->I[1] > 2)) return 0;
+    z->I[0] = 0;
+    z->lb = z->c; z->c = z->l;
 
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 177 */
-        {   int ret = r_remove_particle(z); /* call remove_particle, line 177 */
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_remove_particle(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m3;
     }
-    if (!(z->I[0] > 2)) return 0; /* $(<integer expression> > <integer expression>), line 178 */
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 179 */
-        {   int ret = r_remove_possessive_pronoun(z); /* call remove_possessive_pronoun, line 179 */
+    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;
         }
         z->c = z->l - m4;
     }
     z->c = z->lb;
-    if (!(z->I[0] > 2)) return 0; /* $(<integer expression> > <integer expression>), line 181 */
-    {   int c5 = z->c; /* or, line 188 */
-        {   int c_test6 = z->c; /* test, line 182 */
-            {   int ret = r_remove_first_order_prefix(z); /* call remove_first_order_prefix, line 183 */
+    if (!(z->I[1] > 2)) return 0;
+    {   int c5 = z->c;
+        {   int c_test6 = z->c;
+            {   int ret = r_remove_first_order_prefix(z);
                 if (ret == 0) goto lab3;
                 if (ret < 0) return ret;
             }
-            {   int c7 = z->c; /* do, line 184 */
-                {   int c_test8 = z->c; /* test, line 185 */
-                    if (!(z->I[0] > 2)) goto lab4; /* $(<integer expression> > <integer expression>), line 185 */
-                    z->lb = z->c; z->c = z->l; /* backwards, line 185 */
+            {   int c7 = z->c;
+                {   int c_test8 = z->c;
+                    if (!(z->I[1] > 2)) goto lab4;
+                    z->lb = z->c; z->c = z->l;
 
-                    {   int ret = r_remove_suffix(z); /* call remove_suffix, line 185 */
+                    {   int ret = r_remove_suffix(z);
                         if (ret == 0) goto lab4;
                         if (ret < 0) return ret;
                     }
                     z->c = z->lb;
                     z->c = c_test8;
                 }
-                if (!(z->I[0] > 2)) goto lab4; /* $(<integer expression> > <integer expression>), line 186 */
-                {   int ret = r_remove_second_order_prefix(z); /* call remove_second_order_prefix, line 186 */
+                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;
                 }
@@ -379,17 +378,17 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
         goto lab2;
     lab3:
         z->c = c5;
-        {   int c9 = z->c; /* do, line 189 */
-            {   int ret = r_remove_second_order_prefix(z); /* call remove_second_order_prefix, line 189 */
+        {   int c9 = z->c;
+            {   int ret = r_remove_second_order_prefix(z);
                 if (ret < 0) return ret;
             }
             z->c = c9;
         }
-        {   int c10 = z->c; /* do, line 190 */
-            if (!(z->I[0] > 2)) goto lab5; /* $(<integer expression> > <integer expression>), line 190 */
-            z->lb = z->c; z->c = z->l; /* backwards, line 190 */
+        {   int c10 = z->c;
+            if (!(z->I[1] > 2)) goto lab5;
+            z->lb = z->c; z->c = z->l;
 
-            {   int ret = r_remove_suffix(z); /* call remove_suffix, line 190 */
+            {   int ret = r_remove_suffix(z);
                 if (ret == 0) goto lab5;
                 if (ret < 0) return ret;
             }
@@ -402,7 +401,7 @@ lab2:
     return 1;
 }
 
-extern struct SN_env * indonesian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); }
+extern struct SN_env * indonesian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); }
 
 extern void indonesian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 87df430aea64918632c5e40ba0fc92aedbfb3aeb..fbe75f89a0c1b4bdbe5ad6ade375dfdfecee01b5 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -56,30 +56,30 @@ static const symbol s_0_23[2] = { 't', 's' };
 
 static const struct among a_0[24] =
 {
-/*  0 */ { 2, s_0_0, -1, 1, 0},
-/*  1 */ { 2, s_0_1, -1, 4, 0},
-/*  2 */ { 3, s_0_2, 1, 2, 0},
-/*  3 */ { 2, s_0_3, -1, 8, 0},
-/*  4 */ { 2, s_0_4, -1, 5, 0},
-/*  5 */ { 2, s_0_5, -1, 1, 0},
-/*  6 */ { 4, s_0_6, 5, 2, 0},
-/*  7 */ { 2, s_0_7, -1, 6, 0},
-/*  8 */ { 2, s_0_8, -1, 9, 0},
-/*  9 */ { 2, s_0_9, -1, 2, 0},
-/* 10 */ { 2, s_0_10, -1, 5, 0},
-/* 11 */ { 2, s_0_11, -1, 7, 0},
-/* 12 */ { 2, s_0_12, -1, 1, 0},
-/* 13 */ { 2, s_0_13, -1, 1, 0},
-/* 14 */ { 2, s_0_14, -1, 4, 0},
-/* 15 */ { 2, s_0_15, -1, 10, 0},
-/* 16 */ { 2, s_0_16, -1, 1, 0},
-/* 17 */ { 2, s_0_17, -1, 6, 0},
-/* 18 */ { 2, s_0_18, -1, 7, 0},
-/* 19 */ { 2, s_0_19, -1, 8, 0},
-/* 20 */ { 2, s_0_20, -1, 3, 0},
-/* 21 */ { 2, s_0_21, -1, 1, 0},
-/* 22 */ { 2, s_0_22, -1, 9, 0},
-/* 23 */ { 2, s_0_23, -1, 3, 0}
+{ 2, s_0_0, -1, 1, 0},
+{ 2, s_0_1, -1, 4, 0},
+{ 3, s_0_2, 1, 2, 0},
+{ 2, s_0_3, -1, 8, 0},
+{ 2, s_0_4, -1, 5, 0},
+{ 2, s_0_5, -1, 1, 0},
+{ 4, s_0_6, 5, 2, 0},
+{ 2, s_0_7, -1, 6, 0},
+{ 2, s_0_8, -1, 9, 0},
+{ 2, s_0_9, -1, 2, 0},
+{ 2, s_0_10, -1, 5, 0},
+{ 2, s_0_11, -1, 7, 0},
+{ 2, s_0_12, -1, 1, 0},
+{ 2, s_0_13, -1, 1, 0},
+{ 2, s_0_14, -1, 4, 0},
+{ 2, s_0_15, -1, 10, 0},
+{ 2, s_0_16, -1, 1, 0},
+{ 2, s_0_17, -1, 6, 0},
+{ 2, s_0_18, -1, 7, 0},
+{ 2, s_0_19, -1, 8, 0},
+{ 2, s_0_20, -1, 3, 0},
+{ 2, s_0_21, -1, 1, 0},
+{ 2, s_0_22, -1, 9, 0},
+{ 2, s_0_23, -1, 3, 0}
 };
 
 static const symbol s_1_0[6] = { 0xED, 'o', 'c', 'h', 't', 'a' };
@@ -101,22 +101,22 @@ static const symbol s_1_15[4] = { 'a', 'i', 'r', 0xED };
 
 static const struct among a_1[16] =
 {
-/*  0 */ { 6, s_1_0, -1, 1, 0},
-/*  1 */ { 7, s_1_1, 0, 1, 0},
-/*  2 */ { 3, s_1_2, -1, 2, 0},
-/*  3 */ { 4, s_1_3, 2, 2, 0},
-/*  4 */ { 3, s_1_4, -1, 1, 0},
-/*  5 */ { 4, s_1_5, 4, 1, 0},
-/*  6 */ { 3, s_1_6, -1, 1, 0},
-/*  7 */ { 4, s_1_7, 6, 1, 0},
-/*  8 */ { 3, s_1_8, -1, 1, 0},
-/*  9 */ { 4, s_1_9, 8, 1, 0},
-/* 10 */ { 3, s_1_10, -1, 1, 0},
-/* 11 */ { 4, s_1_11, 10, 1, 0},
-/* 12 */ { 5, s_1_12, -1, 1, 0},
-/* 13 */ { 6, s_1_13, 12, 1, 0},
-/* 14 */ { 3, s_1_14, -1, 2, 0},
-/* 15 */ { 4, s_1_15, 14, 2, 0}
+{ 6, s_1_0, -1, 1, 0},
+{ 7, s_1_1, 0, 1, 0},
+{ 3, s_1_2, -1, 2, 0},
+{ 4, s_1_3, 2, 2, 0},
+{ 3, s_1_4, -1, 1, 0},
+{ 4, s_1_5, 4, 1, 0},
+{ 3, s_1_6, -1, 1, 0},
+{ 4, s_1_7, 6, 1, 0},
+{ 3, s_1_8, -1, 1, 0},
+{ 4, s_1_9, 8, 1, 0},
+{ 3, s_1_10, -1, 1, 0},
+{ 4, s_1_11, 10, 1, 0},
+{ 5, s_1_12, -1, 1, 0},
+{ 6, s_1_13, 12, 1, 0},
+{ 3, s_1_14, -1, 2, 0},
+{ 4, s_1_15, 14, 2, 0}
 };
 
 static const symbol s_2_0[8] = { 0xF3, 'i', 'd', 'e', 'a', 'c', 'h', 'a' };
@@ -147,31 +147,31 @@ static const symbol s_2_24[12] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h',
 
 static const struct among a_2[25] =
 {
-/*  0 */ { 8, s_2_0, -1, 6, 0},
-/*  1 */ { 7, s_2_1, -1, 5, 0},
-/*  2 */ { 5, s_2_2, -1, 1, 0},
-/*  3 */ { 8, s_2_3, 2, 2, 0},
-/*  4 */ { 6, s_2_4, 2, 1, 0},
-/*  5 */ { 11, s_2_5, -1, 4, 0},
-/*  6 */ { 5, s_2_6, -1, 5, 0},
-/*  7 */ { 3, s_2_7, -1, 1, 0},
-/*  8 */ { 4, s_2_8, 7, 1, 0},
-/*  9 */ { 7, s_2_9, 8, 6, 0},
-/* 10 */ { 7, s_2_10, 8, 3, 0},
-/* 11 */ { 6, s_2_11, 7, 5, 0},
-/* 12 */ { 9, s_2_12, -1, 4, 0},
-/* 13 */ { 7, s_2_13, -1, 5, 0},
-/* 14 */ { 6, s_2_14, -1, 6, 0},
-/* 15 */ { 7, s_2_15, -1, 1, 0},
-/* 16 */ { 8, s_2_16, 15, 1, 0},
-/* 17 */ { 6, s_2_17, -1, 3, 0},
-/* 18 */ { 5, s_2_18, -1, 3, 0},
-/* 19 */ { 4, s_2_19, -1, 1, 0},
-/* 20 */ { 7, s_2_20, 19, 2, 0},
-/* 21 */ { 5, s_2_21, 19, 1, 0},
-/* 22 */ { 10, s_2_22, -1, 4, 0},
-/* 23 */ { 9, s_2_23, -1, 2, 0},
-/* 24 */ { 12, s_2_24, -1, 4, 0}
+{ 8, s_2_0, -1, 6, 0},
+{ 7, s_2_1, -1, 5, 0},
+{ 5, s_2_2, -1, 1, 0},
+{ 8, s_2_3, 2, 2, 0},
+{ 6, s_2_4, 2, 1, 0},
+{ 11, s_2_5, -1, 4, 0},
+{ 5, s_2_6, -1, 5, 0},
+{ 3, s_2_7, -1, 1, 0},
+{ 4, s_2_8, 7, 1, 0},
+{ 7, s_2_9, 8, 6, 0},
+{ 7, s_2_10, 8, 3, 0},
+{ 6, s_2_11, 7, 5, 0},
+{ 9, s_2_12, -1, 4, 0},
+{ 7, s_2_13, -1, 5, 0},
+{ 6, s_2_14, -1, 6, 0},
+{ 7, s_2_15, -1, 1, 0},
+{ 8, s_2_16, 15, 1, 0},
+{ 6, s_2_17, -1, 3, 0},
+{ 5, s_2_18, -1, 3, 0},
+{ 4, s_2_19, -1, 1, 0},
+{ 7, s_2_20, 19, 2, 0},
+{ 5, s_2_21, 19, 1, 0},
+{ 10, s_2_22, -1, 4, 0},
+{ 9, s_2_23, -1, 2, 0},
+{ 12, s_2_24, -1, 4, 0}
 };
 
 static const symbol s_3_0[4] = { 'i', 'm', 'i', 'd' };
@@ -189,18 +189,18 @@ static const symbol s_3_11[3] = { 't', 'a', 'r' };
 
 static const struct among a_3[12] =
 {
-/*  0 */ { 4, s_3_0, -1, 1, 0},
-/*  1 */ { 5, s_3_1, 0, 1, 0},
-/*  2 */ { 4, s_3_2, -1, 1, 0},
-/*  3 */ { 5, s_3_3, 2, 1, 0},
-/*  4 */ { 3, s_3_4, -1, 2, 0},
-/*  5 */ { 4, s_3_5, 4, 2, 0},
-/*  6 */ { 5, s_3_6, -1, 1, 0},
-/*  7 */ { 4, s_3_7, -1, 1, 0},
-/*  8 */ { 3, s_3_8, -1, 2, 0},
-/*  9 */ { 3, s_3_9, -1, 2, 0},
-/* 10 */ { 4, s_3_10, -1, 2, 0},
-/* 11 */ { 3, s_3_11, -1, 2, 0}
+{ 4, s_3_0, -1, 1, 0},
+{ 5, s_3_1, 0, 1, 0},
+{ 4, s_3_2, -1, 1, 0},
+{ 5, s_3_3, 2, 1, 0},
+{ 3, s_3_4, -1, 2, 0},
+{ 4, s_3_5, 4, 2, 0},
+{ 5, s_3_6, -1, 1, 0},
+{ 4, s_3_7, -1, 1, 0},
+{ 3, s_3_8, -1, 2, 0},
+{ 3, s_3_9, -1, 2, 0},
+{ 4, s_3_10, -1, 2, 0},
+{ 3, s_3_11, -1, 2, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 2 };
@@ -220,103 +220,103 @@ static const symbol s_11[] = { 'g', 'r', 'a', 'f' };
 static const symbol s_12[] = { 'p', 'a', 'i', 't', 'e' };
 static const symbol s_13[] = { 0xF3, 'i', 'd' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $pV = <integer expression>, line 30 */
-    z->I[1] = z->l; /* $p1 = <integer expression>, line 31 */
-    z->I[2] = z->l; /* $p2 = <integer expression>, line 32 */
-    {   int c1 = z->c; /* do, line 34 */
-        {    /* gopast */ /* grouping v, line 35 */
+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 ret = out_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        z->I[0] = z->c; /* setmark pV, line 35 */
+        z->I[2] = z->c;
     lab0:
         z->c = c1;
     }
-    {   int c2 = z->c; /* do, line 37 */
-        {    /* gopast */ /* grouping v, line 38 */
+    {   int c2 = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab1;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 38 */
+        {   
             int ret = in_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab1;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p1, line 38 */
-        {    /* gopast */ /* grouping v, line 39 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab1;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 39 */
+        {   
             int ret = in_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab1;
             z->c += ret;
         }
-        z->I[2] = z->c; /* setmark p2, line 39 */
+        z->I[0] = z->c;
     lab1:
         z->c = c2;
     }
     return 1;
 }
 
-static int r_initial_morph(struct SN_env * z) { /* forwardmode */
+static int r_initial_morph(struct SN_env * z) {
     int among_var;
-    z->bra = z->c; /* [, line 44 */
-    among_var = find_among(z, a_0, 24); /* substring, line 44 */
+    z->bra = z->c;
+    among_var = find_among(z, a_0, 24);
     if (!(among_var)) return 0;
-    z->ket = z->c; /* ], line 44 */
-    switch (among_var) { /* among, line 44 */
+    z->ket = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 46 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_0); /* <-, line 52 */
+            {   int ret = slice_from_s(z, 1, s_0);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 1, s_1); /* <-, line 58 */
+            {   int ret = slice_from_s(z, 1, s_1);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = slice_from_s(z, 1, s_2); /* <-, line 61 */
+            {   int ret = slice_from_s(z, 1, s_2);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_from_s(z, 1, s_3); /* <-, line 63 */
+            {   int ret = slice_from_s(z, 1, s_3);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = slice_from_s(z, 1, s_4); /* <-, line 65 */
+            {   int ret = slice_from_s(z, 1, s_4);
                 if (ret < 0) return ret;
             }
             break;
         case 7:
-            {   int ret = slice_from_s(z, 1, s_5); /* <-, line 69 */
+            {   int ret = slice_from_s(z, 1, s_5);
                 if (ret < 0) return ret;
             }
             break;
         case 8:
-            {   int ret = slice_from_s(z, 1, s_6); /* <-, line 71 */
+            {   int ret = slice_from_s(z, 1, s_6);
                 if (ret < 0) return ret;
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 1, s_7); /* <-, line 75 */
+            {   int ret = slice_from_s(z, 1, s_7);
                 if (ret < 0) return ret;
             }
             break;
         case 10:
-            {   int ret = slice_from_s(z, 1, s_8); /* <-, line 89 */
+            {   int ret = slice_from_s(z, 1, s_8);
                 if (ret < 0) return ret;
             }
             break;
@@ -324,41 +324,41 @@ static int r_initial_morph(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_RV(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 99 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 100 */
+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) { /* backwardmode */
-    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 101 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_noun_sfx(struct SN_env * z) { /* backwardmode */
+static int r_noun_sfx(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 104 */
-    among_var = find_among_b(z, a_1, 16); /* substring, line 104 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_1, 16);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 104 */
-    switch (among_var) { /* among, line 104 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R1(z); /* call R1, line 108 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 108 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 110 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 110 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -366,43 +366,43 @@ static int r_noun_sfx(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_deriv(struct SN_env * z) { /* backwardmode */
+static int r_deriv(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 114 */
-    among_var = find_among_b(z, a_2, 25); /* substring, line 114 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_2, 25);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 114 */
-    switch (among_var) { /* among, line 114 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R2(z); /* call R2, line 116 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 116 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 3, s_9); /* <-, line 118 */
+            {   int ret = slice_from_s(z, 3, s_9);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 3, s_10); /* <-, line 120 */
+            {   int ret = slice_from_s(z, 3, s_10);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = slice_from_s(z, 4, s_11); /* <-, line 122 */
+            {   int ret = slice_from_s(z, 4, s_11);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_from_s(z, 5, s_12); /* <-, line 124 */
+            {   int ret = slice_from_s(z, 5, s_12);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = slice_from_s(z, 3, s_13); /* <-, line 126 */
+            {   int ret = slice_from_s(z, 3, s_13);
                 if (ret < 0) return ret;
             }
             break;
@@ -410,27 +410,27 @@ static int r_deriv(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_verb_sfx(struct SN_env * z) { /* backwardmode */
+static int r_verb_sfx(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 130 */
-    if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 130 */
+    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;
-    z->bra = z->c; /* ], line 130 */
-    switch (among_var) { /* among, line 130 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_RV(z); /* call RV, line 133 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 133 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R1(z); /* call R1, line 138 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 138 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -438,33 +438,33 @@ static int r_verb_sfx(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int irish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 144 */
-        {   int ret = r_initial_morph(z); /* call initial_morph, line 144 */
+extern int irish_ISO_8859_1_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_initial_morph(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    /* do, line 145 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 145 */
+    
+    {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 146 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 147 */
-        {   int ret = r_noun_sfx(z); /* call noun_sfx, line 147 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_noun_sfx(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 148 */
-        {   int ret = r_deriv(z); /* call deriv, line 148 */
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_deriv(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m3;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 149 */
-        {   int ret = r_verb_sfx(z); /* call verb_sfx, line 149 */
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int ret = r_verb_sfx(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m4;
@@ -473,7 +473,7 @@ extern int irish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * irish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
+extern struct SN_env * irish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
 
 extern void irish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index a06e8902d93df0792ffc4b266fa07fc0d95870e8..e71178e404dbcb4cd6a9d07836a31f881ddd2253 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -40,13 +40,13 @@ static const symbol s_0_6[1] = { 0xFA };
 
 static const struct among a_0[7] =
 {
-/*  0 */ { 0, 0, -1, 7, 0},
-/*  1 */ { 2, s_0_1, 0, 6, 0},
-/*  2 */ { 1, s_0_2, 0, 1, 0},
-/*  3 */ { 1, s_0_3, 0, 2, 0},
-/*  4 */ { 1, s_0_4, 0, 3, 0},
-/*  5 */ { 1, s_0_5, 0, 4, 0},
-/*  6 */ { 1, s_0_6, 0, 5, 0}
+{ 0, 0, -1, 7, 0},
+{ 2, s_0_1, 0, 6, 0},
+{ 1, s_0_2, 0, 1, 0},
+{ 1, s_0_3, 0, 2, 0},
+{ 1, s_0_4, 0, 3, 0},
+{ 1, s_0_5, 0, 4, 0},
+{ 1, s_0_6, 0, 5, 0}
 };
 
 static const symbol s_1_1[1] = { 'I' };
@@ -54,9 +54,9 @@ static const symbol s_1_2[1] = { 'U' };
 
 static const struct among a_1[3] =
 {
-/*  0 */ { 0, 0, -1, 3, 0},
-/*  1 */ { 1, s_1_1, 0, 1, 0},
-/*  2 */ { 1, s_1_2, 0, 2, 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[2] = { 'l', 'a' };
@@ -99,43 +99,43 @@ static const symbol s_2_36[4] = { 'v', 'e', 'l', 'o' };
 
 static const struct among a_2[37] =
 {
-/*  0 */ { 2, s_2_0, -1, -1, 0},
-/*  1 */ { 4, s_2_1, 0, -1, 0},
-/*  2 */ { 6, s_2_2, 0, -1, 0},
-/*  3 */ { 4, s_2_3, 0, -1, 0},
-/*  4 */ { 4, s_2_4, 0, -1, 0},
-/*  5 */ { 4, s_2_5, 0, -1, 0},
-/*  6 */ { 2, s_2_6, -1, -1, 0},
-/*  7 */ { 4, s_2_7, 6, -1, 0},
-/*  8 */ { 6, s_2_8, 6, -1, 0},
-/*  9 */ { 4, s_2_9, 6, -1, 0},
-/* 10 */ { 4, s_2_10, 6, -1, 0},
-/* 11 */ { 4, s_2_11, 6, -1, 0},
-/* 12 */ { 2, s_2_12, -1, -1, 0},
-/* 13 */ { 4, s_2_13, 12, -1, 0},
-/* 14 */ { 6, s_2_14, 12, -1, 0},
-/* 15 */ { 4, s_2_15, 12, -1, 0},
-/* 16 */ { 4, s_2_16, 12, -1, 0},
-/* 17 */ { 4, s_2_17, 12, -1, 0},
-/* 18 */ { 4, s_2_18, 12, -1, 0},
-/* 19 */ { 2, s_2_19, -1, -1, 0},
-/* 20 */ { 2, s_2_20, -1, -1, 0},
-/* 21 */ { 4, s_2_21, 20, -1, 0},
-/* 22 */ { 6, s_2_22, 20, -1, 0},
-/* 23 */ { 4, s_2_23, 20, -1, 0},
-/* 24 */ { 4, s_2_24, 20, -1, 0},
-/* 25 */ { 4, s_2_25, 20, -1, 0},
-/* 26 */ { 3, s_2_26, 20, -1, 0},
-/* 27 */ { 2, s_2_27, -1, -1, 0},
-/* 28 */ { 2, s_2_28, -1, -1, 0},
-/* 29 */ { 2, s_2_29, -1, -1, 0},
-/* 30 */ { 2, s_2_30, -1, -1, 0},
-/* 31 */ { 2, s_2_31, -1, -1, 0},
-/* 32 */ { 4, s_2_32, 31, -1, 0},
-/* 33 */ { 6, s_2_33, 31, -1, 0},
-/* 34 */ { 4, s_2_34, 31, -1, 0},
-/* 35 */ { 4, s_2_35, 31, -1, 0},
-/* 36 */ { 4, s_2_36, 31, -1, 0}
+{ 2, s_2_0, -1, -1, 0},
+{ 4, s_2_1, 0, -1, 0},
+{ 6, s_2_2, 0, -1, 0},
+{ 4, s_2_3, 0, -1, 0},
+{ 4, s_2_4, 0, -1, 0},
+{ 4, s_2_5, 0, -1, 0},
+{ 2, s_2_6, -1, -1, 0},
+{ 4, s_2_7, 6, -1, 0},
+{ 6, s_2_8, 6, -1, 0},
+{ 4, s_2_9, 6, -1, 0},
+{ 4, s_2_10, 6, -1, 0},
+{ 4, s_2_11, 6, -1, 0},
+{ 2, s_2_12, -1, -1, 0},
+{ 4, s_2_13, 12, -1, 0},
+{ 6, s_2_14, 12, -1, 0},
+{ 4, s_2_15, 12, -1, 0},
+{ 4, s_2_16, 12, -1, 0},
+{ 4, s_2_17, 12, -1, 0},
+{ 4, s_2_18, 12, -1, 0},
+{ 2, s_2_19, -1, -1, 0},
+{ 2, s_2_20, -1, -1, 0},
+{ 4, s_2_21, 20, -1, 0},
+{ 6, s_2_22, 20, -1, 0},
+{ 4, s_2_23, 20, -1, 0},
+{ 4, s_2_24, 20, -1, 0},
+{ 4, s_2_25, 20, -1, 0},
+{ 3, s_2_26, 20, -1, 0},
+{ 2, s_2_27, -1, -1, 0},
+{ 2, s_2_28, -1, -1, 0},
+{ 2, s_2_29, -1, -1, 0},
+{ 2, s_2_30, -1, -1, 0},
+{ 2, s_2_31, -1, -1, 0},
+{ 4, s_2_32, 31, -1, 0},
+{ 6, s_2_33, 31, -1, 0},
+{ 4, s_2_34, 31, -1, 0},
+{ 4, s_2_35, 31, -1, 0},
+{ 4, s_2_36, 31, -1, 0}
 };
 
 static const symbol s_3_0[4] = { 'a', 'n', 'd', 'o' };
@@ -146,11 +146,11 @@ static const symbol s_3_4[2] = { 'i', 'r' };
 
 static const struct among a_3[5] =
 {
-/*  0 */ { 4, s_3_0, -1, 1, 0},
-/*  1 */ { 4, s_3_1, -1, 1, 0},
-/*  2 */ { 2, s_3_2, -1, 2, 0},
-/*  3 */ { 2, s_3_3, -1, 2, 0},
-/*  4 */ { 2, s_3_4, -1, 2, 0}
+{ 4, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 2, s_3_2, -1, 2, 0},
+{ 2, s_3_3, -1, 2, 0},
+{ 2, s_3_4, -1, 2, 0}
 };
 
 static const symbol s_4_0[2] = { 'i', 'c' };
@@ -160,10 +160,10 @@ static const symbol s_4_3[2] = { 'i', 'v' };
 
 static const struct among a_4[4] =
 {
-/*  0 */ { 2, s_4_0, -1, -1, 0},
-/*  1 */ { 4, s_4_1, -1, -1, 0},
-/*  2 */ { 2, s_4_2, -1, -1, 0},
-/*  3 */ { 2, s_4_3, -1, 1, 0}
+{ 2, s_4_0, -1, -1, 0},
+{ 4, s_4_1, -1, -1, 0},
+{ 2, s_4_2, -1, -1, 0},
+{ 2, s_4_3, -1, 1, 0}
 };
 
 static const symbol s_5_0[2] = { 'i', 'c' };
@@ -172,9 +172,9 @@ static const symbol s_5_2[2] = { 'i', 'v' };
 
 static const struct among a_5[3] =
 {
-/*  0 */ { 2, s_5_0, -1, 1, 0},
-/*  1 */ { 4, s_5_1, -1, 1, 0},
-/*  2 */ { 2, s_5_2, -1, 1, 0}
+{ 2, s_5_0, -1, 1, 0},
+{ 4, s_5_1, -1, 1, 0},
+{ 2, s_5_2, -1, 1, 0}
 };
 
 static const symbol s_6_0[3] = { 'i', 'c', 'a' };
@@ -231,57 +231,57 @@ static const symbol s_6_50[4] = { 'i', 's', 't', 0xEC };
 
 static const struct among a_6[51] =
 {
-/*  0 */ { 3, s_6_0, -1, 1, 0},
-/*  1 */ { 5, s_6_1, -1, 3, 0},
-/*  2 */ { 3, s_6_2, -1, 1, 0},
-/*  3 */ { 4, s_6_3, -1, 1, 0},
-/*  4 */ { 3, s_6_4, -1, 9, 0},
-/*  5 */ { 4, s_6_5, -1, 1, 0},
-/*  6 */ { 4, s_6_6, -1, 5, 0},
-/*  7 */ { 3, s_6_7, -1, 1, 0},
-/*  8 */ { 6, s_6_8, 7, 1, 0},
-/*  9 */ { 4, s_6_9, -1, 1, 0},
-/* 10 */ { 5, s_6_10, -1, 3, 0},
-/* 11 */ { 5, s_6_11, -1, 1, 0},
-/* 12 */ { 5, s_6_12, -1, 1, 0},
-/* 13 */ { 6, s_6_13, -1, 4, 0},
-/* 14 */ { 6, s_6_14, -1, 2, 0},
-/* 15 */ { 6, s_6_15, -1, 4, 0},
-/* 16 */ { 5, s_6_16, -1, 2, 0},
-/* 17 */ { 3, s_6_17, -1, 1, 0},
-/* 18 */ { 4, s_6_18, -1, 1, 0},
-/* 19 */ { 5, s_6_19, -1, 1, 0},
-/* 20 */ { 6, s_6_20, 19, 7, 0},
-/* 21 */ { 4, s_6_21, -1, 1, 0},
-/* 22 */ { 3, s_6_22, -1, 9, 0},
-/* 23 */ { 4, s_6_23, -1, 1, 0},
-/* 24 */ { 4, s_6_24, -1, 5, 0},
-/* 25 */ { 3, s_6_25, -1, 1, 0},
-/* 26 */ { 6, s_6_26, 25, 1, 0},
-/* 27 */ { 4, s_6_27, -1, 1, 0},
-/* 28 */ { 5, s_6_28, -1, 1, 0},
-/* 29 */ { 5, s_6_29, -1, 1, 0},
-/* 30 */ { 4, s_6_30, -1, 1, 0},
-/* 31 */ { 6, s_6_31, -1, 4, 0},
-/* 32 */ { 6, s_6_32, -1, 2, 0},
-/* 33 */ { 6, s_6_33, -1, 4, 0},
-/* 34 */ { 5, s_6_34, -1, 2, 0},
-/* 35 */ { 3, s_6_35, -1, 1, 0},
-/* 36 */ { 4, s_6_36, -1, 1, 0},
-/* 37 */ { 6, s_6_37, -1, 6, 0},
-/* 38 */ { 6, s_6_38, -1, 6, 0},
-/* 39 */ { 4, s_6_39, -1, 1, 0},
-/* 40 */ { 3, s_6_40, -1, 9, 0},
-/* 41 */ { 3, s_6_41, -1, 1, 0},
-/* 42 */ { 4, s_6_42, -1, 1, 0},
-/* 43 */ { 3, s_6_43, -1, 1, 0},
-/* 44 */ { 6, s_6_44, -1, 6, 0},
-/* 45 */ { 6, s_6_45, -1, 6, 0},
-/* 46 */ { 3, s_6_46, -1, 9, 0},
-/* 47 */ { 3, s_6_47, -1, 8, 0},
-/* 48 */ { 4, s_6_48, -1, 1, 0},
-/* 49 */ { 4, s_6_49, -1, 1, 0},
-/* 50 */ { 4, s_6_50, -1, 1, 0}
+{ 3, s_6_0, -1, 1, 0},
+{ 5, s_6_1, -1, 3, 0},
+{ 3, s_6_2, -1, 1, 0},
+{ 4, s_6_3, -1, 1, 0},
+{ 3, s_6_4, -1, 9, 0},
+{ 4, s_6_5, -1, 1, 0},
+{ 4, s_6_6, -1, 5, 0},
+{ 3, s_6_7, -1, 1, 0},
+{ 6, s_6_8, 7, 1, 0},
+{ 4, s_6_9, -1, 1, 0},
+{ 5, s_6_10, -1, 3, 0},
+{ 5, s_6_11, -1, 1, 0},
+{ 5, s_6_12, -1, 1, 0},
+{ 6, s_6_13, -1, 4, 0},
+{ 6, s_6_14, -1, 2, 0},
+{ 6, s_6_15, -1, 4, 0},
+{ 5, s_6_16, -1, 2, 0},
+{ 3, s_6_17, -1, 1, 0},
+{ 4, s_6_18, -1, 1, 0},
+{ 5, s_6_19, -1, 1, 0},
+{ 6, s_6_20, 19, 7, 0},
+{ 4, s_6_21, -1, 1, 0},
+{ 3, s_6_22, -1, 9, 0},
+{ 4, s_6_23, -1, 1, 0},
+{ 4, s_6_24, -1, 5, 0},
+{ 3, s_6_25, -1, 1, 0},
+{ 6, s_6_26, 25, 1, 0},
+{ 4, s_6_27, -1, 1, 0},
+{ 5, s_6_28, -1, 1, 0},
+{ 5, s_6_29, -1, 1, 0},
+{ 4, s_6_30, -1, 1, 0},
+{ 6, s_6_31, -1, 4, 0},
+{ 6, s_6_32, -1, 2, 0},
+{ 6, s_6_33, -1, 4, 0},
+{ 5, s_6_34, -1, 2, 0},
+{ 3, s_6_35, -1, 1, 0},
+{ 4, s_6_36, -1, 1, 0},
+{ 6, s_6_37, -1, 6, 0},
+{ 6, s_6_38, -1, 6, 0},
+{ 4, s_6_39, -1, 1, 0},
+{ 3, s_6_40, -1, 9, 0},
+{ 3, s_6_41, -1, 1, 0},
+{ 4, s_6_42, -1, 1, 0},
+{ 3, s_6_43, -1, 1, 0},
+{ 6, s_6_44, -1, 6, 0},
+{ 6, s_6_45, -1, 6, 0},
+{ 3, s_6_46, -1, 9, 0},
+{ 3, s_6_47, -1, 8, 0},
+{ 4, s_6_48, -1, 1, 0},
+{ 4, s_6_49, -1, 1, 0},
+{ 4, s_6_50, -1, 1, 0}
 };
 
 static const symbol s_7_0[4] = { 'i', 's', 'c', 'a' };
@@ -374,93 +374,93 @@ static const symbol s_7_86[3] = { 'i', 'r', 0xF2 };
 
 static const struct among a_7[87] =
 {
-/*  0 */ { 4, s_7_0, -1, 1, 0},
-/*  1 */ { 4, s_7_1, -1, 1, 0},
-/*  2 */ { 3, s_7_2, -1, 1, 0},
-/*  3 */ { 3, s_7_3, -1, 1, 0},
-/*  4 */ { 3, s_7_4, -1, 1, 0},
-/*  5 */ { 3, s_7_5, -1, 1, 0},
-/*  6 */ { 3, s_7_6, -1, 1, 0},
-/*  7 */ { 3, s_7_7, -1, 1, 0},
-/*  8 */ { 6, s_7_8, -1, 1, 0},
-/*  9 */ { 6, s_7_9, -1, 1, 0},
-/* 10 */ { 4, s_7_10, -1, 1, 0},
-/* 11 */ { 4, s_7_11, -1, 1, 0},
-/* 12 */ { 3, s_7_12, -1, 1, 0},
-/* 13 */ { 3, s_7_13, -1, 1, 0},
-/* 14 */ { 3, s_7_14, -1, 1, 0},
-/* 15 */ { 4, s_7_15, -1, 1, 0},
-/* 16 */ { 3, s_7_16, -1, 1, 0},
-/* 17 */ { 5, s_7_17, 16, 1, 0},
-/* 18 */ { 5, s_7_18, 16, 1, 0},
-/* 19 */ { 5, s_7_19, 16, 1, 0},
-/* 20 */ { 3, s_7_20, -1, 1, 0},
-/* 21 */ { 5, s_7_21, 20, 1, 0},
-/* 22 */ { 5, s_7_22, 20, 1, 0},
-/* 23 */ { 3, s_7_23, -1, 1, 0},
-/* 24 */ { 6, s_7_24, -1, 1, 0},
-/* 25 */ { 6, s_7_25, -1, 1, 0},
-/* 26 */ { 3, s_7_26, -1, 1, 0},
-/* 27 */ { 4, s_7_27, -1, 1, 0},
-/* 28 */ { 4, s_7_28, -1, 1, 0},
-/* 29 */ { 4, s_7_29, -1, 1, 0},
-/* 30 */ { 4, s_7_30, -1, 1, 0},
-/* 31 */ { 4, s_7_31, -1, 1, 0},
-/* 32 */ { 4, s_7_32, -1, 1, 0},
-/* 33 */ { 4, s_7_33, -1, 1, 0},
-/* 34 */ { 3, s_7_34, -1, 1, 0},
-/* 35 */ { 3, s_7_35, -1, 1, 0},
-/* 36 */ { 6, s_7_36, -1, 1, 0},
-/* 37 */ { 6, s_7_37, -1, 1, 0},
-/* 38 */ { 3, s_7_38, -1, 1, 0},
-/* 39 */ { 3, s_7_39, -1, 1, 0},
-/* 40 */ { 3, s_7_40, -1, 1, 0},
-/* 41 */ { 3, s_7_41, -1, 1, 0},
-/* 42 */ { 4, s_7_42, -1, 1, 0},
-/* 43 */ { 4, s_7_43, -1, 1, 0},
-/* 44 */ { 4, s_7_44, -1, 1, 0},
-/* 45 */ { 4, s_7_45, -1, 1, 0},
-/* 46 */ { 4, s_7_46, -1, 1, 0},
-/* 47 */ { 5, s_7_47, -1, 1, 0},
-/* 48 */ { 5, s_7_48, -1, 1, 0},
-/* 49 */ { 5, s_7_49, -1, 1, 0},
-/* 50 */ { 5, s_7_50, -1, 1, 0},
-/* 51 */ { 5, s_7_51, -1, 1, 0},
-/* 52 */ { 6, s_7_52, -1, 1, 0},
-/* 53 */ { 4, s_7_53, -1, 1, 0},
-/* 54 */ { 4, s_7_54, -1, 1, 0},
-/* 55 */ { 6, s_7_55, 54, 1, 0},
-/* 56 */ { 6, s_7_56, 54, 1, 0},
-/* 57 */ { 4, s_7_57, -1, 1, 0},
-/* 58 */ { 3, s_7_58, -1, 1, 0},
-/* 59 */ { 6, s_7_59, 58, 1, 0},
-/* 60 */ { 5, s_7_60, 58, 1, 0},
-/* 61 */ { 5, s_7_61, 58, 1, 0},
-/* 62 */ { 5, s_7_62, 58, 1, 0},
-/* 63 */ { 6, s_7_63, -1, 1, 0},
-/* 64 */ { 6, s_7_64, -1, 1, 0},
-/* 65 */ { 3, s_7_65, -1, 1, 0},
-/* 66 */ { 6, s_7_66, 65, 1, 0},
-/* 67 */ { 5, s_7_67, 65, 1, 0},
-/* 68 */ { 5, s_7_68, 65, 1, 0},
-/* 69 */ { 5, s_7_69, 65, 1, 0},
-/* 70 */ { 8, s_7_70, -1, 1, 0},
-/* 71 */ { 8, s_7_71, -1, 1, 0},
-/* 72 */ { 6, s_7_72, -1, 1, 0},
-/* 73 */ { 6, s_7_73, -1, 1, 0},
-/* 74 */ { 6, s_7_74, -1, 1, 0},
-/* 75 */ { 3, s_7_75, -1, 1, 0},
-/* 76 */ { 3, s_7_76, -1, 1, 0},
-/* 77 */ { 3, s_7_77, -1, 1, 0},
-/* 78 */ { 3, s_7_78, -1, 1, 0},
-/* 79 */ { 3, s_7_79, -1, 1, 0},
-/* 80 */ { 3, s_7_80, -1, 1, 0},
-/* 81 */ { 2, s_7_81, -1, 1, 0},
-/* 82 */ { 2, s_7_82, -1, 1, 0},
-/* 83 */ { 3, s_7_83, -1, 1, 0},
-/* 84 */ { 3, s_7_84, -1, 1, 0},
-/* 85 */ { 3, s_7_85, -1, 1, 0},
-/* 86 */ { 3, s_7_86, -1, 1, 0}
+{ 4, s_7_0, -1, 1, 0},
+{ 4, s_7_1, -1, 1, 0},
+{ 3, s_7_2, -1, 1, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 3, s_7_4, -1, 1, 0},
+{ 3, s_7_5, -1, 1, 0},
+{ 3, s_7_6, -1, 1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 6, s_7_8, -1, 1, 0},
+{ 6, s_7_9, -1, 1, 0},
+{ 4, s_7_10, -1, 1, 0},
+{ 4, s_7_11, -1, 1, 0},
+{ 3, s_7_12, -1, 1, 0},
+{ 3, s_7_13, -1, 1, 0},
+{ 3, s_7_14, -1, 1, 0},
+{ 4, s_7_15, -1, 1, 0},
+{ 3, s_7_16, -1, 1, 0},
+{ 5, s_7_17, 16, 1, 0},
+{ 5, s_7_18, 16, 1, 0},
+{ 5, s_7_19, 16, 1, 0},
+{ 3, s_7_20, -1, 1, 0},
+{ 5, s_7_21, 20, 1, 0},
+{ 5, s_7_22, 20, 1, 0},
+{ 3, s_7_23, -1, 1, 0},
+{ 6, s_7_24, -1, 1, 0},
+{ 6, s_7_25, -1, 1, 0},
+{ 3, s_7_26, -1, 1, 0},
+{ 4, s_7_27, -1, 1, 0},
+{ 4, s_7_28, -1, 1, 0},
+{ 4, s_7_29, -1, 1, 0},
+{ 4, s_7_30, -1, 1, 0},
+{ 4, s_7_31, -1, 1, 0},
+{ 4, s_7_32, -1, 1, 0},
+{ 4, s_7_33, -1, 1, 0},
+{ 3, s_7_34, -1, 1, 0},
+{ 3, s_7_35, -1, 1, 0},
+{ 6, s_7_36, -1, 1, 0},
+{ 6, s_7_37, -1, 1, 0},
+{ 3, s_7_38, -1, 1, 0},
+{ 3, s_7_39, -1, 1, 0},
+{ 3, s_7_40, -1, 1, 0},
+{ 3, s_7_41, -1, 1, 0},
+{ 4, s_7_42, -1, 1, 0},
+{ 4, s_7_43, -1, 1, 0},
+{ 4, s_7_44, -1, 1, 0},
+{ 4, s_7_45, -1, 1, 0},
+{ 4, s_7_46, -1, 1, 0},
+{ 5, s_7_47, -1, 1, 0},
+{ 5, s_7_48, -1, 1, 0},
+{ 5, s_7_49, -1, 1, 0},
+{ 5, s_7_50, -1, 1, 0},
+{ 5, s_7_51, -1, 1, 0},
+{ 6, s_7_52, -1, 1, 0},
+{ 4, s_7_53, -1, 1, 0},
+{ 4, s_7_54, -1, 1, 0},
+{ 6, s_7_55, 54, 1, 0},
+{ 6, s_7_56, 54, 1, 0},
+{ 4, s_7_57, -1, 1, 0},
+{ 3, s_7_58, -1, 1, 0},
+{ 6, s_7_59, 58, 1, 0},
+{ 5, s_7_60, 58, 1, 0},
+{ 5, s_7_61, 58, 1, 0},
+{ 5, s_7_62, 58, 1, 0},
+{ 6, s_7_63, -1, 1, 0},
+{ 6, s_7_64, -1, 1, 0},
+{ 3, s_7_65, -1, 1, 0},
+{ 6, s_7_66, 65, 1, 0},
+{ 5, s_7_67, 65, 1, 0},
+{ 5, s_7_68, 65, 1, 0},
+{ 5, s_7_69, 65, 1, 0},
+{ 8, s_7_70, -1, 1, 0},
+{ 8, s_7_71, -1, 1, 0},
+{ 6, s_7_72, -1, 1, 0},
+{ 6, s_7_73, -1, 1, 0},
+{ 6, s_7_74, -1, 1, 0},
+{ 3, s_7_75, -1, 1, 0},
+{ 3, s_7_76, -1, 1, 0},
+{ 3, s_7_77, -1, 1, 0},
+{ 3, s_7_78, -1, 1, 0},
+{ 3, s_7_79, -1, 1, 0},
+{ 3, s_7_80, -1, 1, 0},
+{ 2, s_7_81, -1, 1, 0},
+{ 2, s_7_82, -1, 1, 0},
+{ 3, s_7_83, -1, 1, 0},
+{ 3, s_7_84, -1, 1, 0},
+{ 3, s_7_85, -1, 1, 0},
+{ 3, s_7_86, -1, 1, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 };
@@ -488,50 +488,49 @@ static const symbol s_15[] = { 'a', 't' };
 static const symbol s_16[] = { 'a', 't' };
 static const symbol s_17[] = { 'i', 'c' };
 
-static int r_prelude(struct SN_env * z) { /* forwardmode */
+static int r_prelude(struct SN_env * z) {
     int among_var;
-    {   int c_test1 = z->c; /* test, line 35 */
-/* repeat, line 35 */
-
-        while(1) {            int c2 = z->c;
-            z->bra = z->c; /* [, line 36 */
-            among_var = find_among(z, a_0, 7); /* substring, line 36 */
+    {   int c_test1 = z->c;
+        while(1) {
+            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; /* ], line 36 */
-            switch (among_var) { /* among, line 36 */
+            z->ket = z->c;
+            switch (among_var) {
                 case 1:
-                    {   int ret = slice_from_s(z, 1, s_0); /* <-, line 37 */
+                    {   int ret = slice_from_s(z, 1, s_0);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 2:
-                    {   int ret = slice_from_s(z, 1, s_1); /* <-, line 38 */
+                    {   int ret = slice_from_s(z, 1, s_1);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 3:
-                    {   int ret = slice_from_s(z, 1, s_2); /* <-, line 39 */
+                    {   int ret = slice_from_s(z, 1, s_2);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 4:
-                    {   int ret = slice_from_s(z, 1, s_3); /* <-, line 40 */
+                    {   int ret = slice_from_s(z, 1, s_3);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 5:
-                    {   int ret = slice_from_s(z, 1, s_4); /* <-, line 41 */
+                    {   int ret = slice_from_s(z, 1, s_4);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 6:
-                    {   int ret = slice_from_s(z, 2, s_5); /* <-, line 42 */
+                    {   int ret = slice_from_s(z, 2, s_5);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 7:
                     if (z->c >= z->l) goto lab0;
-                    z->c++; /* next, line 43 */
+                    z->c++;
                     break;
             }
             continue;
@@ -541,29 +540,28 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
         }
         z->c = c_test1;
     }
-/* repeat, line 46 */
-
-    while(1) {        int c3 = z->c;
-        while(1) { /* goto, line 46 */
+    while(1) {
+        int c3 = z->c;
+        while(1) {
             int c4 = z->c;
-            if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 47 */
-            z->bra = z->c; /* [, line 47 */
-            {   int c5 = z->c; /* or, line 47 */
-                if (z->c == z->l || z->p[z->c] != 'u') goto lab4; /* literal, line 47 */
+            if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
+            z->bra = z->c;
+            {   int c5 = z->c;
+                if (z->c == z->l || z->p[z->c] != 'u') goto lab4;
                 z->c++;
-                z->ket = z->c; /* ], line 47 */
-                if (in_grouping(z, g_v, 97, 249, 0)) goto lab4; /* grouping v, line 47 */
-                {   int ret = slice_from_s(z, 1, s_6); /* <-, line 47 */
+                z->ket = z->c;
+                if (in_grouping(z, g_v, 97, 249, 0)) goto lab4;
+                {   int ret = slice_from_s(z, 1, s_6);
                     if (ret < 0) return ret;
                 }
                 goto lab3;
             lab4:
                 z->c = c5;
-                if (z->c == z->l || z->p[z->c] != 'i') goto lab2; /* literal, line 48 */
+                if (z->c == z->l || z->p[z->c] != 'i') goto lab2;
                 z->c++;
-                z->ket = z->c; /* ], line 48 */
-                if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 48 */
-                {   int ret = slice_from_s(z, 1, s_7); /* <-, line 48 */
+                z->ket = z->c;
+                if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
+                {   int ret = slice_from_s(z, 1, s_7);
                     if (ret < 0) return ret;
                 }
             }
@@ -573,7 +571,7 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
         lab2:
             z->c = c4;
             if (z->c >= z->l) goto lab1;
-            z->c++; /* goto, line 46 */
+            z->c++;
         }
         continue;
     lab1:
@@ -583,16 +581,16 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $pV = <integer expression>, line 54 */
-    z->I[1] = z->l; /* $p1 = <integer expression>, line 55 */
-    z->I[2] = z->l; /* $p2 = <integer expression>, line 56 */
-    {   int c1 = z->c; /* do, line 58 */
-        {   int c2 = z->c; /* or, line 60 */
-            if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 59 */
-            {   int c3 = z->c; /* or, line 59 */
-                if (out_grouping(z, g_v, 97, 249, 0)) goto lab4; /* non v, line 59 */
-                {    /* gopast */ /* grouping v, line 59 */
+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, 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;
@@ -600,8 +598,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
                 goto lab3;
             lab4:
                 z->c = c3;
-                if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 59 */
-                {    /* gopast */ /* non v, line 59 */
+                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;
@@ -611,10 +609,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
             goto lab1;
         lab2:
             z->c = c2;
-            if (out_grouping(z, g_v, 97, 249, 0)) goto lab0; /* non v, line 61 */
-            {   int c4 = z->c; /* or, line 61 */
-                if (out_grouping(z, g_v, 97, 249, 0)) goto lab6; /* non v, line 61 */
-                {    /* gopast */ /* grouping v, line 61 */
+            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;
@@ -622,71 +620,70 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
                 goto lab5;
             lab6:
                 z->c = c4;
-                if (in_grouping(z, g_v, 97, 249, 0)) goto lab0; /* grouping v, line 61 */
+                if (in_grouping(z, g_v, 97, 249, 0)) goto lab0;
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 61 */
+                z->c++;
             }
         lab5:
             ;
         }
     lab1:
-        z->I[0] = z->c; /* setmark pV, line 62 */
+        z->I[2] = z->c;
     lab0:
         z->c = c1;
     }
-    {   int c5 = z->c; /* do, line 64 */
-        {    /* gopast */ /* grouping v, line 65 */
+    {   int c5 = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 249, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 65 */
+        {   
             int ret = in_grouping(z, g_v, 97, 249, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p1, line 65 */
-        {    /* gopast */ /* grouping v, line 66 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 249, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 66 */
+        {   
             int ret = in_grouping(z, g_v, 97, 249, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        z->I[2] = z->c; /* setmark p2, line 66 */
+        z->I[0] = z->c;
     lab7:
         z->c = c5;
     }
     return 1;
 }
 
-static int r_postlude(struct SN_env * z) { /* forwardmode */
+static int r_postlude(struct SN_env * z) {
     int among_var;
-/* repeat, line 70 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 72 */
-        if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else /* substring, line 72 */
+    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_1, 3);
         if (!(among_var)) goto lab0;
-        z->ket = z->c; /* ], line 72 */
-        switch (among_var) { /* among, line 72 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_8); /* <-, line 73 */
+                {   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_9); /* <-, line 74 */
+                {   int ret = slice_from_s(z, 1, s_9);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 75 */
+                z->c++;
                 break;
         }
         continue;
@@ -697,41 +694,41 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_RV(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 82 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 83 */
+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) { /* backwardmode */
-    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 84 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */
+static int r_attached_pronoun(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 87 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 87 */
+    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;
-    z->bra = z->c; /* ], line 87 */
-    if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; /* among, line 97 */
+    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;
-    {   int ret = r_RV(z); /* call RV, line 97 */
+    {   int ret = r_RV(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 97 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 98 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_10); /* <-, line 99 */
+            {   int ret = slice_from_s(z, 1, s_10);
                 if (ret < 0) return ret;
             }
             break;
@@ -739,37 +736,37 @@ static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
+static int r_standard_suffix(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 104 */
-    among_var = find_among_b(z, a_6, 51); /* substring, line 104 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_6, 51);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 104 */
-    switch (among_var) { /* among, line 104 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R2(z); /* call R2, line 111 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 111 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 113 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 113 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m1 = z->l - z->c; (void)m1; /* try, line 114 */
-                z->ket = z->c; /* [, line 114 */
-                if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m1; goto lab0; } /* literal, line 114 */
-                z->bra = z->c; /* ], line 114 */
-                {   int ret = r_R2(z); /* call R2, line 114 */
+            {   int m1 = z->l - z->c; (void)m1;
+                z->ket = z->c;
+                if (!(eq_s_b(z, 2, s_11))) { 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; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 114 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             lab0:
@@ -777,67 +774,67 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 3:
-            {   int ret = r_R2(z); /* call R2, line 117 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_12); /* <-, line 117 */
+            {   int ret = slice_from_s(z, 3, s_12);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = r_R2(z); /* call R2, line 119 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 1, s_13); /* <-, line 119 */
+            {   int ret = slice_from_s(z, 1, s_13);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = r_R2(z); /* call R2, line 121 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 4, s_14); /* <-, line 121 */
+            {   int ret = slice_from_s(z, 4, s_14);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = r_RV(z); /* call RV, line 123 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 123 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 7:
-            {   int ret = r_R1(z); /* call R1, line 125 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 125 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m2 = z->l - z->c; (void)m2; /* try, line 126 */
-                z->ket = z->c; /* [, line 127 */
-                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; } /* substring, line 127 */
+            {   int m2 = z->l - z->c; (void)m2;
+                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; }
-                z->bra = z->c; /* ], line 127 */
-                {   int ret = r_R2(z); /* call R2, line 127 */
+                z->bra = z->c;
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m2; goto lab1; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 127 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                switch (among_var) { /* among, line 127 */
+                switch (among_var) {
                     case 1:
-                        z->ket = z->c; /* [, line 128 */
-                        if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m2; goto lab1; } /* literal, line 128 */
-                        z->bra = z->c; /* ], line 128 */
-                        {   int ret = r_R2(z); /* call R2, line 128 */
+                        z->ket = z->c;
+                        if (!(eq_s_b(z, 2, s_15))) { 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; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 128 */
+                        {   int ret = slice_del(z);
                             if (ret < 0) return ret;
                         }
                         break;
@@ -847,22 +844,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 8:
-            {   int ret = r_R2(z); /* call R2, line 134 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 134 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m3 = z->l - z->c; (void)m3; /* try, line 135 */
-                z->ket = z->c; /* [, line 136 */
-                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; } /* substring, line 136 */
+            {   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; }
-                z->bra = z->c; /* ], line 136 */
-                {   int ret = r_R2(z); /* call R2, line 137 */
+                z->bra = z->c;
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m3; goto lab2; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 137 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             lab2:
@@ -870,31 +867,31 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 9:
-            {   int ret = r_R2(z); /* call R2, line 142 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 142 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m4 = z->l - z->c; (void)m4; /* try, line 143 */
-                z->ket = z->c; /* [, line 143 */
-                if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */
-                z->bra = z->c; /* ], line 143 */
-                {   int ret = r_R2(z); /* call R2, line 143 */
+            {   int m4 = z->l - z->c; (void)m4;
+                z->ket = z->c;
+                if (!(eq_s_b(z, 2, s_16))) { 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; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 143 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                z->ket = z->c; /* [, line 143 */
-                if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */
-                z->bra = z->c; /* ], line 143 */
-                {   int ret = r_R2(z); /* call R2, line 143 */
+                z->ket = z->c;
+                if (!(eq_s_b(z, 2, s_17))) { 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; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 143 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             lab3:
@@ -905,15 +902,15 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
+static int r_verb_suffix(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 148 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 149 */
-        if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; } /* substring, line 149 */
-        z->bra = z->c; /* ], line 149 */
-        {   int ret = slice_del(z); /* delete, line 163 */
+    {   int mlimit1;
+        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; }
+        z->bra = z->c;
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
         z->lb = mlimit1;
@@ -921,43 +918,43 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */
-    {   int m1 = z->l - z->c; (void)m1; /* try, line 171 */
-        z->ket = z->c; /* [, line 172 */
-        if (in_grouping_b(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m1; goto lab0; } /* grouping AEIO, line 172 */
-        z->bra = z->c; /* ], line 172 */
-        {   int ret = r_RV(z); /* call RV, line 172 */
+static int r_vowel_suffix(struct SN_env * z) {
+    {   int m1 = z->l - z->c; (void)m1;
+        z->ket = z->c;
+        if (in_grouping_b(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m1; goto lab0; }
+        z->bra = z->c;
+        {   int ret = r_RV(z);
             if (ret == 0) { z->c = z->l - m1; goto lab0; }
             if (ret < 0) return ret;
         }
-        {   int ret = slice_del(z); /* delete, line 172 */
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
-        z->ket = z->c; /* [, line 173 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 'i') { z->c = z->l - m1; goto lab0; } /* literal, line 173 */
+        z->ket = z->c;
+        if (z->c <= z->lb || z->p[z->c - 1] != 'i') { z->c = z->l - m1; goto lab0; }
         z->c--;
-        z->bra = z->c; /* ], line 173 */
-        {   int ret = r_RV(z); /* call RV, line 173 */
+        z->bra = z->c;
+        {   int ret = r_RV(z);
             if (ret == 0) { z->c = z->l - m1; goto lab0; }
             if (ret < 0) return ret;
         }
-        {   int ret = slice_del(z); /* delete, line 173 */
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
     lab0:
         ;
     }
-    {   int m2 = z->l - z->c; (void)m2; /* try, line 175 */
-        z->ket = z->c; /* [, line 176 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 'h') { z->c = z->l - m2; goto lab1; } /* literal, line 176 */
+    {   int m2 = z->l - z->c; (void)m2;
+        z->ket = z->c;
+        if (z->c <= z->lb || z->p[z->c - 1] != 'h') { z->c = z->l - m2; goto lab1; }
         z->c--;
-        z->bra = z->c; /* ], line 176 */
-        if (in_grouping_b(z, g_CG, 99, 103, 0)) { z->c = z->l - m2; goto lab1; } /* grouping CG, line 176 */
-        {   int ret = r_RV(z); /* call RV, line 176 */
+        z->bra = z->c;
+        if (in_grouping_b(z, g_CG, 99, 103, 0)) { z->c = z->l - m2; goto lab1; }
+        {   int ret = r_RV(z);
             if (ret == 0) { z->c = z->l - m2; goto lab1; }
             if (ret < 0) return ret;
         }
-        {   int ret = slice_del(z); /* delete, line 176 */
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
     lab1:
@@ -966,35 +963,35 @@ static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int italian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 182 */
-        {   int ret = r_prelude(z); /* call prelude, line 182 */
+extern int italian_ISO_8859_1_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_prelude(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    /* do, line 183 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 183 */
+    
+    {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 184 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 185 */
-        {   int ret = r_attached_pronoun(z); /* call attached_pronoun, line 185 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_attached_pronoun(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 186 */
-        {   int m4 = z->l - z->c; (void)m4; /* or, line 186 */
-            {   int ret = r_standard_suffix(z); /* call standard_suffix, line 186 */
+    {   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;
                 if (ret < 0) return ret;
             }
             goto lab1;
         lab2:
             z->c = z->l - m4;
-            {   int ret = r_verb_suffix(z); /* call verb_suffix, line 186 */
+            {   int ret = r_verb_suffix(z);
                 if (ret == 0) goto lab0;
                 if (ret < 0) return ret;
             }
@@ -1003,15 +1000,15 @@ extern int italian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     lab0:
         z->c = z->l - m3;
     }
-    {   int m5 = z->l - z->c; (void)m5; /* do, line 187 */
-        {   int ret = r_vowel_suffix(z); /* call vowel_suffix, line 187 */
+    {   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; /* do, line 189 */
-        {   int ret = r_postlude(z); /* call postlude, line 189 */
+    {   int c6 = z->c;
+        {   int ret = r_postlude(z);
             if (ret < 0) return ret;
         }
         z->c = c6;
@@ -1019,7 +1016,7 @@ extern int italian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * italian_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
+extern struct SN_env * italian_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
 
 extern void italian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index a70f6f5aa200a2e3dc192f5687c1742f0ea5c443..59f7579f1d70ec2f06aedd2aa60e83af275ab492 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -57,35 +57,35 @@ static const symbol s_0_28[3] = { 'a', 's', 't' };
 
 static const struct among a_0[29] =
 {
-/*  0 */ { 1, s_0_0, -1, 1, 0},
-/*  1 */ { 1, s_0_1, -1, 1, 0},
-/*  2 */ { 3, s_0_2, 1, 1, 0},
-/*  3 */ { 4, s_0_3, 1, 1, 0},
-/*  4 */ { 4, s_0_4, 1, 1, 0},
-/*  5 */ { 3, s_0_5, 1, 1, 0},
-/*  6 */ { 3, s_0_6, 1, 1, 0},
-/*  7 */ { 6, s_0_7, 6, 1, 0},
-/*  8 */ { 4, s_0_8, 1, 3, 0},
-/*  9 */ { 2, s_0_9, -1, 1, 0},
-/* 10 */ { 5, s_0_10, 9, 1, 0},
-/* 11 */ { 2, s_0_11, -1, 1, 0},
-/* 12 */ { 2, s_0_12, -1, 1, 0},
-/* 13 */ { 5, s_0_13, 12, 1, 0},
-/* 14 */ { 1, s_0_14, -1, 2, 0},
-/* 15 */ { 2, s_0_15, 14, 1, 0},
-/* 16 */ { 2, s_0_16, 14, 1, 0},
-/* 17 */ { 4, s_0_17, 16, 1, 0},
-/* 18 */ { 5, s_0_18, 16, 1, 0},
-/* 19 */ { 4, s_0_19, 16, 1, 0},
-/* 20 */ { 7, s_0_20, 19, 1, 0},
-/* 21 */ { 3, s_0_21, 14, 1, 0},
-/* 22 */ { 6, s_0_22, 21, 1, 0},
-/* 23 */ { 3, s_0_23, 14, 1, 0},
-/* 24 */ { 3, s_0_24, 14, 1, 0},
-/* 25 */ { 2, s_0_25, -1, 1, 0},
-/* 26 */ { 3, s_0_26, 25, 1, 0},
-/* 27 */ { 3, s_0_27, -1, 3, 0},
-/* 28 */ { 3, s_0_28, -1, 1, 0}
+{ 1, s_0_0, -1, 1, 0},
+{ 1, s_0_1, -1, 1, 0},
+{ 3, s_0_2, 1, 1, 0},
+{ 4, s_0_3, 1, 1, 0},
+{ 4, s_0_4, 1, 1, 0},
+{ 3, s_0_5, 1, 1, 0},
+{ 3, s_0_6, 1, 1, 0},
+{ 6, s_0_7, 6, 1, 0},
+{ 4, s_0_8, 1, 3, 0},
+{ 2, s_0_9, -1, 1, 0},
+{ 5, s_0_10, 9, 1, 0},
+{ 2, s_0_11, -1, 1, 0},
+{ 2, s_0_12, -1, 1, 0},
+{ 5, s_0_13, 12, 1, 0},
+{ 1, s_0_14, -1, 2, 0},
+{ 2, s_0_15, 14, 1, 0},
+{ 2, s_0_16, 14, 1, 0},
+{ 4, s_0_17, 16, 1, 0},
+{ 5, s_0_18, 16, 1, 0},
+{ 4, s_0_19, 16, 1, 0},
+{ 7, s_0_20, 19, 1, 0},
+{ 3, s_0_21, 14, 1, 0},
+{ 6, s_0_22, 21, 1, 0},
+{ 3, s_0_23, 14, 1, 0},
+{ 3, s_0_24, 14, 1, 0},
+{ 2, s_0_25, -1, 1, 0},
+{ 3, s_0_26, 25, 1, 0},
+{ 3, s_0_27, -1, 3, 0},
+{ 3, s_0_28, -1, 1, 0}
 };
 
 static const symbol s_1_0[2] = { 'd', 't' };
@@ -93,8 +93,8 @@ static const symbol s_1_1[2] = { 'v', 't' };
 
 static const struct among a_1[2] =
 {
-/*  0 */ { 2, s_1_0, -1, -1, 0},
-/*  1 */ { 2, s_1_1, -1, -1, 0}
+{ 2, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0}
 };
 
 static const symbol s_2_0[3] = { 'l', 'e', 'g' };
@@ -111,17 +111,17 @@ static const symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' };
 
 static const struct among a_2[11] =
 {
-/*  0 */ { 3, s_2_0, -1, 1, 0},
-/*  1 */ { 4, s_2_1, 0, 1, 0},
-/*  2 */ { 2, s_2_2, -1, 1, 0},
-/*  3 */ { 3, s_2_3, 2, 1, 0},
-/*  4 */ { 3, s_2_4, 2, 1, 0},
-/*  5 */ { 4, s_2_5, 4, 1, 0},
-/*  6 */ { 3, s_2_6, -1, 1, 0},
-/*  7 */ { 3, s_2_7, -1, 1, 0},
-/*  8 */ { 4, s_2_8, 7, 1, 0},
-/*  9 */ { 4, s_2_9, 7, 1, 0},
-/* 10 */ { 7, s_2_10, 9, 1, 0}
+{ 3, s_2_0, -1, 1, 0},
+{ 4, s_2_1, 0, 1, 0},
+{ 2, s_2_2, -1, 1, 0},
+{ 3, s_2_3, 2, 1, 0},
+{ 3, s_2_4, 2, 1, 0},
+{ 4, s_2_5, 4, 1, 0},
+{ 3, s_2_6, -1, 1, 0},
+{ 3, s_2_7, -1, 1, 0},
+{ 4, s_2_8, 7, 1, 0},
+{ 4, s_2_9, 7, 1, 0},
+{ 7, s_2_10, 9, 1, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 };
@@ -130,66 +130,64 @@ static const unsigned char g_s_ending[] = { 119, 125, 149, 1 };
 
 static const symbol s_0[] = { 'e', 'r' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */
-    {   int c_test1 = z->c; /* test, line 30 */
-        {   int ret = z->c + 3; /* hop, line 30 */
-            if (0 > ret || ret > z->l) return 0;
-            z->c = ret;
-        }
-        z->I[1] = z->c; /* setmark x, line 30 */
+static int r_mark_regions(struct SN_env * z) {
+    z->I[1] = 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;
     }
-    if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 31 */
-    {    /* gopast */ /* non v, line 31 */
+    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[0] = z->c; /* setmark p1, line 31 */
-    /* try, line 32 */
-    if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 32 */
-    z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 32 */
+    z->I[1] = z->c;
+    
+    if (!(z->I[1] < z->I[0])) goto lab0;
+    z->I[1] = z->I[0];
 lab0:
     return 1;
 }
 
-static int r_main_suffix(struct SN_env * z) { /* backwardmode */
+static int r_main_suffix(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 38 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 38 */
-        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; } /* substring, line 38 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[1];
+        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; }
-        z->bra = z->c; /* ], line 38 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 39 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 44 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int m2 = z->l - z->c; (void)m2; /* or, line 46 */
-                if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1; /* grouping s_ending, line 46 */
+            {   int m2 = z->l - z->c; (void)m2;
+                if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1;
                 goto lab0;
             lab1:
                 z->c = z->l - m2;
-                if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0; /* literal, line 46 */
+                if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0;
                 z->c--;
-                if (out_grouping_b(z, g_v, 97, 248, 0)) return 0; /* non v, line 46 */
+                if (out_grouping_b(z, g_v, 97, 248, 0)) return 0;
             }
         lab0:
-            {   int ret = slice_del(z); /* delete, line 46 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 2, s_0); /* <-, line 48 */
+            {   int ret = slice_from_s(z, 2, s_0);
                 if (ret < 0) return ret;
             }
             break;
@@ -197,69 +195,69 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
-    {   int m_test1 = z->l - z->c; /* test, line 53 */
+static int r_consonant_pair(struct SN_env * z) {
+    {   int m_test1 = z->l - z->c;
 
-        {   int mlimit2; /* setlimit, line 54 */
-            if (z->c < z->I[0]) return 0;
-            mlimit2 = z->lb; z->lb = z->I[0];
-            z->ket = z->c; /* [, line 54 */
-            if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; } /* substring, line 54 */
+        {   int mlimit2;
+            if (z->c < z->I[1]) return 0;
+            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; }
-            z->bra = z->c; /* ], line 54 */
+            z->bra = z->c;
             z->lb = mlimit2;
         }
         z->c = z->l - m_test1;
     }
     if (z->c <= z->lb) return 0;
-    z->c--; /* next, line 59 */
-    z->bra = z->c; /* ], line 59 */
-    {   int ret = slice_del(z); /* delete, line 59 */
+    z->c--;
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_other_suffix(struct SN_env * z) { /* backwardmode */
+static int r_other_suffix(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 63 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 63 */
-        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; } /* substring, line 63 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 63 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    {   int ret = slice_del(z); /* delete, line 67 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-extern int norwegian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 74 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 74 */
+extern int norwegian_ISO_8859_1_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 75 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 76 */
-        {   int ret = r_main_suffix(z); /* call main_suffix, line 76 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_main_suffix(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 77 */
-        {   int ret = r_consonant_pair(z); /* call consonant_pair, line 77 */
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_consonant_pair(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m3;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 78 */
-        {   int ret = r_other_suffix(z); /* call other_suffix, line 78 */
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int ret = r_other_suffix(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m4;
@@ -268,7 +266,7 @@ extern int norwegian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * norwegian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); }
+extern struct SN_env * norwegian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); }
 
 extern void norwegian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 4666afb725f20e7feaa8cb5bbe1fff87b5648504..c698662d42ce4c27f2d232e1938b3fbb2761568a 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -39,10 +39,10 @@ static const symbol s_0_3[2] = { 's', 's' };
 
 static const struct among a_0[4] =
 {
-/*  0 */ { 1, s_0_0, -1, 3, 0},
-/*  1 */ { 3, s_0_1, 0, 2, 0},
-/*  2 */ { 4, s_0_2, 0, 1, 0},
-/*  3 */ { 2, s_0_3, 0, -1, 0}
+{ 1, s_0_0, -1, 3, 0},
+{ 3, s_0_1, 0, 2, 0},
+{ 4, s_0_2, 0, 1, 0},
+{ 2, s_0_3, 0, -1, 0}
 };
 
 static const symbol s_1_1[2] = { 'b', 'b' };
@@ -60,19 +60,19 @@ static const symbol s_1_12[2] = { 'i', 'z' };
 
 static const struct among a_1[13] =
 {
-/*  0 */ { 0, 0, -1, 3, 0},
-/*  1 */ { 2, s_1_1, 0, 2, 0},
-/*  2 */ { 2, s_1_2, 0, 2, 0},
-/*  3 */ { 2, s_1_3, 0, 2, 0},
-/*  4 */ { 2, s_1_4, 0, 2, 0},
-/*  5 */ { 2, s_1_5, 0, 1, 0},
-/*  6 */ { 2, s_1_6, 0, 2, 0},
-/*  7 */ { 2, s_1_7, 0, 2, 0},
-/*  8 */ { 2, s_1_8, 0, 2, 0},
-/*  9 */ { 2, s_1_9, 0, 2, 0},
-/* 10 */ { 2, s_1_10, 0, 1, 0},
-/* 11 */ { 2, s_1_11, 0, 2, 0},
-/* 12 */ { 2, s_1_12, 0, 1, 0}
+{ 0, 0, -1, 3, 0},
+{ 2, s_1_1, 0, 2, 0},
+{ 2, s_1_2, 0, 2, 0},
+{ 2, s_1_3, 0, 2, 0},
+{ 2, s_1_4, 0, 2, 0},
+{ 2, s_1_5, 0, 1, 0},
+{ 2, s_1_6, 0, 2, 0},
+{ 2, s_1_7, 0, 2, 0},
+{ 2, s_1_8, 0, 2, 0},
+{ 2, s_1_9, 0, 2, 0},
+{ 2, s_1_10, 0, 1, 0},
+{ 2, s_1_11, 0, 2, 0},
+{ 2, s_1_12, 0, 1, 0}
 };
 
 static const symbol s_2_0[2] = { 'e', 'd' };
@@ -81,9 +81,9 @@ static const symbol s_2_2[3] = { 'i', 'n', 'g' };
 
 static const struct among a_2[3] =
 {
-/*  0 */ { 2, s_2_0, -1, 2, 0},
-/*  1 */ { 3, s_2_1, 0, 1, 0},
-/*  2 */ { 3, s_2_2, -1, 2, 0}
+{ 2, s_2_0, -1, 2, 0},
+{ 3, s_2_1, 0, 1, 0},
+{ 3, s_2_2, -1, 2, 0}
 };
 
 static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' };
@@ -109,26 +109,26 @@ static const symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
 
 static const struct among a_3[20] =
 {
-/*  0 */ { 4, s_3_0, -1, 3, 0},
-/*  1 */ { 4, s_3_1, -1, 2, 0},
-/*  2 */ { 4, s_3_2, -1, 4, 0},
-/*  3 */ { 3, s_3_3, -1, 6, 0},
-/*  4 */ { 4, s_3_4, -1, 9, 0},
-/*  5 */ { 5, s_3_5, -1, 11, 0},
-/*  6 */ { 5, s_3_6, -1, 5, 0},
-/*  7 */ { 5, s_3_7, -1, 9, 0},
-/*  8 */ { 6, s_3_8, -1, 13, 0},
-/*  9 */ { 5, s_3_9, -1, 12, 0},
-/* 10 */ { 6, s_3_10, -1, 1, 0},
-/* 11 */ { 7, s_3_11, 10, 8, 0},
-/* 12 */ { 5, s_3_12, -1, 9, 0},
-/* 13 */ { 5, s_3_13, -1, 8, 0},
-/* 14 */ { 7, s_3_14, 13, 7, 0},
-/* 15 */ { 4, s_3_15, -1, 7, 0},
-/* 16 */ { 4, s_3_16, -1, 8, 0},
-/* 17 */ { 7, s_3_17, -1, 12, 0},
-/* 18 */ { 7, s_3_18, -1, 10, 0},
-/* 19 */ { 7, s_3_19, -1, 11, 0}
+{ 4, s_3_0, -1, 3, 0},
+{ 4, s_3_1, -1, 2, 0},
+{ 4, s_3_2, -1, 4, 0},
+{ 3, s_3_3, -1, 6, 0},
+{ 4, s_3_4, -1, 9, 0},
+{ 5, s_3_5, -1, 11, 0},
+{ 5, s_3_6, -1, 5, 0},
+{ 5, s_3_7, -1, 9, 0},
+{ 6, s_3_8, -1, 13, 0},
+{ 5, s_3_9, -1, 12, 0},
+{ 6, s_3_10, -1, 1, 0},
+{ 7, s_3_11, 10, 8, 0},
+{ 5, s_3_12, -1, 9, 0},
+{ 5, s_3_13, -1, 8, 0},
+{ 7, s_3_14, 13, 7, 0},
+{ 4, s_3_15, -1, 7, 0},
+{ 4, s_3_16, -1, 8, 0},
+{ 7, s_3_17, -1, 12, 0},
+{ 7, s_3_18, -1, 10, 0},
+{ 7, s_3_19, -1, 11, 0}
 };
 
 static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
@@ -141,13 +141,13 @@ static const symbol s_4_6[4] = { 'n', 'e', 's', 's' };
 
 static const struct among a_4[7] =
 {
-/*  0 */ { 5, s_4_0, -1, 2, 0},
-/*  1 */ { 5, s_4_1, -1, 3, 0},
-/*  2 */ { 5, s_4_2, -1, 1, 0},
-/*  3 */ { 5, s_4_3, -1, 2, 0},
-/*  4 */ { 4, s_4_4, -1, 2, 0},
-/*  5 */ { 3, s_4_5, -1, 3, 0},
-/*  6 */ { 4, s_4_6, -1, 3, 0}
+{ 5, s_4_0, -1, 2, 0},
+{ 5, s_4_1, -1, 3, 0},
+{ 5, s_4_2, -1, 1, 0},
+{ 5, s_4_3, -1, 2, 0},
+{ 4, s_4_4, -1, 2, 0},
+{ 3, s_4_5, -1, 3, 0},
+{ 4, s_4_6, -1, 3, 0}
 };
 
 static const symbol s_5_0[2] = { 'i', 'c' };
@@ -172,25 +172,25 @@ static const symbol s_5_18[2] = { 'o', 'u' };
 
 static const struct among a_5[19] =
 {
-/*  0 */ { 2, s_5_0, -1, 1, 0},
-/*  1 */ { 4, s_5_1, -1, 1, 0},
-/*  2 */ { 4, s_5_2, -1, 1, 0},
-/*  3 */ { 4, s_5_3, -1, 1, 0},
-/*  4 */ { 4, s_5_4, -1, 1, 0},
-/*  5 */ { 3, s_5_5, -1, 1, 0},
-/*  6 */ { 3, s_5_6, -1, 1, 0},
-/*  7 */ { 3, s_5_7, -1, 1, 0},
-/*  8 */ { 3, s_5_8, -1, 1, 0},
-/*  9 */ { 2, s_5_9, -1, 1, 0},
-/* 10 */ { 3, s_5_10, -1, 1, 0},
-/* 11 */ { 3, s_5_11, -1, 2, 0},
-/* 12 */ { 2, s_5_12, -1, 1, 0},
-/* 13 */ { 3, s_5_13, -1, 1, 0},
-/* 14 */ { 3, s_5_14, -1, 1, 0},
-/* 15 */ { 3, s_5_15, -1, 1, 0},
-/* 16 */ { 4, s_5_16, 15, 1, 0},
-/* 17 */ { 5, s_5_17, 16, 1, 0},
-/* 18 */ { 2, s_5_18, -1, 1, 0}
+{ 2, s_5_0, -1, 1, 0},
+{ 4, s_5_1, -1, 1, 0},
+{ 4, s_5_2, -1, 1, 0},
+{ 4, s_5_3, -1, 1, 0},
+{ 4, s_5_4, -1, 1, 0},
+{ 3, 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},
+{ 2, s_5_9, -1, 1, 0},
+{ 3, s_5_10, -1, 1, 0},
+{ 3, s_5_11, -1, 2, 0},
+{ 2, s_5_12, -1, 1, 0},
+{ 3, s_5_13, -1, 1, 0},
+{ 3, s_5_14, -1, 1, 0},
+{ 3, s_5_15, -1, 1, 0},
+{ 4, s_5_16, 15, 1, 0},
+{ 5, s_5_17, 16, 1, 0},
+{ 2, s_5_18, -1, 1, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 1 };
@@ -222,43 +222,43 @@ static const symbol s_21[] = { 'Y' };
 static const symbol s_22[] = { 'Y' };
 static const symbol s_23[] = { 'y' };
 
-static int r_shortv(struct SN_env * z) { /* backwardmode */
-    if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) return 0; /* non v_WXY, line 19 */
-    if (in_grouping_b(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 19 */
-    if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 19 */
+static int r_shortv(struct SN_env * z) {
+    if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) return 0;
+    if (in_grouping_b(z, g_v, 97, 121, 0)) return 0;
+    if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
     return 1;
 }
 
-static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 21 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 22 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_Step_1a(struct SN_env * z) { /* backwardmode */
+static int r_Step_1a(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 25 */
-    if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0; /* substring, line 25 */
+    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;
-    z->bra = z->c; /* ], line 25 */
-    switch (among_var) { /* among, line 25 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */
+            {   int ret = slice_from_s(z, 2, s_0);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_1); /* <-, line 27 */
+            {   int ret = slice_from_s(z, 1, s_1);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_del(z); /* delete, line 29 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -266,70 +266,70 @@ static int r_Step_1a(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_1b(struct SN_env * z) { /* backwardmode */
+static int r_Step_1b(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 34 */
-    if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 34 */
+    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;
-    z->bra = z->c; /* ], line 34 */
-    switch (among_var) { /* among, line 34 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R1(z); /* call R1, line 35 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_2); /* <-, line 35 */
+            {   int ret = slice_from_s(z, 2, s_2);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int m_test1 = z->l - z->c; /* test, line 38 */
-                {    /* gopast */ /* grouping v, line 38 */
+            {   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;
                 }
                 z->c = z->l - m_test1;
             }
-            {   int ret = slice_del(z); /* delete, line 38 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m_test2 = z->l - z->c; /* test, line 39 */
-                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 /* substring, line 39 */
+            {   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) { /* among, line 39 */
+            switch (among_var) {
                 case 1:
                     {   int ret;
                         {   int saved_c = z->c;
-                            ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
+                            ret = insert_s(z, z->c, z->c, 1, s_3);
                             z->c = saved_c;
                         }
                         if (ret < 0) return ret;
                     }
                     break;
                 case 2:
-                    z->ket = z->c; /* [, line 44 */
+                    z->ket = z->c;
                     if (z->c <= z->lb) return 0;
-                    z->c--; /* next, line 44 */
-                    z->bra = z->c; /* ], line 44 */
-                    {   int ret = slice_del(z); /* delete, line 44 */
+                    z->c--;
+                    z->bra = z->c;
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 3:
-                    if (z->c != z->I[0]) return 0; /* atmark, line 45 */
-                    {   int m_test3 = z->l - z->c; /* test, line 45 */
-                        {   int ret = r_shortv(z); /* call shortv, line 45 */
+                    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;
                         }
                         z->c = z->l - m_test3;
                     }
                     {   int ret;
                         {   int saved_c = z->c;
-                            ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
+                            ret = insert_s(z, z->c, z->c, 1, s_4);
                             z->c = saved_c;
                         }
                         if (ret < 0) return ret;
@@ -341,103 +341,103 @@ static int r_Step_1b(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_1c(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 52 */
-    {   int m1 = z->l - z->c; (void)m1; /* or, line 52 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 52 */
+static int r_Step_1c(struct SN_env * z) {
+    z->ket = z->c;
+    {   int m1 = z->l - z->c; (void)m1;
+        if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
         z->c--;
         goto lab0;
     lab1:
         z->c = z->l - m1;
-        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 52 */
+        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0;
         z->c--;
     }
 lab0:
-    z->bra = z->c; /* ], line 52 */
-    {    /* gopast */ /* grouping v, line 53 */
+    z->bra = z->c;
+    {   
         int ret = out_grouping_b(z, g_v, 97, 121, 1);
         if (ret < 0) return 0;
         z->c -= ret;
     }
-    {   int ret = slice_from_s(z, 1, s_5); /* <-, line 54 */
+    {   int ret = slice_from_s(z, 1, s_5);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Step_2(struct SN_env * z) { /* backwardmode */
+static int r_Step_2(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 58 */
-    if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 58 */
+    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;
-    z->bra = z->c; /* ], line 58 */
-    {   int ret = r_R1(z); /* call R1, line 58 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 58 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 4, s_6); /* <-, line 59 */
+            {   int ret = slice_from_s(z, 4, s_6);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 4, s_7); /* <-, line 60 */
+            {   int ret = slice_from_s(z, 4, s_7);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 4, s_8); /* <-, line 61 */
+            {   int ret = slice_from_s(z, 4, s_8);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = slice_from_s(z, 4, s_9); /* <-, line 62 */
+            {   int ret = slice_from_s(z, 4, s_9);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_from_s(z, 3, s_10); /* <-, line 63 */
+            {   int ret = slice_from_s(z, 3, s_10);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = slice_from_s(z, 1, s_11); /* <-, line 64 */
+            {   int ret = slice_from_s(z, 1, s_11);
                 if (ret < 0) return ret;
             }
             break;
         case 7:
-            {   int ret = slice_from_s(z, 3, s_12); /* <-, line 66 */
+            {   int ret = slice_from_s(z, 3, s_12);
                 if (ret < 0) return ret;
             }
             break;
         case 8:
-            {   int ret = slice_from_s(z, 3, s_13); /* <-, line 68 */
+            {   int ret = slice_from_s(z, 3, s_13);
                 if (ret < 0) return ret;
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 2, s_14); /* <-, line 69 */
+            {   int ret = slice_from_s(z, 2, s_14);
                 if (ret < 0) return ret;
             }
             break;
         case 10:
-            {   int ret = slice_from_s(z, 3, s_15); /* <-, line 72 */
+            {   int ret = slice_from_s(z, 3, s_15);
                 if (ret < 0) return ret;
             }
             break;
         case 11:
-            {   int ret = slice_from_s(z, 3, s_16); /* <-, line 74 */
+            {   int ret = slice_from_s(z, 3, s_16);
                 if (ret < 0) return ret;
             }
             break;
         case 12:
-            {   int ret = slice_from_s(z, 3, s_17); /* <-, line 76 */
+            {   int ret = slice_from_s(z, 3, s_17);
                 if (ret < 0) return ret;
             }
             break;
         case 13:
-            {   int ret = slice_from_s(z, 3, s_18); /* <-, line 77 */
+            {   int ret = slice_from_s(z, 3, s_18);
                 if (ret < 0) return ret;
             }
             break;
@@ -445,29 +445,29 @@ static int r_Step_2(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_3(struct SN_env * z) { /* backwardmode */
+static int r_Step_3(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 82 */
-    if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 82 */
+    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;
-    z->bra = z->c; /* ], line 82 */
-    {   int ret = r_R1(z); /* call R1, line 82 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 82 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 2, s_19); /* <-, line 83 */
+            {   int ret = slice_from_s(z, 2, s_19);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 2, s_20); /* <-, line 85 */
+            {   int ret = slice_from_s(z, 2, s_20);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_del(z); /* delete, line 87 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -475,34 +475,34 @@ static int r_Step_3(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_4(struct SN_env * z) { /* backwardmode */
+static int r_Step_4(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 92 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 92 */
+    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;
-    z->bra = z->c; /* ], line 92 */
-    {   int ret = r_R2(z); /* call R2, line 92 */
+    z->bra = z->c;
+    {   int ret = r_R2(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 92 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 95 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int m1 = z->l - z->c; (void)m1; /* or, line 96 */
-                if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 96 */
+            {   int m1 = z->l - z->c; (void)m1;
+                if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
                 z->c--;
                 goto lab0;
             lab1:
                 z->c = z->l - m1;
-                if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 96 */
+                if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0;
                 z->c--;
             }
         lab0:
-            {   int ret = slice_del(z); /* delete, line 96 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -510,24 +510,24 @@ static int r_Step_4(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_5a(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 101 */
-    if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 101 */
+static int r_Step_5a(struct SN_env * z) {
+    z->ket = z->c;
+    if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
     z->c--;
-    z->bra = z->c; /* ], line 101 */
-    {   int m1 = z->l - z->c; (void)m1; /* or, line 102 */
-        {   int ret = r_R2(z); /* call R2, line 102 */
+    z->bra = z->c;
+    {   int m1 = z->l - z->c; (void)m1;
+        {   int ret = r_R2(z);
             if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
         goto lab0;
     lab1:
         z->c = z->l - m1;
-        {   int ret = r_R1(z); /* call R1, line 102 */
+        {   int ret = r_R1(z);
             if (ret <= 0) return ret;
         }
-        {   int m2 = z->l - z->c; (void)m2; /* not, line 102 */
-            {   int ret = r_shortv(z); /* call shortv, line 102 */
+        {   int m2 = z->l - z->c; (void)m2;
+            {   int ret = r_shortv(z);
                 if (ret == 0) goto lab2;
                 if (ret < 0) return ret;
             }
@@ -537,64 +537,63 @@ static int r_Step_5a(struct SN_env * z) { /* backwardmode */
         }
     }
 lab0:
-    {   int ret = slice_del(z); /* delete, line 103 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Step_5b(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 107 */
-    if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 107 */
+static int r_Step_5b(struct SN_env * z) {
+    z->ket = z->c;
+    if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
     z->c--;
-    z->bra = z->c; /* ], line 107 */
-    {   int ret = r_R2(z); /* call R2, line 108 */
+    z->bra = z->c;
+    {   int ret = r_R2(z);
         if (ret <= 0) return ret;
     }
-    if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 108 */
+    if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
     z->c--;
-    {   int ret = slice_del(z); /* delete, line 109 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-extern int porter_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    z->B[0] = 0; /* unset Y_found, line 115 */
-    {   int c1 = z->c; /* do, line 116 */
-        z->bra = z->c; /* [, line 116 */
-        if (z->c == z->l || z->p[z->c] != 'y') goto lab0; /* literal, line 116 */
+extern int porter_ISO_8859_1_stem(struct SN_env * z) {
+    z->I[2] = 0;
+    {   int c1 = z->c;
+        z->bra = z->c;
+        if (z->c == z->l || z->p[z->c] != 'y') goto lab0;
         z->c++;
-        z->ket = z->c; /* ], line 116 */
-        {   int ret = slice_from_s(z, 1, s_21); /* <-, line 116 */
+        z->ket = z->c;
+        {   int ret = slice_from_s(z, 1, s_21);
             if (ret < 0) return ret;
         }
-        z->B[0] = 1; /* set Y_found, line 116 */
+        z->I[2] = 1;
     lab0:
         z->c = c1;
     }
-    {   int c2 = z->c; /* do, line 117 */
-/* repeat, line 117 */
-
-        while(1) {            int c3 = z->c;
-            while(1) { /* goto, line 117 */
+    {   int c2 = z->c;
+        while(1) {
+            int c3 = z->c;
+            while(1) {
                 int c4 = z->c;
-                if (in_grouping(z, g_v, 97, 121, 0)) goto lab3; /* grouping v, line 117 */
-                z->bra = z->c; /* [, line 117 */
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 117 */
+                if (in_grouping(z, g_v, 97, 121, 0)) goto lab3;
+                z->bra = z->c;
+                if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
                 z->c++;
-                z->ket = z->c; /* ], line 117 */
+                z->ket = z->c;
                 z->c = c4;
                 break;
             lab3:
                 z->c = c4;
                 if (z->c >= z->l) goto lab2;
-                z->c++; /* goto, line 117 */
+                z->c++;
             }
-            {   int ret = slice_from_s(z, 1, s_22); /* <-, line 117 */
+            {   int ret = slice_from_s(z, 1, s_22);
                 if (ret < 0) return ret;
             }
-            z->B[0] = 1; /* set Y_found, line 117 */
+            z->I[2] = 1;
             continue;
         lab2:
             z->c = c3;
@@ -602,104 +601,103 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
         }
         z->c = c2;
     }
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 119 */
-    z->I[1] = z->l; /* $p2 = <integer expression>, line 120 */
-    {   int c5 = z->c; /* do, line 121 */
-        {    /* gopast */ /* grouping v, line 122 */
+    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;
         }
-        {    /* gopast */ /* non v, line 122 */
+        {   
             int ret = in_grouping(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        z->I[0] = z->c; /* setmark p1, line 122 */
-        {    /* gopast */ /* grouping v, line 123 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 123 */
+        {   
             int ret = in_grouping(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p2, line 123 */
+        z->I[0] = z->c;
     lab4:
         z->c = c5;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 126 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m6 = z->l - z->c; (void)m6; /* do, line 127 */
-        {   int ret = r_Step_1a(z); /* call Step_1a, line 127 */
+    {   int m6 = z->l - z->c; (void)m6;
+        {   int ret = r_Step_1a(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m6;
     }
-    {   int m7 = z->l - z->c; (void)m7; /* do, line 128 */
-        {   int ret = r_Step_1b(z); /* call Step_1b, line 128 */
+    {   int m7 = z->l - z->c; (void)m7;
+        {   int ret = r_Step_1b(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m7;
     }
-    {   int m8 = z->l - z->c; (void)m8; /* do, line 129 */
-        {   int ret = r_Step_1c(z); /* call Step_1c, line 129 */
+    {   int m8 = z->l - z->c; (void)m8;
+        {   int ret = r_Step_1c(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m8;
     }
-    {   int m9 = z->l - z->c; (void)m9; /* do, line 130 */
-        {   int ret = r_Step_2(z); /* call Step_2, line 130 */
+    {   int m9 = z->l - z->c; (void)m9;
+        {   int ret = r_Step_2(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m9;
     }
-    {   int m10 = z->l - z->c; (void)m10; /* do, line 131 */
-        {   int ret = r_Step_3(z); /* call Step_3, line 131 */
+    {   int m10 = z->l - z->c; (void)m10;
+        {   int ret = r_Step_3(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m10;
     }
-    {   int m11 = z->l - z->c; (void)m11; /* do, line 132 */
-        {   int ret = r_Step_4(z); /* call Step_4, line 132 */
+    {   int m11 = z->l - z->c; (void)m11;
+        {   int ret = r_Step_4(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m11;
     }
-    {   int m12 = z->l - z->c; (void)m12; /* do, line 133 */
-        {   int ret = r_Step_5a(z); /* call Step_5a, line 133 */
+    {   int m12 = z->l - z->c; (void)m12;
+        {   int ret = r_Step_5a(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m12;
     }
-    {   int m13 = z->l - z->c; (void)m13; /* do, line 134 */
-        {   int ret = r_Step_5b(z); /* call Step_5b, line 134 */
+    {   int m13 = z->l - z->c; (void)m13;
+        {   int ret = r_Step_5b(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m13;
     }
     z->c = z->lb;
-    {   int c14 = z->c; /* do, line 137 */
-        if (!(z->B[0])) goto lab5; /* Boolean test Y_found, line 137 */
-/* repeat, line 137 */
-
-        while(1) {            int c15 = z->c;
-            while(1) { /* goto, line 137 */
+    {   int c14 = z->c;
+        if (!(z->I[2])) goto lab5;
+        while(1) {
+            int c15 = z->c;
+            while(1) {
                 int c16 = z->c;
-                z->bra = z->c; /* [, line 137 */
-                if (z->c == z->l || z->p[z->c] != 'Y') goto lab7; /* literal, line 137 */
+                z->bra = z->c;
+                if (z->c == z->l || z->p[z->c] != 'Y') goto lab7;
                 z->c++;
-                z->ket = z->c; /* ], line 137 */
+                z->ket = z->c;
                 z->c = c16;
                 break;
             lab7:
                 z->c = c16;
                 if (z->c >= z->l) goto lab6;
-                z->c++; /* goto, line 137 */
+                z->c++;
             }
-            {   int ret = slice_from_s(z, 1, s_23); /* <-, line 137 */
+            {   int ret = slice_from_s(z, 1, s_23);
                 if (ret < 0) return ret;
             }
             continue;
@@ -713,7 +711,7 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * porter_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); }
+extern struct SN_env * porter_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
 
 extern void porter_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 1e440a66e143cebae65bdf08d41e4f3f0ed7d2bb..23d883a7a13c481d872afa9bd7340266b420fd07 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -36,9 +36,9 @@ static const symbol s_0_2[1] = { 0xF5 };
 
 static const struct among a_0[3] =
 {
-/*  0 */ { 0, 0, -1, 3, 0},
-/*  1 */ { 1, s_0_1, 0, 1, 0},
-/*  2 */ { 1, s_0_2, 0, 2, 0}
+{ 0, 0, -1, 3, 0},
+{ 1, s_0_1, 0, 1, 0},
+{ 1, s_0_2, 0, 2, 0}
 };
 
 static const symbol s_1_1[2] = { 'a', '~' };
@@ -46,9 +46,9 @@ static const symbol s_1_2[2] = { 'o', '~' };
 
 static const struct among a_1[3] =
 {
-/*  0 */ { 0, 0, -1, 3, 0},
-/*  1 */ { 2, s_1_1, 0, 1, 0},
-/*  2 */ { 2, s_1_2, 0, 2, 0}
+{ 0, 0, -1, 3, 0},
+{ 2, s_1_1, 0, 1, 0},
+{ 2, s_1_2, 0, 2, 0}
 };
 
 static const symbol s_2_0[2] = { 'i', 'c' };
@@ -58,10 +58,10 @@ static const symbol s_2_3[2] = { 'i', 'v' };
 
 static const struct among a_2[4] =
 {
-/*  0 */ { 2, s_2_0, -1, -1, 0},
-/*  1 */ { 2, s_2_1, -1, -1, 0},
-/*  2 */ { 2, s_2_2, -1, -1, 0},
-/*  3 */ { 2, s_2_3, -1, 1, 0}
+{ 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}
 };
 
 static const symbol s_3_0[4] = { 'a', 'n', 't', 'e' };
@@ -70,9 +70,9 @@ static const symbol s_3_2[4] = { 0xED, 'v', 'e', 'l' };
 
 static const struct among a_3[3] =
 {
-/*  0 */ { 4, s_3_0, -1, 1, 0},
-/*  1 */ { 4, s_3_1, -1, 1, 0},
-/*  2 */ { 4, s_3_2, -1, 1, 0}
+{ 4, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 4, s_3_2, -1, 1, 0}
 };
 
 static const symbol s_4_0[2] = { 'i', 'c' };
@@ -81,9 +81,9 @@ static const symbol s_4_2[2] = { 'i', 'v' };
 
 static const struct among a_4[3] =
 {
-/*  0 */ { 2, s_4_0, -1, 1, 0},
-/*  1 */ { 4, s_4_1, -1, 1, 0},
-/*  2 */ { 2, s_4_2, -1, 1, 0}
+{ 2, s_4_0, -1, 1, 0},
+{ 4, s_4_1, -1, 1, 0},
+{ 2, s_4_2, -1, 1, 0}
 };
 
 static const symbol s_5_0[3] = { 'i', 'c', 'a' };
@@ -134,51 +134,51 @@ static const symbol s_5_44[4] = { 'i', 'v', 'o', 's' };
 
 static const struct among a_5[45] =
 {
-/*  0 */ { 3, s_5_0, -1, 1, 0},
-/*  1 */ { 5, s_5_1, -1, 1, 0},
-/*  2 */ { 5, s_5_2, -1, 4, 0},
-/*  3 */ { 5, s_5_3, -1, 2, 0},
-/*  4 */ { 3, s_5_4, -1, 9, 0},
-/*  5 */ { 5, s_5_5, -1, 1, 0},
-/*  6 */ { 3, s_5_6, -1, 1, 0},
-/*  7 */ { 4, s_5_7, -1, 1, 0},
-/*  8 */ { 3, s_5_8, -1, 8, 0},
-/*  9 */ { 3, s_5_9, -1, 1, 0},
-/* 10 */ { 5, s_5_10, -1, 7, 0},
-/* 11 */ { 4, s_5_11, -1, 1, 0},
-/* 12 */ { 5, s_5_12, -1, 6, 0},
-/* 13 */ { 6, s_5_13, 12, 5, 0},
-/* 14 */ { 4, s_5_14, -1, 1, 0},
-/* 15 */ { 4, s_5_15, -1, 1, 0},
-/* 16 */ { 3, s_5_16, -1, 1, 0},
-/* 17 */ { 4, s_5_17, -1, 1, 0},
-/* 18 */ { 3, s_5_18, -1, 1, 0},
-/* 19 */ { 6, s_5_19, -1, 1, 0},
-/* 20 */ { 6, s_5_20, -1, 1, 0},
-/* 21 */ { 3, s_5_21, -1, 8, 0},
-/* 22 */ { 5, s_5_22, -1, 1, 0},
-/* 23 */ { 5, s_5_23, -1, 3, 0},
-/* 24 */ { 4, s_5_24, -1, 1, 0},
-/* 25 */ { 4, s_5_25, -1, 1, 0},
-/* 26 */ { 6, s_5_26, -1, 4, 0},
-/* 27 */ { 6, s_5_27, -1, 2, 0},
-/* 28 */ { 4, s_5_28, -1, 9, 0},
-/* 29 */ { 6, s_5_29, -1, 1, 0},
-/* 30 */ { 4, s_5_30, -1, 1, 0},
-/* 31 */ { 5, s_5_31, -1, 1, 0},
-/* 32 */ { 4, s_5_32, -1, 8, 0},
-/* 33 */ { 4, s_5_33, -1, 1, 0},
-/* 34 */ { 6, s_5_34, -1, 7, 0},
-/* 35 */ { 6, s_5_35, -1, 1, 0},
-/* 36 */ { 5, s_5_36, -1, 1, 0},
-/* 37 */ { 6, s_5_37, -1, 1, 0},
-/* 38 */ { 6, s_5_38, -1, 3, 0},
-/* 39 */ { 4, s_5_39, -1, 1, 0},
-/* 40 */ { 5, s_5_40, -1, 1, 0},
-/* 41 */ { 4, s_5_41, -1, 1, 0},
-/* 42 */ { 7, s_5_42, -1, 1, 0},
-/* 43 */ { 7, s_5_43, -1, 1, 0},
-/* 44 */ { 4, s_5_44, -1, 8, 0}
+{ 3, s_5_0, -1, 1, 0},
+{ 5, s_5_1, -1, 1, 0},
+{ 5, s_5_2, -1, 4, 0},
+{ 5, s_5_3, -1, 2, 0},
+{ 3, s_5_4, -1, 9, 0},
+{ 5, s_5_5, -1, 1, 0},
+{ 3, s_5_6, -1, 1, 0},
+{ 4, s_5_7, -1, 1, 0},
+{ 3, s_5_8, -1, 8, 0},
+{ 3, s_5_9, -1, 1, 0},
+{ 5, s_5_10, -1, 7, 0},
+{ 4, s_5_11, -1, 1, 0},
+{ 5, s_5_12, -1, 6, 0},
+{ 6, s_5_13, 12, 5, 0},
+{ 4, s_5_14, -1, 1, 0},
+{ 4, s_5_15, -1, 1, 0},
+{ 3, s_5_16, -1, 1, 0},
+{ 4, s_5_17, -1, 1, 0},
+{ 3, s_5_18, -1, 1, 0},
+{ 6, s_5_19, -1, 1, 0},
+{ 6, s_5_20, -1, 1, 0},
+{ 3, s_5_21, -1, 8, 0},
+{ 5, s_5_22, -1, 1, 0},
+{ 5, s_5_23, -1, 3, 0},
+{ 4, s_5_24, -1, 1, 0},
+{ 4, s_5_25, -1, 1, 0},
+{ 6, s_5_26, -1, 4, 0},
+{ 6, s_5_27, -1, 2, 0},
+{ 4, s_5_28, -1, 9, 0},
+{ 6, s_5_29, -1, 1, 0},
+{ 4, s_5_30, -1, 1, 0},
+{ 5, s_5_31, -1, 1, 0},
+{ 4, s_5_32, -1, 8, 0},
+{ 4, s_5_33, -1, 1, 0},
+{ 6, s_5_34, -1, 7, 0},
+{ 6, s_5_35, -1, 1, 0},
+{ 5, s_5_36, -1, 1, 0},
+{ 6, s_5_37, -1, 1, 0},
+{ 6, s_5_38, -1, 3, 0},
+{ 4, s_5_39, -1, 1, 0},
+{ 5, s_5_40, -1, 1, 0},
+{ 4, s_5_41, -1, 1, 0},
+{ 7, s_5_42, -1, 1, 0},
+{ 7, s_5_43, -1, 1, 0},
+{ 4, s_5_44, -1, 8, 0}
 };
 
 static const symbol s_6_0[3] = { 'a', 'd', 'a' };
@@ -304,126 +304,126 @@ static const symbol s_6_119[3] = { 'i', 'r', 0xE1 };
 
 static const struct among a_6[120] =
 {
-/*  0 */ { 3, s_6_0, -1, 1, 0},
-/*  1 */ { 3, s_6_1, -1, 1, 0},
-/*  2 */ { 2, s_6_2, -1, 1, 0},
-/*  3 */ { 4, s_6_3, 2, 1, 0},
-/*  4 */ { 4, s_6_4, 2, 1, 0},
-/*  5 */ { 4, s_6_5, 2, 1, 0},
-/*  6 */ { 3, s_6_6, -1, 1, 0},
-/*  7 */ { 3, s_6_7, -1, 1, 0},
-/*  8 */ { 3, s_6_8, -1, 1, 0},
-/*  9 */ { 3, s_6_9, -1, 1, 0},
-/* 10 */ { 4, s_6_10, -1, 1, 0},
-/* 11 */ { 4, s_6_11, -1, 1, 0},
-/* 12 */ { 4, s_6_12, -1, 1, 0},
-/* 13 */ { 4, s_6_13, -1, 1, 0},
-/* 14 */ { 4, s_6_14, -1, 1, 0},
-/* 15 */ { 4, s_6_15, -1, 1, 0},
-/* 16 */ { 2, s_6_16, -1, 1, 0},
-/* 17 */ { 4, s_6_17, 16, 1, 0},
-/* 18 */ { 4, s_6_18, 16, 1, 0},
-/* 19 */ { 4, s_6_19, 16, 1, 0},
-/* 20 */ { 2, s_6_20, -1, 1, 0},
-/* 21 */ { 3, s_6_21, 20, 1, 0},
-/* 22 */ { 5, s_6_22, 21, 1, 0},
-/* 23 */ { 5, s_6_23, 21, 1, 0},
-/* 24 */ { 5, s_6_24, 21, 1, 0},
-/* 25 */ { 4, s_6_25, 20, 1, 0},
-/* 26 */ { 4, s_6_26, 20, 1, 0},
-/* 27 */ { 4, s_6_27, 20, 1, 0},
-/* 28 */ { 4, s_6_28, 20, 1, 0},
-/* 29 */ { 2, s_6_29, -1, 1, 0},
-/* 30 */ { 4, s_6_30, 29, 1, 0},
-/* 31 */ { 4, s_6_31, 29, 1, 0},
-/* 32 */ { 4, s_6_32, 29, 1, 0},
-/* 33 */ { 5, s_6_33, 29, 1, 0},
-/* 34 */ { 5, s_6_34, 29, 1, 0},
-/* 35 */ { 5, s_6_35, 29, 1, 0},
-/* 36 */ { 3, s_6_36, -1, 1, 0},
-/* 37 */ { 3, s_6_37, -1, 1, 0},
-/* 38 */ { 4, s_6_38, -1, 1, 0},
-/* 39 */ { 4, s_6_39, -1, 1, 0},
-/* 40 */ { 4, s_6_40, -1, 1, 0},
-/* 41 */ { 5, s_6_41, -1, 1, 0},
-/* 42 */ { 5, s_6_42, -1, 1, 0},
-/* 43 */ { 5, s_6_43, -1, 1, 0},
-/* 44 */ { 2, s_6_44, -1, 1, 0},
-/* 45 */ { 2, s_6_45, -1, 1, 0},
-/* 46 */ { 2, s_6_46, -1, 1, 0},
-/* 47 */ { 2, s_6_47, -1, 1, 0},
-/* 48 */ { 4, s_6_48, 47, 1, 0},
-/* 49 */ { 4, s_6_49, 47, 1, 0},
-/* 50 */ { 3, s_6_50, 47, 1, 0},
-/* 51 */ { 5, s_6_51, 50, 1, 0},
-/* 52 */ { 5, s_6_52, 50, 1, 0},
-/* 53 */ { 5, s_6_53, 50, 1, 0},
-/* 54 */ { 4, s_6_54, 47, 1, 0},
-/* 55 */ { 4, s_6_55, 47, 1, 0},
-/* 56 */ { 4, s_6_56, 47, 1, 0},
-/* 57 */ { 4, s_6_57, 47, 1, 0},
-/* 58 */ { 2, s_6_58, -1, 1, 0},
-/* 59 */ { 5, s_6_59, 58, 1, 0},
-/* 60 */ { 5, s_6_60, 58, 1, 0},
-/* 61 */ { 5, s_6_61, 58, 1, 0},
-/* 62 */ { 4, s_6_62, 58, 1, 0},
-/* 63 */ { 4, s_6_63, 58, 1, 0},
-/* 64 */ { 4, s_6_64, 58, 1, 0},
-/* 65 */ { 5, s_6_65, 58, 1, 0},
-/* 66 */ { 5, s_6_66, 58, 1, 0},
-/* 67 */ { 5, s_6_67, 58, 1, 0},
-/* 68 */ { 5, s_6_68, 58, 1, 0},
-/* 69 */ { 5, s_6_69, 58, 1, 0},
-/* 70 */ { 5, s_6_70, 58, 1, 0},
-/* 71 */ { 2, s_6_71, -1, 1, 0},
-/* 72 */ { 3, s_6_72, 71, 1, 0},
-/* 73 */ { 3, s_6_73, 71, 1, 0},
-/* 74 */ { 5, s_6_74, 73, 1, 0},
-/* 75 */ { 5, s_6_75, 73, 1, 0},
-/* 76 */ { 5, s_6_76, 73, 1, 0},
-/* 77 */ { 5, s_6_77, 73, 1, 0},
-/* 78 */ { 5, s_6_78, 73, 1, 0},
-/* 79 */ { 5, s_6_79, 73, 1, 0},
-/* 80 */ { 6, s_6_80, 73, 1, 0},
-/* 81 */ { 6, s_6_81, 73, 1, 0},
-/* 82 */ { 6, s_6_82, 73, 1, 0},
-/* 83 */ { 5, s_6_83, 73, 1, 0},
-/* 84 */ { 4, s_6_84, 73, 1, 0},
-/* 85 */ { 6, s_6_85, 84, 1, 0},
-/* 86 */ { 6, s_6_86, 84, 1, 0},
-/* 87 */ { 6, s_6_87, 84, 1, 0},
-/* 88 */ { 4, s_6_88, -1, 1, 0},
-/* 89 */ { 4, s_6_89, -1, 1, 0},
-/* 90 */ { 4, s_6_90, -1, 1, 0},
-/* 91 */ { 6, s_6_91, 90, 1, 0},
-/* 92 */ { 6, s_6_92, 90, 1, 0},
-/* 93 */ { 6, s_6_93, 90, 1, 0},
-/* 94 */ { 6, s_6_94, 90, 1, 0},
-/* 95 */ { 5, s_6_95, 90, 1, 0},
-/* 96 */ { 7, s_6_96, 95, 1, 0},
-/* 97 */ { 7, s_6_97, 95, 1, 0},
-/* 98 */ { 7, s_6_98, 95, 1, 0},
-/* 99 */ { 4, s_6_99, -1, 1, 0},
-/*100 */ { 6, s_6_100, 99, 1, 0},
-/*101 */ { 6, s_6_101, 99, 1, 0},
-/*102 */ { 6, s_6_102, 99, 1, 0},
-/*103 */ { 7, s_6_103, 99, 1, 0},
-/*104 */ { 7, s_6_104, 99, 1, 0},
-/*105 */ { 7, s_6_105, 99, 1, 0},
-/*106 */ { 4, s_6_106, -1, 1, 0},
-/*107 */ { 5, s_6_107, -1, 1, 0},
-/*108 */ { 5, s_6_108, -1, 1, 0},
-/*109 */ { 5, s_6_109, -1, 1, 0},
-/*110 */ { 4, s_6_110, -1, 1, 0},
-/*111 */ { 4, s_6_111, -1, 1, 0},
-/*112 */ { 4, s_6_112, -1, 1, 0},
-/*113 */ { 4, s_6_113, -1, 1, 0},
-/*114 */ { 2, s_6_114, -1, 1, 0},
-/*115 */ { 2, s_6_115, -1, 1, 0},
-/*116 */ { 2, s_6_116, -1, 1, 0},
-/*117 */ { 3, s_6_117, -1, 1, 0},
-/*118 */ { 3, s_6_118, -1, 1, 0},
-/*119 */ { 3, s_6_119, -1, 1, 0}
+{ 3, s_6_0, -1, 1, 0},
+{ 3, s_6_1, -1, 1, 0},
+{ 2, s_6_2, -1, 1, 0},
+{ 4, s_6_3, 2, 1, 0},
+{ 4, s_6_4, 2, 1, 0},
+{ 4, s_6_5, 2, 1, 0},
+{ 3, s_6_6, -1, 1, 0},
+{ 3, s_6_7, -1, 1, 0},
+{ 3, s_6_8, -1, 1, 0},
+{ 3, s_6_9, -1, 1, 0},
+{ 4, s_6_10, -1, 1, 0},
+{ 4, s_6_11, -1, 1, 0},
+{ 4, s_6_12, -1, 1, 0},
+{ 4, s_6_13, -1, 1, 0},
+{ 4, s_6_14, -1, 1, 0},
+{ 4, s_6_15, -1, 1, 0},
+{ 2, s_6_16, -1, 1, 0},
+{ 4, s_6_17, 16, 1, 0},
+{ 4, s_6_18, 16, 1, 0},
+{ 4, s_6_19, 16, 1, 0},
+{ 2, s_6_20, -1, 1, 0},
+{ 3, s_6_21, 20, 1, 0},
+{ 5, s_6_22, 21, 1, 0},
+{ 5, s_6_23, 21, 1, 0},
+{ 5, s_6_24, 21, 1, 0},
+{ 4, s_6_25, 20, 1, 0},
+{ 4, s_6_26, 20, 1, 0},
+{ 4, s_6_27, 20, 1, 0},
+{ 4, s_6_28, 20, 1, 0},
+{ 2, s_6_29, -1, 1, 0},
+{ 4, s_6_30, 29, 1, 0},
+{ 4, s_6_31, 29, 1, 0},
+{ 4, s_6_32, 29, 1, 0},
+{ 5, s_6_33, 29, 1, 0},
+{ 5, s_6_34, 29, 1, 0},
+{ 5, s_6_35, 29, 1, 0},
+{ 3, s_6_36, -1, 1, 0},
+{ 3, s_6_37, -1, 1, 0},
+{ 4, s_6_38, -1, 1, 0},
+{ 4, s_6_39, -1, 1, 0},
+{ 4, s_6_40, -1, 1, 0},
+{ 5, s_6_41, -1, 1, 0},
+{ 5, s_6_42, -1, 1, 0},
+{ 5, s_6_43, -1, 1, 0},
+{ 2, s_6_44, -1, 1, 0},
+{ 2, s_6_45, -1, 1, 0},
+{ 2, s_6_46, -1, 1, 0},
+{ 2, s_6_47, -1, 1, 0},
+{ 4, s_6_48, 47, 1, 0},
+{ 4, s_6_49, 47, 1, 0},
+{ 3, s_6_50, 47, 1, 0},
+{ 5, s_6_51, 50, 1, 0},
+{ 5, s_6_52, 50, 1, 0},
+{ 5, s_6_53, 50, 1, 0},
+{ 4, s_6_54, 47, 1, 0},
+{ 4, s_6_55, 47, 1, 0},
+{ 4, s_6_56, 47, 1, 0},
+{ 4, s_6_57, 47, 1, 0},
+{ 2, s_6_58, -1, 1, 0},
+{ 5, s_6_59, 58, 1, 0},
+{ 5, s_6_60, 58, 1, 0},
+{ 5, s_6_61, 58, 1, 0},
+{ 4, s_6_62, 58, 1, 0},
+{ 4, s_6_63, 58, 1, 0},
+{ 4, s_6_64, 58, 1, 0},
+{ 5, s_6_65, 58, 1, 0},
+{ 5, s_6_66, 58, 1, 0},
+{ 5, s_6_67, 58, 1, 0},
+{ 5, s_6_68, 58, 1, 0},
+{ 5, s_6_69, 58, 1, 0},
+{ 5, s_6_70, 58, 1, 0},
+{ 2, s_6_71, -1, 1, 0},
+{ 3, s_6_72, 71, 1, 0},
+{ 3, s_6_73, 71, 1, 0},
+{ 5, s_6_74, 73, 1, 0},
+{ 5, s_6_75, 73, 1, 0},
+{ 5, s_6_76, 73, 1, 0},
+{ 5, s_6_77, 73, 1, 0},
+{ 5, s_6_78, 73, 1, 0},
+{ 5, s_6_79, 73, 1, 0},
+{ 6, s_6_80, 73, 1, 0},
+{ 6, s_6_81, 73, 1, 0},
+{ 6, s_6_82, 73, 1, 0},
+{ 5, s_6_83, 73, 1, 0},
+{ 4, s_6_84, 73, 1, 0},
+{ 6, s_6_85, 84, 1, 0},
+{ 6, s_6_86, 84, 1, 0},
+{ 6, s_6_87, 84, 1, 0},
+{ 4, s_6_88, -1, 1, 0},
+{ 4, s_6_89, -1, 1, 0},
+{ 4, s_6_90, -1, 1, 0},
+{ 6, s_6_91, 90, 1, 0},
+{ 6, s_6_92, 90, 1, 0},
+{ 6, s_6_93, 90, 1, 0},
+{ 6, s_6_94, 90, 1, 0},
+{ 5, s_6_95, 90, 1, 0},
+{ 7, s_6_96, 95, 1, 0},
+{ 7, s_6_97, 95, 1, 0},
+{ 7, s_6_98, 95, 1, 0},
+{ 4, s_6_99, -1, 1, 0},
+{ 6, s_6_100, 99, 1, 0},
+{ 6, s_6_101, 99, 1, 0},
+{ 6, s_6_102, 99, 1, 0},
+{ 7, s_6_103, 99, 1, 0},
+{ 7, s_6_104, 99, 1, 0},
+{ 7, s_6_105, 99, 1, 0},
+{ 4, s_6_106, -1, 1, 0},
+{ 5, s_6_107, -1, 1, 0},
+{ 5, s_6_108, -1, 1, 0},
+{ 5, s_6_109, -1, 1, 0},
+{ 4, s_6_110, -1, 1, 0},
+{ 4, s_6_111, -1, 1, 0},
+{ 4, s_6_112, -1, 1, 0},
+{ 4, s_6_113, -1, 1, 0},
+{ 2, s_6_114, -1, 1, 0},
+{ 2, s_6_115, -1, 1, 0},
+{ 2, s_6_116, -1, 1, 0},
+{ 3, s_6_117, -1, 1, 0},
+{ 3, s_6_118, -1, 1, 0},
+{ 3, s_6_119, -1, 1, 0}
 };
 
 static const symbol s_7_0[1] = { 'a' };
@@ -436,13 +436,13 @@ static const symbol s_7_6[1] = { 0xF3 };
 
 static const struct among a_7[7] =
 {
-/*  0 */ { 1, s_7_0, -1, 1, 0},
-/*  1 */ { 1, s_7_1, -1, 1, 0},
-/*  2 */ { 1, s_7_2, -1, 1, 0},
-/*  3 */ { 2, s_7_3, -1, 1, 0},
-/*  4 */ { 1, s_7_4, -1, 1, 0},
-/*  5 */ { 1, s_7_5, -1, 1, 0},
-/*  6 */ { 1, s_7_6, -1, 1, 0}
+{ 1, s_7_0, -1, 1, 0},
+{ 1, s_7_1, -1, 1, 0},
+{ 1, s_7_2, -1, 1, 0},
+{ 2, s_7_3, -1, 1, 0},
+{ 1, s_7_4, -1, 1, 0},
+{ 1, s_7_5, -1, 1, 0},
+{ 1, s_7_6, -1, 1, 0}
 };
 
 static const symbol s_8_0[1] = { 'e' };
@@ -452,10 +452,10 @@ static const symbol s_8_3[1] = { 0xEA };
 
 static const struct among a_8[4] =
 {
-/*  0 */ { 1, s_8_0, -1, 1, 0},
-/*  1 */ { 1, s_8_1, -1, 2, 0},
-/*  2 */ { 1, s_8_2, -1, 1, 0},
-/*  3 */ { 1, s_8_3, -1, 1, 0}
+{ 1, s_8_0, -1, 1, 0},
+{ 1, s_8_1, -1, 2, 0},
+{ 1, s_8_2, -1, 1, 0},
+{ 1, s_8_3, -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, 3, 19, 12, 2 };
@@ -472,30 +472,29 @@ static const symbol s_8[] = { 'a', 't' };
 static const symbol s_9[] = { 'i', 'r' };
 static const symbol s_10[] = { 'c' };
 
-static int r_prelude(struct SN_env * z) { /* forwardmode */
+static int r_prelude(struct SN_env * z) {
     int among_var;
-/* repeat, line 36 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 37 */
-        if (z->c >= z->l || (z->p[z->c + 0] != 227 && z->p[z->c + 0] != 245)) among_var = 3; else /* substring, line 37 */
+    while(1) {
+        int c1 = z->c;
+        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; /* ], line 37 */
-        switch (among_var) { /* among, line 37 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 2, s_0); /* <-, line 38 */
+                {   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); /* <-, line 39 */
+                {   int ret = slice_from_s(z, 2, s_1);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 40 */
+                z->c++;
                 break;
         }
         continue;
@@ -506,16 +505,16 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $pV = <integer expression>, line 46 */
-    z->I[1] = z->l; /* $p1 = <integer expression>, line 47 */
-    z->I[2] = z->l; /* $p2 = <integer expression>, line 48 */
-    {   int c1 = z->c; /* do, line 50 */
-        {   int c2 = z->c; /* or, line 52 */
-            if (in_grouping(z, g_v, 97, 250, 0)) goto lab2; /* grouping v, line 51 */
-            {   int c3 = z->c; /* or, line 51 */
-                if (out_grouping(z, g_v, 97, 250, 0)) goto lab4; /* non v, line 51 */
-                {    /* gopast */ /* grouping v, line 51 */
+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, 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,8 +522,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
                 goto lab3;
             lab4:
                 z->c = c3;
-                if (in_grouping(z, g_v, 97, 250, 0)) goto lab2; /* grouping v, line 51 */
-                {    /* gopast */ /* non v, line 51 */
+                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;
@@ -534,10 +533,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
             goto lab1;
         lab2:
             z->c = c2;
-            if (out_grouping(z, g_v, 97, 250, 0)) goto lab0; /* non v, line 53 */
-            {   int c4 = z->c; /* or, line 53 */
-                if (out_grouping(z, g_v, 97, 250, 0)) goto lab6; /* non v, line 53 */
-                {    /* gopast */ /* grouping v, line 53 */
+            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;
@@ -545,71 +544,70 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
                 goto lab5;
             lab6:
                 z->c = c4;
-                if (in_grouping(z, g_v, 97, 250, 0)) goto lab0; /* grouping v, line 53 */
+                if (in_grouping(z, g_v, 97, 250, 0)) goto lab0;
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 53 */
+                z->c++;
             }
         lab5:
             ;
         }
     lab1:
-        z->I[0] = z->c; /* setmark pV, line 54 */
+        z->I[2] = z->c;
     lab0:
         z->c = c1;
     }
-    {   int c5 = z->c; /* do, line 56 */
-        {    /* gopast */ /* grouping v, line 57 */
+    {   int c5 = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 57 */
+        {   
             int ret = in_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p1, line 57 */
-        {    /* gopast */ /* grouping v, line 58 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 58 */
+        {   
             int ret = in_grouping(z, g_v, 97, 250, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        z->I[2] = z->c; /* setmark p2, line 58 */
+        z->I[0] = z->c;
     lab7:
         z->c = c5;
     }
     return 1;
 }
 
-static int r_postlude(struct SN_env * z) { /* forwardmode */
+static int r_postlude(struct SN_env * z) {
     int among_var;
-/* repeat, line 62 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 63 */
-        if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else /* substring, line 63 */
+    while(1) {
+        int c1 = z->c;
+        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; /* ], line 63 */
-        switch (among_var) { /* among, line 63 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_2); /* <-, line 64 */
+                {   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); /* <-, line 65 */
+                {   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++; /* next, line 66 */
+                z->c++;
                 break;
         }
         continue;
@@ -620,91 +618,91 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_RV(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 72 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 73 */
+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) { /* backwardmode */
-    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 74 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
+static int r_standard_suffix(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 77 */
-    if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 77 */
+    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;
-    z->bra = z->c; /* ], line 77 */
-    switch (among_var) { /* among, line 77 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R2(z); /* call R2, line 93 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 93 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 98 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_4); /* <-, line 98 */
+            {   int ret = slice_from_s(z, 3, s_4);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = r_R2(z); /* call R2, line 102 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 1, s_5); /* <-, line 102 */
+            {   int ret = slice_from_s(z, 1, s_5);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = r_R2(z); /* call R2, line 106 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 4, s_6); /* <-, line 106 */
+            {   int ret = slice_from_s(z, 4, s_6);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = r_R1(z); /* call R1, line 110 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 110 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m1 = z->l - z->c; (void)m1; /* try, line 111 */
-                z->ket = z->c; /* [, line 112 */
-                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; } /* substring, line 112 */
+            {   int m1 = z->l - z->c; (void)m1;
+                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; }
-                z->bra = z->c; /* ], line 112 */
-                {   int ret = r_R2(z); /* call R2, line 112 */
+                z->bra = z->c;
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m1; goto lab0; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 112 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                switch (among_var) { /* among, line 112 */
+                switch (among_var) {
                     case 1:
-                        z->ket = z->c; /* [, line 113 */
-                        if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m1; goto lab0; } /* literal, line 113 */
-                        z->bra = z->c; /* ], line 113 */
-                        {   int ret = r_R2(z); /* call R2, line 113 */
+                        z->ket = z->c;
+                        if (!(eq_s_b(z, 2, s_7))) { 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; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 113 */
+                        {   int ret = slice_del(z);
                             if (ret < 0) return ret;
                         }
                         break;
@@ -714,22 +712,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 6:
-            {   int ret = r_R2(z); /* call R2, line 122 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 122 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m2 = z->l - z->c; (void)m2; /* try, line 123 */
-                z->ket = z->c; /* [, line 124 */
-                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; } /* substring, line 124 */
+            {   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; }
-                z->bra = z->c; /* ], line 124 */
-                {   int ret = r_R2(z); /* call R2, line 127 */
+                z->bra = z->c;
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m2; goto lab1; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 127 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             lab1:
@@ -737,22 +735,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 7:
-            {   int ret = r_R2(z); /* call R2, line 134 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 134 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m3 = z->l - z->c; (void)m3; /* try, line 135 */
-                z->ket = z->c; /* [, line 136 */
-                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; } /* substring, line 136 */
+            {   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; }
-                z->bra = z->c; /* ], line 136 */
-                {   int ret = r_R2(z); /* call R2, line 139 */
+                z->bra = z->c;
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m3; goto lab2; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 139 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             lab2:
@@ -760,21 +758,21 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 8:
-            {   int ret = r_R2(z); /* call R2, line 146 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 146 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m4 = z->l - z->c; (void)m4; /* try, line 147 */
-                z->ket = z->c; /* [, line 148 */
-                if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m4; goto lab3; } /* literal, line 148 */
-                z->bra = z->c; /* ], line 148 */
-                {   int ret = r_R2(z); /* call R2, line 148 */
+            {   int m4 = z->l - z->c; (void)m4;
+                z->ket = z->c;
+                if (!(eq_s_b(z, 2, s_8))) { 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; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 148 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             lab3:
@@ -782,12 +780,12 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 9:
-            {   int ret = r_RV(z); /* call RV, line 153 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 153 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
             z->c--;
-            {   int ret = slice_from_s(z, 2, s_9); /* <-, line 154 */
+            {   int ret = slice_from_s(z, 2, s_9);
                 if (ret < 0) return ret;
             }
             break;
@@ -795,15 +793,15 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
+static int r_verb_suffix(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 159 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 160 */
-        if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; } /* substring, line 160 */
-        z->bra = z->c; /* ], line 160 */
-        {   int ret = slice_del(z); /* delete, line 179 */
+    {   int mlimit1;
+        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; }
+        z->bra = z->c;
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
         z->lb = mlimit1;
@@ -811,65 +809,65 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 184 */
-    if (!(find_among_b(z, a_7, 7))) return 0; /* substring, line 184 */
-    z->bra = z->c; /* ], line 184 */
-    {   int ret = r_RV(z); /* call RV, line 187 */
+static int r_residual_suffix(struct SN_env * z) {
+    z->ket = z->c;
+    if (!(find_among_b(z, a_7, 7))) return 0;
+    z->bra = z->c;
+    {   int ret = r_RV(z);
         if (ret <= 0) return ret;
     }
-    {   int ret = slice_del(z); /* delete, line 187 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_residual_form(struct SN_env * z) { /* backwardmode */
+static int r_residual_form(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 192 */
-    among_var = find_among_b(z, a_8, 4); /* substring, line 192 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_8, 4);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 192 */
-    switch (among_var) { /* among, line 192 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_RV(z); /* call RV, line 194 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 194 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            z->ket = z->c; /* [, line 194 */
-            {   int m1 = z->l - z->c; (void)m1; /* or, line 194 */
-                if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab1; /* literal, line 194 */
+            z->ket = z->c;
+            {   int m1 = z->l - z->c; (void)m1;
+                if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab1;
                 z->c--;
-                z->bra = z->c; /* ], line 194 */
-                {   int m_test2 = z->l - z->c; /* test, line 194 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'g') goto lab1; /* literal, line 194 */
+                z->bra = z->c;
+                {   int m_test2 = z->l - z->c;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'g') goto lab1;
                     z->c--;
                     z->c = z->l - m_test2;
                 }
                 goto lab0;
             lab1:
                 z->c = z->l - m1;
-                if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 195 */
+                if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
                 z->c--;
-                z->bra = z->c; /* ], line 195 */
-                {   int m_test3 = z->l - z->c; /* test, line 195 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'c') return 0; /* literal, line 195 */
+                z->bra = z->c;
+                {   int m_test3 = z->l - z->c;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'c') return 0;
                     z->c--;
                     z->c = z->l - m_test3;
                 }
             }
         lab0:
-            {   int ret = r_RV(z); /* call RV, line 195 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 195 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_10); /* <-, line 196 */
+            {   int ret = slice_from_s(z, 1, s_10);
                 if (ret < 0) return ret;
             }
             break;
@@ -877,52 +875,52 @@ static int r_residual_form(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int portuguese_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 202 */
-        {   int ret = r_prelude(z); /* call prelude, line 202 */
+extern int portuguese_ISO_8859_1_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_prelude(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    /* do, line 203 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 203 */
+    
+    {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 204 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 205 */
-        {   int m3 = z->l - z->c; (void)m3; /* or, line 209 */
-            {   int m4 = z->l - z->c; (void)m4; /* and, line 207 */
-                {   int m5 = z->l - z->c; (void)m5; /* or, line 206 */
-                    {   int ret = r_standard_suffix(z); /* call standard_suffix, line 206 */
+    {   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 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); /* call verb_suffix, line 206 */
+                    {   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; /* do, line 207 */
-                    z->ket = z->c; /* [, line 207 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab5; /* literal, line 207 */
+                {   int m6 = z->l - z->c; (void)m6;
+                    z->ket = z->c;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab5;
                     z->c--;
-                    z->bra = z->c; /* ], line 207 */
-                    {   int m_test7 = z->l - z->c; /* test, line 207 */
-                        if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab5; /* literal, line 207 */
+                    z->bra = z->c;
+                    {   int m_test7 = z->l - z->c;
+                        if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab5;
                         z->c--;
                         z->c = z->l - m_test7;
                     }
-                    {   int ret = r_RV(z); /* call RV, line 207 */
+                    {   int ret = r_RV(z);
                         if (ret == 0) goto lab5;
                         if (ret < 0) return ret;
                     }
-                    {   int ret = slice_del(z); /* delete, line 207 */
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                 lab5:
@@ -932,7 +930,7 @@ extern int portuguese_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
             goto lab1;
         lab2:
             z->c = z->l - m3;
-            {   int ret = r_residual_suffix(z); /* call residual_suffix, line 209 */
+            {   int ret = r_residual_suffix(z);
                 if (ret == 0) goto lab0;
                 if (ret < 0) return ret;
             }
@@ -941,15 +939,15 @@ extern int portuguese_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     lab0:
         z->c = z->l - m2;
     }
-    {   int m8 = z->l - z->c; (void)m8; /* do, line 211 */
-        {   int ret = r_residual_form(z); /* call residual_form, line 211 */
+    {   int m8 = z->l - z->c; (void)m8;
+        {   int ret = r_residual_form(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m8;
     }
     z->c = z->lb;
-    {   int c9 = z->c; /* do, line 213 */
-        {   int ret = r_postlude(z); /* call postlude, line 213 */
+    {   int c9 = z->c;
+        {   int ret = r_postlude(z);
             if (ret < 0) return ret;
         }
         z->c = c9;
@@ -957,7 +955,7 @@ extern int portuguese_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * portuguese_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
+extern struct SN_env * portuguese_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
 
 extern void portuguese_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index e77aadda6a397b343f98f29a30bf0efa2fc67f91..825e68f21edf7ced063d0375fecdc9c3c97ef156 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -39,12 +39,12 @@ static const symbol s_0_5[1] = { 0xFA };
 
 static const struct among a_0[6] =
 {
-/*  0 */ { 0, 0, -1, 6, 0},
-/*  1 */ { 1, s_0_1, 0, 1, 0},
-/*  2 */ { 1, s_0_2, 0, 2, 0},
-/*  3 */ { 1, s_0_3, 0, 3, 0},
-/*  4 */ { 1, s_0_4, 0, 4, 0},
-/*  5 */ { 1, s_0_5, 0, 5, 0}
+{ 0, 0, -1, 6, 0},
+{ 1, s_0_1, 0, 1, 0},
+{ 1, s_0_2, 0, 2, 0},
+{ 1, s_0_3, 0, 3, 0},
+{ 1, s_0_4, 0, 4, 0},
+{ 1, s_0_5, 0, 5, 0}
 };
 
 static const symbol s_1_0[2] = { 'l', 'a' };
@@ -63,19 +63,19 @@ static const symbol s_1_12[3] = { 'n', 'o', 's' };
 
 static const struct among a_1[13] =
 {
-/*  0 */ { 2, s_1_0, -1, -1, 0},
-/*  1 */ { 4, s_1_1, 0, -1, 0},
-/*  2 */ { 2, s_1_2, -1, -1, 0},
-/*  3 */ { 2, s_1_3, -1, -1, 0},
-/*  4 */ { 2, s_1_4, -1, -1, 0},
-/*  5 */ { 2, s_1_5, -1, -1, 0},
-/*  6 */ { 4, s_1_6, 5, -1, 0},
-/*  7 */ { 3, s_1_7, -1, -1, 0},
-/*  8 */ { 5, s_1_8, 7, -1, 0},
-/*  9 */ { 3, s_1_9, -1, -1, 0},
-/* 10 */ { 3, s_1_10, -1, -1, 0},
-/* 11 */ { 5, s_1_11, 10, -1, 0},
-/* 12 */ { 3, s_1_12, -1, -1, 0}
+{ 2, s_1_0, -1, -1, 0},
+{ 4, s_1_1, 0, -1, 0},
+{ 2, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0},
+{ 2, s_1_4, -1, -1, 0},
+{ 2, s_1_5, -1, -1, 0},
+{ 4, s_1_6, 5, -1, 0},
+{ 3, s_1_7, -1, -1, 0},
+{ 5, s_1_8, 7, -1, 0},
+{ 3, s_1_9, -1, -1, 0},
+{ 3, s_1_10, -1, -1, 0},
+{ 5, s_1_11, 10, -1, 0},
+{ 3, s_1_12, -1, -1, 0}
 };
 
 static const symbol s_2_0[4] = { 'a', 'n', 'd', 'o' };
@@ -92,17 +92,17 @@ static const symbol s_2_10[2] = { 0xED, 'r' };
 
 static const struct among a_2[11] =
 {
-/*  0 */ { 4, s_2_0, -1, 6, 0},
-/*  1 */ { 5, s_2_1, -1, 6, 0},
-/*  2 */ { 5, s_2_2, -1, 7, 0},
-/*  3 */ { 4, s_2_3, -1, 2, 0},
-/*  4 */ { 5, s_2_4, -1, 1, 0},
-/*  5 */ { 2, s_2_5, -1, 6, 0},
-/*  6 */ { 2, s_2_6, -1, 6, 0},
-/*  7 */ { 2, s_2_7, -1, 6, 0},
-/*  8 */ { 2, s_2_8, -1, 3, 0},
-/*  9 */ { 2, s_2_9, -1, 4, 0},
-/* 10 */ { 2, s_2_10, -1, 5, 0}
+{ 4, s_2_0, -1, 6, 0},
+{ 5, s_2_1, -1, 6, 0},
+{ 5, s_2_2, -1, 7, 0},
+{ 4, s_2_3, -1, 2, 0},
+{ 5, s_2_4, -1, 1, 0},
+{ 2, s_2_5, -1, 6, 0},
+{ 2, s_2_6, -1, 6, 0},
+{ 2, s_2_7, -1, 6, 0},
+{ 2, s_2_8, -1, 3, 0},
+{ 2, s_2_9, -1, 4, 0},
+{ 2, s_2_10, -1, 5, 0}
 };
 
 static const symbol s_3_0[2] = { 'i', 'c' };
@@ -112,10 +112,10 @@ static const symbol s_3_3[2] = { 'i', 'v' };
 
 static const struct among a_3[4] =
 {
-/*  0 */ { 2, s_3_0, -1, -1, 0},
-/*  1 */ { 2, s_3_1, -1, -1, 0},
-/*  2 */ { 2, s_3_2, -1, -1, 0},
-/*  3 */ { 2, s_3_3, -1, 1, 0}
+{ 2, s_3_0, -1, -1, 0},
+{ 2, s_3_1, -1, -1, 0},
+{ 2, s_3_2, -1, -1, 0},
+{ 2, s_3_3, -1, 1, 0}
 };
 
 static const symbol s_4_0[4] = { 'a', 'b', 'l', 'e' };
@@ -124,9 +124,9 @@ static const symbol s_4_2[4] = { 'a', 'n', 't', 'e' };
 
 static const struct among a_4[3] =
 {
-/*  0 */ { 4, s_4_0, -1, 1, 0},
-/*  1 */ { 4, s_4_1, -1, 1, 0},
-/*  2 */ { 4, s_4_2, -1, 1, 0}
+{ 4, s_4_0, -1, 1, 0},
+{ 4, s_4_1, -1, 1, 0},
+{ 4, s_4_2, -1, 1, 0}
 };
 
 static const symbol s_5_0[2] = { 'i', 'c' };
@@ -135,9 +135,9 @@ static const symbol s_5_2[2] = { 'i', 'v' };
 
 static const struct among a_5[3] =
 {
-/*  0 */ { 2, s_5_0, -1, 1, 0},
-/*  1 */ { 4, s_5_1, -1, 1, 0},
-/*  2 */ { 2, s_5_2, -1, 1, 0}
+{ 2, s_5_0, -1, 1, 0},
+{ 4, s_5_1, -1, 1, 0},
+{ 2, s_5_2, -1, 1, 0}
 };
 
 static const symbol s_6_0[3] = { 'i', 'c', 'a' };
@@ -189,52 +189,52 @@ static const symbol s_6_45[4] = { 'i', 'v', 'o', 's' };
 
 static const struct among a_6[46] =
 {
-/*  0 */ { 3, s_6_0, -1, 1, 0},
-/*  1 */ { 5, s_6_1, -1, 2, 0},
-/*  2 */ { 5, s_6_2, -1, 5, 0},
-/*  3 */ { 5, s_6_3, -1, 2, 0},
-/*  4 */ { 3, s_6_4, -1, 1, 0},
-/*  5 */ { 4, s_6_5, -1, 1, 0},
-/*  6 */ { 3, s_6_6, -1, 9, 0},
-/*  7 */ { 4, s_6_7, -1, 1, 0},
-/*  8 */ { 5, s_6_8, -1, 3, 0},
-/*  9 */ { 4, s_6_9, -1, 8, 0},
-/* 10 */ { 4, s_6_10, -1, 1, 0},
-/* 11 */ { 4, s_6_11, -1, 1, 0},
-/* 12 */ { 4, s_6_12, -1, 2, 0},
-/* 13 */ { 5, s_6_13, -1, 7, 0},
-/* 14 */ { 6, s_6_14, 13, 6, 0},
-/* 15 */ { 5, s_6_15, -1, 2, 0},
-/* 16 */ { 5, s_6_16, -1, 4, 0},
-/* 17 */ { 3, s_6_17, -1, 1, 0},
-/* 18 */ { 4, s_6_18, -1, 1, 0},
-/* 19 */ { 3, s_6_19, -1, 1, 0},
-/* 20 */ { 7, s_6_20, -1, 1, 0},
-/* 21 */ { 7, s_6_21, -1, 1, 0},
-/* 22 */ { 3, s_6_22, -1, 9, 0},
-/* 23 */ { 4, s_6_23, -1, 2, 0},
-/* 24 */ { 4, s_6_24, -1, 1, 0},
-/* 25 */ { 6, s_6_25, -1, 2, 0},
-/* 26 */ { 6, s_6_26, -1, 5, 0},
-/* 27 */ { 6, s_6_27, -1, 2, 0},
-/* 28 */ { 4, s_6_28, -1, 1, 0},
-/* 29 */ { 5, s_6_29, -1, 1, 0},
-/* 30 */ { 4, s_6_30, -1, 9, 0},
-/* 31 */ { 5, s_6_31, -1, 1, 0},
-/* 32 */ { 6, s_6_32, -1, 3, 0},
-/* 33 */ { 6, s_6_33, -1, 8, 0},
-/* 34 */ { 5, s_6_34, -1, 1, 0},
-/* 35 */ { 5, s_6_35, -1, 1, 0},
-/* 36 */ { 7, s_6_36, -1, 2, 0},
-/* 37 */ { 7, s_6_37, -1, 4, 0},
-/* 38 */ { 6, s_6_38, -1, 2, 0},
-/* 39 */ { 5, s_6_39, -1, 2, 0},
-/* 40 */ { 4, s_6_40, -1, 1, 0},
-/* 41 */ { 5, s_6_41, -1, 1, 0},
-/* 42 */ { 4, s_6_42, -1, 1, 0},
-/* 43 */ { 8, s_6_43, -1, 1, 0},
-/* 44 */ { 8, s_6_44, -1, 1, 0},
-/* 45 */ { 4, s_6_45, -1, 9, 0}
+{ 3, s_6_0, -1, 1, 0},
+{ 5, s_6_1, -1, 2, 0},
+{ 5, s_6_2, -1, 5, 0},
+{ 5, s_6_3, -1, 2, 0},
+{ 3, s_6_4, -1, 1, 0},
+{ 4, s_6_5, -1, 1, 0},
+{ 3, s_6_6, -1, 9, 0},
+{ 4, s_6_7, -1, 1, 0},
+{ 5, s_6_8, -1, 3, 0},
+{ 4, s_6_9, -1, 8, 0},
+{ 4, s_6_10, -1, 1, 0},
+{ 4, s_6_11, -1, 1, 0},
+{ 4, s_6_12, -1, 2, 0},
+{ 5, s_6_13, -1, 7, 0},
+{ 6, s_6_14, 13, 6, 0},
+{ 5, s_6_15, -1, 2, 0},
+{ 5, s_6_16, -1, 4, 0},
+{ 3, s_6_17, -1, 1, 0},
+{ 4, s_6_18, -1, 1, 0},
+{ 3, s_6_19, -1, 1, 0},
+{ 7, s_6_20, -1, 1, 0},
+{ 7, s_6_21, -1, 1, 0},
+{ 3, s_6_22, -1, 9, 0},
+{ 4, s_6_23, -1, 2, 0},
+{ 4, s_6_24, -1, 1, 0},
+{ 6, s_6_25, -1, 2, 0},
+{ 6, s_6_26, -1, 5, 0},
+{ 6, s_6_27, -1, 2, 0},
+{ 4, s_6_28, -1, 1, 0},
+{ 5, s_6_29, -1, 1, 0},
+{ 4, s_6_30, -1, 9, 0},
+{ 5, s_6_31, -1, 1, 0},
+{ 6, s_6_32, -1, 3, 0},
+{ 6, s_6_33, -1, 8, 0},
+{ 5, s_6_34, -1, 1, 0},
+{ 5, s_6_35, -1, 1, 0},
+{ 7, s_6_36, -1, 2, 0},
+{ 7, s_6_37, -1, 4, 0},
+{ 6, s_6_38, -1, 2, 0},
+{ 5, s_6_39, -1, 2, 0},
+{ 4, s_6_40, -1, 1, 0},
+{ 5, s_6_41, -1, 1, 0},
+{ 4, s_6_42, -1, 1, 0},
+{ 8, s_6_43, -1, 1, 0},
+{ 8, s_6_44, -1, 1, 0},
+{ 4, s_6_45, -1, 9, 0}
 };
 
 static const symbol s_7_0[2] = { 'y', 'a' };
@@ -252,18 +252,18 @@ static const symbol s_7_11[2] = { 'y', 0xF3 };
 
 static const struct among a_7[12] =
 {
-/*  0 */ { 2, s_7_0, -1, 1, 0},
-/*  1 */ { 2, s_7_1, -1, 1, 0},
-/*  2 */ { 3, s_7_2, -1, 1, 0},
-/*  3 */ { 3, s_7_3, -1, 1, 0},
-/*  4 */ { 5, s_7_4, -1, 1, 0},
-/*  5 */ { 5, s_7_5, -1, 1, 0},
-/*  6 */ { 2, s_7_6, -1, 1, 0},
-/*  7 */ { 3, s_7_7, -1, 1, 0},
-/*  8 */ { 3, s_7_8, -1, 1, 0},
-/*  9 */ { 4, s_7_9, -1, 1, 0},
-/* 10 */ { 5, s_7_10, -1, 1, 0},
-/* 11 */ { 2, s_7_11, -1, 1, 0}
+{ 2, s_7_0, -1, 1, 0},
+{ 2, s_7_1, -1, 1, 0},
+{ 3, s_7_2, -1, 1, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 5, s_7_4, -1, 1, 0},
+{ 5, s_7_5, -1, 1, 0},
+{ 2, s_7_6, -1, 1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 3, s_7_8, -1, 1, 0},
+{ 4, s_7_9, -1, 1, 0},
+{ 5, s_7_10, -1, 1, 0},
+{ 2, s_7_11, -1, 1, 0}
 };
 
 static const symbol s_8_0[3] = { 'a', 'b', 'a' };
@@ -365,102 +365,102 @@ static const symbol s_8_95[2] = { 'i', 0xF3 };
 
 static const struct among a_8[96] =
 {
-/*  0 */ { 3, s_8_0, -1, 2, 0},
-/*  1 */ { 3, s_8_1, -1, 2, 0},
-/*  2 */ { 3, s_8_2, -1, 2, 0},
-/*  3 */ { 3, s_8_3, -1, 2, 0},
-/*  4 */ { 4, s_8_4, -1, 2, 0},
-/*  5 */ { 2, s_8_5, -1, 2, 0},
-/*  6 */ { 4, s_8_6, 5, 2, 0},
-/*  7 */ { 4, s_8_7, 5, 2, 0},
-/*  8 */ { 4, s_8_8, 5, 2, 0},
-/*  9 */ { 2, s_8_9, -1, 2, 0},
-/* 10 */ { 2, s_8_10, -1, 2, 0},
-/* 11 */ { 2, s_8_11, -1, 2, 0},
-/* 12 */ { 3, s_8_12, -1, 2, 0},
-/* 13 */ { 4, s_8_13, -1, 2, 0},
-/* 14 */ { 4, s_8_14, -1, 2, 0},
-/* 15 */ { 4, s_8_15, -1, 2, 0},
-/* 16 */ { 2, s_8_16, -1, 2, 0},
-/* 17 */ { 4, s_8_17, 16, 2, 0},
-/* 18 */ { 4, s_8_18, 16, 2, 0},
-/* 19 */ { 5, s_8_19, 16, 2, 0},
-/* 20 */ { 3, s_8_20, 16, 2, 0},
-/* 21 */ { 5, s_8_21, 20, 2, 0},
-/* 22 */ { 5, s_8_22, 20, 2, 0},
-/* 23 */ { 5, s_8_23, 20, 2, 0},
-/* 24 */ { 2, s_8_24, -1, 1, 0},
-/* 25 */ { 4, s_8_25, 24, 2, 0},
-/* 26 */ { 5, s_8_26, 24, 2, 0},
-/* 27 */ { 4, s_8_27, -1, 2, 0},
-/* 28 */ { 5, s_8_28, -1, 2, 0},
-/* 29 */ { 4, s_8_29, -1, 2, 0},
-/* 30 */ { 4, s_8_30, -1, 2, 0},
-/* 31 */ { 4, s_8_31, -1, 2, 0},
-/* 32 */ { 3, s_8_32, -1, 2, 0},
-/* 33 */ { 3, s_8_33, -1, 2, 0},
-/* 34 */ { 4, s_8_34, -1, 2, 0},
-/* 35 */ { 5, s_8_35, -1, 2, 0},
-/* 36 */ { 2, s_8_36, -1, 2, 0},
-/* 37 */ { 2, s_8_37, -1, 2, 0},
-/* 38 */ { 2, s_8_38, -1, 2, 0},
-/* 39 */ { 2, s_8_39, -1, 2, 0},
-/* 40 */ { 4, s_8_40, 39, 2, 0},
-/* 41 */ { 4, s_8_41, 39, 2, 0},
-/* 42 */ { 4, s_8_42, 39, 2, 0},
-/* 43 */ { 4, s_8_43, 39, 2, 0},
-/* 44 */ { 5, s_8_44, 39, 2, 0},
-/* 45 */ { 3, s_8_45, 39, 2, 0},
-/* 46 */ { 5, s_8_46, 45, 2, 0},
-/* 47 */ { 5, s_8_47, 45, 2, 0},
-/* 48 */ { 5, s_8_48, 45, 2, 0},
-/* 49 */ { 2, s_8_49, -1, 1, 0},
-/* 50 */ { 4, s_8_50, 49, 2, 0},
-/* 51 */ { 5, s_8_51, 49, 2, 0},
-/* 52 */ { 5, s_8_52, -1, 2, 0},
-/* 53 */ { 5, s_8_53, -1, 2, 0},
-/* 54 */ { 6, s_8_54, -1, 2, 0},
-/* 55 */ { 4, s_8_55, -1, 2, 0},
-/* 56 */ { 6, s_8_56, 55, 2, 0},
-/* 57 */ { 6, s_8_57, 55, 2, 0},
-/* 58 */ { 6, s_8_58, 55, 2, 0},
-/* 59 */ { 5, s_8_59, -1, 2, 0},
-/* 60 */ { 6, s_8_60, -1, 2, 0},
-/* 61 */ { 6, s_8_61, -1, 2, 0},
-/* 62 */ { 6, s_8_62, -1, 2, 0},
-/* 63 */ { 3, s_8_63, -1, 2, 0},
-/* 64 */ { 3, s_8_64, -1, 1, 0},
-/* 65 */ { 5, s_8_65, 64, 2, 0},
-/* 66 */ { 5, s_8_66, 64, 2, 0},
-/* 67 */ { 5, s_8_67, 64, 2, 0},
-/* 68 */ { 4, s_8_68, -1, 2, 0},
-/* 69 */ { 4, s_8_69, -1, 2, 0},
-/* 70 */ { 4, s_8_70, -1, 2, 0},
-/* 71 */ { 6, s_8_71, 70, 2, 0},
-/* 72 */ { 6, s_8_72, 70, 2, 0},
-/* 73 */ { 7, s_8_73, 70, 2, 0},
-/* 74 */ { 5, s_8_74, 70, 2, 0},
-/* 75 */ { 7, s_8_75, 74, 2, 0},
-/* 76 */ { 7, s_8_76, 74, 2, 0},
-/* 77 */ { 7, s_8_77, 74, 2, 0},
-/* 78 */ { 4, s_8_78, -1, 1, 0},
-/* 79 */ { 6, s_8_79, 78, 2, 0},
-/* 80 */ { 6, s_8_80, 78, 2, 0},
-/* 81 */ { 6, s_8_81, 78, 2, 0},
-/* 82 */ { 6, s_8_82, 78, 2, 0},
-/* 83 */ { 7, s_8_83, 78, 2, 0},
-/* 84 */ { 4, s_8_84, -1, 2, 0},
-/* 85 */ { 4, s_8_85, -1, 2, 0},
-/* 86 */ { 4, s_8_86, -1, 2, 0},
-/* 87 */ { 4, s_8_87, -1, 2, 0},
-/* 88 */ { 2, s_8_88, -1, 2, 0},
-/* 89 */ { 3, s_8_89, -1, 2, 0},
-/* 90 */ { 3, s_8_90, -1, 2, 0},
-/* 91 */ { 3, s_8_91, -1, 2, 0},
-/* 92 */ { 3, s_8_92, -1, 2, 0},
-/* 93 */ { 3, s_8_93, -1, 2, 0},
-/* 94 */ { 3, s_8_94, -1, 2, 0},
-/* 95 */ { 2, s_8_95, -1, 2, 0}
+{ 3, s_8_0, -1, 2, 0},
+{ 3, s_8_1, -1, 2, 0},
+{ 3, s_8_2, -1, 2, 0},
+{ 3, s_8_3, -1, 2, 0},
+{ 4, s_8_4, -1, 2, 0},
+{ 2, s_8_5, -1, 2, 0},
+{ 4, s_8_6, 5, 2, 0},
+{ 4, s_8_7, 5, 2, 0},
+{ 4, s_8_8, 5, 2, 0},
+{ 2, s_8_9, -1, 2, 0},
+{ 2, s_8_10, -1, 2, 0},
+{ 2, s_8_11, -1, 2, 0},
+{ 3, s_8_12, -1, 2, 0},
+{ 4, s_8_13, -1, 2, 0},
+{ 4, s_8_14, -1, 2, 0},
+{ 4, s_8_15, -1, 2, 0},
+{ 2, s_8_16, -1, 2, 0},
+{ 4, s_8_17, 16, 2, 0},
+{ 4, s_8_18, 16, 2, 0},
+{ 5, s_8_19, 16, 2, 0},
+{ 3, s_8_20, 16, 2, 0},
+{ 5, s_8_21, 20, 2, 0},
+{ 5, s_8_22, 20, 2, 0},
+{ 5, s_8_23, 20, 2, 0},
+{ 2, s_8_24, -1, 1, 0},
+{ 4, s_8_25, 24, 2, 0},
+{ 5, s_8_26, 24, 2, 0},
+{ 4, s_8_27, -1, 2, 0},
+{ 5, s_8_28, -1, 2, 0},
+{ 4, s_8_29, -1, 2, 0},
+{ 4, s_8_30, -1, 2, 0},
+{ 4, s_8_31, -1, 2, 0},
+{ 3, s_8_32, -1, 2, 0},
+{ 3, s_8_33, -1, 2, 0},
+{ 4, s_8_34, -1, 2, 0},
+{ 5, s_8_35, -1, 2, 0},
+{ 2, s_8_36, -1, 2, 0},
+{ 2, s_8_37, -1, 2, 0},
+{ 2, s_8_38, -1, 2, 0},
+{ 2, s_8_39, -1, 2, 0},
+{ 4, s_8_40, 39, 2, 0},
+{ 4, s_8_41, 39, 2, 0},
+{ 4, s_8_42, 39, 2, 0},
+{ 4, s_8_43, 39, 2, 0},
+{ 5, s_8_44, 39, 2, 0},
+{ 3, s_8_45, 39, 2, 0},
+{ 5, s_8_46, 45, 2, 0},
+{ 5, s_8_47, 45, 2, 0},
+{ 5, s_8_48, 45, 2, 0},
+{ 2, s_8_49, -1, 1, 0},
+{ 4, s_8_50, 49, 2, 0},
+{ 5, s_8_51, 49, 2, 0},
+{ 5, s_8_52, -1, 2, 0},
+{ 5, s_8_53, -1, 2, 0},
+{ 6, s_8_54, -1, 2, 0},
+{ 4, s_8_55, -1, 2, 0},
+{ 6, s_8_56, 55, 2, 0},
+{ 6, s_8_57, 55, 2, 0},
+{ 6, s_8_58, 55, 2, 0},
+{ 5, s_8_59, -1, 2, 0},
+{ 6, s_8_60, -1, 2, 0},
+{ 6, s_8_61, -1, 2, 0},
+{ 6, s_8_62, -1, 2, 0},
+{ 3, s_8_63, -1, 2, 0},
+{ 3, s_8_64, -1, 1, 0},
+{ 5, s_8_65, 64, 2, 0},
+{ 5, s_8_66, 64, 2, 0},
+{ 5, s_8_67, 64, 2, 0},
+{ 4, s_8_68, -1, 2, 0},
+{ 4, s_8_69, -1, 2, 0},
+{ 4, s_8_70, -1, 2, 0},
+{ 6, s_8_71, 70, 2, 0},
+{ 6, s_8_72, 70, 2, 0},
+{ 7, s_8_73, 70, 2, 0},
+{ 5, s_8_74, 70, 2, 0},
+{ 7, s_8_75, 74, 2, 0},
+{ 7, s_8_76, 74, 2, 0},
+{ 7, s_8_77, 74, 2, 0},
+{ 4, s_8_78, -1, 1, 0},
+{ 6, s_8_79, 78, 2, 0},
+{ 6, s_8_80, 78, 2, 0},
+{ 6, s_8_81, 78, 2, 0},
+{ 6, s_8_82, 78, 2, 0},
+{ 7, s_8_83, 78, 2, 0},
+{ 4, s_8_84, -1, 2, 0},
+{ 4, s_8_85, -1, 2, 0},
+{ 4, s_8_86, -1, 2, 0},
+{ 4, s_8_87, -1, 2, 0},
+{ 2, s_8_88, -1, 2, 0},
+{ 3, s_8_89, -1, 2, 0},
+{ 3, s_8_90, -1, 2, 0},
+{ 3, s_8_91, -1, 2, 0},
+{ 3, s_8_92, -1, 2, 0},
+{ 3, s_8_93, -1, 2, 0},
+{ 3, s_8_94, -1, 2, 0},
+{ 2, s_8_95, -1, 2, 0}
 };
 
 static const symbol s_9_0[1] = { 'a' };
@@ -474,14 +474,14 @@ static const symbol s_9_7[1] = { 0xF3 };
 
 static const struct among a_9[8] =
 {
-/*  0 */ { 1, s_9_0, -1, 1, 0},
-/*  1 */ { 1, s_9_1, -1, 2, 0},
-/*  2 */ { 1, s_9_2, -1, 1, 0},
-/*  3 */ { 2, s_9_3, -1, 1, 0},
-/*  4 */ { 1, s_9_4, -1, 1, 0},
-/*  5 */ { 1, s_9_5, -1, 2, 0},
-/*  6 */ { 1, s_9_6, -1, 1, 0},
-/*  7 */ { 1, s_9_7, -1, 1, 0}
+{ 1, s_9_0, -1, 1, 0},
+{ 1, s_9_1, -1, 2, 0},
+{ 1, s_9_2, -1, 1, 0},
+{ 2, s_9_3, -1, 1, 0},
+{ 1, s_9_4, -1, 1, 0},
+{ 1, s_9_5, -1, 2, 0},
+{ 1, s_9_6, -1, 1, 0},
+{ 1, s_9_7, -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, 1, 17, 4, 10 };
@@ -503,16 +503,16 @@ static const symbol s_13[] = { 'e', 'n', 't', 'e' };
 static const symbol s_14[] = { 'a', 't' };
 static const symbol s_15[] = { 'a', 't' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $pV = <integer expression>, line 33 */
-    z->I[1] = z->l; /* $p1 = <integer expression>, line 34 */
-    z->I[2] = z->l; /* $p2 = <integer expression>, line 35 */
-    {   int c1 = z->c; /* do, line 37 */
-        {   int c2 = z->c; /* or, line 39 */
-            if (in_grouping(z, g_v, 97, 252, 0)) goto lab2; /* grouping v, line 38 */
-            {   int c3 = z->c; /* or, line 38 */
-                if (out_grouping(z, g_v, 97, 252, 0)) goto lab4; /* non v, line 38 */
-                {    /* gopast */ /* grouping v, line 38 */
+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, 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;
@@ -520,8 +520,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
                 goto lab3;
             lab4:
                 z->c = c3;
-                if (in_grouping(z, g_v, 97, 252, 0)) goto lab2; /* grouping v, line 38 */
-                {    /* gopast */ /* non v, line 38 */
+                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;
@@ -531,10 +531,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
             goto lab1;
         lab2:
             z->c = c2;
-            if (out_grouping(z, g_v, 97, 252, 0)) goto lab0; /* non v, line 40 */
-            {   int c4 = z->c; /* or, line 40 */
-                if (out_grouping(z, g_v, 97, 252, 0)) goto lab6; /* non v, line 40 */
-                {    /* gopast */ /* grouping v, line 40 */
+            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;
@@ -542,86 +542,85 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
                 goto lab5;
             lab6:
                 z->c = c4;
-                if (in_grouping(z, g_v, 97, 252, 0)) goto lab0; /* grouping v, line 40 */
+                if (in_grouping(z, g_v, 97, 252, 0)) goto lab0;
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 40 */
+                z->c++;
             }
         lab5:
             ;
         }
     lab1:
-        z->I[0] = z->c; /* setmark pV, line 41 */
+        z->I[2] = z->c;
     lab0:
         z->c = c1;
     }
-    {   int c5 = z->c; /* do, line 43 */
-        {    /* gopast */ /* grouping v, line 44 */
+    {   int c5 = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 44 */
+        {   
             int ret = in_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p1, line 44 */
-        {    /* gopast */ /* grouping v, line 45 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 45 */
+        {   
             int ret = in_grouping(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        z->I[2] = z->c; /* setmark p2, line 45 */
+        z->I[0] = z->c;
     lab7:
         z->c = c5;
     }
     return 1;
 }
 
-static int r_postlude(struct SN_env * z) { /* forwardmode */
+static int r_postlude(struct SN_env * z) {
     int among_var;
-/* repeat, line 49 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 50 */
-        if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((67641858 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else /* substring, line 50 */
+    while(1) {
+        int c1 = z->c;
+        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; /* ], line 50 */
-        switch (among_var) { /* among, line 50 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_0); /* <-, line 51 */
+                {   int ret = slice_from_s(z, 1, s_0);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_1); /* <-, line 52 */
+                {   int ret = slice_from_s(z, 1, s_1);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_from_s(z, 1, s_2); /* <-, line 53 */
+                {   int ret = slice_from_s(z, 1, s_2);
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = slice_from_s(z, 1, s_3); /* <-, line 54 */
+                {   int ret = slice_from_s(z, 1, s_3);
                     if (ret < 0) return ret;
                 }
                 break;
             case 5:
-                {   int ret = slice_from_s(z, 1, s_4); /* <-, line 55 */
+                {   int ret = slice_from_s(z, 1, s_4);
                     if (ret < 0) return ret;
                 }
                 break;
             case 6:
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 57 */
+                z->c++;
                 break;
         }
         continue;
@@ -632,73 +631,73 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_RV(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 63 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 64 */
+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) { /* backwardmode */
-    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 65 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */
+static int r_attached_pronoun(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 68 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 68 */
+    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;
-    z->bra = z->c; /* ], line 68 */
-    if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; /* substring, line 72 */
+    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;
-    {   int ret = r_RV(z); /* call RV, line 72 */
+    {   int ret = r_RV(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 72 */
+    switch (among_var) {
         case 1:
-            z->bra = z->c; /* ], line 73 */
-            {   int ret = slice_from_s(z, 5, s_5); /* <-, line 73 */
+            z->bra = z->c;
+            {   int ret = slice_from_s(z, 5, s_5);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            z->bra = z->c; /* ], line 74 */
-            {   int ret = slice_from_s(z, 4, s_6); /* <-, line 74 */
+            z->bra = z->c;
+            {   int ret = slice_from_s(z, 4, s_6);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            z->bra = z->c; /* ], line 75 */
-            {   int ret = slice_from_s(z, 2, s_7); /* <-, line 75 */
+            z->bra = z->c;
+            {   int ret = slice_from_s(z, 2, s_7);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            z->bra = z->c; /* ], line 76 */
-            {   int ret = slice_from_s(z, 2, s_8); /* <-, line 76 */
+            z->bra = z->c;
+            {   int ret = slice_from_s(z, 2, s_8);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            z->bra = z->c; /* ], line 77 */
-            {   int ret = slice_from_s(z, 2, s_9); /* <-, line 77 */
+            z->bra = z->c;
+            {   int ret = slice_from_s(z, 2, s_9);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = slice_del(z); /* delete, line 81 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 7:
-            if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; /* literal, line 82 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0;
             z->c--;
-            {   int ret = slice_del(z); /* delete, line 82 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -706,38 +705,38 @@ static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
+static int r_standard_suffix(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 87 */
-    if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 87 */
+    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;
-    z->bra = z->c; /* ], line 87 */
-    switch (among_var) { /* among, line 87 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R2(z); /* call R2, line 99 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 99 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 105 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 105 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m1 = z->l - z->c; (void)m1; /* try, line 106 */
-                z->ket = z->c; /* [, line 106 */
-                if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m1; goto lab0; } /* literal, line 106 */
-                z->bra = z->c; /* ], line 106 */
-                {   int ret = r_R2(z); /* call R2, line 106 */
+            {   int m1 = z->l - z->c; (void)m1;
+                z->ket = z->c;
+                if (!(eq_s_b(z, 2, s_10))) { 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; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 106 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             lab0:
@@ -745,59 +744,59 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 3:
-            {   int ret = r_R2(z); /* call R2, line 111 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_11); /* <-, line 111 */
+            {   int ret = slice_from_s(z, 3, s_11);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = r_R2(z); /* call R2, line 115 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 1, s_12); /* <-, line 115 */
+            {   int ret = slice_from_s(z, 1, s_12);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = r_R2(z); /* call R2, line 119 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 4, s_13); /* <-, line 119 */
+            {   int ret = slice_from_s(z, 4, s_13);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = r_R1(z); /* call R1, line 123 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 123 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m2 = z->l - z->c; (void)m2; /* try, line 124 */
-                z->ket = z->c; /* [, line 125 */
-                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; } /* substring, line 125 */
+            {   int m2 = z->l - z->c; (void)m2;
+                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; }
-                z->bra = z->c; /* ], line 125 */
-                {   int ret = r_R2(z); /* call R2, line 125 */
+                z->bra = z->c;
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m2; goto lab1; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 125 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                switch (among_var) { /* among, line 125 */
+                switch (among_var) {
                     case 1:
-                        z->ket = z->c; /* [, line 126 */
-                        if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m2; goto lab1; } /* literal, line 126 */
-                        z->bra = z->c; /* ], line 126 */
-                        {   int ret = r_R2(z); /* call R2, line 126 */
+                        z->ket = z->c;
+                        if (!(eq_s_b(z, 2, s_14))) { 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; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 126 */
+                        {   int ret = slice_del(z);
                             if (ret < 0) return ret;
                         }
                         break;
@@ -807,22 +806,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 7:
-            {   int ret = r_R2(z); /* call R2, line 135 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 135 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m3 = z->l - z->c; (void)m3; /* try, line 136 */
-                z->ket = z->c; /* [, line 137 */
-                if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; } /* substring, line 137 */
+            {   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; }
-                z->bra = z->c; /* ], line 137 */
-                {   int ret = r_R2(z); /* call R2, line 140 */
+                z->bra = z->c;
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m3; goto lab2; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 140 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             lab2:
@@ -830,22 +829,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 8:
-            {   int ret = r_R2(z); /* call R2, line 147 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 147 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m4 = z->l - z->c; (void)m4; /* try, line 148 */
-                z->ket = z->c; /* [, line 149 */
-                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; } /* substring, line 149 */
+            {   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; }
-                z->bra = z->c; /* ], line 149 */
-                {   int ret = r_R2(z); /* call R2, line 152 */
+                z->bra = z->c;
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m4; goto lab3; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 152 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             lab3:
@@ -853,21 +852,21 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 9:
-            {   int ret = r_R2(z); /* call R2, line 159 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 159 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m5 = z->l - z->c; (void)m5; /* try, line 160 */
-                z->ket = z->c; /* [, line 161 */
-                if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m5; goto lab4; } /* literal, line 161 */
-                z->bra = z->c; /* ], line 161 */
-                {   int ret = r_R2(z); /* call R2, line 161 */
+            {   int m5 = z->l - z->c; (void)m5;
+                z->ket = z->c;
+                if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m5; goto lab4; }
+                z->bra = z->c;
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m5; goto lab4; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 161 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             lab4:
@@ -878,56 +877,56 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_y_verb_suffix(struct SN_env * z) { /* backwardmode */
+static int r_y_verb_suffix(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 168 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 168 */
-        if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; } /* substring, line 168 */
-        z->bra = z->c; /* ], line 168 */
+    {   int mlimit1;
+        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; }
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; /* literal, line 171 */
+    if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0;
     z->c--;
-    {   int ret = slice_del(z); /* delete, line 171 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
+static int r_verb_suffix(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 176 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 176 */
-        among_var = find_among_b(z, a_8, 96); /* substring, line 176 */
+    {   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_8, 96);
         if (!(among_var)) { z->lb = mlimit1; return 0; }
-        z->bra = z->c; /* ], line 176 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 176 */
+    switch (among_var) {
         case 1:
-            {   int m2 = z->l - z->c; (void)m2; /* try, line 179 */
-                if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m2; goto lab0; } /* literal, line 179 */
+            {   int m2 = z->l - z->c; (void)m2;
+                if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m2; goto lab0; }
                 z->c--;
-                {   int m_test3 = z->l - z->c; /* test, line 179 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m2; goto lab0; } /* literal, line 179 */
+                {   int m_test3 = z->l - z->c;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m2; goto lab0; }
                     z->c--;
                     z->c = z->l - m_test3;
                 }
             lab0:
                 ;
             }
-            z->bra = z->c; /* ], line 179 */
-            {   int ret = slice_del(z); /* delete, line 179 */
+            z->bra = z->c;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_del(z); /* delete, line 200 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -935,43 +934,43 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
+static int r_residual_suffix(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 205 */
-    among_var = find_among_b(z, a_9, 8); /* substring, line 205 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_9, 8);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 205 */
-    switch (among_var) { /* among, line 205 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_RV(z); /* call RV, line 208 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 208 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_RV(z); /* call RV, line 210 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 210 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m1 = z->l - z->c; (void)m1; /* try, line 210 */
-                z->ket = z->c; /* [, line 210 */
-                if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m1; goto lab0; } /* literal, line 210 */
+            {   int m1 = z->l - z->c; (void)m1;
+                z->ket = z->c;
+                if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m1; goto lab0; }
                 z->c--;
-                z->bra = z->c; /* ], line 210 */
-                {   int m_test2 = z->l - z->c; /* test, line 210 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m1; goto lab0; } /* literal, line 210 */
+                z->bra = z->c;
+                {   int m_test2 = z->l - z->c;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m1; goto lab0; }
                     z->c--;
                     z->c = z->l - m_test2;
                 }
-                {   int ret = r_RV(z); /* call RV, line 210 */
+                {   int ret = r_RV(z);
                     if (ret == 0) { z->c = z->l - m1; goto lab0; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 210 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             lab0:
@@ -982,36 +981,36 @@ static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int spanish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    /* do, line 216 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 216 */
+extern int spanish_ISO_8859_1_stem(struct SN_env * z) {
+    
+    {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 217 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m1 = z->l - z->c; (void)m1; /* do, line 218 */
-        {   int ret = r_attached_pronoun(z); /* call attached_pronoun, line 218 */
+    {   int m1 = z->l - z->c; (void)m1;
+        {   int ret = r_attached_pronoun(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m1;
     }
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 219 */
-        {   int m3 = z->l - z->c; (void)m3; /* or, line 219 */
-            {   int ret = r_standard_suffix(z); /* call standard_suffix, line 219 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int m3 = z->l - z->c; (void)m3;
+            {   int ret = r_standard_suffix(z);
                 if (ret == 0) goto lab2;
                 if (ret < 0) return ret;
             }
             goto lab1;
         lab2:
             z->c = z->l - m3;
-            {   int ret = r_y_verb_suffix(z); /* call y_verb_suffix, line 220 */
+            {   int ret = r_y_verb_suffix(z);
                 if (ret == 0) goto lab3;
                 if (ret < 0) return ret;
             }
             goto lab1;
         lab3:
             z->c = z->l - m3;
-            {   int ret = r_verb_suffix(z); /* call verb_suffix, line 221 */
+            {   int ret = r_verb_suffix(z);
                 if (ret == 0) goto lab0;
                 if (ret < 0) return ret;
             }
@@ -1020,15 +1019,15 @@ extern int spanish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     lab0:
         z->c = z->l - m2;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 223 */
-        {   int ret = r_residual_suffix(z); /* call residual_suffix, line 223 */
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int ret = r_residual_suffix(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m4;
     }
     z->c = z->lb;
-    {   int c5 = z->c; /* do, line 225 */
-        {   int ret = r_postlude(z); /* call postlude, line 225 */
+    {   int c5 = z->c;
+        {   int ret = r_postlude(z);
             if (ret < 0) return ret;
         }
         z->c = c5;
@@ -1036,7 +1035,7 @@ extern int spanish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * spanish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
+extern struct SN_env * spanish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
 
 extern void spanish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index e53777eb735a8e3c053e03ddf436d8a28d017442..215298c0346536010e75ca6aaa3ea3e0ba2e9854 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -65,43 +65,43 @@ static const symbol s_0_36[3] = { 'a', 's', 't' };
 
 static const struct among a_0[37] =
 {
-/*  0 */ { 1, s_0_0, -1, 1, 0},
-/*  1 */ { 4, s_0_1, 0, 1, 0},
-/*  2 */ { 4, s_0_2, 0, 1, 0},
-/*  3 */ { 7, s_0_3, 2, 1, 0},
-/*  4 */ { 4, s_0_4, 0, 1, 0},
-/*  5 */ { 2, s_0_5, -1, 1, 0},
-/*  6 */ { 1, s_0_6, -1, 1, 0},
-/*  7 */ { 3, s_0_7, 6, 1, 0},
-/*  8 */ { 4, s_0_8, 6, 1, 0},
-/*  9 */ { 4, s_0_9, 6, 1, 0},
-/* 10 */ { 3, s_0_10, 6, 1, 0},
-/* 11 */ { 4, s_0_11, 6, 1, 0},
-/* 12 */ { 2, s_0_12, -1, 1, 0},
-/* 13 */ { 5, s_0_13, 12, 1, 0},
-/* 14 */ { 4, s_0_14, 12, 1, 0},
-/* 15 */ { 5, s_0_15, 12, 1, 0},
-/* 16 */ { 3, s_0_16, -1, 1, 0},
-/* 17 */ { 2, s_0_17, -1, 1, 0},
-/* 18 */ { 2, s_0_18, -1, 1, 0},
-/* 19 */ { 5, s_0_19, 18, 1, 0},
-/* 20 */ { 2, s_0_20, -1, 1, 0},
-/* 21 */ { 1, s_0_21, -1, 2, 0},
-/* 22 */ { 2, s_0_22, 21, 1, 0},
-/* 23 */ { 5, s_0_23, 22, 1, 0},
-/* 24 */ { 5, s_0_24, 22, 1, 0},
-/* 25 */ { 5, s_0_25, 22, 1, 0},
-/* 26 */ { 2, s_0_26, 21, 1, 0},
-/* 27 */ { 4, s_0_27, 26, 1, 0},
-/* 28 */ { 5, s_0_28, 26, 1, 0},
-/* 29 */ { 3, s_0_29, 21, 1, 0},
-/* 30 */ { 5, s_0_30, 29, 1, 0},
-/* 31 */ { 6, s_0_31, 29, 1, 0},
-/* 32 */ { 4, s_0_32, 21, 1, 0},
-/* 33 */ { 2, s_0_33, -1, 1, 0},
-/* 34 */ { 5, s_0_34, -1, 1, 0},
-/* 35 */ { 3, s_0_35, -1, 1, 0},
-/* 36 */ { 3, s_0_36, -1, 1, 0}
+{ 1, s_0_0, -1, 1, 0},
+{ 4, s_0_1, 0, 1, 0},
+{ 4, s_0_2, 0, 1, 0},
+{ 7, s_0_3, 2, 1, 0},
+{ 4, s_0_4, 0, 1, 0},
+{ 2, s_0_5, -1, 1, 0},
+{ 1, s_0_6, -1, 1, 0},
+{ 3, s_0_7, 6, 1, 0},
+{ 4, s_0_8, 6, 1, 0},
+{ 4, s_0_9, 6, 1, 0},
+{ 3, s_0_10, 6, 1, 0},
+{ 4, s_0_11, 6, 1, 0},
+{ 2, s_0_12, -1, 1, 0},
+{ 5, s_0_13, 12, 1, 0},
+{ 4, s_0_14, 12, 1, 0},
+{ 5, s_0_15, 12, 1, 0},
+{ 3, s_0_16, -1, 1, 0},
+{ 2, s_0_17, -1, 1, 0},
+{ 2, s_0_18, -1, 1, 0},
+{ 5, s_0_19, 18, 1, 0},
+{ 2, s_0_20, -1, 1, 0},
+{ 1, s_0_21, -1, 2, 0},
+{ 2, s_0_22, 21, 1, 0},
+{ 5, s_0_23, 22, 1, 0},
+{ 5, s_0_24, 22, 1, 0},
+{ 5, s_0_25, 22, 1, 0},
+{ 2, s_0_26, 21, 1, 0},
+{ 4, s_0_27, 26, 1, 0},
+{ 5, s_0_28, 26, 1, 0},
+{ 3, s_0_29, 21, 1, 0},
+{ 5, s_0_30, 29, 1, 0},
+{ 6, s_0_31, 29, 1, 0},
+{ 4, s_0_32, 21, 1, 0},
+{ 2, s_0_33, -1, 1, 0},
+{ 5, s_0_34, -1, 1, 0},
+{ 3, s_0_35, -1, 1, 0},
+{ 3, s_0_36, -1, 1, 0}
 };
 
 static const symbol s_1_0[2] = { 'd', 'd' };
@@ -114,13 +114,13 @@ static const symbol s_1_6[2] = { 't', 't' };
 
 static const struct among a_1[7] =
 {
-/*  0 */ { 2, s_1_0, -1, -1, 0},
-/*  1 */ { 2, s_1_1, -1, -1, 0},
-/*  2 */ { 2, s_1_2, -1, -1, 0},
-/*  3 */ { 2, s_1_3, -1, -1, 0},
-/*  4 */ { 2, s_1_4, -1, -1, 0},
-/*  5 */ { 2, s_1_5, -1, -1, 0},
-/*  6 */ { 2, s_1_6, -1, -1, 0}
+{ 2, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0},
+{ 2, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0},
+{ 2, s_1_4, -1, -1, 0},
+{ 2, s_1_5, -1, -1, 0},
+{ 2, s_1_6, -1, -1, 0}
 };
 
 static const symbol s_2_0[2] = { 'i', 'g' };
@@ -131,11 +131,11 @@ static const symbol s_2_4[4] = { 'l', 0xF6, 's', 't' };
 
 static const struct among a_2[5] =
 {
-/*  0 */ { 2, s_2_0, -1, 1, 0},
-/*  1 */ { 3, s_2_1, 0, 1, 0},
-/*  2 */ { 3, s_2_2, -1, 1, 0},
-/*  3 */ { 5, s_2_3, -1, 3, 0},
-/*  4 */ { 4, s_2_4, -1, 2, 0}
+{ 2, s_2_0, -1, 1, 0},
+{ 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}
 };
 
 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 };
@@ -145,52 +145,50 @@ static const unsigned char g_s_ending[] = { 119, 127, 149 };
 static const symbol s_0[] = { 'l', 0xF6, 's' };
 static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */
-    {   int c_test1 = z->c; /* test, line 29 */
-        {   int ret = z->c + 3; /* hop, line 29 */
-            if (0 > ret || ret > z->l) return 0;
-            z->c = ret;
-        }
-        z->I[1] = z->c; /* setmark x, line 29 */
+static int r_mark_regions(struct SN_env * z) {
+    z->I[1] = 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;
     }
-    if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0; /* goto */ /* grouping v, line 30 */
-    {    /* gopast */ /* non v, line 30 */
+    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[0] = z->c; /* setmark p1, line 30 */
-    /* try, line 31 */
-    if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 31 */
-    z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 31 */
+    z->I[1] = z->c;
+    
+    if (!(z->I[1] < z->I[0])) goto lab0;
+    z->I[1] = z->I[0];
 lab0:
     return 1;
 }
 
-static int r_main_suffix(struct SN_env * z) { /* backwardmode */
+static int r_main_suffix(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 37 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 37 */
-        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; } /* substring, line 37 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[1];
+        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; }
-        z->bra = z->c; /* ], line 37 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 38 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 44 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0; /* grouping s_ending, line 46 */
-            {   int ret = slice_del(z); /* delete, line 46 */
+            if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -198,20 +196,20 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
+static int r_consonant_pair(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 50 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        {   int m2 = z->l - z->c; (void)m2; /* and, line 52 */
-            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; } /* among, line 51 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        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; }
             z->c = z->l - m2;
-            z->ket = z->c; /* [, line 52 */
+            z->ket = z->c;
             if (z->c <= z->lb) { z->lb = mlimit1; return 0; }
-            z->c--; /* next, line 52 */
-            z->bra = z->c; /* ], line 52 */
-            {   int ret = slice_del(z); /* delete, line 52 */
+            z->c--;
+            z->bra = z->c;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
         }
@@ -220,30 +218,30 @@ static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_other_suffix(struct SN_env * z) { /* backwardmode */
+static int r_other_suffix(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 55 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 56 */
-        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; } /* substring, line 56 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        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 || !((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; }
-        z->bra = z->c; /* ], line 56 */
-        switch (among_var) { /* among, line 56 */
+        z->bra = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_del(z); /* delete, line 57 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 3, s_0); /* <-, line 58 */
+                {   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); /* <-, line 59 */
+                {   int ret = slice_from_s(z, 4, s_1);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -253,29 +251,29 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int swedish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 66 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 66 */
+extern int swedish_ISO_8859_1_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 67 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 68 */
-        {   int ret = r_main_suffix(z); /* call main_suffix, line 68 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_main_suffix(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 69 */
-        {   int ret = r_consonant_pair(z); /* call consonant_pair, line 69 */
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_consonant_pair(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m3;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 70 */
-        {   int ret = r_other_suffix(z); /* call other_suffix, line 70 */
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int ret = r_other_suffix(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m4;
@@ -284,7 +282,7 @@ extern int swedish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * swedish_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); }
+extern struct SN_env * swedish_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); }
 
 extern void swedish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 44ef3d9253d8d1df3cc5af71472697660567363d..ce499386facccec2eff18df413099a569079f1cf 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -46,14 +46,14 @@ static const symbol s_0_7[2] = { 'z', 's' };
 
 static const struct among a_0[8] =
 {
-/*  0 */ { 2, s_0_0, -1, -1, 0},
-/*  1 */ { 3, s_0_1, -1, -1, 0},
-/*  2 */ { 2, s_0_2, -1, -1, 0},
-/*  3 */ { 2, s_0_3, -1, -1, 0},
-/*  4 */ { 2, s_0_4, -1, -1, 0},
-/*  5 */ { 2, s_0_5, -1, -1, 0},
-/*  6 */ { 2, s_0_6, -1, -1, 0},
-/*  7 */ { 2, s_0_7, -1, -1, 0}
+{ 2, s_0_0, -1, -1, 0},
+{ 3, s_0_1, -1, -1, 0},
+{ 2, s_0_2, -1, -1, 0},
+{ 2, s_0_3, -1, -1, 0},
+{ 2, s_0_4, -1, -1, 0},
+{ 2, s_0_5, -1, -1, 0},
+{ 2, s_0_6, -1, -1, 0},
+{ 2, s_0_7, -1, -1, 0}
 };
 
 static const symbol s_1_0[1] = { 0xE1 };
@@ -61,8 +61,8 @@ static const symbol s_1_1[1] = { 0xE9 };
 
 static const struct among a_1[2] =
 {
-/*  0 */ { 1, s_1_0, -1, 1, 0},
-/*  1 */ { 1, s_1_1, -1, 2, 0}
+{ 1, s_1_0, -1, 1, 0},
+{ 1, s_1_1, -1, 2, 0}
 };
 
 static const symbol s_2_0[2] = { 'b', 'b' };
@@ -91,29 +91,29 @@ static const symbol s_2_22[2] = { 'z', 'z' };
 
 static const struct among a_2[23] =
 {
-/*  0 */ { 2, s_2_0, -1, -1, 0},
-/*  1 */ { 2, s_2_1, -1, -1, 0},
-/*  2 */ { 2, s_2_2, -1, -1, 0},
-/*  3 */ { 2, s_2_3, -1, -1, 0},
-/*  4 */ { 2, s_2_4, -1, -1, 0},
-/*  5 */ { 2, s_2_5, -1, -1, 0},
-/*  6 */ { 2, s_2_6, -1, -1, 0},
-/*  7 */ { 2, s_2_7, -1, -1, 0},
-/*  8 */ { 2, s_2_8, -1, -1, 0},
-/*  9 */ { 2, s_2_9, -1, -1, 0},
-/* 10 */ { 2, s_2_10, -1, -1, 0},
-/* 11 */ { 2, s_2_11, -1, -1, 0},
-/* 12 */ { 3, s_2_12, -1, -1, 0},
-/* 13 */ { 2, s_2_13, -1, -1, 0},
-/* 14 */ { 3, s_2_14, -1, -1, 0},
-/* 15 */ { 2, s_2_15, -1, -1, 0},
-/* 16 */ { 2, s_2_16, -1, -1, 0},
-/* 17 */ { 3, s_2_17, -1, -1, 0},
-/* 18 */ { 3, s_2_18, -1, -1, 0},
-/* 19 */ { 3, s_2_19, -1, -1, 0},
-/* 20 */ { 3, s_2_20, -1, -1, 0},
-/* 21 */ { 3, s_2_21, -1, -1, 0},
-/* 22 */ { 2, s_2_22, -1, -1, 0}
+{ 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},
+{ 2, s_2_5, -1, -1, 0},
+{ 2, s_2_6, -1, -1, 0},
+{ 2, s_2_7, -1, -1, 0},
+{ 2, s_2_8, -1, -1, 0},
+{ 2, s_2_9, -1, -1, 0},
+{ 2, s_2_10, -1, -1, 0},
+{ 2, s_2_11, -1, -1, 0},
+{ 3, s_2_12, -1, -1, 0},
+{ 2, s_2_13, -1, -1, 0},
+{ 3, s_2_14, -1, -1, 0},
+{ 2, s_2_15, -1, -1, 0},
+{ 2, s_2_16, -1, -1, 0},
+{ 3, s_2_17, -1, -1, 0},
+{ 3, s_2_18, -1, -1, 0},
+{ 3, s_2_19, -1, -1, 0},
+{ 3, s_2_20, -1, -1, 0},
+{ 3, s_2_21, -1, -1, 0},
+{ 2, s_2_22, -1, -1, 0}
 };
 
 static const symbol s_3_0[2] = { 'a', 'l' };
@@ -121,8 +121,8 @@ static const symbol s_3_1[2] = { 'e', 'l' };
 
 static const struct among a_3[2] =
 {
-/*  0 */ { 2, s_3_0, -1, 1, 0},
-/*  1 */ { 2, s_3_1, -1, 1, 0}
+{ 2, s_3_0, -1, 1, 0},
+{ 2, s_3_1, -1, 1, 0}
 };
 
 static const symbol s_4_0[2] = { 'b', 'a' };
@@ -172,50 +172,50 @@ static const symbol s_4_43[2] = { 'v', 0xE9 };
 
 static const struct among a_4[44] =
 {
-/*  0 */ { 2, s_4_0, -1, -1, 0},
-/*  1 */ { 2, s_4_1, -1, -1, 0},
-/*  2 */ { 2, s_4_2, -1, -1, 0},
-/*  3 */ { 2, s_4_3, -1, -1, 0},
-/*  4 */ { 2, s_4_4, -1, -1, 0},
-/*  5 */ { 3, s_4_5, -1, -1, 0},
-/*  6 */ { 3, s_4_6, -1, -1, 0},
-/*  7 */ { 3, s_4_7, -1, -1, 0},
-/*  8 */ { 3, s_4_8, -1, -1, 0},
-/*  9 */ { 2, s_4_9, -1, -1, 0},
-/* 10 */ { 3, s_4_10, -1, -1, 0},
-/* 11 */ { 3, s_4_11, -1, -1, 0},
-/* 12 */ { 3, s_4_12, -1, -1, 0},
-/* 13 */ { 3, s_4_13, -1, -1, 0},
-/* 14 */ { 3, s_4_14, -1, -1, 0},
-/* 15 */ { 3, s_4_15, -1, -1, 0},
-/* 16 */ { 3, s_4_16, -1, -1, 0},
-/* 17 */ { 3, s_4_17, -1, -1, 0},
-/* 18 */ { 2, s_4_18, -1, -1, 0},
-/* 19 */ { 1, s_4_19, -1, -1, 0},
-/* 20 */ { 2, s_4_20, 19, -1, 0},
-/* 21 */ { 3, s_4_21, 20, -1, 0},
-/* 22 */ { 2, s_4_22, 19, -1, 0},
-/* 23 */ { 3, s_4_23, 22, -1, 0},
-/* 24 */ { 6, s_4_24, 22, -1, 0},
-/* 25 */ { 2, s_4_25, 19, -1, 0},
-/* 26 */ { 2, s_4_26, 19, -1, 0},
-/* 27 */ { 4, s_4_27, -1, -1, 0},
-/* 28 */ { 3, s_4_28, -1, -1, 0},
-/* 29 */ { 1, s_4_29, -1, -1, 0},
-/* 30 */ { 2, s_4_30, 29, -1, 0},
-/* 31 */ { 2, s_4_31, 29, -1, 0},
-/* 32 */ { 4, s_4_32, 29, -1, 0},
-/* 33 */ { 6, s_4_33, 32, -1, 0},
-/* 34 */ { 6, s_4_34, 32, -1, 0},
-/* 35 */ { 6, s_4_35, 32, -1, 0},
-/* 36 */ { 2, s_4_36, 29, -1, 0},
-/* 37 */ { 3, s_4_37, 29, -1, 0},
-/* 38 */ { 2, s_4_38, 29, -1, 0},
-/* 39 */ { 3, s_4_39, -1, -1, 0},
-/* 40 */ { 3, s_4_40, -1, -1, 0},
-/* 41 */ { 3, s_4_41, -1, -1, 0},
-/* 42 */ { 2, s_4_42, -1, -1, 0},
-/* 43 */ { 2, s_4_43, -1, -1, 0}
+{ 2, s_4_0, -1, -1, 0},
+{ 2, s_4_1, -1, -1, 0},
+{ 2, s_4_2, -1, -1, 0},
+{ 2, s_4_3, -1, -1, 0},
+{ 2, 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},
+{ 2, s_4_9, -1, -1, 0},
+{ 3, s_4_10, -1, -1, 0},
+{ 3, s_4_11, -1, -1, 0},
+{ 3, s_4_12, -1, -1, 0},
+{ 3, s_4_13, -1, -1, 0},
+{ 3, s_4_14, -1, -1, 0},
+{ 3, s_4_15, -1, -1, 0},
+{ 3, s_4_16, -1, -1, 0},
+{ 3, s_4_17, -1, -1, 0},
+{ 2, s_4_18, -1, -1, 0},
+{ 1, s_4_19, -1, -1, 0},
+{ 2, s_4_20, 19, -1, 0},
+{ 3, s_4_21, 20, -1, 0},
+{ 2, s_4_22, 19, -1, 0},
+{ 3, s_4_23, 22, -1, 0},
+{ 6, s_4_24, 22, -1, 0},
+{ 2, s_4_25, 19, -1, 0},
+{ 2, s_4_26, 19, -1, 0},
+{ 4, s_4_27, -1, -1, 0},
+{ 3, s_4_28, -1, -1, 0},
+{ 1, s_4_29, -1, -1, 0},
+{ 2, s_4_30, 29, -1, 0},
+{ 2, s_4_31, 29, -1, 0},
+{ 4, s_4_32, 29, -1, 0},
+{ 6, s_4_33, 32, -1, 0},
+{ 6, s_4_34, 32, -1, 0},
+{ 6, s_4_35, 32, -1, 0},
+{ 2, s_4_36, 29, -1, 0},
+{ 3, s_4_37, 29, -1, 0},
+{ 2, s_4_38, 29, -1, 0},
+{ 3, s_4_39, -1, -1, 0},
+{ 3, s_4_40, -1, -1, 0},
+{ 3, s_4_41, -1, -1, 0},
+{ 2, s_4_42, -1, -1, 0},
+{ 2, s_4_43, -1, -1, 0}
 };
 
 static const symbol s_5_0[2] = { 0xE1, 'n' };
@@ -224,9 +224,9 @@ static const symbol s_5_2[6] = { 0xE1, 'n', 'k', 0xE9, 'n', 't' };
 
 static const struct among a_5[3] =
 {
-/*  0 */ { 2, s_5_0, -1, 2, 0},
-/*  1 */ { 2, s_5_1, -1, 1, 0},
-/*  2 */ { 6, s_5_2, -1, 2, 0}
+{ 2, s_5_0, -1, 2, 0},
+{ 2, s_5_1, -1, 1, 0},
+{ 6, s_5_2, -1, 2, 0}
 };
 
 static const symbol s_6_0[4] = { 's', 't', 'u', 'l' };
@@ -238,12 +238,12 @@ static const symbol s_6_5[5] = { 0xE9, 's', 't', 0xFC, 'l' };
 
 static const struct among a_6[6] =
 {
-/*  0 */ { 4, s_6_0, -1, 1, 0},
-/*  1 */ { 5, s_6_1, 0, 1, 0},
-/*  2 */ { 5, s_6_2, 0, 2, 0},
-/*  3 */ { 4, s_6_3, -1, 1, 0},
-/*  4 */ { 5, s_6_4, 3, 1, 0},
-/*  5 */ { 5, s_6_5, 3, 3, 0}
+{ 4, s_6_0, -1, 1, 0},
+{ 5, s_6_1, 0, 1, 0},
+{ 5, s_6_2, 0, 2, 0},
+{ 4, s_6_3, -1, 1, 0},
+{ 5, s_6_4, 3, 1, 0},
+{ 5, s_6_5, 3, 3, 0}
 };
 
 static const symbol s_7_0[1] = { 0xE1 };
@@ -251,8 +251,8 @@ static const symbol s_7_1[1] = { 0xE9 };
 
 static const struct among a_7[2] =
 {
-/*  0 */ { 1, s_7_0, -1, 1, 0},
-/*  1 */ { 1, s_7_1, -1, 1, 0}
+{ 1, s_7_0, -1, 1, 0},
+{ 1, s_7_1, -1, 1, 0}
 };
 
 static const symbol s_8_0[1] = { 'k' };
@@ -265,13 +265,13 @@ static const symbol s_8_6[2] = { 0xF6, 'k' };
 
 static const struct among a_8[7] =
 {
-/*  0 */ { 1, s_8_0, -1, 3, 0},
-/*  1 */ { 2, s_8_1, 0, 3, 0},
-/*  2 */ { 2, s_8_2, 0, 3, 0},
-/*  3 */ { 2, s_8_3, 0, 3, 0},
-/*  4 */ { 2, s_8_4, 0, 1, 0},
-/*  5 */ { 2, s_8_5, 0, 2, 0},
-/*  6 */ { 2, s_8_6, 0, 3, 0}
+{ 1, s_8_0, -1, 3, 0},
+{ 2, s_8_1, 0, 3, 0},
+{ 2, s_8_2, 0, 3, 0},
+{ 2, s_8_3, 0, 3, 0},
+{ 2, s_8_4, 0, 1, 0},
+{ 2, s_8_5, 0, 2, 0},
+{ 2, s_8_6, 0, 3, 0}
 };
 
 static const symbol s_9_0[2] = { 0xE9, 'i' };
@@ -289,18 +289,18 @@ static const symbol s_9_11[2] = { 0xE9, 0xE9 };
 
 static const struct among a_9[12] =
 {
-/*  0 */ { 2, s_9_0, -1, 1, 0},
-/*  1 */ { 3, s_9_1, 0, 3, 0},
-/*  2 */ { 3, s_9_2, 0, 2, 0},
-/*  3 */ { 1, s_9_3, -1, 1, 0},
-/*  4 */ { 2, s_9_4, 3, 1, 0},
-/*  5 */ { 3, s_9_5, 4, 1, 0},
-/*  6 */ { 3, s_9_6, 4, 1, 0},
-/*  7 */ { 3, s_9_7, 4, 1, 0},
-/*  8 */ { 3, s_9_8, 4, 3, 0},
-/*  9 */ { 3, s_9_9, 4, 2, 0},
-/* 10 */ { 3, s_9_10, 4, 1, 0},
-/* 11 */ { 2, s_9_11, 3, 2, 0}
+{ 2, s_9_0, -1, 1, 0},
+{ 3, s_9_1, 0, 3, 0},
+{ 3, s_9_2, 0, 2, 0},
+{ 1, s_9_3, -1, 1, 0},
+{ 2, s_9_4, 3, 1, 0},
+{ 3, s_9_5, 4, 1, 0},
+{ 3, s_9_6, 4, 1, 0},
+{ 3, s_9_7, 4, 1, 0},
+{ 3, s_9_8, 4, 3, 0},
+{ 3, s_9_9, 4, 2, 0},
+{ 3, s_9_10, 4, 1, 0},
+{ 2, s_9_11, 3, 2, 0}
 };
 
 static const symbol s_10_0[1] = { 'a' };
@@ -337,37 +337,37 @@ static const symbol s_10_30[1] = { 0xE9 };
 
 static const struct among a_10[31] =
 {
-/*  0 */ { 1, s_10_0, -1, 1, 0},
-/*  1 */ { 2, s_10_1, 0, 1, 0},
-/*  2 */ { 1, s_10_2, -1, 1, 0},
-/*  3 */ { 2, s_10_3, 2, 1, 0},
-/*  4 */ { 2, s_10_4, 2, 1, 0},
-/*  5 */ { 2, s_10_5, 2, 1, 0},
-/*  6 */ { 2, s_10_6, 2, 2, 0},
-/*  7 */ { 2, s_10_7, 2, 3, 0},
-/*  8 */ { 2, s_10_8, 2, 1, 0},
-/*  9 */ { 1, s_10_9, -1, 1, 0},
-/* 10 */ { 2, s_10_10, 9, 1, 0},
-/* 11 */ { 2, s_10_11, -1, 1, 0},
-/* 12 */ { 3, s_10_12, 11, 1, 0},
-/* 13 */ { 3, s_10_13, 11, 2, 0},
-/* 14 */ { 3, s_10_14, 11, 3, 0},
-/* 15 */ { 3, s_10_15, 11, 1, 0},
-/* 16 */ { 2, s_10_16, -1, 1, 0},
-/* 17 */ { 3, s_10_17, 16, 1, 0},
-/* 18 */ { 4, s_10_18, 17, 2, 0},
-/* 19 */ { 2, s_10_19, -1, 1, 0},
-/* 20 */ { 3, s_10_20, 19, 1, 0},
-/* 21 */ { 4, s_10_21, 20, 3, 0},
-/* 22 */ { 1, s_10_22, -1, 1, 0},
-/* 23 */ { 2, s_10_23, 22, 1, 0},
-/* 24 */ { 2, s_10_24, 22, 1, 0},
-/* 25 */ { 2, s_10_25, 22, 1, 0},
-/* 26 */ { 2, s_10_26, 22, 2, 0},
-/* 27 */ { 2, s_10_27, 22, 3, 0},
-/* 28 */ { 1, s_10_28, -1, 1, 0},
-/* 29 */ { 1, s_10_29, -1, 2, 0},
-/* 30 */ { 1, s_10_30, -1, 3, 0}
+{ 1, s_10_0, -1, 1, 0},
+{ 2, s_10_1, 0, 1, 0},
+{ 1, s_10_2, -1, 1, 0},
+{ 2, s_10_3, 2, 1, 0},
+{ 2, s_10_4, 2, 1, 0},
+{ 2, s_10_5, 2, 1, 0},
+{ 2, s_10_6, 2, 2, 0},
+{ 2, s_10_7, 2, 3, 0},
+{ 2, s_10_8, 2, 1, 0},
+{ 1, s_10_9, -1, 1, 0},
+{ 2, s_10_10, 9, 1, 0},
+{ 2, s_10_11, -1, 1, 0},
+{ 3, s_10_12, 11, 1, 0},
+{ 3, s_10_13, 11, 2, 0},
+{ 3, s_10_14, 11, 3, 0},
+{ 3, s_10_15, 11, 1, 0},
+{ 2, s_10_16, -1, 1, 0},
+{ 3, s_10_17, 16, 1, 0},
+{ 4, s_10_18, 17, 2, 0},
+{ 2, s_10_19, -1, 1, 0},
+{ 3, s_10_20, 19, 1, 0},
+{ 4, s_10_21, 20, 3, 0},
+{ 1, s_10_22, -1, 1, 0},
+{ 2, s_10_23, 22, 1, 0},
+{ 2, s_10_24, 22, 1, 0},
+{ 2, s_10_25, 22, 1, 0},
+{ 2, s_10_26, 22, 2, 0},
+{ 2, s_10_27, 22, 3, 0},
+{ 1, s_10_28, -1, 1, 0},
+{ 1, s_10_29, -1, 2, 0},
+{ 1, s_10_30, -1, 3, 0}
 };
 
 static const symbol s_11_0[2] = { 'i', 'd' };
@@ -415,48 +415,48 @@ static const symbol s_11_41[3] = { 0xE9, 'i', 'm' };
 
 static const struct among a_11[42] =
 {
-/*  0 */ { 2, s_11_0, -1, 1, 0},
-/*  1 */ { 3, s_11_1, 0, 1, 0},
-/*  2 */ { 4, s_11_2, 1, 1, 0},
-/*  3 */ { 3, s_11_3, 0, 1, 0},
-/*  4 */ { 4, s_11_4, 3, 1, 0},
-/*  5 */ { 3, s_11_5, 0, 2, 0},
-/*  6 */ { 3, s_11_6, 0, 3, 0},
-/*  7 */ { 1, s_11_7, -1, 1, 0},
-/*  8 */ { 2, s_11_8, 7, 1, 0},
-/*  9 */ { 3, s_11_9, 8, 1, 0},
-/* 10 */ { 2, s_11_10, 7, 1, 0},
-/* 11 */ { 3, s_11_11, 10, 1, 0},
-/* 12 */ { 2, s_11_12, 7, 2, 0},
-/* 13 */ { 2, s_11_13, 7, 3, 0},
-/* 14 */ { 4, s_11_14, -1, 1, 0},
-/* 15 */ { 5, s_11_15, 14, 1, 0},
-/* 16 */ { 6, s_11_16, 15, 1, 0},
-/* 17 */ { 5, s_11_17, 14, 3, 0},
-/* 18 */ { 2, s_11_18, -1, 1, 0},
-/* 19 */ { 3, s_11_19, 18, 1, 0},
-/* 20 */ { 4, s_11_20, 19, 1, 0},
-/* 21 */ { 3, s_11_21, 18, 1, 0},
-/* 22 */ { 4, s_11_22, 21, 1, 0},
-/* 23 */ { 3, s_11_23, 18, 2, 0},
-/* 24 */ { 3, s_11_24, 18, 3, 0},
-/* 25 */ { 3, s_11_25, -1, 1, 0},
-/* 26 */ { 4, s_11_26, 25, 1, 0},
-/* 27 */ { 5, s_11_27, 26, 1, 0},
-/* 28 */ { 4, s_11_28, 25, 1, 0},
-/* 29 */ { 5, s_11_29, 28, 1, 0},
-/* 30 */ { 4, s_11_30, 25, 2, 0},
-/* 31 */ { 4, s_11_31, 25, 3, 0},
-/* 32 */ { 5, s_11_32, -1, 1, 0},
-/* 33 */ { 6, s_11_33, 32, 1, 0},
-/* 34 */ { 5, s_11_34, -1, 2, 0},
-/* 35 */ { 2, s_11_35, -1, 1, 0},
-/* 36 */ { 3, s_11_36, 35, 1, 0},
-/* 37 */ { 4, s_11_37, 36, 1, 0},
-/* 38 */ { 3, s_11_38, 35, 1, 0},
-/* 39 */ { 4, s_11_39, 38, 1, 0},
-/* 40 */ { 3, s_11_40, 35, 2, 0},
-/* 41 */ { 3, s_11_41, 35, 3, 0}
+{ 2, s_11_0, -1, 1, 0},
+{ 3, s_11_1, 0, 1, 0},
+{ 4, s_11_2, 1, 1, 0},
+{ 3, s_11_3, 0, 1, 0},
+{ 4, s_11_4, 3, 1, 0},
+{ 3, s_11_5, 0, 2, 0},
+{ 3, s_11_6, 0, 3, 0},
+{ 1, s_11_7, -1, 1, 0},
+{ 2, s_11_8, 7, 1, 0},
+{ 3, s_11_9, 8, 1, 0},
+{ 2, s_11_10, 7, 1, 0},
+{ 3, s_11_11, 10, 1, 0},
+{ 2, s_11_12, 7, 2, 0},
+{ 2, s_11_13, 7, 3, 0},
+{ 4, s_11_14, -1, 1, 0},
+{ 5, s_11_15, 14, 1, 0},
+{ 6, s_11_16, 15, 1, 0},
+{ 5, s_11_17, 14, 3, 0},
+{ 2, s_11_18, -1, 1, 0},
+{ 3, s_11_19, 18, 1, 0},
+{ 4, s_11_20, 19, 1, 0},
+{ 3, s_11_21, 18, 1, 0},
+{ 4, s_11_22, 21, 1, 0},
+{ 3, s_11_23, 18, 2, 0},
+{ 3, s_11_24, 18, 3, 0},
+{ 3, s_11_25, -1, 1, 0},
+{ 4, s_11_26, 25, 1, 0},
+{ 5, s_11_27, 26, 1, 0},
+{ 4, s_11_28, 25, 1, 0},
+{ 5, s_11_29, 28, 1, 0},
+{ 4, s_11_30, 25, 2, 0},
+{ 4, s_11_31, 25, 3, 0},
+{ 5, s_11_32, -1, 1, 0},
+{ 6, s_11_33, 32, 1, 0},
+{ 5, s_11_34, -1, 2, 0},
+{ 2, s_11_35, -1, 1, 0},
+{ 3, s_11_36, 35, 1, 0},
+{ 4, s_11_37, 36, 1, 0},
+{ 3, s_11_38, 35, 1, 0},
+{ 4, s_11_39, 38, 1, 0},
+{ 3, s_11_40, 35, 2, 0},
+{ 3, s_11_41, 35, 3, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 52, 14 };
@@ -476,60 +476,60 @@ static const symbol s_11[] = { 'e' };
 static const symbol s_12[] = { 'a' };
 static const symbol s_13[] = { 'e' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 46 */
-    {   int c1 = z->c; /* or, line 51 */
-        if (in_grouping(z, g_v, 97, 252, 0)) goto lab1; /* grouping v, line 48 */
-        if (in_grouping(z, g_v, 97, 252, 1) < 0) goto lab1; /* goto */ /* non v, line 48 */
-        {   int c2 = z->c; /* or, line 49 */
-            if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3; /* among, line 49 */
+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;
             goto lab2;
         lab3:
             z->c = c2;
             if (z->c >= z->l) goto lab1;
-            z->c++; /* next, line 49 */
+            z->c++;
         }
     lab2:
-        z->I[0] = z->c; /* setmark p1, line 50 */
+        z->I[0] = z->c;
         goto lab0;
     lab1:
         z->c = c1;
-        if (out_grouping(z, g_v, 97, 252, 0)) return 0; /* non v, line 53 */
-        {    /* gopast */ /* grouping v, line 53 */
+        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;
         }
-        z->I[0] = z->c; /* setmark p1, line 53 */
+        z->I[0] = z->c;
     }
 lab0:
     return 1;
 }
 
-static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 58 */
+static int r_R1(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_v_ending(struct SN_env * z) { /* backwardmode */
+static int r_v_ending(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 61 */
-    if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0; /* substring, line 61 */
+    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;
-    z->bra = z->c; /* ], line 61 */
-    {   int ret = r_R1(z); /* call R1, line 61 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 61 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 1, s_0); /* <-, line 62 */
+            {   int ret = slice_from_s(z, 1, s_0);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_1); /* <-, line 63 */
+            {   int ret = slice_from_s(z, 1, s_1);
                 if (ret < 0) return ret;
             }
             break;
@@ -537,84 +537,82 @@ static int r_v_ending(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_double(struct SN_env * z) { /* backwardmode */
-    {   int m_test1 = z->l - z->c; /* test, line 68 */
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 68 */
+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;
         z->c = z->l - m_test1;
     }
     return 1;
 }
 
-static int r_undouble(struct SN_env * z) { /* backwardmode */
+static int r_undouble(struct SN_env * z) {
     if (z->c <= z->lb) return 0;
-    z->c--; /* next, line 73 */
-    z->ket = z->c; /* [, line 73 */
-    {   int ret = z->c - 1; /* hop, line 73 */
-        if (z->lb > ret || ret > z->l) return 0;
-        z->c = ret;
-    }
-    z->bra = z->c; /* ], line 73 */
-    {   int ret = slice_del(z); /* delete, line 73 */
+    z->c--;
+    z->ket = z->c;
+z->c = z->c - 1;
+    if (z->c < z->lb) return 0;
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_instrum(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 77 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 77 */
+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;
-    z->bra = z->c; /* ], line 77 */
-    {   int ret = r_R1(z); /* call R1, line 77 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    {   int ret = r_double(z); /* call double, line 78 */
+    {   int ret = r_double(z);
         if (ret <= 0) return ret;
     }
-    {   int ret = slice_del(z); /* delete, line 81 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    {   int ret = r_undouble(z); /* call undouble, line 82 */
+    {   int ret = r_undouble(z);
         if (ret <= 0) return ret;
     }
     return 1;
 }
 
-static int r_case(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 87 */
-    if (!(find_among_b(z, a_4, 44))) return 0; /* substring, line 87 */
-    z->bra = z->c; /* ], line 87 */
-    {   int ret = r_R1(z); /* call R1, line 87 */
+static int r_case(struct SN_env * z) {
+    z->ket = z->c;
+    if (!(find_among_b(z, a_4, 44))) return 0;
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    {   int ret = slice_del(z); /* delete, line 111 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    {   int ret = r_v_ending(z); /* call v_ending, line 112 */
+    {   int ret = r_v_ending(z);
         if (ret <= 0) return ret;
     }
     return 1;
 }
 
-static int r_case_special(struct SN_env * z) { /* backwardmode */
+static int r_case_special(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 116 */
-    if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0; /* substring, line 116 */
+    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;
-    z->bra = z->c; /* ], line 116 */
-    {   int ret = r_R1(z); /* call R1, line 116 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 116 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 1, s_2); /* <-, line 117 */
+            {   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); /* <-, line 118 */
+            {   int ret = slice_from_s(z, 1, s_3);
                 if (ret < 0) return ret;
             }
             break;
@@ -622,29 +620,29 @@ static int r_case_special(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_case_other(struct SN_env * z) { /* backwardmode */
+static int r_case_other(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 124 */
-    if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 124 */
+    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;
-    z->bra = z->c; /* ], line 124 */
-    {   int ret = r_R1(z); /* call R1, line 124 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 124 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 125 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_4); /* <-, line 127 */
+            {   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); /* <-, line 128 */
+            {   int ret = slice_from_s(z, 1, s_5);
                 if (ret < 0) return ret;
             }
             break;
@@ -652,49 +650,49 @@ static int r_case_other(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_factive(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 133 */
-    if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0; /* substring, line 133 */
+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;
-    z->bra = z->c; /* ], line 133 */
-    {   int ret = r_R1(z); /* call R1, line 133 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    {   int ret = r_double(z); /* call double, line 134 */
+    {   int ret = r_double(z);
         if (ret <= 0) return ret;
     }
-    {   int ret = slice_del(z); /* delete, line 137 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    {   int ret = r_undouble(z); /* call undouble, line 138 */
+    {   int ret = r_undouble(z);
         if (ret <= 0) return ret;
     }
     return 1;
 }
 
-static int r_plural(struct SN_env * z) { /* backwardmode */
+static int r_plural(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 142 */
-    if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0; /* substring, line 142 */
+    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;
-    z->bra = z->c; /* ], line 142 */
-    {   int ret = r_R1(z); /* call R1, line 142 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 142 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 1, s_6); /* <-, line 143 */
+            {   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_7); /* <-, line 144 */
+            {   int ret = slice_from_s(z, 1, s_7);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_del(z); /* delete, line 145 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -702,29 +700,29 @@ static int r_plural(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_owned(struct SN_env * z) { /* backwardmode */
+static int r_owned(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 154 */
-    if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 233)) return 0; /* substring, line 154 */
+    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;
-    z->bra = z->c; /* ], line 154 */
-    {   int ret = r_R1(z); /* call R1, line 154 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 154 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 155 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_8); /* <-, line 156 */
+            {   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); /* <-, line 157 */
+            {   int ret = slice_from_s(z, 1, s_9);
                 if (ret < 0) return ret;
             }
             break;
@@ -732,28 +730,28 @@ static int r_owned(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_sing_owner(struct SN_env * z) { /* backwardmode */
+static int r_sing_owner(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 168 */
-    among_var = find_among_b(z, a_10, 31); /* substring, line 168 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_10, 31);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 168 */
-    {   int ret = r_R1(z); /* call R1, line 168 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 168 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 169 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_10); /* <-, line 170 */
+            {   int ret = slice_from_s(z, 1, s_10);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 1, s_11); /* <-, line 171 */
+            {   int ret = slice_from_s(z, 1, s_11);
                 if (ret < 0) return ret;
             }
             break;
@@ -761,29 +759,29 @@ static int r_sing_owner(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_plur_owner(struct SN_env * z) { /* backwardmode */
+static int r_plur_owner(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 193 */
-    if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 193 */
+    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;
-    z->bra = z->c; /* ], line 193 */
-    {   int ret = r_R1(z); /* call R1, line 193 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 193 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 194 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_12); /* <-, line 195 */
+            {   int ret = slice_from_s(z, 1, s_12);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 1, s_13); /* <-, line 196 */
+            {   int ret = slice_from_s(z, 1, s_13);
                 if (ret < 0) return ret;
             }
             break;
@@ -791,65 +789,65 @@ static int r_plur_owner(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int hungarian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 229 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 229 */
+extern int hungarian_ISO_8859_2_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 230 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 231 */
-        {   int ret = r_instrum(z); /* call instrum, line 231 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_instrum(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 232 */
-        {   int ret = r_case(z); /* call case, line 232 */
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_case(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m3;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 233 */
-        {   int ret = r_case_special(z); /* call case_special, line 233 */
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int ret = r_case_special(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m4;
     }
-    {   int m5 = z->l - z->c; (void)m5; /* do, line 234 */
-        {   int ret = r_case_other(z); /* call case_other, line 234 */
+    {   int m5 = z->l - z->c; (void)m5;
+        {   int ret = r_case_other(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m5;
     }
-    {   int m6 = z->l - z->c; (void)m6; /* do, line 235 */
-        {   int ret = r_factive(z); /* call factive, line 235 */
+    {   int m6 = z->l - z->c; (void)m6;
+        {   int ret = r_factive(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m6;
     }
-    {   int m7 = z->l - z->c; (void)m7; /* do, line 236 */
-        {   int ret = r_owned(z); /* call owned, line 236 */
+    {   int m7 = z->l - z->c; (void)m7;
+        {   int ret = r_owned(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m7;
     }
-    {   int m8 = z->l - z->c; (void)m8; /* do, line 237 */
-        {   int ret = r_sing_owner(z); /* call sing_owner, line 237 */
+    {   int m8 = z->l - z->c; (void)m8;
+        {   int ret = r_sing_owner(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m8;
     }
-    {   int m9 = z->l - z->c; (void)m9; /* do, line 238 */
-        {   int ret = r_plur_owner(z); /* call plur_owner, line 238 */
+    {   int m9 = z->l - z->c; (void)m9;
+        {   int ret = r_plur_owner(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m9;
     }
-    {   int m10 = z->l - z->c; (void)m10; /* do, line 239 */
-        {   int ret = r_plural(z); /* call plural, line 239 */
+    {   int m10 = z->l - z->c; (void)m10;
+        {   int ret = r_plural(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m10;
@@ -858,7 +856,7 @@ extern int hungarian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * hungarian_ISO_8859_2_create_env(void) { return SN_create_env(0, 1, 0); }
+extern struct SN_env * hungarian_ISO_8859_2_create_env(void) { return SN_create_env(0, 1); }
 
 extern void hungarian_ISO_8859_2_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 14c6fb3c1463eb020af8d190d9c9429e768d167a..c1dd11909ae196514d440bc5d8af06fb073440d5 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -37,9 +37,9 @@ static const symbol s_0_2[1] = { 'U' };
 
 static const struct among a_0[3] =
 {
-/*  0 */ { 0, 0, -1, 3, 0},
-/*  1 */ { 1, s_0_1, 0, 1, 0},
-/*  2 */ { 1, s_0_2, 0, 2, 0}
+{ 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' };
@@ -61,22 +61,22 @@ static const symbol s_1_15[5] = { 'i', 'i', 'l', 'o', 'r' };
 
 static const struct among a_1[16] =
 {
-/*  0 */ { 2, s_1_0, -1, 3, 0},
-/*  1 */ { 4, s_1_1, -1, 7, 0},
-/*  2 */ { 3, s_1_2, -1, 2, 0},
-/*  3 */ { 3, s_1_3, -1, 4, 0},
-/*  4 */ { 4, s_1_4, -1, 7, 0},
-/*  5 */ { 3, s_1_5, -1, 3, 0},
-/*  6 */ { 3, s_1_6, -1, 5, 0},
-/*  7 */ { 4, s_1_7, 6, 4, 0},
-/*  8 */ { 3, s_1_8, -1, 4, 0},
-/*  9 */ { 4, s_1_9, -1, 6, 0},
-/* 10 */ { 2, s_1_10, -1, 4, 0},
-/* 11 */ { 4, s_1_11, -1, 1, 0},
-/* 12 */ { 2, s_1_12, -1, 1, 0},
-/* 13 */ { 4, s_1_13, -1, 3, 0},
-/* 14 */ { 4, s_1_14, -1, 4, 0},
-/* 15 */ { 5, s_1_15, 14, 4, 0}
+{ 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' };
@@ -128,52 +128,52 @@ static const symbol s_2_45[5] = { 'i', 't', 'i', 'v', 0xE3 };
 
 static const struct among a_2[46] =
 {
-/*  0 */ { 5, s_2_0, -1, 4, 0},
-/*  1 */ { 5, s_2_1, -1, 4, 0},
-/*  2 */ { 5, s_2_2, -1, 5, 0},
-/*  3 */ { 5, s_2_3, -1, 6, 0},
-/*  4 */ { 5, s_2_4, -1, 4, 0},
-/*  5 */ { 6, s_2_5, -1, 5, 0},
-/*  6 */ { 6, s_2_6, -1, 6, 0},
-/*  7 */ { 6, s_2_7, -1, 5, 0},
-/*  8 */ { 6, s_2_8, -1, 6, 0},
-/*  9 */ { 6, s_2_9, -1, 5, 0},
-/* 10 */ { 7, s_2_10, -1, 4, 0},
-/* 11 */ { 9, s_2_11, -1, 1, 0},
-/* 12 */ { 9, s_2_12, -1, 2, 0},
-/* 13 */ { 7, s_2_13, -1, 3, 0},
-/* 14 */ { 5, s_2_14, -1, 4, 0},
-/* 15 */ { 5, s_2_15, -1, 5, 0},
-/* 16 */ { 5, s_2_16, -1, 6, 0},
-/* 17 */ { 5, s_2_17, -1, 4, 0},
-/* 18 */ { 5, s_2_18, -1, 5, 0},
-/* 19 */ { 7, s_2_19, 18, 4, 0},
-/* 20 */ { 5, s_2_20, -1, 6, 0},
-/* 21 */ { 5, s_2_21, -1, 5, 0},
-/* 22 */ { 7, s_2_22, -1, 4, 0},
-/* 23 */ { 9, s_2_23, -1, 1, 0},
-/* 24 */ { 7, s_2_24, -1, 3, 0},
-/* 25 */ { 5, s_2_25, -1, 4, 0},
-/* 26 */ { 5, s_2_26, -1, 5, 0},
-/* 27 */ { 5, s_2_27, -1, 6, 0},
-/* 28 */ { 6, s_2_28, -1, 4, 0},
-/* 29 */ { 8, s_2_29, -1, 1, 0},
-/* 30 */ { 6, s_2_30, -1, 3, 0},
-/* 31 */ { 7, s_2_31, -1, 4, 0},
-/* 32 */ { 9, s_2_32, -1, 1, 0},
-/* 33 */ { 7, s_2_33, -1, 3, 0},
-/* 34 */ { 4, s_2_34, -1, 4, 0},
-/* 35 */ { 4, s_2_35, -1, 5, 0},
-/* 36 */ { 6, s_2_36, 35, 4, 0},
-/* 37 */ { 4, s_2_37, -1, 6, 0},
-/* 38 */ { 4, s_2_38, -1, 5, 0},
-/* 39 */ { 4, s_2_39, -1, 4, 0},
-/* 40 */ { 4, s_2_40, -1, 5, 0},
-/* 41 */ { 4, s_2_41, -1, 6, 0},
-/* 42 */ { 5, s_2_42, -1, 4, 0},
-/* 43 */ { 5, s_2_43, -1, 4, 0},
-/* 44 */ { 5, s_2_44, -1, 5, 0},
-/* 45 */ { 5, s_2_45, -1, 6, 0}
+{ 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' };
@@ -241,68 +241,68 @@ static const symbol s_3_61[3] = { 'i', 'v', 0xE3 };
 
 static const struct among a_3[62] =
 {
-/*  0 */ { 3, s_3_0, -1, 1, 0},
-/*  1 */ { 5, s_3_1, -1, 1, 0},
-/*  2 */ { 5, s_3_2, -1, 1, 0},
-/*  3 */ { 4, s_3_3, -1, 1, 0},
-/*  4 */ { 3, s_3_4, -1, 1, 0},
-/*  5 */ { 3, s_3_5, -1, 1, 0},
-/*  6 */ { 4, s_3_6, -1, 1, 0},
-/*  7 */ { 4, s_3_7, -1, 3, 0},
-/*  8 */ { 3, s_3_8, -1, 1, 0},
-/*  9 */ { 3, s_3_9, -1, 1, 0},
-/* 10 */ { 2, s_3_10, -1, 1, 0},
-/* 11 */ { 3, s_3_11, -1, 1, 0},
-/* 12 */ { 5, s_3_12, -1, 1, 0},
-/* 13 */ { 5, s_3_13, -1, 1, 0},
-/* 14 */ { 4, s_3_14, -1, 3, 0},
-/* 15 */ { 4, s_3_15, -1, 2, 0},
-/* 16 */ { 4, s_3_16, -1, 1, 0},
-/* 17 */ { 3, s_3_17, -1, 1, 0},
-/* 18 */ { 5, s_3_18, 17, 1, 0},
-/* 19 */ { 3, s_3_19, -1, 1, 0},
-/* 20 */ { 4, s_3_20, -1, 1, 0},
-/* 21 */ { 4, s_3_21, -1, 3, 0},
-/* 22 */ { 3, s_3_22, -1, 1, 0},
-/* 23 */ { 3, s_3_23, -1, 1, 0},
-/* 24 */ { 3, s_3_24, -1, 1, 0},
-/* 25 */ { 5, s_3_25, -1, 1, 0},
-/* 26 */ { 5, s_3_26, -1, 1, 0},
-/* 27 */ { 4, s_3_27, -1, 2, 0},
-/* 28 */ { 5, s_3_28, -1, 1, 0},
-/* 29 */ { 3, s_3_29, -1, 1, 0},
-/* 30 */ { 3, s_3_30, -1, 1, 0},
-/* 31 */ { 5, s_3_31, 30, 1, 0},
-/* 32 */ { 3, s_3_32, -1, 1, 0},
-/* 33 */ { 4, s_3_33, -1, 1, 0},
-/* 34 */ { 4, s_3_34, -1, 3, 0},
-/* 35 */ { 3, s_3_35, -1, 1, 0},
-/* 36 */ { 4, s_3_36, -1, 3, 0},
-/* 37 */ { 3, s_3_37, -1, 1, 0},
-/* 38 */ { 3, s_3_38, -1, 1, 0},
-/* 39 */ { 4, s_3_39, -1, 1, 0},
-/* 40 */ { 5, s_3_40, -1, 1, 0},
-/* 41 */ { 4, s_3_41, -1, 1, 0},
-/* 42 */ { 4, s_3_42, -1, 1, 0},
-/* 43 */ { 3, s_3_43, -1, 3, 0},
-/* 44 */ { 4, s_3_44, -1, 1, 0},
-/* 45 */ { 2, s_3_45, -1, 1, 0},
-/* 46 */ { 2, s_3_46, -1, 1, 0},
-/* 47 */ { 2, s_3_47, -1, 1, 0},
-/* 48 */ { 3, s_3_48, -1, 1, 0},
-/* 49 */ { 3, s_3_49, -1, 3, 0},
-/* 50 */ { 2, s_3_50, -1, 1, 0},
-/* 51 */ { 2, s_3_51, -1, 1, 0},
-/* 52 */ { 3, s_3_52, -1, 1, 0},
-/* 53 */ { 5, s_3_53, -1, 1, 0},
-/* 54 */ { 5, s_3_54, -1, 1, 0},
-/* 55 */ { 4, s_3_55, -1, 1, 0},
-/* 56 */ { 3, s_3_56, -1, 1, 0},
-/* 57 */ { 3, s_3_57, -1, 1, 0},
-/* 58 */ { 4, s_3_58, -1, 1, 0},
-/* 59 */ { 4, s_3_59, -1, 3, 0},
-/* 60 */ { 3, s_3_60, -1, 1, 0},
-/* 61 */ { 3, s_3_61, -1, 1, 0}
+{ 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' };
@@ -402,100 +402,100 @@ static const symbol s_4_93[4] = { 'e', 'a', 'z', 0xE3 };
 
 static const struct among a_4[94] =
 {
-/*  0 */ { 2, s_4_0, -1, 1, 0},
-/*  1 */ { 2, s_4_1, -1, 1, 0},
-/*  2 */ { 3, s_4_2, -1, 1, 0},
-/*  3 */ { 3, s_4_3, -1, 1, 0},
-/*  4 */ { 3, s_4_4, -1, 1, 0},
-/*  5 */ { 3, s_4_5, -1, 1, 0},
-/*  6 */ { 3, s_4_6, -1, 1, 0},
-/*  7 */ { 3, s_4_7, -1, 1, 0},
-/*  8 */ { 3, s_4_8, -1, 1, 0},
-/*  9 */ { 3, s_4_9, -1, 1, 0},
-/* 10 */ { 2, s_4_10, -1, 2, 0},
-/* 11 */ { 3, s_4_11, 10, 1, 0},
-/* 12 */ { 4, s_4_12, 10, 2, 0},
-/* 13 */ { 3, s_4_13, 10, 1, 0},
-/* 14 */ { 3, s_4_14, 10, 1, 0},
-/* 15 */ { 3, s_4_15, 10, 1, 0},
-/* 16 */ { 4, s_4_16, -1, 1, 0},
-/* 17 */ { 4, s_4_17, -1, 1, 0},
-/* 18 */ { 3, s_4_18, -1, 1, 0},
-/* 19 */ { 2, s_4_19, -1, 1, 0},
-/* 20 */ { 3, s_4_20, 19, 1, 0},
-/* 21 */ { 3, s_4_21, 19, 1, 0},
-/* 22 */ { 3, s_4_22, -1, 2, 0},
-/* 23 */ { 4, s_4_23, -1, 1, 0},
-/* 24 */ { 4, s_4_24, -1, 1, 0},
-/* 25 */ { 2, s_4_25, -1, 1, 0},
-/* 26 */ { 3, s_4_26, -1, 1, 0},
-/* 27 */ { 3, s_4_27, -1, 1, 0},
-/* 28 */ { 4, s_4_28, -1, 2, 0},
-/* 29 */ { 5, s_4_29, 28, 1, 0},
-/* 30 */ { 6, s_4_30, 28, 2, 0},
-/* 31 */ { 5, s_4_31, 28, 1, 0},
-/* 32 */ { 5, s_4_32, 28, 1, 0},
-/* 33 */ { 5, s_4_33, 28, 1, 0},
-/* 34 */ { 3, s_4_34, -1, 1, 0},
-/* 35 */ { 3, s_4_35, -1, 1, 0},
-/* 36 */ { 3, s_4_36, -1, 1, 0},
-/* 37 */ { 2, s_4_37, -1, 1, 0},
-/* 38 */ { 3, s_4_38, -1, 2, 0},
-/* 39 */ { 4, s_4_39, 38, 1, 0},
-/* 40 */ { 4, s_4_40, 38, 1, 0},
-/* 41 */ { 3, s_4_41, -1, 2, 0},
-/* 42 */ { 3, s_4_42, -1, 2, 0},
-/* 43 */ { 3, s_4_43, -1, 2, 0},
-/* 44 */ { 5, s_4_44, -1, 1, 0},
-/* 45 */ { 6, s_4_45, -1, 2, 0},
-/* 46 */ { 7, s_4_46, 45, 1, 0},
-/* 47 */ { 8, s_4_47, 45, 2, 0},
-/* 48 */ { 7, s_4_48, 45, 1, 0},
-/* 49 */ { 7, s_4_49, 45, 1, 0},
-/* 50 */ { 7, s_4_50, 45, 1, 0},
-/* 51 */ { 5, s_4_51, -1, 1, 0},
-/* 52 */ { 5, s_4_52, -1, 1, 0},
-/* 53 */ { 5, s_4_53, -1, 1, 0},
-/* 54 */ { 2, s_4_54, -1, 1, 0},
-/* 55 */ { 3, s_4_55, 54, 1, 0},
-/* 56 */ { 3, s_4_56, 54, 1, 0},
-/* 57 */ { 2, s_4_57, -1, 2, 0},
-/* 58 */ { 4, s_4_58, 57, 1, 0},
-/* 59 */ { 5, s_4_59, 57, 2, 0},
-/* 60 */ { 4, s_4_60, 57, 1, 0},
-/* 61 */ { 4, s_4_61, 57, 1, 0},
-/* 62 */ { 4, s_4_62, 57, 1, 0},
-/* 63 */ { 2, s_4_63, -1, 2, 0},
-/* 64 */ { 2, s_4_64, -1, 2, 0},
-/* 65 */ { 2, s_4_65, -1, 2, 0},
-/* 66 */ { 4, s_4_66, 65, 1, 0},
-/* 67 */ { 5, s_4_67, 65, 2, 0},
-/* 68 */ { 6, s_4_68, 67, 1, 0},
-/* 69 */ { 7, s_4_69, 67, 2, 0},
-/* 70 */ { 6, s_4_70, 67, 1, 0},
-/* 71 */ { 6, s_4_71, 67, 1, 0},
-/* 72 */ { 6, s_4_72, 67, 1, 0},
-/* 73 */ { 4, s_4_73, 65, 1, 0},
-/* 74 */ { 4, s_4_74, 65, 1, 0},
-/* 75 */ { 4, s_4_75, 65, 1, 0},
-/* 76 */ { 2, s_4_76, -1, 1, 0},
-/* 77 */ { 3, s_4_77, 76, 1, 0},
-/* 78 */ { 3, s_4_78, 76, 1, 0},
-/* 79 */ { 4, s_4_79, -1, 1, 0},
-/* 80 */ { 4, s_4_80, -1, 1, 0},
-/* 81 */ { 2, s_4_81, -1, 1, 0},
-/* 82 */ { 5, s_4_82, -1, 1, 0},
-/* 83 */ { 3, s_4_83, -1, 1, 0},
-/* 84 */ { 4, s_4_84, -1, 2, 0},
-/* 85 */ { 5, s_4_85, 84, 1, 0},
-/* 86 */ { 6, s_4_86, 84, 2, 0},
-/* 87 */ { 5, s_4_87, 84, 1, 0},
-/* 88 */ { 5, s_4_88, 84, 1, 0},
-/* 89 */ { 5, s_4_89, 84, 1, 0},
-/* 90 */ { 3, s_4_90, -1, 1, 0},
-/* 91 */ { 3, s_4_91, -1, 1, 0},
-/* 92 */ { 3, s_4_92, -1, 1, 0},
-/* 93 */ { 4, s_4_93, -1, 1, 0}
+{ 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' };
@@ -506,11 +506,11 @@ static const symbol s_5_4[1] = { 0xE3 };
 
 static const struct among a_5[5] =
 {
-/*  0 */ { 1, s_5_0, -1, 1, 0},
-/*  1 */ { 1, s_5_1, -1, 1, 0},
-/*  2 */ { 2, s_5_2, 1, 1, 0},
-/*  3 */ { 1, s_5_3, -1, 1, 0},
-/*  4 */ { 1, s_5_4, -1, 1, 0}
+{ 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 };
@@ -535,30 +535,29 @@ 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) { /* forwardmode */
-/* repeat, line 32 */
-
-    while(1) {        int c1 = z->c;
-        while(1) { /* goto, line 32 */
+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; /* grouping v, line 33 */
-            z->bra = z->c; /* [, line 33 */
-            {   int c3 = z->c; /* or, line 33 */
-                if (z->c == z->l || z->p[z->c] != 'u') goto lab3; /* literal, line 33 */
+            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; /* ], line 33 */
-                if (in_grouping(z, g_v, 97, 238, 0)) goto lab3; /* grouping v, line 33 */
-                {   int ret = slice_from_s(z, 1, s_0); /* <-, line 33 */
+                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; /* literal, line 34 */
+                if (z->c == z->l || z->p[z->c] != 'i') goto lab1;
                 z->c++;
-                z->ket = z->c; /* ], line 34 */
-                if (in_grouping(z, g_v, 97, 238, 0)) goto lab1; /* grouping v, line 34 */
-                {   int ret = slice_from_s(z, 1, s_1); /* <-, line 34 */
+                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;
                 }
             }
@@ -568,7 +567,7 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
         lab1:
             z->c = c2;
             if (z->c >= z->l) goto lab0;
-            z->c++; /* goto, line 32 */
+            z->c++;
         }
         continue;
     lab0:
@@ -578,16 +577,16 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $pV = <integer expression>, line 40 */
-    z->I[1] = z->l; /* $p1 = <integer expression>, line 41 */
-    z->I[2] = z->l; /* $p2 = <integer expression>, line 42 */
-    {   int c1 = z->c; /* do, line 44 */
-        {   int c2 = z->c; /* or, line 46 */
-            if (in_grouping(z, g_v, 97, 238, 0)) goto lab2; /* grouping v, line 45 */
-            {   int c3 = z->c; /* or, line 45 */
-                if (out_grouping(z, g_v, 97, 238, 0)) goto lab4; /* non v, line 45 */
-                {    /* gopast */ /* grouping v, line 45 */
+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;
@@ -595,8 +594,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
                 goto lab3;
             lab4:
                 z->c = c3;
-                if (in_grouping(z, g_v, 97, 238, 0)) goto lab2; /* grouping v, line 45 */
-                {    /* gopast */ /* non v, line 45 */
+                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;
@@ -606,10 +605,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
             goto lab1;
         lab2:
             z->c = c2;
-            if (out_grouping(z, g_v, 97, 238, 0)) goto lab0; /* non v, line 47 */
-            {   int c4 = z->c; /* or, line 47 */
-                if (out_grouping(z, g_v, 97, 238, 0)) goto lab6; /* non v, line 47 */
-                {    /* gopast */ /* grouping v, line 47 */
+            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;
@@ -617,71 +616,70 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
                 goto lab5;
             lab6:
                 z->c = c4;
-                if (in_grouping(z, g_v, 97, 238, 0)) goto lab0; /* grouping v, line 47 */
+                if (in_grouping(z, g_v, 97, 238, 0)) goto lab0;
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 47 */
+                z->c++;
             }
         lab5:
             ;
         }
     lab1:
-        z->I[0] = z->c; /* setmark pV, line 48 */
+        z->I[2] = z->c;
     lab0:
         z->c = c1;
     }
-    {   int c5 = z->c; /* do, line 50 */
-        {    /* gopast */ /* grouping v, line 51 */
+    {   int c5 = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 238, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 51 */
+        {   
             int ret = in_grouping(z, g_v, 97, 238, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p1, line 51 */
-        {    /* gopast */ /* grouping v, line 52 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping(z, g_v, 97, 238, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 52 */
+        {   
             int ret = in_grouping(z, g_v, 97, 238, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        z->I[2] = z->c; /* setmark p2, line 52 */
+        z->I[0] = z->c;
     lab7:
         z->c = c5;
     }
     return 1;
 }
 
-static int r_postlude(struct SN_env * z) { /* forwardmode */
+static int r_postlude(struct SN_env * z) {
     int among_var;
-/* repeat, line 56 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 58 */
-        if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else /* substring, line 58 */
+    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; /* ], line 58 */
-        switch (among_var) { /* among, line 58 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_2); /* <-, line 59 */
+                {   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); /* <-, line 60 */
+                {   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++; /* next, line 61 */
+                z->c++;
                 break;
         }
         continue;
@@ -692,70 +690,70 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_RV(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 68 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 69 */
+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) { /* backwardmode */
-    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 70 */
+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) { /* backwardmode */
+static int r_step_0(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 73 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 73 */
+    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; /* ], line 73 */
-    {   int ret = r_R1(z); /* call R1, line 73 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 73 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 75 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_4); /* <-, line 77 */
+            {   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); /* <-, line 79 */
+            {   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); /* <-, line 81 */
+            {   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; /* not, line 83 */
-                if (!(eq_s_b(z, 2, s_7))) goto lab0; /* literal, line 83 */
+            {   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); /* <-, line 83 */
+            {   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); /* <-, line 85 */
+            {   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); /* <-, line 87 */
+            {   int ret = slice_from_s(z, 3, s_10);
                 if (ret < 0) return ret;
             }
             break;
@@ -763,61 +761,60 @@ static int r_step_0(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_combo_suffix(struct SN_env * z) { /* backwardmode */
+static int r_combo_suffix(struct SN_env * z) {
     int among_var;
-    {   int m_test1 = z->l - z->c; /* test, line 91 */
-        z->ket = z->c; /* [, line 92 */
-        among_var = find_among_b(z, a_2, 46); /* substring, line 92 */
+    {   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; /* ], line 92 */
-        {   int ret = r_R1(z); /* call R1, line 92 */
+        z->bra = z->c;
+        {   int ret = r_R1(z);
             if (ret <= 0) return ret;
         }
-        switch (among_var) { /* among, line 93 */
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 4, s_11); /* <-, line 101 */
+                {   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); /* <-, line 104 */
+                {   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); /* <-, line 107 */
+                {   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); /* <-, line 113 */
+                {   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); /* <-, line 118 */
+                {   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); /* <-, line 122 */
+                {   int ret = slice_from_s(z, 2, s_16);
                     if (ret < 0) return ret;
                 }
                 break;
         }
-        z->B[0] = 1; /* set standard_suffix_removed, line 125 */
+        z->I[3] = 1;
         z->c = z->l - m_test1;
     }
     return 1;
 }
 
-static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
+static int r_standard_suffix(struct SN_env * z) {
     int among_var;
-    z->B[0] = 0; /* unset standard_suffix_removed, line 130 */
-/* repeat, line 131 */
-
-    while(1) {        int m1 = z->l - z->c; (void)m1;
-        {   int ret = r_combo_suffix(z); /* call combo_suffix, line 131 */
+    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;
         }
@@ -826,64 +823,64 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
         z->c = z->l - m1;
         break;
     }
-    z->ket = z->c; /* [, line 132 */
-    among_var = find_among_b(z, a_3, 62); /* substring, line 132 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_3, 62);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 132 */
-    {   int ret = r_R2(z); /* call R2, line 132 */
+    z->bra = z->c;
+    {   int ret = r_R2(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 133 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 149 */
+            {   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; /* literal, line 152 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 0xFE) return 0;
             z->c--;
-            z->bra = z->c; /* ], line 152 */
-            {   int ret = slice_from_s(z, 1, s_17); /* <-, line 152 */
+            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); /* <-, line 156 */
+            {   int ret = slice_from_s(z, 3, s_18);
                 if (ret < 0) return ret;
             }
             break;
     }
-    z->B[0] = 1; /* set standard_suffix_removed, line 160 */
+    z->I[3] = 1;
     return 1;
 }
 
-static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
+static int r_verb_suffix(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 164 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 165 */
-        among_var = find_among_b(z, a_4, 94); /* substring, line 165 */
+    {   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; /* ], line 165 */
-        switch (among_var) { /* among, line 165 */
+        z->bra = z->c;
+        switch (among_var) {
             case 1:
-                {   int m2 = z->l - z->c; (void)m2; /* or, line 200 */
-                    if (out_grouping_b(z, g_v, 97, 238, 0)) goto lab1; /* non v, line 200 */
+                {   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; } /* literal, line 200 */
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->lb = mlimit1; return 0; }
                     z->c--;
                 }
             lab0:
-                {   int ret = slice_del(z); /* delete, line 200 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_del(z); /* delete, line 214 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -893,51 +890,51 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 219 */
-    if (!(find_among_b(z, a_5, 5))) return 0; /* substring, line 219 */
-    z->bra = z->c; /* ], line 219 */
-    {   int ret = r_RV(z); /* call RV, line 219 */
+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); /* delete, line 220 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-extern int romanian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 226 */
-        {   int ret = r_prelude(z); /* call prelude, line 226 */
+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;
     }
-    /* do, line 227 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 227 */
+    
+    {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 228 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 229 */
-        {   int ret = r_step_0(z); /* call step_0, line 229 */
+    {   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; /* do, line 230 */
-        {   int ret = r_standard_suffix(z); /* call standard_suffix, line 230 */
+    {   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; /* do, line 231 */
-        {   int m5 = z->l - z->c; (void)m5; /* or, line 231 */
-            if (!(z->B[0])) goto lab2; /* Boolean test standard_suffix_removed, line 231 */
+    {   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); /* call verb_suffix, line 231 */
+            {   int ret = r_verb_suffix(z);
                 if (ret == 0) goto lab0;
                 if (ret < 0) return ret;
             }
@@ -946,15 +943,15 @@ extern int romanian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */
     lab0:
         z->c = z->l - m4;
     }
-    {   int m6 = z->l - z->c; (void)m6; /* do, line 232 */
-        {   int ret = r_vowel_suffix(z); /* call vowel_suffix, line 232 */
+    {   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; /* do, line 234 */
-        {   int ret = r_postlude(z); /* call postlude, line 234 */
+    {   int c7 = z->c;
+        {   int ret = r_postlude(z);
             if (ret < 0) return ret;
         }
         z->c = c7;
@@ -962,7 +959,7 @@ extern int romanian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * romanian_ISO_8859_2_create_env(void) { return SN_create_env(0, 3, 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 eef4b208e8f4903c7ebe45a6ede6c7499fa07849..03c13b83f35355edf9c169ba6f8544185bba9c45 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -43,15 +43,15 @@ static const symbol s_0_8[6] = { 0xD9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
 
 static const struct among a_0[9] =
 {
-/*  0 */ { 3, s_0_0, -1, 1, 0},
-/*  1 */ { 4, s_0_1, 0, 2, 0},
-/*  2 */ { 4, s_0_2, 0, 2, 0},
-/*  3 */ { 1, s_0_3, -1, 1, 0},
-/*  4 */ { 2, s_0_4, 3, 2, 0},
-/*  5 */ { 2, s_0_5, 3, 2, 0},
-/*  6 */ { 5, s_0_6, -1, 1, 0},
-/*  7 */ { 6, s_0_7, 6, 2, 0},
-/*  8 */ { 6, s_0_8, 6, 2, 0}
+{ 3, s_0_0, -1, 1, 0},
+{ 4, s_0_1, 0, 2, 0},
+{ 4, s_0_2, 0, 2, 0},
+{ 1, s_0_3, -1, 1, 0},
+{ 2, s_0_4, 3, 2, 0},
+{ 2, s_0_5, 3, 2, 0},
+{ 5, s_0_6, -1, 1, 0},
+{ 6, s_0_7, 6, 2, 0},
+{ 6, s_0_8, 6, 2, 0}
 };
 
 static const symbol s_1_0[2] = { 0xC0, 0xC0 };
@@ -83,32 +83,32 @@ static const symbol s_1_25[3] = { 0xCF, 0xCD, 0xD5 };
 
 static const struct among a_1[26] =
 {
-/*  0 */ { 2, s_1_0, -1, 1, 0},
-/*  1 */ { 2, s_1_1, -1, 1, 0},
-/*  2 */ { 2, s_1_2, -1, 1, 0},
-/*  3 */ { 2, s_1_3, -1, 1, 0},
-/*  4 */ { 2, s_1_4, -1, 1, 0},
-/*  5 */ { 2, s_1_5, -1, 1, 0},
-/*  6 */ { 2, s_1_6, -1, 1, 0},
-/*  7 */ { 2, s_1_7, -1, 1, 0},
-/*  8 */ { 2, s_1_8, -1, 1, 0},
-/*  9 */ { 2, s_1_9, -1, 1, 0},
-/* 10 */ { 3, s_1_10, -1, 1, 0},
-/* 11 */ { 3, s_1_11, -1, 1, 0},
-/* 12 */ { 2, s_1_12, -1, 1, 0},
-/* 13 */ { 2, s_1_13, -1, 1, 0},
-/* 14 */ { 2, s_1_14, -1, 1, 0},
-/* 15 */ { 2, s_1_15, -1, 1, 0},
-/* 16 */ { 2, s_1_16, -1, 1, 0},
-/* 17 */ { 2, s_1_17, -1, 1, 0},
-/* 18 */ { 2, s_1_18, -1, 1, 0},
-/* 19 */ { 2, s_1_19, -1, 1, 0},
-/* 20 */ { 3, s_1_20, -1, 1, 0},
-/* 21 */ { 3, s_1_21, -1, 1, 0},
-/* 22 */ { 2, s_1_22, -1, 1, 0},
-/* 23 */ { 2, s_1_23, -1, 1, 0},
-/* 24 */ { 3, s_1_24, -1, 1, 0},
-/* 25 */ { 3, s_1_25, -1, 1, 0}
+{ 2, s_1_0, -1, 1, 0},
+{ 2, s_1_1, -1, 1, 0},
+{ 2, s_1_2, -1, 1, 0},
+{ 2, s_1_3, -1, 1, 0},
+{ 2, s_1_4, -1, 1, 0},
+{ 2, s_1_5, -1, 1, 0},
+{ 2, s_1_6, -1, 1, 0},
+{ 2, s_1_7, -1, 1, 0},
+{ 2, s_1_8, -1, 1, 0},
+{ 2, s_1_9, -1, 1, 0},
+{ 3, s_1_10, -1, 1, 0},
+{ 3, s_1_11, -1, 1, 0},
+{ 2, s_1_12, -1, 1, 0},
+{ 2, s_1_13, -1, 1, 0},
+{ 2, s_1_14, -1, 1, 0},
+{ 2, s_1_15, -1, 1, 0},
+{ 2, s_1_16, -1, 1, 0},
+{ 2, s_1_17, -1, 1, 0},
+{ 2, s_1_18, -1, 1, 0},
+{ 2, s_1_19, -1, 1, 0},
+{ 3, s_1_20, -1, 1, 0},
+{ 3, s_1_21, -1, 1, 0},
+{ 2, s_1_22, -1, 1, 0},
+{ 2, s_1_23, -1, 1, 0},
+{ 3, s_1_24, -1, 1, 0},
+{ 3, s_1_25, -1, 1, 0}
 };
 
 static const symbol s_2_0[2] = { 0xC5, 0xCD };
@@ -122,14 +122,14 @@ static const symbol s_2_7[3] = { 0xD5, 0xC0, 0xDD };
 
 static const struct among a_2[8] =
 {
-/*  0 */ { 2, s_2_0, -1, 1, 0},
-/*  1 */ { 2, s_2_1, -1, 1, 0},
-/*  2 */ { 2, s_2_2, -1, 1, 0},
-/*  3 */ { 3, s_2_3, 2, 2, 0},
-/*  4 */ { 3, s_2_4, 2, 2, 0},
-/*  5 */ { 1, s_2_5, -1, 1, 0},
-/*  6 */ { 2, s_2_6, 5, 1, 0},
-/*  7 */ { 3, s_2_7, 6, 2, 0}
+{ 2, s_2_0, -1, 1, 0},
+{ 2, s_2_1, -1, 1, 0},
+{ 2, s_2_2, -1, 1, 0},
+{ 3, s_2_3, 2, 2, 0},
+{ 3, s_2_4, 2, 2, 0},
+{ 1, s_2_5, -1, 1, 0},
+{ 2, s_2_6, 5, 1, 0},
+{ 3, s_2_7, 6, 2, 0}
 };
 
 static const symbol s_3_0[2] = { 0xD3, 0xD1 };
@@ -137,8 +137,8 @@ static const symbol s_3_1[2] = { 0xD3, 0xD8 };
 
 static const struct among a_3[2] =
 {
-/*  0 */ { 2, s_3_0, -1, 1, 0},
-/*  1 */ { 2, s_3_1, -1, 1, 0}
+{ 2, s_3_0, -1, 1, 0},
+{ 2, s_3_1, -1, 1, 0}
 };
 
 static const symbol s_4_0[1] = { 0xC0 };
@@ -190,52 +190,52 @@ static const symbol s_4_45[3] = { 0xC5, 0xCE, 0xD9 };
 
 static const struct among a_4[46] =
 {
-/*  0 */ { 1, s_4_0, -1, 2, 0},
-/*  1 */ { 2, s_4_1, 0, 2, 0},
-/*  2 */ { 2, s_4_2, -1, 1, 0},
-/*  3 */ { 3, s_4_3, 2, 2, 0},
-/*  4 */ { 3, s_4_4, 2, 2, 0},
-/*  5 */ { 2, s_4_5, -1, 1, 0},
-/*  6 */ { 3, s_4_6, 5, 2, 0},
-/*  7 */ { 3, s_4_7, -1, 1, 0},
-/*  8 */ { 3, s_4_8, -1, 2, 0},
-/*  9 */ { 3, s_4_9, -1, 1, 0},
-/* 10 */ { 4, s_4_10, 9, 2, 0},
-/* 11 */ { 4, s_4_11, 9, 2, 0},
-/* 12 */ { 2, s_4_12, -1, 1, 0},
-/* 13 */ { 3, s_4_13, 12, 2, 0},
-/* 14 */ { 3, s_4_14, 12, 2, 0},
-/* 15 */ { 1, s_4_15, -1, 1, 0},
-/* 16 */ { 2, s_4_16, 15, 2, 0},
-/* 17 */ { 2, s_4_17, 15, 2, 0},
-/* 18 */ { 1, s_4_18, -1, 1, 0},
-/* 19 */ { 2, s_4_19, 18, 2, 0},
-/* 20 */ { 2, s_4_20, 18, 2, 0},
-/* 21 */ { 2, s_4_21, -1, 1, 0},
-/* 22 */ { 2, s_4_22, -1, 2, 0},
-/* 23 */ { 2, s_4_23, -1, 2, 0},
-/* 24 */ { 1, s_4_24, -1, 1, 0},
-/* 25 */ { 2, s_4_25, 24, 2, 0},
-/* 26 */ { 2, s_4_26, -1, 1, 0},
-/* 27 */ { 3, s_4_27, 26, 2, 0},
-/* 28 */ { 3, s_4_28, 26, 2, 0},
-/* 29 */ { 2, s_4_29, -1, 1, 0},
-/* 30 */ { 3, s_4_30, 29, 2, 0},
-/* 31 */ { 3, s_4_31, 29, 1, 0},
-/* 32 */ { 2, s_4_32, -1, 1, 0},
-/* 33 */ { 3, s_4_33, 32, 2, 0},
-/* 34 */ { 2, s_4_34, -1, 1, 0},
-/* 35 */ { 3, s_4_35, 34, 2, 0},
-/* 36 */ { 2, s_4_36, -1, 2, 0},
-/* 37 */ { 2, s_4_37, -1, 2, 0},
-/* 38 */ { 2, s_4_38, -1, 2, 0},
-/* 39 */ { 2, s_4_39, -1, 1, 0},
-/* 40 */ { 3, s_4_40, 39, 2, 0},
-/* 41 */ { 3, s_4_41, 39, 2, 0},
-/* 42 */ { 3, s_4_42, -1, 1, 0},
-/* 43 */ { 3, s_4_43, -1, 2, 0},
-/* 44 */ { 2, s_4_44, -1, 1, 0},
-/* 45 */ { 3, s_4_45, 44, 2, 0}
+{ 1, s_4_0, -1, 2, 0},
+{ 2, s_4_1, 0, 2, 0},
+{ 2, s_4_2, -1, 1, 0},
+{ 3, s_4_3, 2, 2, 0},
+{ 3, s_4_4, 2, 2, 0},
+{ 2, s_4_5, -1, 1, 0},
+{ 3, s_4_6, 5, 2, 0},
+{ 3, s_4_7, -1, 1, 0},
+{ 3, s_4_8, -1, 2, 0},
+{ 3, s_4_9, -1, 1, 0},
+{ 4, s_4_10, 9, 2, 0},
+{ 4, s_4_11, 9, 2, 0},
+{ 2, s_4_12, -1, 1, 0},
+{ 3, s_4_13, 12, 2, 0},
+{ 3, s_4_14, 12, 2, 0},
+{ 1, s_4_15, -1, 1, 0},
+{ 2, s_4_16, 15, 2, 0},
+{ 2, s_4_17, 15, 2, 0},
+{ 1, s_4_18, -1, 1, 0},
+{ 2, s_4_19, 18, 2, 0},
+{ 2, s_4_20, 18, 2, 0},
+{ 2, s_4_21, -1, 1, 0},
+{ 2, s_4_22, -1, 2, 0},
+{ 2, s_4_23, -1, 2, 0},
+{ 1, s_4_24, -1, 1, 0},
+{ 2, s_4_25, 24, 2, 0},
+{ 2, s_4_26, -1, 1, 0},
+{ 3, s_4_27, 26, 2, 0},
+{ 3, s_4_28, 26, 2, 0},
+{ 2, s_4_29, -1, 1, 0},
+{ 3, s_4_30, 29, 2, 0},
+{ 3, s_4_31, 29, 1, 0},
+{ 2, s_4_32, -1, 1, 0},
+{ 3, s_4_33, 32, 2, 0},
+{ 2, s_4_34, -1, 1, 0},
+{ 3, s_4_35, 34, 2, 0},
+{ 2, s_4_36, -1, 2, 0},
+{ 2, s_4_37, -1, 2, 0},
+{ 2, s_4_38, -1, 2, 0},
+{ 2, s_4_39, -1, 1, 0},
+{ 3, s_4_40, 39, 2, 0},
+{ 3, s_4_41, 39, 2, 0},
+{ 3, s_4_42, -1, 1, 0},
+{ 3, s_4_43, -1, 2, 0},
+{ 2, s_4_44, -1, 1, 0},
+{ 3, s_4_45, 44, 2, 0}
 };
 
 static const symbol s_5_0[1] = { 0xC0 };
@@ -277,42 +277,42 @@ static const symbol s_5_35[1] = { 0xD9 };
 
 static const struct among a_5[36] =
 {
-/*  0 */ { 1, s_5_0, -1, 1, 0},
-/*  1 */ { 2, s_5_1, 0, 1, 0},
-/*  2 */ { 2, s_5_2, 0, 1, 0},
-/*  3 */ { 1, s_5_3, -1, 1, 0},
-/*  4 */ { 1, s_5_4, -1, 1, 0},
-/*  5 */ { 2, s_5_5, 4, 1, 0},
-/*  6 */ { 2, s_5_6, 4, 1, 0},
-/*  7 */ { 2, s_5_7, -1, 1, 0},
-/*  8 */ { 2, s_5_8, -1, 1, 0},
-/*  9 */ { 3, s_5_9, 8, 1, 0},
-/* 10 */ { 1, s_5_10, -1, 1, 0},
-/* 11 */ { 2, s_5_11, 10, 1, 0},
-/* 12 */ { 2, s_5_12, 10, 1, 0},
-/* 13 */ { 3, s_5_13, 10, 1, 0},
-/* 14 */ { 3, s_5_14, 10, 1, 0},
-/* 15 */ { 4, s_5_15, 14, 1, 0},
-/* 16 */ { 1, s_5_16, -1, 1, 0},
-/* 17 */ { 2, s_5_17, 16, 1, 0},
-/* 18 */ { 3, s_5_18, 17, 1, 0},
-/* 19 */ { 2, s_5_19, 16, 1, 0},
-/* 20 */ { 2, s_5_20, 16, 1, 0},
-/* 21 */ { 2, s_5_21, -1, 1, 0},
-/* 22 */ { 2, s_5_22, -1, 1, 0},
-/* 23 */ { 3, s_5_23, 22, 1, 0},
-/* 24 */ { 2, s_5_24, -1, 1, 0},
-/* 25 */ { 2, s_5_25, -1, 1, 0},
-/* 26 */ { 3, s_5_26, 25, 1, 0},
-/* 27 */ { 1, s_5_27, -1, 1, 0},
-/* 28 */ { 1, s_5_28, -1, 1, 0},
-/* 29 */ { 2, s_5_29, 28, 1, 0},
-/* 30 */ { 2, s_5_30, 28, 1, 0},
-/* 31 */ { 1, s_5_31, -1, 1, 0},
-/* 32 */ { 2, s_5_32, -1, 1, 0},
-/* 33 */ { 2, s_5_33, -1, 1, 0},
-/* 34 */ { 1, s_5_34, -1, 1, 0},
-/* 35 */ { 1, s_5_35, -1, 1, 0}
+{ 1, s_5_0, -1, 1, 0},
+{ 2, s_5_1, 0, 1, 0},
+{ 2, s_5_2, 0, 1, 0},
+{ 1, s_5_3, -1, 1, 0},
+{ 1, s_5_4, -1, 1, 0},
+{ 2, s_5_5, 4, 1, 0},
+{ 2, s_5_6, 4, 1, 0},
+{ 2, s_5_7, -1, 1, 0},
+{ 2, s_5_8, -1, 1, 0},
+{ 3, s_5_9, 8, 1, 0},
+{ 1, s_5_10, -1, 1, 0},
+{ 2, s_5_11, 10, 1, 0},
+{ 2, s_5_12, 10, 1, 0},
+{ 3, s_5_13, 10, 1, 0},
+{ 3, s_5_14, 10, 1, 0},
+{ 4, s_5_15, 14, 1, 0},
+{ 1, s_5_16, -1, 1, 0},
+{ 2, s_5_17, 16, 1, 0},
+{ 3, s_5_18, 17, 1, 0},
+{ 2, s_5_19, 16, 1, 0},
+{ 2, s_5_20, 16, 1, 0},
+{ 2, s_5_21, -1, 1, 0},
+{ 2, s_5_22, -1, 1, 0},
+{ 3, s_5_23, 22, 1, 0},
+{ 2, s_5_24, -1, 1, 0},
+{ 2, s_5_25, -1, 1, 0},
+{ 3, s_5_26, 25, 1, 0},
+{ 1, s_5_27, -1, 1, 0},
+{ 1, s_5_28, -1, 1, 0},
+{ 2, s_5_29, 28, 1, 0},
+{ 2, s_5_30, 28, 1, 0},
+{ 1, s_5_31, -1, 1, 0},
+{ 2, s_5_32, -1, 1, 0},
+{ 2, s_5_33, -1, 1, 0},
+{ 1, s_5_34, -1, 1, 0},
+{ 1, s_5_35, -1, 1, 0}
 };
 
 static const symbol s_6_0[3] = { 0xCF, 0xD3, 0xD4 };
@@ -320,8 +320,8 @@ static const symbol s_6_1[4] = { 0xCF, 0xD3, 0xD4, 0xD8 };
 
 static const struct among a_6[2] =
 {
-/*  0 */ { 3, s_6_0, -1, 1, 0},
-/*  1 */ { 4, s_6_1, -1, 1, 0}
+{ 3, s_6_0, -1, 1, 0},
+{ 4, s_6_1, -1, 1, 0}
 };
 
 static const symbol s_7_0[4] = { 0xC5, 0xCA, 0xDB, 0xC5 };
@@ -331,78 +331,78 @@ static const symbol s_7_3[3] = { 0xC5, 0xCA, 0xDB };
 
 static const struct among a_7[4] =
 {
-/*  0 */ { 4, s_7_0, -1, 1, 0},
-/*  1 */ { 1, s_7_1, -1, 2, 0},
-/*  2 */ { 1, s_7_2, -1, 3, 0},
-/*  3 */ { 3, s_7_3, -1, 1, 0}
+{ 4, s_7_0, -1, 1, 0},
+{ 1, s_7_1, -1, 2, 0},
+{ 1, s_7_2, -1, 3, 0},
+{ 3, s_7_3, -1, 1, 0}
 };
 
 static const unsigned char g_v[] = { 35, 130, 34, 18 };
 
 static const symbol s_0[] = { 0xC5 };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $pV = <integer expression>, line 61 */
-    z->I[1] = z->l; /* $p2 = <integer expression>, line 62 */
-    {   int c1 = z->c; /* do, line 63 */
-        {    /* gopast */ /* grouping v, line 64 */
+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[0] = z->c; /* setmark pV, line 64 */
-        {    /* gopast */ /* non v, line 64 */
+        z->I[1] = z->c;
+        {   
             int ret = in_grouping(z, g_v, 192, 220, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {    /* gopast */ /* grouping v, line 65 */
+        {   
             int ret = out_grouping(z, g_v, 192, 220, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 65 */
+        {   
             int ret = in_grouping(z, g_v, 192, 220, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p2, line 65 */
+        z->I[0] = z->c;
     lab0:
         z->c = c1;
     }
     return 1;
 }
 
-static int r_R2(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 71 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */
+static int r_perfective_gerund(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 74 */
-    if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 74 */
+    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;
-    z->bra = z->c; /* ], line 74 */
-    switch (among_var) { /* among, line 74 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int m1 = z->l - z->c; (void)m1; /* or, line 78 */
-                if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; /* literal, line 78 */
+            {   int m1 = z->l - z->c; (void)m1;
+                if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1;
                 z->c--;
                 goto lab0;
             lab1:
                 z->c = z->l - m1;
-                if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; /* literal, line 78 */
+                if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0;
                 z->c--;
             }
         lab0:
-            {   int ret = slice_del(z); /* delete, line 78 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_del(z); /* delete, line 85 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -410,46 +410,46 @@ static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_adjective(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 90 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 90 */
+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;
-    z->bra = z->c; /* ], line 90 */
-    {   int ret = slice_del(z); /* delete, line 99 */
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_adjectival(struct SN_env * z) { /* backwardmode */
+static int r_adjectival(struct SN_env * z) {
     int among_var;
-    {   int ret = r_adjective(z); /* call adjective, line 104 */
+    {   int ret = r_adjective(z);
         if (ret <= 0) return ret;
     }
-    {   int m1 = z->l - z->c; (void)m1; /* try, line 111 */
-        z->ket = z->c; /* [, line 112 */
-        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; } /* substring, line 112 */
+    {   int m1 = z->l - z->c; (void)m1;
+        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; }
-        z->bra = z->c; /* ], line 112 */
-        switch (among_var) { /* among, line 112 */
+        z->bra = z->c;
+        switch (among_var) {
             case 1:
-                {   int m2 = z->l - z->c; (void)m2; /* or, line 117 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab2; /* literal, line 117 */
+                {   int m2 = z->l - z->c; (void)m2;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab2;
                     z->c--;
                     goto lab1;
                 lab2:
                     z->c = z->l - m2;
-                    if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) { z->c = z->l - m1; goto lab0; } /* literal, line 117 */
+                    if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) { z->c = z->l - m1; goto lab0; }
                     z->c--;
                 }
             lab1:
-                {   int ret = slice_del(z); /* delete, line 117 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_del(z); /* delete, line 124 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -460,42 +460,42 @@ static int r_adjectival(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_reflexive(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 131 */
-    if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0; /* substring, line 131 */
+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;
-    z->bra = z->c; /* ], line 131 */
-    {   int ret = slice_del(z); /* delete, line 134 */
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_verb(struct SN_env * z) { /* backwardmode */
+static int r_verb(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 139 */
-    if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 139 */
+    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;
-    z->bra = z->c; /* ], line 139 */
-    switch (among_var) { /* among, line 139 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int m1 = z->l - z->c; (void)m1; /* or, line 145 */
-                if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; /* literal, line 145 */
+            {   int m1 = z->l - z->c; (void)m1;
+                if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1;
                 z->c--;
                 goto lab0;
             lab1:
                 z->c = z->l - m1;
-                if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; /* literal, line 145 */
+                if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0;
                 z->c--;
             }
         lab0:
-            {   int ret = slice_del(z); /* delete, line 145 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_del(z); /* delete, line 153 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -503,62 +503,62 @@ static int r_verb(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_noun(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 162 */
-    if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 162 */
+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;
-    z->bra = z->c; /* ], line 162 */
-    {   int ret = slice_del(z); /* delete, line 169 */
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_derivational(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 178 */
-    if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0; /* substring, line 178 */
+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;
-    z->bra = z->c; /* ], line 178 */
-    {   int ret = r_R2(z); /* call R2, line 178 */
+    z->bra = z->c;
+    {   int ret = r_R2(z);
         if (ret <= 0) return ret;
     }
-    {   int ret = slice_del(z); /* delete, line 181 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_tidy_up(struct SN_env * z) { /* backwardmode */
+static int r_tidy_up(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 186 */
-    if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 186 */
+    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;
-    z->bra = z->c; /* ], line 186 */
-    switch (among_var) { /* among, line 186 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 190 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            z->ket = z->c; /* [, line 191 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 191 */
+            z->ket = z->c;
+            if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
             z->c--;
-            z->bra = z->c; /* ], line 191 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 191 */
+            z->bra = z->c;
+            if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
             z->c--;
-            {   int ret = slice_del(z); /* delete, line 191 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 194 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
             z->c--;
-            {   int ret = slice_del(z); /* delete, line 194 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_del(z); /* delete, line 196 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -566,25 +566,24 @@ static int r_tidy_up(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 205 */
-/* repeat, line 205 */
-
-        while(1) {            int c2 = z->c;
-            while(1) { /* goto, line 205 */
+extern int russian_KOI8_R_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        while(1) {
+            int c2 = z->c;
+            while(1) {
                 int c3 = z->c;
-                z->bra = z->c; /* [, line 205 */
-                if (z->c == z->l || z->p[z->c] != 0xA3) goto lab2; /* literal, line 205 */
+                z->bra = z->c;
+                if (z->c == z->l || z->p[z->c] != 0xA3) goto lab2;
                 z->c++;
-                z->ket = z->c; /* ], line 205 */
+                z->ket = z->c;
                 z->c = c3;
                 break;
             lab2:
                 z->c = c3;
                 if (z->c >= z->l) goto lab1;
-                z->c++; /* goto, line 205 */
+                z->c++;
             }
-            {   int ret = slice_from_s(z, 1, s_0); /* <-, line 205 */
+            {   int ret = slice_from_s(z, 1, s_0);
                 if (ret < 0) return ret;
             }
             continue;
@@ -594,49 +593,49 @@ extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */
         }
         z->c = c1;
     }
-    /* do, line 207 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 207 */
+    
+    {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 208 */
+    z->lb = z->c; z->c = z->l;
 
 
-    {   int mlimit4; /* setlimit, line 208 */
-        if (z->c < z->I[0]) return 0;
-        mlimit4 = z->lb; z->lb = z->I[0];
-        {   int m5 = z->l - z->c; (void)m5; /* do, line 209 */
-            {   int m6 = z->l - z->c; (void)m6; /* or, line 210 */
-                {   int ret = r_perfective_gerund(z); /* call perfective_gerund, line 210 */
+    {   int mlimit4;
+        if (z->c < z->I[1]) return 0;
+        mlimit4 = z->lb; z->lb = z->I[1];
+        {   int m5 = z->l - z->c; (void)m5;
+            {   int m6 = z->l - z->c; (void)m6;
+                {   int ret = r_perfective_gerund(z);
                     if (ret == 0) goto lab5;
                     if (ret < 0) return ret;
                 }
                 goto lab4;
             lab5:
                 z->c = z->l - m6;
-                {   int m7 = z->l - z->c; (void)m7; /* try, line 211 */
-                    {   int ret = r_reflexive(z); /* call reflexive, line 211 */
+                {   int m7 = z->l - z->c; (void)m7;
+                    {   int ret = r_reflexive(z);
                         if (ret == 0) { z->c = z->l - m7; goto lab6; }
                         if (ret < 0) return ret;
                     }
                 lab6:
                     ;
                 }
-                {   int m8 = z->l - z->c; (void)m8; /* or, line 212 */
-                    {   int ret = r_adjectival(z); /* call adjectival, line 212 */
+                {   int m8 = z->l - z->c; (void)m8;
+                    {   int ret = r_adjectival(z);
                         if (ret == 0) goto lab8;
                         if (ret < 0) return ret;
                     }
                     goto lab7;
                 lab8:
                     z->c = z->l - m8;
-                    {   int ret = r_verb(z); /* call verb, line 212 */
+                    {   int ret = r_verb(z);
                         if (ret == 0) goto lab9;
                         if (ret < 0) return ret;
                     }
                     goto lab7;
                 lab9:
                     z->c = z->l - m8;
-                    {   int ret = r_noun(z); /* call noun, line 212 */
+                    {   int ret = r_noun(z);
                         if (ret == 0) goto lab3;
                         if (ret < 0) return ret;
                     }
@@ -648,25 +647,25 @@ extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */
         lab3:
             z->c = z->l - m5;
         }
-        {   int m9 = z->l - z->c; (void)m9; /* try, line 215 */
-            z->ket = z->c; /* [, line 215 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 0xC9) { z->c = z->l - m9; goto lab10; } /* literal, line 215 */
+        {   int m9 = z->l - z->c; (void)m9;
+            z->ket = z->c;
+            if (z->c <= z->lb || z->p[z->c - 1] != 0xC9) { z->c = z->l - m9; goto lab10; }
             z->c--;
-            z->bra = z->c; /* ], line 215 */
-            {   int ret = slice_del(z); /* delete, line 215 */
+            z->bra = z->c;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
         lab10:
             ;
         }
-        {   int m10 = z->l - z->c; (void)m10; /* do, line 218 */
-            {   int ret = r_derivational(z); /* call derivational, line 218 */
+        {   int m10 = z->l - z->c; (void)m10;
+            {   int ret = r_derivational(z);
                 if (ret < 0) return ret;
             }
             z->c = z->l - m10;
         }
-        {   int m11 = z->l - z->c; (void)m11; /* do, line 219 */
-            {   int ret = r_tidy_up(z); /* call tidy_up, line 219 */
+        {   int m11 = z->l - z->c; (void)m11;
+            {   int ret = r_tidy_up(z);
                 if (ret < 0) return ret;
             }
             z->c = z->l - m11;
@@ -677,7 +676,7 @@ extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * russian_KOI8_R_create_env(void) { return SN_create_env(0, 2, 0); }
+extern struct SN_env * russian_KOI8_R_create_env(void) { return SN_create_env(0, 2); }
 
 extern void russian_KOI8_R_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 701ae2e810e41ea76e72c97a54c62bbb16f1656c..52045628714cb95b802b1df6a60039754faea077 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -189,150 +189,150 @@ static const symbol s_0_143[3] = { 0xEF, 0xBB, 0xBC };
 
 static const struct among a_0[144] =
 {
-/*  0 */ { 2, s_0_0, -1, 1, 0},
-/*  1 */ { 2, s_0_1, -1, 1, 0},
-/*  2 */ { 2, s_0_2, -1, 1, 0},
-/*  3 */ { 2, s_0_3, -1, 1, 0},
-/*  4 */ { 2, s_0_4, -1, 1, 0},
-/*  5 */ { 2, s_0_5, -1, 1, 0},
-/*  6 */ { 2, s_0_6, -1, 1, 0},
-/*  7 */ { 2, s_0_7, -1, 1, 0},
-/*  8 */ { 2, s_0_8, -1, 1, 0},
-/*  9 */ { 2, s_0_9, -1, 2, 0},
-/* 10 */ { 2, s_0_10, -1, 3, 0},
-/* 11 */ { 2, s_0_11, -1, 4, 0},
-/* 12 */ { 2, s_0_12, -1, 5, 0},
-/* 13 */ { 2, s_0_13, -1, 6, 0},
-/* 14 */ { 2, s_0_14, -1, 7, 0},
-/* 15 */ { 2, s_0_15, -1, 8, 0},
-/* 16 */ { 2, s_0_16, -1, 9, 0},
-/* 17 */ { 2, s_0_17, -1, 10, 0},
-/* 18 */ { 2, s_0_18, -1, 11, 0},
-/* 19 */ { 3, s_0_19, -1, 12, 0},
-/* 20 */ { 3, s_0_20, -1, 16, 0},
-/* 21 */ { 3, s_0_21, -1, 16, 0},
-/* 22 */ { 3, s_0_22, -1, 13, 0},
-/* 23 */ { 3, s_0_23, -1, 13, 0},
-/* 24 */ { 3, s_0_24, -1, 17, 0},
-/* 25 */ { 3, s_0_25, -1, 17, 0},
-/* 26 */ { 3, s_0_26, -1, 14, 0},
-/* 27 */ { 3, s_0_27, -1, 14, 0},
-/* 28 */ { 3, s_0_28, -1, 15, 0},
-/* 29 */ { 3, s_0_29, -1, 15, 0},
-/* 30 */ { 3, s_0_30, -1, 15, 0},
-/* 31 */ { 3, s_0_31, -1, 15, 0},
-/* 32 */ { 3, s_0_32, -1, 18, 0},
-/* 33 */ { 3, s_0_33, -1, 18, 0},
-/* 34 */ { 3, s_0_34, -1, 19, 0},
-/* 35 */ { 3, s_0_35, -1, 19, 0},
-/* 36 */ { 3, s_0_36, -1, 19, 0},
-/* 37 */ { 3, s_0_37, -1, 19, 0},
-/* 38 */ { 3, s_0_38, -1, 20, 0},
-/* 39 */ { 3, s_0_39, -1, 20, 0},
-/* 40 */ { 3, s_0_40, -1, 21, 0},
-/* 41 */ { 3, s_0_41, -1, 21, 0},
-/* 42 */ { 3, s_0_42, -1, 21, 0},
-/* 43 */ { 3, s_0_43, -1, 21, 0},
-/* 44 */ { 3, s_0_44, -1, 22, 0},
-/* 45 */ { 3, s_0_45, -1, 22, 0},
-/* 46 */ { 3, s_0_46, -1, 22, 0},
-/* 47 */ { 3, s_0_47, -1, 22, 0},
-/* 48 */ { 3, s_0_48, -1, 23, 0},
-/* 49 */ { 3, s_0_49, -1, 23, 0},
-/* 50 */ { 3, s_0_50, -1, 23, 0},
-/* 51 */ { 3, s_0_51, -1, 23, 0},
-/* 52 */ { 3, s_0_52, -1, 24, 0},
-/* 53 */ { 3, s_0_53, -1, 24, 0},
-/* 54 */ { 3, s_0_54, -1, 24, 0},
-/* 55 */ { 3, s_0_55, -1, 24, 0},
-/* 56 */ { 3, s_0_56, -1, 25, 0},
-/* 57 */ { 3, s_0_57, -1, 25, 0},
-/* 58 */ { 3, s_0_58, -1, 25, 0},
-/* 59 */ { 3, s_0_59, -1, 25, 0},
-/* 60 */ { 3, s_0_60, -1, 26, 0},
-/* 61 */ { 3, s_0_61, -1, 26, 0},
-/* 62 */ { 3, s_0_62, -1, 27, 0},
-/* 63 */ { 3, s_0_63, -1, 27, 0},
-/* 64 */ { 3, s_0_64, -1, 28, 0},
-/* 65 */ { 3, s_0_65, -1, 28, 0},
-/* 66 */ { 3, s_0_66, -1, 29, 0},
-/* 67 */ { 3, s_0_67, -1, 29, 0},
-/* 68 */ { 3, s_0_68, -1, 30, 0},
-/* 69 */ { 3, s_0_69, -1, 30, 0},
-/* 70 */ { 3, s_0_70, -1, 30, 0},
-/* 71 */ { 3, s_0_71, -1, 30, 0},
-/* 72 */ { 3, s_0_72, -1, 31, 0},
-/* 73 */ { 3, s_0_73, -1, 31, 0},
-/* 74 */ { 3, s_0_74, -1, 31, 0},
-/* 75 */ { 3, s_0_75, -1, 31, 0},
-/* 76 */ { 3, s_0_76, -1, 32, 0},
-/* 77 */ { 3, s_0_77, -1, 32, 0},
-/* 78 */ { 3, s_0_78, -1, 32, 0},
-/* 79 */ { 3, s_0_79, -1, 32, 0},
-/* 80 */ { 3, s_0_80, -1, 33, 0},
-/* 81 */ { 3, s_0_81, -1, 33, 0},
-/* 82 */ { 3, s_0_82, -1, 33, 0},
-/* 83 */ { 3, s_0_83, -1, 33, 0},
-/* 84 */ { 3, s_0_84, -1, 34, 0},
-/* 85 */ { 3, s_0_85, -1, 34, 0},
-/* 86 */ { 3, s_0_86, -1, 34, 0},
-/* 87 */ { 3, s_0_87, -1, 34, 0},
-/* 88 */ { 3, s_0_88, -1, 35, 0},
-/* 89 */ { 3, s_0_89, -1, 35, 0},
-/* 90 */ { 3, s_0_90, -1, 35, 0},
-/* 91 */ { 3, s_0_91, -1, 35, 0},
-/* 92 */ { 3, s_0_92, -1, 36, 0},
-/* 93 */ { 3, s_0_93, -1, 36, 0},
-/* 94 */ { 3, s_0_94, -1, 36, 0},
-/* 95 */ { 3, s_0_95, -1, 36, 0},
-/* 96 */ { 3, s_0_96, -1, 37, 0},
-/* 97 */ { 3, s_0_97, -1, 37, 0},
-/* 98 */ { 3, s_0_98, -1, 37, 0},
-/* 99 */ { 3, s_0_99, -1, 37, 0},
-/*100 */ { 3, s_0_100, -1, 38, 0},
-/*101 */ { 3, s_0_101, -1, 38, 0},
-/*102 */ { 3, s_0_102, -1, 38, 0},
-/*103 */ { 3, s_0_103, -1, 38, 0},
-/*104 */ { 3, s_0_104, -1, 39, 0},
-/*105 */ { 3, s_0_105, -1, 39, 0},
-/*106 */ { 3, s_0_106, -1, 39, 0},
-/*107 */ { 3, s_0_107, -1, 39, 0},
-/*108 */ { 3, s_0_108, -1, 40, 0},
-/*109 */ { 3, s_0_109, -1, 40, 0},
-/*110 */ { 3, s_0_110, -1, 40, 0},
-/*111 */ { 3, s_0_111, -1, 40, 0},
-/*112 */ { 3, s_0_112, -1, 41, 0},
-/*113 */ { 3, s_0_113, -1, 41, 0},
-/*114 */ { 3, s_0_114, -1, 41, 0},
-/*115 */ { 3, s_0_115, -1, 41, 0},
-/*116 */ { 3, s_0_116, -1, 42, 0},
-/*117 */ { 3, s_0_117, -1, 42, 0},
-/*118 */ { 3, s_0_118, -1, 42, 0},
-/*119 */ { 3, s_0_119, -1, 42, 0},
-/*120 */ { 3, s_0_120, -1, 43, 0},
-/*121 */ { 3, s_0_121, -1, 43, 0},
-/*122 */ { 3, s_0_122, -1, 43, 0},
-/*123 */ { 3, s_0_123, -1, 43, 0},
-/*124 */ { 3, s_0_124, -1, 44, 0},
-/*125 */ { 3, s_0_125, -1, 44, 0},
-/*126 */ { 3, s_0_126, -1, 44, 0},
-/*127 */ { 3, s_0_127, -1, 44, 0},
-/*128 */ { 3, s_0_128, -1, 45, 0},
-/*129 */ { 3, s_0_129, -1, 45, 0},
-/*130 */ { 3, s_0_130, -1, 46, 0},
-/*131 */ { 3, s_0_131, -1, 46, 0},
-/*132 */ { 3, s_0_132, -1, 47, 0},
-/*133 */ { 3, s_0_133, -1, 47, 0},
-/*134 */ { 3, s_0_134, -1, 47, 0},
-/*135 */ { 3, s_0_135, -1, 47, 0},
-/*136 */ { 3, s_0_136, -1, 51, 0},
-/*137 */ { 3, s_0_137, -1, 51, 0},
-/*138 */ { 3, s_0_138, -1, 49, 0},
-/*139 */ { 3, s_0_139, -1, 49, 0},
-/*140 */ { 3, s_0_140, -1, 50, 0},
-/*141 */ { 3, s_0_141, -1, 50, 0},
-/*142 */ { 3, s_0_142, -1, 48, 0},
-/*143 */ { 3, s_0_143, -1, 48, 0}
+{ 2, s_0_0, -1, 1, 0},
+{ 2, s_0_1, -1, 1, 0},
+{ 2, s_0_2, -1, 1, 0},
+{ 2, s_0_3, -1, 1, 0},
+{ 2, s_0_4, -1, 1, 0},
+{ 2, s_0_5, -1, 1, 0},
+{ 2, s_0_6, -1, 1, 0},
+{ 2, s_0_7, -1, 1, 0},
+{ 2, s_0_8, -1, 1, 0},
+{ 2, s_0_9, -1, 2, 0},
+{ 2, s_0_10, -1, 3, 0},
+{ 2, s_0_11, -1, 4, 0},
+{ 2, s_0_12, -1, 5, 0},
+{ 2, s_0_13, -1, 6, 0},
+{ 2, s_0_14, -1, 7, 0},
+{ 2, s_0_15, -1, 8, 0},
+{ 2, s_0_16, -1, 9, 0},
+{ 2, s_0_17, -1, 10, 0},
+{ 2, s_0_18, -1, 11, 0},
+{ 3, s_0_19, -1, 12, 0},
+{ 3, s_0_20, -1, 16, 0},
+{ 3, s_0_21, -1, 16, 0},
+{ 3, s_0_22, -1, 13, 0},
+{ 3, s_0_23, -1, 13, 0},
+{ 3, s_0_24, -1, 17, 0},
+{ 3, s_0_25, -1, 17, 0},
+{ 3, s_0_26, -1, 14, 0},
+{ 3, s_0_27, -1, 14, 0},
+{ 3, s_0_28, -1, 15, 0},
+{ 3, s_0_29, -1, 15, 0},
+{ 3, s_0_30, -1, 15, 0},
+{ 3, s_0_31, -1, 15, 0},
+{ 3, s_0_32, -1, 18, 0},
+{ 3, s_0_33, -1, 18, 0},
+{ 3, s_0_34, -1, 19, 0},
+{ 3, s_0_35, -1, 19, 0},
+{ 3, s_0_36, -1, 19, 0},
+{ 3, s_0_37, -1, 19, 0},
+{ 3, s_0_38, -1, 20, 0},
+{ 3, s_0_39, -1, 20, 0},
+{ 3, s_0_40, -1, 21, 0},
+{ 3, s_0_41, -1, 21, 0},
+{ 3, s_0_42, -1, 21, 0},
+{ 3, s_0_43, -1, 21, 0},
+{ 3, s_0_44, -1, 22, 0},
+{ 3, s_0_45, -1, 22, 0},
+{ 3, s_0_46, -1, 22, 0},
+{ 3, s_0_47, -1, 22, 0},
+{ 3, s_0_48, -1, 23, 0},
+{ 3, s_0_49, -1, 23, 0},
+{ 3, s_0_50, -1, 23, 0},
+{ 3, s_0_51, -1, 23, 0},
+{ 3, s_0_52, -1, 24, 0},
+{ 3, s_0_53, -1, 24, 0},
+{ 3, s_0_54, -1, 24, 0},
+{ 3, s_0_55, -1, 24, 0},
+{ 3, s_0_56, -1, 25, 0},
+{ 3, s_0_57, -1, 25, 0},
+{ 3, s_0_58, -1, 25, 0},
+{ 3, s_0_59, -1, 25, 0},
+{ 3, s_0_60, -1, 26, 0},
+{ 3, s_0_61, -1, 26, 0},
+{ 3, s_0_62, -1, 27, 0},
+{ 3, s_0_63, -1, 27, 0},
+{ 3, s_0_64, -1, 28, 0},
+{ 3, s_0_65, -1, 28, 0},
+{ 3, s_0_66, -1, 29, 0},
+{ 3, s_0_67, -1, 29, 0},
+{ 3, s_0_68, -1, 30, 0},
+{ 3, s_0_69, -1, 30, 0},
+{ 3, s_0_70, -1, 30, 0},
+{ 3, s_0_71, -1, 30, 0},
+{ 3, s_0_72, -1, 31, 0},
+{ 3, s_0_73, -1, 31, 0},
+{ 3, s_0_74, -1, 31, 0},
+{ 3, s_0_75, -1, 31, 0},
+{ 3, s_0_76, -1, 32, 0},
+{ 3, s_0_77, -1, 32, 0},
+{ 3, s_0_78, -1, 32, 0},
+{ 3, s_0_79, -1, 32, 0},
+{ 3, s_0_80, -1, 33, 0},
+{ 3, s_0_81, -1, 33, 0},
+{ 3, s_0_82, -1, 33, 0},
+{ 3, s_0_83, -1, 33, 0},
+{ 3, s_0_84, -1, 34, 0},
+{ 3, s_0_85, -1, 34, 0},
+{ 3, s_0_86, -1, 34, 0},
+{ 3, s_0_87, -1, 34, 0},
+{ 3, s_0_88, -1, 35, 0},
+{ 3, s_0_89, -1, 35, 0},
+{ 3, s_0_90, -1, 35, 0},
+{ 3, s_0_91, -1, 35, 0},
+{ 3, s_0_92, -1, 36, 0},
+{ 3, s_0_93, -1, 36, 0},
+{ 3, s_0_94, -1, 36, 0},
+{ 3, s_0_95, -1, 36, 0},
+{ 3, s_0_96, -1, 37, 0},
+{ 3, s_0_97, -1, 37, 0},
+{ 3, s_0_98, -1, 37, 0},
+{ 3, s_0_99, -1, 37, 0},
+{ 3, s_0_100, -1, 38, 0},
+{ 3, s_0_101, -1, 38, 0},
+{ 3, s_0_102, -1, 38, 0},
+{ 3, s_0_103, -1, 38, 0},
+{ 3, s_0_104, -1, 39, 0},
+{ 3, s_0_105, -1, 39, 0},
+{ 3, s_0_106, -1, 39, 0},
+{ 3, s_0_107, -1, 39, 0},
+{ 3, s_0_108, -1, 40, 0},
+{ 3, s_0_109, -1, 40, 0},
+{ 3, s_0_110, -1, 40, 0},
+{ 3, s_0_111, -1, 40, 0},
+{ 3, s_0_112, -1, 41, 0},
+{ 3, s_0_113, -1, 41, 0},
+{ 3, s_0_114, -1, 41, 0},
+{ 3, s_0_115, -1, 41, 0},
+{ 3, s_0_116, -1, 42, 0},
+{ 3, s_0_117, -1, 42, 0},
+{ 3, s_0_118, -1, 42, 0},
+{ 3, s_0_119, -1, 42, 0},
+{ 3, s_0_120, -1, 43, 0},
+{ 3, s_0_121, -1, 43, 0},
+{ 3, s_0_122, -1, 43, 0},
+{ 3, s_0_123, -1, 43, 0},
+{ 3, s_0_124, -1, 44, 0},
+{ 3, s_0_125, -1, 44, 0},
+{ 3, s_0_126, -1, 44, 0},
+{ 3, s_0_127, -1, 44, 0},
+{ 3, s_0_128, -1, 45, 0},
+{ 3, s_0_129, -1, 45, 0},
+{ 3, s_0_130, -1, 46, 0},
+{ 3, s_0_131, -1, 46, 0},
+{ 3, s_0_132, -1, 47, 0},
+{ 3, s_0_133, -1, 47, 0},
+{ 3, s_0_134, -1, 47, 0},
+{ 3, s_0_135, -1, 47, 0},
+{ 3, s_0_136, -1, 51, 0},
+{ 3, s_0_137, -1, 51, 0},
+{ 3, s_0_138, -1, 49, 0},
+{ 3, s_0_139, -1, 49, 0},
+{ 3, s_0_140, -1, 50, 0},
+{ 3, s_0_141, -1, 50, 0},
+{ 3, s_0_142, -1, 48, 0},
+{ 3, s_0_143, -1, 48, 0}
 };
 
 static const symbol s_1_0[2] = { 0xD8, 0xA2 };
@@ -343,11 +343,11 @@ static const symbol s_1_4[2] = { 0xD8, 0xA6 };
 
 static const struct among a_1[5] =
 {
-/*  0 */ { 2, s_1_0, -1, 1, 0},
-/*  1 */ { 2, s_1_1, -1, 1, 0},
-/*  2 */ { 2, s_1_2, -1, 1, 0},
-/*  3 */ { 2, s_1_3, -1, 1, 0},
-/*  4 */ { 2, s_1_4, -1, 1, 0}
+{ 2, s_1_0, -1, 1, 0},
+{ 2, s_1_1, -1, 1, 0},
+{ 2, s_1_2, -1, 1, 0},
+{ 2, s_1_3, -1, 1, 0},
+{ 2, s_1_4, -1, 1, 0}
 };
 
 static const symbol s_2_0[2] = { 0xD8, 0xA2 };
@@ -358,11 +358,11 @@ static const symbol s_2_4[2] = { 0xD8, 0xA6 };
 
 static const struct among a_2[5] =
 {
-/*  0 */ { 2, s_2_0, -1, 1, 0},
-/*  1 */ { 2, s_2_1, -1, 1, 0},
-/*  2 */ { 2, s_2_2, -1, 2, 0},
-/*  3 */ { 2, s_2_3, -1, 1, 0},
-/*  4 */ { 2, s_2_4, -1, 3, 0}
+{ 2, s_2_0, -1, 1, 0},
+{ 2, s_2_1, -1, 1, 0},
+{ 2, s_2_2, -1, 2, 0},
+{ 2, s_2_3, -1, 1, 0},
+{ 2, s_2_4, -1, 3, 0}
 };
 
 static const symbol s_3_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 };
@@ -372,10 +372,10 @@ static const symbol s_3_3[4] = { 0xD9, 0x84, 0xD9, 0x84 };
 
 static const struct among a_3[4] =
 {
-/*  0 */ { 4, s_3_0, -1, 2, 0},
-/*  1 */ { 6, s_3_1, -1, 1, 0},
-/*  2 */ { 6, s_3_2, -1, 1, 0},
-/*  3 */ { 4, s_3_3, -1, 2, 0}
+{ 4, s_3_0, -1, 2, 0},
+{ 6, s_3_1, -1, 1, 0},
+{ 6, s_3_2, -1, 1, 0},
+{ 4, s_3_3, -1, 2, 0}
 };
 
 static const symbol s_4_0[4] = { 0xD8, 0xA3, 0xD8, 0xA2 };
@@ -386,11 +386,11 @@ static const symbol s_4_4[4] = { 0xD8, 0xA3, 0xD8, 0xA7 };
 
 static const struct among a_4[5] =
 {
-/*  0 */ { 4, s_4_0, -1, 2, 0},
-/*  1 */ { 4, s_4_1, -1, 1, 0},
-/*  2 */ { 4, s_4_2, -1, 1, 0},
-/*  3 */ { 4, s_4_3, -1, 4, 0},
-/*  4 */ { 4, s_4_4, -1, 3, 0}
+{ 4, s_4_0, -1, 2, 0},
+{ 4, s_4_1, -1, 1, 0},
+{ 4, s_4_2, -1, 1, 0},
+{ 4, s_4_3, -1, 4, 0},
+{ 4, s_4_4, -1, 3, 0}
 };
 
 static const symbol s_5_0[2] = { 0xD9, 0x81 };
@@ -398,8 +398,8 @@ static const symbol s_5_1[2] = { 0xD9, 0x88 };
 
 static const struct among a_5[2] =
 {
-/*  0 */ { 2, s_5_0, -1, 1, 0},
-/*  1 */ { 2, s_5_1, -1, 1, 0}
+{ 2, s_5_0, -1, 1, 0},
+{ 2, s_5_1, -1, 1, 0}
 };
 
 static const symbol s_6_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 };
@@ -409,10 +409,10 @@ static const symbol s_6_3[4] = { 0xD9, 0x84, 0xD9, 0x84 };
 
 static const struct among a_6[4] =
 {
-/*  0 */ { 4, s_6_0, -1, 2, 0},
-/*  1 */ { 6, s_6_1, -1, 1, 0},
-/*  2 */ { 6, s_6_2, -1, 1, 0},
-/*  3 */ { 4, s_6_3, -1, 2, 0}
+{ 4, s_6_0, -1, 2, 0},
+{ 6, s_6_1, -1, 1, 0},
+{ 6, s_6_2, -1, 1, 0},
+{ 4, s_6_3, -1, 2, 0}
 };
 
 static const symbol s_7_0[2] = { 0xD8, 0xA8 };
@@ -421,9 +421,9 @@ static const symbol s_7_2[4] = { 0xD9, 0x83, 0xD9, 0x83 };
 
 static const struct among a_7[3] =
 {
-/*  0 */ { 2, s_7_0, -1, 1, 0},
-/*  1 */ { 4, s_7_1, 0, 2, 0},
-/*  2 */ { 4, s_7_2, -1, 3, 0}
+{ 2, s_7_0, -1, 1, 0},
+{ 4, s_7_1, 0, 2, 0},
+{ 4, s_7_2, -1, 3, 0}
 };
 
 static const symbol s_8_0[4] = { 0xD8, 0xB3, 0xD8, 0xA3 };
@@ -433,10 +433,10 @@ static const symbol s_8_3[4] = { 0xD8, 0xB3, 0xD9, 0x8A };
 
 static const struct among a_8[4] =
 {
-/*  0 */ { 4, s_8_0, -1, 4, 0},
-/*  1 */ { 4, s_8_1, -1, 2, 0},
-/*  2 */ { 4, s_8_2, -1, 3, 0},
-/*  3 */ { 4, s_8_3, -1, 1, 0}
+{ 4, s_8_0, -1, 4, 0},
+{ 4, s_8_1, -1, 2, 0},
+{ 4, s_8_2, -1, 3, 0},
+{ 4, s_8_3, -1, 1, 0}
 };
 
 static const symbol s_9_0[6] = { 0xD8, 0xAA, 0xD8, 0xB3, 0xD8, 0xAA };
@@ -445,9 +445,9 @@ static const symbol s_9_2[6] = { 0xD9, 0x8A, 0xD8, 0xB3, 0xD8, 0xAA };
 
 static const struct among a_9[3] =
 {
-/*  0 */ { 6, s_9_0, -1, 1, 0},
-/*  1 */ { 6, s_9_1, -1, 1, 0},
-/*  2 */ { 6, s_9_2, -1, 1, 0}
+{ 6, s_9_0, -1, 1, 0},
+{ 6, s_9_1, -1, 1, 0},
+{ 6, s_9_2, -1, 1, 0}
 };
 
 static const symbol s_10_0[2] = { 0xD9, 0x83 };
@@ -463,23 +463,23 @@ static const symbol s_10_9[4] = { 0xD9, 0x87, 0xD8, 0xA7 };
 
 static const struct among a_10[10] =
 {
-/*  0 */ { 2, s_10_0, -1, 1, 0},
-/*  1 */ { 4, s_10_1, -1, 2, 0},
-/*  2 */ { 4, s_10_2, -1, 2, 0},
-/*  3 */ { 4, s_10_3, -1, 2, 0},
-/*  4 */ { 2, s_10_4, -1, 1, 0},
-/*  5 */ { 2, s_10_5, -1, 1, 0},
-/*  6 */ { 6, s_10_6, -1, 3, 0},
-/*  7 */ { 6, s_10_7, -1, 3, 0},
-/*  8 */ { 4, s_10_8, -1, 2, 0},
-/*  9 */ { 4, s_10_9, -1, 2, 0}
+{ 2, s_10_0, -1, 1, 0},
+{ 4, s_10_1, -1, 2, 0},
+{ 4, s_10_2, -1, 2, 0},
+{ 4, s_10_3, -1, 2, 0},
+{ 2, s_10_4, -1, 1, 0},
+{ 2, s_10_5, -1, 1, 0},
+{ 6, s_10_6, -1, 3, 0},
+{ 6, s_10_7, -1, 3, 0},
+{ 4, s_10_8, -1, 2, 0},
+{ 4, s_10_9, -1, 2, 0}
 };
 
 static const symbol s_11_0[2] = { 0xD9, 0x86 };
 
 static const struct among a_11[1] =
 {
-/*  0 */ { 2, s_11_0, -1, 1, 0}
+{ 2, s_11_0, -1, 1, 0}
 };
 
 static const symbol s_12_0[2] = { 0xD9, 0x88 };
@@ -488,37 +488,37 @@ static const symbol s_12_2[2] = { 0xD8, 0xA7 };
 
 static const struct among a_12[3] =
 {
-/*  0 */ { 2, s_12_0, -1, 1, 0},
-/*  1 */ { 2, s_12_1, -1, 1, 0},
-/*  2 */ { 2, s_12_2, -1, 1, 0}
+{ 2, s_12_0, -1, 1, 0},
+{ 2, s_12_1, -1, 1, 0},
+{ 2, s_12_2, -1, 1, 0}
 };
 
 static const symbol s_13_0[4] = { 0xD8, 0xA7, 0xD8, 0xAA };
 
 static const struct among a_13[1] =
 {
-/*  0 */ { 4, s_13_0, -1, 1, 0}
+{ 4, s_13_0, -1, 1, 0}
 };
 
 static const symbol s_14_0[2] = { 0xD8, 0xAA };
 
 static const struct among a_14[1] =
 {
-/*  0 */ { 2, s_14_0, -1, 1, 0}
+{ 2, s_14_0, -1, 1, 0}
 };
 
 static const symbol s_15_0[2] = { 0xD8, 0xA9 };
 
 static const struct among a_15[1] =
 {
-/*  0 */ { 2, s_15_0, -1, 1, 0}
+{ 2, s_15_0, -1, 1, 0}
 };
 
 static const symbol s_16_0[2] = { 0xD9, 0x8A };
 
 static const struct among a_16[1] =
 {
-/*  0 */ { 2, s_16_0, -1, 1, 0}
+{ 2, s_16_0, -1, 1, 0}
 };
 
 static const symbol s_17_0[2] = { 0xD9, 0x83 };
@@ -536,18 +536,18 @@ static const symbol s_17_11[4] = { 0xD9, 0x87, 0xD8, 0xA7 };
 
 static const struct among a_17[12] =
 {
-/*  0 */ { 2, s_17_0, -1, 1, 0},
-/*  1 */ { 4, s_17_1, -1, 2, 0},
-/*  2 */ { 4, s_17_2, -1, 2, 0},
-/*  3 */ { 4, s_17_3, -1, 2, 0},
-/*  4 */ { 4, s_17_4, -1, 2, 0},
-/*  5 */ { 2, s_17_5, -1, 1, 0},
-/*  6 */ { 6, s_17_6, -1, 3, 0},
-/*  7 */ { 4, s_17_7, -1, 2, 0},
-/*  8 */ { 6, s_17_8, -1, 3, 0},
-/*  9 */ { 6, s_17_9, -1, 3, 0},
-/* 10 */ { 4, s_17_10, -1, 2, 0},
-/* 11 */ { 4, s_17_11, -1, 2, 0}
+{ 2, s_17_0, -1, 1, 0},
+{ 4, s_17_1, -1, 2, 0},
+{ 4, s_17_2, -1, 2, 0},
+{ 4, s_17_3, -1, 2, 0},
+{ 4, s_17_4, -1, 2, 0},
+{ 2, s_17_5, -1, 1, 0},
+{ 6, s_17_6, -1, 3, 0},
+{ 4, s_17_7, -1, 2, 0},
+{ 6, s_17_8, -1, 3, 0},
+{ 6, s_17_9, -1, 3, 0},
+{ 4, s_17_10, -1, 2, 0},
+{ 4, s_17_11, -1, 2, 0}
 };
 
 static const symbol s_18_0[2] = { 0xD9, 0x86 };
@@ -564,17 +564,17 @@ static const symbol s_18_10[2] = { 0xD8, 0xAA };
 
 static const struct among a_18[11] =
 {
-/*  0 */ { 2, s_18_0, -1, 1, 0},
-/*  1 */ { 4, s_18_1, 0, 3, 0},
-/*  2 */ { 4, s_18_2, 0, 3, 0},
-/*  3 */ { 4, s_18_3, 0, 3, 0},
-/*  4 */ { 4, s_18_4, 0, 2, 0},
-/*  5 */ { 2, s_18_5, -1, 1, 0},
-/*  6 */ { 2, s_18_6, -1, 1, 0},
-/*  7 */ { 6, s_18_7, 6, 4, 0},
-/*  8 */ { 4, s_18_8, 6, 2, 0},
-/*  9 */ { 4, s_18_9, 6, 2, 0},
-/* 10 */ { 2, s_18_10, -1, 1, 0}
+{ 2, s_18_0, -1, 1, 0},
+{ 4, s_18_1, 0, 3, 0},
+{ 4, s_18_2, 0, 3, 0},
+{ 4, s_18_3, 0, 3, 0},
+{ 4, s_18_4, 0, 2, 0},
+{ 2, s_18_5, -1, 1, 0},
+{ 2, s_18_6, -1, 1, 0},
+{ 6, s_18_7, 6, 4, 0},
+{ 4, s_18_8, 6, 2, 0},
+{ 4, s_18_9, 6, 2, 0},
+{ 2, s_18_10, -1, 1, 0}
 };
 
 static const symbol s_19_0[4] = { 0xD8, 0xAA, 0xD9, 0x85 };
@@ -582,8 +582,8 @@ static const symbol s_19_1[4] = { 0xD9, 0x88, 0xD8, 0xA7 };
 
 static const struct among a_19[2] =
 {
-/*  0 */ { 4, s_19_0, -1, 1, 0},
-/*  1 */ { 4, s_19_1, -1, 1, 0}
+{ 4, s_19_0, -1, 1, 0},
+{ 4, s_19_1, -1, 1, 0}
 };
 
 static const symbol s_20_0[2] = { 0xD9, 0x88 };
@@ -591,15 +591,15 @@ static const symbol s_20_1[6] = { 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x88 };
 
 static const struct among a_20[2] =
 {
-/*  0 */ { 2, s_20_0, -1, 1, 0},
-/*  1 */ { 6, s_20_1, 0, 2, 0}
+{ 2, s_20_0, -1, 1, 0},
+{ 6, s_20_1, 0, 2, 0}
 };
 
 static const symbol s_21_0[2] = { 0xD9, 0x89 };
 
 static const struct among a_21[1] =
 {
-/*  0 */ { 2, s_21_0, -1, 1, 0}
+{ 2, s_21_0, -1, 1, 0}
 };
 
 static const symbol s_0[] = { '0' };
@@ -672,270 +672,269 @@ static const symbol s_66[] = { 0xD8, 0xA3 };
 static const symbol s_67[] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xAA };
 static const symbol s_68[] = { 0xD9, 0x8A };
 
-static int r_Normalize_pre(struct SN_env * z) { /* forwardmode */
+static int r_Normalize_pre(struct SN_env * z) {
     int among_var;
-    {   int c1 = z->c; /* do, line 247 */
-/* repeat, line 247 */
-
-        while(1) {            int c2 = z->c;
-            {   int c3 = z->c; /* or, line 311 */
-                z->bra = z->c; /* [, line 249 */
-                among_var = find_among(z, a_0, 144); /* substring, line 249 */
+    {   int c1 = z->c;
+        while(1) {
+            int c2 = z->c;
+            {   int c3 = z->c;
+                z->bra = z->c;
+                among_var = find_among(z, a_0, 144);
                 if (!(among_var)) goto lab3;
-                z->ket = z->c; /* ], line 249 */
-                switch (among_var) { /* among, line 249 */
+                z->ket = z->c;
+                switch (among_var) {
                     case 1:
-                        {   int ret = slice_del(z); /* delete, line 250 */
+                        {   int ret = slice_del(z);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 2:
-                        {   int ret = slice_from_s(z, 1, s_0); /* <-, line 254 */
+                        {   int ret = slice_from_s(z, 1, s_0);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 3:
-                        {   int ret = slice_from_s(z, 1, s_1); /* <-, line 255 */
+                        {   int ret = slice_from_s(z, 1, s_1);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 4:
-                        {   int ret = slice_from_s(z, 1, s_2); /* <-, line 256 */
+                        {   int ret = slice_from_s(z, 1, s_2);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 5:
-                        {   int ret = slice_from_s(z, 1, s_3); /* <-, line 257 */
+                        {   int ret = slice_from_s(z, 1, s_3);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 6:
-                        {   int ret = slice_from_s(z, 1, s_4); /* <-, line 258 */
+                        {   int ret = slice_from_s(z, 1, s_4);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 7:
-                        {   int ret = slice_from_s(z, 1, s_5); /* <-, line 259 */
+                        {   int ret = slice_from_s(z, 1, s_5);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 8:
-                        {   int ret = slice_from_s(z, 1, s_6); /* <-, line 260 */
+                        {   int ret = slice_from_s(z, 1, s_6);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 9:
-                        {   int ret = slice_from_s(z, 1, s_7); /* <-, line 261 */
+                        {   int ret = slice_from_s(z, 1, s_7);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 10:
-                        {   int ret = slice_from_s(z, 1, s_8); /* <-, line 262 */
+                        {   int ret = slice_from_s(z, 1, s_8);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 11:
-                        {   int ret = slice_from_s(z, 1, s_9); /* <-, line 263 */
+                        {   int ret = slice_from_s(z, 1, s_9);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 12:
-                        {   int ret = slice_from_s(z, 2, s_10); /* <-, line 266 */
+                        {   int ret = slice_from_s(z, 2, s_10);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 13:
-                        {   int ret = slice_from_s(z, 2, s_11); /* <-, line 267 */
+                        {   int ret = slice_from_s(z, 2, s_11);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 14:
-                        {   int ret = slice_from_s(z, 2, s_12); /* <-, line 268 */
+                        {   int ret = slice_from_s(z, 2, s_12);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 15:
-                        {   int ret = slice_from_s(z, 2, s_13); /* <-, line 269 */
+                        {   int ret = slice_from_s(z, 2, s_13);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 16:
-                        {   int ret = slice_from_s(z, 2, s_14); /* <-, line 270 */
+                        {   int ret = slice_from_s(z, 2, s_14);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 17:
-                        {   int ret = slice_from_s(z, 2, s_15); /* <-, line 271 */
+                        {   int ret = slice_from_s(z, 2, s_15);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 18:
-                        {   int ret = slice_from_s(z, 2, s_16); /* <-, line 272 */
+                        {   int ret = slice_from_s(z, 2, s_16);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 19:
-                        {   int ret = slice_from_s(z, 2, s_17); /* <-, line 273 */
+                        {   int ret = slice_from_s(z, 2, s_17);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 20:
-                        {   int ret = slice_from_s(z, 2, s_18); /* <-, line 274 */
+                        {   int ret = slice_from_s(z, 2, s_18);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 21:
-                        {   int ret = slice_from_s(z, 2, s_19); /* <-, line 275 */
+                        {   int ret = slice_from_s(z, 2, s_19);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 22:
-                        {   int ret = slice_from_s(z, 2, s_20); /* <-, line 276 */
+                        {   int ret = slice_from_s(z, 2, s_20);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 23:
-                        {   int ret = slice_from_s(z, 2, s_21); /* <-, line 277 */
+                        {   int ret = slice_from_s(z, 2, s_21);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 24:
-                        {   int ret = slice_from_s(z, 2, s_22); /* <-, line 278 */
+                        {   int ret = slice_from_s(z, 2, s_22);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 25:
-                        {   int ret = slice_from_s(z, 2, s_23); /* <-, line 279 */
+                        {   int ret = slice_from_s(z, 2, s_23);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 26:
-                        {   int ret = slice_from_s(z, 2, s_24); /* <-, line 280 */
+                        {   int ret = slice_from_s(z, 2, s_24);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 27:
-                        {   int ret = slice_from_s(z, 2, s_25); /* <-, line 281 */
+                        {   int ret = slice_from_s(z, 2, s_25);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 28:
-                        {   int ret = slice_from_s(z, 2, s_26); /* <-, line 282 */
+                        {   int ret = slice_from_s(z, 2, s_26);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 29:
-                        {   int ret = slice_from_s(z, 2, s_27); /* <-, line 283 */
+                        {   int ret = slice_from_s(z, 2, s_27);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 30:
-                        {   int ret = slice_from_s(z, 2, s_28); /* <-, line 284 */
+                        {   int ret = slice_from_s(z, 2, s_28);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 31:
-                        {   int ret = slice_from_s(z, 2, s_29); /* <-, line 285 */
+                        {   int ret = slice_from_s(z, 2, s_29);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 32:
-                        {   int ret = slice_from_s(z, 2, s_30); /* <-, line 286 */
+                        {   int ret = slice_from_s(z, 2, s_30);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 33:
-                        {   int ret = slice_from_s(z, 2, s_31); /* <-, line 287 */
+                        {   int ret = slice_from_s(z, 2, s_31);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 34:
-                        {   int ret = slice_from_s(z, 2, s_32); /* <-, line 288 */
+                        {   int ret = slice_from_s(z, 2, s_32);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 35:
-                        {   int ret = slice_from_s(z, 2, s_33); /* <-, line 289 */
+                        {   int ret = slice_from_s(z, 2, s_33);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 36:
-                        {   int ret = slice_from_s(z, 2, s_34); /* <-, line 290 */
+                        {   int ret = slice_from_s(z, 2, s_34);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 37:
-                        {   int ret = slice_from_s(z, 2, s_35); /* <-, line 291 */
+                        {   int ret = slice_from_s(z, 2, s_35);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 38:
-                        {   int ret = slice_from_s(z, 2, s_36); /* <-, line 292 */
+                        {   int ret = slice_from_s(z, 2, s_36);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 39:
-                        {   int ret = slice_from_s(z, 2, s_37); /* <-, line 293 */
+                        {   int ret = slice_from_s(z, 2, s_37);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 40:
-                        {   int ret = slice_from_s(z, 2, s_38); /* <-, line 294 */
+                        {   int ret = slice_from_s(z, 2, s_38);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 41:
-                        {   int ret = slice_from_s(z, 2, s_39); /* <-, line 295 */
+                        {   int ret = slice_from_s(z, 2, s_39);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 42:
-                        {   int ret = slice_from_s(z, 2, s_40); /* <-, line 296 */
+                        {   int ret = slice_from_s(z, 2, s_40);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 43:
-                        {   int ret = slice_from_s(z, 2, s_41); /* <-, line 297 */
+                        {   int ret = slice_from_s(z, 2, s_41);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 44:
-                        {   int ret = slice_from_s(z, 2, s_42); /* <-, line 298 */
+                        {   int ret = slice_from_s(z, 2, s_42);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 45:
-                        {   int ret = slice_from_s(z, 2, s_43); /* <-, line 299 */
+                        {   int ret = slice_from_s(z, 2, s_43);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 46:
-                        {   int ret = slice_from_s(z, 2, s_44); /* <-, line 300 */
+                        {   int ret = slice_from_s(z, 2, s_44);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 47:
-                        {   int ret = slice_from_s(z, 2, s_45); /* <-, line 301 */
+                        {   int ret = slice_from_s(z, 2, s_45);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 48:
-                        {   int ret = slice_from_s(z, 4, s_46); /* <-, line 304 */
+                        {   int ret = slice_from_s(z, 4, s_46);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 49:
-                        {   int ret = slice_from_s(z, 4, s_47); /* <-, line 305 */
+                        {   int ret = slice_from_s(z, 4, s_47);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 50:
-                        {   int ret = slice_from_s(z, 4, s_48); /* <-, line 306 */
+                        {   int ret = slice_from_s(z, 4, s_48);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 51:
-                        {   int ret = slice_from_s(z, 4, s_49); /* <-, line 307 */
+                        {   int ret = slice_from_s(z, 4, s_49);
                             if (ret < 0) return ret;
                         }
                         break;
@@ -943,9 +942,9 @@ static int r_Normalize_pre(struct SN_env * z) { /* forwardmode */
                 goto lab2;
             lab3:
                 z->c = c3;
-                {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+                {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                     if (ret < 0) goto lab1;
-                    z->c = ret; /* next, line 312 */
+                    z->c = ret;
                 }
             }
         lab2:
@@ -959,45 +958,44 @@ static int r_Normalize_pre(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_Normalize_post(struct SN_env * z) { /* forwardmode */
+static int r_Normalize_post(struct SN_env * z) {
     int among_var;
-    {   int c1 = z->c; /* do, line 318 */
-        z->lb = z->c; z->c = z->l; /* backwards, line 320 */
+    {   int c1 = z->c;
+        z->lb = z->c; z->c = z->l;
 
-        z->ket = z->c; /* [, line 321 */
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((124 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 321 */
+        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;
-        z->bra = z->c; /* ], line 321 */
-        {   int ret = slice_from_s(z, 2, s_50); /* <-, line 322 */
+        z->bra = z->c;
+        {   int ret = slice_from_s(z, 2, s_50);
             if (ret < 0) return ret;
         }
         z->c = z->lb;
     lab0:
         z->c = c1;
     }
-    {   int c2 = z->c; /* do, line 329 */
-/* repeat, line 329 */
-
-        while(1) {            int c3 = z->c;
-            {   int c4 = z->c; /* or, line 338 */
-                z->bra = z->c; /* [, line 332 */
-                if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((124 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab4; /* substring, line 332 */
+    {   int c2 = z->c;
+        while(1) {
+            int c3 = z->c;
+            {   int c4 = z->c;
+                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;
-                z->ket = z->c; /* ], line 332 */
-                switch (among_var) { /* among, line 332 */
+                z->ket = z->c;
+                switch (among_var) {
                     case 1:
-                        {   int ret = slice_from_s(z, 2, s_51); /* <-, line 333 */
+                        {   int ret = slice_from_s(z, 2, s_51);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 2:
-                        {   int ret = slice_from_s(z, 2, s_52); /* <-, line 334 */
+                        {   int ret = slice_from_s(z, 2, s_52);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 3:
-                        {   int ret = slice_from_s(z, 2, s_53); /* <-, line 335 */
+                        {   int ret = slice_from_s(z, 2, s_53);
                             if (ret < 0) return ret;
                         }
                         break;
@@ -1005,9 +1003,9 @@ static int r_Normalize_post(struct SN_env * z) { /* forwardmode */
                 goto lab3;
             lab4:
                 z->c = c4;
-                {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+                {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                     if (ret < 0) goto lab2;
-                    z->c = ret; /* next, line 339 */
+                    z->c = ret;
                 }
             }
         lab3:
@@ -1021,59 +1019,59 @@ static int r_Normalize_post(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_Checks1(struct SN_env * z) { /* forwardmode */
+static int r_Checks1(struct SN_env * z) {
     int among_var;
-    z->bra = z->c; /* [, line 345 */
-    if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0; /* substring, line 345 */
+    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;
-    z->ket = z->c; /* ], line 345 */
-    switch (among_var) { /* among, line 345 */
+    z->ket = z->c;
+    switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 346 */
-            z->B[0] = 1; /* set is_noun, line 346 */
-            z->B[1] = 0; /* unset is_verb, line 346 */
-            z->B[2] = 1; /* set is_defined, line 346 */
+            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; /* $(<integer expression> > <integer expression>), line 347 */
-            z->B[0] = 1; /* set is_noun, line 347 */
-            z->B[1] = 0; /* unset is_verb, line 347 */
-            z->B[2] = 1; /* set is_defined, line 347 */
+            if (!(len_utf8(z->p) > 3)) return 0;
+            z->I[2] = 1;
+            z->I[1] = 0;
+            z->I[0] = 1;
             break;
     }
     return 1;
 }
 
-static int r_Prefix_Step1(struct SN_env * z) { /* forwardmode */
+static int r_Prefix_Step1(struct SN_env * z) {
     int among_var;
-    z->bra = z->c; /* [, line 354 */
-    if (z->c + 3 >= z->l || z->p[z->c + 3] >> 5 != 5 || !((188 >> (z->p[z->c + 3] & 0x1f)) & 1)) return 0; /* substring, line 354 */
+    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;
-    z->ket = z->c; /* ], line 354 */
-    switch (among_var) { /* among, line 354 */
+    z->ket = z->c;
+    switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 355 */
-            {   int ret = slice_from_s(z, 2, s_54); /* <-, line 355 */
+            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; /* $(<integer expression> > <integer expression>), line 356 */
-            {   int ret = slice_from_s(z, 2, s_55); /* <-, line 356 */
+            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; /* $(<integer expression> > <integer expression>), line 358 */
-            {   int ret = slice_from_s(z, 2, s_56); /* <-, line 358 */
+            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; /* $(<integer expression> > <integer expression>), line 359 */
-            {   int ret = slice_from_s(z, 2, s_57); /* <-, line 359 */
+            if (!(len_utf8(z->p) > 3)) return 0;
+            {   int ret = slice_from_s(z, 2, s_57);
                 if (ret < 0) return ret;
             }
             break;
@@ -1081,47 +1079,47 @@ static int r_Prefix_Step1(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_Prefix_Step2(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* not, line 365 */
-        if (!(eq_s(z, 4, s_58))) goto lab0; /* literal, line 365 */
+static int r_Prefix_Step2(struct SN_env * z) {
+    {   int c1 = z->c;
+        if (!(eq_s(z, 4, s_58))) goto lab0;
         return 0;
     lab0:
         z->c = c1;
     }
-    {   int c2 = z->c; /* not, line 366 */
-        if (!(eq_s(z, 4, s_59))) goto lab1; /* literal, line 366 */
+    {   int c2 = z->c;
+        if (!(eq_s(z, 4, s_59))) goto lab1;
         return 0;
     lab1:
         z->c = c2;
     }
-    z->bra = z->c; /* [, line 367 */
-    if (z->c + 1 >= z->l || (z->p[z->c + 1] != 129 && z->p[z->c + 1] != 136)) return 0; /* substring, line 367 */
+    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;
-    z->ket = z->c; /* ], line 367 */
-    if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 368 */
-    {   int ret = slice_del(z); /* delete, line 368 */
+    z->ket = z->c;
+    if (!(len_utf8(z->p) > 3)) return 0;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Prefix_Step3a_Noun(struct SN_env * z) { /* forwardmode */
+static int r_Prefix_Step3a_Noun(struct SN_env * z) {
     int among_var;
-    z->bra = z->c; /* [, line 374 */
-    if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0; /* substring, line 374 */
+    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;
-    z->ket = z->c; /* ], line 374 */
-    switch (among_var) { /* among, line 374 */
+    z->ket = z->c;
+    switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) > 5)) return 0; /* $(<integer expression> > <integer expression>), line 375 */
-            {   int ret = slice_del(z); /* delete, line 375 */
+            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; /* $(<integer expression> > <integer expression>), line 376 */
-            {   int ret = slice_del(z); /* delete, line 376 */
+            if (!(len_utf8(z->p) > 4)) return 0;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -1129,35 +1127,35 @@ static int r_Prefix_Step3a_Noun(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_Prefix_Step3b_Noun(struct SN_env * z) { /* forwardmode */
+static int r_Prefix_Step3b_Noun(struct SN_env * z) {
     int among_var;
-    {   int c1 = z->c; /* not, line 381 */
-        if (!(eq_s(z, 4, s_60))) goto lab0; /* literal, line 381 */
+    {   int c1 = z->c;
+        if (!(eq_s(z, 4, s_60))) goto lab0;
         return 0;
     lab0:
         z->c = c1;
     }
-    z->bra = z->c; /* [, line 382 */
-    if (z->c + 1 >= z->l || (z->p[z->c + 1] != 168 && z->p[z->c + 1] != 131)) return 0; /* substring, line 382 */
+    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, 3);
     if (!(among_var)) return 0;
-    z->ket = z->c; /* ], line 382 */
-    switch (among_var) { /* among, line 382 */
+    z->ket = z->c;
+    switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 383 */
-            {   int ret = slice_del(z); /* delete, line 383 */
+            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; /* $(<integer expression> > <integer expression>), line 385 */
-            {   int ret = slice_from_s(z, 2, s_61); /* <-, line 385 */
+            if (!(len_utf8(z->p) > 3)) return 0;
+            {   int ret = slice_from_s(z, 2, s_61);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            if (!(len_utf8(z->p) > 3)) return 0; /* $(<integer expression> > <integer expression>), line 386 */
-            {   int ret = slice_from_s(z, 2, s_62); /* <-, line 386 */
+            if (!(len_utf8(z->p) > 3)) return 0;
+            {   int ret = slice_from_s(z, 2, s_62);
                 if (ret < 0) return ret;
             }
             break;
@@ -1165,34 +1163,34 @@ static int r_Prefix_Step3b_Noun(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_Prefix_Step3_Verb(struct SN_env * z) { /* forwardmode */
+static int r_Prefix_Step3_Verb(struct SN_env * z) {
     int among_var;
-    z->bra = z->c; /* [, line 392 */
-    among_var = find_among(z, a_8, 4); /* substring, line 392 */
+    z->bra = z->c;
+    among_var = find_among(z, a_8, 4);
     if (!(among_var)) return 0;
-    z->ket = z->c; /* ], line 392 */
-    switch (among_var) { /* among, line 392 */
+    z->ket = z->c;
+    switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 394 */
-            {   int ret = slice_from_s(z, 2, s_63); /* <-, line 394 */
+            if (!(len_utf8(z->p) > 4)) return 0;
+            {   int ret = slice_from_s(z, 2, s_63);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 395 */
-            {   int ret = slice_from_s(z, 2, s_64); /* <-, line 395 */
+            if (!(len_utf8(z->p) > 4)) return 0;
+            {   int ret = slice_from_s(z, 2, s_64);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 396 */
-            {   int ret = slice_from_s(z, 2, s_65); /* <-, line 396 */
+            if (!(len_utf8(z->p) > 4)) return 0;
+            {   int ret = slice_from_s(z, 2, s_65);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 397 */
-            {   int ret = slice_from_s(z, 2, s_66); /* <-, line 397 */
+            if (!(len_utf8(z->p) > 4)) return 0;
+            {   int ret = slice_from_s(z, 2, s_66);
                 if (ret < 0) return ret;
             }
             break;
@@ -1200,42 +1198,42 @@ static int r_Prefix_Step3_Verb(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_Prefix_Step4_Verb(struct SN_env * z) { /* forwardmode */
-    z->bra = z->c; /* [, line 402 */
-    if (z->c + 5 >= z->l || z->p[z->c + 5] != 170) return 0; /* substring, line 402 */
+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;
-    z->ket = z->c; /* ], line 402 */
-    if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 403 */
-    z->B[1] = 1; /* set is_verb, line 403 */
-    z->B[0] = 0; /* unset is_noun, line 403 */
-    {   int ret = slice_from_s(z, 6, s_67); /* <-, line 403 */
+    z->ket = z->c;
+    if (!(len_utf8(z->p) > 4)) return 0;
+    z->I[1] = 1;
+    z->I[2] = 0;
+    {   int ret = slice_from_s(z, 6, s_67);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Suffix_Noun_Step1a(struct SN_env * z) { /* backwardmode */
+static int r_Suffix_Noun_Step1a(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 411 */
-    among_var = find_among_b(z, a_10, 10); /* substring, line 411 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_10, 10);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 411 */
-    switch (among_var) { /* among, line 411 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) >= 4)) return 0; /* $(<integer expression> >= <integer expression>), line 412 */
-            {   int ret = slice_del(z); /* delete, line 412 */
+            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; /* $(<integer expression> >= <integer expression>), line 413 */
-            {   int ret = slice_del(z); /* delete, line 413 */
+            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; /* $(<integer expression> >= <integer expression>), line 414 */
-            {   int ret = slice_del(z); /* delete, line 414 */
+            if (!(len_utf8(z->p) >= 6)) return 0;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -1243,99 +1241,99 @@ static int r_Suffix_Noun_Step1a(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Suffix_Noun_Step1b(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 418 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] != 134) return 0; /* substring, line 418 */
+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;
-    z->bra = z->c; /* ], line 418 */
-    if (!(len_utf8(z->p) > 5)) return 0; /* $(<integer expression> > <integer expression>), line 419 */
-    {   int ret = slice_del(z); /* delete, line 419 */
+    z->bra = z->c;
+    if (!(len_utf8(z->p) > 5)) return 0;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Suffix_Noun_Step2a(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 424 */
-    if (!(find_among_b(z, a_12, 3))) return 0; /* substring, line 424 */
-    z->bra = z->c; /* ], line 424 */
-    if (!(len_utf8(z->p) > 4)) return 0; /* $(<integer expression> > <integer expression>), line 425 */
-    {   int ret = slice_del(z); /* delete, line 425 */
+static int r_Suffix_Noun_Step2a(struct SN_env * z) {
+    z->ket = z->c;
+    if (!(find_among_b(z, a_12, 3))) return 0;
+    z->bra = z->c;
+    if (!(len_utf8(z->p) > 4)) return 0;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Suffix_Noun_Step2b(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 430 */
-    if (z->c - 3 <= z->lb || z->p[z->c - 1] != 170) return 0; /* substring, line 430 */
+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;
-    z->bra = z->c; /* ], line 430 */
-    if (!(len_utf8(z->p) >= 5)) return 0; /* $(<integer expression> >= <integer expression>), line 431 */
-    {   int ret = slice_del(z); /* delete, line 431 */
+    z->bra = z->c;
+    if (!(len_utf8(z->p) >= 5)) return 0;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Suffix_Noun_Step2c1(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 436 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] != 170) return 0; /* substring, line 436 */
+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;
-    z->bra = z->c; /* ], line 436 */
-    if (!(len_utf8(z->p) >= 4)) return 0; /* $(<integer expression> >= <integer expression>), line 437 */
-    {   int ret = slice_del(z); /* delete, line 437 */
+    z->bra = z->c;
+    if (!(len_utf8(z->p) >= 4)) return 0;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Suffix_Noun_Step2c2(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 441 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] != 169) return 0; /* substring, line 441 */
+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;
-    z->bra = z->c; /* ], line 441 */
-    if (!(len_utf8(z->p) >= 4)) return 0; /* $(<integer expression> >= <integer expression>), line 442 */
-    {   int ret = slice_del(z); /* delete, line 442 */
+    z->bra = z->c;
+    if (!(len_utf8(z->p) >= 4)) return 0;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Suffix_Noun_Step3(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 446 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] != 138) return 0; /* substring, line 446 */
+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;
-    z->bra = z->c; /* ], line 446 */
-    if (!(len_utf8(z->p) >= 3)) return 0; /* $(<integer expression> >= <integer expression>), line 447 */
-    {   int ret = slice_del(z); /* delete, line 447 */
+    z->bra = z->c;
+    if (!(len_utf8(z->p) >= 3)) return 0;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Suffix_Verb_Step1(struct SN_env * z) { /* backwardmode */
+static int r_Suffix_Verb_Step1(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 452 */
-    among_var = find_among_b(z, a_17, 12); /* substring, line 452 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_17, 12);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 452 */
-    switch (among_var) { /* among, line 452 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) >= 4)) return 0; /* $(<integer expression> >= <integer expression>), line 453 */
-            {   int ret = slice_del(z); /* delete, line 453 */
+            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; /* $(<integer expression> >= <integer expression>), line 454 */
-            {   int ret = slice_del(z); /* delete, line 454 */
+            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; /* $(<integer expression> >= <integer expression>), line 455 */
-            {   int ret = slice_del(z); /* delete, line 455 */
+            if (!(len_utf8(z->p) >= 6)) return 0;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -1343,34 +1341,34 @@ static int r_Suffix_Verb_Step1(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Suffix_Verb_Step2a(struct SN_env * z) { /* backwardmode */
+static int r_Suffix_Verb_Step2a(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 459 */
-    among_var = find_among_b(z, a_18, 11); /* substring, line 459 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_18, 11);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 459 */
-    switch (among_var) { /* among, line 459 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) >= 4)) return 0; /* $(<integer expression> >= <integer expression>), line 460 */
-            {   int ret = slice_del(z); /* delete, line 460 */
+            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; /* $(<integer expression> >= <integer expression>), line 462 */
-            {   int ret = slice_del(z); /* delete, line 462 */
+            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; /* $(<integer expression> > <integer expression>), line 463 */
-            {   int ret = slice_del(z); /* delete, line 463 */
+            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; /* $(<integer expression> >= <integer expression>), line 464 */
-            {   int ret = slice_del(z); /* delete, line 464 */
+            if (!(len_utf8(z->p) >= 6)) return 0;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -1378,35 +1376,35 @@ static int r_Suffix_Verb_Step2a(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Suffix_Verb_Step2b(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 469 */
-    if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 133 && z->p[z->c - 1] != 167)) return 0; /* substring, line 469 */
+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;
-    z->bra = z->c; /* ], line 469 */
-    if (!(len_utf8(z->p) >= 5)) return 0; /* $(<integer expression> >= <integer expression>), line 470 */
-    {   int ret = slice_del(z); /* delete, line 470 */
+    z->bra = z->c;
+    if (!(len_utf8(z->p) >= 5)) return 0;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Suffix_Verb_Step2c(struct SN_env * z) { /* backwardmode */
+static int r_Suffix_Verb_Step2c(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 476 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] != 136) return 0; /* substring, line 476 */
+    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;
-    z->bra = z->c; /* ], line 476 */
-    switch (among_var) { /* among, line 476 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            if (!(len_utf8(z->p) >= 4)) return 0; /* $(<integer expression> >= <integer expression>), line 477 */
-            {   int ret = slice_del(z); /* delete, line 477 */
+            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; /* $(<integer expression> >= <integer expression>), line 478 */
-            {   int ret = slice_del(z); /* delete, line 478 */
+            if (!(len_utf8(z->p) >= 6)) return 0;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -1414,40 +1412,41 @@ static int r_Suffix_Verb_Step2c(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Suffix_All_alef_maqsura(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 483 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] != 137) return 0; /* substring, line 483 */
+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;
-    z->bra = z->c; /* ], line 483 */
-    {   int ret = slice_from_s(z, 2, s_68); /* <-, line 484 */
+    z->bra = z->c;
+    {   int ret = slice_from_s(z, 2, s_68);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */
-    z->B[0] = 1; /* set is_noun, line 493 */
-    z->B[1] = 1; /* set is_verb, line 494 */
-    z->B[2] = 0; /* unset is_defined, line 495 */
-    {   int c1 = z->c; /* do, line 498 */
-        {   int ret = r_Checks1(z); /* call Checks1, line 498 */
+extern int arabic_UTF_8_stem(struct SN_env * z) {
+    z->I[2] = 1;
+    z->I[1] = 1;
+    z->I[0] = 0;
+    {   int c1 = z->c;
+        {   int ret = r_Checks1(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    /* do, line 501 */
-    {   int ret = r_Normalize_pre(z); /* call Normalize_pre, line 501 */
+    
+    {   int ret = r_Normalize_pre(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 504 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 506 */
-        {   int m3 = z->l - z->c; (void)m3; /* or, line 520 */
-            if (!(z->B[1])) goto lab2; /* Boolean test is_verb, line 509 */
-            {   int m4 = z->l - z->c; (void)m4; /* or, line 515 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int m3 = z->l - z->c; (void)m3;
+            if (!(z->I[1])) goto lab2;
+            {   int m4 = z->l - z->c; (void)m4;
                 {   int i = 1;
-                    while(1) {                        int m5 = z->l - z->c; (void)m5;
-                        {   int ret = r_Suffix_Verb_Step1(z); /* call Suffix_Verb_Step1, line 512 */
+                    while(1) {
+                        int m5 = z->l - z->c; (void)m5;
+                        {   int ret = r_Suffix_Verb_Step1(z);
                             if (ret == 0) goto lab5;
                             if (ret < 0) return ret;
                         }
@@ -1459,38 +1458,38 @@ extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */
                     }
                     if (i > 0) goto lab4;
                 }
-                {   int m6 = z->l - z->c; (void)m6; /* or, line 513 */
-                    {   int ret = r_Suffix_Verb_Step2a(z); /* call Suffix_Verb_Step2a, line 513 */
+                {   int m6 = z->l - z->c; (void)m6;
+                    {   int ret = r_Suffix_Verb_Step2a(z);
                         if (ret == 0) goto lab7;
                         if (ret < 0) return ret;
                     }
                     goto lab6;
                 lab7:
                     z->c = z->l - m6;
-                    {   int ret = r_Suffix_Verb_Step2c(z); /* call Suffix_Verb_Step2c, line 513 */
+                    {   int ret = r_Suffix_Verb_Step2c(z);
                         if (ret == 0) goto lab8;
                         if (ret < 0) return ret;
                     }
                     goto lab6;
                 lab8:
                     z->c = z->l - m6;
-                    {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+                    {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
                         if (ret < 0) goto lab4;
-                        z->c = ret; /* next, line 513 */
+                        z->c = ret;
                     }
                 }
             lab6:
                 goto lab3;
             lab4:
                 z->c = z->l - m4;
-                {   int ret = r_Suffix_Verb_Step2b(z); /* call Suffix_Verb_Step2b, line 515 */
+                {   int ret = r_Suffix_Verb_Step2b(z);
                     if (ret == 0) goto lab9;
                     if (ret < 0) return ret;
                 }
                 goto lab3;
             lab9:
                 z->c = z->l - m4;
-                {   int ret = r_Suffix_Verb_Step2a(z); /* call Suffix_Verb_Step2a, line 516 */
+                {   int ret = r_Suffix_Verb_Step2a(z);
                     if (ret == 0) goto lab2;
                     if (ret < 0) return ret;
                 }
@@ -1499,75 +1498,75 @@ extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */
             goto lab1;
         lab2:
             z->c = z->l - m3;
-            if (!(z->B[0])) goto lab10; /* Boolean test is_noun, line 521 */
-            {   int m7 = z->l - z->c; (void)m7; /* try, line 524 */
-                {   int m8 = z->l - z->c; (void)m8; /* or, line 526 */
-                    {   int ret = r_Suffix_Noun_Step2c2(z); /* call Suffix_Noun_Step2c2, line 525 */
+            if (!(z->I[2])) goto lab10;
+            {   int m7 = z->l - z->c; (void)m7;
+                {   int m8 = z->l - z->c; (void)m8;
+                    {   int ret = r_Suffix_Noun_Step2c2(z);
                         if (ret == 0) goto lab13;
                         if (ret < 0) return ret;
                     }
                     goto lab12;
                 lab13:
                     z->c = z->l - m8;
-                    /* not, line 526 */
-                    if (!(z->B[2])) goto lab15; /* Boolean test is_defined, line 526 */
+                    
+                    if (!(z->I[0])) goto lab15;
                     goto lab14;
                 lab15:
-                    {   int ret = r_Suffix_Noun_Step1a(z); /* call Suffix_Noun_Step1a, line 526 */
+                    {   int ret = r_Suffix_Noun_Step1a(z);
                         if (ret == 0) goto lab14;
                         if (ret < 0) return ret;
                     }
-                    {   int m9 = z->l - z->c; (void)m9; /* or, line 528 */
-                        {   int ret = r_Suffix_Noun_Step2a(z); /* call Suffix_Noun_Step2a, line 527 */
+                    {   int m9 = z->l - z->c; (void)m9;
+                        {   int ret = r_Suffix_Noun_Step2a(z);
                             if (ret == 0) goto lab17;
                             if (ret < 0) return ret;
                         }
                         goto lab16;
                     lab17:
                         z->c = z->l - m9;
-                        {   int ret = r_Suffix_Noun_Step2b(z); /* call Suffix_Noun_Step2b, line 528 */
+                        {   int ret = r_Suffix_Noun_Step2b(z);
                             if (ret == 0) goto lab18;
                             if (ret < 0) return ret;
                         }
                         goto lab16;
                     lab18:
                         z->c = z->l - m9;
-                        {   int ret = r_Suffix_Noun_Step2c1(z); /* call Suffix_Noun_Step2c1, line 529 */
+                        {   int ret = r_Suffix_Noun_Step2c1(z);
                             if (ret == 0) goto lab19;
                             if (ret < 0) return ret;
                         }
                         goto lab16;
                     lab19:
                         z->c = z->l - m9;
-                        {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+                        {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
                             if (ret < 0) goto lab14;
-                            z->c = ret; /* next, line 530 */
+                            z->c = ret;
                         }
                     }
                 lab16:
                     goto lab12;
                 lab14:
                     z->c = z->l - m8;
-                    {   int ret = r_Suffix_Noun_Step1b(z); /* call Suffix_Noun_Step1b, line 531 */
+                    {   int ret = r_Suffix_Noun_Step1b(z);
                         if (ret == 0) goto lab20;
                         if (ret < 0) return ret;
                     }
-                    {   int m10 = z->l - z->c; (void)m10; /* or, line 533 */
-                        {   int ret = r_Suffix_Noun_Step2a(z); /* call Suffix_Noun_Step2a, line 532 */
+                    {   int m10 = z->l - z->c; (void)m10;
+                        {   int ret = r_Suffix_Noun_Step2a(z);
                             if (ret == 0) goto lab22;
                             if (ret < 0) return ret;
                         }
                         goto lab21;
                     lab22:
                         z->c = z->l - m10;
-                        {   int ret = r_Suffix_Noun_Step2b(z); /* call Suffix_Noun_Step2b, line 533 */
+                        {   int ret = r_Suffix_Noun_Step2b(z);
                             if (ret == 0) goto lab23;
                             if (ret < 0) return ret;
                         }
                         goto lab21;
                     lab23:
                         z->c = z->l - m10;
-                        {   int ret = r_Suffix_Noun_Step2c1(z); /* call Suffix_Noun_Step2c1, line 534 */
+                        {   int ret = r_Suffix_Noun_Step2c1(z);
                             if (ret == 0) goto lab20;
                             if (ret < 0) return ret;
                         }
@@ -1576,18 +1575,18 @@ extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */
                     goto lab12;
                 lab20:
                     z->c = z->l - m8;
-                    /* not, line 535 */
-                    if (!(z->B[2])) goto lab25; /* Boolean test is_defined, line 535 */
+                    
+                    if (!(z->I[0])) goto lab25;
                     goto lab24;
                 lab25:
-                    {   int ret = r_Suffix_Noun_Step2a(z); /* call Suffix_Noun_Step2a, line 535 */
+                    {   int ret = r_Suffix_Noun_Step2a(z);
                         if (ret == 0) goto lab24;
                         if (ret < 0) return ret;
                     }
                     goto lab12;
                 lab24:
                     z->c = z->l - m8;
-                    {   int ret = r_Suffix_Noun_Step2b(z); /* call Suffix_Noun_Step2b, line 536 */
+                    {   int ret = r_Suffix_Noun_Step2b(z);
                         if (ret == 0) { z->c = z->l - m7; goto lab11; }
                         if (ret < 0) return ret;
                     }
@@ -1596,14 +1595,14 @@ extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */
             lab11:
                 ;
             }
-            {   int ret = r_Suffix_Noun_Step3(z); /* call Suffix_Noun_Step3, line 538 */
+            {   int ret = r_Suffix_Noun_Step3(z);
                 if (ret == 0) goto lab10;
                 if (ret < 0) return ret;
             }
             goto lab1;
         lab10:
             z->c = z->l - m3;
-            {   int ret = r_Suffix_All_alef_maqsura(z); /* call Suffix_All_alef_maqsura, line 544 */
+            {   int ret = r_Suffix_All_alef_maqsura(z);
                 if (ret == 0) goto lab0;
                 if (ret < 0) return ret;
             }
@@ -1613,49 +1612,49 @@ extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */
         z->c = z->l - m2;
     }
     z->c = z->lb;
-    {   int c11 = z->c; /* do, line 549 */
-        {   int c12 = z->c; /* try, line 550 */
-            {   int ret = r_Prefix_Step1(z); /* call Prefix_Step1, line 550 */
+    {   int c11 = z->c;
+        {   int c12 = z->c;
+            {   int ret = r_Prefix_Step1(z);
                 if (ret == 0) { z->c = c12; goto lab27; }
                 if (ret < 0) return ret;
             }
         lab27:
             ;
         }
-        {   int c13 = z->c; /* try, line 551 */
-            {   int ret = r_Prefix_Step2(z); /* call Prefix_Step2, line 551 */
+        {   int c13 = z->c;
+            {   int ret = r_Prefix_Step2(z);
                 if (ret == 0) { z->c = c13; goto lab28; }
                 if (ret < 0) return ret;
             }
         lab28:
             ;
         }
-        {   int c14 = z->c; /* or, line 553 */
-            {   int ret = r_Prefix_Step3a_Noun(z); /* call Prefix_Step3a_Noun, line 552 */
+        {   int c14 = z->c;
+            {   int ret = r_Prefix_Step3a_Noun(z);
                 if (ret == 0) goto lab30;
                 if (ret < 0) return ret;
             }
             goto lab29;
         lab30:
             z->c = c14;
-            if (!(z->B[0])) goto lab31; /* Boolean test is_noun, line 553 */
-            {   int ret = r_Prefix_Step3b_Noun(z); /* call Prefix_Step3b_Noun, line 553 */
+            if (!(z->I[2])) goto lab31;
+            {   int ret = r_Prefix_Step3b_Noun(z);
                 if (ret == 0) goto lab31;
                 if (ret < 0) return ret;
             }
             goto lab29;
         lab31:
             z->c = c14;
-            if (!(z->B[1])) goto lab26; /* Boolean test is_verb, line 554 */
-            {   int c15 = z->c; /* try, line 554 */
-                {   int ret = r_Prefix_Step3_Verb(z); /* call Prefix_Step3_Verb, line 554 */
+            if (!(z->I[1])) goto lab26;
+            {   int c15 = z->c;
+                {   int ret = r_Prefix_Step3_Verb(z);
                     if (ret == 0) { z->c = c15; goto lab32; }
                     if (ret < 0) return ret;
                 }
             lab32:
                 ;
             }
-            {   int ret = r_Prefix_Step4_Verb(z); /* call Prefix_Step4_Verb, line 554 */
+            {   int ret = r_Prefix_Step4_Verb(z);
                 if (ret == 0) goto lab26;
                 if (ret < 0) return ret;
             }
@@ -1664,14 +1663,14 @@ extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */
     lab26:
         z->c = c11;
     }
-    /* do, line 559 */
-    {   int ret = r_Normalize_post(z); /* call Normalize_post, line 559 */
+    
+    {   int ret = r_Normalize_post(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-extern struct SN_env * arabic_UTF_8_create_env(void) { return SN_create_env(0, 0, 3); }
+extern struct SN_env * arabic_UTF_8_create_env(void) { return SN_create_env(0, 3); }
 
 extern void arabic_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_armenian.c b/src/backend/snowball/libstemmer/stem_UTF_8_armenian.c
new file mode 100644 (file)
index 0000000..009ddb5
--- /dev/null
@@ -0,0 +1,559 @@
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int armenian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_ending(struct SN_env * z);
+static int r_noun(struct SN_env * z);
+static int r_verb(struct SN_env * z);
+static int r_adjective(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * armenian_UTF_8_create_env(void);
+extern void armenian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[6] = { 0xD5, 0xA2, 0xD5, 0xA1, 0xD6, 0x80 };
+static const symbol s_0_1[8] = { 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA4 };
+static const symbol s_0_2[10] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA4 };
+static const symbol s_0_3[6] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xAB };
+static const symbol s_0_4[6] = { 0xD5, 0xA1, 0xD5, 0xAF, 0xD5, 0xAB };
+static const symbol s_0_5[8] = { 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA1, 0xD5, 0xAF };
+static const symbol s_0_6[4] = { 0xD5, 0xA5, 0xD5, 0xB2 };
+static const symbol s_0_7[8] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 };
+static const symbol s_0_8[8] = { 0xD5, 0xA1, 0xD6, 0x80, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_0_9[8] = { 0xD5, 0xA1, 0xD5, 0xAF, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_0_10[4] = { 0xD5, 0xA5, 0xD5, 0xB6 };
+static const symbol s_0_11[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA5, 0xD5, 0xB6 };
+static const symbol s_0_12[8] = { 0xD5, 0xA5, 0xD5, 0xAF, 0xD5, 0xA5, 0xD5, 0xB6 };
+static const symbol s_0_13[8] = { 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA7, 0xD5, 0xB6 };
+static const symbol s_0_14[4] = { 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_0_15[6] = { 0xD5, 0xA3, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_0_16[8] = { 0xD5, 0xB8, 0xD5, 0xBE, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_0_17[8] = { 0xD5, 0xAC, 0xD5, 0xA1, 0xD5, 0xB5, 0xD5, 0xB6 };
+static const symbol s_0_18[6] = { 0xD5, 0xBA, 0xD5, 0xA5, 0xD5, 0xBD };
+static const symbol s_0_19[4] = { 0xD5, 0xAB, 0xD5, 0xBE };
+static const symbol s_0_20[4] = { 0xD5, 0xA1, 0xD5, 0xBF };
+static const symbol s_0_21[8] = { 0xD5, 0xA1, 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xBF };
+static const symbol s_0_22[6] = { 0xD5, 0xAF, 0xD5, 0xB8, 0xD5, 0xBF };
+
+static const struct among a_0[23] =
+{
+{ 6, s_0_0, -1, 1, 0},
+{ 8, s_0_1, -1, 1, 0},
+{ 10, s_0_2, 1, 1, 0},
+{ 6, s_0_3, -1, 1, 0},
+{ 6, s_0_4, -1, 1, 0},
+{ 8, s_0_5, -1, 1, 0},
+{ 4, s_0_6, -1, 1, 0},
+{ 8, s_0_7, -1, 1, 0},
+{ 8, s_0_8, -1, 1, 0},
+{ 8, s_0_9, -1, 1, 0},
+{ 4, s_0_10, -1, 1, 0},
+{ 8, s_0_11, 10, 1, 0},
+{ 8, s_0_12, 10, 1, 0},
+{ 8, s_0_13, -1, 1, 0},
+{ 4, s_0_14, -1, 1, 0},
+{ 6, s_0_15, 14, 1, 0},
+{ 8, s_0_16, 14, 1, 0},
+{ 8, s_0_17, -1, 1, 0},
+{ 6, s_0_18, -1, 1, 0},
+{ 4, s_0_19, -1, 1, 0},
+{ 4, s_0_20, -1, 1, 0},
+{ 8, s_0_21, -1, 1, 0},
+{ 6, s_0_22, -1, 1, 0}
+};
+
+static const symbol s_1_0[4] = { 0xD5, 0xA1, 0xD6, 0x80 };
+static const symbol s_1_1[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x80 };
+static const symbol s_1_2[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x80 };
+static const symbol s_1_3[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x80 };
+static const symbol s_1_4[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x80 };
+static const symbol s_1_5[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x80 };
+static const symbol s_1_6[10] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x80 };
+static const symbol s_1_7[10] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82, 0xD6, 0x81 };
+static const symbol s_1_8[10] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82, 0xD6, 0x81 };
+static const symbol s_1_9[4] = { 0xD5, 0xA1, 0xD6, 0x81 };
+static const symbol s_1_10[4] = { 0xD5, 0xA5, 0xD6, 0x81 };
+static const symbol s_1_11[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xA5, 0xD6, 0x81 };
+static const symbol s_1_12[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82 };
+static const symbol s_1_13[8] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82 };
+static const symbol s_1_14[4] = { 0xD5, 0xA1, 0xD6, 0x84 };
+static const symbol s_1_15[6] = { 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x84 };
+static const symbol s_1_16[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x84 };
+static const symbol s_1_17[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_1_18[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_1_19[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_1_20[10] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_1_21[6] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_22[8] = { 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_23[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_24[12] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_25[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_26[10] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_27[12] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_28[2] = { 0xD5, 0xA1 };
+static const symbol s_1_29[6] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1 };
+static const symbol s_1_30[6] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xA1 };
+static const symbol s_1_31[4] = { 0xD5, 0xBE, 0xD5, 0xA5 };
+static const symbol s_1_32[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB };
+static const symbol s_1_33[6] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB };
+static const symbol s_1_34[6] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB };
+static const symbol s_1_35[8] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB };
+static const symbol s_1_36[4] = { 0xD5, 0xA1, 0xD5, 0xAC };
+static const symbol s_1_37[6] = { 0xD5, 0xA8, 0xD5, 0xA1, 0xD5, 0xAC };
+static const symbol s_1_38[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAC };
+static const symbol s_1_39[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAC };
+static const symbol s_1_40[8] = { 0xD5, 0xA5, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAC };
+static const symbol s_1_41[4] = { 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_42[6] = { 0xD5, 0xA8, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_43[6] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_44[8] = { 0xD6, 0x81, 0xD5, 0xB6, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_45[10] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xB6, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_46[6] = { 0xD5, 0xB9, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_47[6] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_48[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_49[10] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_50[6] = { 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_51[8] = { 0xD5, 0xA1, 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_52[8] = { 0xD5, 0xB8, 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_53[10] = { 0xD5, 0xAF, 0xD5, 0xB8, 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_54[6] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xAE };
+static const symbol s_1_55[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
+static const symbol s_1_56[8] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
+static const symbol s_1_57[4] = { 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_1_58[6] = { 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_1_59[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_1_60[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_1_61[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_1_62[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_1_63[10] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_1_64[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xAB, 0xD5, 0xBD };
+static const symbol s_1_65[8] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xAB, 0xD5, 0xBD };
+static const symbol s_1_66[4] = { 0xD5, 0xA1, 0xD5, 0xBE };
+static const symbol s_1_67[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xBE };
+static const symbol s_1_68[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xBE };
+static const symbol s_1_69[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xB8, 0xD5, 0xBE };
+static const symbol s_1_70[8] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xB8, 0xD5, 0xBE };
+
+static const struct among a_1[71] =
+{
+{ 4, s_1_0, -1, 1, 0},
+{ 8, s_1_1, 0, 1, 0},
+{ 8, s_1_2, 0, 1, 0},
+{ 10, s_1_3, -1, 1, 0},
+{ 8, s_1_4, -1, 1, 0},
+{ 8, s_1_5, -1, 1, 0},
+{ 10, s_1_6, 5, 1, 0},
+{ 10, s_1_7, -1, 1, 0},
+{ 10, s_1_8, -1, 1, 0},
+{ 4, s_1_9, -1, 1, 0},
+{ 4, s_1_10, -1, 1, 0},
+{ 10, s_1_11, 10, 1, 0},
+{ 8, s_1_12, -1, 1, 0},
+{ 8, s_1_13, -1, 1, 0},
+{ 4, s_1_14, -1, 1, 0},
+{ 6, s_1_15, 14, 1, 0},
+{ 8, s_1_16, 15, 1, 0},
+{ 10, s_1_17, -1, 1, 0},
+{ 8, s_1_18, -1, 1, 0},
+{ 8, s_1_19, -1, 1, 0},
+{ 10, s_1_20, 19, 1, 0},
+{ 6, s_1_21, -1, 1, 0},
+{ 8, s_1_22, 21, 1, 0},
+{ 10, s_1_23, 22, 1, 0},
+{ 12, s_1_24, -1, 1, 0},
+{ 10, s_1_25, -1, 1, 0},
+{ 10, s_1_26, -1, 1, 0},
+{ 12, s_1_27, 26, 1, 0},
+{ 2, s_1_28, -1, 1, 0},
+{ 6, s_1_29, 28, 1, 0},
+{ 6, s_1_30, 28, 1, 0},
+{ 4, s_1_31, -1, 1, 0},
+{ 8, s_1_32, -1, 1, 0},
+{ 6, s_1_33, -1, 1, 0},
+{ 6, s_1_34, -1, 1, 0},
+{ 8, s_1_35, 34, 1, 0},
+{ 4, s_1_36, -1, 1, 0},
+{ 6, s_1_37, 36, 1, 0},
+{ 10, s_1_38, 36, 1, 0},
+{ 8, s_1_39, 36, 1, 0},
+{ 8, s_1_40, 36, 1, 0},
+{ 4, s_1_41, -1, 1, 0},
+{ 6, s_1_42, 41, 1, 0},
+{ 6, s_1_43, 41, 1, 0},
+{ 8, s_1_44, 43, 1, 0},
+{ 10, s_1_45, 44, 1, 0},
+{ 6, s_1_46, 41, 1, 0},
+{ 6, s_1_47, 41, 1, 0},
+{ 10, s_1_48, 47, 1, 0},
+{ 10, s_1_49, 47, 1, 0},
+{ 6, s_1_50, 41, 1, 0},
+{ 8, s_1_51, 50, 1, 0},
+{ 8, s_1_52, 50, 1, 0},
+{ 10, s_1_53, 52, 1, 0},
+{ 6, s_1_54, -1, 1, 0},
+{ 6, s_1_55, -1, 1, 0},
+{ 8, s_1_56, 55, 1, 0},
+{ 4, s_1_57, -1, 1, 0},
+{ 6, s_1_58, 57, 1, 0},
+{ 8, s_1_59, 58, 1, 0},
+{ 10, s_1_60, -1, 1, 0},
+{ 8, s_1_61, -1, 1, 0},
+{ 8, s_1_62, -1, 1, 0},
+{ 10, s_1_63, 62, 1, 0},
+{ 8, s_1_64, -1, 1, 0},
+{ 8, s_1_65, -1, 1, 0},
+{ 4, s_1_66, -1, 1, 0},
+{ 8, s_1_67, 66, 1, 0},
+{ 8, s_1_68, 66, 1, 0},
+{ 8, s_1_69, -1, 1, 0},
+{ 8, s_1_70, -1, 1, 0}
+};
+
+static const symbol s_2_0[6] = { 0xD5, 0xA3, 0xD5, 0xA1, 0xD6, 0x80 };
+static const symbol s_2_1[6] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x80 };
+static const symbol s_2_2[8] = { 0xD5, 0xA1, 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x80 };
+static const symbol s_2_3[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x85, 0xD6, 0x81 };
+static const symbol s_2_4[4] = { 0xD5, 0xB8, 0xD6, 0x81 };
+static const symbol s_2_5[4] = { 0xD5, 0xB8, 0xD6, 0x82 };
+static const symbol s_2_6[2] = { 0xD6, 0x84 };
+static const symbol s_2_7[6] = { 0xD5, 0xA1, 0xD6, 0x80, 0xD6, 0x84 };
+static const symbol s_2_8[6] = { 0xD5, 0xB9, 0xD5, 0xA5, 0xD6, 0x84 };
+static const symbol s_2_9[4] = { 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_2_10[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_2_11[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_2_12[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xAE, 0xD6, 0x84 };
+static const symbol s_2_13[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB5, 0xD6, 0x84 };
+static const symbol s_2_14[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_2_15[10] = { 0xD5, 0xB4, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_2_16[6] = { 0xD5, 0xA5, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_2_17[6] = { 0xD5, 0xB8, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_2_18[6] = { 0xD5, 0xAB, 0xD5, 0xB9, 0xD6, 0x84 };
+static const symbol s_2_19[6] = { 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA4 };
+static const symbol s_2_20[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB5, 0xD5, 0xA9 };
+static const symbol s_2_21[4] = { 0xD6, 0x81, 0xD5, 0xAB };
+static const symbol s_2_22[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB0, 0xD5, 0xAB };
+static const symbol s_2_23[4] = { 0xD5, 0xAB, 0xD5, 0xAC };
+static const symbol s_2_24[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xAF };
+static const symbol s_2_25[4] = { 0xD5, 0xA1, 0xD5, 0xAF };
+static const symbol s_2_26[6] = { 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xAF };
+static const symbol s_2_27[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAF };
+static const symbol s_2_28[4] = { 0xD5, 0xAB, 0xD5, 0xAF };
+static const symbol s_2_29[8] = { 0xD5, 0xB5, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 };
+static const symbol s_2_30[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 };
+static const symbol s_2_31[4] = { 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_2_32[8] = { 0xD5, 0xA1, 0xD6, 0x80, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_2_33[6] = { 0xD5, 0xBA, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_2_34[8] = { 0xD5, 0xBD, 0xD5, 0xBF, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_2_35[8] = { 0xD5, 0xA5, 0xD5, 0xB2, 0xD5, 0xA7, 0xD5, 0xB6 };
+static const symbol s_2_36[6] = { 0xD5, 0xA1, 0xD5, 0xAE, 0xD5, 0xB8 };
+static const symbol s_2_37[4] = { 0xD5, 0xAB, 0xD5, 0xB9 };
+static const symbol s_2_38[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xBD };
+static const symbol s_2_39[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xBD, 0xD5, 0xBF };
+
+static const struct among a_2[40] =
+{
+{ 6, s_2_0, -1, 1, 0},
+{ 6, s_2_1, -1, 1, 0},
+{ 8, s_2_2, 1, 1, 0},
+{ 8, s_2_3, -1, 1, 0},
+{ 4, s_2_4, -1, 1, 0},
+{ 4, s_2_5, -1, 1, 0},
+{ 2, s_2_6, -1, 1, 0},
+{ 6, s_2_7, 6, 1, 0},
+{ 6, s_2_8, 6, 1, 0},
+{ 4, s_2_9, 6, 1, 0},
+{ 8, s_2_10, 9, 1, 0},
+{ 8, s_2_11, 9, 1, 0},
+{ 8, s_2_12, 6, 1, 0},
+{ 8, s_2_13, 6, 1, 0},
+{ 8, s_2_14, 6, 1, 0},
+{ 10, s_2_15, 14, 1, 0},
+{ 6, s_2_16, 6, 1, 0},
+{ 6, s_2_17, 6, 1, 0},
+{ 6, s_2_18, 6, 1, 0},
+{ 6, s_2_19, -1, 1, 0},
+{ 8, s_2_20, -1, 1, 0},
+{ 4, s_2_21, -1, 1, 0},
+{ 8, s_2_22, -1, 1, 0},
+{ 4, s_2_23, -1, 1, 0},
+{ 6, s_2_24, -1, 1, 0},
+{ 4, s_2_25, -1, 1, 0},
+{ 6, s_2_26, 25, 1, 0},
+{ 8, s_2_27, 25, 1, 0},
+{ 4, s_2_28, -1, 1, 0},
+{ 8, s_2_29, -1, 1, 0},
+{ 14, s_2_30, 29, 1, 0},
+{ 4, s_2_31, -1, 1, 0},
+{ 8, s_2_32, 31, 1, 0},
+{ 6, s_2_33, 31, 1, 0},
+{ 8, s_2_34, 31, 1, 0},
+{ 8, s_2_35, -1, 1, 0},
+{ 6, s_2_36, -1, 1, 0},
+{ 4, s_2_37, -1, 1, 0},
+{ 6, s_2_38, -1, 1, 0},
+{ 8, s_2_39, -1, 1, 0}
+};
+
+static const symbol s_3_0[4] = { 0xD5, 0xA5, 0xD6, 0x80 };
+static const symbol s_3_1[6] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80 };
+static const symbol s_3_2[2] = { 0xD6, 0x81 };
+static const symbol s_3_3[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD6, 0x81 };
+static const symbol s_3_4[4] = { 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_5[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_6[10] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_7[6] = { 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_8[10] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_9[8] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_10[6] = { 0xD5, 0xBE, 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_11[4] = { 0xD5, 0xB8, 0xD6, 0x81 };
+static const symbol s_3_12[4] = { 0xD5, 0xBD, 0xD5, 0xA1 };
+static const symbol s_3_13[4] = { 0xD5, 0xBE, 0xD5, 0xA1 };
+static const symbol s_3_14[6] = { 0xD5, 0xA1, 0xD5, 0xB4, 0xD5, 0xA2 };
+static const symbol s_3_15[2] = { 0xD5, 0xA4 };
+static const symbol s_3_16[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA4 };
+static const symbol s_3_17[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA4 };
+static const symbol s_3_18[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA4 };
+static const symbol s_3_19[6] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA4 };
+static const symbol s_3_20[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA4 };
+static const symbol s_3_21[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA4 };
+static const symbol s_3_22[6] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xA4 };
+static const symbol s_3_23[2] = { 0xD5, 0xA8 };
+static const symbol s_3_24[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA8 };
+static const symbol s_3_25[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA8 };
+static const symbol s_3_26[6] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA8 };
+static const symbol s_3_27[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA8 };
+static const symbol s_3_28[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA8 };
+static const symbol s_3_29[6] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xA8 };
+static const symbol s_3_30[2] = { 0xD5, 0xAB };
+static const symbol s_3_31[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB };
+static const symbol s_3_32[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB };
+static const symbol s_3_33[4] = { 0xD5, 0xBE, 0xD5, 0xAB };
+static const symbol s_3_34[10] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
+static const symbol s_3_35[12] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
+static const symbol s_3_36[10] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
+static const symbol s_3_37[2] = { 0xD5, 0xB6 };
+static const symbol s_3_38[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB6 };
+static const symbol s_3_39[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB6 };
+static const symbol s_3_40[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 };
+static const symbol s_3_41[4] = { 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_3_42[12] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_3_43[6] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_3_44[4] = { 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_3_45[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_3_46[10] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_3_47[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xB6 };
+static const symbol s_3_48[4] = { 0xD5, 0xB8, 0xD5, 0xBB };
+static const symbol s_3_49[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xBD };
+static const symbol s_3_50[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xBD };
+static const symbol s_3_51[6] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xBD };
+static const symbol s_3_52[4] = { 0xD5, 0xB8, 0xD5, 0xBE };
+static const symbol s_3_53[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD5, 0xBE };
+static const symbol s_3_54[10] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD5, 0xBE };
+static const symbol s_3_55[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xB8, 0xD5, 0xBE };
+static const symbol s_3_56[6] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD5, 0xBE };
+
+static const struct among a_3[57] =
+{
+{ 4, s_3_0, -1, 1, 0},
+{ 6, s_3_1, 0, 1, 0},
+{ 2, s_3_2, -1, 1, 0},
+{ 6, s_3_3, 2, 1, 0},
+{ 4, s_3_4, 2, 1, 0},
+{ 8, s_3_5, 4, 1, 0},
+{ 10, s_3_6, 5, 1, 0},
+{ 6, s_3_7, 4, 1, 0},
+{ 10, s_3_8, 4, 1, 0},
+{ 8, s_3_9, 4, 1, 0},
+{ 6, s_3_10, 4, 1, 0},
+{ 4, s_3_11, 2, 1, 0},
+{ 4, s_3_12, -1, 1, 0},
+{ 4, s_3_13, -1, 1, 0},
+{ 6, s_3_14, -1, 1, 0},
+{ 2, s_3_15, -1, 1, 0},
+{ 6, s_3_16, 15, 1, 0},
+{ 8, s_3_17, 16, 1, 0},
+{ 6, s_3_18, 15, 1, 0},
+{ 6, s_3_19, 15, 1, 0},
+{ 14, s_3_20, 19, 1, 0},
+{ 8, s_3_21, 19, 1, 0},
+{ 6, s_3_22, 15, 1, 0},
+{ 2, s_3_23, -1, 1, 0},
+{ 6, s_3_24, 23, 1, 0},
+{ 8, s_3_25, 24, 1, 0},
+{ 6, s_3_26, 23, 1, 0},
+{ 14, s_3_27, 26, 1, 0},
+{ 8, s_3_28, 26, 1, 0},
+{ 6, s_3_29, 23, 1, 0},
+{ 2, s_3_30, -1, 1, 0},
+{ 6, s_3_31, 30, 1, 0},
+{ 8, s_3_32, 31, 1, 0},
+{ 4, s_3_33, 30, 1, 0},
+{ 10, s_3_34, -1, 1, 0},
+{ 12, s_3_35, 34, 1, 0},
+{ 10, s_3_36, -1, 1, 0},
+{ 2, s_3_37, -1, 1, 0},
+{ 6, s_3_38, 37, 1, 0},
+{ 8, s_3_39, 38, 1, 0},
+{ 6, s_3_40, 37, 1, 0},
+{ 4, s_3_41, 37, 1, 0},
+{ 12, s_3_42, 41, 1, 0},
+{ 6, s_3_43, 41, 1, 0},
+{ 4, s_3_44, 37, 1, 0},
+{ 8, s_3_45, 44, 1, 0},
+{ 10, s_3_46, 45, 1, 0},
+{ 14, s_3_47, 37, 1, 0},
+{ 4, s_3_48, -1, 1, 0},
+{ 14, s_3_49, -1, 1, 0},
+{ 8, s_3_50, -1, 1, 0},
+{ 6, s_3_51, -1, 1, 0},
+{ 4, s_3_52, -1, 1, 0},
+{ 8, s_3_53, 52, 1, 0},
+{ 10, s_3_54, 53, 1, 0},
+{ 8, s_3_55, 52, 1, 0},
+{ 6, s_3_56, 52, 1, 0}
+};
+
+static const unsigned char g_v[] = { 209, 4, 128, 0, 18 };
+
+
+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;
+        }
+        z->I[0] = z->c;
+    lab0:
+        z->c = c1;
+    }
+    return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
+    return 1;
+}
+
+static int r_adjective(struct SN_env * z) {
+    z->ket = z->c;
+    if (!(find_among_b(z, a_0, 23))) return 0;
+    z->bra = z->c;
+    {   int ret = slice_del(z);
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_verb(struct SN_env * z) {
+    z->ket = z->c;
+    if (!(find_among_b(z, a_1, 71))) return 0;
+    z->bra = z->c;
+    {   int ret = slice_del(z);
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_noun(struct SN_env * z) {
+    z->ket = z->c;
+    if (!(find_among_b(z, a_2, 40))) return 0;
+    z->bra = z->c;
+    {   int ret = slice_del(z);
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_ending(struct SN_env * z) {
+    z->ket = z->c;
+    if (!(find_among_b(z, a_3, 57))) return 0;
+    z->bra = z->c;
+    {   int ret = r_R2(z);
+        if (ret <= 0) return ret;
+    }
+    {   int ret = slice_del(z);
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+extern int armenian_UTF_8_stem(struct SN_env * z) {
+    
+    {   int ret = r_mark_regions(z);
+        if (ret < 0) return ret;
+    }
+    z->lb = z->c; z->c = z->l;
+
+
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[1];
+        {   int m2 = z->l - z->c; (void)m2;
+            {   int ret = r_ending(z);
+                if (ret < 0) return ret;
+            }
+            z->c = z->l - m2;
+        }
+        {   int m3 = z->l - z->c; (void)m3;
+            {   int ret = r_verb(z);
+                if (ret < 0) return ret;
+            }
+            z->c = z->l - m3;
+        }
+        {   int m4 = z->l - z->c; (void)m4;
+            {   int ret = r_adjective(z);
+                if (ret < 0) return ret;
+            }
+            z->c = z->l - m4;
+        }
+        {   int m5 = z->l - z->c; (void)m5;
+            {   int ret = r_noun(z);
+                if (ret < 0) return ret;
+            }
+            z->c = z->l - m5;
+        }
+        z->lb = mlimit1;
+    }
+    z->c = z->lb;
+    return 1;
+}
+
+extern struct SN_env * armenian_UTF_8_create_env(void) { return SN_create_env(0, 2); }
+
+extern void armenian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
index f21f53165b8a1b9dba01eab7672a0c012da44096..d6beab6df92d0ce5bd01167549ce45fc2aceb4ac 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -140,115 +140,115 @@ static const symbol s_0_108[5] = { 'k', 'a', 'i', 't', 'z' };
 
 static const struct among a_0[109] =
 {
-/*  0 */ { 4, s_0_0, -1, 1, 0},
-/*  1 */ { 5, s_0_1, 0, 1, 0},
-/*  2 */ { 5, s_0_2, 0, 1, 0},
-/*  3 */ { 5, s_0_3, 0, 1, 0},
-/*  4 */ { 6, s_0_4, -1, 1, 0},
-/*  5 */ { 5, s_0_5, -1, 1, 0},
-/*  6 */ { 6, s_0_6, -1, 1, 0},
-/*  7 */ { 7, s_0_7, -1, 1, 0},
-/*  8 */ { 5, s_0_8, -1, 1, 0},
-/*  9 */ { 5, s_0_9, -1, 1, 0},
-/* 10 */ { 5, s_0_10, -1, 1, 0},
-/* 11 */ { 4, s_0_11, -1, 1, 0},
-/* 12 */ { 5, s_0_12, -1, 1, 0},
-/* 13 */ { 6, s_0_13, 12, 1, 0},
-/* 14 */ { 5, s_0_14, -1, 1, 0},
-/* 15 */ { 6, s_0_15, -1, 2, 0},
-/* 16 */ { 6, s_0_16, -1, 1, 0},
-/* 17 */ { 2, s_0_17, -1, 1, 0},
-/* 18 */ { 5, s_0_18, 17, 1, 0},
-/* 19 */ { 2, s_0_19, -1, 1, 0},
-/* 20 */ { 4, s_0_20, -1, 1, 0},
-/* 21 */ { 4, s_0_21, -1, 1, 0},
-/* 22 */ { 4, s_0_22, -1, 1, 0},
-/* 23 */ { 5, s_0_23, -1, 1, 0},
-/* 24 */ { 6, s_0_24, 23, 1, 0},
-/* 25 */ { 4, s_0_25, -1, 1, 0},
-/* 26 */ { 4, s_0_26, -1, 1, 0},
-/* 27 */ { 6, s_0_27, -1, 1, 0},
-/* 28 */ { 3, s_0_28, -1, 1, 0},
-/* 29 */ { 4, s_0_29, 28, 1, 0},
-/* 30 */ { 7, s_0_30, 29, 4, 0},
-/* 31 */ { 4, s_0_31, 28, 1, 0},
-/* 32 */ { 4, s_0_32, 28, 1, 0},
-/* 33 */ { 4, s_0_33, -1, 1, 0},
-/* 34 */ { 5, s_0_34, 33, 1, 0},
-/* 35 */ { 4, s_0_35, -1, 1, 0},
-/* 36 */ { 4, s_0_36, -1, 1, 0},
-/* 37 */ { 4, s_0_37, -1, 1, 0},
-/* 38 */ { 4, s_0_38, -1, 1, 0},
-/* 39 */ { 3, s_0_39, -1, 1, 0},
-/* 40 */ { 4, s_0_40, 39, 1, 0},
-/* 41 */ { 6, s_0_41, -1, 1, 0},
-/* 42 */ { 3, s_0_42, -1, 1, 0},
-/* 43 */ { 6, s_0_43, 42, 1, 0},
-/* 44 */ { 3, s_0_44, -1, 2, 0},
-/* 45 */ { 6, s_0_45, 44, 1, 0},
-/* 46 */ { 6, s_0_46, 44, 1, 0},
-/* 47 */ { 6, s_0_47, 44, 1, 0},
-/* 48 */ { 3, s_0_48, -1, 1, 0},
-/* 49 */ { 4, s_0_49, 48, 1, 0},
-/* 50 */ { 4, s_0_50, 48, 1, 0},
-/* 51 */ { 4, s_0_51, 48, 1, 0},
-/* 52 */ { 5, s_0_52, -1, 1, 0},
-/* 53 */ { 5, s_0_53, -1, 1, 0},
-/* 54 */ { 5, s_0_54, -1, 1, 0},
-/* 55 */ { 2, s_0_55, -1, 1, 0},
-/* 56 */ { 4, s_0_56, 55, 1, 0},
-/* 57 */ { 5, s_0_57, 55, 1, 0},
-/* 58 */ { 6, s_0_58, 55, 1, 0},
-/* 59 */ { 4, s_0_59, -1, 1, 0},
-/* 60 */ { 4, s_0_60, -1, 1, 0},
-/* 61 */ { 3, s_0_61, -1, 1, 0},
-/* 62 */ { 4, s_0_62, 61, 1, 0},
-/* 63 */ { 3, s_0_63, -1, 1, 0},
-/* 64 */ { 4, s_0_64, -1, 1, 0},
-/* 65 */ { 5, s_0_65, 64, 1, 0},
-/* 66 */ { 2, s_0_66, -1, 1, 0},
-/* 67 */ { 3, s_0_67, -1, 1, 0},
-/* 68 */ { 4, s_0_68, 67, 1, 0},
-/* 69 */ { 4, s_0_69, 67, 1, 0},
-/* 70 */ { 4, s_0_70, 67, 1, 0},
-/* 71 */ { 5, s_0_71, 70, 1, 0},
-/* 72 */ { 5, s_0_72, -1, 2, 0},
-/* 73 */ { 5, s_0_73, -1, 1, 0},
-/* 74 */ { 5, s_0_74, -1, 1, 0},
-/* 75 */ { 6, s_0_75, 74, 1, 0},
-/* 76 */ { 2, s_0_76, -1, 1, 0},
-/* 77 */ { 3, s_0_77, 76, 1, 0},
-/* 78 */ { 4, s_0_78, 77, 1, 0},
-/* 79 */ { 3, s_0_79, 76, 1, 0},
-/* 80 */ { 4, s_0_80, 76, 1, 0},
-/* 81 */ { 7, s_0_81, -1, 3, 0},
-/* 82 */ { 3, s_0_82, -1, 1, 0},
-/* 83 */ { 3, s_0_83, -1, 1, 0},
-/* 84 */ { 3, s_0_84, -1, 1, 0},
-/* 85 */ { 5, s_0_85, 84, 1, 0},
-/* 86 */ { 4, s_0_86, -1, 1, 0},
-/* 87 */ { 5, s_0_87, 86, 1, 0},
-/* 88 */ { 3, s_0_88, -1, 1, 0},
-/* 89 */ { 5, s_0_89, -1, 1, 0},
-/* 90 */ { 2, s_0_90, -1, 1, 0},
-/* 91 */ { 3, s_0_91, 90, 1, 0},
-/* 92 */ { 3, s_0_92, -1, 1, 0},
-/* 93 */ { 4, s_0_93, -1, 1, 0},
-/* 94 */ { 2, s_0_94, -1, 1, 0},
-/* 95 */ { 3, s_0_95, 94, 1, 0},
-/* 96 */ { 4, s_0_96, -1, 1, 0},
-/* 97 */ { 2, s_0_97, -1, 1, 0},
-/* 98 */ { 5, s_0_98, -1, 1, 0},
-/* 99 */ { 2, s_0_99, -1, 1, 0},
-/*100 */ { 3, s_0_100, 99, 1, 0},
-/*101 */ { 6, s_0_101, 100, 1, 0},
-/*102 */ { 4, s_0_102, 100, 1, 0},
-/*103 */ { 6, s_0_103, 99, 5, 0},
-/*104 */ { 2, s_0_104, -1, 1, 0},
-/*105 */ { 5, s_0_105, 104, 1, 0},
-/*106 */ { 4, s_0_106, 104, 1, 0},
-/*107 */ { 5, s_0_107, -1, 1, 0},
-/*108 */ { 5, s_0_108, -1, 1, 0}
+{ 4, s_0_0, -1, 1, 0},
+{ 5, s_0_1, 0, 1, 0},
+{ 5, s_0_2, 0, 1, 0},
+{ 5, s_0_3, 0, 1, 0},
+{ 6, s_0_4, -1, 1, 0},
+{ 5, s_0_5, -1, 1, 0},
+{ 6, s_0_6, -1, 1, 0},
+{ 7, s_0_7, -1, 1, 0},
+{ 5, s_0_8, -1, 1, 0},
+{ 5, s_0_9, -1, 1, 0},
+{ 5, s_0_10, -1, 1, 0},
+{ 4, s_0_11, -1, 1, 0},
+{ 5, s_0_12, -1, 1, 0},
+{ 6, s_0_13, 12, 1, 0},
+{ 5, s_0_14, -1, 1, 0},
+{ 6, s_0_15, -1, 2, 0},
+{ 6, s_0_16, -1, 1, 0},
+{ 2, s_0_17, -1, 1, 0},
+{ 5, s_0_18, 17, 1, 0},
+{ 2, s_0_19, -1, 1, 0},
+{ 4, s_0_20, -1, 1, 0},
+{ 4, s_0_21, -1, 1, 0},
+{ 4, s_0_22, -1, 1, 0},
+{ 5, s_0_23, -1, 1, 0},
+{ 6, s_0_24, 23, 1, 0},
+{ 4, s_0_25, -1, 1, 0},
+{ 4, s_0_26, -1, 1, 0},
+{ 6, s_0_27, -1, 1, 0},
+{ 3, s_0_28, -1, 1, 0},
+{ 4, s_0_29, 28, 1, 0},
+{ 7, s_0_30, 29, 4, 0},
+{ 4, s_0_31, 28, 1, 0},
+{ 4, s_0_32, 28, 1, 0},
+{ 4, s_0_33, -1, 1, 0},
+{ 5, s_0_34, 33, 1, 0},
+{ 4, s_0_35, -1, 1, 0},
+{ 4, s_0_36, -1, 1, 0},
+{ 4, s_0_37, -1, 1, 0},
+{ 4, s_0_38, -1, 1, 0},
+{ 3, s_0_39, -1, 1, 0},
+{ 4, s_0_40, 39, 1, 0},
+{ 6, s_0_41, -1, 1, 0},
+{ 3, s_0_42, -1, 1, 0},
+{ 6, s_0_43, 42, 1, 0},
+{ 3, s_0_44, -1, 2, 0},
+{ 6, s_0_45, 44, 1, 0},
+{ 6, s_0_46, 44, 1, 0},
+{ 6, s_0_47, 44, 1, 0},
+{ 3, s_0_48, -1, 1, 0},
+{ 4, s_0_49, 48, 1, 0},
+{ 4, s_0_50, 48, 1, 0},
+{ 4, s_0_51, 48, 1, 0},
+{ 5, s_0_52, -1, 1, 0},
+{ 5, s_0_53, -1, 1, 0},
+{ 5, s_0_54, -1, 1, 0},
+{ 2, s_0_55, -1, 1, 0},
+{ 4, s_0_56, 55, 1, 0},
+{ 5, s_0_57, 55, 1, 0},
+{ 6, s_0_58, 55, 1, 0},
+{ 4, s_0_59, -1, 1, 0},
+{ 4, s_0_60, -1, 1, 0},
+{ 3, s_0_61, -1, 1, 0},
+{ 4, s_0_62, 61, 1, 0},
+{ 3, s_0_63, -1, 1, 0},
+{ 4, s_0_64, -1, 1, 0},
+{ 5, s_0_65, 64, 1, 0},
+{ 2, s_0_66, -1, 1, 0},
+{ 3, s_0_67, -1, 1, 0},
+{ 4, s_0_68, 67, 1, 0},
+{ 4, s_0_69, 67, 1, 0},
+{ 4, s_0_70, 67, 1, 0},
+{ 5, s_0_71, 70, 1, 0},
+{ 5, s_0_72, -1, 2, 0},
+{ 5, s_0_73, -1, 1, 0},
+{ 5, s_0_74, -1, 1, 0},
+{ 6, s_0_75, 74, 1, 0},
+{ 2, s_0_76, -1, 1, 0},
+{ 3, s_0_77, 76, 1, 0},
+{ 4, s_0_78, 77, 1, 0},
+{ 3, s_0_79, 76, 1, 0},
+{ 4, s_0_80, 76, 1, 0},
+{ 7, s_0_81, -1, 3, 0},
+{ 3, s_0_82, -1, 1, 0},
+{ 3, s_0_83, -1, 1, 0},
+{ 3, s_0_84, -1, 1, 0},
+{ 5, s_0_85, 84, 1, 0},
+{ 4, s_0_86, -1, 1, 0},
+{ 5, s_0_87, 86, 1, 0},
+{ 3, s_0_88, -1, 1, 0},
+{ 5, s_0_89, -1, 1, 0},
+{ 2, s_0_90, -1, 1, 0},
+{ 3, s_0_91, 90, 1, 0},
+{ 3, s_0_92, -1, 1, 0},
+{ 4, s_0_93, -1, 1, 0},
+{ 2, s_0_94, -1, 1, 0},
+{ 3, s_0_95, 94, 1, 0},
+{ 4, s_0_96, -1, 1, 0},
+{ 2, s_0_97, -1, 1, 0},
+{ 5, s_0_98, -1, 1, 0},
+{ 2, s_0_99, -1, 1, 0},
+{ 3, s_0_100, 99, 1, 0},
+{ 6, s_0_101, 100, 1, 0},
+{ 4, s_0_102, 100, 1, 0},
+{ 6, s_0_103, 99, 5, 0},
+{ 2, s_0_104, -1, 1, 0},
+{ 5, s_0_105, 104, 1, 0},
+{ 4, s_0_106, 104, 1, 0},
+{ 5, s_0_107, -1, 1, 0},
+{ 5, s_0_108, -1, 1, 0}
 };
 
 static const symbol s_1_0[3] = { 'a', 'd', 'a' };
@@ -549,301 +549,301 @@ static const symbol s_1_294[5] = { 'k', 'o', 'i', 't', 'z' };
 
 static const struct among a_1[295] =
 {
-/*  0 */ { 3, s_1_0, -1, 1, 0},
-/*  1 */ { 4, s_1_1, 0, 1, 0},
-/*  2 */ { 4, s_1_2, -1, 1, 0},
-/*  3 */ { 5, s_1_3, -1, 1, 0},
-/*  4 */ { 5, s_1_4, -1, 1, 0},
-/*  5 */ { 5, s_1_5, -1, 1, 0},
-/*  6 */ { 5, s_1_6, -1, 1, 0},
-/*  7 */ { 6, s_1_7, 6, 1, 0},
-/*  8 */ { 6, s_1_8, 6, 1, 0},
-/*  9 */ { 5, s_1_9, -1, 1, 0},
-/* 10 */ { 5, s_1_10, -1, 1, 0},
-/* 11 */ { 6, s_1_11, 10, 1, 0},
-/* 12 */ { 5, s_1_12, -1, 1, 0},
-/* 13 */ { 4, s_1_13, -1, 1, 0},
-/* 14 */ { 5, s_1_14, -1, 1, 0},
-/* 15 */ { 3, s_1_15, -1, 1, 0},
-/* 16 */ { 4, s_1_16, 15, 1, 0},
-/* 17 */ { 6, s_1_17, 15, 1, 0},
-/* 18 */ { 4, s_1_18, 15, 1, 0},
-/* 19 */ { 5, s_1_19, 18, 1, 0},
-/* 20 */ { 3, s_1_20, -1, 1, 0},
-/* 21 */ { 6, s_1_21, -1, 1, 0},
-/* 22 */ { 3, s_1_22, -1, 1, 0},
-/* 23 */ { 5, s_1_23, 22, 1, 0},
-/* 24 */ { 5, s_1_24, 22, 1, 0},
-/* 25 */ { 5, s_1_25, 22, 1, 0},
-/* 26 */ { 5, s_1_26, -1, 1, 0},
-/* 27 */ { 2, s_1_27, -1, 1, 0},
-/* 28 */ { 4, s_1_28, 27, 1, 0},
-/* 29 */ { 4, s_1_29, -1, 1, 0},
-/* 30 */ { 5, s_1_30, -1, 1, 0},
-/* 31 */ { 6, s_1_31, 30, 1, 0},
-/* 32 */ { 6, s_1_32, -1, 1, 0},
-/* 33 */ { 6, s_1_33, -1, 1, 0},
-/* 34 */ { 4, s_1_34, -1, 1, 0},
-/* 35 */ { 4, s_1_35, -1, 1, 0},
-/* 36 */ { 5, s_1_36, 35, 1, 0},
-/* 37 */ { 5, s_1_37, 35, 1, 0},
-/* 38 */ { 5, s_1_38, -1, 1, 0},
-/* 39 */ { 4, s_1_39, -1, 1, 0},
-/* 40 */ { 3, s_1_40, -1, 1, 0},
-/* 41 */ { 5, s_1_41, 40, 1, 0},
-/* 42 */ { 3, s_1_42, -1, 1, 0},
-/* 43 */ { 4, s_1_43, 42, 1, 0},
-/* 44 */ { 4, s_1_44, -1, 1, 0},
-/* 45 */ { 5, s_1_45, 44, 1, 0},
-/* 46 */ { 5, s_1_46, 44, 1, 0},
-/* 47 */ { 5, s_1_47, 44, 1, 0},
-/* 48 */ { 4, s_1_48, -1, 1, 0},
-/* 49 */ { 5, s_1_49, 48, 1, 0},
-/* 50 */ { 5, s_1_50, 48, 1, 0},
-/* 51 */ { 6, s_1_51, -1, 2, 0},
-/* 52 */ { 6, s_1_52, -1, 1, 0},
-/* 53 */ { 6, s_1_53, -1, 1, 0},
-/* 54 */ { 5, s_1_54, -1, 1, 0},
-/* 55 */ { 4, s_1_55, -1, 1, 0},
-/* 56 */ { 3, s_1_56, -1, 1, 0},
-/* 57 */ { 4, s_1_57, -1, 1, 0},
-/* 58 */ { 5, s_1_58, -1, 1, 0},
-/* 59 */ { 6, s_1_59, -1, 1, 0},
-/* 60 */ { 2, s_1_60, -1, 1, 0},
-/* 61 */ { 4, s_1_61, 60, 3, 0},
-/* 62 */ { 5, s_1_62, 60, 10, 0},
-/* 63 */ { 3, s_1_63, 60, 1, 0},
-/* 64 */ { 3, s_1_64, 60, 1, 0},
-/* 65 */ { 3, s_1_65, 60, 1, 0},
-/* 66 */ { 6, s_1_66, -1, 1, 0},
-/* 67 */ { 4, s_1_67, -1, 1, 0},
-/* 68 */ { 5, s_1_68, -1, 1, 0},
-/* 69 */ { 5, s_1_69, -1, 1, 0},
-/* 70 */ { 4, s_1_70, -1, 1, 0},
-/* 71 */ { 3, s_1_71, -1, 1, 0},
-/* 72 */ { 2, s_1_72, -1, 1, 0},
-/* 73 */ { 4, s_1_73, 72, 1, 0},
-/* 74 */ { 3, s_1_74, 72, 1, 0},
-/* 75 */ { 7, s_1_75, 74, 1, 0},
-/* 76 */ { 7, s_1_76, 74, 1, 0},
-/* 77 */ { 6, s_1_77, 74, 1, 0},
-/* 78 */ { 5, s_1_78, 72, 1, 0},
-/* 79 */ { 6, s_1_79, 78, 1, 0},
-/* 80 */ { 4, s_1_80, 72, 1, 0},
-/* 81 */ { 4, s_1_81, 72, 1, 0},
-/* 82 */ { 5, s_1_82, 72, 1, 0},
-/* 83 */ { 3, s_1_83, 72, 1, 0},
-/* 84 */ { 4, s_1_84, 83, 1, 0},
-/* 85 */ { 5, s_1_85, 83, 1, 0},
-/* 86 */ { 6, s_1_86, 85, 1, 0},
-/* 87 */ { 5, s_1_87, -1, 1, 0},
-/* 88 */ { 6, s_1_88, 87, 1, 0},
-/* 89 */ { 4, s_1_89, -1, 1, 0},
-/* 90 */ { 4, s_1_90, -1, 1, 0},
-/* 91 */ { 3, s_1_91, -1, 1, 0},
-/* 92 */ { 5, s_1_92, 91, 1, 0},
-/* 93 */ { 4, s_1_93, 91, 1, 0},
-/* 94 */ { 3, s_1_94, -1, 1, 0},
-/* 95 */ { 5, s_1_95, 94, 1, 0},
-/* 96 */ { 4, s_1_96, -1, 1, 0},
-/* 97 */ { 5, s_1_97, 96, 1, 0},
-/* 98 */ { 5, s_1_98, 96, 1, 0},
-/* 99 */ { 4, s_1_99, -1, 1, 0},
-/*100 */ { 4, s_1_100, -1, 1, 0},
-/*101 */ { 4, s_1_101, -1, 1, 0},
-/*102 */ { 3, s_1_102, -1, 1, 0},
-/*103 */ { 4, s_1_103, 102, 1, 0},
-/*104 */ { 4, s_1_104, 102, 1, 0},
-/*105 */ { 4, s_1_105, -1, 1, 0},
-/*106 */ { 4, s_1_106, -1, 1, 0},
-/*107 */ { 4, s_1_107, -1, 1, 0},
-/*108 */ { 2, s_1_108, -1, 1, 0},
-/*109 */ { 3, s_1_109, 108, 1, 0},
-/*110 */ { 4, s_1_110, 109, 1, 0},
-/*111 */ { 5, s_1_111, 109, 1, 0},
-/*112 */ { 5, s_1_112, 109, 1, 0},
-/*113 */ { 4, s_1_113, 109, 1, 0},
-/*114 */ { 5, s_1_114, 113, 1, 0},
-/*115 */ { 5, s_1_115, 109, 1, 0},
-/*116 */ { 4, s_1_116, 108, 1, 0},
-/*117 */ { 4, s_1_117, 108, 1, 0},
-/*118 */ { 4, s_1_118, 108, 1, 0},
-/*119 */ { 3, s_1_119, 108, 2, 0},
-/*120 */ { 6, s_1_120, 108, 1, 0},
-/*121 */ { 5, s_1_121, 108, 1, 0},
-/*122 */ { 3, s_1_122, 108, 1, 0},
-/*123 */ { 2, s_1_123, -1, 1, 0},
-/*124 */ { 3, s_1_124, 123, 1, 0},
-/*125 */ { 2, s_1_125, -1, 1, 0},
-/*126 */ { 3, s_1_126, 125, 1, 0},
-/*127 */ { 4, s_1_127, 126, 1, 0},
-/*128 */ { 3, s_1_128, 125, 1, 0},
-/*129 */ { 3, s_1_129, -1, 1, 0},
-/*130 */ { 6, s_1_130, 129, 1, 0},
-/*131 */ { 5, s_1_131, 129, 1, 0},
-/*132 */ { 5, s_1_132, -1, 1, 0},
-/*133 */ { 5, s_1_133, -1, 1, 0},
-/*134 */ { 5, s_1_134, -1, 1, 0},
-/*135 */ { 4, s_1_135, -1, 1, 0},
-/*136 */ { 3, s_1_136, -1, 1, 0},
-/*137 */ { 6, s_1_137, 136, 1, 0},
-/*138 */ { 5, s_1_138, 136, 1, 0},
-/*139 */ { 4, s_1_139, -1, 1, 0},
-/*140 */ { 3, s_1_140, -1, 1, 0},
-/*141 */ { 4, s_1_141, 140, 1, 0},
-/*142 */ { 2, s_1_142, -1, 1, 0},
-/*143 */ { 3, s_1_143, 142, 1, 0},
-/*144 */ { 5, s_1_144, 142, 1, 0},
-/*145 */ { 3, s_1_145, 142, 2, 0},
-/*146 */ { 6, s_1_146, 145, 1, 0},
-/*147 */ { 5, s_1_147, 145, 1, 0},
-/*148 */ { 6, s_1_148, 145, 1, 0},
-/*149 */ { 6, s_1_149, 145, 1, 0},
-/*150 */ { 6, s_1_150, 145, 1, 0},
-/*151 */ { 4, s_1_151, -1, 1, 0},
-/*152 */ { 4, s_1_152, -1, 1, 0},
-/*153 */ { 4, s_1_153, -1, 1, 0},
-/*154 */ { 4, s_1_154, -1, 1, 0},
-/*155 */ { 5, s_1_155, 154, 1, 0},
-/*156 */ { 5, s_1_156, 154, 1, 0},
-/*157 */ { 4, s_1_157, -1, 1, 0},
-/*158 */ { 2, s_1_158, -1, 1, 0},
-/*159 */ { 4, s_1_159, -1, 1, 0},
-/*160 */ { 5, s_1_160, 159, 1, 0},
-/*161 */ { 4, s_1_161, -1, 1, 0},
-/*162 */ { 3, s_1_162, -1, 1, 0},
-/*163 */ { 4, s_1_163, -1, 1, 0},
-/*164 */ { 2, s_1_164, -1, 1, 0},
-/*165 */ { 5, s_1_165, 164, 1, 0},
-/*166 */ { 3, s_1_166, 164, 1, 0},
-/*167 */ { 4, s_1_167, 166, 1, 0},
-/*168 */ { 2, s_1_168, -1, 1, 0},
-/*169 */ { 5, s_1_169, -1, 1, 0},
-/*170 */ { 2, s_1_170, -1, 1, 0},
-/*171 */ { 4, s_1_171, 170, 1, 0},
-/*172 */ { 4, s_1_172, 170, 1, 0},
-/*173 */ { 4, s_1_173, 170, 1, 0},
-/*174 */ { 4, s_1_174, -1, 1, 0},
-/*175 */ { 3, s_1_175, -1, 1, 0},
-/*176 */ { 2, s_1_176, -1, 1, 0},
-/*177 */ { 4, s_1_177, 176, 1, 0},
-/*178 */ { 5, s_1_178, 177, 1, 0},
-/*179 */ { 5, s_1_179, 176, 8, 0},
-/*180 */ { 5, s_1_180, 176, 1, 0},
-/*181 */ { 5, s_1_181, 176, 1, 0},
-/*182 */ { 3, s_1_182, -1, 1, 0},
-/*183 */ { 3, s_1_183, -1, 1, 0},
-/*184 */ { 4, s_1_184, 183, 1, 0},
-/*185 */ { 4, s_1_185, 183, 1, 0},
-/*186 */ { 4, s_1_186, -1, 1, 0},
-/*187 */ { 3, s_1_187, -1, 1, 0},
-/*188 */ { 2, s_1_188, -1, 1, 0},
-/*189 */ { 4, s_1_189, 188, 1, 0},
-/*190 */ { 2, s_1_190, -1, 1, 0},
-/*191 */ { 3, s_1_191, 190, 1, 0},
-/*192 */ { 3, s_1_192, 190, 1, 0},
-/*193 */ { 3, s_1_193, -1, 1, 0},
-/*194 */ { 4, s_1_194, 193, 1, 0},
-/*195 */ { 4, s_1_195, 193, 1, 0},
-/*196 */ { 4, s_1_196, 193, 1, 0},
-/*197 */ { 5, s_1_197, -1, 2, 0},
-/*198 */ { 5, s_1_198, -1, 1, 0},
-/*199 */ { 5, s_1_199, -1, 1, 0},
-/*200 */ { 4, s_1_200, -1, 1, 0},
-/*201 */ { 3, s_1_201, -1, 1, 0},
-/*202 */ { 2, s_1_202, -1, 1, 0},
-/*203 */ { 5, s_1_203, -1, 1, 0},
-/*204 */ { 3, s_1_204, -1, 1, 0},
-/*205 */ { 2, s_1_205, -1, 1, 0},
-/*206 */ { 2, s_1_206, -1, 1, 0},
-/*207 */ { 5, s_1_207, -1, 1, 0},
-/*208 */ { 5, s_1_208, -1, 1, 0},
-/*209 */ { 3, s_1_209, -1, 1, 0},
-/*210 */ { 4, s_1_210, 209, 1, 0},
-/*211 */ { 3, s_1_211, -1, 1, 0},
-/*212 */ { 3, s_1_212, -1, 1, 0},
-/*213 */ { 4, s_1_213, 212, 1, 0},
-/*214 */ { 2, s_1_214, -1, 4, 0},
-/*215 */ { 3, s_1_215, 214, 2, 0},
-/*216 */ { 6, s_1_216, 215, 1, 0},
-/*217 */ { 6, s_1_217, 215, 1, 0},
-/*218 */ { 5, s_1_218, 215, 1, 0},
-/*219 */ { 3, s_1_219, 214, 4, 0},
-/*220 */ { 4, s_1_220, 214, 4, 0},
-/*221 */ { 4, s_1_221, -1, 1, 0},
-/*222 */ { 5, s_1_222, 221, 1, 0},
-/*223 */ { 3, s_1_223, -1, 1, 0},
-/*224 */ { 3, s_1_224, -1, 1, 0},
-/*225 */ { 3, s_1_225, -1, 1, 0},
-/*226 */ { 4, s_1_226, -1, 1, 0},
-/*227 */ { 5, s_1_227, 226, 1, 0},
-/*228 */ { 5, s_1_228, -1, 1, 0},
-/*229 */ { 4, s_1_229, -1, 1, 0},
-/*230 */ { 5, s_1_230, 229, 1, 0},
-/*231 */ { 2, s_1_231, -1, 1, 0},
-/*232 */ { 3, s_1_232, 231, 1, 0},
-/*233 */ { 3, s_1_233, -1, 1, 0},
-/*234 */ { 2, s_1_234, -1, 1, 0},
-/*235 */ { 5, s_1_235, 234, 5, 0},
-/*236 */ { 4, s_1_236, 234, 1, 0},
-/*237 */ { 5, s_1_237, 236, 1, 0},
-/*238 */ { 3, s_1_238, 234, 1, 0},
-/*239 */ { 6, s_1_239, 234, 1, 0},
-/*240 */ { 3, s_1_240, 234, 1, 0},
-/*241 */ { 4, s_1_241, 234, 1, 0},
-/*242 */ { 8, s_1_242, 241, 6, 0},
-/*243 */ { 3, s_1_243, 234, 1, 0},
-/*244 */ { 2, s_1_244, -1, 1, 0},
-/*245 */ { 4, s_1_245, 244, 1, 0},
-/*246 */ { 2, s_1_246, -1, 1, 0},
-/*247 */ { 3, s_1_247, 246, 1, 0},
-/*248 */ { 5, s_1_248, 247, 9, 0},
-/*249 */ { 4, s_1_249, 247, 1, 0},
-/*250 */ { 4, s_1_250, 247, 1, 0},
-/*251 */ { 3, s_1_251, 246, 1, 0},
-/*252 */ { 4, s_1_252, 246, 1, 0},
-/*253 */ { 3, s_1_253, 246, 1, 0},
-/*254 */ { 3, s_1_254, -1, 1, 0},
-/*255 */ { 2, s_1_255, -1, 1, 0},
-/*256 */ { 3, s_1_256, 255, 1, 0},
-/*257 */ { 3, s_1_257, 255, 1, 0},
-/*258 */ { 3, s_1_258, -1, 1, 0},
-/*259 */ { 3, s_1_259, -1, 1, 0},
-/*260 */ { 6, s_1_260, 259, 1, 0},
-/*261 */ { 3, s_1_261, -1, 1, 0},
-/*262 */ { 2, s_1_262, -1, 1, 0},
-/*263 */ { 2, s_1_263, -1, 1, 0},
-/*264 */ { 3, s_1_264, 263, 1, 0},
-/*265 */ { 5, s_1_265, 263, 1, 0},
-/*266 */ { 5, s_1_266, 263, 7, 0},
-/*267 */ { 4, s_1_267, 263, 1, 0},
-/*268 */ { 4, s_1_268, 263, 1, 0},
-/*269 */ { 3, s_1_269, 263, 1, 0},
-/*270 */ { 4, s_1_270, 263, 1, 0},
-/*271 */ { 2, s_1_271, -1, 2, 0},
-/*272 */ { 3, s_1_272, 271, 1, 0},
-/*273 */ { 2, s_1_273, -1, 1, 0},
-/*274 */ { 3, s_1_274, -1, 1, 0},
-/*275 */ { 2, s_1_275, -1, 1, 0},
-/*276 */ { 5, s_1_276, 275, 1, 0},
-/*277 */ { 4, s_1_277, 275, 1, 0},
-/*278 */ { 4, s_1_278, -1, 1, 0},
-/*279 */ { 4, s_1_279, -1, 2, 0},
-/*280 */ { 4, s_1_280, -1, 1, 0},
-/*281 */ { 3, s_1_281, -1, 1, 0},
-/*282 */ { 2, s_1_282, -1, 1, 0},
-/*283 */ { 4, s_1_283, 282, 4, 0},
-/*284 */ { 5, s_1_284, 282, 1, 0},
-/*285 */ { 4, s_1_285, 282, 1, 0},
-/*286 */ { 3, s_1_286, -1, 1, 0},
-/*287 */ { 2, s_1_287, -1, 1, 0},
-/*288 */ { 3, s_1_288, 287, 1, 0},
-/*289 */ { 6, s_1_289, 288, 1, 0},
-/*290 */ { 1, s_1_290, -1, 1, 0},
-/*291 */ { 2, s_1_291, 290, 1, 0},
-/*292 */ { 4, s_1_292, 290, 1, 0},
-/*293 */ { 2, s_1_293, 290, 1, 0},
-/*294 */ { 5, s_1_294, 293, 1, 0}
+{ 3, s_1_0, -1, 1, 0},
+{ 4, s_1_1, 0, 1, 0},
+{ 4, s_1_2, -1, 1, 0},
+{ 5, s_1_3, -1, 1, 0},
+{ 5, s_1_4, -1, 1, 0},
+{ 5, s_1_5, -1, 1, 0},
+{ 5, s_1_6, -1, 1, 0},
+{ 6, s_1_7, 6, 1, 0},
+{ 6, s_1_8, 6, 1, 0},
+{ 5, s_1_9, -1, 1, 0},
+{ 5, s_1_10, -1, 1, 0},
+{ 6, s_1_11, 10, 1, 0},
+{ 5, s_1_12, -1, 1, 0},
+{ 4, s_1_13, -1, 1, 0},
+{ 5, s_1_14, -1, 1, 0},
+{ 3, s_1_15, -1, 1, 0},
+{ 4, s_1_16, 15, 1, 0},
+{ 6, s_1_17, 15, 1, 0},
+{ 4, s_1_18, 15, 1, 0},
+{ 5, s_1_19, 18, 1, 0},
+{ 3, s_1_20, -1, 1, 0},
+{ 6, s_1_21, -1, 1, 0},
+{ 3, s_1_22, -1, 1, 0},
+{ 5, s_1_23, 22, 1, 0},
+{ 5, s_1_24, 22, 1, 0},
+{ 5, s_1_25, 22, 1, 0},
+{ 5, s_1_26, -1, 1, 0},
+{ 2, s_1_27, -1, 1, 0},
+{ 4, s_1_28, 27, 1, 0},
+{ 4, s_1_29, -1, 1, 0},
+{ 5, s_1_30, -1, 1, 0},
+{ 6, s_1_31, 30, 1, 0},
+{ 6, s_1_32, -1, 1, 0},
+{ 6, s_1_33, -1, 1, 0},
+{ 4, s_1_34, -1, 1, 0},
+{ 4, s_1_35, -1, 1, 0},
+{ 5, s_1_36, 35, 1, 0},
+{ 5, s_1_37, 35, 1, 0},
+{ 5, s_1_38, -1, 1, 0},
+{ 4, s_1_39, -1, 1, 0},
+{ 3, s_1_40, -1, 1, 0},
+{ 5, s_1_41, 40, 1, 0},
+{ 3, s_1_42, -1, 1, 0},
+{ 4, s_1_43, 42, 1, 0},
+{ 4, s_1_44, -1, 1, 0},
+{ 5, s_1_45, 44, 1, 0},
+{ 5, s_1_46, 44, 1, 0},
+{ 5, s_1_47, 44, 1, 0},
+{ 4, s_1_48, -1, 1, 0},
+{ 5, s_1_49, 48, 1, 0},
+{ 5, s_1_50, 48, 1, 0},
+{ 6, s_1_51, -1, 2, 0},
+{ 6, s_1_52, -1, 1, 0},
+{ 6, s_1_53, -1, 1, 0},
+{ 5, s_1_54, -1, 1, 0},
+{ 4, s_1_55, -1, 1, 0},
+{ 3, s_1_56, -1, 1, 0},
+{ 4, s_1_57, -1, 1, 0},
+{ 5, s_1_58, -1, 1, 0},
+{ 6, s_1_59, -1, 1, 0},
+{ 2, s_1_60, -1, 1, 0},
+{ 4, s_1_61, 60, 3, 0},
+{ 5, s_1_62, 60, 10, 0},
+{ 3, s_1_63, 60, 1, 0},
+{ 3, s_1_64, 60, 1, 0},
+{ 3, s_1_65, 60, 1, 0},
+{ 6, s_1_66, -1, 1, 0},
+{ 4, s_1_67, -1, 1, 0},
+{ 5, s_1_68, -1, 1, 0},
+{ 5, s_1_69, -1, 1, 0},
+{ 4, s_1_70, -1, 1, 0},
+{ 3, s_1_71, -1, 1, 0},
+{ 2, s_1_72, -1, 1, 0},
+{ 4, s_1_73, 72, 1, 0},
+{ 3, s_1_74, 72, 1, 0},
+{ 7, s_1_75, 74, 1, 0},
+{ 7, s_1_76, 74, 1, 0},
+{ 6, s_1_77, 74, 1, 0},
+{ 5, s_1_78, 72, 1, 0},
+{ 6, s_1_79, 78, 1, 0},
+{ 4, s_1_80, 72, 1, 0},
+{ 4, s_1_81, 72, 1, 0},
+{ 5, s_1_82, 72, 1, 0},
+{ 3, s_1_83, 72, 1, 0},
+{ 4, s_1_84, 83, 1, 0},
+{ 5, s_1_85, 83, 1, 0},
+{ 6, s_1_86, 85, 1, 0},
+{ 5, s_1_87, -1, 1, 0},
+{ 6, s_1_88, 87, 1, 0},
+{ 4, s_1_89, -1, 1, 0},
+{ 4, s_1_90, -1, 1, 0},
+{ 3, s_1_91, -1, 1, 0},
+{ 5, s_1_92, 91, 1, 0},
+{ 4, s_1_93, 91, 1, 0},
+{ 3, s_1_94, -1, 1, 0},
+{ 5, s_1_95, 94, 1, 0},
+{ 4, s_1_96, -1, 1, 0},
+{ 5, s_1_97, 96, 1, 0},
+{ 5, s_1_98, 96, 1, 0},
+{ 4, s_1_99, -1, 1, 0},
+{ 4, s_1_100, -1, 1, 0},
+{ 4, s_1_101, -1, 1, 0},
+{ 3, s_1_102, -1, 1, 0},
+{ 4, s_1_103, 102, 1, 0},
+{ 4, s_1_104, 102, 1, 0},
+{ 4, s_1_105, -1, 1, 0},
+{ 4, s_1_106, -1, 1, 0},
+{ 4, s_1_107, -1, 1, 0},
+{ 2, s_1_108, -1, 1, 0},
+{ 3, s_1_109, 108, 1, 0},
+{ 4, s_1_110, 109, 1, 0},
+{ 5, s_1_111, 109, 1, 0},
+{ 5, s_1_112, 109, 1, 0},
+{ 4, s_1_113, 109, 1, 0},
+{ 5, s_1_114, 113, 1, 0},
+{ 5, s_1_115, 109, 1, 0},
+{ 4, s_1_116, 108, 1, 0},
+{ 4, s_1_117, 108, 1, 0},
+{ 4, s_1_118, 108, 1, 0},
+{ 3, s_1_119, 108, 2, 0},
+{ 6, s_1_120, 108, 1, 0},
+{ 5, s_1_121, 108, 1, 0},
+{ 3, s_1_122, 108, 1, 0},
+{ 2, s_1_123, -1, 1, 0},
+{ 3, s_1_124, 123, 1, 0},
+{ 2, s_1_125, -1, 1, 0},
+{ 3, s_1_126, 125, 1, 0},
+{ 4, s_1_127, 126, 1, 0},
+{ 3, s_1_128, 125, 1, 0},
+{ 3, s_1_129, -1, 1, 0},
+{ 6, s_1_130, 129, 1, 0},
+{ 5, s_1_131, 129, 1, 0},
+{ 5, s_1_132, -1, 1, 0},
+{ 5, s_1_133, -1, 1, 0},
+{ 5, s_1_134, -1, 1, 0},
+{ 4, s_1_135, -1, 1, 0},
+{ 3, s_1_136, -1, 1, 0},
+{ 6, s_1_137, 136, 1, 0},
+{ 5, s_1_138, 136, 1, 0},
+{ 4, s_1_139, -1, 1, 0},
+{ 3, s_1_140, -1, 1, 0},
+{ 4, s_1_141, 140, 1, 0},
+{ 2, s_1_142, -1, 1, 0},
+{ 3, s_1_143, 142, 1, 0},
+{ 5, s_1_144, 142, 1, 0},
+{ 3, s_1_145, 142, 2, 0},
+{ 6, s_1_146, 145, 1, 0},
+{ 5, s_1_147, 145, 1, 0},
+{ 6, s_1_148, 145, 1, 0},
+{ 6, s_1_149, 145, 1, 0},
+{ 6, s_1_150, 145, 1, 0},
+{ 4, s_1_151, -1, 1, 0},
+{ 4, s_1_152, -1, 1, 0},
+{ 4, s_1_153, -1, 1, 0},
+{ 4, s_1_154, -1, 1, 0},
+{ 5, s_1_155, 154, 1, 0},
+{ 5, s_1_156, 154, 1, 0},
+{ 4, s_1_157, -1, 1, 0},
+{ 2, s_1_158, -1, 1, 0},
+{ 4, s_1_159, -1, 1, 0},
+{ 5, s_1_160, 159, 1, 0},
+{ 4, s_1_161, -1, 1, 0},
+{ 3, s_1_162, -1, 1, 0},
+{ 4, s_1_163, -1, 1, 0},
+{ 2, s_1_164, -1, 1, 0},
+{ 5, s_1_165, 164, 1, 0},
+{ 3, s_1_166, 164, 1, 0},
+{ 4, s_1_167, 166, 1, 0},
+{ 2, s_1_168, -1, 1, 0},
+{ 5, s_1_169, -1, 1, 0},
+{ 2, s_1_170, -1, 1, 0},
+{ 4, s_1_171, 170, 1, 0},
+{ 4, s_1_172, 170, 1, 0},
+{ 4, s_1_173, 170, 1, 0},
+{ 4, s_1_174, -1, 1, 0},
+{ 3, s_1_175, -1, 1, 0},
+{ 2, s_1_176, -1, 1, 0},
+{ 4, s_1_177, 176, 1, 0},
+{ 5, s_1_178, 177, 1, 0},
+{ 5, s_1_179, 176, 8, 0},
+{ 5, s_1_180, 176, 1, 0},
+{ 5, s_1_181, 176, 1, 0},
+{ 3, s_1_182, -1, 1, 0},
+{ 3, s_1_183, -1, 1, 0},
+{ 4, s_1_184, 183, 1, 0},
+{ 4, s_1_185, 183, 1, 0},
+{ 4, s_1_186, -1, 1, 0},
+{ 3, s_1_187, -1, 1, 0},
+{ 2, s_1_188, -1, 1, 0},
+{ 4, s_1_189, 188, 1, 0},
+{ 2, s_1_190, -1, 1, 0},
+{ 3, s_1_191, 190, 1, 0},
+{ 3, s_1_192, 190, 1, 0},
+{ 3, s_1_193, -1, 1, 0},
+{ 4, s_1_194, 193, 1, 0},
+{ 4, s_1_195, 193, 1, 0},
+{ 4, s_1_196, 193, 1, 0},
+{ 5, s_1_197, -1, 2, 0},
+{ 5, s_1_198, -1, 1, 0},
+{ 5, s_1_199, -1, 1, 0},
+{ 4, s_1_200, -1, 1, 0},
+{ 3, s_1_201, -1, 1, 0},
+{ 2, s_1_202, -1, 1, 0},
+{ 5, s_1_203, -1, 1, 0},
+{ 3, s_1_204, -1, 1, 0},
+{ 2, s_1_205, -1, 1, 0},
+{ 2, s_1_206, -1, 1, 0},
+{ 5, s_1_207, -1, 1, 0},
+{ 5, s_1_208, -1, 1, 0},
+{ 3, s_1_209, -1, 1, 0},
+{ 4, s_1_210, 209, 1, 0},
+{ 3, s_1_211, -1, 1, 0},
+{ 3, s_1_212, -1, 1, 0},
+{ 4, s_1_213, 212, 1, 0},
+{ 2, s_1_214, -1, 4, 0},
+{ 3, s_1_215, 214, 2, 0},
+{ 6, s_1_216, 215, 1, 0},
+{ 6, s_1_217, 215, 1, 0},
+{ 5, s_1_218, 215, 1, 0},
+{ 3, s_1_219, 214, 4, 0},
+{ 4, s_1_220, 214, 4, 0},
+{ 4, s_1_221, -1, 1, 0},
+{ 5, s_1_222, 221, 1, 0},
+{ 3, s_1_223, -1, 1, 0},
+{ 3, s_1_224, -1, 1, 0},
+{ 3, s_1_225, -1, 1, 0},
+{ 4, s_1_226, -1, 1, 0},
+{ 5, s_1_227, 226, 1, 0},
+{ 5, s_1_228, -1, 1, 0},
+{ 4, s_1_229, -1, 1, 0},
+{ 5, s_1_230, 229, 1, 0},
+{ 2, s_1_231, -1, 1, 0},
+{ 3, s_1_232, 231, 1, 0},
+{ 3, s_1_233, -1, 1, 0},
+{ 2, s_1_234, -1, 1, 0},
+{ 5, s_1_235, 234, 5, 0},
+{ 4, s_1_236, 234, 1, 0},
+{ 5, s_1_237, 236, 1, 0},
+{ 3, s_1_238, 234, 1, 0},
+{ 6, s_1_239, 234, 1, 0},
+{ 3, s_1_240, 234, 1, 0},
+{ 4, s_1_241, 234, 1, 0},
+{ 8, s_1_242, 241, 6, 0},
+{ 3, s_1_243, 234, 1, 0},
+{ 2, s_1_244, -1, 1, 0},
+{ 4, s_1_245, 244, 1, 0},
+{ 2, s_1_246, -1, 1, 0},
+{ 3, s_1_247, 246, 1, 0},
+{ 5, s_1_248, 247, 9, 0},
+{ 4, s_1_249, 247, 1, 0},
+{ 4, s_1_250, 247, 1, 0},
+{ 3, s_1_251, 246, 1, 0},
+{ 4, s_1_252, 246, 1, 0},
+{ 3, s_1_253, 246, 1, 0},
+{ 3, s_1_254, -1, 1, 0},
+{ 2, s_1_255, -1, 1, 0},
+{ 3, s_1_256, 255, 1, 0},
+{ 3, s_1_257, 255, 1, 0},
+{ 3, s_1_258, -1, 1, 0},
+{ 3, s_1_259, -1, 1, 0},
+{ 6, s_1_260, 259, 1, 0},
+{ 3, s_1_261, -1, 1, 0},
+{ 2, s_1_262, -1, 1, 0},
+{ 2, s_1_263, -1, 1, 0},
+{ 3, s_1_264, 263, 1, 0},
+{ 5, s_1_265, 263, 1, 0},
+{ 5, s_1_266, 263, 7, 0},
+{ 4, s_1_267, 263, 1, 0},
+{ 4, s_1_268, 263, 1, 0},
+{ 3, s_1_269, 263, 1, 0},
+{ 4, s_1_270, 263, 1, 0},
+{ 2, s_1_271, -1, 2, 0},
+{ 3, s_1_272, 271, 1, 0},
+{ 2, s_1_273, -1, 1, 0},
+{ 3, s_1_274, -1, 1, 0},
+{ 2, s_1_275, -1, 1, 0},
+{ 5, s_1_276, 275, 1, 0},
+{ 4, s_1_277, 275, 1, 0},
+{ 4, s_1_278, -1, 1, 0},
+{ 4, s_1_279, -1, 2, 0},
+{ 4, s_1_280, -1, 1, 0},
+{ 3, s_1_281, -1, 1, 0},
+{ 2, s_1_282, -1, 1, 0},
+{ 4, s_1_283, 282, 4, 0},
+{ 5, s_1_284, 282, 1, 0},
+{ 4, s_1_285, 282, 1, 0},
+{ 3, s_1_286, -1, 1, 0},
+{ 2, s_1_287, -1, 1, 0},
+{ 3, s_1_288, 287, 1, 0},
+{ 6, s_1_289, 288, 1, 0},
+{ 1, s_1_290, -1, 1, 0},
+{ 2, s_1_291, 290, 1, 0},
+{ 4, s_1_292, 290, 1, 0},
+{ 2, s_1_293, 290, 1, 0},
+{ 5, s_1_294, 293, 1, 0}
 };
 
 static const symbol s_2_0[4] = { 'z', 'l', 'e', 'a' };
@@ -868,25 +868,25 @@ static const symbol s_2_18[2] = { 't', 'o' };
 
 static const struct among a_2[19] =
 {
-/*  0 */ { 4, s_2_0, -1, 2, 0},
-/*  1 */ { 5, s_2_1, -1, 1, 0},
-/*  2 */ { 2, s_2_2, -1, 1, 0},
-/*  3 */ { 3, s_2_3, -1, 1, 0},
-/*  4 */ { 4, s_2_4, -1, 1, 0},
-/*  5 */ { 4, s_2_5, -1, 1, 0},
-/*  6 */ { 4, s_2_6, -1, 1, 0},
-/*  7 */ { 4, s_2_7, -1, 1, 0},
-/*  8 */ { 2, s_2_8, -1, 1, 0},
-/*  9 */ { 2, s_2_9, -1, 1, 0},
-/* 10 */ { 2, s_2_10, -1, 1, 0},
-/* 11 */ { 5, s_2_11, 10, 1, 0},
-/* 12 */ { 3, s_2_12, 10, 1, 0},
-/* 13 */ { 5, s_2_13, 12, 1, 0},
-/* 14 */ { 4, s_2_14, 10, 1, 0},
-/* 15 */ { 2, s_2_15, -1, 1, 0},
-/* 16 */ { 2, s_2_16, -1, 1, 0},
-/* 17 */ { 3, s_2_17, 16, 1, 0},
-/* 18 */ { 2, s_2_18, -1, 1, 0}
+{ 4, s_2_0, -1, 2, 0},
+{ 5, s_2_1, -1, 1, 0},
+{ 2, s_2_2, -1, 1, 0},
+{ 3, s_2_3, -1, 1, 0},
+{ 4, 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},
+{ 2, s_2_8, -1, 1, 0},
+{ 2, s_2_9, -1, 1, 0},
+{ 2, s_2_10, -1, 1, 0},
+{ 5, s_2_11, 10, 1, 0},
+{ 3, s_2_12, 10, 1, 0},
+{ 5, s_2_13, 12, 1, 0},
+{ 4, s_2_14, 10, 1, 0},
+{ 2, s_2_15, -1, 1, 0},
+{ 2, s_2_16, -1, 1, 0},
+{ 3, s_2_17, 16, 1, 0},
+{ 2, s_2_18, -1, 1, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16 };
@@ -903,16 +903,16 @@ static const symbol s_8[] = { 'i', 'g', 'a', 'r', 'o' };
 static const symbol s_9[] = { 'a', 'u', 'r', 'k', 'a' };
 static const symbol s_10[] = { 'z' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $pV = <integer expression>, line 25 */
-    z->I[1] = z->l; /* $p1 = <integer expression>, line 26 */
-    z->I[2] = z->l; /* $p2 = <integer expression>, line 27 */
-    {   int c1 = z->c; /* do, line 29 */
-        {   int c2 = z->c; /* or, line 31 */
-            if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab2; /* grouping v, line 30 */
-            {   int c3 = z->c; /* or, line 30 */
-                if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab4; /* non v, line 30 */
-                {    /* gopast */ /* grouping v, line 30 */
+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_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;
@@ -920,8 +920,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
                 goto lab3;
             lab4:
                 z->c = c3;
-                if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab2; /* grouping v, line 30 */
-                {    /* gopast */ /* non v, line 30 */
+                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;
@@ -931,10 +931,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
             goto lab1;
         lab2:
             z->c = c2;
-            if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab0; /* non v, line 32 */
-            {   int c4 = z->c; /* or, line 32 */
-                if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab6; /* non v, line 32 */
-                {    /* gopast */ /* grouping v, line 32 */
+            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;
@@ -942,100 +942,100 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
                 goto lab5;
             lab6:
                 z->c = c4;
-                if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab0; /* grouping v, line 32 */
-                {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+                if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab0;
+                {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                     if (ret < 0) goto lab0;
-                    z->c = ret; /* next, line 32 */
+                    z->c = ret;
                 }
             }
         lab5:
             ;
         }
     lab1:
-        z->I[0] = z->c; /* setmark pV, line 33 */
+        z->I[2] = z->c;
     lab0:
         z->c = c1;
     }
-    {   int c5 = z->c; /* do, line 35 */
-        {    /* gopast */ /* grouping v, line 36 */
+    {   int c5 = z->c;
+        {   
             int ret = out_grouping_U(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 36 */
+        {   
             int ret = in_grouping_U(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p1, line 36 */
-        {    /* gopast */ /* grouping v, line 37 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping_U(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 37 */
+        {   
             int ret = in_grouping_U(z, g_v, 97, 117, 1);
             if (ret < 0) goto lab7;
             z->c += ret;
         }
-        z->I[2] = z->c; /* setmark p2, line 37 */
+        z->I[0] = z->c;
     lab7:
         z->c = c5;
     }
     return 1;
 }
 
-static int r_RV(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 43 */
+static int r_RV(struct SN_env * z) {
+    if (!(z->I[2] <= z->c)) return 0;
     return 1;
 }
 
-static int r_R2(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 44 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 45 */
+static int r_R1(struct SN_env * z) {
+    if (!(z->I[1] <= z->c)) return 0;
     return 1;
 }
 
-static int r_aditzak(struct SN_env * z) { /* backwardmode */
+static int r_aditzak(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 48 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((70566434 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 48 */
+    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;
-    z->bra = z->c; /* ], line 48 */
-    switch (among_var) { /* among, line 48 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_RV(z); /* call RV, line 59 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 59 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 61 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 61 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 7, s_0); /* <-, line 63 */
+            {   int ret = slice_from_s(z, 7, s_0);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = slice_from_s(z, 7, s_1); /* <-, line 65 */
+            {   int ret = slice_from_s(z, 7, s_1);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_from_s(z, 6, s_2); /* <-, line 67 */
+            {   int ret = slice_from_s(z, 6, s_2);
                 if (ret < 0) return ret;
             }
             break;
@@ -1043,70 +1043,70 @@ static int r_aditzak(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_izenak(struct SN_env * z) { /* backwardmode */
+static int r_izenak(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 73 */
-    if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((71162402 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 73 */
+    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;
-    z->bra = z->c; /* ], line 73 */
-    switch (among_var) { /* among, line 73 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_RV(z); /* call RV, line 103 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 103 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 105 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 105 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 3, s_3); /* <-, line 107 */
+            {   int ret = slice_from_s(z, 3, s_3);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = r_R1(z); /* call R1, line 109 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 109 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_from_s(z, 3, s_4); /* <-, line 111 */
+            {   int ret = slice_from_s(z, 3, s_4);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = slice_from_s(z, 6, s_5); /* <-, line 113 */
+            {   int ret = slice_from_s(z, 6, s_5);
                 if (ret < 0) return ret;
             }
             break;
         case 7:
-            {   int ret = slice_from_s(z, 5, s_6); /* <-, line 115 */
+            {   int ret = slice_from_s(z, 5, s_6);
                 if (ret < 0) return ret;
             }
             break;
         case 8:
-            {   int ret = slice_from_s(z, 5, s_7); /* <-, line 117 */
+            {   int ret = slice_from_s(z, 5, s_7);
                 if (ret < 0) return ret;
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 5, s_8); /* <-, line 119 */
+            {   int ret = slice_from_s(z, 5, s_8);
                 if (ret < 0) return ret;
             }
             break;
         case 10:
-            {   int ret = slice_from_s(z, 5, s_9); /* <-, line 121 */
+            {   int ret = slice_from_s(z, 5, s_9);
                 if (ret < 0) return ret;
             }
             break;
@@ -1114,24 +1114,24 @@ static int r_izenak(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_adjetiboak(struct SN_env * z) { /* backwardmode */
+static int r_adjetiboak(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 126 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((35362 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 126 */
+    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;
-    z->bra = z->c; /* ], line 126 */
-    switch (among_var) { /* among, line 126 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_RV(z); /* call RV, line 129 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 129 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 1, s_10); /* <-, line 131 */
+            {   int ret = slice_from_s(z, 1, s_10);
                 if (ret < 0) return ret;
             }
             break;
@@ -1139,17 +1139,16 @@ static int r_adjetiboak(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int basque_UTF_8_stem(struct SN_env * z) { /* forwardmode */
-    /* do, line 138 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 138 */
+extern int basque_UTF_8_stem(struct SN_env * z) {
+    
+    {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 139 */
+    z->lb = z->c; z->c = z->l;
 
-/* repeat, line 140 */
-
-    while(1) {        int m1 = z->l - z->c; (void)m1;
-        {   int ret = r_aditzak(z); /* call aditzak, line 140 */
+    while(1) {
+        int m1 = z->l - z->c; (void)m1;
+        {   int ret = r_aditzak(z);
             if (ret == 0) goto lab0;
             if (ret < 0) return ret;
         }
@@ -1158,10 +1157,9 @@ extern int basque_UTF_8_stem(struct SN_env * z) { /* forwardmode */
         z->c = z->l - m1;
         break;
     }
-/* repeat, line 141 */
-
-    while(1) {        int m2 = z->l - z->c; (void)m2;
-        {   int ret = r_izenak(z); /* call izenak, line 141 */
+    while(1) {
+        int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_izenak(z);
             if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
@@ -1170,8 +1168,8 @@ extern int basque_UTF_8_stem(struct SN_env * z) { /* forwardmode */
         z->c = z->l - m2;
         break;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 142 */
-        {   int ret = r_adjetiboak(z); /* call adjetiboak, line 142 */
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_adjetiboak(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m3;
@@ -1180,7 +1178,7 @@ extern int basque_UTF_8_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * basque_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
+extern struct SN_env * basque_UTF_8_create_env(void) { return SN_create_env(0, 3); }
 
 extern void basque_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 23cf4e534bd1c3fbbbfbabcb30a618cf81651aa0..f92579f37b9a9e0aa1c16d37939d754507293587 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -44,19 +44,19 @@ static const symbol s_0_12[2] = { 0xC3, 0xBC };
 
 static const struct among a_0[13] =
 {
-/*  0 */ { 0, 0, -1, 7, 0},
-/*  1 */ { 2, s_0_1, 0, 6, 0},
-/*  2 */ { 2, s_0_2, 0, 1, 0},
-/*  3 */ { 2, s_0_3, 0, 1, 0},
-/*  4 */ { 2, s_0_4, 0, 2, 0},
-/*  5 */ { 2, s_0_5, 0, 2, 0},
-/*  6 */ { 2, s_0_6, 0, 3, 0},
-/*  7 */ { 2, s_0_7, 0, 3, 0},
-/*  8 */ { 2, s_0_8, 0, 3, 0},
-/*  9 */ { 2, s_0_9, 0, 4, 0},
-/* 10 */ { 2, s_0_10, 0, 4, 0},
-/* 11 */ { 2, s_0_11, 0, 5, 0},
-/* 12 */ { 2, s_0_12, 0, 5, 0}
+{ 0, 0, -1, 7, 0},
+{ 2, s_0_1, 0, 6, 0},
+{ 2, s_0_2, 0, 1, 0},
+{ 2, s_0_3, 0, 1, 0},
+{ 2, s_0_4, 0, 2, 0},
+{ 2, s_0_5, 0, 2, 0},
+{ 2, s_0_6, 0, 3, 0},
+{ 2, s_0_7, 0, 3, 0},
+{ 2, s_0_8, 0, 3, 0},
+{ 2, s_0_9, 0, 4, 0},
+{ 2, s_0_10, 0, 4, 0},
+{ 2, s_0_11, 0, 5, 0},
+{ 2, s_0_12, 0, 5, 0}
 };
 
 static const symbol s_1_0[2] = { 'l', 'a' };
@@ -101,45 +101,45 @@ static const symbol s_1_38[2] = { '\'', 't' };
 
 static const struct among a_1[39] =
 {
-/*  0 */ { 2, s_1_0, -1, 1, 0},
-/*  1 */ { 3, s_1_1, 0, 1, 0},
-/*  2 */ { 4, s_1_2, 0, 1, 0},
-/*  3 */ { 2, s_1_3, -1, 1, 0},
-/*  4 */ { 2, s_1_4, -1, 1, 0},
-/*  5 */ { 3, s_1_5, 4, 1, 0},
-/*  6 */ { 2, s_1_6, -1, 1, 0},
-/*  7 */ { 3, s_1_7, -1, 1, 0},
-/*  8 */ { 2, s_1_8, -1, 1, 0},
-/*  9 */ { 3, s_1_9, 8, 1, 0},
-/* 10 */ { 2, s_1_10, -1, 1, 0},
-/* 11 */ { 3, s_1_11, 10, 1, 0},
-/* 12 */ { 2, s_1_12, -1, 1, 0},
-/* 13 */ { 2, s_1_13, -1, 1, 0},
-/* 14 */ { 2, s_1_14, -1, 1, 0},
-/* 15 */ { 2, s_1_15, -1, 1, 0},
-/* 16 */ { 2, s_1_16, -1, 1, 0},
-/* 17 */ { 2, s_1_17, -1, 1, 0},
-/* 18 */ { 3, s_1_18, 17, 1, 0},
-/* 19 */ { 2, s_1_19, -1, 1, 0},
-/* 20 */ { 4, s_1_20, 19, 1, 0},
-/* 21 */ { 2, s_1_21, -1, 1, 0},
-/* 22 */ { 3, s_1_22, -1, 1, 0},
-/* 23 */ { 5, s_1_23, 22, 1, 0},
-/* 24 */ { 3, s_1_24, -1, 1, 0},
-/* 25 */ { 4, s_1_25, 24, 1, 0},
-/* 26 */ { 3, s_1_26, -1, 1, 0},
-/* 27 */ { 3, s_1_27, -1, 1, 0},
-/* 28 */ { 3, s_1_28, -1, 1, 0},
-/* 29 */ { 3, s_1_29, -1, 1, 0},
-/* 30 */ { 3, s_1_30, -1, 1, 0},
-/* 31 */ { 3, s_1_31, -1, 1, 0},
-/* 32 */ { 5, s_1_32, 31, 1, 0},
-/* 33 */ { 3, s_1_33, -1, 1, 0},
-/* 34 */ { 4, s_1_34, 33, 1, 0},
-/* 35 */ { 3, s_1_35, -1, 1, 0},
-/* 36 */ { 2, s_1_36, -1, 1, 0},
-/* 37 */ { 3, s_1_37, 36, 1, 0},
-/* 38 */ { 2, s_1_38, -1, 1, 0}
+{ 2, s_1_0, -1, 1, 0},
+{ 3, s_1_1, 0, 1, 0},
+{ 4, s_1_2, 0, 1, 0},
+{ 2, s_1_3, -1, 1, 0},
+{ 2, s_1_4, -1, 1, 0},
+{ 3, s_1_5, 4, 1, 0},
+{ 2, s_1_6, -1, 1, 0},
+{ 3, s_1_7, -1, 1, 0},
+{ 2, s_1_8, -1, 1, 0},
+{ 3, s_1_9, 8, 1, 0},
+{ 2, s_1_10, -1, 1, 0},
+{ 3, s_1_11, 10, 1, 0},
+{ 2, s_1_12, -1, 1, 0},
+{ 2, s_1_13, -1, 1, 0},
+{ 2, s_1_14, -1, 1, 0},
+{ 2, s_1_15, -1, 1, 0},
+{ 2, s_1_16, -1, 1, 0},
+{ 2, s_1_17, -1, 1, 0},
+{ 3, s_1_18, 17, 1, 0},
+{ 2, s_1_19, -1, 1, 0},
+{ 4, s_1_20, 19, 1, 0},
+{ 2, s_1_21, -1, 1, 0},
+{ 3, s_1_22, -1, 1, 0},
+{ 5, s_1_23, 22, 1, 0},
+{ 3, s_1_24, -1, 1, 0},
+{ 4, s_1_25, 24, 1, 0},
+{ 3, s_1_26, -1, 1, 0},
+{ 3, s_1_27, -1, 1, 0},
+{ 3, s_1_28, -1, 1, 0},
+{ 3, s_1_29, -1, 1, 0},
+{ 3, s_1_30, -1, 1, 0},
+{ 3, s_1_31, -1, 1, 0},
+{ 5, s_1_32, 31, 1, 0},
+{ 3, s_1_33, -1, 1, 0},
+{ 4, s_1_34, 33, 1, 0},
+{ 3, s_1_35, -1, 1, 0},
+{ 2, s_1_36, -1, 1, 0},
+{ 3, s_1_37, 36, 1, 0},
+{ 2, s_1_38, -1, 1, 0}
 };
 
 static const symbol s_2_0[3] = { 'i', 'c', 'a' };
@@ -345,206 +345,206 @@ static const symbol s_2_199[5] = { 'a', 'c', 'i', 0xC3, 0xB3 };
 
 static const struct among a_2[200] =
 {
-/*  0 */ { 3, s_2_0, -1, 4, 0},
-/*  1 */ { 7, s_2_1, 0, 3, 0},
-/*  2 */ { 4, s_2_2, -1, 1, 0},
-/*  3 */ { 3, s_2_3, -1, 2, 0},
-/*  4 */ { 5, s_2_4, -1, 1, 0},
-/*  5 */ { 5, s_2_5, -1, 1, 0},
-/*  6 */ { 6, s_2_6, -1, 1, 0},
-/*  7 */ { 5, s_2_7, -1, 1, 0},
-/*  8 */ { 5, s_2_8, -1, 3, 0},
-/*  9 */ { 4, s_2_9, -1, 1, 0},
-/* 10 */ { 6, s_2_10, 9, 1, 0},
-/* 11 */ { 4, s_2_11, -1, 1, 0},
-/* 12 */ { 5, s_2_12, -1, 1, 0},
-/* 13 */ { 7, s_2_13, -1, 1, 0},
-/* 14 */ { 4, s_2_14, -1, 1, 0},
-/* 15 */ { 4, s_2_15, -1, 1, 0},
-/* 16 */ { 6, s_2_16, -1, 1, 0},
-/* 17 */ { 3, s_2_17, -1, 1, 0},
-/* 18 */ { 7, s_2_18, 17, 1, 0},
-/* 19 */ { 9, s_2_19, 18, 5, 0},
-/* 20 */ { 3, s_2_20, -1, 1, 0},
-/* 21 */ { 3, s_2_21, -1, 1, 0},
-/* 22 */ { 3, s_2_22, -1, 1, 0},
-/* 23 */ { 5, s_2_23, 22, 1, 0},
-/* 24 */ { 3, s_2_24, -1, 1, 0},
-/* 25 */ { 4, s_2_25, 24, 1, 0},
-/* 26 */ { 5, s_2_26, 25, 1, 0},
-/* 27 */ { 5, s_2_27, -1, 1, 0},
-/* 28 */ { 3, s_2_28, -1, 1, 0},
-/* 29 */ { 3, s_2_29, -1, 1, 0},
-/* 30 */ { 4, s_2_30, -1, 1, 0},
-/* 31 */ { 4, s_2_31, -1, 1, 0},
-/* 32 */ { 4, s_2_32, -1, 1, 0},
-/* 33 */ { 3, s_2_33, -1, 1, 0},
-/* 34 */ { 3, s_2_34, -1, 1, 0},
-/* 35 */ { 3, s_2_35, -1, 1, 0},
-/* 36 */ { 4, s_2_36, -1, 1, 0},
-/* 37 */ { 7, s_2_37, 36, 1, 0},
-/* 38 */ { 7, s_2_38, 36, 1, 0},
-/* 39 */ { 3, s_2_39, -1, 1, 0},
-/* 40 */ { 5, s_2_40, 39, 1, 0},
-/* 41 */ { 4, s_2_41, -1, 1, 0},
-/* 42 */ { 6, s_2_42, -1, 3, 0},
-/* 43 */ { 2, s_2_43, -1, 4, 0},
-/* 44 */ { 6, s_2_44, 43, 1, 0},
-/* 45 */ { 3, s_2_45, -1, 1, 0},
-/* 46 */ { 3, s_2_46, -1, 1, 0},
-/* 47 */ { 2, s_2_47, -1, 1, 0},
-/* 48 */ { 4, s_2_48, -1, 1, 0},
-/* 49 */ { 3, s_2_49, -1, 1, 0},
-/* 50 */ { 4, s_2_50, 49, 1, 0},
-/* 51 */ { 4, s_2_51, 49, 1, 0},
-/* 52 */ { 4, s_2_52, -1, 1, 0},
-/* 53 */ { 7, s_2_53, 52, 1, 0},
-/* 54 */ { 7, s_2_54, 52, 1, 0},
-/* 55 */ { 6, s_2_55, 52, 1, 0},
-/* 56 */ { 4, s_2_56, -1, 1, 0},
-/* 57 */ { 4, s_2_57, -1, 1, 0},
-/* 58 */ { 4, s_2_58, -1, 1, 0},
-/* 59 */ { 3, s_2_59, -1, 1, 0},
-/* 60 */ { 4, s_2_60, -1, 1, 0},
-/* 61 */ { 4, s_2_61, -1, 3, 0},
-/* 62 */ { 3, s_2_62, -1, 1, 0},
-/* 63 */ { 4, s_2_63, -1, 1, 0},
-/* 64 */ { 2, s_2_64, -1, 1, 0},
-/* 65 */ { 2, s_2_65, -1, 1, 0},
-/* 66 */ { 3, s_2_66, -1, 1, 0},
-/* 67 */ { 3, s_2_67, -1, 1, 0},
-/* 68 */ { 5, s_2_68, -1, 1, 0},
-/* 69 */ { 4, s_2_69, -1, 1, 0},
-/* 70 */ { 5, s_2_70, -1, 1, 0},
-/* 71 */ { 6, s_2_71, -1, 1, 0},
-/* 72 */ { 6, s_2_72, -1, 1, 0},
-/* 73 */ { 6, s_2_73, -1, 1, 0},
-/* 74 */ { 8, s_2_74, 73, 5, 0},
-/* 75 */ { 4, s_2_75, -1, 1, 0},
-/* 76 */ { 6, s_2_76, -1, 1, 0},
-/* 77 */ { 2, s_2_77, -1, 1, 0},
-/* 78 */ { 6, s_2_78, 77, 1, 0},
-/* 79 */ { 4, s_2_79, 77, 1, 0},
-/* 80 */ { 4, s_2_80, 77, 1, 0},
-/* 81 */ { 4, s_2_81, 77, 1, 0},
-/* 82 */ { 5, s_2_82, 77, 1, 0},
-/* 83 */ { 3, s_2_83, -1, 1, 0},
-/* 84 */ { 2, s_2_84, -1, 1, 0},
-/* 85 */ { 3, s_2_85, 84, 1, 0},
-/* 86 */ { 3, s_2_86, -1, 1, 0},
-/* 87 */ { 5, s_2_87, -1, 1, 0},
-/* 88 */ { 3, s_2_88, -1, 4, 0},
-/* 89 */ { 7, s_2_89, 88, 3, 0},
-/* 90 */ { 3, s_2_90, -1, 1, 0},
-/* 91 */ { 4, s_2_91, -1, 1, 0},
-/* 92 */ { 4, s_2_92, -1, 2, 0},
-/* 93 */ { 6, s_2_93, -1, 1, 0},
-/* 94 */ { 6, s_2_94, -1, 1, 0},
-/* 95 */ { 7, s_2_95, -1, 1, 0},
-/* 96 */ { 6, s_2_96, -1, 1, 0},
-/* 97 */ { 6, s_2_97, -1, 3, 0},
-/* 98 */ { 5, s_2_98, -1, 1, 0},
-/* 99 */ { 6, s_2_99, -1, 1, 0},
-/*100 */ { 5, s_2_100, -1, 1, 0},
-/*101 */ { 6, s_2_101, -1, 1, 0},
-/*102 */ { 8, s_2_102, -1, 1, 0},
-/*103 */ { 4, s_2_103, -1, 1, 0},
-/*104 */ { 5, s_2_104, 103, 1, 0},
-/*105 */ { 5, s_2_105, 103, 1, 0},
-/*106 */ { 4, s_2_106, -1, 1, 0},
-/*107 */ { 8, s_2_107, 106, 1, 0},
-/*108 */ { 10, s_2_108, 107, 5, 0},
-/*109 */ { 6, s_2_109, -1, 1, 0},
-/*110 */ { 5, s_2_110, -1, 1, 0},
-/*111 */ { 8, s_2_111, 110, 1, 0},
-/*112 */ { 4, s_2_112, -1, 1, 0},
-/*113 */ { 4, s_2_113, -1, 1, 0},
-/*114 */ { 4, s_2_114, -1, 1, 0},
-/*115 */ { 5, s_2_115, 114, 1, 0},
-/*116 */ { 6, s_2_116, 115, 1, 0},
-/*117 */ { 5, s_2_117, -1, 1, 0},
-/*118 */ { 4, s_2_118, -1, 1, 0},
-/*119 */ { 4, s_2_119, -1, 1, 0},
-/*120 */ { 5, s_2_120, -1, 1, 0},
-/*121 */ { 5, s_2_121, -1, 1, 0},
-/*122 */ { 4, s_2_122, -1, 1, 0},
-/*123 */ { 4, s_2_123, -1, 1, 0},
-/*124 */ { 5, s_2_124, -1, 1, 0},
-/*125 */ { 8, s_2_125, 124, 1, 0},
-/*126 */ { 8, s_2_126, 124, 1, 0},
-/*127 */ { 5, s_2_127, -1, 4, 0},
-/*128 */ { 9, s_2_128, 127, 3, 0},
-/*129 */ { 4, s_2_129, -1, 1, 0},
-/*130 */ { 6, s_2_130, 129, 1, 0},
-/*131 */ { 7, s_2_131, -1, 3, 0},
-/*132 */ { 10, s_2_132, -1, 1, 0},
-/*133 */ { 4, s_2_133, -1, 1, 0},
-/*134 */ { 5, s_2_134, -1, 1, 0},
-/*135 */ { 5, s_2_135, -1, 3, 0},
-/*136 */ { 4, s_2_136, -1, 1, 0},
-/*137 */ { 5, s_2_137, -1, 1, 0},
-/*138 */ { 2, s_2_138, -1, 1, 0},
-/*139 */ { 3, s_2_139, 138, 1, 0},
-/*140 */ { 4, s_2_140, 138, 1, 0},
-/*141 */ { 3, s_2_141, -1, 1, 0},
-/*142 */ { 7, s_2_142, 141, 1, 0},
-/*143 */ { 9, s_2_143, 142, 5, 0},
-/*144 */ { 4, s_2_144, -1, 1, 0},
-/*145 */ { 5, s_2_145, 144, 1, 0},
-/*146 */ { 6, s_2_146, 145, 2, 0},
-/*147 */ { 4, s_2_147, -1, 1, 0},
-/*148 */ { 4, s_2_148, -1, 1, 0},
-/*149 */ { 5, s_2_149, -1, 1, 0},
-/*150 */ { 5, s_2_150, -1, 1, 0},
-/*151 */ { 3, s_2_151, -1, 1, 0},
-/*152 */ { 3, s_2_152, -1, 1, 0},
-/*153 */ { 4, s_2_153, 152, 1, 0},
-/*154 */ { 5, s_2_154, 153, 1, 0},
-/*155 */ { 5, s_2_155, 153, 1, 0},
-/*156 */ { 3, s_2_156, -1, 1, 0},
-/*157 */ { 5, s_2_157, 156, 1, 0},
-/*158 */ { 8, s_2_158, 157, 1, 0},
-/*159 */ { 7, s_2_159, 157, 1, 0},
-/*160 */ { 9, s_2_160, 159, 1, 0},
-/*161 */ { 6, s_2_161, 156, 1, 0},
-/*162 */ { 3, s_2_162, -1, 1, 0},
-/*163 */ { 4, s_2_163, -1, 1, 0},
-/*164 */ { 4, s_2_164, -1, 1, 0},
-/*165 */ { 5, s_2_165, 164, 1, 0},
-/*166 */ { 6, s_2_166, 165, 1, 0},
-/*167 */ { 3, s_2_167, -1, 1, 0},
-/*168 */ { 3, s_2_168, -1, 1, 0},
-/*169 */ { 3, s_2_169, -1, 1, 0},
-/*170 */ { 5, s_2_170, 169, 1, 0},
-/*171 */ { 5, s_2_171, 169, 1, 0},
-/*172 */ { 3, s_2_172, -1, 1, 0},
-/*173 */ { 3, s_2_173, -1, 1, 0},
-/*174 */ { 3, s_2_174, -1, 1, 0},
-/*175 */ { 4, s_2_175, 174, 1, 0},
-/*176 */ { 3, s_2_176, -1, 1, 0},
-/*177 */ { 4, s_2_177, -1, 1, 0},
-/*178 */ { 7, s_2_178, 177, 1, 0},
-/*179 */ { 6, s_2_179, 177, 1, 0},
-/*180 */ { 8, s_2_180, 179, 1, 0},
-/*181 */ { 5, s_2_181, -1, 1, 0},
-/*182 */ { 2, s_2_182, -1, 1, 0},
-/*183 */ { 3, s_2_183, -1, 1, 0},
-/*184 */ { 3, s_2_184, -1, 1, 0},
-/*185 */ { 4, s_2_185, 184, 1, 0},
-/*186 */ { 4, s_2_186, 184, 1, 0},
-/*187 */ { 5, s_2_187, 186, 1, 0},
-/*188 */ { 7, s_2_188, 187, 1, 0},
-/*189 */ { 2, s_2_189, -1, 1, 0},
-/*190 */ { 5, s_2_190, -1, 1, 0},
-/*191 */ { 6, s_2_191, -1, 1, 0},
-/*192 */ { 6, s_2_192, -1, 1, 0},
-/*193 */ { 4, s_2_193, -1, 1, 0},
-/*194 */ { 6, s_2_194, -1, 1, 0},
-/*195 */ { 4, s_2_195, -1, 1, 0},
-/*196 */ { 2, s_2_196, -1, 1, 0},
-/*197 */ { 3, s_2_197, 196, 1, 0},
-/*198 */ { 4, s_2_198, 197, 1, 0},
-/*199 */ { 5, s_2_199, 198, 1, 0}
+{ 3, s_2_0, -1, 4, 0},
+{ 7, s_2_1, 0, 3, 0},
+{ 4, s_2_2, -1, 1, 0},
+{ 3, s_2_3, -1, 2, 0},
+{ 5, s_2_4, -1, 1, 0},
+{ 5, s_2_5, -1, 1, 0},
+{ 6, s_2_6, -1, 1, 0},
+{ 5, s_2_7, -1, 1, 0},
+{ 5, s_2_8, -1, 3, 0},
+{ 4, s_2_9, -1, 1, 0},
+{ 6, s_2_10, 9, 1, 0},
+{ 4, s_2_11, -1, 1, 0},
+{ 5, s_2_12, -1, 1, 0},
+{ 7, s_2_13, -1, 1, 0},
+{ 4, s_2_14, -1, 1, 0},
+{ 4, s_2_15, -1, 1, 0},
+{ 6, s_2_16, -1, 1, 0},
+{ 3, s_2_17, -1, 1, 0},
+{ 7, s_2_18, 17, 1, 0},
+{ 9, s_2_19, 18, 5, 0},
+{ 3, s_2_20, -1, 1, 0},
+{ 3, s_2_21, -1, 1, 0},
+{ 3, s_2_22, -1, 1, 0},
+{ 5, s_2_23, 22, 1, 0},
+{ 3, s_2_24, -1, 1, 0},
+{ 4, s_2_25, 24, 1, 0},
+{ 5, s_2_26, 25, 1, 0},
+{ 5, s_2_27, -1, 1, 0},
+{ 3, s_2_28, -1, 1, 0},
+{ 3, s_2_29, -1, 1, 0},
+{ 4, s_2_30, -1, 1, 0},
+{ 4, s_2_31, -1, 1, 0},
+{ 4, s_2_32, -1, 1, 0},
+{ 3, s_2_33, -1, 1, 0},
+{ 3, s_2_34, -1, 1, 0},
+{ 3, s_2_35, -1, 1, 0},
+{ 4, s_2_36, -1, 1, 0},
+{ 7, s_2_37, 36, 1, 0},
+{ 7, s_2_38, 36, 1, 0},
+{ 3, s_2_39, -1, 1, 0},
+{ 5, s_2_40, 39, 1, 0},
+{ 4, s_2_41, -1, 1, 0},
+{ 6, s_2_42, -1, 3, 0},
+{ 2, s_2_43, -1, 4, 0},
+{ 6, s_2_44, 43, 1, 0},
+{ 3, s_2_45, -1, 1, 0},
+{ 3, s_2_46, -1, 1, 0},
+{ 2, s_2_47, -1, 1, 0},
+{ 4, s_2_48, -1, 1, 0},
+{ 3, s_2_49, -1, 1, 0},
+{ 4, s_2_50, 49, 1, 0},
+{ 4, s_2_51, 49, 1, 0},
+{ 4, s_2_52, -1, 1, 0},
+{ 7, s_2_53, 52, 1, 0},
+{ 7, s_2_54, 52, 1, 0},
+{ 6, s_2_55, 52, 1, 0},
+{ 4, s_2_56, -1, 1, 0},
+{ 4, s_2_57, -1, 1, 0},
+{ 4, s_2_58, -1, 1, 0},
+{ 3, s_2_59, -1, 1, 0},
+{ 4, s_2_60, -1, 1, 0},
+{ 4, s_2_61, -1, 3, 0},
+{ 3, s_2_62, -1, 1, 0},
+{ 4, s_2_63, -1, 1, 0},
+{ 2, s_2_64, -1, 1, 0},
+{ 2, s_2_65, -1, 1, 0},
+{ 3, s_2_66, -1, 1, 0},
+{ 3, s_2_67, -1, 1, 0},
+{ 5, s_2_68, -1, 1, 0},
+{ 4, s_2_69, -1, 1, 0},
+{ 5, s_2_70, -1, 1, 0},
+{ 6, s_2_71, -1, 1, 0},
+{ 6, s_2_72, -1, 1, 0},
+{ 6, s_2_73, -1, 1, 0},
+{ 8, s_2_74, 73, 5, 0},
+{ 4, s_2_75, -1, 1, 0},
+{ 6, s_2_76, -1, 1, 0},
+{ 2, s_2_77, -1, 1, 0},
+{ 6, s_2_78, 77, 1, 0},
+{ 4, s_2_79, 77, 1, 0},
+{ 4, s_2_80, 77, 1, 0},
+{ 4, s_2_81, 77, 1, 0},
+{ 5, s_2_82, 77, 1, 0},
+{ 3, s_2_83, -1, 1, 0},
+{ 2, s_2_84, -1, 1, 0},
+{ 3, s_2_85, 84, 1, 0},
+{ 3, s_2_86, -1, 1, 0},
+{ 5, s_2_87, -1, 1, 0},
+{ 3, s_2_88, -1, 4, 0},
+{ 7, s_2_89, 88, 3, 0},
+{ 3, s_2_90, -1, 1, 0},
+{ 4, s_2_91, -1, 1, 0},
+{ 4, s_2_92, -1, 2, 0},
+{ 6, s_2_93, -1, 1, 0},
+{ 6, s_2_94, -1, 1, 0},
+{ 7, s_2_95, -1, 1, 0},
+{ 6, s_2_96, -1, 1, 0},
+{ 6, s_2_97, -1, 3, 0},
+{ 5, s_2_98, -1, 1, 0},
+{ 6, s_2_99, -1, 1, 0},
+{ 5, s_2_100, -1, 1, 0},
+{ 6, s_2_101, -1, 1, 0},
+{ 8, s_2_102, -1, 1, 0},
+{ 4, s_2_103, -1, 1, 0},
+{ 5, s_2_104, 103, 1, 0},
+{ 5, s_2_105, 103, 1, 0},
+{ 4, s_2_106, -1, 1, 0},
+{ 8, s_2_107, 106, 1, 0},
+{ 10, s_2_108, 107, 5, 0},
+{ 6, s_2_109, -1, 1, 0},
+{ 5, s_2_110, -1, 1, 0},
+{ 8, s_2_111, 110, 1, 0},
+{ 4, s_2_112, -1, 1, 0},
+{ 4, s_2_113, -1, 1, 0},
+{ 4, s_2_114, -1, 1, 0},
+{ 5, s_2_115, 114, 1, 0},
+{ 6, s_2_116, 115, 1, 0},
+{ 5, s_2_117, -1, 1, 0},
+{ 4, s_2_118, -1, 1, 0},
+{ 4, s_2_119, -1, 1, 0},
+{ 5, s_2_120, -1, 1, 0},
+{ 5, s_2_121, -1, 1, 0},
+{ 4, s_2_122, -1, 1, 0},
+{ 4, s_2_123, -1, 1, 0},
+{ 5, s_2_124, -1, 1, 0},
+{ 8, s_2_125, 124, 1, 0},
+{ 8, s_2_126, 124, 1, 0},
+{ 5, s_2_127, -1, 4, 0},
+{ 9, s_2_128, 127, 3, 0},
+{ 4, s_2_129, -1, 1, 0},
+{ 6, s_2_130, 129, 1, 0},
+{ 7, s_2_131, -1, 3, 0},
+{ 10, s_2_132, -1, 1, 0},
+{ 4, s_2_133, -1, 1, 0},
+{ 5, s_2_134, -1, 1, 0},
+{ 5, s_2_135, -1, 3, 0},
+{ 4, s_2_136, -1, 1, 0},
+{ 5, s_2_137, -1, 1, 0},
+{ 2, s_2_138, -1, 1, 0},
+{ 3, s_2_139, 138, 1, 0},
+{ 4, s_2_140, 138, 1, 0},
+{ 3, s_2_141, -1, 1, 0},
+{ 7, s_2_142, 141, 1, 0},
+{ 9, s_2_143, 142, 5, 0},
+{ 4, s_2_144, -1, 1, 0},
+{ 5, s_2_145, 144, 1, 0},
+{ 6, s_2_146, 145, 2, 0},
+{ 4, s_2_147, -1, 1, 0},
+{ 4, s_2_148, -1, 1, 0},
+{ 5, s_2_149, -1, 1, 0},
+{ 5, s_2_150, -1, 1, 0},
+{ 3, s_2_151, -1, 1, 0},
+{ 3, s_2_152, -1, 1, 0},
+{ 4, s_2_153, 152, 1, 0},
+{ 5, s_2_154, 153, 1, 0},
+{ 5, s_2_155, 153, 1, 0},
+{ 3, s_2_156, -1, 1, 0},
+{ 5, s_2_157, 156, 1, 0},
+{ 8, s_2_158, 157, 1, 0},
+{ 7, s_2_159, 157, 1, 0},
+{ 9, s_2_160, 159, 1, 0},
+{ 6, s_2_161, 156, 1, 0},
+{ 3, s_2_162, -1, 1, 0},
+{ 4, s_2_163, -1, 1, 0},
+{ 4, s_2_164, -1, 1, 0},
+{ 5, s_2_165, 164, 1, 0},
+{ 6, s_2_166, 165, 1, 0},
+{ 3, s_2_167, -1, 1, 0},
+{ 3, s_2_168, -1, 1, 0},
+{ 3, s_2_169, -1, 1, 0},
+{ 5, s_2_170, 169, 1, 0},
+{ 5, s_2_171, 169, 1, 0},
+{ 3, s_2_172, -1, 1, 0},
+{ 3, s_2_173, -1, 1, 0},
+{ 3, s_2_174, -1, 1, 0},
+{ 4, s_2_175, 174, 1, 0},
+{ 3, s_2_176, -1, 1, 0},
+{ 4, s_2_177, -1, 1, 0},
+{ 7, s_2_178, 177, 1, 0},
+{ 6, s_2_179, 177, 1, 0},
+{ 8, s_2_180, 179, 1, 0},
+{ 5, s_2_181, -1, 1, 0},
+{ 2, s_2_182, -1, 1, 0},
+{ 3, s_2_183, -1, 1, 0},
+{ 3, s_2_184, -1, 1, 0},
+{ 4, s_2_185, 184, 1, 0},
+{ 4, s_2_186, 184, 1, 0},
+{ 5, s_2_187, 186, 1, 0},
+{ 7, s_2_188, 187, 1, 0},
+{ 2, s_2_189, -1, 1, 0},
+{ 5, s_2_190, -1, 1, 0},
+{ 6, s_2_191, -1, 1, 0},
+{ 6, s_2_192, -1, 1, 0},
+{ 4, s_2_193, -1, 1, 0},
+{ 6, s_2_194, -1, 1, 0},
+{ 4, s_2_195, -1, 1, 0},
+{ 2, s_2_196, -1, 1, 0},
+{ 3, s_2_197, 196, 1, 0},
+{ 4, s_2_198, 197, 1, 0},
+{ 5, s_2_199, 198, 1, 0}
 };
 
 static const symbol s_3_0[3] = { 'a', 'b', 'a' };
@@ -833,289 +833,289 @@ static const symbol s_3_282[3] = { 'i', 0xC3, 0xB3 };
 
 static const struct among a_3[283] =
 {
-/*  0 */ { 3, s_3_0, -1, 1, 0},
-/*  1 */ { 4, s_3_1, -1, 1, 0},
-/*  2 */ { 4, s_3_2, -1, 1, 0},
-/*  3 */ { 5, s_3_3, -1, 1, 0},
-/*  4 */ { 3, s_3_4, -1, 1, 0},
-/*  5 */ { 3, s_3_5, -1, 1, 0},
-/*  6 */ { 3, s_3_6, -1, 1, 0},
-/*  7 */ { 4, s_3_7, -1, 1, 0},
-/*  8 */ { 2, s_3_8, -1, 1, 0},
-/*  9 */ { 4, s_3_9, 8, 1, 0},
-/* 10 */ { 4, s_3_10, 8, 1, 0},
-/* 11 */ { 3, s_3_11, -1, 1, 0},
-/* 12 */ { 4, s_3_12, -1, 1, 0},
-/* 13 */ { 3, s_3_13, -1, 1, 0},
-/* 14 */ { 5, s_3_14, -1, 1, 0},
-/* 15 */ { 4, s_3_15, -1, 1, 0},
-/* 16 */ { 3, s_3_16, -1, 1, 0},
-/* 17 */ { 3, s_3_17, -1, 1, 0},
-/* 18 */ { 4, s_3_18, -1, 1, 0},
-/* 19 */ { 3, s_3_19, -1, 1, 0},
-/* 20 */ { 5, s_3_20, 19, 1, 0},
-/* 21 */ { 5, s_3_21, 19, 1, 0},
-/* 22 */ { 5, s_3_22, 19, 1, 0},
-/* 23 */ { 3, s_3_23, -1, 1, 0},
-/* 24 */ { 3, s_3_24, -1, 1, 0},
-/* 25 */ { 4, s_3_25, -1, 1, 0},
-/* 26 */ { 2, s_3_26, -1, 1, 0},
-/* 27 */ { 2, s_3_27, -1, 1, 0},
-/* 28 */ { 2, s_3_28, -1, 1, 0},
-/* 29 */ { 2, s_3_29, -1, 1, 0},
-/* 30 */ { 2, s_3_30, -1, 1, 0},
-/* 31 */ { 3, s_3_31, 30, 1, 0},
-/* 32 */ { 3, s_3_32, -1, 1, 0},
-/* 33 */ { 4, s_3_33, -1, 1, 0},
-/* 34 */ { 4, s_3_34, -1, 1, 0},
-/* 35 */ { 4, s_3_35, -1, 1, 0},
-/* 36 */ { 2, s_3_36, -1, 1, 0},
-/* 37 */ { 3, s_3_37, -1, 1, 0},
-/* 38 */ { 5, s_3_38, -1, 1, 0},
-/* 39 */ { 4, s_3_39, -1, 1, 0},
-/* 40 */ { 4, s_3_40, -1, 1, 0},
-/* 41 */ { 2, s_3_41, -1, 1, 0},
-/* 42 */ { 2, s_3_42, -1, 1, 0},
-/* 43 */ { 4, s_3_43, 42, 1, 0},
-/* 44 */ { 4, s_3_44, 42, 1, 0},
-/* 45 */ { 5, s_3_45, 42, 1, 0},
-/* 46 */ { 5, s_3_46, 42, 1, 0},
-/* 47 */ { 6, s_3_47, 42, 1, 0},
-/* 48 */ { 6, s_3_48, 42, 1, 0},
-/* 49 */ { 5, s_3_49, 42, 1, 0},
-/* 50 */ { 6, s_3_50, 42, 1, 0},
-/* 51 */ { 4, s_3_51, 42, 1, 0},
-/* 52 */ { 5, s_3_52, 42, 1, 0},
-/* 53 */ { 5, s_3_53, 42, 1, 0},
-/* 54 */ { 6, s_3_54, 42, 1, 0},
-/* 55 */ { 4, s_3_55, 42, 1, 0},
-/* 56 */ { 6, s_3_56, 55, 1, 0},
-/* 57 */ { 6, s_3_57, 55, 1, 0},
-/* 58 */ { 5, s_3_58, -1, 1, 0},
-/* 59 */ { 5, s_3_59, -1, 1, 0},
-/* 60 */ { 5, s_3_60, -1, 1, 0},
-/* 61 */ { 6, s_3_61, -1, 1, 0},
-/* 62 */ { 6, s_3_62, -1, 1, 0},
-/* 63 */ { 6, s_3_63, -1, 1, 0},
-/* 64 */ { 6, s_3_64, -1, 1, 0},
-/* 65 */ { 3, s_3_65, -1, 1, 0},
-/* 66 */ { 2, s_3_66, -1, 1, 0},
-/* 67 */ { 4, s_3_67, 66, 1, 0},
-/* 68 */ { 5, s_3_68, 66, 1, 0},
-/* 69 */ { 4, s_3_69, 66, 1, 0},
-/* 70 */ { 5, s_3_70, 66, 1, 0},
-/* 71 */ { 4, s_3_71, 66, 1, 0},
-/* 72 */ { 4, s_3_72, 66, 1, 0},
-/* 73 */ { 6, s_3_73, 72, 1, 0},
-/* 74 */ { 6, s_3_74, 72, 1, 0},
-/* 75 */ { 6, s_3_75, 72, 1, 0},
-/* 76 */ { 2, s_3_76, -1, 1, 0},
-/* 77 */ { 3, s_3_77, 76, 1, 0},
-/* 78 */ { 5, s_3_78, 77, 1, 0},
-/* 79 */ { 5, s_3_79, 77, 1, 0},
-/* 80 */ { 4, s_3_80, 76, 1, 0},
-/* 81 */ { 4, s_3_81, 76, 1, 0},
-/* 82 */ { 4, s_3_82, 76, 1, 0},
-/* 83 */ { 5, s_3_83, 76, 1, 0},
-/* 84 */ { 5, s_3_84, 76, 1, 0},
-/* 85 */ { 4, s_3_85, 76, 1, 0},
-/* 86 */ { 5, s_3_86, 76, 1, 0},
-/* 87 */ { 5, s_3_87, 76, 1, 0},
-/* 88 */ { 5, s_3_88, 76, 1, 0},
-/* 89 */ { 5, s_3_89, 76, 1, 0},
-/* 90 */ { 6, s_3_90, 76, 1, 0},
-/* 91 */ { 6, s_3_91, 76, 1, 0},
-/* 92 */ { 6, s_3_92, 76, 1, 0},
-/* 93 */ { 6, s_3_93, 76, 1, 0},
-/* 94 */ { 7, s_3_94, 76, 1, 0},
-/* 95 */ { 4, s_3_95, 76, 1, 0},
-/* 96 */ { 4, s_3_96, 76, 1, 0},
-/* 97 */ { 5, s_3_97, 96, 1, 0},
-/* 98 */ { 5, s_3_98, 76, 1, 0},
-/* 99 */ { 4, s_3_99, 76, 1, 0},
-/*100 */ { 2, s_3_100, -1, 1, 0},
-/*101 */ { 4, s_3_101, 100, 1, 0},
-/*102 */ { 3, s_3_102, 100, 1, 0},
-/*103 */ { 4, s_3_103, 102, 1, 0},
-/*104 */ { 5, s_3_104, 102, 1, 0},
-/*105 */ { 5, s_3_105, 102, 1, 0},
-/*106 */ { 5, s_3_106, 102, 1, 0},
-/*107 */ { 6, s_3_107, 102, 1, 0},
-/*108 */ { 6, s_3_108, 100, 1, 0},
-/*109 */ { 5, s_3_109, 100, 1, 0},
-/*110 */ { 4, s_3_110, -1, 1, 0},
-/*111 */ { 5, s_3_111, -1, 1, 0},
-/*112 */ { 5, s_3_112, -1, 1, 0},
-/*113 */ { 5, s_3_113, -1, 1, 0},
-/*114 */ { 5, s_3_114, -1, 1, 0},
-/*115 */ { 4, s_3_115, -1, 1, 0},
-/*116 */ { 3, s_3_116, -1, 1, 0},
-/*117 */ { 3, s_3_117, -1, 1, 0},
-/*118 */ { 4, s_3_118, -1, 2, 0},
-/*119 */ { 5, s_3_119, -1, 1, 0},
-/*120 */ { 2, s_3_120, -1, 1, 0},
-/*121 */ { 3, s_3_121, -1, 1, 0},
-/*122 */ { 4, s_3_122, 121, 1, 0},
-/*123 */ { 4, s_3_123, -1, 1, 0},
-/*124 */ { 4, s_3_124, -1, 1, 0},
-/*125 */ { 2, s_3_125, -1, 1, 0},
-/*126 */ { 4, s_3_126, 125, 1, 0},
-/*127 */ { 2, s_3_127, -1, 1, 0},
-/*128 */ { 5, s_3_128, 127, 1, 0},
-/*129 */ { 2, s_3_129, -1, 1, 0},
-/*130 */ { 4, s_3_130, -1, 1, 0},
-/*131 */ { 2, s_3_131, -1, 1, 0},
-/*132 */ { 4, s_3_132, 131, 1, 0},
-/*133 */ { 4, s_3_133, 131, 1, 0},
-/*134 */ { 4, s_3_134, 131, 1, 0},
-/*135 */ { 4, s_3_135, 131, 1, 0},
-/*136 */ { 5, s_3_136, 131, 1, 0},
-/*137 */ { 4, s_3_137, 131, 1, 0},
-/*138 */ { 6, s_3_138, 137, 1, 0},
-/*139 */ { 6, s_3_139, 137, 1, 0},
-/*140 */ { 6, s_3_140, 137, 1, 0},
-/*141 */ { 3, s_3_141, -1, 1, 0},
-/*142 */ { 2, s_3_142, -1, 1, 0},
-/*143 */ { 4, s_3_143, 142, 1, 0},
-/*144 */ { 4, s_3_144, 142, 1, 0},
-/*145 */ { 4, s_3_145, 142, 1, 0},
-/*146 */ { 5, s_3_146, 142, 1, 0},
-/*147 */ { 5, s_3_147, 142, 1, 0},
-/*148 */ { 3, s_3_148, 142, 1, 0},
-/*149 */ { 5, s_3_149, 148, 1, 0},
-/*150 */ { 5, s_3_150, 148, 1, 0},
-/*151 */ { 4, s_3_151, 142, 1, 0},
-/*152 */ { 4, s_3_152, 142, 1, 0},
-/*153 */ { 6, s_3_153, 142, 1, 0},
-/*154 */ { 5, s_3_154, 142, 1, 0},
-/*155 */ { 4, s_3_155, 142, 1, 0},
-/*156 */ { 5, s_3_156, 142, 1, 0},
-/*157 */ { 5, s_3_157, 142, 1, 0},
-/*158 */ { 5, s_3_158, 142, 1, 0},
-/*159 */ { 5, s_3_159, 142, 1, 0},
-/*160 */ { 6, s_3_160, 142, 1, 0},
-/*161 */ { 4, s_3_161, 142, 1, 0},
-/*162 */ { 6, s_3_162, 161, 1, 0},
-/*163 */ { 7, s_3_163, 161, 1, 0},
-/*164 */ { 4, s_3_164, 142, 1, 0},
-/*165 */ { 4, s_3_165, 142, 1, 0},
-/*166 */ { 5, s_3_166, 165, 1, 0},
-/*167 */ { 5, s_3_167, 142, 1, 0},
-/*168 */ { 4, s_3_168, 142, 1, 0},
-/*169 */ { 5, s_3_169, -1, 1, 0},
-/*170 */ { 5, s_3_170, -1, 1, 0},
-/*171 */ { 6, s_3_171, -1, 1, 0},
-/*172 */ { 5, s_3_172, -1, 1, 0},
-/*173 */ { 7, s_3_173, 172, 1, 0},
-/*174 */ { 7, s_3_174, 172, 1, 0},
-/*175 */ { 7, s_3_175, 172, 1, 0},
-/*176 */ { 5, s_3_176, -1, 1, 0},
-/*177 */ { 6, s_3_177, -1, 1, 0},
-/*178 */ { 6, s_3_178, -1, 1, 0},
-/*179 */ { 6, s_3_179, -1, 1, 0},
-/*180 */ { 4, s_3_180, -1, 1, 0},
-/*181 */ { 3, s_3_181, -1, 1, 0},
-/*182 */ { 4, s_3_182, 181, 1, 0},
-/*183 */ { 5, s_3_183, 181, 1, 0},
-/*184 */ { 5, s_3_184, 181, 1, 0},
-/*185 */ { 5, s_3_185, 181, 1, 0},
-/*186 */ { 6, s_3_186, 181, 1, 0},
-/*187 */ { 6, s_3_187, -1, 1, 0},
-/*188 */ { 5, s_3_188, -1, 1, 0},
-/*189 */ { 5, s_3_189, -1, 1, 0},
-/*190 */ { 4, s_3_190, -1, 1, 0},
-/*191 */ { 6, s_3_191, -1, 1, 0},
-/*192 */ { 6, s_3_192, -1, 1, 0},
-/*193 */ { 6, s_3_193, -1, 1, 0},
-/*194 */ { 3, s_3_194, -1, 1, 0},
-/*195 */ { 4, s_3_195, -1, 1, 0},
-/*196 */ { 4, s_3_196, -1, 1, 0},
-/*197 */ { 4, s_3_197, -1, 1, 0},
-/*198 */ { 7, s_3_198, 197, 1, 0},
-/*199 */ { 7, s_3_199, 197, 1, 0},
-/*200 */ { 8, s_3_200, 197, 1, 0},
-/*201 */ { 6, s_3_201, 197, 1, 0},
-/*202 */ { 8, s_3_202, 201, 1, 0},
-/*203 */ { 8, s_3_203, 201, 1, 0},
-/*204 */ { 8, s_3_204, 201, 1, 0},
-/*205 */ { 6, s_3_205, -1, 1, 0},
-/*206 */ { 6, s_3_206, -1, 1, 0},
-/*207 */ { 6, s_3_207, -1, 1, 0},
-/*208 */ { 7, s_3_208, -1, 1, 0},
-/*209 */ { 8, s_3_209, -1, 1, 0},
-/*210 */ { 4, s_3_210, -1, 1, 0},
-/*211 */ { 5, s_3_211, -1, 1, 0},
-/*212 */ { 3, s_3_212, -1, 1, 0},
-/*213 */ { 5, s_3_213, 212, 1, 0},
-/*214 */ { 3, s_3_214, -1, 1, 0},
-/*215 */ { 3, s_3_215, -1, 1, 0},
-/*216 */ { 3, s_3_216, -1, 1, 0},
-/*217 */ { 4, s_3_217, -1, 1, 0},
-/*218 */ { 3, s_3_218, -1, 1, 0},
-/*219 */ { 5, s_3_219, 218, 1, 0},
-/*220 */ { 5, s_3_220, 218, 1, 0},
-/*221 */ { 5, s_3_221, -1, 1, 0},
-/*222 */ { 5, s_3_222, -1, 1, 0},
-/*223 */ { 5, s_3_223, -1, 1, 0},
-/*224 */ { 3, s_3_224, -1, 1, 0},
-/*225 */ { 5, s_3_225, 224, 1, 0},
-/*226 */ { 3, s_3_226, -1, 1, 0},
-/*227 */ { 4, s_3_227, -1, 1, 0},
-/*228 */ { 2, s_3_228, -1, 1, 0},
-/*229 */ { 2, s_3_229, -1, 1, 0},
-/*230 */ { 3, s_3_230, -1, 1, 0},
-/*231 */ { 3, s_3_231, -1, 1, 0},
-/*232 */ { 3, s_3_232, -1, 1, 0},
-/*233 */ { 2, s_3_233, -1, 1, 0},
-/*234 */ { 3, s_3_234, -1, 1, 0},
-/*235 */ { 2, s_3_235, -1, 1, 0},
-/*236 */ { 4, s_3_236, 235, 1, 0},
-/*237 */ { 3, s_3_237, -1, 1, 0},
-/*238 */ { 4, s_3_238, -1, 1, 0},
-/*239 */ { 4, s_3_239, -1, 1, 0},
-/*240 */ { 4, s_3_240, -1, 1, 0},
-/*241 */ { 5, s_3_241, -1, 1, 0},
-/*242 */ { 5, s_3_242, -1, 1, 0},
-/*243 */ { 5, s_3_243, -1, 1, 0},
-/*244 */ { 5, s_3_244, -1, 1, 0},
-/*245 */ { 7, s_3_245, 244, 1, 0},
-/*246 */ { 6, s_3_246, -1, 1, 0},
-/*247 */ { 6, s_3_247, -1, 1, 0},
-/*248 */ { 5, s_3_248, -1, 1, 0},
-/*249 */ { 6, s_3_249, -1, 1, 0},
-/*250 */ { 5, s_3_250, -1, 1, 0},
-/*251 */ { 5, s_3_251, -1, 1, 0},
-/*252 */ { 5, s_3_252, -1, 1, 0},
-/*253 */ { 4, s_3_253, -1, 1, 0},
-/*254 */ { 6, s_3_254, 253, 1, 0},
-/*255 */ { 4, s_3_255, -1, 1, 0},
-/*256 */ { 6, s_3_256, 255, 1, 0},
-/*257 */ { 6, s_3_257, 255, 1, 0},
-/*258 */ { 5, s_3_258, -1, 1, 0},
-/*259 */ { 5, s_3_259, -1, 1, 0},
-/*260 */ { 6, s_3_260, -1, 1, 0},
-/*261 */ { 6, s_3_261, -1, 1, 0},
-/*262 */ { 6, s_3_262, -1, 1, 0},
-/*263 */ { 6, s_3_263, -1, 1, 0},
-/*264 */ { 3, s_3_264, -1, 1, 0},
-/*265 */ { 2, s_3_265, -1, 1, 0},
-/*266 */ { 3, s_3_266, 265, 1, 0},
-/*267 */ { 3, s_3_267, -1, 1, 0},
-/*268 */ { 3, s_3_268, -1, 1, 0},
-/*269 */ { 3, s_3_269, -1, 1, 0},
-/*270 */ { 4, s_3_270, -1, 1, 0},
-/*271 */ { 4, s_3_271, -1, 1, 0},
-/*272 */ { 5, s_3_272, -1, 1, 0},
-/*273 */ { 4, s_3_273, -1, 1, 0},
-/*274 */ { 4, s_3_274, -1, 1, 0},
-/*275 */ { 4, s_3_275, -1, 1, 0},
-/*276 */ { 4, s_3_276, -1, 1, 0},
-/*277 */ { 4, s_3_277, -1, 1, 0},
-/*278 */ { 4, s_3_278, -1, 1, 0},
-/*279 */ { 4, s_3_279, -1, 1, 0},
-/*280 */ { 2, s_3_280, -1, 1, 0},
-/*281 */ { 3, s_3_281, -1, 1, 0},
-/*282 */ { 3, s_3_282, -1, 1, 0}
+{ 3, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 4, s_3_2, -1, 1, 0},
+{ 5, s_3_3, -1, 1, 0},
+{ 3, s_3_4, -1, 1, 0},
+{ 3, s_3_5, -1, 1, 0},
+{ 3, s_3_6, -1, 1, 0},
+{ 4, s_3_7, -1, 1, 0},
+{ 2, s_3_8, -1, 1, 0},
+{ 4, s_3_9, 8, 1, 0},
+{ 4, s_3_10, 8, 1, 0},
+{ 3, s_3_11, -1, 1, 0},
+{ 4, s_3_12, -1, 1, 0},
+{ 3, s_3_13, -1, 1, 0},
+{ 5, s_3_14, -1, 1, 0},
+{ 4, s_3_15, -1, 1, 0},
+{ 3, s_3_16, -1, 1, 0},
+{ 3, s_3_17, -1, 1, 0},
+{ 4, s_3_18, -1, 1, 0},
+{ 3, s_3_19, -1, 1, 0},
+{ 5, s_3_20, 19, 1, 0},
+{ 5, s_3_21, 19, 1, 0},
+{ 5, s_3_22, 19, 1, 0},
+{ 3, s_3_23, -1, 1, 0},
+{ 3, s_3_24, -1, 1, 0},
+{ 4, s_3_25, -1, 1, 0},
+{ 2, s_3_26, -1, 1, 0},
+{ 2, s_3_27, -1, 1, 0},
+{ 2, s_3_28, -1, 1, 0},
+{ 2, s_3_29, -1, 1, 0},
+{ 2, s_3_30, -1, 1, 0},
+{ 3, 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, 1, 0},
+{ 4, s_3_35, -1, 1, 0},
+{ 2, s_3_36, -1, 1, 0},
+{ 3, s_3_37, -1, 1, 0},
+{ 5, s_3_38, -1, 1, 0},
+{ 4, s_3_39, -1, 1, 0},
+{ 4, s_3_40, -1, 1, 0},
+{ 2, s_3_41, -1, 1, 0},
+{ 2, s_3_42, -1, 1, 0},
+{ 4, s_3_43, 42, 1, 0},
+{ 4, s_3_44, 42, 1, 0},
+{ 5, s_3_45, 42, 1, 0},
+{ 5, s_3_46, 42, 1, 0},
+{ 6, s_3_47, 42, 1, 0},
+{ 6, s_3_48, 42, 1, 0},
+{ 5, s_3_49, 42, 1, 0},
+{ 6, s_3_50, 42, 1, 0},
+{ 4, s_3_51, 42, 1, 0},
+{ 5, s_3_52, 42, 1, 0},
+{ 5, s_3_53, 42, 1, 0},
+{ 6, s_3_54, 42, 1, 0},
+{ 4, s_3_55, 42, 1, 0},
+{ 6, s_3_56, 55, 1, 0},
+{ 6, s_3_57, 55, 1, 0},
+{ 5, s_3_58, -1, 1, 0},
+{ 5, s_3_59, -1, 1, 0},
+{ 5, s_3_60, -1, 1, 0},
+{ 6, s_3_61, -1, 1, 0},
+{ 6, s_3_62, -1, 1, 0},
+{ 6, s_3_63, -1, 1, 0},
+{ 6, s_3_64, -1, 1, 0},
+{ 3, s_3_65, -1, 1, 0},
+{ 2, s_3_66, -1, 1, 0},
+{ 4, s_3_67, 66, 1, 0},
+{ 5, s_3_68, 66, 1, 0},
+{ 4, s_3_69, 66, 1, 0},
+{ 5, s_3_70, 66, 1, 0},
+{ 4, s_3_71, 66, 1, 0},
+{ 4, s_3_72, 66, 1, 0},
+{ 6, s_3_73, 72, 1, 0},
+{ 6, s_3_74, 72, 1, 0},
+{ 6, s_3_75, 72, 1, 0},
+{ 2, s_3_76, -1, 1, 0},
+{ 3, s_3_77, 76, 1, 0},
+{ 5, s_3_78, 77, 1, 0},
+{ 5, s_3_79, 77, 1, 0},
+{ 4, s_3_80, 76, 1, 0},
+{ 4, s_3_81, 76, 1, 0},
+{ 4, s_3_82, 76, 1, 0},
+{ 5, s_3_83, 76, 1, 0},
+{ 5, s_3_84, 76, 1, 0},
+{ 4, s_3_85, 76, 1, 0},
+{ 5, s_3_86, 76, 1, 0},
+{ 5, s_3_87, 76, 1, 0},
+{ 5, s_3_88, 76, 1, 0},
+{ 5, s_3_89, 76, 1, 0},
+{ 6, s_3_90, 76, 1, 0},
+{ 6, s_3_91, 76, 1, 0},
+{ 6, s_3_92, 76, 1, 0},
+{ 6, s_3_93, 76, 1, 0},
+{ 7, s_3_94, 76, 1, 0},
+{ 4, s_3_95, 76, 1, 0},
+{ 4, s_3_96, 76, 1, 0},
+{ 5, s_3_97, 96, 1, 0},
+{ 5, s_3_98, 76, 1, 0},
+{ 4, s_3_99, 76, 1, 0},
+{ 2, s_3_100, -1, 1, 0},
+{ 4, s_3_101, 100, 1, 0},
+{ 3, s_3_102, 100, 1, 0},
+{ 4, s_3_103, 102, 1, 0},
+{ 5, s_3_104, 102, 1, 0},
+{ 5, s_3_105, 102, 1, 0},
+{ 5, s_3_106, 102, 1, 0},
+{ 6, s_3_107, 102, 1, 0},
+{ 6, s_3_108, 100, 1, 0},
+{ 5, s_3_109, 100, 1, 0},
+{ 4, s_3_110, -1, 1, 0},
+{ 5, s_3_111, -1, 1, 0},
+{ 5, s_3_112, -1, 1, 0},
+{ 5, s_3_113, -1, 1, 0},
+{ 5, s_3_114, -1, 1, 0},
+{ 4, s_3_115, -1, 1, 0},
+{ 3, s_3_116, -1, 1, 0},
+{ 3, s_3_117, -1, 1, 0},
+{ 4, s_3_118, -1, 2, 0},
+{ 5, s_3_119, -1, 1, 0},
+{ 2, s_3_120, -1, 1, 0},
+{ 3, s_3_121, -1, 1, 0},
+{ 4, s_3_122, 121, 1, 0},
+{ 4, s_3_123, -1, 1, 0},
+{ 4, s_3_124, -1, 1, 0},
+{ 2, s_3_125, -1, 1, 0},
+{ 4, s_3_126, 125, 1, 0},
+{ 2, s_3_127, -1, 1, 0},
+{ 5, s_3_128, 127, 1, 0},
+{ 2, s_3_129, -1, 1, 0},
+{ 4, s_3_130, -1, 1, 0},
+{ 2, s_3_131, -1, 1, 0},
+{ 4, s_3_132, 131, 1, 0},
+{ 4, s_3_133, 131, 1, 0},
+{ 4, s_3_134, 131, 1, 0},
+{ 4, s_3_135, 131, 1, 0},
+{ 5, s_3_136, 131, 1, 0},
+{ 4, s_3_137, 131, 1, 0},
+{ 6, s_3_138, 137, 1, 0},
+{ 6, s_3_139, 137, 1, 0},
+{ 6, s_3_140, 137, 1, 0},
+{ 3, s_3_141, -1, 1, 0},
+{ 2, s_3_142, -1, 1, 0},
+{ 4, s_3_143, 142, 1, 0},
+{ 4, s_3_144, 142, 1, 0},
+{ 4, s_3_145, 142, 1, 0},
+{ 5, s_3_146, 142, 1, 0},
+{ 5, s_3_147, 142, 1, 0},
+{ 3, s_3_148, 142, 1, 0},
+{ 5, s_3_149, 148, 1, 0},
+{ 5, s_3_150, 148, 1, 0},
+{ 4, s_3_151, 142, 1, 0},
+{ 4, s_3_152, 142, 1, 0},
+{ 6, s_3_153, 142, 1, 0},
+{ 5, s_3_154, 142, 1, 0},
+{ 4, s_3_155, 142, 1, 0},
+{ 5, s_3_156, 142, 1, 0},
+{ 5, s_3_157, 142, 1, 0},
+{ 5, s_3_158, 142, 1, 0},
+{ 5, s_3_159, 142, 1, 0},
+{ 6, s_3_160, 142, 1, 0},
+{ 4, s_3_161, 142, 1, 0},
+{ 6, s_3_162, 161, 1, 0},
+{ 7, s_3_163, 161, 1, 0},
+{ 4, s_3_164, 142, 1, 0},
+{ 4, s_3_165, 142, 1, 0},
+{ 5, s_3_166, 165, 1, 0},
+{ 5, s_3_167, 142, 1, 0},
+{ 4, s_3_168, 142, 1, 0},
+{ 5, s_3_169, -1, 1, 0},
+{ 5, s_3_170, -1, 1, 0},
+{ 6, s_3_171, -1, 1, 0},
+{ 5, s_3_172, -1, 1, 0},
+{ 7, s_3_173, 172, 1, 0},
+{ 7, s_3_174, 172, 1, 0},
+{ 7, s_3_175, 172, 1, 0},
+{ 5, s_3_176, -1, 1, 0},
+{ 6, s_3_177, -1, 1, 0},
+{ 6, s_3_178, -1, 1, 0},
+{ 6, s_3_179, -1, 1, 0},
+{ 4, s_3_180, -1, 1, 0},
+{ 3, s_3_181, -1, 1, 0},
+{ 4, s_3_182, 181, 1, 0},
+{ 5, s_3_183, 181, 1, 0},
+{ 5, s_3_184, 181, 1, 0},
+{ 5, s_3_185, 181, 1, 0},
+{ 6, s_3_186, 181, 1, 0},
+{ 6, s_3_187, -1, 1, 0},
+{ 5, s_3_188, -1, 1, 0},
+{ 5, s_3_189, -1, 1, 0},
+{ 4, s_3_190, -1, 1, 0},
+{ 6, s_3_191, -1, 1, 0},
+{ 6, s_3_192, -1, 1, 0},
+{ 6, s_3_193, -1, 1, 0},
+{ 3, s_3_194, -1, 1, 0},
+{ 4, s_3_195, -1, 1, 0},
+{ 4, s_3_196, -1, 1, 0},
+{ 4, s_3_197, -1, 1, 0},
+{ 7, s_3_198, 197, 1, 0},
+{ 7, s_3_199, 197, 1, 0},
+{ 8, s_3_200, 197, 1, 0},
+{ 6, s_3_201, 197, 1, 0},
+{ 8, s_3_202, 201, 1, 0},
+{ 8, s_3_203, 201, 1, 0},
+{ 8, s_3_204, 201, 1, 0},
+{ 6, s_3_205, -1, 1, 0},
+{ 6, s_3_206, -1, 1, 0},
+{ 6, s_3_207, -1, 1, 0},
+{ 7, s_3_208, -1, 1, 0},
+{ 8, s_3_209, -1, 1, 0},
+{ 4, s_3_210, -1, 1, 0},
+{ 5, s_3_211, -1, 1, 0},
+{ 3, s_3_212, -1, 1, 0},
+{ 5, s_3_213, 212, 1, 0},
+{ 3, s_3_214, -1, 1, 0},
+{ 3, s_3_215, -1, 1, 0},
+{ 3, s_3_216, -1, 1, 0},
+{ 4, s_3_217, -1, 1, 0},
+{ 3, s_3_218, -1, 1, 0},
+{ 5, s_3_219, 218, 1, 0},
+{ 5, s_3_220, 218, 1, 0},
+{ 5, s_3_221, -1, 1, 0},
+{ 5, s_3_222, -1, 1, 0},
+{ 5, s_3_223, -1, 1, 0},
+{ 3, s_3_224, -1, 1, 0},
+{ 5, s_3_225, 224, 1, 0},
+{ 3, s_3_226, -1, 1, 0},
+{ 4, s_3_227, -1, 1, 0},
+{ 2, s_3_228, -1, 1, 0},
+{ 2, s_3_229, -1, 1, 0},
+{ 3, s_3_230, -1, 1, 0},
+{ 3, s_3_231, -1, 1, 0},
+{ 3, s_3_232, -1, 1, 0},
+{ 2, s_3_233, -1, 1, 0},
+{ 3, s_3_234, -1, 1, 0},
+{ 2, s_3_235, -1, 1, 0},
+{ 4, s_3_236, 235, 1, 0},
+{ 3, s_3_237, -1, 1, 0},
+{ 4, s_3_238, -1, 1, 0},
+{ 4, s_3_239, -1, 1, 0},
+{ 4, s_3_240, -1, 1, 0},
+{ 5, s_3_241, -1, 1, 0},
+{ 5, s_3_242, -1, 1, 0},
+{ 5, s_3_243, -1, 1, 0},
+{ 5, s_3_244, -1, 1, 0},
+{ 7, s_3_245, 244, 1, 0},
+{ 6, s_3_246, -1, 1, 0},
+{ 6, s_3_247, -1, 1, 0},
+{ 5, s_3_248, -1, 1, 0},
+{ 6, s_3_249, -1, 1, 0},
+{ 5, s_3_250, -1, 1, 0},
+{ 5, s_3_251, -1, 1, 0},
+{ 5, s_3_252, -1, 1, 0},
+{ 4, s_3_253, -1, 1, 0},
+{ 6, s_3_254, 253, 1, 0},
+{ 4, s_3_255, -1, 1, 0},
+{ 6, s_3_256, 255, 1, 0},
+{ 6, s_3_257, 255, 1, 0},
+{ 5, s_3_258, -1, 1, 0},
+{ 5, s_3_259, -1, 1, 0},
+{ 6, s_3_260, -1, 1, 0},
+{ 6, s_3_261, -1, 1, 0},
+{ 6, s_3_262, -1, 1, 0},
+{ 6, s_3_263, -1, 1, 0},
+{ 3, s_3_264, -1, 1, 0},
+{ 2, s_3_265, -1, 1, 0},
+{ 3, s_3_266, 265, 1, 0},
+{ 3, s_3_267, -1, 1, 0},
+{ 3, s_3_268, -1, 1, 0},
+{ 3, s_3_269, -1, 1, 0},
+{ 4, s_3_270, -1, 1, 0},
+{ 4, s_3_271, -1, 1, 0},
+{ 5, s_3_272, -1, 1, 0},
+{ 4, s_3_273, -1, 1, 0},
+{ 4, s_3_274, -1, 1, 0},
+{ 4, s_3_275, -1, 1, 0},
+{ 4, s_3_276, -1, 1, 0},
+{ 4, s_3_277, -1, 1, 0},
+{ 4, s_3_278, -1, 1, 0},
+{ 4, s_3_279, -1, 1, 0},
+{ 2, s_3_280, -1, 1, 0},
+{ 3, s_3_281, -1, 1, 0},
+{ 3, s_3_282, -1, 1, 0}
 };
 
 static const symbol s_4_0[1] = { 'a' };
@@ -1143,28 +1143,28 @@ static const symbol s_4_21[2] = { 0xC3, 0xB3 };
 
 static const struct among a_4[22] =
 {
-/*  0 */ { 1, s_4_0, -1, 1, 0},
-/*  1 */ { 1, s_4_1, -1, 1, 0},
-/*  2 */ { 1, s_4_2, -1, 1, 0},
-/*  3 */ { 3, s_4_3, -1, 1, 0},
-/*  4 */ { 1, s_4_4, -1, 1, 0},
-/*  5 */ { 2, s_4_5, -1, 1, 0},
-/*  6 */ { 1, s_4_6, -1, 1, 0},
-/*  7 */ { 2, s_4_7, 6, 1, 0},
-/*  8 */ { 2, s_4_8, 6, 1, 0},
-/*  9 */ { 3, s_4_9, 6, 1, 0},
-/* 10 */ { 2, s_4_10, -1, 1, 0},
-/* 11 */ { 2, s_4_11, -1, 1, 0},
-/* 12 */ { 2, s_4_12, -1, 1, 0},
-/* 13 */ { 3, s_4_13, -1, 2, 0},
-/* 14 */ { 3, s_4_14, -1, 1, 0},
-/* 15 */ { 2, s_4_15, -1, 1, 0},
-/* 16 */ { 2, s_4_16, -1, 1, 0},
-/* 17 */ { 2, s_4_17, -1, 1, 0},
-/* 18 */ { 2, s_4_18, -1, 1, 0},
-/* 19 */ { 2, s_4_19, -1, 1, 0},
-/* 20 */ { 2, s_4_20, -1, 1, 0},
-/* 21 */ { 2, s_4_21, -1, 1, 0}
+{ 1, s_4_0, -1, 1, 0},
+{ 1, s_4_1, -1, 1, 0},
+{ 1, s_4_2, -1, 1, 0},
+{ 3, s_4_3, -1, 1, 0},
+{ 1, s_4_4, -1, 1, 0},
+{ 2, s_4_5, -1, 1, 0},
+{ 1, s_4_6, -1, 1, 0},
+{ 2, s_4_7, 6, 1, 0},
+{ 2, s_4_8, 6, 1, 0},
+{ 3, s_4_9, 6, 1, 0},
+{ 2, s_4_10, -1, 1, 0},
+{ 2, s_4_11, -1, 1, 0},
+{ 2, s_4_12, -1, 1, 0},
+{ 3, s_4_13, -1, 2, 0},
+{ 3, s_4_14, -1, 1, 0},
+{ 2, s_4_15, -1, 1, 0},
+{ 2, s_4_16, -1, 1, 0},
+{ 2, s_4_17, -1, 1, 0},
+{ 2, s_4_18, -1, 1, 0},
+{ 2, s_4_19, -1, 1, 0},
+{ 2, s_4_20, -1, 1, 0},
+{ 2, s_4_21, -1, 1, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 129, 81, 6, 10 };
@@ -1180,83 +1180,82 @@ static const symbol s_7[] = { 'i', 'c' };
 static const symbol s_8[] = { 'c' };
 static const symbol s_9[] = { 'i', 'c' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 38 */
-    z->I[1] = z->l; /* $p2 = <integer expression>, line 39 */
-    {   int c1 = z->c; /* do, line 41 */
-        {    /* gopast */ /* grouping v, line 42 */
+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;
         }
-        {    /* gopast */ /* non v, line 42 */
+        {   
             int ret = in_grouping_U(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        z->I[0] = z->c; /* setmark p1, line 42 */
-        {    /* gopast */ /* grouping v, line 43 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping_U(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 43 */
+        {   
             int ret = in_grouping_U(z, g_v, 97, 252, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p2, line 43 */
+        z->I[0] = z->c;
     lab0:
         z->c = c1;
     }
     return 1;
 }
 
-static int r_cleaning(struct SN_env * z) { /* forwardmode */
+static int r_cleaning(struct SN_env * z) {
     int among_var;
-/* repeat, line 47 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 48 */
-        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 /* substring, line 48 */
+    while(1) {
+        int c1 = z->c;
+        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; /* ], line 48 */
-        switch (among_var) { /* among, line 48 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_0); /* <-, line 49 */
+                {   int ret = slice_from_s(z, 1, s_0);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_1); /* <-, line 51 */
+                {   int ret = slice_from_s(z, 1, s_1);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_from_s(z, 1, s_2); /* <-, line 53 */
+                {   int ret = slice_from_s(z, 1, s_2);
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = slice_from_s(z, 1, s_3); /* <-, line 55 */
+                {   int ret = slice_from_s(z, 1, s_3);
                     if (ret < 0) return ret;
                 }
                 break;
             case 5:
-                {   int ret = slice_from_s(z, 1, s_4); /* <-, line 57 */
+                {   int ret = slice_from_s(z, 1, s_4);
                     if (ret < 0) return ret;
                 }
                 break;
             case 6:
-                {   int ret = slice_from_s(z, 1, s_5); /* <-, line 60 */
+                {   int ret = slice_from_s(z, 1, s_5);
                     if (ret < 0) return ret;
                 }
                 break;
             case 7:
-                {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+                {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                     if (ret < 0) goto lab0;
-                    z->c = ret; /* next, line 61 */
+                    z->c = ret;
                 }
                 break;
         }
@@ -1268,74 +1267,74 @@ static int r_cleaning(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 67 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 68 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 71 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1634850 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 71 */
+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;
-    z->bra = z->c; /* ], line 71 */
-    {   int ret = r_R1(z); /* call R1, line 81 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    {   int ret = slice_del(z); /* delete, line 81 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
+static int r_standard_suffix(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 86 */
-    among_var = find_among_b(z, a_2, 200); /* substring, line 86 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_2, 200);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 86 */
-    switch (among_var) { /* among, line 86 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R1(z); /* call R1, line 110 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 110 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 112 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 112 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = r_R2(z); /* call R2, line 114 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_6); /* <-, line 114 */
+            {   int ret = slice_from_s(z, 3, s_6);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = r_R2(z); /* call R2, line 116 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_7); /* <-, line 116 */
+            {   int ret = slice_from_s(z, 2, s_7);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = r_R1(z); /* call R1, line 118 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 1, s_8); /* <-, line 118 */
+            {   int ret = slice_from_s(z, 1, s_8);
                 if (ret < 0) return ret;
             }
             break;
@@ -1343,26 +1342,26 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
+static int r_verb_suffix(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 123 */
-    among_var = find_among_b(z, a_3, 283); /* substring, line 123 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_3, 283);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 123 */
-    switch (among_var) { /* among, line 123 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R1(z); /* call R1, line 168 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 168 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 170 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 170 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -1370,26 +1369,26 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
+static int r_residual_suffix(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 175 */
-    among_var = find_among_b(z, a_4, 22); /* substring, line 175 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_4, 22);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 175 */
-    switch (among_var) { /* among, line 175 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R1(z); /* call R1, line 178 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 178 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R1(z); /* call R1, line 180 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_9); /* <-, line 180 */
+            {   int ret = slice_from_s(z, 2, s_9);
                 if (ret < 0) return ret;
             }
             break;
@@ -1397,29 +1396,29 @@ static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int catalan_UTF_8_stem(struct SN_env * z) { /* forwardmode */
-    /* do, line 186 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 186 */
+extern int catalan_UTF_8_stem(struct SN_env * z) {
+    
+    {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 187 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m1 = z->l - z->c; (void)m1; /* do, line 188 */
-        {   int ret = r_attached_pronoun(z); /* call attached_pronoun, line 188 */
+    {   int m1 = z->l - z->c; (void)m1;
+        {   int ret = r_attached_pronoun(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m1;
     }
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 189 */
-        {   int m3 = z->l - z->c; (void)m3; /* or, line 189 */
-            {   int ret = r_standard_suffix(z); /* call standard_suffix, line 189 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int m3 = z->l - z->c; (void)m3;
+            {   int ret = r_standard_suffix(z);
                 if (ret == 0) goto lab2;
                 if (ret < 0) return ret;
             }
             goto lab1;
         lab2:
             z->c = z->l - m3;
-            {   int ret = r_verb_suffix(z); /* call verb_suffix, line 190 */
+            {   int ret = r_verb_suffix(z);
                 if (ret == 0) goto lab0;
                 if (ret < 0) return ret;
             }
@@ -1428,15 +1427,15 @@ extern int catalan_UTF_8_stem(struct SN_env * z) { /* forwardmode */
     lab0:
         z->c = z->l - m2;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 192 */
-        {   int ret = r_residual_suffix(z); /* call residual_suffix, line 192 */
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int ret = r_residual_suffix(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m4;
     }
     z->c = z->lb;
-    {   int c5 = z->c; /* do, line 194 */
-        {   int ret = r_cleaning(z); /* call cleaning, line 194 */
+    {   int c5 = z->c;
+        {   int ret = r_cleaning(z);
             if (ret < 0) return ret;
         }
         z->c = c5;
@@ -1444,7 +1443,7 @@ extern int catalan_UTF_8_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * catalan_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); }
+extern struct SN_env * catalan_UTF_8_create_env(void) { return SN_create_env(0, 2); }
 
 extern void catalan_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 9bc7e060b1d0b30cbc0abd05b8ba58f8d41bafbf..ded772b8f2d2151b5658473a6129a9bc06b9cb84 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -61,38 +61,38 @@ static const symbol s_0_31[4] = { 'e', 'r', 'e', 't' };
 
 static const struct among a_0[32] =
 {
-/*  0 */ { 3, s_0_0, -1, 1, 0},
-/*  1 */ { 5, s_0_1, 0, 1, 0},
-/*  2 */ { 4, s_0_2, -1, 1, 0},
-/*  3 */ { 1, s_0_3, -1, 1, 0},
-/*  4 */ { 5, s_0_4, 3, 1, 0},
-/*  5 */ { 4, s_0_5, 3, 1, 0},
-/*  6 */ { 6, s_0_6, 5, 1, 0},
-/*  7 */ { 3, s_0_7, 3, 1, 0},
-/*  8 */ { 4, s_0_8, 3, 1, 0},
-/*  9 */ { 3, s_0_9, 3, 1, 0},
-/* 10 */ { 2, s_0_10, -1, 1, 0},
-/* 11 */ { 5, s_0_11, 10, 1, 0},
-/* 12 */ { 4, s_0_12, 10, 1, 0},
-/* 13 */ { 2, s_0_13, -1, 1, 0},
-/* 14 */ { 5, s_0_14, 13, 1, 0},
-/* 15 */ { 4, s_0_15, 13, 1, 0},
-/* 16 */ { 1, s_0_16, -1, 2, 0},
-/* 17 */ { 4, s_0_17, 16, 1, 0},
-/* 18 */ { 2, s_0_18, 16, 1, 0},
-/* 19 */ { 5, s_0_19, 18, 1, 0},
-/* 20 */ { 7, s_0_20, 19, 1, 0},
-/* 21 */ { 4, s_0_21, 18, 1, 0},
-/* 22 */ { 5, s_0_22, 18, 1, 0},
-/* 23 */ { 4, s_0_23, 18, 1, 0},
-/* 24 */ { 3, s_0_24, 16, 1, 0},
-/* 25 */ { 6, s_0_25, 24, 1, 0},
-/* 26 */ { 5, s_0_26, 24, 1, 0},
-/* 27 */ { 3, s_0_27, 16, 1, 0},
-/* 28 */ { 3, s_0_28, 16, 1, 0},
-/* 29 */ { 5, s_0_29, 28, 1, 0},
-/* 30 */ { 2, s_0_30, -1, 1, 0},
-/* 31 */ { 4, s_0_31, 30, 1, 0}
+{ 3, s_0_0, -1, 1, 0},
+{ 5, s_0_1, 0, 1, 0},
+{ 4, s_0_2, -1, 1, 0},
+{ 1, s_0_3, -1, 1, 0},
+{ 5, s_0_4, 3, 1, 0},
+{ 4, s_0_5, 3, 1, 0},
+{ 6, s_0_6, 5, 1, 0},
+{ 3, s_0_7, 3, 1, 0},
+{ 4, s_0_8, 3, 1, 0},
+{ 3, s_0_9, 3, 1, 0},
+{ 2, s_0_10, -1, 1, 0},
+{ 5, s_0_11, 10, 1, 0},
+{ 4, s_0_12, 10, 1, 0},
+{ 2, s_0_13, -1, 1, 0},
+{ 5, s_0_14, 13, 1, 0},
+{ 4, s_0_15, 13, 1, 0},
+{ 1, s_0_16, -1, 2, 0},
+{ 4, s_0_17, 16, 1, 0},
+{ 2, s_0_18, 16, 1, 0},
+{ 5, s_0_19, 18, 1, 0},
+{ 7, s_0_20, 19, 1, 0},
+{ 4, s_0_21, 18, 1, 0},
+{ 5, s_0_22, 18, 1, 0},
+{ 4, s_0_23, 18, 1, 0},
+{ 3, s_0_24, 16, 1, 0},
+{ 6, s_0_25, 24, 1, 0},
+{ 5, s_0_26, 24, 1, 0},
+{ 3, s_0_27, 16, 1, 0},
+{ 3, s_0_28, 16, 1, 0},
+{ 5, s_0_29, 28, 1, 0},
+{ 2, s_0_30, -1, 1, 0},
+{ 4, s_0_31, 30, 1, 0}
 };
 
 static const symbol s_1_0[2] = { 'g', 'd' };
@@ -102,10 +102,10 @@ static const symbol s_1_3[2] = { 'k', 't' };
 
 static const struct among a_1[4] =
 {
-/*  0 */ { 2, s_1_0, -1, -1, 0},
-/*  1 */ { 2, s_1_1, -1, -1, 0},
-/*  2 */ { 2, s_1_2, -1, -1, 0},
-/*  3 */ { 2, s_1_3, -1, -1, 0}
+{ 2, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0},
+{ 2, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0}
 };
 
 static const symbol s_2_0[2] = { 'i', 'g' };
@@ -116,11 +116,11 @@ static const symbol s_2_4[5] = { 'l', 0xC3, 0xB8, 's', 't' };
 
 static const struct among a_2[5] =
 {
-/*  0 */ { 2, s_2_0, -1, 1, 0},
-/*  1 */ { 3, s_2_1, 0, 1, 0},
-/*  2 */ { 4, s_2_2, 1, 1, 0},
-/*  3 */ { 3, s_2_3, -1, 1, 0},
-/*  4 */ { 5, s_2_4, -1, 2, 0}
+{ 2, s_2_0, -1, 1, 0},
+{ 3, s_2_1, 0, 1, 0},
+{ 4, s_2_2, 1, 1, 0},
+{ 3, s_2_3, -1, 1, 0},
+{ 5, s_2_4, -1, 2, 0}
 };
 
 static const unsigned char g_c[] = { 119, 223, 119, 1 };
@@ -133,52 +133,52 @@ static const symbol s_0[] = { 's', 't' };
 static const symbol s_1[] = { 'i', 'g' };
 static const symbol s_2[] = { 'l', 0xC3, 0xB8, 's' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 33 */
-    {   int c_test1 = z->c; /* test, line 35 */
-        {   int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 35 */
+static int r_mark_regions(struct SN_env * z) {
+    z->I[1] = 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[1] = z->c; /* setmark x, line 35 */
+        z->I[0] = z->c;
         z->c = c_test1;
     }
-    if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 36 */
-    {    /* gopast */ /* non v, line 36 */
+    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[0] = z->c; /* setmark p1, line 36 */
-    /* try, line 37 */
-    if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 37 */
-    z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 37 */
+    z->I[1] = z->c;
+    
+    if (!(z->I[1] < z->I[0])) goto lab0;
+    z->I[1] = z->I[0];
 lab0:
     return 1;
 }
 
-static int r_main_suffix(struct SN_env * z) { /* backwardmode */
+static int r_main_suffix(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 43 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 43 */
-        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; } /* substring, line 43 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[1];
+        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; }
-        z->bra = z->c; /* ], line 43 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 44 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 50 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 52 */
-            {   int ret = slice_del(z); /* delete, line 52 */
+            if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -186,69 +186,69 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
-    {   int m_test1 = z->l - z->c; /* test, line 57 */
+static int r_consonant_pair(struct SN_env * z) {
+    {   int m_test1 = z->l - z->c;
 
-        {   int mlimit2; /* setlimit, line 58 */
-            if (z->c < z->I[0]) return 0;
-            mlimit2 = z->lb; z->lb = z->I[0];
-            z->ket = z->c; /* [, line 58 */
-            if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 58 */
+        {   int mlimit2;
+            if (z->c < z->I[1]) return 0;
+            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; }
-            z->bra = z->c; /* ], line 58 */
+            z->bra = z->c;
             z->lb = mlimit2;
         }
         z->c = z->l - m_test1;
     }
-    {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+    {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
         if (ret < 0) return 0;
-        z->c = ret; /* next, line 64 */
+        z->c = ret;
     }
-    z->bra = z->c; /* ], line 64 */
-    {   int ret = slice_del(z); /* delete, line 64 */
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_other_suffix(struct SN_env * z) { /* backwardmode */
+static int r_other_suffix(struct SN_env * z) {
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* do, line 68 */
-        z->ket = z->c; /* [, line 68 */
-        if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 68 */
-        z->bra = z->c; /* ], line 68 */
-        if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 68 */
-        {   int ret = slice_del(z); /* delete, line 68 */
+    {   int m1 = z->l - z->c; (void)m1;
+        z->ket = z->c;
+        if (!(eq_s_b(z, 2, s_0))) goto lab0;
+        z->bra = z->c;
+        if (!(eq_s_b(z, 2, s_1))) goto lab0;
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
     lab0:
         z->c = z->l - m1;
     }
 
-    {   int mlimit2; /* setlimit, line 69 */
-        if (z->c < z->I[0]) return 0;
-        mlimit2 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 69 */
-        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; } /* substring, line 69 */
+    {   int mlimit2;
+        if (z->c < z->I[1]) return 0;
+        mlimit2 = z->lb; z->lb = z->I[1];
+        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; }
-        z->bra = z->c; /* ], line 69 */
+        z->bra = z->c;
         z->lb = mlimit2;
     }
-    switch (among_var) { /* among, line 70 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 72 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m3 = z->l - z->c; (void)m3; /* do, line 72 */
-                {   int ret = r_consonant_pair(z); /* call consonant_pair, line 72 */
+            {   int m3 = z->l - z->c; (void)m3;
+                {   int ret = r_consonant_pair(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m3;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 4, s_2); /* <-, line 74 */
+            {   int ret = slice_from_s(z, 4, s_2);
                 if (ret < 0) return ret;
             }
             break;
@@ -256,54 +256,54 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_undouble(struct SN_env * z) { /* backwardmode */
+static int r_undouble(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 78 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 78 */
-        if (in_grouping_b_U(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; } /* grouping c, line 78 */
-        z->bra = z->c; /* ], line 78 */
-        z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 78 */
-        if (z->S[0] == 0) return -1; /* -> ch, line 78 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[1];
+        z->ket = z->c;
+        if (in_grouping_b_U(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; }
+        z->bra = z->c;
+        z->S[0] = slice_to(z, z->S[0]);
+        if (z->S[0] == 0) return -1;
         z->lb = mlimit1;
     }
-    if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 79 */
-    {   int ret = slice_del(z); /* delete, line 80 */
+    if (!(eq_v_b(z, z->S[0]))) return 0;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-extern int danish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 86 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 86 */
+extern int danish_UTF_8_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 87 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 88 */
-        {   int ret = r_main_suffix(z); /* call main_suffix, line 88 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_main_suffix(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 89 */
-        {   int ret = r_consonant_pair(z); /* call consonant_pair, line 89 */
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_consonant_pair(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m3;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 90 */
-        {   int ret = r_other_suffix(z); /* call other_suffix, line 90 */
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int ret = r_other_suffix(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m4;
     }
-    {   int m5 = z->l - z->c; (void)m5; /* do, line 91 */
-        {   int ret = r_undouble(z); /* call undouble, line 91 */
+    {   int m5 = z->l - z->c; (void)m5;
+        {   int ret = r_undouble(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m5;
@@ -312,7 +312,7 @@ extern int danish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * danish_UTF_8_create_env(void) { return SN_create_env(1, 2, 0); }
+extern struct SN_env * danish_UTF_8_create_env(void) { return SN_create_env(1, 2); }
 
 extern void danish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); }
 
index 56028832f1f46c3b8e6d99818ee2669ed757cbd4..bb82be87f7b94cf49fb7737785c438a1fbb9a879 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -43,17 +43,17 @@ static const symbol s_0_10[2] = { 0xC3, 0xBC };
 
 static const struct among a_0[11] =
 {
-/*  0 */ { 0, 0, -1, 6, 0},
-/*  1 */ { 2, s_0_1, 0, 1, 0},
-/*  2 */ { 2, s_0_2, 0, 1, 0},
-/*  3 */ { 2, s_0_3, 0, 2, 0},
-/*  4 */ { 2, s_0_4, 0, 2, 0},
-/*  5 */ { 2, s_0_5, 0, 3, 0},
-/*  6 */ { 2, s_0_6, 0, 3, 0},
-/*  7 */ { 2, s_0_7, 0, 4, 0},
-/*  8 */ { 2, s_0_8, 0, 4, 0},
-/*  9 */ { 2, s_0_9, 0, 5, 0},
-/* 10 */ { 2, s_0_10, 0, 5, 0}
+{ 0, 0, -1, 6, 0},
+{ 2, s_0_1, 0, 1, 0},
+{ 2, s_0_2, 0, 1, 0},
+{ 2, s_0_3, 0, 2, 0},
+{ 2, s_0_4, 0, 2, 0},
+{ 2, s_0_5, 0, 3, 0},
+{ 2, s_0_6, 0, 3, 0},
+{ 2, s_0_7, 0, 4, 0},
+{ 2, s_0_8, 0, 4, 0},
+{ 2, s_0_9, 0, 5, 0},
+{ 2, s_0_10, 0, 5, 0}
 };
 
 static const symbol s_1_1[1] = { 'I' };
@@ -61,9 +61,9 @@ static const symbol s_1_2[1] = { 'Y' };
 
 static const struct among a_1[3] =
 {
-/*  0 */ { 0, 0, -1, 3, 0},
-/*  1 */ { 1, s_1_1, 0, 2, 0},
-/*  2 */ { 1, s_1_2, 0, 1, 0}
+{ 0, 0, -1, 3, 0},
+{ 1, s_1_1, 0, 2, 0},
+{ 1, s_1_2, 0, 1, 0}
 };
 
 static const symbol s_2_0[2] = { 'd', 'd' };
@@ -72,9 +72,9 @@ static const symbol s_2_2[2] = { 't', 't' };
 
 static const struct among a_2[3] =
 {
-/*  0 */ { 2, s_2_0, -1, -1, 0},
-/*  1 */ { 2, s_2_1, -1, -1, 0},
-/*  2 */ { 2, s_2_2, -1, -1, 0}
+{ 2, s_2_0, -1, -1, 0},
+{ 2, s_2_1, -1, -1, 0},
+{ 2, s_2_2, -1, -1, 0}
 };
 
 static const symbol s_3_0[3] = { 'e', 'n', 'e' };
@@ -85,11 +85,11 @@ static const symbol s_3_4[1] = { 's' };
 
 static const struct among a_3[5] =
 {
-/*  0 */ { 3, s_3_0, -1, 2, 0},
-/*  1 */ { 2, s_3_1, -1, 3, 0},
-/*  2 */ { 2, s_3_2, -1, 2, 0},
-/*  3 */ { 5, s_3_3, 2, 1, 0},
-/*  4 */ { 1, s_3_4, -1, 3, 0}
+{ 3, s_3_0, -1, 2, 0},
+{ 2, s_3_1, -1, 3, 0},
+{ 2, s_3_2, -1, 2, 0},
+{ 5, s_3_3, 2, 1, 0},
+{ 1, s_3_4, -1, 3, 0}
 };
 
 static const symbol s_4_0[3] = { 'e', 'n', 'd' };
@@ -101,12 +101,12 @@ static const symbol s_4_5[3] = { 'b', 'a', 'r' };
 
 static const struct among a_4[6] =
 {
-/*  0 */ { 3, s_4_0, -1, 1, 0},
-/*  1 */ { 2, s_4_1, -1, 2, 0},
-/*  2 */ { 3, s_4_2, -1, 1, 0},
-/*  3 */ { 4, s_4_3, -1, 3, 0},
-/*  4 */ { 4, s_4_4, -1, 4, 0},
-/*  5 */ { 3, s_4_5, -1, 5, 0}
+{ 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, 4, 0},
+{ 3, s_4_5, -1, 5, 0}
 };
 
 static const symbol s_5_0[2] = { 'a', 'a' };
@@ -116,10 +116,10 @@ static const symbol s_5_3[2] = { 'u', 'u' };
 
 static const struct among a_5[4] =
 {
-/*  0 */ { 2, s_5_0, -1, -1, 0},
-/*  1 */ { 2, s_5_1, -1, -1, 0},
-/*  2 */ { 2, s_5_2, -1, -1, 0},
-/*  3 */ { 2, s_5_3, -1, -1, 0}
+{ 2, s_5_0, -1, -1, 0},
+{ 2, s_5_1, -1, -1, 0},
+{ 2, s_5_2, -1, -1, 0},
+{ 2, s_5_3, -1, -1, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
@@ -144,47 +144,46 @@ static const symbol s_12[] = { 'h', 'e', 'i', 'd' };
 static const symbol s_13[] = { 'e', 'n' };
 static const symbol s_14[] = { 'i', 'g' };
 
-static int r_prelude(struct SN_env * z) { /* forwardmode */
+static int r_prelude(struct SN_env * z) {
     int among_var;
-    {   int c_test1 = z->c; /* test, line 42 */
-/* repeat, line 42 */
-
-        while(1) {            int c2 = z->c;
-            z->bra = z->c; /* [, line 43 */
-            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 /* substring, line 43 */
+    {   int c_test1 = z->c;
+        while(1) {
+            int c2 = z->c;
+            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; /* ], line 43 */
-            switch (among_var) { /* among, line 43 */
+            z->ket = z->c;
+            switch (among_var) {
                 case 1:
-                    {   int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
+                    {   int ret = slice_from_s(z, 1, s_0);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 2:
-                    {   int ret = slice_from_s(z, 1, s_1); /* <-, line 47 */
+                    {   int ret = slice_from_s(z, 1, s_1);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 3:
-                    {   int ret = slice_from_s(z, 1, s_2); /* <-, line 49 */
+                    {   int ret = slice_from_s(z, 1, s_2);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 4:
-                    {   int ret = slice_from_s(z, 1, s_3); /* <-, line 51 */
+                    {   int ret = slice_from_s(z, 1, s_3);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 5:
-                    {   int ret = slice_from_s(z, 1, s_4); /* <-, line 53 */
+                    {   int ret = slice_from_s(z, 1, s_4);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 6:
-                    {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+                    {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                         if (ret < 0) goto lab0;
-                        z->c = ret; /* next, line 54 */
+                        z->c = ret;
                     }
                     break;
             }
@@ -195,39 +194,38 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
         }
         z->c = c_test1;
     }
-    {   int c3 = z->c; /* try, line 57 */
-        z->bra = z->c; /* [, line 57 */
-        if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } /* literal, line 57 */
+    {   int c3 = z->c;
+        z->bra = z->c;
+        if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; }
         z->c++;
-        z->ket = z->c; /* ], line 57 */
-        {   int ret = slice_from_s(z, 1, s_5); /* <-, line 57 */
+        z->ket = z->c;
+        {   int ret = slice_from_s(z, 1, s_5);
             if (ret < 0) return ret;
         }
     lab1:
         ;
     }
-/* repeat, line 58 */
-
-    while(1) {        int c4 = z->c;
-        while(1) { /* goto, line 58 */
+    while(1) {
+        int c4 = z->c;
+        while(1) {
             int c5 = z->c;
-            if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3; /* grouping v, line 59 */
-            z->bra = z->c; /* [, line 59 */
-            {   int c6 = z->c; /* or, line 59 */
-                if (z->c == z->l || z->p[z->c] != 'i') goto lab5; /* literal, line 59 */
+            if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3;
+            z->bra = z->c;
+            {   int c6 = z->c;
+                if (z->c == z->l || z->p[z->c] != 'i') goto lab5;
                 z->c++;
-                z->ket = z->c; /* ], line 59 */
-                if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5; /* grouping v, line 59 */
-                {   int ret = slice_from_s(z, 1, s_6); /* <-, line 59 */
+                z->ket = z->c;
+                if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5;
+                {   int ret = slice_from_s(z, 1, s_6);
                     if (ret < 0) return ret;
                 }
                 goto lab4;
             lab5:
                 z->c = c6;
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 60 */
+                if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
                 z->c++;
-                z->ket = z->c; /* ], line 60 */
-                {   int ret = slice_from_s(z, 1, s_7); /* <-, line 60 */
+                z->ket = z->c;
+                {   int ret = slice_from_s(z, 1, s_7);
                     if (ret < 0) return ret;
                 }
             }
@@ -236,9 +234,9 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
             break;
         lab3:
             z->c = c5;
-            {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+            {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                 if (ret < 0) goto lab2;
-                z->c = ret; /* goto, line 58 */
+                z->c = ret;
             }
         }
         continue;
@@ -249,63 +247,62 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 66 */
-    z->I[1] = z->l; /* $p2 = <integer expression>, line 67 */
-    {    /* gopast */ /* grouping v, line 69 */
+static int r_mark_regions(struct SN_env * z) {
+    z->I[1] = z->l;
+    z->I[0] = z->l;
+    {   
         int ret = out_grouping_U(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {    /* gopast */ /* non v, line 69 */
+    {   
         int ret = in_grouping_U(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[0] = z->c; /* setmark p1, line 69 */
-    /* try, line 70 */
-    if (!(z->I[0] < 3)) goto lab0; /* $(<integer expression> < <integer expression>), line 70 */
-    z->I[0] = 3; /* $p1 = <integer expression>, line 70 */
+    z->I[1] = z->c;
+    
+    if (!(z->I[1] < 3)) goto lab0;
+    z->I[1] = 3;
 lab0:
-    {    /* gopast */ /* grouping v, line 71 */
+    {   
         int ret = out_grouping_U(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {    /* gopast */ /* non v, line 71 */
+    {   
         int ret = in_grouping_U(z, g_v, 97, 232, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[1] = z->c; /* setmark p2, line 71 */
+    z->I[0] = z->c;
     return 1;
 }
 
-static int r_postlude(struct SN_env * z) { /* forwardmode */
+static int r_postlude(struct SN_env * z) {
     int among_var;
-/* repeat, line 75 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 77 */
-        if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else /* substring, line 77 */
+    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] != 89)) among_var = 3; else
         among_var = find_among(z, a_1, 3);
         if (!(among_var)) goto lab0;
-        z->ket = z->c; /* ], line 77 */
-        switch (among_var) { /* among, line 77 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_8); /* <-, line 78 */
+                {   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_9); /* <-, line 79 */
+                {   int ret = slice_from_s(z, 1, s_9);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+                {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                     if (ret < 0) goto lab0;
-                    z->c = ret; /* next, line 80 */
+                    z->c = ret;
                 }
                 break;
         }
@@ -317,111 +314,111 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 87 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 88 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_undouble(struct SN_env * z) { /* backwardmode */
-    {   int m_test1 = z->l - z->c; /* test, line 91 */
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 91 */
+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;
         z->c = z->l - m_test1;
     }
-    z->ket = z->c; /* [, line 91 */
-    {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+    z->ket = z->c;
+    {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
         if (ret < 0) return 0;
-        z->c = ret; /* next, line 91 */
+        z->c = ret;
     }
-    z->bra = z->c; /* ], line 91 */
-    {   int ret = slice_del(z); /* delete, line 91 */
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_e_ending(struct SN_env * z) { /* backwardmode */
-    z->B[0] = 0; /* unset e_found, line 95 */
-    z->ket = z->c; /* [, line 96 */
-    if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 96 */
+static int r_e_ending(struct SN_env * z) {
+    z->I[2] = 0;
+    z->ket = z->c;
+    if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
     z->c--;
-    z->bra = z->c; /* ], line 96 */
-    {   int ret = r_R1(z); /* call R1, line 96 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    {   int m_test1 = z->l - z->c; /* test, line 96 */
-        if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; /* non v, line 96 */
+    {   int m_test1 = z->l - z->c;
+        if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0;
         z->c = z->l - m_test1;
     }
-    {   int ret = slice_del(z); /* delete, line 96 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    z->B[0] = 1; /* set e_found, line 97 */
-    {   int ret = r_undouble(z); /* call undouble, line 98 */
+    z->I[2] = 1;
+    {   int ret = r_undouble(z);
         if (ret <= 0) return ret;
     }
     return 1;
 }
 
-static int r_en_ending(struct SN_env * z) { /* backwardmode */
-    {   int ret = r_R1(z); /* call R1, line 102 */
+static int r_en_ending(struct SN_env * z) {
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    {   int m1 = z->l - z->c; (void)m1; /* and, line 102 */
-        if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; /* non v, line 102 */
+    {   int m1 = z->l - z->c; (void)m1;
+        if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0;
         z->c = z->l - m1;
-        {   int m2 = z->l - z->c; (void)m2; /* not, line 102 */
-            if (!(eq_s_b(z, 3, s_10))) goto lab0; /* literal, line 102 */
+        {   int m2 = z->l - z->c; (void)m2;
+            if (!(eq_s_b(z, 3, s_10))) goto lab0;
             return 0;
         lab0:
             z->c = z->l - m2;
         }
     }
-    {   int ret = slice_del(z); /* delete, line 102 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    {   int ret = r_undouble(z); /* call undouble, line 103 */
+    {   int ret = r_undouble(z);
         if (ret <= 0) return ret;
     }
     return 1;
 }
 
-static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
+static int r_standard_suffix(struct SN_env * z) {
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* do, line 107 */
-        z->ket = z->c; /* [, line 108 */
-        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 108 */
+    {   int m1 = z->l - z->c; (void)m1;
+        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;
-        z->bra = z->c; /* ], line 108 */
-        switch (among_var) { /* among, line 108 */
+        z->bra = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = r_R1(z); /* call R1, line 110 */
+                {   int ret = r_R1(z);
                     if (ret == 0) goto lab0;
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_from_s(z, 4, s_11); /* <-, line 110 */
+                {   int ret = slice_from_s(z, 4, s_11);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = r_en_ending(z); /* call en_ending, line 113 */
+                {   int ret = r_en_ending(z);
                     if (ret == 0) goto lab0;
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = r_R1(z); /* call R1, line 116 */
+                {   int ret = r_R1(z);
                     if (ret == 0) goto lab0;
                     if (ret < 0) return ret;
                 }
-                if (out_grouping_b_U(z, g_v_j, 97, 232, 0)) goto lab0; /* non v_j, line 116 */
-                {   int ret = slice_del(z); /* delete, line 116 */
+                if (out_grouping_b_U(z, g_v_j, 97, 232, 0)) goto lab0;
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -429,77 +426,77 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     lab0:
         z->c = z->l - m1;
     }
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 120 */
-        {   int ret = r_e_ending(z); /* call e_ending, line 120 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_e_ending(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 122 */
-        z->ket = z->c; /* [, line 122 */
-        if (!(eq_s_b(z, 4, s_12))) goto lab1; /* literal, line 122 */
-        z->bra = z->c; /* ], line 122 */
-        {   int ret = r_R2(z); /* call R2, line 122 */
+    {   int m3 = z->l - z->c; (void)m3;
+        z->ket = z->c;
+        if (!(eq_s_b(z, 4, s_12))) goto lab1;
+        z->bra = z->c;
+        {   int ret = r_R2(z);
             if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
-        {   int m4 = z->l - z->c; (void)m4; /* not, line 122 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2; /* literal, line 122 */
+        {   int m4 = z->l - z->c; (void)m4;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2;
             z->c--;
             goto lab1;
         lab2:
             z->c = z->l - m4;
         }
-        {   int ret = slice_del(z); /* delete, line 122 */
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
-        z->ket = z->c; /* [, line 123 */
-        if (!(eq_s_b(z, 2, s_13))) goto lab1; /* literal, line 123 */
-        z->bra = z->c; /* ], line 123 */
-        {   int ret = r_en_ending(z); /* call en_ending, line 123 */
+        z->ket = z->c;
+        if (!(eq_s_b(z, 2, s_13))) goto lab1;
+        z->bra = z->c;
+        {   int ret = r_en_ending(z);
             if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
     lab1:
         z->c = z->l - m3;
     }
-    {   int m5 = z->l - z->c; (void)m5; /* do, line 126 */
-        z->ket = z->c; /* [, line 127 */
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 127 */
+    {   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 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
         among_var = find_among_b(z, a_4, 6);
         if (!(among_var)) goto lab3;
-        z->bra = z->c; /* ], line 127 */
-        switch (among_var) { /* among, line 127 */
+        z->bra = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = r_R2(z); /* call R2, line 129 */
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 129 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m6 = z->l - z->c; (void)m6; /* or, line 130 */
-                    z->ket = z->c; /* [, line 130 */
-                    if (!(eq_s_b(z, 2, s_14))) goto lab5; /* literal, line 130 */
-                    z->bra = z->c; /* ], line 130 */
-                    {   int ret = r_R2(z); /* call R2, line 130 */
+                {   int m6 = z->l - z->c; (void)m6;
+                    z->ket = z->c;
+                    if (!(eq_s_b(z, 2, s_14))) goto lab5;
+                    z->bra = z->c;
+                    {   int ret = r_R2(z);
                         if (ret == 0) goto lab5;
                         if (ret < 0) return ret;
                     }
-                    {   int m7 = z->l - z->c; (void)m7; /* not, line 130 */
-                        if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 130 */
+                    {   int m7 = z->l - z->c; (void)m7;
+                        if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
                         z->c--;
                         goto lab5;
                     lab6:
                         z->c = z->l - m7;
                     }
-                    {   int ret = slice_del(z); /* delete, line 130 */
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                     goto lab4;
                 lab5:
                     z->c = z->l - m6;
-                    {   int ret = r_undouble(z); /* call undouble, line 130 */
+                    {   int ret = r_undouble(z);
                         if (ret == 0) goto lab3;
                         if (ret < 0) return ret;
                     }
@@ -507,50 +504,50 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             lab4:
                 break;
             case 2:
-                {   int ret = r_R2(z); /* call R2, line 133 */
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
-                {   int m8 = z->l - z->c; (void)m8; /* not, line 133 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7; /* literal, line 133 */
+                {   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;
                 lab7:
                     z->c = z->l - m8;
                 }
-                {   int ret = slice_del(z); /* delete, line 133 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = r_R2(z); /* call R2, line 136 */
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 136 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int ret = r_e_ending(z); /* call e_ending, line 136 */
+                {   int ret = r_e_ending(z);
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = r_R2(z); /* call R2, line 139 */
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 139 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 5:
-                {   int ret = r_R2(z); /* call R2, line 142 */
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab3;
                     if (ret < 0) return ret;
                 }
-                if (!(z->B[0])) goto lab3; /* Boolean test e_found, line 142 */
-                {   int ret = slice_del(z); /* delete, line 142 */
+                if (!(z->I[2])) goto lab3;
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -558,21 +555,21 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     lab3:
         z->c = z->l - m5;
     }
-    {   int m9 = z->l - z->c; (void)m9; /* do, line 146 */
-        if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab8; /* non v_I, line 147 */
-        {   int m_test10 = z->l - z->c; /* test, line 148 */
-            if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8; /* among, line 149 */
+    {   int m9 = z->l - z->c; (void)m9;
+        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 (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab8; /* non v, line 150 */
+            if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab8;
             z->c = z->l - m_test10;
         }
-        z->ket = z->c; /* [, line 152 */
-        {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+        z->ket = z->c;
+        {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
             if (ret < 0) goto lab8;
-            z->c = ret; /* next, line 152 */
+            z->c = ret;
         }
-        z->bra = z->c; /* ], line 152 */
-        {   int ret = slice_del(z); /* delete, line 152 */
+        z->bra = z->c;
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
     lab8:
@@ -581,28 +578,28 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-extern int dutch_UTF_8_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 159 */
-        {   int ret = r_prelude(z); /* call prelude, line 159 */
+extern int dutch_UTF_8_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_prelude(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    {   int c2 = z->c; /* do, line 160 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 160 */
+    {   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; /* backwards, line 161 */
+    z->lb = z->c; z->c = z->l;
 
-    /* do, line 162 */
-    {   int ret = r_standard_suffix(z); /* call standard_suffix, line 162 */
+    
+    {   int ret = r_standard_suffix(z);
         if (ret < 0) return ret;
     }
     z->c = z->lb;
-    {   int c3 = z->c; /* do, line 163 */
-        {   int ret = r_postlude(z); /* call postlude, line 163 */
+    {   int c3 = z->c;
+        {   int ret = r_postlude(z);
             if (ret < 0) return ret;
         }
         z->c = c3;
@@ -610,7 +607,7 @@ extern int dutch_UTF_8_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); }
+extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 3); }
 
 extern void dutch_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index e03c37c98a3bdd50f5b035607d45cc8826fc1ac5..f94d08f9f727bf5253bdeba463d1b7840a564090 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -42,9 +42,9 @@ static const symbol s_0_2[5] = { 'g', 'e', 'n', 'e', 'r' };
 
 static const struct among a_0[3] =
 {
-/*  0 */ { 5, s_0_0, -1, -1, 0},
-/*  1 */ { 6, s_0_1, -1, -1, 0},
-/*  2 */ { 5, s_0_2, -1, -1, 0}
+{ 5, s_0_0, -1, -1, 0},
+{ 6, s_0_1, -1, -1, 0},
+{ 5, s_0_2, -1, -1, 0}
 };
 
 static const symbol s_1_0[1] = { '\'' };
@@ -53,9 +53,9 @@ static const symbol s_1_2[2] = { '\'', 's' };
 
 static const struct among a_1[3] =
 {
-/*  0 */ { 1, s_1_0, -1, 1, 0},
-/*  1 */ { 3, s_1_1, 0, 1, 0},
-/*  2 */ { 2, s_1_2, -1, 1, 0}
+{ 1, s_1_0, -1, 1, 0},
+{ 3, s_1_1, 0, 1, 0},
+{ 2, s_1_2, -1, 1, 0}
 };
 
 static const symbol s_2_0[3] = { 'i', 'e', 'd' };
@@ -67,12 +67,12 @@ static const symbol s_2_5[2] = { 'u', 's' };
 
 static const struct among a_2[6] =
 {
-/*  0 */ { 3, s_2_0, -1, 2, 0},
-/*  1 */ { 1, s_2_1, -1, 3, 0},
-/*  2 */ { 3, s_2_2, 1, 2, 0},
-/*  3 */ { 4, s_2_3, 1, 1, 0},
-/*  4 */ { 2, s_2_4, 1, -1, 0},
-/*  5 */ { 2, s_2_5, 1, -1, 0}
+{ 3, s_2_0, -1, 2, 0},
+{ 1, s_2_1, -1, 3, 0},
+{ 3, s_2_2, 1, 2, 0},
+{ 4, s_2_3, 1, 1, 0},
+{ 2, s_2_4, 1, -1, 0},
+{ 2, s_2_5, 1, -1, 0}
 };
 
 static const symbol s_3_1[2] = { 'b', 'b' };
@@ -90,19 +90,19 @@ static const symbol s_3_12[2] = { 'i', 'z' };
 
 static const struct among a_3[13] =
 {
-/*  0 */ { 0, 0, -1, 3, 0},
-/*  1 */ { 2, s_3_1, 0, 2, 0},
-/*  2 */ { 2, s_3_2, 0, 2, 0},
-/*  3 */ { 2, s_3_3, 0, 2, 0},
-/*  4 */ { 2, s_3_4, 0, 2, 0},
-/*  5 */ { 2, s_3_5, 0, 1, 0},
-/*  6 */ { 2, s_3_6, 0, 2, 0},
-/*  7 */ { 2, s_3_7, 0, 2, 0},
-/*  8 */ { 2, s_3_8, 0, 2, 0},
-/*  9 */ { 2, s_3_9, 0, 2, 0},
-/* 10 */ { 2, s_3_10, 0, 1, 0},
-/* 11 */ { 2, s_3_11, 0, 2, 0},
-/* 12 */ { 2, s_3_12, 0, 1, 0}
+{ 0, 0, -1, 3, 0},
+{ 2, s_3_1, 0, 2, 0},
+{ 2, s_3_2, 0, 2, 0},
+{ 2, s_3_3, 0, 2, 0},
+{ 2, s_3_4, 0, 2, 0},
+{ 2, s_3_5, 0, 1, 0},
+{ 2, s_3_6, 0, 2, 0},
+{ 2, s_3_7, 0, 2, 0},
+{ 2, s_3_8, 0, 2, 0},
+{ 2, s_3_9, 0, 2, 0},
+{ 2, s_3_10, 0, 1, 0},
+{ 2, s_3_11, 0, 2, 0},
+{ 2, s_3_12, 0, 1, 0}
 };
 
 static const symbol s_4_0[2] = { 'e', 'd' };
@@ -114,12 +114,12 @@ static const symbol s_4_5[5] = { 'i', 'n', 'g', 'l', 'y' };
 
 static const struct among a_4[6] =
 {
-/*  0 */ { 2, s_4_0, -1, 2, 0},
-/*  1 */ { 3, s_4_1, 0, 1, 0},
-/*  2 */ { 3, s_4_2, -1, 2, 0},
-/*  3 */ { 4, s_4_3, -1, 2, 0},
-/*  4 */ { 5, s_4_4, 3, 1, 0},
-/*  5 */ { 5, s_4_5, -1, 2, 0}
+{ 2, s_4_0, -1, 2, 0},
+{ 3, s_4_1, 0, 1, 0},
+{ 3, s_4_2, -1, 2, 0},
+{ 4, s_4_3, -1, 2, 0},
+{ 5, s_4_4, 3, 1, 0},
+{ 5, s_4_5, -1, 2, 0}
 };
 
 static const symbol s_5_0[4] = { 'a', 'n', 'c', 'i' };
@@ -149,30 +149,30 @@ static const symbol s_5_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
 
 static const struct among a_5[24] =
 {
-/*  0 */ { 4, s_5_0, -1, 3, 0},
-/*  1 */ { 4, s_5_1, -1, 2, 0},
-/*  2 */ { 3, s_5_2, -1, 13, 0},
-/*  3 */ { 2, s_5_3, -1, 15, 0},
-/*  4 */ { 3, s_5_4, 3, 12, 0},
-/*  5 */ { 4, s_5_5, 4, 4, 0},
-/*  6 */ { 4, s_5_6, 3, 8, 0},
-/*  7 */ { 5, s_5_7, 3, 9, 0},
-/*  8 */ { 6, s_5_8, 3, 14, 0},
-/*  9 */ { 5, s_5_9, 3, 10, 0},
-/* 10 */ { 5, s_5_10, 3, 5, 0},
-/* 11 */ { 5, s_5_11, -1, 8, 0},
-/* 12 */ { 6, s_5_12, -1, 12, 0},
-/* 13 */ { 5, s_5_13, -1, 11, 0},
-/* 14 */ { 6, s_5_14, -1, 1, 0},
-/* 15 */ { 7, s_5_15, 14, 7, 0},
-/* 16 */ { 5, s_5_16, -1, 8, 0},
-/* 17 */ { 5, s_5_17, -1, 7, 0},
-/* 18 */ { 7, s_5_18, 17, 6, 0},
-/* 19 */ { 4, s_5_19, -1, 6, 0},
-/* 20 */ { 4, s_5_20, -1, 7, 0},
-/* 21 */ { 7, s_5_21, -1, 11, 0},
-/* 22 */ { 7, s_5_22, -1, 9, 0},
-/* 23 */ { 7, s_5_23, -1, 10, 0}
+{ 4, s_5_0, -1, 3, 0},
+{ 4, s_5_1, -1, 2, 0},
+{ 3, s_5_2, -1, 13, 0},
+{ 2, s_5_3, -1, 15, 0},
+{ 3, s_5_4, 3, 12, 0},
+{ 4, s_5_5, 4, 4, 0},
+{ 4, s_5_6, 3, 8, 0},
+{ 5, s_5_7, 3, 9, 0},
+{ 6, s_5_8, 3, 14, 0},
+{ 5, s_5_9, 3, 10, 0},
+{ 5, s_5_10, 3, 5, 0},
+{ 5, s_5_11, -1, 8, 0},
+{ 6, s_5_12, -1, 12, 0},
+{ 5, s_5_13, -1, 11, 0},
+{ 6, s_5_14, -1, 1, 0},
+{ 7, s_5_15, 14, 7, 0},
+{ 5, s_5_16, -1, 8, 0},
+{ 5, s_5_17, -1, 7, 0},
+{ 7, s_5_18, 17, 6, 0},
+{ 4, s_5_19, -1, 6, 0},
+{ 4, s_5_20, -1, 7, 0},
+{ 7, s_5_21, -1, 11, 0},
+{ 7, s_5_22, -1, 9, 0},
+{ 7, s_5_23, -1, 10, 0}
 };
 
 static const symbol s_6_0[5] = { 'i', 'c', 'a', 't', 'e' };
@@ -187,15 +187,15 @@ static const symbol s_6_8[4] = { 'n', 'e', 's', 's' };
 
 static const struct among a_6[9] =
 {
-/*  0 */ { 5, s_6_0, -1, 4, 0},
-/*  1 */ { 5, s_6_1, -1, 6, 0},
-/*  2 */ { 5, s_6_2, -1, 3, 0},
-/*  3 */ { 5, s_6_3, -1, 4, 0},
-/*  4 */ { 4, s_6_4, -1, 4, 0},
-/*  5 */ { 6, s_6_5, -1, 1, 0},
-/*  6 */ { 7, s_6_6, 5, 2, 0},
-/*  7 */ { 3, s_6_7, -1, 5, 0},
-/*  8 */ { 4, s_6_8, -1, 5, 0}
+{ 5, s_6_0, -1, 4, 0},
+{ 5, s_6_1, -1, 6, 0},
+{ 5, s_6_2, -1, 3, 0},
+{ 5, s_6_3, -1, 4, 0},
+{ 4, s_6_4, -1, 4, 0},
+{ 6, s_6_5, -1, 1, 0},
+{ 7, s_6_6, 5, 2, 0},
+{ 3, s_6_7, -1, 5, 0},
+{ 4, s_6_8, -1, 5, 0}
 };
 
 static const symbol s_7_0[2] = { 'i', 'c' };
@@ -219,24 +219,24 @@ static const symbol s_7_17[5] = { 'e', 'm', 'e', 'n', 't' };
 
 static const struct among a_7[18] =
 {
-/*  0 */ { 2, s_7_0, -1, 1, 0},
-/*  1 */ { 4, s_7_1, -1, 1, 0},
-/*  2 */ { 4, s_7_2, -1, 1, 0},
-/*  3 */ { 4, s_7_3, -1, 1, 0},
-/*  4 */ { 4, s_7_4, -1, 1, 0},
-/*  5 */ { 3, s_7_5, -1, 1, 0},
-/*  6 */ { 3, s_7_6, -1, 1, 0},
-/*  7 */ { 3, s_7_7, -1, 1, 0},
-/*  8 */ { 3, s_7_8, -1, 1, 0},
-/*  9 */ { 2, s_7_9, -1, 1, 0},
-/* 10 */ { 3, s_7_10, -1, 1, 0},
-/* 11 */ { 3, s_7_11, -1, 2, 0},
-/* 12 */ { 2, s_7_12, -1, 1, 0},
-/* 13 */ { 3, s_7_13, -1, 1, 0},
-/* 14 */ { 3, s_7_14, -1, 1, 0},
-/* 15 */ { 3, s_7_15, -1, 1, 0},
-/* 16 */ { 4, s_7_16, 15, 1, 0},
-/* 17 */ { 5, s_7_17, 16, 1, 0}
+{ 2, s_7_0, -1, 1, 0},
+{ 4, s_7_1, -1, 1, 0},
+{ 4, s_7_2, -1, 1, 0},
+{ 4, s_7_3, -1, 1, 0},
+{ 4, s_7_4, -1, 1, 0},
+{ 3, s_7_5, -1, 1, 0},
+{ 3, s_7_6, -1, 1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 3, s_7_8, -1, 1, 0},
+{ 2, s_7_9, -1, 1, 0},
+{ 3, s_7_10, -1, 1, 0},
+{ 3, s_7_11, -1, 2, 0},
+{ 2, s_7_12, -1, 1, 0},
+{ 3, s_7_13, -1, 1, 0},
+{ 3, s_7_14, -1, 1, 0},
+{ 3, s_7_15, -1, 1, 0},
+{ 4, s_7_16, 15, 1, 0},
+{ 5, s_7_17, 16, 1, 0}
 };
 
 static const symbol s_8_0[1] = { 'e' };
@@ -244,8 +244,8 @@ static const symbol s_8_1[1] = { 'l' };
 
 static const struct among a_8[2] =
 {
-/*  0 */ { 1, s_8_0, -1, 1, 0},
-/*  1 */ { 1, s_8_1, -1, 2, 0}
+{ 1, s_8_0, -1, 1, 0},
+{ 1, s_8_1, -1, 2, 0}
 };
 
 static const symbol s_9_0[7] = { 's', 'u', 'c', 'c', 'e', 'e', 'd' };
@@ -259,14 +259,14 @@ static const symbol s_9_7[6] = { 'o', 'u', 't', 'i', 'n', 'g' };
 
 static const struct among a_9[8] =
 {
-/*  0 */ { 7, s_9_0, -1, -1, 0},
-/*  1 */ { 7, s_9_1, -1, -1, 0},
-/*  2 */ { 6, s_9_2, -1, -1, 0},
-/*  3 */ { 7, s_9_3, -1, -1, 0},
-/*  4 */ { 6, s_9_4, -1, -1, 0},
-/*  5 */ { 7, s_9_5, -1, -1, 0},
-/*  6 */ { 7, s_9_6, -1, -1, 0},
-/*  7 */ { 6, s_9_7, -1, -1, 0}
+{ 7, s_9_0, -1, -1, 0},
+{ 7, s_9_1, -1, -1, 0},
+{ 6, s_9_2, -1, -1, 0},
+{ 7, s_9_3, -1, -1, 0},
+{ 6, s_9_4, -1, -1, 0},
+{ 7, s_9_5, -1, -1, 0},
+{ 7, s_9_6, -1, -1, 0},
+{ 6, s_9_7, -1, -1, 0}
 };
 
 static const symbol s_10_0[5] = { 'a', 'n', 'd', 'e', 's' };
@@ -290,24 +290,24 @@ static const symbol s_10_17[4] = { 'u', 'g', 'l', 'y' };
 
 static const struct among a_10[18] =
 {
-/*  0 */ { 5, s_10_0, -1, -1, 0},
-/*  1 */ { 5, s_10_1, -1, -1, 0},
-/*  2 */ { 4, s_10_2, -1, -1, 0},
-/*  3 */ { 6, s_10_3, -1, -1, 0},
-/*  4 */ { 5, s_10_4, -1, 3, 0},
-/*  5 */ { 5, s_10_5, -1, 9, 0},
-/*  6 */ { 6, s_10_6, -1, 7, 0},
-/*  7 */ { 4, s_10_7, -1, -1, 0},
-/*  8 */ { 4, s_10_8, -1, 6, 0},
-/*  9 */ { 5, s_10_9, -1, 4, 0},
-/* 10 */ { 4, s_10_10, -1, -1, 0},
-/* 11 */ { 4, s_10_11, -1, 10, 0},
-/* 12 */ { 6, s_10_12, -1, 11, 0},
-/* 13 */ { 5, s_10_13, -1, 2, 0},
-/* 14 */ { 4, s_10_14, -1, 1, 0},
-/* 15 */ { 3, s_10_15, -1, -1, 0},
-/* 16 */ { 5, s_10_16, -1, 5, 0},
-/* 17 */ { 4, s_10_17, -1, 8, 0}
+{ 5, s_10_0, -1, -1, 0},
+{ 5, s_10_1, -1, -1, 0},
+{ 4, s_10_2, -1, -1, 0},
+{ 6, s_10_3, -1, -1, 0},
+{ 5, s_10_4, -1, 3, 0},
+{ 5, s_10_5, -1, 9, 0},
+{ 6, s_10_6, -1, 7, 0},
+{ 4, s_10_7, -1, -1, 0},
+{ 4, s_10_8, -1, 6, 0},
+{ 5, s_10_9, -1, 4, 0},
+{ 4, s_10_10, -1, -1, 0},
+{ 4, s_10_11, -1, 10, 0},
+{ 6, s_10_12, -1, 11, 0},
+{ 5, s_10_13, -1, 2, 0},
+{ 4, s_10_14, -1, 1, 0},
+{ 3, s_10_15, -1, -1, 0},
+{ 5, s_10_16, -1, 5, 0},
+{ 4, s_10_17, -1, 8, 0}
 };
 
 static const unsigned char g_v[] = { 17, 65, 16, 1 };
@@ -356,55 +356,54 @@ static const symbol s_36[] = { 'o', 'n', 'l', 'i' };
 static const symbol s_37[] = { 's', 'i', 'n', 'g', 'l' };
 static const symbol s_38[] = { 'y' };
 
-static int r_prelude(struct SN_env * z) { /* forwardmode */
-    z->B[0] = 0; /* unset Y_found, line 26 */
-    {   int c1 = z->c; /* do, line 27 */
-        z->bra = z->c; /* [, line 27 */
-        if (z->c == z->l || z->p[z->c] != '\'') goto lab0; /* literal, line 27 */
+static int r_prelude(struct SN_env * z) {
+    z->I[2] = 0;
+    {   int c1 = z->c;
+        z->bra = z->c;
+        if (z->c == z->l || z->p[z->c] != '\'') goto lab0;
         z->c++;
-        z->ket = z->c; /* ], line 27 */
-        {   int ret = slice_del(z); /* delete, line 27 */
+        z->ket = z->c;
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
     lab0:
         z->c = c1;
     }
-    {   int c2 = z->c; /* do, line 28 */
-        z->bra = z->c; /* [, line 28 */
-        if (z->c == z->l || z->p[z->c] != 'y') goto lab1; /* literal, line 28 */
+    {   int c2 = z->c;
+        z->bra = z->c;
+        if (z->c == z->l || z->p[z->c] != 'y') goto lab1;
         z->c++;
-        z->ket = z->c; /* ], line 28 */
-        {   int ret = slice_from_s(z, 1, s_0); /* <-, line 28 */
+        z->ket = z->c;
+        {   int ret = slice_from_s(z, 1, s_0);
             if (ret < 0) return ret;
         }
-        z->B[0] = 1; /* set Y_found, line 28 */
+        z->I[2] = 1;
     lab1:
         z->c = c2;
     }
-    {   int c3 = z->c; /* do, line 29 */
-/* repeat, line 29 */
-
-        while(1) {            int c4 = z->c;
-            while(1) { /* goto, line 29 */
+    {   int c3 = z->c;
+        while(1) {
+            int c4 = z->c;
+            while(1) {
                 int c5 = z->c;
-                if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab4; /* grouping v, line 29 */
-                z->bra = z->c; /* [, line 29 */
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 29 */
+                if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab4;
+                z->bra = z->c;
+                if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
                 z->c++;
-                z->ket = z->c; /* ], line 29 */
+                z->ket = z->c;
                 z->c = c5;
                 break;
             lab4:
                 z->c = c5;
-                {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+                {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                     if (ret < 0) goto lab3;
-                    z->c = ret; /* goto, line 29 */
+                    z->c = ret;
                 }
             }
-            {   int ret = slice_from_s(z, 1, s_1); /* <-, line 29 */
+            {   int ret = slice_from_s(z, 1, s_1);
                 if (ret < 0) return ret;
             }
-            z->B[0] = 1; /* set Y_found, line 29 */
+            z->I[2] = 1;
             continue;
         lab3:
             z->c = c4;
@@ -415,125 +414,125 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 33 */
-    z->I[1] = z->l; /* $p2 = <integer expression>, line 34 */
-    {   int c1 = z->c; /* do, line 35 */
-        {   int c2 = z->c; /* or, line 41 */
-            if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2; /* among, line 36 */
+static int r_mark_regions(struct SN_env * z) {
+    z->I[1] = z->l;
+    z->I[0] = z->l;
+    {   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;
             goto lab1;
         lab2:
             z->c = c2;
-            {    /* gopast */ /* grouping v, line 41 */
+            {   
                 int ret = out_grouping_U(z, g_v, 97, 121, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
             }
-            {    /* gopast */ /* non v, line 41 */
+            {   
                 int ret = in_grouping_U(z, g_v, 97, 121, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
             }
         }
     lab1:
-        z->I[0] = z->c; /* setmark p1, line 42 */
-        {    /* gopast */ /* grouping v, line 43 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping_U(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 43 */
+        {   
             int ret = in_grouping_U(z, g_v, 97, 121, 1);
             if (ret < 0) goto lab0;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p2, line 43 */
+        z->I[0] = z->c;
     lab0:
         z->c = c1;
     }
     return 1;
 }
 
-static int r_shortv(struct SN_env * z) { /* backwardmode */
-    {   int m1 = z->l - z->c; (void)m1; /* or, line 51 */
-        if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) goto lab1; /* non v_WXY, line 50 */
-        if (in_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1; /* grouping v, line 50 */
-        if (out_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1; /* non v, line 50 */
+static int r_shortv(struct SN_env * z) {
+    {   int m1 = z->l - z->c; (void)m1;
+        if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) goto lab1;
+        if (in_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1;
+        if (out_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1;
         goto lab0;
     lab1:
         z->c = z->l - m1;
-        if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* non v, line 52 */
-        if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 52 */
-        if (z->c > z->lb) return 0; /* atlimit, line 52 */
+        if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
+        if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
+        if (z->c > z->lb) return 0;
     }
 lab0:
     return 1;
 }
 
-static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 55 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 56 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_Step_1a(struct SN_env * z) { /* backwardmode */
+static int r_Step_1a(struct SN_env * z) {
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* try, line 59 */
-        z->ket = z->c; /* [, line 60 */
-        if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; } /* substring, line 60 */
+    {   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; }
-        z->bra = z->c; /* ], line 60 */
-        {   int ret = slice_del(z); /* delete, line 62 */
+        z->bra = z->c;
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
     lab0:
         ;
     }
-    z->ket = z->c; /* [, line 65 */
-    if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0; /* substring, line 65 */
+    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;
-    z->bra = z->c; /* ], line 65 */
-    switch (among_var) { /* among, line 65 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 2, s_2); /* <-, line 66 */
+            {   int ret = slice_from_s(z, 2, s_2);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int m2 = z->l - z->c; (void)m2; /* or, line 68 */
-                {   int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 2); /* hop, line 68 */
+            {   int m2 = z->l - z->c; (void)m2;
+                {   int ret = skip_b_utf8(z->p, z->c, z->lb, 2);
                     if (ret < 0) goto lab2;
                     z->c = ret;
                 }
-                {   int ret = slice_from_s(z, 1, s_3); /* <-, line 68 */
+                {   int ret = slice_from_s(z, 1, s_3);
                     if (ret < 0) return ret;
                 }
                 goto lab1;
             lab2:
                 z->c = z->l - m2;
-                {   int ret = slice_from_s(z, 2, s_4); /* <-, line 68 */
+                {   int ret = slice_from_s(z, 2, s_4);
                     if (ret < 0) return ret;
                 }
             }
         lab1:
             break;
         case 3:
-            {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+            {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
                 if (ret < 0) return 0;
-                z->c = ret; /* next, line 69 */
+                z->c = ret;
             }
-            {    /* gopast */ /* grouping v, line 69 */
+            {   
                 int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
                 if (ret < 0) return 0;
                 z->c -= ret;
             }
-            {   int ret = slice_del(z); /* delete, line 69 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -541,72 +540,72 @@ static int r_Step_1a(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_1b(struct SN_env * z) { /* backwardmode */
+static int r_Step_1b(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 75 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 75 */
+    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;
-    z->bra = z->c; /* ], line 75 */
-    switch (among_var) { /* among, line 75 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R1(z); /* call R1, line 77 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_5); /* <-, line 77 */
+            {   int ret = slice_from_s(z, 2, s_5);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int m_test1 = z->l - z->c; /* test, line 80 */
-                {    /* gopast */ /* grouping v, line 80 */
+            {   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;
                 }
                 z->c = z->l - m_test1;
             }
-            {   int ret = slice_del(z); /* delete, line 80 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m_test2 = z->l - z->c; /* test, line 81 */
-                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 /* substring, line 81 */
+            {   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) { /* among, line 81 */
+            switch (among_var) {
                 case 1:
                     {   int ret;
                         {   int saved_c = z->c;
-                            ret = insert_s(z, z->c, z->c, 1, s_6); /* <+, line 83 */
+                            ret = insert_s(z, z->c, z->c, 1, s_6);
                             z->c = saved_c;
                         }
                         if (ret < 0) return ret;
                     }
                     break;
                 case 2:
-                    z->ket = z->c; /* [, line 86 */
-                    {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+                    z->ket = z->c;
+                    {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
                         if (ret < 0) return 0;
-                        z->c = ret; /* next, line 86 */
+                        z->c = ret;
                     }
-                    z->bra = z->c; /* ], line 86 */
-                    {   int ret = slice_del(z); /* delete, line 86 */
+                    z->bra = z->c;
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                     break;
                 case 3:
-                    if (z->c != z->I[0]) return 0; /* atmark, line 87 */
-                    {   int m_test3 = z->l - z->c; /* test, line 87 */
-                        {   int ret = r_shortv(z); /* call shortv, line 87 */
+                    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;
                         }
                         z->c = z->l - m_test3;
                     }
                     {   int ret;
                         {   int saved_c = z->c;
-                            ret = insert_s(z, z->c, z->c, 1, s_7); /* <+, line 87 */
+                            ret = insert_s(z, z->c, z->c, 1, s_7);
                             z->c = saved_c;
                         }
                         if (ret < 0) return ret;
@@ -618,116 +617,116 @@ static int r_Step_1b(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_1c(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 94 */
-    {   int m1 = z->l - z->c; (void)m1; /* or, line 94 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 94 */
+static int r_Step_1c(struct SN_env * z) {
+    z->ket = z->c;
+    {   int m1 = z->l - z->c; (void)m1;
+        if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
         z->c--;
         goto lab0;
     lab1:
         z->c = z->l - m1;
-        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 94 */
+        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0;
         z->c--;
     }
 lab0:
-    z->bra = z->c; /* ], line 94 */
-    if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* non v, line 95 */
-    /* not, line 95 */
-    if (z->c > z->lb) goto lab2; /* atlimit, line 95 */
+    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:
-    {   int ret = slice_from_s(z, 1, s_8); /* <-, line 96 */
+    {   int ret = slice_from_s(z, 1, s_8);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_Step_2(struct SN_env * z) { /* backwardmode */
+static int r_Step_2(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 100 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 100 */
+    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;
-    z->bra = z->c; /* ], line 100 */
-    {   int ret = r_R1(z); /* call R1, line 100 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 100 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 4, s_9); /* <-, line 101 */
+            {   int ret = slice_from_s(z, 4, s_9);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 4, s_10); /* <-, line 102 */
+            {   int ret = slice_from_s(z, 4, s_10);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 4, s_11); /* <-, line 103 */
+            {   int ret = slice_from_s(z, 4, s_11);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */
+            {   int ret = slice_from_s(z, 4, s_12);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_from_s(z, 3, s_13); /* <-, line 105 */
+            {   int ret = slice_from_s(z, 3, s_13);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = slice_from_s(z, 3, s_14); /* <-, line 107 */
+            {   int ret = slice_from_s(z, 3, s_14);
                 if (ret < 0) return ret;
             }
             break;
         case 7:
-            {   int ret = slice_from_s(z, 3, s_15); /* <-, line 109 */
+            {   int ret = slice_from_s(z, 3, s_15);
                 if (ret < 0) return ret;
             }
             break;
         case 8:
-            {   int ret = slice_from_s(z, 2, s_16); /* <-, line 111 */
+            {   int ret = slice_from_s(z, 2, s_16);
                 if (ret < 0) return ret;
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 3, s_17); /* <-, line 112 */
+            {   int ret = slice_from_s(z, 3, s_17);
                 if (ret < 0) return ret;
             }
             break;
         case 10:
-            {   int ret = slice_from_s(z, 3, s_18); /* <-, line 114 */
+            {   int ret = slice_from_s(z, 3, s_18);
                 if (ret < 0) return ret;
             }
             break;
         case 11:
-            {   int ret = slice_from_s(z, 3, s_19); /* <-, line 116 */
+            {   int ret = slice_from_s(z, 3, s_19);
                 if (ret < 0) return ret;
             }
             break;
         case 12:
-            {   int ret = slice_from_s(z, 3, s_20); /* <-, line 118 */
+            {   int ret = slice_from_s(z, 3, s_20);
                 if (ret < 0) return ret;
             }
             break;
         case 13:
-            if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 119 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
             z->c--;
-            {   int ret = slice_from_s(z, 2, s_21); /* <-, line 119 */
+            {   int ret = slice_from_s(z, 2, s_21);
                 if (ret < 0) return ret;
             }
             break;
         case 14:
-            {   int ret = slice_from_s(z, 4, s_22); /* <-, line 121 */
+            {   int ret = slice_from_s(z, 4, s_22);
                 if (ret < 0) return ret;
             }
             break;
         case 15:
-            if (in_grouping_b_U(z, g_valid_LI, 99, 116, 0)) return 0; /* grouping valid_LI, line 122 */
-            {   int ret = slice_del(z); /* delete, line 122 */
+            if (in_grouping_b_U(z, g_valid_LI, 99, 116, 0)) return 0;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -735,47 +734,47 @@ static int r_Step_2(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_3(struct SN_env * z) { /* backwardmode */
+static int r_Step_3(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 127 */
-    if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 127 */
+    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;
-    z->bra = z->c; /* ], line 127 */
-    {   int ret = r_R1(z); /* call R1, line 127 */
+    z->bra = z->c;
+    {   int ret = r_R1(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 127 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 4, s_23); /* <-, line 128 */
+            {   int ret = slice_from_s(z, 4, s_23);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 3, s_24); /* <-, line 129 */
+            {   int ret = slice_from_s(z, 3, s_24);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 2, s_25); /* <-, line 130 */
+            {   int ret = slice_from_s(z, 2, s_25);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = slice_from_s(z, 2, s_26); /* <-, line 132 */
+            {   int ret = slice_from_s(z, 2, s_26);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_del(z); /* delete, line 134 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = r_R2(z); /* call R2, line 136 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 136 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -783,34 +782,34 @@ static int r_Step_3(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_4(struct SN_env * z) { /* backwardmode */
+static int r_Step_4(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 141 */
-    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 141 */
+    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;
-    z->bra = z->c; /* ], line 141 */
-    {   int ret = r_R2(z); /* call R2, line 141 */
+    z->bra = z->c;
+    {   int ret = r_R2(z);
         if (ret <= 0) return ret;
     }
-    switch (among_var) { /* among, line 141 */
+    switch (among_var) {
         case 1:
-            {   int ret = slice_del(z); /* delete, line 144 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int m1 = z->l - z->c; (void)m1; /* or, line 145 */
-                if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 145 */
+            {   int m1 = z->l - z->c; (void)m1;
+                if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
                 z->c--;
                 goto lab0;
             lab1:
                 z->c = z->l - m1;
-                if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 145 */
+                if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0;
                 z->c--;
             }
         lab0:
-            {   int ret = slice_del(z); /* delete, line 145 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -818,28 +817,28 @@ static int r_Step_4(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_Step_5(struct SN_env * z) { /* backwardmode */
+static int r_Step_5(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 150 */
-    if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0; /* substring, line 150 */
+    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;
-    z->bra = z->c; /* ], line 150 */
-    switch (among_var) { /* among, line 150 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int m1 = z->l - z->c; (void)m1; /* or, line 151 */
-                {   int ret = r_R2(z); /* call R2, line 151 */
+            {   int m1 = z->l - z->c; (void)m1;
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab1;
                     if (ret < 0) return ret;
                 }
                 goto lab0;
             lab1:
                 z->c = z->l - m1;
-                {   int ret = r_R1(z); /* call R1, line 151 */
+                {   int ret = r_R1(z);
                     if (ret <= 0) return ret;
                 }
-                {   int m2 = z->l - z->c; (void)m2; /* not, line 151 */
-                    {   int ret = r_shortv(z); /* call shortv, line 151 */
+                {   int m2 = z->l - z->c; (void)m2;
+                    {   int ret = r_shortv(z);
                         if (ret == 0) goto lab2;
                         if (ret < 0) return ret;
                     }
@@ -849,17 +848,17 @@ static int r_Step_5(struct SN_env * z) { /* backwardmode */
                 }
             }
         lab0:
-            {   int ret = slice_del(z); /* delete, line 151 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 152 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 152 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
             z->c--;
-            {   int ret = slice_del(z); /* delete, line 152 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -867,76 +866,76 @@ static int r_Step_5(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_exception2(struct SN_env * z) { /* backwardmode */
-    z->ket = z->c; /* [, line 158 */
-    if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 158 */
+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;
-    z->bra = z->c; /* ], line 158 */
-    if (z->c > z->lb) return 0; /* atlimit, line 158 */
+    z->bra = z->c;
+    if (z->c > z->lb) return 0;
     return 1;
 }
 
-static int r_exception1(struct SN_env * z) { /* forwardmode */
+static int r_exception1(struct SN_env * z) {
     int among_var;
-    z->bra = z->c; /* [, line 170 */
-    if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0; /* substring, line 170 */
+    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;
-    z->ket = z->c; /* ], line 170 */
-    if (z->c < z->l) return 0; /* atlimit, line 170 */
-    switch (among_var) { /* among, line 170 */
+    z->ket = z->c;
+    if (z->c < z->l) return 0;
+    switch (among_var) {
         case 1:
-            {   int ret = slice_from_s(z, 3, s_27); /* <-, line 174 */
+            {   int ret = slice_from_s(z, 3, s_27);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 3, s_28); /* <-, line 175 */
+            {   int ret = slice_from_s(z, 3, s_28);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_from_s(z, 3, s_29); /* <-, line 176 */
+            {   int ret = slice_from_s(z, 3, s_29);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = slice_from_s(z, 3, s_30); /* <-, line 177 */
+            {   int ret = slice_from_s(z, 3, s_30);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = slice_from_s(z, 3, s_31); /* <-, line 178 */
+            {   int ret = slice_from_s(z, 3, s_31);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = slice_from_s(z, 3, s_32); /* <-, line 182 */
+            {   int ret = slice_from_s(z, 3, s_32);
                 if (ret < 0) return ret;
             }
             break;
         case 7:
-            {   int ret = slice_from_s(z, 5, s_33); /* <-, line 183 */
+            {   int ret = slice_from_s(z, 5, s_33);
                 if (ret < 0) return ret;
             }
             break;
         case 8:
-            {   int ret = slice_from_s(z, 4, s_34); /* <-, line 184 */
+            {   int ret = slice_from_s(z, 4, s_34);
                 if (ret < 0) return ret;
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 5, s_35); /* <-, line 185 */
+            {   int ret = slice_from_s(z, 5, s_35);
                 if (ret < 0) return ret;
             }
             break;
         case 10:
-            {   int ret = slice_from_s(z, 4, s_36); /* <-, line 186 */
+            {   int ret = slice_from_s(z, 4, s_36);
                 if (ret < 0) return ret;
             }
             break;
         case 11:
-            {   int ret = slice_from_s(z, 5, s_37); /* <-, line 187 */
+            {   int ret = slice_from_s(z, 5, s_37);
                 if (ret < 0) return ret;
             }
             break;
@@ -944,27 +943,26 @@ static int r_exception1(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_postlude(struct SN_env * z) { /* forwardmode */
-    if (!(z->B[0])) return 0; /* Boolean test Y_found, line 203 */
-/* repeat, line 203 */
-
-    while(1) {        int c1 = z->c;
-        while(1) { /* goto, line 203 */
+static int r_postlude(struct SN_env * z) {
+    if (!(z->I[2])) return 0;
+    while(1) {
+        int c1 = z->c;
+        while(1) {
             int c2 = z->c;
-            z->bra = z->c; /* [, line 203 */
-            if (z->c == z->l || z->p[z->c] != 'Y') goto lab1; /* literal, line 203 */
+            z->bra = z->c;
+            if (z->c == z->l || z->p[z->c] != 'Y') goto lab1;
             z->c++;
-            z->ket = z->c; /* ], line 203 */
+            z->ket = z->c;
             z->c = c2;
             break;
         lab1:
             z->c = c2;
-            {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+            {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                 if (ret < 0) goto lab0;
-                z->c = ret; /* goto, line 203 */
+                z->c = ret;
             }
         }
-        {   int ret = slice_from_s(z, 1, s_38); /* <-, line 203 */
+        {   int ret = slice_from_s(z, 1, s_38);
             if (ret < 0) return ret;
         }
         continue;
@@ -975,17 +973,17 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern int english_UTF_8_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* or, line 207 */
-        {   int ret = r_exception1(z); /* call exception1, line 207 */
+extern int english_UTF_8_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_exception1(z);
             if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
         goto lab0;
     lab1:
         z->c = c1;
-        {   int c2 = z->c; /* not, line 208 */
-            {   int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 208 */
+        {   int c2 = z->c;
+            {   int ret = skip_utf8(z->p, z->c, z->l, 3);
                 if (ret < 0) goto lab3;
                 z->c = ret;
             }
@@ -996,62 +994,62 @@ extern int english_UTF_8_stem(struct SN_env * z) { /* forwardmode */
         goto lab0;
     lab2:
         z->c = c1;
-        /* do, line 209 */
-        {   int ret = r_prelude(z); /* call prelude, line 209 */
+        
+        {   int ret = r_prelude(z);
             if (ret < 0) return ret;
         }
-        /* do, line 210 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 210 */
+        
+        {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
-        z->lb = z->c; z->c = z->l; /* backwards, line 211 */
+        z->lb = z->c; z->c = z->l;
 
-        {   int m3 = z->l - z->c; (void)m3; /* do, line 213 */
-            {   int ret = r_Step_1a(z); /* call Step_1a, line 213 */
+        {   int m3 = z->l - z->c; (void)m3;
+            {   int ret = r_Step_1a(z);
                 if (ret < 0) return ret;
             }
             z->c = z->l - m3;
         }
-        {   int m4 = z->l - z->c; (void)m4; /* or, line 215 */
-            {   int ret = r_exception2(z); /* call exception2, line 215 */
+        {   int m4 = z->l - z->c; (void)m4;
+            {   int ret = r_exception2(z);
                 if (ret == 0) goto lab5;
                 if (ret < 0) return ret;
             }
             goto lab4;
         lab5:
             z->c = z->l - m4;
-            {   int m5 = z->l - z->c; (void)m5; /* do, line 217 */
-                {   int ret = r_Step_1b(z); /* call Step_1b, line 217 */
+            {   int m5 = z->l - z->c; (void)m5;
+                {   int ret = r_Step_1b(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m5;
             }
-            {   int m6 = z->l - z->c; (void)m6; /* do, line 218 */
-                {   int ret = r_Step_1c(z); /* call Step_1c, line 218 */
+            {   int m6 = z->l - z->c; (void)m6;
+                {   int ret = r_Step_1c(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m6;
             }
-            {   int m7 = z->l - z->c; (void)m7; /* do, line 220 */
-                {   int ret = r_Step_2(z); /* call Step_2, line 220 */
+            {   int m7 = z->l - z->c; (void)m7;
+                {   int ret = r_Step_2(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m7;
             }
-            {   int m8 = z->l - z->c; (void)m8; /* do, line 221 */
-                {   int ret = r_Step_3(z); /* call Step_3, line 221 */
+            {   int m8 = z->l - z->c; (void)m8;
+                {   int ret = r_Step_3(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m8;
             }
-            {   int m9 = z->l - z->c; (void)m9; /* do, line 222 */
-                {   int ret = r_Step_4(z); /* call Step_4, line 222 */
+            {   int m9 = z->l - z->c; (void)m9;
+                {   int ret = r_Step_4(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m9;
             }
-            {   int m10 = z->l - z->c; (void)m10; /* do, line 224 */
-                {   int ret = r_Step_5(z); /* call Step_5, line 224 */
+            {   int m10 = z->l - z->c; (void)m10;
+                {   int ret = r_Step_5(z);
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m10;
@@ -1059,8 +1057,8 @@ extern int english_UTF_8_stem(struct SN_env * z) { /* forwardmode */
         }
     lab4:
         z->c = z->lb;
-        {   int c11 = z->c; /* do, line 227 */
-            {   int ret = r_postlude(z); /* call postlude, line 227 */
+        {   int c11 = z->c;
+            {   int ret = r_postlude(z);
                 if (ret < 0) return ret;
             }
             z->c = c11;
@@ -1070,7 +1068,7 @@ lab0:
     return 1;
 }
 
-extern struct SN_env * english_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); }
+extern struct SN_env * english_UTF_8_create_env(void) { return SN_create_env(0, 3); }
 
 extern void english_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index d99456f32392348e1f071d87006f9332e6254a4e..77995bec0158b64f200fdddaffb397ffe659cc18 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -45,16 +45,16 @@ static const symbol s_0_9[3] = { 'k', 0xC3, 0xB6 };
 
 static const struct among a_0[10] =
 {
-/*  0 */ { 2, s_0_0, -1, 1, 0},
-/*  1 */ { 3, s_0_1, -1, 2, 0},
-/*  2 */ { 4, s_0_2, -1, 1, 0},
-/*  3 */ { 3, s_0_3, -1, 1, 0},
-/*  4 */ { 3, s_0_4, -1, 1, 0},
-/*  5 */ { 4, s_0_5, -1, 1, 0},
-/*  6 */ { 6, s_0_6, -1, 1, 0},
-/*  7 */ { 2, s_0_7, -1, 1, 0},
-/*  8 */ { 3, s_0_8, -1, 1, 0},
-/*  9 */ { 3, s_0_9, -1, 1, 0}
+{ 2, s_0_0, -1, 1, 0},
+{ 3, s_0_1, -1, 2, 0},
+{ 4, s_0_2, -1, 1, 0},
+{ 3, s_0_3, -1, 1, 0},
+{ 3, s_0_4, -1, 1, 0},
+{ 4, s_0_5, -1, 1, 0},
+{ 6, s_0_6, -1, 1, 0},
+{ 2, s_0_7, -1, 1, 0},
+{ 3, s_0_8, -1, 1, 0},
+{ 3, s_0_9, -1, 1, 0}
 };
 
 static const symbol s_1_0[3] = { 'l', 'l', 'a' };
@@ -66,12 +66,12 @@ static const symbol s_1_5[3] = { 's', 't', 'a' };
 
 static const struct among a_1[6] =
 {
-/*  0 */ { 3, s_1_0, -1, -1, 0},
-/*  1 */ { 2, s_1_1, -1, -1, 0},
-/*  2 */ { 3, s_1_2, -1, -1, 0},
-/*  3 */ { 2, s_1_3, -1, -1, 0},
-/*  4 */ { 3, s_1_4, 3, -1, 0},
-/*  5 */ { 3, s_1_5, 3, -1, 0}
+{ 3, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0},
+{ 3, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0},
+{ 3, s_1_4, 3, -1, 0},
+{ 3, s_1_5, 3, -1, 0}
 };
 
 static const symbol s_2_0[4] = { 'l', 'l', 0xC3, 0xA4 };
@@ -83,12 +83,12 @@ static const symbol s_2_5[4] = { 's', 't', 0xC3, 0xA4 };
 
 static const struct among a_2[6] =
 {
-/*  0 */ { 4, s_2_0, -1, -1, 0},
-/*  1 */ { 3, s_2_1, -1, -1, 0},
-/*  2 */ { 4, s_2_2, -1, -1, 0},
-/*  3 */ { 3, s_2_3, -1, -1, 0},
-/*  4 */ { 4, s_2_4, 3, -1, 0},
-/*  5 */ { 4, s_2_5, 3, -1, 0}
+{ 4, s_2_0, -1, -1, 0},
+{ 3, s_2_1, -1, -1, 0},
+{ 4, s_2_2, -1, -1, 0},
+{ 3, s_2_3, -1, -1, 0},
+{ 4, s_2_4, 3, -1, 0},
+{ 4, s_2_5, 3, -1, 0}
 };
 
 static const symbol s_3_0[3] = { 'l', 'l', 'e' };
@@ -96,8 +96,8 @@ static const symbol s_3_1[3] = { 'i', 'n', 'e' };
 
 static const struct among a_3[2] =
 {
-/*  0 */ { 3, s_3_0, -1, -1, 0},
-/*  1 */ { 3, s_3_1, -1, -1, 0}
+{ 3, s_3_0, -1, -1, 0},
+{ 3, s_3_1, -1, -1, 0}
 };
 
 static const symbol s_4_0[3] = { 'n', 's', 'a' };
@@ -112,15 +112,15 @@ static const symbol s_4_8[4] = { 'n', 's', 0xC3, 0xA4 };
 
 static const struct among a_4[9] =
 {
-/*  0 */ { 3, s_4_0, -1, 3, 0},
-/*  1 */ { 3, s_4_1, -1, 3, 0},
-/*  2 */ { 3, s_4_2, -1, 3, 0},
-/*  3 */ { 2, s_4_3, -1, 2, 0},
-/*  4 */ { 2, s_4_4, -1, 1, 0},
-/*  5 */ { 2, s_4_5, -1, 4, 0},
-/*  6 */ { 2, s_4_6, -1, 6, 0},
-/*  7 */ { 3, s_4_7, -1, 5, 0},
-/*  8 */ { 4, s_4_8, -1, 3, 0}
+{ 3, s_4_0, -1, 3, 0},
+{ 3, s_4_1, -1, 3, 0},
+{ 3, s_4_2, -1, 3, 0},
+{ 2, s_4_3, -1, 2, 0},
+{ 2, s_4_4, -1, 1, 0},
+{ 2, s_4_5, -1, 4, 0},
+{ 2, s_4_6, -1, 6, 0},
+{ 3, s_4_7, -1, 5, 0},
+{ 4, s_4_8, -1, 3, 0}
 };
 
 static const symbol s_5_0[2] = { 'a', 'a' };
@@ -133,13 +133,13 @@ static const symbol s_5_6[4] = { 0xC3, 0xB6, 0xC3, 0xB6 };
 
 static const struct among a_5[7] =
 {
-/*  0 */ { 2, s_5_0, -1, -1, 0},
-/*  1 */ { 2, s_5_1, -1, -1, 0},
-/*  2 */ { 2, s_5_2, -1, -1, 0},
-/*  3 */ { 2, s_5_3, -1, -1, 0},
-/*  4 */ { 2, s_5_4, -1, -1, 0},
-/*  5 */ { 4, s_5_5, -1, -1, 0},
-/*  6 */ { 4, s_5_6, -1, -1, 0}
+{ 2, s_5_0, -1, -1, 0},
+{ 2, s_5_1, -1, -1, 0},
+{ 2, s_5_2, -1, -1, 0},
+{ 2, s_5_3, -1, -1, 0},
+{ 2, s_5_4, -1, -1, 0},
+{ 4, s_5_5, -1, -1, 0},
+{ 4, s_5_6, -1, -1, 0}
 };
 
 static const symbol s_6_0[1] = { 'a' };
@@ -175,36 +175,36 @@ static const symbol s_6_29[4] = { 't', 't', 0xC3, 0xA4 };
 
 static const struct among a_6[30] =
 {
-/*  0 */ { 1, s_6_0, -1, 8, 0},
-/*  1 */ { 3, s_6_1, 0, -1, 0},
-/*  2 */ { 2, s_6_2, 0, -1, 0},
-/*  3 */ { 3, s_6_3, 0, -1, 0},
-/*  4 */ { 2, s_6_4, 0, -1, 0},
-/*  5 */ { 3, s_6_5, 4, -1, 0},
-/*  6 */ { 3, s_6_6, 4, -1, 0},
-/*  7 */ { 3, s_6_7, 4, 2, 0},
-/*  8 */ { 3, s_6_8, -1, -1, 0},
-/*  9 */ { 3, s_6_9, -1, -1, 0},
-/* 10 */ { 3, s_6_10, -1, -1, 0},
-/* 11 */ { 1, s_6_11, -1, 7, 0},
-/* 12 */ { 3, s_6_12, 11, 1, 0},
-/* 13 */ { 3, s_6_13, 11, -1, r_VI},
-/* 14 */ { 4, s_6_14, 11, -1, r_LONG},
-/* 15 */ { 3, s_6_15, 11, 2, 0},
-/* 16 */ { 4, s_6_16, 11, -1, r_VI},
-/* 17 */ { 3, s_6_17, 11, 3, 0},
-/* 18 */ { 4, s_6_18, 11, -1, r_VI},
-/* 19 */ { 3, s_6_19, 11, 4, 0},
-/* 20 */ { 4, s_6_20, 11, 5, 0},
-/* 21 */ { 4, s_6_21, 11, 6, 0},
-/* 22 */ { 2, s_6_22, -1, 8, 0},
-/* 23 */ { 4, s_6_23, 22, -1, 0},
-/* 24 */ { 3, s_6_24, 22, -1, 0},
-/* 25 */ { 4, s_6_25, 22, -1, 0},
-/* 26 */ { 3, s_6_26, 22, -1, 0},
-/* 27 */ { 4, s_6_27, 26, -1, 0},
-/* 28 */ { 4, s_6_28, 26, -1, 0},
-/* 29 */ { 4, s_6_29, 26, 2, 0}
+{ 1, s_6_0, -1, 8, 0},
+{ 3, s_6_1, 0, -1, 0},
+{ 2, s_6_2, 0, -1, 0},
+{ 3, s_6_3, 0, -1, 0},
+{ 2, s_6_4, 0, -1, 0},
+{ 3, s_6_5, 4, -1, 0},
+{ 3, s_6_6, 4, -1, 0},
+{ 3, s_6_7, 4, 2, 0},
+{ 3, s_6_8, -1, -1, 0},
+{ 3, s_6_9, -1, -1, 0},
+{ 3, s_6_10, -1, -1, 0},
+{ 1, s_6_11, -1, 7, 0},
+{ 3, s_6_12, 11, 1, 0},
+{ 3, s_6_13, 11, -1, r_VI},
+{ 4, s_6_14, 11, -1, r_LONG},
+{ 3, s_6_15, 11, 2, 0},
+{ 4, s_6_16, 11, -1, r_VI},
+{ 3, s_6_17, 11, 3, 0},
+{ 4, s_6_18, 11, -1, r_VI},
+{ 3, s_6_19, 11, 4, 0},
+{ 4, s_6_20, 11, 5, 0},
+{ 4, s_6_21, 11, 6, 0},
+{ 2, s_6_22, -1, 8, 0},
+{ 4, s_6_23, 22, -1, 0},
+{ 3, s_6_24, 22, -1, 0},
+{ 4, s_6_25, 22, -1, 0},
+{ 3, s_6_26, 22, -1, 0},
+{ 4, s_6_27, 26, -1, 0},
+{ 4, s_6_28, 26, -1, 0},
+{ 4, s_6_29, 26, 2, 0}
 };
 
 static const symbol s_7_0[3] = { 'e', 'j', 'a' };
@@ -224,20 +224,20 @@ static const symbol s_7_13[5] = { 'i', 'm', 'p', 0xC3, 0xA4 };
 
 static const struct among a_7[14] =
 {
-/*  0 */ { 3, s_7_0, -1, -1, 0},
-/*  1 */ { 3, s_7_1, -1, 1, 0},
-/*  2 */ { 4, s_7_2, 1, -1, 0},
-/*  3 */ { 3, s_7_3, -1, 1, 0},
-/*  4 */ { 4, s_7_4, 3, -1, 0},
-/*  5 */ { 3, s_7_5, -1, 1, 0},
-/*  6 */ { 4, s_7_6, 5, -1, 0},
-/*  7 */ { 3, s_7_7, -1, 1, 0},
-/*  8 */ { 4, s_7_8, 7, -1, 0},
-/*  9 */ { 4, s_7_9, -1, -1, 0},
-/* 10 */ { 4, s_7_10, -1, 1, 0},
-/* 11 */ { 5, s_7_11, 10, -1, 0},
-/* 12 */ { 4, s_7_12, -1, 1, 0},
-/* 13 */ { 5, s_7_13, 12, -1, 0}
+{ 3, s_7_0, -1, -1, 0},
+{ 3, s_7_1, -1, 1, 0},
+{ 4, s_7_2, 1, -1, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 4, s_7_4, 3, -1, 0},
+{ 3, s_7_5, -1, 1, 0},
+{ 4, s_7_6, 5, -1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 4, s_7_8, 7, -1, 0},
+{ 4, s_7_9, -1, -1, 0},
+{ 4, s_7_10, -1, 1, 0},
+{ 5, s_7_11, 10, -1, 0},
+{ 4, s_7_12, -1, 1, 0},
+{ 5, s_7_13, 12, -1, 0}
 };
 
 static const symbol s_8_0[1] = { 'i' };
@@ -245,8 +245,8 @@ static const symbol s_8_1[1] = { 'j' };
 
 static const struct among a_8[2] =
 {
-/*  0 */ { 1, s_8_0, -1, -1, 0},
-/*  1 */ { 1, s_8_1, -1, -1, 0}
+{ 1, s_8_0, -1, -1, 0},
+{ 1, s_8_1, -1, -1, 0}
 };
 
 static const symbol s_9_0[3] = { 'm', 'm', 'a' };
@@ -254,8 +254,8 @@ static const symbol s_9_1[4] = { 'i', 'm', 'm', 'a' };
 
 static const struct among a_9[2] =
 {
-/*  0 */ { 3, s_9_0, -1, 1, 0},
-/*  1 */ { 4, s_9_1, 0, -1, 0}
+{ 3, s_9_0, -1, 1, 0},
+{ 4, s_9_1, 0, -1, 0}
 };
 
 static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
@@ -276,118 +276,118 @@ static const symbol s_4[] = { 'i', 'e' };
 static const symbol s_5[] = { 'p', 'o' };
 static const symbol s_6[] = { 'p', 'o' };
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 44 */
-    z->I[1] = z->l; /* $p2 = <integer expression>, line 45 */
-    if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 47 */
-    {    /* gopast */ /* non V1, line 47 */
+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[0] = z->c; /* setmark p1, line 47 */
-    if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 48 */
-    {    /* gopast */ /* non V1, line 48 */
+    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;
     }
-    z->I[1] = z->c; /* setmark p2, line 48 */
+    z->I[0] = z->c;
     return 1;
 }
 
-static int r_R2(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 53 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_particle_etc(struct SN_env * z) { /* backwardmode */
+static int r_particle_etc(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 56 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 56 */
-        among_var = find_among_b(z, a_0, 10); /* substring, line 56 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 56 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 57 */
+    switch (among_var) {
         case 1:
-            if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) return 0; /* grouping particle_end, line 63 */
+            if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) return 0;
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 65 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
             break;
     }
-    {   int ret = slice_del(z); /* delete, line 67 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_possessive(struct SN_env * z) { /* backwardmode */
+static int r_possessive(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 70 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 70 */
-        among_var = find_among_b(z, a_4, 9); /* substring, line 70 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 70 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 71 */
+    switch (among_var) {
         case 1:
-            {   int m2 = z->l - z->c; (void)m2; /* not, line 73 */
-                if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0; /* literal, line 73 */
+            {   int m2 = z->l - z->c; (void)m2;
+                if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0;
                 z->c--;
                 return 0;
             lab0:
                 z->c = z->l - m2;
             }
-            {   int ret = slice_del(z); /* delete, line 73 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = slice_del(z); /* delete, line 75 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            z->ket = z->c; /* [, line 75 */
-            if (!(eq_s_b(z, 3, s_0))) return 0; /* literal, line 75 */
-            z->bra = z->c; /* ], line 75 */
-            {   int ret = slice_from_s(z, 3, s_1); /* <-, line 75 */
+            z->ket = z->c;
+            if (!(eq_s_b(z, 3, s_0))) return 0;
+            z->bra = z->c;
+            {   int ret = slice_from_s(z, 3, s_1);
                 if (ret < 0) return ret;
             }
             break;
         case 3:
-            {   int ret = slice_del(z); /* delete, line 79 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0; /* among, line 82 */
+            if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
             if (!(find_among_b(z, a_1, 6))) return 0;
-            {   int ret = slice_del(z); /* delete, line 82 */
+            {   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; /* among, line 84 */
+            if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0;
             if (!(find_among_b(z, a_2, 6))) return 0;
-            {   int ret = slice_del(z); /* delete, line 85 */
+            {   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; /* among, line 87 */
+            if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
             if (!(find_among_b(z, a_3, 2))) return 0;
-            {   int ret = slice_del(z); /* delete, line 87 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
@@ -395,246 +395,246 @@ static int r_possessive(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_LONG(struct SN_env * z) { /* backwardmode */
-    if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 92 */
+static int r_LONG(struct SN_env * z) {
+    if (!(find_among_b(z, a_5, 7))) return 0;
     return 1;
 }
 
-static int r_VI(struct SN_env * z) { /* backwardmode */
-    if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 94 */
+static int r_VI(struct SN_env * z) {
+    if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
     z->c--;
-    if (in_grouping_b_U(z, g_V2, 97, 246, 0)) return 0; /* grouping V2, line 94 */
+    if (in_grouping_b_U(z, g_V2, 97, 246, 0)) return 0;
     return 1;
 }
 
-static int r_case_ending(struct SN_env * z) { /* backwardmode */
+static int r_case_ending(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 97 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 97 */
-        among_var = find_among_b(z, a_6, 30); /* substring, line 97 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 97 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 98 */
+    switch (among_var) {
         case 1:
-            if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; /* literal, line 99 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0;
             z->c--;
             break;
         case 2:
-            if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 100 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
             z->c--;
             break;
         case 3:
-            if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 101 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
             z->c--;
             break;
         case 4:
-            if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; /* literal, line 102 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0;
             z->c--;
             break;
         case 5:
-            if (!(eq_s_b(z, 2, s_2))) return 0; /* literal, line 103 */
+            if (!(eq_s_b(z, 2, s_2))) return 0;
             break;
         case 6:
-            if (!(eq_s_b(z, 2, s_3))) return 0; /* literal, line 104 */
+            if (!(eq_s_b(z, 2, s_3))) return 0;
             break;
         case 7:
-            {   int m2 = z->l - z->c; (void)m2; /* try, line 112 */
-                {   int m3 = z->l - z->c; (void)m3; /* and, line 114 */
-                    {   int m4 = z->l - z->c; (void)m4; /* or, line 113 */
-                        {   int ret = r_LONG(z); /* call LONG, line 112 */
+            {   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 ret = r_LONG(z);
                             if (ret == 0) goto lab2;
                             if (ret < 0) return ret;
                         }
                         goto lab1;
                     lab2:
                         z->c = z->l - m4;
-                        if (!(eq_s_b(z, 2, s_4))) { z->c = z->l - m2; goto lab0; } /* literal, line 113 */
+                        if (!(eq_s_b(z, 2, s_4))) { z->c = z->l - m2; goto lab0; }
                     }
                 lab1:
                     z->c = z->l - m3;
-                    {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+                    {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
                         if (ret < 0) { z->c = z->l - m2; goto lab0; }
-                        z->c = ret; /* next, line 114 */
+                        z->c = ret;
                     }
                 }
-                z->bra = z->c; /* ], line 114 */
+                z->bra = z->c;
             lab0:
                 ;
             }
             break;
         case 8:
-            if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0; /* grouping V1, line 120 */
-            if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 120 */
+            if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0;
+            if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0;
             break;
     }
-    {   int ret = slice_del(z); /* delete, line 139 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
-    z->B[0] = 1; /* set ending_removed, line 140 */
+    z->I[2] = 1;
     return 1;
 }
 
-static int r_other_endings(struct SN_env * z) { /* backwardmode */
+static int r_other_endings(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 143 */
-        if (z->c < z->I[1]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[1];
-        z->ket = z->c; /* [, line 143 */
-        among_var = find_among_b(z, a_7, 14); /* substring, line 143 */
+    {   int mlimit1;
+        if (z->c < z->I[0]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 143 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 144 */
+    switch (among_var) {
         case 1:
-            {   int m2 = z->l - z->c; (void)m2; /* not, line 147 */
-                if (!(eq_s_b(z, 2, s_5))) goto lab0; /* literal, line 147 */
+            {   int m2 = z->l - z->c; (void)m2;
+                if (!(eq_s_b(z, 2, s_5))) goto lab0;
                 return 0;
             lab0:
                 z->c = z->l - m2;
             }
             break;
     }
-    {   int ret = slice_del(z); /* delete, line 152 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_i_plural(struct SN_env * z) { /* backwardmode */
+static int r_i_plural(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 155 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 155 */
-        if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; } /* substring, line 155 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 155 */
+        z->bra = z->c;
         z->lb = mlimit1;
     }
-    {   int ret = slice_del(z); /* delete, line 159 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_t_plural(struct SN_env * z) { /* backwardmode */
+static int r_t_plural(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 162 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 163 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } /* literal, line 163 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[1];
+        z->ket = z->c;
+        if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; }
         z->c--;
-        z->bra = z->c; /* ], line 163 */
-        {   int m_test2 = z->l - z->c; /* test, line 163 */
-            if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; } /* grouping V1, line 163 */
+        z->bra = z->c;
+        {   int m_test2 = z->l - z->c;
+            if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; }
             z->c = z->l - m_test2;
         }
-        {   int ret = slice_del(z); /* delete, line 164 */
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
         z->lb = mlimit1;
     }
 
-    {   int mlimit3; /* setlimit, line 166 */
-        if (z->c < z->I[1]) return 0;
-        mlimit3 = z->lb; z->lb = z->I[1];
-        z->ket = z->c; /* [, line 166 */
-        if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } /* substring, line 166 */
+    {   int mlimit3;
+        if (z->c < z->I[0]) return 0;
+        mlimit3 = z->lb; z->lb = z->I[0];
+        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; }
-        z->bra = z->c; /* ], line 166 */
+        z->bra = z->c;
         z->lb = mlimit3;
     }
-    switch (among_var) { /* among, line 167 */
+    switch (among_var) {
         case 1:
-            {   int m4 = z->l - z->c; (void)m4; /* not, line 168 */
-                if (!(eq_s_b(z, 2, s_6))) goto lab0; /* literal, line 168 */
+            {   int m4 = z->l - z->c; (void)m4;
+                if (!(eq_s_b(z, 2, s_6))) goto lab0;
                 return 0;
             lab0:
                 z->c = z->l - m4;
             }
             break;
     }
-    {   int ret = slice_del(z); /* delete, line 171 */
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_tidy(struct SN_env * z) { /* backwardmode */
+static int r_tidy(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 174 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        {   int m2 = z->l - z->c; (void)m2; /* do, line 175 */
-            {   int m3 = z->l - z->c; (void)m3; /* and, line 175 */
-                {   int ret = r_LONG(z); /* call LONG, line 175 */
+    {   int mlimit1;
+        if (z->c < z->I[1]) return 0;
+        mlimit1 = z->lb; z->lb = z->I[1];
+        {   int m2 = z->l - z->c; (void)m2;
+            {   int m3 = z->l - z->c; (void)m3;
+                {   int ret = r_LONG(z);
                     if (ret == 0) goto lab0;
                     if (ret < 0) return ret;
                 }
                 z->c = z->l - m3;
-                z->ket = z->c; /* [, line 175 */
-                {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+                z->ket = z->c;
+                {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
                     if (ret < 0) goto lab0;
-                    z->c = ret; /* next, line 175 */
+                    z->c = ret;
                 }
-                z->bra = z->c; /* ], line 175 */
-                {   int ret = slice_del(z); /* delete, line 175 */
+                z->bra = z->c;
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
             }
         lab0:
             z->c = z->l - m2;
         }
-        {   int m4 = z->l - z->c; (void)m4; /* do, line 176 */
-            z->ket = z->c; /* [, line 176 */
-            if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab1; /* grouping AEI, line 176 */
-            z->bra = z->c; /* ], line 176 */
-            if (in_grouping_b_U(z, g_C, 98, 122, 0)) goto lab1; /* grouping C, line 176 */
-            {   int ret = slice_del(z); /* delete, line 176 */
+        {   int m4 = z->l - z->c; (void)m4;
+            z->ket = z->c;
+            if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab1;
+            z->bra = z->c;
+            if (in_grouping_b_U(z, g_C, 98, 122, 0)) goto lab1;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
         lab1:
             z->c = z->l - m4;
         }
-        {   int m5 = z->l - z->c; (void)m5; /* do, line 177 */
-            z->ket = z->c; /* [, line 177 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2; /* literal, line 177 */
+        {   int m5 = z->l - z->c; (void)m5;
+            z->ket = z->c;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2;
             z->c--;
-            z->bra = z->c; /* ], line 177 */
-            {   int m6 = z->l - z->c; (void)m6; /* or, line 177 */
-                if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4; /* literal, line 177 */
+            z->bra = z->c;
+            {   int m6 = z->l - z->c; (void)m6;
+                if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4;
                 z->c--;
                 goto lab3;
             lab4:
                 z->c = z->l - m6;
-                if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2; /* literal, line 177 */
+                if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2;
                 z->c--;
             }
         lab3:
-            {   int ret = slice_del(z); /* delete, line 177 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
         lab2:
             z->c = z->l - m5;
         }
-        {   int m7 = z->l - z->c; (void)m7; /* do, line 178 */
-            z->ket = z->c; /* [, line 178 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 178 */
+        {   int m7 = z->l - z->c; (void)m7;
+            z->ket = z->c;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5;
             z->c--;
-            z->bra = z->c; /* ], line 178 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5; /* literal, line 178 */
+            z->bra = z->c;
+            if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5;
             z->c--;
-            {   int ret = slice_del(z); /* delete, line 178 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
         lab5:
@@ -642,72 +642,72 @@ static int r_tidy(struct SN_env * z) { /* backwardmode */
         }
         z->lb = mlimit1;
     }
-    if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 180 */
-    z->ket = z->c; /* [, line 180 */
-    if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 180 */
-    z->bra = z->c; /* ], line 180 */
-    z->S[0] = slice_to(z, z->S[0]); /* -> x, line 180 */
-    if (z->S[0] == 0) return -1; /* -> x, line 180 */
-    if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 180 */
-    {   int ret = slice_del(z); /* delete, line 180 */
+    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;
+    z->bra = z->c;
+    z->S[0] = slice_to(z, z->S[0]);
+    if (z->S[0] == 0) return -1;
+    if (!(eq_v_b(z, z->S[0]))) return 0;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-extern int finnish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 186 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 186 */
+extern int finnish_UTF_8_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_mark_regions(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    z->B[0] = 0; /* unset ending_removed, line 187 */
-    z->lb = z->c; z->c = z->l; /* backwards, line 188 */
+    z->I[2] = 0;
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 189 */
-        {   int ret = r_particle_etc(z); /* call particle_etc, line 189 */
+    {   int m2 = z->l - z->c; (void)m2;
+        {   int ret = r_particle_etc(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 190 */
-        {   int ret = r_possessive(z); /* call possessive, line 190 */
+    {   int m3 = z->l - z->c; (void)m3;
+        {   int ret = r_possessive(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m3;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 191 */
-        {   int ret = r_case_ending(z); /* call case_ending, line 191 */
+    {   int m4 = z->l - z->c; (void)m4;
+        {   int ret = r_case_ending(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m4;
     }
-    {   int m5 = z->l - z->c; (void)m5; /* do, line 192 */
-        {   int ret = r_other_endings(z); /* call other_endings, line 192 */
+    {   int m5 = z->l - z->c; (void)m5;
+        {   int ret = r_other_endings(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m5;
     }
-    /* or, line 193 */
-    if (!(z->B[0])) goto lab1; /* Boolean test ending_removed, line 193 */
-    {   int m6 = z->l - z->c; (void)m6; /* do, line 193 */
-        {   int ret = r_i_plural(z); /* call i_plural, line 193 */
+    
+    if (!(z->I[2])) goto lab1;
+    {   int m6 = z->l - z->c; (void)m6;
+        {   int ret = r_i_plural(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m6;
     }
     goto lab0;
 lab1:
-    {   int m7 = z->l - z->c; (void)m7; /* do, line 193 */
-        {   int ret = r_t_plural(z); /* call t_plural, line 193 */
+    {   int m7 = z->l - z->c; (void)m7;
+        {   int ret = r_t_plural(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m7;
     }
 lab0:
-    {   int m8 = z->l - z->c; (void)m8; /* do, line 194 */
-        {   int ret = r_tidy(z); /* call tidy, line 194 */
+    {   int m8 = z->l - z->c; (void)m8;
+        {   int ret = r_tidy(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m8;
@@ -716,7 +716,7 @@ lab0:
     return 1;
 }
 
-extern struct SN_env * finnish_UTF_8_create_env(void) { return SN_create_env(1, 2, 1); }
+extern struct SN_env * finnish_UTF_8_create_env(void) { return SN_create_env(1, 3); }
 
 extern void finnish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); }
 
index fa4a1c8f30578e4d1c8bfbe8d0035b9c9ca1a6dd..6d12e99a8cb5e92864b092060b7648b0a1f2d4d6 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -39,9 +39,9 @@ static const symbol s_0_2[3] = { 't', 'a', 'p' };
 
 static const struct among a_0[3] =
 {
-/*  0 */ { 3, s_0_0, -1, -1, 0},
-/*  1 */ { 3, s_0_1, -1, -1, 0},
-/*  2 */ { 3, s_0_2, -1, -1, 0}
+{ 3, s_0_0, -1, -1, 0},
+{ 3, s_0_1, -1, -1, 0},
+{ 3, s_0_2, -1, -1, 0}
 };
 
 static const symbol s_1_1[1] = { 'H' };
@@ -53,13 +53,13 @@ static const symbol s_1_6[1] = { 'Y' };
 
 static const struct among a_1[7] =
 {
-/*  0 */ { 0, 0, -1, 7, 0},
-/*  1 */ { 1, s_1_1, 0, 6, 0},
-/*  2 */ { 2, s_1_2, 1, 4, 0},
-/*  3 */ { 2, s_1_3, 1, 5, 0},
-/*  4 */ { 1, s_1_4, 0, 1, 0},
-/*  5 */ { 1, s_1_5, 0, 2, 0},
-/*  6 */ { 1, s_1_6, 0, 3, 0}
+{ 0, 0, -1, 7, 0},
+{ 1, s_1_1, 0, 6, 0},
+{ 2, s_1_2, 1, 4, 0},
+{ 2, s_1_3, 1, 5, 0},
+{ 1, s_1_4, 0, 1, 0},
+{ 1, s_1_5, 0, 2, 0},
+{ 1, s_1_6, 0, 3, 0}
 };
 
 static const symbol s_2_0[3] = { 'i', 'q', 'U' };
@@ -71,12 +71,12 @@ static const symbol s_2_5[2] = { 'i', 'v' };
 
 static const struct among a_2[6] =
 {
-/*  0 */ { 3, s_2_0, -1, 3, 0},
-/*  1 */ { 3, s_2_1, -1, 3, 0},
-/*  2 */ { 4, s_2_2, -1, 4, 0},
-/*  3 */ { 4, s_2_3, -1, 4, 0},
-/*  4 */ { 3, s_2_4, -1, 2, 0},
-/*  5 */ { 2, s_2_5, -1, 1, 0}
+{ 3, s_2_0, -1, 3, 0},
+{ 3, s_2_1, -1, 3, 0},
+{ 4, s_2_2, -1, 4, 0},
+{ 4, s_2_3, -1, 4, 0},
+{ 3, s_2_4, -1, 2, 0},
+{ 2, s_2_5, -1, 1, 0}
 };
 
 static const symbol s_3_0[2] = { 'i', 'c' };
@@ -85,9 +85,9 @@ static const symbol s_3_2[2] = { 'i', 'v' };
 
 static const struct among a_3[3] =
 {
-/*  0 */ { 2, s_3_0, -1, 2, 0},
-/*  1 */ { 4, s_3_1, -1, 1, 0},
-/*  2 */ { 2, s_3_2, -1, 3, 0}
+{ 2, s_3_0, -1, 2, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 2, s_3_2, -1, 3, 0}
 };
 
 static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' };
@@ -136,49 +136,49 @@ static const symbol s_4_42[4] = { 'i', 't', 0xC3, 0xA9 };
 
 static const struct among a_4[43] =
 {
-/*  0 */ { 4, s_4_0, -1, 1, 0},
-/*  1 */ { 6, s_4_1, -1, 2, 0},
-/*  2 */ { 4, s_4_2, -1, 1, 0},
-/*  3 */ { 4, s_4_3, -1, 5, 0},
-/*  4 */ { 5, s_4_4, -1, 3, 0},
-/*  5 */ { 4, s_4_5, -1, 1, 0},
-/*  6 */ { 4, s_4_6, -1, 1, 0},
-/*  7 */ { 4, s_4_7, -1, 11, 0},
-/*  8 */ { 4, s_4_8, -1, 1, 0},
-/*  9 */ { 3, s_4_9, -1, 8, 0},
-/* 10 */ { 2, s_4_10, -1, 8, 0},
-/* 11 */ { 5, s_4_11, -1, 4, 0},
-/* 12 */ { 5, s_4_12, -1, 2, 0},
-/* 13 */ { 5, s_4_13, -1, 4, 0},
-/* 14 */ { 5, s_4_14, -1, 2, 0},
-/* 15 */ { 5, s_4_15, -1, 1, 0},
-/* 16 */ { 7, s_4_16, -1, 2, 0},
-/* 17 */ { 5, s_4_17, -1, 1, 0},
-/* 18 */ { 5, s_4_18, -1, 5, 0},
-/* 19 */ { 6, s_4_19, -1, 3, 0},
-/* 20 */ { 5, s_4_20, -1, 1, 0},
-/* 21 */ { 5, s_4_21, -1, 1, 0},
-/* 22 */ { 5, s_4_22, -1, 11, 0},
-/* 23 */ { 5, s_4_23, -1, 1, 0},
-/* 24 */ { 4, s_4_24, -1, 8, 0},
-/* 25 */ { 3, s_4_25, -1, 8, 0},
-/* 26 */ { 6, s_4_26, -1, 4, 0},
-/* 27 */ { 6, s_4_27, -1, 2, 0},
-/* 28 */ { 6, s_4_28, -1, 4, 0},
-/* 29 */ { 6, s_4_29, -1, 2, 0},
-/* 30 */ { 5, s_4_30, -1, 15, 0},
-/* 31 */ { 6, s_4_31, 30, 6, 0},
-/* 32 */ { 9, s_4_32, 31, 12, 0},
-/* 33 */ { 5, s_4_33, -1, 7, 0},
-/* 34 */ { 4, s_4_34, -1, 15, 0},
-/* 35 */ { 5, s_4_35, 34, 6, 0},
-/* 36 */ { 8, s_4_36, 35, 12, 0},
-/* 37 */ { 6, s_4_37, 34, 13, 0},
-/* 38 */ { 6, s_4_38, 34, 14, 0},
-/* 39 */ { 3, s_4_39, -1, 10, 0},
-/* 40 */ { 4, s_4_40, 39, 9, 0},
-/* 41 */ { 3, s_4_41, -1, 1, 0},
-/* 42 */ { 4, s_4_42, -1, 7, 0}
+{ 4, s_4_0, -1, 1, 0},
+{ 6, s_4_1, -1, 2, 0},
+{ 4, s_4_2, -1, 1, 0},
+{ 4, s_4_3, -1, 5, 0},
+{ 5, s_4_4, -1, 3, 0},
+{ 4, s_4_5, -1, 1, 0},
+{ 4, s_4_6, -1, 1, 0},
+{ 4, s_4_7, -1, 11, 0},
+{ 4, s_4_8, -1, 1, 0},
+{ 3, s_4_9, -1, 8, 0},
+{ 2, s_4_10, -1, 8, 0},
+{ 5, s_4_11, -1, 4, 0},
+{ 5, s_4_12, -1, 2, 0},
+{ 5, s_4_13, -1, 4, 0},
+{ 5, s_4_14, -1, 2, 0},
+{ 5, s_4_15, -1, 1, 0},
+{ 7, s_4_16, -1, 2, 0},
+{ 5, s_4_17, -1, 1, 0},
+{ 5, s_4_18, -1, 5, 0},
+{ 6, s_4_19, -1, 3, 0},
+{ 5, s_4_20, -1, 1, 0},
+{ 5, s_4_21, -1, 1, 0},
+{ 5, s_4_22, -1, 11, 0},
+{ 5, s_4_23, -1, 1, 0},
+{ 4, s_4_24, -1, 8, 0},
+{ 3, s_4_25, -1, 8, 0},
+{ 6, s_4_26, -1, 4, 0},
+{ 6, s_4_27, -1, 2, 0},
+{ 6, s_4_28, -1, 4, 0},
+{ 6, s_4_29, -1, 2, 0},
+{ 5, s_4_30, -1, 15, 0},
+{ 6, s_4_31, 30, 6, 0},
+{ 9, s_4_32, 31, 12, 0},
+{ 5, s_4_33, -1, 7, 0},
+{ 4, s_4_34, -1, 15, 0},
+{ 5, s_4_35, 34, 6, 0},
+{ 8, s_4_36, 35, 12, 0},
+{ 6, s_4_37, 34, 13, 0},
+{ 6, s_4_38, 34, 14, 0},
+{ 3, s_4_39, -1, 10, 0},
+{ 4, s_4_40, 39, 9, 0},
+{ 3, s_4_41, -1, 1, 0},
+{ 4, s_4_42, -1, 7, 0}
 };
 
 static const symbol s_5_0[3] = { 'i', 'r', 'a' };
@@ -219,41 +219,41 @@ static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' };
 
 static const struct among a_5[35] =
 {
-/*  0 */ { 3, s_5_0, -1, 1, 0},
-/*  1 */ { 2, s_5_1, -1, 1, 0},
-/*  2 */ { 4, s_5_2, -1, 1, 0},
-/*  3 */ { 7, s_5_3, -1, 1, 0},
-/*  4 */ { 1, s_5_4, -1, 1, 0},
-/*  5 */ { 4, s_5_5, 4, 1, 0},
-/*  6 */ { 2, s_5_6, -1, 1, 0},
-/*  7 */ { 4, s_5_7, -1, 1, 0},
-/*  8 */ { 3, s_5_8, -1, 1, 0},
-/*  9 */ { 5, s_5_9, -1, 1, 0},
-/* 10 */ { 5, s_5_10, -1, 1, 0},
-/* 11 */ { 8, s_5_11, -1, 1, 0},
-/* 12 */ { 5, s_5_12, -1, 1, 0},
-/* 13 */ { 2, s_5_13, -1, 1, 0},
-/* 14 */ { 5, s_5_14, 13, 1, 0},
-/* 15 */ { 6, s_5_15, 13, 1, 0},
-/* 16 */ { 6, s_5_16, -1, 1, 0},
-/* 17 */ { 7, s_5_17, -1, 1, 0},
-/* 18 */ { 5, s_5_18, -1, 1, 0},
-/* 19 */ { 6, s_5_19, -1, 1, 0},
-/* 20 */ { 7, s_5_20, -1, 1, 0},
-/* 21 */ { 2, s_5_21, -1, 1, 0},
-/* 22 */ { 5, s_5_22, 21, 1, 0},
-/* 23 */ { 6, s_5_23, 21, 1, 0},
-/* 24 */ { 6, s_5_24, -1, 1, 0},
-/* 25 */ { 7, s_5_25, -1, 1, 0},
-/* 26 */ { 8, s_5_26, -1, 1, 0},
-/* 27 */ { 5, s_5_27, -1, 1, 0},
-/* 28 */ { 6, s_5_28, -1, 1, 0},
-/* 29 */ { 5, s_5_29, -1, 1, 0},
-/* 30 */ { 3, s_5_30, -1, 1, 0},
-/* 31 */ { 5, s_5_31, -1, 1, 0},
-/* 32 */ { 6, s_5_32, -1, 1, 0},
-/* 33 */ { 4, s_5_33, -1, 1, 0},
-/* 34 */ { 5, s_5_34, -1, 1, 0}
+{ 3, s_5_0, -1, 1, 0},
+{ 2, s_5_1, -1, 1, 0},
+{ 4, s_5_2, -1, 1, 0},
+{ 7, s_5_3, -1, 1, 0},
+{ 1, s_5_4, -1, 1, 0},
+{ 4, s_5_5, 4, 1, 0},
+{ 2, s_5_6, -1, 1, 0},
+{ 4, s_5_7, -1, 1, 0},
+{ 3, s_5_8, -1, 1, 0},
+{ 5, s_5_9, -1, 1, 0},
+{ 5, s_5_10, -1, 1, 0},
+{ 8, s_5_11, -1, 1, 0},
+{ 5, s_5_12, -1, 1, 0},
+{ 2, s_5_13, -1, 1, 0},
+{ 5, s_5_14, 13, 1, 0},
+{ 6, s_5_15, 13, 1, 0},
+{ 6, s_5_16, -1, 1, 0},
+{ 7, s_5_17, -1, 1, 0},
+{ 5, s_5_18, -1, 1, 0},
+{ 6, s_5_19, -1, 1, 0},
+{ 7, s_5_20, -1, 1, 0},
+{ 2, s_5_21, -1, 1, 0},
+{ 5, s_5_22, 21, 1, 0},
+{ 6, s_5_23, 21, 1, 0},
+{ 6, s_5_24, -1, 1, 0},
+{ 7, s_5_25, -1, 1, 0},
+{ 8, s_5_26, -1, 1, 0},
+{ 5, s_5_27, -1, 1, 0},
+{ 6, s_5_28, -1, 1, 0},
+{ 5, s_5_29, -1, 1, 0},
+{ 3, s_5_30, -1, 1, 0},
+{ 5, s_5_31, -1, 1, 0},
+{ 6, s_5_32, -1, 1, 0},
+{ 4, s_5_33, -1, 1, 0},
+{ 5, s_5_34, -1, 1, 0}
 };
 
 static const symbol s_6_0[1] = { 'a' };
@@ -297,44 +297,44 @@ static const symbol s_6_37[2] = { 0xC3, 0xA9 };
 
 static const struct among a_6[38] =
 {
-/*  0 */ { 1, s_6_0, -1, 3, 0},
-/*  1 */ { 3, s_6_1, 0, 2, 0},
-/*  2 */ { 4, s_6_2, -1, 3, 0},
-/*  3 */ { 4, s_6_3, -1, 3, 0},
-/*  4 */ { 3, s_6_4, -1, 2, 0},
-/*  5 */ { 2, s_6_5, -1, 3, 0},
-/*  6 */ { 4, s_6_6, 5, 2, 0},
-/*  7 */ { 2, s_6_7, -1, 2, 0},
-/*  8 */ { 2, s_6_8, -1, 3, 0},
-/*  9 */ { 4, s_6_9, 8, 2, 0},
-/* 10 */ { 5, s_6_10, -1, 3, 0},
-/* 11 */ { 5, s_6_11, -1, 3, 0},
-/* 12 */ { 5, s_6_12, -1, 3, 0},
-/* 13 */ { 5, s_6_13, -1, 3, 0},
-/* 14 */ { 4, s_6_14, -1, 2, 0},
-/* 15 */ { 3, s_6_15, -1, 3, 0},
-/* 16 */ { 5, s_6_16, 15, 2, 0},
-/* 17 */ { 4, s_6_17, -1, 1, 0},
-/* 18 */ { 6, s_6_18, 17, 2, 0},
-/* 19 */ { 7, s_6_19, 17, 3, 0},
-/* 20 */ { 5, s_6_20, -1, 2, 0},
-/* 21 */ { 4, s_6_21, -1, 3, 0},
-/* 22 */ { 3, s_6_22, -1, 2, 0},
-/* 23 */ { 3, s_6_23, -1, 3, 0},
-/* 24 */ { 5, s_6_24, 23, 2, 0},
-/* 25 */ { 3, s_6_25, -1, 3, 0},
-/* 26 */ { 5, s_6_26, -1, 3, 0},
-/* 27 */ { 7, s_6_27, 26, 2, 0},
-/* 28 */ { 6, s_6_28, -1, 2, 0},
-/* 29 */ { 6, s_6_29, -1, 3, 0},
-/* 30 */ { 5, s_6_30, -1, 2, 0},
-/* 31 */ { 3, s_6_31, -1, 3, 0},
-/* 32 */ { 2, s_6_32, -1, 2, 0},
-/* 33 */ { 3, s_6_33, 32, 2, 0},
-/* 34 */ { 5, s_6_34, 33, 2, 0},
-/* 35 */ { 6, s_6_35, 33, 3, 0},
-/* 36 */ { 4, s_6_36, 32, 2, 0},
-/* 37 */ { 2, s_6_37, -1, 2, 0}
+{ 1, s_6_0, -1, 3, 0},
+{ 3, s_6_1, 0, 2, 0},
+{ 4, s_6_2, -1, 3, 0},
+{ 4, s_6_3, -1, 3, 0},
+{ 3, s_6_4, -1, 2, 0},
+{ 2, s_6_5, -1, 3, 0},
+{ 4, s_6_6, 5, 2, 0},
+{ 2, s_6_7, -1, 2, 0},
+{ 2, s_6_8, -1, 3, 0},
+{ 4, s_6_9, 8, 2, 0},
+{ 5, s_6_10, -1, 3, 0},
+{ 5, s_6_11, -1, 3, 0},
+{ 5, s_6_12, -1, 3, 0},
+{ 5, s_6_13, -1, 3, 0},
+{ 4, s_6_14, -1, 2, 0},
+{ 3, s_6_15, -1, 3, 0},
+{ 5, s_6_16, 15, 2, 0},
+{ 4, s_6_17, -1, 1, 0},
+{ 6, s_6_18, 17, 2, 0},
+{ 7, s_6_19, 17, 3, 0},
+{ 5, s_6_20, -1, 2, 0},
+{ 4, s_6_21, -1, 3, 0},
+{ 3, s_6_22, -1, 2, 0},
+{ 3, s_6_23, -1, 3, 0},
+{ 5, s_6_24, 23, 2, 0},
+{ 3, s_6_25, -1, 3, 0},
+{ 5, s_6_26, -1, 3, 0},
+{ 7, s_6_27, 26, 2, 0},
+{ 6, s_6_28, -1, 2, 0},
+{ 6, s_6_29, -1, 3, 0},
+{ 5, s_6_30, -1, 2, 0},
+{ 3, s_6_31, -1, 3, 0},
+{ 2, s_6_32, -1, 2, 0},
+{ 3, s_6_33, 32, 2, 0},
+{ 5, s_6_34, 33, 2, 0},
+{ 6, s_6_35, 33, 3, 0},
+{ 4, s_6_36, 32, 2, 0},
+{ 2, s_6_37, -1, 2, 0}
 };
 
 static const symbol s_7_0[1] = { 'e' };
@@ -346,12 +346,12 @@ static const symbol s_7_5[3] = { 'i', 'e', 'r' };
 
 static const struct among a_7[6] =
 {
-/*  0 */ { 1, s_7_0, -1, 3, 0},
-/*  1 */ { 5, s_7_1, 0, 2, 0},
-/*  2 */ { 5, s_7_2, 0, 2, 0},
-/*  3 */ { 3, s_7_3, -1, 1, 0},
-/*  4 */ { 3, s_7_4, -1, 2, 0},
-/*  5 */ { 3, s_7_5, -1, 2, 0}
+{ 1, s_7_0, -1, 3, 0},
+{ 5, s_7_1, 0, 2, 0},
+{ 5, s_7_2, 0, 2, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 3, s_7_4, -1, 2, 0},
+{ 3, s_7_5, -1, 2, 0}
 };
 
 static const symbol s_8_0[3] = { 'e', 'l', 'l' };
@@ -362,11 +362,11 @@ static const symbol s_8_4[3] = { 'e', 't', 't' };
 
 static const struct among a_8[5] =
 {
-/*  0 */ { 3, s_8_0, -1, -1, 0},
-/*  1 */ { 4, s_8_1, -1, -1, 0},
-/*  2 */ { 3, s_8_2, -1, -1, 0},
-/*  3 */ { 3, s_8_3, -1, -1, 0},
-/*  4 */ { 3, s_8_4, -1, -1, 0}
+{ 3, s_8_0, -1, -1, 0},
+{ 4, s_8_1, -1, -1, 0},
+{ 3, s_8_2, -1, -1, 0},
+{ 3, s_8_3, -1, -1, 0},
+{ 3, s_8_4, -1, -1, 0}
 };
 
 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 };
@@ -414,40 +414,39 @@ static const symbol s_37[] = { 'i' };
 static const symbol s_38[] = { 0xC3, 0xA7 };
 static const symbol s_39[] = { 'c' };
 
-static int r_prelude(struct SN_env * z) { /* forwardmode */
-/* repeat, line 38 */
-
-    while(1) {        int c1 = z->c;
-        while(1) { /* goto, line 38 */
+static int r_prelude(struct SN_env * z) {
+    while(1) {
+        int c1 = z->c;
+        while(1) {
             int c2 = z->c;
-            {   int c3 = z->c; /* or, line 44 */
-                if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab3; /* grouping v, line 40 */
-                z->bra = z->c; /* [, line 40 */
-                {   int c4 = z->c; /* or, line 40 */
-                    if (z->c == z->l || z->p[z->c] != 'u') goto lab5; /* literal, line 40 */
+            {   int c3 = z->c;
+                if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab3;
+                z->bra = z->c;
+                {   int c4 = z->c;
+                    if (z->c == z->l || z->p[z->c] != 'u') goto lab5;
                     z->c++;
-                    z->ket = z->c; /* ], line 40 */
-                    if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab5; /* grouping v, line 40 */
-                    {   int ret = slice_from_s(z, 1, s_0); /* <-, line 40 */
+                    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);
                         if (ret < 0) return ret;
                     }
                     goto lab4;
                 lab5:
                     z->c = c4;
-                    if (z->c == z->l || z->p[z->c] != 'i') goto lab6; /* literal, line 41 */
+                    if (z->c == z->l || z->p[z->c] != 'i') goto lab6;
                     z->c++;
-                    z->ket = z->c; /* ], line 41 */
-                    if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab6; /* grouping v, line 41 */
-                    {   int ret = slice_from_s(z, 1, s_1); /* <-, line 41 */
+                    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);
                         if (ret < 0) return ret;
                     }
                     goto lab4;
                 lab6:
                     z->c = c4;
-                    if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 42 */
+                    if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
                     z->c++;
-                    z->ket = z->c; /* ], line 42 */
-                    {   int ret = slice_from_s(z, 1, s_2); /* <-, line 42 */
+                    z->ket = z->c;
+                    {   int ret = slice_from_s(z, 1, s_2);
                         if (ret < 0) return ret;
                     }
                 }
@@ -455,42 +454,42 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
                 goto lab2;
             lab3:
                 z->c = c3;
-                z->bra = z->c; /* [, line 45 */
-                if (!(eq_s(z, 2, s_3))) goto lab7; /* literal, line 45 */
-                z->ket = z->c; /* ], line 45 */
-                {   int ret = slice_from_s(z, 2, s_4); /* <-, line 45 */
+                z->bra = z->c;
+                if (!(eq_s(z, 2, s_3))) goto lab7;
+                z->ket = z->c;
+                {   int ret = slice_from_s(z, 2, s_4);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
             lab7:
                 z->c = c3;
-                z->bra = z->c; /* [, line 47 */
-                if (!(eq_s(z, 2, s_5))) goto lab8; /* literal, line 47 */
-                z->ket = z->c; /* ], line 47 */
-                {   int ret = slice_from_s(z, 2, s_6); /* <-, line 47 */
+                z->bra = z->c;
+                if (!(eq_s(z, 2, s_5))) goto lab8;
+                z->ket = z->c;
+                {   int ret = slice_from_s(z, 2, s_6);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
             lab8:
                 z->c = c3;
-                z->bra = z->c; /* [, line 49 */
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab9; /* literal, line 49 */
+                z->bra = z->c;
+                if (z->c == z->l || z->p[z->c] != 'y') goto lab9;
                 z->c++;
-                z->ket = z->c; /* ], line 49 */
-                if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab9; /* grouping v, line 49 */
-                {   int ret = slice_from_s(z, 1, s_7); /* <-, line 49 */
+                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);
                     if (ret < 0) return ret;
                 }
                 goto lab2;
             lab9:
                 z->c = c3;
-                if (z->c == z->l || z->p[z->c] != 'q') goto lab1; /* literal, line 51 */
+                if (z->c == z->l || z->p[z->c] != 'q') goto lab1;
                 z->c++;
-                z->bra = z->c; /* [, line 51 */
-                if (z->c == z->l || z->p[z->c] != 'u') goto lab1; /* literal, line 51 */
+                z->bra = z->c;
+                if (z->c == z->l || z->p[z->c] != 'u') goto lab1;
                 z->c++;
-                z->ket = z->c; /* ], line 51 */
-                {   int ret = slice_from_s(z, 1, s_8); /* <-, line 51 */
+                z->ket = z->c;
+                {   int ret = slice_from_s(z, 1, s_8);
                     if (ret < 0) return ret;
                 }
             }
@@ -499,9 +498,9 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
             break;
         lab1:
             z->c = c2;
-            {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+            {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                 if (ret < 0) goto lab0;
-                z->c = ret; /* goto, line 38 */
+                z->c = ret;
             }
         }
         continue;
@@ -512,115 +511,114 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $pV = <integer expression>, line 56 */
-    z->I[1] = z->l; /* $p1 = <integer expression>, line 57 */
-    z->I[2] = z->l; /* $p2 = <integer expression>, line 58 */
-    {   int c1 = z->c; /* do, line 60 */
-        {   int c2 = z->c; /* or, line 62 */
-            if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */
-            if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */
-            {   int ret = skip_utf8(z->p, z->c, 0, z->l, 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_U(z, g_v, 97, 251, 0)) goto lab2;
+            if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2;
+            {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                 if (ret < 0) goto lab2;
-                z->c = ret; /* next, line 61 */
+                z->c = ret;
             }
             goto lab1;
         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; /* among, line 63 */
+            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;
             goto lab1;
         lab3:
             z->c = c2;
-            {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+            {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                 if (ret < 0) goto lab0;
-                z->c = ret; /* next, line 70 */
+                z->c = ret;
             }
-            {    /* gopast */ /* grouping v, line 70 */
+            {   
                 int ret = out_grouping_U(z, g_v, 97, 251, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
             }
         }
     lab1:
-        z->I[0] = z->c; /* setmark pV, line 71 */
+        z->I[2] = z->c;
     lab0:
         z->c = c1;
     }
-    {   int c3 = z->c; /* do, line 73 */
-        {    /* gopast */ /* grouping v, line 74 */
+    {   int c3 = z->c;
+        {   
             int ret = out_grouping_U(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 74 */
+        {   
             int ret = in_grouping_U(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p1, line 74 */
-        {    /* gopast */ /* grouping v, line 75 */
+        z->I[1] = z->c;
+        {   
             int ret = out_grouping_U(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 75 */
+        {   
             int ret = in_grouping_U(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        z->I[2] = z->c; /* setmark p2, line 75 */
+        z->I[0] = z->c;
     lab4:
         z->c = c3;
     }
     return 1;
 }
 
-static int r_postlude(struct SN_env * z) { /* forwardmode */
+static int r_postlude(struct SN_env * z) {
     int among_var;
-/* repeat, line 79 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 81 */
-        if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else /* substring, line 81 */
+    while(1) {
+        int c1 = z->c;
+        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; /* ], line 81 */
-        switch (among_var) { /* among, line 81 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_9); /* <-, line 82 */
+                {   int ret = slice_from_s(z, 1, s_9);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_10); /* <-, line 83 */
+                {   int ret = slice_from_s(z, 1, s_10);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_from_s(z, 1, s_11); /* <-, line 84 */
+                {   int ret = slice_from_s(z, 1, s_11);
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = slice_from_s(z, 2, s_12); /* <-, line 85 */
+                {   int ret = slice_from_s(z, 2, s_12);
                     if (ret < 0) return ret;
                 }
                 break;
             case 5:
-                {   int ret = slice_from_s(z, 2, s_13); /* <-, line 86 */
+                {   int ret = slice_from_s(z, 2, s_13);
                     if (ret < 0) return ret;
                 }
                 break;
             case 6:
-                {   int ret = slice_del(z); /* delete, line 87 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 7:
-                {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+                {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                     if (ret < 0) goto lab0;
-                    z->c = ret; /* next, line 88 */
+                    z->c = ret;
                 }
                 break;
         }
@@ -632,59 +630,59 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_RV(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 94 */
+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) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 95 */
+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) { /* backwardmode */
-    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 96 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[0] <= z->c)) return 0;
     return 1;
 }
 
-static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
+static int r_standard_suffix(struct SN_env * z) {
     int among_var;
-    z->ket = z->c; /* [, line 99 */
-    among_var = find_among_b(z, a_4, 43); /* substring, line 99 */
+    z->ket = z->c;
+    among_var = find_among_b(z, a_4, 43);
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 99 */
-    switch (among_var) { /* among, line 99 */
+    z->bra = z->c;
+    switch (among_var) {
         case 1:
-            {   int ret = r_R2(z); /* call R2, line 103 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 103 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 106 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 106 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m1 = z->l - z->c; (void)m1; /* try, line 107 */
-                z->ket = z->c; /* [, line 107 */
-                if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m1; goto lab0; } /* literal, line 107 */
-                z->bra = z->c; /* ], line 107 */
-                {   int m2 = z->l - z->c; (void)m2; /* or, line 107 */
-                    {   int ret = r_R2(z); /* call R2, line 107 */
+            {   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; }
+                z->bra = z->c;
+                {   int m2 = z->l - z->c; (void)m2;
+                    {   int ret = r_R2(z);
                         if (ret == 0) goto lab2;
                         if (ret < 0) return ret;
                     }
-                    {   int ret = slice_del(z); /* delete, line 107 */
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                     goto lab1;
                 lab2:
                     z->c = z->l - m2;
-                    {   int ret = slice_from_s(z, 3, s_15); /* <-, line 107 */
+                    {   int ret = slice_from_s(z, 3, s_15);
                         if (ret < 0) return ret;
                     }
                 }
@@ -694,98 +692,98 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 3:
-            {   int ret = r_R2(z); /* call R2, line 111 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_16); /* <-, line 111 */
+            {   int ret = slice_from_s(z, 3, s_16);
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = r_R2(z); /* call R2, line 114 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 1, s_17); /* <-, line 114 */
+            {   int ret = slice_from_s(z, 1, s_17);
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = r_R2(z); /* call R2, line 117 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_18); /* <-, line 117 */
+            {   int ret = slice_from_s(z, 3, s_18);
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = r_RV(z); /* call RV, line 121 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 121 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m3 = z->l - z->c; (void)m3; /* try, line 122 */
-                z->ket = z->c; /* [, line 123 */
-                among_var = find_among_b(z, a_2, 6); /* substring, line 123 */
+            {   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; }
-                z->bra = z->c; /* ], line 123 */
-                switch (among_var) { /* among, line 123 */
+                z->bra = z->c;
+                switch (among_var) {
                     case 1:
-                        {   int ret = r_R2(z); /* call R2, line 124 */
+                        {   int ret = r_R2(z);
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 124 */
+                        {   int ret = slice_del(z);
                             if (ret < 0) return ret;
                         }
-                        z->ket = z->c; /* [, line 124 */
-                        if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m3; goto lab3; } /* literal, line 124 */
-                        z->bra = z->c; /* ], line 124 */
-                        {   int ret = r_R2(z); /* call R2, line 124 */
+                        z->ket = z->c;
+                        if (!(eq_s_b(z, 2, s_19))) { 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; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 124 */
+                        {   int ret = slice_del(z);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 2:
-                        {   int m4 = z->l - z->c; (void)m4; /* or, line 125 */
-                            {   int ret = r_R2(z); /* call R2, line 125 */
+                        {   int m4 = z->l - z->c; (void)m4;
+                            {   int ret = r_R2(z);
                                 if (ret == 0) goto lab5;
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_del(z); /* delete, line 125 */
+                            {   int ret = slice_del(z);
                                 if (ret < 0) return ret;
                             }
                             goto lab4;
                         lab5:
                             z->c = z->l - m4;
-                            {   int ret = r_R1(z); /* call R1, line 125 */
+                            {   int ret = r_R1(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); /* <-, line 125 */
+                            {   int ret = slice_from_s(z, 3, s_20);
                                 if (ret < 0) return ret;
                             }
                         }
                     lab4:
                         break;
                     case 3:
-                        {   int ret = r_R2(z); /* call R2, line 127 */
+                        {   int ret = r_R2(z);
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 127 */
+                        {   int ret = slice_del(z);
                             if (ret < 0) return ret;
                         }
                         break;
                     case 4:
-                        {   int ret = r_RV(z); /* call RV, line 129 */
+                        {   int ret = r_RV(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); /* <-, line 129 */
+                        {   int ret = slice_from_s(z, 1, s_21);
                             if (ret < 0) return ret;
                         }
                         break;
@@ -795,61 +793,61 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 7:
-            {   int ret = r_R2(z); /* call R2, line 136 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 136 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m5 = z->l - z->c; (void)m5; /* try, line 137 */
-                z->ket = z->c; /* [, line 138 */
-                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; } /* substring, line 138 */
+            {   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 || !((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; }
-                z->bra = z->c; /* ], line 138 */
-                switch (among_var) { /* among, line 138 */
+                z->bra = z->c;
+                switch (among_var) {
                     case 1:
-                        {   int m6 = z->l - z->c; (void)m6; /* or, line 139 */
-                            {   int ret = r_R2(z); /* call R2, line 139 */
+                        {   int m6 = z->l - z->c; (void)m6;
+                            {   int ret = r_R2(z);
                                 if (ret == 0) goto lab8;
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_del(z); /* delete, line 139 */
+                            {   int ret = slice_del(z);
                                 if (ret < 0) return ret;
                             }
                             goto lab7;
                         lab8:
                             z->c = z->l - m6;
-                            {   int ret = slice_from_s(z, 3, s_22); /* <-, line 139 */
+                            {   int ret = slice_from_s(z, 3, s_22);
                                 if (ret < 0) return ret;
                             }
                         }
                     lab7:
                         break;
                     case 2:
-                        {   int m7 = z->l - z->c; (void)m7; /* or, line 140 */
-                            {   int ret = r_R2(z); /* call R2, line 140 */
+                        {   int m7 = z->l - z->c; (void)m7;
+                            {   int ret = r_R2(z);
                                 if (ret == 0) goto lab10;
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_del(z); /* delete, line 140 */
+                            {   int ret = slice_del(z);
                                 if (ret < 0) return ret;
                             }
                             goto lab9;
                         lab10:
                             z->c = z->l - m7;
-                            {   int ret = slice_from_s(z, 3, s_23); /* <-, line 140 */
+                            {   int ret = slice_from_s(z, 3, s_23);
                                 if (ret < 0) return ret;
                             }
                         }
                     lab9:
                         break;
                     case 3:
-                        {   int ret = r_R2(z); /* call R2, line 141 */
+                        {   int ret = r_R2(z);
                             if (ret == 0) { z->c = z->l - m5; goto lab6; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 141 */
+                        {   int ret = slice_del(z);
                             if (ret < 0) return ret;
                         }
                         break;
@@ -859,38 +857,38 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 8:
-            {   int ret = r_R2(z); /* call R2, line 148 */
+            {   int ret = r_R2(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 148 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            {   int m8 = z->l - z->c; (void)m8; /* try, line 149 */
-                z->ket = z->c; /* [, line 149 */
-                if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */
-                z->bra = z->c; /* ], line 149 */
-                {   int ret = r_R2(z); /* call R2, line 149 */
+            {   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; }
+                z->bra = z->c;
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->c = z->l - m8; goto lab11; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 149 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                z->ket = z->c; /* [, line 149 */
-                if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */
-                z->bra = z->c; /* ], line 149 */
-                {   int m9 = z->l - z->c; (void)m9; /* or, line 149 */
-                    {   int ret = r_R2(z); /* call R2, line 149 */
+                z->ket = z->c;
+                if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m8; goto lab11; }
+                z->bra = z->c;
+                {   int m9 = z->l - z->c; (void)m9;
+                    {   int ret = r_R2(z);
                         if (ret == 0) goto lab13;
                         if (ret < 0) return ret;
                     }
-                    {   int ret = slice_del(z); /* delete, line 149 */
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                     goto lab12;
                 lab13:
                     z->c = z->l - m9;
-                    {   int ret = slice_from_s(z, 3, s_26); /* <-, line 149 */
+                    {   int ret = slice_from_s(z, 3, s_26);
                         if (ret < 0) return ret;
                     }
                 }
@@ -900,101 +898,101 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 3, s_27); /* <-, line 151 */
+            {   int ret = slice_from_s(z, 3, s_27);
                 if (ret < 0) return ret;
             }
             break;
         case 10:
-            {   int ret = r_R1(z); /* call R1, line 152 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_28); /* <-, line 152 */
+            {   int ret = slice_from_s(z, 2, s_28);
                 if (ret < 0) return ret;
             }
             break;
         case 11:
-            {   int m10 = z->l - z->c; (void)m10; /* or, line 154 */
-                {   int ret = r_R2(z); /* call R2, line 154 */
+            {   int m10 = z->l - z->c; (void)m10;
+                {   int ret = r_R2(z);
                     if (ret == 0) goto lab15;
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 154 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 goto lab14;
             lab15:
                 z->c = z->l - m10;
-                {   int ret = r_R1(z); /* call R1, line 154 */
+                {   int ret = r_R1(z);
                     if (ret <= 0) return ret;
                 }
-                {   int ret = slice_from_s(z, 3, s_29); /* <-, line 154 */
+                {   int ret = slice_from_s(z, 3, s_29);
                     if (ret < 0) return ret;
                 }
             }
         lab14:
             break;
         case 12:
-            {   int ret = r_R1(z); /* call R1, line 157 */
+            {   int ret = r_R1(z);
                 if (ret <= 0) return ret;
             }
-            if (out_grouping_b_U(z, g_v, 97, 251, 0)) return 0; /* non v, line 157 */
-            {   int ret = slice_del(z); /* delete, line 157 */
+            if (out_grouping_b_U(z, g_v, 97, 251, 0)) return 0;
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
             break;
         case 13:
-            {   int ret = r_RV(z); /* call RV, line 162 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_30); /* <-, line 162 */
+            {   int ret = slice_from_s(z, 3, s_30);
                 if (ret < 0) return ret;
             }
-            return 0; /* fail, line 162 */
+            return 0;
             break;
         case 14:
-            {   int ret = r_RV(z); /* call RV, line 163 */
+            {   int ret = r_RV(z);
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_31); /* <-, line 163 */
+            {   int ret = slice_from_s(z, 3, s_31);
                 if (ret < 0) return ret;
             }
-            return 0; /* fail, line 163 */
+            return 0;
             break;
         case 15:
-            {   int m_test11 = z->l - z->c; /* test, line 165 */
-                if (in_grouping_b_U(z, g_v, 97, 251, 0)) return 0; /* grouping v, line 165 */
-                {   int ret = r_RV(z); /* call RV, line 165 */
+            {   int m_test11 = z->l - z->c;
+                if (in_grouping_b_U(z, g_v, 97, 251, 0)) return 0;
+                {   int ret = r_RV(z);
                     if (ret <= 0) return ret;
                 }
                 z->c = z->l - m_test11;
             }
-            {   int ret = slice_del(z); /* delete, line 165 */
+            {   int ret = slice_del(z);
                 if (ret < 0) return ret;
             }
-            return 0; /* fail, line 165 */
+            return 0;
             break;
     }
     return 1;
 }
 
-static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */
+static int r_i_verb_suffix(struct SN_env * z) {
 
-    {   int mlimit1; /* setlimit, line 170 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 171 */
-        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; } /* substring, line 171 */
+    {   int mlimit1;
+        if (z->c < z->I[2]) return 0;
+        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; }
-        z->bra = z->c; /* ], line 171 */
-        {   int m2 = z->l - z->c; (void)m2; /* not, line 177 */
-            if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0; /* literal, line 177 */
+        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;
             z->c--;
             { z->lb = mlimit1; return 0; }
         lab0:
             z->c = z->l - m2;
         }
-        if (out_grouping_b_U(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } /* non v, line 177 */
-        {   int ret = slice_del(z); /* delete, line 177 */
+        if (out_grouping_b_U(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; }
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
         z->lb = mlimit1;
@@ -1002,41 +1000,41 @@ static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
+static int r_verb_suffix(struct SN_env * z) {
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 181 */
-        if (z->c < z->I[0]) return 0;
-        mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 182 */
-        among_var = find_among_b(z, a_6, 38); /* substring, line 182 */
+    {   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_6, 38);
         if (!(among_var)) { z->lb = mlimit1; return 0; }
-        z->bra = z->c; /* ], line 182 */
-        switch (among_var) { /* among, line 182 */
+        z->bra = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = r_R2(z); /* call R2, line 184 */
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->lb = mlimit1; return 0; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 184 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_del(z); /* delete, line 192 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_del(z); /* delete, line 197 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m2 = z->l - z->c; (void)m2; /* try, line 198 */
-                    z->ket = z->c; /* [, line 198 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } /* literal, line 198 */
+                {   int m2 = z->l - z->c; (void)m2;
+                    z->ket = z->c;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; }
                     z->c--;
-                    z->bra = z->c; /* ], line 198 */
-                    {   int ret = slice_del(z); /* delete, line 198 */
+                    z->bra = z->c;
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                 lab0:
@@ -1049,66 +1047,66 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
+static int r_residual_suffix(struct SN_env * z) {
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* try, line 206 */
-        z->ket = z->c; /* [, line 206 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } /* literal, line 206 */
+    {   int m1 = z->l - z->c; (void)m1;
+        z->ket = z->c;
+        if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; }
         z->c--;
-        z->bra = z->c; /* ], line 206 */
-        {   int m_test2 = z->l - z->c; /* test, line 206 */
-            {   int m3 = z->l - z->c; (void)m3; /* or, line 206 */
-                if (!(eq_s_b(z, 2, s_32))) goto lab2; /* literal, line 206 */
+        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;
                 goto lab1;
             lab2:
                 z->c = z->l - m3;
-                if (out_grouping_b_U(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } /* non keep_with_s, line 206 */
+                if (out_grouping_b_U(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; }
             }
         lab1:
             z->c = z->l - m_test2;
         }
-        {   int ret = slice_del(z); /* delete, line 206 */
+        {   int ret = slice_del(z);
             if (ret < 0) return ret;
         }
     lab0:
         ;
     }
 
-    {   int mlimit4; /* setlimit, line 207 */
-        if (z->c < z->I[0]) return 0;
-        mlimit4 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 208 */
-        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; } /* substring, line 208 */
+    {   int mlimit4;
+        if (z->c < z->I[2]) return 0;
+        mlimit4 = z->lb; z->lb = z->I[2];
+        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; }
-        z->bra = z->c; /* ], line 208 */
-        switch (among_var) { /* among, line 208 */
+        z->bra = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = r_R2(z); /* call R2, line 209 */
+                {   int ret = r_R2(z);
                     if (ret == 0) { z->lb = mlimit4; return 0; }
                     if (ret < 0) return ret;
                 }
-                {   int m5 = z->l - z->c; (void)m5; /* or, line 209 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4; /* literal, line 209 */
+                {   int m5 = z->l - z->c; (void)m5;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4;
                     z->c--;
                     goto lab3;
                 lab4:
                     z->c = z->l - m5;
-                    if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; } /* literal, line 209 */
+                    if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; }
                     z->c--;
                 }
             lab3:
-                {   int ret = slice_del(z); /* delete, line 209 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_33); /* <-, line 211 */
+                {   int ret = slice_from_s(z, 1, s_33);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_del(z); /* delete, line 212 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
@@ -1118,27 +1116,28 @@ static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
     return 1;
 }
 
-static int r_un_double(struct SN_env * z) { /* backwardmode */
-    {   int m_test1 = z->l - z->c; /* test, line 218 */
-        if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 218 */
+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;
         z->c = z->l - m_test1;
     }
-    z->ket = z->c; /* [, line 218 */
-    {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+    z->ket = z->c;
+    {   int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
         if (ret < 0) return 0;
-        z->c = ret; /* next, line 218 */
+        z->c = ret;
     }
-    z->bra = z->c; /* ], line 218 */
-    {   int ret = slice_del(z); /* delete, line 218 */
+    z->bra = z->c;
+    {   int ret = slice_del(z);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-static int r_un_accent(struct SN_env * z) { /* backwardmode */
+static int r_un_accent(struct SN_env * z) {
     {   int i = 1;
-        while(1) {            if (out_grouping_b_U(z, g_v, 97, 251, 0)) goto lab0; /* non v, line 222 */
+        while(1) {
+            if (out_grouping_b_U(z, g_v, 97, 251, 0)) goto lab0;
             i--;
             continue;
         lab0:
@@ -1146,75 +1145,75 @@ static int r_un_accent(struct SN_env * z) { /* backwardmode */
         }
         if (i > 0) return 0;
     }
-    z->ket = z->c; /* [, line 223 */
-    {   int m1 = z->l - z->c; (void)m1; /* or, line 223 */
-        if (!(eq_s_b(z, 2, s_34))) goto lab2; /* literal, line 223 */
+    z->ket = z->c;
+    {   int m1 = z->l - z->c; (void)m1;
+        if (!(eq_s_b(z, 2, s_34))) goto lab2;
         goto lab1;
     lab2:
         z->c = z->l - m1;
-        if (!(eq_s_b(z, 2, s_35))) return 0; /* literal, line 223 */
+        if (!(eq_s_b(z, 2, s_35))) return 0;
     }
 lab1:
-    z->bra = z->c; /* ], line 223 */
-    {   int ret = slice_from_s(z, 1, s_36); /* <-, line 223 */
+    z->bra = z->c;
+    {   int ret = slice_from_s(z, 1, s_36);
         if (ret < 0) return ret;
     }
     return 1;
 }
 
-extern int french_UTF_8_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 229 */
-        {   int ret = r_prelude(z); /* call prelude, line 229 */
+extern int french_UTF_8_stem(struct SN_env * z) {
+    {   int c1 = z->c;
+        {   int ret = r_prelude(z);
             if (ret < 0) return ret;
         }
         z->c = c1;
     }
-    /* do, line 230 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 230 */
+    
+    {   int ret = r_mark_regions(z);
         if (ret < 0) return ret;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 231 */
+    z->lb = z->c; z->c = z->l;
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 233 */
-        {   int m3 = z->l - z->c; (void)m3; /* or, line 243 */
-            {   int m4 = z->l - z->c; (void)m4; /* and, line 239 */
-                {   int m5 = z->l - z->c; (void)m5; /* or, line 235 */
-                    {   int ret = r_standard_suffix(z); /* call standard_suffix, line 235 */
+    {   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 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_i_verb_suffix(z); /* call i_verb_suffix, line 236 */
+                    {   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;
-                    {   int ret = r_verb_suffix(z); /* call verb_suffix, line 237 */
+                    {   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; /* try, line 240 */
-                    z->ket = z->c; /* [, line 240 */
-                    {   int m7 = z->l - z->c; (void)m7; /* or, line 240 */
-                        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8; /* literal, line 240 */
+                {   int m6 = z->l - z->c; (void)m6;
+                    z->ket = z->c;
+                    {   int m7 = z->l - z->c; (void)m7;
+                        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8;
                         z->c--;
-                        z->bra = z->c; /* ], line 240 */
-                        {   int ret = slice_from_s(z, 1, s_37); /* <-, line 240 */
+                        z->bra = z->c;
+                        {   int ret = slice_from_s(z, 1, s_37);
                             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; } /* literal, line 241 */
-                        z->bra = z->c; /* ], line 241 */
-                        {   int ret = slice_from_s(z, 1, s_39); /* <-, line 241 */
+                        if (!(eq_s_b(z, 2, s_38))) { z->c = z->l - m6; goto lab6; }
+                        z->bra = z->c;
+                        {   int ret = slice_from_s(z, 1, s_39);
                             if (ret < 0) return ret;
                         }
                     }
@@ -1226,7 +1225,7 @@ extern int french_UTF_8_stem(struct SN_env * z) { /* forwardmode */
             goto lab1;
         lab2:
             z->c = z->l - m3;
-            {   int ret = r_residual_suffix(z); /* call residual_suffix, line 244 */
+            {   int ret = r_residual_suffix(z);
                 if (ret == 0) goto lab0;
                 if (ret < 0) return ret;
             }
@@ -1235,21 +1234,21 @@ extern int french_UTF_8_stem(struct SN_env * z) { /* forwardmode */
     lab0:
         z->c = z->l - m2;
     }
-    {   int m8 = z->l - z->c; (void)m8; /* do, line 249 */
-        {   int ret = r_un_double(z); /* call un_double, line 249 */
+    {   int m8 = z->l - z->c; (void)m8;
+        {   int ret = r_un_double(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m8;
     }
-    {   int m9 = z->l - z->c; (void)m9; /* do, line 250 */
-        {   int ret = r_un_accent(z); /* call un_accent, line 250 */
+    {   int m9 = z->l - z->c; (void)m9;
+        {   int ret = r_un_accent(z);
             if (ret < 0) return ret;
         }
         z->c = z->l - m9;
     }
     z->c = z->lb;
-    {   int c10 = z->c; /* do, line 252 */
-        {   int ret = r_postlude(z); /* call postlude, line 252 */
+    {   int c10 = z->c;
+        {   int ret = r_postlude(z);
             if (ret < 0) return ret;
         }
         z->c = c10;
@@ -1257,7 +1256,7 @@ extern int french_UTF_8_stem(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-extern struct SN_env * french_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
+extern struct SN_env * french_UTF_8_create_env(void) { return SN_create_env(0, 3); }
 
 extern void french_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
 
index 41a3b4eec347b3fb7beed10573b510b5dee6b957..5b65f2d039cf89c496f10f5b296747e4db08766c 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
+/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
 
 #include "header.h"
 
@@ -35,12 +35,12 @@ static const symbol s_0_5[2] = { 0xC3, 0xBC };
 
 static const struct among a_0[6] =
 {
-/*  0 */ { 0, 0, -1, 5, 0},
-/*  1 */ { 1, s_0_1, 0, 2, 0},
-/*  2 */ { 1, s_0_2, 0, 1, 0},
-/*  3 */ { 2, s_0_3, 0, 3, 0},
-/*  4 */ { 2, s_0_4, 0, 4, 0},
-/*  5 */ { 2, s_0_5, 0, 2, 0}
+{ 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_4, 0, 4, 0},
+{ 2, s_0_5, 0, 2, 0}
 };
 
 static const symbol s_1_0[1] = { 'e' };
@@ -53,13 +53,13 @@ static const symbol s_1_6[2] = { 'e', 's' };
 
 static const struct among a_1[7] =
 {
-/*  0 */ { 1, s_1_0, -1, 2, 0},
-/*  1 */ { 2, s_1_1, -1, 1, 0},
-/*  2 */ { 2, s_1_2, -1, 2, 0},
-/*  3 */ { 3, s_1_3, -1, 1, 0},
-/*  4 */ { 2, s_1_4, -1, 1, 0},
-/*  5 */ { 1, s_1_5, -1, 3, 0},
-/*  6 */ { 2, s_1_6, 5, 2, 0}
+{ 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}
 };
 
 static const symbol s_2_0[2] = { 'e', 'n' };
@@ -69,10 +69,10 @@ static const symbol s_2_3[3] = { 'e', 's', 't' };
 
 static const struct among a_2[4] =
 {
-/*  0 */ { 2, s_2_0, -1, 1, 0},
-/*  1 */ { 2, s_2_1, -1, 1, 0},
-/*  2 */ { 2, s_2_2, -1, 2, 0},
-/*  3 */ { 3, s_2_3, 2, 1, 0}
+{ 2, s_2_0, -1, 1, 0},
+{ 2, s_2_1, -1, 1, 0},
+{ 2, s_2_2, -1, 2, 0},
+{ 3, s_2_3, 2, 1, 0}
 };
 
 static const symbol s_3_0[2] = { 'i', 'g' };
@@ -80,8 +80,8 @@ static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
 
 static const struct among a_3[2] =
 {
-/*  0 */ { 2, s_3_0, -1, 1, 0},
-/*  1 */ { 4, s_3_1, -1, 1, 0}
+{ 2, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0}
 };
 
 static const symbol s_4_0[3] = { 'e', 'n', 'd' };
@@ -95,14 +95,14 @@ static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
 
 static const struct among a_4[8] =
 {
-/*  0 */ { 3, s_4_0, -1, 1, 0},
-/*  1 */ { 2, s_4_1, -1, 2, 0},
-/*  2 */ { 3, s_4_2, -1, 1, 0},
-/*  3 */ { 4, s_4_3, -1, 3, 0},
-/*  4 */ { 4, s_4_4, -1, 2, 0},
-/*  5 */ { 2, s_4_5, -1, 2, 0},
-/*  6 */ { 4, s_4_6, -1, 3, 0},
-/*  7 */ { 4, s_4_7, -1, 4, 0}
+{ 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}
 };
 
 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 };
@@ -124,24 +124,23 @@ static const symbol s_9[] = { 'i', 'g' };
 static const symbol s_10[] = { 'e', 'r' };
 static const symbol s_11[] = { 'e', 'n' };
 
-static int r_prelude(struct SN_env * z) { /* forwardmode */
-    {   int c_test1 = z->c; /* test, line 35 */
-/* repeat, line 35 */
-
-        while(1) {            int c2 = z->c;
-            {   int c3 = z->c; /* or, line 38 */
-                z->bra = z->c; /* [, line 37 */
-                if (!(eq_s(z, 2, s_0))) goto lab2; /* literal, line 37 */
-                z->ket = z->c; /* ], line 37 */
-                {   int ret = slice_from_s(z, 2, s_1); /* <-, line 37 */
+static int r_prelude(struct SN_env * z) {
+    {   int c_test1 = z->c;
+        while(1) {
+            int c2 = z->c;
+            {   int c3 = z->c;
+                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;
                 }
                 goto lab1;
             lab2:
                 z->c = c3;
-                {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+                {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                     if (ret < 0) goto lab0;
-                    z->c = ret; /* next, line 38 */
+                    z->c = ret;
                 }
             }
         lab1:
@@ -152,29 +151,28 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
         }
         z->c = c_test1;
     }
-/* repeat, line 41 */
-
-    while(1) {        int c4 = z->c;
-        while(1) { /* goto, line 41 */
+    while(1) {
+        int c4 = z->c;
+        while(1) {
             int c5 = z->c;
-            if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 42 */
-            z->bra = z->c; /* [, line 42 */
-            {   int c6 = z->c; /* or, line 42 */
-                if (z->c == z->l || z->p[z->c] != 'u') goto lab6; /* literal, line 42 */
+            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; /* ], line 42 */
-                if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab6; /* grouping v, line 42 */
-                {   int ret = slice_from_s(z, 1, s_2); /* <-, line 42 */
+                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);
                     if (ret < 0) return ret;
                 }
                 goto lab5;
             lab6:
                 z->c = c6;
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 43 */
+                if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
                 z->c++;
-                z->ket = z->c; /* ], line 43 */
-                if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 43 */
-                {   int ret = slice_from_s(z, 1, s_3); /* <-, line 43 */
+                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);
                     if (ret < 0) return ret;
                 }
             }
@@ -183,9 +181,9 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
             break;
         lab4:
             z->c = c5;
-            {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+            {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                 if (ret < 0) goto lab3;
-                z->c = ret; /* goto, line 41 */
+                z->c = ret;
             }
         }
         continue;
@@ -196,80 +194,79 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 49 */
-    z->I[1] = z->l; /* $p2 = <integer expression>, line 50 */
-    {   int c_test1 = z->c; /* test, line 52 */
-        {   int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 52 */
+static int r_mark_regions(struct SN_env * z) {
+    z->I[2] = z->l;
+    z->I[1] = 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[2] = z->c; /* setmark x, line 52 */
+        z->I[0] = z->c;
         z->c = c_test1;
     }
-    {    /* gopast */ /* grouping v, line 54 */
+    {   
         int ret = out_grouping_U(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {    /* gopast */ /* non v, line 54 */
+    {   
         int ret = in_grouping_U(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[0] = z->c; /* setmark p1, line 54 */
-    /* try, line 55 */
-    if (!(z->I[0] < z->I[2])) goto lab0; /* $(<integer expression> < <integer expression>), line 55 */
-    z->I[0] = z->I[2]; /* $p1 = <integer expression>, line 55 */
+    z->I[2] = z->c;
+    
+    if (!(z->I[2] < z->I[0])) goto lab0;
+    z->I[2] = z->I[0];
 lab0:
-    {    /* gopast */ /* grouping v, line 56 */
+    {   
         int ret = out_grouping_U(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    {    /* gopast */ /* non v, line 56 */
+    {   
         int ret = in_grouping_U(z, g_v, 97, 252, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[1] = z->c; /* setmark p2, line 56 */
+    z->I[1] = z->c;
     return 1;
 }
 
-static int r_postlude(struct SN_env * z) { /* forwardmode */
+static int r_postlude(struct SN_env * z) {
     int among_var;
-/* repeat, line 60 */
-
-    while(1) {        int c1 = z->c;
-        z->bra = z->c; /* [, line 62 */
-        among_var = find_among(z, a_0, 6); /* substring, line 62 */
+    while(1) {
+        int c1 = z->c;
+        z->bra = z->c;
+        among_var = find_among(z, a_0, 6);
         if (!(among_var)) goto lab0;
-        z->ket = z->c; /* ], line 62 */
-        switch (among_var) { /* among, line 62 */
+        z->ket = z->c;
+        switch (among_var) {
             case 1:
-                {   int ret = slice_from_s(z, 1, s_4); /* <-, line 63 */
+                {   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_5); /* <-, line 64 */
+                {   int ret = slice_from_s(z, 1, s_5);
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_from_s(z, 1, s_6); /* <-, line 65 */
+                {   int ret = slice_from_s(z, 1, s_6);
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
-                {   int ret = slice_from_s(z, 1, s_7); /* <-, line 66 */
+                {   int ret = slice_from_s(z, 1, s_7);
                     if (ret < 0) return ret;
                 }
                 break;
             case 5:
-                {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+                {   int ret = skip_utf8(z->p, z->c, z->l, 1);
                     if (ret < 0) goto lab0;
-                    z->c = ret; /* next, line 68 */
+                    z->c = ret;
                 }
                 break;
         }
@@ -281,45 +278,45 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
     return 1;
 }
 
-static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 75 */
+static int r_R1(struct SN_env * z) {
+    if (!(z->I[2] <= z->c)) return 0;
     return 1;
 }
 
-static int r_R2(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 76 */
+static int r_R2(struct SN_env * z) {
+    if (!(z->I[1] <= z->c)) return 0;
     return 1;
 }
 
-static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
+static int r_standard_suffix(struct SN_env * z) {
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* do, line 79 */
-        z->ket = z->c; /* [, line 80 */
-        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 80 */
+    {   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;
-        z->bra = z->c; /* ], line 80 */
-        {   int ret = r_R1(z); /* call R1, line 80 */
+        z->bra = z->c;
+        {   int ret = r_R1(z);
             if (ret == 0) goto lab0;
             if (ret < 0) return ret;
         }
-        switch (among_var) { /* among, line 80 */
+        switch (among_var) {
             case 1:
-                {   int ret = slice_del(z); /* delete, line 82 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_del(z); /* delete, line 85 */
+                {   int ret = slice_del(z);
                     if (ret < 0) return ret;
                 }
-                {   int m2 = z->l - z->c; (void)m2; /* try, line 86 */
-                    z->ket = z->c; /* [, line 86 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; } /* literal, line 86 */
+                {   int m2 = z->l - z->c; (void)m2;
+                    z->ket = z->c;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; }
                     z->c--;
-                    z->bra = z->c; /* ], line 86 */
-                    if (!(eq_s_b(z, 3, s_8))) { z->c = z->l - m2; goto lab1; } /* literal, line 86 */
-                    {   int ret = slice_del(z); /* delete, line 86 */
+                    z->bra = z->c;
+                    if (!(eq_s_b(z, 3, s_8))) { z->c = z->l - m2; goto lab1; }
+                    {   int ret = slice_del(z);
                         if (ret < 0) return ret;
                     }
                 lab1:
@@ -327,8 +324,8 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
                 }
                 break;
             case 3:
-                if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab0; /* grouping s_ending, line 89 */
-                {   int ret = slice_del(z); /* delete, line 89 */
+                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;
@@ -336,29 +333,29 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     lab0:
         z->c = z->l - m1;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 93 */
-        z->ket = z->c; /* [, line 94 */
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 94 */
+    {   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 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
         among_var = find_among_b(z, a_2, 4);
         if (!(among_var)) goto lab2;
-        z->bra = z->c; /* ], line 94 */
-        {   int ret = r_R1(z); /* call R1, line 94 */
+        z->bra = z->c;
+        {   int ret = r_R1(z);
             if (ret == 0) goto lab2;
             if (ret < 0) return ret;
         }
-        switch (among_var) { /* among, line 94 */
+        switch (among_var) {
             case 1: