Update snowball
authorPeter Eisentraut
Fri, 19 Feb 2021 06:57:42 +0000 (07:57 +0100)
committerPeter Eisentraut
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
 
      
     
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 = , line 25 */
-    z->I[1] = z->l; /* $p1 = , line 26 */
-    z->I[2] = z->l; /* $p2 = , 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; /* $( <= ), 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; /* $( <= ), 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; /* $( <= ), 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 = , line 38 */
-    z->I[1] = z->l; /* $p2 = , 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; /* $( <= ), 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; /* $( <= ), 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 = , 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; /* $( < ), line 37 */
-    z->I[0] = z->I[1]; /* $p1 = , 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 = , line 66 */
-    z->I[1] = z->l; /* $p2 = , 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; /* $( < ), line 70 */
-    z->I[0] = 3; /* $p1 = , 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; /* $( <= ), 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; /* $( <= ), 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 = , line 33 */
-    z->I[1] = z->l; /* $p2 = , 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; /* $( <= ), 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; /* $( <= ), 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 = , line 44 */
-    z->I[1] = z->l; /* $p2 = , 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; /* $( <= ), 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 = , line 56 */
-    z->I[1] = z->l; /* $p1 = , line 57 */
-    z->I[2] = z->l; /* $p2 = , 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; /* $( <= ), 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; /* $( <= ), 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; /* $( <= ), 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 = , line 49 */
-    z->I[1] = z->l; /* $p2 = , 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; /* $( < ), line 55 */
-    z->I[0] = z->I[2]; /* $p1 = , 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; /* $( <= ), 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; /* $( <= ), 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 -= , 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 -= , 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; /* $( != ), line 85 */
-    if (!(z->I[1] != 2)) return 0; /* $( != ), 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; /* $( != ), 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; /* $( <= ), 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 -= , 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 = , line 147 */
-            z->I[0] -= 1; /* $measure -= , 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 = , line 148 */
-            z->I[0] -= 1; /* $measure -= , line 148 */
+            z->I[0] = 3;
+            z->I[1] -= 1;
             break;
         case 3:
-            z->I[1] = 1; /* $prefix = , 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 -= , line 149 */
+            z->I[1] -= 1;
             break;
         case 4:
-            z->I[1] = 3; /* $prefix = , 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 -= , line 150 */
+            z->I[1] -= 1;
             break;
         case 5:
-            z->I[1] = 1; /* $prefix = , line 151 */
-            z->I[0] -= 1; /* $measure -= , 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 = , line 152 */
-            z->I[0] -= 1; /* $measure -= , 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 = , line 163 */
-            z->I[0] -= 1; /* $measure -= , 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 -= , 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 = , line 165 */
-            z->I[0] -= 1; /* $measure -= , 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 = , line 166 */
-            z->I[0] -= 1; /* $measure -= , 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 = , 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 += , 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; /* $( > ), line 174 */
-    z->I[1] = 0; /* $prefix = , 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; /* $( > ), 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; /* $( > ), 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; /* $( > ), 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; /* $( > ), 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; /* $( > ), 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 = , line 30 */
-    z->I[1] = z->l; /* $p1 = , line 31 */
-    z->I[2] = z->l; /* $p2 = , 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; /* $( <= ), 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; /* $( <= ), 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; /* $( <= ), 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 */