diff --git a/doc/src/sgml/textsearch.sgml b/doc/src/sgml/textsearch.sgml
index 800a94bb544..ecebade767d 100644
--- a/doc/src/sgml/textsearch.sgml
+++ b/doc/src/sgml/textsearch.sgml
@@ -3792,9 +3792,10 @@ Parser: "pg_catalog.default"
List text search dictionaries (add + for more detail).
=> \dFd
- List of text search dictionaries
- Schema | Name | Description
+ List of text search dictionaries
+ Schema | Name | Description
------------+-----------------+-----------------------------------------------------------
+ pg_catalog | arabic_stem | snowball stemmer for arabic language
pg_catalog | danish_stem | snowball stemmer for danish language
pg_catalog | dutch_stem | snowball stemmer for dutch language
pg_catalog | english_stem | snowball stemmer for english language
@@ -3802,7 +3803,11 @@ Parser: "pg_catalog.default"
pg_catalog | french_stem | snowball stemmer for french language
pg_catalog | german_stem | snowball stemmer for german language
pg_catalog | hungarian_stem | snowball stemmer for hungarian language
+ pg_catalog | indonesian_stem | snowball stemmer for indonesian language
+ pg_catalog | irish_stem | snowball stemmer for irish language
pg_catalog | italian_stem | snowball stemmer for italian language
+ pg_catalog | lithuanian_stem | snowball stemmer for lithuanian language
+ pg_catalog | nepali_stem | snowball stemmer for nepali language
pg_catalog | norwegian_stem | snowball stemmer for norwegian language
pg_catalog | portuguese_stem | snowball stemmer for portuguese language
pg_catalog | romanian_stem | snowball stemmer for romanian language
@@ -3810,6 +3815,7 @@ Parser: "pg_catalog.default"
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
diff --git a/src/backend/snowball/Makefile b/src/backend/snowball/Makefile
index 50cbace41da..9063bd33264 100644
--- a/src/backend/snowball/Makefile
+++ b/src/backend/snowball/Makefile
@@ -23,15 +23,18 @@ OBJS= $(WIN32RES) dict_snowball.o api.o utilities.o \
stem_ISO_8859_1_finnish.o \
stem_ISO_8859_1_french.o \
stem_ISO_8859_1_german.o \
- stem_ISO_8859_1_hungarian.o \
+ stem_ISO_8859_1_indonesian.o \
+ stem_ISO_8859_1_irish.o \
stem_ISO_8859_1_italian.o \
stem_ISO_8859_1_norwegian.o \
stem_ISO_8859_1_porter.o \
stem_ISO_8859_1_portuguese.o \
stem_ISO_8859_1_spanish.o \
stem_ISO_8859_1_swedish.o \
+ stem_ISO_8859_2_hungarian.o \
stem_ISO_8859_2_romanian.o \
stem_KOI8_R_russian.o \
+ stem_UTF_8_arabic.o \
stem_UTF_8_danish.o \
stem_UTF_8_dutch.o \
stem_UTF_8_english.o \
@@ -39,7 +42,11 @@ OBJS= $(WIN32RES) dict_snowball.o api.o utilities.o \
stem_UTF_8_french.o \
stem_UTF_8_german.o \
stem_UTF_8_hungarian.o \
+ stem_UTF_8_indonesian.o \
+ stem_UTF_8_irish.o \
stem_UTF_8_italian.o \
+ stem_UTF_8_lithuanian.o \
+ stem_UTF_8_nepali.o \
stem_UTF_8_norwegian.o \
stem_UTF_8_porter.o \
stem_UTF_8_portuguese.o \
@@ -47,6 +54,7 @@ OBJS= $(WIN32RES) dict_snowball.o api.o utilities.o \
stem_UTF_8_russian.o \
stem_UTF_8_spanish.o \
stem_UTF_8_swedish.o \
+ stem_UTF_8_tamil.o \
stem_UTF_8_turkish.o
# first column is language name and also name of dictionary for not-all-ASCII
@@ -54,6 +62,7 @@ OBJS= $(WIN32RES) dict_snowball.o api.o utilities.o \
# Note order dependency: use of some other language as ASCII dictionary
# must come after creation of that language
LANGUAGES= \
+ arabic arabic \
danish danish \
dutch dutch \
english english \
@@ -61,13 +70,18 @@ LANGUAGES= \
french french \
german german \
hungarian hungarian \
+ indonesian indonesian \
+ irish irish \
italian italian \
+ lithuanian lithuanian \
+ nepali nepali \
norwegian norwegian \
portuguese portuguese \
romanian romanian \
russian english \
spanish spanish \
swedish swedish \
+ tamil tamil \
turkish turkish
diff --git a/src/backend/snowball/README b/src/backend/snowball/README
index d6fe143e998..bada9d96cae 100644
--- a/src/backend/snowball/README
+++ b/src/backend/snowball/README
@@ -4,46 +4,61 @@ Snowball-Based Stemming
=======================
This module uses the word stemming code developed by the Snowball project,
-http://snowball.tartarus.org/
+http://snowballstem.org (formerly http://snowball.tartarus.org)
which is released by them under a BSD-style license.
-The files under src/backend/snowball/libstemmer/ and
-src/include/snowball/libstemmer/ are taken directly from their libstemmer_c
-distribution, with only some minor adjustments of file inclusions. Note
+The Snowball project is not currently making formal releases; it's best
+to pull from their git repository
+
+git clone https://github.com/snowballstem/snowball.git
+
+and then building the derived files is as simple as
+
+cd snowball
+make
+
+At least on Linux, no platform-specific adjustment is needed.
+
+Postgres' files under src/backend/snowball/libstemmer/ and
+src/include/snowball/libstemmer/ are taken directly from the Snowball
+files, with only some minor adjustments of file inclusions. Note
that most of these files are in fact derived files, not master source.
-The master sources are in the Snowball language, and are available along
-with the Snowball-to-C compiler from the Snowball project. We choose to
-include the derived files in the PostgreSQL distribution because most
-installations will not have the Snowball compiler available.
+The master sources are in the Snowball language, and are built using
+the Snowball-to-C compiler that is also part of the Snowball project.
+We choose to include the derived files in the PostgreSQL distribution
+because most installations will not have the Snowball compiler available.
-To update the PostgreSQL sources from a new Snowball libstemmer_c
-distribution:
+We are currently synced with the Snowball git commit
+1964ce688cbeca505263c8f77e16ed923296ce7a
+of 2018-06-29.
-1. Copy the *.c files in libstemmer_c/src_c/ to src/backend/snowball/libstemmer
+To update the PostgreSQL sources from a new Snowball version:
+
+0. If you didn't do it already, "make -C snowball".
+
+1. Copy the *.c files in snowball/src_c/ to src/backend/snowball/libstemmer
with replacement of "../runtime/header.h" by "header.h", for example
-for f in libstemmer_c/src_c/*.c
+for f in .../snowball/src_c/*.c
do
sed 's|\.\./runtime/header\.h|header.h|' $f >libstemmer/`basename $f`
done
-(Alternatively, if you rebuild the stemmer files from the master Snowball
-sources, just omit "-r ../runtime" from the Snowball compiler switches.)
-
-2. Copy the *.c files in libstemmer_c/runtime/ to
+2. Copy the *.c files in snowball/runtime/ to
src/backend/snowball/libstemmer, and edit them to remove direct inclusions
of system headers such as --- they should only include "header.h".
(This removal avoids portability problems on some platforms where
is sensitive to largefile compilation options.)
-3. Copy the *.h files in libstemmer_c/src_c/ and libstemmer_c/runtime/
+3. Copy the *.h files in snowball/src_c/ and snowball/runtime/
to src/include/snowball/libstemmer. At this writing the header files
do not require any changes.
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.
+stemmer_modules[] table in dict_snowball.c. You might also need to change
+the LANGUAGES list in Makefile.
5. The various stopword files in stopwords/ must be downloaded
-individually from pages on the snowball.tartarus.org website.
+individually from pages on the snowballstem.org website.
Be careful that these files must be stored in UTF-8 encoding.
diff --git a/src/backend/snowball/dict_snowball.c b/src/backend/snowball/dict_snowball.c
index 78c9f73ef03..087b86a5b7e 100644
--- a/src/backend/snowball/dict_snowball.c
+++ b/src/backend/snowball/dict_snowball.c
@@ -32,15 +32,18 @@
#include "snowball/libstemmer/stem_ISO_8859_1_finnish.h"
#include "snowball/libstemmer/stem_ISO_8859_1_french.h"
#include "snowball/libstemmer/stem_ISO_8859_1_german.h"
-#include "snowball/libstemmer/stem_ISO_8859_1_hungarian.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_indonesian.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_irish.h"
#include "snowball/libstemmer/stem_ISO_8859_1_italian.h"
#include "snowball/libstemmer/stem_ISO_8859_1_norwegian.h"
#include "snowball/libstemmer/stem_ISO_8859_1_porter.h"
#include "snowball/libstemmer/stem_ISO_8859_1_portuguese.h"
#include "snowball/libstemmer/stem_ISO_8859_1_spanish.h"
#include "snowball/libstemmer/stem_ISO_8859_1_swedish.h"
+#include "snowball/libstemmer/stem_ISO_8859_2_hungarian.h"
#include "snowball/libstemmer/stem_ISO_8859_2_romanian.h"
#include "snowball/libstemmer/stem_KOI8_R_russian.h"
+#include "snowball/libstemmer/stem_UTF_8_arabic.h"
#include "snowball/libstemmer/stem_UTF_8_danish.h"
#include "snowball/libstemmer/stem_UTF_8_dutch.h"
#include "snowball/libstemmer/stem_UTF_8_english.h"
@@ -48,7 +51,11 @@
#include "snowball/libstemmer/stem_UTF_8_french.h"
#include "snowball/libstemmer/stem_UTF_8_german.h"
#include "snowball/libstemmer/stem_UTF_8_hungarian.h"
+#include "snowball/libstemmer/stem_UTF_8_indonesian.h"
+#include "snowball/libstemmer/stem_UTF_8_irish.h"
#include "snowball/libstemmer/stem_UTF_8_italian.h"
+#include "snowball/libstemmer/stem_UTF_8_lithuanian.h"
+#include "snowball/libstemmer/stem_UTF_8_nepali.h"
#include "snowball/libstemmer/stem_UTF_8_norwegian.h"
#include "snowball/libstemmer/stem_UTF_8_porter.h"
#include "snowball/libstemmer/stem_UTF_8_portuguese.h"
@@ -56,6 +63,7 @@
#include "snowball/libstemmer/stem_UTF_8_russian.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"
PG_MODULE_MAGIC;
@@ -74,48 +82,60 @@ typedef struct stemmer_module
int (*stem) (struct SN_env *);
} stemmer_module;
+/* Args: stemmer name, PG code for encoding, Snowball's name for encoding */
+#define STEMMER_MODULE(name,enc,senc) \
+ {#name, enc, name##_##senc##_create_env, name##_##senc##_close_env, name##_##senc##_stem}
+
static const stemmer_module stemmer_modules[] =
{
/*
* Stemmers list from Snowball distribution
*/
- {"danish", PG_LATIN1, danish_ISO_8859_1_create_env, danish_ISO_8859_1_close_env, danish_ISO_8859_1_stem},
- {"dutch", PG_LATIN1, dutch_ISO_8859_1_create_env, dutch_ISO_8859_1_close_env, dutch_ISO_8859_1_stem},
- {"english", PG_LATIN1, english_ISO_8859_1_create_env, english_ISO_8859_1_close_env, english_ISO_8859_1_stem},
- {"finnish", PG_LATIN1, finnish_ISO_8859_1_create_env, finnish_ISO_8859_1_close_env, finnish_ISO_8859_1_stem},
- {"french", PG_LATIN1, french_ISO_8859_1_create_env, french_ISO_8859_1_close_env, french_ISO_8859_1_stem},
- {"german", PG_LATIN1, german_ISO_8859_1_create_env, german_ISO_8859_1_close_env, german_ISO_8859_1_stem},
- {"hungarian", PG_LATIN1, hungarian_ISO_8859_1_create_env, hungarian_ISO_8859_1_close_env, hungarian_ISO_8859_1_stem},
- {"italian", PG_LATIN1, italian_ISO_8859_1_create_env, italian_ISO_8859_1_close_env, italian_ISO_8859_1_stem},
- {"norwegian", PG_LATIN1, norwegian_ISO_8859_1_create_env, norwegian_ISO_8859_1_close_env, norwegian_ISO_8859_1_stem},
- {"porter", PG_LATIN1, porter_ISO_8859_1_create_env, porter_ISO_8859_1_close_env, porter_ISO_8859_1_stem},
- {"portuguese", PG_LATIN1, portuguese_ISO_8859_1_create_env, portuguese_ISO_8859_1_close_env, portuguese_ISO_8859_1_stem},
- {"spanish", PG_LATIN1, spanish_ISO_8859_1_create_env, spanish_ISO_8859_1_close_env, spanish_ISO_8859_1_stem},
- {"swedish", PG_LATIN1, swedish_ISO_8859_1_create_env, swedish_ISO_8859_1_close_env, swedish_ISO_8859_1_stem},
- {"romanian", PG_LATIN2, romanian_ISO_8859_2_create_env, romanian_ISO_8859_2_close_env, romanian_ISO_8859_2_stem},
- {"russian", PG_KOI8R, russian_KOI8_R_create_env, russian_KOI8_R_close_env, russian_KOI8_R_stem},
- {"danish", PG_UTF8, danish_UTF_8_create_env, danish_UTF_8_close_env, danish_UTF_8_stem},
- {"dutch", PG_UTF8, dutch_UTF_8_create_env, dutch_UTF_8_close_env, dutch_UTF_8_stem},
- {"english", PG_UTF8, english_UTF_8_create_env, english_UTF_8_close_env, english_UTF_8_stem},
- {"finnish", PG_UTF8, finnish_UTF_8_create_env, finnish_UTF_8_close_env, finnish_UTF_8_stem},
- {"french", PG_UTF8, french_UTF_8_create_env, french_UTF_8_close_env, french_UTF_8_stem},
- {"german", PG_UTF8, german_UTF_8_create_env, german_UTF_8_close_env, german_UTF_8_stem},
- {"hungarian", PG_UTF8, hungarian_UTF_8_create_env, hungarian_UTF_8_close_env, hungarian_UTF_8_stem},
- {"italian", PG_UTF8, italian_UTF_8_create_env, italian_UTF_8_close_env, italian_UTF_8_stem},
- {"norwegian", PG_UTF8, norwegian_UTF_8_create_env, norwegian_UTF_8_close_env, norwegian_UTF_8_stem},
- {"porter", PG_UTF8, porter_UTF_8_create_env, porter_UTF_8_close_env, porter_UTF_8_stem},
- {"portuguese", PG_UTF8, portuguese_UTF_8_create_env, portuguese_UTF_8_close_env, portuguese_UTF_8_stem},
- {"romanian", PG_UTF8, romanian_UTF_8_create_env, romanian_UTF_8_close_env, romanian_UTF_8_stem},
- {"russian", PG_UTF8, russian_UTF_8_create_env, russian_UTF_8_close_env, russian_UTF_8_stem},
- {"spanish", PG_UTF8, spanish_UTF_8_create_env, spanish_UTF_8_close_env, spanish_UTF_8_stem},
- {"swedish", PG_UTF8, swedish_UTF_8_create_env, swedish_UTF_8_close_env, swedish_UTF_8_stem},
- {"turkish", PG_UTF8, turkish_UTF_8_create_env, turkish_UTF_8_close_env, turkish_UTF_8_stem},
+ STEMMER_MODULE(danish, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(dutch, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(english, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(finnish, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(french, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(german, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(indonesian, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(irish, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(italian, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(norwegian, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(porter, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(portuguese, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(spanish, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(swedish, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(hungarian, PG_LATIN2, ISO_8859_2),
+ STEMMER_MODULE(romanian, PG_LATIN2, ISO_8859_2),
+ STEMMER_MODULE(russian, PG_KOI8R, KOI8_R),
+ STEMMER_MODULE(arabic, PG_UTF8, UTF_8),
+ STEMMER_MODULE(danish, PG_UTF8, UTF_8),
+ STEMMER_MODULE(dutch, PG_UTF8, UTF_8),
+ STEMMER_MODULE(english, PG_UTF8, UTF_8),
+ STEMMER_MODULE(finnish, PG_UTF8, UTF_8),
+ STEMMER_MODULE(french, PG_UTF8, UTF_8),
+ STEMMER_MODULE(german, PG_UTF8, UTF_8),
+ STEMMER_MODULE(hungarian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(indonesian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(irish, PG_UTF8, UTF_8),
+ STEMMER_MODULE(italian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(lithuanian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(nepali, PG_UTF8, UTF_8),
+ STEMMER_MODULE(norwegian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(porter, PG_UTF8, UTF_8),
+ STEMMER_MODULE(portuguese, PG_UTF8, UTF_8),
+ STEMMER_MODULE(romanian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(russian, 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 with PG_SQL_ASCII encoding should be valid for any server
* encoding
*/
- {"english", PG_SQL_ASCII, english_ISO_8859_1_create_env, english_ISO_8859_1_close_env, english_ISO_8859_1_stem},
+ STEMMER_MODULE(english, PG_SQL_ASCII, ISO_8859_1),
{NULL, 0, NULL, NULL, NULL} /* list end marker */
};
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c
index 36a9f99276f..263c226e340 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -132,15 +132,15 @@ 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) {
- z->I[0] = z->l;
- { int c_test = z->c; /* test, line 33 */
- { int ret = z->c + 3;
+static int r_mark_regions(struct SN_env * z) { /* forwardmode */
+ z->I[0] = z->l; /* $p1 = , line 31 */
+ { int c_test1 = z->c; /* test, line 33 */
+ { int ret = z->c + 3; /* hop, line 33 */
if (0 > ret || ret > z->l) return 0;
- z->c = ret; /* hop, line 33 */
+ z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 33 */
- z->c = c_test;
+ z->c = c_test1;
}
if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 34 */
{ /* gopast */ /* non v, line 34 */
@@ -149,37 +149,34 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 34 */
- /* try, line 35 */
- if (!(z->I[0] < z->I[1])) goto lab0;
- z->I[0] = z->I[1];
+ /* try, line 35 */
+ if (!(z->I[0] < z->I[1])) goto lab0; /* $( < ), line 35 */
+ z->I[0] = z->I[1]; /* $p1 = , line 35 */
lab0:
return 1;
}
-static int r_main_suffix(struct SN_env * z) {
+static int r_main_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 41 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 41 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 41 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 41 */
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
- among_var = find_among_b(z, a_0, 32); /* substring, line 41 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ 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 41 */
+ among_var = find_among_b(z, a_0, 32);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 41 */
- z->lb = mlimit;
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 42 */
case 1:
{ int ret = slice_del(z); /* delete, line 48 */
if (ret < 0) return ret;
}
break;
case 2:
- if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0;
+ if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 50 */
{ int ret = slice_del(z); /* delete, line 50 */
if (ret < 0) return ret;
}
@@ -188,21 +185,19 @@ static int r_main_suffix(struct SN_env * z) {
return 1;
}
-static int r_consonant_pair(struct SN_env * z) {
- { int m_test = z->l - z->c; /* test, line 55 */
- { int mlimit; /* setlimit, line 56 */
- int m1 = z->l - z->c; (void)m1;
+static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
+ { int m_test1 = z->l - z->c; /* test, line 55 */
+
+ { int mlimit2; /* setlimit, line 56 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 56 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
- if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit; return 0; }
- if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit; return 0; } /* substring, line 56 */
+ 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 56 */
+ if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 56 */
- z->lb = mlimit;
+ z->lb = mlimit2;
}
- z->c = z->l - m_test;
+ z->c = z->l - m_test1;
}
if (z->c <= z->lb) return 0;
z->c--; /* next, line 62 */
@@ -213,41 +208,38 @@ static int r_consonant_pair(struct SN_env * z) {
return 1;
}
-static int r_other_suffix(struct SN_env * z) {
+static int r_other_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 66 */
z->ket = z->c; /* [, line 66 */
- if (!(eq_s_b(z, 2, s_0))) goto lab0;
+ if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 66 */
z->bra = z->c; /* ], line 66 */
- if (!(eq_s_b(z, 2, s_1))) goto lab0;
+ if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 66 */
{ int ret = slice_del(z); /* delete, line 66 */
if (ret < 0) return ret;
}
lab0:
z->c = z->l - m1;
}
- { int mlimit; /* setlimit, line 67 */
- int m2 = z->l - z->c; (void)m2;
+
+ { int mlimit2; /* setlimit, line 67 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 67 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m2;
+ mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 67 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
- among_var = find_among_b(z, a_2, 5); /* substring, line 67 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ 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 67 */
+ among_var = find_among_b(z, a_2, 5);
+ if (!(among_var)) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 67 */
- z->lb = mlimit;
+ z->lb = mlimit2;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 68 */
case 1:
{ int ret = slice_del(z); /* delete, line 70 */
if (ret < 0) return ret;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 70 */
- { int ret = r_consonant_pair(z);
- if (ret == 0) goto lab1; /* call consonant_pair, line 70 */
+ { int ret = r_consonant_pair(z); /* call consonant_pair, line 70 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
@@ -263,19 +255,17 @@ static int r_other_suffix(struct SN_env * z) {
return 1;
}
-static int r_undouble(struct SN_env * z) {
- { int mlimit; /* setlimit, line 76 */
- int m1 = z->l - z->c; (void)m1;
+static int r_undouble(struct SN_env * z) { /* backwardmode */
+
+ { int mlimit1; /* setlimit, line 76 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 76 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 76 */
- if (out_grouping_b(z, g_v, 97, 248, 0)) { z->lb = mlimit; return 0; }
+ if (out_grouping_b(z, g_v, 97, 248, 0)) { z->lb = mlimit1; return 0; } /* non v, line 76 */
z->bra = z->c; /* ], line 76 */
z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 76 */
if (z->S[0] == 0) return -1; /* -> ch, line 76 */
- z->lb = mlimit;
+ z->lb = mlimit1;
}
if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 77 */
{ int ret = slice_del(z); /* delete, line 78 */
@@ -284,10 +274,10 @@ static int r_undouble(struct SN_env * z) {
return 1;
}
-extern int danish_ISO_8859_1_stem(struct SN_env * z) {
+extern int danish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 84 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab0; /* call mark_regions, line 84 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 84 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
@@ -296,32 +286,32 @@ extern int danish_ISO_8859_1_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 85 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 86 */
- { int ret = r_main_suffix(z);
- if (ret == 0) goto lab1; /* call main_suffix, line 86 */
+ { int ret = r_main_suffix(z); /* call main_suffix, line 86 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 87 */
- { int ret = r_consonant_pair(z);
- if (ret == 0) goto lab2; /* call consonant_pair, line 87 */
+ { int ret = r_consonant_pair(z); /* call consonant_pair, line 87 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 88 */
- { int ret = r_other_suffix(z);
- if (ret == 0) goto lab3; /* call other_suffix, line 88 */
+ { int ret = r_other_suffix(z); /* call other_suffix, line 88 */
+ if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 89 */
- { int ret = r_undouble(z);
- if (ret == 0) goto lab4; /* call undouble, line 89 */
+ { int ret = r_undouble(z); /* call undouble, line 89 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
lab4:
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c
index e5ba288b1f5..b3d2c4e5d13 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -134,36 +134,28 @@ static const symbol s_1[] = { 'e' };
static const symbol s_2[] = { 'i' };
static const symbol s_3[] = { 'o' };
static const symbol s_4[] = { 'u' };
-static const symbol s_5[] = { 'y' };
-static const symbol s_6[] = { 'Y' };
-static const symbol s_7[] = { 'i' };
-static const symbol s_8[] = { 'I' };
-static const symbol s_9[] = { 'y' };
-static const symbol s_10[] = { 'Y' };
-static const symbol s_11[] = { 'y' };
-static const symbol s_12[] = { 'i' };
-static const symbol s_13[] = { 'e' };
-static const symbol s_14[] = { 'g', 'e', 'm' };
-static const symbol s_15[] = { 'h', 'e', 'i', 'd' };
-static const symbol s_16[] = { 'h', 'e', 'i', 'd' };
-static const symbol s_17[] = { 'c' };
-static const symbol s_18[] = { 'e', 'n' };
-static const symbol s_19[] = { 'i', 'g' };
-static const symbol s_20[] = { 'e' };
-static const symbol s_21[] = { 'e' };
+static const symbol s_5[] = { 'Y' };
+static const symbol s_6[] = { 'I' };
+static const symbol s_7[] = { 'Y' };
+static const symbol s_8[] = { 'y' };
+static const symbol s_9[] = { 'i' };
+static const symbol s_10[] = { 'g', 'e', 'm' };
+static const symbol s_11[] = { 'h', 'e', 'i', 'd' };
+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) {
+static int r_prelude(struct SN_env * z) { /* forwardmode */
int among_var;
- { int c_test = z->c; /* test, line 42 */
+ { int c_test1 = z->c; /* test, line 42 */
while(1) { /* repeat, line 42 */
- int c1 = z->c;
+ 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
- among_var = find_among(z, a_0, 11); /* substring, 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 */
+ among_var = find_among(z, a_0, 11);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 43 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 43 */
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
if (ret < 0) return ret;
@@ -196,62 +188,65 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab0:
- z->c = c1;
+ z->c = c2;
break;
}
- z->c = c_test;
+ z->c = c_test1;
}
- { int c_keep = z->c; /* try, line 57 */
+ { int c3 = z->c; /* try, line 57 */
z->bra = z->c; /* [, line 57 */
- if (!(eq_s(z, 1, s_5))) { z->c = c_keep; goto lab1; }
+ if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } /* literal, line 57 */
+ z->c++;
z->ket = z->c; /* ], line 57 */
- { int ret = slice_from_s(z, 1, s_6); /* <-, line 57 */
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 57 */
if (ret < 0) return ret;
}
lab1:
;
}
while(1) { /* repeat, line 58 */
- int c2 = z->c;
+ int c4 = z->c;
while(1) { /* goto, line 58 */
- int c3 = z->c;
- if (in_grouping(z, g_v, 97, 232, 0)) goto lab3;
+ 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 c4 = z->c; /* or, line 59 */
- if (!(eq_s(z, 1, s_7))) goto lab5;
+ { int c6 = z->c; /* or, line 59 */
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab5; /* literal, line 59 */
+ z->c++;
z->ket = z->c; /* ], line 59 */
- if (in_grouping(z, g_v, 97, 232, 0)) goto lab5;
- { int ret = slice_from_s(z, 1, s_8); /* <-, 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 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
- z->c = c4;
- if (!(eq_s(z, 1, s_9))) goto lab3;
+ z->c = c6;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 60 */
+ z->c++;
z->ket = z->c; /* ], line 60 */
- { int ret = slice_from_s(z, 1, s_10); /* <-, line 60 */
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 60 */
if (ret < 0) return ret;
}
}
lab4:
- z->c = c3;
+ z->c = c5;
break;
lab3:
- z->c = c3;
+ z->c = c5;
if (z->c >= z->l) goto lab2;
z->c++; /* goto, line 58 */
}
continue;
lab2:
- z->c = c2;
+ z->c = c4;
break;
}
return 1;
}
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
+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 */
int ret = out_grouping(z, g_v, 97, 232, 1);
if (ret < 0) return 0;
@@ -263,9 +258,9 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 69 */
- /* try, line 70 */
- if (!(z->I[0] < 3)) goto lab0;
- z->I[0] = 3;
+ /* try, line 70 */
+ if (!(z->I[0] < 3)) goto lab0; /* $( < ), line 70 */
+ z->I[0] = 3; /* $p1 = , line 70 */
lab0:
{ /* gopast */ /* grouping v, line 71 */
int ret = out_grouping(z, g_v, 97, 232, 1);
@@ -281,24 +276,23 @@ lab0:
return 1;
}
-static int r_postlude(struct SN_env * z) {
+static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 75 */
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
- among_var = find_among(z, a_1, 3); /* substring, 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 */
+ among_var = find_among(z, a_1, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 77 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 77 */
case 1:
- { int ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 78 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
+ { int ret = slice_from_s(z, 1, s_9); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
@@ -315,21 +309,21 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 87 */
return 1;
}
-static int r_R2(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 88 */
return 1;
}
-static int r_undouble(struct SN_env * z) {
- { int m_test = 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;
- if (!(find_among_b(z, a_2, 3))) return 0; /* among, line 91 */
- z->c = z->l - m_test;
+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 */
+ if (!(find_among_b(z, a_2, 3))) return 0;
+ z->c = z->l - m_test1;
}
z->ket = z->c; /* [, line 91 */
if (z->c <= z->lb) return 0;
@@ -341,40 +335,38 @@ static int r_undouble(struct SN_env * z) {
return 1;
}
-static int r_e_ending(struct SN_env * z) {
+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 (!(eq_s_b(z, 1, s_13))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 96 */
+ z->c--;
z->bra = z->c; /* ], line 96 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 96 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 96 */
+ if (ret <= 0) return ret;
}
- { int m_test = z->l - z->c; /* test, line 96 */
- if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
- z->c = z->l - m_test;
+ { 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 */
+ z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set e_found, line 97 */
- { int ret = r_undouble(z);
- if (ret == 0) return 0; /* call undouble, line 98 */
- if (ret < 0) return ret;
+ { int ret = r_undouble(z); /* call undouble, line 98 */
+ if (ret <= 0) return ret;
}
return 1;
}
-static int r_en_ending(struct SN_env * z) {
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 102 */
- if (ret < 0) return ret;
+static int r_en_ending(struct SN_env * z) { /* backwardmode */
+ { int ret = r_R1(z); /* call R1, line 102 */
+ 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;
+ if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; /* non v, line 102 */
z->c = z->l - m1;
{ int m2 = z->l - z->c; (void)m2; /* not, line 102 */
- if (!(eq_s_b(z, 3, s_14))) goto lab0;
+ if (!(eq_s_b(z, 3, s_10))) goto lab0; /* literal, line 102 */
return 0;
lab0:
z->c = z->l - m2;
@@ -383,44 +375,42 @@ static int r_en_ending(struct SN_env * z) {
{ int ret = slice_del(z); /* delete, line 102 */
if (ret < 0) return ret;
}
- { int ret = r_undouble(z);
- if (ret == 0) return 0; /* call undouble, line 103 */
- if (ret < 0) return ret;
+ { int ret = r_undouble(z); /* call undouble, line 103 */
+ if (ret <= 0) return ret;
}
return 1;
}
-static int r_standard_suffix(struct SN_env * z) {
+static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
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;
- among_var = find_among_b(z, a_3, 5); /* substring, 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 */
+ among_var = find_among_b(z, a_3, 5);
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 108 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 108 */
case 1:
- { int ret = r_R1(z);
- if (ret == 0) goto lab0; /* call R1, line 110 */
+ { int ret = r_R1(z); /* call R1, line 110 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
- { int ret = slice_from_s(z, 4, s_15); /* <-, line 110 */
+ { int ret = slice_from_s(z, 4, s_11); /* <-, line 110 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = r_en_ending(z);
- if (ret == 0) goto lab0; /* call en_ending, line 113 */
+ { int ret = r_en_ending(z); /* call en_ending, line 113 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = r_R1(z);
- if (ret == 0) goto lab0; /* call R1, line 116 */
+ { int ret = r_R1(z); /* call R1, line 116 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
- if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0;
+ 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 (ret < 0) return ret;
}
@@ -430,8 +420,8 @@ static int r_standard_suffix(struct SN_env * z) {
z->c = z->l - m1;
}
{ int m2 = z->l - z->c; (void)m2; /* do, line 120 */
- { int ret = r_e_ending(z);
- if (ret == 0) goto lab1; /* call e_ending, line 120 */
+ { int ret = r_e_ending(z); /* call e_ending, line 120 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
@@ -439,14 +429,15 @@ static int r_standard_suffix(struct SN_env * z) {
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 122 */
z->ket = z->c; /* [, line 122 */
- if (!(eq_s_b(z, 4, s_16))) goto lab2;
+ if (!(eq_s_b(z, 4, s_12))) goto lab2; /* literal, line 122 */
z->bra = z->c; /* ], line 122 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab2; /* call R2, line 122 */
+ { int ret = r_R2(z); /* call R2, line 122 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
{ int m4 = z->l - z->c; (void)m4; /* not, line 122 */
- if (!(eq_s_b(z, 1, s_17))) goto lab3;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab3; /* literal, line 122 */
+ z->c--;
goto lab2;
lab3:
z->c = z->l - m4;
@@ -455,10 +446,10 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 123 */
- if (!(eq_s_b(z, 2, s_18))) goto lab2;
+ if (!(eq_s_b(z, 2, s_13))) goto lab2; /* literal, line 123 */
z->bra = z->c; /* ], line 123 */
- { int ret = r_en_ending(z);
- if (ret == 0) goto lab2; /* call en_ending, line 123 */
+ { int ret = r_en_ending(z); /* call en_ending, line 123 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
@@ -466,15 +457,14 @@ static int r_standard_suffix(struct SN_env * z) {
}
{ 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 lab4;
- among_var = find_among_b(z, a_4, 6); /* substring, line 127 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab4; /* substring, line 127 */
+ among_var = find_among_b(z, a_4, 6);
if (!(among_var)) goto lab4;
z->bra = z->c; /* ], line 127 */
- switch(among_var) {
- case 0: goto lab4;
+ switch (among_var) { /* among, line 127 */
case 1:
- { int ret = r_R2(z);
- if (ret == 0) goto lab4; /* call R2, line 129 */
+ { int ret = r_R2(z); /* call R2, line 129 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 129 */
@@ -482,14 +472,15 @@ static int r_standard_suffix(struct SN_env * z) {
}
{ int m6 = z->l - z->c; (void)m6; /* or, line 130 */
z->ket = z->c; /* [, line 130 */
- if (!(eq_s_b(z, 2, s_19))) goto lab6;
+ if (!(eq_s_b(z, 2, s_14))) goto lab6; /* literal, line 130 */
z->bra = z->c; /* ], line 130 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab6; /* call R2, line 130 */
+ { int ret = r_R2(z); /* call R2, line 130 */
+ if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
{ int m7 = z->l - z->c; (void)m7; /* not, line 130 */
- if (!(eq_s_b(z, 1, s_20))) goto lab7;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7; /* literal, line 130 */
+ z->c--;
goto lab6;
lab7:
z->c = z->l - m7;
@@ -500,20 +491,21 @@ static int r_standard_suffix(struct SN_env * z) {
goto lab5;
lab6:
z->c = z->l - m6;
- { int ret = r_undouble(z);
- if (ret == 0) goto lab4; /* call undouble, line 130 */
+ { int ret = r_undouble(z); /* call undouble, line 130 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
break;
case 2:
- { int ret = r_R2(z);
- if (ret == 0) goto lab4; /* call R2, line 133 */
+ { int ret = r_R2(z); /* call R2, line 133 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int m8 = z->l - z->c; (void)m8; /* not, line 133 */
- if (!(eq_s_b(z, 1, s_21))) goto lab8;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8; /* literal, line 133 */
+ z->c--;
goto lab4;
lab8:
z->c = z->l - m8;
@@ -523,21 +515,21 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 3:
- { int ret = r_R2(z);
- if (ret == 0) goto lab4; /* call R2, line 136 */
+ { int ret = r_R2(z); /* call R2, line 136 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 136 */
if (ret < 0) return ret;
}
- { int ret = r_e_ending(z);
- if (ret == 0) goto lab4; /* call e_ending, line 136 */
+ { int ret = r_e_ending(z); /* call e_ending, line 136 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = r_R2(z);
- if (ret == 0) goto lab4; /* call R2, line 139 */
+ { int ret = r_R2(z); /* call R2, line 139 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 139 */
@@ -545,8 +537,8 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 5:
- { int ret = r_R2(z);
- if (ret == 0) goto lab4; /* call R2, line 142 */
+ { int ret = r_R2(z); /* call R2, line 142 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
if (!(z->B[0])) goto lab4; /* Boolean test e_found, line 142 */
@@ -559,12 +551,12 @@ static int r_standard_suffix(struct SN_env * z) {
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 lab9;
- { int m_test = 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 lab9;
- if (!(find_among_b(z, a_5, 4))) goto lab9; /* among, line 149 */
- if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab9;
- z->c = z->l - m_test;
+ if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab9; /* 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 lab9; /* among, line 149 */
+ if (!(find_among_b(z, a_5, 4))) goto lab9;
+ if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab9; /* non v, line 150 */
+ z->c = z->l - m_test10;
}
z->ket = z->c; /* [, line 152 */
if (z->c <= z->lb) goto lab9;
@@ -579,18 +571,18 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
-extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
+extern int dutch_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 159 */
- { int ret = r_prelude(z);
- if (ret == 0) goto lab0; /* call prelude, line 159 */
+ { int ret = r_prelude(z); /* call prelude, line 159 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 160 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab1; /* call mark_regions, line 160 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 160 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
@@ -598,22 +590,20 @@ extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
}
z->lb = z->c; z->c = z->l; /* backwards, line 161 */
- { int m3 = z->l - z->c; (void)m3; /* do, line 162 */
- { int ret = r_standard_suffix(z);
- if (ret == 0) goto lab2; /* call standard_suffix, line 162 */
- if (ret < 0) return ret;
- }
- lab2:
- z->c = z->l - m3;
+ /* do, line 162 */
+ { int ret = r_standard_suffix(z); /* call standard_suffix, line 162 */
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
}
+lab2:
z->c = z->lb;
- { int c4 = z->c; /* do, line 163 */
- { int ret = r_postlude(z);
- if (ret == 0) goto lab3; /* call postlude, line 163 */
+ { int c3 = z->c; /* do, line 163 */
+ { int ret = r_postlude(z); /* call postlude, line 163 */
+ if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
- z->c = c4;
+ z->c = c3;
}
return 1;
}
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c
index 141c45dc275..87ff8041aa3 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -153,12 +153,12 @@ 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, 16, 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, 14, 0},
-/* 8 */ { 6, s_5_8, 3, 15, 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},
@@ -317,62 +317,52 @@ static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
static const unsigned char g_valid_LI[] = { 55, 141, 2 };
-static const symbol s_0[] = { '\'' };
-static const symbol s_1[] = { 'y' };
-static const symbol s_2[] = { 'Y' };
-static const symbol s_3[] = { 'y' };
-static const symbol s_4[] = { 'Y' };
-static const symbol s_5[] = { 's', 's' };
-static const symbol s_6[] = { 'i' };
-static const symbol s_7[] = { 'i', 'e' };
-static const symbol s_8[] = { 'e', 'e' };
-static const symbol s_9[] = { 'e' };
-static const symbol s_10[] = { 'e' };
-static const symbol s_11[] = { 'y' };
-static const symbol s_12[] = { 'Y' };
-static const symbol s_13[] = { 'i' };
-static const symbol s_14[] = { 't', 'i', 'o', 'n' };
-static const symbol s_15[] = { 'e', 'n', 'c', 'e' };
-static const symbol s_16[] = { 'a', 'n', 'c', 'e' };
-static const symbol s_17[] = { 'a', 'b', 'l', 'e' };
-static const symbol s_18[] = { 'e', 'n', 't' };
-static const symbol s_19[] = { 'i', 'z', 'e' };
-static const symbol s_20[] = { 'a', 't', 'e' };
-static const symbol s_21[] = { 'a', 'l' };
-static const symbol s_22[] = { 'f', 'u', 'l' };
-static const symbol s_23[] = { 'o', 'u', 's' };
-static const symbol s_24[] = { 'i', 'v', 'e' };
-static const symbol s_25[] = { 'b', 'l', 'e' };
-static const symbol s_26[] = { 'l' };
-static const symbol s_27[] = { 'o', 'g' };
-static const symbol s_28[] = { 'f', 'u', 'l' };
-static const symbol s_29[] = { 'l', 'e', 's', 's' };
-static const symbol s_30[] = { 't', 'i', 'o', 'n' };
-static const symbol s_31[] = { 'a', 't', 'e' };
-static const symbol s_32[] = { 'a', 'l' };
-static const symbol s_33[] = { 'i', 'c' };
-static const symbol s_34[] = { 's' };
-static const symbol s_35[] = { 't' };
-static const symbol s_36[] = { 'l' };
-static const symbol s_37[] = { 's', 'k', 'i' };
-static const symbol s_38[] = { 's', 'k', 'y' };
-static const symbol s_39[] = { 'd', 'i', 'e' };
-static const symbol s_40[] = { 'l', 'i', 'e' };
-static const symbol s_41[] = { 't', 'i', 'e' };
-static const symbol s_42[] = { 'i', 'd', 'l' };
-static const symbol s_43[] = { 'g', 'e', 'n', 't', 'l' };
-static const symbol s_44[] = { 'u', 'g', 'l', 'i' };
-static const symbol s_45[] = { 'e', 'a', 'r', 'l', 'i' };
-static const symbol s_46[] = { 'o', 'n', 'l', 'i' };
-static const symbol s_47[] = { 's', 'i', 'n', 'g', 'l' };
-static const symbol s_48[] = { 'Y' };
-static const symbol s_49[] = { 'y' };
+static const symbol s_0[] = { 'Y' };
+static const symbol s_1[] = { 'Y' };
+static const symbol s_2[] = { 's', 's' };
+static const symbol s_3[] = { 'i' };
+static const symbol s_4[] = { 'i', 'e' };
+static const symbol s_5[] = { 'e', 'e' };
+static const symbol s_6[] = { 'e' };
+static const symbol s_7[] = { 'e' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 't', 'i', 'o', 'n' };
+static const symbol s_10[] = { 'e', 'n', 'c', 'e' };
+static const symbol s_11[] = { 'a', 'n', 'c', 'e' };
+static const symbol s_12[] = { 'a', 'b', 'l', 'e' };
+static const symbol s_13[] = { 'e', 'n', 't' };
+static const symbol s_14[] = { 'i', 'z', 'e' };
+static const symbol s_15[] = { 'a', 't', 'e' };
+static const symbol s_16[] = { 'a', 'l' };
+static const symbol s_17[] = { 'f', 'u', 'l' };
+static const symbol s_18[] = { 'o', 'u', 's' };
+static const symbol s_19[] = { 'i', 'v', 'e' };
+static const symbol s_20[] = { 'b', 'l', 'e' };
+static const symbol s_21[] = { 'o', 'g' };
+static const symbol s_22[] = { 'l', 'e', 's', 's' };
+static const symbol s_23[] = { 't', 'i', 'o', 'n' };
+static const symbol s_24[] = { 'a', 't', 'e' };
+static const symbol s_25[] = { 'a', 'l' };
+static const symbol s_26[] = { 'i', 'c' };
+static const symbol s_27[] = { 's', 'k', 'i' };
+static const symbol s_28[] = { 's', 'k', 'y' };
+static const symbol s_29[] = { 'd', 'i', 'e' };
+static const symbol s_30[] = { 'l', 'i', 'e' };
+static const symbol s_31[] = { 't', 'i', 'e' };
+static const symbol s_32[] = { 'i', 'd', 'l' };
+static const symbol s_33[] = { 'g', 'e', 'n', 't', 'l' };
+static const symbol s_34[] = { 'u', 'g', 'l', 'i' };
+static const symbol s_35[] = { 'e', 'a', 'r', 'l', 'i' };
+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) {
+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 (!(eq_s(z, 1, s_0))) goto lab0;
+ if (z->c == z->l || z->p[z->c] != '\'') goto lab0; /* literal, line 27 */
+ z->c++;
z->ket = z->c; /* ], line 27 */
{ int ret = slice_del(z); /* delete, line 27 */
if (ret < 0) return ret;
@@ -382,9 +372,10 @@ static int r_prelude(struct SN_env * z) {
}
{ int c2 = z->c; /* do, line 28 */
z->bra = z->c; /* [, line 28 */
- if (!(eq_s(z, 1, s_1))) goto lab1;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab1; /* literal, line 28 */
+ z->c++;
z->ket = z->c; /* ], line 28 */
- { int ret = slice_from_s(z, 1, s_2); /* <-, line 28 */
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 28 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 28 */
@@ -396,9 +387,10 @@ static int r_prelude(struct SN_env * z) {
int c4 = z->c;
while(1) { /* goto, line 29 */
int c5 = z->c;
- if (in_grouping(z, g_v, 97, 121, 0)) goto lab4;
+ if (in_grouping(z, g_v, 97, 121, 0)) goto lab4; /* grouping v, line 29 */
z->bra = z->c; /* [, line 29 */
- if (!(eq_s(z, 1, s_3))) goto lab4;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 29 */
+ z->c++;
z->ket = z->c; /* ], line 29 */
z->c = c5;
break;
@@ -407,7 +399,7 @@ static int r_prelude(struct SN_env * z) {
if (z->c >= z->l) goto lab3;
z->c++; /* goto, line 29 */
}
- { int ret = slice_from_s(z, 1, s_4); /* <-, line 29 */
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 29 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 29 */
@@ -421,13 +413,13 @@ static int r_prelude(struct SN_env * z) {
return 1;
}
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
+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;
- if (!(find_among(z, a_0, 3))) goto lab2; /* among, line 36 */
+ 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 */
+ if (!(find_among(z, a_0, 3))) goto lab2;
goto lab1;
lab2:
z->c = c2;
@@ -461,76 +453,69 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
-static int r_shortv(struct SN_env * z) {
+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;
- if (in_grouping_b(z, g_v, 97, 121, 0)) goto lab1;
- if (out_grouping_b(z, g_v, 97, 121, 0)) goto lab1;
+ 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 */
goto lab0;
lab1:
z->c = z->l - m1;
- 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 (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 */
}
lab0:
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 55 */
return 1;
}
-static int r_R2(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 56 */
return 1;
}
-static int r_Step_1a(struct SN_env * z) {
+static int r_Step_1a(struct SN_env * z) { /* backwardmode */
int among_var;
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 59 */
+ { 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 - m_keep; goto lab0; }
- among_var = find_among_b(z, a_1, 3); /* substring, line 60 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
+ 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 */
+ if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; }
z->bra = z->c; /* ], line 60 */
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab0; }
- case 1:
- { int ret = slice_del(z); /* delete, line 62 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = slice_del(z); /* delete, line 62 */
+ 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;
- among_var = find_among_b(z, a_2, 6); /* substring, line 65 */
+ if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0; /* substring, line 65 */
+ among_var = find_among_b(z, a_2, 6);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 65 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 65 */
case 1:
- { int ret = slice_from_s(z, 2, s_5); /* <-, line 66 */
+ { int ret = slice_from_s(z, 2, s_2); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m1 = z->l - z->c; (void)m1; /* or, line 68 */
- { int ret = z->c - 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; /* hop, line 68 */
+ z->c = ret;
}
- { int ret = slice_from_s(z, 1, s_6); /* <-, line 68 */
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 68 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = z->l - m1;
- { int ret = slice_from_s(z, 2, s_7); /* <-, line 68 */
+ z->c = z->l - m2;
+ { int ret = slice_from_s(z, 2, s_4); /* <-, line 68 */
if (ret < 0) return ret;
}
}
@@ -552,48 +537,47 @@ static int r_Step_1a(struct SN_env * z) {
return 1;
}
-static int r_Step_1b(struct SN_env * z) {
+static int r_Step_1b(struct SN_env * z) { /* backwardmode */
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;
- among_var = find_among_b(z, a_4, 6); /* substring, 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 */
+ among_var = find_among_b(z, a_4, 6);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 75 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 75 */
case 1:
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 77 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 77 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 2, s_8); /* <-, line 77 */
+ { int ret = slice_from_s(z, 2, s_5); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m_test = z->l - z->c; /* test, line 80 */
+ { int m_test1 = z->l - z->c; /* test, line 80 */
{ /* gopast */ /* grouping v, line 80 */
int ret = out_grouping_b(z, g_v, 97, 121, 1);
if (ret < 0) return 0;
z->c -= ret;
}
- z->c = z->l - m_test;
+ z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 80 */
if (ret < 0) return ret;
}
- { int m_test = 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
- among_var = find_among_b(z, a_3, 13); /* substring, line 81 */
+ { 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 */
+ among_var = find_among_b(z, a_3, 13);
if (!(among_var)) return 0;
- z->c = z->l - m_test;
+ z->c = z->l - m_test2;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 81 */
case 1:
- { int c_keep = z->c;
- int ret = insert_s(z, z->c, z->c, 1, s_9); /* <+, line 83 */
- z->c = c_keep;
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_6); /* <+, line 83 */
+ z->c = saved_c;
+ }
if (ret < 0) return ret;
}
break;
@@ -608,16 +592,17 @@ static int r_Step_1b(struct SN_env * z) {
break;
case 3:
if (z->c != z->I[0]) return 0; /* atmark, line 87 */
- { int m_test = z->l - z->c; /* test, line 87 */
- { int ret = r_shortv(z);
- if (ret == 0) return 0; /* call shortv, line 87 */
- if (ret < 0) return ret;
+ { int m_test3 = z->l - z->c; /* test, line 87 */
+ { int ret = r_shortv(z); /* call shortv, line 87 */
+ if (ret <= 0) return ret;
}
- z->c = z->l - m_test;
+ z->c = z->l - m_test3;
}
- { int c_keep = z->c;
- int ret = insert_s(z, z->c, z->c, 1, s_10); /* <+, line 87 */
- z->c = c_keep;
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_7); /* <+, line 87 */
+ z->c = saved_c;
+ }
if (ret < 0) return ret;
}
break;
@@ -627,121 +612,115 @@ static int r_Step_1b(struct SN_env * z) {
return 1;
}
-static int r_Step_1c(struct SN_env * z) {
+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 (!(eq_s_b(z, 1, s_11))) goto lab1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 94 */
+ z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
- if (!(eq_s_b(z, 1, s_12))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 94 */
+ z->c--;
}
lab0:
z->bra = z->c; /* ], line 94 */
- if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
- { int m2 = z->l - z->c; (void)m2; /* not, line 95 */
- if (z->c > z->lb) goto lab2; /* atlimit, line 95 */
- return 0;
- lab2:
- z->c = z->l - m2;
- }
- { int ret = slice_from_s(z, 1, s_13); /* <-, line 96 */
+ 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 */
+ return 0;
+lab2:
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 96 */
if (ret < 0) return ret;
}
return 1;
}
-static int r_Step_2(struct SN_env * z) {
+static int r_Step_2(struct SN_env * z) { /* backwardmode */
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;
- among_var = find_among_b(z, a_5, 24); /* substring, 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 */
+ 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);
- if (ret == 0) return 0; /* call R1, line 100 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 100 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 100 */
case 1:
- { int ret = slice_from_s(z, 4, s_14); /* <-, line 101 */
+ { int ret = slice_from_s(z, 4, s_9); /* <-, line 101 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 4, s_15); /* <-, line 102 */
+ { int ret = slice_from_s(z, 4, s_10); /* <-, line 102 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 4, s_16); /* <-, line 103 */
+ { int ret = slice_from_s(z, 4, s_11); /* <-, line 103 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = slice_from_s(z, 4, s_17); /* <-, line 104 */
+ { int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret = slice_from_s(z, 3, s_18); /* <-, line 105 */
+ { int ret = slice_from_s(z, 3, s_13); /* <-, line 105 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret = slice_from_s(z, 3, s_19); /* <-, line 107 */
+ { int ret = slice_from_s(z, 3, s_14); /* <-, line 107 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret = slice_from_s(z, 3, s_20); /* <-, line 109 */
+ { int ret = slice_from_s(z, 3, s_15); /* <-, line 109 */
if (ret < 0) return ret;
}
break;
case 8:
- { int ret = slice_from_s(z, 2, s_21); /* <-, line 111 */
+ { int ret = slice_from_s(z, 2, s_16); /* <-, line 111 */
if (ret < 0) return ret;
}
break;
case 9:
- { int ret = slice_from_s(z, 3, s_22); /* <-, line 112 */
+ { int ret = slice_from_s(z, 3, s_17); /* <-, line 112 */
if (ret < 0) return ret;
}
break;
case 10:
- { int ret = slice_from_s(z, 3, s_23); /* <-, line 114 */
+ { int ret = slice_from_s(z, 3, s_18); /* <-, line 114 */
if (ret < 0) return ret;
}
break;
case 11:
- { int ret = slice_from_s(z, 3, s_24); /* <-, line 116 */
+ { int ret = slice_from_s(z, 3, s_19); /* <-, line 116 */
if (ret < 0) return ret;
}
break;
case 12:
- { int ret = slice_from_s(z, 3, s_25); /* <-, line 118 */
+ { int ret = slice_from_s(z, 3, s_20); /* <-, line 118 */
if (ret < 0) return ret;
}
break;
case 13:
- if (!(eq_s_b(z, 1, s_26))) return 0;
- { int ret = slice_from_s(z, 2, s_27); /* <-, line 119 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 119 */
+ z->c--;
+ { int ret = slice_from_s(z, 2, s_21); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
case 14:
- { int ret = slice_from_s(z, 3, s_28); /* <-, line 120 */
+ { int ret = slice_from_s(z, 4, s_22); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
case 15:
- { int ret = slice_from_s(z, 4, s_29); /* <-, line 121 */
- if (ret < 0) return ret;
- }
- break;
- case 16:
- if (in_grouping_b(z, g_valid_LI, 99, 116, 0)) return 0;
+ 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 (ret < 0) return ret;
}
@@ -750,36 +729,34 @@ static int r_Step_2(struct SN_env * z) {
return 1;
}
-static int r_Step_3(struct SN_env * z) {
+static int r_Step_3(struct SN_env * z) { /* backwardmode */
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;
- among_var = find_among_b(z, a_6, 9); /* substring, 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 */
+ 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);
- if (ret == 0) return 0; /* call R1, line 127 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 127 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 127 */
case 1:
- { int ret = slice_from_s(z, 4, s_30); /* <-, line 128 */
+ { int ret = slice_from_s(z, 4, s_23); /* <-, line 128 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 3, s_31); /* <-, line 129 */
+ { int ret = slice_from_s(z, 3, s_24); /* <-, line 129 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 2, s_32); /* <-, line 130 */
+ { int ret = slice_from_s(z, 2, s_25); /* <-, line 130 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = slice_from_s(z, 2, s_33); /* <-, line 132 */
+ { int ret = slice_from_s(z, 2, s_26); /* <-, line 132 */
if (ret < 0) return ret;
}
break;
@@ -789,9 +766,8 @@ static int r_Step_3(struct SN_env * z) {
}
break;
case 6:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 136 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 136 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 136 */
if (ret < 0) return ret;
@@ -801,19 +777,17 @@ static int r_Step_3(struct SN_env * z) {
return 1;
}
-static int r_Step_4(struct SN_env * z) {
+static int r_Step_4(struct SN_env * z) { /* backwardmode */
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;
- among_var = find_among_b(z, a_7, 18); /* substring, 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 */
+ 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);
- if (ret == 0) return 0; /* call R2, line 141 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 141 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 141 */
case 1:
{ int ret = slice_del(z); /* delete, line 144 */
if (ret < 0) return ret;
@@ -821,11 +795,13 @@ static int r_Step_4(struct SN_env * z) {
break;
case 2:
{ int m1 = z->l - z->c; (void)m1; /* or, line 145 */
- if (!(eq_s_b(z, 1, s_34))) goto lab1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 145 */
+ z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
- if (!(eq_s_b(z, 1, s_35))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 145 */
+ z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 145 */
@@ -836,31 +812,29 @@ static int r_Step_4(struct SN_env * z) {
return 1;
}
-static int r_Step_5(struct SN_env * z) {
+static int r_Step_5(struct SN_env * z) { /* backwardmode */
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;
- among_var = find_among_b(z, a_8, 2); /* substring, line 150 */
+ if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0; /* substring, line 150 */
+ among_var = find_among_b(z, a_8, 2);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 150 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 150 */
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 151 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab1; /* call R2, line 151 */
+ { int ret = r_R2(z); /* call R2, line 151 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = z->l - m1;
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 151 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 151 */
+ if (ret <= 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* not, line 151 */
- { int ret = r_shortv(z);
- if (ret == 0) goto lab2; /* call shortv, line 151 */
+ { int ret = r_shortv(z); /* call shortv, line 151 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
return 0;
@@ -874,11 +848,11 @@ static int r_Step_5(struct SN_env * z) {
}
break;
case 2:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 152 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 152 */
+ if (ret <= 0) return ret;
}
- if (!(eq_s_b(z, 1, s_36))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 152 */
+ z->c--;
{ int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
@@ -887,77 +861,76 @@ static int r_Step_5(struct SN_env * z) {
return 1;
}
-static int r_exception2(struct SN_env * z) {
+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;
- if (!(find_among_b(z, a_9, 8))) return 0; /* substring, 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 */
+ 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 */
return 1;
}
-static int r_exception1(struct SN_env * z) {
+static int r_exception1(struct SN_env * z) { /* forwardmode */
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;
- among_var = find_among(z, a_10, 18); /* substring, 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 */
+ 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) {
- case 0: return 0;
+ switch (among_var) { /* among, line 170 */
case 1:
- { int ret = slice_from_s(z, 3, s_37); /* <-, line 174 */
+ { int ret = slice_from_s(z, 3, s_27); /* <-, line 174 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 3, s_38); /* <-, line 175 */
+ { int ret = slice_from_s(z, 3, s_28); /* <-, line 175 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 3, s_39); /* <-, line 176 */
+ { int ret = slice_from_s(z, 3, s_29); /* <-, line 176 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = slice_from_s(z, 3, s_40); /* <-, line 177 */
+ { int ret = slice_from_s(z, 3, s_30); /* <-, line 177 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret = slice_from_s(z, 3, s_41); /* <-, line 178 */
+ { int ret = slice_from_s(z, 3, s_31); /* <-, line 178 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret = slice_from_s(z, 3, s_42); /* <-, line 182 */
+ { int ret = slice_from_s(z, 3, s_32); /* <-, line 182 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret = slice_from_s(z, 5, s_43); /* <-, line 183 */
+ { int ret = slice_from_s(z, 5, s_33); /* <-, line 183 */
if (ret < 0) return ret;
}
break;
case 8:
- { int ret = slice_from_s(z, 4, s_44); /* <-, line 184 */
+ { int ret = slice_from_s(z, 4, s_34); /* <-, line 184 */
if (ret < 0) return ret;
}
break;
case 9:
- { int ret = slice_from_s(z, 5, s_45); /* <-, line 185 */
+ { int ret = slice_from_s(z, 5, s_35); /* <-, line 185 */
if (ret < 0) return ret;
}
break;
case 10:
- { int ret = slice_from_s(z, 4, s_46); /* <-, line 186 */
+ { int ret = slice_from_s(z, 4, s_36); /* <-, line 186 */
if (ret < 0) return ret;
}
break;
case 11:
- { int ret = slice_from_s(z, 5, s_47); /* <-, line 187 */
+ { int ret = slice_from_s(z, 5, s_37); /* <-, line 187 */
if (ret < 0) return ret;
}
break;
@@ -965,14 +938,15 @@ static int r_exception1(struct SN_env * z) {
return 1;
}
-static int r_postlude(struct SN_env * z) {
+static int r_postlude(struct SN_env * z) { /* forwardmode */
if (!(z->B[0])) return 0; /* Boolean test Y_found, line 203 */
while(1) { /* repeat, line 203 */
int c1 = z->c;
while(1) { /* goto, line 203 */
int c2 = z->c;
z->bra = z->c; /* [, line 203 */
- if (!(eq_s(z, 1, s_48))) goto lab1;
+ if (z->c == z->l || z->p[z->c] != 'Y') goto lab1; /* literal, line 203 */
+ z->c++;
z->ket = z->c; /* ], line 203 */
z->c = c2;
break;
@@ -981,7 +955,7 @@ static int r_postlude(struct SN_env * z) {
if (z->c >= z->l) goto lab0;
z->c++; /* goto, line 203 */
}
- { int ret = slice_from_s(z, 1, s_49); /* <-, line 203 */
+ { int ret = slice_from_s(z, 1, s_38); /* <-, line 203 */
if (ret < 0) return ret;
}
continue;
@@ -992,19 +966,19 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
-extern int english_ISO_8859_1_stem(struct SN_env * z) {
+extern int english_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* or, line 207 */
- { int ret = r_exception1(z);
- if (ret == 0) goto lab1; /* call exception1, line 207 */
+ { int ret = r_exception1(z); /* call exception1, line 207 */
+ 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;
+ { int ret = z->c + 3; /* hop, line 208 */
if (0 > ret || ret > z->l) goto lab3;
- z->c = ret; /* hop, line 208 */
+ z->c = ret;
}
goto lab2;
lab3:
@@ -1013,98 +987,94 @@ extern int english_ISO_8859_1_stem(struct SN_env * z) {
goto lab0;
lab2:
z->c = c1;
- { int c3 = z->c; /* do, line 209 */
- { int ret = r_prelude(z);
- if (ret == 0) goto lab4; /* call prelude, line 209 */
- if (ret < 0) return ret;
- }
- lab4:
- z->c = c3;
+ /* do, line 209 */
+ { int ret = r_prelude(z); /* call prelude, line 209 */
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
}
- { int c4 = z->c; /* do, line 210 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab5; /* call mark_regions, line 210 */
- if (ret < 0) return ret;
- }
- lab5:
- z->c = c4;
+ lab4:
+ /* do, line 210 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 210 */
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
}
+ lab5:
z->lb = z->c; z->c = z->l; /* backwards, line 211 */
- { int m5 = z->l - z->c; (void)m5; /* do, line 213 */
- { int ret = r_Step_1a(z);
- if (ret == 0) goto lab6; /* call Step_1a, line 213 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 213 */
+ { int ret = r_Step_1a(z); /* call Step_1a, line 213 */
+ if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
- z->c = z->l - m5;
+ z->c = z->l - m3;
}
- { int m6 = z->l - z->c; (void)m6; /* or, line 215 */
- { int ret = r_exception2(z);
- if (ret == 0) goto lab8; /* call exception2, line 215 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 215 */
+ { int ret = r_exception2(z); /* call exception2, line 215 */
+ if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
goto lab7;
lab8:
- z->c = z->l - m6;
- { int m7 = z->l - z->c; (void)m7; /* do, line 217 */
- { int ret = r_Step_1b(z);
- if (ret == 0) goto lab9; /* call Step_1b, line 217 */
+ 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 */
+ if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
- z->c = z->l - m7;
+ z->c = z->l - m5;
}
- { int m8 = z->l - z->c; (void)m8; /* do, line 218 */
- { int ret = r_Step_1c(z);
- if (ret == 0) goto lab10; /* call Step_1c, line 218 */
+ { int m6 = z->l - z->c; (void)m6; /* do, line 218 */
+ { int ret = r_Step_1c(z); /* call Step_1c, line 218 */
+ if (ret == 0) goto lab10;
if (ret < 0) return ret;
}
lab10:
- z->c = z->l - m8;
+ z->c = z->l - m6;
}
- { int m9 = z->l - z->c; (void)m9; /* do, line 220 */
- { int ret = r_Step_2(z);
- if (ret == 0) goto lab11; /* call Step_2, line 220 */
+ { int m7 = z->l - z->c; (void)m7; /* do, line 220 */
+ { int ret = r_Step_2(z); /* call Step_2, line 220 */
+ if (ret == 0) goto lab11;
if (ret < 0) return ret;
}
lab11:
- z->c = z->l - m9;
+ z->c = z->l - m7;
}
- { int m10 = z->l - z->c; (void)m10; /* do, line 221 */
- { int ret = r_Step_3(z);
- if (ret == 0) goto lab12; /* call Step_3, line 221 */
+ { int m8 = z->l - z->c; (void)m8; /* do, line 221 */
+ { int ret = r_Step_3(z); /* call Step_3, line 221 */
+ if (ret == 0) goto lab12;
if (ret < 0) return ret;
}
lab12:
- z->c = z->l - m10;
+ z->c = z->l - m8;
}
- { int m11 = z->l - z->c; (void)m11; /* do, line 222 */
- { int ret = r_Step_4(z);
- if (ret == 0) goto lab13; /* call Step_4, line 222 */
+ { int m9 = z->l - z->c; (void)m9; /* do, line 222 */
+ { int ret = r_Step_4(z); /* call Step_4, line 222 */
+ if (ret == 0) goto lab13;
if (ret < 0) return ret;
}
lab13:
- z->c = z->l - m11;
+ z->c = z->l - m9;
}
- { int m12 = z->l - z->c; (void)m12; /* do, line 224 */
- { int ret = r_Step_5(z);
- if (ret == 0) goto lab14; /* call Step_5, line 224 */
+ { int m10 = z->l - z->c; (void)m10; /* do, line 224 */
+ { int ret = r_Step_5(z); /* call Step_5, line 224 */
+ if (ret == 0) goto lab14;
if (ret < 0) return ret;
}
lab14:
- z->c = z->l - m12;
+ z->c = z->l - m10;
}
}
lab7:
z->c = z->lb;
- { int c13 = z->c; /* do, line 227 */
- { int ret = r_postlude(z);
- if (ret == 0) goto lab15; /* call postlude, line 227 */
+ { int c11 = z->c; /* do, line 227 */
+ { int ret = r_postlude(z); /* call postlude, line 227 */
+ if (ret == 0) goto lab15;
if (ret < 0) return ret;
}
lab15:
- z->c = c13;
+ z->c = c11;
}
}
lab0:
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c
index 9621771d282..58285e8c343 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -183,7 +183,7 @@ static const struct among a_6[30] =
/* 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, 9, 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},
@@ -205,7 +205,7 @@ static const struct among a_6[30] =
/* 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, 9, 0}
+/* 29 */ { 3, s_6_29, 26, 2, 0}
};
static const symbol s_7_0[3] = { 'e', 'j', 'a' };
@@ -261,151 +261,132 @@ static const struct among a_9[2] =
static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
+static const unsigned char g_C[] = { 119, 223, 119, 1 };
+
static const unsigned char g_V1[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
static const unsigned char g_V2[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
static const unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
-static const symbol s_0[] = { 'k' };
-static const symbol s_1[] = { 'k', 's', 'e' };
-static const symbol s_2[] = { 'k', 's', 'i' };
-static const symbol s_3[] = { 'i' };
-static const symbol s_4[] = { 'a' };
-static const symbol s_5[] = { 'e' };
-static const symbol s_6[] = { 'i' };
-static const symbol s_7[] = { 'o' };
-static const symbol s_8[] = { 0xE4 };
-static const symbol s_9[] = { 0xF6 };
-static const symbol s_10[] = { 'i', 'e' };
-static const symbol s_11[] = { 'e' };
-static const symbol s_12[] = { 'p', 'o' };
-static const symbol s_13[] = { 't' };
-static const symbol s_14[] = { 'p', 'o' };
-static const symbol s_15[] = { 'j' };
-static const symbol s_16[] = { 'o' };
-static const symbol s_17[] = { 'u' };
-static const symbol s_18[] = { 'o' };
-static const symbol s_19[] = { 'j' };
+static const symbol s_0[] = { 'k', 's', 'e' };
+static const symbol s_1[] = { 'k', 's', 'i' };
+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) {
- z->I[0] = z->l;
- z->I[1] = z->l;
- if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 46 */
- { /* gopast */ /* non V1, line 46 */
- 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 46 */
+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 */
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 47 */
- return 1;
-}
-
-static int r_R2(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
- return 1;
-}
-
-static int r_particle_etc(struct SN_env * z) {
- int among_var;
- { int mlimit; /* setlimit, line 55 */
- int m1 = z->l - z->c; (void)m1;
- if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 55 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- z->ket = z->c; /* [, line 55 */
- among_var = find_among_b(z, a_0, 10); /* substring, line 55 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
- z->bra = z->c; /* ], line 55 */
- z->lb = mlimit;
+ 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 */
+ int ret = in_grouping(z, g_V1, 97, 246, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
}
- switch(among_var) {
- case 0: return 0;
+ z->I[1] = z->c; /* setmark p2, line 48 */
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 53 */
+ return 1;
+}
+
+static int r_particle_etc(struct SN_env * z) { /* backwardmode */
+ 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 */
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c; /* ], line 56 */
+ z->lb = mlimit1;
+ }
+ switch (among_var) { /* among, line 57 */
case 1:
- if (in_grouping_b(z, g_particle_end, 97, 246, 0)) return 0;
+ if (in_grouping_b(z, g_particle_end, 97, 246, 0)) return 0; /* grouping particle_end, line 63 */
break;
case 2:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 64 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 65 */
+ if (ret <= 0) return ret;
}
break;
}
- { int ret = slice_del(z); /* delete, line 66 */
+ { int ret = slice_del(z); /* delete, line 67 */
if (ret < 0) return ret;
}
return 1;
}
-static int r_possessive(struct SN_env * z) {
+static int r_possessive(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 69 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 70 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 69 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- z->ket = z->c; /* [, line 69 */
- among_var = find_among_b(z, a_4, 9); /* substring, line 69 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
- z->bra = z->c; /* ], line 69 */
- z->lb = mlimit;
+ 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 */
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c; /* ], line 70 */
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 71 */
case 1:
- { int m2 = z->l - z->c; (void)m2; /* not, line 72 */
- if (!(eq_s_b(z, 1, s_0))) goto lab0;
+ { 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 */
+ z->c--;
return 0;
lab0:
z->c = z->l - m2;
}
- { int ret = slice_del(z); /* delete, line 72 */
+ { int ret = slice_del(z); /* delete, line 73 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_del(z); /* delete, line 74 */
+ { int ret = slice_del(z); /* delete, line 75 */
if (ret < 0) return ret;
}
- z->ket = z->c; /* [, line 74 */
- if (!(eq_s_b(z, 3, s_1))) return 0;
- z->bra = z->c; /* ], line 74 */
- { int ret = slice_from_s(z, 3, s_2); /* <-, line 74 */
+ 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 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_del(z); /* delete, line 78 */
+ { int ret = slice_del(z); /* delete, line 79 */
if (ret < 0) return ret;
}
break;
case 4:
- if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
- if (!(find_among_b(z, a_1, 6))) return 0; /* among, line 81 */
- { int ret = slice_del(z); /* delete, line 81 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0; /* among, line 82 */
+ if (!(find_among_b(z, a_1, 6))) return 0;
+ { int ret = slice_del(z); /* delete, line 82 */
if (ret < 0) return ret;
}
break;
case 5:
- if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0;
- if (!(find_among_b(z, a_2, 6))) return 0; /* among, line 83 */
- { int ret = slice_del(z); /* delete, line 84 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0; /* among, line 84 */
+ if (!(find_among_b(z, a_2, 6))) return 0;
+ { int ret = slice_del(z); /* delete, line 85 */
if (ret < 0) return ret;
}
break;
case 6:
- if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
- if (!(find_among_b(z, a_3, 2))) return 0; /* among, line 86 */
- { int ret = slice_del(z); /* delete, line 86 */
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0; /* among, line 87 */
+ if (!(find_among_b(z, a_3, 2))) return 0;
+ { int ret = slice_del(z); /* delete, line 87 */
if (ret < 0) return ret;
}
break;
@@ -413,344 +394,336 @@ static int r_possessive(struct SN_env * z) {
return 1;
}
-static int r_LONG(struct SN_env * z) {
- if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 91 */
+static int r_LONG(struct SN_env * z) { /* backwardmode */
+ if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 92 */
return 1;
}
-static int r_VI(struct SN_env * z) {
- if (!(eq_s_b(z, 1, s_3))) return 0;
- if (in_grouping_b(z, g_V2, 97, 246, 0)) return 0;
+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 */
+ z->c--;
+ if (in_grouping_b(z, g_V2, 97, 246, 0)) return 0; /* grouping V2, line 94 */
return 1;
}
-static int r_case_ending(struct SN_env * z) {
+static int r_case_ending(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 96 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 97 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 96 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- z->ket = z->c; /* [, line 96 */
- among_var = find_among_b(z, a_6, 30); /* substring, line 96 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
- z->bra = z->c; /* ], line 96 */
- z->lb = mlimit;
+ 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 */
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c; /* ], line 97 */
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 98 */
case 1:
- if (!(eq_s_b(z, 1, s_4))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; /* literal, line 99 */
+ z->c--;
break;
case 2:
- if (!(eq_s_b(z, 1, s_5))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 100 */
+ z->c--;
break;
case 3:
- if (!(eq_s_b(z, 1, s_6))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 101 */
+ z->c--;
break;
case 4:
- if (!(eq_s_b(z, 1, s_7))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; /* literal, line 102 */
+ z->c--;
break;
case 5:
- if (!(eq_s_b(z, 1, s_8))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xE4) return 0; /* literal, line 103 */
+ z->c--;
break;
case 6:
- if (!(eq_s_b(z, 1, s_9))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xF6) return 0; /* literal, line 104 */
+ z->c--;
break;
case 7:
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
- { int m2 = z->l - z->c; (void)m2; /* and, line 113 */
- { int m3 = z->l - z->c; (void)m3; /* or, line 112 */
- { int ret = r_LONG(z);
- if (ret == 0) goto lab2; /* call LONG, line 111 */
+ { 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 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = z->l - m3;
- if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m_keep; goto lab0; }
+ z->c = z->l - m4;
+ if (!(eq_s_b(z, 2, s_2))) { z->c = z->l - m2; goto lab0; } /* literal, line 113 */
}
lab1:
- z->c = z->l - m2;
- if (z->c <= z->lb) { z->c = z->l - m_keep; goto lab0; }
- z->c--; /* next, line 113 */
+ z->c = z->l - m3;
+ if (z->c <= z->lb) { z->c = z->l - m2; goto lab0; }
+ z->c--; /* next, line 114 */
}
- z->bra = z->c; /* ], line 113 */
+ z->bra = z->c; /* ], line 114 */
lab0:
;
}
break;
case 8:
- if (in_grouping_b(z, g_V1, 97, 246, 0)) return 0;
- if (out_grouping_b(z, g_V1, 97, 246, 0)) return 0;
- break;
- case 9:
- if (!(eq_s_b(z, 1, s_11))) return 0;
+ 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 */
break;
}
- { int ret = slice_del(z); /* delete, line 138 */
+ { int ret = slice_del(z); /* delete, line 139 */
if (ret < 0) return ret;
}
- z->B[0] = 1; /* set ending_removed, line 139 */
+ z->B[0] = 1; /* set ending_removed, line 140 */
return 1;
}
-static int r_other_endings(struct SN_env * z) {
+static int r_other_endings(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 142 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 143 */
if (z->c < z->I[1]) return 0;
- z->c = z->I[1]; /* tomark, line 142 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- z->ket = z->c; /* [, line 142 */
- among_var = find_among_b(z, a_7, 14); /* substring, line 142 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
- z->bra = z->c; /* ], line 142 */
- z->lb = mlimit;
+ 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 */
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c; /* ], line 143 */
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 144 */
case 1:
- { int m2 = z->l - z->c; (void)m2; /* not, line 146 */
- if (!(eq_s_b(z, 2, s_12))) goto lab0;
+ { int m2 = z->l - z->c; (void)m2; /* not, line 147 */
+ if (!(eq_s_b(z, 2, s_3))) goto lab0; /* literal, line 147 */
return 0;
lab0:
z->c = z->l - m2;
}
break;
}
- { int ret = slice_del(z); /* delete, line 151 */
+ { int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
return 1;
}
-static int r_i_plural(struct SN_env * z) {
- { int mlimit; /* setlimit, line 154 */
- int m1 = z->l - z->c; (void)m1;
+static int r_i_plural(struct SN_env * z) { /* backwardmode */
+
+ { int mlimit1; /* setlimit, line 155 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 154 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- z->ket = z->c; /* [, line 154 */
- if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit; return 0; }
- if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit; return 0; } /* substring, line 154 */
- z->bra = z->c; /* ], line 154 */
- z->lb = mlimit;
+ 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 */
+ if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c; /* ], line 155 */
+ z->lb = mlimit1;
}
- { int ret = slice_del(z); /* delete, line 158 */
+ { int ret = slice_del(z); /* delete, line 159 */
if (ret < 0) return ret;
}
return 1;
}
-static int r_t_plural(struct SN_env * z) {
+static int r_t_plural(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 161 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 162 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 161 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- z->ket = z->c; /* [, line 162 */
- if (!(eq_s_b(z, 1, s_13))) { z->lb = mlimit; return 0; }
- z->bra = z->c; /* ], line 162 */
- { int m_test = z->l - z->c; /* test, line 162 */
- if (in_grouping_b(z, g_V1, 97, 246, 0)) { z->lb = mlimit; return 0; }
- z->c = z->l - m_test;
+ 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 */
+ 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->c = z->l - m_test2;
}
- { int ret = slice_del(z); /* delete, line 163 */
+ { int ret = slice_del(z); /* delete, line 164 */
if (ret < 0) return ret;
}
- z->lb = mlimit;
+ z->lb = mlimit1;
}
- { int mlimit; /* setlimit, line 165 */
- int m2 = z->l - z->c; (void)m2;
+
+ { int mlimit3; /* setlimit, line 166 */
if (z->c < z->I[1]) return 0;
- z->c = z->I[1]; /* tomark, line 165 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m2;
- z->ket = z->c; /* [, line 165 */
- if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit; return 0; }
- among_var = find_among_b(z, a_9, 2); /* substring, line 165 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
- z->bra = z->c; /* ], line 165 */
- z->lb = mlimit;
+ 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 */
+ among_var = find_among_b(z, a_9, 2);
+ if (!(among_var)) { z->lb = mlimit3; return 0; }
+ z->bra = z->c; /* ], line 166 */
+ z->lb = mlimit3;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 167 */
case 1:
- { int m3 = z->l - z->c; (void)m3; /* not, line 167 */
- if (!(eq_s_b(z, 2, s_14))) goto lab0;
+ { int m4 = z->l - z->c; (void)m4; /* not, line 168 */
+ if (!(eq_s_b(z, 2, s_4))) goto lab0; /* literal, line 168 */
return 0;
lab0:
- z->c = z->l - m3;
+ z->c = z->l - m4;
}
break;
}
- { int ret = slice_del(z); /* delete, line 170 */
+ { int ret = slice_del(z); /* delete, line 171 */
if (ret < 0) return ret;
}
return 1;
}
-static int r_tidy(struct SN_env * z) {
- { int mlimit; /* setlimit, line 173 */
- int m1 = z->l - z->c; (void)m1;
+static int r_tidy(struct SN_env * z) { /* backwardmode */
+
+ { int mlimit1; /* setlimit, line 174 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 173 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- { int m2 = z->l - z->c; (void)m2; /* do, line 174 */
- { int m3 = z->l - z->c; (void)m3; /* and, line 174 */
- { int ret = r_LONG(z);
- if (ret == 0) goto lab0; /* call LONG, line 174 */
+ 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 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
z->c = z->l - m3;
- z->ket = z->c; /* [, line 174 */
+ z->ket = z->c; /* [, line 175 */
if (z->c <= z->lb) goto lab0;
- z->c--; /* next, line 174 */
- z->bra = z->c; /* ], line 174 */
- { int ret = slice_del(z); /* delete, line 174 */
+ z->c--; /* next, line 175 */
+ z->bra = z->c; /* ], line 175 */
+ { int ret = slice_del(z); /* delete, line 175 */
if (ret < 0) return ret;
}
}
lab0:
z->c = z->l - m2;
}
- { int m4 = z->l - z->c; (void)m4; /* do, line 175 */
- z->ket = z->c; /* [, line 175 */
- if (in_grouping_b(z, g_AEI, 97, 228, 0)) goto lab1;
- z->bra = z->c; /* ], line 175 */
- if (out_grouping_b(z, g_V1, 97, 246, 0)) goto lab1;
- { int ret = slice_del(z); /* delete, line 175 */
+ { 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 */
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m4;
}
- { int m5 = z->l - z->c; (void)m5; /* do, line 176 */
- z->ket = z->c; /* [, line 176 */
- if (!(eq_s_b(z, 1, s_15))) goto lab2;
- z->bra = z->c; /* ], line 176 */
- { int m6 = z->l - z->c; (void)m6; /* or, line 176 */
- if (!(eq_s_b(z, 1, s_16))) goto lab4;
+ { 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 */
+ 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->c--;
goto lab3;
lab4:
z->c = z->l - m6;
- if (!(eq_s_b(z, 1, s_17))) goto lab2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2; /* literal, line 177 */
+ z->c--;
}
lab3:
- { int ret = slice_del(z); /* delete, line 176 */
+ { int ret = slice_del(z); /* delete, line 177 */
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m5;
}
- { int m7 = z->l - z->c; (void)m7; /* do, line 177 */
- z->ket = z->c; /* [, line 177 */
- if (!(eq_s_b(z, 1, s_18))) goto lab5;
- z->bra = z->c; /* ], line 177 */
- if (!(eq_s_b(z, 1, s_19))) goto lab5;
- { int ret = slice_del(z); /* delete, line 177 */
+ { 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 */
+ 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->c--;
+ { int ret = slice_del(z); /* delete, line 178 */
if (ret < 0) return ret;
}
lab5:
z->c = z->l - m7;
}
- z->lb = mlimit;
+ z->lb = mlimit1;
}
- if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 179 */
- z->ket = z->c; /* [, line 179 */
- if (z->c <= z->lb) return 0;
- z->c--; /* next, line 179 */
- z->bra = z->c; /* ], line 179 */
- z->S[0] = slice_to(z, z->S[0]); /* -> x, line 179 */
- if (z->S[0] == 0) return -1; /* -> x, line 179 */
- if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 179 */
- { int ret = slice_del(z); /* delete, line 179 */
+ 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 (ret < 0) return ret;
}
return 1;
}
-extern int finnish_ISO_8859_1_stem(struct SN_env * z) {
- { int c1 = z->c; /* do, line 185 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab0; /* call mark_regions, line 185 */
+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 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
- z->B[0] = 0; /* unset ending_removed, line 186 */
- z->lb = z->c; z->c = z->l; /* backwards, line 187 */
+ z->B[0] = 0; /* unset ending_removed, line 187 */
+ z->lb = z->c; z->c = z->l; /* backwards, line 188 */
- { int m2 = z->l - z->c; (void)m2; /* do, line 188 */
- { int ret = r_particle_etc(z);
- if (ret == 0) goto lab1; /* call particle_etc, line 188 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 189 */
+ { int ret = r_particle_etc(z); /* call particle_etc, line 189 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
- { int m3 = z->l - z->c; (void)m3; /* do, line 189 */
- { int ret = r_possessive(z);
- if (ret == 0) goto lab2; /* call possessive, line 189 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 190 */
+ { int ret = r_possessive(z); /* call possessive, line 190 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
- { int m4 = z->l - z->c; (void)m4; /* do, line 190 */
- { int ret = r_case_ending(z);
- if (ret == 0) goto lab3; /* call case_ending, line 190 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 191 */
+ { int ret = r_case_ending(z); /* call case_ending, line 191 */
+ if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = z->l - m4;
}
- { int m5 = z->l - z->c; (void)m5; /* do, line 191 */
- { int ret = r_other_endings(z);
- if (ret == 0) goto lab4; /* call other_endings, line 191 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 192 */
+ { int ret = r_other_endings(z); /* call other_endings, line 192 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
lab4:
z->c = z->l - m5;
}
- { int m6 = z->l - z->c; (void)m6; /* or, line 192 */
- if (!(z->B[0])) goto lab6; /* Boolean test ending_removed, line 192 */
- { int m7 = z->l - z->c; (void)m7; /* do, line 192 */
- { int ret = r_i_plural(z);
- if (ret == 0) goto lab7; /* call i_plural, line 192 */
- if (ret < 0) return ret;
- }
- lab7:
- z->c = z->l - m7;
+ /* or, line 193 */
+ if (!(z->B[0])) goto lab6; /* 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 (ret == 0) goto lab7;
+ if (ret < 0) return ret;
}
- goto lab5;
- lab6:
+ lab7:
z->c = z->l - m6;
- { int m8 = z->l - z->c; (void)m8; /* do, line 192 */
- { int ret = r_t_plural(z);
- if (ret == 0) goto lab8; /* call t_plural, line 192 */
- if (ret < 0) return ret;
- }
- lab8:
- z->c = z->l - m8;
+ }
+ goto lab5;
+lab6:
+ { int m7 = z->l - z->c; (void)m7; /* do, line 193 */
+ { int ret = r_t_plural(z); /* call t_plural, line 193 */
+ if (ret == 0) goto lab8;
+ if (ret < 0) return ret;
}
+ lab8:
+ z->c = z->l - m7;
}
lab5:
- { int m9 = z->l - z->c; (void)m9; /* do, line 193 */
- { int ret = r_tidy(z);
- if (ret == 0) goto lab9; /* call tidy, line 193 */
+ { int m8 = z->l - z->c; (void)m8; /* do, line 194 */
+ { int ret = r_tidy(z); /* call tidy, line 194 */
+ if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
- z->c = z->l - m9;
+ z->c = z->l - m8;
}
z->c = z->lb;
return 1;
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c
index fc79c0a24dc..1a1732b2161 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -370,82 +370,71 @@ static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
-static const symbol s_0[] = { 'u' };
-static const symbol s_1[] = { 'U' };
-static const symbol s_2[] = { 'i' };
-static const symbol s_3[] = { 'I' };
-static const symbol s_4[] = { 'y' };
-static const symbol s_5[] = { 'Y' };
-static const symbol s_6[] = { 'y' };
-static const symbol s_7[] = { 'Y' };
-static const symbol s_8[] = { 'q' };
-static const symbol s_9[] = { 'u' };
-static const symbol s_10[] = { 'U' };
-static const symbol s_11[] = { 'i' };
-static const symbol s_12[] = { 'u' };
-static const symbol s_13[] = { 'y' };
-static const symbol s_14[] = { 'i', 'c' };
-static const symbol s_15[] = { 'i', 'q', 'U' };
-static const symbol s_16[] = { 'l', 'o', 'g' };
-static const symbol s_17[] = { 'u' };
-static const symbol s_18[] = { 'e', 'n', 't' };
-static const symbol s_19[] = { 'a', 't' };
-static const symbol s_20[] = { 'e', 'u', 'x' };
-static const symbol s_21[] = { 'i' };
-static const symbol s_22[] = { 'a', 'b', 'l' };
-static const symbol s_23[] = { 'i', 'q', 'U' };
-static const symbol s_24[] = { 'a', 't' };
-static const symbol s_25[] = { 'i', 'c' };
-static const symbol s_26[] = { 'i', 'q', 'U' };
-static const symbol s_27[] = { 'e', 'a', 'u' };
-static const symbol s_28[] = { 'a', 'l' };
-static const symbol s_29[] = { 'e', 'u', 'x' };
-static const symbol s_30[] = { 'a', 'n', 't' };
-static const symbol s_31[] = { 'e', 'n', 't' };
-static const symbol s_32[] = { 'e' };
-static const symbol s_33[] = { 's' };
-static const symbol s_34[] = { 's' };
-static const symbol s_35[] = { 't' };
-static const symbol s_36[] = { 'i' };
-static const symbol s_37[] = { 'g', 'u' };
-static const symbol s_38[] = { 0xE9 };
-static const symbol s_39[] = { 0xE8 };
-static const symbol s_40[] = { 'e' };
-static const symbol s_41[] = { 'Y' };
-static const symbol s_42[] = { 'i' };
-static const symbol s_43[] = { 0xE7 };
-static const symbol s_44[] = { 'c' };
+static const symbol s_0[] = { 'U' };
+static const symbol s_1[] = { 'I' };
+static const symbol s_2[] = { 'Y' };
+static const symbol s_3[] = { 'Y' };
+static const symbol s_4[] = { 'U' };
+static const symbol s_5[] = { 'i' };
+static const symbol s_6[] = { 'u' };
+static const symbol s_7[] = { 'y' };
+static const symbol s_8[] = { 'i', 'c' };
+static const symbol s_9[] = { 'i', 'q', 'U' };
+static const symbol s_10[] = { 'l', 'o', 'g' };
+static const symbol s_11[] = { 'u' };
+static const symbol s_12[] = { 'e', 'n', 't' };
+static const symbol s_13[] = { 'a', 't' };
+static const symbol s_14[] = { 'e', 'u', 'x' };
+static const symbol s_15[] = { 'i' };
+static const symbol s_16[] = { 'a', 'b', 'l' };
+static const symbol s_17[] = { 'i', 'q', 'U' };
+static const symbol s_18[] = { 'a', 't' };
+static const symbol s_19[] = { 'i', 'c' };
+static const symbol s_20[] = { 'i', 'q', 'U' };
+static const symbol s_21[] = { 'e', 'a', 'u' };
+static const symbol s_22[] = { 'a', 'l' };
+static const symbol s_23[] = { 'e', 'u', 'x' };
+static const symbol s_24[] = { 'a', 'n', 't' };
+static const symbol s_25[] = { 'e', 'n', 't' };
+static const symbol s_26[] = { 'i' };
+static const symbol s_27[] = { 'g', 'u' };
+static const symbol s_28[] = { 'e' };
+static const symbol s_29[] = { 'i' };
+static const symbol s_30[] = { 'c' };
-static int r_prelude(struct SN_env * z) {
+static int r_prelude(struct SN_env * z) { /* forwardmode */
while(1) { /* repeat, line 38 */
int c1 = z->c;
while(1) { /* goto, line 38 */
int c2 = z->c;
{ int c3 = z->c; /* or, line 44 */
- if (in_grouping(z, g_v, 97, 251, 0)) goto lab3;
+ 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 (!(eq_s(z, 1, s_0))) goto lab5;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab5; /* literal, line 40 */
+ z->c++;
z->ket = z->c; /* ], line 40 */
- if (in_grouping(z, g_v, 97, 251, 0)) goto lab5;
- { int ret = slice_from_s(z, 1, s_1); /* <-, 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 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
z->c = c4;
- if (!(eq_s(z, 1, s_2))) goto lab6;
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab6; /* literal, line 41 */
+ z->c++;
z->ket = z->c; /* ], line 41 */
- if (in_grouping(z, g_v, 97, 251, 0)) goto lab6;
- { int ret = slice_from_s(z, 1, s_3); /* <-, 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 */
if (ret < 0) return ret;
}
goto lab4;
lab6:
z->c = c4;
- if (!(eq_s(z, 1, s_4))) goto lab3;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 42 */
+ z->c++;
z->ket = z->c; /* ], line 42 */
- { int ret = slice_from_s(z, 1, s_5); /* <-, line 42 */
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 42 */
if (ret < 0) return ret;
}
}
@@ -454,20 +443,23 @@ static int r_prelude(struct SN_env * z) {
lab3:
z->c = c3;
z->bra = z->c; /* [, line 45 */
- if (!(eq_s(z, 1, s_6))) goto lab7;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab7; /* literal, line 45 */
+ z->c++;
z->ket = z->c; /* ], line 45 */
- if (in_grouping(z, g_v, 97, 251, 0)) goto lab7;
- { int ret = slice_from_s(z, 1, s_7); /* <-, line 45 */
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab7; /* grouping v, line 45 */
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 45 */
if (ret < 0) return ret;
}
goto lab2;
lab7:
z->c = c3;
- if (!(eq_s(z, 1, s_8))) goto lab1;
+ if (z->c == z->l || z->p[z->c] != 'q') goto lab1; /* literal, line 47 */
+ z->c++;
z->bra = z->c; /* [, line 47 */
- if (!(eq_s(z, 1, s_9))) goto lab1;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab1; /* literal, line 47 */
+ z->c++;
z->ket = z->c; /* ], line 47 */
- { int ret = slice_from_s(z, 1, s_10); /* <-, line 47 */
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 47 */
if (ret < 0) return ret;
}
}
@@ -487,21 +479,21 @@ static int r_prelude(struct SN_env * z) {
return 1;
}
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
- z->I[2] = z->l;
+static int r_mark_regions(struct SN_env * z) { /* forwardmode */
+ z->I[0] = z->l; /* $pV = , line 52 */
+ z->I[1] = z->l; /* $p1 = , line 53 */
+ z->I[2] = z->l; /* $p2 = , line 54 */
{ int c1 = z->c; /* do, line 56 */
{ int c2 = z->c; /* or, line 58 */
- if (in_grouping(z, g_v, 97, 251, 0)) goto lab2;
- if (in_grouping(z, g_v, 97, 251, 0)) goto lab2;
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 57 */
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 57 */
if (z->c >= z->l) goto lab2;
z->c++; /* next, line 57 */
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;
- if (!(find_among(z, a_0, 3))) goto lab3; /* among, line 59 */
+ 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 59 */
+ if (!(find_among(z, a_0, 3))) goto lab3;
goto lab1;
lab3:
z->c = c2;
@@ -547,29 +539,28 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
-static int r_postlude(struct SN_env * z) {
+static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 75 */
int c1 = z->c;
z->bra = z->c; /* [, line 77 */
- if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652096 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 4; else
- among_var = find_among(z, a_1, 4); /* substring, line 77 */
+ if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652096 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 4; else /* substring, line 77 */
+ among_var = find_among(z, a_1, 4);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 77 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 77 */
case 1:
- { int ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 78 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 1, s_13); /* <-, line 80 */
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 80 */
if (ret < 0) return ret;
}
break;
@@ -586,53 +577,50 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
-static int r_RV(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_RV(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 87 */
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 88 */
return 1;
}
-static int r_R2(struct SN_env * z) {
- if (!(z->I[2] <= z->c)) return 0;
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 89 */
return 1;
}
-static int r_standard_suffix(struct SN_env * z) {
+static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 92 */
among_var = find_among_b(z, a_4, 43); /* substring, line 92 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 92 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 92 */
case 1:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 96 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 96 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 99 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 99 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 100 */
+ { int m1 = z->l - z->c; (void)m1; /* try, line 100 */
z->ket = z->c; /* [, line 100 */
- if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m_keep; goto lab0; }
+ if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m1; goto lab0; } /* literal, line 100 */
z->bra = z->c; /* ], line 100 */
- { int m1 = z->l - z->c; (void)m1; /* or, line 100 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab2; /* call R2, line 100 */
+ { int m2 = z->l - z->c; (void)m2; /* or, line 100 */
+ { int ret = r_R2(z); /* call R2, line 100 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 100 */
@@ -640,8 +628,8 @@ static int r_standard_suffix(struct SN_env * z) {
}
goto lab1;
lab2:
- z->c = z->l - m1;
- { int ret = slice_from_s(z, 3, s_15); /* <-, line 100 */
+ z->c = z->l - m2;
+ { int ret = slice_from_s(z, 3, s_9); /* <-, line 100 */
if (ret < 0) return ret;
}
}
@@ -651,60 +639,55 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 3:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 104 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 104 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 3, s_16); /* <-, line 104 */
+ { int ret = slice_from_s(z, 3, s_10); /* <-, line 104 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 107 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 107 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 1, s_17); /* <-, line 107 */
+ { int ret = slice_from_s(z, 1, s_11); /* <-, line 107 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 110 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 110 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 3, s_18); /* <-, line 110 */
+ { int ret = slice_from_s(z, 3, s_12); /* <-, line 110 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 114 */
- if (ret < 0) return ret;
+ { int ret = r_RV(z); /* call RV, line 114 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 114 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 115 */
+ { int m3 = z->l - z->c; (void)m3; /* try, line 115 */
z->ket = z->c; /* [, line 116 */
among_var = find_among_b(z, a_2, 6); /* substring, line 116 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab3; }
+ if (!(among_var)) { z->c = z->l - m3; goto lab3; }
z->bra = z->c; /* ], line 116 */
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab3; }
+ switch (among_var) { /* among, line 116 */
case 1:
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 117 */
+ { int ret = r_R2(z); /* call R2, line 117 */
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 117 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 117 */
- if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m_keep; goto lab3; }
+ if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m3; goto lab3; } /* literal, line 117 */
z->bra = z->c; /* ], line 117 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 117 */
+ { int ret = r_R2(z); /* call R2, line 117 */
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 117 */
@@ -712,9 +695,9 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 2:
- { int m2 = z->l - z->c; (void)m2; /* or, line 118 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab5; /* call R2, line 118 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 118 */
+ { int ret = r_R2(z); /* call R2, line 118 */
+ if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 118 */
@@ -722,20 +705,20 @@ static int r_standard_suffix(struct SN_env * z) {
}
goto lab4;
lab5:
- z->c = z->l - m2;
- { int ret = r_R1(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R1, line 118 */
+ z->c = z->l - m4;
+ { int ret = r_R1(z); /* call R1, line 118 */
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
if (ret < 0) return ret;
}
- { int ret = slice_from_s(z, 3, s_20); /* <-, line 118 */
+ { int ret = slice_from_s(z, 3, s_14); /* <-, line 118 */
if (ret < 0) return ret;
}
}
lab4:
break;
case 3:
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 120 */
+ { int ret = r_R2(z); /* call R2, line 120 */
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 120 */
@@ -743,11 +726,11 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 4:
- { int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call RV, line 122 */
+ { int ret = r_RV(z); /* call RV, line 122 */
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
if (ret < 0) return ret;
}
- { int ret = slice_from_s(z, 1, s_21); /* <-, line 122 */
+ { int ret = slice_from_s(z, 1, s_15); /* <-, line 122 */
if (ret < 0) return ret;
}
break;
@@ -757,25 +740,23 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 7:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 129 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 129 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 129 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 130 */
+ { int m5 = z->l - z->c; (void)m5; /* try, line 130 */
z->ket = z->c; /* [, line 131 */
- 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 - m_keep; goto lab6; }
- among_var = find_among_b(z, a_3, 3); /* substring, line 131 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab6; }
+ 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 131 */
+ among_var = find_among_b(z, a_3, 3);
+ if (!(among_var)) { z->c = z->l - m5; goto lab6; }
z->bra = z->c; /* ], line 131 */
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab6; }
+ switch (among_var) { /* among, line 131 */
case 1:
- { int m3 = z->l - z->c; (void)m3; /* or, line 132 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab8; /* call R2, line 132 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 132 */
+ { int ret = r_R2(z); /* call R2, line 132 */
+ if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 132 */
@@ -783,17 +764,17 @@ static int r_standard_suffix(struct SN_env * z) {
}
goto lab7;
lab8:
- z->c = z->l - m3;
- { int ret = slice_from_s(z, 3, s_22); /* <-, line 132 */
+ z->c = z->l - m6;
+ { int ret = slice_from_s(z, 3, s_16); /* <-, line 132 */
if (ret < 0) return ret;
}
}
lab7:
break;
case 2:
- { int m4 = z->l - z->c; (void)m4; /* or, line 133 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab10; /* call R2, line 133 */
+ { int m7 = z->l - z->c; (void)m7; /* or, line 133 */
+ { int ret = r_R2(z); /* call R2, line 133 */
+ if (ret == 0) goto lab10;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 133 */
@@ -801,16 +782,16 @@ static int r_standard_suffix(struct SN_env * z) {
}
goto lab9;
lab10:
- z->c = z->l - m4;
- { int ret = slice_from_s(z, 3, s_23); /* <-, line 133 */
+ z->c = z->l - m7;
+ { int ret = slice_from_s(z, 3, s_17); /* <-, line 133 */
if (ret < 0) return ret;
}
}
lab9:
break;
case 3:
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call R2, line 134 */
+ { int ret = r_R2(z); /* call R2, line 134 */
+ if (ret == 0) { z->c = z->l - m5; goto lab6; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 134 */
@@ -823,30 +804,29 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 8:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 141 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 141 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 141 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 142 */
+ { int m8 = z->l - z->c; (void)m8; /* try, line 142 */
z->ket = z->c; /* [, line 142 */
- if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m_keep; goto lab11; }
+ if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m8; goto lab11; } /* literal, line 142 */
z->bra = z->c; /* ], line 142 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab11; } /* call R2, line 142 */
+ { int ret = r_R2(z); /* call R2, line 142 */
+ if (ret == 0) { z->c = z->l - m8; goto lab11; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 142 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 142 */
- if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m_keep; goto lab11; }
+ if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m8; goto lab11; } /* literal, line 142 */
z->bra = z->c; /* ], line 142 */
- { int m5 = z->l - z->c; (void)m5; /* or, line 142 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab13; /* call R2, line 142 */
+ { int m9 = z->l - z->c; (void)m9; /* or, line 142 */
+ { int ret = r_R2(z); /* call R2, line 142 */
+ if (ret == 0) goto lab13;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 142 */
@@ -854,8 +834,8 @@ static int r_standard_suffix(struct SN_env * z) {
}
goto lab12;
lab13:
- z->c = z->l - m5;
- { int ret = slice_from_s(z, 3, s_26); /* <-, line 142 */
+ z->c = z->l - m9;
+ { int ret = slice_from_s(z, 3, s_20); /* <-, line 142 */
if (ret < 0) return ret;
}
}
@@ -865,23 +845,22 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 9:
- { int ret = slice_from_s(z, 3, s_27); /* <-, line 144 */
+ { int ret = slice_from_s(z, 3, s_21); /* <-, line 144 */
if (ret < 0) return ret;
}
break;
case 10:
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 145 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 145 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 2, s_28); /* <-, line 145 */
+ { int ret = slice_from_s(z, 2, s_22); /* <-, line 145 */
if (ret < 0) return ret;
}
break;
case 11:
- { int m6 = z->l - z->c; (void)m6; /* or, line 147 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab15; /* call R2, line 147 */
+ { int m10 = z->l - z->c; (void)m10; /* or, line 147 */
+ { int ret = r_R2(z); /* call R2, line 147 */
+ if (ret == 0) goto lab15;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 147 */
@@ -889,55 +868,50 @@ static int r_standard_suffix(struct SN_env * z) {
}
goto lab14;
lab15:
- z->c = z->l - m6;
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 147 */
- if (ret < 0) return ret;
+ z->c = z->l - m10;
+ { int ret = r_R1(z); /* call R1, line 147 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 3, s_29); /* <-, line 147 */
+ { int ret = slice_from_s(z, 3, s_23); /* <-, line 147 */
if (ret < 0) return ret;
}
}
lab14:
break;
case 12:
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 150 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 150 */
+ if (ret <= 0) return ret;
}
- if (out_grouping_b(z, g_v, 97, 251, 0)) return 0;
+ if (out_grouping_b(z, g_v, 97, 251, 0)) return 0; /* non v, line 150 */
{ int ret = slice_del(z); /* delete, line 150 */
if (ret < 0) return ret;
}
break;
case 13:
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 155 */
- if (ret < 0) return ret;
+ { int ret = r_RV(z); /* call RV, line 155 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 3, s_30); /* <-, line 155 */
+ { int ret = slice_from_s(z, 3, s_24); /* <-, line 155 */
if (ret < 0) return ret;
}
return 0; /* fail, line 155 */
break;
case 14:
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 156 */
- if (ret < 0) return ret;
+ { int ret = r_RV(z); /* call RV, line 156 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 3, s_31); /* <-, line 156 */
+ { int ret = slice_from_s(z, 3, s_25); /* <-, line 156 */
if (ret < 0) return ret;
}
return 0; /* fail, line 156 */
break;
case 15:
- { int m_test = z->l - z->c; /* test, line 158 */
- if (in_grouping_b(z, g_v, 97, 251, 0)) return 0;
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 158 */
- if (ret < 0) return ret;
+ { int m_test11 = z->l - z->c; /* test, line 158 */
+ if (in_grouping_b(z, g_v, 97, 251, 0)) return 0; /* grouping v, line 158 */
+ { int ret = r_RV(z); /* call RV, line 158 */
+ if (ret <= 0) return ret;
}
- z->c = z->l - m_test;
+ z->c = z->l - m_test11;
}
{ int ret = slice_del(z); /* delete, line 158 */
if (ret < 0) return ret;
@@ -948,50 +922,38 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
-static int r_i_verb_suffix(struct SN_env * z) {
- int among_var;
- { int mlimit; /* setlimit, line 163 */
- int m1 = z->l - z->c; (void)m1;
+static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */
+
+ { int mlimit1; /* setlimit, line 163 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 163 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 164 */
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
- among_var = find_among_b(z, a_5, 35); /* substring, line 164 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ 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 164 */
+ if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 164 */
- switch(among_var) {
- case 0: { z->lb = mlimit; return 0; }
- case 1:
- if (out_grouping_b(z, g_v, 97, 251, 0)) { z->lb = mlimit; return 0; }
- { int ret = slice_del(z); /* delete, line 170 */
- if (ret < 0) return ret;
- }
- break;
+ if (out_grouping_b(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } /* non v, line 170 */
+ { int ret = slice_del(z); /* delete, line 170 */
+ if (ret < 0) return ret;
}
- z->lb = mlimit;
+ z->lb = mlimit1;
}
return 1;
}
-static int r_verb_suffix(struct SN_env * z) {
+static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 174 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 174 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 174 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 175 */
among_var = find_among_b(z, a_6, 38); /* substring, line 175 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 175 */
- switch(among_var) {
- case 0: { z->lb = mlimit; return 0; }
+ switch (among_var) { /* among, line 175 */
case 1:
- { int ret = r_R2(z);
- if (ret == 0) { z->lb = mlimit; return 0; } /* call R2, line 177 */
+ { int ret = r_R2(z); /* call R2, line 177 */
+ if (ret == 0) { z->lb = mlimit1; return 0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 177 */
@@ -1007,9 +969,10 @@ static int r_verb_suffix(struct SN_env * z) {
{ int ret = slice_del(z); /* delete, line 190 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 191 */
+ { int m2 = z->l - z->c; (void)m2; /* try, line 191 */
z->ket = z->c; /* [, line 191 */
- if (!(eq_s_b(z, 1, s_32))) { z->c = z->l - m_keep; goto lab0; }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } /* literal, line 191 */
+ z->c--;
z->bra = z->c; /* ], line 191 */
{ int ret = slice_del(z); /* delete, line 191 */
if (ret < 0) return ret;
@@ -1019,20 +982,21 @@ static int r_verb_suffix(struct SN_env * z) {
}
break;
}
- z->lb = mlimit;
+ z->lb = mlimit1;
}
return 1;
}
-static int r_residual_suffix(struct SN_env * z) {
+static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 199 */
+ { int m1 = z->l - z->c; (void)m1; /* try, line 199 */
z->ket = z->c; /* [, line 199 */
- if (!(eq_s_b(z, 1, s_33))) { z->c = z->l - m_keep; goto lab0; }
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } /* literal, line 199 */
+ z->c--;
z->bra = z->c; /* ], line 199 */
- { int m_test = z->l - z->c; /* test, line 199 */
- if (out_grouping_b(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m_keep; goto lab0; }
- z->c = z->l - m_test;
+ { int m_test2 = z->l - z->c; /* test, line 199 */
+ if (out_grouping_b(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } /* non keep_with_s, line 199 */
+ z->c = z->l - m_test2;
}
{ int ret = slice_del(z); /* delete, line 199 */
if (ret < 0) return ret;
@@ -1040,29 +1004,28 @@ static int r_residual_suffix(struct SN_env * z) {
lab0:
;
}
- { int mlimit; /* setlimit, line 200 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit3; /* setlimit, line 200 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 200 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit3 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 201 */
among_var = find_among_b(z, a_7, 7); /* substring, line 201 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ if (!(among_var)) { z->lb = mlimit3; return 0; }
z->bra = z->c; /* ], line 201 */
- switch(among_var) {
- case 0: { z->lb = mlimit; return 0; }
+ switch (among_var) { /* among, line 201 */
case 1:
- { int ret = r_R2(z);
- if (ret == 0) { z->lb = mlimit; return 0; } /* call R2, line 202 */
+ { int ret = r_R2(z); /* call R2, line 202 */
+ if (ret == 0) { z->lb = mlimit3; return 0; }
if (ret < 0) return ret;
}
- { int m2 = z->l - z->c; (void)m2; /* or, line 202 */
- if (!(eq_s_b(z, 1, s_34))) goto lab2;
+ { int m4 = z->l - z->c; (void)m4; /* or, line 202 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab2; /* literal, line 202 */
+ z->c--;
goto lab1;
lab2:
- z->c = z->l - m2;
- if (!(eq_s_b(z, 1, s_35))) { z->lb = mlimit; return 0; }
+ z->c = z->l - m4;
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit3; return 0; } /* literal, line 202 */
+ z->c--;
}
lab1:
{ int ret = slice_del(z); /* delete, line 202 */
@@ -1070,7 +1033,7 @@ static int r_residual_suffix(struct SN_env * z) {
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_36); /* <-, line 204 */
+ { int ret = slice_from_s(z, 1, s_26); /* <-, line 204 */
if (ret < 0) return ret;
}
break;
@@ -1080,22 +1043,22 @@ static int r_residual_suffix(struct SN_env * z) {
}
break;
case 4:
- if (!(eq_s_b(z, 2, s_37))) { z->lb = mlimit; return 0; }
+ if (!(eq_s_b(z, 2, s_27))) { z->lb = mlimit3; return 0; } /* literal, line 206 */
{ int ret = slice_del(z); /* delete, line 206 */
if (ret < 0) return ret;
}
break;
}
- z->lb = mlimit;
+ z->lb = mlimit3;
}
return 1;
}
-static int r_un_double(struct SN_env * z) {
- { int m_test = z->l - z->c; /* test, line 212 */
- 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; /* among, line 212 */
- z->c = z->l - m_test;
+static int r_un_double(struct SN_env * z) { /* backwardmode */
+ { int m_test1 = z->l - z->c; /* test, line 212 */
+ 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 212 */
+ if (!(find_among_b(z, a_8, 5))) return 0;
+ z->c = z->l - m_test1;
}
z->ket = z->c; /* [, line 212 */
if (z->c <= z->lb) return 0;
@@ -1107,10 +1070,10 @@ static int r_un_double(struct SN_env * z) {
return 1;
}
-static int r_un_accent(struct SN_env * z) {
+static int r_un_accent(struct SN_env * z) { /* backwardmode */
{ int i = 1;
while(1) { /* atleast, line 216 */
- if (out_grouping_b(z, g_v, 97, 251, 0)) goto lab0;
+ if (out_grouping_b(z, g_v, 97, 251, 0)) goto lab0; /* non v, line 216 */
i--;
continue;
lab0:
@@ -1120,78 +1083,80 @@ static int r_un_accent(struct SN_env * z) {
}
z->ket = z->c; /* [, line 217 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 217 */
- if (!(eq_s_b(z, 1, s_38))) goto lab2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xE9) goto lab2; /* literal, line 217 */
+ z->c--;
goto lab1;
lab2:
z->c = z->l - m1;
- if (!(eq_s_b(z, 1, s_39))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xE8) return 0; /* literal, line 217 */
+ z->c--;
}
lab1:
z->bra = z->c; /* ], line 217 */
- { int ret = slice_from_s(z, 1, s_40); /* <-, line 217 */
+ { int ret = slice_from_s(z, 1, s_28); /* <-, line 217 */
if (ret < 0) return ret;
}
return 1;
}
-extern int french_ISO_8859_1_stem(struct SN_env * z) {
+extern int french_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 223 */
- { int ret = r_prelude(z);
- if (ret == 0) goto lab0; /* call prelude, line 223 */
+ { int ret = r_prelude(z); /* call prelude, line 223 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
- { int c2 = z->c; /* do, line 224 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab1; /* call mark_regions, line 224 */
- if (ret < 0) return ret;
- }
- lab1:
- z->c = c2;
+ /* do, line 224 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 224 */
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
}
+lab1:
z->lb = z->c; z->c = z->l; /* backwards, line 225 */
- { int m3 = z->l - z->c; (void)m3; /* do, line 227 */
- { int m4 = z->l - z->c; (void)m4; /* or, line 237 */
- { int m5 = z->l - z->c; (void)m5; /* and, line 233 */
- { int m6 = z->l - z->c; (void)m6; /* or, line 229 */
- { int ret = r_standard_suffix(z);
- if (ret == 0) goto lab6; /* call standard_suffix, line 229 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 227 */
+ { int m3 = z->l - z->c; (void)m3; /* or, line 237 */
+ { int m4 = z->l - z->c; (void)m4; /* and, line 233 */
+ { int m5 = z->l - z->c; (void)m5; /* or, line 229 */
+ { int ret = r_standard_suffix(z); /* call standard_suffix, line 229 */
+ if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = z->l - m6;
- { int ret = r_i_verb_suffix(z);
- if (ret == 0) goto lab7; /* call i_verb_suffix, line 230 */
+ z->c = z->l - m5;
+ { int ret = r_i_verb_suffix(z); /* call i_verb_suffix, line 230 */
+ if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
goto lab5;
lab7:
- z->c = z->l - m6;
- { int ret = r_verb_suffix(z);
- if (ret == 0) goto lab4; /* call verb_suffix, line 231 */
+ z->c = z->l - m5;
+ { int ret = r_verb_suffix(z); /* call verb_suffix, line 231 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
- z->c = z->l - m5;
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 234 */
+ z->c = z->l - m4;
+ { int m6 = z->l - z->c; (void)m6; /* try, line 234 */
z->ket = z->c; /* [, line 234 */
{ int m7 = z->l - z->c; (void)m7; /* or, line 234 */
- if (!(eq_s_b(z, 1, s_41))) goto lab10;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab10; /* literal, line 234 */
+ z->c--;
z->bra = z->c; /* ], line 234 */
- { int ret = slice_from_s(z, 1, s_42); /* <-, line 234 */
+ { int ret = slice_from_s(z, 1, s_29); /* <-, line 234 */
if (ret < 0) return ret;
}
goto lab9;
lab10:
z->c = z->l - m7;
- if (!(eq_s_b(z, 1, s_43))) { z->c = z->l - m_keep; goto lab8; }
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m6; goto lab8; } /* literal, line 235 */
+ z->c--;
z->bra = z->c; /* ], line 235 */
- { int ret = slice_from_s(z, 1, s_44); /* <-, line 235 */
+ { int ret = slice_from_s(z, 1, s_30); /* <-, line 235 */
if (ret < 0) return ret;
}
}
@@ -1202,27 +1167,27 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) {
}
goto lab3;
lab4:
- z->c = z->l - m4;
- { int ret = r_residual_suffix(z);
- if (ret == 0) goto lab2; /* call residual_suffix, line 238 */
+ z->c = z->l - m3;
+ { int ret = r_residual_suffix(z); /* call residual_suffix, line 238 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
}
lab3:
lab2:
- z->c = z->l - m3;
+ z->c = z->l - m2;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 243 */
- { int ret = r_un_double(z);
- if (ret == 0) goto lab11; /* call un_double, line 243 */
+ { int ret = r_un_double(z); /* call un_double, line 243 */
+ if (ret == 0) goto lab11;
if (ret < 0) return ret;
}
lab11:
z->c = z->l - m8;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 244 */
- { int ret = r_un_accent(z);
- if (ret == 0) goto lab12; /* call un_accent, line 244 */
+ { int ret = r_un_accent(z); /* call un_accent, line 244 */
+ if (ret == 0) goto lab12;
if (ret < 0) return ret;
}
lab12:
@@ -1230,8 +1195,8 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) {
}
z->c = z->lb;
{ int c10 = z->c; /* do, line 246 */
- { int ret = r_postlude(z);
- if (ret == 0) goto lab13; /* call postlude, line 246 */
+ { int ret = r_postlude(z); /* call postlude, line 246 */
+ if (ret == 0) goto lab13;
if (ret < 0) return ret;
}
lab13:
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c
index 13c24230923..ae334f80bf9 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -36,12 +36,12 @@ static const symbol s_0_5[1] = { 0xFC };
static const struct among a_0[6] =
{
-/* 0 */ { 0, 0, -1, 6, 0},
+/* 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, 5, 0}
+/* 5 */ { 1, s_0_5, 0, 2, 0}
};
static const symbol s_1_0[1] = { 'e' };
@@ -54,13 +54,13 @@ static const symbol s_1_6[2] = { 'e', 's' };
static const struct among a_1[7] =
{
-/* 0 */ { 1, s_1_0, -1, 1, 0},
+/* 0 */ { 1, s_1_0, -1, 2, 0},
/* 1 */ { 2, s_1_1, -1, 1, 0},
-/* 2 */ { 2, s_1_2, -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, 2, 0},
-/* 6 */ { 2, s_1_6, 5, 1, 0}
+/* 5 */ { 1, s_1_5, -1, 3, 0},
+/* 6 */ { 2, s_1_6, 5, 2, 0}
};
static const symbol s_2_0[2] = { 'e', 'n' };
@@ -112,165 +112,157 @@ static const unsigned char g_s_ending[] = { 117, 30, 5 };
static const unsigned char g_st_ending[] = { 117, 30, 4 };
-static const symbol s_0[] = { 0xDF };
-static const symbol s_1[] = { 's', 's' };
-static const symbol s_2[] = { 'u' };
-static const symbol s_3[] = { 'U' };
-static const symbol s_4[] = { 'y' };
-static const symbol s_5[] = { 'Y' };
-static const symbol s_6[] = { 'y' };
-static const symbol s_7[] = { 'u' };
-static const symbol s_8[] = { 'a' };
-static const symbol s_9[] = { 'o' };
-static const symbol s_10[] = { 'u' };
-static const symbol s_11[] = { 'i', 'g' };
-static const symbol s_12[] = { 'e' };
-static const symbol s_13[] = { 'e' };
-static const symbol s_14[] = { 'e', 'r' };
-static const symbol s_15[] = { 'e', 'n' };
+static const symbol s_0[] = { 's', 's' };
+static const symbol s_1[] = { 'U' };
+static const symbol s_2[] = { 'Y' };
+static const symbol s_3[] = { 'y' };
+static const symbol s_4[] = { 'u' };
+static const symbol s_5[] = { 'a' };
+static const symbol s_6[] = { 'o' };
+static const symbol s_7[] = { 'n', 'i', 's' };
+static const symbol s_8[] = { 'i', 'g' };
+static const symbol s_9[] = { 'e', 'r' };
+static const symbol s_10[] = { 'e', 'n' };
-static int r_prelude(struct SN_env * z) {
- { int c_test = z->c; /* test, line 30 */
- while(1) { /* repeat, line 30 */
- int c1 = z->c;
- { int c2 = z->c; /* or, line 33 */
- z->bra = z->c; /* [, line 32 */
- if (!(eq_s(z, 1, s_0))) goto lab2;
- z->ket = z->c; /* ], line 32 */
- { int ret = slice_from_s(z, 2, s_1); /* <-, line 32 */
+static int r_prelude(struct SN_env * z) { /* forwardmode */
+ { int c_test1 = z->c; /* test, line 35 */
+ while(1) { /* repeat, line 35 */
+ 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 */
+ z->c++;
+ z->ket = z->c; /* ], line 37 */
+ { int ret = slice_from_s(z, 2, s_0); /* <-, line 37 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = c2;
+ z->c = c3;
if (z->c >= z->l) goto lab0;
- z->c++; /* next, line 33 */
+ z->c++; /* next, line 38 */
}
lab1:
continue;
lab0:
- z->c = c1;
+ z->c = c2;
break;
}
- z->c = c_test;
+ z->c = c_test1;
}
- while(1) { /* repeat, line 36 */
- int c3 = z->c;
- while(1) { /* goto, line 36 */
- int c4 = z->c;
- if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
- z->bra = z->c; /* [, line 37 */
- { int c5 = z->c; /* or, line 37 */
- if (!(eq_s(z, 1, s_2))) goto lab6;
- z->ket = z->c; /* ], line 37 */
- if (in_grouping(z, g_v, 97, 252, 0)) goto lab6;
- { int ret = slice_from_s(z, 1, s_3); /* <-, line 37 */
+ while(1) { /* repeat, line 41 */
+ int c4 = z->c;
+ while(1) { /* goto, line 41 */
+ 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 */
+ 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 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = c5;
- if (!(eq_s(z, 1, s_4))) goto lab4;
- z->ket = z->c; /* ], line 38 */
- if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
- { int ret = slice_from_s(z, 1, s_5); /* <-, line 38 */
+ z->c = c6;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 43 */
+ 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 */
if (ret < 0) return ret;
}
}
lab5:
- z->c = c4;
+ z->c = c5;
break;
lab4:
- z->c = c4;
+ z->c = c5;
if (z->c >= z->l) goto lab3;
- z->c++; /* goto, line 36 */
+ z->c++; /* goto, line 41 */
}
continue;
lab3:
- z->c = c3;
+ z->c = c4;
break;
}
return 1;
}
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
- { int c_test = z->c; /* test, line 47 */
- { int ret = z->c + 3;
+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; /* hop, line 47 */
+ z->c = ret;
}
- z->I[2] = z->c; /* setmark x, line 47 */
- z->c = c_test;
+ z->I[2] = z->c; /* setmark x, line 52 */
+ z->c = c_test1;
}
- { /* gopast */ /* grouping v, line 49 */
+ { /* 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 49 */
+ { /* 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 49 */
- /* try, line 50 */
- if (!(z->I[0] < z->I[2])) goto lab0;
- z->I[0] = z->I[2];
+ 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 */
lab0:
- { /* gopast */ /* grouping v, line 51 */
+ { /* 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 51 */
+ { /* 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 51 */
+ z->I[1] = z->c; /* setmark p2, line 56 */
return 1;
}
-static int r_postlude(struct SN_env * z) {
+static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
- while(1) { /* repeat, line 55 */
+ while(1) { /* repeat, line 60 */
int c1 = z->c;
- z->bra = z->c; /* [, line 57 */
- among_var = find_among(z, a_0, 6); /* substring, line 57 */
+ z->bra = z->c; /* [, line 62 */
+ among_var = find_among(z, a_0, 6); /* substring, line 62 */
if (!(among_var)) goto lab0;
- z->ket = z->c; /* ], line 57 */
- switch(among_var) {
- case 0: goto lab0;
+ z->ket = z->c; /* ], line 62 */
+ switch (among_var) { /* among, line 62 */
case 1:
- { int ret = slice_from_s(z, 1, s_6); /* <-, line 58 */
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 63 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_7); /* <-, line 59 */
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 64 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 1, s_8); /* <-, line 60 */
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 65 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = slice_from_s(z, 1, s_9); /* <-, line 61 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret = slice_from_s(z, 1, s_10); /* <-, line 62 */
- if (ret < 0) return ret;
- }
- break;
- case 6:
if (z->c >= z->l) goto lab0;
- z->c++; /* next, line 63 */
+ z->c++; /* next, line 68 */
break;
}
continue;
@@ -281,38 +273,54 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 75 */
return 1;
}
-static int r_R2(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 76 */
return 1;
}
-static int r_standard_suffix(struct SN_env * z) {
+static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
- { int m1 = z->l - z->c; (void)m1; /* do, line 74 */
- z->ket = z->c; /* [, line 75 */
- 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); /* substring, line 75 */
+ { 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 */
+ among_var = find_among_b(z, a_1, 7);
if (!(among_var)) goto lab0;
- z->bra = z->c; /* ], line 75 */
- { int ret = r_R1(z);
- if (ret == 0) goto lab0; /* call R1, line 75 */
+ z->bra = z->c; /* ], line 80 */
+ { int ret = r_R1(z); /* call R1, line 80 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 80 */
case 1:
- { int ret = slice_del(z); /* delete, line 77 */
+ { int ret = slice_del(z); /* delete, line 82 */
if (ret < 0) return ret;
}
break;
case 2:
- if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0;
- { int ret = slice_del(z); /* delete, line 80 */
+ { int ret = slice_del(z); /* delete, line 85 */
+ 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 */
+ 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 */
+ if (ret < 0) return ret;
+ }
+ lab1:
+ ;
+ }
+ 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 (ret < 0) return ret;
}
break;
@@ -320,179 +328,171 @@ static int r_standard_suffix(struct SN_env * z) {
lab0:
z->c = z->l - m1;
}
- { int m2 = z->l - z->c; (void)m2; /* do, line 84 */
- z->ket = z->c; /* [, line 85 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1;
- among_var = find_among_b(z, a_2, 4); /* substring, line 85 */
- if (!(among_var)) goto lab1;
- z->bra = z->c; /* ], line 85 */
- { int ret = r_R1(z);
- if (ret == 0) goto lab1; /* call R1, line 85 */
- if (ret < 0) return ret;
- }
- switch(among_var) {
- case 0: goto lab1;
- case 1:
- { int ret = slice_del(z); /* delete, line 87 */
- if (ret < 0) return ret;
- }
- break;
- case 2:
- if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab1;
- { int ret = z->c - 3;
- if (z->lb > ret || ret > z->l) goto lab1;
- z->c = ret; /* hop, line 90 */
- }
- { int ret = slice_del(z); /* delete, line 90 */
- if (ret < 0) return ret;
- }
- break;
- }
- lab1:
- z->c = z->l - m2;
- }
- { int m3 = z->l - z->c; (void)m3; /* do, line 94 */
- z->ket = z->c; /* [, line 95 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
- among_var = find_among_b(z, a_4, 8); /* substring, line 95 */
+ { 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 */
+ among_var = find_among_b(z, a_2, 4);
if (!(among_var)) goto lab2;
- z->bra = z->c; /* ], line 95 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab2; /* call R2, line 95 */
+ z->bra = z->c; /* ], line 94 */
+ { int ret = r_R1(z); /* call R1, line 94 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
- switch(among_var) {
- case 0: goto lab2;
+ switch (among_var) { /* among, line 94 */
case 1:
- { int ret = slice_del(z); /* delete, line 97 */
+ { int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 98 */
- z->ket = z->c; /* [, line 98 */
- if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab3; }
- z->bra = z->c; /* ], line 98 */
- { int m4 = z->l - z->c; (void)m4; /* not, line 98 */
- if (!(eq_s_b(z, 1, s_12))) goto lab4;
- { z->c = z->l - m_keep; goto lab3; }
- lab4:
- z->c = z->l - m4;
- }
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 98 */
- if (ret < 0) return ret;
- }
- { int ret = slice_del(z); /* delete, line 98 */
- if (ret < 0) return ret;
- }
- lab3:
- ;
- }
break;
case 2:
- { int m5 = z->l - z->c; (void)m5; /* not, line 101 */
- if (!(eq_s_b(z, 1, s_13))) goto lab5;
- goto lab2;
- lab5:
- z->c = z->l - m5;
+ 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 101 */
+ { int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
break;
- case 3:
- { int ret = slice_del(z); /* delete, line 104 */
- if (ret < 0) return ret;
- }
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 105 */
- z->ket = z->c; /* [, line 106 */
- { int m6 = z->l - z->c; (void)m6; /* or, line 106 */
- if (!(eq_s_b(z, 2, s_14))) goto lab8;
- goto lab7;
- lab8:
- z->c = z->l - m6;
- if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab6; }
- }
- lab7:
- z->bra = z->c; /* ], line 106 */
- { int ret = r_R1(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call R1, line 106 */
- if (ret < 0) return ret;
- }
- { int ret = slice_del(z); /* delete, line 106 */
- if (ret < 0) return ret;
- }
- lab6:
- ;
- }
- break;
- case 4:
- { int ret = slice_del(z); /* delete, line 110 */
- if (ret < 0) return ret;
- }
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
- z->ket = z->c; /* [, line 112 */
- if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m_keep; goto lab9; }
- among_var = find_among_b(z, a_3, 2); /* substring, line 112 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab9; }
- z->bra = z->c; /* ], line 112 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab9; } /* call R2, line 112 */
- if (ret < 0) return ret;
- }
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab9; }
- case 1:
- { int ret = slice_del(z); /* delete, line 114 */
- if (ret < 0) return ret;
- }
- break;
- }
- lab9:
- ;
- }
- break;
}
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 */
+ 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 */
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ switch (among_var) { /* among, line 104 */
+ case 1:
+ { int ret = slice_del(z); /* delete, line 106 */
+ 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 */
+ z->c--;
+ { z->c = z->l - m5; goto lab4; }
+ lab5:
+ z->c = z->l - m6;
+ }
+ { int ret = r_R2(z); /* call R2, line 107 */
+ if (ret == 0) { z->c = z->l - m5; goto lab4; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 107 */
+ if (ret < 0) return ret;
+ }
+ lab4:
+ ;
+ }
+ 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 */
+ z->c--;
+ goto lab3;
+ lab6:
+ z->c = z->l - m7;
+ }
+ { int ret = slice_del(z); /* delete, line 110 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z); /* delete, line 113 */
+ 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 */
+ 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 */
+ }
+ lab8:
+ z->bra = z->c; /* ], line 115 */
+ { int ret = r_R1(z); /* call R1, line 115 */
+ if (ret == 0) { z->c = z->l - m8; goto lab7; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 115 */
+ if (ret < 0) return ret;
+ }
+ lab7:
+ ;
+ }
+ break;
+ case 4:
+ { int ret = slice_del(z); /* delete, line 119 */
+ 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 */
+ 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 */
+ if (ret == 0) { z->c = z->l - m10; goto lab10; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 123 */
+ if (ret < 0) return ret;
+ }
+ lab10:
+ ;
+ }
+ break;
+ }
+ lab3:
+ z->c = z->l - m4;
+ }
return 1;
}
-extern int german_ISO_8859_1_stem(struct SN_env * z) {
- { int c1 = z->c; /* do, line 125 */
- { int ret = r_prelude(z);
- if (ret == 0) goto lab0; /* call prelude, line 125 */
+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 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
- { int c2 = z->c; /* do, line 126 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab1; /* call mark_regions, line 126 */
+ { int c2 = z->c; /* do, line 135 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 135 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = c2;
}
- z->lb = z->c; z->c = z->l; /* backwards, line 127 */
+ z->lb = z->c; z->c = z->l; /* backwards, line 136 */
- { int m3 = z->l - z->c; (void)m3; /* do, line 128 */
- { int ret = r_standard_suffix(z);
- if (ret == 0) goto lab2; /* call standard_suffix, line 128 */
- if (ret < 0) return ret;
- }
- lab2:
- z->c = z->l - m3;
+ /* do, line 137 */
+ { int ret = r_standard_suffix(z); /* call standard_suffix, line 137 */
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
}
+lab2:
z->c = z->lb;
- { int c4 = z->c; /* do, line 129 */
- { int ret = r_postlude(z);
- if (ret == 0) goto lab3; /* call postlude, line 129 */
+ { int c3 = z->c; /* do, line 138 */
+ { int ret = r_postlude(z); /* call postlude, line 138 */
+ if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
- z->c = c4;
+ z->c = c3;
}
return 1;
}
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c
new file mode 100644
index 00000000000..42711709032
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c
@@ -0,0 +1,414 @@
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int indonesian_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_VOWEL(struct SN_env * z);
+static int r_SUFFIX_I_OK(struct SN_env * z);
+static int r_SUFFIX_AN_OK(struct SN_env * z);
+static int r_SUFFIX_KAN_OK(struct SN_env * z);
+static int r_KER(struct SN_env * z);
+static int r_remove_suffix(struct SN_env * z);
+static int r_remove_second_order_prefix(struct SN_env * z);
+static int r_remove_first_order_prefix(struct SN_env * z);
+static int r_remove_possessive_pronoun(struct SN_env * z);
+static int r_remove_particle(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * indonesian_ISO_8859_1_create_env(void);
+extern void indonesian_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 'k', 'a', 'h' };
+static const symbol s_0_1[3] = { 'l', 'a', 'h' };
+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}
+};
+
+static const symbol s_1_0[3] = { 'n', 'y', 'a' };
+static const symbol s_1_1[2] = { 'k', 'u' };
+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}
+};
+
+static const symbol s_2_0[1] = { 'i' };
+static const symbol s_2_1[2] = { 'a', 'n' };
+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}
+};
+
+static const symbol s_3_0[2] = { 'd', 'i' };
+static const symbol s_3_1[2] = { 'k', 'e' };
+static const symbol s_3_2[2] = { 'm', 'e' };
+static const symbol s_3_3[3] = { 'm', 'e', 'm' };
+static const symbol s_3_4[3] = { 'm', 'e', 'n' };
+static const symbol s_3_5[4] = { 'm', 'e', 'n', 'g' };
+static const symbol s_3_6[4] = { 'm', 'e', 'n', 'y' };
+static const symbol s_3_7[3] = { 'p', 'e', 'm' };
+static const symbol s_3_8[3] = { 'p', 'e', 'n' };
+static const symbol s_3_9[4] = { 'p', 'e', 'n', 'g' };
+static const symbol s_3_10[4] = { 'p', 'e', 'n', 'y' };
+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}
+};
+
+static const symbol s_4_0[2] = { 'b', 'e' };
+static const symbol s_4_1[7] = { 'b', 'e', 'l', 'a', 'j', 'a', 'r' };
+static const symbol s_4_2[3] = { 'b', 'e', 'r' };
+static const symbol s_4_3[2] = { 'p', 'e' };
+static const symbol s_4_4[7] = { 'p', 'e', 'l', 'a', 'j', 'a', 'r' };
+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}
+};
+
+static const unsigned char g_vowel[] = { 17, 65, 16 };
+
+static const symbol s_0[] = { 'e', 'r' };
+static const symbol s_1[] = { 's' };
+static const symbol s_2[] = { 's' };
+static const symbol s_3[] = { 'p' };
+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 */
+ if (!(find_among_b(z, a_0, 3))) return 0;
+ z->bra = z->c; /* ], line 51 */
+ { int ret = slice_del(z); /* delete, line 52 */
+ if (ret < 0) return ret;
+ }
+ z->I[0] -= 1; /* $measure -= , line 52 */
+ 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 */
+ if (!(find_among_b(z, a_1, 3))) return 0;
+ z->bra = z->c; /* ], line 57 */
+ { int ret = slice_del(z); /* delete, line 58 */
+ if (ret < 0) return ret;
+ }
+ z->I[0] -= 1; /* $measure -= , line 58 */
+ 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 */
+ return 1;
+}
+
+static int r_SUFFIX_AN_OK(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] != 1)) return 0; /* $( != ), line 89 */
+ 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 */
+ z->c--;
+ return 0;
+ lab0:
+ z->c = z->l - m1;
+ }
+ 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 */
+ if (!(find_among_b(z, a_2, 3))) return 0;
+ z->bra = z->c; /* ], line 132 */
+ { int ret = slice_del(z); /* delete, line 134 */
+ if (ret < 0) return ret;
+ }
+ z->I[0] -= 1; /* $measure -= , line 134 */
+ 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 */
+ 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 */
+ return 1;
+}
+
+static int r_remove_first_order_prefix(struct SN_env * z) { /* forwardmode */
+ 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 */
+ 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 */
+ case 1:
+ { int ret = slice_del(z); /* delete, line 147 */
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 1; /* $prefix = , line 147 */
+ z->I[0] -= 1; /* $measure -= , line 147 */
+ break;
+ case 2:
+ { int ret = slice_del(z); /* delete, line 148 */
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 3; /* $prefix = , line 148 */
+ z->I[0] -= 1; /* $measure -= , line 148 */
+ break;
+ case 3:
+ z->I[1] = 1; /* $prefix = , line 149 */
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 149 */
+ if (ret < 0) return ret;
+ }
+ z->I[0] -= 1; /* $measure -= , line 149 */
+ break;
+ case 4:
+ z->I[1] = 3; /* $prefix = , line 150 */
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 150 */
+ if (ret < 0) return ret;
+ }
+ z->I[0] -= 1; /* $measure -= , line 150 */
+ 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->c = c2;
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 151 */
+ if (ret < 0) return ret;
+ }
+ }
+ goto lab0;
+ lab1:
+ z->c = c1;
+ { int ret = slice_del(z); /* delete, line 151 */
+ 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->c = c4;
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 152 */
+ if (ret < 0) return ret;
+ }
+ }
+ goto lab2;
+ lab3:
+ z->c = c3;
+ { int ret = slice_del(z); /* delete, line 152 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ break;
+ }
+ return 1;
+}
+
+static int r_remove_second_order_prefix(struct SN_env * z) { /* forwardmode */
+ 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 */
+ 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 */
+ case 1:
+ { int ret = slice_del(z); /* delete, line 163 */
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 2; /* $prefix = , line 163 */
+ z->I[0] -= 1; /* $measure -= , line 163 */
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_5); /* <-, line 164 */
+ if (ret < 0) return ret;
+ }
+ z->I[0] -= 1; /* $measure -= , line 164 */
+ break;
+ case 3:
+ { int ret = slice_del(z); /* delete, line 165 */
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 4; /* $prefix = , line 165 */
+ z->I[0] -= 1; /* $measure -= , line 165 */
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_6); /* <-, line 166 */
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 4; /* $prefix = , line 166 */
+ z->I[0] -= 1; /* $measure -= , line 166 */
+ 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 */
+ while(1) { /* repeat, line 173 */
+ int c2 = z->c;
+ { /* gopast */ /* grouping vowel, line 173 */
+ 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 */
+ continue;
+ lab1:
+ z->c = c2;
+ break;
+ }
+ 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 */
+
+ { int m3 = z->l - z->c; (void)m3; /* do, line 177 */
+ { int ret = r_remove_particle(z); /* call remove_particle, line 177 */
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ lab2:
+ 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 (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ lab3:
+ 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 (ret == 0) goto lab5;
+ 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 lab6; /* $( > ), line 185 */
+ z->lb = z->c; z->c = z->l; /* backwards, line 185 */
+
+ { int ret = r_remove_suffix(z); /* call remove_suffix, line 185 */
+ if (ret == 0) goto lab6;
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ z->c = c_test8;
+ }
+ if (!(z->I[0] > 2)) goto lab6; /* $( > ), line 186 */
+ { int ret = r_remove_second_order_prefix(z); /* call remove_second_order_prefix, line 186 */
+ if (ret == 0) goto lab6;
+ if (ret < 0) return ret;
+ }
+ lab6:
+ z->c = c7;
+ }
+ z->c = c_test6;
+ }
+ goto lab4;
+ lab5:
+ 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 */
+ if (ret == 0) goto lab7;
+ if (ret < 0) return ret;
+ }
+ lab7:
+ z->c = c9;
+ }
+ { int c10 = z->c; /* do, line 190 */
+ if (!(z->I[0] > 2)) goto lab8; /* $( > ), line 190 */
+ z->lb = z->c; z->c = z->l; /* backwards, line 190 */
+
+ { int ret = r_remove_suffix(z); /* call remove_suffix, line 190 */
+ if (ret == 0) goto lab8;
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ lab8:
+ z->c = c10;
+ }
+ }
+lab4:
+ return 1;
+}
+
+extern struct SN_env * indonesian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); }
+
+extern void indonesian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c
new file mode 100644
index 00000000000..8ef9a90d501
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c
@@ -0,0 +1,490 @@
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int irish_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_verb_sfx(struct SN_env * z);
+static int r_deriv(struct SN_env * z);
+static int r_noun_sfx(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_initial_morph(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * irish_ISO_8859_1_create_env(void);
+extern void irish_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 'b', '\'' };
+static const symbol s_0_1[2] = { 'b', 'h' };
+static const symbol s_0_2[3] = { 'b', 'h', 'f' };
+static const symbol s_0_3[2] = { 'b', 'p' };
+static const symbol s_0_4[2] = { 'c', 'h' };
+static const symbol s_0_5[2] = { 'd', '\'' };
+static const symbol s_0_6[4] = { 'd', '\'', 'f', 'h' };
+static const symbol s_0_7[2] = { 'd', 'h' };
+static const symbol s_0_8[2] = { 'd', 't' };
+static const symbol s_0_9[2] = { 'f', 'h' };
+static const symbol s_0_10[2] = { 'g', 'c' };
+static const symbol s_0_11[2] = { 'g', 'h' };
+static const symbol s_0_12[2] = { 'h', '-' };
+static const symbol s_0_13[2] = { 'm', '\'' };
+static const symbol s_0_14[2] = { 'm', 'b' };
+static const symbol s_0_15[2] = { 'm', 'h' };
+static const symbol s_0_16[2] = { 'n', '-' };
+static const symbol s_0_17[2] = { 'n', 'd' };
+static const symbol s_0_18[2] = { 'n', 'g' };
+static const symbol s_0_19[2] = { 'p', 'h' };
+static const symbol s_0_20[2] = { 's', 'h' };
+static const symbol s_0_21[2] = { 't', '-' };
+static const symbol s_0_22[2] = { 't', 'h' };
+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}
+};
+
+static const symbol s_1_0[6] = { 0xED, 'o', 'c', 'h', 't', 'a' };
+static const symbol s_1_1[7] = { 'a', 0xED, 'o', 'c', 'h', 't', 'a' };
+static const symbol s_1_2[3] = { 'i', 'r', 'e' };
+static const symbol s_1_3[4] = { 'a', 'i', 'r', 'e' };
+static const symbol s_1_4[3] = { 'a', 'b', 'h' };
+static const symbol s_1_5[4] = { 'e', 'a', 'b', 'h' };
+static const symbol s_1_6[3] = { 'i', 'b', 'h' };
+static const symbol s_1_7[4] = { 'a', 'i', 'b', 'h' };
+static const symbol s_1_8[3] = { 'a', 'm', 'h' };
+static const symbol s_1_9[4] = { 'e', 'a', 'm', 'h' };
+static const symbol s_1_10[3] = { 'i', 'm', 'h' };
+static const symbol s_1_11[4] = { 'a', 'i', 'm', 'h' };
+static const symbol s_1_12[5] = { 0xED, 'o', 'c', 'h', 't' };
+static const symbol s_1_13[6] = { 'a', 0xED, 'o', 'c', 'h', 't' };
+static const symbol s_1_14[3] = { 'i', 'r', 0xED };
+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}
+};
+
+static const symbol s_2_0[8] = { 0xF3, 'i', 'd', 'e', 'a', 'c', 'h', 'a' };
+static const symbol s_2_1[7] = { 'p', 'a', 't', 'a', 'c', 'h', 'a' };
+static const symbol s_2_2[5] = { 'a', 'c', 'h', 't', 'a' };
+static const symbol s_2_3[8] = { 'a', 'r', 'c', 'a', 'c', 'h', 't', 'a' };
+static const symbol s_2_4[6] = { 'e', 'a', 'c', 'h', 't', 'a' };
+static const symbol s_2_5[11] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h', 't', 'a' };
+static const symbol s_2_6[5] = { 'p', 'a', 'i', 't', 'e' };
+static const symbol s_2_7[3] = { 'a', 'c', 'h' };
+static const symbol s_2_8[4] = { 'e', 'a', 'c', 'h' };
+static const symbol s_2_9[7] = { 0xF3, 'i', 'd', 'e', 'a', 'c', 'h' };
+static const symbol s_2_10[7] = { 'g', 'i', 'n', 'e', 'a', 'c', 'h' };
+static const symbol s_2_11[6] = { 'p', 'a', 't', 'a', 'c', 'h' };
+static const symbol s_2_12[9] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h' };
+static const symbol s_2_13[7] = { 'p', 'a', 't', 'a', 'i', 'g', 'h' };
+static const symbol s_2_14[6] = { 0xF3, 'i', 'd', 'i', 'g', 'h' };
+static const symbol s_2_15[7] = { 'a', 'c', 'h', 't', 0xFA, 'i', 'l' };
+static const symbol s_2_16[8] = { 'e', 'a', 'c', 'h', 't', 0xFA, 'i', 'l' };
+static const symbol s_2_17[6] = { 'g', 'i', 'n', 'e', 'a', 's' };
+static const symbol s_2_18[5] = { 'g', 'i', 'n', 'i', 's' };
+static const symbol s_2_19[4] = { 'a', 'c', 'h', 't' };
+static const symbol s_2_20[7] = { 'a', 'r', 'c', 'a', 'c', 'h', 't' };
+static const symbol s_2_21[5] = { 'e', 'a', 'c', 'h', 't' };
+static const symbol s_2_22[10] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h', 't' };
+static const symbol s_2_23[9] = { 'a', 'r', 'c', 'a', 'c', 'h', 't', 'a', 0xED };
+static const symbol s_2_24[12] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h', 't', 'a', 0xED };
+
+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}
+};
+
+static const symbol s_3_0[4] = { 'i', 'm', 'i', 'd' };
+static const symbol s_3_1[5] = { 'a', 'i', 'm', 'i', 'd' };
+static const symbol s_3_2[4] = { 0xED, 'm', 'i', 'd' };
+static const symbol s_3_3[5] = { 'a', 0xED, 'm', 'i', 'd' };
+static const symbol s_3_4[3] = { 'a', 'd', 'h' };
+static const symbol s_3_5[4] = { 'e', 'a', 'd', 'h' };
+static const symbol s_3_6[5] = { 'f', 'a', 'i', 'd', 'h' };
+static const symbol s_3_7[4] = { 'f', 'i', 'd', 'h' };
+static const symbol s_3_8[3] = { 0xE1, 'i', 'l' };
+static const symbol s_3_9[3] = { 'a', 'i', 'n' };
+static const symbol s_3_10[4] = { 't', 'e', 'a', 'r' };
+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}
+};
+
+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 };
+
+static const symbol s_0[] = { 'f' };
+static const symbol s_1[] = { 's' };
+static const symbol s_2[] = { 'b' };
+static const symbol s_3[] = { 'c' };
+static const symbol s_4[] = { 'd' };
+static const symbol s_5[] = { 'g' };
+static const symbol s_6[] = { 'p' };
+static const symbol s_7[] = { 't' };
+static const symbol s_8[] = { 'm' };
+static const symbol s_9[] = { 'a', 'r', 'c' };
+static const symbol s_10[] = { 'g', 'i', 'n' };
+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 */
+ 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 */
+ lab0:
+ z->c = c1;
+ }
+ { int c2 = z->c; /* do, line 37 */
+ { /* gopast */ /* grouping v, line 38 */
+ 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 */
+ 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 */
+ lab1:
+ z->c = c2;
+ }
+ return 1;
+}
+
+static int r_initial_morph(struct SN_env * z) { /* forwardmode */
+ int among_var;
+ z->bra = z->c; /* [, line 44 */
+ among_var = find_among(z, a_0, 24); /* substring, line 44 */
+ if (!(among_var)) return 0;
+ z->ket = z->c; /* ], line 44 */
+ switch (among_var) { /* among, line 44 */
+ case 1:
+ { int ret = slice_del(z); /* delete, line 46 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 52 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 58 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 61 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 63 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 65 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 69 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 71 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 75 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 89 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 99 */
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 100 */
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 101 */
+ return 1;
+}
+
+static int r_noun_sfx(struct SN_env * z) { /* backwardmode */
+ int among_var;
+ z->ket = z->c; /* [, line 104 */
+ among_var = find_among_b(z, a_1, 16); /* substring, line 104 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 104 */
+ switch (among_var) { /* among, line 104 */
+ case 1:
+ { int ret = r_R1(z); /* call R1, line 108 */
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 108 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z); /* call R2, line 110 */
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 110 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_deriv(struct SN_env * z) { /* backwardmode */
+ int among_var;
+ z->ket = z->c; /* [, line 114 */
+ among_var = find_among_b(z, a_2, 25); /* substring, line 114 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 114 */
+ switch (among_var) { /* among, line 114 */
+ case 1:
+ { int ret = r_R2(z); /* call R2, line 116 */
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 116 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 3, s_9); /* <-, line 118 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 3, s_10); /* <-, line 120 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_11); /* <-, line 122 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 5, s_12); /* <-, line 124 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 3, s_13); /* <-, line 126 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_verb_sfx(struct SN_env * z) { /* backwardmode */
+ 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 */
+ 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 */
+ case 1:
+ { int ret = r_RV(z); /* call RV, line 133 */
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 133 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R1(z); /* call R1, line 138 */
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 138 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ 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 */
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = c1;
+ }
+ /* do, line 145 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 145 */
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+lab1:
+ z->lb = z->c; z->c = z->l; /* backwards, line 146 */
+
+ { int m2 = z->l - z->c; (void)m2; /* do, line 147 */
+ { int ret = r_noun_sfx(z); /* call noun_sfx, line 147 */
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ lab2:
+ 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 */
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ lab3:
+ 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 */
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
+ }
+ lab4:
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * irish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
+
+extern void irish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c
index d941b0f0363..fca2e3af1c3 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -476,34 +476,29 @@ static const symbol s_2[] = { 0xEC };
static const symbol s_3[] = { 0xF2 };
static const symbol s_4[] = { 0xF9 };
static const symbol s_5[] = { 'q', 'U' };
-static const symbol s_6[] = { 'u' };
-static const symbol s_7[] = { 'U' };
+static const symbol s_6[] = { 'U' };
+static const symbol s_7[] = { 'I' };
static const symbol s_8[] = { 'i' };
-static const symbol s_9[] = { 'I' };
-static const symbol s_10[] = { 'i' };
-static const symbol s_11[] = { 'u' };
-static const symbol s_12[] = { 'e' };
-static const symbol s_13[] = { 'i', 'c' };
-static const symbol s_14[] = { 'l', 'o', 'g' };
-static const symbol s_15[] = { 'u' };
-static const symbol s_16[] = { 'e', 'n', 't', 'e' };
-static const symbol s_17[] = { 'a', 't' };
-static const symbol s_18[] = { 'a', 't' };
-static const symbol s_19[] = { 'i', 'c' };
-static const symbol s_20[] = { 'i' };
-static const symbol s_21[] = { 'h' };
+static const symbol s_9[] = { 'u' };
+static const symbol s_10[] = { 'e' };
+static const symbol s_11[] = { 'i', 'c' };
+static const symbol s_12[] = { 'l', 'o', 'g' };
+static const symbol s_13[] = { 'u' };
+static const symbol s_14[] = { 'e', 'n', 't', 'e' };
+static const symbol s_15[] = { 'a', 't' };
+static const symbol s_16[] = { 'a', 't' };
+static const symbol s_17[] = { 'i', 'c' };
-static int r_prelude(struct SN_env * z) {
+static int r_prelude(struct SN_env * z) { /* forwardmode */
int among_var;
- { int c_test = z->c; /* test, line 35 */
+ { int c_test1 = z->c; /* test, line 35 */
while(1) { /* repeat, line 35 */
- int c1 = z->c;
+ int c2 = z->c;
z->bra = z->c; /* [, line 36 */
among_var = find_among(z, a_0, 7); /* substring, line 36 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 36 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 36 */
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 37 */
if (ret < 0) return ret;
@@ -541,59 +536,61 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab0:
- z->c = c1;
+ z->c = c2;
break;
}
- z->c = c_test;
+ z->c = c_test1;
}
while(1) { /* repeat, line 46 */
- int c2 = z->c;
+ int c3 = z->c;
while(1) { /* goto, line 46 */
- int c3 = z->c;
- if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
+ int c4 = z->c;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 47 */
z->bra = z->c; /* [, line 47 */
- { int c4 = z->c; /* or, line 47 */
- if (!(eq_s(z, 1, s_6))) goto lab4;
+ { int c5 = z->c; /* or, line 47 */
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab4; /* literal, line 47 */
+ z->c++;
z->ket = z->c; /* ], line 47 */
- if (in_grouping(z, g_v, 97, 249, 0)) goto lab4;
- { int ret = slice_from_s(z, 1, s_7); /* <-, line 47 */
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab4; /* grouping v, line 47 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 47 */
if (ret < 0) return ret;
}
goto lab3;
lab4:
- z->c = c4;
- if (!(eq_s(z, 1, s_8))) goto lab2;
+ z->c = c5;
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab2; /* literal, line 48 */
+ z->c++;
z->ket = z->c; /* ], line 48 */
- if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
- { int ret = slice_from_s(z, 1, s_9); /* <-, line 48 */
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 48 */
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 48 */
if (ret < 0) return ret;
}
}
lab3:
- z->c = c3;
+ z->c = c4;
break;
lab2:
- z->c = c3;
+ z->c = c4;
if (z->c >= z->l) goto lab1;
z->c++; /* goto, line 46 */
}
continue;
lab1:
- z->c = c2;
+ z->c = c3;
break;
}
return 1;
}
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
- z->I[2] = z->l;
+static int r_mark_regions(struct SN_env * z) { /* forwardmode */
+ z->I[0] = z->l; /* $pV = , line 54 */
+ z->I[1] = z->l; /* $p1 = , line 55 */
+ z->I[2] = z->l; /* $p2 = , line 56 */
{ int c1 = z->c; /* do, line 58 */
{ int c2 = z->c; /* or, line 60 */
- if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 59 */
{ int c3 = z->c; /* or, line 59 */
- if (out_grouping(z, g_v, 97, 249, 0)) goto lab4;
+ if (out_grouping(z, g_v, 97, 249, 0)) goto lab4; /* non v, line 59 */
{ /* gopast */ /* grouping v, line 59 */
int ret = out_grouping(z, g_v, 97, 249, 1);
if (ret < 0) goto lab4;
@@ -602,7 +599,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab3;
lab4:
z->c = c3;
- if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 59 */
{ /* gopast */ /* non v, line 59 */
int ret = in_grouping(z, g_v, 97, 249, 1);
if (ret < 0) goto lab2;
@@ -613,9 +610,9 @@ static int r_mark_regions(struct SN_env * z) {
goto lab1;
lab2:
z->c = c2;
- if (out_grouping(z, g_v, 97, 249, 0)) goto lab0;
+ if (out_grouping(z, g_v, 97, 249, 0)) goto lab0; /* non v, line 61 */
{ int c4 = z->c; /* or, line 61 */
- if (out_grouping(z, g_v, 97, 249, 0)) goto lab6;
+ if (out_grouping(z, g_v, 97, 249, 0)) goto lab6; /* non v, line 61 */
{ /* gopast */ /* grouping v, line 61 */
int ret = out_grouping(z, g_v, 97, 249, 1);
if (ret < 0) goto lab6;
@@ -624,7 +621,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab5;
lab6:
z->c = c4;
- if (in_grouping(z, g_v, 97, 249, 0)) goto lab0;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab0; /* grouping v, line 61 */
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 61 */
}
@@ -665,24 +662,23 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
-static int r_postlude(struct SN_env * z) {
+static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 70 */
int c1 = z->c;
z->bra = z->c; /* [, line 72 */
- if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
- among_var = find_among(z, a_1, 3); /* substring, line 72 */
+ if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else /* substring, line 72 */
+ among_var = find_among(z, a_1, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 72 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 72 */
case 1:
- { int ret = slice_from_s(z, 1, s_10); /* <-, line 73 */
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 73 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_11); /* <-, line 74 */
+ { int ret = slice_from_s(z, 1, s_9); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
@@ -699,43 +695,41 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
-static int r_RV(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_RV(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 82 */
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 83 */
return 1;
}
-static int r_R2(struct SN_env * z) {
- if (!(z->I[2] <= z->c)) return 0;
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 84 */
return 1;
}
-static int r_attached_pronoun(struct SN_env * z) {
+static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 87 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- if (!(find_among_b(z, a_2, 37))) return 0; /* substring, line 87 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 87 */
+ if (!(find_among_b(z, a_2, 37))) return 0;
z->bra = z->c; /* ], line 87 */
- if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
- among_var = find_among_b(z, a_3, 5); /* among, line 97 */
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; /* among, line 97 */
+ among_var = find_among_b(z, a_3, 5);
if (!(among_var)) return 0;
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 97 */
- if (ret < 0) return ret;
+ { int ret = r_RV(z); /* call RV, line 97 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 97 */
case 1:
{ int ret = slice_del(z); /* delete, line 98 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_12); /* <-, line 99 */
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 99 */
if (ret < 0) return ret;
}
break;
@@ -743,37 +737,34 @@ static int r_attached_pronoun(struct SN_env * z) {
return 1;
}
-static int r_standard_suffix(struct SN_env * z) {
+static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 104 */
among_var = find_among_b(z, a_6, 51); /* substring, line 104 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 104 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 104 */
case 1:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 111 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 111 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 111 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 113 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 113 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 113 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 114 */
+ { int m1 = z->l - z->c; (void)m1; /* try, line 114 */
z->ket = z->c; /* [, line 114 */
- if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m_keep; goto lab0; }
+ if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m1; goto lab0; } /* literal, line 114 */
z->bra = z->c; /* ], line 114 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 114 */
+ { int ret = r_R2(z); /* call R2, line 114 */
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 114 */
@@ -784,70 +775,64 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 3:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 117 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 117 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 3, s_14); /* <-, line 117 */
+ { int ret = slice_from_s(z, 3, s_12); /* <-, line 117 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 119 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 119 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 1, s_15); /* <-, line 119 */
+ { int ret = slice_from_s(z, 1, s_13); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 121 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 121 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 4, s_16); /* <-, line 121 */
+ { int ret = slice_from_s(z, 4, s_14); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 123 */
- if (ret < 0) return ret;
+ { int ret = r_RV(z); /* call RV, line 123 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 123 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 125 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 125 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 125 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 126 */
+ { int m2 = z->l - z->c; (void)m2; /* try, line 126 */
z->ket = z->c; /* [, line 127 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab1; }
- among_var = find_among_b(z, a_4, 4); /* substring, line 127 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } /* substring, line 127 */
+ among_var = find_among_b(z, a_4, 4);
+ if (!(among_var)) { z->c = z->l - m2; goto lab1; }
z->bra = z->c; /* ], line 127 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 127 */
+ { int ret = r_R2(z); /* call R2, line 127 */
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 127 */
if (ret < 0) return ret;
}
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab1; }
+ switch (among_var) { /* among, line 127 */
case 1:
z->ket = z->c; /* [, line 128 */
- if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m_keep; goto lab1; }
+ if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m2; goto lab1; } /* literal, line 128 */
z->bra = z->c; /* ], line 128 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 128 */
+ { int ret = r_R2(z); /* call R2, line 128 */
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 128 */
@@ -860,59 +845,51 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 8:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 134 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 134 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 135 */
+ { int m3 = z->l - z->c; (void)m3; /* try, line 135 */
z->ket = z->c; /* [, line 136 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab2; }
- among_var = find_among_b(z, a_5, 3); /* substring, line 136 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } /* substring, line 136 */
+ if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m3; goto lab2; }
z->bra = z->c; /* ], line 136 */
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab2; }
- case 1:
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 137 */
- if (ret < 0) return ret;
- }
- { int ret = slice_del(z); /* delete, line 137 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = r_R2(z); /* call R2, line 137 */
+ if (ret == 0) { z->c = z->l - m3; goto lab2; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 137 */
+ if (ret < 0) return ret;
}
lab2:
;
}
break;
case 9:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 142 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 142 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 142 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 143 */
+ { int m4 = z->l - z->c; (void)m4; /* try, line 143 */
z->ket = z->c; /* [, line 143 */
- if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m_keep; goto lab3; }
+ if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */
z->bra = z->c; /* ], line 143 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 143 */
+ { int ret = r_R2(z); /* call R2, line 143 */
+ if (ret == 0) { z->c = z->l - m4; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 143 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 143 */
- if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m_keep; goto lab3; }
+ if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */
z->bra = z->c; /* ], line 143 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 143 */
+ { int ret = r_R2(z); /* call R2, line 143 */
+ if (ret == 0) { z->c = z->l - m4; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 143 */
@@ -926,48 +903,40 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
-static int r_verb_suffix(struct SN_env * z) {
- int among_var;
- { int mlimit; /* setlimit, line 148 */
- int m1 = z->l - z->c; (void)m1;
+static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
+
+ { int mlimit1; /* setlimit, line 148 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 148 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 149 */
- among_var = find_among_b(z, a_7, 87); /* substring, line 149 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; } /* substring, line 149 */
z->bra = z->c; /* ], line 149 */
- switch(among_var) {
- case 0: { z->lb = mlimit; return 0; }
- case 1:
- { int ret = slice_del(z); /* delete, line 163 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = slice_del(z); /* delete, line 163 */
+ if (ret < 0) return ret;
}
- z->lb = mlimit;
+ z->lb = mlimit1;
}
return 1;
}
-static int r_vowel_suffix(struct SN_env * z) {
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 171 */
+static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */
+ { int m1 = z->l - z->c; (void)m1; /* try, line 171 */
z->ket = z->c; /* [, line 172 */
- if (in_grouping_b(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m_keep; goto lab0; }
+ if (in_grouping_b(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m1; goto lab0; } /* grouping AEIO, line 172 */
z->bra = z->c; /* ], line 172 */
- { int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 172 */
+ { int ret = r_RV(z); /* call RV, line 172 */
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 172 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 173 */
- if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m_keep; goto lab0; }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') { z->c = z->l - m1; goto lab0; } /* literal, line 173 */
+ z->c--;
z->bra = z->c; /* ], line 173 */
- { int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 173 */
+ { int ret = r_RV(z); /* call RV, line 173 */
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 173 */
@@ -976,13 +945,14 @@ static int r_vowel_suffix(struct SN_env * z) {
lab0:
;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 175 */
+ { int m2 = z->l - z->c; (void)m2; /* try, line 175 */
z->ket = z->c; /* [, line 176 */
- if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m_keep; goto lab1; }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'h') { z->c = z->l - m2; goto lab1; } /* literal, line 176 */
+ z->c--;
z->bra = z->c; /* ], line 176 */
- if (in_grouping_b(z, g_CG, 99, 103, 0)) { z->c = z->l - m_keep; goto lab1; }
- { int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call RV, line 176 */
+ if (in_grouping_b(z, g_CG, 99, 103, 0)) { z->c = z->l - m2; goto lab1; } /* grouping CG, line 176 */
+ { int ret = r_RV(z); /* call RV, line 176 */
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 176 */
@@ -994,67 +964,65 @@ static int r_vowel_suffix(struct SN_env * z) {
return 1;
}
-extern int italian_ISO_8859_1_stem(struct SN_env * z) {
+extern int italian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 182 */
- { int ret = r_prelude(z);
- if (ret == 0) goto lab0; /* call prelude, line 182 */
+ { int ret = r_prelude(z); /* call prelude, line 182 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
- { int c2 = z->c; /* do, line 183 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab1; /* call mark_regions, line 183 */
- if (ret < 0) return ret;
- }
- lab1:
- z->c = c2;
+ /* do, line 183 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 183 */
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
}
+lab1:
z->lb = z->c; z->c = z->l; /* backwards, line 184 */
- { int m3 = z->l - z->c; (void)m3; /* do, line 185 */
- { int ret = r_attached_pronoun(z);
- if (ret == 0) goto lab2; /* call attached_pronoun, line 185 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 185 */
+ { int ret = r_attached_pronoun(z); /* call attached_pronoun, line 185 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m3;
+ z->c = z->l - m2;
}
- { int m4 = z->l - z->c; (void)m4; /* do, line 186 */
- { int m5 = z->l - z->c; (void)m5; /* or, line 186 */
- { int ret = r_standard_suffix(z);
- if (ret == 0) goto lab5; /* call standard_suffix, line 186 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 186 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 186 */
+ { int ret = r_standard_suffix(z); /* call standard_suffix, line 186 */
+ if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
goto lab4;
lab5:
- z->c = z->l - m5;
- { int ret = r_verb_suffix(z);
- if (ret == 0) goto lab3; /* call verb_suffix, line 186 */
+ z->c = z->l - m4;
+ { int ret = r_verb_suffix(z); /* call verb_suffix, line 186 */
+ if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
}
lab4:
lab3:
- z->c = z->l - m4;
+ z->c = z->l - m3;
}
- { int m6 = z->l - z->c; (void)m6; /* do, line 187 */
- { int ret = r_vowel_suffix(z);
- if (ret == 0) goto lab6; /* call vowel_suffix, line 187 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 187 */
+ { int ret = r_vowel_suffix(z); /* call vowel_suffix, line 187 */
+ if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
- z->c = z->l - m6;
+ z->c = z->l - m5;
}
z->c = z->lb;
- { int c7 = z->c; /* do, line 189 */
- { int ret = r_postlude(z);
- if (ret == 0) goto lab7; /* call postlude, line 189 */
+ { int c6 = z->c; /* do, line 189 */
+ { int ret = r_postlude(z); /* call postlude, line 189 */
+ if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
- z->c = c7;
+ z->c = c6;
}
return 1;
}
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c
index 2debf1082d8..88eb9290e97 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -129,18 +129,17 @@ static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
static const unsigned char g_s_ending[] = { 119, 125, 149, 1 };
-static const symbol s_0[] = { 'k' };
-static const symbol s_1[] = { 'e', 'r' };
+static const symbol s_0[] = { 'e', 'r' };
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- { int c_test = z->c; /* test, line 30 */
- { int ret = z->c + 3;
+static int r_mark_regions(struct SN_env * z) { /* forwardmode */
+ z->I[0] = z->l; /* $p1 = , line 28 */
+ { int c_test1 = z->c; /* test, line 30 */
+ { int ret = z->c + 3; /* hop, line 30 */
if (0 > ret || ret > z->l) return 0;
- z->c = ret; /* hop, line 30 */
+ z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 30 */
- z->c = c_test;
+ z->c = c_test1;
}
if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 31 */
{ /* gopast */ /* non v, line 31 */
@@ -149,30 +148,27 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 31 */
- /* try, line 32 */
- if (!(z->I[0] < z->I[1])) goto lab0;
- z->I[0] = z->I[1];
+ /* try, line 32 */
+ if (!(z->I[0] < z->I[1])) goto lab0; /* $( < ), line 32 */
+ z->I[0] = z->I[1]; /* $p1 = , line 32 */
lab0:
return 1;
}
-static int r_main_suffix(struct SN_env * z) {
+static int r_main_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 38 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 38 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 38 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 38 */
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
- among_var = find_among_b(z, a_0, 29); /* substring, line 38 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 38 */
+ among_var = find_among_b(z, a_0, 29);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 38 */
- z->lb = mlimit;
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 39 */
case 1:
{ int ret = slice_del(z); /* delete, line 44 */
if (ret < 0) return ret;
@@ -180,12 +176,13 @@ static int r_main_suffix(struct SN_env * z) {
break;
case 2:
{ int m2 = z->l - z->c; (void)m2; /* or, line 46 */
- if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1;
+ if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1; /* grouping s_ending, line 46 */
goto lab0;
lab1:
z->c = z->l - m2;
- if (!(eq_s_b(z, 1, s_0))) return 0;
- if (out_grouping_b(z, g_v, 97, 248, 0)) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0; /* literal, line 46 */
+ z->c--;
+ if (out_grouping_b(z, g_v, 97, 248, 0)) return 0; /* non v, line 46 */
}
lab0:
{ int ret = slice_del(z); /* delete, line 46 */
@@ -193,7 +190,7 @@ static int r_main_suffix(struct SN_env * z) {
}
break;
case 3:
- { int ret = slice_from_s(z, 2, s_1); /* <-, line 48 */
+ { int ret = slice_from_s(z, 2, s_0); /* <-, line 48 */
if (ret < 0) return ret;
}
break;
@@ -201,21 +198,19 @@ static int r_main_suffix(struct SN_env * z) {
return 1;
}
-static int r_consonant_pair(struct SN_env * z) {
- { int m_test = z->l - z->c; /* test, line 53 */
- { int mlimit; /* setlimit, line 54 */
- int m1 = z->l - z->c; (void)m1;
+static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
+ { int m_test1 = z->l - z->c; /* test, line 53 */
+
+ { int mlimit2; /* setlimit, line 54 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 54 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 54 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit; return 0; }
- if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit; return 0; } /* substring, line 54 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; } /* substring, line 54 */
+ if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 54 */
- z->lb = mlimit;
+ z->lb = mlimit2;
}
- z->c = z->l - m_test;
+ z->c = z->l - m_test1;
}
if (z->c <= z->lb) return 0;
z->c--; /* next, line 59 */
@@ -226,36 +221,27 @@ static int r_consonant_pair(struct SN_env * z) {
return 1;
}
-static int r_other_suffix(struct SN_env * z) {
- int among_var;
- { int mlimit; /* setlimit, line 63 */
- int m1 = z->l - z->c; (void)m1;
+static int r_other_suffix(struct SN_env * z) { /* backwardmode */
+
+ { int mlimit1; /* setlimit, line 63 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 63 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 63 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
- among_var = find_among_b(z, a_2, 11); /* substring, line 63 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 63 */
+ if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 63 */
- z->lb = mlimit;
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
- case 1:
- { int ret = slice_del(z); /* delete, line 67 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = slice_del(z); /* delete, line 67 */
+ if (ret < 0) return ret;
}
return 1;
}
-extern int norwegian_ISO_8859_1_stem(struct SN_env * z) {
+extern int norwegian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 74 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab0; /* call mark_regions, line 74 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 74 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
@@ -264,24 +250,24 @@ extern int norwegian_ISO_8859_1_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 75 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 76 */
- { int ret = r_main_suffix(z);
- if (ret == 0) goto lab1; /* call main_suffix, line 76 */
+ { int ret = r_main_suffix(z); /* call main_suffix, line 76 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 77 */
- { int ret = r_consonant_pair(z);
- if (ret == 0) goto lab2; /* call consonant_pair, line 77 */
+ { int ret = r_consonant_pair(z); /* call consonant_pair, line 77 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 78 */
- { int ret = r_other_suffix(z);
- if (ret == 0) goto lab3; /* call other_suffix, line 78 */
+ { int ret = r_other_suffix(z); /* call other_suffix, line 78 */
+ if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c
index 69e4fc4c1f2..cc330e0cd73 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -115,21 +115,21 @@ static const struct among a_3[20] =
/* 2 */ { 4, s_3_2, -1, 4, 0},
/* 3 */ { 3, s_3_3, -1, 6, 0},
/* 4 */ { 4, s_3_4, -1, 9, 0},
-/* 5 */ { 5, s_3_5, -1, 12, 0},
+/* 5 */ { 5, s_3_5, -1, 11, 0},
/* 6 */ { 5, s_3_6, -1, 5, 0},
-/* 7 */ { 5, s_3_7, -1, 10, 0},
-/* 8 */ { 6, s_3_8, -1, 14, 0},
-/* 9 */ { 5, s_3_9, -1, 13, 0},
+/* 7 */ { 5, s_3_7, -1, 9, 0},
+/* 8 */ { 6, s_3_8, -1, 13, 0},
+/* 9 */ { 5, s_3_9, -1, 12, 0},
/* 10 */ { 6, s_3_10, -1, 1, 0},
/* 11 */ { 7, s_3_11, 10, 8, 0},
-/* 12 */ { 5, s_3_12, -1, 10, 0},
+/* 12 */ { 5, s_3_12, -1, 9, 0},
/* 13 */ { 5, s_3_13, -1, 8, 0},
/* 14 */ { 7, s_3_14, 13, 7, 0},
/* 15 */ { 4, s_3_15, -1, 7, 0},
/* 16 */ { 4, s_3_16, -1, 8, 0},
-/* 17 */ { 7, s_3_17, -1, 13, 0},
-/* 18 */ { 7, s_3_18, -1, 11, 0},
-/* 19 */ { 7, s_3_19, -1, 12, 0}
+/* 17 */ { 7, s_3_17, -1, 12, 0},
+/* 18 */ { 7, s_3_18, -1, 10, 0},
+/* 19 */ { 7, s_3_19, -1, 11, 0}
};
static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
@@ -203,63 +203,51 @@ static const symbol s_1[] = { 'i' };
static const symbol s_2[] = { 'e', 'e' };
static const symbol s_3[] = { 'e' };
static const symbol s_4[] = { 'e' };
-static const symbol s_5[] = { 'y' };
-static const symbol s_6[] = { 'Y' };
-static const symbol s_7[] = { 'i' };
-static const symbol s_8[] = { 't', 'i', 'o', 'n' };
-static const symbol s_9[] = { 'e', 'n', 'c', 'e' };
-static const symbol s_10[] = { 'a', 'n', 'c', 'e' };
-static const symbol s_11[] = { 'a', 'b', 'l', 'e' };
-static const symbol s_12[] = { 'e', 'n', 't' };
-static const symbol s_13[] = { 'e' };
-static const symbol s_14[] = { 'i', 'z', 'e' };
-static const symbol s_15[] = { 'a', 't', 'e' };
-static const symbol s_16[] = { 'a', 'l' };
-static const symbol s_17[] = { 'a', 'l' };
-static const symbol s_18[] = { 'f', 'u', 'l' };
-static const symbol s_19[] = { 'o', 'u', 's' };
-static const symbol s_20[] = { 'i', 'v', 'e' };
-static const symbol s_21[] = { 'b', 'l', 'e' };
-static const symbol s_22[] = { 'a', 'l' };
-static const symbol s_23[] = { 'i', 'c' };
-static const symbol s_24[] = { 's' };
-static const symbol s_25[] = { 't' };
-static const symbol s_26[] = { 'e' };
-static const symbol s_27[] = { 'l' };
-static const symbol s_28[] = { 'l' };
-static const symbol s_29[] = { 'y' };
-static const symbol s_30[] = { 'Y' };
-static const symbol s_31[] = { 'y' };
-static const symbol s_32[] = { 'Y' };
-static const symbol s_33[] = { 'Y' };
-static const symbol s_34[] = { 'y' };
+static const symbol s_5[] = { 'i' };
+static const symbol s_6[] = { 't', 'i', 'o', 'n' };
+static const symbol s_7[] = { 'e', 'n', 'c', 'e' };
+static const symbol s_8[] = { 'a', 'n', 'c', 'e' };
+static const symbol s_9[] = { 'a', 'b', 'l', 'e' };
+static const symbol s_10[] = { 'e', 'n', 't' };
+static const symbol s_11[] = { 'e' };
+static const symbol s_12[] = { 'i', 'z', 'e' };
+static const symbol s_13[] = { 'a', 't', 'e' };
+static const symbol s_14[] = { 'a', 'l' };
+static const symbol s_15[] = { 'f', 'u', 'l' };
+static const symbol s_16[] = { 'o', 'u', 's' };
+static const symbol s_17[] = { 'i', 'v', 'e' };
+static const symbol s_18[] = { 'b', 'l', 'e' };
+static const symbol s_19[] = { 'a', 'l' };
+static const symbol s_20[] = { 'i', 'c' };
+static const symbol s_21[] = { 'Y' };
+static const symbol s_22[] = { 'Y' };
+static const symbol s_23[] = { 'y' };
-static int r_shortv(struct SN_env * z) {
- if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) return 0;
- if (in_grouping_b(z, g_v, 97, 121, 0)) return 0;
- if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
+static int r_shortv(struct SN_env * z) { /* backwardmode */
+ if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) return 0; /* non v_WXY, line 19 */
+ if (in_grouping_b(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 19 */
+ if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 19 */
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 21 */
return 1;
}
-static int r_R2(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 22 */
return 1;
}
-static int r_Step_1a(struct SN_env * z) {
+static int r_Step_1a(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 25 */
- if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
- among_var = find_among_b(z, a_0, 4); /* substring, line 25 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0; /* substring, line 25 */
+ among_var = find_among_b(z, a_0, 4);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 25 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 25 */
case 1:
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */
if (ret < 0) return ret;
@@ -279,48 +267,47 @@ static int r_Step_1a(struct SN_env * z) {
return 1;
}
-static int r_Step_1b(struct SN_env * z) {
+static int r_Step_1b(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 34 */
- if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
- among_var = find_among_b(z, a_2, 3); /* substring, line 34 */
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 34 */
+ among_var = find_among_b(z, a_2, 3);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 34 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 34 */
case 1:
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 35 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 35 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 2, s_2); /* <-, line 35 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m_test = z->l - z->c; /* test, line 38 */
+ { int m_test1 = z->l - z->c; /* test, line 38 */
{ /* gopast */ /* grouping v, line 38 */
int ret = out_grouping_b(z, g_v, 97, 121, 1);
if (ret < 0) return 0;
z->c -= ret;
}
- z->c = z->l - m_test;
+ z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 38 */
if (ret < 0) return ret;
}
- { int m_test = z->l - z->c; /* test, line 39 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
- among_var = find_among_b(z, a_1, 13); /* substring, line 39 */
+ { int m_test2 = z->l - z->c; /* test, line 39 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 39 */
+ among_var = find_among_b(z, a_1, 13);
if (!(among_var)) return 0;
- z->c = z->l - m_test;
+ z->c = z->l - m_test2;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 39 */
case 1:
- { int c_keep = z->c;
- int ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
- z->c = c_keep;
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
+ z->c = saved_c;
+ }
if (ret < 0) return ret;
}
break;
@@ -335,16 +322,17 @@ static int r_Step_1b(struct SN_env * z) {
break;
case 3:
if (z->c != z->I[0]) return 0; /* atmark, line 45 */
- { int m_test = z->l - z->c; /* test, line 45 */
- { int ret = r_shortv(z);
- if (ret == 0) return 0; /* call shortv, line 45 */
- if (ret < 0) return ret;
+ { int m_test3 = z->l - z->c; /* test, line 45 */
+ { int ret = r_shortv(z); /* call shortv, line 45 */
+ if (ret <= 0) return ret;
}
- z->c = z->l - m_test;
+ z->c = z->l - m_test3;
}
- { int c_keep = z->c;
- int ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
- z->c = c_keep;
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
+ z->c = saved_c;
+ }
if (ret < 0) return ret;
}
break;
@@ -354,14 +342,16 @@ static int r_Step_1b(struct SN_env * z) {
return 1;
}
-static int r_Step_1c(struct SN_env * z) {
+static int r_Step_1c(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 52 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 52 */
- if (!(eq_s_b(z, 1, s_5))) goto lab1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 52 */
+ z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
- if (!(eq_s_b(z, 1, s_6))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 52 */
+ z->c--;
}
lab0:
z->bra = z->c; /* ], line 52 */
@@ -370,92 +360,85 @@ lab0:
if (ret < 0) return 0;
z->c -= ret;
}
- { int ret = slice_from_s(z, 1, s_7); /* <-, line 54 */
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 54 */
if (ret < 0) return ret;
}
return 1;
}
-static int r_Step_2(struct SN_env * z) {
+static int r_Step_2(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 58 */
- if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- among_var = find_among_b(z, a_3, 20); /* substring, line 58 */
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 58 */
+ among_var = find_among_b(z, a_3, 20);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 58 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 58 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 58 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 58 */
case 1:
- { int ret = slice_from_s(z, 4, s_8); /* <-, line 59 */
+ { int ret = slice_from_s(z, 4, s_6); /* <-, line 59 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 4, s_9); /* <-, line 60 */
+ { int ret = slice_from_s(z, 4, s_7); /* <-, line 60 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 4, s_10); /* <-, line 61 */
+ { int ret = slice_from_s(z, 4, s_8); /* <-, line 61 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = slice_from_s(z, 4, s_11); /* <-, line 62 */
+ { int ret = slice_from_s(z, 4, s_9); /* <-, line 62 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret = slice_from_s(z, 3, s_12); /* <-, line 63 */
+ { int ret = slice_from_s(z, 3, s_10); /* <-, line 63 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret = slice_from_s(z, 1, s_13); /* <-, line 64 */
+ { int ret = slice_from_s(z, 1, s_11); /* <-, line 64 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret = slice_from_s(z, 3, s_14); /* <-, line 66 */
+ { int ret = slice_from_s(z, 3, s_12); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 8:
- { int ret = slice_from_s(z, 3, s_15); /* <-, line 68 */
+ { int ret = slice_from_s(z, 3, s_13); /* <-, line 68 */
if (ret < 0) return ret;
}
break;
case 9:
- { int ret = slice_from_s(z, 2, s_16); /* <-, line 69 */
+ { int ret = slice_from_s(z, 2, s_14); /* <-, line 69 */
if (ret < 0) return ret;
}
break;
case 10:
- { int ret = slice_from_s(z, 2, s_17); /* <-, line 71 */
+ { int ret = slice_from_s(z, 3, s_15); /* <-, line 72 */
if (ret < 0) return ret;
}
break;
case 11:
- { int ret = slice_from_s(z, 3, s_18); /* <-, line 72 */
+ { int ret = slice_from_s(z, 3, s_16); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
case 12:
- { int ret = slice_from_s(z, 3, s_19); /* <-, line 74 */
+ { int ret = slice_from_s(z, 3, s_17); /* <-, line 76 */
if (ret < 0) return ret;
}
break;
case 13:
- { int ret = slice_from_s(z, 3, s_20); /* <-, line 76 */
- if (ret < 0) return ret;
- }
- break;
- case 14:
- { int ret = slice_from_s(z, 3, s_21); /* <-, line 77 */
+ { int ret = slice_from_s(z, 3, s_18); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
@@ -463,26 +446,24 @@ static int r_Step_2(struct SN_env * z) {
return 1;
}
-static int r_Step_3(struct SN_env * z) {
+static int r_Step_3(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 82 */
- if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- among_var = find_among_b(z, a_4, 7); /* substring, line 82 */
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 82 */
+ among_var = find_among_b(z, a_4, 7);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 82 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 82 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 82 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 82 */
case 1:
- { int ret = slice_from_s(z, 2, s_22); /* <-, line 83 */
+ { int ret = slice_from_s(z, 2, s_19); /* <-, line 83 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 2, s_23); /* <-, line 85 */
+ { int ret = slice_from_s(z, 2, s_20); /* <-, line 85 */
if (ret < 0) return ret;
}
break;
@@ -495,19 +476,17 @@ static int r_Step_3(struct SN_env * z) {
return 1;
}
-static int r_Step_4(struct SN_env * z) {
+static int r_Step_4(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 92 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- among_var = find_among_b(z, a_5, 19); /* substring, line 92 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 92 */
+ among_var = find_among_b(z, a_5, 19);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 92 */
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 92 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 92 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 92 */
case 1:
{ int ret = slice_del(z); /* delete, line 95 */
if (ret < 0) return ret;
@@ -515,11 +494,13 @@ static int r_Step_4(struct SN_env * z) {
break;
case 2:
{ int m1 = z->l - z->c; (void)m1; /* or, line 96 */
- if (!(eq_s_b(z, 1, s_24))) goto lab1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 96 */
+ z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
- if (!(eq_s_b(z, 1, s_25))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 96 */
+ z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 96 */
@@ -530,25 +511,25 @@ static int r_Step_4(struct SN_env * z) {
return 1;
}
-static int r_Step_5a(struct SN_env * z) {
+static int r_Step_5a(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 101 */
- if (!(eq_s_b(z, 1, s_26))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 101 */
+ z->c--;
z->bra = z->c; /* ], line 101 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 102 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab1; /* call R2, line 102 */
+ { int ret = r_R2(z); /* call R2, line 102 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = z->l - m1;
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 102 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 102 */
+ if (ret <= 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* not, line 102 */
- { int ret = r_shortv(z);
- if (ret == 0) goto lab2; /* call shortv, line 102 */
+ { int ret = r_shortv(z); /* call shortv, line 102 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
return 0;
@@ -563,28 +544,30 @@ lab0:
return 1;
}
-static int r_Step_5b(struct SN_env * z) {
+static int r_Step_5b(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 107 */
- if (!(eq_s_b(z, 1, s_27))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 107 */
+ z->c--;
z->bra = z->c; /* ], line 107 */
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 108 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 108 */
+ if (ret <= 0) return ret;
}
- if (!(eq_s_b(z, 1, s_28))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 108 */
+ z->c--;
{ int ret = slice_del(z); /* delete, line 109 */
if (ret < 0) return ret;
}
return 1;
}
-extern int porter_ISO_8859_1_stem(struct SN_env * z) {
+extern int porter_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
z->B[0] = 0; /* unset Y_found, line 115 */
{ int c1 = z->c; /* do, line 116 */
z->bra = z->c; /* [, line 116 */
- if (!(eq_s(z, 1, s_29))) goto lab0;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab0; /* literal, line 116 */
+ z->c++;
z->ket = z->c; /* ], line 116 */
- { int ret = slice_from_s(z, 1, s_30); /* <-, line 116 */
+ { int ret = slice_from_s(z, 1, s_21); /* <-, line 116 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 116 */
@@ -596,9 +579,10 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
int c3 = z->c;
while(1) { /* goto, line 117 */
int c4 = z->c;
- if (in_grouping(z, g_v, 97, 121, 0)) goto lab3;
+ if (in_grouping(z, g_v, 97, 121, 0)) goto lab3; /* grouping v, line 117 */
z->bra = z->c; /* [, line 117 */
- if (!(eq_s(z, 1, s_31))) goto lab3;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 117 */
+ z->c++;
z->ket = z->c; /* ], line 117 */
z->c = c4;
break;
@@ -607,7 +591,7 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
if (z->c >= z->l) goto lab2;
z->c++; /* goto, line 117 */
}
- { int ret = slice_from_s(z, 1, s_32); /* <-, line 117 */
+ { int ret = slice_from_s(z, 1, s_22); /* <-, line 117 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 117 */
@@ -618,8 +602,8 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
}
z->c = c2;
}
- z->I[0] = z->l;
- z->I[1] = z->l;
+ z->I[0] = z->l; /* $p1 = , line 119 */
+ z->I[1] = z->l; /* $p2 = , line 120 */
{ int c5 = z->c; /* do, line 121 */
{ /* gopast */ /* grouping v, line 122 */
int ret = out_grouping(z, g_v, 97, 121, 1);
@@ -649,64 +633,64 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 126 */
{ int m6 = z->l - z->c; (void)m6; /* do, line 127 */
- { int ret = r_Step_1a(z);
- if (ret == 0) goto lab5; /* call Step_1a, line 127 */
+ { int ret = r_Step_1a(z); /* call Step_1a, line 127 */
+ if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
lab5:
z->c = z->l - m6;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 128 */
- { int ret = r_Step_1b(z);
- if (ret == 0) goto lab6; /* call Step_1b, line 128 */
+ { int ret = r_Step_1b(z); /* call Step_1b, line 128 */
+ if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
z->c = z->l - m7;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 129 */
- { int ret = r_Step_1c(z);
- if (ret == 0) goto lab7; /* call Step_1c, line 129 */
+ { int ret = r_Step_1c(z); /* call Step_1c, line 129 */
+ if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
z->c = z->l - m8;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 130 */
- { int ret = r_Step_2(z);
- if (ret == 0) goto lab8; /* call Step_2, line 130 */
+ { int ret = r_Step_2(z); /* call Step_2, line 130 */
+ if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
lab8:
z->c = z->l - m9;
}
{ int m10 = z->l - z->c; (void)m10; /* do, line 131 */
- { int ret = r_Step_3(z);
- if (ret == 0) goto lab9; /* call Step_3, line 131 */
+ { int ret = r_Step_3(z); /* call Step_3, line 131 */
+ if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
z->c = z->l - m10;
}
{ int m11 = z->l - z->c; (void)m11; /* do, line 132 */
- { int ret = r_Step_4(z);
- if (ret == 0) goto lab10; /* call Step_4, line 132 */
+ { int ret = r_Step_4(z); /* call Step_4, line 132 */
+ if (ret == 0) goto lab10;
if (ret < 0) return ret;
}
lab10:
z->c = z->l - m11;
}
{ int m12 = z->l - z->c; (void)m12; /* do, line 133 */
- { int ret = r_Step_5a(z);
- if (ret == 0) goto lab11; /* call Step_5a, line 133 */
+ { int ret = r_Step_5a(z); /* call Step_5a, line 133 */
+ if (ret == 0) goto lab11;
if (ret < 0) return ret;
}
lab11:
z->c = z->l - m12;
}
{ int m13 = z->l - z->c; (void)m13; /* do, line 134 */
- { int ret = r_Step_5b(z);
- if (ret == 0) goto lab12; /* call Step_5b, line 134 */
+ { int ret = r_Step_5b(z); /* call Step_5b, line 134 */
+ if (ret == 0) goto lab12;
if (ret < 0) return ret;
}
lab12:
@@ -720,7 +704,8 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
while(1) { /* goto, line 137 */
int c16 = z->c;
z->bra = z->c; /* [, line 137 */
- if (!(eq_s(z, 1, s_33))) goto lab15;
+ if (z->c == z->l || z->p[z->c] != 'Y') goto lab15; /* literal, line 137 */
+ z->c++;
z->ket = z->c; /* ], line 137 */
z->c = c16;
break;
@@ -729,7 +714,7 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
if (z->c >= z->l) goto lab14;
z->c++; /* goto, line 137 */
}
- { int ret = slice_from_s(z, 1, s_34); /* <-, line 137 */
+ { int ret = slice_from_s(z, 1, s_23); /* <-, line 137 */
if (ret < 0) return ret;
}
continue;
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c
index 06d425d008f..674d9c2657a 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -90,42 +90,42 @@ static const struct among a_4[3] =
static const symbol s_5_0[3] = { 'i', 'c', 'a' };
static const symbol s_5_1[5] = { 0xE2, 'n', 'c', 'i', 'a' };
static const symbol s_5_2[5] = { 0xEA, 'n', 'c', 'i', 'a' };
-static const symbol s_5_3[3] = { 'i', 'r', 'a' };
-static const symbol s_5_4[5] = { 'a', 'd', 'o', 'r', 'a' };
-static const symbol s_5_5[3] = { 'o', 's', 'a' };
-static const symbol s_5_6[4] = { 'i', 's', 't', 'a' };
-static const symbol s_5_7[3] = { 'i', 'v', 'a' };
-static const symbol s_5_8[3] = { 'e', 'z', 'a' };
-static const symbol s_5_9[5] = { 'l', 'o', 'g', 0xED, 'a' };
+static const symbol s_5_3[5] = { 'l', 'o', 'g', 'i', 'a' };
+static const symbol s_5_4[3] = { 'i', 'r', 'a' };
+static const symbol s_5_5[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_5_6[3] = { 'o', 's', 'a' };
+static const symbol s_5_7[4] = { 'i', 's', 't', 'a' };
+static const symbol s_5_8[3] = { 'i', 'v', 'a' };
+static const symbol s_5_9[3] = { 'e', 'z', 'a' };
static const symbol s_5_10[5] = { 'i', 'd', 'a', 'd', 'e' };
static const symbol s_5_11[4] = { 'a', 'n', 't', 'e' };
static const symbol s_5_12[5] = { 'm', 'e', 'n', 't', 'e' };
static const symbol s_5_13[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
static const symbol s_5_14[4] = { 0xE1, 'v', 'e', 'l' };
static const symbol s_5_15[4] = { 0xED, 'v', 'e', 'l' };
-static const symbol s_5_16[5] = { 'u', 'c', 'i', 0xF3, 'n' };
-static const symbol s_5_17[3] = { 'i', 'c', 'o' };
-static const symbol s_5_18[4] = { 'i', 's', 'm', 'o' };
-static const symbol s_5_19[3] = { 'o', 's', 'o' };
-static const symbol s_5_20[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
-static const symbol s_5_21[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
-static const symbol s_5_22[3] = { 'i', 'v', 'o' };
-static const symbol s_5_23[5] = { 'a', 0xE7, 'a', '~', 'o' };
+static const symbol s_5_16[3] = { 'i', 'c', 'o' };
+static const symbol s_5_17[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_5_18[3] = { 'o', 's', 'o' };
+static const symbol s_5_19[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_5_20[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_5_21[3] = { 'i', 'v', 'o' };
+static const symbol s_5_22[5] = { 'a', 0xE7, 'a', '~', 'o' };
+static const symbol s_5_23[5] = { 'u', 0xE7, 'a', '~', 'o' };
static const symbol s_5_24[4] = { 'a', 'd', 'o', 'r' };
static const symbol s_5_25[4] = { 'i', 'c', 'a', 's' };
static const symbol s_5_26[6] = { 0xEA, 'n', 'c', 'i', 'a', 's' };
-static const symbol s_5_27[4] = { 'i', 'r', 'a', 's' };
-static const symbol s_5_28[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
-static const symbol s_5_29[4] = { 'o', 's', 'a', 's' };
-static const symbol s_5_30[5] = { 'i', 's', 't', 'a', 's' };
-static const symbol s_5_31[4] = { 'i', 'v', 'a', 's' };
-static const symbol s_5_32[4] = { 'e', 'z', 'a', 's' };
-static const symbol s_5_33[6] = { 'l', 'o', 'g', 0xED, 'a', 's' };
+static const symbol s_5_27[6] = { 'l', 'o', 'g', 'i', 'a', 's' };
+static const symbol s_5_28[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_5_29[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
+static const symbol s_5_30[4] = { 'o', 's', 'a', 's' };
+static const symbol s_5_31[5] = { 'i', 's', 't', 'a', 's' };
+static const symbol s_5_32[4] = { 'i', 'v', 'a', 's' };
+static const symbol s_5_33[4] = { 'e', 'z', 'a', 's' };
static const symbol s_5_34[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
-static const symbol s_5_35[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
-static const symbol s_5_36[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
-static const symbol s_5_37[5] = { 'a', 'n', 't', 'e', 's' };
-static const symbol s_5_38[6] = { 'a', 0xE7, 'o', '~', 'e', 's' };
+static const symbol s_5_35[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_5_36[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_5_37[6] = { 'a', 0xE7, 'o', '~', 'e', 's' };
+static const symbol s_5_38[6] = { 'u', 0xE7, 'o', '~', 'e', 's' };
static const symbol s_5_39[4] = { 'i', 'c', 'o', 's' };
static const symbol s_5_40[5] = { 'i', 's', 'm', 'o', 's' };
static const symbol s_5_41[4] = { 'o', 's', 'o', 's' };
@@ -138,42 +138,42 @@ static const struct among a_5[45] =
/* 0 */ { 3, s_5_0, -1, 1, 0},
/* 1 */ { 5, s_5_1, -1, 1, 0},
/* 2 */ { 5, s_5_2, -1, 4, 0},
-/* 3 */ { 3, s_5_3, -1, 9, 0},
-/* 4 */ { 5, s_5_4, -1, 1, 0},
-/* 5 */ { 3, s_5_5, -1, 1, 0},
-/* 6 */ { 4, s_5_6, -1, 1, 0},
-/* 7 */ { 3, s_5_7, -1, 8, 0},
-/* 8 */ { 3, s_5_8, -1, 1, 0},
-/* 9 */ { 5, s_5_9, -1, 2, 0},
+/* 3 */ { 5, s_5_3, -1, 2, 0},
+/* 4 */ { 3, s_5_4, -1, 9, 0},
+/* 5 */ { 5, s_5_5, -1, 1, 0},
+/* 6 */ { 3, s_5_6, -1, 1, 0},
+/* 7 */ { 4, s_5_7, -1, 1, 0},
+/* 8 */ { 3, s_5_8, -1, 8, 0},
+/* 9 */ { 3, s_5_9, -1, 1, 0},
/* 10 */ { 5, s_5_10, -1, 7, 0},
/* 11 */ { 4, s_5_11, -1, 1, 0},
/* 12 */ { 5, s_5_12, -1, 6, 0},
/* 13 */ { 6, s_5_13, 12, 5, 0},
/* 14 */ { 4, s_5_14, -1, 1, 0},
/* 15 */ { 4, s_5_15, -1, 1, 0},
-/* 16 */ { 5, s_5_16, -1, 3, 0},
-/* 17 */ { 3, s_5_17, -1, 1, 0},
-/* 18 */ { 4, s_5_18, -1, 1, 0},
-/* 19 */ { 3, s_5_19, -1, 1, 0},
+/* 16 */ { 3, s_5_16, -1, 1, 0},
+/* 17 */ { 4, s_5_17, -1, 1, 0},
+/* 18 */ { 3, s_5_18, -1, 1, 0},
+/* 19 */ { 6, s_5_19, -1, 1, 0},
/* 20 */ { 6, s_5_20, -1, 1, 0},
-/* 21 */ { 6, s_5_21, -1, 1, 0},
-/* 22 */ { 3, s_5_22, -1, 8, 0},
-/* 23 */ { 5, s_5_23, -1, 1, 0},
+/* 21 */ { 3, s_5_21, -1, 8, 0},
+/* 22 */ { 5, s_5_22, -1, 1, 0},
+/* 23 */ { 5, s_5_23, -1, 3, 0},
/* 24 */ { 4, s_5_24, -1, 1, 0},
/* 25 */ { 4, s_5_25, -1, 1, 0},
/* 26 */ { 6, s_5_26, -1, 4, 0},
-/* 27 */ { 4, s_5_27, -1, 9, 0},
-/* 28 */ { 6, s_5_28, -1, 1, 0},
-/* 29 */ { 4, s_5_29, -1, 1, 0},
-/* 30 */ { 5, s_5_30, -1, 1, 0},
-/* 31 */ { 4, s_5_31, -1, 8, 0},
-/* 32 */ { 4, s_5_32, -1, 1, 0},
-/* 33 */ { 6, s_5_33, -1, 2, 0},
+/* 27 */ { 6, s_5_27, -1, 2, 0},
+/* 28 */ { 4, s_5_28, -1, 9, 0},
+/* 29 */ { 6, s_5_29, -1, 1, 0},
+/* 30 */ { 4, s_5_30, -1, 1, 0},
+/* 31 */ { 5, s_5_31, -1, 1, 0},
+/* 32 */ { 4, s_5_32, -1, 8, 0},
+/* 33 */ { 4, s_5_33, -1, 1, 0},
/* 34 */ { 6, s_5_34, -1, 7, 0},
-/* 35 */ { 7, s_5_35, -1, 3, 0},
-/* 36 */ { 6, s_5_36, -1, 1, 0},
-/* 37 */ { 5, s_5_37, -1, 1, 0},
-/* 38 */ { 6, s_5_38, -1, 1, 0},
+/* 35 */ { 6, s_5_35, -1, 1, 0},
+/* 36 */ { 5, s_5_36, -1, 1, 0},
+/* 37 */ { 6, s_5_37, -1, 1, 0},
+/* 38 */ { 6, s_5_38, -1, 3, 0},
/* 39 */ { 4, s_5_39, -1, 1, 0},
/* 40 */ { 5, s_5_40, -1, 1, 0},
/* 41 */ { 4, s_5_41, -1, 1, 0},
@@ -470,27 +470,19 @@ static const symbol s_5[] = { 'u' };
static const symbol s_6[] = { 'e', 'n', 't', 'e' };
static const symbol s_7[] = { 'a', 't' };
static const symbol s_8[] = { 'a', 't' };
-static const symbol s_9[] = { 'e' };
-static const symbol s_10[] = { 'i', 'r' };
-static const symbol s_11[] = { 'u' };
-static const symbol s_12[] = { 'g' };
-static const symbol s_13[] = { 'i' };
-static const symbol s_14[] = { 'c' };
-static const symbol s_15[] = { 'c' };
-static const symbol s_16[] = { 'i' };
-static const symbol s_17[] = { 'c' };
+static const symbol s_9[] = { 'i', 'r' };
+static const symbol s_10[] = { 'c' };
-static int r_prelude(struct SN_env * z) {
+static int r_prelude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 36 */
int c1 = z->c;
z->bra = z->c; /* [, line 37 */
- if (z->c >= z->l || (z->p[z->c + 0] != 227 && z->p[z->c + 0] != 245)) among_var = 3; else
- among_var = find_among(z, a_0, 3); /* substring, line 37 */
+ if (z->c >= z->l || (z->p[z->c + 0] != 227 && z->p[z->c + 0] != 245)) among_var = 3; else /* substring, line 37 */
+ among_var = find_among(z, a_0, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 37 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 37 */
case 1:
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 38 */
if (ret < 0) return ret;
@@ -514,15 +506,15 @@ static int r_prelude(struct SN_env * z) {
return 1;
}
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
- z->I[2] = z->l;
+static int r_mark_regions(struct SN_env * z) { /* forwardmode */
+ z->I[0] = z->l; /* $pV = , line 46 */
+ z->I[1] = z->l; /* $p1 = , line 47 */
+ z->I[2] = z->l; /* $p2 = , line 48 */
{ int c1 = z->c; /* do, line 50 */
{ int c2 = z->c; /* or, line 52 */
- if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
+ if (in_grouping(z, g_v, 97, 250, 0)) goto lab2; /* grouping v, line 51 */
{ int c3 = z->c; /* or, line 51 */
- if (out_grouping(z, g_v, 97, 250, 0)) goto lab4;
+ if (out_grouping(z, g_v, 97, 250, 0)) goto lab4; /* non v, line 51 */
{ /* gopast */ /* grouping v, line 51 */
int ret = out_grouping(z, g_v, 97, 250, 1);
if (ret < 0) goto lab4;
@@ -531,7 +523,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab3;
lab4:
z->c = c3;
- if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
+ if (in_grouping(z, g_v, 97, 250, 0)) goto lab2; /* grouping v, line 51 */
{ /* gopast */ /* non v, line 51 */
int ret = in_grouping(z, g_v, 97, 250, 1);
if (ret < 0) goto lab2;
@@ -542,9 +534,9 @@ static int r_mark_regions(struct SN_env * z) {
goto lab1;
lab2:
z->c = c2;
- if (out_grouping(z, g_v, 97, 250, 0)) goto lab0;
+ if (out_grouping(z, g_v, 97, 250, 0)) goto lab0; /* non v, line 53 */
{ int c4 = z->c; /* or, line 53 */
- if (out_grouping(z, g_v, 97, 250, 0)) goto lab6;
+ if (out_grouping(z, g_v, 97, 250, 0)) goto lab6; /* non v, line 53 */
{ /* gopast */ /* grouping v, line 53 */
int ret = out_grouping(z, g_v, 97, 250, 1);
if (ret < 0) goto lab6;
@@ -553,7 +545,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab5;
lab6:
z->c = c4;
- if (in_grouping(z, g_v, 97, 250, 0)) goto lab0;
+ if (in_grouping(z, g_v, 97, 250, 0)) goto lab0; /* grouping v, line 53 */
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 53 */
}
@@ -594,17 +586,16 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
-static int r_postlude(struct SN_env * z) {
+static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 62 */
int c1 = z->c;
z->bra = z->c; /* [, line 63 */
- if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else
- among_var = find_among(z, a_1, 3); /* substring, line 63 */
+ if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else /* substring, line 63 */
+ among_var = find_among(z, a_1, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 63 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 63 */
case 1:
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 64 */
if (ret < 0) return ret;
@@ -628,95 +619,88 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
-static int r_RV(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_RV(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 72 */
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 73 */
return 1;
}
-static int r_R2(struct SN_env * z) {
- if (!(z->I[2] <= z->c)) return 0;
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 74 */
return 1;
}
-static int r_standard_suffix(struct SN_env * z) {
+static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 77 */
- if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((839714 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- among_var = find_among_b(z, a_5, 45); /* substring, line 77 */
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 77 */
+ among_var = find_among_b(z, a_5, 45);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 77 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 77 */
case 1:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 93 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 93 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 93 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 98 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 98 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 3, s_4); /* <-, line 98 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 102 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 102 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 102 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 106 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 106 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 4, s_6); /* <-, line 106 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 110 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 110 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 110 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
+ { int m1 = z->l - z->c; (void)m1; /* try, line 111 */
z->ket = z->c; /* [, line 112 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab0; }
- among_var = find_among_b(z, a_2, 4); /* substring, line 112 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; } /* substring, line 112 */
+ among_var = find_among_b(z, a_2, 4);
+ if (!(among_var)) { z->c = z->l - m1; goto lab0; }
z->bra = z->c; /* ], line 112 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 112 */
+ { int ret = r_R2(z); /* call R2, line 112 */
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 112 */
if (ret < 0) return ret;
}
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab0; }
+ switch (among_var) { /* among, line 112 */
case 1:
z->ket = z->c; /* [, line 113 */
- if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m_keep; goto lab0; }
+ if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m1; goto lab0; } /* literal, line 113 */
z->bra = z->c; /* ], line 113 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 113 */
+ { int ret = r_R2(z); /* call R2, line 113 */
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 113 */
@@ -729,79 +713,64 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 6:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 122 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 122 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 123 */
+ { int m2 = z->l - z->c; (void)m2; /* try, line 123 */
z->ket = z->c; /* [, line 124 */
- if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m_keep; goto lab1; }
- among_var = find_among_b(z, a_3, 3); /* substring, line 124 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
+ if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; } /* substring, line 124 */
+ if (!(find_among_b(z, a_3, 3))) { z->c = z->l - m2; goto lab1; }
z->bra = z->c; /* ], line 124 */
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab1; }
- case 1:
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 127 */
- if (ret < 0) return ret;
- }
- { int ret = slice_del(z); /* delete, line 127 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = r_R2(z); /* call R2, line 127 */
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 127 */
+ if (ret < 0) return ret;
}
lab1:
;
}
break;
case 7:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 134 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 134 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 135 */
+ { int m3 = z->l - z->c; (void)m3; /* try, line 135 */
z->ket = z->c; /* [, line 136 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab2; }
- among_var = find_among_b(z, a_4, 3); /* substring, line 136 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } /* substring, line 136 */
+ if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
z->bra = z->c; /* ], line 136 */
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab2; }
- case 1:
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 139 */
- if (ret < 0) return ret;
- }
- { int ret = slice_del(z); /* delete, line 139 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = r_R2(z); /* call R2, line 139 */
+ if (ret == 0) { z->c = z->l - m3; goto lab2; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 139 */
+ if (ret < 0) return ret;
}
lab2:
;
}
break;
case 8:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 146 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 146 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 146 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 147 */
+ { int m4 = z->l - z->c; (void)m4; /* try, line 147 */
z->ket = z->c; /* [, line 148 */
- if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m_keep; goto lab3; }
+ if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m4; goto lab3; } /* literal, line 148 */
z->bra = z->c; /* ], line 148 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 148 */
+ { int ret = r_R2(z); /* call R2, line 148 */
+ if (ret == 0) { z->c = z->l - m4; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 148 */
@@ -812,12 +781,12 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 9:
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 153 */
- if (ret < 0) return ret;
+ { int ret = r_RV(z); /* call RV, line 153 */
+ if (ret <= 0) return ret;
}
- if (!(eq_s_b(z, 1, s_9))) return 0;
- { int ret = slice_from_s(z, 2, s_10); /* <-, line 154 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 153 */
+ z->c--;
+ { int ret = slice_from_s(z, 2, s_9); /* <-, line 154 */
if (ret < 0) return ret;
}
break;
@@ -825,97 +794,81 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
-static int r_verb_suffix(struct SN_env * z) {
- int among_var;
- { int mlimit; /* setlimit, line 159 */
- int m1 = z->l - z->c; (void)m1;
+static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
+
+ { int mlimit1; /* setlimit, line 159 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 159 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 160 */
- among_var = find_among_b(z, a_6, 120); /* substring, line 160 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; } /* substring, line 160 */
z->bra = z->c; /* ], line 160 */
- switch(among_var) {
- case 0: { z->lb = mlimit; return 0; }
- case 1:
- { int ret = slice_del(z); /* delete, line 179 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = slice_del(z); /* delete, line 179 */
+ if (ret < 0) return ret;
}
- z->lb = mlimit;
+ z->lb = mlimit1;
}
return 1;
}
-static int r_residual_suffix(struct SN_env * z) {
- int among_var;
+static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 184 */
- among_var = find_among_b(z, a_7, 7); /* substring, line 184 */
- if (!(among_var)) return 0;
+ if (!(find_among_b(z, a_7, 7))) return 0; /* substring, line 184 */
z->bra = z->c; /* ], line 184 */
- switch(among_var) {
- case 0: return 0;
- case 1:
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 187 */
- if (ret < 0) return ret;
- }
- { int ret = slice_del(z); /* delete, line 187 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = r_RV(z); /* call RV, line 187 */
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 187 */
+ if (ret < 0) return ret;
}
return 1;
}
-static int r_residual_form(struct SN_env * z) {
+static int r_residual_form(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 192 */
among_var = find_among_b(z, a_8, 4); /* substring, line 192 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 192 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 192 */
case 1:
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 194 */
- if (ret < 0) return ret;
+ { int ret = r_RV(z); /* call RV, line 194 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 194 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 194 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 194 */
- if (!(eq_s_b(z, 1, s_11))) goto lab1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab1; /* literal, line 194 */
+ z->c--;
z->bra = z->c; /* ], line 194 */
- { int m_test = z->l - z->c; /* test, line 194 */
- if (!(eq_s_b(z, 1, s_12))) goto lab1;
- z->c = z->l - m_test;
+ { int m_test2 = z->l - z->c; /* test, line 194 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 'g') goto lab1; /* literal, line 194 */
+ z->c--;
+ z->c = z->l - m_test2;
}
goto lab0;
lab1:
z->c = z->l - m1;
- if (!(eq_s_b(z, 1, s_13))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 195 */
+ z->c--;
z->bra = z->c; /* ], line 195 */
- { int m_test = z->l - z->c; /* test, line 195 */
- if (!(eq_s_b(z, 1, s_14))) return 0;
- z->c = z->l - m_test;
+ { int m_test3 = z->l - z->c; /* test, line 195 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 'c') return 0; /* literal, line 195 */
+ z->c--;
+ z->c = z->l - m_test3;
}
}
lab0:
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 195 */
- if (ret < 0) return ret;
+ { int ret = r_RV(z); /* call RV, line 195 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 195 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_15); /* <-, line 196 */
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 196 */
if (ret < 0) return ret;
}
break;
@@ -923,77 +876,77 @@ static int r_residual_form(struct SN_env * z) {
return 1;
}
-extern int portuguese_ISO_8859_1_stem(struct SN_env * z) {
+extern int portuguese_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 202 */
- { int ret = r_prelude(z);
- if (ret == 0) goto lab0; /* call prelude, line 202 */
+ { int ret = r_prelude(z); /* call prelude, line 202 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
- { int c2 = z->c; /* do, line 203 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab1; /* call mark_regions, line 203 */
- if (ret < 0) return ret;
- }
- lab1:
- z->c = c2;
+ /* do, line 203 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 203 */
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
}
+lab1:
z->lb = z->c; z->c = z->l; /* backwards, line 204 */
- { int m3 = z->l - z->c; (void)m3; /* do, line 205 */
- { int m4 = z->l - z->c; (void)m4; /* or, line 209 */
- { int m5 = z->l - z->c; (void)m5; /* and, line 207 */
- { int m6 = z->l - z->c; (void)m6; /* or, line 206 */
- { int ret = r_standard_suffix(z);
- if (ret == 0) goto lab6; /* call standard_suffix, line 206 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 205 */
+ { int m3 = z->l - z->c; (void)m3; /* or, line 209 */
+ { int m4 = z->l - z->c; (void)m4; /* and, line 207 */
+ { int m5 = z->l - z->c; (void)m5; /* or, line 206 */
+ { int ret = r_standard_suffix(z); /* call standard_suffix, line 206 */
+ if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = z->l - m6;
- { int ret = r_verb_suffix(z);
- if (ret == 0) goto lab4; /* call verb_suffix, line 206 */
+ z->c = z->l - m5;
+ { int ret = r_verb_suffix(z); /* call verb_suffix, line 206 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
- z->c = z->l - m5;
- { int m7 = z->l - z->c; (void)m7; /* do, line 207 */
+ z->c = z->l - m4;
+ { int m6 = z->l - z->c; (void)m6; /* do, line 207 */
z->ket = z->c; /* [, line 207 */
- if (!(eq_s_b(z, 1, s_16))) goto lab7;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab7; /* literal, line 207 */
+ z->c--;
z->bra = z->c; /* ], line 207 */
- { int m_test = z->l - z->c; /* test, line 207 */
- if (!(eq_s_b(z, 1, s_17))) goto lab7;
- z->c = z->l - m_test;
+ { int m_test7 = z->l - z->c; /* test, line 207 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab7; /* literal, line 207 */
+ z->c--;
+ z->c = z->l - m_test7;
}
- { int ret = r_RV(z);
- if (ret == 0) goto lab7; /* call RV, line 207 */
+ { int ret = r_RV(z); /* call RV, line 207 */
+ if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 207 */
if (ret < 0) return ret;
}
lab7:
- z->c = z->l - m7;
+ z->c = z->l - m6;
}
}
goto lab3;
lab4:
- z->c = z->l - m4;
- { int ret = r_residual_suffix(z);
- if (ret == 0) goto lab2; /* call residual_suffix, line 209 */
+ z->c = z->l - m3;
+ { int ret = r_residual_suffix(z); /* call residual_suffix, line 209 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
}
lab3:
lab2:
- z->c = z->l - m3;
+ z->c = z->l - m2;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 211 */
- { int ret = r_residual_form(z);
- if (ret == 0) goto lab8; /* call residual_form, line 211 */
+ { int ret = r_residual_form(z); /* call residual_form, line 211 */
+ if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
lab8:
@@ -1001,8 +954,8 @@ extern int portuguese_ISO_8859_1_stem(struct SN_env * z) {
}
z->c = z->lb;
{ int c9 = z->c; /* do, line 213 */
- { int ret = r_postlude(z);
- if (ret == 0) goto lab9; /* call postlude, line 213 */
+ { int ret = r_postlude(z); /* call postlude, line 213 */
+ if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c
index 27f26e7865e..c2f101df3ac 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -497,28 +497,22 @@ static const symbol s_6[] = { 'a', 'n', 'd', 'o' };
static const symbol s_7[] = { 'a', 'r' };
static const symbol s_8[] = { 'e', 'r' };
static const symbol s_9[] = { 'i', 'r' };
-static const symbol s_10[] = { 'u' };
-static const symbol s_11[] = { 'i', 'c' };
-static const symbol s_12[] = { 'l', 'o', 'g' };
-static const symbol s_13[] = { 'u' };
-static const symbol s_14[] = { 'e', 'n', 't', 'e' };
+static const symbol s_10[] = { 'i', 'c' };
+static const symbol s_11[] = { 'l', 'o', 'g' };
+static const symbol s_12[] = { 'u' };
+static const symbol s_13[] = { 'e', 'n', 't', 'e' };
+static const symbol s_14[] = { 'a', 't' };
static const symbol s_15[] = { 'a', 't' };
-static const symbol s_16[] = { 'a', 't' };
-static const symbol s_17[] = { 'u' };
-static const symbol s_18[] = { 'u' };
-static const symbol s_19[] = { 'g' };
-static const symbol s_20[] = { 'u' };
-static const symbol s_21[] = { 'g' };
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
- z->I[2] = z->l;
+static int r_mark_regions(struct SN_env * z) { /* forwardmode */
+ z->I[0] = z->l; /* $pV = , line 33 */
+ z->I[1] = z->l; /* $p1 = , line 34 */
+ z->I[2] = z->l; /* $p2 = , line 35 */
{ int c1 = z->c; /* do, line 37 */
{ int c2 = z->c; /* or, line 39 */
- if (in_grouping(z, g_v, 97, 252, 0)) goto lab2;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab2; /* grouping v, line 38 */
{ int c3 = z->c; /* or, line 38 */
- if (out_grouping(z, g_v, 97, 252, 0)) goto lab4;
+ if (out_grouping(z, g_v, 97, 252, 0)) goto lab4; /* non v, line 38 */
{ /* gopast */ /* grouping v, line 38 */
int ret = out_grouping(z, g_v, 97, 252, 1);
if (ret < 0) goto lab4;
@@ -527,7 +521,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab3;
lab4:
z->c = c3;
- if (in_grouping(z, g_v, 97, 252, 0)) goto lab2;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab2; /* grouping v, line 38 */
{ /* gopast */ /* non v, line 38 */
int ret = in_grouping(z, g_v, 97, 252, 1);
if (ret < 0) goto lab2;
@@ -538,9 +532,9 @@ static int r_mark_regions(struct SN_env * z) {
goto lab1;
lab2:
z->c = c2;
- if (out_grouping(z, g_v, 97, 252, 0)) goto lab0;
+ if (out_grouping(z, g_v, 97, 252, 0)) goto lab0; /* non v, line 40 */
{ int c4 = z->c; /* or, line 40 */
- if (out_grouping(z, g_v, 97, 252, 0)) goto lab6;
+ if (out_grouping(z, g_v, 97, 252, 0)) goto lab6; /* non v, line 40 */
{ /* gopast */ /* grouping v, line 40 */
int ret = out_grouping(z, g_v, 97, 252, 1);
if (ret < 0) goto lab6;
@@ -549,7 +543,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab5;
lab6:
z->c = c4;
- if (in_grouping(z, g_v, 97, 252, 0)) goto lab0;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab0; /* grouping v, line 40 */
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 40 */
}
@@ -590,17 +584,16 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
-static int r_postlude(struct SN_env * z) {
+static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 49 */
int c1 = z->c;
z->bra = z->c; /* [, line 50 */
- if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((67641858 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else
- among_var = find_among(z, a_0, 6); /* substring, line 50 */
+ if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((67641858 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else /* substring, line 50 */
+ among_var = find_among(z, a_0, 6);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 50 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 50 */
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 51 */
if (ret < 0) return ret;
@@ -639,36 +632,34 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
-static int r_RV(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_RV(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 63 */
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 64 */
return 1;
}
-static int r_R2(struct SN_env * z) {
- if (!(z->I[2] <= z->c)) return 0;
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 65 */
return 1;
}
-static int r_attached_pronoun(struct SN_env * z) {
+static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 68 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- if (!(find_among_b(z, a_1, 13))) return 0; /* substring, line 68 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 68 */
+ if (!(find_among_b(z, a_1, 13))) return 0;
z->bra = z->c; /* ], line 68 */
- if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
- among_var = find_among_b(z, a_2, 11); /* substring, line 72 */
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; /* substring, line 72 */
+ among_var = find_among_b(z, a_2, 11);
if (!(among_var)) return 0;
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 72 */
- if (ret < 0) return ret;
+ { int ret = r_RV(z); /* call RV, line 72 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 72 */
case 1:
z->bra = z->c; /* ], line 73 */
{ int ret = slice_from_s(z, 5, s_5); /* <-, line 73 */
@@ -705,7 +696,8 @@ static int r_attached_pronoun(struct SN_env * z) {
}
break;
case 7:
- if (!(eq_s_b(z, 1, s_10))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; /* literal, line 82 */
+ z->c--;
{ int ret = slice_del(z); /* delete, line 82 */
if (ret < 0) return ret;
}
@@ -714,38 +706,35 @@ static int r_attached_pronoun(struct SN_env * z) {
return 1;
}
-static int r_standard_suffix(struct SN_env * z) {
+static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 87 */
- if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- among_var = find_among_b(z, a_6, 46); /* substring, line 87 */
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 87 */
+ among_var = find_among_b(z, a_6, 46);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 87 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 87 */
case 1:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 99 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 99 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 105 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 105 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 105 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 106 */
+ { int m1 = z->l - z->c; (void)m1; /* try, line 106 */
z->ket = z->c; /* [, line 106 */
- if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab0; }
+ if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m1; goto lab0; } /* literal, line 106 */
z->bra = z->c; /* ], line 106 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 106 */
+ { int ret = r_R2(z); /* call R2, line 106 */
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 106 */
@@ -756,61 +745,56 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 3:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 111 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 111 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 3, s_12); /* <-, line 111 */
+ { int ret = slice_from_s(z, 3, s_11); /* <-, line 111 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 115 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 115 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 1, s_13); /* <-, line 115 */
+ { int ret = slice_from_s(z, 1, s_12); /* <-, line 115 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 119 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 119 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 4, s_14); /* <-, line 119 */
+ { int ret = slice_from_s(z, 4, s_13); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 123 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 123 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 123 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 124 */
+ { int m2 = z->l - z->c; (void)m2; /* try, line 124 */
z->ket = z->c; /* [, line 125 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab1; }
- among_var = find_among_b(z, a_3, 4); /* substring, line 125 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } /* substring, line 125 */
+ among_var = find_among_b(z, a_3, 4);
+ if (!(among_var)) { z->c = z->l - m2; goto lab1; }
z->bra = z->c; /* ], line 125 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 125 */
+ { int ret = r_R2(z); /* call R2, line 125 */
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 125 */
if (ret < 0) return ret;
}
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab1; }
+ switch (among_var) { /* among, line 125 */
case 1:
z->ket = z->c; /* [, line 126 */
- if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab1; }
+ if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m2; goto lab1; } /* literal, line 126 */
z->bra = z->c; /* ], line 126 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 126 */
+ { int ret = r_R2(z); /* call R2, line 126 */
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 126 */
@@ -823,79 +807,64 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 7:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 135 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 135 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 135 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 136 */
+ { int m3 = z->l - z->c; (void)m3; /* try, line 136 */
z->ket = z->c; /* [, line 137 */
- if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m_keep; goto lab2; }
- among_var = find_among_b(z, a_4, 3); /* substring, line 137 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; } /* substring, line 137 */
+ if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
z->bra = z->c; /* ], line 137 */
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab2; }
- case 1:
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 140 */
- if (ret < 0) return ret;
- }
- { int ret = slice_del(z); /* delete, line 140 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = r_R2(z); /* call R2, line 140 */
+ if (ret == 0) { z->c = z->l - m3; goto lab2; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 140 */
+ if (ret < 0) return ret;
}
lab2:
;
}
break;
case 8:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 147 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 147 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 147 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 148 */
+ { int m4 = z->l - z->c; (void)m4; /* try, line 148 */
z->ket = z->c; /* [, line 149 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab3; }
- among_var = find_among_b(z, a_5, 3); /* substring, line 149 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab3; }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m4; goto lab3; } /* substring, line 149 */
+ if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m4; goto lab3; }
z->bra = z->c; /* ], line 149 */
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab3; }
- case 1:
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 152 */
- if (ret < 0) return ret;
- }
- { int ret = slice_del(z); /* delete, line 152 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = r_R2(z); /* call R2, line 152 */
+ if (ret == 0) { z->c = z->l - m4; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 152 */
+ if (ret < 0) return ret;
}
lab3:
;
}
break;
case 9:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 159 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 159 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 159 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 160 */
+ { int m5 = z->l - z->c; (void)m5; /* try, line 160 */
z->ket = z->c; /* [, line 161 */
- if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m_keep; goto lab4; }
+ if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m5; goto lab4; } /* literal, line 161 */
z->bra = z->c; /* ], line 161 */
- { int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call R2, line 161 */
+ { int ret = r_R2(z); /* call R2, line 161 */
+ if (ret == 0) { z->c = z->l - m5; goto lab4; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 161 */
@@ -909,54 +878,45 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
-static int r_y_verb_suffix(struct SN_env * z) {
- int among_var;
- { int mlimit; /* setlimit, line 168 */
- int m1 = z->l - z->c; (void)m1;
+static int r_y_verb_suffix(struct SN_env * z) { /* backwardmode */
+
+ { int mlimit1; /* setlimit, line 168 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 168 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 168 */
- among_var = find_among_b(z, a_7, 12); /* substring, line 168 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; } /* substring, line 168 */
z->bra = z->c; /* ], line 168 */
- z->lb = mlimit;
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
- case 1:
- if (!(eq_s_b(z, 1, s_17))) return 0;
- { int ret = slice_del(z); /* delete, line 171 */
- if (ret < 0) return ret;
- }
- break;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; /* literal, line 171 */
+ z->c--;
+ { int ret = slice_del(z); /* delete, line 171 */
+ if (ret < 0) return ret;
}
return 1;
}
-static int r_verb_suffix(struct SN_env * z) {
+static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 176 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 176 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 176 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 176 */
among_var = find_among_b(z, a_8, 96); /* substring, line 176 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 176 */
- z->lb = mlimit;
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 176 */
case 1:
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 179 */
- if (!(eq_s_b(z, 1, s_18))) { z->c = z->l - m_keep; goto lab0; }
- { int m_test = z->l - z->c; /* test, line 179 */
- if (!(eq_s_b(z, 1, s_19))) { z->c = z->l - m_keep; goto lab0; }
- z->c = z->l - m_test;
+ { int m2 = z->l - z->c; (void)m2; /* try, line 179 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m2; goto lab0; } /* literal, line 179 */
+ z->c--;
+ { int m_test3 = z->l - z->c; /* test, line 179 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m2; goto lab0; } /* literal, line 179 */
+ z->c--;
+ z->c = z->l - m_test3;
}
lab0:
;
@@ -975,41 +935,40 @@ static int r_verb_suffix(struct SN_env * z) {
return 1;
}
-static int r_residual_suffix(struct SN_env * z) {
+static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 205 */
among_var = find_among_b(z, a_9, 8); /* substring, line 205 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 205 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 205 */
case 1:
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 208 */
- if (ret < 0) return ret;
+ { int ret = r_RV(z); /* call RV, line 208 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 208 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 210 */
- if (ret < 0) return ret;
+ { int ret = r_RV(z); /* call RV, line 210 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 210 */
if (ret < 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 210 */
+ { int m1 = z->l - z->c; (void)m1; /* try, line 210 */
z->ket = z->c; /* [, line 210 */
- if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m_keep; goto lab0; }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m1; goto lab0; } /* literal, line 210 */
+ z->c--;
z->bra = z->c; /* ], line 210 */
- { int m_test = z->l - z->c; /* test, line 210 */
- if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m_keep; goto lab0; }
- z->c = z->l - m_test;
+ { int m_test2 = z->l - z->c; /* test, line 210 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m1; goto lab0; } /* literal, line 210 */
+ z->c--;
+ z->c = z->l - m_test2;
}
- { int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 210 */
+ { int ret = r_RV(z); /* call RV, line 210 */
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 210 */
@@ -1023,66 +982,64 @@ static int r_residual_suffix(struct SN_env * z) {
return 1;
}
-extern int spanish_ISO_8859_1_stem(struct SN_env * z) {
- { int c1 = z->c; /* do, line 216 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab0; /* call mark_regions, line 216 */
- if (ret < 0) return ret;
- }
- lab0:
- z->c = c1;
+extern int spanish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
+ /* do, line 216 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 216 */
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
}
+lab0:
z->lb = z->c; z->c = z->l; /* backwards, line 217 */
- { int m2 = z->l - z->c; (void)m2; /* do, line 218 */
- { int ret = r_attached_pronoun(z);
- if (ret == 0) goto lab1; /* call attached_pronoun, line 218 */
+ { int m1 = z->l - z->c; (void)m1; /* do, line 218 */
+ { int ret = r_attached_pronoun(z); /* call attached_pronoun, line 218 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m2;
+ z->c = z->l - m1;
}
- { int m3 = z->l - z->c; (void)m3; /* do, line 219 */
- { int m4 = z->l - z->c; (void)m4; /* or, line 219 */
- { int ret = r_standard_suffix(z);
- if (ret == 0) goto lab4; /* call standard_suffix, line 219 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 219 */
+ { int m3 = z->l - z->c; (void)m3; /* or, line 219 */
+ { int ret = r_standard_suffix(z); /* call standard_suffix, line 219 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
goto lab3;
lab4:
- z->c = z->l - m4;
- { int ret = r_y_verb_suffix(z);
- if (ret == 0) goto lab5; /* call y_verb_suffix, line 220 */
+ z->c = z->l - m3;
+ { int ret = r_y_verb_suffix(z); /* call y_verb_suffix, line 220 */
+ if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
goto lab3;
lab5:
- z->c = z->l - m4;
- { int ret = r_verb_suffix(z);
- if (ret == 0) goto lab2; /* call verb_suffix, line 221 */
+ z->c = z->l - m3;
+ { int ret = r_verb_suffix(z); /* call verb_suffix, line 221 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
}
lab3:
lab2:
- z->c = z->l - m3;
+ z->c = z->l - m2;
}
- { int m5 = z->l - z->c; (void)m5; /* do, line 223 */
- { int ret = r_residual_suffix(z);
- if (ret == 0) goto lab6; /* call residual_suffix, line 223 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 223 */
+ { int ret = r_residual_suffix(z); /* call residual_suffix, line 223 */
+ if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
- z->c = z->l - m5;
+ z->c = z->l - m4;
}
z->c = z->lb;
- { int c6 = z->c; /* do, line 225 */
- { int ret = r_postlude(z);
- if (ret == 0) goto lab7; /* call postlude, line 225 */
+ { int c5 = z->c; /* do, line 225 */
+ { int ret = r_postlude(z); /* call postlude, line 225 */
+ if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
- z->c = c6;
+ z->c = c5;
}
return 1;
}
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c
index f9bef1ada56..13be21762c3 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -146,15 +146,15 @@ static const unsigned char g_s_ending[] = { 119, 127, 149 };
static const symbol s_0[] = { 'l', 0xF6, 's' };
static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- { int c_test = z->c; /* test, line 29 */
- { int ret = z->c + 3;
+static int r_mark_regions(struct SN_env * z) { /* forwardmode */
+ z->I[0] = z->l; /* $p1 = , line 28 */
+ { int c_test1 = z->c; /* test, line 29 */
+ { int ret = z->c + 3; /* hop, line 29 */
if (0 > ret || ret > z->l) return 0;
- z->c = ret; /* hop, line 29 */
+ z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 29 */
- z->c = c_test;
+ z->c = c_test1;
}
if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0; /* goto */ /* grouping v, line 30 */
{ /* gopast */ /* non v, line 30 */
@@ -163,37 +163,34 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 30 */
- /* try, line 31 */
- if (!(z->I[0] < z->I[1])) goto lab0;
- z->I[0] = z->I[1];
+ /* try, line 31 */
+ if (!(z->I[0] < z->I[1])) goto lab0; /* $( < ), line 31 */
+ z->I[0] = z->I[1]; /* $p1 = , line 31 */
lab0:
return 1;
}
-static int r_main_suffix(struct SN_env * z) {
+static int r_main_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 37 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 37 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 37 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 37 */
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
- among_var = find_among_b(z, a_0, 37); /* substring, line 37 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 37 */
+ among_var = find_among_b(z, a_0, 37);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 37 */
- z->lb = mlimit;
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 38 */
case 1:
{ int ret = slice_del(z); /* delete, line 44 */
if (ret < 0) return ret;
}
break;
case 2:
- if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0;
+ if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0; /* grouping s_ending, line 46 */
{ int ret = slice_del(z); /* delete, line 46 */
if (ret < 0) return ret;
}
@@ -202,45 +199,40 @@ static int r_main_suffix(struct SN_env * z) {
return 1;
}
-static int r_consonant_pair(struct SN_env * z) {
- { int mlimit; /* setlimit, line 50 */
- int m1 = z->l - z->c; (void)m1;
+static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
+
+ { int mlimit1; /* setlimit, line 50 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 50 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
{ int m2 = z->l - z->c; (void)m2; /* and, line 52 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
- if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit; return 0; } /* among, line 51 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* among, line 51 */
+ if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; }
z->c = z->l - m2;
z->ket = z->c; /* [, line 52 */
- if (z->c <= z->lb) { z->lb = mlimit; return 0; }
+ if (z->c <= z->lb) { z->lb = mlimit1; return 0; }
z->c--; /* next, line 52 */
z->bra = z->c; /* ], line 52 */
{ int ret = slice_del(z); /* delete, line 52 */
if (ret < 0) return ret;
}
}
- z->lb = mlimit;
+ z->lb = mlimit1;
}
return 1;
}
-static int r_other_suffix(struct SN_env * z) {
+static int r_other_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 55 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 55 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 55 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
- among_var = find_among_b(z, a_2, 5); /* substring, line 56 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 56 */
+ among_var = find_among_b(z, a_2, 5);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 56 */
- switch(among_var) {
- case 0: { z->lb = mlimit; return 0; }
+ switch (among_var) { /* among, line 56 */
case 1:
{ int ret = slice_del(z); /* delete, line 57 */
if (ret < 0) return ret;
@@ -257,15 +249,15 @@ static int r_other_suffix(struct SN_env * z) {
}
break;
}
- z->lb = mlimit;
+ z->lb = mlimit1;
}
return 1;
}
-extern int swedish_ISO_8859_1_stem(struct SN_env * z) {
+extern int swedish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 66 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab0; /* call mark_regions, line 66 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 66 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
@@ -274,24 +266,24 @@ extern int swedish_ISO_8859_1_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 67 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 68 */
- { int ret = r_main_suffix(z);
- if (ret == 0) goto lab1; /* call main_suffix, line 68 */
+ { int ret = r_main_suffix(z); /* call main_suffix, line 68 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 69 */
- { int ret = r_consonant_pair(z);
- if (ret == 0) goto lab2; /* call consonant_pair, line 69 */
+ { int ret = r_consonant_pair(z); /* call consonant_pair, line 69 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 70 */
- { int ret = r_other_suffix(z);
- if (ret == 0) goto lab3; /* call other_suffix, line 70 */
+ { int ret = r_other_suffix(z); /* call other_suffix, line 70 */
+ if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_hungarian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c
similarity index 54%
rename from src/backend/snowball/libstemmer/stem_ISO_8859_1_hungarian.c
rename to src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c
index ff4b23e0605..ae088a32f75 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_hungarian.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c
@@ -1,12 +1,12 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
#ifdef __cplusplus
extern "C" {
#endif
-extern int hungarian_ISO_8859_1_stem(struct SN_env * z);
+extern int hungarian_ISO_8859_2_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif
@@ -29,8 +29,8 @@ extern "C" {
#endif
-extern struct SN_env * hungarian_ISO_8859_1_create_env(void);
-extern void hungarian_ISO_8859_1_close_env(struct SN_env * z);
+extern struct SN_env * hungarian_ISO_8859_2_create_env(void);
+extern void hungarian_ISO_8859_2_close_env(struct SN_env * z);
#ifdef __cplusplus
@@ -123,7 +123,7 @@ static const symbol s_3_1[2] = { 'e', 'l' };
static const struct among a_3[2] =
{
/* 0 */ { 2, s_3_0, -1, 1, 0},
-/* 1 */ { 2, s_3_1, -1, 2, 0}
+/* 1 */ { 2, s_3_1, -1, 1, 0}
};
static const symbol s_4_0[2] = { 'b', 'a' };
@@ -227,7 +227,7 @@ static const struct among a_5[3] =
{
/* 0 */ { 2, s_5_0, -1, 2, 0},
/* 1 */ { 2, s_5_1, -1, 1, 0},
-/* 2 */ { 6, s_5_2, -1, 3, 0}
+/* 2 */ { 6, s_5_2, -1, 2, 0}
};
static const symbol s_6_0[4] = { 's', 't', 'u', 'l' };
@@ -239,12 +239,12 @@ static const symbol s_6_5[5] = { 0xE9, 's', 't', 0xFC, 'l' };
static const struct among a_6[6] =
{
-/* 0 */ { 4, s_6_0, -1, 2, 0},
+/* 0 */ { 4, s_6_0, -1, 1, 0},
/* 1 */ { 5, s_6_1, 0, 1, 0},
-/* 2 */ { 5, s_6_2, 0, 3, 0},
-/* 3 */ { 4, s_6_3, -1, 2, 0},
+/* 2 */ { 5, s_6_2, 0, 2, 0},
+/* 3 */ { 4, s_6_3, -1, 1, 0},
/* 4 */ { 5, s_6_4, 3, 1, 0},
-/* 5 */ { 5, s_6_5, 3, 4, 0}
+/* 5 */ { 5, s_6_5, 3, 3, 0}
};
static const symbol s_7_0[1] = { 0xE1 };
@@ -253,7 +253,7 @@ static const symbol s_7_1[1] = { 0xE9 };
static const struct among a_7[2] =
{
/* 0 */ { 1, s_7_0, -1, 1, 0},
-/* 1 */ { 1, s_7_1, -1, 2, 0}
+/* 1 */ { 1, s_7_1, -1, 1, 0}
};
static const symbol s_8_0[1] = { 'k' };
@@ -266,10 +266,10 @@ static const symbol s_8_6[2] = { 0xF6, 'k' };
static const struct among a_8[7] =
{
-/* 0 */ { 1, s_8_0, -1, 7, 0},
-/* 1 */ { 2, s_8_1, 0, 4, 0},
-/* 2 */ { 2, s_8_2, 0, 6, 0},
-/* 3 */ { 2, s_8_3, 0, 5, 0},
+/* 0 */ { 1, s_8_0, -1, 3, 0},
+/* 1 */ { 2, s_8_1, 0, 3, 0},
+/* 2 */ { 2, s_8_2, 0, 3, 0},
+/* 3 */ { 2, s_8_3, 0, 3, 0},
/* 4 */ { 2, s_8_4, 0, 1, 0},
/* 5 */ { 2, s_8_5, 0, 2, 0},
/* 6 */ { 2, s_8_6, 0, 3, 0}
@@ -290,18 +290,18 @@ static const symbol s_9_11[2] = { 0xE9, 0xE9 };
static const struct among a_9[12] =
{
-/* 0 */ { 2, s_9_0, -1, 7, 0},
-/* 1 */ { 3, s_9_1, 0, 6, 0},
-/* 2 */ { 3, s_9_2, 0, 5, 0},
-/* 3 */ { 1, s_9_3, -1, 9, 0},
-/* 4 */ { 2, s_9_4, 3, 4, 0},
+/* 0 */ { 2, s_9_0, -1, 1, 0},
+/* 1 */ { 3, s_9_1, 0, 3, 0},
+/* 2 */ { 3, s_9_2, 0, 2, 0},
+/* 3 */ { 1, s_9_3, -1, 1, 0},
+/* 4 */ { 2, s_9_4, 3, 1, 0},
/* 5 */ { 3, s_9_5, 4, 1, 0},
/* 6 */ { 3, s_9_6, 4, 1, 0},
/* 7 */ { 3, s_9_7, 4, 1, 0},
/* 8 */ { 3, s_9_8, 4, 3, 0},
/* 9 */ { 3, s_9_9, 4, 2, 0},
/* 10 */ { 3, s_9_10, 4, 1, 0},
-/* 11 */ { 2, s_9_11, 3, 8, 0}
+/* 11 */ { 2, s_9_11, 3, 2, 0}
};
static const symbol s_10_0[1] = { 'a' };
@@ -338,37 +338,37 @@ static const symbol s_10_30[1] = { 0xE9 };
static const struct among a_10[31] =
{
-/* 0 */ { 1, s_10_0, -1, 18, 0},
-/* 1 */ { 2, s_10_1, 0, 17, 0},
-/* 2 */ { 1, s_10_2, -1, 16, 0},
-/* 3 */ { 2, s_10_3, 2, 13, 0},
-/* 4 */ { 2, s_10_4, 2, 13, 0},
-/* 5 */ { 2, s_10_5, 2, 13, 0},
-/* 6 */ { 2, s_10_6, 2, 14, 0},
-/* 7 */ { 2, s_10_7, 2, 15, 0},
-/* 8 */ { 2, s_10_8, 2, 13, 0},
-/* 9 */ { 1, s_10_9, -1, 18, 0},
-/* 10 */ { 2, s_10_10, 9, 17, 0},
-/* 11 */ { 2, s_10_11, -1, 4, 0},
+/* 0 */ { 1, s_10_0, -1, 1, 0},
+/* 1 */ { 2, s_10_1, 0, 1, 0},
+/* 2 */ { 1, s_10_2, -1, 1, 0},
+/* 3 */ { 2, s_10_3, 2, 1, 0},
+/* 4 */ { 2, s_10_4, 2, 1, 0},
+/* 5 */ { 2, s_10_5, 2, 1, 0},
+/* 6 */ { 2, s_10_6, 2, 2, 0},
+/* 7 */ { 2, s_10_7, 2, 3, 0},
+/* 8 */ { 2, s_10_8, 2, 1, 0},
+/* 9 */ { 1, s_10_9, -1, 1, 0},
+/* 10 */ { 2, s_10_10, 9, 1, 0},
+/* 11 */ { 2, s_10_11, -1, 1, 0},
/* 12 */ { 3, s_10_12, 11, 1, 0},
/* 13 */ { 3, s_10_13, 11, 2, 0},
/* 14 */ { 3, s_10_14, 11, 3, 0},
/* 15 */ { 3, s_10_15, 11, 1, 0},
-/* 16 */ { 2, s_10_16, -1, 8, 0},
-/* 17 */ { 3, s_10_17, 16, 7, 0},
-/* 18 */ { 4, s_10_18, 17, 5, 0},
-/* 19 */ { 2, s_10_19, -1, 8, 0},
-/* 20 */ { 3, s_10_20, 19, 7, 0},
-/* 21 */ { 4, s_10_21, 20, 6, 0},
-/* 22 */ { 1, s_10_22, -1, 12, 0},
-/* 23 */ { 2, s_10_23, 22, 9, 0},
-/* 24 */ { 2, s_10_24, 22, 9, 0},
-/* 25 */ { 2, s_10_25, 22, 9, 0},
-/* 26 */ { 2, s_10_26, 22, 10, 0},
-/* 27 */ { 2, s_10_27, 22, 11, 0},
-/* 28 */ { 1, s_10_28, -1, 18, 0},
-/* 29 */ { 1, s_10_29, -1, 19, 0},
-/* 30 */ { 1, s_10_30, -1, 20, 0}
+/* 16 */ { 2, s_10_16, -1, 1, 0},
+/* 17 */ { 3, s_10_17, 16, 1, 0},
+/* 18 */ { 4, s_10_18, 17, 2, 0},
+/* 19 */ { 2, s_10_19, -1, 1, 0},
+/* 20 */ { 3, s_10_20, 19, 1, 0},
+/* 21 */ { 4, s_10_21, 20, 3, 0},
+/* 22 */ { 1, s_10_22, -1, 1, 0},
+/* 23 */ { 2, s_10_23, 22, 1, 0},
+/* 24 */ { 2, s_10_24, 22, 1, 0},
+/* 25 */ { 2, s_10_25, 22, 1, 0},
+/* 26 */ { 2, s_10_26, 22, 2, 0},
+/* 27 */ { 2, s_10_27, 22, 3, 0},
+/* 28 */ { 1, s_10_28, -1, 1, 0},
+/* 29 */ { 1, s_10_29, -1, 2, 0},
+/* 30 */ { 1, s_10_30, -1, 3, 0}
};
static const symbol s_11_0[2] = { 'i', 'd' };
@@ -416,45 +416,45 @@ static const symbol s_11_41[3] = { 0xE9, 'i', 'm' };
static const struct among a_11[42] =
{
-/* 0 */ { 2, s_11_0, -1, 10, 0},
-/* 1 */ { 3, s_11_1, 0, 9, 0},
-/* 2 */ { 4, s_11_2, 1, 6, 0},
-/* 3 */ { 3, s_11_3, 0, 9, 0},
-/* 4 */ { 4, s_11_4, 3, 6, 0},
-/* 5 */ { 3, s_11_5, 0, 7, 0},
-/* 6 */ { 3, s_11_6, 0, 8, 0},
-/* 7 */ { 1, s_11_7, -1, 15, 0},
-/* 8 */ { 2, s_11_8, 7, 14, 0},
-/* 9 */ { 3, s_11_9, 8, 11, 0},
-/* 10 */ { 2, s_11_10, 7, 14, 0},
-/* 11 */ { 3, s_11_11, 10, 11, 0},
-/* 12 */ { 2, s_11_12, 7, 12, 0},
-/* 13 */ { 2, s_11_13, 7, 13, 0},
-/* 14 */ { 4, s_11_14, -1, 24, 0},
-/* 15 */ { 5, s_11_15, 14, 21, 0},
-/* 16 */ { 6, s_11_16, 15, 20, 0},
-/* 17 */ { 5, s_11_17, 14, 23, 0},
-/* 18 */ { 2, s_11_18, -1, 29, 0},
-/* 19 */ { 3, s_11_19, 18, 26, 0},
-/* 20 */ { 4, s_11_20, 19, 25, 0},
-/* 21 */ { 3, s_11_21, 18, 26, 0},
-/* 22 */ { 4, s_11_22, 21, 25, 0},
-/* 23 */ { 3, s_11_23, 18, 27, 0},
-/* 24 */ { 3, s_11_24, 18, 28, 0},
-/* 25 */ { 3, s_11_25, -1, 20, 0},
-/* 26 */ { 4, s_11_26, 25, 17, 0},
-/* 27 */ { 5, s_11_27, 26, 16, 0},
-/* 28 */ { 4, s_11_28, 25, 17, 0},
-/* 29 */ { 5, s_11_29, 28, 16, 0},
-/* 30 */ { 4, s_11_30, 25, 18, 0},
-/* 31 */ { 4, s_11_31, 25, 19, 0},
-/* 32 */ { 5, s_11_32, -1, 21, 0},
-/* 33 */ { 6, s_11_33, 32, 20, 0},
-/* 34 */ { 5, s_11_34, -1, 22, 0},
-/* 35 */ { 2, s_11_35, -1, 5, 0},
-/* 36 */ { 3, s_11_36, 35, 4, 0},
+/* 0 */ { 2, s_11_0, -1, 1, 0},
+/* 1 */ { 3, s_11_1, 0, 1, 0},
+/* 2 */ { 4, s_11_2, 1, 1, 0},
+/* 3 */ { 3, s_11_3, 0, 1, 0},
+/* 4 */ { 4, s_11_4, 3, 1, 0},
+/* 5 */ { 3, s_11_5, 0, 2, 0},
+/* 6 */ { 3, s_11_6, 0, 3, 0},
+/* 7 */ { 1, s_11_7, -1, 1, 0},
+/* 8 */ { 2, s_11_8, 7, 1, 0},
+/* 9 */ { 3, s_11_9, 8, 1, 0},
+/* 10 */ { 2, s_11_10, 7, 1, 0},
+/* 11 */ { 3, s_11_11, 10, 1, 0},
+/* 12 */ { 2, s_11_12, 7, 2, 0},
+/* 13 */ { 2, s_11_13, 7, 3, 0},
+/* 14 */ { 4, s_11_14, -1, 1, 0},
+/* 15 */ { 5, s_11_15, 14, 1, 0},
+/* 16 */ { 6, s_11_16, 15, 1, 0},
+/* 17 */ { 5, s_11_17, 14, 3, 0},
+/* 18 */ { 2, s_11_18, -1, 1, 0},
+/* 19 */ { 3, s_11_19, 18, 1, 0},
+/* 20 */ { 4, s_11_20, 19, 1, 0},
+/* 21 */ { 3, s_11_21, 18, 1, 0},
+/* 22 */ { 4, s_11_22, 21, 1, 0},
+/* 23 */ { 3, s_11_23, 18, 2, 0},
+/* 24 */ { 3, s_11_24, 18, 3, 0},
+/* 25 */ { 3, s_11_25, -1, 1, 0},
+/* 26 */ { 4, s_11_26, 25, 1, 0},
+/* 27 */ { 5, s_11_27, 26, 1, 0},
+/* 28 */ { 4, s_11_28, 25, 1, 0},
+/* 29 */ { 5, s_11_29, 28, 1, 0},
+/* 30 */ { 4, s_11_30, 25, 2, 0},
+/* 31 */ { 4, s_11_31, 25, 3, 0},
+/* 32 */ { 5, s_11_32, -1, 1, 0},
+/* 33 */ { 6, s_11_33, 32, 1, 0},
+/* 34 */ { 5, s_11_34, -1, 2, 0},
+/* 35 */ { 2, s_11_35, -1, 1, 0},
+/* 36 */ { 3, s_11_36, 35, 1, 0},
/* 37 */ { 4, s_11_37, 36, 1, 0},
-/* 38 */ { 3, s_11_38, 35, 4, 0},
+/* 38 */ { 3, s_11_38, 35, 1, 0},
/* 39 */ { 4, s_11_39, 38, 1, 0},
/* 40 */ { 3, s_11_40, 35, 2, 0},
/* 41 */ { 3, s_11_41, 35, 3, 0}
@@ -467,46 +467,24 @@ static const symbol s_1[] = { 'e' };
static const symbol s_2[] = { 'e' };
static const symbol s_3[] = { 'a' };
static const symbol s_4[] = { 'a' };
-static const symbol s_5[] = { 'a' };
-static const symbol s_6[] = { 'e' };
-static const symbol s_7[] = { 'a' };
+static const symbol s_5[] = { 'e' };
+static const symbol s_6[] = { 'a' };
+static const symbol s_7[] = { 'e' };
static const symbol s_8[] = { 'e' };
-static const symbol s_9[] = { 'e' };
+static const symbol s_9[] = { 'a' };
static const symbol s_10[] = { 'a' };
static const symbol s_11[] = { 'e' };
static const symbol s_12[] = { 'a' };
static const symbol s_13[] = { 'e' };
-static const symbol s_14[] = { 'a' };
-static const symbol s_15[] = { 'e' };
-static const symbol s_16[] = { 'a' };
-static const symbol s_17[] = { 'e' };
-static const symbol s_18[] = { 'a' };
-static const symbol s_19[] = { 'e' };
-static const symbol s_20[] = { 'a' };
-static const symbol s_21[] = { 'e' };
-static const symbol s_22[] = { 'a' };
-static const symbol s_23[] = { 'e' };
-static const symbol s_24[] = { 'a' };
-static const symbol s_25[] = { 'e' };
-static const symbol s_26[] = { 'a' };
-static const symbol s_27[] = { 'e' };
-static const symbol s_28[] = { 'a' };
-static const symbol s_29[] = { 'e' };
-static const symbol s_30[] = { 'a' };
-static const symbol s_31[] = { 'e' };
-static const symbol s_32[] = { 'a' };
-static const symbol s_33[] = { 'e' };
-static const symbol s_34[] = { 'a' };
-static const symbol s_35[] = { 'e' };
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
+static int r_mark_regions(struct SN_env * z) { /* forwardmode */
+ z->I[0] = z->l; /* $p1 = , line 46 */
{ int c1 = z->c; /* or, line 51 */
- if (in_grouping(z, g_v, 97, 252, 0)) goto lab1;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab1; /* grouping v, line 48 */
if (in_grouping(z, g_v, 97, 252, 1) < 0) goto lab1; /* goto */ /* non v, line 48 */
{ int c2 = z->c; /* or, line 49 */
- if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3;
- if (!(find_among(z, a_0, 8))) goto lab3; /* among, line 49 */
+ if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3; /* among, line 49 */
+ if (!(find_among(z, a_0, 8))) goto lab3;
goto lab2;
lab3:
z->c = c2;
@@ -518,7 +496,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab0;
lab1:
z->c = c1;
- if (out_grouping(z, g_v, 97, 252, 0)) return 0;
+ if (out_grouping(z, g_v, 97, 252, 0)) return 0; /* non v, line 53 */
{ /* gopast */ /* grouping v, line 53 */
int ret = out_grouping(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
@@ -530,24 +508,22 @@ lab0:
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 58 */
return 1;
}
-static int r_v_ending(struct SN_env * z) {
+static int r_v_ending(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 61 */
- if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0;
- among_var = find_among_b(z, a_1, 2); /* substring, line 61 */
+ if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0; /* substring, line 61 */
+ among_var = find_among_b(z, a_1, 2);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 61 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 61 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 61 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 61 */
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 62 */
if (ret < 0) return ret;
@@ -562,22 +538,22 @@ static int r_v_ending(struct SN_env * z) {
return 1;
}
-static int r_double(struct SN_env * z) {
- { int m_test = z->l - z->c; /* test, line 68 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- if (!(find_among_b(z, a_2, 23))) return 0; /* among, line 68 */
- z->c = z->l - m_test;
+static int r_double(struct SN_env * z) { /* backwardmode */
+ { int m_test1 = z->l - z->c; /* test, line 68 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 68 */
+ if (!(find_among_b(z, a_2, 23))) return 0;
+ z->c = z->l - m_test1;
}
return 1;
}
-static int r_undouble(struct SN_env * z) {
+static int r_undouble(struct SN_env * z) { /* backwardmode */
if (z->c <= z->lb) return 0;
z->c--; /* next, line 73 */
z->ket = z->c; /* [, line 73 */
- { int ret = z->c - 1;
+ { int ret = z->c - 1; /* hop, line 73 */
if (z->lb > ret || ret > z->l) return 0;
- z->c = ret; /* hop, line 73 */
+ z->c = ret;
}
z->bra = z->c; /* ], line 73 */
{ int ret = slice_del(z); /* delete, line 73 */
@@ -586,73 +562,53 @@ static int r_undouble(struct SN_env * z) {
return 1;
}
-static int r_instrum(struct SN_env * z) {
- int among_var;
+static int r_instrum(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 77 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
- among_var = find_among_b(z, a_3, 2); /* substring, line 77 */
- if (!(among_var)) return 0;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 77 */
+ if (!(find_among_b(z, a_3, 2))) return 0;
z->bra = z->c; /* ], line 77 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 77 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 77 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
- case 1:
- { int ret = r_double(z);
- if (ret == 0) return 0; /* call double, line 78 */
- if (ret < 0) return ret;
- }
- break;
- case 2:
- { int ret = r_double(z);
- if (ret == 0) return 0; /* call double, line 79 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = r_double(z); /* call double, line 78 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 81 */
if (ret < 0) return ret;
}
- { int ret = r_undouble(z);
- if (ret == 0) return 0; /* call undouble, line 82 */
- if (ret < 0) return ret;
+ { int ret = r_undouble(z); /* call undouble, line 82 */
+ if (ret <= 0) return ret;
}
return 1;
}
-static int r_case(struct SN_env * z) {
+static int r_case(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 87 */
if (!(find_among_b(z, a_4, 44))) return 0; /* substring, line 87 */
z->bra = z->c; /* ], line 87 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 87 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 87 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 111 */
if (ret < 0) return ret;
}
- { int ret = r_v_ending(z);
- if (ret == 0) return 0; /* call v_ending, line 112 */
- if (ret < 0) return ret;
+ { int ret = r_v_ending(z); /* call v_ending, line 112 */
+ if (ret <= 0) return ret;
}
return 1;
}
-static int r_case_special(struct SN_env * z) {
+static int r_case_special(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 116 */
- if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0;
- among_var = find_among_b(z, a_5, 3); /* substring, line 116 */
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0; /* substring, line 116 */
+ among_var = find_among_b(z, a_5, 3);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 116 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 116 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 116 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 116 */
case 1:
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 117 */
if (ret < 0) return ret;
@@ -663,45 +619,33 @@ static int r_case_special(struct SN_env * z) {
if (ret < 0) return ret;
}
break;
- case 3:
- { int ret = slice_from_s(z, 1, s_4); /* <-, line 119 */
- if (ret < 0) return ret;
- }
- break;
}
return 1;
}
-static int r_case_other(struct SN_env * z) {
+static int r_case_other(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 124 */
- if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0;
- among_var = find_among_b(z, a_6, 6); /* substring, line 124 */
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 124 */
+ among_var = find_among_b(z, a_6, 6);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 124 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 124 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 124 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 124 */
case 1:
{ int ret = slice_del(z); /* delete, line 125 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_del(z); /* delete, line 126 */
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 127 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 1, s_5); /* <-, line 127 */
- if (ret < 0) return ret;
- }
- break;
- case 4:
- { int ret = slice_from_s(z, 1, s_6); /* <-, line 128 */
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 128 */
if (ret < 0) return ret;
}
break;
@@ -709,62 +653,44 @@ static int r_case_other(struct SN_env * z) {
return 1;
}
-static int r_factive(struct SN_env * z) {
- int among_var;
+static int r_factive(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 133 */
- if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0;
- among_var = find_among_b(z, a_7, 2); /* substring, line 133 */
- if (!(among_var)) return 0;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0; /* substring, line 133 */
+ if (!(find_among_b(z, a_7, 2))) return 0;
z->bra = z->c; /* ], line 133 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 133 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 133 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
- case 1:
- { int ret = r_double(z);
- if (ret == 0) return 0; /* call double, line 134 */
- if (ret < 0) return ret;
- }
- break;
- case 2:
- { int ret = r_double(z);
- if (ret == 0) return 0; /* call double, line 135 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = r_double(z); /* call double, line 134 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 137 */
if (ret < 0) return ret;
}
- { int ret = r_undouble(z);
- if (ret == 0) return 0; /* call undouble, line 138 */
- if (ret < 0) return ret;
+ { int ret = r_undouble(z); /* call undouble, line 138 */
+ if (ret <= 0) return ret;
}
return 1;
}
-static int r_plural(struct SN_env * z) {
+static int r_plural(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 142 */
- if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0;
- among_var = find_among_b(z, a_8, 7); /* substring, line 142 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0; /* substring, line 142 */
+ among_var = find_among_b(z, a_8, 7);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 142 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 142 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 142 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 142 */
case 1:
- { int ret = slice_from_s(z, 1, s_7); /* <-, line 143 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 143 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_8); /* <-, line 144 */
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 144 */
if (ret < 0) return ret;
}
break;
@@ -773,85 +699,33 @@ static int r_plural(struct SN_env * z) {
if (ret < 0) return ret;
}
break;
- case 4:
- { int ret = slice_del(z); /* delete, line 146 */
- if (ret < 0) return ret;
- }
- break;
- case 5:
- { int ret = slice_del(z); /* delete, line 147 */
- if (ret < 0) return ret;
- }
- break;
- case 6:
- { int ret = slice_del(z); /* delete, line 148 */
- if (ret < 0) return ret;
- }
- break;
- case 7:
- { int ret = slice_del(z); /* delete, line 149 */
- if (ret < 0) return ret;
- }
- break;
}
return 1;
}
-static int r_owned(struct SN_env * z) {
+static int r_owned(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 154 */
- if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 233)) return 0;
- among_var = find_among_b(z, a_9, 12); /* substring, line 154 */
+ if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 233)) return 0; /* substring, line 154 */
+ among_var = find_among_b(z, a_9, 12);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 154 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 154 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 154 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 154 */
case 1:
{ int ret = slice_del(z); /* delete, line 155 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_9); /* <-, line 156 */
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 156 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 1, s_10); /* <-, line 157 */
- if (ret < 0) return ret;
- }
- break;
- case 4:
- { int ret = slice_del(z); /* delete, line 158 */
- if (ret < 0) return ret;
- }
- break;
- case 5:
- { int ret = slice_from_s(z, 1, s_11); /* <-, line 159 */
- if (ret < 0) return ret;
- }
- break;
- case 6:
- { int ret = slice_from_s(z, 1, s_12); /* <-, line 160 */
- if (ret < 0) return ret;
- }
- break;
- case 7:
- { int ret = slice_del(z); /* delete, line 161 */
- if (ret < 0) return ret;
- }
- break;
- case 8:
- { int ret = slice_from_s(z, 1, s_13); /* <-, line 162 */
- if (ret < 0) return ret;
- }
- break;
- case 9:
- { int ret = slice_del(z); /* delete, line 163 */
+ { int ret = slice_from_s(z, 1, s_9); /* <-, line 157 */
if (ret < 0) return ret;
}
break;
@@ -859,115 +733,28 @@ static int r_owned(struct SN_env * z) {
return 1;
}
-static int r_sing_owner(struct SN_env * z) {
+static int r_sing_owner(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 168 */
among_var = find_among_b(z, a_10, 31); /* substring, line 168 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 168 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 168 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 168 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 168 */
case 1:
{ int ret = slice_del(z); /* delete, line 169 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_14); /* <-, line 170 */
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 170 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 1, s_15); /* <-, line 171 */
- if (ret < 0) return ret;
- }
- break;
- case 4:
- { int ret = slice_del(z); /* delete, line 172 */
- if (ret < 0) return ret;
- }
- break;
- case 5:
- { int ret = slice_from_s(z, 1, s_16); /* <-, line 173 */
- if (ret < 0) return ret;
- }
- break;
- case 6:
- { int ret = slice_from_s(z, 1, s_17); /* <-, line 174 */
- if (ret < 0) return ret;
- }
- break;
- case 7:
- { int ret = slice_del(z); /* delete, line 175 */
- if (ret < 0) return ret;
- }
- break;
- case 8:
- { int ret = slice_del(z); /* delete, line 176 */
- if (ret < 0) return ret;
- }
- break;
- case 9:
- { int ret = slice_del(z); /* delete, line 177 */
- if (ret < 0) return ret;
- }
- break;
- case 10:
- { int ret = slice_from_s(z, 1, s_18); /* <-, line 178 */
- if (ret < 0) return ret;
- }
- break;
- case 11:
- { int ret = slice_from_s(z, 1, s_19); /* <-, line 179 */
- if (ret < 0) return ret;
- }
- break;
- case 12:
- { int ret = slice_del(z); /* delete, line 180 */
- if (ret < 0) return ret;
- }
- break;
- case 13:
- { int ret = slice_del(z); /* delete, line 181 */
- if (ret < 0) return ret;
- }
- break;
- case 14:
- { int ret = slice_from_s(z, 1, s_20); /* <-, line 182 */
- if (ret < 0) return ret;
- }
- break;
- case 15:
- { int ret = slice_from_s(z, 1, s_21); /* <-, line 183 */
- if (ret < 0) return ret;
- }
- break;
- case 16:
- { int ret = slice_del(z); /* delete, line 184 */
- if (ret < 0) return ret;
- }
- break;
- case 17:
- { int ret = slice_del(z); /* delete, line 185 */
- if (ret < 0) return ret;
- }
- break;
- case 18:
- { int ret = slice_del(z); /* delete, line 186 */
- if (ret < 0) return ret;
- }
- break;
- case 19:
- { int ret = slice_from_s(z, 1, s_22); /* <-, line 187 */
- if (ret < 0) return ret;
- }
- break;
- case 20:
- { int ret = slice_from_s(z, 1, s_23); /* <-, line 188 */
+ { int ret = slice_from_s(z, 1, s_11); /* <-, line 171 */
if (ret < 0) return ret;
}
break;
@@ -975,161 +762,29 @@ static int r_sing_owner(struct SN_env * z) {
return 1;
}
-static int r_plur_owner(struct SN_env * z) {
+static int r_plur_owner(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 193 */
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- among_var = find_among_b(z, a_11, 42); /* substring, line 193 */
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 193 */
+ among_var = find_among_b(z, a_11, 42);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 193 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 193 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 193 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 193 */
case 1:
{ int ret = slice_del(z); /* delete, line 194 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_24); /* <-, line 195 */
+ { int ret = slice_from_s(z, 1, s_12); /* <-, line 195 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 1, s_25); /* <-, line 196 */
- if (ret < 0) return ret;
- }
- break;
- case 4:
- { int ret = slice_del(z); /* delete, line 197 */
- if (ret < 0) return ret;
- }
- break;
- case 5:
- { int ret = slice_del(z); /* delete, line 198 */
- if (ret < 0) return ret;
- }
- break;
- case 6:
- { int ret = slice_del(z); /* delete, line 199 */
- if (ret < 0) return ret;
- }
- break;
- case 7:
- { int ret = slice_from_s(z, 1, s_26); /* <-, line 200 */
- if (ret < 0) return ret;
- }
- break;
- case 8:
- { int ret = slice_from_s(z, 1, s_27); /* <-, line 201 */
- if (ret < 0) return ret;
- }
- break;
- case 9:
- { int ret = slice_del(z); /* delete, line 202 */
- if (ret < 0) return ret;
- }
- break;
- case 10:
- { int ret = slice_del(z); /* delete, line 203 */
- if (ret < 0) return ret;
- }
- break;
- case 11:
- { int ret = slice_del(z); /* delete, line 204 */
- if (ret < 0) return ret;
- }
- break;
- case 12:
- { int ret = slice_from_s(z, 1, s_28); /* <-, line 205 */
- if (ret < 0) return ret;
- }
- break;
- case 13:
- { int ret = slice_from_s(z, 1, s_29); /* <-, line 206 */
- if (ret < 0) return ret;
- }
- break;
- case 14:
- { int ret = slice_del(z); /* delete, line 207 */
- if (ret < 0) return ret;
- }
- break;
- case 15:
- { int ret = slice_del(z); /* delete, line 208 */
- if (ret < 0) return ret;
- }
- break;
- case 16:
- { int ret = slice_del(z); /* delete, line 209 */
- if (ret < 0) return ret;
- }
- break;
- case 17:
- { int ret = slice_del(z); /* delete, line 210 */
- if (ret < 0) return ret;
- }
- break;
- case 18:
- { int ret = slice_from_s(z, 1, s_30); /* <-, line 211 */
- if (ret < 0) return ret;
- }
- break;
- case 19:
- { int ret = slice_from_s(z, 1, s_31); /* <-, line 212 */
- if (ret < 0) return ret;
- }
- break;
- case 20:
- { int ret = slice_del(z); /* delete, line 214 */
- if (ret < 0) return ret;
- }
- break;
- case 21:
- { int ret = slice_del(z); /* delete, line 215 */
- if (ret < 0) return ret;
- }
- break;
- case 22:
- { int ret = slice_from_s(z, 1, s_32); /* <-, line 216 */
- if (ret < 0) return ret;
- }
- break;
- case 23:
- { int ret = slice_from_s(z, 1, s_33); /* <-, line 217 */
- if (ret < 0) return ret;
- }
- break;
- case 24:
- { int ret = slice_del(z); /* delete, line 218 */
- if (ret < 0) return ret;
- }
- break;
- case 25:
- { int ret = slice_del(z); /* delete, line 219 */
- if (ret < 0) return ret;
- }
- break;
- case 26:
- { int ret = slice_del(z); /* delete, line 220 */
- if (ret < 0) return ret;
- }
- break;
- case 27:
- { int ret = slice_from_s(z, 1, s_34); /* <-, line 221 */
- if (ret < 0) return ret;
- }
- break;
- case 28:
- { int ret = slice_from_s(z, 1, s_35); /* <-, line 222 */
- if (ret < 0) return ret;
- }
- break;
- case 29:
- { int ret = slice_del(z); /* delete, line 223 */
+ { int ret = slice_from_s(z, 1, s_13); /* <-, line 196 */
if (ret < 0) return ret;
}
break;
@@ -1137,10 +792,10 @@ static int r_plur_owner(struct SN_env * z) {
return 1;
}
-extern int hungarian_ISO_8859_1_stem(struct SN_env * z) {
+extern int hungarian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 229 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab0; /* call mark_regions, line 229 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 229 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
@@ -1149,72 +804,72 @@ extern int hungarian_ISO_8859_1_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 230 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 231 */
- { int ret = r_instrum(z);
- if (ret == 0) goto lab1; /* call instrum, line 231 */
+ { int ret = r_instrum(z); /* call instrum, line 231 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 232 */
- { int ret = r_case(z);
- if (ret == 0) goto lab2; /* call case, line 232 */
+ { int ret = r_case(z); /* call case, line 232 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 233 */
- { int ret = r_case_special(z);
- if (ret == 0) goto lab3; /* call case_special, line 233 */
+ { int ret = r_case_special(z); /* call case_special, line 233 */
+ if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 234 */
- { int ret = r_case_other(z);
- if (ret == 0) goto lab4; /* call case_other, line 234 */
+ { int ret = r_case_other(z); /* call case_other, line 234 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
lab4:
z->c = z->l - m5;
}
{ int m6 = z->l - z->c; (void)m6; /* do, line 235 */
- { int ret = r_factive(z);
- if (ret == 0) goto lab5; /* call factive, line 235 */
+ { int ret = r_factive(z); /* call factive, line 235 */
+ if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
lab5:
z->c = z->l - m6;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 236 */
- { int ret = r_owned(z);
- if (ret == 0) goto lab6; /* call owned, line 236 */
+ { int ret = r_owned(z); /* call owned, line 236 */
+ if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
z->c = z->l - m7;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 237 */
- { int ret = r_sing_owner(z);
- if (ret == 0) goto lab7; /* call sing_owner, line 237 */
+ { int ret = r_sing_owner(z); /* call sing_owner, line 237 */
+ if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
z->c = z->l - m8;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 238 */
- { int ret = r_plur_owner(z);
- if (ret == 0) goto lab8; /* call plur_owner, line 238 */
+ { int ret = r_plur_owner(z); /* call plur_owner, line 238 */
+ if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
lab8:
z->c = z->l - m9;
}
{ int m10 = z->l - z->c; (void)m10; /* do, line 239 */
- { int ret = r_plural(z);
- if (ret == 0) goto lab9; /* call plural, line 239 */
+ { int ret = r_plural(z); /* call plural, line 239 */
+ if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
@@ -1224,7 +879,7 @@ extern int hungarian_ISO_8859_1_stem(struct SN_env * z) {
return 1;
}
-extern struct SN_env * hungarian_ISO_8859_1_create_env(void) { return SN_create_env(0, 1, 0); }
+extern struct SN_env * hungarian_ISO_8859_2_create_env(void) { return SN_create_env(0, 1, 0); }
-extern void hungarian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+extern void hungarian_ISO_8859_2_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c
index d5cc2bec3fc..a085e09efe5 100644
--- a/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -516,51 +516,49 @@ static const struct among a_5[5] =
static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 32 };
-static const symbol s_0[] = { 'u' };
-static const symbol s_1[] = { 'U' };
+static const symbol s_0[] = { 'U' };
+static const symbol s_1[] = { 'I' };
static const symbol s_2[] = { 'i' };
-static const symbol s_3[] = { 'I' };
-static const symbol s_4[] = { 'i' };
-static const symbol s_5[] = { 'u' };
-static const symbol s_6[] = { 'a' };
-static const symbol s_7[] = { 'e' };
+static const symbol s_3[] = { 'u' };
+static const symbol s_4[] = { 'a' };
+static const symbol s_5[] = { 'e' };
+static const symbol s_6[] = { 'i' };
+static const symbol s_7[] = { 'a', 'b' };
static const symbol s_8[] = { 'i' };
-static const symbol s_9[] = { 'a', 'b' };
-static const symbol s_10[] = { 'i' };
-static const symbol s_11[] = { 'a', 't' };
-static const symbol s_12[] = { 'a', 0xFE, 'i' };
-static const symbol s_13[] = { 'a', 'b', 'i', 'l' };
-static const symbol s_14[] = { 'i', 'b', 'i', 'l' };
-static const symbol s_15[] = { 'i', 'v' };
-static const symbol s_16[] = { 'i', 'c' };
-static const symbol s_17[] = { 'a', 't' };
-static const symbol s_18[] = { 'i', 't' };
-static const symbol s_19[] = { 0xFE };
-static const symbol s_20[] = { 't' };
-static const symbol s_21[] = { 'i', 's', 't' };
-static const symbol s_22[] = { 'u' };
+static const symbol s_9[] = { 'a', 't' };
+static const symbol s_10[] = { 'a', 0xFE, 'i' };
+static const symbol s_11[] = { 'a', 'b', 'i', 'l' };
+static const symbol s_12[] = { 'i', 'b', 'i', 'l' };
+static const symbol s_13[] = { 'i', 'v' };
+static const symbol s_14[] = { 'i', 'c' };
+static const symbol s_15[] = { 'a', 't' };
+static const symbol s_16[] = { 'i', 't' };
+static const symbol s_17[] = { 't' };
+static const symbol s_18[] = { 'i', 's', 't' };
-static int r_prelude(struct SN_env * z) {
+static int r_prelude(struct SN_env * z) { /* forwardmode */
while(1) { /* repeat, line 32 */
int c1 = z->c;
while(1) { /* goto, line 32 */
int c2 = z->c;
- if (in_grouping(z, g_v, 97, 238, 0)) goto lab1;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab1; /* grouping v, line 33 */
z->bra = z->c; /* [, line 33 */
{ int c3 = z->c; /* or, line 33 */
- if (!(eq_s(z, 1, s_0))) goto lab3;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab3; /* literal, line 33 */
+ z->c++;
z->ket = z->c; /* ], line 33 */
- if (in_grouping(z, g_v, 97, 238, 0)) goto lab3;
- { int ret = slice_from_s(z, 1, s_1); /* <-, line 33 */
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab3; /* grouping v, line 33 */
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 33 */
if (ret < 0) return ret;
}
goto lab2;
lab3:
z->c = c3;
- if (!(eq_s(z, 1, s_2))) goto lab1;
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab1; /* literal, line 34 */
+ z->c++;
z->ket = z->c; /* ], line 34 */
- if (in_grouping(z, g_v, 97, 238, 0)) goto lab1;
- { int ret = slice_from_s(z, 1, s_3); /* <-, line 34 */
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab1; /* grouping v, line 34 */
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 34 */
if (ret < 0) return ret;
}
}
@@ -580,15 +578,15 @@ static int r_prelude(struct SN_env * z) {
return 1;
}
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
- z->I[2] = z->l;
+static int r_mark_regions(struct SN_env * z) { /* forwardmode */
+ z->I[0] = z->l; /* $pV = , line 40 */
+ z->I[1] = z->l; /* $p1 = , line 41 */
+ z->I[2] = z->l; /* $p2 = , line 42 */
{ int c1 = z->c; /* do, line 44 */
{ int c2 = z->c; /* or, line 46 */
- if (in_grouping(z, g_v, 97, 238, 0)) goto lab2;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab2; /* grouping v, line 45 */
{ int c3 = z->c; /* or, line 45 */
- if (out_grouping(z, g_v, 97, 238, 0)) goto lab4;
+ if (out_grouping(z, g_v, 97, 238, 0)) goto lab4; /* non v, line 45 */
{ /* gopast */ /* grouping v, line 45 */
int ret = out_grouping(z, g_v, 97, 238, 1);
if (ret < 0) goto lab4;
@@ -597,7 +595,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab3;
lab4:
z->c = c3;
- if (in_grouping(z, g_v, 97, 238, 0)) goto lab2;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab2; /* grouping v, line 45 */
{ /* gopast */ /* non v, line 45 */
int ret = in_grouping(z, g_v, 97, 238, 1);
if (ret < 0) goto lab2;
@@ -608,9 +606,9 @@ static int r_mark_regions(struct SN_env * z) {
goto lab1;
lab2:
z->c = c2;
- if (out_grouping(z, g_v, 97, 238, 0)) goto lab0;
+ if (out_grouping(z, g_v, 97, 238, 0)) goto lab0; /* non v, line 47 */
{ int c4 = z->c; /* or, line 47 */
- if (out_grouping(z, g_v, 97, 238, 0)) goto lab6;
+ if (out_grouping(z, g_v, 97, 238, 0)) goto lab6; /* non v, line 47 */
{ /* gopast */ /* grouping v, line 47 */
int ret = out_grouping(z, g_v, 97, 238, 1);
if (ret < 0) goto lab6;
@@ -619,7 +617,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab5;
lab6:
z->c = c4;
- if (in_grouping(z, g_v, 97, 238, 0)) goto lab0;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab0; /* grouping v, line 47 */
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 47 */
}
@@ -660,24 +658,23 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
-static int r_postlude(struct SN_env * z) {
+static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 56 */
int c1 = z->c;
z->bra = z->c; /* [, line 58 */
- if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
- among_var = find_among(z, a_0, 3); /* substring, line 58 */
+ if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else /* substring, line 58 */
+ among_var = find_among(z, a_0, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 58 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 58 */
case 1:
- { int ret = slice_from_s(z, 1, s_4); /* <-, line 59 */
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 59 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_5); /* <-, line 60 */
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 60 */
if (ret < 0) return ret;
}
break;
@@ -694,72 +691,70 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
-static int r_RV(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_RV(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 68 */
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 69 */
return 1;
}
-static int r_R2(struct SN_env * z) {
- if (!(z->I[2] <= z->c)) return 0;
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 70 */
return 1;
}
-static int r_step_0(struct SN_env * z) {
+static int r_step_0(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 73 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- among_var = find_among_b(z, a_1, 16); /* substring, line 73 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 73 */
+ among_var = find_among_b(z, a_1, 16);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 73 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 73 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 73 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 73 */
case 1:
{ int ret = slice_del(z); /* delete, line 75 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_6); /* <-, line 77 */
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 1, s_7); /* <-, line 79 */
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = slice_from_s(z, 1, s_8); /* <-, line 81 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 81 */
if (ret < 0) return ret;
}
break;
case 5:
{ int m1 = z->l - z->c; (void)m1; /* not, line 83 */
- if (!(eq_s_b(z, 2, s_9))) goto lab0;
+ if (!(eq_s_b(z, 2, s_7))) goto lab0; /* literal, line 83 */
return 0;
lab0:
z->c = z->l - m1;
}
- { int ret = slice_from_s(z, 1, s_10); /* <-, line 83 */
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 83 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret = slice_from_s(z, 2, s_11); /* <-, line 85 */
+ { int ret = slice_from_s(z, 2, s_9); /* <-, line 85 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret = slice_from_s(z, 3, s_12); /* <-, line 87 */
+ { int ret = slice_from_s(z, 3, s_10); /* <-, line 87 */
if (ret < 0) return ret;
}
break;
@@ -767,63 +762,61 @@ static int r_step_0(struct SN_env * z) {
return 1;
}
-static int r_combo_suffix(struct SN_env * z) {
+static int r_combo_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
- { int m_test = z->l - z->c; /* test, line 91 */
+ { int m_test1 = z->l - z->c; /* test, line 91 */
z->ket = z->c; /* [, line 92 */
among_var = find_among_b(z, a_2, 46); /* substring, line 92 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 92 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 92 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 92 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 93 */
case 1:
- { int ret = slice_from_s(z, 4, s_13); /* <-, line 101 */
+ { int ret = slice_from_s(z, 4, s_11); /* <-, line 101 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 4, s_14); /* <-, line 104 */
+ { int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 2, s_15); /* <-, line 107 */
+ { int ret = slice_from_s(z, 2, s_13); /* <-, line 107 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = slice_from_s(z, 2, s_16); /* <-, line 113 */
+ { int ret = slice_from_s(z, 2, s_14); /* <-, line 113 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret = slice_from_s(z, 2, s_17); /* <-, line 118 */
+ { int ret = slice_from_s(z, 2, s_15); /* <-, line 118 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret = slice_from_s(z, 2, s_18); /* <-, line 122 */
+ { int ret = slice_from_s(z, 2, s_16); /* <-, line 122 */
if (ret < 0) return ret;
}
break;
}
z->B[0] = 1; /* set standard_suffix_removed, line 125 */
- z->c = z->l - m_test;
+ z->c = z->l - m_test1;
}
return 1;
}
-static int r_standard_suffix(struct SN_env * z) {
+static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->B[0] = 0; /* unset standard_suffix_removed, line 130 */
while(1) { /* repeat, line 131 */
int m1 = z->l - z->c; (void)m1;
- { int ret = r_combo_suffix(z);
- if (ret == 0) goto lab0; /* call combo_suffix, line 131 */
+ { int ret = r_combo_suffix(z); /* call combo_suffix, line 131 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
continue;
@@ -835,26 +828,25 @@ static int r_standard_suffix(struct SN_env * z) {
among_var = find_among_b(z, a_3, 62); /* substring, line 132 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 132 */
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 132 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 132 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 133 */
case 1:
{ int ret = slice_del(z); /* delete, line 149 */
if (ret < 0) return ret;
}
break;
case 2:
- if (!(eq_s_b(z, 1, s_19))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xFE) return 0; /* literal, line 152 */
+ z->c--;
z->bra = z->c; /* ], line 152 */
- { int ret = slice_from_s(z, 1, s_20); /* <-, line 152 */
+ { int ret = slice_from_s(z, 1, s_17); /* <-, line 152 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 3, s_21); /* <-, line 156 */
+ { int ret = slice_from_s(z, 3, s_18); /* <-, line 156 */
if (ret < 0) return ret;
}
break;
@@ -863,27 +855,25 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
-static int r_verb_suffix(struct SN_env * z) {
+static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 164 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 164 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 164 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 165 */
among_var = find_among_b(z, a_4, 94); /* substring, line 165 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 165 */
- switch(among_var) {
- case 0: { z->lb = mlimit; return 0; }
+ switch (among_var) { /* among, line 165 */
case 1:
{ int m2 = z->l - z->c; (void)m2; /* or, line 200 */
- if (out_grouping_b(z, g_v, 97, 238, 0)) goto lab1;
+ if (out_grouping_b(z, g_v, 97, 238, 0)) goto lab1; /* non v, line 200 */
goto lab0;
lab1:
z->c = z->l - m2;
- if (!(eq_s_b(z, 1, s_22))) { z->lb = mlimit; return 0; }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->lb = mlimit1; return 0; } /* literal, line 200 */
+ z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 200 */
@@ -896,98 +886,88 @@ static int r_verb_suffix(struct SN_env * z) {
}
break;
}
- z->lb = mlimit;
+ z->lb = mlimit1;
}
return 1;
}
-static int r_vowel_suffix(struct SN_env * z) {
- int among_var;
+static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 219 */
- among_var = find_among_b(z, a_5, 5); /* substring, line 219 */
- if (!(among_var)) return 0;
+ if (!(find_among_b(z, a_5, 5))) return 0; /* substring, line 219 */
z->bra = z->c; /* ], line 219 */
- { int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 219 */
+ { int ret = r_RV(z); /* call RV, line 219 */
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 220 */
if (ret < 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
- case 1:
- { int ret = slice_del(z); /* delete, line 220 */
- if (ret < 0) return ret;
- }
- break;
- }
return 1;
}
-extern int romanian_ISO_8859_2_stem(struct SN_env * z) {
+extern int romanian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 226 */
- { int ret = r_prelude(z);
- if (ret == 0) goto lab0; /* call prelude, line 226 */
+ { int ret = r_prelude(z); /* call prelude, line 226 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
- { int c2 = z->c; /* do, line 227 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab1; /* call mark_regions, line 227 */
- if (ret < 0) return ret;
- }
- lab1:
- z->c = c2;
+ /* do, line 227 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 227 */
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
}
+lab1:
z->lb = z->c; z->c = z->l; /* backwards, line 228 */
- { int m3 = z->l - z->c; (void)m3; /* do, line 229 */
- { int ret = r_step_0(z);
- if (ret == 0) goto lab2; /* call step_0, line 229 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 229 */
+ { int ret = r_step_0(z); /* call step_0, line 229 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m3;
+ z->c = z->l - m2;
}
- { int m4 = z->l - z->c; (void)m4; /* do, line 230 */
- { int ret = r_standard_suffix(z);
- if (ret == 0) goto lab3; /* call standard_suffix, line 230 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 230 */
+ { int ret = r_standard_suffix(z); /* call standard_suffix, line 230 */
+ if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
- z->c = z->l - m4;
+ z->c = z->l - m3;
}
- { int m5 = z->l - z->c; (void)m5; /* do, line 231 */
- { int m6 = z->l - z->c; (void)m6; /* or, line 231 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 231 */
+ { int m5 = z->l - z->c; (void)m5; /* or, line 231 */
if (!(z->B[0])) goto lab6; /* Boolean test standard_suffix_removed, line 231 */
goto lab5;
lab6:
- z->c = z->l - m6;
- { int ret = r_verb_suffix(z);
- if (ret == 0) goto lab4; /* call verb_suffix, line 231 */
+ z->c = z->l - m5;
+ { int ret = r_verb_suffix(z); /* call verb_suffix, line 231 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
lab4:
- z->c = z->l - m5;
+ z->c = z->l - m4;
}
- { int m7 = z->l - z->c; (void)m7; /* do, line 232 */
- { int ret = r_vowel_suffix(z);
- if (ret == 0) goto lab7; /* call vowel_suffix, line 232 */
+ { int m6 = z->l - z->c; (void)m6; /* do, line 232 */
+ { int ret = r_vowel_suffix(z); /* call vowel_suffix, line 232 */
+ if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
- z->c = z->l - m7;
+ z->c = z->l - m6;
}
z->c = z->lb;
- { int c8 = z->c; /* do, line 234 */
- { int ret = r_postlude(z);
- if (ret == 0) goto lab8; /* call postlude, line 234 */
+ { int c7 = z->c; /* do, line 234 */
+ { int ret = r_postlude(z); /* call postlude, line 234 */
+ if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
lab8:
- z->c = c8;
+ z->c = c7;
}
return 1;
}
diff --git a/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c b/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c
index be7feb752ee..fea26a66cf7 100644
--- a/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c
+++ b/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -340,20 +340,11 @@ static const struct among a_7[4] =
static const unsigned char g_v[] = { 35, 130, 34, 18 };
-static const symbol s_0[] = { 0xC1 };
-static const symbol s_1[] = { 0xD1 };
-static const symbol s_2[] = { 0xC1 };
-static const symbol s_3[] = { 0xD1 };
-static const symbol s_4[] = { 0xC1 };
-static const symbol s_5[] = { 0xD1 };
-static const symbol s_6[] = { 0xCE };
-static const symbol s_7[] = { 0xCE };
-static const symbol s_8[] = { 0xCE };
-static const symbol s_9[] = { 0xC9 };
+static const symbol s_0[] = { 0xC5 };
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
+static int r_mark_regions(struct SN_env * z) { /* forwardmode */
+ z->I[0] = z->l; /* $pV = , line 61 */
+ z->I[1] = z->l; /* $p2 = , line 62 */
{ int c1 = z->c; /* do, line 63 */
{ /* gopast */ /* grouping v, line 64 */
int ret = out_grouping(z, g_v, 192, 220, 1);
@@ -383,27 +374,28 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
-static int r_R2(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 71 */
return 1;
}
-static int r_perfective_gerund(struct SN_env * z) {
+static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 74 */
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- among_var = find_among_b(z, a_0, 9); /* substring, line 74 */
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 74 */
+ among_var = find_among_b(z, a_0, 9);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 74 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 74 */
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 78 */
- if (!(eq_s_b(z, 1, s_0))) goto lab1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; /* literal, line 78 */
+ z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
- if (!(eq_s_b(z, 1, s_1))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; /* literal, line 78 */
+ z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 78 */
@@ -419,45 +411,38 @@ static int r_perfective_gerund(struct SN_env * z) {
return 1;
}
-static int r_adjective(struct SN_env * z) {
- int among_var;
+static int r_adjective(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 90 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- among_var = find_among_b(z, a_1, 26); /* substring, line 90 */
- if (!(among_var)) return 0;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 90 */
+ if (!(find_among_b(z, a_1, 26))) return 0;
z->bra = z->c; /* ], line 90 */
- switch(among_var) {
- case 0: return 0;
- case 1:
- { int ret = slice_del(z); /* delete, line 99 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = slice_del(z); /* delete, line 99 */
+ if (ret < 0) return ret;
}
return 1;
}
-static int r_adjectival(struct SN_env * z) {
+static int r_adjectival(struct SN_env * z) { /* backwardmode */
int among_var;
- { int ret = r_adjective(z);
- if (ret == 0) return 0; /* call adjective, line 104 */
- if (ret < 0) return ret;
+ { int ret = r_adjective(z); /* call adjective, line 104 */
+ if (ret <= 0) return ret;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
+ { int m1 = z->l - z->c; (void)m1; /* try, line 111 */
z->ket = z->c; /* [, line 112 */
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab0; }
- among_var = find_among_b(z, a_2, 8); /* substring, line 112 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; } /* substring, line 112 */
+ among_var = find_among_b(z, a_2, 8);
+ if (!(among_var)) { z->c = z->l - m1; goto lab0; }
z->bra = z->c; /* ], line 112 */
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab0; }
+ switch (among_var) { /* among, line 112 */
case 1:
- { int m1 = z->l - z->c; (void)m1; /* or, line 117 */
- if (!(eq_s_b(z, 1, s_2))) goto lab2;
+ { int m2 = z->l - z->c; (void)m2; /* or, line 117 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab2; /* literal, line 117 */
+ z->c--;
goto lab1;
lab2:
- z->c = z->l - m1;
- if (!(eq_s_b(z, 1, s_3))) { z->c = z->l - m_keep; goto lab0; }
+ z->c = z->l - m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) { z->c = z->l - m1; goto lab0; } /* literal, line 117 */
+ z->c--;
}
lab1:
{ int ret = slice_del(z); /* delete, line 117 */
@@ -476,40 +461,34 @@ static int r_adjectival(struct SN_env * z) {
return 1;
}
-static int r_reflexive(struct SN_env * z) {
- int among_var;
+static int r_reflexive(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 131 */
- if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0;
- among_var = find_among_b(z, a_3, 2); /* substring, line 131 */
- if (!(among_var)) return 0;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0; /* substring, line 131 */
+ if (!(find_among_b(z, a_3, 2))) return 0;
z->bra = z->c; /* ], line 131 */
- switch(among_var) {
- case 0: return 0;
- case 1:
- { int ret = slice_del(z); /* delete, line 134 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = slice_del(z); /* delete, line 134 */
+ if (ret < 0) return ret;
}
return 1;
}
-static int r_verb(struct SN_env * z) {
+static int r_verb(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 139 */
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- among_var = find_among_b(z, a_4, 46); /* substring, line 139 */
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 139 */
+ among_var = find_among_b(z, a_4, 46);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 139 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 139 */
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 145 */
- if (!(eq_s_b(z, 1, s_4))) goto lab1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; /* literal, line 145 */
+ z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
- if (!(eq_s_b(z, 1, s_5))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; /* literal, line 145 */
+ z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 145 */
@@ -525,69 +504,56 @@ static int r_verb(struct SN_env * z) {
return 1;
}
-static int r_noun(struct SN_env * z) {
- int among_var;
+static int r_noun(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 162 */
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- among_var = find_among_b(z, a_5, 36); /* substring, line 162 */
- if (!(among_var)) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 162 */
+ if (!(find_among_b(z, a_5, 36))) return 0;
z->bra = z->c; /* ], line 162 */
- switch(among_var) {
- case 0: return 0;
- case 1:
- { int ret = slice_del(z); /* delete, line 169 */
- if (ret < 0) return ret;
- }
- break;
- }
- return 1;
-}
-
-static int r_derivational(struct SN_env * z) {
- int among_var;
- z->ket = z->c; /* [, line 178 */
- if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0;
- among_var = find_among_b(z, a_6, 2); /* substring, line 178 */
- if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 178 */
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 178 */
+ { int ret = slice_del(z); /* delete, line 169 */
if (ret < 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
- case 1:
- { int ret = slice_del(z); /* delete, line 181 */
- if (ret < 0) return ret;
- }
- break;
+ return 1;
+}
+
+static int r_derivational(struct SN_env * z) { /* backwardmode */
+ z->ket = z->c; /* [, line 178 */
+ if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0; /* substring, line 178 */
+ if (!(find_among_b(z, a_6, 2))) return 0;
+ z->bra = z->c; /* ], line 178 */
+ { int ret = r_R2(z); /* call R2, line 178 */
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 181 */
+ if (ret < 0) return ret;
}
return 1;
}
-static int r_tidy_up(struct SN_env * z) {
+static int r_tidy_up(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 186 */
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
- among_var = find_among_b(z, a_7, 4); /* substring, line 186 */
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 186 */
+ among_var = find_among_b(z, a_7, 4);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 186 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 186 */
case 1:
{ int ret = slice_del(z); /* delete, line 190 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 191 */
- if (!(eq_s_b(z, 1, s_6))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 191 */
+ z->c--;
z->bra = z->c; /* ], line 191 */
- if (!(eq_s_b(z, 1, s_7))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 191 */
+ z->c--;
{ int ret = slice_del(z); /* delete, line 191 */
if (ret < 0) return ret;
}
break;
case 2:
- if (!(eq_s_b(z, 1, s_8))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 194 */
+ z->c--;
{ int ret = slice_del(z); /* delete, line 194 */
if (ret < 0) return ret;
}
@@ -601,94 +567,117 @@ static int r_tidy_up(struct SN_env * z) {
return 1;
}
-extern int russian_KOI8_R_stem(struct SN_env * z) {
- { int c1 = z->c; /* do, line 203 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab0; /* call mark_regions, line 203 */
- if (ret < 0) return ret;
+extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */
+ { int c1 = z->c; /* do, line 205 */
+ while(1) { /* repeat, line 205 */
+ int c2 = z->c;
+ while(1) { /* goto, line 205 */
+ int c3 = z->c;
+ z->bra = z->c; /* [, line 205 */
+ if (z->c == z->l || z->p[z->c] != 0xA3) goto lab2; /* literal, line 205 */
+ z->c++;
+ z->ket = z->c; /* ], line 205 */
+ z->c = c3;
+ break;
+ lab2:
+ z->c = c3;
+ if (z->c >= z->l) goto lab1;
+ z->c++; /* goto, line 205 */
+ }
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 205 */
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab1:
+ z->c = c2;
+ break;
}
- lab0:
z->c = c1;
}
- z->lb = z->c; z->c = z->l; /* backwards, line 204 */
+ /* do, line 207 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 207 */
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+lab3:
+ z->lb = z->c; z->c = z->l; /* backwards, line 208 */
- { int mlimit; /* setlimit, line 204 */
- int m2 = z->l - z->c; (void)m2;
+
+ { int mlimit4; /* setlimit, line 208 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 204 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m2;
- { int m3 = z->l - z->c; (void)m3; /* do, line 205 */
- { int m4 = z->l - z->c; (void)m4; /* or, line 206 */
- { int ret = r_perfective_gerund(z);
- if (ret == 0) goto lab3; /* call perfective_gerund, line 206 */
+ mlimit4 = z->lb; z->lb = z->I[0];
+ { int m5 = z->l - z->c; (void)m5; /* do, line 209 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 210 */
+ { int ret = r_perfective_gerund(z); /* call perfective_gerund, line 210 */
+ if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
- goto lab2;
- lab3:
- z->c = z->l - m4;
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 207 */
- { int ret = r_reflexive(z);
- if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call reflexive, line 207 */
+ goto lab5;
+ lab6:
+ z->c = z->l - m6;
+ { int m7 = z->l - z->c; (void)m7; /* try, line 211 */
+ { int ret = r_reflexive(z); /* call reflexive, line 211 */
+ if (ret == 0) { z->c = z->l - m7; goto lab7; }
if (ret < 0) return ret;
}
- lab4:
+ lab7:
;
}
- { int m5 = z->l - z->c; (void)m5; /* or, line 208 */
- { int ret = r_adjectival(z);
- if (ret == 0) goto lab6; /* call adjectival, line 208 */
+ { int m8 = z->l - z->c; (void)m8; /* or, line 212 */
+ { int ret = r_adjectival(z); /* call adjectival, line 212 */
+ if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
- goto lab5;
- lab6:
- z->c = z->l - m5;
- { int ret = r_verb(z);
- if (ret == 0) goto lab7; /* call verb, line 208 */
+ goto lab8;
+ lab9:
+ z->c = z->l - m8;
+ { int ret = r_verb(z); /* call verb, line 212 */
+ if (ret == 0) goto lab10;
if (ret < 0) return ret;
}
- goto lab5;
- lab7:
- z->c = z->l - m5;
- { int ret = r_noun(z);
- if (ret == 0) goto lab1; /* call noun, line 208 */
+ goto lab8;
+ lab10:
+ z->c = z->l - m8;
+ { int ret = r_noun(z); /* call noun, line 212 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
- lab5:
+ lab8:
;
}
- lab2:
- lab1:
- z->c = z->l - m3;
+ lab5:
+ lab4:
+ z->c = z->l - m5;
}
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 211 */
- z->ket = z->c; /* [, line 211 */
- if (!(eq_s_b(z, 1, s_9))) { z->c = z->l - m_keep; goto lab8; }
- z->bra = z->c; /* ], line 211 */
- { int ret = slice_del(z); /* delete, line 211 */
+ { int m9 = z->l - z->c; (void)m9; /* try, line 215 */
+ z->ket = z->c; /* [, line 215 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xC9) { z->c = z->l - m9; goto lab11; } /* literal, line 215 */
+ z->c--;
+ z->bra = z->c; /* ], line 215 */
+ { int ret = slice_del(z); /* delete, line 215 */
if (ret < 0) return ret;
}
- lab8:
+ lab11:
;
}
- { int m6 = z->l - z->c; (void)m6; /* do, line 214 */
- { int ret = r_derivational(z);
- if (ret == 0) goto lab9; /* call derivational, line 214 */
+ { int m10 = z->l - z->c; (void)m10; /* do, line 218 */
+ { int ret = r_derivational(z); /* call derivational, line 218 */
+ if (ret == 0) goto lab12;
if (ret < 0) return ret;
}
- lab9:
- z->c = z->l - m6;
+ lab12:
+ z->c = z->l - m10;
}
- { int m7 = z->l - z->c; (void)m7; /* do, line 215 */
- { int ret = r_tidy_up(z);
- if (ret == 0) goto lab10; /* call tidy_up, line 215 */
+ { int m11 = z->l - z->c; (void)m11; /* do, line 219 */
+ { int ret = r_tidy_up(z); /* call tidy_up, line 219 */
+ if (ret == 0) goto lab13;
if (ret < 0) return ret;
}
- lab10:
- z->c = z->l - m7;
+ lab13:
+ z->c = z->l - m11;
}
- z->lb = mlimit;
+ z->lb = mlimit4;
}
z->c = z->lb;
return 1;
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c b/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c
new file mode 100644
index 00000000000..30bf1d99642
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c
@@ -0,0 +1,1683 @@
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int arabic_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_Checks1(struct SN_env * z);
+static int r_Normalize_pre(struct SN_env * z);
+static int r_Normalize_post(struct SN_env * z);
+static int r_Suffix_Verb_Step2c(struct SN_env * z);
+static int r_Suffix_Verb_Step2b(struct SN_env * z);
+static int r_Suffix_Verb_Step2a(struct SN_env * z);
+static int r_Suffix_Verb_Step1(struct SN_env * z);
+static int r_Suffix_Noun_Step3(struct SN_env * z);
+static int r_Suffix_Noun_Step2c2(struct SN_env * z);
+static int r_Suffix_Noun_Step2c1(struct SN_env * z);
+static int r_Suffix_Noun_Step2b(struct SN_env * z);
+static int r_Suffix_Noun_Step2a(struct SN_env * z);
+static int r_Suffix_Noun_Step1b(struct SN_env * z);
+static int r_Suffix_Noun_Step1a(struct SN_env * z);
+static int r_Suffix_All_alef_maqsura(struct SN_env * z);
+static int r_Prefix_Step4_Verb(struct SN_env * z);
+static int r_Prefix_Step3_Verb(struct SN_env * z);
+static int r_Prefix_Step3b_Noun(struct SN_env * z);
+static int r_Prefix_Step3a_Noun(struct SN_env * z);
+static int r_Prefix_Step2(struct SN_env * z);
+static int r_Prefix_Step1(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * arabic_UTF_8_create_env(void);
+extern void arabic_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 0xD9, 0x80 };
+static const symbol s_0_1[2] = { 0xD9, 0x8B };
+static const symbol s_0_2[2] = { 0xD9, 0x8C };
+static const symbol s_0_3[2] = { 0xD9, 0x8D };
+static const symbol s_0_4[2] = { 0xD9, 0x8E };
+static const symbol s_0_5[2] = { 0xD9, 0x8F };
+static const symbol s_0_6[2] = { 0xD9, 0x90 };
+static const symbol s_0_7[2] = { 0xD9, 0x91 };
+static const symbol s_0_8[2] = { 0xD9, 0x92 };
+static const symbol s_0_9[2] = { 0xD9, 0xA0 };
+static const symbol s_0_10[2] = { 0xD9, 0xA1 };
+static const symbol s_0_11[2] = { 0xD9, 0xA2 };
+static const symbol s_0_12[2] = { 0xD9, 0xA3 };
+static const symbol s_0_13[2] = { 0xD9, 0xA4 };
+static const symbol s_0_14[2] = { 0xD9, 0xA5 };
+static const symbol s_0_15[2] = { 0xD9, 0xA6 };
+static const symbol s_0_16[2] = { 0xD9, 0xA7 };
+static const symbol s_0_17[2] = { 0xD9, 0xA8 };
+static const symbol s_0_18[2] = { 0xD9, 0xA9 };
+static const symbol s_0_19[3] = { 0xEF, 0xBA, 0x80 };
+static const symbol s_0_20[3] = { 0xEF, 0xBA, 0x81 };
+static const symbol s_0_21[3] = { 0xEF, 0xBA, 0x82 };
+static const symbol s_0_22[3] = { 0xEF, 0xBA, 0x83 };
+static const symbol s_0_23[3] = { 0xEF, 0xBA, 0x84 };
+static const symbol s_0_24[3] = { 0xEF, 0xBA, 0x85 };
+static const symbol s_0_25[3] = { 0xEF, 0xBA, 0x86 };
+static const symbol s_0_26[3] = { 0xEF, 0xBA, 0x87 };
+static const symbol s_0_27[3] = { 0xEF, 0xBA, 0x88 };
+static const symbol s_0_28[3] = { 0xEF, 0xBA, 0x89 };
+static const symbol s_0_29[3] = { 0xEF, 0xBA, 0x8A };
+static const symbol s_0_30[3] = { 0xEF, 0xBA, 0x8B };
+static const symbol s_0_31[3] = { 0xEF, 0xBA, 0x8C };
+static const symbol s_0_32[3] = { 0xEF, 0xBA, 0x8D };
+static const symbol s_0_33[3] = { 0xEF, 0xBA, 0x8E };
+static const symbol s_0_34[3] = { 0xEF, 0xBA, 0x8F };
+static const symbol s_0_35[3] = { 0xEF, 0xBA, 0x90 };
+static const symbol s_0_36[3] = { 0xEF, 0xBA, 0x91 };
+static const symbol s_0_37[3] = { 0xEF, 0xBA, 0x92 };
+static const symbol s_0_38[3] = { 0xEF, 0xBA, 0x93 };
+static const symbol s_0_39[3] = { 0xEF, 0xBA, 0x94 };
+static const symbol s_0_40[3] = { 0xEF, 0xBA, 0x95 };
+static const symbol s_0_41[3] = { 0xEF, 0xBA, 0x96 };
+static const symbol s_0_42[3] = { 0xEF, 0xBA, 0x97 };
+static const symbol s_0_43[3] = { 0xEF, 0xBA, 0x98 };
+static const symbol s_0_44[3] = { 0xEF, 0xBA, 0x99 };
+static const symbol s_0_45[3] = { 0xEF, 0xBA, 0x9A };
+static const symbol s_0_46[3] = { 0xEF, 0xBA, 0x9B };
+static const symbol s_0_47[3] = { 0xEF, 0xBA, 0x9C };
+static const symbol s_0_48[3] = { 0xEF, 0xBA, 0x9D };
+static const symbol s_0_49[3] = { 0xEF, 0xBA, 0x9E };
+static const symbol s_0_50[3] = { 0xEF, 0xBA, 0x9F };
+static const symbol s_0_51[3] = { 0xEF, 0xBA, 0xA0 };
+static const symbol s_0_52[3] = { 0xEF, 0xBA, 0xA1 };
+static const symbol s_0_53[3] = { 0xEF, 0xBA, 0xA2 };
+static const symbol s_0_54[3] = { 0xEF, 0xBA, 0xA3 };
+static const symbol s_0_55[3] = { 0xEF, 0xBA, 0xA4 };
+static const symbol s_0_56[3] = { 0xEF, 0xBA, 0xA5 };
+static const symbol s_0_57[3] = { 0xEF, 0xBA, 0xA6 };
+static const symbol s_0_58[3] = { 0xEF, 0xBA, 0xA7 };
+static const symbol s_0_59[3] = { 0xEF, 0xBA, 0xA8 };
+static const symbol s_0_60[3] = { 0xEF, 0xBA, 0xA9 };
+static const symbol s_0_61[3] = { 0xEF, 0xBA, 0xAA };
+static const symbol s_0_62[3] = { 0xEF, 0xBA, 0xAB };
+static const symbol s_0_63[3] = { 0xEF, 0xBA, 0xAC };
+static const symbol s_0_64[3] = { 0xEF, 0xBA, 0xAD };
+static const symbol s_0_65[3] = { 0xEF, 0xBA, 0xAE };
+static const symbol s_0_66[3] = { 0xEF, 0xBA, 0xAF };
+static const symbol s_0_67[3] = { 0xEF, 0xBA, 0xB0 };
+static const symbol s_0_68[3] = { 0xEF, 0xBA, 0xB1 };
+static const symbol s_0_69[3] = { 0xEF, 0xBA, 0xB2 };
+static const symbol s_0_70[3] = { 0xEF, 0xBA, 0xB3 };
+static const symbol s_0_71[3] = { 0xEF, 0xBA, 0xB4 };
+static const symbol s_0_72[3] = { 0xEF, 0xBA, 0xB5 };
+static const symbol s_0_73[3] = { 0xEF, 0xBA, 0xB6 };
+static const symbol s_0_74[3] = { 0xEF, 0xBA, 0xB7 };
+static const symbol s_0_75[3] = { 0xEF, 0xBA, 0xB8 };
+static const symbol s_0_76[3] = { 0xEF, 0xBA, 0xB9 };
+static const symbol s_0_77[3] = { 0xEF, 0xBA, 0xBA };
+static const symbol s_0_78[3] = { 0xEF, 0xBA, 0xBB };
+static const symbol s_0_79[3] = { 0xEF, 0xBA, 0xBC };
+static const symbol s_0_80[3] = { 0xEF, 0xBA, 0xBD };
+static const symbol s_0_81[3] = { 0xEF, 0xBA, 0xBE };
+static const symbol s_0_82[3] = { 0xEF, 0xBA, 0xBF };
+static const symbol s_0_83[3] = { 0xEF, 0xBB, 0x80 };
+static const symbol s_0_84[3] = { 0xEF, 0xBB, 0x81 };
+static const symbol s_0_85[3] = { 0xEF, 0xBB, 0x82 };
+static const symbol s_0_86[3] = { 0xEF, 0xBB, 0x83 };
+static const symbol s_0_87[3] = { 0xEF, 0xBB, 0x84 };
+static const symbol s_0_88[3] = { 0xEF, 0xBB, 0x85 };
+static const symbol s_0_89[3] = { 0xEF, 0xBB, 0x86 };
+static const symbol s_0_90[3] = { 0xEF, 0xBB, 0x87 };
+static const symbol s_0_91[3] = { 0xEF, 0xBB, 0x88 };
+static const symbol s_0_92[3] = { 0xEF, 0xBB, 0x89 };
+static const symbol s_0_93[3] = { 0xEF, 0xBB, 0x8A };
+static const symbol s_0_94[3] = { 0xEF, 0xBB, 0x8B };
+static const symbol s_0_95[3] = { 0xEF, 0xBB, 0x8C };
+static const symbol s_0_96[3] = { 0xEF, 0xBB, 0x8D };
+static const symbol s_0_97[3] = { 0xEF, 0xBB, 0x8E };
+static const symbol s_0_98[3] = { 0xEF, 0xBB, 0x8F };
+static const symbol s_0_99[3] = { 0xEF, 0xBB, 0x90 };
+static const symbol s_0_100[3] = { 0xEF, 0xBB, 0x91 };
+static const symbol s_0_101[3] = { 0xEF, 0xBB, 0x92 };
+static const symbol s_0_102[3] = { 0xEF, 0xBB, 0x93 };
+static const symbol s_0_103[3] = { 0xEF, 0xBB, 0x94 };
+static const symbol s_0_104[3] = { 0xEF, 0xBB, 0x95 };
+static const symbol s_0_105[3] = { 0xEF, 0xBB, 0x96 };
+static const symbol s_0_106[3] = { 0xEF, 0xBB, 0x97 };
+static const symbol s_0_107[3] = { 0xEF, 0xBB, 0x98 };
+static const symbol s_0_108[3] = { 0xEF, 0xBB, 0x99 };
+static const symbol s_0_109[3] = { 0xEF, 0xBB, 0x9A };
+static const symbol s_0_110[3] = { 0xEF, 0xBB, 0x9B };
+static const symbol s_0_111[3] = { 0xEF, 0xBB, 0x9C };
+static const symbol s_0_112[3] = { 0xEF, 0xBB, 0x9D };
+static const symbol s_0_113[3] = { 0xEF, 0xBB, 0x9E };
+static const symbol s_0_114[3] = { 0xEF, 0xBB, 0x9F };
+static const symbol s_0_115[3] = { 0xEF, 0xBB, 0xA0 };
+static const symbol s_0_116[3] = { 0xEF, 0xBB, 0xA1 };
+static const symbol s_0_117[3] = { 0xEF, 0xBB, 0xA2 };
+static const symbol s_0_118[3] = { 0xEF, 0xBB, 0xA3 };
+static const symbol s_0_119[3] = { 0xEF, 0xBB, 0xA4 };
+static const symbol s_0_120[3] = { 0xEF, 0xBB, 0xA5 };
+static const symbol s_0_121[3] = { 0xEF, 0xBB, 0xA6 };
+static const symbol s_0_122[3] = { 0xEF, 0xBB, 0xA7 };
+static const symbol s_0_123[3] = { 0xEF, 0xBB, 0xA8 };
+static const symbol s_0_124[3] = { 0xEF, 0xBB, 0xA9 };
+static const symbol s_0_125[3] = { 0xEF, 0xBB, 0xAA };
+static const symbol s_0_126[3] = { 0xEF, 0xBB, 0xAB };
+static const symbol s_0_127[3] = { 0xEF, 0xBB, 0xAC };
+static const symbol s_0_128[3] = { 0xEF, 0xBB, 0xAD };
+static const symbol s_0_129[3] = { 0xEF, 0xBB, 0xAE };
+static const symbol s_0_130[3] = { 0xEF, 0xBB, 0xAF };
+static const symbol s_0_131[3] = { 0xEF, 0xBB, 0xB0 };
+static const symbol s_0_132[3] = { 0xEF, 0xBB, 0xB1 };
+static const symbol s_0_133[3] = { 0xEF, 0xBB, 0xB2 };
+static const symbol s_0_134[3] = { 0xEF, 0xBB, 0xB3 };
+static const symbol s_0_135[3] = { 0xEF, 0xBB, 0xB4 };
+static const symbol s_0_136[3] = { 0xEF, 0xBB, 0xB5 };
+static const symbol s_0_137[3] = { 0xEF, 0xBB, 0xB6 };
+static const symbol s_0_138[3] = { 0xEF, 0xBB, 0xB7 };
+static const symbol s_0_139[3] = { 0xEF, 0xBB, 0xB8 };
+static const symbol s_0_140[3] = { 0xEF, 0xBB, 0xB9 };
+static const symbol s_0_141[3] = { 0xEF, 0xBB, 0xBA };
+static const symbol s_0_142[3] = { 0xEF, 0xBB, 0xBB };
+static const symbol s_0_143[3] = { 0xEF, 0xBB, 0xBC };
+
+static const struct among a_0[144] =
+{
+/* 0 */ { 2, s_0_0, -1, 1, 0},
+/* 1 */ { 2, s_0_1, -1, 1, 0},
+/* 2 */ { 2, s_0_2, -1, 1, 0},
+/* 3 */ { 2, s_0_3, -1, 1, 0},
+/* 4 */ { 2, s_0_4, -1, 1, 0},
+/* 5 */ { 2, s_0_5, -1, 1, 0},
+/* 6 */ { 2, s_0_6, -1, 1, 0},
+/* 7 */ { 2, s_0_7, -1, 1, 0},
+/* 8 */ { 2, s_0_8, -1, 1, 0},
+/* 9 */ { 2, s_0_9, -1, 2, 0},
+/* 10 */ { 2, s_0_10, -1, 3, 0},
+/* 11 */ { 2, s_0_11, -1, 4, 0},
+/* 12 */ { 2, s_0_12, -1, 5, 0},
+/* 13 */ { 2, s_0_13, -1, 6, 0},
+/* 14 */ { 2, s_0_14, -1, 7, 0},
+/* 15 */ { 2, s_0_15, -1, 8, 0},
+/* 16 */ { 2, s_0_16, -1, 9, 0},
+/* 17 */ { 2, s_0_17, -1, 10, 0},
+/* 18 */ { 2, s_0_18, -1, 11, 0},
+/* 19 */ { 3, s_0_19, -1, 12, 0},
+/* 20 */ { 3, s_0_20, -1, 16, 0},
+/* 21 */ { 3, s_0_21, -1, 16, 0},
+/* 22 */ { 3, s_0_22, -1, 13, 0},
+/* 23 */ { 3, s_0_23, -1, 13, 0},
+/* 24 */ { 3, s_0_24, -1, 17, 0},
+/* 25 */ { 3, s_0_25, -1, 17, 0},
+/* 26 */ { 3, s_0_26, -1, 14, 0},
+/* 27 */ { 3, s_0_27, -1, 14, 0},
+/* 28 */ { 3, s_0_28, -1, 15, 0},
+/* 29 */ { 3, s_0_29, -1, 15, 0},
+/* 30 */ { 3, s_0_30, -1, 15, 0},
+/* 31 */ { 3, s_0_31, -1, 15, 0},
+/* 32 */ { 3, s_0_32, -1, 18, 0},
+/* 33 */ { 3, s_0_33, -1, 18, 0},
+/* 34 */ { 3, s_0_34, -1, 19, 0},
+/* 35 */ { 3, s_0_35, -1, 19, 0},
+/* 36 */ { 3, s_0_36, -1, 19, 0},
+/* 37 */ { 3, s_0_37, -1, 19, 0},
+/* 38 */ { 3, s_0_38, -1, 20, 0},
+/* 39 */ { 3, s_0_39, -1, 20, 0},
+/* 40 */ { 3, s_0_40, -1, 21, 0},
+/* 41 */ { 3, s_0_41, -1, 21, 0},
+/* 42 */ { 3, s_0_42, -1, 21, 0},
+/* 43 */ { 3, s_0_43, -1, 21, 0},
+/* 44 */ { 3, s_0_44, -1, 22, 0},
+/* 45 */ { 3, s_0_45, -1, 22, 0},
+/* 46 */ { 3, s_0_46, -1, 22, 0},
+/* 47 */ { 3, s_0_47, -1, 22, 0},
+/* 48 */ { 3, s_0_48, -1, 23, 0},
+/* 49 */ { 3, s_0_49, -1, 23, 0},
+/* 50 */ { 3, s_0_50, -1, 23, 0},
+/* 51 */ { 3, s_0_51, -1, 23, 0},
+/* 52 */ { 3, s_0_52, -1, 24, 0},
+/* 53 */ { 3, s_0_53, -1, 24, 0},
+/* 54 */ { 3, s_0_54, -1, 24, 0},
+/* 55 */ { 3, s_0_55, -1, 24, 0},
+/* 56 */ { 3, s_0_56, -1, 25, 0},
+/* 57 */ { 3, s_0_57, -1, 25, 0},
+/* 58 */ { 3, s_0_58, -1, 25, 0},
+/* 59 */ { 3, s_0_59, -1, 25, 0},
+/* 60 */ { 3, s_0_60, -1, 26, 0},
+/* 61 */ { 3, s_0_61, -1, 26, 0},
+/* 62 */ { 3, s_0_62, -1, 27, 0},
+/* 63 */ { 3, s_0_63, -1, 27, 0},
+/* 64 */ { 3, s_0_64, -1, 28, 0},
+/* 65 */ { 3, s_0_65, -1, 28, 0},
+/* 66 */ { 3, s_0_66, -1, 29, 0},
+/* 67 */ { 3, s_0_67, -1, 29, 0},
+/* 68 */ { 3, s_0_68, -1, 30, 0},
+/* 69 */ { 3, s_0_69, -1, 30, 0},
+/* 70 */ { 3, s_0_70, -1, 30, 0},
+/* 71 */ { 3, s_0_71, -1, 30, 0},
+/* 72 */ { 3, s_0_72, -1, 31, 0},
+/* 73 */ { 3, s_0_73, -1, 31, 0},
+/* 74 */ { 3, s_0_74, -1, 31, 0},
+/* 75 */ { 3, s_0_75, -1, 31, 0},
+/* 76 */ { 3, s_0_76, -1, 32, 0},
+/* 77 */ { 3, s_0_77, -1, 32, 0},
+/* 78 */ { 3, s_0_78, -1, 32, 0},
+/* 79 */ { 3, s_0_79, -1, 32, 0},
+/* 80 */ { 3, s_0_80, -1, 33, 0},
+/* 81 */ { 3, s_0_81, -1, 33, 0},
+/* 82 */ { 3, s_0_82, -1, 33, 0},
+/* 83 */ { 3, s_0_83, -1, 33, 0},
+/* 84 */ { 3, s_0_84, -1, 34, 0},
+/* 85 */ { 3, s_0_85, -1, 34, 0},
+/* 86 */ { 3, s_0_86, -1, 34, 0},
+/* 87 */ { 3, s_0_87, -1, 34, 0},
+/* 88 */ { 3, s_0_88, -1, 35, 0},
+/* 89 */ { 3, s_0_89, -1, 35, 0},
+/* 90 */ { 3, s_0_90, -1, 35, 0},
+/* 91 */ { 3, s_0_91, -1, 35, 0},
+/* 92 */ { 3, s_0_92, -1, 36, 0},
+/* 93 */ { 3, s_0_93, -1, 36, 0},
+/* 94 */ { 3, s_0_94, -1, 36, 0},
+/* 95 */ { 3, s_0_95, -1, 36, 0},
+/* 96 */ { 3, s_0_96, -1, 37, 0},
+/* 97 */ { 3, s_0_97, -1, 37, 0},
+/* 98 */ { 3, s_0_98, -1, 37, 0},
+/* 99 */ { 3, s_0_99, -1, 37, 0},
+/*100 */ { 3, s_0_100, -1, 38, 0},
+/*101 */ { 3, s_0_101, -1, 38, 0},
+/*102 */ { 3, s_0_102, -1, 38, 0},
+/*103 */ { 3, s_0_103, -1, 38, 0},
+/*104 */ { 3, s_0_104, -1, 39, 0},
+/*105 */ { 3, s_0_105, -1, 39, 0},
+/*106 */ { 3, s_0_106, -1, 39, 0},
+/*107 */ { 3, s_0_107, -1, 39, 0},
+/*108 */ { 3, s_0_108, -1, 40, 0},
+/*109 */ { 3, s_0_109, -1, 40, 0},
+/*110 */ { 3, s_0_110, -1, 40, 0},
+/*111 */ { 3, s_0_111, -1, 40, 0},
+/*112 */ { 3, s_0_112, -1, 41, 0},
+/*113 */ { 3, s_0_113, -1, 41, 0},
+/*114 */ { 3, s_0_114, -1, 41, 0},
+/*115 */ { 3, s_0_115, -1, 41, 0},
+/*116 */ { 3, s_0_116, -1, 42, 0},
+/*117 */ { 3, s_0_117, -1, 42, 0},
+/*118 */ { 3, s_0_118, -1, 42, 0},
+/*119 */ { 3, s_0_119, -1, 42, 0},
+/*120 */ { 3, s_0_120, -1, 43, 0},
+/*121 */ { 3, s_0_121, -1, 43, 0},
+/*122 */ { 3, s_0_122, -1, 43, 0},
+/*123 */ { 3, s_0_123, -1, 43, 0},
+/*124 */ { 3, s_0_124, -1, 44, 0},
+/*125 */ { 3, s_0_125, -1, 44, 0},
+/*126 */ { 3, s_0_126, -1, 44, 0},
+/*127 */ { 3, s_0_127, -1, 44, 0},
+/*128 */ { 3, s_0_128, -1, 45, 0},
+/*129 */ { 3, s_0_129, -1, 45, 0},
+/*130 */ { 3, s_0_130, -1, 46, 0},
+/*131 */ { 3, s_0_131, -1, 46, 0},
+/*132 */ { 3, s_0_132, -1, 47, 0},
+/*133 */ { 3, s_0_133, -1, 47, 0},
+/*134 */ { 3, s_0_134, -1, 47, 0},
+/*135 */ { 3, s_0_135, -1, 47, 0},
+/*136 */ { 3, s_0_136, -1, 51, 0},
+/*137 */ { 3, s_0_137, -1, 51, 0},
+/*138 */ { 3, s_0_138, -1, 49, 0},
+/*139 */ { 3, s_0_139, -1, 49, 0},
+/*140 */ { 3, s_0_140, -1, 50, 0},
+/*141 */ { 3, s_0_141, -1, 50, 0},
+/*142 */ { 3, s_0_142, -1, 48, 0},
+/*143 */ { 3, s_0_143, -1, 48, 0}
+};
+
+static const symbol s_1_0[2] = { 0xD8, 0xA2 };
+static const symbol s_1_1[2] = { 0xD8, 0xA3 };
+static const symbol s_1_2[2] = { 0xD8, 0xA4 };
+static const symbol s_1_3[2] = { 0xD8, 0xA5 };
+static const symbol s_1_4[2] = { 0xD8, 0xA6 };
+
+static const struct among a_1[5] =
+{
+/* 0 */ { 2, s_1_0, -1, 1, 0},
+/* 1 */ { 2, s_1_1, -1, 1, 0},
+/* 2 */ { 2, s_1_2, -1, 1, 0},
+/* 3 */ { 2, s_1_3, -1, 1, 0},
+/* 4 */ { 2, s_1_4, -1, 1, 0}
+};
+
+static const symbol s_2_0[2] = { 0xD8, 0xA2 };
+static const symbol s_2_1[2] = { 0xD8, 0xA3 };
+static const symbol s_2_2[2] = { 0xD8, 0xA4 };
+static const symbol s_2_3[2] = { 0xD8, 0xA5 };
+static const symbol s_2_4[2] = { 0xD8, 0xA6 };
+
+static const struct among a_2[5] =
+{
+/* 0 */ { 2, s_2_0, -1, 1, 0},
+/* 1 */ { 2, s_2_1, -1, 1, 0},
+/* 2 */ { 2, s_2_2, -1, 2, 0},
+/* 3 */ { 2, s_2_3, -1, 1, 0},
+/* 4 */ { 2, s_2_4, -1, 3, 0}
+};
+
+static const symbol s_3_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 };
+static const symbol s_3_1[6] = { 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x84 };
+static const symbol s_3_2[6] = { 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x84 };
+static const symbol s_3_3[4] = { 0xD9, 0x84, 0xD9, 0x84 };
+
+static const struct among a_3[4] =
+{
+/* 0 */ { 4, s_3_0, -1, 2, 0},
+/* 1 */ { 6, s_3_1, -1, 1, 0},
+/* 2 */ { 6, s_3_2, -1, 1, 0},
+/* 3 */ { 4, s_3_3, -1, 2, 0}
+};
+
+static const symbol s_4_0[4] = { 0xD8, 0xA3, 0xD8, 0xA2 };
+static const symbol s_4_1[4] = { 0xD8, 0xA3, 0xD8, 0xA3 };
+static const symbol s_4_2[4] = { 0xD8, 0xA3, 0xD8, 0xA4 };
+static const symbol s_4_3[4] = { 0xD8, 0xA3, 0xD8, 0xA5 };
+static const symbol s_4_4[4] = { 0xD8, 0xA3, 0xD8, 0xA7 };
+
+static const struct among a_4[5] =
+{
+/* 0 */ { 4, s_4_0, -1, 2, 0},
+/* 1 */ { 4, s_4_1, -1, 1, 0},
+/* 2 */ { 4, s_4_2, -1, 1, 0},
+/* 3 */ { 4, s_4_3, -1, 4, 0},
+/* 4 */ { 4, s_4_4, -1, 3, 0}
+};
+
+static const symbol s_5_0[2] = { 0xD9, 0x81 };
+static const symbol s_5_1[2] = { 0xD9, 0x88 };
+
+static const struct among a_5[2] =
+{
+/* 0 */ { 2, s_5_0, -1, 1, 0},
+/* 1 */ { 2, s_5_1, -1, 1, 0}
+};
+
+static const symbol s_6_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 };
+static const symbol s_6_1[6] = { 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x84 };
+static const symbol s_6_2[6] = { 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x84 };
+static const symbol s_6_3[4] = { 0xD9, 0x84, 0xD9, 0x84 };
+
+static const struct among a_6[4] =
+{
+/* 0 */ { 4, s_6_0, -1, 2, 0},
+/* 1 */ { 6, s_6_1, -1, 1, 0},
+/* 2 */ { 6, s_6_2, -1, 1, 0},
+/* 3 */ { 4, s_6_3, -1, 2, 0}
+};
+
+static const symbol s_7_0[2] = { 0xD8, 0xA8 };
+static const symbol s_7_1[4] = { 0xD8, 0xA8, 0xD8, 0xA8 };
+static const symbol s_7_2[4] = { 0xD9, 0x83, 0xD9, 0x83 };
+
+static const struct among a_7[3] =
+{
+/* 0 */ { 2, s_7_0, -1, 1, 0},
+/* 1 */ { 4, s_7_1, 0, 2, 0},
+/* 2 */ { 4, s_7_2, -1, 3, 0}
+};
+
+static const symbol s_8_0[4] = { 0xD8, 0xB3, 0xD8, 0xA3 };
+static const symbol s_8_1[4] = { 0xD8, 0xB3, 0xD8, 0xAA };
+static const symbol s_8_2[4] = { 0xD8, 0xB3, 0xD9, 0x86 };
+static const symbol s_8_3[4] = { 0xD8, 0xB3, 0xD9, 0x8A };
+
+static const struct among a_8[4] =
+{
+/* 0 */ { 4, s_8_0, -1, 4, 0},
+/* 1 */ { 4, s_8_1, -1, 2, 0},
+/* 2 */ { 4, s_8_2, -1, 3, 0},
+/* 3 */ { 4, s_8_3, -1, 1, 0}
+};
+
+static const symbol s_9_0[6] = { 0xD8, 0xAA, 0xD8, 0xB3, 0xD8, 0xAA };
+static const symbol s_9_1[6] = { 0xD9, 0x86, 0xD8, 0xB3, 0xD8, 0xAA };
+static const symbol s_9_2[6] = { 0xD9, 0x8A, 0xD8, 0xB3, 0xD8, 0xAA };
+
+static const struct among a_9[3] =
+{
+/* 0 */ { 6, s_9_0, -1, 1, 0},
+/* 1 */ { 6, s_9_1, -1, 1, 0},
+/* 2 */ { 6, s_9_2, -1, 1, 0}
+};
+
+static const symbol s_10_0[2] = { 0xD9, 0x83 };
+static const symbol s_10_1[4] = { 0xD9, 0x83, 0xD9, 0x85 };
+static const symbol s_10_2[4] = { 0xD9, 0x87, 0xD9, 0x85 };
+static const symbol s_10_3[4] = { 0xD9, 0x87, 0xD9, 0x86 };
+static const symbol s_10_4[2] = { 0xD9, 0x87 };
+static const symbol s_10_5[2] = { 0xD9, 0x8A };
+static const symbol s_10_6[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD8, 0xA7 };
+static const symbol s_10_7[6] = { 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xA7 };
+static const symbol s_10_8[4] = { 0xD9, 0x86, 0xD8, 0xA7 };
+static const symbol s_10_9[4] = { 0xD9, 0x87, 0xD8, 0xA7 };
+
+static const struct among a_10[10] =
+{
+/* 0 */ { 2, s_10_0, -1, 1, 0},
+/* 1 */ { 4, s_10_1, -1, 2, 0},
+/* 2 */ { 4, s_10_2, -1, 2, 0},
+/* 3 */ { 4, s_10_3, -1, 2, 0},
+/* 4 */ { 2, s_10_4, -1, 1, 0},
+/* 5 */ { 2, s_10_5, -1, 1, 0},
+/* 6 */ { 6, s_10_6, -1, 3, 0},
+/* 7 */ { 6, s_10_7, -1, 3, 0},
+/* 8 */ { 4, s_10_8, -1, 2, 0},
+/* 9 */ { 4, s_10_9, -1, 2, 0}
+};
+
+static const symbol s_11_0[2] = { 0xD9, 0x86 };
+
+static const struct among a_11[1] =
+{
+/* 0 */ { 2, s_11_0, -1, 1, 0}
+};
+
+static const symbol s_12_0[2] = { 0xD9, 0x88 };
+static const symbol s_12_1[2] = { 0xD9, 0x8A };
+static const symbol s_12_2[2] = { 0xD8, 0xA7 };
+
+static const struct among a_12[3] =
+{
+/* 0 */ { 2, s_12_0, -1, 1, 0},
+/* 1 */ { 2, s_12_1, -1, 1, 0},
+/* 2 */ { 2, s_12_2, -1, 1, 0}
+};
+
+static const symbol s_13_0[4] = { 0xD8, 0xA7, 0xD8, 0xAA };
+
+static const struct among a_13[1] =
+{
+/* 0 */ { 4, s_13_0, -1, 1, 0}
+};
+
+static const symbol s_14_0[2] = { 0xD8, 0xAA };
+
+static const struct among a_14[1] =
+{
+/* 0 */ { 2, s_14_0, -1, 1, 0}
+};
+
+static const symbol s_15_0[2] = { 0xD8, 0xA9 };
+
+static const struct among a_15[1] =
+{
+/* 0 */ { 2, s_15_0, -1, 1, 0}
+};
+
+static const symbol s_16_0[2] = { 0xD9, 0x8A };
+
+static const struct among a_16[1] =
+{
+/* 0 */ { 2, s_16_0, -1, 1, 0}
+};
+
+static const symbol s_17_0[2] = { 0xD9, 0x83 };
+static const symbol s_17_1[4] = { 0xD9, 0x83, 0xD9, 0x85 };
+static const symbol s_17_2[4] = { 0xD9, 0x87, 0xD9, 0x85 };
+static const symbol s_17_3[4] = { 0xD9, 0x83, 0xD9, 0x86 };
+static const symbol s_17_4[4] = { 0xD9, 0x87, 0xD9, 0x86 };
+static const symbol s_17_5[2] = { 0xD9, 0x87 };
+static const symbol s_17_6[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x88 };
+static const symbol s_17_7[4] = { 0xD9, 0x86, 0xD9, 0x8A };
+static const symbol s_17_8[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD8, 0xA7 };
+static const symbol s_17_9[6] = { 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xA7 };
+static const symbol s_17_10[4] = { 0xD9, 0x86, 0xD8, 0xA7 };
+static const symbol s_17_11[4] = { 0xD9, 0x87, 0xD8, 0xA7 };
+
+static const struct among a_17[12] =
+{
+/* 0 */ { 2, s_17_0, -1, 1, 0},
+/* 1 */ { 4, s_17_1, -1, 2, 0},
+/* 2 */ { 4, s_17_2, -1, 2, 0},
+/* 3 */ { 4, s_17_3, -1, 2, 0},
+/* 4 */ { 4, s_17_4, -1, 2, 0},
+/* 5 */ { 2, s_17_5, -1, 1, 0},
+/* 6 */ { 6, s_17_6, -1, 3, 0},
+/* 7 */ { 4, s_17_7, -1, 2, 0},
+/* 8 */ { 6, s_17_8, -1, 3, 0},
+/* 9 */ { 6, s_17_9, -1, 3, 0},
+/* 10 */ { 4, s_17_10, -1, 2, 0},
+/* 11 */ { 4, s_17_11, -1, 2, 0}
+};
+
+static const symbol s_18_0[2] = { 0xD9, 0x86 };
+static const symbol s_18_1[4] = { 0xD9, 0x88, 0xD9, 0x86 };
+static const symbol s_18_2[4] = { 0xD9, 0x8A, 0xD9, 0x86 };
+static const symbol s_18_3[4] = { 0xD8, 0xA7, 0xD9, 0x86 };
+static const symbol s_18_4[4] = { 0xD8, 0xAA, 0xD9, 0x86 };
+static const symbol s_18_5[2] = { 0xD9, 0x8A };
+static const symbol s_18_6[2] = { 0xD8, 0xA7 };
+static const symbol s_18_7[6] = { 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xA7 };
+static const symbol s_18_8[4] = { 0xD9, 0x86, 0xD8, 0xA7 };
+static const symbol s_18_9[4] = { 0xD8, 0xAA, 0xD8, 0xA7 };
+static const symbol s_18_10[2] = { 0xD8, 0xAA };
+
+static const struct among a_18[11] =
+{
+/* 0 */ { 2, s_18_0, -1, 1, 0},
+/* 1 */ { 4, s_18_1, 0, 3, 0},
+/* 2 */ { 4, s_18_2, 0, 3, 0},
+/* 3 */ { 4, s_18_3, 0, 3, 0},
+/* 4 */ { 4, s_18_4, 0, 2, 0},
+/* 5 */ { 2, s_18_5, -1, 1, 0},
+/* 6 */ { 2, s_18_6, -1, 1, 0},
+/* 7 */ { 6, s_18_7, 6, 4, 0},
+/* 8 */ { 4, s_18_8, 6, 2, 0},
+/* 9 */ { 4, s_18_9, 6, 2, 0},
+/* 10 */ { 2, s_18_10, -1, 1, 0}
+};
+
+static const symbol s_19_0[4] = { 0xD8, 0xAA, 0xD9, 0x85 };
+static const symbol s_19_1[4] = { 0xD9, 0x88, 0xD8, 0xA7 };
+
+static const struct among a_19[2] =
+{
+/* 0 */ { 4, s_19_0, -1, 1, 0},
+/* 1 */ { 4, s_19_1, -1, 1, 0}
+};
+
+static const symbol s_20_0[2] = { 0xD9, 0x88 };
+static const symbol s_20_1[6] = { 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x88 };
+
+static const struct among a_20[2] =
+{
+/* 0 */ { 2, s_20_0, -1, 1, 0},
+/* 1 */ { 6, s_20_1, 0, 2, 0}
+};
+
+static const symbol s_21_0[2] = { 0xD9, 0x89 };
+
+static const struct among a_21[1] =
+{
+/* 0 */ { 2, s_21_0, -1, 1, 0}
+};
+
+static const symbol s_0[] = { '0' };
+static const symbol s_1[] = { '1' };
+static const symbol s_2[] = { '2' };
+static const symbol s_3[] = { '3' };
+static const symbol s_4[] = { '4' };
+static const symbol s_5[] = { '5' };
+static const symbol s_6[] = { '6' };
+static const symbol s_7[] = { '7' };
+static const symbol s_8[] = { '8' };
+static const symbol s_9[] = { '9' };
+static const symbol s_10[] = { 0xD8, 0xA1 };
+static const symbol s_11[] = { 0xD8, 0xA3 };
+static const symbol s_12[] = { 0xD8, 0xA5 };
+static const symbol s_13[] = { 0xD8, 0xA6 };
+static const symbol s_14[] = { 0xD8, 0xA2 };
+static const symbol s_15[] = { 0xD8, 0xA4 };
+static const symbol s_16[] = { 0xD8, 0xA7 };
+static const symbol s_17[] = { 0xD8, 0xA8 };
+static const symbol s_18[] = { 0xD8, 0xA9 };
+static const symbol s_19[] = { 0xD8, 0xAA };
+static const symbol s_20[] = { 0xD8, 0xAB };
+static const symbol s_21[] = { 0xD8, 0xAC };
+static const symbol s_22[] = { 0xD8, 0xAD };
+static const symbol s_23[] = { 0xD8, 0xAE };
+static const symbol s_24[] = { 0xD8, 0xAF };
+static const symbol s_25[] = { 0xD8, 0xB0 };
+static const symbol s_26[] = { 0xD8, 0xB1 };
+static const symbol s_27[] = { 0xD8, 0xB2 };
+static const symbol s_28[] = { 0xD8, 0xB3 };
+static const symbol s_29[] = { 0xD8, 0xB4 };
+static const symbol s_30[] = { 0xD8, 0xB5 };
+static const symbol s_31[] = { 0xD8, 0xB6 };
+static const symbol s_32[] = { 0xD8, 0xB7 };
+static const symbol s_33[] = { 0xD8, 0xB8 };
+static const symbol s_34[] = { 0xD8, 0xB9 };
+static const symbol s_35[] = { 0xD8, 0xBA };
+static const symbol s_36[] = { 0xD9, 0x81 };
+static const symbol s_37[] = { 0xD9, 0x82 };
+static const symbol s_38[] = { 0xD9, 0x83 };
+static const symbol s_39[] = { 0xD9, 0x84 };
+static const symbol s_40[] = { 0xD9, 0x85 };
+static const symbol s_41[] = { 0xD9, 0x86 };
+static const symbol s_42[] = { 0xD9, 0x87 };
+static const symbol s_43[] = { 0xD9, 0x88 };
+static const symbol s_44[] = { 0xD9, 0x89 };
+static const symbol s_45[] = { 0xD9, 0x8A };
+static const symbol s_46[] = { 0xD9, 0x84, 0xD8, 0xA7 };
+static const symbol s_47[] = { 0xD9, 0x84, 0xD8, 0xA3 };
+static const symbol s_48[] = { 0xD9, 0x84, 0xD8, 0xA5 };
+static const symbol s_49[] = { 0xD9, 0x84, 0xD8, 0xA2 };
+static const symbol s_50[] = { 0xD8, 0xA1 };
+static const symbol s_51[] = { 0xD8, 0xA7 };
+static const symbol s_52[] = { 0xD9, 0x88 };
+static const symbol s_53[] = { 0xD9, 0x8A };
+static const symbol s_54[] = { 0xD8, 0xA3 };
+static const symbol s_55[] = { 0xD8, 0xA2 };
+static const symbol s_56[] = { 0xD8, 0xA7 };
+static const symbol s_57[] = { 0xD8, 0xA5 };
+static const symbol s_58[] = { 0xD9, 0x81, 0xD8, 0xA7 };
+static const symbol s_59[] = { 0xD9, 0x88, 0xD8, 0xA7 };
+static const symbol s_60[] = { 0xD8, 0xA8, 0xD8, 0xA7 };
+static const symbol s_61[] = { 0xD8, 0xA8 };
+static const symbol s_62[] = { 0xD9, 0x83 };
+static const symbol s_63[] = { 0xD9, 0x8A };
+static const symbol s_64[] = { 0xD8, 0xAA };
+static const symbol s_65[] = { 0xD9, 0x86 };
+static const symbol s_66[] = { 0xD8, 0xA3 };
+static const symbol s_67[] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xAA };
+static const symbol s_68[] = { 0xD9, 0x8A };
+
+static int r_Normalize_pre(struct SN_env * z) { /* forwardmode */
+ int among_var;
+ { int c1 = z->c; /* do, line 247 */
+ while(1) { /* repeat, line 247 */
+ int c2 = z->c;
+ { int c3 = z->c; /* or, line 311 */
+ z->bra = z->c; /* [, line 249 */
+ among_var = find_among(z, a_0, 144); /* substring, line 249 */
+ if (!(among_var)) goto lab3;
+ z->ket = z->c; /* ], line 249 */
+ switch (among_var) { /* among, line 249 */
+ case 1:
+ { int ret = slice_del(z); /* delete, line 250 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 254 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 255 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 256 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 257 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 258 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 259 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 260 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 261 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 262 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 1, s_9); /* <-, line 263 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 2, s_10); /* <-, line 266 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_from_s(z, 2, s_11); /* <-, line 267 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_from_s(z, 2, s_12); /* <-, line 268 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ { int ret = slice_from_s(z, 2, s_13); /* <-, line 269 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 16:
+ { int ret = slice_from_s(z, 2, s_14); /* <-, line 270 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 17:
+ { int ret = slice_from_s(z, 2, s_15); /* <-, line 271 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 18:
+ { int ret = slice_from_s(z, 2, s_16); /* <-, line 272 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 19:
+ { int ret = slice_from_s(z, 2, s_17); /* <-, line 273 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 20:
+ { int ret = slice_from_s(z, 2, s_18); /* <-, line 274 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 21:
+ { int ret = slice_from_s(z, 2, s_19); /* <-, line 275 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 22:
+ { int ret = slice_from_s(z, 2, s_20); /* <-, line 276 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 23:
+ { int ret = slice_from_s(z, 2, s_21); /* <-, line 277 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 24:
+ { int ret = slice_from_s(z, 2, s_22); /* <-, line 278 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 25:
+ { int ret = slice_from_s(z, 2, s_23); /* <-, line 279 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 26:
+ { int ret = slice_from_s(z, 2, s_24); /* <-, line 280 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 27:
+ { int ret = slice_from_s(z, 2, s_25); /* <-, line 281 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 28:
+ { int ret = slice_from_s(z, 2, s_26); /* <-, line 282 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 29:
+ { int ret = slice_from_s(z, 2, s_27); /* <-, line 283 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 30:
+ { int ret = slice_from_s(z, 2, s_28); /* <-, line 284 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 31:
+ { int ret = slice_from_s(z, 2, s_29); /* <-, line 285 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 32:
+ { int ret = slice_from_s(z, 2, s_30); /* <-, line 286 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 33:
+ { int ret = slice_from_s(z, 2, s_31); /* <-, line 287 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 34:
+ { int ret = slice_from_s(z, 2, s_32); /* <-, line 288 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 35:
+ { int ret = slice_from_s(z, 2, s_33); /* <-, line 289 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 36:
+ { int ret = slice_from_s(z, 2, s_34); /* <-, line 290 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 37:
+ { int ret = slice_from_s(z, 2, s_35); /* <-, line 291 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 38:
+ { int ret = slice_from_s(z, 2, s_36); /* <-, line 292 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 39:
+ { int ret = slice_from_s(z, 2, s_37); /* <-, line 293 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 40:
+ { int ret = slice_from_s(z, 2, s_38); /* <-, line 294 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 41:
+ { int ret = slice_from_s(z, 2, s_39); /* <-, line 295 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 42:
+ { int ret = slice_from_s(z, 2, s_40); /* <-, line 296 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 43:
+ { int ret = slice_from_s(z, 2, s_41); /* <-, line 297 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 44:
+ { int ret = slice_from_s(z, 2, s_42); /* <-, line 298 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 45:
+ { int ret = slice_from_s(z, 2, s_43); /* <-, line 299 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 46:
+ { int ret = slice_from_s(z, 2, s_44); /* <-, line 300 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 47:
+ { int ret = slice_from_s(z, 2, s_45); /* <-, line 301 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 48:
+ { int ret = slice_from_s(z, 4, s_46); /* <-, line 304 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 49:
+ { int ret = slice_from_s(z, 4, s_47); /* <-, line 305 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 50:
+ { int ret = slice_from_s(z, 4, s_48); /* <-, line 306 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 51:
+ { int ret = slice_from_s(z, 4, s_49); /* <-, line 307 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ goto lab2;
+ lab3:
+ z->c = c3;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab1;
+ z->c = ret; /* next, line 312 */
+ }
+ }
+ lab2:
+ continue;
+ lab1:
+ z->c = c2;
+ break;
+ }
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_Normalize_post(struct SN_env * z) { /* forwardmode */
+ int among_var;
+ { int c1 = z->c; /* do, line 318 */
+ z->lb = z->c; z->c = z->l; /* backwards, line 320 */
+
+ z->ket = z->c; /* [, line 321 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((124 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 321 */
+ if (!(find_among_b(z, a_1, 5))) goto lab0;
+ z->bra = z->c; /* ], line 321 */
+ { int ret = slice_from_s(z, 2, s_50); /* <-, line 322 */
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ lab0:
+ z->c = c1;
+ }
+ { int c2 = z->c; /* do, line 329 */
+ while(1) { /* repeat, line 329 */
+ int c3 = z->c;
+ { int c4 = z->c; /* or, line 338 */
+ z->bra = z->c; /* [, line 332 */
+ if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((124 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab4; /* substring, line 332 */
+ among_var = find_among(z, a_2, 5);
+ if (!(among_var)) goto lab4;
+ z->ket = z->c; /* ], line 332 */
+ switch (among_var) { /* among, line 332 */
+ case 1:
+ { int ret = slice_from_s(z, 2, s_51); /* <-, line 333 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 2, s_52); /* <-, line 334 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 2, s_53); /* <-, line 335 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ goto lab3;
+ lab4:
+ z->c = c4;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab2;
+ z->c = ret; /* next, line 339 */
+ }
+ }
+ lab3:
+ continue;
+ lab2:
+ z->c = c3;
+ break;
+ }
+ z->c = c2;
+ }
+ return 1;
+}
+
+static int r_Checks1(struct SN_env * z) { /* forwardmode */
+ int among_var;
+ z->bra = z->c; /* [, line 345 */
+ if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0; /* substring, line 345 */
+ among_var = find_among(z, a_3, 4);
+ if (!(among_var)) return 0;
+ z->ket = z->c; /* ], line 345 */
+ switch (among_var) { /* among, line 345 */
+ case 1:
+ if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 346 */
+ z->B[0] = 1; /* set is_noun, line 346 */
+ z->B[1] = 0; /* unset is_verb, line 346 */
+ z->B[2] = 1; /* set is_defined, line 346 */
+ break;
+ case 2:
+ if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 347 */
+ z->B[0] = 1; /* set is_noun, line 347 */
+ z->B[1] = 0; /* unset is_verb, line 347 */
+ z->B[2] = 1; /* set is_defined, line 347 */
+ break;
+ }
+ return 1;
+}
+
+static int r_Prefix_Step1(struct SN_env * z) { /* forwardmode */
+ int among_var;
+ z->bra = z->c; /* [, line 354 */
+ if (z->c + 3 >= z->l || z->p[z->c + 3] >> 5 != 5 || !((188 >> (z->p[z->c + 3] & 0x1f)) & 1)) return 0; /* substring, line 354 */
+ among_var = find_among(z, a_4, 5);
+ if (!(among_var)) return 0;
+ z->ket = z->c; /* ], line 354 */
+ switch (among_var) { /* among, line 354 */
+ case 1:
+ if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 355 */
+ { int ret = slice_from_s(z, 2, s_54); /* <-, line 355 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 356 */
+ { int ret = slice_from_s(z, 2, s_55); /* <-, line 356 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 358 */
+ { int ret = slice_from_s(z, 2, s_56); /* <-, line 358 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 359 */
+ { int ret = slice_from_s(z, 2, s_57); /* <-, line 359 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Prefix_Step2(struct SN_env * z) { /* forwardmode */
+ { int c1 = z->c; /* not, line 365 */
+ if (!(eq_s(z, 4, s_58))) goto lab0; /* literal, line 365 */
+ return 0;
+ lab0:
+ z->c = c1;
+ }
+ { int c2 = z->c; /* not, line 366 */
+ if (!(eq_s(z, 4, s_59))) goto lab1; /* literal, line 366 */
+ return 0;
+ lab1:
+ z->c = c2;
+ }
+ z->bra = z->c; /* [, line 367 */
+ if (z->c + 1 >= z->l || (z->p[z->c + 1] != 129 && z->p[z->c + 1] != 136)) return 0; /* substring, line 367 */
+ if (!(find_among(z, a_5, 2))) return 0;
+ z->ket = z->c; /* ], line 367 */
+ if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 368 */
+ { int ret = slice_del(z); /* delete, line 368 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Prefix_Step3a_Noun(struct SN_env * z) { /* forwardmode */
+ int among_var;
+ z->bra = z->c; /* [, line 374 */
+ if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0; /* substring, line 374 */
+ among_var = find_among(z, a_6, 4);
+ if (!(among_var)) return 0;
+ z->ket = z->c; /* ], line 374 */
+ switch (among_var) { /* among, line 374 */
+ case 1:
+ if (!(len_utf8(z->p) > 5)) return 0; /* $( > ), line 375 */
+ { int ret = slice_del(z); /* delete, line 375 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 376 */
+ { int ret = slice_del(z); /* delete, line 376 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Prefix_Step3b_Noun(struct SN_env * z) { /* forwardmode */
+ int among_var;
+ { int c1 = z->c; /* not, line 381 */
+ if (!(eq_s(z, 4, s_60))) goto lab0; /* literal, line 381 */
+ return 0;
+ lab0:
+ z->c = c1;
+ }
+ z->bra = z->c; /* [, line 382 */
+ if (z->c + 1 >= z->l || (z->p[z->c + 1] != 168 && z->p[z->c + 1] != 131)) return 0; /* substring, line 382 */
+ among_var = find_among(z, a_7, 3);
+ if (!(among_var)) return 0;
+ z->ket = z->c; /* ], line 382 */
+ switch (among_var) { /* among, line 382 */
+ case 1:
+ if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 383 */
+ { int ret = slice_del(z); /* delete, line 383 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 385 */
+ { int ret = slice_from_s(z, 2, s_61); /* <-, line 385 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 386 */
+ { int ret = slice_from_s(z, 2, s_62); /* <-, line 386 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Prefix_Step3_Verb(struct SN_env * z) { /* forwardmode */
+ int among_var;
+ z->bra = z->c; /* [, line 392 */
+ among_var = find_among(z, a_8, 4); /* substring, line 392 */
+ if (!(among_var)) return 0;
+ z->ket = z->c; /* ], line 392 */
+ switch (among_var) { /* among, line 392 */
+ case 1:
+ if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 394 */
+ { int ret = slice_from_s(z, 2, s_63); /* <-, line 394 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 395 */
+ { int ret = slice_from_s(z, 2, s_64); /* <-, line 395 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 396 */
+ { int ret = slice_from_s(z, 2, s_65); /* <-, line 396 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 397 */
+ { int ret = slice_from_s(z, 2, s_66); /* <-, line 397 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Prefix_Step4_Verb(struct SN_env * z) { /* forwardmode */
+ z->bra = z->c; /* [, line 402 */
+ if (z->c + 5 >= z->l || z->p[z->c + 5] != 170) return 0; /* substring, line 402 */
+ if (!(find_among(z, a_9, 3))) return 0;
+ z->ket = z->c; /* ], line 402 */
+ if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 403 */
+ z->B[1] = 1; /* set is_verb, line 403 */
+ z->B[0] = 0; /* unset is_noun, line 403 */
+ { int ret = slice_from_s(z, 6, s_67); /* <-, line 403 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step1a(struct SN_env * z) { /* backwardmode */
+ int among_var;
+ z->ket = z->c; /* [, line 411 */
+ among_var = find_among_b(z, a_10, 10); /* substring, line 411 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 411 */
+ switch (among_var) { /* among, line 411 */
+ case 1:
+ if (!(len_utf8(z->p) >= 4)) return 0; /* $( >= ), line 412 */
+ { int ret = slice_del(z); /* delete, line 412 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) >= 5)) return 0; /* $( >= ), line 413 */
+ { int ret = slice_del(z); /* delete, line 413 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (!(len_utf8(z->p) >= 6)) return 0; /* $( >= ), line 414 */
+ { int ret = slice_del(z); /* delete, line 414 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step1b(struct SN_env * z) { /* backwardmode */
+ z->ket = z->c; /* [, line 418 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 134) return 0; /* substring, line 418 */
+ if (!(find_among_b(z, a_11, 1))) return 0;
+ z->bra = z->c; /* ], line 418 */
+ if (!(len_utf8(z->p) > 5)) return 0; /* $( > ), line 419 */
+ { int ret = slice_del(z); /* delete, line 419 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step2a(struct SN_env * z) { /* backwardmode */
+ z->ket = z->c; /* [, line 424 */
+ if (!(find_among_b(z, a_12, 3))) return 0; /* substring, line 424 */
+ z->bra = z->c; /* ], line 424 */
+ if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 425 */
+ { int ret = slice_del(z); /* delete, line 425 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step2b(struct SN_env * z) { /* backwardmode */
+ z->ket = z->c; /* [, line 430 */
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 170) return 0; /* substring, line 430 */
+ if (!(find_among_b(z, a_13, 1))) return 0;
+ z->bra = z->c; /* ], line 430 */
+ if (!(len_utf8(z->p) >= 5)) return 0; /* $( >= ), line 431 */
+ { int ret = slice_del(z); /* delete, line 431 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step2c1(struct SN_env * z) { /* backwardmode */
+ z->ket = z->c; /* [, line 436 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 170) return 0; /* substring, line 436 */
+ if (!(find_among_b(z, a_14, 1))) return 0;
+ z->bra = z->c; /* ], line 436 */
+ if (!(len_utf8(z->p) >= 4)) return 0; /* $( >= ), line 437 */
+ { int ret = slice_del(z); /* delete, line 437 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step2c2(struct SN_env * z) { /* backwardmode */
+ z->ket = z->c; /* [, line 441 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 169) return 0; /* substring, line 441 */
+ if (!(find_among_b(z, a_15, 1))) return 0;
+ z->bra = z->c; /* ], line 441 */
+ if (!(len_utf8(z->p) >= 4)) return 0; /* $( >= ), line 442 */
+ { int ret = slice_del(z); /* delete, line 442 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step3(struct SN_env * z) { /* backwardmode */
+ z->ket = z->c; /* [, line 446 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 138) return 0; /* substring, line 446 */
+ if (!(find_among_b(z, a_16, 1))) return 0;
+ z->bra = z->c; /* ], line 446 */
+ if (!(len_utf8(z->p) >= 3)) return 0; /* $( >= ), line 447 */
+ { int ret = slice_del(z); /* delete, line 447 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Verb_Step1(struct SN_env * z) { /* backwardmode */
+ int among_var;
+ z->ket = z->c; /* [, line 452 */
+ among_var = find_among_b(z, a_17, 12); /* substring, line 452 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 452 */
+ switch (among_var) { /* among, line 452 */
+ case 1:
+ if (!(len_utf8(z->p) >= 4)) return 0; /* $( >= ), line 453 */
+ { int ret = slice_del(z); /* delete, line 453 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) >= 5)) return 0; /* $( >= ), line 454 */
+ { int ret = slice_del(z); /* delete, line 454 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (!(len_utf8(z->p) >= 6)) return 0; /* $( >= ), line 455 */
+ { int ret = slice_del(z); /* delete, line 455 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Suffix_Verb_Step2a(struct SN_env * z) { /* backwardmode */
+ int among_var;
+ z->ket = z->c; /* [, line 459 */
+ among_var = find_among_b(z, a_18, 11); /* substring, line 459 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 459 */
+ switch (among_var) { /* among, line 459 */
+ case 1:
+ if (!(len_utf8(z->p) >= 4)) return 0; /* $( >= ), line 460 */
+ { int ret = slice_del(z); /* delete, line 460 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) >= 5)) return 0; /* $( >= ), line 462 */
+ { int ret = slice_del(z); /* delete, line 462 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (!(len_utf8(z->p) > 5)) return 0; /* $( > ), line 463 */
+ { int ret = slice_del(z); /* delete, line 463 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ if (!(len_utf8(z->p) >= 6)) return 0; /* $( >= ), line 464 */
+ { int ret = slice_del(z); /* delete, line 464 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Suffix_Verb_Step2b(struct SN_env * z) { /* backwardmode */
+ z->ket = z->c; /* [, line 469 */
+ if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 133 && z->p[z->c - 1] != 167)) return 0; /* substring, line 469 */
+ if (!(find_among_b(z, a_19, 2))) return 0;
+ z->bra = z->c; /* ], line 469 */
+ if (!(len_utf8(z->p) >= 5)) return 0; /* $( >= ), line 470 */
+ { int ret = slice_del(z); /* delete, line 470 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Verb_Step2c(struct SN_env * z) { /* backwardmode */
+ int among_var;
+ z->ket = z->c; /* [, line 476 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 136) return 0; /* substring, line 476 */
+ among_var = find_among_b(z, a_20, 2);
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 476 */
+ switch (among_var) { /* among, line 476 */
+ case 1:
+ if (!(len_utf8(z->p) >= 4)) return 0; /* $( >= ), line 477 */
+ { int ret = slice_del(z); /* delete, line 477 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) >= 6)) return 0; /* $( >= ), line 478 */
+ { int ret = slice_del(z); /* delete, line 478 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Suffix_All_alef_maqsura(struct SN_env * z) { /* backwardmode */
+ z->ket = z->c; /* [, line 483 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 137) return 0; /* substring, line 483 */
+ if (!(find_among_b(z, a_21, 1))) return 0;
+ z->bra = z->c; /* ], line 483 */
+ { int ret = slice_from_s(z, 2, s_68); /* <-, line 484 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */
+ z->B[0] = 1; /* set is_noun, line 493 */
+ z->B[1] = 1; /* set is_verb, line 494 */
+ z->B[2] = 0; /* unset is_defined, line 495 */
+ { int c1 = z->c; /* do, line 498 */
+ { int ret = r_Checks1(z); /* call Checks1, line 498 */
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = c1;
+ }
+ /* do, line 501 */
+ { int ret = r_Normalize_pre(z); /* call Normalize_pre, line 501 */
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+lab1:
+ z->lb = z->c; z->c = z->l; /* backwards, line 504 */
+
+ { int m2 = z->l - z->c; (void)m2; /* do, line 506 */
+ { int m3 = z->l - z->c; (void)m3; /* or, line 520 */
+ if (!(z->B[1])) goto lab4; /* Boolean test is_verb, line 509 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 515 */
+ { int i = 1;
+ while(1) { /* atleast, line 512 */
+ int m5 = z->l - z->c; (void)m5;
+ { int ret = r_Suffix_Verb_Step1(z); /* call Suffix_Verb_Step1, line 512 */
+ if (ret == 0) goto lab7;
+ if (ret < 0) return ret;
+ }
+ i--;
+ continue;
+ lab7:
+ z->c = z->l - m5;
+ break;
+ }
+ if (i > 0) goto lab6;
+ }
+ { int m6 = z->l - z->c; (void)m6; /* or, line 513 */
+ { int ret = r_Suffix_Verb_Step2a(z); /* call Suffix_Verb_Step2a, line 513 */
+ if (ret == 0) goto lab9;
+ if (ret < 0) return ret;
+ }
+ goto lab8;
+ lab9:
+ z->c = z->l - m6;
+ { int ret = r_Suffix_Verb_Step2c(z); /* call Suffix_Verb_Step2c, line 513 */
+ if (ret == 0) goto lab10;
+ if (ret < 0) return ret;
+ }
+ goto lab8;
+ lab10:
+ z->c = z->l - m6;
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) goto lab6;
+ z->c = ret; /* next, line 513 */
+ }
+ }
+ lab8:
+ goto lab5;
+ lab6:
+ z->c = z->l - m4;
+ { int ret = r_Suffix_Verb_Step2b(z); /* call Suffix_Verb_Step2b, line 515 */
+ if (ret == 0) goto lab11;
+ if (ret < 0) return ret;
+ }
+ goto lab5;
+ lab11:
+ z->c = z->l - m4;
+ { int ret = r_Suffix_Verb_Step2a(z); /* call Suffix_Verb_Step2a, line 516 */
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
+ }
+ }
+ lab5:
+ goto lab3;
+ lab4:
+ z->c = z->l - m3;
+ if (!(z->B[0])) goto lab12; /* Boolean test is_noun, line 521 */
+ { int m7 = z->l - z->c; (void)m7; /* try, line 524 */
+ { int m8 = z->l - z->c; (void)m8; /* or, line 526 */
+ { int ret = r_Suffix_Noun_Step2c2(z); /* call Suffix_Noun_Step2c2, line 525 */
+ if (ret == 0) goto lab15;
+ if (ret < 0) return ret;
+ }
+ goto lab14;
+ lab15:
+ z->c = z->l - m8;
+ /* not, line 526 */
+ if (!(z->B[2])) goto lab17; /* Boolean test is_defined, line 526 */
+ goto lab16;
+ lab17:
+ { int ret = r_Suffix_Noun_Step1a(z); /* call Suffix_Noun_Step1a, line 526 */
+ if (ret == 0) goto lab16;
+ if (ret < 0) return ret;
+ }
+ { int m9 = z->l - z->c; (void)m9; /* or, line 528 */
+ { int ret = r_Suffix_Noun_Step2a(z); /* call Suffix_Noun_Step2a, line 527 */
+ if (ret == 0) goto lab19;
+ if (ret < 0) return ret;
+ }
+ goto lab18;
+ lab19:
+ z->c = z->l - m9;
+ { int ret = r_Suffix_Noun_Step2b(z); /* call Suffix_Noun_Step2b, line 528 */
+ if (ret == 0) goto lab20;
+ if (ret < 0) return ret;
+ }
+ goto lab18;
+ lab20:
+ z->c = z->l - m9;
+ { int ret = r_Suffix_Noun_Step2c1(z); /* call Suffix_Noun_Step2c1, line 529 */
+ if (ret == 0) goto lab21;
+ if (ret < 0) return ret;
+ }
+ goto lab18;
+ lab21:
+ z->c = z->l - m9;
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) goto lab16;
+ z->c = ret; /* next, line 530 */
+ }
+ }
+ lab18:
+ goto lab14;
+ lab16:
+ z->c = z->l - m8;
+ { int ret = r_Suffix_Noun_Step1b(z); /* call Suffix_Noun_Step1b, line 531 */
+ if (ret == 0) goto lab22;
+ if (ret < 0) return ret;
+ }
+ { int m10 = z->l - z->c; (void)m10; /* or, line 533 */
+ { int ret = r_Suffix_Noun_Step2a(z); /* call Suffix_Noun_Step2a, line 532 */
+ if (ret == 0) goto lab24;
+ if (ret < 0) return ret;
+ }
+ goto lab23;
+ lab24:
+ z->c = z->l - m10;
+ { int ret = r_Suffix_Noun_Step2b(z); /* call Suffix_Noun_Step2b, line 533 */
+ if (ret == 0) goto lab25;
+ if (ret < 0) return ret;
+ }
+ goto lab23;
+ lab25:
+ z->c = z->l - m10;
+ { int ret = r_Suffix_Noun_Step2c1(z); /* call Suffix_Noun_Step2c1, line 534 */
+ if (ret == 0) goto lab22;
+ if (ret < 0) return ret;
+ }
+ }
+ lab23:
+ goto lab14;
+ lab22:
+ z->c = z->l - m8;
+ /* not, line 535 */
+ if (!(z->B[2])) goto lab27; /* Boolean test is_defined, line 535 */
+ goto lab26;
+ lab27:
+ { int ret = r_Suffix_Noun_Step2a(z); /* call Suffix_Noun_Step2a, line 535 */
+ if (ret == 0) goto lab26;
+ if (ret < 0) return ret;
+ }
+ goto lab14;
+ lab26:
+ z->c = z->l - m8;
+ { int ret = r_Suffix_Noun_Step2b(z); /* call Suffix_Noun_Step2b, line 536 */
+ if (ret == 0) { z->c = z->l - m7; goto lab13; }
+ if (ret < 0) return ret;
+ }
+ }
+ lab14:
+ lab13:
+ ;
+ }
+ { int ret = r_Suffix_Noun_Step3(z); /* call Suffix_Noun_Step3, line 538 */
+ if (ret == 0) goto lab12;
+ if (ret < 0) return ret;
+ }
+ goto lab3;
+ lab12:
+ z->c = z->l - m3;
+ { int ret = r_Suffix_All_alef_maqsura(z); /* call Suffix_All_alef_maqsura, line 544 */
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ }
+ lab3:
+ lab2:
+ z->c = z->l - m2;
+ }
+ z->c = z->lb;
+ { int c11 = z->c; /* do, line 549 */
+ { int c12 = z->c; /* try, line 550 */
+ { int ret = r_Prefix_Step1(z); /* call Prefix_Step1, line 550 */
+ if (ret == 0) { z->c = c12; goto lab29; }
+ if (ret < 0) return ret;
+ }
+ lab29:
+ ;
+ }
+ { int c13 = z->c; /* try, line 551 */
+ { int ret = r_Prefix_Step2(z); /* call Prefix_Step2, line 551 */
+ if (ret == 0) { z->c = c13; goto lab30; }
+ if (ret < 0) return ret;
+ }
+ lab30:
+ ;
+ }
+ { int c14 = z->c; /* or, line 553 */
+ { int ret = r_Prefix_Step3a_Noun(z); /* call Prefix_Step3a_Noun, line 552 */
+ if (ret == 0) goto lab32;
+ if (ret < 0) return ret;
+ }
+ goto lab31;
+ lab32:
+ z->c = c14;
+ if (!(z->B[0])) goto lab33; /* Boolean test is_noun, line 553 */
+ { int ret = r_Prefix_Step3b_Noun(z); /* call Prefix_Step3b_Noun, line 553 */
+ if (ret == 0) goto lab33;
+ if (ret < 0) return ret;
+ }
+ goto lab31;
+ lab33:
+ z->c = c14;
+ if (!(z->B[1])) goto lab28; /* Boolean test is_verb, line 554 */
+ { int c15 = z->c; /* try, line 554 */
+ { int ret = r_Prefix_Step3_Verb(z); /* call Prefix_Step3_Verb, line 554 */
+ if (ret == 0) { z->c = c15; goto lab34; }
+ if (ret < 0) return ret;
+ }
+ lab34:
+ ;
+ }
+ { int ret = r_Prefix_Step4_Verb(z); /* call Prefix_Step4_Verb, line 554 */
+ if (ret == 0) goto lab28;
+ if (ret < 0) return ret;
+ }
+ }
+ lab31:
+ lab28:
+ z->c = c11;
+ }
+ /* do, line 559 */
+ { int ret = r_Normalize_post(z); /* call Normalize_post, line 559 */
+ if (ret == 0) goto lab35;
+ if (ret < 0) return ret;
+ }
+lab35:
+ return 1;
+}
+
+extern struct SN_env * arabic_UTF_8_create_env(void) { return SN_create_env(0, 0, 3); }
+
+extern void arabic_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_danish.c b/src/backend/snowball/libstemmer/stem_UTF_8_danish.c
index cfd41376da2..4f7e3016bb2 100644
--- a/src/backend/snowball/libstemmer/stem_UTF_8_danish.c
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_danish.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -132,15 +132,15 @@ static const symbol s_0[] = { 's', 't' };
static const symbol s_1[] = { 'i', 'g' };
static const symbol s_2[] = { 'l', 0xC3, 0xB8, 's' };
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- { int c_test = z->c; /* test, line 33 */
- { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3);
+static int r_mark_regions(struct SN_env * z) { /* forwardmode */
+ z->I[0] = z->l; /* $p1 = , line 31 */
+ { int c_test1 = z->c; /* test, line 33 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 33 */
if (ret < 0) return 0;
- z->c = ret; /* hop, line 33 */
+ z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 33 */
- z->c = c_test;
+ z->c = c_test1;
}
if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 34 */
{ /* gopast */ /* non v, line 34 */
@@ -149,37 +149,34 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 34 */
- /* try, line 35 */
- if (!(z->I[0] < z->I[1])) goto lab0;
- z->I[0] = z->I[1];
+ /* try, line 35 */
+ if (!(z->I[0] < z->I[1])) goto lab0; /* $( < ), line 35 */
+ z->I[0] = z->I[1]; /* $p1 = , line 35 */
lab0:
return 1;
}
-static int r_main_suffix(struct SN_env * z) {
+static int r_main_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 41 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 41 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 41 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 41 */
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
- among_var = find_among_b(z, a_0, 32); /* substring, line 41 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ 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 41 */
+ among_var = find_among_b(z, a_0, 32);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 41 */
- z->lb = mlimit;
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 42 */
case 1:
{ int ret = slice_del(z); /* delete, line 48 */
if (ret < 0) return ret;
}
break;
case 2:
- if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0;
+ if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 50 */
{ int ret = slice_del(z); /* delete, line 50 */
if (ret < 0) return ret;
}
@@ -188,21 +185,19 @@ static int r_main_suffix(struct SN_env * z) {
return 1;
}
-static int r_consonant_pair(struct SN_env * z) {
- { int m_test = z->l - z->c; /* test, line 55 */
- { int mlimit; /* setlimit, line 56 */
- int m1 = z->l - z->c; (void)m1;
+static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
+ { int m_test1 = z->l - z->c; /* test, line 55 */
+
+ { int mlimit2; /* setlimit, line 56 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 56 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
- if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit; return 0; }
- if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit; return 0; } /* substring, line 56 */
+ 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 56 */
+ if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 56 */
- z->lb = mlimit;
+ z->lb = mlimit2;
}
- z->c = z->l - m_test;
+ z->c = z->l - m_test1;
}
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
if (ret < 0) return 0;
@@ -215,41 +210,38 @@ static int r_consonant_pair(struct SN_env * z) {
return 1;
}
-static int r_other_suffix(struct SN_env * z) {
+static int r_other_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 66 */
z->ket = z->c; /* [, line 66 */
- if (!(eq_s_b(z, 2, s_0))) goto lab0;
+ if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 66 */
z->bra = z->c; /* ], line 66 */
- if (!(eq_s_b(z, 2, s_1))) goto lab0;
+ if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 66 */
{ int ret = slice_del(z); /* delete, line 66 */
if (ret < 0) return ret;
}
lab0:
z->c = z->l - m1;
}
- { int mlimit; /* setlimit, line 67 */
- int m2 = z->l - z->c; (void)m2;
+
+ { int mlimit2; /* setlimit, line 67 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 67 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m2;
+ mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 67 */
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
- among_var = find_among_b(z, a_2, 5); /* substring, line 67 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
+ 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 67 */
+ among_var = find_among_b(z, a_2, 5);
+ if (!(among_var)) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 67 */
- z->lb = mlimit;
+ z->lb = mlimit2;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 68 */
case 1:
{ int ret = slice_del(z); /* delete, line 70 */
if (ret < 0) return ret;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 70 */
- { int ret = r_consonant_pair(z);
- if (ret == 0) goto lab1; /* call consonant_pair, line 70 */
+ { int ret = r_consonant_pair(z); /* call consonant_pair, line 70 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
@@ -265,19 +257,17 @@ static int r_other_suffix(struct SN_env * z) {
return 1;
}
-static int r_undouble(struct SN_env * z) {
- { int mlimit; /* setlimit, line 76 */
- int m1 = z->l - z->c; (void)m1;
+static int r_undouble(struct SN_env * z) { /* backwardmode */
+
+ { int mlimit1; /* setlimit, line 76 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 76 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
+ mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 76 */
- if (out_grouping_b_U(z, g_v, 97, 248, 0)) { z->lb = mlimit; return 0; }
+ if (out_grouping_b_U(z, g_v, 97, 248, 0)) { z->lb = mlimit1; return 0; } /* non v, line 76 */
z->bra = z->c; /* ], line 76 */
z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 76 */
if (z->S[0] == 0) return -1; /* -> ch, line 76 */
- z->lb = mlimit;
+ z->lb = mlimit1;
}
if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 77 */
{ int ret = slice_del(z); /* delete, line 78 */
@@ -286,10 +276,10 @@ static int r_undouble(struct SN_env * z) {
return 1;
}
-extern int danish_UTF_8_stem(struct SN_env * z) {
+extern int danish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 84 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab0; /* call mark_regions, line 84 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 84 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
@@ -298,32 +288,32 @@ extern int danish_UTF_8_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 85 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 86 */
- { int ret = r_main_suffix(z);
- if (ret == 0) goto lab1; /* call main_suffix, line 86 */
+ { int ret = r_main_suffix(z); /* call main_suffix, line 86 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 87 */
- { int ret = r_consonant_pair(z);
- if (ret == 0) goto lab2; /* call consonant_pair, line 87 */
+ { int ret = r_consonant_pair(z); /* call consonant_pair, line 87 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 88 */
- { int ret = r_other_suffix(z);
- if (ret == 0) goto lab3; /* call other_suffix, line 88 */
+ { int ret = r_other_suffix(z); /* call other_suffix, line 88 */
+ if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 89 */
- { int ret = r_undouble(z);
- if (ret == 0) goto lab4; /* call undouble, line 89 */
+ { int ret = r_undouble(z); /* call undouble, line 89 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
lab4:
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c b/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c
index f04c88d3e6a..0a61174502d 100644
--- a/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -134,36 +134,28 @@ static const symbol s_1[] = { 'e' };
static const symbol s_2[] = { 'i' };
static const symbol s_3[] = { 'o' };
static const symbol s_4[] = { 'u' };
-static const symbol s_5[] = { 'y' };
-static const symbol s_6[] = { 'Y' };
-static const symbol s_7[] = { 'i' };
-static const symbol s_8[] = { 'I' };
-static const symbol s_9[] = { 'y' };
-static const symbol s_10[] = { 'Y' };
-static const symbol s_11[] = { 'y' };
-static const symbol s_12[] = { 'i' };
-static const symbol s_13[] = { 'e' };
-static const symbol s_14[] = { 'g', 'e', 'm' };
-static const symbol s_15[] = { 'h', 'e', 'i', 'd' };
-static const symbol s_16[] = { 'h', 'e', 'i', 'd' };
-static const symbol s_17[] = { 'c' };
-static const symbol s_18[] = { 'e', 'n' };
-static const symbol s_19[] = { 'i', 'g' };
-static const symbol s_20[] = { 'e' };
-static const symbol s_21[] = { 'e' };
+static const symbol s_5[] = { 'Y' };
+static const symbol s_6[] = { 'I' };
+static const symbol s_7[] = { 'Y' };
+static const symbol s_8[] = { 'y' };
+static const symbol s_9[] = { 'i' };
+static const symbol s_10[] = { 'g', 'e', 'm' };
+static const symbol s_11[] = { 'h', 'e', 'i', 'd' };
+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) {
+static int r_prelude(struct SN_env * z) { /* forwardmode */
int among_var;
- { int c_test = z->c; /* test, line 42 */
+ { int c_test1 = z->c; /* test, line 42 */
while(1) { /* repeat, line 42 */
- int c1 = z->c;
+ int c2 = z->c;
z->bra = z->c; /* [, line 43 */
- if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((340306450 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else
- among_var = find_among(z, a_0, 11); /* substring, line 43 */
+ if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((340306450 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else /* substring, line 43 */
+ among_var = find_among(z, a_0, 11);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 43 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 43 */
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
if (ret < 0) return ret;
@@ -198,48 +190,51 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab0:
- z->c = c1;
+ z->c = c2;
break;
}
- z->c = c_test;
+ z->c = c_test1;
}
- { int c_keep = z->c; /* try, line 57 */
+ { int c3 = z->c; /* try, line 57 */
z->bra = z->c; /* [, line 57 */
- if (!(eq_s(z, 1, s_5))) { z->c = c_keep; goto lab1; }
+ if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } /* literal, line 57 */
+ z->c++;
z->ket = z->c; /* ], line 57 */
- { int ret = slice_from_s(z, 1, s_6); /* <-, line 57 */
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 57 */
if (ret < 0) return ret;
}
lab1:
;
}
while(1) { /* repeat, line 58 */
- int c2 = z->c;
+ int c4 = z->c;
while(1) { /* goto, line 58 */
- int c3 = z->c;
- if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3;
+ int c5 = z->c;
+ if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3; /* grouping v, line 59 */
z->bra = z->c; /* [, line 59 */
- { int c4 = z->c; /* or, line 59 */
- if (!(eq_s(z, 1, s_7))) goto lab5;
+ { int c6 = z->c; /* or, line 59 */
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab5; /* literal, line 59 */
+ z->c++;
z->ket = z->c; /* ], line 59 */
- if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5;
- { int ret = slice_from_s(z, 1, s_8); /* <-, line 59 */
+ if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5; /* grouping v, line 59 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 59 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
- z->c = c4;
- if (!(eq_s(z, 1, s_9))) goto lab3;
+ z->c = c6;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 60 */
+ z->c++;
z->ket = z->c; /* ], line 60 */
- { int ret = slice_from_s(z, 1, s_10); /* <-, line 60 */
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 60 */
if (ret < 0) return ret;
}
}
lab4:
- z->c = c3;
+ z->c = c5;
break;
lab3:
- z->c = c3;
+ z->c = c5;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
if (ret < 0) goto lab2;
z->c = ret; /* goto, line 58 */
@@ -247,15 +242,15 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab2:
- z->c = c2;
+ z->c = c4;
break;
}
return 1;
}
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
+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 */
int ret = out_grouping_U(z, g_v, 97, 232, 1);
if (ret < 0) return 0;
@@ -267,9 +262,9 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 69 */
- /* try, line 70 */
- if (!(z->I[0] < 3)) goto lab0;
- z->I[0] = 3;
+ /* try, line 70 */
+ if (!(z->I[0] < 3)) goto lab0; /* $( < ), line 70 */
+ z->I[0] = 3; /* $p1 = , line 70 */
lab0:
{ /* gopast */ /* grouping v, line 71 */
int ret = out_grouping_U(z, g_v, 97, 232, 1);
@@ -285,24 +280,23 @@ lab0:
return 1;
}
-static int r_postlude(struct SN_env * z) {
+static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 75 */
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
- among_var = find_among(z, a_1, 3); /* substring, 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 */
+ among_var = find_among(z, a_1, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 77 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 77 */
case 1:
- { int ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 78 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
+ { int ret = slice_from_s(z, 1, s_9); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
@@ -321,21 +315,21 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 87 */
return 1;
}
-static int r_R2(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 88 */
return 1;
}
-static int r_undouble(struct SN_env * z) {
- { int m_test = 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;
- if (!(find_among_b(z, a_2, 3))) return 0; /* among, line 91 */
- z->c = z->l - m_test;
+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 */
+ if (!(find_among_b(z, a_2, 3))) return 0;
+ z->c = z->l - m_test1;
}
z->ket = z->c; /* [, line 91 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
@@ -349,40 +343,38 @@ static int r_undouble(struct SN_env * z) {
return 1;
}
-static int r_e_ending(struct SN_env * z) {
+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 (!(eq_s_b(z, 1, s_13))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 96 */
+ z->c--;
z->bra = z->c; /* ], line 96 */
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 96 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 96 */
+ if (ret <= 0) return ret;
}
- { int m_test = z->l - z->c; /* test, line 96 */
- if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0;
- z->c = z->l - m_test;
+ { int m_test1 = z->l - z->c; /* test, line 96 */
+ if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; /* non v, line 96 */
+ z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set e_found, line 97 */
- { int ret = r_undouble(z);
- if (ret == 0) return 0; /* call undouble, line 98 */
- if (ret < 0) return ret;
+ { int ret = r_undouble(z); /* call undouble, line 98 */
+ if (ret <= 0) return ret;
}
return 1;
}
-static int r_en_ending(struct SN_env * z) {
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 102 */
- if (ret < 0) return ret;
+static int r_en_ending(struct SN_env * z) { /* backwardmode */
+ { int ret = r_R1(z); /* call R1, line 102 */
+ if (ret <= 0) return ret;
}
{ int m1 = z->l - z->c; (void)m1; /* and, line 102 */
- if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0;
+ if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; /* non v, line 102 */
z->c = z->l - m1;
{ int m2 = z->l - z->c; (void)m2; /* not, line 102 */
- if (!(eq_s_b(z, 3, s_14))) goto lab0;
+ if (!(eq_s_b(z, 3, s_10))) goto lab0; /* literal, line 102 */
return 0;
lab0:
z->c = z->l - m2;
@@ -391,44 +383,42 @@ static int r_en_ending(struct SN_env * z) {
{ int ret = slice_del(z); /* delete, line 102 */
if (ret < 0) return ret;
}
- { int ret = r_undouble(z);
- if (ret == 0) return 0; /* call undouble, line 103 */
- if (ret < 0) return ret;
+ { int ret = r_undouble(z); /* call undouble, line 103 */
+ if (ret <= 0) return ret;
}
return 1;
}
-static int r_standard_suffix(struct SN_env * z) {
+static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
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;
- among_var = find_among_b(z, a_3, 5); /* substring, 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 */
+ among_var = find_among_b(z, a_3, 5);
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 108 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 108 */
case 1:
- { int ret = r_R1(z);
- if (ret == 0) goto lab0; /* call R1, line 110 */
+ { int ret = r_R1(z); /* call R1, line 110 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
- { int ret = slice_from_s(z, 4, s_15); /* <-, line 110 */
+ { int ret = slice_from_s(z, 4, s_11); /* <-, line 110 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = r_en_ending(z);
- if (ret == 0) goto lab0; /* call en_ending, line 113 */
+ { int ret = r_en_ending(z); /* call en_ending, line 113 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = r_R1(z);
- if (ret == 0) goto lab0; /* call R1, line 116 */
+ { int ret = r_R1(z); /* call R1, line 116 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
- if (out_grouping_b_U(z, g_v_j, 97, 232, 0)) goto lab0;
+ if (out_grouping_b_U(z, g_v_j, 97, 232, 0)) goto lab0; /* non v_j, line 116 */
{ int ret = slice_del(z); /* delete, line 116 */
if (ret < 0) return ret;
}
@@ -438,8 +428,8 @@ static int r_standard_suffix(struct SN_env * z) {
z->c = z->l - m1;
}
{ int m2 = z->l - z->c; (void)m2; /* do, line 120 */
- { int ret = r_e_ending(z);
- if (ret == 0) goto lab1; /* call e_ending, line 120 */
+ { int ret = r_e_ending(z); /* call e_ending, line 120 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
@@ -447,14 +437,15 @@ static int r_standard_suffix(struct SN_env * z) {
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 122 */
z->ket = z->c; /* [, line 122 */
- if (!(eq_s_b(z, 4, s_16))) goto lab2;
+ if (!(eq_s_b(z, 4, s_12))) goto lab2; /* literal, line 122 */
z->bra = z->c; /* ], line 122 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab2; /* call R2, line 122 */
+ { int ret = r_R2(z); /* call R2, line 122 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
{ int m4 = z->l - z->c; (void)m4; /* not, line 122 */
- if (!(eq_s_b(z, 1, s_17))) goto lab3;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab3; /* literal, line 122 */
+ z->c--;
goto lab2;
lab3:
z->c = z->l - m4;
@@ -463,10 +454,10 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 123 */
- if (!(eq_s_b(z, 2, s_18))) goto lab2;
+ if (!(eq_s_b(z, 2, s_13))) goto lab2; /* literal, line 123 */
z->bra = z->c; /* ], line 123 */
- { int ret = r_en_ending(z);
- if (ret == 0) goto lab2; /* call en_ending, line 123 */
+ { int ret = r_en_ending(z); /* call en_ending, line 123 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
@@ -474,15 +465,14 @@ static int r_standard_suffix(struct SN_env * z) {
}
{ 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 lab4;
- among_var = find_among_b(z, a_4, 6); /* substring, line 127 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab4; /* substring, line 127 */
+ among_var = find_among_b(z, a_4, 6);
if (!(among_var)) goto lab4;
z->bra = z->c; /* ], line 127 */
- switch(among_var) {
- case 0: goto lab4;
+ switch (among_var) { /* among, line 127 */
case 1:
- { int ret = r_R2(z);
- if (ret == 0) goto lab4; /* call R2, line 129 */
+ { int ret = r_R2(z); /* call R2, line 129 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 129 */
@@ -490,14 +480,15 @@ static int r_standard_suffix(struct SN_env * z) {
}
{ int m6 = z->l - z->c; (void)m6; /* or, line 130 */
z->ket = z->c; /* [, line 130 */
- if (!(eq_s_b(z, 2, s_19))) goto lab6;
+ if (!(eq_s_b(z, 2, s_14))) goto lab6; /* literal, line 130 */
z->bra = z->c; /* ], line 130 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab6; /* call R2, line 130 */
+ { int ret = r_R2(z); /* call R2, line 130 */
+ if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
{ int m7 = z->l - z->c; (void)m7; /* not, line 130 */
- if (!(eq_s_b(z, 1, s_20))) goto lab7;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7; /* literal, line 130 */
+ z->c--;
goto lab6;
lab7:
z->c = z->l - m7;
@@ -508,20 +499,21 @@ static int r_standard_suffix(struct SN_env * z) {
goto lab5;
lab6:
z->c = z->l - m6;
- { int ret = r_undouble(z);
- if (ret == 0) goto lab4; /* call undouble, line 130 */
+ { int ret = r_undouble(z); /* call undouble, line 130 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
break;
case 2:
- { int ret = r_R2(z);
- if (ret == 0) goto lab4; /* call R2, line 133 */
+ { int ret = r_R2(z); /* call R2, line 133 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int m8 = z->l - z->c; (void)m8; /* not, line 133 */
- if (!(eq_s_b(z, 1, s_21))) goto lab8;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8; /* literal, line 133 */
+ z->c--;
goto lab4;
lab8:
z->c = z->l - m8;
@@ -531,21 +523,21 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 3:
- { int ret = r_R2(z);
- if (ret == 0) goto lab4; /* call R2, line 136 */
+ { int ret = r_R2(z); /* call R2, line 136 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 136 */
if (ret < 0) return ret;
}
- { int ret = r_e_ending(z);
- if (ret == 0) goto lab4; /* call e_ending, line 136 */
+ { int ret = r_e_ending(z); /* call e_ending, line 136 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = r_R2(z);
- if (ret == 0) goto lab4; /* call R2, line 139 */
+ { int ret = r_R2(z); /* call R2, line 139 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 139 */
@@ -553,8 +545,8 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 5:
- { int ret = r_R2(z);
- if (ret == 0) goto lab4; /* call R2, line 142 */
+ { int ret = r_R2(z); /* call R2, line 142 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
if (!(z->B[0])) goto lab4; /* Boolean test e_found, line 142 */
@@ -567,12 +559,12 @@ static int r_standard_suffix(struct SN_env * z) {
z->c = z->l - m5;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 146 */
- if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab9;
- { int m_test = 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 lab9;
- if (!(find_among_b(z, a_5, 4))) goto lab9; /* among, line 149 */
- if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab9;
- z->c = z->l - m_test;
+ if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab9; /* 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 lab9; /* among, line 149 */
+ if (!(find_among_b(z, a_5, 4))) goto lab9;
+ if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab9; /* non v, line 150 */
+ z->c = z->l - m_test10;
}
z->ket = z->c; /* [, line 152 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
@@ -589,18 +581,18 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
-extern int dutch_UTF_8_stem(struct SN_env * z) {
+extern int dutch_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 159 */
- { int ret = r_prelude(z);
- if (ret == 0) goto lab0; /* call prelude, line 159 */
+ { int ret = r_prelude(z); /* call prelude, line 159 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 160 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab1; /* call mark_regions, line 160 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 160 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
@@ -608,22 +600,20 @@ extern int dutch_UTF_8_stem(struct SN_env * z) {
}
z->lb = z->c; z->c = z->l; /* backwards, line 161 */
- { int m3 = z->l - z->c; (void)m3; /* do, line 162 */
- { int ret = r_standard_suffix(z);
- if (ret == 0) goto lab2; /* call standard_suffix, line 162 */
- if (ret < 0) return ret;
- }
- lab2:
- z->c = z->l - m3;
+ /* do, line 162 */
+ { int ret = r_standard_suffix(z); /* call standard_suffix, line 162 */
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
}
+lab2:
z->c = z->lb;
- { int c4 = z->c; /* do, line 163 */
- { int ret = r_postlude(z);
- if (ret == 0) goto lab3; /* call postlude, line 163 */
+ { int c3 = z->c; /* do, line 163 */
+ { int ret = r_postlude(z); /* call postlude, line 163 */
+ if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
- z->c = c4;
+ z->c = c3;
}
return 1;
}
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_english.c b/src/backend/snowball/libstemmer/stem_UTF_8_english.c
index c5d4c2a445d..ae206f654f6 100644
--- a/src/backend/snowball/libstemmer/stem_UTF_8_english.c
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_english.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -153,12 +153,12 @@ 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, 16, 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, 14, 0},
-/* 8 */ { 6, s_5_8, 3, 15, 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},
@@ -317,62 +317,52 @@ static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
static const unsigned char g_valid_LI[] = { 55, 141, 2 };
-static const symbol s_0[] = { '\'' };
-static const symbol s_1[] = { 'y' };
-static const symbol s_2[] = { 'Y' };
-static const symbol s_3[] = { 'y' };
-static const symbol s_4[] = { 'Y' };
-static const symbol s_5[] = { 's', 's' };
-static const symbol s_6[] = { 'i' };
-static const symbol s_7[] = { 'i', 'e' };
-static const symbol s_8[] = { 'e', 'e' };
-static const symbol s_9[] = { 'e' };
-static const symbol s_10[] = { 'e' };
-static const symbol s_11[] = { 'y' };
-static const symbol s_12[] = { 'Y' };
-static const symbol s_13[] = { 'i' };
-static const symbol s_14[] = { 't', 'i', 'o', 'n' };
-static const symbol s_15[] = { 'e', 'n', 'c', 'e' };
-static const symbol s_16[] = { 'a', 'n', 'c', 'e' };
-static const symbol s_17[] = { 'a', 'b', 'l', 'e' };
-static const symbol s_18[] = { 'e', 'n', 't' };
-static const symbol s_19[] = { 'i', 'z', 'e' };
-static const symbol s_20[] = { 'a', 't', 'e' };
-static const symbol s_21[] = { 'a', 'l' };
-static const symbol s_22[] = { 'f', 'u', 'l' };
-static const symbol s_23[] = { 'o', 'u', 's' };
-static const symbol s_24[] = { 'i', 'v', 'e' };
-static const symbol s_25[] = { 'b', 'l', 'e' };
-static const symbol s_26[] = { 'l' };
-static const symbol s_27[] = { 'o', 'g' };
-static const symbol s_28[] = { 'f', 'u', 'l' };
-static const symbol s_29[] = { 'l', 'e', 's', 's' };
-static const symbol s_30[] = { 't', 'i', 'o', 'n' };
-static const symbol s_31[] = { 'a', 't', 'e' };
-static const symbol s_32[] = { 'a', 'l' };
-static const symbol s_33[] = { 'i', 'c' };
-static const symbol s_34[] = { 's' };
-static const symbol s_35[] = { 't' };
-static const symbol s_36[] = { 'l' };
-static const symbol s_37[] = { 's', 'k', 'i' };
-static const symbol s_38[] = { 's', 'k', 'y' };
-static const symbol s_39[] = { 'd', 'i', 'e' };
-static const symbol s_40[] = { 'l', 'i', 'e' };
-static const symbol s_41[] = { 't', 'i', 'e' };
-static const symbol s_42[] = { 'i', 'd', 'l' };
-static const symbol s_43[] = { 'g', 'e', 'n', 't', 'l' };
-static const symbol s_44[] = { 'u', 'g', 'l', 'i' };
-static const symbol s_45[] = { 'e', 'a', 'r', 'l', 'i' };
-static const symbol s_46[] = { 'o', 'n', 'l', 'i' };
-static const symbol s_47[] = { 's', 'i', 'n', 'g', 'l' };
-static const symbol s_48[] = { 'Y' };
-static const symbol s_49[] = { 'y' };
+static const symbol s_0[] = { 'Y' };
+static const symbol s_1[] = { 'Y' };
+static const symbol s_2[] = { 's', 's' };
+static const symbol s_3[] = { 'i' };
+static const symbol s_4[] = { 'i', 'e' };
+static const symbol s_5[] = { 'e', 'e' };
+static const symbol s_6[] = { 'e' };
+static const symbol s_7[] = { 'e' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 't', 'i', 'o', 'n' };
+static const symbol s_10[] = { 'e', 'n', 'c', 'e' };
+static const symbol s_11[] = { 'a', 'n', 'c', 'e' };
+static const symbol s_12[] = { 'a', 'b', 'l', 'e' };
+static const symbol s_13[] = { 'e', 'n', 't' };
+static const symbol s_14[] = { 'i', 'z', 'e' };
+static const symbol s_15[] = { 'a', 't', 'e' };
+static const symbol s_16[] = { 'a', 'l' };
+static const symbol s_17[] = { 'f', 'u', 'l' };
+static const symbol s_18[] = { 'o', 'u', 's' };
+static const symbol s_19[] = { 'i', 'v', 'e' };
+static const symbol s_20[] = { 'b', 'l', 'e' };
+static const symbol s_21[] = { 'o', 'g' };
+static const symbol s_22[] = { 'l', 'e', 's', 's' };
+static const symbol s_23[] = { 't', 'i', 'o', 'n' };
+static const symbol s_24[] = { 'a', 't', 'e' };
+static const symbol s_25[] = { 'a', 'l' };
+static const symbol s_26[] = { 'i', 'c' };
+static const symbol s_27[] = { 's', 'k', 'i' };
+static const symbol s_28[] = { 's', 'k', 'y' };
+static const symbol s_29[] = { 'd', 'i', 'e' };
+static const symbol s_30[] = { 'l', 'i', 'e' };
+static const symbol s_31[] = { 't', 'i', 'e' };
+static const symbol s_32[] = { 'i', 'd', 'l' };
+static const symbol s_33[] = { 'g', 'e', 'n', 't', 'l' };
+static const symbol s_34[] = { 'u', 'g', 'l', 'i' };
+static const symbol s_35[] = { 'e', 'a', 'r', 'l', 'i' };
+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) {
+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 (!(eq_s(z, 1, s_0))) goto lab0;
+ if (z->c == z->l || z->p[z->c] != '\'') goto lab0; /* literal, line 27 */
+ z->c++;
z->ket = z->c; /* ], line 27 */
{ int ret = slice_del(z); /* delete, line 27 */
if (ret < 0) return ret;
@@ -382,9 +372,10 @@ static int r_prelude(struct SN_env * z) {
}
{ int c2 = z->c; /* do, line 28 */
z->bra = z->c; /* [, line 28 */
- if (!(eq_s(z, 1, s_1))) goto lab1;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab1; /* literal, line 28 */
+ z->c++;
z->ket = z->c; /* ], line 28 */
- { int ret = slice_from_s(z, 1, s_2); /* <-, line 28 */
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 28 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 28 */
@@ -396,9 +387,10 @@ static int r_prelude(struct SN_env * z) {
int c4 = z->c;
while(1) { /* goto, line 29 */
int c5 = z->c;
- if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab4;
+ if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab4; /* grouping v, line 29 */
z->bra = z->c; /* [, line 29 */
- if (!(eq_s(z, 1, s_3))) goto lab4;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 29 */
+ z->c++;
z->ket = z->c; /* ], line 29 */
z->c = c5;
break;
@@ -409,7 +401,7 @@ static int r_prelude(struct SN_env * z) {
z->c = ret; /* goto, line 29 */
}
}
- { int ret = slice_from_s(z, 1, s_4); /* <-, line 29 */
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 29 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 29 */
@@ -423,13 +415,13 @@ static int r_prelude(struct SN_env * z) {
return 1;
}
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
+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;
- if (!(find_among(z, a_0, 3))) goto lab2; /* among, line 36 */
+ 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 */
+ if (!(find_among(z, a_0, 3))) goto lab2;
goto lab1;
lab2:
z->c = c2;
@@ -463,76 +455,69 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
-static int r_shortv(struct SN_env * z) {
+static int r_shortv(struct SN_env * z) { /* backwardmode */
{ int m1 = z->l - z->c; (void)m1; /* or, line 51 */
- if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) goto lab1;
- if (in_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1;
- if (out_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1;
+ if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) goto lab1; /* non v_WXY, line 50 */
+ if (in_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1; /* grouping v, line 50 */
+ if (out_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1; /* non v, line 50 */
goto lab0;
lab1:
z->c = z->l - m1;
- if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
- if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
+ if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* non v, line 52 */
+ if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 52 */
if (z->c > z->lb) return 0; /* atlimit, line 52 */
}
lab0:
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 55 */
return 1;
}
-static int r_R2(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 56 */
return 1;
}
-static int r_Step_1a(struct SN_env * z) {
+static int r_Step_1a(struct SN_env * z) { /* backwardmode */
int among_var;
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 59 */
+ { 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 - m_keep; goto lab0; }
- among_var = find_among_b(z, a_1, 3); /* substring, line 60 */
- if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
+ 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 */
+ if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; }
z->bra = z->c; /* ], line 60 */
- switch(among_var) {
- case 0: { z->c = z->l - m_keep; goto lab0; }
- case 1:
- { int ret = slice_del(z); /* delete, line 62 */
- if (ret < 0) return ret;
- }
- break;
+ { int ret = slice_del(z); /* delete, line 62 */
+ 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;
- among_var = find_among_b(z, a_2, 6); /* substring, line 65 */
+ if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0; /* substring, line 65 */
+ among_var = find_among_b(z, a_2, 6);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 65 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 65 */
case 1:
- { int ret = slice_from_s(z, 2, s_5); /* <-, line 66 */
+ { int ret = slice_from_s(z, 2, s_2); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m1 = z->l - z->c; (void)m1; /* or, line 68 */
- { int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 2);
+ { int m2 = z->l - z->c; (void)m2; /* or, line 68 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 2); /* hop, line 68 */
if (ret < 0) goto lab2;
- z->c = ret; /* hop, line 68 */
+ z->c = ret;
}
- { int ret = slice_from_s(z, 1, s_6); /* <-, line 68 */
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 68 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = z->l - m1;
- { int ret = slice_from_s(z, 2, s_7); /* <-, line 68 */
+ z->c = z->l - m2;
+ { int ret = slice_from_s(z, 2, s_4); /* <-, line 68 */
if (ret < 0) return ret;
}
}
@@ -556,48 +541,47 @@ static int r_Step_1a(struct SN_env * z) {
return 1;
}
-static int r_Step_1b(struct SN_env * z) {
+static int r_Step_1b(struct SN_env * z) { /* backwardmode */
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;
- among_var = find_among_b(z, a_4, 6); /* substring, 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 */
+ among_var = find_among_b(z, a_4, 6);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 75 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 75 */
case 1:
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 77 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 77 */
+ if (ret <= 0) return ret;
}
- { int ret = slice_from_s(z, 2, s_8); /* <-, line 77 */
+ { int ret = slice_from_s(z, 2, s_5); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m_test = z->l - z->c; /* test, line 80 */
+ { int m_test1 = z->l - z->c; /* test, line 80 */
{ /* gopast */ /* grouping v, line 80 */
int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
if (ret < 0) return 0;
z->c -= ret;
}
- z->c = z->l - m_test;
+ z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 80 */
if (ret < 0) return ret;
}
- { int m_test = 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
- among_var = find_among_b(z, a_3, 13); /* substring, line 81 */
+ { 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 */
+ among_var = find_among_b(z, a_3, 13);
if (!(among_var)) return 0;
- z->c = z->l - m_test;
+ z->c = z->l - m_test2;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 81 */
case 1:
- { int c_keep = z->c;
- int ret = insert_s(z, z->c, z->c, 1, s_9); /* <+, line 83 */
- z->c = c_keep;
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_6); /* <+, line 83 */
+ z->c = saved_c;
+ }
if (ret < 0) return ret;
}
break;
@@ -614,16 +598,17 @@ static int r_Step_1b(struct SN_env * z) {
break;
case 3:
if (z->c != z->I[0]) return 0; /* atmark, line 87 */
- { int m_test = z->l - z->c; /* test, line 87 */
- { int ret = r_shortv(z);
- if (ret == 0) return 0; /* call shortv, line 87 */
- if (ret < 0) return ret;
+ { int m_test3 = z->l - z->c; /* test, line 87 */
+ { int ret = r_shortv(z); /* call shortv, line 87 */
+ if (ret <= 0) return ret;
}
- z->c = z->l - m_test;
+ z->c = z->l - m_test3;
}
- { int c_keep = z->c;
- int ret = insert_s(z, z->c, z->c, 1, s_10); /* <+, line 87 */
- z->c = c_keep;
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_7); /* <+, line 87 */
+ z->c = saved_c;
+ }
if (ret < 0) return ret;
}
break;
@@ -633,121 +618,115 @@ static int r_Step_1b(struct SN_env * z) {
return 1;
}
-static int r_Step_1c(struct SN_env * z) {
+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 (!(eq_s_b(z, 1, s_11))) goto lab1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 94 */
+ z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
- if (!(eq_s_b(z, 1, s_12))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 94 */
+ z->c--;
}
lab0:
z->bra = z->c; /* ], line 94 */
- if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
- { int m2 = z->l - z->c; (void)m2; /* not, line 95 */
- if (z->c > z->lb) goto lab2; /* atlimit, line 95 */
- return 0;
- lab2:
- z->c = z->l - m2;
- }
- { int ret = slice_from_s(z, 1, s_13); /* <-, line 96 */
+ if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* non v, line 95 */
+ /* not, line 95 */
+ if (z->c > z->lb) goto lab2; /* atlimit, line 95 */
+ return 0;
+lab2:
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 96 */
if (ret < 0) return ret;
}
return 1;
}
-static int r_Step_2(struct SN_env * z) {
+static int r_Step_2(struct SN_env * z) { /* backwardmode */
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;
- among_var = find_among_b(z, a_5, 24); /* substring, 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 */
+ 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);
- if (ret == 0) return 0; /* call R1, line 100 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 100 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 100 */
case 1:
- { int ret = slice_from_s(z, 4, s_14); /* <-, line 101 */
+ { int ret = slice_from_s(z, 4, s_9); /* <-, line 101 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 4, s_15); /* <-, line 102 */
+ { int ret = slice_from_s(z, 4, s_10); /* <-, line 102 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 4, s_16); /* <-, line 103 */
+ { int ret = slice_from_s(z, 4, s_11); /* <-, line 103 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = slice_from_s(z, 4, s_17); /* <-, line 104 */
+ { int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret = slice_from_s(z, 3, s_18); /* <-, line 105 */
+ { int ret = slice_from_s(z, 3, s_13); /* <-, line 105 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret = slice_from_s(z, 3, s_19); /* <-, line 107 */
+ { int ret = slice_from_s(z, 3, s_14); /* <-, line 107 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret = slice_from_s(z, 3, s_20); /* <-, line 109 */
+ { int ret = slice_from_s(z, 3, s_15); /* <-, line 109 */
if (ret < 0) return ret;
}
break;
case 8:
- { int ret = slice_from_s(z, 2, s_21); /* <-, line 111 */
+ { int ret = slice_from_s(z, 2, s_16); /* <-, line 111 */
if (ret < 0) return ret;
}
break;
case 9:
- { int ret = slice_from_s(z, 3, s_22); /* <-, line 112 */
+ { int ret = slice_from_s(z, 3, s_17); /* <-, line 112 */
if (ret < 0) return ret;
}
break;
case 10:
- { int ret = slice_from_s(z, 3, s_23); /* <-, line 114 */
+ { int ret = slice_from_s(z, 3, s_18); /* <-, line 114 */
if (ret < 0) return ret;
}
break;
case 11:
- { int ret = slice_from_s(z, 3, s_24); /* <-, line 116 */
+ { int ret = slice_from_s(z, 3, s_19); /* <-, line 116 */
if (ret < 0) return ret;
}
break;
case 12:
- { int ret = slice_from_s(z, 3, s_25); /* <-, line 118 */
+ { int ret = slice_from_s(z, 3, s_20); /* <-, line 118 */
if (ret < 0) return ret;
}
break;
case 13:
- if (!(eq_s_b(z, 1, s_26))) return 0;
- { int ret = slice_from_s(z, 2, s_27); /* <-, line 119 */
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 119 */
+ z->c--;
+ { int ret = slice_from_s(z, 2, s_21); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
case 14:
- { int ret = slice_from_s(z, 3, s_28); /* <-, line 120 */
+ { int ret = slice_from_s(z, 4, s_22); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
case 15:
- { int ret = slice_from_s(z, 4, s_29); /* <-, line 121 */
- if (ret < 0) return ret;
- }
- break;
- case 16:
- if (in_grouping_b_U(z, g_valid_LI, 99, 116, 0)) return 0;
+ if (in_grouping_b_U(z, g_valid_LI, 99, 116, 0)) return 0; /* grouping valid_LI, line 122 */
{ int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
@@ -756,36 +735,34 @@ static int r_Step_2(struct SN_env * z) {
return 1;
}
-static int r_Step_3(struct SN_env * z) {
+static int r_Step_3(struct SN_env * z) { /* backwardmode */
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;
- among_var = find_among_b(z, a_6, 9); /* substring, 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 */
+ 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);
- if (ret == 0) return 0; /* call R1, line 127 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 127 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 127 */
case 1:
- { int ret = slice_from_s(z, 4, s_30); /* <-, line 128 */
+ { int ret = slice_from_s(z, 4, s_23); /* <-, line 128 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 3, s_31); /* <-, line 129 */
+ { int ret = slice_from_s(z, 3, s_24); /* <-, line 129 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 2, s_32); /* <-, line 130 */
+ { int ret = slice_from_s(z, 2, s_25); /* <-, line 130 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = slice_from_s(z, 2, s_33); /* <-, line 132 */
+ { int ret = slice_from_s(z, 2, s_26); /* <-, line 132 */
if (ret < 0) return ret;
}
break;
@@ -795,9 +772,8 @@ static int r_Step_3(struct SN_env * z) {
}
break;
case 6:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 136 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 136 */
+ if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 136 */
if (ret < 0) return ret;
@@ -807,19 +783,17 @@ static int r_Step_3(struct SN_env * z) {
return 1;
}
-static int r_Step_4(struct SN_env * z) {
+static int r_Step_4(struct SN_env * z) { /* backwardmode */
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;
- among_var = find_among_b(z, a_7, 18); /* substring, 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 */
+ 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);
- if (ret == 0) return 0; /* call R2, line 141 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 141 */
+ if (ret <= 0) return ret;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 141 */
case 1:
{ int ret = slice_del(z); /* delete, line 144 */
if (ret < 0) return ret;
@@ -827,11 +801,13 @@ static int r_Step_4(struct SN_env * z) {
break;
case 2:
{ int m1 = z->l - z->c; (void)m1; /* or, line 145 */
- if (!(eq_s_b(z, 1, s_34))) goto lab1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 145 */
+ z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
- if (!(eq_s_b(z, 1, s_35))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 145 */
+ z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 145 */
@@ -842,31 +818,29 @@ static int r_Step_4(struct SN_env * z) {
return 1;
}
-static int r_Step_5(struct SN_env * z) {
+static int r_Step_5(struct SN_env * z) { /* backwardmode */
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;
- among_var = find_among_b(z, a_8, 2); /* substring, line 150 */
+ if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0; /* substring, line 150 */
+ among_var = find_among_b(z, a_8, 2);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 150 */
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 150 */
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 151 */
- { int ret = r_R2(z);
- if (ret == 0) goto lab1; /* call R2, line 151 */
+ { int ret = r_R2(z); /* call R2, line 151 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = z->l - m1;
- { int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 151 */
- if (ret < 0) return ret;
+ { int ret = r_R1(z); /* call R1, line 151 */
+ if (ret <= 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* not, line 151 */
- { int ret = r_shortv(z);
- if (ret == 0) goto lab2; /* call shortv, line 151 */
+ { int ret = r_shortv(z); /* call shortv, line 151 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
return 0;
@@ -880,11 +854,11 @@ static int r_Step_5(struct SN_env * z) {
}
break;
case 2:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 152 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 152 */
+ if (ret <= 0) return ret;
}
- if (!(eq_s_b(z, 1, s_36))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 152 */
+ z->c--;
{ int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
@@ -893,77 +867,76 @@ static int r_Step_5(struct SN_env * z) {
return 1;
}
-static int r_exception2(struct SN_env * z) {
+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;
- if (!(find_among_b(z, a_9, 8))) return 0; /* substring, 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 */
+ 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 */
return 1;
}
-static int r_exception1(struct SN_env * z) {
+static int r_exception1(struct SN_env * z) { /* forwardmode */
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;
- among_var = find_among(z, a_10, 18); /* substring, 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 */
+ 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) {
- case 0: return 0;
+ switch (among_var) { /* among, line 170 */
case 1:
- { int ret = slice_from_s(z, 3, s_37); /* <-, line 174 */
+ { int ret = slice_from_s(z, 3, s_27); /* <-, line 174 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 3, s_38); /* <-, line 175 */
+ { int ret = slice_from_s(z, 3, s_28); /* <-, line 175 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 3, s_39); /* <-, line 176 */
+ { int ret = slice_from_s(z, 3, s_29); /* <-, line 176 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret = slice_from_s(z, 3, s_40); /* <-, line 177 */
+ { int ret = slice_from_s(z, 3, s_30); /* <-, line 177 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret = slice_from_s(z, 3, s_41); /* <-, line 178 */
+ { int ret = slice_from_s(z, 3, s_31); /* <-, line 178 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret = slice_from_s(z, 3, s_42); /* <-, line 182 */
+ { int ret = slice_from_s(z, 3, s_32); /* <-, line 182 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret = slice_from_s(z, 5, s_43); /* <-, line 183 */
+ { int ret = slice_from_s(z, 5, s_33); /* <-, line 183 */
if (ret < 0) return ret;
}
break;
case 8:
- { int ret = slice_from_s(z, 4, s_44); /* <-, line 184 */
+ { int ret = slice_from_s(z, 4, s_34); /* <-, line 184 */
if (ret < 0) return ret;
}
break;
case 9:
- { int ret = slice_from_s(z, 5, s_45); /* <-, line 185 */
+ { int ret = slice_from_s(z, 5, s_35); /* <-, line 185 */
if (ret < 0) return ret;
}
break;
case 10:
- { int ret = slice_from_s(z, 4, s_46); /* <-, line 186 */
+ { int ret = slice_from_s(z, 4, s_36); /* <-, line 186 */
if (ret < 0) return ret;
}
break;
case 11:
- { int ret = slice_from_s(z, 5, s_47); /* <-, line 187 */
+ { int ret = slice_from_s(z, 5, s_37); /* <-, line 187 */
if (ret < 0) return ret;
}
break;
@@ -971,14 +944,15 @@ static int r_exception1(struct SN_env * z) {
return 1;
}
-static int r_postlude(struct SN_env * z) {
+static int r_postlude(struct SN_env * z) { /* forwardmode */
if (!(z->B[0])) return 0; /* Boolean test Y_found, line 203 */
while(1) { /* repeat, line 203 */
int c1 = z->c;
while(1) { /* goto, line 203 */
int c2 = z->c;
z->bra = z->c; /* [, line 203 */
- if (!(eq_s(z, 1, s_48))) goto lab1;
+ if (z->c == z->l || z->p[z->c] != 'Y') goto lab1; /* literal, line 203 */
+ z->c++;
z->ket = z->c; /* ], line 203 */
z->c = c2;
break;
@@ -989,7 +963,7 @@ static int r_postlude(struct SN_env * z) {
z->c = ret; /* goto, line 203 */
}
}
- { int ret = slice_from_s(z, 1, s_49); /* <-, line 203 */
+ { int ret = slice_from_s(z, 1, s_38); /* <-, line 203 */
if (ret < 0) return ret;
}
continue;
@@ -1000,19 +974,19 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
-extern int english_UTF_8_stem(struct SN_env * z) {
+extern int english_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* or, line 207 */
- { int ret = r_exception1(z);
- if (ret == 0) goto lab1; /* call exception1, line 207 */
+ { int ret = r_exception1(z); /* call exception1, line 207 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = c1;
{ int c2 = z->c; /* not, line 208 */
- { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3);
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 208 */
if (ret < 0) goto lab3;
- z->c = ret; /* hop, line 208 */
+ z->c = ret;
}
goto lab2;
lab3:
@@ -1021,98 +995,94 @@ extern int english_UTF_8_stem(struct SN_env * z) {
goto lab0;
lab2:
z->c = c1;
- { int c3 = z->c; /* do, line 209 */
- { int ret = r_prelude(z);
- if (ret == 0) goto lab4; /* call prelude, line 209 */
- if (ret < 0) return ret;
- }
- lab4:
- z->c = c3;
+ /* do, line 209 */
+ { int ret = r_prelude(z); /* call prelude, line 209 */
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
}
- { int c4 = z->c; /* do, line 210 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab5; /* call mark_regions, line 210 */
- if (ret < 0) return ret;
- }
- lab5:
- z->c = c4;
+ lab4:
+ /* do, line 210 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 210 */
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
}
+ lab5:
z->lb = z->c; z->c = z->l; /* backwards, line 211 */
- { int m5 = z->l - z->c; (void)m5; /* do, line 213 */
- { int ret = r_Step_1a(z);
- if (ret == 0) goto lab6; /* call Step_1a, line 213 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 213 */
+ { int ret = r_Step_1a(z); /* call Step_1a, line 213 */
+ if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
- z->c = z->l - m5;
+ z->c = z->l - m3;
}
- { int m6 = z->l - z->c; (void)m6; /* or, line 215 */
- { int ret = r_exception2(z);
- if (ret == 0) goto lab8; /* call exception2, line 215 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 215 */
+ { int ret = r_exception2(z); /* call exception2, line 215 */
+ if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
goto lab7;
lab8:
- z->c = z->l - m6;
- { int m7 = z->l - z->c; (void)m7; /* do, line 217 */
- { int ret = r_Step_1b(z);
- if (ret == 0) goto lab9; /* call Step_1b, line 217 */
+ 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 */
+ if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
- z->c = z->l - m7;
+ z->c = z->l - m5;
}
- { int m8 = z->l - z->c; (void)m8; /* do, line 218 */
- { int ret = r_Step_1c(z);
- if (ret == 0) goto lab10; /* call Step_1c, line 218 */
+ { int m6 = z->l - z->c; (void)m6; /* do, line 218 */
+ { int ret = r_Step_1c(z); /* call Step_1c, line 218 */
+ if (ret == 0) goto lab10;
if (ret < 0) return ret;
}
lab10:
- z->c = z->l - m8;
+ z->c = z->l - m6;
}
- { int m9 = z->l - z->c; (void)m9; /* do, line 220 */
- { int ret = r_Step_2(z);
- if (ret == 0) goto lab11; /* call Step_2, line 220 */
+ { int m7 = z->l - z->c; (void)m7; /* do, line 220 */
+ { int ret = r_Step_2(z); /* call Step_2, line 220 */
+ if (ret == 0) goto lab11;
if (ret < 0) return ret;
}
lab11:
- z->c = z->l - m9;
+ z->c = z->l - m7;
}
- { int m10 = z->l - z->c; (void)m10; /* do, line 221 */
- { int ret = r_Step_3(z);
- if (ret == 0) goto lab12; /* call Step_3, line 221 */
+ { int m8 = z->l - z->c; (void)m8; /* do, line 221 */
+ { int ret = r_Step_3(z); /* call Step_3, line 221 */
+ if (ret == 0) goto lab12;
if (ret < 0) return ret;
}
lab12:
- z->c = z->l - m10;
+ z->c = z->l - m8;
}
- { int m11 = z->l - z->c; (void)m11; /* do, line 222 */
- { int ret = r_Step_4(z);
- if (ret == 0) goto lab13; /* call Step_4, line 222 */
+ { int m9 = z->l - z->c; (void)m9; /* do, line 222 */
+ { int ret = r_Step_4(z); /* call Step_4, line 222 */
+ if (ret == 0) goto lab13;
if (ret < 0) return ret;
}
lab13:
- z->c = z->l - m11;
+ z->c = z->l - m9;
}
- { int m12 = z->l - z->c; (void)m12; /* do, line 224 */
- { int ret = r_Step_5(z);
- if (ret == 0) goto lab14; /* call Step_5, line 224 */
+ { int m10 = z->l - z->c; (void)m10; /* do, line 224 */
+ { int ret = r_Step_5(z); /* call Step_5, line 224 */
+ if (ret == 0) goto lab14;
if (ret < 0) return ret;
}
lab14:
- z->c = z->l - m12;
+ z->c = z->l - m10;
}
}
lab7:
z->c = z->lb;
- { int c13 = z->c; /* do, line 227 */
- { int ret = r_postlude(z);
- if (ret == 0) goto lab15; /* call postlude, line 227 */
+ { int c11 = z->c; /* do, line 227 */
+ { int ret = r_postlude(z); /* call postlude, line 227 */
+ if (ret == 0) goto lab15;
if (ret < 0) return ret;
}
lab15:
- z->c = c13;
+ z->c = c11;
}
}
lab0:
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c b/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c
index 55fba0a732d..0cbb64d65bf 100644
--- a/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -183,7 +183,7 @@ static const struct among a_6[30] =
/* 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, 9, 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},
@@ -205,7 +205,7 @@ static const struct among a_6[30] =
/* 26 */ { 3, s_6_26, 22, -1, 0},
/* 27 */ { 4, s_6_27, 26, -1, 0},
/* 28 */ { 4, s_6_28, 26, -1, 0},
-/* 29 */ { 4, s_6_29, 26, 9, 0}
+/* 29 */ { 4, s_6_29, 26, 2, 0}
};
static const symbol s_7_0[3] = { 'e', 'j', 'a' };
@@ -261,151 +261,134 @@ static const struct among a_9[2] =
static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
+static const unsigned char g_C[] = { 119, 223, 119, 1 };
+
static const unsigned char g_V1[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
static const unsigned char g_V2[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
static const unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
-static const symbol s_0[] = { 'k' };
-static const symbol s_1[] = { 'k', 's', 'e' };
-static const symbol s_2[] = { 'k', 's', 'i' };
-static const symbol s_3[] = { 'i' };
-static const symbol s_4[] = { 'a' };
-static const symbol s_5[] = { 'e' };
-static const symbol s_6[] = { 'i' };
-static const symbol s_7[] = { 'o' };
-static const symbol s_8[] = { 0xC3, 0xA4 };
-static const symbol s_9[] = { 0xC3, 0xB6 };
-static const symbol s_10[] = { 'i', 'e' };
-static const symbol s_11[] = { 'e' };
-static const symbol s_12[] = { 'p', 'o' };
-static const symbol s_13[] = { 't' };
-static const symbol s_14[] = { 'p', 'o' };
-static const symbol s_15[] = { 'j' };
-static const symbol s_16[] = { 'o' };
-static const symbol s_17[] = { 'u' };
-static const symbol s_18[] = { 'o' };
-static const symbol s_19[] = { 'j' };
+static const symbol s_0[] = { 'k', 's', 'e' };
+static const symbol s_1[] = { 'k', 's', 'i' };
+static const symbol s_2[] = { 0xC3, 0xA4 };
+static const symbol s_3[] = { 0xC3, 0xB6 };
+static const symbol s_4[] = { 'i', 'e' };
+static const symbol s_5[] = { 'p', 'o' };
+static const symbol s_6[] = { 'p', 'o' };
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
- if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 46 */
- { /* gopast */ /* non V1, line 46 */
- int ret = in_grouping_U(z, g_V1, 97, 246, 1);
- if (ret < 0) return 0;
- z->c += ret;
- }
- z->I[0] = z->c; /* setmark p1, line 46 */
+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_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 47 */
{ /* gopast */ /* non V1, line 47 */
int ret = in_grouping_U(z, g_V1, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
- z->I[1] = z->c; /* setmark p2, line 47 */
- return 1;
-}
-
-static int r_R2(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
- return 1;
-}
-
-static int r_particle_etc(struct SN_env * z) {
- int among_var;
- { int mlimit; /* setlimit, line 55 */
- int m1 = z->l - z->c; (void)m1;
- if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 55 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- z->ket = z->c; /* [, line 55 */
- among_var = find_among_b(z, a_0, 10); /* substring, line 55 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
- z->bra = z->c; /* ], line 55 */
- z->lb = mlimit;
+ z->I[0] = z->c; /* setmark p1, line 47 */
+ if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 48 */
+ { /* gopast */ /* non V1, line 48 */
+ int ret = in_grouping_U(z, g_V1, 97, 246, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
}
- switch(among_var) {
- case 0: return 0;
+ z->I[1] = z->c; /* setmark p2, line 48 */
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 53 */
+ return 1;
+}
+
+static int r_particle_etc(struct SN_env * z) { /* backwardmode */
+ 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 */
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c; /* ], line 56 */
+ z->lb = mlimit1;
+ }
+ switch (among_var) { /* among, line 57 */
case 1:
- if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) return 0;
+ if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) return 0; /* grouping particle_end, line 63 */
break;
case 2:
- { int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 64 */
- if (ret < 0) return ret;
+ { int ret = r_R2(z); /* call R2, line 65 */
+ if (ret <= 0) return ret;
}
break;
}
- { int ret = slice_del(z); /* delete, line 66 */
+ { int ret = slice_del(z); /* delete, line 67 */
if (ret < 0) return ret;
}
return 1;
}
-static int r_possessive(struct SN_env * z) {
+static int r_possessive(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 69 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 70 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 69 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- z->ket = z->c; /* [, line 69 */
- among_var = find_among_b(z, a_4, 9); /* substring, line 69 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
- z->bra = z->c; /* ], line 69 */
- z->lb = mlimit;
+ 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 */
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c; /* ], line 70 */
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 71 */
case 1:
- { int m2 = z->l - z->c; (void)m2; /* not, line 72 */
- if (!(eq_s_b(z, 1, s_0))) goto lab0;
+ { 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 */
+ z->c--;
return 0;
lab0:
z->c = z->l - m2;
}
- { int ret = slice_del(z); /* delete, line 72 */
+ { int ret = slice_del(z); /* delete, line 73 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_del(z); /* delete, line 74 */
+ { int ret = slice_del(z); /* delete, line 75 */
if (ret < 0) return ret;
}
- z->ket = z->c; /* [, line 74 */
- if (!(eq_s_b(z, 3, s_1))) return 0;
- z->bra = z->c; /* ], line 74 */
- { int ret = slice_from_s(z, 3, s_2); /* <-, line 74 */
+ 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 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_del(z); /* delete, line 78 */
+ { int ret = slice_del(z); /* delete, line 79 */
if (ret < 0) return ret;
}
break;
case 4:
- if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
- if (!(find_among_b(z, a_1, 6))) return 0; /* among, line 81 */
- { int ret = slice_del(z); /* delete, line 81 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0; /* among, line 82 */
+ if (!(find_among_b(z, a_1, 6))) return 0;
+ { int ret = slice_del(z); /* delete, line 82 */
if (ret < 0) return ret;
}
break;
case 5:
- if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0;
- if (!(find_among_b(z, a_2, 6))) return 0; /* among, line 83 */
- { int ret = slice_del(z); /* delete, line 84 */
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0; /* among, line 84 */
+ if (!(find_among_b(z, a_2, 6))) return 0;
+ { int ret = slice_del(z); /* delete, line 85 */
if (ret < 0) return ret;
}
break;
case 6:
- if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
- if (!(find_among_b(z, a_3, 2))) return 0; /* among, line 86 */
- { int ret = slice_del(z); /* delete, line 86 */
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0; /* among, line 87 */
+ if (!(find_among_b(z, a_3, 2))) return 0;
+ { int ret = slice_del(z); /* delete, line 87 */
if (ret < 0) return ret;
}
break;
@@ -413,350 +396,338 @@ static int r_possessive(struct SN_env * z) {
return 1;
}
-static int r_LONG(struct SN_env * z) {
- if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 91 */
+static int r_LONG(struct SN_env * z) { /* backwardmode */
+ if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 92 */
return 1;
}
-static int r_VI(struct SN_env * z) {
- if (!(eq_s_b(z, 1, s_3))) return 0;
- if (in_grouping_b_U(z, g_V2, 97, 246, 0)) return 0;
+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 */
+ z->c--;
+ if (in_grouping_b_U(z, g_V2, 97, 246, 0)) return 0; /* grouping V2, line 94 */
return 1;
}
-static int r_case_ending(struct SN_env * z) {
+static int r_case_ending(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 96 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 97 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 96 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- z->ket = z->c; /* [, line 96 */
- among_var = find_among_b(z, a_6, 30); /* substring, line 96 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
- z->bra = z->c; /* ], line 96 */
- z->lb = mlimit;
+ 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 */
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c; /* ], line 97 */
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 98 */
case 1:
- if (!(eq_s_b(z, 1, s_4))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; /* literal, line 99 */
+ z->c--;
break;
case 2:
- if (!(eq_s_b(z, 1, s_5))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 100 */
+ z->c--;
break;
case 3:
- if (!(eq_s_b(z, 1, s_6))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 101 */
+ z->c--;
break;
case 4:
- if (!(eq_s_b(z, 1, s_7))) return 0;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; /* literal, line 102 */
+ z->c--;
break;
case 5:
- if (!(eq_s_b(z, 2, s_8))) return 0;
+ if (!(eq_s_b(z, 2, s_2))) return 0; /* literal, line 103 */
break;
case 6:
- if (!(eq_s_b(z, 2, s_9))) return 0;
+ if (!(eq_s_b(z, 2, s_3))) return 0; /* literal, line 104 */
break;
case 7:
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
- { int m2 = z->l - z->c; (void)m2; /* and, line 113 */
- { int m3 = z->l - z->c; (void)m3; /* or, line 112 */
- { int ret = r_LONG(z);
- if (ret == 0) goto lab2; /* call LONG, line 111 */
+ { 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 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = z->l - m3;
- if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m_keep; goto lab0; }
+ z->c = z->l - m4;
+ if (!(eq_s_b(z, 2, s_4))) { z->c = z->l - m2; goto lab0; } /* literal, line 113 */
}
lab1:
- z->c = z->l - m2;
+ z->c = z->l - m3;
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (ret < 0) { z->c = z->l - m_keep; goto lab0; }
- z->c = ret; /* next, line 113 */
+ if (ret < 0) { z->c = z->l - m2; goto lab0; }
+ z->c = ret; /* next, line 114 */
}
}
- z->bra = z->c; /* ], line 113 */
+ z->bra = z->c; /* ], line 114 */
lab0:
;
}
break;
case 8:
- if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0;
- if (out_grouping_b_U(z, g_V1, 97, 246, 0)) return 0;
- break;
- case 9:
- if (!(eq_s_b(z, 1, s_11))) return 0;
+ if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0; /* grouping V1, line 120 */
+ if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 120 */
break;
}
- { int ret = slice_del(z); /* delete, line 138 */
+ { int ret = slice_del(z); /* delete, line 139 */
if (ret < 0) return ret;
}
- z->B[0] = 1; /* set ending_removed, line 139 */
+ z->B[0] = 1; /* set ending_removed, line 140 */
return 1;
}
-static int r_other_endings(struct SN_env * z) {
+static int r_other_endings(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 142 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 143 */
if (z->c < z->I[1]) return 0;
- z->c = z->I[1]; /* tomark, line 142 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- z->ket = z->c; /* [, line 142 */
- among_var = find_among_b(z, a_7, 14); /* substring, line 142 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
- z->bra = z->c; /* ], line 142 */
- z->lb = mlimit;
+ 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 */
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c; /* ], line 143 */
+ z->lb = mlimit1;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 144 */
case 1:
- { int m2 = z->l - z->c; (void)m2; /* not, line 146 */
- if (!(eq_s_b(z, 2, s_12))) goto lab0;
+ { int m2 = z->l - z->c; (void)m2; /* not, line 147 */
+ if (!(eq_s_b(z, 2, s_5))) goto lab0; /* literal, line 147 */
return 0;
lab0:
z->c = z->l - m2;
}
break;
}
- { int ret = slice_del(z); /* delete, line 151 */
+ { int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
return 1;
}
-static int r_i_plural(struct SN_env * z) {
- { int mlimit; /* setlimit, line 154 */
- int m1 = z->l - z->c; (void)m1;
+static int r_i_plural(struct SN_env * z) { /* backwardmode */
+
+ { int mlimit1; /* setlimit, line 155 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 154 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- z->ket = z->c; /* [, line 154 */
- if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit; return 0; }
- if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit; return 0; } /* substring, line 154 */
- z->bra = z->c; /* ], line 154 */
- z->lb = mlimit;
+ 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 */
+ if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c; /* ], line 155 */
+ z->lb = mlimit1;
}
- { int ret = slice_del(z); /* delete, line 158 */
+ { int ret = slice_del(z); /* delete, line 159 */
if (ret < 0) return ret;
}
return 1;
}
-static int r_t_plural(struct SN_env * z) {
+static int r_t_plural(struct SN_env * z) { /* backwardmode */
int among_var;
- { int mlimit; /* setlimit, line 161 */
- int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit1; /* setlimit, line 162 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 161 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- z->ket = z->c; /* [, line 162 */
- if (!(eq_s_b(z, 1, s_13))) { z->lb = mlimit; return 0; }
- z->bra = z->c; /* ], line 162 */
- { int m_test = z->l - z->c; /* test, line 162 */
- if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit; return 0; }
- z->c = z->l - m_test;
+ 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 */
+ z->c--;
+ z->bra = z->c; /* ], line 163 */
+ { int m_test2 = z->l - z->c; /* test, line 163 */
+ if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; } /* grouping V1, line 163 */
+ z->c = z->l - m_test2;
}
- { int ret = slice_del(z); /* delete, line 163 */
+ { int ret = slice_del(z); /* delete, line 164 */
if (ret < 0) return ret;
}
- z->lb = mlimit;
+ z->lb = mlimit1;
}
- { int mlimit; /* setlimit, line 165 */
- int m2 = z->l - z->c; (void)m2;
+
+ { int mlimit3; /* setlimit, line 166 */
if (z->c < z->I[1]) return 0;
- z->c = z->I[1]; /* tomark, line 165 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m2;
- z->ket = z->c; /* [, line 165 */
- if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit; return 0; }
- among_var = find_among_b(z, a_9, 2); /* substring, line 165 */
- if (!(among_var)) { z->lb = mlimit; return 0; }
- z->bra = z->c; /* ], line 165 */
- z->lb = mlimit;
+ 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 */
+ among_var = find_among_b(z, a_9, 2);
+ if (!(among_var)) { z->lb = mlimit3; return 0; }
+ z->bra = z->c; /* ], line 166 */
+ z->lb = mlimit3;
}
- switch(among_var) {
- case 0: return 0;
+ switch (among_var) { /* among, line 167 */
case 1:
- { int m3 = z->l - z->c; (void)m3; /* not, line 167 */
- if (!(eq_s_b(z, 2, s_14))) goto lab0;
+ { int m4 = z->l - z->c; (void)m4; /* not, line 168 */
+ if (!(eq_s_b(z, 2, s_6))) goto lab0; /* literal, line 168 */
return 0;
lab0:
- z->c = z->l - m3;
+ z->c = z->l - m4;
}
break;
}
- { int ret = slice_del(z); /* delete, line 170 */
+ { int ret = slice_del(z); /* delete, line 171 */
if (ret < 0) return ret;
}
return 1;
}
-static int r_tidy(struct SN_env * z) {
- { int mlimit; /* setlimit, line 173 */
- int m1 = z->l - z->c; (void)m1;
+static int r_tidy(struct SN_env * z) { /* backwardmode */
+
+ { int mlimit1; /* setlimit, line 174 */
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 173 */
- mlimit = z->lb; z->lb = z->c;
- z->c = z->l - m1;
- { int m2 = z->l - z->c; (void)m2; /* do, line 174 */
- { int m3 = z->l - z->c; (void)m3; /* and, line 174 */
- { int ret = r_LONG(z);
- if (ret == 0) goto lab0; /* call LONG, line 174 */
+ 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 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
z->c = z->l - m3;
- z->ket = z->c; /* [, line 174 */
+ z->ket = z->c; /* [, line 175 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
if (ret < 0) goto lab0;
- z->c = ret; /* next, line 174 */
+ z->c = ret; /* next, line 175 */
}
- z->bra = z->c; /* ], line 174 */
- { int ret = slice_del(z); /* delete, line 174 */
+ z->bra = z->c; /* ], line 175 */
+ { int ret = slice_del(z); /* delete, line 175 */
if (ret < 0) return ret;
}
}
lab0:
z->c = z->l - m2;
}
- { int m4 = z->l - z->c; (void)m4; /* do, line 175 */
- z->ket = z->c; /* [, line 175 */
- if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab1;
- z->bra = z->c; /* ], line 175 */
- if (out_grouping_b_U(z, g_V1, 97, 246, 0)) goto lab1;
- { int ret = slice_del(z); /* delete, line 175 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 176 */
+ z->ket = z->c; /* [, line 176 */
+ if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab1; /* grouping AEI, line 176 */
+ z->bra = z->c; /* ], line 176 */
+ if (in_grouping_b_U(z, g_C, 98, 122, 0)) goto lab1; /* grouping C, line 176 */
+ { int ret = slice_del(z); /* delete, line 176 */
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m4;
}
- { int m5 = z->l - z->c; (void)m5; /* do, line 176 */
- z->ket = z->c; /* [, line 176 */
- if (!(eq_s_b(z, 1, s_15))) goto lab2;
- z->bra = z->c; /* ], line 176 */
- { int m6 = z->l - z->c; (void)m6; /* or, line 176 */
- if (!(eq_s_b(z, 1, s_16))) goto lab4;
+ { 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 */
+ 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->c--;
goto lab3;
lab4:
z->c = z->l - m6;
- if (!(eq_s_b(z, 1, s_17))) goto lab2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2; /* literal, line 177 */
+ z->c--;
}
lab3:
- { int ret = slice_del(z); /* delete, line 176 */
+ { int ret = slice_del(z); /* delete, line 177 */
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m5;
}
- { int m7 = z->l - z->c; (void)m7; /* do, line 177 */
- z->ket = z->c; /* [, line 177 */
- if (!(eq_s_b(z, 1, s_18))) goto lab5;
- z->bra = z->c; /* ], line 177 */
- if (!(eq_s_b(z, 1, s_19))) goto lab5;
- { int ret = slice_del(z); /* delete, line 177 */
+ { 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 */
+ 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->c--;
+ { int ret = slice_del(z); /* delete, line 178 */
if (ret < 0) return ret;
}
lab5:
z->c = z->l - m7;
}
- z->lb = mlimit;
+ z->lb = mlimit1;
}
- if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 179 */
- z->ket = z->c; /* [, line 179 */
- { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (ret < 0) return 0;
- z->c = ret; /* next, line 179 */
- }
- z->bra = z->c; /* ], line 179 */
- z->S[0] = slice_to(z, z->S[0]); /* -> x, line 179 */
- if (z->S[0] == 0) return -1; /* -> x, line 179 */
- if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 179 */
- { int ret = slice_del(z); /* delete, line 179 */
+ if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 180 */
+ z->ket = z->c; /* [, line 180 */
+ if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 180 */
+ z->bra = z->c; /* ], line 180 */
+ z->S[0] = slice_to(z, z->S[0]); /* -> x, line 180 */
+ if (z->S[0] == 0) return -1; /* -> x, line 180 */
+ if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 180 */
+ { int ret = slice_del(z); /* delete, line 180 */
if (ret < 0) return ret;
}
return 1;
}
-extern int finnish_UTF_8_stem(struct SN_env * z) {
- { int c1 = z->c; /* do, line 185 */
- { int ret = r_mark_regions(z);
- if (ret == 0) goto lab0; /* call mark_regions, line 185 */
+extern int finnish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
+ { int c1 = z->c; /* do, line 186 */
+ { int ret = r_mark_regions(z); /* call mark_regions, line 186 */
+ if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
- z->B[0] = 0; /* unset ending_removed, line 186 */
- z->lb = z->c; z->c = z->l; /* backwards, line 187 */
+ z->B[0] = 0; /* unset ending_removed, line 187 */
+ z->lb = z->c; z->c = z->l; /* backwards, line 188 */
- { int m2 = z->l - z->c; (void)m2; /* do, line 188 */
- { int ret = r_particle_etc(z);
- if (ret == 0) goto lab1; /* call particle_etc, line 188 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 189 */
+ { int ret = r_particle_etc(z); /* call particle_etc, line 189 */
+ if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
- { int m3 = z->l - z->c; (void)m3; /* do, line 189 */
- { int ret = r_possessive(z);
- if (ret == 0) goto lab2; /* call possessive, line 189 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 190 */
+ { int ret = r_possessive(z); /* call possessive, line 190 */
+ if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
- { int m4 = z->l - z->c; (void)m4; /* do, line 190 */
- { int ret = r_case_ending(z);
- if (ret == 0) goto lab3; /* call case_ending, line 190 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 191 */
+ { int ret = r_case_ending(z); /* call case_ending, line 191 */
+ if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = z->l - m4;
}
- { int m5 = z->l - z->c; (void)m5; /* do, line 191 */
- { int ret = r_other_endings(z);
- if (ret == 0) goto lab4; /* call other_endings, line 191 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 192 */
+ { int ret = r_other_endings(z); /* call other_endings, line 192 */
+ if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
lab4:
z->c = z->l - m5;
}
- { int m6 = z->l - z->c; (void)m6; /* or, line 192 */
- if (!(z->B[0])) goto lab6; /* Boolean test ending_removed, line 192 */
- { int m7 = z->l - z->c; (void)m7; /* do, line 192 */
- { int ret = r_i_plural(z);
- if (ret == 0) goto lab7; /* call i_plural, line 192 */
- if (ret < 0) return ret;
- }
- lab7:
- z->c = z->l - m7;
+ /* or, line 193 */
+ if (!(z->B[0])) goto lab6; /* 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 (ret == 0) goto lab7;
+ if (ret < 0) return ret;
}
- goto lab5;
- lab6:
+ lab7:
z->c = z->l - m6;
- { int m8 = z->l - z->c; (void)m8; /* do, line 192 */
- { int ret = r_t_plural(z);
- if (ret == 0) goto lab8; /* call t_plural, line 192 */
- if (ret < 0) return ret;
- }
- lab8:
- z->c = z->l - m8;
+ }
+ goto lab5;
+lab6:
+ { int m7 = z->l - z->c; (void)m7; /* do, line 193 */
+ { int ret = r_t_plural(z); /* call t_plural, line 193 */
+ if (ret == 0) goto lab8;
+ if (ret < 0) return ret;
}
+ lab8:
+ z->c = z->l - m7;
}
lab5:
- { int m9 = z->l - z->c; (void)m9; /* do, line 193 */
- { int ret = r_tidy(z);
- if (ret == 0) goto lab9; /* call tidy, line 193 */
+ { int m8 = z->l - z->c; (void)m8; /* do, line 194 */
+ { int ret = r_tidy(z); /* call tidy, line 194 */
+ if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
- z->c = z->l - m9;
+ z->c = z->l - m8;
}
z->c = z->lb;
return 1;
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_french.c b/src/backend/snowball/libstemmer/stem_UTF_8_french.c
index fa1507f2c63..80564a8e36f 100644
--- a/src/backend/snowball/libstemmer/stem_UTF_8_french.c
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_french.c
@@ -1,5 +1,5 @@
-
-/* This file was generated automatically by the Snowball to ANSI C compiler */
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
#include "header.h"
@@ -370,82 +370,74 @@ static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
-static const symbol s_0[] = { 'u' };
-static const symbol s_1[] = { 'U' };
-static const symbol s_2[] = { 'i' };
-static const symbol s_3[] = { 'I' };
-static const symbol s_4[] = { 'y' };
-static const symbol s_5[] = { 'Y' };
-static const symbol s_6[] = { 'y' };
-static const symbol s_7[] = { 'Y' };
-static const symbol s_8[] = { 'q' };
-static const symbol s_9[] = { 'u' };
-static const symbol s_10[] = { 'U' };
-static const symbol s_11[] = { 'i' };
-static const symbol s_12[] = { 'u' };
-static const symbol s_13[] = { 'y' };
-static const symbol s_14[] = { 'i', 'c' };
-static const symbol s_15[] = { 'i', 'q', 'U' };
-static const symbol s_16[] = { 'l', 'o', 'g' };
-static const symbol s_17[] = { 'u' };
-static const symbol s_18[] = { 'e', 'n', 't' };
-static const symbol s_19[] = { 'a', 't' };
-static const symbol s_20[] = { 'e', 'u', 'x' };
-static const symbol s_21[] = { 'i' };
-static const symbol s_22[] = { 'a', 'b', 'l' };
-static const symbol s_23[] = { 'i', 'q', 'U' };
-static const symbol s_24[] = { 'a', 't' };
-static const symbol s_25[] = { 'i', 'c' };
-static const symbol s_26[] = { 'i', 'q', 'U' };
-static const symbol s_27[] = { 'e', 'a', 'u' };
-static const symbol s_28[] = { 'a', 'l' };
-static const symbol s_29[] = { 'e', 'u', 'x' };
-static const symbol s_30[] = { 'a', 'n', 't' };
-static const symbol s_31[] = { 'e', 'n', 't' };
-static const symbol s_32[] = { 'e' };
-static const symbol s_33[] = { 's' };
-static const symbol s_34[] = { 's' };
-static const symbol s_35[] = { 't' };
-static const symbol s_36[] = { 'i' };
-static const symbol s_37[] = { 'g', 'u' };
-static const symbol s_38[] = { 0xC3, 0xA9 };
-static const symbol s_39[] = { 0xC3, 0xA8 };
-static const symbol s_40[] = { 'e' };
-static const symbol s_41[] = { 'Y' };
-static const symbol s_42[] = { 'i' };
-static const symbol s_43[] = { 0xC3, 0xA7 };
-static const symbol s_44[] = { 'c' };
+static const symbol s_0[] = { 'U' };
+static const symbol s_1[] = { 'I' };
+static const symbol s_2[] = { 'Y' };
+static const symbol s_3[] = { 'Y' };
+static const symbol s_4[] = { 'U' };
+static const symbol s_5[] = { 'i' };
+static const symbol s_6[] = { 'u' };
+static const symbol s_7[] = { 'y' };
+static const symbol s_8[] = { 'i', 'c' };
+static const symbol s_9[] = { 'i', 'q', 'U' };
+static const symbol s_10[] = { 'l', 'o', 'g' };
+static const symbol s_11[] = { 'u' };
+static const symbol s_12[] = { 'e', 'n', 't' };
+static const symbol s_13[] = { 'a', 't' };
+static const symbol s_14[] = { 'e', 'u', 'x' };
+static const symbol s_15[] = { 'i' };
+static const symbol s_16[] = { 'a', 'b', 'l' };
+static const symbol s_17[] = { 'i', 'q', 'U' };
+static const symbol s_18[] = { 'a', 't' };
+static const symbol s_19[] = { 'i', 'c' };
+static const symbol s_20[] = { 'i', 'q', 'U' };
+static const symbol s_21[] = { 'e', 'a', 'u' };
+static const symbol s_22[] = { 'a', 'l' };
+static const symbol s_23[] = { 'e', 'u', 'x' };
+static const symbol s_24[] = { 'a', 'n', 't' };
+static const symbol s_25[] = { 'e', 'n', 't' };
+static const symbol s_26[] = { 'i' };
+static const symbol s_27[] = { 'g', 'u' };
+static const symbol s_28[] = { 0xC3, 0xA9 };
+static const symbol s_29[] = { 0xC3, 0xA8 };
+static const symbol s_30[] = { 'e' };
+static const symbol s_31[] = { 'i' };
+static const symbol s_32[] = { 0xC3, 0xA7 };
+static const symbol s_33[] = { 'c' };
-static int r_prelude(struct SN_env * z) {
+static int r_prelude(struct SN_env * z) { /* forwardmode */
while(1) { /* repeat, line 38 */
int c1 = z->c;
while(1) { /* goto, line 38 */
int c2 = z->c;
{ int c3 = z->c; /* or, line 44 */
- if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab3;
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab3; /* grouping v, line 40 */
z->bra = z->c; /* [, line 40 */
{ int c4 = z->c; /* or, line 40 */
- if (!(eq_s(z, 1, s_0))) goto lab5;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab5; /* literal, line 40 */
+ z->c++;
z->ket = z->c; /* ], line 40 */
- if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab5;
- { int ret = slice_from_s(z, 1, s_1); /* <-, line 40 */
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab5; /* grouping v, line 40 */
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 40 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
z->c = c4;
- if (!(eq_s(z, 1, s_2))) goto lab6;
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab6; /* literal, line 41 */
+ z->c++;
z->ket = z->c; /* ], line 41 */
- if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab6;
- { int ret = slice_from_s(z, 1, s_3); /* <-, line 41 */
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab6; /* grouping v, line 41 */
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 41 */
if (ret < 0) return ret;
}
goto lab4;
lab6:
z->c = c4;
- if (!(eq_s(z, 1, s_4))) goto lab3;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 42 */
+ z->c++;
z->ket = z->c; /* ], line 42 */
- { int ret = slice_from_s(z, 1, s_5); /* <-, line 42 */
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 42 */
if (ret < 0) return ret;
}
}
@@ -454,20 +446,23 @@ static int r_prelude(struct SN_env * z) {
lab3:
z->c = c3;
z->bra = z->c; /* [, line 45 */
- if (!(eq_s(z, 1, s_6))) goto lab7;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab7; /* literal, line 45 */
+ z->c++;
z->ket = z->c; /* ], line 45 */
- if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab7;
- { int ret = slice_from_s(z, 1, s_7); /* <-, line 45 */
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab7; /* grouping v, line 45 */
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 45 */
if (ret < 0) return ret;
}
goto lab2;
lab7:
z->c = c3;
- if (!(eq_s(z, 1, s_8))) goto lab1;
+ if (z->c == z->l || z->p[z->c] != 'q') goto lab1; /* literal, line 47 */
+ z->c++;
z->bra = z->c; /* [, line 47 */
- if (!(eq_s(z, 1, s_9))) goto lab1;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab1; /* literal, line 47 */
+ z->c++;
z->ket = z->c; /* ], line 47 */
- { int ret = slice_from_s(z, 1, s_10); /* <-, line 47 */
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 47 */
if (ret < 0) return ret;
}
}
@@ -489,14 +484,14 @@ static int r_prelude(struct SN_env * z) {
return 1;
}
-static int r_mark_regions(struct SN_env * z) {
- z->I[0] = z->l;
- z->I[1] = z->l;
- z->I[2] = z->l;
+static int r_mark_regions(struct SN_env * z) { /* forwardmode */
+ z->I[0] = z->l; /* $pV = , line 52 */
+ z->I[1] = z->l; /* $p1 = , line 53 */
+ z->I[2] = z->l; /* $p2 = , line 54 */
{ int c1 = z->c; /* do, line 56 */
{ int c2 = z->c; /* or, line 58 */
- if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2;
- if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2;
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 57 */
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 57 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
if (ret < 0) goto lab2;
z->c = ret; /* next, line 57 */
@@ -504,8 +499,8 @@ static int r_mark_regions(struct SN_env * z) {
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;
- if (!(find_among(z, a_0, 3))) goto lab3; /* among, line 59 */
+ 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 59 */
+ if (!(find_among(z, a_0, 3))) goto lab3;
goto lab1;
lab3:
z->c = c2;
@@ -553,29 +548,28 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
-static int r_postlude(struct SN_env * z) {
+static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 75 */
int c1 = z->c;
z->bra = z->c; /* [, line 77 */
- if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652096 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 4; else
- among_var = find_among(z, a_1, 4); /* substring, line 77 */
+ if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652096 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 4; else /* substring, line 77 */
+ among_var = find_among(z, a_1, 4);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 77 */
- switch(among_var) {
- case 0: goto lab0;
+ switch (among_var) { /* among, line 77 */
case 1:
- { int ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 78 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret = slice_from_s(z, 1, s_13); /* <-, line 80 */
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 80 */
if (ret < 0) return ret;
}
break;
@@ -594,53 +588,50 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
-static int r_RV(struct SN_env * z) {
- if (!(z->I[0] <= z->c)) return 0;
+static int r_RV(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 87 */
return 1;
}
-static int r_R1(struct SN_env * z) {
- if (!(z->I[1] <= z->c)) return 0;
+static int r_R1(struct SN_env * z) { /* backwardmode */
+ if (!(z->I[1] <= z->c)) return 0; /* $(