Update snowball

Update to snowball tag v2.1.0.  Major changes are new stemmers for
Armenian, Serbian, and Yiddish.
This commit is contained in:
Peter Eisentraut 2021-02-19 07:57:42 +01:00
parent b071a31149
commit 678d0e239b
106 changed files with 23449 additions and 14979 deletions

View File

@ -3837,6 +3837,7 @@ Parser: "pg_catalog.default"
Schema | Name | Description
------------+-----------------+-----------------------------------------------------------
pg_catalog | arabic_stem | snowball stemmer for arabic language
pg_catalog | armenian_stem | snowball stemmer for armenian language
pg_catalog | basque_stem | snowball stemmer for basque language
pg_catalog | catalan_stem | snowball stemmer for catalan language
pg_catalog | danish_stem | snowball stemmer for danish language
@ -3857,11 +3858,13 @@ Parser: "pg_catalog.default"
pg_catalog | portuguese_stem | snowball stemmer for portuguese language
pg_catalog | romanian_stem | snowball stemmer for romanian language
pg_catalog | russian_stem | snowball stemmer for russian language
pg_catalog | serbian_stem | snowball stemmer for serbian language
pg_catalog | simple | simple dictionary: just lower case and check for stopword
pg_catalog | spanish_stem | snowball stemmer for spanish language
pg_catalog | swedish_stem | snowball stemmer for swedish language
pg_catalog | tamil_stem | snowball stemmer for tamil language
pg_catalog | turkish_stem | snowball stemmer for turkish language
pg_catalog | yiddish_stem | snowball stemmer for yiddish language
</screen>
</para>
</listitem>

View File

@ -43,6 +43,7 @@ OBJS += \
stem_ISO_8859_2_romanian.o \
stem_KOI8_R_russian.o \
stem_UTF_8_arabic.o \
stem_UTF_8_armenian.o \
stem_UTF_8_basque.o \
stem_UTF_8_catalan.o \
stem_UTF_8_danish.o \
@ -64,10 +65,12 @@ OBJS += \
stem_UTF_8_portuguese.o \
stem_UTF_8_romanian.o \
stem_UTF_8_russian.o \
stem_UTF_8_serbian.o \
stem_UTF_8_spanish.o \
stem_UTF_8_swedish.o \
stem_UTF_8_tamil.o \
stem_UTF_8_turkish.o
stem_UTF_8_turkish.o \
stem_UTF_8_yiddish.o
# first column is language name and also name of dictionary for not-all-ASCII
# words, second is name of dictionary for all-ASCII words
@ -75,6 +78,7 @@ OBJS += \
# must come after creation of that language
LANGUAGES= \
arabic arabic \
armenian armenian \
basque basque \
catalan catalan \
danish danish \
@ -95,10 +99,12 @@ LANGUAGES= \
portuguese portuguese \
romanian romanian \
russian english \
serbian serbian \
spanish spanish \
swedish swedish \
tamil tamil \
turkish turkish
turkish turkish \
yiddish yiddish
SQLSCRIPT= snowball_create.sql

View File

@ -29,8 +29,8 @@ We choose to include the derived files in the PostgreSQL distribution
because most installations will not have the Snowball compiler available.
We are currently synced with the Snowball git commit
c70ed64f9d41c1032fba4e962b054f8e9d489a74 (tag v2.0.0)
of 2019-10-02.
4764395431c8f2a0b4fe18b816ab1fc966a45837 (tag v2.1.0)
of 2021-01-21.
To update the PostgreSQL sources from a new Snowball version:
@ -59,7 +59,8 @@ do not require any changes.
4. Check whether any stemmer modules have been added or removed. If so, edit
the OBJS list in Makefile, the list of #include's in dict_snowball.c, and the
stemmer_modules[] table in dict_snowball.c. You might also need to change
stemmer_modules[] table in dict_snowball.c, as well as the list in the
documentation in textsearch.sgml. You might also need to change
the LANGUAGES list in Makefile and tsearch_config_languages in initdb.c.
5. The various stopword files in stopwords/ must be downloaded

View File

@ -46,6 +46,7 @@
#include "snowball/libstemmer/stem_ISO_8859_2_romanian.h"
#include "snowball/libstemmer/stem_KOI8_R_russian.h"
#include "snowball/libstemmer/stem_UTF_8_arabic.h"
#include "snowball/libstemmer/stem_UTF_8_armenian.h"
#include "snowball/libstemmer/stem_UTF_8_basque.h"
#include "snowball/libstemmer/stem_UTF_8_catalan.h"
#include "snowball/libstemmer/stem_UTF_8_danish.h"
@ -67,10 +68,12 @@
#include "snowball/libstemmer/stem_UTF_8_portuguese.h"
#include "snowball/libstemmer/stem_UTF_8_romanian.h"
#include "snowball/libstemmer/stem_UTF_8_russian.h"
#include "snowball/libstemmer/stem_UTF_8_serbian.h"
#include "snowball/libstemmer/stem_UTF_8_spanish.h"
#include "snowball/libstemmer/stem_UTF_8_swedish.h"
#include "snowball/libstemmer/stem_UTF_8_tamil.h"
#include "snowball/libstemmer/stem_UTF_8_turkish.h"
#include "snowball/libstemmer/stem_UTF_8_yiddish.h"
PG_MODULE_MAGIC;
@ -117,6 +120,7 @@ static const stemmer_module stemmer_modules[] =
STEMMER_MODULE(romanian, PG_LATIN2, ISO_8859_2),
STEMMER_MODULE(russian, PG_KOI8R, KOI8_R),
STEMMER_MODULE(arabic, PG_UTF8, UTF_8),
STEMMER_MODULE(armenian, PG_UTF8, UTF_8),
STEMMER_MODULE(basque, PG_UTF8, UTF_8),
STEMMER_MODULE(catalan, PG_UTF8, UTF_8),
STEMMER_MODULE(danish, PG_UTF8, UTF_8),
@ -138,10 +142,12 @@ static const stemmer_module stemmer_modules[] =
STEMMER_MODULE(portuguese, PG_UTF8, UTF_8),
STEMMER_MODULE(romanian, PG_UTF8, UTF_8),
STEMMER_MODULE(russian, PG_UTF8, UTF_8),
STEMMER_MODULE(serbian, PG_UTF8, UTF_8),
STEMMER_MODULE(spanish, PG_UTF8, UTF_8),
STEMMER_MODULE(swedish, PG_UTF8, UTF_8),
STEMMER_MODULE(tamil, PG_UTF8, UTF_8),
STEMMER_MODULE(turkish, PG_UTF8, UTF_8),
STEMMER_MODULE(yiddish, PG_UTF8, UTF_8),
/*
* Stemmer with PG_SQL_ASCII encoding should be valid for any server

View File

@ -1,6 +1,6 @@
#include "header.h"
extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size)
extern struct SN_env * SN_create_env(int S_size, int I_size)
{
struct SN_env * z = (struct SN_env *) calloc(1, sizeof(struct SN_env));
if (z == NULL) return NULL;
@ -25,12 +25,6 @@ extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size)
if (z->I == NULL) goto error;
}
if (B_size)
{
z->B = (unsigned char *) calloc(B_size, sizeof(unsigned char));
if (z->B == NULL) goto error;
}
return z;
error:
SN_close_env(z, S_size);
@ -50,7 +44,6 @@ extern void SN_close_env(struct SN_env * z, int S_size)
free(z->S);
}
free(z->I);
free(z->B);
if (z->p) lose_s(z->p);
free(z);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -61,38 +61,38 @@ static const symbol s_0_31[4] = { 'e', 'r', 'e', 't' };
static const struct among a_0[32] =
{
/* 0 */ { 3, s_0_0, -1, 1, 0},
/* 1 */ { 5, s_0_1, 0, 1, 0},
/* 2 */ { 4, s_0_2, -1, 1, 0},
/* 3 */ { 1, s_0_3, -1, 1, 0},
/* 4 */ { 5, s_0_4, 3, 1, 0},
/* 5 */ { 4, s_0_5, 3, 1, 0},
/* 6 */ { 6, s_0_6, 5, 1, 0},
/* 7 */ { 3, s_0_7, 3, 1, 0},
/* 8 */ { 4, s_0_8, 3, 1, 0},
/* 9 */ { 3, s_0_9, 3, 1, 0},
/* 10 */ { 2, s_0_10, -1, 1, 0},
/* 11 */ { 5, s_0_11, 10, 1, 0},
/* 12 */ { 4, s_0_12, 10, 1, 0},
/* 13 */ { 2, s_0_13, -1, 1, 0},
/* 14 */ { 5, s_0_14, 13, 1, 0},
/* 15 */ { 4, s_0_15, 13, 1, 0},
/* 16 */ { 1, s_0_16, -1, 2, 0},
/* 17 */ { 4, s_0_17, 16, 1, 0},
/* 18 */ { 2, s_0_18, 16, 1, 0},
/* 19 */ { 5, s_0_19, 18, 1, 0},
/* 20 */ { 7, s_0_20, 19, 1, 0},
/* 21 */ { 4, s_0_21, 18, 1, 0},
/* 22 */ { 5, s_0_22, 18, 1, 0},
/* 23 */ { 4, s_0_23, 18, 1, 0},
/* 24 */ { 3, s_0_24, 16, 1, 0},
/* 25 */ { 6, s_0_25, 24, 1, 0},
/* 26 */ { 5, s_0_26, 24, 1, 0},
/* 27 */ { 3, s_0_27, 16, 1, 0},
/* 28 */ { 3, s_0_28, 16, 1, 0},
/* 29 */ { 5, s_0_29, 28, 1, 0},
/* 30 */ { 2, s_0_30, -1, 1, 0},
/* 31 */ { 4, s_0_31, 30, 1, 0}
{ 3, s_0_0, -1, 1, 0},
{ 5, s_0_1, 0, 1, 0},
{ 4, s_0_2, -1, 1, 0},
{ 1, s_0_3, -1, 1, 0},
{ 5, s_0_4, 3, 1, 0},
{ 4, s_0_5, 3, 1, 0},
{ 6, s_0_6, 5, 1, 0},
{ 3, s_0_7, 3, 1, 0},
{ 4, s_0_8, 3, 1, 0},
{ 3, s_0_9, 3, 1, 0},
{ 2, s_0_10, -1, 1, 0},
{ 5, s_0_11, 10, 1, 0},
{ 4, s_0_12, 10, 1, 0},
{ 2, s_0_13, -1, 1, 0},
{ 5, s_0_14, 13, 1, 0},
{ 4, s_0_15, 13, 1, 0},
{ 1, s_0_16, -1, 2, 0},
{ 4, s_0_17, 16, 1, 0},
{ 2, s_0_18, 16, 1, 0},
{ 5, s_0_19, 18, 1, 0},
{ 7, s_0_20, 19, 1, 0},
{ 4, s_0_21, 18, 1, 0},
{ 5, s_0_22, 18, 1, 0},
{ 4, s_0_23, 18, 1, 0},
{ 3, s_0_24, 16, 1, 0},
{ 6, s_0_25, 24, 1, 0},
{ 5, s_0_26, 24, 1, 0},
{ 3, s_0_27, 16, 1, 0},
{ 3, s_0_28, 16, 1, 0},
{ 5, s_0_29, 28, 1, 0},
{ 2, s_0_30, -1, 1, 0},
{ 4, s_0_31, 30, 1, 0}
};
static const symbol s_1_0[2] = { 'g', 'd' };
@ -102,10 +102,10 @@ static const symbol s_1_3[2] = { 'k', 't' };
static const struct among a_1[4] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
/* 2 */ { 2, s_1_2, -1, -1, 0},
/* 3 */ { 2, s_1_3, -1, -1, 0}
{ 2, s_1_0, -1, -1, 0},
{ 2, s_1_1, -1, -1, 0},
{ 2, s_1_2, -1, -1, 0},
{ 2, s_1_3, -1, -1, 0}
};
static const symbol s_2_0[2] = { 'i', 'g' };
@ -116,11 +116,11 @@ static const symbol s_2_4[4] = { 'l', 0xF8, 's', 't' };
static const struct among a_2[5] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 3, s_2_1, 0, 1, 0},
/* 2 */ { 4, s_2_2, 1, 1, 0},
/* 3 */ { 3, s_2_3, -1, 1, 0},
/* 4 */ { 4, s_2_4, -1, 2, 0}
{ 2, s_2_0, -1, 1, 0},
{ 3, s_2_1, 0, 1, 0},
{ 4, s_2_2, 1, 1, 0},
{ 3, s_2_3, -1, 1, 0},
{ 4, s_2_4, -1, 2, 0}
};
static const unsigned char g_c[] = { 119, 223, 119, 1 };
@ -133,52 +133,50 @@ static const symbol s_0[] = { 's', 't' };
static const symbol s_1[] = { 'i', 'g' };
static const symbol s_2[] = { 'l', 0xF8, 's' };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 33 */
{ int c_test1 = z->c; /* test, line 35 */
{ int ret = z->c + 3; /* hop, line 35 */
if (0 > ret || ret > z->l) return 0;
z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 35 */
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
{ int c_test1 = z->c;
z->c = z->c + 3;
if (z->c > z->l) return 0;
z->I[0] = z->c;
z->c = c_test1;
}
if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 36 */
{ /* gopast */ /* non v, line 36 */
if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0;
{
int ret = in_grouping(z, g_v, 97, 248, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 36 */
/* try, line 37 */
if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 37 */
z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 37 */
z->I[1] = z->c;
if (!(z->I[1] < z->I[0])) goto lab0;
z->I[1] = z->I[0];
lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) { /* backwardmode */
static int r_main_suffix(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 43 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 43 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 43 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
among_var = find_among_b(z, a_0, 32);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 43 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 44 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 50 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 52 */
{ int ret = slice_del(z); /* delete, line 52 */
if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -186,67 +184,67 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 57 */
static int r_consonant_pair(struct SN_env * z) {
{ int m_test1 = z->l - z->c;
{ int mlimit2; /* setlimit, line 58 */
if (z->c < z->I[0]) return 0;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 58 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 58 */
{ int mlimit2;
if (z->c < z->I[1]) return 0;
mlimit2 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; }
if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 58 */
z->bra = z->c;
z->lb = mlimit2;
}
z->c = z->l - m_test1;
}
if (z->c <= z->lb) return 0;
z->c--; /* next, line 64 */
z->bra = z->c; /* ], line 64 */
{ int ret = slice_del(z); /* delete, line 64 */
z->c--;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_other_suffix(struct SN_env * z) { /* backwardmode */
static int r_other_suffix(struct SN_env * z) {
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 68 */
z->ket = z->c; /* [, line 68 */
if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 68 */
z->bra = z->c; /* ], line 68 */
if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 68 */
{ int ret = slice_del(z); /* delete, line 68 */
{ int m1 = z->l - z->c; (void)m1;
z->ket = z->c;
if (!(eq_s_b(z, 2, s_0))) goto lab0;
z->bra = z->c;
if (!(eq_s_b(z, 2, s_1))) goto lab0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab0:
z->c = z->l - m1;
}
{ int mlimit2; /* setlimit, line 69 */
if (z->c < z->I[0]) return 0;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 69 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } /* substring, line 69 */
{ int mlimit2;
if (z->c < z->I[1]) return 0;
mlimit2 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; }
among_var = find_among_b(z, a_2, 5);
if (!(among_var)) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 69 */
z->bra = z->c;
z->lb = mlimit2;
}
switch (among_var) { /* among, line 70 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 72 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 72 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 72 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_consonant_pair(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
break;
case 2:
{ int ret = slice_from_s(z, 3, s_2); /* <-, line 74 */
{ int ret = slice_from_s(z, 3, s_2);
if (ret < 0) return ret;
}
break;
@ -254,54 +252,54 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_undouble(struct SN_env * z) { /* backwardmode */
static int r_undouble(struct SN_env * z) {
{ int mlimit1; /* setlimit, line 78 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 78 */
if (in_grouping_b(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; } /* grouping c, line 78 */
z->bra = z->c; /* ], line 78 */
z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 78 */
if (z->S[0] == 0) return -1; /* -> ch, line 78 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (in_grouping_b(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; }
z->bra = z->c;
z->S[0] = slice_to(z, z->S[0]);
if (z->S[0] == 0) return -1;
z->lb = mlimit1;
}
if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 79 */
{ int ret = slice_del(z); /* delete, line 80 */
if (!(eq_v_b(z, z->S[0]))) return 0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
extern int danish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 86 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 86 */
extern int danish_ISO_8859_1_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 87 */
z->lb = z->c; z->c = z->l;
{ int m2 = z->l - z->c; (void)m2; /* do, line 88 */
{ int ret = r_main_suffix(z); /* call main_suffix, line 88 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_main_suffix(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 89 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 89 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_consonant_pair(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 90 */
{ int ret = r_other_suffix(z); /* call other_suffix, line 90 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_other_suffix(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 91 */
{ int ret = r_undouble(z); /* call undouble, line 91 */
{ int m5 = z->l - z->c; (void)m5;
{ int ret = r_undouble(z);
if (ret < 0) return ret;
}
z->c = z->l - m5;
@ -310,7 +308,7 @@ extern int danish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * danish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2, 0); }
extern struct SN_env * danish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2); }
extern void danish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 1); }

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -43,17 +43,17 @@ static const symbol s_0_10[1] = { 0xFC };
static const struct among a_0[11] =
{
/* 0 */ { 0, 0, -1, 6, 0},
/* 1 */ { 1, s_0_1, 0, 1, 0},
/* 2 */ { 1, s_0_2, 0, 1, 0},
/* 3 */ { 1, s_0_3, 0, 2, 0},
/* 4 */ { 1, s_0_4, 0, 2, 0},
/* 5 */ { 1, s_0_5, 0, 3, 0},
/* 6 */ { 1, s_0_6, 0, 3, 0},
/* 7 */ { 1, s_0_7, 0, 4, 0},
/* 8 */ { 1, s_0_8, 0, 4, 0},
/* 9 */ { 1, s_0_9, 0, 5, 0},
/* 10 */ { 1, s_0_10, 0, 5, 0}
{ 0, 0, -1, 6, 0},
{ 1, s_0_1, 0, 1, 0},
{ 1, s_0_2, 0, 1, 0},
{ 1, s_0_3, 0, 2, 0},
{ 1, s_0_4, 0, 2, 0},
{ 1, s_0_5, 0, 3, 0},
{ 1, s_0_6, 0, 3, 0},
{ 1, s_0_7, 0, 4, 0},
{ 1, s_0_8, 0, 4, 0},
{ 1, s_0_9, 0, 5, 0},
{ 1, s_0_10, 0, 5, 0}
};
static const symbol s_1_1[1] = { 'I' };
@ -61,9 +61,9 @@ static const symbol s_1_2[1] = { 'Y' };
static const struct among a_1[3] =
{
/* 0 */ { 0, 0, -1, 3, 0},
/* 1 */ { 1, s_1_1, 0, 2, 0},
/* 2 */ { 1, s_1_2, 0, 1, 0}
{ 0, 0, -1, 3, 0},
{ 1, s_1_1, 0, 2, 0},
{ 1, s_1_2, 0, 1, 0}
};
static const symbol s_2_0[2] = { 'd', 'd' };
@ -72,9 +72,9 @@ static const symbol s_2_2[2] = { 't', 't' };
static const struct among a_2[3] =
{
/* 0 */ { 2, s_2_0, -1, -1, 0},
/* 1 */ { 2, s_2_1, -1, -1, 0},
/* 2 */ { 2, s_2_2, -1, -1, 0}
{ 2, s_2_0, -1, -1, 0},
{ 2, s_2_1, -1, -1, 0},
{ 2, s_2_2, -1, -1, 0}
};
static const symbol s_3_0[3] = { 'e', 'n', 'e' };
@ -85,11 +85,11 @@ static const symbol s_3_4[1] = { 's' };
static const struct among a_3[5] =
{
/* 0 */ { 3, s_3_0, -1, 2, 0},
/* 1 */ { 2, s_3_1, -1, 3, 0},
/* 2 */ { 2, s_3_2, -1, 2, 0},
/* 3 */ { 5, s_3_3, 2, 1, 0},
/* 4 */ { 1, s_3_4, -1, 3, 0}
{ 3, s_3_0, -1, 2, 0},
{ 2, s_3_1, -1, 3, 0},
{ 2, s_3_2, -1, 2, 0},
{ 5, s_3_3, 2, 1, 0},
{ 1, s_3_4, -1, 3, 0}
};
static const symbol s_4_0[3] = { 'e', 'n', 'd' };
@ -101,12 +101,12 @@ static const symbol s_4_5[3] = { 'b', 'a', 'r' };
static const struct among a_4[6] =
{
/* 0 */ { 3, s_4_0, -1, 1, 0},
/* 1 */ { 2, s_4_1, -1, 2, 0},
/* 2 */ { 3, s_4_2, -1, 1, 0},
/* 3 */ { 4, s_4_3, -1, 3, 0},
/* 4 */ { 4, s_4_4, -1, 4, 0},
/* 5 */ { 3, s_4_5, -1, 5, 0}
{ 3, s_4_0, -1, 1, 0},
{ 2, s_4_1, -1, 2, 0},
{ 3, s_4_2, -1, 1, 0},
{ 4, s_4_3, -1, 3, 0},
{ 4, s_4_4, -1, 4, 0},
{ 3, s_4_5, -1, 5, 0}
};
static const symbol s_5_0[2] = { 'a', 'a' };
@ -116,10 +116,10 @@ static const symbol s_5_3[2] = { 'u', 'u' };
static const struct among a_5[4] =
{
/* 0 */ { 2, s_5_0, -1, -1, 0},
/* 1 */ { 2, s_5_1, -1, -1, 0},
/* 2 */ { 2, s_5_2, -1, -1, 0},
/* 3 */ { 2, s_5_3, -1, -1, 0}
{ 2, s_5_0, -1, -1, 0},
{ 2, s_5_1, -1, -1, 0},
{ 2, s_5_2, -1, -1, 0},
{ 2, s_5_3, -1, -1, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
@ -144,46 +144,45 @@ static const symbol s_12[] = { 'h', 'e', 'i', 'd' };
static const symbol s_13[] = { 'e', 'n' };
static const symbol s_14[] = { 'i', 'g' };
static int r_prelude(struct SN_env * z) { /* forwardmode */
static int r_prelude(struct SN_env * z) {
int among_var;
{ int c_test1 = z->c; /* test, line 42 */
/* repeat, line 42 */
while(1) { int c2 = z->c;
z->bra = z->c; /* [, line 43 */
if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else /* substring, line 43 */
{ int c_test1 = z->c;
while(1) {
int c2 = z->c;
z->bra = z->c;
if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else
among_var = find_among(z, a_0, 11);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 43 */
switch (among_var) { /* among, line 43 */
z->ket = z->c;
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
{ int ret = slice_from_s(z, 1, s_0);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 47 */
{ int ret = slice_from_s(z, 1, s_1);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 49 */
{ int ret = slice_from_s(z, 1, s_2);
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 51 */
{ int ret = slice_from_s(z, 1, s_3);
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 53 */
{ int ret = slice_from_s(z, 1, s_4);
if (ret < 0) return ret;
}
break;
case 6:
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 54 */
z->c++;
break;
}
continue;
@ -193,39 +192,38 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
}
z->c = c_test1;
}
{ int c3 = z->c; /* try, line 57 */
z->bra = z->c; /* [, line 57 */
if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } /* literal, line 57 */
{ int c3 = z->c;
z->bra = z->c;
if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; }
z->c++;
z->ket = z->c; /* ], line 57 */
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 57 */
z->ket = z->c;
{ int ret = slice_from_s(z, 1, s_5);
if (ret < 0) return ret;
}
lab1:
;
}
/* repeat, line 58 */
while(1) { int c4 = z->c;
while(1) { /* goto, line 58 */
while(1) {
int c4 = z->c;
while(1) {
int c5 = z->c;
if (in_grouping(z, g_v, 97, 232, 0)) goto lab3; /* grouping v, line 59 */
z->bra = z->c; /* [, line 59 */
{ int c6 = z->c; /* or, line 59 */
if (z->c == z->l || z->p[z->c] != 'i') goto lab5; /* literal, line 59 */
if (in_grouping(z, g_v, 97, 232, 0)) goto lab3;
z->bra = z->c;
{ int c6 = z->c;
if (z->c == z->l || z->p[z->c] != 'i') goto lab5;
z->c++;
z->ket = z->c; /* ], line 59 */
if (in_grouping(z, g_v, 97, 232, 0)) goto lab5; /* grouping v, line 59 */
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 59 */
z->ket = z->c;
if (in_grouping(z, g_v, 97, 232, 0)) goto lab5;
{ int ret = slice_from_s(z, 1, s_6);
if (ret < 0) return ret;
}
goto lab4;
lab5:
z->c = c6;
if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 60 */
if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
z->c++;
z->ket = z->c; /* ], line 60 */
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 60 */
z->ket = z->c;
{ int ret = slice_from_s(z, 1, s_7);
if (ret < 0) return ret;
}
}
@ -235,7 +233,7 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
lab3:
z->c = c5;
if (z->c >= z->l) goto lab2;
z->c++; /* goto, line 58 */
z->c++;
}
continue;
lab2:
@ -245,62 +243,61 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
return 1;
}
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 66 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 67 */
{ /* gopast */ /* grouping v, line 69 */
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
z->I[0] = z->l;
{
int ret = out_grouping(z, g_v, 97, 232, 1);
if (ret < 0) return 0;
z->c += ret;
}
{ /* gopast */ /* non v, line 69 */
{
int ret = in_grouping(z, g_v, 97, 232, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 69 */
/* try, line 70 */
if (!(z->I[0] < 3)) goto lab0; /* $(<integer expression> < <integer expression>), line 70 */
z->I[0] = 3; /* $p1 = <integer expression>, line 70 */
z->I[1] = z->c;
if (!(z->I[1] < 3)) goto lab0;
z->I[1] = 3;
lab0:
{ /* gopast */ /* grouping v, line 71 */
{
int ret = out_grouping(z, g_v, 97, 232, 1);
if (ret < 0) return 0;
z->c += ret;
}
{ /* gopast */ /* non v, line 71 */
{
int ret = in_grouping(z, g_v, 97, 232, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 71 */
z->I[0] = z->c;
return 1;
}
static int r_postlude(struct SN_env * z) { /* forwardmode */
static int r_postlude(struct SN_env * z) {
int among_var;
/* repeat, line 75 */
while(1) { int c1 = z->c;
z->bra = z->c; /* [, line 77 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else /* substring, line 77 */
while(1) {
int c1 = z->c;
z->bra = z->c;
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
among_var = find_among(z, a_1, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 77 */
switch (among_var) { /* among, line 77 */
z->ket = z->c;
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 78 */
{ int ret = slice_from_s(z, 1, s_8);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 79 */
{ int ret = slice_from_s(z, 1, s_9);
if (ret < 0) return ret;
}
break;
case 3:
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 80 */
z->c++;
break;
}
continue;
@ -311,109 +308,109 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
return 1;
}
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 87 */
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 88 */
static int r_R2(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_undouble(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 91 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 91 */
static int r_undouble(struct SN_env * z) {
{ int m_test1 = z->l - z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_2, 3))) return 0;
z->c = z->l - m_test1;
}
z->ket = z->c; /* [, line 91 */
z->ket = z->c;
if (z->c <= z->lb) return 0;
z->c--; /* next, line 91 */
z->bra = z->c; /* ], line 91 */
{ int ret = slice_del(z); /* delete, line 91 */
z->c--;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_e_ending(struct SN_env * z) { /* backwardmode */
z->B[0] = 0; /* unset e_found, line 95 */
z->ket = z->c; /* [, line 96 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 96 */
static int r_e_ending(struct SN_env * z) {
z->I[2] = 0;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
z->c--;
z->bra = z->c; /* ], line 96 */
{ int ret = r_R1(z); /* call R1, line 96 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int m_test1 = z->l - z->c; /* test, line 96 */
if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; /* non v, line 96 */
{ int m_test1 = z->l - z->c;
if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 96 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->B[0] = 1; /* set e_found, line 97 */
{ int ret = r_undouble(z); /* call undouble, line 98 */
z->I[2] = 1;
{ int ret = r_undouble(z);
if (ret <= 0) return ret;
}
return 1;
}
static int r_en_ending(struct SN_env * z) { /* backwardmode */
{ int ret = r_R1(z); /* call R1, line 102 */
static int r_en_ending(struct SN_env * z) {
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int m1 = z->l - z->c; (void)m1; /* and, line 102 */
if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; /* non v, line 102 */
{ int m1 = z->l - z->c; (void)m1;
if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
z->c = z->l - m1;
{ int m2 = z->l - z->c; (void)m2; /* not, line 102 */
if (!(eq_s_b(z, 3, s_10))) goto lab0; /* literal, line 102 */
{ int m2 = z->l - z->c; (void)m2;
if (!(eq_s_b(z, 3, s_10))) goto lab0;
return 0;
lab0:
z->c = z->l - m2;
}
}
{ int ret = slice_del(z); /* delete, line 102 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int ret = r_undouble(z); /* call undouble, line 103 */
{ int ret = r_undouble(z);
if (ret <= 0) return ret;
}
return 1;
}
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
static int r_standard_suffix(struct SN_env * z) {
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 107 */
z->ket = z->c; /* [, line 108 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 108 */
{ int m1 = z->l - z->c; (void)m1;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
among_var = find_among_b(z, a_3, 5);
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 108 */
switch (among_var) { /* among, line 108 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = r_R1(z); /* call R1, line 110 */
{ int ret = r_R1(z);
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
{ int ret = slice_from_s(z, 4, s_11); /* <-, line 110 */
{ int ret = slice_from_s(z, 4, s_11);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_en_ending(z); /* call en_ending, line 113 */
{ int ret = r_en_ending(z);
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = r_R1(z); /* call R1, line 116 */
{ int ret = r_R1(z);
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0; /* non v_j, line 116 */
{ int ret = slice_del(z); /* delete, line 116 */
if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -421,77 +418,77 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
lab0:
z->c = z->l - m1;
}
{ int m2 = z->l - z->c; (void)m2; /* do, line 120 */
{ int ret = r_e_ending(z); /* call e_ending, line 120 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_e_ending(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 122 */
z->ket = z->c; /* [, line 122 */
if (!(eq_s_b(z, 4, s_12))) goto lab1; /* literal, line 122 */
z->bra = z->c; /* ], line 122 */
{ int ret = r_R2(z); /* call R2, line 122 */
{ int m3 = z->l - z->c; (void)m3;
z->ket = z->c;
if (!(eq_s_b(z, 4, s_12))) goto lab1;
z->bra = z->c;
{ int ret = r_R2(z);
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
{ int m4 = z->l - z->c; (void)m4; /* not, line 122 */
if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2; /* literal, line 122 */
{ int m4 = z->l - z->c; (void)m4;
if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2;
z->c--;
goto lab1;
lab2:
z->c = z->l - m4;
}
{ int ret = slice_del(z); /* delete, line 122 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 123 */
if (!(eq_s_b(z, 2, s_13))) goto lab1; /* literal, line 123 */
z->bra = z->c; /* ], line 123 */
{ int ret = r_en_ending(z); /* call en_ending, line 123 */
z->ket = z->c;
if (!(eq_s_b(z, 2, s_13))) goto lab1;
z->bra = z->c;
{ int ret = r_en_ending(z);
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m3;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 126 */
z->ket = z->c; /* [, line 127 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 127 */
{ int m5 = z->l - z->c; (void)m5;
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
among_var = find_among_b(z, a_4, 6);
if (!(among_var)) goto lab3;
z->bra = z->c; /* ], line 127 */
switch (among_var) { /* among, line 127 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = r_R2(z); /* call R2, line 129 */
{ int ret = r_R2(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 129 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m6 = z->l - z->c; (void)m6; /* or, line 130 */
z->ket = z->c; /* [, line 130 */
if (!(eq_s_b(z, 2, s_14))) goto lab5; /* literal, line 130 */
z->bra = z->c; /* ], line 130 */
{ int ret = r_R2(z); /* call R2, line 130 */
{ int m6 = z->l - z->c; (void)m6;
z->ket = z->c;
if (!(eq_s_b(z, 2, s_14))) goto lab5;
z->bra = z->c;
{ int ret = r_R2(z);
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
{ int m7 = z->l - z->c; (void)m7; /* not, line 130 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 130 */
{ int m7 = z->l - z->c; (void)m7;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
z->c--;
goto lab5;
lab6:
z->c = z->l - m7;
}
{ int ret = slice_del(z); /* delete, line 130 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
goto lab4;
lab5:
z->c = z->l - m6;
{ int ret = r_undouble(z); /* call undouble, line 130 */
{ int ret = r_undouble(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
@ -499,50 +496,50 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
lab4:
break;
case 2:
{ int ret = r_R2(z); /* call R2, line 133 */
{ int ret = r_R2(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
{ int m8 = z->l - z->c; (void)m8; /* not, line 133 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7; /* literal, line 133 */
{ int m8 = z->l - z->c; (void)m8;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7;
z->c--;
goto lab3;
lab7:
z->c = z->l - m8;
}
{ int ret = slice_del(z); /* delete, line 133 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = r_R2(z); /* call R2, line 136 */
{ int ret = r_R2(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 136 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int ret = r_e_ending(z); /* call e_ending, line 136 */
{ int ret = r_e_ending(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_R2(z); /* call R2, line 139 */
{ int ret = r_R2(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 139 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = r_R2(z); /* call R2, line 142 */
{ int ret = r_R2(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
if (!(z->B[0])) goto lab3; /* Boolean test e_found, line 142 */
{ int ret = slice_del(z); /* delete, line 142 */
if (!(z->I[2])) goto lab3;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -550,19 +547,19 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
lab3:
z->c = z->l - m5;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 146 */
if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab8; /* non v_I, line 147 */
{ int m_test10 = z->l - z->c; /* test, line 148 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8; /* among, line 149 */
{ int m9 = z->l - z->c; (void)m9;
if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab8;
{ int m_test10 = z->l - z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8;
if (!(find_among_b(z, a_5, 4))) goto lab8;
if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab8; /* non v, line 150 */
if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab8;
z->c = z->l - m_test10;
}
z->ket = z->c; /* [, line 152 */
z->ket = z->c;
if (z->c <= z->lb) goto lab8;
z->c--; /* next, line 152 */
z->bra = z->c; /* ], line 152 */
{ int ret = slice_del(z); /* delete, line 152 */
z->c--;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab8:
@ -571,28 +568,28 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
extern int dutch_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 159 */
{ int ret = r_prelude(z); /* call prelude, line 159 */
extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_prelude(z);
if (ret < 0) return ret;
}
z->c = c1;
}
{ int c2 = z->c; /* do, line 160 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 160 */
{ int c2 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 161 */
z->lb = z->c; z->c = z->l;
/* do, line 162 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 162 */
{ int ret = r_standard_suffix(z);
if (ret < 0) return ret;
}
z->c = z->lb;
{ int c3 = z->c; /* do, line 163 */
{ int ret = r_postlude(z); /* call postlude, line 163 */
{ int c3 = z->c;
{ int ret = r_postlude(z);
if (ret < 0) return ret;
}
z->c = c3;
@ -600,7 +597,7 @@ extern int dutch_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); }
extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
extern void dutch_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -45,16 +45,16 @@ static const symbol s_0_9[2] = { 'k', 0xF6 };
static const struct among a_0[10] =
{
/* 0 */ { 2, s_0_0, -1, 1, 0},
/* 1 */ { 3, s_0_1, -1, 2, 0},
/* 2 */ { 4, s_0_2, -1, 1, 0},
/* 3 */ { 3, s_0_3, -1, 1, 0},
/* 4 */ { 3, s_0_4, -1, 1, 0},
/* 5 */ { 3, s_0_5, -1, 1, 0},
/* 6 */ { 4, s_0_6, -1, 1, 0},
/* 7 */ { 2, s_0_7, -1, 1, 0},
/* 8 */ { 2, s_0_8, -1, 1, 0},
/* 9 */ { 2, s_0_9, -1, 1, 0}
{ 2, s_0_0, -1, 1, 0},
{ 3, s_0_1, -1, 2, 0},
{ 4, s_0_2, -1, 1, 0},
{ 3, s_0_3, -1, 1, 0},
{ 3, s_0_4, -1, 1, 0},
{ 3, s_0_5, -1, 1, 0},
{ 4, s_0_6, -1, 1, 0},
{ 2, s_0_7, -1, 1, 0},
{ 2, s_0_8, -1, 1, 0},
{ 2, s_0_9, -1, 1, 0}
};
static const symbol s_1_0[3] = { 'l', 'l', 'a' };
@ -66,12 +66,12 @@ static const symbol s_1_5[3] = { 's', 't', 'a' };
static const struct among a_1[6] =
{
/* 0 */ { 3, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
/* 2 */ { 3, s_1_2, -1, -1, 0},
/* 3 */ { 2, s_1_3, -1, -1, 0},
/* 4 */ { 3, s_1_4, 3, -1, 0},
/* 5 */ { 3, s_1_5, 3, -1, 0}
{ 3, s_1_0, -1, -1, 0},
{ 2, s_1_1, -1, -1, 0},
{ 3, s_1_2, -1, -1, 0},
{ 2, s_1_3, -1, -1, 0},
{ 3, s_1_4, 3, -1, 0},
{ 3, s_1_5, 3, -1, 0}
};
static const symbol s_2_0[3] = { 'l', 'l', 0xE4 };
@ -83,12 +83,12 @@ static const symbol s_2_5[3] = { 's', 't', 0xE4 };
static const struct among a_2[6] =
{
/* 0 */ { 3, s_2_0, -1, -1, 0},
/* 1 */ { 2, s_2_1, -1, -1, 0},
/* 2 */ { 3, s_2_2, -1, -1, 0},
/* 3 */ { 2, s_2_3, -1, -1, 0},
/* 4 */ { 3, s_2_4, 3, -1, 0},
/* 5 */ { 3, s_2_5, 3, -1, 0}
{ 3, s_2_0, -1, -1, 0},
{ 2, s_2_1, -1, -1, 0},
{ 3, s_2_2, -1, -1, 0},
{ 2, s_2_3, -1, -1, 0},
{ 3, s_2_4, 3, -1, 0},
{ 3, s_2_5, 3, -1, 0}
};
static const symbol s_3_0[3] = { 'l', 'l', 'e' };
@ -96,8 +96,8 @@ static const symbol s_3_1[3] = { 'i', 'n', 'e' };
static const struct among a_3[2] =
{
/* 0 */ { 3, s_3_0, -1, -1, 0},
/* 1 */ { 3, s_3_1, -1, -1, 0}
{ 3, s_3_0, -1, -1, 0},
{ 3, s_3_1, -1, -1, 0}
};
static const symbol s_4_0[3] = { 'n', 's', 'a' };
@ -112,15 +112,15 @@ static const symbol s_4_8[3] = { 'n', 's', 0xE4 };
static const struct among a_4[9] =
{
/* 0 */ { 3, s_4_0, -1, 3, 0},
/* 1 */ { 3, s_4_1, -1, 3, 0},
/* 2 */ { 3, s_4_2, -1, 3, 0},
/* 3 */ { 2, s_4_3, -1, 2, 0},
/* 4 */ { 2, s_4_4, -1, 1, 0},
/* 5 */ { 2, s_4_5, -1, 4, 0},
/* 6 */ { 2, s_4_6, -1, 6, 0},
/* 7 */ { 2, s_4_7, -1, 5, 0},
/* 8 */ { 3, s_4_8, -1, 3, 0}
{ 3, s_4_0, -1, 3, 0},
{ 3, s_4_1, -1, 3, 0},
{ 3, s_4_2, -1, 3, 0},
{ 2, s_4_3, -1, 2, 0},
{ 2, s_4_4, -1, 1, 0},
{ 2, s_4_5, -1, 4, 0},
{ 2, s_4_6, -1, 6, 0},
{ 2, s_4_7, -1, 5, 0},
{ 3, s_4_8, -1, 3, 0}
};
static const symbol s_5_0[2] = { 'a', 'a' };
@ -133,13 +133,13 @@ static const symbol s_5_6[2] = { 0xF6, 0xF6 };
static const struct among a_5[7] =
{
/* 0 */ { 2, s_5_0, -1, -1, 0},
/* 1 */ { 2, s_5_1, -1, -1, 0},
/* 2 */ { 2, s_5_2, -1, -1, 0},
/* 3 */ { 2, s_5_3, -1, -1, 0},
/* 4 */ { 2, s_5_4, -1, -1, 0},
/* 5 */ { 2, s_5_5, -1, -1, 0},
/* 6 */ { 2, s_5_6, -1, -1, 0}
{ 2, s_5_0, -1, -1, 0},
{ 2, s_5_1, -1, -1, 0},
{ 2, s_5_2, -1, -1, 0},
{ 2, s_5_3, -1, -1, 0},
{ 2, s_5_4, -1, -1, 0},
{ 2, s_5_5, -1, -1, 0},
{ 2, s_5_6, -1, -1, 0}
};
static const symbol s_6_0[1] = { 'a' };
@ -175,36 +175,36 @@ static const symbol s_6_29[3] = { 't', 't', 0xE4 };
static const struct among a_6[30] =
{
/* 0 */ { 1, s_6_0, -1, 8, 0},
/* 1 */ { 3, s_6_1, 0, -1, 0},
/* 2 */ { 2, s_6_2, 0, -1, 0},
/* 3 */ { 3, s_6_3, 0, -1, 0},
/* 4 */ { 2, s_6_4, 0, -1, 0},
/* 5 */ { 3, s_6_5, 4, -1, 0},
/* 6 */ { 3, s_6_6, 4, -1, 0},
/* 7 */ { 3, s_6_7, 4, 2, 0},
/* 8 */ { 3, s_6_8, -1, -1, 0},
/* 9 */ { 3, s_6_9, -1, -1, 0},
/* 10 */ { 3, s_6_10, -1, -1, 0},
/* 11 */ { 1, s_6_11, -1, 7, 0},
/* 12 */ { 3, s_6_12, 11, 1, 0},
/* 13 */ { 3, s_6_13, 11, -1, r_VI},
/* 14 */ { 4, s_6_14, 11, -1, r_LONG},
/* 15 */ { 3, s_6_15, 11, 2, 0},
/* 16 */ { 4, s_6_16, 11, -1, r_VI},
/* 17 */ { 3, s_6_17, 11, 3, 0},
/* 18 */ { 4, s_6_18, 11, -1, r_VI},
/* 19 */ { 3, s_6_19, 11, 4, 0},
/* 20 */ { 3, s_6_20, 11, 5, 0},
/* 21 */ { 3, s_6_21, 11, 6, 0},
/* 22 */ { 1, s_6_22, -1, 8, 0},
/* 23 */ { 3, s_6_23, 22, -1, 0},
/* 24 */ { 2, s_6_24, 22, -1, 0},
/* 25 */ { 3, s_6_25, 22, -1, 0},
/* 26 */ { 2, s_6_26, 22, -1, 0},
/* 27 */ { 3, s_6_27, 26, -1, 0},
/* 28 */ { 3, s_6_28, 26, -1, 0},
/* 29 */ { 3, s_6_29, 26, 2, 0}
{ 1, s_6_0, -1, 8, 0},
{ 3, s_6_1, 0, -1, 0},
{ 2, s_6_2, 0, -1, 0},
{ 3, s_6_3, 0, -1, 0},
{ 2, s_6_4, 0, -1, 0},
{ 3, s_6_5, 4, -1, 0},
{ 3, s_6_6, 4, -1, 0},
{ 3, s_6_7, 4, 2, 0},
{ 3, s_6_8, -1, -1, 0},
{ 3, s_6_9, -1, -1, 0},
{ 3, s_6_10, -1, -1, 0},
{ 1, s_6_11, -1, 7, 0},
{ 3, s_6_12, 11, 1, 0},
{ 3, s_6_13, 11, -1, r_VI},
{ 4, s_6_14, 11, -1, r_LONG},
{ 3, s_6_15, 11, 2, 0},
{ 4, s_6_16, 11, -1, r_VI},
{ 3, s_6_17, 11, 3, 0},
{ 4, s_6_18, 11, -1, r_VI},
{ 3, s_6_19, 11, 4, 0},
{ 3, s_6_20, 11, 5, 0},
{ 3, s_6_21, 11, 6, 0},
{ 1, s_6_22, -1, 8, 0},
{ 3, s_6_23, 22, -1, 0},
{ 2, s_6_24, 22, -1, 0},
{ 3, s_6_25, 22, -1, 0},
{ 2, s_6_26, 22, -1, 0},
{ 3, s_6_27, 26, -1, 0},
{ 3, s_6_28, 26, -1, 0},
{ 3, s_6_29, 26, 2, 0}
};
static const symbol s_7_0[3] = { 'e', 'j', 'a' };
@ -224,20 +224,20 @@ static const symbol s_7_13[4] = { 'i', 'm', 'p', 0xE4 };
static const struct among a_7[14] =
{
/* 0 */ { 3, s_7_0, -1, -1, 0},
/* 1 */ { 3, s_7_1, -1, 1, 0},
/* 2 */ { 4, s_7_2, 1, -1, 0},
/* 3 */ { 3, s_7_3, -1, 1, 0},
/* 4 */ { 4, s_7_4, 3, -1, 0},
/* 5 */ { 3, s_7_5, -1, 1, 0},
/* 6 */ { 4, s_7_6, 5, -1, 0},
/* 7 */ { 3, s_7_7, -1, 1, 0},
/* 8 */ { 4, s_7_8, 7, -1, 0},
/* 9 */ { 3, s_7_9, -1, -1, 0},
/* 10 */ { 3, s_7_10, -1, 1, 0},
/* 11 */ { 4, s_7_11, 10, -1, 0},
/* 12 */ { 3, s_7_12, -1, 1, 0},
/* 13 */ { 4, s_7_13, 12, -1, 0}
{ 3, s_7_0, -1, -1, 0},
{ 3, s_7_1, -1, 1, 0},
{ 4, s_7_2, 1, -1, 0},
{ 3, s_7_3, -1, 1, 0},
{ 4, s_7_4, 3, -1, 0},
{ 3, s_7_5, -1, 1, 0},
{ 4, s_7_6, 5, -1, 0},
{ 3, s_7_7, -1, 1, 0},
{ 4, s_7_8, 7, -1, 0},
{ 3, s_7_9, -1, -1, 0},
{ 3, s_7_10, -1, 1, 0},
{ 4, s_7_11, 10, -1, 0},
{ 3, s_7_12, -1, 1, 0},
{ 4, s_7_13, 12, -1, 0}
};
static const symbol s_8_0[1] = { 'i' };
@ -245,8 +245,8 @@ static const symbol s_8_1[1] = { 'j' };
static const struct among a_8[2] =
{
/* 0 */ { 1, s_8_0, -1, -1, 0},
/* 1 */ { 1, s_8_1, -1, -1, 0}
{ 1, s_8_0, -1, -1, 0},
{ 1, s_8_1, -1, -1, 0}
};
static const symbol s_9_0[3] = { 'm', 'm', 'a' };
@ -254,8 +254,8 @@ static const symbol s_9_1[4] = { 'i', 'm', 'm', 'a' };
static const struct among a_9[2] =
{
/* 0 */ { 3, s_9_0, -1, 1, 0},
/* 1 */ { 4, s_9_1, 0, -1, 0}
{ 3, s_9_0, -1, 1, 0},
{ 4, s_9_1, 0, -1, 0}
};
static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
@ -274,118 +274,118 @@ static const symbol s_2[] = { 'i', 'e' };
static const symbol s_3[] = { 'p', 'o' };
static const symbol s_4[] = { 'p', 'o' };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 44 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 45 */
if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 47 */
{ /* gopast */ /* non V1, line 47 */
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
z->I[0] = z->l;
if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0;
{
int ret = in_grouping(z, g_V1, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 47 */
if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 48 */
{ /* gopast */ /* non V1, line 48 */
z->I[1] = z->c;
if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0;
{
int ret = in_grouping(z, g_V1, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 48 */
z->I[0] = z->c;
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 53 */
static int r_R2(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_particle_etc(struct SN_env * z) { /* backwardmode */
static int r_particle_etc(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 56 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
among_var = find_among_b(z, a_0, 10); /* substring, line 56 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
among_var = find_among_b(z, a_0, 10);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 56 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 57 */
switch (among_var) {
case 1:
if (in_grouping_b(z, g_particle_end, 97, 246, 0)) return 0; /* grouping particle_end, line 63 */
if (in_grouping_b(z, g_particle_end, 97, 246, 0)) return 0;
break;
case 2:
{ int ret = r_R2(z); /* call R2, line 65 */
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
break;
}
{ int ret = slice_del(z); /* delete, line 67 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_possessive(struct SN_env * z) { /* backwardmode */
static int r_possessive(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 70 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 70 */
among_var = find_among_b(z, a_4, 9); /* substring, line 70 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
among_var = find_among_b(z, a_4, 9);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 70 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 71 */
switch (among_var) {
case 1:
{ int m2 = z->l - z->c; (void)m2; /* not, line 73 */
if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0; /* literal, line 73 */
{ int m2 = z->l - z->c; (void)m2;
if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0;
z->c--;
return 0;
lab0:
z->c = z->l - m2;
}
{ int ret = slice_del(z); /* delete, line 73 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 75 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 75 */
if (!(eq_s_b(z, 3, s_0))) return 0; /* literal, line 75 */
z->bra = z->c; /* ], line 75 */
{ int ret = slice_from_s(z, 3, s_1); /* <-, line 75 */
z->ket = z->c;
if (!(eq_s_b(z, 3, s_0))) return 0;
z->bra = z->c;
{ int ret = slice_from_s(z, 3, s_1);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 79 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 4:
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0; /* among, line 82 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
if (!(find_among_b(z, a_1, 6))) return 0;
{ int ret = slice_del(z); /* delete, line 82 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 5:
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0; /* among, line 84 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0;
if (!(find_among_b(z, a_2, 6))) return 0;
{ int ret = slice_del(z); /* delete, line 85 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 6:
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0; /* among, line 87 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
if (!(find_among_b(z, a_3, 2))) return 0;
{ int ret = slice_del(z); /* delete, line 87 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -393,244 +393,244 @@ static int r_possessive(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_LONG(struct SN_env * z) { /* backwardmode */
if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 92 */
static int r_LONG(struct SN_env * z) {
if (!(find_among_b(z, a_5, 7))) return 0;
return 1;
}
static int r_VI(struct SN_env * z) { /* backwardmode */
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 94 */
static int r_VI(struct SN_env * z) {
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
z->c--;
if (in_grouping_b(z, g_V2, 97, 246, 0)) return 0; /* grouping V2, line 94 */
if (in_grouping_b(z, g_V2, 97, 246, 0)) return 0;
return 1;
}
static int r_case_ending(struct SN_env * z) { /* backwardmode */
static int r_case_ending(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 97 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 97 */
among_var = find_among_b(z, a_6, 30); /* substring, line 97 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
among_var = find_among_b(z, a_6, 30);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 97 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 98 */
switch (among_var) {
case 1:
if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; /* literal, line 99 */
if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0;
z->c--;
break;
case 2:
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 100 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
z->c--;
break;
case 3:
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 101 */
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
z->c--;
break;
case 4:
if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; /* literal, line 102 */
if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0;
z->c--;
break;
case 5:
if (z->c <= z->lb || z->p[z->c - 1] != 0xE4) return 0; /* literal, line 103 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xE4) return 0;
z->c--;
break;
case 6:
if (z->c <= z->lb || z->p[z->c - 1] != 0xF6) return 0; /* literal, line 104 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xF6) return 0;
z->c--;
break;
case 7:
{ int m2 = z->l - z->c; (void)m2; /* try, line 112 */
{ int m3 = z->l - z->c; (void)m3; /* and, line 114 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 113 */
{ int ret = r_LONG(z); /* call LONG, line 112 */
{ int m2 = z->l - z->c; (void)m2;
{ int m3 = z->l - z->c; (void)m3;
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_LONG(z);
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
goto lab1;
lab2:
z->c = z->l - m4;
if (!(eq_s_b(z, 2, s_2))) { z->c = z->l - m2; goto lab0; } /* literal, line 113 */
if (!(eq_s_b(z, 2, s_2))) { z->c = z->l - m2; goto lab0; }
}
lab1:
z->c = z->l - m3;
if (z->c <= z->lb) { z->c = z->l - m2; goto lab0; }
z->c--; /* next, line 114 */
z->c--;
}
z->bra = z->c; /* ], line 114 */
z->bra = z->c;
lab0:
;
}
break;
case 8:
if (in_grouping_b(z, g_V1, 97, 246, 0)) return 0; /* grouping V1, line 120 */
if (in_grouping_b(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 120 */
if (in_grouping_b(z, g_V1, 97, 246, 0)) return 0;
if (in_grouping_b(z, g_C, 98, 122, 0)) return 0;
break;
}
{ int ret = slice_del(z); /* delete, line 139 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->B[0] = 1; /* set ending_removed, line 140 */
z->I[2] = 1;
return 1;
}
static int r_other_endings(struct SN_env * z) { /* backwardmode */
static int r_other_endings(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 143 */
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c; /* [, line 143 */
among_var = find_among_b(z, a_7, 14); /* substring, line 143 */
{ int mlimit1;
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c;
among_var = find_among_b(z, a_7, 14);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 143 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 144 */
switch (among_var) {
case 1:
{ int m2 = z->l - z->c; (void)m2; /* not, line 147 */
if (!(eq_s_b(z, 2, s_3))) goto lab0; /* literal, line 147 */
{ int m2 = z->l - z->c; (void)m2;
if (!(eq_s_b(z, 2, s_3))) goto lab0;
return 0;
lab0:
z->c = z->l - m2;
}
break;
}
{ int ret = slice_del(z); /* delete, line 152 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_i_plural(struct SN_env * z) { /* backwardmode */
static int r_i_plural(struct SN_env * z) {
{ int mlimit1; /* setlimit, line 155 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 155 */
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; } /* substring, line 155 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; }
if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 155 */
z->bra = z->c;
z->lb = mlimit1;
}
{ int ret = slice_del(z); /* delete, line 159 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_t_plural(struct SN_env * z) { /* backwardmode */
static int r_t_plural(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 162 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 163 */
if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } /* literal, line 163 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; }
z->c--;
z->bra = z->c; /* ], line 163 */
{ int m_test2 = z->l - z->c; /* test, line 163 */
if (in_grouping_b(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; } /* grouping V1, line 163 */
z->bra = z->c;
{ int m_test2 = z->l - z->c;
if (in_grouping_b(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; }
z->c = z->l - m_test2;
}
{ int ret = slice_del(z); /* delete, line 164 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->lb = mlimit1;
}
{ int mlimit3; /* setlimit, line 166 */
if (z->c < z->I[1]) return 0;
mlimit3 = z->lb; z->lb = z->I[1];
z->ket = z->c; /* [, line 166 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } /* substring, line 166 */
{ int mlimit3;
if (z->c < z->I[0]) return 0;
mlimit3 = z->lb; z->lb = z->I[0];
z->ket = z->c;
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; }
among_var = find_among_b(z, a_9, 2);
if (!(among_var)) { z->lb = mlimit3; return 0; }
z->bra = z->c; /* ], line 166 */
z->bra = z->c;
z->lb = mlimit3;
}
switch (among_var) { /* among, line 167 */
switch (among_var) {
case 1:
{ int m4 = z->l - z->c; (void)m4; /* not, line 168 */
if (!(eq_s_b(z, 2, s_4))) goto lab0; /* literal, line 168 */
{ int m4 = z->l - z->c; (void)m4;
if (!(eq_s_b(z, 2, s_4))) goto lab0;
return 0;
lab0:
z->c = z->l - m4;
}
break;
}
{ int ret = slice_del(z); /* delete, line 171 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_tidy(struct SN_env * z) { /* backwardmode */
static int r_tidy(struct SN_env * z) {
{ int mlimit1; /* setlimit, line 174 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
{ int m2 = z->l - z->c; (void)m2; /* do, line 175 */
{ int m3 = z->l - z->c; (void)m3; /* and, line 175 */
{ int ret = r_LONG(z); /* call LONG, line 175 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
{ int m2 = z->l - z->c; (void)m2;
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_LONG(z);
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
z->c = z->l - m3;
z->ket = z->c; /* [, line 175 */
z->ket = z->c;
if (z->c <= z->lb) goto lab0;
z->c--; /* next, line 175 */
z->bra = z->c; /* ], line 175 */
{ int ret = slice_del(z); /* delete, line 175 */
z->c--;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
}
lab0:
z->c = z->l - m2;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 176 */
z->ket = z->c; /* [, line 176 */
if (in_grouping_b(z, g_AEI, 97, 228, 0)) goto lab1; /* grouping AEI, line 176 */
z->bra = z->c; /* ], line 176 */
if (in_grouping_b(z, g_C, 98, 122, 0)) goto lab1; /* grouping C, line 176 */
{ int ret = slice_del(z); /* delete, line 176 */
{ int m4 = z->l - z->c; (void)m4;
z->ket = z->c;
if (in_grouping_b(z, g_AEI, 97, 228, 0)) goto lab1;
z->bra = z->c;
if (in_grouping_b(z, g_C, 98, 122, 0)) goto lab1;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 177 */
z->ket = z->c; /* [, line 177 */
if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2; /* literal, line 177 */
{ int m5 = z->l - z->c; (void)m5;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2;
z->c--;
z->bra = z->c; /* ], line 177 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 177 */
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4; /* literal, line 177 */
z->bra = z->c;
{ int m6 = z->l - z->c; (void)m6;
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4;
z->c--;
goto lab3;
lab4:
z->c = z->l - m6;
if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2; /* literal, line 177 */
if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2;
z->c--;
}
lab3:
{ int ret = slice_del(z); /* delete, line 177 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m5;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 178 */
z->ket = z->c; /* [, line 178 */
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 178 */
{ int m7 = z->l - z->c; (void)m7;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5;
z->c--;
z->bra = z->c; /* ], line 178 */
if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5; /* literal, line 178 */
z->bra = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5;
z->c--;
{ int ret = slice_del(z); /* delete, line 178 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab5:
@ -638,72 +638,72 @@ static int r_tidy(struct SN_env * z) { /* backwardmode */
}
z->lb = mlimit1;
}
if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 180 */
z->ket = z->c; /* [, line 180 */
if (in_grouping_b(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 180 */
z->bra = z->c; /* ], line 180 */
z->S[0] = slice_to(z, z->S[0]); /* -> x, line 180 */
if (z->S[0] == 0) return -1; /* -> x, line 180 */
if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 180 */
{ int ret = slice_del(z); /* delete, line 180 */
if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0;
z->ket = z->c;
if (in_grouping_b(z, g_C, 98, 122, 0)) return 0;
z->bra = z->c;
z->S[0] = slice_to(z, z->S[0]);
if (z->S[0] == 0) return -1;
if (!(eq_v_b(z, z->S[0]))) return 0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
extern int finnish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 186 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 186 */
extern int finnish_ISO_8859_1_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c1;
}
z->B[0] = 0; /* unset ending_removed, line 187 */
z->lb = z->c; z->c = z->l; /* backwards, line 188 */
z->I[2] = 0;
z->lb = z->c; z->c = z->l;
{ int m2 = z->l - z->c; (void)m2; /* do, line 189 */
{ int ret = r_particle_etc(z); /* call particle_etc, line 189 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_particle_etc(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 190 */
{ int ret = r_possessive(z); /* call possessive, line 190 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_possessive(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 191 */
{ int ret = r_case_ending(z); /* call case_ending, line 191 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_case_ending(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 192 */
{ int ret = r_other_endings(z); /* call other_endings, line 192 */
{ int m5 = z->l - z->c; (void)m5;
{ int ret = r_other_endings(z);
if (ret < 0) return ret;
}
z->c = z->l - m5;
}
/* or, line 193 */
if (!(z->B[0])) goto lab1; /* Boolean test ending_removed, line 193 */
{ int m6 = z->l - z->c; (void)m6; /* do, line 193 */
{ int ret = r_i_plural(z); /* call i_plural, line 193 */
if (!(z->I[2])) goto lab1;
{ int m6 = z->l - z->c; (void)m6;
{ int ret = r_i_plural(z);
if (ret < 0) return ret;
}
z->c = z->l - m6;
}
goto lab0;
lab1:
{ int m7 = z->l - z->c; (void)m7; /* do, line 193 */
{ int ret = r_t_plural(z); /* call t_plural, line 193 */
{ int m7 = z->l - z->c; (void)m7;
{ int ret = r_t_plural(z);
if (ret < 0) return ret;
}
z->c = z->l - m7;
}
lab0:
{ int m8 = z->l - z->c; (void)m8; /* do, line 194 */
{ int ret = r_tidy(z); /* call tidy, line 194 */
{ int m8 = z->l - z->c; (void)m8;
{ int ret = r_tidy(z);
if (ret < 0) return ret;
}
z->c = z->l - m8;
@ -712,7 +712,7 @@ lab0:
return 1;
}
extern struct SN_env * finnish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2, 1); }
extern struct SN_env * finnish_ISO_8859_1_create_env(void) { return SN_create_env(1, 3); }
extern void finnish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 1); }

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -35,12 +35,12 @@ static const symbol s_0_5[1] = { 0xFC };
static const struct among a_0[6] =
{
/* 0 */ { 0, 0, -1, 5, 0},
/* 1 */ { 1, s_0_1, 0, 2, 0},
/* 2 */ { 1, s_0_2, 0, 1, 0},
/* 3 */ { 1, s_0_3, 0, 3, 0},
/* 4 */ { 1, s_0_4, 0, 4, 0},
/* 5 */ { 1, s_0_5, 0, 2, 0}
{ 0, 0, -1, 5, 0},
{ 1, s_0_1, 0, 2, 0},
{ 1, s_0_2, 0, 1, 0},
{ 1, s_0_3, 0, 3, 0},
{ 1, s_0_4, 0, 4, 0},
{ 1, s_0_5, 0, 2, 0}
};
static const symbol s_1_0[1] = { 'e' };
@ -53,13 +53,13 @@ static const symbol s_1_6[2] = { 'e', 's' };
static const struct among a_1[7] =
{
/* 0 */ { 1, s_1_0, -1, 2, 0},
/* 1 */ { 2, s_1_1, -1, 1, 0},
/* 2 */ { 2, s_1_2, -1, 2, 0},
/* 3 */ { 3, s_1_3, -1, 1, 0},
/* 4 */ { 2, s_1_4, -1, 1, 0},
/* 5 */ { 1, s_1_5, -1, 3, 0},
/* 6 */ { 2, s_1_6, 5, 2, 0}
{ 1, s_1_0, -1, 2, 0},
{ 2, s_1_1, -1, 1, 0},
{ 2, s_1_2, -1, 2, 0},
{ 3, s_1_3, -1, 1, 0},
{ 2, s_1_4, -1, 1, 0},
{ 1, s_1_5, -1, 3, 0},
{ 2, s_1_6, 5, 2, 0}
};
static const symbol s_2_0[2] = { 'e', 'n' };
@ -69,10 +69,10 @@ static const symbol s_2_3[3] = { 'e', 's', 't' };
static const struct among a_2[4] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 2, s_2_1, -1, 1, 0},
/* 2 */ { 2, s_2_2, -1, 2, 0},
/* 3 */ { 3, s_2_3, 2, 1, 0}
{ 2, s_2_0, -1, 1, 0},
{ 2, s_2_1, -1, 1, 0},
{ 2, s_2_2, -1, 2, 0},
{ 3, s_2_3, 2, 1, 0}
};
static const symbol s_3_0[2] = { 'i', 'g' };
@ -80,8 +80,8 @@ static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
static const struct among a_3[2] =
{
/* 0 */ { 2, s_3_0, -1, 1, 0},
/* 1 */ { 4, s_3_1, -1, 1, 0}
{ 2, s_3_0, -1, 1, 0},
{ 4, s_3_1, -1, 1, 0}
};
static const symbol s_4_0[3] = { 'e', 'n', 'd' };
@ -95,14 +95,14 @@ static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
static const struct among a_4[8] =
{
/* 0 */ { 3, s_4_0, -1, 1, 0},
/* 1 */ { 2, s_4_1, -1, 2, 0},
/* 2 */ { 3, s_4_2, -1, 1, 0},
/* 3 */ { 4, s_4_3, -1, 3, 0},
/* 4 */ { 4, s_4_4, -1, 2, 0},
/* 5 */ { 2, s_4_5, -1, 2, 0},
/* 6 */ { 4, s_4_6, -1, 3, 0},
/* 7 */ { 4, s_4_7, -1, 4, 0}
{ 3, s_4_0, -1, 1, 0},
{ 2, s_4_1, -1, 2, 0},
{ 3, s_4_2, -1, 1, 0},
{ 4, s_4_3, -1, 3, 0},
{ 4, s_4_4, -1, 2, 0},
{ 2, s_4_5, -1, 2, 0},
{ 4, s_4_6, -1, 3, 0},
{ 4, s_4_7, -1, 4, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
@ -123,24 +123,23 @@ static const symbol s_8[] = { 'i', 'g' };
static const symbol s_9[] = { 'e', 'r' };
static const symbol s_10[] = { 'e', 'n' };
static int r_prelude(struct SN_env * z) { /* forwardmode */
{ int c_test1 = z->c; /* test, line 35 */
/* repeat, line 35 */
while(1) { int c2 = z->c;
{ int c3 = z->c; /* or, line 38 */
z->bra = z->c; /* [, line 37 */
if (z->c == z->l || z->p[z->c] != 0xDF) goto lab2; /* literal, line 37 */
static int r_prelude(struct SN_env * z) {
{ int c_test1 = z->c;
while(1) {
int c2 = z->c;
{ int c3 = z->c;
z->bra = z->c;
if (z->c == z->l || z->p[z->c] != 0xDF) goto lab2;
z->c++;
z->ket = z->c; /* ], line 37 */
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 37 */
z->ket = z->c;
{ int ret = slice_from_s(z, 2, s_0);
if (ret < 0) return ret;
}
goto lab1;
lab2:
z->c = c3;
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 38 */
z->c++;
}
lab1:
continue;
@ -150,29 +149,28 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
}
z->c = c_test1;
}
/* repeat, line 41 */
while(1) { int c4 = z->c;
while(1) { /* goto, line 41 */
while(1) {
int c4 = z->c;
while(1) {
int c5 = z->c;
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 42 */
z->bra = z->c; /* [, line 42 */
{ int c6 = z->c; /* or, line 42 */
if (z->c == z->l || z->p[z->c] != 'u') goto lab6; /* literal, line 42 */
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
z->bra = z->c;
{ int c6 = z->c;
if (z->c == z->l || z->p[z->c] != 'u') goto lab6;
z->c++;
z->ket = z->c; /* ], line 42 */
if (in_grouping(z, g_v, 97, 252, 0)) goto lab6; /* grouping v, line 42 */
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 42 */
z->ket = z->c;
if (in_grouping(z, g_v, 97, 252, 0)) goto lab6;
{ int ret = slice_from_s(z, 1, s_1);
if (ret < 0) return ret;
}
goto lab5;
lab6:
z->c = c6;
if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 43 */
if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
z->c++;
z->ket = z->c; /* ], line 43 */
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 43 */
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 43 */
z->ket = z->c;
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
{ int ret = slice_from_s(z, 1, s_2);
if (ret < 0) return ret;
}
}
@ -182,7 +180,7 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
lab4:
z->c = c5;
if (z->c >= z->l) goto lab3;
z->c++; /* goto, line 41 */
z->c++;
}
continue;
lab3:
@ -192,79 +190,76 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
return 1;
}
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 49 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 50 */
{ int c_test1 = z->c; /* test, line 52 */
{ int ret = z->c + 3; /* hop, line 52 */
if (0 > ret || ret > z->l) return 0;
z->c = ret;
}
z->I[2] = z->c; /* setmark x, line 52 */
static int r_mark_regions(struct SN_env * z) {
z->I[2] = z->l;
z->I[1] = z->l;
{ int c_test1 = z->c;
z->c = z->c + 3;
if (z->c > z->l) return 0;
z->I[0] = z->c;
z->c = c_test1;
}
{ /* gopast */ /* grouping v, line 54 */
{
int ret = out_grouping(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
{ /* gopast */ /* non v, line 54 */
{
int ret = in_grouping(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 54 */
/* try, line 55 */
if (!(z->I[0] < z->I[2])) goto lab0; /* $(<integer expression> < <integer expression>), line 55 */
z->I[0] = z->I[2]; /* $p1 = <integer expression>, line 55 */
z->I[2] = z->c;
if (!(z->I[2] < z->I[0])) goto lab0;
z->I[2] = z->I[0];
lab0:
{ /* gopast */ /* grouping v, line 56 */
{
int ret = out_grouping(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
{ /* gopast */ /* non v, line 56 */
{
int ret = in_grouping(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 56 */
z->I[1] = z->c;
return 1;
}
static int r_postlude(struct SN_env * z) { /* forwardmode */
static int r_postlude(struct SN_env * z) {
int among_var;
/* repeat, line 60 */
while(1) { int c1 = z->c;
z->bra = z->c; /* [, line 62 */
among_var = find_among(z, a_0, 6); /* substring, line 62 */
while(1) {
int c1 = z->c;
z->bra = z->c;
among_var = find_among(z, a_0, 6);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 62 */
switch (among_var) { /* among, line 62 */
z->ket = z->c;
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 63 */
{ int ret = slice_from_s(z, 1, s_3);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 64 */
{ int ret = slice_from_s(z, 1, s_4);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 65 */
{ int ret = slice_from_s(z, 1, s_5);
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 66 */
{ int ret = slice_from_s(z, 1, s_6);
if (ret < 0) return ret;
}
break;
case 5:
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 68 */
z->c++;
break;
}
continue;
@ -275,45 +270,45 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
return 1;
}
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 75 */
static int r_R1(struct SN_env * z) {
if (!(z->I[2] <= z->c)) return 0;
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 76 */
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
return 1;
}
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
static int r_standard_suffix(struct SN_env * z) {
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 79 */
z->ket = z->c; /* [, line 80 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 80 */
{ int m1 = z->l - z->c; (void)m1;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
among_var = find_among_b(z, a_1, 7);
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 80 */
{ int ret = r_R1(z); /* call R1, line 80 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
switch (among_var) { /* among, line 80 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 82 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 85 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* try, line 86 */
z->ket = z->c; /* [, line 86 */
if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; } /* literal, line 86 */
{ int m2 = z->l - z->c; (void)m2;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; }
z->c--;
z->bra = z->c; /* ], line 86 */
if (!(eq_s_b(z, 3, s_7))) { z->c = z->l - m2; goto lab1; } /* literal, line 86 */
{ int ret = slice_del(z); /* delete, line 86 */
z->bra = z->c;
if (!(eq_s_b(z, 3, s_7))) { z->c = z->l - m2; goto lab1; }
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab1:
@ -321,8 +316,8 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
}
break;
case 3:
if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0; /* grouping s_ending, line 89 */
{ int ret = slice_del(z); /* delete, line 89 */
if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -330,29 +325,27 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
lab0:
z->c = z->l - m1;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 93 */
z->ket = z->c; /* [, line 94 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 94 */
{ int m3 = z->l - z->c; (void)m3;
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
among_var = find_among_b(z, a_2, 4);
if (!(among_var)) goto lab2;
z->bra = z->c; /* ], line 94 */
{ int ret = r_R1(z); /* call R1, line 94 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
switch (among_var) { /* among, line 94 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 96 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab2; /* grouping st_ending, line 99 */
{ int ret = z->c - 3; /* hop, line 99 */
if (z->lb > ret || ret > z->l) goto lab2;
z->c = ret;
}
{ int ret = slice_del(z); /* delete, line 99 */
if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab2;
z->c = z->c - 3;
if (z->c < z->lb) goto lab2;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -360,37 +353,37 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 103 */
z->ket = z->c; /* [, line 104 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 104 */
{ int m4 = z->l - z->c; (void)m4;
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
among_var = find_among_b(z, a_4, 8);
if (!(among_var)) goto lab3;
z->bra = z->c; /* ], line 104 */
{ int ret = r_R2(z); /* call R2, line 104 */
z->bra = z->c;
{ int ret = r_R2(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
switch (among_var) { /* among, line 104 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 106 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m5 = z->l - z->c; (void)m5; /* try, line 107 */
z->ket = z->c; /* [, line 107 */
if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m5; goto lab4; } /* literal, line 107 */
z->bra = z->c; /* ], line 107 */
{ int m6 = z->l - z->c; (void)m6; /* not, line 107 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5; /* literal, line 107 */
{ int m5 = z->l - z->c; (void)m5;
z->ket = z->c;
if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m5; goto lab4; }
z->bra = z->c;
{ int m6 = z->l - z->c; (void)m6;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5;
z->c--;
{ z->c = z->l - m5; goto lab4; }
lab5:
z->c = z->l - m6;
}
{ int ret = r_R2(z); /* call R2, line 107 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m5; goto lab4; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 107 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab4:
@ -398,37 +391,37 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
}
break;
case 2:
{ int m7 = z->l - z->c; (void)m7; /* not, line 110 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 110 */
{ int m7 = z->l - z->c; (void)m7;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
z->c--;
goto lab3;
lab6:
z->c = z->l - m7;
}
{ int ret = slice_del(z); /* delete, line 110 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 113 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m8 = z->l - z->c; (void)m8; /* try, line 114 */
z->ket = z->c; /* [, line 115 */
{ int m9 = z->l - z->c; (void)m9; /* or, line 115 */
if (!(eq_s_b(z, 2, s_9))) goto lab9; /* literal, line 115 */
{ int m8 = z->l - z->c; (void)m8;
z->ket = z->c;
{ int m9 = z->l - z->c; (void)m9;
if (!(eq_s_b(z, 2, s_9))) goto lab9;
goto lab8;
lab9:
z->c = z->l - m9;
if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m8; goto lab7; } /* literal, line 115 */
if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m8; goto lab7; }
}
lab8:
z->bra = z->c; /* ], line 115 */
{ int ret = r_R1(z); /* call R1, line 115 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret == 0) { z->c = z->l - m8; goto lab7; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 115 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab7:
@ -436,19 +429,19 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
}
break;
case 4:
{ int ret = slice_del(z); /* delete, line 119 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m10 = z->l - z->c; (void)m10; /* try, line 120 */
z->ket = z->c; /* [, line 121 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; } /* substring, line 121 */
{ int m10 = z->l - z->c; (void)m10;
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; }
if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; }
z->bra = z->c; /* ], line 121 */
{ int ret = r_R2(z); /* call R2, line 121 */
z->bra = z->c;
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m10; goto lab10; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 123 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab10:
@ -462,28 +455,28 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
extern int german_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 134 */
{ int ret = r_prelude(z); /* call prelude, line 134 */
extern int german_ISO_8859_1_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_prelude(z);
if (ret < 0) return ret;
}
z->c = c1;
}
{ int c2 = z->c; /* do, line 135 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 135 */
{ int c2 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 136 */
z->lb = z->c; z->c = z->l;
/* do, line 137 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 137 */
{ int ret = r_standard_suffix(z);
if (ret < 0) return ret;
}
z->c = z->lb;
{ int c3 = z->c; /* do, line 138 */
{ int ret = r_postlude(z); /* call postlude, line 138 */
{ int c3 = z->c;
{ int ret = r_postlude(z);
if (ret < 0) return ret;
}
z->c = c3;
@ -491,7 +484,7 @@ extern int german_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * german_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
extern struct SN_env * german_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
extern void german_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -37,9 +37,9 @@ static const symbol s_0_2[3] = { 'p', 'u', 'n' };
static const struct among a_0[3] =
{
/* 0 */ { 3, s_0_0, -1, 1, 0},
/* 1 */ { 3, s_0_1, -1, 1, 0},
/* 2 */ { 3, s_0_2, -1, 1, 0}
{ 3, s_0_0, -1, 1, 0},
{ 3, s_0_1, -1, 1, 0},
{ 3, s_0_2, -1, 1, 0}
};
static const symbol s_1_0[3] = { 'n', 'y', 'a' };
@ -48,9 +48,9 @@ static const symbol s_1_2[2] = { 'm', 'u' };
static const struct among a_1[3] =
{
/* 0 */ { 3, s_1_0, -1, 1, 0},
/* 1 */ { 2, s_1_1, -1, 1, 0},
/* 2 */ { 2, s_1_2, -1, 1, 0}
{ 3, s_1_0, -1, 1, 0},
{ 2, s_1_1, -1, 1, 0},
{ 2, s_1_2, -1, 1, 0}
};
static const symbol s_2_0[1] = { 'i' };
@ -59,9 +59,9 @@ static const symbol s_2_2[3] = { 'k', 'a', 'n' };
static const struct among a_2[3] =
{
/* 0 */ { 1, s_2_0, -1, 1, r_SUFFIX_I_OK},
/* 1 */ { 2, s_2_1, -1, 1, r_SUFFIX_AN_OK},
/* 2 */ { 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK}
{ 1, s_2_0, -1, 1, r_SUFFIX_I_OK},
{ 2, s_2_1, -1, 1, r_SUFFIX_AN_OK},
{ 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK}
};
static const symbol s_3_0[2] = { 'd', 'i' };
@ -79,18 +79,18 @@ static const symbol s_3_11[3] = { 't', 'e', 'r' };
static const struct among a_3[12] =
{
/* 0 */ { 2, s_3_0, -1, 1, 0},
/* 1 */ { 2, s_3_1, -1, 2, 0},
/* 2 */ { 2, s_3_2, -1, 1, 0},
/* 3 */ { 3, s_3_3, 2, 5, 0},
/* 4 */ { 3, s_3_4, 2, 1, 0},
/* 5 */ { 4, s_3_5, 4, 1, 0},
/* 6 */ { 4, s_3_6, 4, 3, r_VOWEL},
/* 7 */ { 3, s_3_7, -1, 6, 0},
/* 8 */ { 3, s_3_8, -1, 2, 0},
/* 9 */ { 4, s_3_9, 8, 2, 0},
/* 10 */ { 4, s_3_10, 8, 4, r_VOWEL},
/* 11 */ { 3, s_3_11, -1, 1, 0}
{ 2, s_3_0, -1, 1, 0},
{ 2, s_3_1, -1, 2, 0},
{ 2, s_3_2, -1, 1, 0},
{ 3, s_3_3, 2, 5, 0},
{ 3, s_3_4, 2, 1, 0},
{ 4, s_3_5, 4, 1, 0},
{ 4, s_3_6, 4, 3, r_VOWEL},
{ 3, s_3_7, -1, 6, 0},
{ 3, s_3_8, -1, 2, 0},
{ 4, s_3_9, 8, 2, 0},
{ 4, s_3_10, 8, 4, r_VOWEL},
{ 3, s_3_11, -1, 1, 0}
};
static const symbol s_4_0[2] = { 'b', 'e' };
@ -102,12 +102,12 @@ static const symbol s_4_5[3] = { 'p', 'e', 'r' };
static const struct among a_4[6] =
{
/* 0 */ { 2, s_4_0, -1, 3, r_KER},
/* 1 */ { 7, s_4_1, 0, 4, 0},
/* 2 */ { 3, s_4_2, 0, 3, 0},
/* 3 */ { 2, s_4_3, -1, 1, 0},
/* 4 */ { 7, s_4_4, 3, 2, 0},
/* 5 */ { 3, s_4_5, 3, 1, 0}
{ 2, s_4_0, -1, 3, r_KER},
{ 7, s_4_1, 0, 4, 0},
{ 3, s_4_2, 0, 3, 0},
{ 2, s_4_3, -1, 1, 0},
{ 7, s_4_4, 3, 2, 0},
{ 3, s_4_5, 3, 1, 0}
};
static const unsigned char g_vowel[] = { 17, 65, 16 };
@ -120,46 +120,46 @@ static const symbol s_4[] = { 'p' };
static const symbol s_5[] = { 'a', 'j', 'a', 'r' };
static const symbol s_6[] = { 'a', 'j', 'a', 'r' };
static int r_remove_particle(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 51 */
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0; /* substring, line 51 */
static int r_remove_particle(struct SN_env * z) {
z->ket = z->c;
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0;
if (!(find_among_b(z, a_0, 3))) return 0;
z->bra = z->c; /* ], line 51 */
{ int ret = slice_del(z); /* delete, line 52 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[0] -= 1; /* $measure -= <integer expression>, line 52 */
z->I[1] -= 1;
return 1;
}
static int r_remove_possessive_pronoun(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 57 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0; /* substring, line 57 */
static int r_remove_possessive_pronoun(struct SN_env * z) {
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0;
if (!(find_among_b(z, a_1, 3))) return 0;
z->bra = z->c; /* ], line 57 */
{ int ret = slice_del(z); /* delete, line 58 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[0] -= 1; /* $measure -= <integer expression>, line 58 */
z->I[1] -= 1;
return 1;
}
static int r_SUFFIX_KAN_OK(struct SN_env * z) { /* backwardmode */
/* and, line 85 */
if (!(z->I[1] != 3)) return 0; /* $(<integer expression> != <integer expression>), line 85 */
if (!(z->I[1] != 2)) return 0; /* $(<integer expression> != <integer expression>), line 85 */
static int r_SUFFIX_KAN_OK(struct SN_env * z) {
if (!(z->I[0] != 3)) return 0;
if (!(z->I[0] != 2)) return 0;
return 1;
}
static int r_SUFFIX_AN_OK(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] != 1)) return 0; /* $(<integer expression> != <integer expression>), line 89 */
static int r_SUFFIX_AN_OK(struct SN_env * z) {
if (!(z->I[0] != 1)) return 0;
return 1;
}
static int r_SUFFIX_I_OK(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= 2)) return 0; /* $(<integer expression> <= <integer expression>), line 93 */
{ int m1 = z->l - z->c; (void)m1; /* not, line 128 */
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0; /* literal, line 128 */
static int r_SUFFIX_I_OK(struct SN_env * z) {
if (!(z->I[0] <= 2)) return 0;
{ int m1 = z->l - z->c; (void)m1;
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0;
z->c--;
return 0;
lab0:
@ -168,100 +168,100 @@ static int r_SUFFIX_I_OK(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_remove_suffix(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 132 */
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0; /* substring, line 132 */
static int r_remove_suffix(struct SN_env * z) {
z->ket = z->c;
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0;
if (!(find_among_b(z, a_2, 3))) return 0;
z->bra = z->c; /* ], line 132 */
{ int ret = slice_del(z); /* delete, line 134 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[0] -= 1; /* $measure -= <integer expression>, line 134 */
z->I[1] -= 1;
return 1;
}
static int r_VOWEL(struct SN_env * z) { /* forwardmode */
if (in_grouping(z, g_vowel, 97, 117, 0)) return 0; /* grouping vowel, line 141 */
static int r_VOWEL(struct SN_env * z) {
if (in_grouping(z, g_vowel, 97, 117, 0)) return 0;
return 1;
}
static int r_KER(struct SN_env * z) { /* forwardmode */
if (out_grouping(z, g_vowel, 97, 117, 0)) return 0; /* non vowel, line 143 */
if (!(eq_s(z, 2, s_0))) return 0; /* literal, line 143 */
static int r_KER(struct SN_env * z) {
if (out_grouping(z, g_vowel, 97, 117, 0)) return 0;
if (!(eq_s(z, 2, s_0))) return 0;
return 1;
}
static int r_remove_first_order_prefix(struct SN_env * z) { /* forwardmode */
static int r_remove_first_order_prefix(struct SN_env * z) {
int among_var;
z->bra = z->c; /* [, line 146 */
if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0; /* substring, line 146 */
z->bra = z->c;
if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0;
among_var = find_among(z, a_3, 12);
if (!(among_var)) return 0;
z->ket = z->c; /* ], line 146 */
switch (among_var) { /* among, line 146 */
z->ket = z->c;
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 147 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[1] = 1; /* $prefix = <integer expression>, line 147 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 147 */
z->I[0] = 1;
z->I[1] -= 1;
break;
case 2:
{ int ret = slice_del(z); /* delete, line 148 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[1] = 3; /* $prefix = <integer expression>, line 148 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 148 */
z->I[0] = 3;
z->I[1] -= 1;
break;
case 3:
z->I[1] = 1; /* $prefix = <integer expression>, line 149 */
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 149 */
z->I[0] = 1;
{ int ret = slice_from_s(z, 1, s_1);
if (ret < 0) return ret;
}
z->I[0] -= 1; /* $measure -= <integer expression>, line 149 */
z->I[1] -= 1;
break;
case 4:
z->I[1] = 3; /* $prefix = <integer expression>, line 150 */
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 150 */
z->I[0] = 3;
{ int ret = slice_from_s(z, 1, s_2);
if (ret < 0) return ret;
}
z->I[0] -= 1; /* $measure -= <integer expression>, line 150 */
z->I[1] -= 1;
break;
case 5:
z->I[1] = 1; /* $prefix = <integer expression>, line 151 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 151 */
{ int c1 = z->c; /* or, line 151 */
{ int c2 = z->c; /* and, line 151 */
if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab1; /* grouping vowel, line 151 */
z->I[0] = 1;
z->I[1] -= 1;
{ int c1 = z->c;
{ int c2 = z->c;
if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab1;
z->c = c2;
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 151 */
{ int ret = slice_from_s(z, 1, s_3);
if (ret < 0) return ret;
}
}
goto lab0;
lab1:
z->c = c1;
{ int ret = slice_del(z); /* delete, line 151 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
}
lab0:
break;
case 6:
z->I[1] = 3; /* $prefix = <integer expression>, line 152 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 152 */
{ int c3 = z->c; /* or, line 152 */
{ int c4 = z->c; /* and, line 152 */
if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab3; /* grouping vowel, line 152 */
z->I[0] = 3;
z->I[1] -= 1;
{ int c3 = z->c;
{ int c4 = z->c;
if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab3;
z->c = c4;
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 152 */
{ int ret = slice_from_s(z, 1, s_4);
if (ret < 0) return ret;
}
}
goto lab2;
lab3:
z->c = c3;
{ int ret = slice_del(z); /* delete, line 152 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
}
@ -271,57 +271,56 @@ static int r_remove_first_order_prefix(struct SN_env * z) { /* forwardmode */
return 1;
}
static int r_remove_second_order_prefix(struct SN_env * z) { /* forwardmode */
static int r_remove_second_order_prefix(struct SN_env * z) {
int among_var;
z->bra = z->c; /* [, line 162 */
if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0; /* substring, line 162 */
z->bra = z->c;
if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0;
among_var = find_among(z, a_4, 6);
if (!(among_var)) return 0;
z->ket = z->c; /* ], line 162 */
switch (among_var) { /* among, line 162 */
z->ket = z->c;
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 163 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[1] = 2; /* $prefix = <integer expression>, line 163 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 163 */
z->I[0] = 2;
z->I[1] -= 1;
break;
case 2:
{ int ret = slice_from_s(z, 4, s_5); /* <-, line 164 */
{ int ret = slice_from_s(z, 4, s_5);
if (ret < 0) return ret;
}
z->I[0] -= 1; /* $measure -= <integer expression>, line 164 */
z->I[1] -= 1;
break;
case 3:
{ int ret = slice_del(z); /* delete, line 165 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[1] = 4; /* $prefix = <integer expression>, line 165 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 165 */
z->I[0] = 4;
z->I[1] -= 1;
break;
case 4:
{ int ret = slice_from_s(z, 4, s_6); /* <-, line 166 */
{ int ret = slice_from_s(z, 4, s_6);
if (ret < 0) return ret;
}
z->I[1] = 4; /* $prefix = <integer expression>, line 166 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 166 */
z->I[0] = 4;
z->I[1] -= 1;
break;
}
return 1;
}
extern int indonesian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
z->I[0] = 0; /* $measure = <integer expression>, line 172 */
{ int c1 = z->c; /* do, line 173 */
/* repeat, line 173 */
while(1) { int c2 = z->c;
{ /* gopast */ /* grouping vowel, line 173 */
extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
z->I[1] = 0;
{ int c1 = z->c;
while(1) {
int c2 = z->c;
{
int ret = out_grouping(z, g_vowel, 97, 117, 1);
if (ret < 0) goto lab1;
z->c += ret;
}
z->I[0] += 1; /* $measure += <integer expression>, line 173 */
z->I[1] += 1;
continue;
lab1:
z->c = c2;
@ -329,45 +328,45 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
}
z->c = c1;
}
if (!(z->I[0] > 2)) return 0; /* $(<integer expression> > <integer expression>), line 174 */
z->I[1] = 0; /* $prefix = <integer expression>, line 175 */
z->lb = z->c; z->c = z->l; /* backwards, line 176 */
if (!(z->I[1] > 2)) return 0;
z->I[0] = 0;
z->lb = z->c; z->c = z->l;
{ int m3 = z->l - z->c; (void)m3; /* do, line 177 */
{ int ret = r_remove_particle(z); /* call remove_particle, line 177 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_remove_particle(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
if (!(z->I[0] > 2)) return 0; /* $(<integer expression> > <integer expression>), line 178 */
{ int m4 = z->l - z->c; (void)m4; /* do, line 179 */
{ int ret = r_remove_possessive_pronoun(z); /* call remove_possessive_pronoun, line 179 */
if (!(z->I[1] > 2)) return 0;
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_remove_possessive_pronoun(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
}
z->c = z->lb;
if (!(z->I[0] > 2)) return 0; /* $(<integer expression> > <integer expression>), line 181 */
{ int c5 = z->c; /* or, line 188 */
{ int c_test6 = z->c; /* test, line 182 */
{ int ret = r_remove_first_order_prefix(z); /* call remove_first_order_prefix, line 183 */
if (!(z->I[1] > 2)) return 0;
{ int c5 = z->c;
{ int c_test6 = z->c;
{ int ret = r_remove_first_order_prefix(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
{ int c7 = z->c; /* do, line 184 */
{ int c_test8 = z->c; /* test, line 185 */
if (!(z->I[0] > 2)) goto lab4; /* $(<integer expression> > <integer expression>), line 185 */
z->lb = z->c; z->c = z->l; /* backwards, line 185 */
{ int c7 = z->c;
{ int c_test8 = z->c;
if (!(z->I[1] > 2)) goto lab4;
z->lb = z->c; z->c = z->l;
{ int ret = r_remove_suffix(z); /* call remove_suffix, line 185 */
{ int ret = r_remove_suffix(z);
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
z->c = z->lb;
z->c = c_test8;
}
if (!(z->I[0] > 2)) goto lab4; /* $(<integer expression> > <integer expression>), line 186 */
{ int ret = r_remove_second_order_prefix(z); /* call remove_second_order_prefix, line 186 */
if (!(z->I[1] > 2)) goto lab4;
{ int ret = r_remove_second_order_prefix(z);
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
@ -379,17 +378,17 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
goto lab2;
lab3:
z->c = c5;
{ int c9 = z->c; /* do, line 189 */
{ int ret = r_remove_second_order_prefix(z); /* call remove_second_order_prefix, line 189 */
{ int c9 = z->c;
{ int ret = r_remove_second_order_prefix(z);
if (ret < 0) return ret;
}
z->c = c9;
}
{ int c10 = z->c; /* do, line 190 */
if (!(z->I[0] > 2)) goto lab5; /* $(<integer expression> > <integer expression>), line 190 */
z->lb = z->c; z->c = z->l; /* backwards, line 190 */
{ int c10 = z->c;
if (!(z->I[1] > 2)) goto lab5;
z->lb = z->c; z->c = z->l;
{ int ret = r_remove_suffix(z); /* call remove_suffix, line 190 */
{ int ret = r_remove_suffix(z);
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
@ -402,7 +401,7 @@ lab2:
return 1;
}
extern struct SN_env * indonesian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); }
extern struct SN_env * indonesian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); }
extern void indonesian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -56,30 +56,30 @@ static const symbol s_0_23[2] = { 't', 's' };
static const struct among a_0[24] =
{
/* 0 */ { 2, s_0_0, -1, 1, 0},
/* 1 */ { 2, s_0_1, -1, 4, 0},
/* 2 */ { 3, s_0_2, 1, 2, 0},
/* 3 */ { 2, s_0_3, -1, 8, 0},
/* 4 */ { 2, s_0_4, -1, 5, 0},
/* 5 */ { 2, s_0_5, -1, 1, 0},
/* 6 */ { 4, s_0_6, 5, 2, 0},
/* 7 */ { 2, s_0_7, -1, 6, 0},
/* 8 */ { 2, s_0_8, -1, 9, 0},
/* 9 */ { 2, s_0_9, -1, 2, 0},
/* 10 */ { 2, s_0_10, -1, 5, 0},
/* 11 */ { 2, s_0_11, -1, 7, 0},
/* 12 */ { 2, s_0_12, -1, 1, 0},
/* 13 */ { 2, s_0_13, -1, 1, 0},
/* 14 */ { 2, s_0_14, -1, 4, 0},
/* 15 */ { 2, s_0_15, -1, 10, 0},
/* 16 */ { 2, s_0_16, -1, 1, 0},
/* 17 */ { 2, s_0_17, -1, 6, 0},
/* 18 */ { 2, s_0_18, -1, 7, 0},
/* 19 */ { 2, s_0_19, -1, 8, 0},
/* 20 */ { 2, s_0_20, -1, 3, 0},
/* 21 */ { 2, s_0_21, -1, 1, 0},
/* 22 */ { 2, s_0_22, -1, 9, 0},
/* 23 */ { 2, s_0_23, -1, 3, 0}
{ 2, s_0_0, -1, 1, 0},
{ 2, s_0_1, -1, 4, 0},
{ 3, s_0_2, 1, 2, 0},
{ 2, s_0_3, -1, 8, 0},
{ 2, s_0_4, -1, 5, 0},
{ 2, s_0_5, -1, 1, 0},
{ 4, s_0_6, 5, 2, 0},
{ 2, s_0_7, -1, 6, 0},
{ 2, s_0_8, -1, 9, 0},
{ 2, s_0_9, -1, 2, 0},
{ 2, s_0_10, -1, 5, 0},
{ 2, s_0_11, -1, 7, 0},
{ 2, s_0_12, -1, 1, 0},
{ 2, s_0_13, -1, 1, 0},
{ 2, s_0_14, -1, 4, 0},
{ 2, s_0_15, -1, 10, 0},
{ 2, s_0_16, -1, 1, 0},
{ 2, s_0_17, -1, 6, 0},
{ 2, s_0_18, -1, 7, 0},
{ 2, s_0_19, -1, 8, 0},
{ 2, s_0_20, -1, 3, 0},
{ 2, s_0_21, -1, 1, 0},
{ 2, s_0_22, -1, 9, 0},
{ 2, s_0_23, -1, 3, 0}
};
static const symbol s_1_0[6] = { 0xED, 'o', 'c', 'h', 't', 'a' };
@ -101,22 +101,22 @@ static const symbol s_1_15[4] = { 'a', 'i', 'r', 0xED };
static const struct among a_1[16] =
{
/* 0 */ { 6, s_1_0, -1, 1, 0},
/* 1 */ { 7, s_1_1, 0, 1, 0},
/* 2 */ { 3, s_1_2, -1, 2, 0},
/* 3 */ { 4, s_1_3, 2, 2, 0},
/* 4 */ { 3, s_1_4, -1, 1, 0},
/* 5 */ { 4, s_1_5, 4, 1, 0},
/* 6 */ { 3, s_1_6, -1, 1, 0},
/* 7 */ { 4, s_1_7, 6, 1, 0},
/* 8 */ { 3, s_1_8, -1, 1, 0},
/* 9 */ { 4, s_1_9, 8, 1, 0},
/* 10 */ { 3, s_1_10, -1, 1, 0},
/* 11 */ { 4, s_1_11, 10, 1, 0},
/* 12 */ { 5, s_1_12, -1, 1, 0},
/* 13 */ { 6, s_1_13, 12, 1, 0},
/* 14 */ { 3, s_1_14, -1, 2, 0},
/* 15 */ { 4, s_1_15, 14, 2, 0}
{ 6, s_1_0, -1, 1, 0},
{ 7, s_1_1, 0, 1, 0},
{ 3, s_1_2, -1, 2, 0},
{ 4, s_1_3, 2, 2, 0},
{ 3, s_1_4, -1, 1, 0},
{ 4, s_1_5, 4, 1, 0},
{ 3, s_1_6, -1, 1, 0},
{ 4, s_1_7, 6, 1, 0},
{ 3, s_1_8, -1, 1, 0},
{ 4, s_1_9, 8, 1, 0},
{ 3, s_1_10, -1, 1, 0},
{ 4, s_1_11, 10, 1, 0},
{ 5, s_1_12, -1, 1, 0},
{ 6, s_1_13, 12, 1, 0},
{ 3, s_1_14, -1, 2, 0},
{ 4, s_1_15, 14, 2, 0}
};
static const symbol s_2_0[8] = { 0xF3, 'i', 'd', 'e', 'a', 'c', 'h', 'a' };
@ -147,31 +147,31 @@ static const symbol s_2_24[12] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h',
static const struct among a_2[25] =
{
/* 0 */ { 8, s_2_0, -1, 6, 0},
/* 1 */ { 7, s_2_1, -1, 5, 0},
/* 2 */ { 5, s_2_2, -1, 1, 0},
/* 3 */ { 8, s_2_3, 2, 2, 0},
/* 4 */ { 6, s_2_4, 2, 1, 0},
/* 5 */ { 11, s_2_5, -1, 4, 0},
/* 6 */ { 5, s_2_6, -1, 5, 0},
/* 7 */ { 3, s_2_7, -1, 1, 0},
/* 8 */ { 4, s_2_8, 7, 1, 0},
/* 9 */ { 7, s_2_9, 8, 6, 0},
/* 10 */ { 7, s_2_10, 8, 3, 0},
/* 11 */ { 6, s_2_11, 7, 5, 0},
/* 12 */ { 9, s_2_12, -1, 4, 0},
/* 13 */ { 7, s_2_13, -1, 5, 0},
/* 14 */ { 6, s_2_14, -1, 6, 0},
/* 15 */ { 7, s_2_15, -1, 1, 0},
/* 16 */ { 8, s_2_16, 15, 1, 0},
/* 17 */ { 6, s_2_17, -1, 3, 0},
/* 18 */ { 5, s_2_18, -1, 3, 0},
/* 19 */ { 4, s_2_19, -1, 1, 0},
/* 20 */ { 7, s_2_20, 19, 2, 0},
/* 21 */ { 5, s_2_21, 19, 1, 0},
/* 22 */ { 10, s_2_22, -1, 4, 0},
/* 23 */ { 9, s_2_23, -1, 2, 0},
/* 24 */ { 12, s_2_24, -1, 4, 0}
{ 8, s_2_0, -1, 6, 0},
{ 7, s_2_1, -1, 5, 0},
{ 5, s_2_2, -1, 1, 0},
{ 8, s_2_3, 2, 2, 0},
{ 6, s_2_4, 2, 1, 0},
{ 11, s_2_5, -1, 4, 0},
{ 5, s_2_6, -1, 5, 0},
{ 3, s_2_7, -1, 1, 0},
{ 4, s_2_8, 7, 1, 0},
{ 7, s_2_9, 8, 6, 0},
{ 7, s_2_10, 8, 3, 0},
{ 6, s_2_11, 7, 5, 0},
{ 9, s_2_12, -1, 4, 0},
{ 7, s_2_13, -1, 5, 0},
{ 6, s_2_14, -1, 6, 0},
{ 7, s_2_15, -1, 1, 0},
{ 8, s_2_16, 15, 1, 0},
{ 6, s_2_17, -1, 3, 0},
{ 5, s_2_18, -1, 3, 0},
{ 4, s_2_19, -1, 1, 0},
{ 7, s_2_20, 19, 2, 0},
{ 5, s_2_21, 19, 1, 0},
{ 10, s_2_22, -1, 4, 0},
{ 9, s_2_23, -1, 2, 0},
{ 12, s_2_24, -1, 4, 0}
};
static const symbol s_3_0[4] = { 'i', 'm', 'i', 'd' };
@ -189,18 +189,18 @@ static const symbol s_3_11[3] = { 't', 'a', 'r' };
static const struct among a_3[12] =
{
/* 0 */ { 4, s_3_0, -1, 1, 0},
/* 1 */ { 5, s_3_1, 0, 1, 0},
/* 2 */ { 4, s_3_2, -1, 1, 0},
/* 3 */ { 5, s_3_3, 2, 1, 0},
/* 4 */ { 3, s_3_4, -1, 2, 0},
/* 5 */ { 4, s_3_5, 4, 2, 0},
/* 6 */ { 5, s_3_6, -1, 1, 0},
/* 7 */ { 4, s_3_7, -1, 1, 0},
/* 8 */ { 3, s_3_8, -1, 2, 0},
/* 9 */ { 3, s_3_9, -1, 2, 0},
/* 10 */ { 4, s_3_10, -1, 2, 0},
/* 11 */ { 3, s_3_11, -1, 2, 0}
{ 4, s_3_0, -1, 1, 0},
{ 5, s_3_1, 0, 1, 0},
{ 4, s_3_2, -1, 1, 0},
{ 5, s_3_3, 2, 1, 0},
{ 3, s_3_4, -1, 2, 0},
{ 4, s_3_5, 4, 2, 0},
{ 5, s_3_6, -1, 1, 0},
{ 4, s_3_7, -1, 1, 0},
{ 3, s_3_8, -1, 2, 0},
{ 3, s_3_9, -1, 2, 0},
{ 4, s_3_10, -1, 2, 0},
{ 3, s_3_11, -1, 2, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 2 };
@ -220,103 +220,103 @@ static const symbol s_11[] = { 'g', 'r', 'a', 'f' };
static const symbol s_12[] = { 'p', 'a', 'i', 't', 'e' };
static const symbol s_13[] = { 0xF3, 'i', 'd' };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 30 */
z->I[1] = z->l; /* $p1 = <integer expression>, line 31 */
z->I[2] = z->l; /* $p2 = <integer expression>, line 32 */
{ int c1 = z->c; /* do, line 34 */
{ /* gopast */ /* grouping v, line 35 */
static int r_mark_regions(struct SN_env * z) {
z->I[2] = z->l;
z->I[1] = z->l;
z->I[0] = z->l;
{ int c1 = z->c;
{
int ret = out_grouping(z, g_v, 97, 250, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
z->I[0] = z->c; /* setmark pV, line 35 */
z->I[2] = z->c;
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 37 */
{ /* gopast */ /* grouping v, line 38 */
{ int c2 = z->c;
{
int ret = out_grouping(z, g_v, 97, 250, 1);
if (ret < 0) goto lab1;
z->c += ret;
}
{ /* gopast */ /* non v, line 38 */
{
int ret = in_grouping(z, g_v, 97, 250, 1);
if (ret < 0) goto lab1;
z->c += ret;
}
z->I[1] = z->c; /* setmark p1, line 38 */
{ /* gopast */ /* grouping v, line 39 */
z->I[1] = z->c;
{
int ret = out_grouping(z, g_v, 97, 250, 1);
if (ret < 0) goto lab1;
z->c += ret;
}
{ /* gopast */ /* non v, line 39 */
{
int ret = in_grouping(z, g_v, 97, 250, 1);
if (ret < 0) goto lab1;
z->c += ret;
}
z->I[2] = z->c; /* setmark p2, line 39 */
z->I[0] = z->c;
lab1:
z->c = c2;
}
return 1;
}
static int r_initial_morph(struct SN_env * z) { /* forwardmode */
static int r_initial_morph(struct SN_env * z) {
int among_var;
z->bra = z->c; /* [, line 44 */
among_var = find_among(z, a_0, 24); /* substring, line 44 */
z->bra = z->c;
among_var = find_among(z, a_0, 24);
if (!(among_var)) return 0;
z->ket = z->c; /* ], line 44 */
switch (among_var) { /* among, line 44 */
z->ket = z->c;
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 46 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 52 */
{ int ret = slice_from_s(z, 1, s_0);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 58 */
{ int ret = slice_from_s(z, 1, s_1);
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 61 */
{ int ret = slice_from_s(z, 1, s_2);
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 63 */
{ int ret = slice_from_s(z, 1, s_3);
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 65 */
{ int ret = slice_from_s(z, 1, s_4);
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 69 */
{ int ret = slice_from_s(z, 1, s_5);
if (ret < 0) return ret;
}
break;
case 8:
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 71 */
{ int ret = slice_from_s(z, 1, s_6);
if (ret < 0) return ret;
}
break;
case 9:
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 75 */
{ int ret = slice_from_s(z, 1, s_7);
if (ret < 0) return ret;
}
break;
case 10:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 89 */
{ int ret = slice_from_s(z, 1, s_8);
if (ret < 0) return ret;
}
break;
@ -324,41 +324,41 @@ static int r_initial_morph(struct SN_env * z) { /* forwardmode */
return 1;
}
static int r_RV(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 99 */
static int r_RV(struct SN_env * z) {
if (!(z->I[2] <= z->c)) return 0;
return 1;
}
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 100 */
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 101 */
static int r_R2(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_noun_sfx(struct SN_env * z) { /* backwardmode */
static int r_noun_sfx(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 104 */
among_var = find_among_b(z, a_1, 16); /* substring, line 104 */
z->ket = z->c;
among_var = find_among_b(z, a_1, 16);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 104 */
switch (among_var) { /* among, line 104 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = r_R1(z); /* call R1, line 108 */
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 108 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R2(z); /* call R2, line 110 */
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 110 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -366,43 +366,43 @@ static int r_noun_sfx(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_deriv(struct SN_env * z) { /* backwardmode */
static int r_deriv(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 114 */
among_var = find_among_b(z, a_2, 25); /* substring, line 114 */
z->ket = z->c;
among_var = find_among_b(z, a_2, 25);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 114 */
switch (among_var) { /* among, line 114 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = r_R2(z); /* call R2, line 116 */
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 116 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 3, s_9); /* <-, line 118 */
{ int ret = slice_from_s(z, 3, s_9);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 3, s_10); /* <-, line 120 */
{ int ret = slice_from_s(z, 3, s_10);
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 4, s_11); /* <-, line 122 */
{ int ret = slice_from_s(z, 4, s_11);
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 5, s_12); /* <-, line 124 */
{ int ret = slice_from_s(z, 5, s_12);
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 3, s_13); /* <-, line 126 */
{ int ret = slice_from_s(z, 3, s_13);
if (ret < 0) return ret;
}
break;
@ -410,27 +410,27 @@ static int r_deriv(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_verb_sfx(struct SN_env * z) { /* backwardmode */
static int r_verb_sfx(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 130 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 130 */
z->ket = z->c;
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_3, 12);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 130 */
switch (among_var) { /* among, line 130 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = r_RV(z); /* call RV, line 133 */
{ int ret = r_RV(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 133 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R1(z); /* call R1, line 138 */
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 138 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -438,33 +438,33 @@ static int r_verb_sfx(struct SN_env * z) { /* backwardmode */
return 1;
}
extern int irish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 144 */
{ int ret = r_initial_morph(z); /* call initial_morph, line 144 */
extern int irish_ISO_8859_1_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_initial_morph(z);
if (ret < 0) return ret;
}
z->c = c1;
}
/* do, line 145 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 145 */
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->lb = z->c; z->c = z->l; /* backwards, line 146 */
z->lb = z->c; z->c = z->l;
{ int m2 = z->l - z->c; (void)m2; /* do, line 147 */
{ int ret = r_noun_sfx(z); /* call noun_sfx, line 147 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_noun_sfx(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 148 */
{ int ret = r_deriv(z); /* call deriv, line 148 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_deriv(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 149 */
{ int ret = r_verb_sfx(z); /* call verb_sfx, line 149 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_verb_sfx(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
@ -473,7 +473,7 @@ extern int irish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * irish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
extern struct SN_env * irish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
extern void irish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -57,35 +57,35 @@ static const symbol s_0_28[3] = { 'a', 's', 't' };
static const struct among a_0[29] =
{
/* 0 */ { 1, s_0_0, -1, 1, 0},
/* 1 */ { 1, s_0_1, -1, 1, 0},
/* 2 */ { 3, s_0_2, 1, 1, 0},
/* 3 */ { 4, s_0_3, 1, 1, 0},
/* 4 */ { 4, s_0_4, 1, 1, 0},
/* 5 */ { 3, s_0_5, 1, 1, 0},
/* 6 */ { 3, s_0_6, 1, 1, 0},
/* 7 */ { 6, s_0_7, 6, 1, 0},
/* 8 */ { 4, s_0_8, 1, 3, 0},
/* 9 */ { 2, s_0_9, -1, 1, 0},
/* 10 */ { 5, s_0_10, 9, 1, 0},
/* 11 */ { 2, s_0_11, -1, 1, 0},
/* 12 */ { 2, s_0_12, -1, 1, 0},
/* 13 */ { 5, s_0_13, 12, 1, 0},
/* 14 */ { 1, s_0_14, -1, 2, 0},
/* 15 */ { 2, s_0_15, 14, 1, 0},
/* 16 */ { 2, s_0_16, 14, 1, 0},
/* 17 */ { 4, s_0_17, 16, 1, 0},
/* 18 */ { 5, s_0_18, 16, 1, 0},
/* 19 */ { 4, s_0_19, 16, 1, 0},
/* 20 */ { 7, s_0_20, 19, 1, 0},
/* 21 */ { 3, s_0_21, 14, 1, 0},
/* 22 */ { 6, s_0_22, 21, 1, 0},
/* 23 */ { 3, s_0_23, 14, 1, 0},
/* 24 */ { 3, s_0_24, 14, 1, 0},
/* 25 */ { 2, s_0_25, -1, 1, 0},
/* 26 */ { 3, s_0_26, 25, 1, 0},
/* 27 */ { 3, s_0_27, -1, 3, 0},
/* 28 */ { 3, s_0_28, -1, 1, 0}
{ 1, s_0_0, -1, 1, 0},
{ 1, s_0_1, -1, 1, 0},
{ 3, s_0_2, 1, 1, 0},
{ 4, s_0_3, 1, 1, 0},
{ 4, s_0_4, 1, 1, 0},
{ 3, s_0_5, 1, 1, 0},
{ 3, s_0_6, 1, 1, 0},
{ 6, s_0_7, 6, 1, 0},
{ 4, s_0_8, 1, 3, 0},
{ 2, s_0_9, -1, 1, 0},
{ 5, s_0_10, 9, 1, 0},
{ 2, s_0_11, -1, 1, 0},
{ 2, s_0_12, -1, 1, 0},
{ 5, s_0_13, 12, 1, 0},
{ 1, s_0_14, -1, 2, 0},
{ 2, s_0_15, 14, 1, 0},
{ 2, s_0_16, 14, 1, 0},
{ 4, s_0_17, 16, 1, 0},
{ 5, s_0_18, 16, 1, 0},
{ 4, s_0_19, 16, 1, 0},
{ 7, s_0_20, 19, 1, 0},
{ 3, s_0_21, 14, 1, 0},
{ 6, s_0_22, 21, 1, 0},
{ 3, s_0_23, 14, 1, 0},
{ 3, s_0_24, 14, 1, 0},
{ 2, s_0_25, -1, 1, 0},
{ 3, s_0_26, 25, 1, 0},
{ 3, s_0_27, -1, 3, 0},
{ 3, s_0_28, -1, 1, 0}
};
static const symbol s_1_0[2] = { 'd', 't' };
@ -93,8 +93,8 @@ static const symbol s_1_1[2] = { 'v', 't' };
static const struct among a_1[2] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0}
{ 2, s_1_0, -1, -1, 0},
{ 2, s_1_1, -1, -1, 0}
};
static const symbol s_2_0[3] = { 'l', 'e', 'g' };
@ -111,17 +111,17 @@ static const symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' };
static const struct among a_2[11] =
{
/* 0 */ { 3, s_2_0, -1, 1, 0},
/* 1 */ { 4, s_2_1, 0, 1, 0},
/* 2 */ { 2, s_2_2, -1, 1, 0},
/* 3 */ { 3, s_2_3, 2, 1, 0},
/* 4 */ { 3, s_2_4, 2, 1, 0},
/* 5 */ { 4, s_2_5, 4, 1, 0},
/* 6 */ { 3, s_2_6, -1, 1, 0},
/* 7 */ { 3, s_2_7, -1, 1, 0},
/* 8 */ { 4, s_2_8, 7, 1, 0},
/* 9 */ { 4, s_2_9, 7, 1, 0},
/* 10 */ { 7, s_2_10, 9, 1, 0}
{ 3, s_2_0, -1, 1, 0},
{ 4, s_2_1, 0, 1, 0},
{ 2, s_2_2, -1, 1, 0},
{ 3, s_2_3, 2, 1, 0},
{ 3, s_2_4, 2, 1, 0},
{ 4, s_2_5, 4, 1, 0},
{ 3, s_2_6, -1, 1, 0},
{ 3, s_2_7, -1, 1, 0},
{ 4, s_2_8, 7, 1, 0},
{ 4, s_2_9, 7, 1, 0},
{ 7, s_2_10, 9, 1, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 };
@ -130,66 +130,64 @@ static const unsigned char g_s_ending[] = { 119, 125, 149, 1 };
static const symbol s_0[] = { 'e', 'r' };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */
{ int c_test1 = z->c; /* test, line 30 */
{ int ret = z->c + 3; /* hop, line 30 */
if (0 > ret || ret > z->l) return 0;
z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 30 */
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
{ int c_test1 = z->c;
z->c = z->c + 3;
if (z->c > z->l) return 0;
z->I[0] = z->c;
z->c = c_test1;
}
if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 31 */
{ /* gopast */ /* non v, line 31 */
if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0;
{
int ret = in_grouping(z, g_v, 97, 248, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 31 */
/* try, line 32 */
if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 32 */
z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 32 */
z->I[1] = z->c;
if (!(z->I[1] < z->I[0])) goto lab0;
z->I[1] = z->I[0];
lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) { /* backwardmode */
static int r_main_suffix(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 38 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 38 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 38 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
among_var = find_among_b(z, a_0, 29);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 38 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 39 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 44 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int m2 = z->l - z->c; (void)m2; /* or, line 46 */
if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1; /* grouping s_ending, line 46 */
{ int m2 = z->l - z->c; (void)m2;
if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1;
goto lab0;
lab1:
z->c = z->l - m2;
if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0; /* literal, line 46 */
if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0;
z->c--;
if (out_grouping_b(z, g_v, 97, 248, 0)) return 0; /* non v, line 46 */
if (out_grouping_b(z, g_v, 97, 248, 0)) return 0;
}
lab0:
{ int ret = slice_del(z); /* delete, line 46 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 48 */
{ int ret = slice_from_s(z, 2, s_0);
if (ret < 0) return ret;
}
break;
@ -197,69 +195,69 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 53 */
static int r_consonant_pair(struct SN_env * z) {
{ int m_test1 = z->l - z->c;
{ int mlimit2; /* setlimit, line 54 */
if (z->c < z->I[0]) return 0;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 54 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; } /* substring, line 54 */
{ int mlimit2;
if (z->c < z->I[1]) return 0;
mlimit2 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; }
if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 54 */
z->bra = z->c;
z->lb = mlimit2;
}
z->c = z->l - m_test1;
}
if (z->c <= z->lb) return 0;
z->c--; /* next, line 59 */
z->bra = z->c; /* ], line 59 */
{ int ret = slice_del(z); /* delete, line 59 */
z->c--;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_other_suffix(struct SN_env * z) { /* backwardmode */
static int r_other_suffix(struct SN_env * z) {
{ int mlimit1; /* setlimit, line 63 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 63 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 63 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 63 */
z->bra = z->c;
z->lb = mlimit1;
}
{ int ret = slice_del(z); /* delete, line 67 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
extern int norwegian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 74 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 74 */
extern int norwegian_ISO_8859_1_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 75 */
z->lb = z->c; z->c = z->l;
{ int m2 = z->l - z->c; (void)m2; /* do, line 76 */
{ int ret = r_main_suffix(z); /* call main_suffix, line 76 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_main_suffix(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 77 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 77 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_consonant_pair(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 78 */
{ int ret = r_other_suffix(z); /* call other_suffix, line 78 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_other_suffix(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
@ -268,7 +266,7 @@ extern int norwegian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * norwegian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); }
extern struct SN_env * norwegian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); }
extern void norwegian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -39,10 +39,10 @@ static const symbol s_0_3[2] = { 's', 's' };
static const struct among a_0[4] =
{
/* 0 */ { 1, s_0_0, -1, 3, 0},
/* 1 */ { 3, s_0_1, 0, 2, 0},
/* 2 */ { 4, s_0_2, 0, 1, 0},
/* 3 */ { 2, s_0_3, 0, -1, 0}
{ 1, s_0_0, -1, 3, 0},
{ 3, s_0_1, 0, 2, 0},
{ 4, s_0_2, 0, 1, 0},
{ 2, s_0_3, 0, -1, 0}
};
static const symbol s_1_1[2] = { 'b', 'b' };
@ -60,19 +60,19 @@ static const symbol s_1_12[2] = { 'i', 'z' };
static const struct among a_1[13] =
{
/* 0 */ { 0, 0, -1, 3, 0},
/* 1 */ { 2, s_1_1, 0, 2, 0},
/* 2 */ { 2, s_1_2, 0, 2, 0},
/* 3 */ { 2, s_1_3, 0, 2, 0},
/* 4 */ { 2, s_1_4, 0, 2, 0},
/* 5 */ { 2, s_1_5, 0, 1, 0},
/* 6 */ { 2, s_1_6, 0, 2, 0},
/* 7 */ { 2, s_1_7, 0, 2, 0},
/* 8 */ { 2, s_1_8, 0, 2, 0},
/* 9 */ { 2, s_1_9, 0, 2, 0},
/* 10 */ { 2, s_1_10, 0, 1, 0},
/* 11 */ { 2, s_1_11, 0, 2, 0},
/* 12 */ { 2, s_1_12, 0, 1, 0}
{ 0, 0, -1, 3, 0},
{ 2, s_1_1, 0, 2, 0},
{ 2, s_1_2, 0, 2, 0},
{ 2, s_1_3, 0, 2, 0},
{ 2, s_1_4, 0, 2, 0},
{ 2, s_1_5, 0, 1, 0},
{ 2, s_1_6, 0, 2, 0},
{ 2, s_1_7, 0, 2, 0},
{ 2, s_1_8, 0, 2, 0},
{ 2, s_1_9, 0, 2, 0},
{ 2, s_1_10, 0, 1, 0},
{ 2, s_1_11, 0, 2, 0},
{ 2, s_1_12, 0, 1, 0}
};
static const symbol s_2_0[2] = { 'e', 'd' };
@ -81,9 +81,9 @@ static const symbol s_2_2[3] = { 'i', 'n', 'g' };
static const struct among a_2[3] =
{
/* 0 */ { 2, s_2_0, -1, 2, 0},
/* 1 */ { 3, s_2_1, 0, 1, 0},
/* 2 */ { 3, s_2_2, -1, 2, 0}
{ 2, s_2_0, -1, 2, 0},
{ 3, s_2_1, 0, 1, 0},
{ 3, s_2_2, -1, 2, 0}
};
static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' };
@ -109,26 +109,26 @@ static const symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
static const struct among a_3[20] =
{
/* 0 */ { 4, s_3_0, -1, 3, 0},
/* 1 */ { 4, s_3_1, -1, 2, 0},
/* 2 */ { 4, s_3_2, -1, 4, 0},
/* 3 */ { 3, s_3_3, -1, 6, 0},
/* 4 */ { 4, s_3_4, -1, 9, 0},
/* 5 */ { 5, s_3_5, -1, 11, 0},
/* 6 */ { 5, s_3_6, -1, 5, 0},
/* 7 */ { 5, s_3_7, -1, 9, 0},
/* 8 */ { 6, s_3_8, -1, 13, 0},
/* 9 */ { 5, s_3_9, -1, 12, 0},
/* 10 */ { 6, s_3_10, -1, 1, 0},
/* 11 */ { 7, s_3_11, 10, 8, 0},
/* 12 */ { 5, s_3_12, -1, 9, 0},
/* 13 */ { 5, s_3_13, -1, 8, 0},
/* 14 */ { 7, s_3_14, 13, 7, 0},
/* 15 */ { 4, s_3_15, -1, 7, 0},
/* 16 */ { 4, s_3_16, -1, 8, 0},
/* 17 */ { 7, s_3_17, -1, 12, 0},
/* 18 */ { 7, s_3_18, -1, 10, 0},
/* 19 */ { 7, s_3_19, -1, 11, 0}
{ 4, s_3_0, -1, 3, 0},
{ 4, s_3_1, -1, 2, 0},
{ 4, s_3_2, -1, 4, 0},
{ 3, s_3_3, -1, 6, 0},
{ 4, s_3_4, -1, 9, 0},
{ 5, s_3_5, -1, 11, 0},
{ 5, s_3_6, -1, 5, 0},
{ 5, s_3_7, -1, 9, 0},
{ 6, s_3_8, -1, 13, 0},
{ 5, s_3_9, -1, 12, 0},
{ 6, s_3_10, -1, 1, 0},
{ 7, s_3_11, 10, 8, 0},
{ 5, s_3_12, -1, 9, 0},
{ 5, s_3_13, -1, 8, 0},
{ 7, s_3_14, 13, 7, 0},
{ 4, s_3_15, -1, 7, 0},
{ 4, s_3_16, -1, 8, 0},
{ 7, s_3_17, -1, 12, 0},
{ 7, s_3_18, -1, 10, 0},
{ 7, s_3_19, -1, 11, 0}
};
static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
@ -141,13 +141,13 @@ static const symbol s_4_6[4] = { 'n', 'e', 's', 's' };
static const struct among a_4[7] =
{
/* 0 */ { 5, s_4_0, -1, 2, 0},
/* 1 */ { 5, s_4_1, -1, 3, 0},
/* 2 */ { 5, s_4_2, -1, 1, 0},
/* 3 */ { 5, s_4_3, -1, 2, 0},
/* 4 */ { 4, s_4_4, -1, 2, 0},
/* 5 */ { 3, s_4_5, -1, 3, 0},
/* 6 */ { 4, s_4_6, -1, 3, 0}
{ 5, s_4_0, -1, 2, 0},
{ 5, s_4_1, -1, 3, 0},
{ 5, s_4_2, -1, 1, 0},
{ 5, s_4_3, -1, 2, 0},
{ 4, s_4_4, -1, 2, 0},
{ 3, s_4_5, -1, 3, 0},
{ 4, s_4_6, -1, 3, 0}
};
static const symbol s_5_0[2] = { 'i', 'c' };
@ -172,25 +172,25 @@ static const symbol s_5_18[2] = { 'o', 'u' };
static const struct among a_5[19] =
{
/* 0 */ { 2, s_5_0, -1, 1, 0},
/* 1 */ { 4, s_5_1, -1, 1, 0},
/* 2 */ { 4, s_5_2, -1, 1, 0},
/* 3 */ { 4, s_5_3, -1, 1, 0},
/* 4 */ { 4, s_5_4, -1, 1, 0},
/* 5 */ { 3, s_5_5, -1, 1, 0},
/* 6 */ { 3, s_5_6, -1, 1, 0},
/* 7 */ { 3, s_5_7, -1, 1, 0},
/* 8 */ { 3, s_5_8, -1, 1, 0},
/* 9 */ { 2, s_5_9, -1, 1, 0},
/* 10 */ { 3, s_5_10, -1, 1, 0},
/* 11 */ { 3, s_5_11, -1, 2, 0},
/* 12 */ { 2, s_5_12, -1, 1, 0},
/* 13 */ { 3, s_5_13, -1, 1, 0},
/* 14 */ { 3, s_5_14, -1, 1, 0},
/* 15 */ { 3, s_5_15, -1, 1, 0},
/* 16 */ { 4, s_5_16, 15, 1, 0},
/* 17 */ { 5, s_5_17, 16, 1, 0},
/* 18 */ { 2, s_5_18, -1, 1, 0}
{ 2, s_5_0, -1, 1, 0},
{ 4, s_5_1, -1, 1, 0},
{ 4, s_5_2, -1, 1, 0},
{ 4, s_5_3, -1, 1, 0},
{ 4, s_5_4, -1, 1, 0},
{ 3, s_5_5, -1, 1, 0},
{ 3, s_5_6, -1, 1, 0},
{ 3, s_5_7, -1, 1, 0},
{ 3, s_5_8, -1, 1, 0},
{ 2, s_5_9, -1, 1, 0},
{ 3, s_5_10, -1, 1, 0},
{ 3, s_5_11, -1, 2, 0},
{ 2, s_5_12, -1, 1, 0},
{ 3, s_5_13, -1, 1, 0},
{ 3, s_5_14, -1, 1, 0},
{ 3, s_5_15, -1, 1, 0},
{ 4, s_5_16, 15, 1, 0},
{ 5, s_5_17, 16, 1, 0},
{ 2, s_5_18, -1, 1, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 1 };
@ -222,43 +222,43 @@ static const symbol s_21[] = { 'Y' };
static const symbol s_22[] = { 'Y' };
static const symbol s_23[] = { 'y' };
static int r_shortv(struct SN_env * z) { /* backwardmode */
if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) return 0; /* non v_WXY, line 19 */
if (in_grouping_b(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 19 */
if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 19 */
static int r_shortv(struct SN_env * z) {
if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) return 0;
if (in_grouping_b(z, g_v, 97, 121, 0)) return 0;
if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
return 1;
}
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 21 */
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 22 */
static int r_R2(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_Step_1a(struct SN_env * z) { /* backwardmode */
static int r_Step_1a(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 25 */
if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0; /* substring, line 25 */
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
among_var = find_among_b(z, a_0, 4);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 25 */
switch (among_var) { /* among, line 25 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */
{ int ret = slice_from_s(z, 2, s_0);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 27 */
{ int ret = slice_from_s(z, 1, s_1);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 29 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -266,70 +266,70 @@ static int r_Step_1a(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_Step_1b(struct SN_env * z) { /* backwardmode */
static int r_Step_1b(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 34 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 34 */
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
among_var = find_among_b(z, a_2, 3);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 34 */
switch (among_var) { /* among, line 34 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = r_R1(z); /* call R1, line 35 */
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 2, s_2); /* <-, line 35 */
{ int ret = slice_from_s(z, 2, s_2);
if (ret < 0) return ret;
}
break;
case 2:
{ int m_test1 = z->l - z->c; /* test, line 38 */
{ /* gopast */ /* grouping v, line 38 */
{ int m_test1 = z->l - z->c;
{
int ret = out_grouping_b(z, g_v, 97, 121, 1);
if (ret < 0) return 0;
z->c -= ret;
}
z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 38 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m_test2 = z->l - z->c; /* test, line 39 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 39 */
{ int m_test2 = z->l - z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
among_var = find_among_b(z, a_1, 13);
if (!(among_var)) return 0;
z->c = z->l - m_test2;
}
switch (among_var) { /* among, line 39 */
switch (among_var) {
case 1:
{ int ret;
{ int saved_c = z->c;
ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
ret = insert_s(z, z->c, z->c, 1, s_3);
z->c = saved_c;
}
if (ret < 0) return ret;
}
break;
case 2:
z->ket = z->c; /* [, line 44 */
z->ket = z->c;
if (z->c <= z->lb) return 0;
z->c--; /* next, line 44 */
z->bra = z->c; /* ], line 44 */
{ int ret = slice_del(z); /* delete, line 44 */
z->c--;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 3:
if (z->c != z->I[0]) return 0; /* atmark, line 45 */
{ int m_test3 = z->l - z->c; /* test, line 45 */
{ int ret = r_shortv(z); /* call shortv, line 45 */
if (z->c != z->I[1]) return 0;
{ int m_test3 = z->l - z->c;
{ int ret = r_shortv(z);
if (ret <= 0) return ret;
}
z->c = z->l - m_test3;
}
{ int ret;
{ int saved_c = z->c;
ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
ret = insert_s(z, z->c, z->c, 1, s_4);
z->c = saved_c;
}
if (ret < 0) return ret;
@ -341,103 +341,103 @@ static int r_Step_1b(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_Step_1c(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 52 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 52 */
if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 52 */
static int r_Step_1c(struct SN_env * z) {
z->ket = z->c;
{ int m1 = z->l - z->c; (void)m1;
if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 52 */
if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0;
z->c--;
}
lab0:
z->bra = z->c; /* ], line 52 */
{ /* gopast */ /* grouping v, line 53 */
z->bra = z->c;
{
int ret = out_grouping_b(z, g_v, 97, 121, 1);
if (ret < 0) return 0;
z->c -= ret;
}
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 54 */
{ int ret = slice_from_s(z, 1, s_5);
if (ret < 0) return ret;
}
return 1;
}
static int r_Step_2(struct SN_env * z) { /* backwardmode */
static int r_Step_2(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 58 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 58 */
z->ket = z->c;
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_3, 20);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 58 */
{ int ret = r_R1(z); /* call R1, line 58 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 58 */
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 4, s_6); /* <-, line 59 */
{ int ret = slice_from_s(z, 4, s_6);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 4, s_7); /* <-, line 60 */
{ int ret = slice_from_s(z, 4, s_7);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 4, s_8); /* <-, line 61 */
{ int ret = slice_from_s(z, 4, s_8);
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 4, s_9); /* <-, line 62 */
{ int ret = slice_from_s(z, 4, s_9);
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 3, s_10); /* <-, line 63 */
{ int ret = slice_from_s(z, 3, s_10);
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 1, s_11); /* <-, line 64 */
{ int ret = slice_from_s(z, 1, s_11);
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 3, s_12); /* <-, line 66 */
{ int ret = slice_from_s(z, 3, s_12);
if (ret < 0) return ret;
}
break;
case 8:
{ int ret = slice_from_s(z, 3, s_13); /* <-, line 68 */
{ int ret = slice_from_s(z, 3, s_13);
if (ret < 0) return ret;
}
break;
case 9:
{ int ret = slice_from_s(z, 2, s_14); /* <-, line 69 */
{ int ret = slice_from_s(z, 2, s_14);
if (ret < 0) return ret;
}
break;
case 10:
{ int ret = slice_from_s(z, 3, s_15); /* <-, line 72 */
{ int ret = slice_from_s(z, 3, s_15);
if (ret < 0) return ret;
}
break;
case 11:
{ int ret = slice_from_s(z, 3, s_16); /* <-, line 74 */
{ int ret = slice_from_s(z, 3, s_16);
if (ret < 0) return ret;
}
break;
case 12:
{ int ret = slice_from_s(z, 3, s_17); /* <-, line 76 */
{ int ret = slice_from_s(z, 3, s_17);
if (ret < 0) return ret;
}
break;
case 13:
{ int ret = slice_from_s(z, 3, s_18); /* <-, line 77 */
{ int ret = slice_from_s(z, 3, s_18);
if (ret < 0) return ret;
}
break;
@ -445,29 +445,29 @@ static int r_Step_2(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_Step_3(struct SN_env * z) { /* backwardmode */
static int r_Step_3(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 82 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 82 */
z->ket = z->c;
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_4, 7);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 82 */
{ int ret = r_R1(z); /* call R1, line 82 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 82 */
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 2, s_19); /* <-, line 83 */
{ int ret = slice_from_s(z, 2, s_19);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 2, s_20); /* <-, line 85 */
{ int ret = slice_from_s(z, 2, s_20);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 87 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -475,34 +475,34 @@ static int r_Step_3(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_Step_4(struct SN_env * z) { /* backwardmode */
static int r_Step_4(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 92 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 92 */
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_5, 19);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 92 */
{ int ret = r_R2(z); /* call R2, line 92 */
z->bra = z->c;
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 92 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 95 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int m1 = z->l - z->c; (void)m1; /* or, line 96 */
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 96 */
{ int m1 = z->l - z->c; (void)m1;
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 96 */
if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0;
z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 96 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -510,24 +510,24 @@ static int r_Step_4(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_Step_5a(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 101 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 101 */
static int r_Step_5a(struct SN_env * z) {
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
z->c--;
z->bra = z->c; /* ], line 101 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 102 */
{ int ret = r_R2(z); /* call R2, line 102 */
z->bra = z->c;
{ int m1 = z->l - z->c; (void)m1;
{ int ret = r_R2(z);
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = z->l - m1;
{ int ret = r_R1(z); /* call R1, line 102 */
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* not, line 102 */
{ int ret = r_shortv(z); /* call shortv, line 102 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_shortv(z);
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
@ -537,64 +537,63 @@ static int r_Step_5a(struct SN_env * z) { /* backwardmode */
}
}
lab0:
{ int ret = slice_del(z); /* delete, line 103 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_Step_5b(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 107 */
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 107 */
static int r_Step_5b(struct SN_env * z) {
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
z->c--;
z->bra = z->c; /* ], line 107 */
{ int ret = r_R2(z); /* call R2, line 108 */
z->bra = z->c;
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 108 */
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
z->c--;
{ int ret = slice_del(z); /* delete, line 109 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
extern int porter_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
z->B[0] = 0; /* unset Y_found, line 115 */
{ int c1 = z->c; /* do, line 116 */
z->bra = z->c; /* [, line 116 */
if (z->c == z->l || z->p[z->c] != 'y') goto lab0; /* literal, line 116 */
extern int porter_ISO_8859_1_stem(struct SN_env * z) {
z->I[2] = 0;
{ int c1 = z->c;
z->bra = z->c;
if (z->c == z->l || z->p[z->c] != 'y') goto lab0;
z->c++;
z->ket = z->c; /* ], line 116 */
{ int ret = slice_from_s(z, 1, s_21); /* <-, line 116 */
z->ket = z->c;
{ int ret = slice_from_s(z, 1, s_21);
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 116 */
z->I[2] = 1;
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 117 */
/* repeat, line 117 */
while(1) { int c3 = z->c;
while(1) { /* goto, line 117 */
{ int c2 = z->c;
while(1) {
int c3 = z->c;
while(1) {
int c4 = z->c;
if (in_grouping(z, g_v, 97, 121, 0)) goto lab3; /* grouping v, line 117 */
z->bra = z->c; /* [, line 117 */
if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 117 */
if (in_grouping(z, g_v, 97, 121, 0)) goto lab3;
z->bra = z->c;
if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
z->c++;
z->ket = z->c; /* ], line 117 */
z->ket = z->c;
z->c = c4;
break;
lab3:
z->c = c4;
if (z->c >= z->l) goto lab2;
z->c++; /* goto, line 117 */
z->c++;
}
{ int ret = slice_from_s(z, 1, s_22); /* <-, line 117 */
{ int ret = slice_from_s(z, 1, s_22);
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 117 */
z->I[2] = 1;
continue;
lab2:
z->c = c3;
@ -602,104 +601,103 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
}
z->c = c2;
}
z->I[0] = z->l; /* $p1 = <integer expression>, line 119 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 120 */
{ int c5 = z->c; /* do, line 121 */
{ /* gopast */ /* grouping v, line 122 */
z->I[1] = z->l;
z->I[0] = z->l;
{ int c5 = z->c;
{
int ret = out_grouping(z, g_v, 97, 121, 1);
if (ret < 0) goto lab4;
z->c += ret;
}
{ /* gopast */ /* non v, line 122 */
{
int ret = in_grouping(z, g_v, 97, 121, 1);
if (ret < 0) goto lab4;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 122 */
{ /* gopast */ /* grouping v, line 123 */
z->I[1] = z->c;
{
int ret = out_grouping(z, g_v, 97, 121, 1);
if (ret < 0) goto lab4;
z->c += ret;
}
{ /* gopast */ /* non v, line 123 */
{
int ret = in_grouping(z, g_v, 97, 121, 1);
if (ret < 0) goto lab4;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 123 */
z->I[0] = z->c;
lab4:
z->c = c5;
}
z->lb = z->c; z->c = z->l; /* backwards, line 126 */
z->lb = z->c; z->c = z->l;
{ int m6 = z->l - z->c; (void)m6; /* do, line 127 */
{ int ret = r_Step_1a(z); /* call Step_1a, line 127 */
{ int m6 = z->l - z->c; (void)m6;
{ int ret = r_Step_1a(z);
if (ret < 0) return ret;
}
z->c = z->l - m6;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 128 */
{ int ret = r_Step_1b(z); /* call Step_1b, line 128 */
{ int m7 = z->l - z->c; (void)m7;
{ int ret = r_Step_1b(z);
if (ret < 0) return ret;
}
z->c = z->l - m7;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 129 */
{ int ret = r_Step_1c(z); /* call Step_1c, line 129 */
{ int m8 = z->l - z->c; (void)m8;
{ int ret = r_Step_1c(z);
if (ret < 0) return ret;
}
z->c = z->l - m8;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 130 */
{ int ret = r_Step_2(z); /* call Step_2, line 130 */
{ int m9 = z->l - z->c; (void)m9;
{ int ret = r_Step_2(z);
if (ret < 0) return ret;
}
z->c = z->l - m9;
}
{ int m10 = z->l - z->c; (void)m10; /* do, line 131 */
{ int ret = r_Step_3(z); /* call Step_3, line 131 */
{ int m10 = z->l - z->c; (void)m10;
{ int ret = r_Step_3(z);
if (ret < 0) return ret;
}
z->c = z->l - m10;
}
{ int m11 = z->l - z->c; (void)m11; /* do, line 132 */
{ int ret = r_Step_4(z); /* call Step_4, line 132 */
{ int m11 = z->l - z->c; (void)m11;
{ int ret = r_Step_4(z);
if (ret < 0) return ret;
}
z->c = z->l - m11;
}
{ int m12 = z->l - z->c; (void)m12; /* do, line 133 */
{ int ret = r_Step_5a(z); /* call Step_5a, line 133 */
{ int m12 = z->l - z->c; (void)m12;
{ int ret = r_Step_5a(z);
if (ret < 0) return ret;
}
z->c = z->l - m12;
}
{ int m13 = z->l - z->c; (void)m13; /* do, line 134 */
{ int ret = r_Step_5b(z); /* call Step_5b, line 134 */
{ int m13 = z->l - z->c; (void)m13;
{ int ret = r_Step_5b(z);
if (ret < 0) return ret;
}
z->c = z->l - m13;
}
z->c = z->lb;
{ int c14 = z->c; /* do, line 137 */
if (!(z->B[0])) goto lab5; /* Boolean test Y_found, line 137 */
/* repeat, line 137 */
while(1) { int c15 = z->c;
while(1) { /* goto, line 137 */
{ int c14 = z->c;
if (!(z->I[2])) goto lab5;
while(1) {
int c15 = z->c;
while(1) {
int c16 = z->c;
z->bra = z->c; /* [, line 137 */
if (z->c == z->l || z->p[z->c] != 'Y') goto lab7; /* literal, line 137 */
z->bra = z->c;
if (z->c == z->l || z->p[z->c] != 'Y') goto lab7;
z->c++;
z->ket = z->c; /* ], line 137 */
z->ket = z->c;
z->c = c16;
break;
lab7:
z->c = c16;
if (z->c >= z->l) goto lab6;
z->c++; /* goto, line 137 */
z->c++;
}
{ int ret = slice_from_s(z, 1, s_23); /* <-, line 137 */
{ int ret = slice_from_s(z, 1, s_23);
if (ret < 0) return ret;
}
continue;
@ -713,7 +711,7 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * porter_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); }
extern struct SN_env * porter_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
extern void porter_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -65,43 +65,43 @@ static const symbol s_0_36[3] = { 'a', 's', 't' };
static const struct among a_0[37] =
{
/* 0 */ { 1, s_0_0, -1, 1, 0},
/* 1 */ { 4, s_0_1, 0, 1, 0},
/* 2 */ { 4, s_0_2, 0, 1, 0},
/* 3 */ { 7, s_0_3, 2, 1, 0},
/* 4 */ { 4, s_0_4, 0, 1, 0},
/* 5 */ { 2, s_0_5, -1, 1, 0},
/* 6 */ { 1, s_0_6, -1, 1, 0},
/* 7 */ { 3, s_0_7, 6, 1, 0},
/* 8 */ { 4, s_0_8, 6, 1, 0},
/* 9 */ { 4, s_0_9, 6, 1, 0},
/* 10 */ { 3, s_0_10, 6, 1, 0},
/* 11 */ { 4, s_0_11, 6, 1, 0},
/* 12 */ { 2, s_0_12, -1, 1, 0},
/* 13 */ { 5, s_0_13, 12, 1, 0},
/* 14 */ { 4, s_0_14, 12, 1, 0},
/* 15 */ { 5, s_0_15, 12, 1, 0},
/* 16 */ { 3, s_0_16, -1, 1, 0},
/* 17 */ { 2, s_0_17, -1, 1, 0},
/* 18 */ { 2, s_0_18, -1, 1, 0},
/* 19 */ { 5, s_0_19, 18, 1, 0},
/* 20 */ { 2, s_0_20, -1, 1, 0},
/* 21 */ { 1, s_0_21, -1, 2, 0},
/* 22 */ { 2, s_0_22, 21, 1, 0},
/* 23 */ { 5, s_0_23, 22, 1, 0},
/* 24 */ { 5, s_0_24, 22, 1, 0},
/* 25 */ { 5, s_0_25, 22, 1, 0},
/* 26 */ { 2, s_0_26, 21, 1, 0},
/* 27 */ { 4, s_0_27, 26, 1, 0},
/* 28 */ { 5, s_0_28, 26, 1, 0},
/* 29 */ { 3, s_0_29, 21, 1, 0},
/* 30 */ { 5, s_0_30, 29, 1, 0},
/* 31 */ { 6, s_0_31, 29, 1, 0},
/* 32 */ { 4, s_0_32, 21, 1, 0},
/* 33 */ { 2, s_0_33, -1, 1, 0},
/* 34 */ { 5, s_0_34, -1, 1, 0},
/* 35 */ { 3, s_0_35, -1, 1, 0},
/* 36 */ { 3, s_0_36, -1, 1, 0}
{ 1, s_0_0, -1, 1, 0},
{ 4, s_0_1, 0, 1, 0},
{ 4, s_0_2, 0, 1, 0},
{ 7, s_0_3, 2, 1, 0},
{ 4, s_0_4, 0, 1, 0},
{ 2, s_0_5, -1, 1, 0},
{ 1, s_0_6, -1, 1, 0},
{ 3, s_0_7, 6, 1, 0},
{ 4, s_0_8, 6, 1, 0},
{ 4, s_0_9, 6, 1, 0},
{ 3, s_0_10, 6, 1, 0},
{ 4, s_0_11, 6, 1, 0},
{ 2, s_0_12, -1, 1, 0},
{ 5, s_0_13, 12, 1, 0},
{ 4, s_0_14, 12, 1, 0},
{ 5, s_0_15, 12, 1, 0},
{ 3, s_0_16, -1, 1, 0},
{ 2, s_0_17, -1, 1, 0},
{ 2, s_0_18, -1, 1, 0},
{ 5, s_0_19, 18, 1, 0},
{ 2, s_0_20, -1, 1, 0},
{ 1, s_0_21, -1, 2, 0},
{ 2, s_0_22, 21, 1, 0},
{ 5, s_0_23, 22, 1, 0},
{ 5, s_0_24, 22, 1, 0},
{ 5, s_0_25, 22, 1, 0},
{ 2, s_0_26, 21, 1, 0},
{ 4, s_0_27, 26, 1, 0},
{ 5, s_0_28, 26, 1, 0},
{ 3, s_0_29, 21, 1, 0},
{ 5, s_0_30, 29, 1, 0},
{ 6, s_0_31, 29, 1, 0},
{ 4, s_0_32, 21, 1, 0},
{ 2, s_0_33, -1, 1, 0},
{ 5, s_0_34, -1, 1, 0},
{ 3, s_0_35, -1, 1, 0},
{ 3, s_0_36, -1, 1, 0}
};
static const symbol s_1_0[2] = { 'd', 'd' };
@ -114,13 +114,13 @@ static const symbol s_1_6[2] = { 't', 't' };
static const struct among a_1[7] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
/* 2 */ { 2, s_1_2, -1, -1, 0},
/* 3 */ { 2, s_1_3, -1, -1, 0},
/* 4 */ { 2, s_1_4, -1, -1, 0},
/* 5 */ { 2, s_1_5, -1, -1, 0},
/* 6 */ { 2, s_1_6, -1, -1, 0}
{ 2, s_1_0, -1, -1, 0},
{ 2, s_1_1, -1, -1, 0},
{ 2, s_1_2, -1, -1, 0},
{ 2, s_1_3, -1, -1, 0},
{ 2, s_1_4, -1, -1, 0},
{ 2, s_1_5, -1, -1, 0},
{ 2, s_1_6, -1, -1, 0}
};
static const symbol s_2_0[2] = { 'i', 'g' };
@ -131,11 +131,11 @@ static const symbol s_2_4[4] = { 'l', 0xF6, 's', 't' };
static const struct among a_2[5] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 3, s_2_1, 0, 1, 0},
/* 2 */ { 3, s_2_2, -1, 1, 0},
/* 3 */ { 5, s_2_3, -1, 3, 0},
/* 4 */ { 4, s_2_4, -1, 2, 0}
{ 2, s_2_0, -1, 1, 0},
{ 3, s_2_1, 0, 1, 0},
{ 3, s_2_2, -1, 1, 0},
{ 5, s_2_3, -1, 3, 0},
{ 4, s_2_4, -1, 2, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
@ -145,52 +145,50 @@ static const unsigned char g_s_ending[] = { 119, 127, 149 };
static const symbol s_0[] = { 'l', 0xF6, 's' };
static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */
{ int c_test1 = z->c; /* test, line 29 */
{ int ret = z->c + 3; /* hop, line 29 */
if (0 > ret || ret > z->l) return 0;
z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 29 */
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
{ int c_test1 = z->c;
z->c = z->c + 3;
if (z->c > z->l) return 0;
z->I[0] = z->c;
z->c = c_test1;
}
if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0; /* goto */ /* grouping v, line 30 */
{ /* gopast */ /* non v, line 30 */
if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0;
{
int ret = in_grouping(z, g_v, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 30 */
/* try, line 31 */
if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 31 */
z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 31 */
z->I[1] = z->c;
if (!(z->I[1] < z->I[0])) goto lab0;
z->I[1] = z->I[0];
lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) { /* backwardmode */
static int r_main_suffix(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 37 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 37 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 37 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
among_var = find_among_b(z, a_0, 37);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 37 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 38 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 44 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0; /* grouping s_ending, line 46 */
{ int ret = slice_del(z); /* delete, line 46 */
if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -198,20 +196,20 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
static int r_consonant_pair(struct SN_env * z) {
{ int mlimit1; /* setlimit, line 50 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
{ int m2 = z->l - z->c; (void)m2; /* and, line 52 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* among, line 51 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
{ int m2 = z->l - z->c; (void)m2;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; }
z->c = z->l - m2;
z->ket = z->c; /* [, line 52 */
z->ket = z->c;
if (z->c <= z->lb) { z->lb = mlimit1; return 0; }
z->c--; /* next, line 52 */
z->bra = z->c; /* ], line 52 */
{ int ret = slice_del(z); /* delete, line 52 */
z->c--;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
}
@ -220,30 +218,30 @@ static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_other_suffix(struct SN_env * z) { /* backwardmode */
static int r_other_suffix(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 55 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 56 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
among_var = find_among_b(z, a_2, 5);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 56 */
switch (among_var) { /* among, line 56 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 57 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 3, s_0); /* <-, line 58 */
{ int ret = slice_from_s(z, 3, s_0);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 4, s_1); /* <-, line 59 */
{ int ret = slice_from_s(z, 4, s_1);
if (ret < 0) return ret;
}
break;
@ -253,29 +251,29 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
extern int swedish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 66 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 66 */
extern int swedish_ISO_8859_1_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 67 */
z->lb = z->c; z->c = z->l;
{ int m2 = z->l - z->c; (void)m2; /* do, line 68 */
{ int ret = r_main_suffix(z); /* call main_suffix, line 68 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_main_suffix(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 69 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 69 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_consonant_pair(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 70 */
{ int ret = r_other_suffix(z); /* call other_suffix, line 70 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_other_suffix(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
@ -284,7 +282,7 @@ extern int swedish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * swedish_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); }
extern struct SN_env * swedish_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); }
extern void swedish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -46,14 +46,14 @@ static const symbol s_0_7[2] = { 'z', 's' };
static const struct among a_0[8] =
{
/* 0 */ { 2, s_0_0, -1, -1, 0},
/* 1 */ { 3, s_0_1, -1, -1, 0},
/* 2 */ { 2, s_0_2, -1, -1, 0},
/* 3 */ { 2, s_0_3, -1, -1, 0},
/* 4 */ { 2, s_0_4, -1, -1, 0},
/* 5 */ { 2, s_0_5, -1, -1, 0},
/* 6 */ { 2, s_0_6, -1, -1, 0},
/* 7 */ { 2, s_0_7, -1, -1, 0}
{ 2, s_0_0, -1, -1, 0},
{ 3, s_0_1, -1, -1, 0},
{ 2, s_0_2, -1, -1, 0},
{ 2, s_0_3, -1, -1, 0},
{ 2, s_0_4, -1, -1, 0},
{ 2, s_0_5, -1, -1, 0},
{ 2, s_0_6, -1, -1, 0},
{ 2, s_0_7, -1, -1, 0}
};
static const symbol s_1_0[1] = { 0xE1 };
@ -61,8 +61,8 @@ static const symbol s_1_1[1] = { 0xE9 };
static const struct among a_1[2] =
{
/* 0 */ { 1, s_1_0, -1, 1, 0},
/* 1 */ { 1, s_1_1, -1, 2, 0}
{ 1, s_1_0, -1, 1, 0},
{ 1, s_1_1, -1, 2, 0}
};
static const symbol s_2_0[2] = { 'b', 'b' };
@ -91,29 +91,29 @@ static const symbol s_2_22[2] = { 'z', 'z' };
static const struct among a_2[23] =
{
/* 0 */ { 2, s_2_0, -1, -1, 0},
/* 1 */ { 2, s_2_1, -1, -1, 0},
/* 2 */ { 2, s_2_2, -1, -1, 0},
/* 3 */ { 2, s_2_3, -1, -1, 0},
/* 4 */ { 2, s_2_4, -1, -1, 0},
/* 5 */ { 2, s_2_5, -1, -1, 0},
/* 6 */ { 2, s_2_6, -1, -1, 0},
/* 7 */ { 2, s_2_7, -1, -1, 0},
/* 8 */ { 2, s_2_8, -1, -1, 0},
/* 9 */ { 2, s_2_9, -1, -1, 0},
/* 10 */ { 2, s_2_10, -1, -1, 0},
/* 11 */ { 2, s_2_11, -1, -1, 0},
/* 12 */ { 3, s_2_12, -1, -1, 0},
/* 13 */ { 2, s_2_13, -1, -1, 0},
/* 14 */ { 3, s_2_14, -1, -1, 0},
/* 15 */ { 2, s_2_15, -1, -1, 0},
/* 16 */ { 2, s_2_16, -1, -1, 0},
/* 17 */ { 3, s_2_17, -1, -1, 0},
/* 18 */ { 3, s_2_18, -1, -1, 0},
/* 19 */ { 3, s_2_19, -1, -1, 0},
/* 20 */ { 3, s_2_20, -1, -1, 0},
/* 21 */ { 3, s_2_21, -1, -1, 0},
/* 22 */ { 2, s_2_22, -1, -1, 0}
{ 2, s_2_0, -1, -1, 0},
{ 2, s_2_1, -1, -1, 0},
{ 2, s_2_2, -1, -1, 0},
{ 2, s_2_3, -1, -1, 0},
{ 2, s_2_4, -1, -1, 0},
{ 2, s_2_5, -1, -1, 0},
{ 2, s_2_6, -1, -1, 0},
{ 2, s_2_7, -1, -1, 0},
{ 2, s_2_8, -1, -1, 0},
{ 2, s_2_9, -1, -1, 0},
{ 2, s_2_10, -1, -1, 0},
{ 2, s_2_11, -1, -1, 0},
{ 3, s_2_12, -1, -1, 0},
{ 2, s_2_13, -1, -1, 0},
{ 3, s_2_14, -1, -1, 0},
{ 2, s_2_15, -1, -1, 0},
{ 2, s_2_16, -1, -1, 0},
{ 3, s_2_17, -1, -1, 0},
{ 3, s_2_18, -1, -1, 0},
{ 3, s_2_19, -1, -1, 0},
{ 3, s_2_20, -1, -1, 0},
{ 3, s_2_21, -1, -1, 0},
{ 2, s_2_22, -1, -1, 0}
};
static const symbol s_3_0[2] = { 'a', 'l' };
@ -121,8 +121,8 @@ static const symbol s_3_1[2] = { 'e', 'l' };
static const struct among a_3[2] =
{
/* 0 */ { 2, s_3_0, -1, 1, 0},
/* 1 */ { 2, s_3_1, -1, 1, 0}
{ 2, s_3_0, -1, 1, 0},
{ 2, s_3_1, -1, 1, 0}
};
static const symbol s_4_0[2] = { 'b', 'a' };
@ -172,50 +172,50 @@ static const symbol s_4_43[2] = { 'v', 0xE9 };
static const struct among a_4[44] =
{
/* 0 */ { 2, s_4_0, -1, -1, 0},
/* 1 */ { 2, s_4_1, -1, -1, 0},
/* 2 */ { 2, s_4_2, -1, -1, 0},
/* 3 */ { 2, s_4_3, -1, -1, 0},
/* 4 */ { 2, s_4_4, -1, -1, 0},
/* 5 */ { 3, s_4_5, -1, -1, 0},
/* 6 */ { 3, s_4_6, -1, -1, 0},
/* 7 */ { 3, s_4_7, -1, -1, 0},
/* 8 */ { 3, s_4_8, -1, -1, 0},
/* 9 */ { 2, s_4_9, -1, -1, 0},
/* 10 */ { 3, s_4_10, -1, -1, 0},
/* 11 */ { 3, s_4_11, -1, -1, 0},
/* 12 */ { 3, s_4_12, -1, -1, 0},
/* 13 */ { 3, s_4_13, -1, -1, 0},
/* 14 */ { 3, s_4_14, -1, -1, 0},
/* 15 */ { 3, s_4_15, -1, -1, 0},
/* 16 */ { 3, s_4_16, -1, -1, 0},
/* 17 */ { 3, s_4_17, -1, -1, 0},
/* 18 */ { 2, s_4_18, -1, -1, 0},
/* 19 */ { 1, s_4_19, -1, -1, 0},
/* 20 */ { 2, s_4_20, 19, -1, 0},
/* 21 */ { 3, s_4_21, 20, -1, 0},
/* 22 */ { 2, s_4_22, 19, -1, 0},
/* 23 */ { 3, s_4_23, 22, -1, 0},
/* 24 */ { 6, s_4_24, 22, -1, 0},
/* 25 */ { 2, s_4_25, 19, -1, 0},
/* 26 */ { 2, s_4_26, 19, -1, 0},
/* 27 */ { 4, s_4_27, -1, -1, 0},
/* 28 */ { 3, s_4_28, -1, -1, 0},
/* 29 */ { 1, s_4_29, -1, -1, 0},
/* 30 */ { 2, s_4_30, 29, -1, 0},
/* 31 */ { 2, s_4_31, 29, -1, 0},
/* 32 */ { 4, s_4_32, 29, -1, 0},
/* 33 */ { 6, s_4_33, 32, -1, 0},
/* 34 */ { 6, s_4_34, 32, -1, 0},
/* 35 */ { 6, s_4_35, 32, -1, 0},
/* 36 */ { 2, s_4_36, 29, -1, 0},
/* 37 */ { 3, s_4_37, 29, -1, 0},
/* 38 */ { 2, s_4_38, 29, -1, 0},
/* 39 */ { 3, s_4_39, -1, -1, 0},
/* 40 */ { 3, s_4_40, -1, -1, 0},
/* 41 */ { 3, s_4_41, -1, -1, 0},
/* 42 */ { 2, s_4_42, -1, -1, 0},
/* 43 */ { 2, s_4_43, -1, -1, 0}
{ 2, s_4_0, -1, -1, 0},
{ 2, s_4_1, -1, -1, 0},
{ 2, s_4_2, -1, -1, 0},
{ 2, s_4_3, -1, -1, 0},
{ 2, s_4_4, -1, -1, 0},
{ 3, s_4_5, -1, -1, 0},
{ 3, s_4_6, -1, -1, 0},
{ 3, s_4_7, -1, -1, 0},
{ 3, s_4_8, -1, -1, 0},
{ 2, s_4_9, -1, -1, 0},
{ 3, s_4_10, -1, -1, 0},
{ 3, s_4_11, -1, -1, 0},
{ 3, s_4_12, -1, -1, 0},
{ 3, s_4_13, -1, -1, 0},
{ 3, s_4_14, -1, -1, 0},
{ 3, s_4_15, -1, -1, 0},
{ 3, s_4_16, -1, -1, 0},
{ 3, s_4_17, -1, -1, 0},
{ 2, s_4_18, -1, -1, 0},
{ 1, s_4_19, -1, -1, 0},
{ 2, s_4_20, 19, -1, 0},
{ 3, s_4_21, 20, -1, 0},
{ 2, s_4_22, 19, -1, 0},
{ 3, s_4_23, 22, -1, 0},
{ 6, s_4_24, 22, -1, 0},
{ 2, s_4_25, 19, -1, 0},
{ 2, s_4_26, 19, -1, 0},
{ 4, s_4_27, -1, -1, 0},
{ 3, s_4_28, -1, -1, 0},
{ 1, s_4_29, -1, -1, 0},
{ 2, s_4_30, 29, -1, 0},
{ 2, s_4_31, 29, -1, 0},
{ 4, s_4_32, 29, -1, 0},
{ 6, s_4_33, 32, -1, 0},
{ 6, s_4_34, 32, -1, 0},
{ 6, s_4_35, 32, -1, 0},
{ 2, s_4_36, 29, -1, 0},
{ 3, s_4_37, 29, -1, 0},
{ 2, s_4_38, 29, -1, 0},
{ 3, s_4_39, -1, -1, 0},
{ 3, s_4_40, -1, -1, 0},
{ 3, s_4_41, -1, -1, 0},
{ 2, s_4_42, -1, -1, 0},
{ 2, s_4_43, -1, -1, 0}
};
static const symbol s_5_0[2] = { 0xE1, 'n' };
@ -224,9 +224,9 @@ static const symbol s_5_2[6] = { 0xE1, 'n', 'k', 0xE9, 'n', 't' };
static const struct among a_5[3] =
{
/* 0 */ { 2, s_5_0, -1, 2, 0},
/* 1 */ { 2, s_5_1, -1, 1, 0},
/* 2 */ { 6, s_5_2, -1, 2, 0}
{ 2, s_5_0, -1, 2, 0},
{ 2, s_5_1, -1, 1, 0},
{ 6, s_5_2, -1, 2, 0}
};
static const symbol s_6_0[4] = { 's', 't', 'u', 'l' };
@ -238,12 +238,12 @@ static const symbol s_6_5[5] = { 0xE9, 's', 't', 0xFC, 'l' };
static const struct among a_6[6] =
{
/* 0 */ { 4, s_6_0, -1, 1, 0},
/* 1 */ { 5, s_6_1, 0, 1, 0},
/* 2 */ { 5, s_6_2, 0, 2, 0},
/* 3 */ { 4, s_6_3, -1, 1, 0},
/* 4 */ { 5, s_6_4, 3, 1, 0},
/* 5 */ { 5, s_6_5, 3, 3, 0}
{ 4, s_6_0, -1, 1, 0},
{ 5, s_6_1, 0, 1, 0},
{ 5, s_6_2, 0, 2, 0},
{ 4, s_6_3, -1, 1, 0},
{ 5, s_6_4, 3, 1, 0},
{ 5, s_6_5, 3, 3, 0}
};
static const symbol s_7_0[1] = { 0xE1 };
@ -251,8 +251,8 @@ static const symbol s_7_1[1] = { 0xE9 };
static const struct among a_7[2] =
{
/* 0 */ { 1, s_7_0, -1, 1, 0},
/* 1 */ { 1, s_7_1, -1, 1, 0}
{ 1, s_7_0, -1, 1, 0},
{ 1, s_7_1, -1, 1, 0}
};
static const symbol s_8_0[1] = { 'k' };
@ -265,13 +265,13 @@ static const symbol s_8_6[2] = { 0xF6, 'k' };
static const struct among a_8[7] =
{
/* 0 */ { 1, s_8_0, -1, 3, 0},
/* 1 */ { 2, s_8_1, 0, 3, 0},
/* 2 */ { 2, s_8_2, 0, 3, 0},
/* 3 */ { 2, s_8_3, 0, 3, 0},
/* 4 */ { 2, s_8_4, 0, 1, 0},
/* 5 */ { 2, s_8_5, 0, 2, 0},
/* 6 */ { 2, s_8_6, 0, 3, 0}
{ 1, s_8_0, -1, 3, 0},
{ 2, s_8_1, 0, 3, 0},
{ 2, s_8_2, 0, 3, 0},
{ 2, s_8_3, 0, 3, 0},
{ 2, s_8_4, 0, 1, 0},
{ 2, s_8_5, 0, 2, 0},
{ 2, s_8_6, 0, 3, 0}
};
static const symbol s_9_0[2] = { 0xE9, 'i' };
@ -289,18 +289,18 @@ static const symbol s_9_11[2] = { 0xE9, 0xE9 };
static const struct among a_9[12] =
{
/* 0 */ { 2, s_9_0, -1, 1, 0},
/* 1 */ { 3, s_9_1, 0, 3, 0},
/* 2 */ { 3, s_9_2, 0, 2, 0},
/* 3 */ { 1, s_9_3, -1, 1, 0},
/* 4 */ { 2, s_9_4, 3, 1, 0},
/* 5 */ { 3, s_9_5, 4, 1, 0},
/* 6 */ { 3, s_9_6, 4, 1, 0},
/* 7 */ { 3, s_9_7, 4, 1, 0},
/* 8 */ { 3, s_9_8, 4, 3, 0},
/* 9 */ { 3, s_9_9, 4, 2, 0},
/* 10 */ { 3, s_9_10, 4, 1, 0},
/* 11 */ { 2, s_9_11, 3, 2, 0}
{ 2, s_9_0, -1, 1, 0},
{ 3, s_9_1, 0, 3, 0},
{ 3, s_9_2, 0, 2, 0},
{ 1, s_9_3, -1, 1, 0},
{ 2, s_9_4, 3, 1, 0},
{ 3, s_9_5, 4, 1, 0},
{ 3, s_9_6, 4, 1, 0},
{ 3, s_9_7, 4, 1, 0},
{ 3, s_9_8, 4, 3, 0},
{ 3, s_9_9, 4, 2, 0},
{ 3, s_9_10, 4, 1, 0},
{ 2, s_9_11, 3, 2, 0}
};
static const symbol s_10_0[1] = { 'a' };
@ -337,37 +337,37 @@ static const symbol s_10_30[1] = { 0xE9 };
static const struct among a_10[31] =
{
/* 0 */ { 1, s_10_0, -1, 1, 0},
/* 1 */ { 2, s_10_1, 0, 1, 0},
/* 2 */ { 1, s_10_2, -1, 1, 0},
/* 3 */ { 2, s_10_3, 2, 1, 0},
/* 4 */ { 2, s_10_4, 2, 1, 0},
/* 5 */ { 2, s_10_5, 2, 1, 0},
/* 6 */ { 2, s_10_6, 2, 2, 0},
/* 7 */ { 2, s_10_7, 2, 3, 0},
/* 8 */ { 2, s_10_8, 2, 1, 0},
/* 9 */ { 1, s_10_9, -1, 1, 0},
/* 10 */ { 2, s_10_10, 9, 1, 0},
/* 11 */ { 2, s_10_11, -1, 1, 0},
/* 12 */ { 3, s_10_12, 11, 1, 0},
/* 13 */ { 3, s_10_13, 11, 2, 0},
/* 14 */ { 3, s_10_14, 11, 3, 0},
/* 15 */ { 3, s_10_15, 11, 1, 0},
/* 16 */ { 2, s_10_16, -1, 1, 0},
/* 17 */ { 3, s_10_17, 16, 1, 0},
/* 18 */ { 4, s_10_18, 17, 2, 0},
/* 19 */ { 2, s_10_19, -1, 1, 0},
/* 20 */ { 3, s_10_20, 19, 1, 0},
/* 21 */ { 4, s_10_21, 20, 3, 0},
/* 22 */ { 1, s_10_22, -1, 1, 0},
/* 23 */ { 2, s_10_23, 22, 1, 0},
/* 24 */ { 2, s_10_24, 22, 1, 0},
/* 25 */ { 2, s_10_25, 22, 1, 0},
/* 26 */ { 2, s_10_26, 22, 2, 0},
/* 27 */ { 2, s_10_27, 22, 3, 0},
/* 28 */ { 1, s_10_28, -1, 1, 0},
/* 29 */ { 1, s_10_29, -1, 2, 0},
/* 30 */ { 1, s_10_30, -1, 3, 0}
{ 1, s_10_0, -1, 1, 0},
{ 2, s_10_1, 0, 1, 0},
{ 1, s_10_2, -1, 1, 0},
{ 2, s_10_3, 2, 1, 0},
{ 2, s_10_4, 2, 1, 0},
{ 2, s_10_5, 2, 1, 0},
{ 2, s_10_6, 2, 2, 0},
{ 2, s_10_7, 2, 3, 0},
{ 2, s_10_8, 2, 1, 0},
{ 1, s_10_9, -1, 1, 0},
{ 2, s_10_10, 9, 1, 0},
{ 2, s_10_11, -1, 1, 0},
{ 3, s_10_12, 11, 1, 0},
{ 3, s_10_13, 11, 2, 0},
{ 3, s_10_14, 11, 3, 0},
{ 3, s_10_15, 11, 1, 0},
{ 2, s_10_16, -1, 1, 0},
{ 3, s_10_17, 16, 1, 0},
{ 4, s_10_18, 17, 2, 0},
{ 2, s_10_19, -1, 1, 0},
{ 3, s_10_20, 19, 1, 0},
{ 4, s_10_21, 20, 3, 0},
{ 1, s_10_22, -1, 1, 0},
{ 2, s_10_23, 22, 1, 0},
{ 2, s_10_24, 22, 1, 0},
{ 2, s_10_25, 22, 1, 0},
{ 2, s_10_26, 22, 2, 0},
{ 2, s_10_27, 22, 3, 0},
{ 1, s_10_28, -1, 1, 0},
{ 1, s_10_29, -1, 2, 0},
{ 1, s_10_30, -1, 3, 0}
};
static const symbol s_11_0[2] = { 'i', 'd' };
@ -415,48 +415,48 @@ static const symbol s_11_41[3] = { 0xE9, 'i', 'm' };
static const struct among a_11[42] =
{
/* 0 */ { 2, s_11_0, -1, 1, 0},
/* 1 */ { 3, s_11_1, 0, 1, 0},
/* 2 */ { 4, s_11_2, 1, 1, 0},
/* 3 */ { 3, s_11_3, 0, 1, 0},
/* 4 */ { 4, s_11_4, 3, 1, 0},
/* 5 */ { 3, s_11_5, 0, 2, 0},
/* 6 */ { 3, s_11_6, 0, 3, 0},
/* 7 */ { 1, s_11_7, -1, 1, 0},
/* 8 */ { 2, s_11_8, 7, 1, 0},
/* 9 */ { 3, s_11_9, 8, 1, 0},
/* 10 */ { 2, s_11_10, 7, 1, 0},
/* 11 */ { 3, s_11_11, 10, 1, 0},
/* 12 */ { 2, s_11_12, 7, 2, 0},
/* 13 */ { 2, s_11_13, 7, 3, 0},
/* 14 */ { 4, s_11_14, -1, 1, 0},
/* 15 */ { 5, s_11_15, 14, 1, 0},
/* 16 */ { 6, s_11_16, 15, 1, 0},
/* 17 */ { 5, s_11_17, 14, 3, 0},
/* 18 */ { 2, s_11_18, -1, 1, 0},
/* 19 */ { 3, s_11_19, 18, 1, 0},
/* 20 */ { 4, s_11_20, 19, 1, 0},
/* 21 */ { 3, s_11_21, 18, 1, 0},
/* 22 */ { 4, s_11_22, 21, 1, 0},
/* 23 */ { 3, s_11_23, 18, 2, 0},
/* 24 */ { 3, s_11_24, 18, 3, 0},
/* 25 */ { 3, s_11_25, -1, 1, 0},
/* 26 */ { 4, s_11_26, 25, 1, 0},
/* 27 */ { 5, s_11_27, 26, 1, 0},
/* 28 */ { 4, s_11_28, 25, 1, 0},
/* 29 */ { 5, s_11_29, 28, 1, 0},
/* 30 */ { 4, s_11_30, 25, 2, 0},
/* 31 */ { 4, s_11_31, 25, 3, 0},
/* 32 */ { 5, s_11_32, -1, 1, 0},
/* 33 */ { 6, s_11_33, 32, 1, 0},
/* 34 */ { 5, s_11_34, -1, 2, 0},
/* 35 */ { 2, s_11_35, -1, 1, 0},
/* 36 */ { 3, s_11_36, 35, 1, 0},
/* 37 */ { 4, s_11_37, 36, 1, 0},
/* 38 */ { 3, s_11_38, 35, 1, 0},
/* 39 */ { 4, s_11_39, 38, 1, 0},
/* 40 */ { 3, s_11_40, 35, 2, 0},
/* 41 */ { 3, s_11_41, 35, 3, 0}
{ 2, s_11_0, -1, 1, 0},
{ 3, s_11_1, 0, 1, 0},
{ 4, s_11_2, 1, 1, 0},
{ 3, s_11_3, 0, 1, 0},
{ 4, s_11_4, 3, 1, 0},
{ 3, s_11_5, 0, 2, 0},
{ 3, s_11_6, 0, 3, 0},
{ 1, s_11_7, -1, 1, 0},
{ 2, s_11_8, 7, 1, 0},
{ 3, s_11_9, 8, 1, 0},
{ 2, s_11_10, 7, 1, 0},
{ 3, s_11_11, 10, 1, 0},
{ 2, s_11_12, 7, 2, 0},
{ 2, s_11_13, 7, 3, 0},
{ 4, s_11_14, -1, 1, 0},
{ 5, s_11_15, 14, 1, 0},
{ 6, s_11_16, 15, 1, 0},
{ 5, s_11_17, 14, 3, 0},
{ 2, s_11_18, -1, 1, 0},
{ 3, s_11_19, 18, 1, 0},
{ 4, s_11_20, 19, 1, 0},
{ 3, s_11_21, 18, 1, 0},
{ 4, s_11_22, 21, 1, 0},
{ 3, s_11_23, 18, 2, 0},
{ 3, s_11_24, 18, 3, 0},
{ 3, s_11_25, -1, 1, 0},
{ 4, s_11_26, 25, 1, 0},
{ 5, s_11_27, 26, 1, 0},
{ 4, s_11_28, 25, 1, 0},
{ 5, s_11_29, 28, 1, 0},
{ 4, s_11_30, 25, 2, 0},
{ 4, s_11_31, 25, 3, 0},
{ 5, s_11_32, -1, 1, 0},
{ 6, s_11_33, 32, 1, 0},
{ 5, s_11_34, -1, 2, 0},
{ 2, s_11_35, -1, 1, 0},
{ 3, s_11_36, 35, 1, 0},
{ 4, s_11_37, 36, 1, 0},
{ 3, s_11_38, 35, 1, 0},
{ 4, s_11_39, 38, 1, 0},
{ 3, s_11_40, 35, 2, 0},
{ 3, s_11_41, 35, 3, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 52, 14 };
@ -476,60 +476,60 @@ static const symbol s_11[] = { 'e' };
static const symbol s_12[] = { 'a' };
static const symbol s_13[] = { 'e' };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 46 */
{ int c1 = z->c; /* or, line 51 */
if (in_grouping(z, g_v, 97, 252, 0)) goto lab1; /* grouping v, line 48 */
if (in_grouping(z, g_v, 97, 252, 1) < 0) goto lab1; /* goto */ /* non v, line 48 */
{ int c2 = z->c; /* or, line 49 */
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3; /* among, line 49 */
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
{ int c1 = z->c;
if (in_grouping(z, g_v, 97, 252, 0)) goto lab1;
if (in_grouping(z, g_v, 97, 252, 1) < 0) goto lab1;
{ int c2 = z->c;
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3;
if (!(find_among(z, a_0, 8))) goto lab3;
goto lab2;
lab3:
z->c = c2;
if (z->c >= z->l) goto lab1;
z->c++; /* next, line 49 */
z->c++;
}
lab2:
z->I[0] = z->c; /* setmark p1, line 50 */
z->I[0] = z->c;
goto lab0;
lab1:
z->c = c1;
if (out_grouping(z, g_v, 97, 252, 0)) return 0; /* non v, line 53 */
{ /* gopast */ /* grouping v, line 53 */
if (out_grouping(z, g_v, 97, 252, 0)) return 0;
{
int ret = out_grouping(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 53 */
z->I[0] = z->c;
}
lab0:
return 1;
}
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 58 */
static int r_R1(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_v_ending(struct SN_env * z) { /* backwardmode */
static int r_v_ending(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 61 */
if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0; /* substring, line 61 */
z->ket = z->c;
if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0;
among_var = find_among_b(z, a_1, 2);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 61 */
{ int ret = r_R1(z); /* call R1, line 61 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 61 */
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 62 */
{ int ret = slice_from_s(z, 1, s_0);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 63 */
{ int ret = slice_from_s(z, 1, s_1);
if (ret < 0) return ret;
}
break;
@ -537,84 +537,82 @@ static int r_v_ending(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_double(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 68 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 68 */
static int r_double(struct SN_env * z) {
{ int m_test1 = z->l - z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_2, 23))) return 0;
z->c = z->l - m_test1;
}
return 1;
}
static int r_undouble(struct SN_env * z) { /* backwardmode */
static int r_undouble(struct SN_env * z) {
if (z->c <= z->lb) return 0;
z->c--; /* next, line 73 */
z->ket = z->c; /* [, line 73 */
{ int ret = z->c - 1; /* hop, line 73 */
if (z->lb > ret || ret > z->l) return 0;
z->c = ret;
}
z->bra = z->c; /* ], line 73 */
{ int ret = slice_del(z); /* delete, line 73 */
z->c--;
z->ket = z->c;
z->c = z->c - 1;
if (z->c < z->lb) return 0;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_instrum(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 77 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 77 */
static int r_instrum(struct SN_env * z) {
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
if (!(find_among_b(z, a_3, 2))) return 0;
z->bra = z->c; /* ], line 77 */
{ int ret = r_R1(z); /* call R1, line 77 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = r_double(z); /* call double, line 78 */
{ int ret = r_double(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 81 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int ret = r_undouble(z); /* call undouble, line 82 */
{ int ret = r_undouble(z);
if (ret <= 0) return ret;
}
return 1;
}
static int r_case(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 87 */
if (!(find_among_b(z, a_4, 44))) return 0; /* substring, line 87 */
z->bra = z->c; /* ], line 87 */
{ int ret = r_R1(z); /* call R1, line 87 */
static int r_case(struct SN_env * z) {
z->ket = z->c;
if (!(find_among_b(z, a_4, 44))) return 0;
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 111 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int ret = r_v_ending(z); /* call v_ending, line 112 */
{ int ret = r_v_ending(z);
if (ret <= 0) return ret;
}
return 1;
}
static int r_case_special(struct SN_env * z) { /* backwardmode */
static int r_case_special(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 116 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0; /* substring, line 116 */
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0;
among_var = find_among_b(z, a_5, 3);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 116 */
{ int ret = r_R1(z); /* call R1, line 116 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 116 */
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 117 */
{ int ret = slice_from_s(z, 1, s_2);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 118 */
{ int ret = slice_from_s(z, 1, s_3);
if (ret < 0) return ret;
}
break;
@ -622,29 +620,29 @@ static int r_case_special(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_case_other(struct SN_env * z) { /* backwardmode */
static int r_case_other(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 124 */
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 124 */
z->ket = z->c;
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0;
among_var = find_among_b(z, a_6, 6);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 124 */
{ int ret = r_R1(z); /* call R1, line 124 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 124 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 125 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 127 */
{ int ret = slice_from_s(z, 1, s_4);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 128 */
{ int ret = slice_from_s(z, 1, s_5);
if (ret < 0) return ret;
}
break;
@ -652,49 +650,49 @@ static int r_case_other(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_factive(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 133 */
if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0; /* substring, line 133 */
static int r_factive(struct SN_env * z) {
z->ket = z->c;
if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0;
if (!(find_among_b(z, a_7, 2))) return 0;
z->bra = z->c; /* ], line 133 */
{ int ret = r_R1(z); /* call R1, line 133 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = r_double(z); /* call double, line 134 */
{ int ret = r_double(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 137 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int ret = r_undouble(z); /* call undouble, line 138 */
{ int ret = r_undouble(z);
if (ret <= 0) return ret;
}
return 1;
}
static int r_plural(struct SN_env * z) { /* backwardmode */
static int r_plural(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 142 */
if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0; /* substring, line 142 */
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0;
among_var = find_among_b(z, a_8, 7);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 142 */
{ int ret = r_R1(z); /* call R1, line 142 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 142 */
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 143 */
{ int ret = slice_from_s(z, 1, s_6);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 144 */
{ int ret = slice_from_s(z, 1, s_7);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 145 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -702,29 +700,29 @@ static int r_plural(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_owned(struct SN_env * z) { /* backwardmode */
static int r_owned(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 154 */
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 233)) return 0; /* substring, line 154 */
z->ket = z->c;
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 233)) return 0;
among_var = find_among_b(z, a_9, 12);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 154 */
{ int ret = r_R1(z); /* call R1, line 154 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 154 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 155 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 156 */
{ int ret = slice_from_s(z, 1, s_8);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 157 */
{ int ret = slice_from_s(z, 1, s_9);
if (ret < 0) return ret;
}
break;
@ -732,28 +730,28 @@ static int r_owned(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_sing_owner(struct SN_env * z) { /* backwardmode */
static int r_sing_owner(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 168 */
among_var = find_among_b(z, a_10, 31); /* substring, line 168 */
z->ket = z->c;
among_var = find_among_b(z, a_10, 31);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 168 */
{ int ret = r_R1(z); /* call R1, line 168 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 168 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 169 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 170 */
{ int ret = slice_from_s(z, 1, s_10);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_11); /* <-, line 171 */
{ int ret = slice_from_s(z, 1, s_11);
if (ret < 0) return ret;
}
break;
@ -761,29 +759,29 @@ static int r_sing_owner(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_plur_owner(struct SN_env * z) { /* backwardmode */
static int r_plur_owner(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 193 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 193 */
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_11, 42);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 193 */
{ int ret = r_R1(z); /* call R1, line 193 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 193 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 194 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_12); /* <-, line 195 */
{ int ret = slice_from_s(z, 1, s_12);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_13); /* <-, line 196 */
{ int ret = slice_from_s(z, 1, s_13);
if (ret < 0) return ret;
}
break;
@ -791,65 +789,65 @@ static int r_plur_owner(struct SN_env * z) { /* backwardmode */
return 1;
}
extern int hungarian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 229 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 229 */
extern int hungarian_ISO_8859_2_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 230 */
z->lb = z->c; z->c = z->l;
{ int m2 = z->l - z->c; (void)m2; /* do, line 231 */
{ int ret = r_instrum(z); /* call instrum, line 231 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_instrum(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 232 */
{ int ret = r_case(z); /* call case, line 232 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_case(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 233 */
{ int ret = r_case_special(z); /* call case_special, line 233 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_case_special(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 234 */
{ int ret = r_case_other(z); /* call case_other, line 234 */
{ int m5 = z->l - z->c; (void)m5;
{ int ret = r_case_other(z);
if (ret < 0) return ret;
}
z->c = z->l - m5;
}
{ int m6 = z->l - z->c; (void)m6; /* do, line 235 */
{ int ret = r_factive(z); /* call factive, line 235 */
{ int m6 = z->l - z->c; (void)m6;
{ int ret = r_factive(z);
if (ret < 0) return ret;
}
z->c = z->l - m6;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 236 */
{ int ret = r_owned(z); /* call owned, line 236 */
{ int m7 = z->l - z->c; (void)m7;
{ int ret = r_owned(z);
if (ret < 0) return ret;
}
z->c = z->l - m7;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 237 */
{ int ret = r_sing_owner(z); /* call sing_owner, line 237 */
{ int m8 = z->l - z->c; (void)m8;
{ int ret = r_sing_owner(z);
if (ret < 0) return ret;
}
z->c = z->l - m8;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 238 */
{ int ret = r_plur_owner(z); /* call plur_owner, line 238 */
{ int m9 = z->l - z->c; (void)m9;
{ int ret = r_plur_owner(z);
if (ret < 0) return ret;
}
z->c = z->l - m9;
}
{ int m10 = z->l - z->c; (void)m10; /* do, line 239 */
{ int ret = r_plural(z); /* call plural, line 239 */
{ int m10 = z->l - z->c; (void)m10;
{ int ret = r_plural(z);
if (ret < 0) return ret;
}
z->c = z->l - m10;
@ -858,7 +856,7 @@ extern int hungarian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * hungarian_ISO_8859_2_create_env(void) { return SN_create_env(0, 1, 0); }
extern struct SN_env * hungarian_ISO_8859_2_create_env(void) { return SN_create_env(0, 1); }
extern void hungarian_ISO_8859_2_close_env(struct SN_env * z) { SN_close_env(z, 0); }

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -43,15 +43,15 @@ static const symbol s_0_8[6] = { 0xD9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
static const struct among a_0[9] =
{
/* 0 */ { 3, s_0_0, -1, 1, 0},
/* 1 */ { 4, s_0_1, 0, 2, 0},
/* 2 */ { 4, s_0_2, 0, 2, 0},
/* 3 */ { 1, s_0_3, -1, 1, 0},
/* 4 */ { 2, s_0_4, 3, 2, 0},
/* 5 */ { 2, s_0_5, 3, 2, 0},
/* 6 */ { 5, s_0_6, -1, 1, 0},
/* 7 */ { 6, s_0_7, 6, 2, 0},
/* 8 */ { 6, s_0_8, 6, 2, 0}
{ 3, s_0_0, -1, 1, 0},
{ 4, s_0_1, 0, 2, 0},
{ 4, s_0_2, 0, 2, 0},
{ 1, s_0_3, -1, 1, 0},
{ 2, s_0_4, 3, 2, 0},
{ 2, s_0_5, 3, 2, 0},
{ 5, s_0_6, -1, 1, 0},
{ 6, s_0_7, 6, 2, 0},
{ 6, s_0_8, 6, 2, 0}
};
static const symbol s_1_0[2] = { 0xC0, 0xC0 };
@ -83,32 +83,32 @@ static const symbol s_1_25[3] = { 0xCF, 0xCD, 0xD5 };
static const struct among a_1[26] =
{
/* 0 */ { 2, s_1_0, -1, 1, 0},
/* 1 */ { 2, s_1_1, -1, 1, 0},
/* 2 */ { 2, s_1_2, -1, 1, 0},
/* 3 */ { 2, s_1_3, -1, 1, 0},
/* 4 */ { 2, s_1_4, -1, 1, 0},
/* 5 */ { 2, s_1_5, -1, 1, 0},
/* 6 */ { 2, s_1_6, -1, 1, 0},
/* 7 */ { 2, s_1_7, -1, 1, 0},
/* 8 */ { 2, s_1_8, -1, 1, 0},
/* 9 */ { 2, s_1_9, -1, 1, 0},
/* 10 */ { 3, s_1_10, -1, 1, 0},
/* 11 */ { 3, s_1_11, -1, 1, 0},
/* 12 */ { 2, s_1_12, -1, 1, 0},
/* 13 */ { 2, s_1_13, -1, 1, 0},
/* 14 */ { 2, s_1_14, -1, 1, 0},
/* 15 */ { 2, s_1_15, -1, 1, 0},
/* 16 */ { 2, s_1_16, -1, 1, 0},
/* 17 */ { 2, s_1_17, -1, 1, 0},
/* 18 */ { 2, s_1_18, -1, 1, 0},
/* 19 */ { 2, s_1_19, -1, 1, 0},
/* 20 */ { 3, s_1_20, -1, 1, 0},
/* 21 */ { 3, s_1_21, -1, 1, 0},
/* 22 */ { 2, s_1_22, -1, 1, 0},
/* 23 */ { 2, s_1_23, -1, 1, 0},
/* 24 */ { 3, s_1_24, -1, 1, 0},
/* 25 */ { 3, s_1_25, -1, 1, 0}
{ 2, s_1_0, -1, 1, 0},
{ 2, s_1_1, -1, 1, 0},
{ 2, s_1_2, -1, 1, 0},
{ 2, s_1_3, -1, 1, 0},
{ 2, s_1_4, -1, 1, 0},
{ 2, s_1_5, -1, 1, 0},
{ 2, s_1_6, -1, 1, 0},
{ 2, s_1_7, -1, 1, 0},
{ 2, s_1_8, -1, 1, 0},
{ 2, s_1_9, -1, 1, 0},
{ 3, s_1_10, -1, 1, 0},
{ 3, s_1_11, -1, 1, 0},
{ 2, s_1_12, -1, 1, 0},
{ 2, s_1_13, -1, 1, 0},
{ 2, s_1_14, -1, 1, 0},
{ 2, s_1_15, -1, 1, 0},
{ 2, s_1_16, -1, 1, 0},
{ 2, s_1_17, -1, 1, 0},
{ 2, s_1_18, -1, 1, 0},
{ 2, s_1_19, -1, 1, 0},
{ 3, s_1_20, -1, 1, 0},
{ 3, s_1_21, -1, 1, 0},
{ 2, s_1_22, -1, 1, 0},
{ 2, s_1_23, -1, 1, 0},
{ 3, s_1_24, -1, 1, 0},
{ 3, s_1_25, -1, 1, 0}
};
static const symbol s_2_0[2] = { 0xC5, 0xCD };
@ -122,14 +122,14 @@ static const symbol s_2_7[3] = { 0xD5, 0xC0, 0xDD };
static const struct among a_2[8] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 2, s_2_1, -1, 1, 0},
/* 2 */ { 2, s_2_2, -1, 1, 0},
/* 3 */ { 3, s_2_3, 2, 2, 0},
/* 4 */ { 3, s_2_4, 2, 2, 0},
/* 5 */ { 1, s_2_5, -1, 1, 0},
/* 6 */ { 2, s_2_6, 5, 1, 0},
/* 7 */ { 3, s_2_7, 6, 2, 0}
{ 2, s_2_0, -1, 1, 0},
{ 2, s_2_1, -1, 1, 0},
{ 2, s_2_2, -1, 1, 0},
{ 3, s_2_3, 2, 2, 0},
{ 3, s_2_4, 2, 2, 0},
{ 1, s_2_5, -1, 1, 0},
{ 2, s_2_6, 5, 1, 0},
{ 3, s_2_7, 6, 2, 0}
};
static const symbol s_3_0[2] = { 0xD3, 0xD1 };
@ -137,8 +137,8 @@ static const symbol s_3_1[2] = { 0xD3, 0xD8 };
static const struct among a_3[2] =
{
/* 0 */ { 2, s_3_0, -1, 1, 0},
/* 1 */ { 2, s_3_1, -1, 1, 0}
{ 2, s_3_0, -1, 1, 0},
{ 2, s_3_1, -1, 1, 0}
};
static const symbol s_4_0[1] = { 0xC0 };
@ -190,52 +190,52 @@ static const symbol s_4_45[3] = { 0xC5, 0xCE, 0xD9 };
static const struct among a_4[46] =
{
/* 0 */ { 1, s_4_0, -1, 2, 0},
/* 1 */ { 2, s_4_1, 0, 2, 0},
/* 2 */ { 2, s_4_2, -1, 1, 0},
/* 3 */ { 3, s_4_3, 2, 2, 0},
/* 4 */ { 3, s_4_4, 2, 2, 0},
/* 5 */ { 2, s_4_5, -1, 1, 0},
/* 6 */ { 3, s_4_6, 5, 2, 0},
/* 7 */ { 3, s_4_7, -1, 1, 0},
/* 8 */ { 3, s_4_8, -1, 2, 0},
/* 9 */ { 3, s_4_9, -1, 1, 0},
/* 10 */ { 4, s_4_10, 9, 2, 0},
/* 11 */ { 4, s_4_11, 9, 2, 0},
/* 12 */ { 2, s_4_12, -1, 1, 0},
/* 13 */ { 3, s_4_13, 12, 2, 0},
/* 14 */ { 3, s_4_14, 12, 2, 0},
/* 15 */ { 1, s_4_15, -1, 1, 0},
/* 16 */ { 2, s_4_16, 15, 2, 0},
/* 17 */ { 2, s_4_17, 15, 2, 0},
/* 18 */ { 1, s_4_18, -1, 1, 0},
/* 19 */ { 2, s_4_19, 18, 2, 0},
/* 20 */ { 2, s_4_20, 18, 2, 0},
/* 21 */ { 2, s_4_21, -1, 1, 0},
/* 22 */ { 2, s_4_22, -1, 2, 0},
/* 23 */ { 2, s_4_23, -1, 2, 0},
/* 24 */ { 1, s_4_24, -1, 1, 0},
/* 25 */ { 2, s_4_25, 24, 2, 0},
/* 26 */ { 2, s_4_26, -1, 1, 0},
/* 27 */ { 3, s_4_27, 26, 2, 0},
/* 28 */ { 3, s_4_28, 26, 2, 0},
/* 29 */ { 2, s_4_29, -1, 1, 0},
/* 30 */ { 3, s_4_30, 29, 2, 0},
/* 31 */ { 3, s_4_31, 29, 1, 0},
/* 32 */ { 2, s_4_32, -1, 1, 0},
/* 33 */ { 3, s_4_33, 32, 2, 0},
/* 34 */ { 2, s_4_34, -1, 1, 0},
/* 35 */ { 3, s_4_35, 34, 2, 0},
/* 36 */ { 2, s_4_36, -1, 2, 0},
/* 37 */ { 2, s_4_37, -1, 2, 0},
/* 38 */ { 2, s_4_38, -1, 2, 0},
/* 39 */ { 2, s_4_39, -1, 1, 0},
/* 40 */ { 3, s_4_40, 39, 2, 0},
/* 41 */ { 3, s_4_41, 39, 2, 0},
/* 42 */ { 3, s_4_42, -1, 1, 0},
/* 43 */ { 3, s_4_43, -1, 2, 0},
/* 44 */ { 2, s_4_44, -1, 1, 0},
/* 45 */ { 3, s_4_45, 44, 2, 0}
{ 1, s_4_0, -1, 2, 0},
{ 2, s_4_1, 0, 2, 0},
{ 2, s_4_2, -1, 1, 0},
{ 3, s_4_3, 2, 2, 0},
{ 3, s_4_4, 2, 2, 0},
{ 2, s_4_5, -1, 1, 0},
{ 3, s_4_6, 5, 2, 0},
{ 3, s_4_7, -1, 1, 0},
{ 3, s_4_8, -1, 2, 0},
{ 3, s_4_9, -1, 1, 0},
{ 4, s_4_10, 9, 2, 0},
{ 4, s_4_11, 9, 2, 0},
{ 2, s_4_12, -1, 1, 0},
{ 3, s_4_13, 12, 2, 0},
{ 3, s_4_14, 12, 2, 0},
{ 1, s_4_15, -1, 1, 0},
{ 2, s_4_16, 15, 2, 0},
{ 2, s_4_17, 15, 2, 0},
{ 1, s_4_18, -1, 1, 0},
{ 2, s_4_19, 18, 2, 0},
{ 2, s_4_20, 18, 2, 0},
{ 2, s_4_21, -1, 1, 0},
{ 2, s_4_22, -1, 2, 0},
{ 2, s_4_23, -1, 2, 0},
{ 1, s_4_24, -1, 1, 0},
{ 2, s_4_25, 24, 2, 0},
{ 2, s_4_26, -1, 1, 0},
{ 3, s_4_27, 26, 2, 0},
{ 3, s_4_28, 26, 2, 0},
{ 2, s_4_29, -1, 1, 0},
{ 3, s_4_30, 29, 2, 0},
{ 3, s_4_31, 29, 1, 0},
{ 2, s_4_32, -1, 1, 0},
{ 3, s_4_33, 32, 2, 0},
{ 2, s_4_34, -1, 1, 0},
{ 3, s_4_35, 34, 2, 0},
{ 2, s_4_36, -1, 2, 0},
{ 2, s_4_37, -1, 2, 0},
{ 2, s_4_38, -1, 2, 0},
{ 2, s_4_39, -1, 1, 0},
{ 3, s_4_40, 39, 2, 0},
{ 3, s_4_41, 39, 2, 0},
{ 3, s_4_42, -1, 1, 0},
{ 3, s_4_43, -1, 2, 0},
{ 2, s_4_44, -1, 1, 0},
{ 3, s_4_45, 44, 2, 0}
};
static const symbol s_5_0[1] = { 0xC0 };
@ -277,42 +277,42 @@ static const symbol s_5_35[1] = { 0xD9 };
static const struct among a_5[36] =
{
/* 0 */ { 1, s_5_0, -1, 1, 0},
/* 1 */ { 2, s_5_1, 0, 1, 0},
/* 2 */ { 2, s_5_2, 0, 1, 0},
/* 3 */ { 1, s_5_3, -1, 1, 0},
/* 4 */ { 1, s_5_4, -1, 1, 0},
/* 5 */ { 2, s_5_5, 4, 1, 0},
/* 6 */ { 2, s_5_6, 4, 1, 0},
/* 7 */ { 2, s_5_7, -1, 1, 0},
/* 8 */ { 2, s_5_8, -1, 1, 0},
/* 9 */ { 3, s_5_9, 8, 1, 0},
/* 10 */ { 1, s_5_10, -1, 1, 0},
/* 11 */ { 2, s_5_11, 10, 1, 0},
/* 12 */ { 2, s_5_12, 10, 1, 0},
/* 13 */ { 3, s_5_13, 10, 1, 0},
/* 14 */ { 3, s_5_14, 10, 1, 0},
/* 15 */ { 4, s_5_15, 14, 1, 0},
/* 16 */ { 1, s_5_16, -1, 1, 0},
/* 17 */ { 2, s_5_17, 16, 1, 0},
/* 18 */ { 3, s_5_18, 17, 1, 0},
/* 19 */ { 2, s_5_19, 16, 1, 0},
/* 20 */ { 2, s_5_20, 16, 1, 0},
/* 21 */ { 2, s_5_21, -1, 1, 0},
/* 22 */ { 2, s_5_22, -1, 1, 0},
/* 23 */ { 3, s_5_23, 22, 1, 0},
/* 24 */ { 2, s_5_24, -1, 1, 0},
/* 25 */ { 2, s_5_25, -1, 1, 0},
/* 26 */ { 3, s_5_26, 25, 1, 0},
/* 27 */ { 1, s_5_27, -1, 1, 0},
/* 28 */ { 1, s_5_28, -1, 1, 0},
/* 29 */ { 2, s_5_29, 28, 1, 0},
/* 30 */ { 2, s_5_30, 28, 1, 0},
/* 31 */ { 1, s_5_31, -1, 1, 0},
/* 32 */ { 2, s_5_32, -1, 1, 0},
/* 33 */ { 2, s_5_33, -1, 1, 0},
/* 34 */ { 1, s_5_34, -1, 1, 0},
/* 35 */ { 1, s_5_35, -1, 1, 0}
{ 1, s_5_0, -1, 1, 0},
{ 2, s_5_1, 0, 1, 0},
{ 2, s_5_2, 0, 1, 0},
{ 1, s_5_3, -1, 1, 0},
{ 1, s_5_4, -1, 1, 0},
{ 2, s_5_5, 4, 1, 0},
{ 2, s_5_6, 4, 1, 0},
{ 2, s_5_7, -1, 1, 0},
{ 2, s_5_8, -1, 1, 0},
{ 3, s_5_9, 8, 1, 0},
{ 1, s_5_10, -1, 1, 0},
{ 2, s_5_11, 10, 1, 0},
{ 2, s_5_12, 10, 1, 0},
{ 3, s_5_13, 10, 1, 0},
{ 3, s_5_14, 10, 1, 0},
{ 4, s_5_15, 14, 1, 0},
{ 1, s_5_16, -1, 1, 0},
{ 2, s_5_17, 16, 1, 0},
{ 3, s_5_18, 17, 1, 0},
{ 2, s_5_19, 16, 1, 0},
{ 2, s_5_20, 16, 1, 0},
{ 2, s_5_21, -1, 1, 0},
{ 2, s_5_22, -1, 1, 0},
{ 3, s_5_23, 22, 1, 0},
{ 2, s_5_24, -1, 1, 0},
{ 2, s_5_25, -1, 1, 0},
{ 3, s_5_26, 25, 1, 0},
{ 1, s_5_27, -1, 1, 0},
{ 1, s_5_28, -1, 1, 0},
{ 2, s_5_29, 28, 1, 0},
{ 2, s_5_30, 28, 1, 0},
{ 1, s_5_31, -1, 1, 0},
{ 2, s_5_32, -1, 1, 0},
{ 2, s_5_33, -1, 1, 0},
{ 1, s_5_34, -1, 1, 0},
{ 1, s_5_35, -1, 1, 0}
};
static const symbol s_6_0[3] = { 0xCF, 0xD3, 0xD4 };
@ -320,8 +320,8 @@ static const symbol s_6_1[4] = { 0xCF, 0xD3, 0xD4, 0xD8 };
static const struct among a_6[2] =
{
/* 0 */ { 3, s_6_0, -1, 1, 0},
/* 1 */ { 4, s_6_1, -1, 1, 0}
{ 3, s_6_0, -1, 1, 0},
{ 4, s_6_1, -1, 1, 0}
};
static const symbol s_7_0[4] = { 0xC5, 0xCA, 0xDB, 0xC5 };
@ -331,78 +331,78 @@ static const symbol s_7_3[3] = { 0xC5, 0xCA, 0xDB };
static const struct among a_7[4] =
{
/* 0 */ { 4, s_7_0, -1, 1, 0},
/* 1 */ { 1, s_7_1, -1, 2, 0},
/* 2 */ { 1, s_7_2, -1, 3, 0},
/* 3 */ { 3, s_7_3, -1, 1, 0}
{ 4, s_7_0, -1, 1, 0},
{ 1, s_7_1, -1, 2, 0},
{ 1, s_7_2, -1, 3, 0},
{ 3, s_7_3, -1, 1, 0}
};
static const unsigned char g_v[] = { 35, 130, 34, 18 };
static const symbol s_0[] = { 0xC5 };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 61 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 62 */
{ int c1 = z->c; /* do, line 63 */
{ /* gopast */ /* grouping v, line 64 */
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
z->I[0] = z->l;
{ int c1 = z->c;
{
int ret = out_grouping(z, g_v, 192, 220, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
z->I[0] = z->c; /* setmark pV, line 64 */
{ /* gopast */ /* non v, line 64 */
z->I[1] = z->c;
{
int ret = in_grouping(z, g_v, 192, 220, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
{ /* gopast */ /* grouping v, line 65 */
{
int ret = out_grouping(z, g_v, 192, 220, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
{ /* gopast */ /* non v, line 65 */
{
int ret = in_grouping(z, g_v, 192, 220, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 65 */
z->I[0] = z->c;
lab0:
z->c = c1;
}
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 71 */
static int r_R2(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */
static int r_perfective_gerund(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 74 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 74 */
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_0, 9);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 74 */
switch (among_var) { /* among, line 74 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 78 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; /* literal, line 78 */
{ int m1 = z->l - z->c; (void)m1;
if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1;
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; /* literal, line 78 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0;
z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 78 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 85 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -410,46 +410,46 @@ static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_adjective(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 90 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 90 */
static int r_adjective(struct SN_env * z) {
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_1, 26))) return 0;
z->bra = z->c; /* ], line 90 */
{ int ret = slice_del(z); /* delete, line 99 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_adjectival(struct SN_env * z) { /* backwardmode */
static int r_adjectival(struct SN_env * z) {
int among_var;
{ int ret = r_adjective(z); /* call adjective, line 104 */
{ int ret = r_adjective(z);
if (ret <= 0) return ret;
}
{ int m1 = z->l - z->c; (void)m1; /* try, line 111 */
z->ket = z->c; /* [, line 112 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; } /* substring, line 112 */
{ int m1 = z->l - z->c; (void)m1;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; }
among_var = find_among_b(z, a_2, 8);
if (!(among_var)) { z->c = z->l - m1; goto lab0; }
z->bra = z->c; /* ], line 112 */
switch (among_var) { /* among, line 112 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int m2 = z->l - z->c; (void)m2; /* or, line 117 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab2; /* literal, line 117 */
{ int m2 = z->l - z->c; (void)m2;
if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab2;
z->c--;
goto lab1;
lab2:
z->c = z->l - m2;
if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) { z->c = z->l - m1; goto lab0; } /* literal, line 117 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) { z->c = z->l - m1; goto lab0; }
z->c--;
}
lab1:
{ int ret = slice_del(z); /* delete, line 117 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 124 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -460,42 +460,42 @@ static int r_adjectival(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_reflexive(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 131 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0; /* substring, line 131 */
static int r_reflexive(struct SN_env * z) {
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0;
if (!(find_among_b(z, a_3, 2))) return 0;
z->bra = z->c; /* ], line 131 */
{ int ret = slice_del(z); /* delete, line 134 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_verb(struct SN_env * z) { /* backwardmode */
static int r_verb(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 139 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 139 */
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_4, 46);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 139 */
switch (among_var) { /* among, line 139 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 145 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; /* literal, line 145 */
{ int m1 = z->l - z->c; (void)m1;
if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1;
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; /* literal, line 145 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0;
z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 145 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 153 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -503,62 +503,62 @@ static int r_verb(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_noun(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 162 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 162 */
static int r_noun(struct SN_env * z) {
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_5, 36))) return 0;
z->bra = z->c; /* ], line 162 */
{ int ret = slice_del(z); /* delete, line 169 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_derivational(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 178 */
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0; /* substring, line 178 */
static int r_derivational(struct SN_env * z) {
z->ket = z->c;
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0;
if (!(find_among_b(z, a_6, 2))) return 0;
z->bra = z->c; /* ], line 178 */
{ int ret = r_R2(z); /* call R2, line 178 */
z->bra = z->c;
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 181 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_tidy_up(struct SN_env * z) { /* backwardmode */
static int r_tidy_up(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 186 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 186 */
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_7, 4);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 186 */
switch (among_var) { /* among, line 186 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 190 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 191 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 191 */
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
z->c--;
z->bra = z->c; /* ], line 191 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 191 */
z->bra = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
z->c--;
{ int ret = slice_del(z); /* delete, line 191 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 194 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
z->c--;
{ int ret = slice_del(z); /* delete, line 194 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 196 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -566,25 +566,24 @@ static int r_tidy_up(struct SN_env * z) { /* backwardmode */
return 1;
}
extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 205 */
/* repeat, line 205 */
while(1) { int c2 = z->c;
while(1) { /* goto, line 205 */
extern int russian_KOI8_R_stem(struct SN_env * z) {
{ int c1 = z->c;
while(1) {
int c2 = z->c;
while(1) {
int c3 = z->c;
z->bra = z->c; /* [, line 205 */
if (z->c == z->l || z->p[z->c] != 0xA3) goto lab2; /* literal, line 205 */
z->bra = z->c;
if (z->c == z->l || z->p[z->c] != 0xA3) goto lab2;
z->c++;
z->ket = z->c; /* ], line 205 */
z->ket = z->c;
z->c = c3;
break;
lab2:
z->c = c3;
if (z->c >= z->l) goto lab1;
z->c++; /* goto, line 205 */
z->c++;
}
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 205 */
{ int ret = slice_from_s(z, 1, s_0);
if (ret < 0) return ret;
}
continue;
@ -594,49 +593,49 @@ extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */
}
z->c = c1;
}
/* do, line 207 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 207 */
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->lb = z->c; z->c = z->l; /* backwards, line 208 */
z->lb = z->c; z->c = z->l;
{ int mlimit4; /* setlimit, line 208 */
if (z->c < z->I[0]) return 0;
mlimit4 = z->lb; z->lb = z->I[0];
{ int m5 = z->l - z->c; (void)m5; /* do, line 209 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 210 */
{ int ret = r_perfective_gerund(z); /* call perfective_gerund, line 210 */
{ int mlimit4;
if (z->c < z->I[1]) return 0;
mlimit4 = z->lb; z->lb = z->I[1];
{ int m5 = z->l - z->c; (void)m5;
{ int m6 = z->l - z->c; (void)m6;
{ int ret = r_perfective_gerund(z);
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
goto lab4;
lab5:
z->c = z->l - m6;
{ int m7 = z->l - z->c; (void)m7; /* try, line 211 */
{ int ret = r_reflexive(z); /* call reflexive, line 211 */
{ int m7 = z->l - z->c; (void)m7;
{ int ret = r_reflexive(z);
if (ret == 0) { z->c = z->l - m7; goto lab6; }
if (ret < 0) return ret;
}
lab6:
;
}
{ int m8 = z->l - z->c; (void)m8; /* or, line 212 */
{ int ret = r_adjectival(z); /* call adjectival, line 212 */
{ int m8 = z->l - z->c; (void)m8;
{ int ret = r_adjectival(z);
if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
goto lab7;
lab8:
z->c = z->l - m8;
{ int ret = r_verb(z); /* call verb, line 212 */
{ int ret = r_verb(z);
if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
goto lab7;
lab9:
z->c = z->l - m8;
{ int ret = r_noun(z); /* call noun, line 212 */
{ int ret = r_noun(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
@ -648,25 +647,25 @@ extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */
lab3:
z->c = z->l - m5;
}
{ int m9 = z->l - z->c; (void)m9; /* try, line 215 */
z->ket = z->c; /* [, line 215 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xC9) { z->c = z->l - m9; goto lab10; } /* literal, line 215 */
{ int m9 = z->l - z->c; (void)m9;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 0xC9) { z->c = z->l - m9; goto lab10; }
z->c--;
z->bra = z->c; /* ], line 215 */
{ int ret = slice_del(z); /* delete, line 215 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab10:
;
}
{ int m10 = z->l - z->c; (void)m10; /* do, line 218 */
{ int ret = r_derivational(z); /* call derivational, line 218 */
{ int m10 = z->l - z->c; (void)m10;
{ int ret = r_derivational(z);
if (ret < 0) return ret;
}
z->c = z->l - m10;
}
{ int m11 = z->l - z->c; (void)m11; /* do, line 219 */
{ int ret = r_tidy_up(z); /* call tidy_up, line 219 */
{ int m11 = z->l - z->c; (void)m11;
{ int ret = r_tidy_up(z);
if (ret < 0) return ret;
}
z->c = z->l - m11;
@ -677,7 +676,7 @@ extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * russian_KOI8_R_create_env(void) { return SN_create_env(0, 2, 0); }
extern struct SN_env * russian_KOI8_R_create_env(void) { return SN_create_env(0, 2); }
extern void russian_KOI8_R_close_env(struct SN_env * z) { SN_close_env(z, 0); }

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,559 @@
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
#ifdef __cplusplus
extern "C" {
#endif
extern int armenian_UTF_8_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif
static int r_ending(struct SN_env * z);
static int r_noun(struct SN_env * z);
static int r_verb(struct SN_env * z);
static int r_adjective(struct SN_env * z);
static int r_R2(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * armenian_UTF_8_create_env(void);
extern void armenian_UTF_8_close_env(struct SN_env * z);
#ifdef __cplusplus
}
#endif
static const symbol s_0_0[6] = { 0xD5, 0xA2, 0xD5, 0xA1, 0xD6, 0x80 };
static const symbol s_0_1[8] = { 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA4 };
static const symbol s_0_2[10] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA4 };
static const symbol s_0_3[6] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xAB };
static const symbol s_0_4[6] = { 0xD5, 0xA1, 0xD5, 0xAF, 0xD5, 0xAB };
static const symbol s_0_5[8] = { 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA1, 0xD5, 0xAF };
static const symbol s_0_6[4] = { 0xD5, 0xA5, 0xD5, 0xB2 };
static const symbol s_0_7[8] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 };
static const symbol s_0_8[8] = { 0xD5, 0xA1, 0xD6, 0x80, 0xD5, 0xA1, 0xD5, 0xB6 };
static const symbol s_0_9[8] = { 0xD5, 0xA1, 0xD5, 0xAF, 0xD5, 0xA1, 0xD5, 0xB6 };
static const symbol s_0_10[4] = { 0xD5, 0xA5, 0xD5, 0xB6 };
static const symbol s_0_11[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA5, 0xD5, 0xB6 };
static const symbol s_0_12[8] = { 0xD5, 0xA5, 0xD5, 0xAF, 0xD5, 0xA5, 0xD5, 0xB6 };
static const symbol s_0_13[8] = { 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA7, 0xD5, 0xB6 };
static const symbol s_0_14[4] = { 0xD5, 0xAB, 0xD5, 0xB6 };
static const symbol s_0_15[6] = { 0xD5, 0xA3, 0xD5, 0xAB, 0xD5, 0xB6 };
static const symbol s_0_16[8] = { 0xD5, 0xB8, 0xD5, 0xBE, 0xD5, 0xAB, 0xD5, 0xB6 };
static const symbol s_0_17[8] = { 0xD5, 0xAC, 0xD5, 0xA1, 0xD5, 0xB5, 0xD5, 0xB6 };
static const symbol s_0_18[6] = { 0xD5, 0xBA, 0xD5, 0xA5, 0xD5, 0xBD };
static const symbol s_0_19[4] = { 0xD5, 0xAB, 0xD5, 0xBE };
static const symbol s_0_20[4] = { 0xD5, 0xA1, 0xD5, 0xBF };
static const symbol s_0_21[8] = { 0xD5, 0xA1, 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xBF };
static const symbol s_0_22[6] = { 0xD5, 0xAF, 0xD5, 0xB8, 0xD5, 0xBF };
static const struct among a_0[23] =
{
{ 6, s_0_0, -1, 1, 0},
{ 8, s_0_1, -1, 1, 0},
{ 10, s_0_2, 1, 1, 0},
{ 6, s_0_3, -1, 1, 0},
{ 6, s_0_4, -1, 1, 0},
{ 8, s_0_5, -1, 1, 0},
{ 4, s_0_6, -1, 1, 0},
{ 8, s_0_7, -1, 1, 0},
{ 8, s_0_8, -1, 1, 0},
{ 8, s_0_9, -1, 1, 0},
{ 4, s_0_10, -1, 1, 0},
{ 8, s_0_11, 10, 1, 0},
{ 8, s_0_12, 10, 1, 0},
{ 8, s_0_13, -1, 1, 0},
{ 4, s_0_14, -1, 1, 0},
{ 6, s_0_15, 14, 1, 0},
{ 8, s_0_16, 14, 1, 0},
{ 8, s_0_17, -1, 1, 0},
{ 6, s_0_18, -1, 1, 0},
{ 4, s_0_19, -1, 1, 0},
{ 4, s_0_20, -1, 1, 0},
{ 8, s_0_21, -1, 1, 0},
{ 6, s_0_22, -1, 1, 0}
};
static const symbol s_1_0[4] = { 0xD5, 0xA1, 0xD6, 0x80 };
static const symbol s_1_1[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x80 };
static const symbol s_1_2[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x80 };
static const symbol s_1_3[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x80 };
static const symbol s_1_4[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x80 };
static const symbol s_1_5[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x80 };
static const symbol s_1_6[10] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x80 };
static const symbol s_1_7[10] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82, 0xD6, 0x81 };
static const symbol s_1_8[10] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82, 0xD6, 0x81 };
static const symbol s_1_9[4] = { 0xD5, 0xA1, 0xD6, 0x81 };
static const symbol s_1_10[4] = { 0xD5, 0xA5, 0xD6, 0x81 };
static const symbol s_1_11[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xA5, 0xD6, 0x81 };
static const symbol s_1_12[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82 };
static const symbol s_1_13[8] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82 };
static const symbol s_1_14[4] = { 0xD5, 0xA1, 0xD6, 0x84 };
static const symbol s_1_15[6] = { 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x84 };
static const symbol s_1_16[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x84 };
static const symbol s_1_17[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x84 };
static const symbol s_1_18[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x84 };
static const symbol s_1_19[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x84 };
static const symbol s_1_20[10] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x84 };
static const symbol s_1_21[6] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x84 };
static const symbol s_1_22[8] = { 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x84 };
static const symbol s_1_23[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x84 };
static const symbol s_1_24[12] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 };
static const symbol s_1_25[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 };
static const symbol s_1_26[10] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 };
static const symbol s_1_27[12] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 };
static const symbol s_1_28[2] = { 0xD5, 0xA1 };
static const symbol s_1_29[6] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1 };
static const symbol s_1_30[6] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xA1 };
static const symbol s_1_31[4] = { 0xD5, 0xBE, 0xD5, 0xA5 };
static const symbol s_1_32[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB };
static const symbol s_1_33[6] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB };
static const symbol s_1_34[6] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB };
static const symbol s_1_35[8] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB };
static const symbol s_1_36[4] = { 0xD5, 0xA1, 0xD5, 0xAC };
static const symbol s_1_37[6] = { 0xD5, 0xA8, 0xD5, 0xA1, 0xD5, 0xAC };
static const symbol s_1_38[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAC };
static const symbol s_1_39[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAC };
static const symbol s_1_40[8] = { 0xD5, 0xA5, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAC };
static const symbol s_1_41[4] = { 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_42[6] = { 0xD5, 0xA8, 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_43[6] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_44[8] = { 0xD6, 0x81, 0xD5, 0xB6, 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_45[10] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xB6, 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_46[6] = { 0xD5, 0xB9, 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_47[6] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_48[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_49[10] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_50[6] = { 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_51[8] = { 0xD5, 0xA1, 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_52[8] = { 0xD5, 0xB8, 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_53[10] = { 0xD5, 0xAF, 0xD5, 0xB8, 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC };
static const symbol s_1_54[6] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xAE };
static const symbol s_1_55[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
static const symbol s_1_56[8] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
static const symbol s_1_57[4] = { 0xD5, 0xA1, 0xD5, 0xB6 };
static const symbol s_1_58[6] = { 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6 };
static const symbol s_1_59[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6 };
static const symbol s_1_60[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6 };
static const symbol s_1_61[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6 };
static const symbol s_1_62[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6 };
static const symbol s_1_63[10] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6 };
static const symbol s_1_64[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xAB, 0xD5, 0xBD };
static const symbol s_1_65[8] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xAB, 0xD5, 0xBD };
static const symbol s_1_66[4] = { 0xD5, 0xA1, 0xD5, 0xBE };
static const symbol s_1_67[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xBE };
static const symbol s_1_68[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xBE };
static const symbol s_1_69[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xB8, 0xD5, 0xBE };
static const symbol s_1_70[8] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xB8, 0xD5, 0xBE };
static const struct among a_1[71] =
{
{ 4, s_1_0, -1, 1, 0},
{ 8, s_1_1, 0, 1, 0},
{ 8, s_1_2, 0, 1, 0},
{ 10, s_1_3, -1, 1, 0},
{ 8, s_1_4, -1, 1, 0},
{ 8, s_1_5, -1, 1, 0},
{ 10, s_1_6, 5, 1, 0},
{ 10, s_1_7, -1, 1, 0},
{ 10, s_1_8, -1, 1, 0},
{ 4, s_1_9, -1, 1, 0},
{ 4, s_1_10, -1, 1, 0},
{ 10, s_1_11, 10, 1, 0},
{ 8, s_1_12, -1, 1, 0},
{ 8, s_1_13, -1, 1, 0},
{ 4, s_1_14, -1, 1, 0},
{ 6, s_1_15, 14, 1, 0},
{ 8, s_1_16, 15, 1, 0},
{ 10, s_1_17, -1, 1, 0},
{ 8, s_1_18, -1, 1, 0},
{ 8, s_1_19, -1, 1, 0},
{ 10, s_1_20, 19, 1, 0},
{ 6, s_1_21, -1, 1, 0},
{ 8, s_1_22, 21, 1, 0},
{ 10, s_1_23, 22, 1, 0},
{ 12, s_1_24, -1, 1, 0},
{ 10, s_1_25, -1, 1, 0},
{ 10, s_1_26, -1, 1, 0},
{ 12, s_1_27, 26, 1, 0},
{ 2, s_1_28, -1, 1, 0},
{ 6, s_1_29, 28, 1, 0},
{ 6, s_1_30, 28, 1, 0},
{ 4, s_1_31, -1, 1, 0},
{ 8, s_1_32, -1, 1, 0},
{ 6, s_1_33, -1, 1, 0},
{ 6, s_1_34, -1, 1, 0},
{ 8, s_1_35, 34, 1, 0},
{ 4, s_1_36, -1, 1, 0},
{ 6, s_1_37, 36, 1, 0},
{ 10, s_1_38, 36, 1, 0},
{ 8, s_1_39, 36, 1, 0},
{ 8, s_1_40, 36, 1, 0},
{ 4, s_1_41, -1, 1, 0},
{ 6, s_1_42, 41, 1, 0},
{ 6, s_1_43, 41, 1, 0},
{ 8, s_1_44, 43, 1, 0},
{ 10, s_1_45, 44, 1, 0},
{ 6, s_1_46, 41, 1, 0},
{ 6, s_1_47, 41, 1, 0},
{ 10, s_1_48, 47, 1, 0},
{ 10, s_1_49, 47, 1, 0},
{ 6, s_1_50, 41, 1, 0},
{ 8, s_1_51, 50, 1, 0},
{ 8, s_1_52, 50, 1, 0},
{ 10, s_1_53, 52, 1, 0},
{ 6, s_1_54, -1, 1, 0},
{ 6, s_1_55, -1, 1, 0},
{ 8, s_1_56, 55, 1, 0},
{ 4, s_1_57, -1, 1, 0},
{ 6, s_1_58, 57, 1, 0},
{ 8, s_1_59, 58, 1, 0},
{ 10, s_1_60, -1, 1, 0},
{ 8, s_1_61, -1, 1, 0},
{ 8, s_1_62, -1, 1, 0},
{ 10, s_1_63, 62, 1, 0},
{ 8, s_1_64, -1, 1, 0},
{ 8, s_1_65, -1, 1, 0},
{ 4, s_1_66, -1, 1, 0},
{ 8, s_1_67, 66, 1, 0},
{ 8, s_1_68, 66, 1, 0},
{ 8, s_1_69, -1, 1, 0},
{ 8, s_1_70, -1, 1, 0}
};
static const symbol s_2_0[6] = { 0xD5, 0xA3, 0xD5, 0xA1, 0xD6, 0x80 };
static const symbol s_2_1[6] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x80 };
static const symbol s_2_2[8] = { 0xD5, 0xA1, 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x80 };
static const symbol s_2_3[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x85, 0xD6, 0x81 };
static const symbol s_2_4[4] = { 0xD5, 0xB8, 0xD6, 0x81 };
static const symbol s_2_5[4] = { 0xD5, 0xB8, 0xD6, 0x82 };
static const symbol s_2_6[2] = { 0xD6, 0x84 };
static const symbol s_2_7[6] = { 0xD5, 0xA1, 0xD6, 0x80, 0xD6, 0x84 };
static const symbol s_2_8[6] = { 0xD5, 0xB9, 0xD5, 0xA5, 0xD6, 0x84 };
static const symbol s_2_9[4] = { 0xD5, 0xAB, 0xD6, 0x84 };
static const symbol s_2_10[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xAB, 0xD6, 0x84 };
static const symbol s_2_11[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xAB, 0xD6, 0x84 };
static const symbol s_2_12[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xAE, 0xD6, 0x84 };
static const symbol s_2_13[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB5, 0xD6, 0x84 };
static const symbol s_2_14[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6, 0xD6, 0x84 };
static const symbol s_2_15[10] = { 0xD5, 0xB4, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6, 0xD6, 0x84 };
static const symbol s_2_16[6] = { 0xD5, 0xA5, 0xD5, 0xB6, 0xD6, 0x84 };
static const symbol s_2_17[6] = { 0xD5, 0xB8, 0xD5, 0xB6, 0xD6, 0x84 };
static const symbol s_2_18[6] = { 0xD5, 0xAB, 0xD5, 0xB9, 0xD6, 0x84 };
static const symbol s_2_19[6] = { 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA4 };
static const symbol s_2_20[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB5, 0xD5, 0xA9 };
static const symbol s_2_21[4] = { 0xD6, 0x81, 0xD5, 0xAB };
static const symbol s_2_22[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB0, 0xD5, 0xAB };
static const symbol s_2_23[4] = { 0xD5, 0xAB, 0xD5, 0xAC };
static const symbol s_2_24[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xAF };
static const symbol s_2_25[4] = { 0xD5, 0xA1, 0xD5, 0xAF };
static const symbol s_2_26[6] = { 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xAF };
static const symbol s_2_27[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAF };
static const symbol s_2_28[4] = { 0xD5, 0xAB, 0xD5, 0xAF };
static const symbol s_2_29[8] = { 0xD5, 0xB5, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 };
static const symbol s_2_30[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 };
static const symbol s_2_31[4] = { 0xD5, 0xA1, 0xD5, 0xB6 };
static const symbol s_2_32[8] = { 0xD5, 0xA1, 0xD6, 0x80, 0xD5, 0xA1, 0xD5, 0xB6 };
static const symbol s_2_33[6] = { 0xD5, 0xBA, 0xD5, 0xA1, 0xD5, 0xB6 };
static const symbol s_2_34[8] = { 0xD5, 0xBD, 0xD5, 0xBF, 0xD5, 0xA1, 0xD5, 0xB6 };
static const symbol s_2_35[8] = { 0xD5, 0xA5, 0xD5, 0xB2, 0xD5, 0xA7, 0xD5, 0xB6 };
static const symbol s_2_36[6] = { 0xD5, 0xA1, 0xD5, 0xAE, 0xD5, 0xB8 };
static const symbol s_2_37[4] = { 0xD5, 0xAB, 0xD5, 0xB9 };
static const symbol s_2_38[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xBD };
static const symbol s_2_39[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xBD, 0xD5, 0xBF };
static const struct among a_2[40] =
{
{ 6, s_2_0, -1, 1, 0},
{ 6, s_2_1, -1, 1, 0},
{ 8, s_2_2, 1, 1, 0},
{ 8, s_2_3, -1, 1, 0},
{ 4, s_2_4, -1, 1, 0},
{ 4, s_2_5, -1, 1, 0},
{ 2, s_2_6, -1, 1, 0},
{ 6, s_2_7, 6, 1, 0},
{ 6, s_2_8, 6, 1, 0},
{ 4, s_2_9, 6, 1, 0},
{ 8, s_2_10, 9, 1, 0},
{ 8, s_2_11, 9, 1, 0},
{ 8, s_2_12, 6, 1, 0},
{ 8, s_2_13, 6, 1, 0},
{ 8, s_2_14, 6, 1, 0},
{ 10, s_2_15, 14, 1, 0},
{ 6, s_2_16, 6, 1, 0},
{ 6, s_2_17, 6, 1, 0},
{ 6, s_2_18, 6, 1, 0},
{ 6, s_2_19, -1, 1, 0},
{ 8, s_2_20, -1, 1, 0},
{ 4, s_2_21, -1, 1, 0},
{ 8, s_2_22, -1, 1, 0},
{ 4, s_2_23, -1, 1, 0},
{ 6, s_2_24, -1, 1, 0},
{ 4, s_2_25, -1, 1, 0},
{ 6, s_2_26, 25, 1, 0},
{ 8, s_2_27, 25, 1, 0},
{ 4, s_2_28, -1, 1, 0},
{ 8, s_2_29, -1, 1, 0},
{ 14, s_2_30, 29, 1, 0},
{ 4, s_2_31, -1, 1, 0},
{ 8, s_2_32, 31, 1, 0},
{ 6, s_2_33, 31, 1, 0},
{ 8, s_2_34, 31, 1, 0},
{ 8, s_2_35, -1, 1, 0},
{ 6, s_2_36, -1, 1, 0},
{ 4, s_2_37, -1, 1, 0},
{ 6, s_2_38, -1, 1, 0},
{ 8, s_2_39, -1, 1, 0}
};
static const symbol s_3_0[4] = { 0xD5, 0xA5, 0xD6, 0x80 };
static const symbol s_3_1[6] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80 };
static const symbol s_3_2[2] = { 0xD6, 0x81 };
static const symbol s_3_3[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD6, 0x81 };
static const symbol s_3_4[4] = { 0xD5, 0xAB, 0xD6, 0x81 };
static const symbol s_3_5[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x81 };
static const symbol s_3_6[10] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x81 };
static const symbol s_3_7[6] = { 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x81 };
static const symbol s_3_8[10] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xAB, 0xD6, 0x81 };
static const symbol s_3_9[8] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xAB, 0xD6, 0x81 };
static const symbol s_3_10[6] = { 0xD5, 0xBE, 0xD5, 0xAB, 0xD6, 0x81 };
static const symbol s_3_11[4] = { 0xD5, 0xB8, 0xD6, 0x81 };
static const symbol s_3_12[4] = { 0xD5, 0xBD, 0xD5, 0xA1 };
static const symbol s_3_13[4] = { 0xD5, 0xBE, 0xD5, 0xA1 };
static const symbol s_3_14[6] = { 0xD5, 0xA1, 0xD5, 0xB4, 0xD5, 0xA2 };
static const symbol s_3_15[2] = { 0xD5, 0xA4 };
static const symbol s_3_16[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA4 };
static const symbol s_3_17[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA4 };
static const symbol s_3_18[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA4 };
static const symbol s_3_19[6] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA4 };
static const symbol s_3_20[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA4 };
static const symbol s_3_21[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA4 };
static const symbol s_3_22[6] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xA4 };
static const symbol s_3_23[2] = { 0xD5, 0xA8 };
static const symbol s_3_24[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA8 };
static const symbol s_3_25[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA8 };
static const symbol s_3_26[6] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA8 };
static const symbol s_3_27[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA8 };
static const symbol s_3_28[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA8 };
static const symbol s_3_29[6] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xA8 };
static const symbol s_3_30[2] = { 0xD5, 0xAB };
static const symbol s_3_31[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB };
static const symbol s_3_32[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB };
static const symbol s_3_33[4] = { 0xD5, 0xBE, 0xD5, 0xAB };
static const symbol s_3_34[10] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
static const symbol s_3_35[12] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
static const symbol s_3_36[10] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
static const symbol s_3_37[2] = { 0xD5, 0xB6 };
static const symbol s_3_38[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB6 };
static const symbol s_3_39[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB6 };
static const symbol s_3_40[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 };
static const symbol s_3_41[4] = { 0xD5, 0xA1, 0xD5, 0xB6 };
static const symbol s_3_42[12] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6 };
static const symbol s_3_43[6] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6 };
static const symbol s_3_44[4] = { 0xD5, 0xAB, 0xD5, 0xB6 };
static const symbol s_3_45[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6 };
static const symbol s_3_46[10] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6 };
static const symbol s_3_47[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xB6 };
static const symbol s_3_48[4] = { 0xD5, 0xB8, 0xD5, 0xBB };
static const symbol s_3_49[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xBD };
static const symbol s_3_50[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xBD };
static const symbol s_3_51[6] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xBD };
static const symbol s_3_52[4] = { 0xD5, 0xB8, 0xD5, 0xBE };
static const symbol s_3_53[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD5, 0xBE };
static const symbol s_3_54[10] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD5, 0xBE };
static const symbol s_3_55[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xB8, 0xD5, 0xBE };
static const symbol s_3_56[6] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD5, 0xBE };
static const struct among a_3[57] =
{
{ 4, s_3_0, -1, 1, 0},
{ 6, s_3_1, 0, 1, 0},
{ 2, s_3_2, -1, 1, 0},
{ 6, s_3_3, 2, 1, 0},
{ 4, s_3_4, 2, 1, 0},
{ 8, s_3_5, 4, 1, 0},
{ 10, s_3_6, 5, 1, 0},
{ 6, s_3_7, 4, 1, 0},
{ 10, s_3_8, 4, 1, 0},
{ 8, s_3_9, 4, 1, 0},
{ 6, s_3_10, 4, 1, 0},
{ 4, s_3_11, 2, 1, 0},
{ 4, s_3_12, -1, 1, 0},
{ 4, s_3_13, -1, 1, 0},
{ 6, s_3_14, -1, 1, 0},
{ 2, s_3_15, -1, 1, 0},
{ 6, s_3_16, 15, 1, 0},
{ 8, s_3_17, 16, 1, 0},
{ 6, s_3_18, 15, 1, 0},
{ 6, s_3_19, 15, 1, 0},
{ 14, s_3_20, 19, 1, 0},
{ 8, s_3_21, 19, 1, 0},
{ 6, s_3_22, 15, 1, 0},
{ 2, s_3_23, -1, 1, 0},
{ 6, s_3_24, 23, 1, 0},
{ 8, s_3_25, 24, 1, 0},
{ 6, s_3_26, 23, 1, 0},
{ 14, s_3_27, 26, 1, 0},
{ 8, s_3_28, 26, 1, 0},
{ 6, s_3_29, 23, 1, 0},
{ 2, s_3_30, -1, 1, 0},
{ 6, s_3_31, 30, 1, 0},
{ 8, s_3_32, 31, 1, 0},
{ 4, s_3_33, 30, 1, 0},
{ 10, s_3_34, -1, 1, 0},
{ 12, s_3_35, 34, 1, 0},
{ 10, s_3_36, -1, 1, 0},
{ 2, s_3_37, -1, 1, 0},
{ 6, s_3_38, 37, 1, 0},
{ 8, s_3_39, 38, 1, 0},
{ 6, s_3_40, 37, 1, 0},
{ 4, s_3_41, 37, 1, 0},
{ 12, s_3_42, 41, 1, 0},
{ 6, s_3_43, 41, 1, 0},
{ 4, s_3_44, 37, 1, 0},
{ 8, s_3_45, 44, 1, 0},
{ 10, s_3_46, 45, 1, 0},
{ 14, s_3_47, 37, 1, 0},
{ 4, s_3_48, -1, 1, 0},
{ 14, s_3_49, -1, 1, 0},
{ 8, s_3_50, -1, 1, 0},
{ 6, s_3_51, -1, 1, 0},
{ 4, s_3_52, -1, 1, 0},
{ 8, s_3_53, 52, 1, 0},
{ 10, s_3_54, 53, 1, 0},
{ 8, s_3_55, 52, 1, 0},
{ 6, s_3_56, 52, 1, 0}
};
static const unsigned char g_v[] = { 209, 4, 128, 0, 18 };
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
z->I[0] = z->l;
{ int c1 = z->c;
{
int ret = out_grouping_U(z, g_v, 1377, 1413, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
z->I[1] = z->c;
{
int ret = in_grouping_U(z, g_v, 1377, 1413, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
{
int ret = out_grouping_U(z, g_v, 1377, 1413, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
{
int ret = in_grouping_U(z, g_v, 1377, 1413, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
z->I[0] = z->c;
lab0:
z->c = c1;
}
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_adjective(struct SN_env * z) {
z->ket = z->c;
if (!(find_among_b(z, a_0, 23))) return 0;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_verb(struct SN_env * z) {
z->ket = z->c;
if (!(find_among_b(z, a_1, 71))) return 0;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_noun(struct SN_env * z) {
z->ket = z->c;
if (!(find_among_b(z, a_2, 40))) return 0;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_ending(struct SN_env * z) {
z->ket = z->c;
if (!(find_among_b(z, a_3, 57))) return 0;
z->bra = z->c;
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
extern int armenian_UTF_8_stem(struct SN_env * z) {
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->lb = z->c; z->c = z->l;
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_ending(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_verb(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_adjective(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5;
{ int ret = r_noun(z);
if (ret < 0) return ret;
}
z->c = z->l - m5;
}
z->lb = mlimit1;
}
z->c = z->lb;
return 1;
}
extern struct SN_env * armenian_UTF_8_create_env(void) { return SN_create_env(0, 2); }
extern void armenian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -61,38 +61,38 @@ static const symbol s_0_31[4] = { 'e', 'r', 'e', 't' };
static const struct among a_0[32] =
{
/* 0 */ { 3, s_0_0, -1, 1, 0},
/* 1 */ { 5, s_0_1, 0, 1, 0},
/* 2 */ { 4, s_0_2, -1, 1, 0},
/* 3 */ { 1, s_0_3, -1, 1, 0},
/* 4 */ { 5, s_0_4, 3, 1, 0},
/* 5 */ { 4, s_0_5, 3, 1, 0},
/* 6 */ { 6, s_0_6, 5, 1, 0},
/* 7 */ { 3, s_0_7, 3, 1, 0},
/* 8 */ { 4, s_0_8, 3, 1, 0},
/* 9 */ { 3, s_0_9, 3, 1, 0},
/* 10 */ { 2, s_0_10, -1, 1, 0},
/* 11 */ { 5, s_0_11, 10, 1, 0},
/* 12 */ { 4, s_0_12, 10, 1, 0},
/* 13 */ { 2, s_0_13, -1, 1, 0},
/* 14 */ { 5, s_0_14, 13, 1, 0},
/* 15 */ { 4, s_0_15, 13, 1, 0},
/* 16 */ { 1, s_0_16, -1, 2, 0},
/* 17 */ { 4, s_0_17, 16, 1, 0},
/* 18 */ { 2, s_0_18, 16, 1, 0},
/* 19 */ { 5, s_0_19, 18, 1, 0},
/* 20 */ { 7, s_0_20, 19, 1, 0},
/* 21 */ { 4, s_0_21, 18, 1, 0},
/* 22 */ { 5, s_0_22, 18, 1, 0},
/* 23 */ { 4, s_0_23, 18, 1, 0},
/* 24 */ { 3, s_0_24, 16, 1, 0},
/* 25 */ { 6, s_0_25, 24, 1, 0},
/* 26 */ { 5, s_0_26, 24, 1, 0},
/* 27 */ { 3, s_0_27, 16, 1, 0},
/* 28 */ { 3, s_0_28, 16, 1, 0},
/* 29 */ { 5, s_0_29, 28, 1, 0},
/* 30 */ { 2, s_0_30, -1, 1, 0},
/* 31 */ { 4, s_0_31, 30, 1, 0}
{ 3, s_0_0, -1, 1, 0},
{ 5, s_0_1, 0, 1, 0},
{ 4, s_0_2, -1, 1, 0},
{ 1, s_0_3, -1, 1, 0},
{ 5, s_0_4, 3, 1, 0},
{ 4, s_0_5, 3, 1, 0},
{ 6, s_0_6, 5, 1, 0},
{ 3, s_0_7, 3, 1, 0},
{ 4, s_0_8, 3, 1, 0},
{ 3, s_0_9, 3, 1, 0},
{ 2, s_0_10, -1, 1, 0},
{ 5, s_0_11, 10, 1, 0},
{ 4, s_0_12, 10, 1, 0},
{ 2, s_0_13, -1, 1, 0},
{ 5, s_0_14, 13, 1, 0},
{ 4, s_0_15, 13, 1, 0},
{ 1, s_0_16, -1, 2, 0},
{ 4, s_0_17, 16, 1, 0},
{ 2, s_0_18, 16, 1, 0},
{ 5, s_0_19, 18, 1, 0},
{ 7, s_0_20, 19, 1, 0},
{ 4, s_0_21, 18, 1, 0},
{ 5, s_0_22, 18, 1, 0},
{ 4, s_0_23, 18, 1, 0},
{ 3, s_0_24, 16, 1, 0},
{ 6, s_0_25, 24, 1, 0},
{ 5, s_0_26, 24, 1, 0},
{ 3, s_0_27, 16, 1, 0},
{ 3, s_0_28, 16, 1, 0},
{ 5, s_0_29, 28, 1, 0},
{ 2, s_0_30, -1, 1, 0},
{ 4, s_0_31, 30, 1, 0}
};
static const symbol s_1_0[2] = { 'g', 'd' };
@ -102,10 +102,10 @@ static const symbol s_1_3[2] = { 'k', 't' };
static const struct among a_1[4] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
/* 2 */ { 2, s_1_2, -1, -1, 0},
/* 3 */ { 2, s_1_3, -1, -1, 0}
{ 2, s_1_0, -1, -1, 0},
{ 2, s_1_1, -1, -1, 0},
{ 2, s_1_2, -1, -1, 0},
{ 2, s_1_3, -1, -1, 0}
};
static const symbol s_2_0[2] = { 'i', 'g' };
@ -116,11 +116,11 @@ static const symbol s_2_4[5] = { 'l', 0xC3, 0xB8, 's', 't' };
static const struct among a_2[5] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 3, s_2_1, 0, 1, 0},
/* 2 */ { 4, s_2_2, 1, 1, 0},
/* 3 */ { 3, s_2_3, -1, 1, 0},
/* 4 */ { 5, s_2_4, -1, 2, 0}
{ 2, s_2_0, -1, 1, 0},
{ 3, s_2_1, 0, 1, 0},
{ 4, s_2_2, 1, 1, 0},
{ 3, s_2_3, -1, 1, 0},
{ 5, s_2_4, -1, 2, 0}
};
static const unsigned char g_c[] = { 119, 223, 119, 1 };
@ -133,52 +133,52 @@ static const symbol s_0[] = { 's', 't' };
static const symbol s_1[] = { 'i', 'g' };
static const symbol s_2[] = { 'l', 0xC3, 0xB8, 's' };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 33 */
{ int c_test1 = z->c; /* test, line 35 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 35 */
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
{ int c_test1 = z->c;
{ int ret = skip_utf8(z->p, z->c, z->l, 3);
if (ret < 0) return 0;
z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 35 */
z->I[0] = z->c;
z->c = c_test1;
}
if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 36 */
{ /* gopast */ /* non v, line 36 */
if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0;
{
int ret = in_grouping_U(z, g_v, 97, 248, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 36 */
/* try, line 37 */
if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 37 */
z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 37 */
z->I[1] = z->c;
if (!(z->I[1] < z->I[0])) goto lab0;
z->I[1] = z->I[0];
lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) { /* backwardmode */
static int r_main_suffix(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 43 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 43 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 43 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
among_var = find_among_b(z, a_0, 32);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 43 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 44 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 50 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 52 */
{ int ret = slice_del(z); /* delete, line 52 */
if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -186,69 +186,69 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 57 */
static int r_consonant_pair(struct SN_env * z) {
{ int m_test1 = z->l - z->c;
{ int mlimit2; /* setlimit, line 58 */
if (z->c < z->I[0]) return 0;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 58 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 58 */
{ int mlimit2;
if (z->c < z->I[1]) return 0;
mlimit2 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; }
if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 58 */
z->bra = z->c;
z->lb = mlimit2;
}
z->c = z->l - m_test1;
}
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
if (ret < 0) return 0;
z->c = ret; /* next, line 64 */
z->c = ret;
}
z->bra = z->c; /* ], line 64 */
{ int ret = slice_del(z); /* delete, line 64 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_other_suffix(struct SN_env * z) { /* backwardmode */
static int r_other_suffix(struct SN_env * z) {
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 68 */
z->ket = z->c; /* [, line 68 */
if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 68 */
z->bra = z->c; /* ], line 68 */
if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 68 */
{ int ret = slice_del(z); /* delete, line 68 */
{ int m1 = z->l - z->c; (void)m1;
z->ket = z->c;
if (!(eq_s_b(z, 2, s_0))) goto lab0;
z->bra = z->c;
if (!(eq_s_b(z, 2, s_1))) goto lab0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab0:
z->c = z->l - m1;
}
{ int mlimit2; /* setlimit, line 69 */
if (z->c < z->I[0]) return 0;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 69 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } /* substring, line 69 */
{ int mlimit2;
if (z->c < z->I[1]) return 0;
mlimit2 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; }
among_var = find_among_b(z, a_2, 5);
if (!(among_var)) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 69 */
z->bra = z->c;
z->lb = mlimit2;
}
switch (among_var) { /* among, line 70 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 72 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 72 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 72 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_consonant_pair(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
break;
case 2:
{ int ret = slice_from_s(z, 4, s_2); /* <-, line 74 */
{ int ret = slice_from_s(z, 4, s_2);
if (ret < 0) return ret;
}
break;
@ -256,54 +256,54 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_undouble(struct SN_env * z) { /* backwardmode */
static int r_undouble(struct SN_env * z) {
{ int mlimit1; /* setlimit, line 78 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 78 */
if (in_grouping_b_U(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; } /* grouping c, line 78 */
z->bra = z->c; /* ], line 78 */
z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 78 */
if (z->S[0] == 0) return -1; /* -> ch, line 78 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (in_grouping_b_U(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; }
z->bra = z->c;
z->S[0] = slice_to(z, z->S[0]);
if (z->S[0] == 0) return -1;
z->lb = mlimit1;
}
if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 79 */
{ int ret = slice_del(z); /* delete, line 80 */
if (!(eq_v_b(z, z->S[0]))) return 0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
extern int danish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 86 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 86 */
extern int danish_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 87 */
z->lb = z->c; z->c = z->l;
{ int m2 = z->l - z->c; (void)m2; /* do, line 88 */
{ int ret = r_main_suffix(z); /* call main_suffix, line 88 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_main_suffix(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 89 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 89 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_consonant_pair(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 90 */
{ int ret = r_other_suffix(z); /* call other_suffix, line 90 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_other_suffix(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 91 */
{ int ret = r_undouble(z); /* call undouble, line 91 */
{ int m5 = z->l - z->c; (void)m5;
{ int ret = r_undouble(z);
if (ret < 0) return ret;
}
z->c = z->l - m5;
@ -312,7 +312,7 @@ extern int danish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * danish_UTF_8_create_env(void) { return SN_create_env(1, 2, 0); }
extern struct SN_env * danish_UTF_8_create_env(void) { return SN_create_env(1, 2); }
extern void danish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); }

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -43,17 +43,17 @@ static const symbol s_0_10[2] = { 0xC3, 0xBC };
static const struct among a_0[11] =
{
/* 0 */ { 0, 0, -1, 6, 0},
/* 1 */ { 2, s_0_1, 0, 1, 0},
/* 2 */ { 2, s_0_2, 0, 1, 0},
/* 3 */ { 2, s_0_3, 0, 2, 0},
/* 4 */ { 2, s_0_4, 0, 2, 0},
/* 5 */ { 2, s_0_5, 0, 3, 0},
/* 6 */ { 2, s_0_6, 0, 3, 0},
/* 7 */ { 2, s_0_7, 0, 4, 0},
/* 8 */ { 2, s_0_8, 0, 4, 0},
/* 9 */ { 2, s_0_9, 0, 5, 0},
/* 10 */ { 2, s_0_10, 0, 5, 0}
{ 0, 0, -1, 6, 0},
{ 2, s_0_1, 0, 1, 0},
{ 2, s_0_2, 0, 1, 0},
{ 2, s_0_3, 0, 2, 0},
{ 2, s_0_4, 0, 2, 0},
{ 2, s_0_5, 0, 3, 0},
{ 2, s_0_6, 0, 3, 0},
{ 2, s_0_7, 0, 4, 0},
{ 2, s_0_8, 0, 4, 0},
{ 2, s_0_9, 0, 5, 0},
{ 2, s_0_10, 0, 5, 0}
};
static const symbol s_1_1[1] = { 'I' };
@ -61,9 +61,9 @@ static const symbol s_1_2[1] = { 'Y' };
static const struct among a_1[3] =
{
/* 0 */ { 0, 0, -1, 3, 0},
/* 1 */ { 1, s_1_1, 0, 2, 0},
/* 2 */ { 1, s_1_2, 0, 1, 0}
{ 0, 0, -1, 3, 0},
{ 1, s_1_1, 0, 2, 0},
{ 1, s_1_2, 0, 1, 0}
};
static const symbol s_2_0[2] = { 'd', 'd' };
@ -72,9 +72,9 @@ static const symbol s_2_2[2] = { 't', 't' };
static const struct among a_2[3] =
{
/* 0 */ { 2, s_2_0, -1, -1, 0},
/* 1 */ { 2, s_2_1, -1, -1, 0},
/* 2 */ { 2, s_2_2, -1, -1, 0}
{ 2, s_2_0, -1, -1, 0},
{ 2, s_2_1, -1, -1, 0},
{ 2, s_2_2, -1, -1, 0}
};
static const symbol s_3_0[3] = { 'e', 'n', 'e' };
@ -85,11 +85,11 @@ static const symbol s_3_4[1] = { 's' };
static const struct among a_3[5] =
{
/* 0 */ { 3, s_3_0, -1, 2, 0},
/* 1 */ { 2, s_3_1, -1, 3, 0},
/* 2 */ { 2, s_3_2, -1, 2, 0},
/* 3 */ { 5, s_3_3, 2, 1, 0},
/* 4 */ { 1, s_3_4, -1, 3, 0}
{ 3, s_3_0, -1, 2, 0},
{ 2, s_3_1, -1, 3, 0},
{ 2, s_3_2, -1, 2, 0},
{ 5, s_3_3, 2, 1, 0},
{ 1, s_3_4, -1, 3, 0}
};
static const symbol s_4_0[3] = { 'e', 'n', 'd' };
@ -101,12 +101,12 @@ static const symbol s_4_5[3] = { 'b', 'a', 'r' };
static const struct among a_4[6] =
{
/* 0 */ { 3, s_4_0, -1, 1, 0},
/* 1 */ { 2, s_4_1, -1, 2, 0},
/* 2 */ { 3, s_4_2, -1, 1, 0},
/* 3 */ { 4, s_4_3, -1, 3, 0},
/* 4 */ { 4, s_4_4, -1, 4, 0},
/* 5 */ { 3, s_4_5, -1, 5, 0}
{ 3, s_4_0, -1, 1, 0},
{ 2, s_4_1, -1, 2, 0},
{ 3, s_4_2, -1, 1, 0},
{ 4, s_4_3, -1, 3, 0},
{ 4, s_4_4, -1, 4, 0},
{ 3, s_4_5, -1, 5, 0}
};
static const symbol s_5_0[2] = { 'a', 'a' };
@ -116,10 +116,10 @@ static const symbol s_5_3[2] = { 'u', 'u' };
static const struct among a_5[4] =
{
/* 0 */ { 2, s_5_0, -1, -1, 0},
/* 1 */ { 2, s_5_1, -1, -1, 0},
/* 2 */ { 2, s_5_2, -1, -1, 0},
/* 3 */ { 2, s_5_3, -1, -1, 0}
{ 2, s_5_0, -1, -1, 0},
{ 2, s_5_1, -1, -1, 0},
{ 2, s_5_2, -1, -1, 0},
{ 2, s_5_3, -1, -1, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
@ -144,47 +144,46 @@ static const symbol s_12[] = { 'h', 'e', 'i', 'd' };
static const symbol s_13[] = { 'e', 'n' };
static const symbol s_14[] = { 'i', 'g' };
static int r_prelude(struct SN_env * z) { /* forwardmode */
static int r_prelude(struct SN_env * z) {
int among_var;
{ int c_test1 = z->c; /* test, line 42 */
/* repeat, line 42 */
while(1) { int c2 = z->c;
z->bra = z->c; /* [, line 43 */
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((340306450 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else /* substring, line 43 */
{ int c_test1 = z->c;
while(1) {
int c2 = z->c;
z->bra = z->c;
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((340306450 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else
among_var = find_among(z, a_0, 11);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 43 */
switch (among_var) { /* among, line 43 */
z->ket = z->c;
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
{ int ret = slice_from_s(z, 1, s_0);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 47 */
{ int ret = slice_from_s(z, 1, s_1);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 49 */
{ int ret = slice_from_s(z, 1, s_2);
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 51 */
{ int ret = slice_from_s(z, 1, s_3);
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 53 */
{ int ret = slice_from_s(z, 1, s_4);
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
if (ret < 0) goto lab0;
z->c = ret; /* next, line 54 */
z->c = ret;
}
break;
}
@ -195,39 +194,38 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
}
z->c = c_test1;
}
{ int c3 = z->c; /* try, line 57 */
z->bra = z->c; /* [, line 57 */
if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } /* literal, line 57 */
{ int c3 = z->c;
z->bra = z->c;
if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; }
z->c++;
z->ket = z->c; /* ], line 57 */
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 57 */
z->ket = z->c;
{ int ret = slice_from_s(z, 1, s_5);
if (ret < 0) return ret;
}
lab1:
;
}
/* repeat, line 58 */
while(1) { int c4 = z->c;
while(1) { /* goto, line 58 */
while(1) {
int c4 = z->c;
while(1) {
int c5 = z->c;
if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3; /* grouping v, line 59 */
z->bra = z->c; /* [, line 59 */
{ int c6 = z->c; /* or, line 59 */
if (z->c == z->l || z->p[z->c] != 'i') goto lab5; /* literal, line 59 */
if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3;
z->bra = z->c;
{ int c6 = z->c;
if (z->c == z->l || z->p[z->c] != 'i') goto lab5;
z->c++;
z->ket = z->c; /* ], line 59 */
if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5; /* grouping v, line 59 */
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 59 */
z->ket = z->c;
if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5;
{ int ret = slice_from_s(z, 1, s_6);
if (ret < 0) return ret;
}
goto lab4;
lab5:
z->c = c6;
if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 60 */
if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
z->c++;
z->ket = z->c; /* ], line 60 */
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 60 */
z->ket = z->c;
{ int ret = slice_from_s(z, 1, s_7);
if (ret < 0) return ret;
}
}
@ -236,9 +234,9 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
break;
lab3:
z->c = c5;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
if (ret < 0) goto lab2;
z->c = ret; /* goto, line 58 */
z->c = ret;
}
}
continue;
@ -249,63 +247,62 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
return 1;
}
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 66 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 67 */
{ /* gopast */ /* grouping v, line 69 */
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
z->I[0] = z->l;
{
int ret = out_grouping_U(z, g_v, 97, 232, 1);
if (ret < 0) return 0;
z->c += ret;
}
{ /* gopast */ /* non v, line 69 */
{
int ret = in_grouping_U(z, g_v, 97, 232, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 69 */
/* try, line 70 */
if (!(z->I[0] < 3)) goto lab0; /* $(<integer expression> < <integer expression>), line 70 */
z->I[0] = 3; /* $p1 = <integer expression>, line 70 */
z->I[1] = z->c;
if (!(z->I[1] < 3)) goto lab0;
z->I[1] = 3;
lab0:
{ /* gopast */ /* grouping v, line 71 */
{
int ret = out_grouping_U(z, g_v, 97, 232, 1);
if (ret < 0) return 0;
z->c += ret;
}
{ /* gopast */ /* non v, line 71 */
{
int ret = in_grouping_U(z, g_v, 97, 232, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 71 */
z->I[0] = z->c;
return 1;
}
static int r_postlude(struct SN_env * z) { /* forwardmode */
static int r_postlude(struct SN_env * z) {
int among_var;
/* repeat, line 75 */
while(1) { int c1 = z->c;
z->bra = z->c; /* [, line 77 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else /* substring, line 77 */
while(1) {
int c1 = z->c;
z->bra = z->c;
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
among_var = find_among(z, a_1, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 77 */
switch (among_var) { /* among, line 77 */
z->ket = z->c;
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 78 */
{ int ret = slice_from_s(z, 1, s_8);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 79 */
{ int ret = slice_from_s(z, 1, s_9);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
if (ret < 0) goto lab0;
z->c = ret; /* next, line 80 */
z->c = ret;
}
break;
}
@ -317,111 +314,111 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
return 1;
}
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 87 */
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 88 */
static int r_R2(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_undouble(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 91 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 91 */
static int r_undouble(struct SN_env * z) {
{ int m_test1 = z->l - z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_2, 3))) return 0;
z->c = z->l - m_test1;
}
z->ket = z->c; /* [, line 91 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
z->ket = z->c;
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
if (ret < 0) return 0;
z->c = ret; /* next, line 91 */
z->c = ret;
}
z->bra = z->c; /* ], line 91 */
{ int ret = slice_del(z); /* delete, line 91 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_e_ending(struct SN_env * z) { /* backwardmode */
z->B[0] = 0; /* unset e_found, line 95 */
z->ket = z->c; /* [, line 96 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 96 */
static int r_e_ending(struct SN_env * z) {
z->I[2] = 0;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
z->c--;
z->bra = z->c; /* ], line 96 */
{ int ret = r_R1(z); /* call R1, line 96 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int m_test1 = z->l - z->c; /* test, line 96 */
if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; /* non v, line 96 */
{ int m_test1 = z->l - z->c;
if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0;
z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 96 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->B[0] = 1; /* set e_found, line 97 */
{ int ret = r_undouble(z); /* call undouble, line 98 */
z->I[2] = 1;
{ int ret = r_undouble(z);
if (ret <= 0) return ret;
}
return 1;
}
static int r_en_ending(struct SN_env * z) { /* backwardmode */
{ int ret = r_R1(z); /* call R1, line 102 */
static int r_en_ending(struct SN_env * z) {
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int m1 = z->l - z->c; (void)m1; /* and, line 102 */
if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; /* non v, line 102 */
{ int m1 = z->l - z->c; (void)m1;
if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0;
z->c = z->l - m1;
{ int m2 = z->l - z->c; (void)m2; /* not, line 102 */
if (!(eq_s_b(z, 3, s_10))) goto lab0; /* literal, line 102 */
{ int m2 = z->l - z->c; (void)m2;
if (!(eq_s_b(z, 3, s_10))) goto lab0;
return 0;
lab0:
z->c = z->l - m2;
}
}
{ int ret = slice_del(z); /* delete, line 102 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int ret = r_undouble(z); /* call undouble, line 103 */
{ int ret = r_undouble(z);
if (ret <= 0) return ret;
}
return 1;
}
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
static int r_standard_suffix(struct SN_env * z) {
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 107 */
z->ket = z->c; /* [, line 108 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 108 */
{ int m1 = z->l - z->c; (void)m1;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
among_var = find_among_b(z, a_3, 5);
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 108 */
switch (among_var) { /* among, line 108 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = r_R1(z); /* call R1, line 110 */
{ int ret = r_R1(z);
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
{ int ret = slice_from_s(z, 4, s_11); /* <-, line 110 */
{ int ret = slice_from_s(z, 4, s_11);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_en_ending(z); /* call en_ending, line 113 */
{ int ret = r_en_ending(z);
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = r_R1(z); /* call R1, line 116 */
{ int ret = r_R1(z);
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
if (out_grouping_b_U(z, g_v_j, 97, 232, 0)) goto lab0; /* non v_j, line 116 */
{ int ret = slice_del(z); /* delete, line 116 */
if (out_grouping_b_U(z, g_v_j, 97, 232, 0)) goto lab0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -429,77 +426,77 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
lab0:
z->c = z->l - m1;
}
{ int m2 = z->l - z->c; (void)m2; /* do, line 120 */
{ int ret = r_e_ending(z); /* call e_ending, line 120 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_e_ending(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 122 */
z->ket = z->c; /* [, line 122 */
if (!(eq_s_b(z, 4, s_12))) goto lab1; /* literal, line 122 */
z->bra = z->c; /* ], line 122 */
{ int ret = r_R2(z); /* call R2, line 122 */
{ int m3 = z->l - z->c; (void)m3;
z->ket = z->c;
if (!(eq_s_b(z, 4, s_12))) goto lab1;
z->bra = z->c;
{ int ret = r_R2(z);
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
{ int m4 = z->l - z->c; (void)m4; /* not, line 122 */
if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2; /* literal, line 122 */
{ int m4 = z->l - z->c; (void)m4;
if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2;
z->c--;
goto lab1;
lab2:
z->c = z->l - m4;
}
{ int ret = slice_del(z); /* delete, line 122 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 123 */
if (!(eq_s_b(z, 2, s_13))) goto lab1; /* literal, line 123 */
z->bra = z->c; /* ], line 123 */
{ int ret = r_en_ending(z); /* call en_ending, line 123 */
z->ket = z->c;
if (!(eq_s_b(z, 2, s_13))) goto lab1;
z->bra = z->c;
{ int ret = r_en_ending(z);
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m3;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 126 */
z->ket = z->c; /* [, line 127 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 127 */
{ int m5 = z->l - z->c; (void)m5;
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
among_var = find_among_b(z, a_4, 6);
if (!(among_var)) goto lab3;
z->bra = z->c; /* ], line 127 */
switch (among_var) { /* among, line 127 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = r_R2(z); /* call R2, line 129 */
{ int ret = r_R2(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 129 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m6 = z->l - z->c; (void)m6; /* or, line 130 */
z->ket = z->c; /* [, line 130 */
if (!(eq_s_b(z, 2, s_14))) goto lab5; /* literal, line 130 */
z->bra = z->c; /* ], line 130 */
{ int ret = r_R2(z); /* call R2, line 130 */
{ int m6 = z->l - z->c; (void)m6;
z->ket = z->c;
if (!(eq_s_b(z, 2, s_14))) goto lab5;
z->bra = z->c;
{ int ret = r_R2(z);
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
{ int m7 = z->l - z->c; (void)m7; /* not, line 130 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 130 */
{ int m7 = z->l - z->c; (void)m7;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
z->c--;
goto lab5;
lab6:
z->c = z->l - m7;
}
{ int ret = slice_del(z); /* delete, line 130 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
goto lab4;
lab5:
z->c = z->l - m6;
{ int ret = r_undouble(z); /* call undouble, line 130 */
{ int ret = r_undouble(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
@ -507,50 +504,50 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
lab4:
break;
case 2:
{ int ret = r_R2(z); /* call R2, line 133 */
{ int ret = r_R2(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
{ int m8 = z->l - z->c; (void)m8; /* not, line 133 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7; /* literal, line 133 */
{ int m8 = z->l - z->c; (void)m8;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7;
z->c--;
goto lab3;
lab7:
z->c = z->l - m8;
}
{ int ret = slice_del(z); /* delete, line 133 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = r_R2(z); /* call R2, line 136 */
{ int ret = r_R2(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 136 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int ret = r_e_ending(z); /* call e_ending, line 136 */
{ int ret = r_e_ending(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_R2(z); /* call R2, line 139 */
{ int ret = r_R2(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 139 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = r_R2(z); /* call R2, line 142 */
{ int ret = r_R2(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
if (!(z->B[0])) goto lab3; /* Boolean test e_found, line 142 */
{ int ret = slice_del(z); /* delete, line 142 */
if (!(z->I[2])) goto lab3;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -558,21 +555,21 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
lab3:
z->c = z->l - m5;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 146 */
if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab8; /* non v_I, line 147 */
{ int m_test10 = z->l - z->c; /* test, line 148 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8; /* among, line 149 */
{ int m9 = z->l - z->c; (void)m9;
if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab8;
{ int m_test10 = z->l - z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8;
if (!(find_among_b(z, a_5, 4))) goto lab8;
if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab8; /* non v, line 150 */
if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab8;
z->c = z->l - m_test10;
}
z->ket = z->c; /* [, line 152 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
z->ket = z->c;
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
if (ret < 0) goto lab8;
z->c = ret; /* next, line 152 */
z->c = ret;
}
z->bra = z->c; /* ], line 152 */
{ int ret = slice_del(z); /* delete, line 152 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab8:
@ -581,28 +578,28 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
extern int dutch_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 159 */
{ int ret = r_prelude(z); /* call prelude, line 159 */
extern int dutch_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_prelude(z);
if (ret < 0) return ret;
}
z->c = c1;
}
{ int c2 = z->c; /* do, line 160 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 160 */
{ int c2 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 161 */
z->lb = z->c; z->c = z->l;
/* do, line 162 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 162 */
{ int ret = r_standard_suffix(z);
if (ret < 0) return ret;
}
z->c = z->lb;
{ int c3 = z->c; /* do, line 163 */
{ int ret = r_postlude(z); /* call postlude, line 163 */
{ int c3 = z->c;
{ int ret = r_postlude(z);
if (ret < 0) return ret;
}
z->c = c3;
@ -610,7 +607,7 @@ extern int dutch_UTF_8_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); }
extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 3); }
extern void dutch_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -45,16 +45,16 @@ static const symbol s_0_9[3] = { 'k', 0xC3, 0xB6 };
static const struct among a_0[10] =
{
/* 0 */ { 2, s_0_0, -1, 1, 0},
/* 1 */ { 3, s_0_1, -1, 2, 0},
/* 2 */ { 4, s_0_2, -1, 1, 0},
/* 3 */ { 3, s_0_3, -1, 1, 0},
/* 4 */ { 3, s_0_4, -1, 1, 0},
/* 5 */ { 4, s_0_5, -1, 1, 0},
/* 6 */ { 6, s_0_6, -1, 1, 0},
/* 7 */ { 2, s_0_7, -1, 1, 0},
/* 8 */ { 3, s_0_8, -1, 1, 0},
/* 9 */ { 3, s_0_9, -1, 1, 0}
{ 2, s_0_0, -1, 1, 0},
{ 3, s_0_1, -1, 2, 0},
{ 4, s_0_2, -1, 1, 0},
{ 3, s_0_3, -1, 1, 0},
{ 3, s_0_4, -1, 1, 0},
{ 4, s_0_5, -1, 1, 0},
{ 6, s_0_6, -1, 1, 0},
{ 2, s_0_7, -1, 1, 0},
{ 3, s_0_8, -1, 1, 0},
{ 3, s_0_9, -1, 1, 0}
};
static const symbol s_1_0[3] = { 'l', 'l', 'a' };
@ -66,12 +66,12 @@ static const symbol s_1_5[3] = { 's', 't', 'a' };
static const struct among a_1[6] =
{
/* 0 */ { 3, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
/* 2 */ { 3, s_1_2, -1, -1, 0},
/* 3 */ { 2, s_1_3, -1, -1, 0},
/* 4 */ { 3, s_1_4, 3, -1, 0},
/* 5 */ { 3, s_1_5, 3, -1, 0}
{ 3, s_1_0, -1, -1, 0},
{ 2, s_1_1, -1, -1, 0},
{ 3, s_1_2, -1, -1, 0},
{ 2, s_1_3, -1, -1, 0},
{ 3, s_1_4, 3, -1, 0},
{ 3, s_1_5, 3, -1, 0}
};
static const symbol s_2_0[4] = { 'l', 'l', 0xC3, 0xA4 };
@ -83,12 +83,12 @@ static const symbol s_2_5[4] = { 's', 't', 0xC3, 0xA4 };
static const struct among a_2[6] =
{
/* 0 */ { 4, s_2_0, -1, -1, 0},
/* 1 */ { 3, s_2_1, -1, -1, 0},
/* 2 */ { 4, s_2_2, -1, -1, 0},
/* 3 */ { 3, s_2_3, -1, -1, 0},
/* 4 */ { 4, s_2_4, 3, -1, 0},
/* 5 */ { 4, s_2_5, 3, -1, 0}
{ 4, s_2_0, -1, -1, 0},
{ 3, s_2_1, -1, -1, 0},
{ 4, s_2_2, -1, -1, 0},
{ 3, s_2_3, -1, -1, 0},
{ 4, s_2_4, 3, -1, 0},
{ 4, s_2_5, 3, -1, 0}
};
static const symbol s_3_0[3] = { 'l', 'l', 'e' };
@ -96,8 +96,8 @@ static const symbol s_3_1[3] = { 'i', 'n', 'e' };
static const struct among a_3[2] =
{
/* 0 */ { 3, s_3_0, -1, -1, 0},
/* 1 */ { 3, s_3_1, -1, -1, 0}
{ 3, s_3_0, -1, -1, 0},
{ 3, s_3_1, -1, -1, 0}
};
static const symbol s_4_0[3] = { 'n', 's', 'a' };
@ -112,15 +112,15 @@ static const symbol s_4_8[4] = { 'n', 's', 0xC3, 0xA4 };
static const struct among a_4[9] =
{
/* 0 */ { 3, s_4_0, -1, 3, 0},
/* 1 */ { 3, s_4_1, -1, 3, 0},
/* 2 */ { 3, s_4_2, -1, 3, 0},
/* 3 */ { 2, s_4_3, -1, 2, 0},
/* 4 */ { 2, s_4_4, -1, 1, 0},
/* 5 */ { 2, s_4_5, -1, 4, 0},
/* 6 */ { 2, s_4_6, -1, 6, 0},
/* 7 */ { 3, s_4_7, -1, 5, 0},
/* 8 */ { 4, s_4_8, -1, 3, 0}
{ 3, s_4_0, -1, 3, 0},
{ 3, s_4_1, -1, 3, 0},
{ 3, s_4_2, -1, 3, 0},
{ 2, s_4_3, -1, 2, 0},
{ 2, s_4_4, -1, 1, 0},
{ 2, s_4_5, -1, 4, 0},
{ 2, s_4_6, -1, 6, 0},
{ 3, s_4_7, -1, 5, 0},
{ 4, s_4_8, -1, 3, 0}
};
static const symbol s_5_0[2] = { 'a', 'a' };
@ -133,13 +133,13 @@ static const symbol s_5_6[4] = { 0xC3, 0xB6, 0xC3, 0xB6 };
static const struct among a_5[7] =
{
/* 0 */ { 2, s_5_0, -1, -1, 0},
/* 1 */ { 2, s_5_1, -1, -1, 0},
/* 2 */ { 2, s_5_2, -1, -1, 0},
/* 3 */ { 2, s_5_3, -1, -1, 0},
/* 4 */ { 2, s_5_4, -1, -1, 0},
/* 5 */ { 4, s_5_5, -1, -1, 0},
/* 6 */ { 4, s_5_6, -1, -1, 0}
{ 2, s_5_0, -1, -1, 0},
{ 2, s_5_1, -1, -1, 0},
{ 2, s_5_2, -1, -1, 0},
{ 2, s_5_3, -1, -1, 0},
{ 2, s_5_4, -1, -1, 0},
{ 4, s_5_5, -1, -1, 0},
{ 4, s_5_6, -1, -1, 0}
};
static const symbol s_6_0[1] = { 'a' };
@ -175,36 +175,36 @@ static const symbol s_6_29[4] = { 't', 't', 0xC3, 0xA4 };
static const struct among a_6[30] =
{
/* 0 */ { 1, s_6_0, -1, 8, 0},
/* 1 */ { 3, s_6_1, 0, -1, 0},
/* 2 */ { 2, s_6_2, 0, -1, 0},
/* 3 */ { 3, s_6_3, 0, -1, 0},
/* 4 */ { 2, s_6_4, 0, -1, 0},
/* 5 */ { 3, s_6_5, 4, -1, 0},
/* 6 */ { 3, s_6_6, 4, -1, 0},
/* 7 */ { 3, s_6_7, 4, 2, 0},
/* 8 */ { 3, s_6_8, -1, -1, 0},
/* 9 */ { 3, s_6_9, -1, -1, 0},
/* 10 */ { 3, s_6_10, -1, -1, 0},
/* 11 */ { 1, s_6_11, -1, 7, 0},
/* 12 */ { 3, s_6_12, 11, 1, 0},
/* 13 */ { 3, s_6_13, 11, -1, r_VI},
/* 14 */ { 4, s_6_14, 11, -1, r_LONG},
/* 15 */ { 3, s_6_15, 11, 2, 0},
/* 16 */ { 4, s_6_16, 11, -1, r_VI},
/* 17 */ { 3, s_6_17, 11, 3, 0},
/* 18 */ { 4, s_6_18, 11, -1, r_VI},
/* 19 */ { 3, s_6_19, 11, 4, 0},
/* 20 */ { 4, s_6_20, 11, 5, 0},
/* 21 */ { 4, s_6_21, 11, 6, 0},
/* 22 */ { 2, s_6_22, -1, 8, 0},
/* 23 */ { 4, s_6_23, 22, -1, 0},
/* 24 */ { 3, s_6_24, 22, -1, 0},
/* 25 */ { 4, s_6_25, 22, -1, 0},
/* 26 */ { 3, s_6_26, 22, -1, 0},
/* 27 */ { 4, s_6_27, 26, -1, 0},
/* 28 */ { 4, s_6_28, 26, -1, 0},
/* 29 */ { 4, s_6_29, 26, 2, 0}
{ 1, s_6_0, -1, 8, 0},
{ 3, s_6_1, 0, -1, 0},
{ 2, s_6_2, 0, -1, 0},
{ 3, s_6_3, 0, -1, 0},
{ 2, s_6_4, 0, -1, 0},
{ 3, s_6_5, 4, -1, 0},
{ 3, s_6_6, 4, -1, 0},
{ 3, s_6_7, 4, 2, 0},
{ 3, s_6_8, -1, -1, 0},
{ 3, s_6_9, -1, -1, 0},
{ 3, s_6_10, -1, -1, 0},
{ 1, s_6_11, -1, 7, 0},
{ 3, s_6_12, 11, 1, 0},
{ 3, s_6_13, 11, -1, r_VI},
{ 4, s_6_14, 11, -1, r_LONG},
{ 3, s_6_15, 11, 2, 0},
{ 4, s_6_16, 11, -1, r_VI},
{ 3, s_6_17, 11, 3, 0},
{ 4, s_6_18, 11, -1, r_VI},
{ 3, s_6_19, 11, 4, 0},
{ 4, s_6_20, 11, 5, 0},
{ 4, s_6_21, 11, 6, 0},
{ 2, s_6_22, -1, 8, 0},
{ 4, s_6_23, 22, -1, 0},
{ 3, s_6_24, 22, -1, 0},
{ 4, s_6_25, 22, -1, 0},
{ 3, s_6_26, 22, -1, 0},
{ 4, s_6_27, 26, -1, 0},
{ 4, s_6_28, 26, -1, 0},
{ 4, s_6_29, 26, 2, 0}
};
static const symbol s_7_0[3] = { 'e', 'j', 'a' };
@ -224,20 +224,20 @@ static const symbol s_7_13[5] = { 'i', 'm', 'p', 0xC3, 0xA4 };
static const struct among a_7[14] =
{
/* 0 */ { 3, s_7_0, -1, -1, 0},
/* 1 */ { 3, s_7_1, -1, 1, 0},
/* 2 */ { 4, s_7_2, 1, -1, 0},
/* 3 */ { 3, s_7_3, -1, 1, 0},
/* 4 */ { 4, s_7_4, 3, -1, 0},
/* 5 */ { 3, s_7_5, -1, 1, 0},
/* 6 */ { 4, s_7_6, 5, -1, 0},
/* 7 */ { 3, s_7_7, -1, 1, 0},
/* 8 */ { 4, s_7_8, 7, -1, 0},
/* 9 */ { 4, s_7_9, -1, -1, 0},
/* 10 */ { 4, s_7_10, -1, 1, 0},
/* 11 */ { 5, s_7_11, 10, -1, 0},
/* 12 */ { 4, s_7_12, -1, 1, 0},
/* 13 */ { 5, s_7_13, 12, -1, 0}
{ 3, s_7_0, -1, -1, 0},
{ 3, s_7_1, -1, 1, 0},
{ 4, s_7_2, 1, -1, 0},
{ 3, s_7_3, -1, 1, 0},
{ 4, s_7_4, 3, -1, 0},
{ 3, s_7_5, -1, 1, 0},
{ 4, s_7_6, 5, -1, 0},
{ 3, s_7_7, -1, 1, 0},
{ 4, s_7_8, 7, -1, 0},
{ 4, s_7_9, -1, -1, 0},
{ 4, s_7_10, -1, 1, 0},
{ 5, s_7_11, 10, -1, 0},
{ 4, s_7_12, -1, 1, 0},
{ 5, s_7_13, 12, -1, 0}
};
static const symbol s_8_0[1] = { 'i' };
@ -245,8 +245,8 @@ static const symbol s_8_1[1] = { 'j' };
static const struct among a_8[2] =
{
/* 0 */ { 1, s_8_0, -1, -1, 0},
/* 1 */ { 1, s_8_1, -1, -1, 0}
{ 1, s_8_0, -1, -1, 0},
{ 1, s_8_1, -1, -1, 0}
};
static const symbol s_9_0[3] = { 'm', 'm', 'a' };
@ -254,8 +254,8 @@ static const symbol s_9_1[4] = { 'i', 'm', 'm', 'a' };
static const struct among a_9[2] =
{
/* 0 */ { 3, s_9_0, -1, 1, 0},
/* 1 */ { 4, s_9_1, 0, -1, 0}
{ 3, s_9_0, -1, 1, 0},
{ 4, s_9_1, 0, -1, 0}
};
static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
@ -276,118 +276,118 @@ static const symbol s_4[] = { 'i', 'e' };
static const symbol s_5[] = { 'p', 'o' };
static const symbol s_6[] = { 'p', 'o' };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 44 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 45 */
if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 47 */
{ /* gopast */ /* non V1, line 47 */
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
z->I[0] = z->l;
if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0;
{
int ret = in_grouping_U(z, g_V1, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 47 */
if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 48 */
{ /* gopast */ /* non V1, line 48 */
z->I[1] = z->c;
if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0;
{
int ret = in_grouping_U(z, g_V1, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 48 */
z->I[0] = z->c;
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 53 */
static int r_R2(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_particle_etc(struct SN_env * z) { /* backwardmode */
static int r_particle_etc(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 56 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
among_var = find_among_b(z, a_0, 10); /* substring, line 56 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
among_var = find_among_b(z, a_0, 10);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 56 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 57 */
switch (among_var) {
case 1:
if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) return 0; /* grouping particle_end, line 63 */
if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) return 0;
break;
case 2:
{ int ret = r_R2(z); /* call R2, line 65 */
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
break;
}
{ int ret = slice_del(z); /* delete, line 67 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_possessive(struct SN_env * z) { /* backwardmode */
static int r_possessive(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 70 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 70 */
among_var = find_among_b(z, a_4, 9); /* substring, line 70 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
among_var = find_among_b(z, a_4, 9);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 70 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 71 */
switch (among_var) {
case 1:
{ int m2 = z->l - z->c; (void)m2; /* not, line 73 */
if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0; /* literal, line 73 */
{ int m2 = z->l - z->c; (void)m2;
if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0;
z->c--;
return 0;
lab0:
z->c = z->l - m2;
}
{ int ret = slice_del(z); /* delete, line 73 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 75 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 75 */
if (!(eq_s_b(z, 3, s_0))) return 0; /* literal, line 75 */
z->bra = z->c; /* ], line 75 */
{ int ret = slice_from_s(z, 3, s_1); /* <-, line 75 */
z->ket = z->c;
if (!(eq_s_b(z, 3, s_0))) return 0;
z->bra = z->c;
{ int ret = slice_from_s(z, 3, s_1);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 79 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 4:
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0; /* among, line 82 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
if (!(find_among_b(z, a_1, 6))) return 0;
{ int ret = slice_del(z); /* delete, line 82 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 5:
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0; /* among, line 84 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0;
if (!(find_among_b(z, a_2, 6))) return 0;
{ int ret = slice_del(z); /* delete, line 85 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 6:
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0; /* among, line 87 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
if (!(find_among_b(z, a_3, 2))) return 0;
{ int ret = slice_del(z); /* delete, line 87 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -395,246 +395,246 @@ static int r_possessive(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_LONG(struct SN_env * z) { /* backwardmode */
if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 92 */
static int r_LONG(struct SN_env * z) {
if (!(find_among_b(z, a_5, 7))) return 0;
return 1;
}
static int r_VI(struct SN_env * z) { /* backwardmode */
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 94 */
static int r_VI(struct SN_env * z) {
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
z->c--;
if (in_grouping_b_U(z, g_V2, 97, 246, 0)) return 0; /* grouping V2, line 94 */
if (in_grouping_b_U(z, g_V2, 97, 246, 0)) return 0;
return 1;
}
static int r_case_ending(struct SN_env * z) { /* backwardmode */
static int r_case_ending(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 97 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 97 */
among_var = find_among_b(z, a_6, 30); /* substring, line 97 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
among_var = find_among_b(z, a_6, 30);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 97 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 98 */
switch (among_var) {
case 1:
if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; /* literal, line 99 */
if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0;
z->c--;
break;
case 2:
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 100 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
z->c--;
break;
case 3:
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 101 */
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
z->c--;
break;
case 4:
if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; /* literal, line 102 */
if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0;
z->c--;
break;
case 5:
if (!(eq_s_b(z, 2, s_2))) return 0; /* literal, line 103 */
if (!(eq_s_b(z, 2, s_2))) return 0;
break;
case 6:
if (!(eq_s_b(z, 2, s_3))) return 0; /* literal, line 104 */
if (!(eq_s_b(z, 2, s_3))) return 0;
break;
case 7:
{ int m2 = z->l - z->c; (void)m2; /* try, line 112 */
{ int m3 = z->l - z->c; (void)m3; /* and, line 114 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 113 */
{ int ret = r_LONG(z); /* call LONG, line 112 */
{ int m2 = z->l - z->c; (void)m2;
{ int m3 = z->l - z->c; (void)m3;
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_LONG(z);
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
goto lab1;
lab2:
z->c = z->l - m4;
if (!(eq_s_b(z, 2, s_4))) { z->c = z->l - m2; goto lab0; } /* literal, line 113 */
if (!(eq_s_b(z, 2, s_4))) { z->c = z->l - m2; goto lab0; }
}
lab1:
z->c = z->l - m3;
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
if (ret < 0) { z->c = z->l - m2; goto lab0; }
z->c = ret; /* next, line 114 */
z->c = ret;
}
}
z->bra = z->c; /* ], line 114 */
z->bra = z->c;
lab0:
;
}
break;
case 8:
if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0; /* grouping V1, line 120 */
if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 120 */
if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0;
if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0;
break;
}
{ int ret = slice_del(z); /* delete, line 139 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->B[0] = 1; /* set ending_removed, line 140 */
z->I[2] = 1;
return 1;
}
static int r_other_endings(struct SN_env * z) { /* backwardmode */
static int r_other_endings(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 143 */
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c; /* [, line 143 */
among_var = find_among_b(z, a_7, 14); /* substring, line 143 */
{ int mlimit1;
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c;
among_var = find_among_b(z, a_7, 14);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 143 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 144 */
switch (among_var) {
case 1:
{ int m2 = z->l - z->c; (void)m2; /* not, line 147 */
if (!(eq_s_b(z, 2, s_5))) goto lab0; /* literal, line 147 */
{ int m2 = z->l - z->c; (void)m2;
if (!(eq_s_b(z, 2, s_5))) goto lab0;
return 0;
lab0:
z->c = z->l - m2;
}
break;
}
{ int ret = slice_del(z); /* delete, line 152 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_i_plural(struct SN_env * z) { /* backwardmode */
static int r_i_plural(struct SN_env * z) {
{ int mlimit1; /* setlimit, line 155 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 155 */
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; } /* substring, line 155 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; }
if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 155 */
z->bra = z->c;
z->lb = mlimit1;
}
{ int ret = slice_del(z); /* delete, line 159 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_t_plural(struct SN_env * z) { /* backwardmode */
static int r_t_plural(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 162 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 163 */
if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } /* literal, line 163 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; }
z->c--;
z->bra = z->c; /* ], line 163 */
{ int m_test2 = z->l - z->c; /* test, line 163 */
if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; } /* grouping V1, line 163 */
z->bra = z->c;
{ int m_test2 = z->l - z->c;
if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; }
z->c = z->l - m_test2;
}
{ int ret = slice_del(z); /* delete, line 164 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->lb = mlimit1;
}
{ int mlimit3; /* setlimit, line 166 */
if (z->c < z->I[1]) return 0;
mlimit3 = z->lb; z->lb = z->I[1];
z->ket = z->c; /* [, line 166 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } /* substring, line 166 */
{ int mlimit3;
if (z->c < z->I[0]) return 0;
mlimit3 = z->lb; z->lb = z->I[0];
z->ket = z->c;
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; }
among_var = find_among_b(z, a_9, 2);
if (!(among_var)) { z->lb = mlimit3; return 0; }
z->bra = z->c; /* ], line 166 */
z->bra = z->c;
z->lb = mlimit3;
}
switch (among_var) { /* among, line 167 */
switch (among_var) {
case 1:
{ int m4 = z->l - z->c; (void)m4; /* not, line 168 */
if (!(eq_s_b(z, 2, s_6))) goto lab0; /* literal, line 168 */
{ int m4 = z->l - z->c; (void)m4;
if (!(eq_s_b(z, 2, s_6))) goto lab0;
return 0;
lab0:
z->c = z->l - m4;
}
break;
}
{ int ret = slice_del(z); /* delete, line 171 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_tidy(struct SN_env * z) { /* backwardmode */
static int r_tidy(struct SN_env * z) {
{ int mlimit1; /* setlimit, line 174 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
{ int m2 = z->l - z->c; (void)m2; /* do, line 175 */
{ int m3 = z->l - z->c; (void)m3; /* and, line 175 */
{ int ret = r_LONG(z); /* call LONG, line 175 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
{ int m2 = z->l - z->c; (void)m2;
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_LONG(z);
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
z->c = z->l - m3;
z->ket = z->c; /* [, line 175 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
z->ket = z->c;
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
if (ret < 0) goto lab0;
z->c = ret; /* next, line 175 */
z->c = ret;
}
z->bra = z->c; /* ], line 175 */
{ int ret = slice_del(z); /* delete, line 175 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
}
lab0:
z->c = z->l - m2;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 176 */
z->ket = z->c; /* [, line 176 */
if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab1; /* grouping AEI, line 176 */
z->bra = z->c; /* ], line 176 */
if (in_grouping_b_U(z, g_C, 98, 122, 0)) goto lab1; /* grouping C, line 176 */
{ int ret = slice_del(z); /* delete, line 176 */
{ int m4 = z->l - z->c; (void)m4;
z->ket = z->c;
if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab1;
z->bra = z->c;
if (in_grouping_b_U(z, g_C, 98, 122, 0)) goto lab1;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 177 */
z->ket = z->c; /* [, line 177 */
if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2; /* literal, line 177 */
{ int m5 = z->l - z->c; (void)m5;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2;
z->c--;
z->bra = z->c; /* ], line 177 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 177 */
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4; /* literal, line 177 */
z->bra = z->c;
{ int m6 = z->l - z->c; (void)m6;
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4;
z->c--;
goto lab3;
lab4:
z->c = z->l - m6;
if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2; /* literal, line 177 */
if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2;
z->c--;
}
lab3:
{ int ret = slice_del(z); /* delete, line 177 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m5;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 178 */
z->ket = z->c; /* [, line 178 */
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 178 */
{ int m7 = z->l - z->c; (void)m7;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5;
z->c--;
z->bra = z->c; /* ], line 178 */
if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5; /* literal, line 178 */
z->bra = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5;
z->c--;
{ int ret = slice_del(z); /* delete, line 178 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab5:
@ -642,72 +642,72 @@ static int r_tidy(struct SN_env * z) { /* backwardmode */
}
z->lb = mlimit1;
}
if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 180 */
z->ket = z->c; /* [, line 180 */
if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 180 */
z->bra = z->c; /* ], line 180 */
z->S[0] = slice_to(z, z->S[0]); /* -> x, line 180 */
if (z->S[0] == 0) return -1; /* -> x, line 180 */
if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 180 */
{ int ret = slice_del(z); /* delete, line 180 */
if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0;
z->ket = z->c;
if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0;
z->bra = z->c;
z->S[0] = slice_to(z, z->S[0]);
if (z->S[0] == 0) return -1;
if (!(eq_v_b(z, z->S[0]))) return 0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
extern int finnish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 186 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 186 */
extern int finnish_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c1;
}
z->B[0] = 0; /* unset ending_removed, line 187 */
z->lb = z->c; z->c = z->l; /* backwards, line 188 */
z->I[2] = 0;
z->lb = z->c; z->c = z->l;
{ int m2 = z->l - z->c; (void)m2; /* do, line 189 */
{ int ret = r_particle_etc(z); /* call particle_etc, line 189 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_particle_etc(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 190 */
{ int ret = r_possessive(z); /* call possessive, line 190 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_possessive(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 191 */
{ int ret = r_case_ending(z); /* call case_ending, line 191 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_case_ending(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 192 */
{ int ret = r_other_endings(z); /* call other_endings, line 192 */
{ int m5 = z->l - z->c; (void)m5;
{ int ret = r_other_endings(z);
if (ret < 0) return ret;
}
z->c = z->l - m5;
}
/* or, line 193 */
if (!(z->B[0])) goto lab1; /* Boolean test ending_removed, line 193 */
{ int m6 = z->l - z->c; (void)m6; /* do, line 193 */
{ int ret = r_i_plural(z); /* call i_plural, line 193 */
if (!(z->I[2])) goto lab1;
{ int m6 = z->l - z->c; (void)m6;
{ int ret = r_i_plural(z);
if (ret < 0) return ret;
}
z->c = z->l - m6;
}
goto lab0;
lab1:
{ int m7 = z->l - z->c; (void)m7; /* do, line 193 */
{ int ret = r_t_plural(z); /* call t_plural, line 193 */
{ int m7 = z->l - z->c; (void)m7;
{ int ret = r_t_plural(z);
if (ret < 0) return ret;
}
z->c = z->l - m7;
}
lab0:
{ int m8 = z->l - z->c; (void)m8; /* do, line 194 */
{ int ret = r_tidy(z); /* call tidy, line 194 */
{ int m8 = z->l - z->c; (void)m8;
{ int ret = r_tidy(z);
if (ret < 0) return ret;
}
z->c = z->l - m8;
@ -716,7 +716,7 @@ lab0:
return 1;
}
extern struct SN_env * finnish_UTF_8_create_env(void) { return SN_create_env(1, 2, 1); }
extern struct SN_env * finnish_UTF_8_create_env(void) { return SN_create_env(1, 3); }
extern void finnish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); }

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -35,12 +35,12 @@ static const symbol s_0_5[2] = { 0xC3, 0xBC };
static const struct among a_0[6] =
{
/* 0 */ { 0, 0, -1, 5, 0},
/* 1 */ { 1, s_0_1, 0, 2, 0},
/* 2 */ { 1, s_0_2, 0, 1, 0},
/* 3 */ { 2, s_0_3, 0, 3, 0},
/* 4 */ { 2, s_0_4, 0, 4, 0},
/* 5 */ { 2, s_0_5, 0, 2, 0}
{ 0, 0, -1, 5, 0},
{ 1, s_0_1, 0, 2, 0},
{ 1, s_0_2, 0, 1, 0},
{ 2, s_0_3, 0, 3, 0},
{ 2, s_0_4, 0, 4, 0},
{ 2, s_0_5, 0, 2, 0}
};
static const symbol s_1_0[1] = { 'e' };
@ -53,13 +53,13 @@ static const symbol s_1_6[2] = { 'e', 's' };
static const struct among a_1[7] =
{
/* 0 */ { 1, s_1_0, -1, 2, 0},
/* 1 */ { 2, s_1_1, -1, 1, 0},
/* 2 */ { 2, s_1_2, -1, 2, 0},
/* 3 */ { 3, s_1_3, -1, 1, 0},
/* 4 */ { 2, s_1_4, -1, 1, 0},
/* 5 */ { 1, s_1_5, -1, 3, 0},
/* 6 */ { 2, s_1_6, 5, 2, 0}
{ 1, s_1_0, -1, 2, 0},
{ 2, s_1_1, -1, 1, 0},
{ 2, s_1_2, -1, 2, 0},
{ 3, s_1_3, -1, 1, 0},
{ 2, s_1_4, -1, 1, 0},
{ 1, s_1_5, -1, 3, 0},
{ 2, s_1_6, 5, 2, 0}
};
static const symbol s_2_0[2] = { 'e', 'n' };
@ -69,10 +69,10 @@ static const symbol s_2_3[3] = { 'e', 's', 't' };
static const struct among a_2[4] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 2, s_2_1, -1, 1, 0},
/* 2 */ { 2, s_2_2, -1, 2, 0},
/* 3 */ { 3, s_2_3, 2, 1, 0}
{ 2, s_2_0, -1, 1, 0},
{ 2, s_2_1, -1, 1, 0},
{ 2, s_2_2, -1, 2, 0},
{ 3, s_2_3, 2, 1, 0}
};
static const symbol s_3_0[2] = { 'i', 'g' };
@ -80,8 +80,8 @@ static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
static const struct among a_3[2] =
{
/* 0 */ { 2, s_3_0, -1, 1, 0},
/* 1 */ { 4, s_3_1, -1, 1, 0}
{ 2, s_3_0, -1, 1, 0},
{ 4, s_3_1, -1, 1, 0}
};
static const symbol s_4_0[3] = { 'e', 'n', 'd' };
@ -95,14 +95,14 @@ static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
static const struct among a_4[8] =
{
/* 0 */ { 3, s_4_0, -1, 1, 0},
/* 1 */ { 2, s_4_1, -1, 2, 0},
/* 2 */ { 3, s_4_2, -1, 1, 0},
/* 3 */ { 4, s_4_3, -1, 3, 0},
/* 4 */ { 4, s_4_4, -1, 2, 0},
/* 5 */ { 2, s_4_5, -1, 2, 0},
/* 6 */ { 4, s_4_6, -1, 3, 0},
/* 7 */ { 4, s_4_7, -1, 4, 0}
{ 3, s_4_0, -1, 1, 0},
{ 2, s_4_1, -1, 2, 0},
{ 3, s_4_2, -1, 1, 0},
{ 4, s_4_3, -1, 3, 0},
{ 4, s_4_4, -1, 2, 0},
{ 2, s_4_5, -1, 2, 0},
{ 4, s_4_6, -1, 3, 0},
{ 4, s_4_7, -1, 4, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
@ -124,24 +124,23 @@ static const symbol s_9[] = { 'i', 'g' };
static const symbol s_10[] = { 'e', 'r' };
static const symbol s_11[] = { 'e', 'n' };
static int r_prelude(struct SN_env * z) { /* forwardmode */
{ int c_test1 = z->c; /* test, line 35 */
/* repeat, line 35 */
while(1) { int c2 = z->c;
{ int c3 = z->c; /* or, line 38 */
z->bra = z->c; /* [, line 37 */
if (!(eq_s(z, 2, s_0))) goto lab2; /* literal, line 37 */
z->ket = z->c; /* ], line 37 */
{ int ret = slice_from_s(z, 2, s_1); /* <-, line 37 */
static int r_prelude(struct SN_env * z) {
{ int c_test1 = z->c;
while(1) {
int c2 = z->c;
{ int c3 = z->c;
z->bra = z->c;
if (!(eq_s(z, 2, s_0))) goto lab2;
z->ket = z->c;
{ int ret = slice_from_s(z, 2, s_1);
if (ret < 0) return ret;
}
goto lab1;
lab2:
z->c = c3;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
if (ret < 0) goto lab0;
z->c = ret; /* next, line 38 */
z->c = ret;
}
}
lab1:
@ -152,29 +151,28 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
}
z->c = c_test1;
}
/* repeat, line 41 */
while(1) { int c4 = z->c;
while(1) { /* goto, line 41 */
while(1) {
int c4 = z->c;
while(1) {
int c5 = z->c;
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 42 */
z->bra = z->c; /* [, line 42 */
{ int c6 = z->c; /* or, line 42 */
if (z->c == z->l || z->p[z->c] != 'u') goto lab6; /* literal, line 42 */
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
z->bra = z->c;
{ int c6 = z->c;
if (z->c == z->l || z->p[z->c] != 'u') goto lab6;
z->c++;
z->ket = z->c; /* ], line 42 */
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab6; /* grouping v, line 42 */
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 42 */
z->ket = z->c;
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
{ int ret = slice_from_s(z, 1, s_2);
if (ret < 0) return ret;
}
goto lab5;
lab6:
z->c = c6;
if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 43 */
if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
z->c++;
z->ket = z->c; /* ], line 43 */
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 43 */
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 43 */
z->ket = z->c;
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
{ int ret = slice_from_s(z, 1, s_3);
if (ret < 0) return ret;
}
}
@ -183,9 +181,9 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
break;
lab4:
z->c = c5;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
if (ret < 0) goto lab3;
z->c = ret; /* goto, line 41 */
z->c = ret;
}
}
continue;
@ -196,80 +194,79 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
return 1;
}
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 49 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 50 */
{ int c_test1 = z->c; /* test, line 52 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 52 */
static int r_mark_regions(struct SN_env * z) {
z->I[2] = z->l;
z->I[1] = z->l;
{ int c_test1 = z->c;
{ int ret = skip_utf8(z->p, z->c, z->l, 3);
if (ret < 0) return 0;
z->c = ret;
}
z->I[2] = z->c; /* setmark x, line 52 */
z->I[0] = z->c;
z->c = c_test1;
}
{ /* gopast */ /* grouping v, line 54 */
{
int ret = out_grouping_U(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
{ /* gopast */ /* non v, line 54 */
{
int ret = in_grouping_U(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 54 */
/* try, line 55 */
if (!(z->I[0] < z->I[2])) goto lab0; /* $(<integer expression> < <integer expression>), line 55 */
z->I[0] = z->I[2]; /* $p1 = <integer expression>, line 55 */
z->I[2] = z->c;
if (!(z->I[2] < z->I[0])) goto lab0;
z->I[2] = z->I[0];
lab0:
{ /* gopast */ /* grouping v, line 56 */
{
int ret = out_grouping_U(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
{ /* gopast */ /* non v, line 56 */
{
int ret = in_grouping_U(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 56 */
z->I[1] = z->c;
return 1;
}
static int r_postlude(struct SN_env * z) { /* forwardmode */
static int r_postlude(struct SN_env * z) {
int among_var;
/* repeat, line 60 */
while(1) { int c1 = z->c;
z->bra = z->c; /* [, line 62 */
among_var = find_among(z, a_0, 6); /* substring, line 62 */
while(1) {
int c1 = z->c;
z->bra = z->c;
among_var = find_among(z, a_0, 6);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 62 */
switch (among_var) { /* among, line 62 */
z->ket = z->c;
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 63 */
{ int ret = slice_from_s(z, 1, s_4);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 64 */
{ int ret = slice_from_s(z, 1, s_5);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 65 */
{ int ret = slice_from_s(z, 1, s_6);
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 66 */
{ int ret = slice_from_s(z, 1, s_7);
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
if (ret < 0) goto lab0;
z->c = ret; /* next, line 68 */
z->c = ret;
}
break;
}
@ -281,45 +278,45 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
return 1;
}
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 75 */
static int r_R1(struct SN_env * z) {
if (!(z->I[2] <= z->c)) return 0;
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 76 */
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
return 1;
}
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
static int r_standard_suffix(struct SN_env * z) {
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 79 */
z->ket = z->c; /* [, line 80 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 80 */
{ int m1 = z->l - z->c; (void)m1;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
among_var = find_among_b(z, a_1, 7);
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 80 */
{ int ret = r_R1(z); /* call R1, line 80 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
switch (among_var) { /* among, line 80 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 82 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 85 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* try, line 86 */
z->ket = z->c; /* [, line 86 */
if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; } /* literal, line 86 */
{ int m2 = z->l - z->c; (void)m2;
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; }
z->c--;
z->bra = z->c; /* ], line 86 */
if (!(eq_s_b(z, 3, s_8))) { z->c = z->l - m2; goto lab1; } /* literal, line 86 */
{ int ret = slice_del(z); /* delete, line 86 */
z->bra = z->c;
if (!(eq_s_b(z, 3, s_8))) { z->c = z->l - m2; goto lab1; }
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab1:
@ -327,8 +324,8 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
}
break;
case 3:
if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab0; /* grouping s_ending, line 89 */
{ int ret = slice_del(z); /* delete, line 89 */
if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -336,29 +333,29 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
lab0:
z->c = z->l - m1;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 93 */
z->ket = z->c; /* [, line 94 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 94 */
{ int m3 = z->l - z->c; (void)m3;
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
among_var = find_among_b(z, a_2, 4);
if (!(among_var)) goto lab2;
z->bra = z->c; /* ], line 94 */
{ int ret = r_R1(z); /* call R1, line 94 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
switch (among_var) { /* among, line 94 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 96 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab2; /* grouping st_ending, line 99 */
{ int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 3); /* hop, line 99 */
if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab2;
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 3);
if (ret < 0) goto lab2;
z->c = ret;
}
{ int ret = slice_del(z); /* delete, line 99 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -366,37 +363,37 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 103 */
z->ket = z->c; /* [, line 104 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 104 */
{ int m4 = z->l - z->c; (void)m4;
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
among_var = find_among_b(z, a_4, 8);
if (!(among_var)) goto lab3;
z->bra = z->c; /* ], line 104 */
{ int ret = r_R2(z); /* call R2, line 104 */
z->bra = z->c;
{ int ret = r_R2(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
switch (among_var) { /* among, line 104 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 106 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m5 = z->l - z->c; (void)m5; /* try, line 107 */
z->ket = z->c; /* [, line 107 */
if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - m5; goto lab4; } /* literal, line 107 */
z->bra = z->c; /* ], line 107 */
{ int m6 = z->l - z->c; (void)m6; /* not, line 107 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5; /* literal, line 107 */
{ int m5 = z->l - z->c; (void)m5;
z->ket = z->c;
if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - m5; goto lab4; }
z->bra = z->c;
{ int m6 = z->l - z->c; (void)m6;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5;
z->c--;
{ z->c = z->l - m5; goto lab4; }
lab5:
z->c = z->l - m6;
}
{ int ret = r_R2(z); /* call R2, line 107 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m5; goto lab4; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 107 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab4:
@ -404,37 +401,37 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
}
break;
case 2:
{ int m7 = z->l - z->c; (void)m7; /* not, line 110 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 110 */
{ int m7 = z->l - z->c; (void)m7;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
z->c--;
goto lab3;
lab6:
z->c = z->l - m7;
}
{ int ret = slice_del(z); /* delete, line 110 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 113 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m8 = z->l - z->c; (void)m8; /* try, line 114 */
z->ket = z->c; /* [, line 115 */
{ int m9 = z->l - z->c; (void)m9; /* or, line 115 */
if (!(eq_s_b(z, 2, s_10))) goto lab9; /* literal, line 115 */
{ int m8 = z->l - z->c; (void)m8;
z->ket = z->c;
{ int m9 = z->l - z->c; (void)m9;
if (!(eq_s_b(z, 2, s_10))) goto lab9;
goto lab8;
lab9:
z->c = z->l - m9;
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m8; goto lab7; } /* literal, line 115 */
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m8; goto lab7; }
}
lab8:
z->bra = z->c; /* ], line 115 */
{ int ret = r_R1(z); /* call R1, line 115 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret == 0) { z->c = z->l - m8; goto lab7; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 115 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab7:
@ -442,19 +439,19 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
}
break;
case 4:
{ int ret = slice_del(z); /* delete, line 119 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m10 = z->l - z->c; (void)m10; /* try, line 120 */
z->ket = z->c; /* [, line 121 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; } /* substring, line 121 */
{ int m10 = z->l - z->c; (void)m10;
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; }
if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; }
z->bra = z->c; /* ], line 121 */
{ int ret = r_R2(z); /* call R2, line 121 */
z->bra = z->c;
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m10; goto lab10; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 123 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab10:
@ -468,28 +465,28 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
extern int german_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 134 */
{ int ret = r_prelude(z); /* call prelude, line 134 */
extern int german_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_prelude(z);
if (ret < 0) return ret;
}
z->c = c1;
}
{ int c2 = z->c; /* do, line 135 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 135 */
{ int c2 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 136 */
z->lb = z->c; z->c = z->l;
/* do, line 137 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 137 */
{ int ret = r_standard_suffix(z);
if (ret < 0) return ret;
}
z->c = z->lb;
{ int c3 = z->c; /* do, line 138 */
{ int ret = r_postlude(z); /* call postlude, line 138 */
{ int c3 = z->c;
{ int ret = r_postlude(z);
if (ret < 0) return ret;
}
z->c = c3;
@ -497,7 +494,7 @@ extern int german_UTF_8_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * german_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
extern struct SN_env * german_UTF_8_create_env(void) { return SN_create_env(0, 3); }
extern void german_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -157,176 +157,176 @@ static const symbol s_0_131[3] = { 0xE0, 0xA4, 0xBF };
static const struct among a_0[132] =
{
/* 0 */ { 3, s_0_0, -1, -1, 0},
/* 1 */ { 12, s_0_1, 0, -1, 0},
/* 2 */ { 12, s_0_2, 0, -1, 0},
/* 3 */ { 12, s_0_3, 0, -1, 0},
/* 4 */ { 15, s_0_4, 3, -1, 0},
/* 5 */ { 15, s_0_5, 3, -1, 0},
/* 6 */ { 12, s_0_6, 0, -1, 0},
/* 7 */ { 15, s_0_7, 6, -1, 0},
/* 8 */ { 15, s_0_8, 6, -1, 0},
/* 9 */ { 9, s_0_9, 0, -1, 0},
/* 10 */ { 9, s_0_10, 0, -1, 0},
/* 11 */ { 9, s_0_11, 0, -1, 0},
/* 12 */ { 12, s_0_12, 11, -1, 0},
/* 13 */ { 12, s_0_13, 11, -1, 0},
/* 14 */ { 9, s_0_14, 0, -1, 0},
/* 15 */ { 12, s_0_15, 14, -1, 0},
/* 16 */ { 12, s_0_16, 14, -1, 0},
/* 17 */ { 6, s_0_17, 0, -1, r_CONSONANT},
/* 18 */ { 9, s_0_18, 17, -1, 0},
/* 19 */ { 9, s_0_19, 17, -1, 0},
/* 20 */ { 9, s_0_20, 17, -1, 0},
/* 21 */ { 6, s_0_21, 0, -1, r_CONSONANT},
/* 22 */ { 9, s_0_22, 21, -1, 0},
/* 23 */ { 6, s_0_23, -1, -1, 0},
/* 24 */ { 6, s_0_24, -1, -1, 0},
/* 25 */ { 12, s_0_25, 24, -1, 0},
/* 26 */ { 15, s_0_26, 25, -1, 0},
/* 27 */ { 15, s_0_27, 25, -1, 0},
/* 28 */ { 12, s_0_28, 24, -1, 0},
/* 29 */ { 3, s_0_29, -1, -1, 0},
/* 30 */ { 6, s_0_30, -1, -1, 0},
/* 31 */ { 9, s_0_31, 30, -1, r_CONSONANT},
/* 32 */ { 12, s_0_32, 31, -1, 0},
/* 33 */ { 12, s_0_33, 31, -1, 0},
/* 34 */ { 12, s_0_34, 31, -1, 0},
/* 35 */ { 6, s_0_35, -1, -1, 0},
/* 36 */ { 9, s_0_36, 35, -1, 0},
/* 37 */ { 9, s_0_37, 35, -1, 0},
/* 38 */ { 6, s_0_38, -1, -1, 0},
/* 39 */ { 6, s_0_39, -1, -1, 0},
/* 40 */ { 9, s_0_40, 39, -1, 0},
/* 41 */ { 9, s_0_41, 39, -1, 0},
/* 42 */ { 6, s_0_42, -1, -1, 0},
/* 43 */ { 12, s_0_43, 42, -1, 0},
/* 44 */ { 15, s_0_44, 43, -1, 0},
/* 45 */ { 15, s_0_45, 43, -1, 0},
/* 46 */ { 12, s_0_46, 42, -1, 0},
/* 47 */ { 6, s_0_47, -1, -1, 0},
/* 48 */ { 9, s_0_48, 47, -1, 0},
/* 49 */ { 9, s_0_49, 47, -1, 0},
/* 50 */ { 9, s_0_50, 47, -1, 0},
/* 51 */ { 9, s_0_51, 47, -1, 0},
/* 52 */ { 12, s_0_52, 51, -1, r_CONSONANT},
/* 53 */ { 15, s_0_53, 52, -1, 0},
/* 54 */ { 12, s_0_54, 51, -1, r_CONSONANT},
/* 55 */ { 15, s_0_55, 54, -1, 0},
/* 56 */ { 6, s_0_56, -1, -1, 0},
/* 57 */ { 9, s_0_57, 56, -1, 0},
/* 58 */ { 9, s_0_58, 56, -1, 0},
/* 59 */ { 9, s_0_59, 56, -1, 0},
/* 60 */ { 9, s_0_60, 56, -1, 0},
/* 61 */ { 12, s_0_61, 60, -1, r_CONSONANT},
/* 62 */ { 15, s_0_62, 61, -1, 0},
/* 63 */ { 12, s_0_63, 60, -1, r_CONSONANT},
/* 64 */ { 15, s_0_64, 63, -1, 0},
/* 65 */ { 6, s_0_65, -1, -1, 0},
/* 66 */ { 12, s_0_66, 65, -1, 0},
/* 67 */ { 15, s_0_67, 66, -1, 0},
/* 68 */ { 15, s_0_68, 66, -1, 0},
/* 69 */ { 12, s_0_69, 65, -1, 0},
/* 70 */ { 3, s_0_70, -1, -1, 0},
/* 71 */ { 3, s_0_71, -1, -1, 0},
/* 72 */ { 3, s_0_72, -1, -1, 0},
/* 73 */ { 3, s_0_73, -1, -1, 0},
/* 74 */ { 3, s_0_74, -1, -1, 0},
/* 75 */ { 12, s_0_75, 74, -1, 0},
/* 76 */ { 12, s_0_76, 74, -1, 0},
/* 77 */ { 15, s_0_77, 76, -1, 0},
/* 78 */ { 15, s_0_78, 76, -1, 0},
/* 79 */ { 9, s_0_79, 74, -1, 0},
/* 80 */ { 9, s_0_80, 74, -1, 0},
/* 81 */ { 12, s_0_81, 80, -1, 0},
/* 82 */ { 12, s_0_82, 80, -1, 0},
/* 83 */ { 6, s_0_83, 74, -1, r_CONSONANT},
/* 84 */ { 9, s_0_84, 83, -1, 0},
/* 85 */ { 9, s_0_85, 83, -1, 0},
/* 86 */ { 9, s_0_86, 83, -1, 0},
/* 87 */ { 6, s_0_87, 74, -1, r_CONSONANT},
/* 88 */ { 9, s_0_88, 87, -1, 0},
/* 89 */ { 9, s_0_89, 87, -1, 0},
/* 90 */ { 9, s_0_90, 87, -1, 0},
/* 91 */ { 3, s_0_91, -1, -1, 0},
/* 92 */ { 6, s_0_92, 91, -1, 0},
/* 93 */ { 6, s_0_93, 91, -1, 0},
/* 94 */ { 3, s_0_94, -1, -1, 0},
/* 95 */ { 3, s_0_95, -1, -1, 0},
/* 96 */ { 3, s_0_96, -1, -1, 0},
/* 97 */ { 3, s_0_97, -1, -1, 0},
/* 98 */ { 3, s_0_98, -1, -1, 0},
/* 99 */ { 6, s_0_99, 98, -1, 0},
/*100 */ { 6, s_0_100, 98, -1, 0},
/*101 */ { 9, s_0_101, 100, -1, 0},
/*102 */ { 9, s_0_102, 100, -1, 0},
/*103 */ { 6, s_0_103, 98, -1, 0},
/*104 */ { 6, s_0_104, 98, -1, 0},
/*105 */ { 3, s_0_105, -1, -1, 0},
/*106 */ { 6, s_0_106, 105, -1, 0},
/*107 */ { 6, s_0_107, 105, -1, 0},
/*108 */ { 6, s_0_108, -1, -1, r_CONSONANT},
/*109 */ { 9, s_0_109, 108, -1, 0},
/*110 */ { 9, s_0_110, 108, -1, 0},
/*111 */ { 9, s_0_111, 108, -1, 0},
/*112 */ { 3, s_0_112, -1, -1, 0},
/*113 */ { 12, s_0_113, 112, -1, 0},
/*114 */ { 12, s_0_114, 112, -1, 0},
/*115 */ { 15, s_0_115, 114, -1, 0},
/*116 */ { 15, s_0_116, 114, -1, 0},
/*117 */ { 9, s_0_117, 112, -1, 0},
/*118 */ { 9, s_0_118, 112, -1, 0},
/*119 */ { 12, s_0_119, 118, -1, 0},
/*120 */ { 12, s_0_120, 118, -1, 0},
/*121 */ { 6, s_0_121, 112, -1, r_CONSONANT},
/*122 */ { 9, s_0_122, 121, -1, 0},
/*123 */ { 9, s_0_123, 121, -1, 0},
/*124 */ { 9, s_0_124, 121, -1, 0},
/*125 */ { 6, s_0_125, 112, -1, r_CONSONANT},
/*126 */ { 9, s_0_126, 125, -1, 0},
/*127 */ { 9, s_0_127, 125, -1, 0},
/*128 */ { 9, s_0_128, 125, -1, 0},
/*129 */ { 9, s_0_129, 112, -1, 0},
/*130 */ { 9, s_0_130, 112, -1, 0},
/*131 */ { 3, s_0_131, -1, -1, 0}
{ 3, s_0_0, -1, -1, 0},
{ 12, s_0_1, 0, -1, 0},
{ 12, s_0_2, 0, -1, 0},
{ 12, s_0_3, 0, -1, 0},
{ 15, s_0_4, 3, -1, 0},
{ 15, s_0_5, 3, -1, 0},
{ 12, s_0_6, 0, -1, 0},
{ 15, s_0_7, 6, -1, 0},
{ 15, s_0_8, 6, -1, 0},
{ 9, s_0_9, 0, -1, 0},
{ 9, s_0_10, 0, -1, 0},
{ 9, s_0_11, 0, -1, 0},
{ 12, s_0_12, 11, -1, 0},
{ 12, s_0_13, 11, -1, 0},
{ 9, s_0_14, 0, -1, 0},
{ 12, s_0_15, 14, -1, 0},
{ 12, s_0_16, 14, -1, 0},
{ 6, s_0_17, 0, -1, r_CONSONANT},
{ 9, s_0_18, 17, -1, 0},
{ 9, s_0_19, 17, -1, 0},
{ 9, s_0_20, 17, -1, 0},
{ 6, s_0_21, 0, -1, r_CONSONANT},
{ 9, s_0_22, 21, -1, 0},
{ 6, s_0_23, -1, -1, 0},
{ 6, s_0_24, -1, -1, 0},
{ 12, s_0_25, 24, -1, 0},
{ 15, s_0_26, 25, -1, 0},
{ 15, s_0_27, 25, -1, 0},
{ 12, s_0_28, 24, -1, 0},
{ 3, s_0_29, -1, -1, 0},
{ 6, s_0_30, -1, -1, 0},
{ 9, s_0_31, 30, -1, r_CONSONANT},
{ 12, s_0_32, 31, -1, 0},
{ 12, s_0_33, 31, -1, 0},
{ 12, s_0_34, 31, -1, 0},
{ 6, s_0_35, -1, -1, 0},
{ 9, s_0_36, 35, -1, 0},
{ 9, s_0_37, 35, -1, 0},
{ 6, s_0_38, -1, -1, 0},
{ 6, s_0_39, -1, -1, 0},
{ 9, s_0_40, 39, -1, 0},
{ 9, s_0_41, 39, -1, 0},
{ 6, s_0_42, -1, -1, 0},
{ 12, s_0_43, 42, -1, 0},
{ 15, s_0_44, 43, -1, 0},
{ 15, s_0_45, 43, -1, 0},
{ 12, s_0_46, 42, -1, 0},
{ 6, s_0_47, -1, -1, 0},
{ 9, s_0_48, 47, -1, 0},
{ 9, s_0_49, 47, -1, 0},
{ 9, s_0_50, 47, -1, 0},
{ 9, s_0_51, 47, -1, 0},
{ 12, s_0_52, 51, -1, r_CONSONANT},
{ 15, s_0_53, 52, -1, 0},
{ 12, s_0_54, 51, -1, r_CONSONANT},
{ 15, s_0_55, 54, -1, 0},
{ 6, s_0_56, -1, -1, 0},
{ 9, s_0_57, 56, -1, 0},
{ 9, s_0_58, 56, -1, 0},
{ 9, s_0_59, 56, -1, 0},
{ 9, s_0_60, 56, -1, 0},
{ 12, s_0_61, 60, -1, r_CONSONANT},
{ 15, s_0_62, 61, -1, 0},
{ 12, s_0_63, 60, -1, r_CONSONANT},
{ 15, s_0_64, 63, -1, 0},
{ 6, s_0_65, -1, -1, 0},
{ 12, s_0_66, 65, -1, 0},
{ 15, s_0_67, 66, -1, 0},
{ 15, s_0_68, 66, -1, 0},
{ 12, s_0_69, 65, -1, 0},
{ 3, s_0_70, -1, -1, 0},
{ 3, s_0_71, -1, -1, 0},
{ 3, s_0_72, -1, -1, 0},
{ 3, s_0_73, -1, -1, 0},
{ 3, s_0_74, -1, -1, 0},
{ 12, s_0_75, 74, -1, 0},
{ 12, s_0_76, 74, -1, 0},
{ 15, s_0_77, 76, -1, 0},
{ 15, s_0_78, 76, -1, 0},
{ 9, s_0_79, 74, -1, 0},
{ 9, s_0_80, 74, -1, 0},
{ 12, s_0_81, 80, -1, 0},
{ 12, s_0_82, 80, -1, 0},
{ 6, s_0_83, 74, -1, r_CONSONANT},
{ 9, s_0_84, 83, -1, 0},
{ 9, s_0_85, 83, -1, 0},
{ 9, s_0_86, 83, -1, 0},
{ 6, s_0_87, 74, -1, r_CONSONANT},
{ 9, s_0_88, 87, -1, 0},
{ 9, s_0_89, 87, -1, 0},
{ 9, s_0_90, 87, -1, 0},
{ 3, s_0_91, -1, -1, 0},
{ 6, s_0_92, 91, -1, 0},
{ 6, s_0_93, 91, -1, 0},
{ 3, s_0_94, -1, -1, 0},
{ 3, s_0_95, -1, -1, 0},
{ 3, s_0_96, -1, -1, 0},
{ 3, s_0_97, -1, -1, 0},
{ 3, s_0_98, -1, -1, 0},
{ 6, s_0_99, 98, -1, 0},
{ 6, s_0_100, 98, -1, 0},
{ 9, s_0_101, 100, -1, 0},
{ 9, s_0_102, 100, -1, 0},
{ 6, s_0_103, 98, -1, 0},
{ 6, s_0_104, 98, -1, 0},
{ 3, s_0_105, -1, -1, 0},
{ 6, s_0_106, 105, -1, 0},
{ 6, s_0_107, 105, -1, 0},
{ 6, s_0_108, -1, -1, r_CONSONANT},
{ 9, s_0_109, 108, -1, 0},
{ 9, s_0_110, 108, -1, 0},
{ 9, s_0_111, 108, -1, 0},
{ 3, s_0_112, -1, -1, 0},
{ 12, s_0_113, 112, -1, 0},
{ 12, s_0_114, 112, -1, 0},
{ 15, s_0_115, 114, -1, 0},
{ 15, s_0_116, 114, -1, 0},
{ 9, s_0_117, 112, -1, 0},
{ 9, s_0_118, 112, -1, 0},
{ 12, s_0_119, 118, -1, 0},
{ 12, s_0_120, 118, -1, 0},
{ 6, s_0_121, 112, -1, r_CONSONANT},
{ 9, s_0_122, 121, -1, 0},
{ 9, s_0_123, 121, -1, 0},
{ 9, s_0_124, 121, -1, 0},
{ 6, s_0_125, 112, -1, r_CONSONANT},
{ 9, s_0_126, 125, -1, 0},
{ 9, s_0_127, 125, -1, 0},
{ 9, s_0_128, 125, -1, 0},
{ 9, s_0_129, 112, -1, 0},
{ 9, s_0_130, 112, -1, 0},
{ 3, s_0_131, -1, -1, 0}
};
static const unsigned char g_consonant[] = { 255, 255, 255, 255, 159, 0, 0, 0, 248, 7 };
static int r_CONSONANT(struct SN_env * z) { /* backwardmode */
if (in_grouping_b_U(z, g_consonant, 2325, 2399, 0)) return 0; /* grouping consonant, line 129 */
static int r_CONSONANT(struct SN_env * z) {
if (in_grouping_b_U(z, g_consonant, 2325, 2399, 0)) return 0;
return 1;
}
extern int hindi_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c_test1 = z->c; /* test, line 132 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
extern int hindi_UTF_8_stem(struct SN_env * z) {
{ int c_test1 = z->c;
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
if (ret < 0) return 0;
z->c = ret; /* next, line 132 */
z->c = ret;
}
z->I[0] = z->c; /* setmark p, line 132 */
z->I[0] = z->c;
z->c = c_test1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 133 */
z->lb = z->c; z->c = z->l;
{ int mlimit2; /* setlimit, line 139 */
{ int mlimit2;
if (z->c < z->I[0]) return 0;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 139 */
if (!(find_among_b(z, a_0, 132))) { z->lb = mlimit2; return 0; } /* substring, line 139 */
z->bra = z->c; /* ], line 139 */
z->ket = z->c;
if (!(find_among_b(z, a_0, 132))) { z->lb = mlimit2; return 0; }
z->bra = z->c;
z->lb = mlimit2;
}
{ int ret = slice_del(z); /* delete, line 321 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->c = z->lb;
return 1;
}
extern struct SN_env * hindi_UTF_8_create_env(void) { return SN_create_env(0, 1, 0); }
extern struct SN_env * hindi_UTF_8_create_env(void) { return SN_create_env(0, 1); }
extern void hindi_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -46,14 +46,14 @@ static const symbol s_0_7[2] = { 'z', 's' };
static const struct among a_0[8] =
{
/* 0 */ { 2, s_0_0, -1, -1, 0},
/* 1 */ { 3, s_0_1, -1, -1, 0},
/* 2 */ { 2, s_0_2, -1, -1, 0},
/* 3 */ { 2, s_0_3, -1, -1, 0},
/* 4 */ { 2, s_0_4, -1, -1, 0},
/* 5 */ { 2, s_0_5, -1, -1, 0},
/* 6 */ { 2, s_0_6, -1, -1, 0},
/* 7 */ { 2, s_0_7, -1, -1, 0}
{ 2, s_0_0, -1, -1, 0},
{ 3, s_0_1, -1, -1, 0},
{ 2, s_0_2, -1, -1, 0},
{ 2, s_0_3, -1, -1, 0},
{ 2, s_0_4, -1, -1, 0},
{ 2, s_0_5, -1, -1, 0},
{ 2, s_0_6, -1, -1, 0},
{ 2, s_0_7, -1, -1, 0}
};
static const symbol s_1_0[2] = { 0xC3, 0xA1 };
@ -61,8 +61,8 @@ static const symbol s_1_1[2] = { 0xC3, 0xA9 };
static const struct among a_1[2] =
{
/* 0 */ { 2, s_1_0, -1, 1, 0},
/* 1 */ { 2, s_1_1, -1, 2, 0}
{ 2, s_1_0, -1, 1, 0},
{ 2, s_1_1, -1, 2, 0}
};
static const symbol s_2_0[2] = { 'b', 'b' };
@ -91,29 +91,29 @@ static const symbol s_2_22[2] = { 'z', 'z' };
static const struct among a_2[23] =
{
/* 0 */ { 2, s_2_0, -1, -1, 0},
/* 1 */ { 2, s_2_1, -1, -1, 0},
/* 2 */ { 2, s_2_2, -1, -1, 0},
/* 3 */ { 2, s_2_3, -1, -1, 0},
/* 4 */ { 2, s_2_4, -1, -1, 0},
/* 5 */ { 2, s_2_5, -1, -1, 0},
/* 6 */ { 2, s_2_6, -1, -1, 0},
/* 7 */ { 2, s_2_7, -1, -1, 0},
/* 8 */ { 2, s_2_8, -1, -1, 0},
/* 9 */ { 2, s_2_9, -1, -1, 0},
/* 10 */ { 2, s_2_10, -1, -1, 0},
/* 11 */ { 2, s_2_11, -1, -1, 0},
/* 12 */ { 3, s_2_12, -1, -1, 0},
/* 13 */ { 2, s_2_13, -1, -1, 0},
/* 14 */ { 3, s_2_14, -1, -1, 0},
/* 15 */ { 2, s_2_15, -1, -1, 0},
/* 16 */ { 2, s_2_16, -1, -1, 0},
/* 17 */ { 3, s_2_17, -1, -1, 0},
/* 18 */ { 3, s_2_18, -1, -1, 0},
/* 19 */ { 3, s_2_19, -1, -1, 0},
/* 20 */ { 3, s_2_20, -1, -1, 0},
/* 21 */ { 3, s_2_21, -1, -1, 0},
/* 22 */ { 2, s_2_22, -1, -1, 0}
{ 2, s_2_0, -1, -1, 0},
{ 2, s_2_1, -1, -1, 0},
{ 2, s_2_2, -1, -1, 0},
{ 2, s_2_3, -1, -1, 0},
{ 2, s_2_4, -1, -1, 0},
{ 2, s_2_5, -1, -1, 0},
{ 2, s_2_6, -1, -1, 0},
{ 2, s_2_7, -1, -1, 0},
{ 2, s_2_8, -1, -1, 0},
{ 2, s_2_9, -1, -1, 0},
{ 2, s_2_10, -1, -1, 0},
{ 2, s_2_11, -1, -1, 0},
{ 3, s_2_12, -1, -1, 0},
{ 2, s_2_13, -1, -1, 0},
{ 3, s_2_14, -1, -1, 0},
{ 2, s_2_15, -1, -1, 0},
{ 2, s_2_16, -1, -1, 0},
{ 3, s_2_17, -1, -1, 0},
{ 3, s_2_18, -1, -1, 0},
{ 3, s_2_19, -1, -1, 0},
{ 3, s_2_20, -1, -1, 0},
{ 3, s_2_21, -1, -1, 0},
{ 2, s_2_22, -1, -1, 0}
};
static const symbol s_3_0[2] = { 'a', 'l' };
@ -121,8 +121,8 @@ static const symbol s_3_1[2] = { 'e', 'l' };
static const struct among a_3[2] =
{
/* 0 */ { 2, s_3_0, -1, 1, 0},
/* 1 */ { 2, s_3_1, -1, 1, 0}
{ 2, s_3_0, -1, 1, 0},
{ 2, s_3_1, -1, 1, 0}
};
static const symbol s_4_0[2] = { 'b', 'a' };
@ -172,50 +172,50 @@ static const symbol s_4_43[3] = { 'v', 0xC3, 0xA9 };
static const struct among a_4[44] =
{
/* 0 */ { 2, s_4_0, -1, -1, 0},
/* 1 */ { 2, s_4_1, -1, -1, 0},
/* 2 */ { 2, s_4_2, -1, -1, 0},
/* 3 */ { 2, s_4_3, -1, -1, 0},
/* 4 */ { 2, s_4_4, -1, -1, 0},
/* 5 */ { 3, s_4_5, -1, -1, 0},
/* 6 */ { 3, s_4_6, -1, -1, 0},
/* 7 */ { 3, s_4_7, -1, -1, 0},
/* 8 */ { 3, s_4_8, -1, -1, 0},
/* 9 */ { 2, s_4_9, -1, -1, 0},
/* 10 */ { 4, s_4_10, -1, -1, 0},
/* 11 */ { 4, s_4_11, -1, -1, 0},
/* 12 */ { 4, s_4_12, -1, -1, 0},
/* 13 */ { 4, s_4_13, -1, -1, 0},
/* 14 */ { 4, s_4_14, -1, -1, 0},
/* 15 */ { 4, s_4_15, -1, -1, 0},
/* 16 */ { 4, s_4_16, -1, -1, 0},
/* 17 */ { 4, s_4_17, -1, -1, 0},
/* 18 */ { 3, s_4_18, -1, -1, 0},
/* 19 */ { 1, s_4_19, -1, -1, 0},
/* 20 */ { 2, s_4_20, 19, -1, 0},
/* 21 */ { 3, s_4_21, 20, -1, 0},
/* 22 */ { 2, s_4_22, 19, -1, 0},
/* 23 */ { 3, s_4_23, 22, -1, 0},
/* 24 */ { 7, s_4_24, 22, -1, 0},
/* 25 */ { 2, s_4_25, 19, -1, 0},
/* 26 */ { 3, s_4_26, 19, -1, 0},
/* 27 */ { 5, s_4_27, -1, -1, 0},
/* 28 */ { 3, s_4_28, -1, -1, 0},
/* 29 */ { 1, s_4_29, -1, -1, 0},
/* 30 */ { 2, s_4_30, 29, -1, 0},
/* 31 */ { 2, s_4_31, 29, -1, 0},
/* 32 */ { 5, s_4_32, 29, -1, 0},
/* 33 */ { 7, s_4_33, 32, -1, 0},
/* 34 */ { 7, s_4_34, 32, -1, 0},
/* 35 */ { 7, s_4_35, 32, -1, 0},
/* 36 */ { 2, s_4_36, 29, -1, 0},
/* 37 */ { 4, s_4_37, 29, -1, 0},
/* 38 */ { 3, s_4_38, 29, -1, 0},
/* 39 */ { 3, s_4_39, -1, -1, 0},
/* 40 */ { 3, s_4_40, -1, -1, 0},
/* 41 */ { 4, s_4_41, -1, -1, 0},
/* 42 */ { 3, s_4_42, -1, -1, 0},
/* 43 */ { 3, s_4_43, -1, -1, 0}
{ 2, s_4_0, -1, -1, 0},
{ 2, s_4_1, -1, -1, 0},
{ 2, s_4_2, -1, -1, 0},
{ 2, s_4_3, -1, -1, 0},
{ 2, s_4_4, -1, -1, 0},
{ 3, s_4_5, -1, -1, 0},
{ 3, s_4_6, -1, -1, 0},
{ 3, s_4_7, -1, -1, 0},
{ 3, s_4_8, -1, -1, 0},
{ 2, s_4_9, -1, -1, 0},
{ 4, s_4_10, -1, -1, 0},
{ 4, s_4_11, -1, -1, 0},
{ 4, s_4_12, -1, -1, 0},
{ 4, s_4_13, -1, -1, 0},
{ 4, s_4_14, -1, -1, 0},
{ 4, s_4_15, -1, -1, 0},
{ 4, s_4_16, -1, -1, 0},
{ 4, s_4_17, -1, -1, 0},
{ 3, s_4_18, -1, -1, 0},
{ 1, s_4_19, -1, -1, 0},
{ 2, s_4_20, 19, -1, 0},
{ 3, s_4_21, 20, -1, 0},
{ 2, s_4_22, 19, -1, 0},
{ 3, s_4_23, 22, -1, 0},
{ 7, s_4_24, 22, -1, 0},
{ 2, s_4_25, 19, -1, 0},
{ 3, s_4_26, 19, -1, 0},
{ 5, s_4_27, -1, -1, 0},
{ 3, s_4_28, -1, -1, 0},
{ 1, s_4_29, -1, -1, 0},
{ 2, s_4_30, 29, -1, 0},
{ 2, s_4_31, 29, -1, 0},
{ 5, s_4_32, 29, -1, 0},
{ 7, s_4_33, 32, -1, 0},
{ 7, s_4_34, 32, -1, 0},
{ 7, s_4_35, 32, -1, 0},
{ 2, s_4_36, 29, -1, 0},
{ 4, s_4_37, 29, -1, 0},
{ 3, s_4_38, 29, -1, 0},
{ 3, s_4_39, -1, -1, 0},
{ 3, s_4_40, -1, -1, 0},
{ 4, s_4_41, -1, -1, 0},
{ 3, s_4_42, -1, -1, 0},
{ 3, s_4_43, -1, -1, 0}
};
static const symbol s_5_0[3] = { 0xC3, 0xA1, 'n' };
@ -224,9 +224,9 @@ static const symbol s_5_2[8] = { 0xC3, 0xA1, 'n', 'k', 0xC3, 0xA9, 'n', 't' };
static const struct among a_5[3] =
{
/* 0 */ { 3, s_5_0, -1, 2, 0},
/* 1 */ { 3, s_5_1, -1, 1, 0},
/* 2 */ { 8, s_5_2, -1, 2, 0}
{ 3, s_5_0, -1, 2, 0},
{ 3, s_5_1, -1, 1, 0},
{ 8, s_5_2, -1, 2, 0}
};
static const symbol s_6_0[4] = { 's', 't', 'u', 'l' };
@ -238,12 +238,12 @@ static const symbol s_6_5[7] = { 0xC3, 0xA9, 's', 't', 0xC3, 0xBC, 'l' };
static const struct among a_6[6] =
{
/* 0 */ { 4, s_6_0, -1, 1, 0},
/* 1 */ { 5, s_6_1, 0, 1, 0},
/* 2 */ { 6, s_6_2, 0, 2, 0},
/* 3 */ { 5, s_6_3, -1, 1, 0},
/* 4 */ { 6, s_6_4, 3, 1, 0},
/* 5 */ { 7, s_6_5, 3, 3, 0}
{ 4, s_6_0, -1, 1, 0},
{ 5, s_6_1, 0, 1, 0},
{ 6, s_6_2, 0, 2, 0},
{ 5, s_6_3, -1, 1, 0},
{ 6, s_6_4, 3, 1, 0},
{ 7, s_6_5, 3, 3, 0}
};
static const symbol s_7_0[2] = { 0xC3, 0xA1 };
@ -251,8 +251,8 @@ static const symbol s_7_1[2] = { 0xC3, 0xA9 };
static const struct among a_7[2] =
{
/* 0 */ { 2, s_7_0, -1, 1, 0},
/* 1 */ { 2, s_7_1, -1, 1, 0}
{ 2, s_7_0, -1, 1, 0},
{ 2, s_7_1, -1, 1, 0}
};
static const symbol s_8_0[1] = { 'k' };
@ -265,13 +265,13 @@ static const symbol s_8_6[3] = { 0xC3, 0xB6, 'k' };
static const struct among a_8[7] =
{
/* 0 */ { 1, s_8_0, -1, 3, 0},
/* 1 */ { 2, s_8_1, 0, 3, 0},
/* 2 */ { 2, s_8_2, 0, 3, 0},
/* 3 */ { 2, s_8_3, 0, 3, 0},
/* 4 */ { 3, s_8_4, 0, 1, 0},
/* 5 */ { 3, s_8_5, 0, 2, 0},
/* 6 */ { 3, s_8_6, 0, 3, 0}
{ 1, s_8_0, -1, 3, 0},
{ 2, s_8_1, 0, 3, 0},
{ 2, s_8_2, 0, 3, 0},
{ 2, s_8_3, 0, 3, 0},
{ 3, s_8_4, 0, 1, 0},
{ 3, s_8_5, 0, 2, 0},
{ 3, s_8_6, 0, 3, 0}
};
static const symbol s_9_0[3] = { 0xC3, 0xA9, 'i' };
@ -289,18 +289,18 @@ static const symbol s_9_11[4] = { 0xC3, 0xA9, 0xC3, 0xA9 };
static const struct among a_9[12] =
{
/* 0 */ { 3, s_9_0, -1, 1, 0},
/* 1 */ { 5, s_9_1, 0, 3, 0},
/* 2 */ { 5, s_9_2, 0, 2, 0},
/* 3 */ { 2, s_9_3, -1, 1, 0},
/* 4 */ { 3, s_9_4, 3, 1, 0},
/* 5 */ { 4, s_9_5, 4, 1, 0},
/* 6 */ { 4, s_9_6, 4, 1, 0},
/* 7 */ { 4, s_9_7, 4, 1, 0},
/* 8 */ { 5, s_9_8, 4, 3, 0},
/* 9 */ { 5, s_9_9, 4, 2, 0},
/* 10 */ { 5, s_9_10, 4, 1, 0},
/* 11 */ { 4, s_9_11, 3, 2, 0}
{ 3, s_9_0, -1, 1, 0},
{ 5, s_9_1, 0, 3, 0},
{ 5, s_9_2, 0, 2, 0},
{ 2, s_9_3, -1, 1, 0},
{ 3, s_9_4, 3, 1, 0},
{ 4, s_9_5, 4, 1, 0},
{ 4, s_9_6, 4, 1, 0},
{ 4, s_9_7, 4, 1, 0},
{ 5, s_9_8, 4, 3, 0},
{ 5, s_9_9, 4, 2, 0},
{ 5, s_9_10, 4, 1, 0},
{ 4, s_9_11, 3, 2, 0}
};
static const symbol s_10_0[1] = { 'a' };
@ -337,37 +337,37 @@ static const symbol s_10_30[2] = { 0xC3, 0xA9 };
static const struct among a_10[31] =
{
/* 0 */ { 1, s_10_0, -1, 1, 0},
/* 1 */ { 2, s_10_1, 0, 1, 0},
/* 2 */ { 1, s_10_2, -1, 1, 0},
/* 3 */ { 2, s_10_3, 2, 1, 0},
/* 4 */ { 2, s_10_4, 2, 1, 0},
/* 5 */ { 2, s_10_5, 2, 1, 0},
/* 6 */ { 3, s_10_6, 2, 2, 0},
/* 7 */ { 3, s_10_7, 2, 3, 0},
/* 8 */ { 3, 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 */ { 4, s_10_13, 11, 2, 0},
/* 14 */ { 4, s_10_14, 11, 3, 0},
/* 15 */ { 4, s_10_15, 11, 1, 0},
/* 16 */ { 2, s_10_16, -1, 1, 0},
/* 17 */ { 3, s_10_17, 16, 1, 0},
/* 18 */ { 5, s_10_18, 17, 2, 0},
/* 19 */ { 3, s_10_19, -1, 1, 0},
/* 20 */ { 4, s_10_20, 19, 1, 0},
/* 21 */ { 6, 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 */ { 3, s_10_26, 22, 2, 0},
/* 27 */ { 3, s_10_27, 22, 3, 0},
/* 28 */ { 1, s_10_28, -1, 1, 0},
/* 29 */ { 2, s_10_29, -1, 2, 0},
/* 30 */ { 2, s_10_30, -1, 3, 0}
{ 1, s_10_0, -1, 1, 0},
{ 2, s_10_1, 0, 1, 0},
{ 1, s_10_2, -1, 1, 0},
{ 2, s_10_3, 2, 1, 0},
{ 2, s_10_4, 2, 1, 0},
{ 2, s_10_5, 2, 1, 0},
{ 3, s_10_6, 2, 2, 0},
{ 3, s_10_7, 2, 3, 0},
{ 3, s_10_8, 2, 1, 0},
{ 1, s_10_9, -1, 1, 0},
{ 2, s_10_10, 9, 1, 0},
{ 2, s_10_11, -1, 1, 0},
{ 3, s_10_12, 11, 1, 0},
{ 4, s_10_13, 11, 2, 0},
{ 4, s_10_14, 11, 3, 0},
{ 4, s_10_15, 11, 1, 0},
{ 2, s_10_16, -1, 1, 0},
{ 3, s_10_17, 16, 1, 0},
{ 5, s_10_18, 17, 2, 0},
{ 3, s_10_19, -1, 1, 0},
{ 4, s_10_20, 19, 1, 0},
{ 6, s_10_21, 20, 3, 0},
{ 1, s_10_22, -1, 1, 0},
{ 2, s_10_23, 22, 1, 0},
{ 2, s_10_24, 22, 1, 0},
{ 2, s_10_25, 22, 1, 0},
{ 3, s_10_26, 22, 2, 0},
{ 3, s_10_27, 22, 3, 0},
{ 1, s_10_28, -1, 1, 0},
{ 2, s_10_29, -1, 2, 0},
{ 2, s_10_30, -1, 3, 0}
};
static const symbol s_11_0[2] = { 'i', 'd' };
@ -415,48 +415,48 @@ static const symbol s_11_41[4] = { 0xC3, 0xA9, 'i', 'm' };
static const struct among a_11[42] =
{
/* 0 */ { 2, s_11_0, -1, 1, 0},
/* 1 */ { 3, s_11_1, 0, 1, 0},
/* 2 */ { 4, s_11_2, 1, 1, 0},
/* 3 */ { 3, s_11_3, 0, 1, 0},
/* 4 */ { 4, s_11_4, 3, 1, 0},
/* 5 */ { 4, s_11_5, 0, 2, 0},
/* 6 */ { 4, 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 */ { 3, s_11_12, 7, 2, 0},
/* 13 */ { 3, 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 */ { 6, 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 */ { 4, s_11_23, 18, 2, 0},
/* 24 */ { 4, 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 */ { 5, s_11_30, 25, 2, 0},
/* 31 */ { 5, s_11_31, 25, 3, 0},
/* 32 */ { 5, s_11_32, -1, 1, 0},
/* 33 */ { 6, s_11_33, 32, 1, 0},
/* 34 */ { 6, s_11_34, -1, 2, 0},
/* 35 */ { 2, s_11_35, -1, 1, 0},
/* 36 */ { 3, s_11_36, 35, 1, 0},
/* 37 */ { 4, s_11_37, 36, 1, 0},
/* 38 */ { 3, s_11_38, 35, 1, 0},
/* 39 */ { 4, s_11_39, 38, 1, 0},
/* 40 */ { 4, s_11_40, 35, 2, 0},
/* 41 */ { 4, s_11_41, 35, 3, 0}
{ 2, s_11_0, -1, 1, 0},
{ 3, s_11_1, 0, 1, 0},
{ 4, s_11_2, 1, 1, 0},
{ 3, s_11_3, 0, 1, 0},
{ 4, s_11_4, 3, 1, 0},
{ 4, s_11_5, 0, 2, 0},
{ 4, s_11_6, 0, 3, 0},
{ 1, s_11_7, -1, 1, 0},
{ 2, s_11_8, 7, 1, 0},
{ 3, s_11_9, 8, 1, 0},
{ 2, s_11_10, 7, 1, 0},
{ 3, s_11_11, 10, 1, 0},
{ 3, s_11_12, 7, 2, 0},
{ 3, s_11_13, 7, 3, 0},
{ 4, s_11_14, -1, 1, 0},
{ 5, s_11_15, 14, 1, 0},
{ 6, s_11_16, 15, 1, 0},
{ 6, s_11_17, 14, 3, 0},
{ 2, s_11_18, -1, 1, 0},
{ 3, s_11_19, 18, 1, 0},
{ 4, s_11_20, 19, 1, 0},
{ 3, s_11_21, 18, 1, 0},
{ 4, s_11_22, 21, 1, 0},
{ 4, s_11_23, 18, 2, 0},
{ 4, s_11_24, 18, 3, 0},
{ 3, s_11_25, -1, 1, 0},
{ 4, s_11_26, 25, 1, 0},
{ 5, s_11_27, 26, 1, 0},
{ 4, s_11_28, 25, 1, 0},
{ 5, s_11_29, 28, 1, 0},
{ 5, s_11_30, 25, 2, 0},
{ 5, s_11_31, 25, 3, 0},
{ 5, s_11_32, -1, 1, 0},
{ 6, s_11_33, 32, 1, 0},
{ 6, s_11_34, -1, 2, 0},
{ 2, s_11_35, -1, 1, 0},
{ 3, s_11_36, 35, 1, 0},
{ 4, s_11_37, 36, 1, 0},
{ 3, s_11_38, 35, 1, 0},
{ 4, s_11_39, 38, 1, 0},
{ 4, s_11_40, 35, 2, 0},
{ 4, s_11_41, 35, 3, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 36, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1 };
@ -476,62 +476,62 @@ static const symbol s_11[] = { 'e' };
static const symbol s_12[] = { 'a' };
static const symbol s_13[] = { 'e' };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 46 */
{ int c1 = z->c; /* or, line 51 */
if (in_grouping_U(z, g_v, 97, 369, 0)) goto lab1; /* grouping v, line 48 */
if (in_grouping_U(z, g_v, 97, 369, 1) < 0) goto lab1; /* goto */ /* non v, line 48 */
{ int c2 = z->c; /* or, line 49 */
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3; /* among, line 49 */
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
{ int c1 = z->c;
if (in_grouping_U(z, g_v, 97, 369, 0)) goto lab1;
if (in_grouping_U(z, g_v, 97, 369, 1) < 0) goto lab1;
{ int c2 = z->c;
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3;
if (!(find_among(z, a_0, 8))) goto lab3;
goto lab2;
lab3:
z->c = c2;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
if (ret < 0) goto lab1;
z->c = ret; /* next, line 49 */
z->c = ret;
}
}
lab2:
z->I[0] = z->c; /* setmark p1, line 50 */
z->I[0] = z->c;
goto lab0;
lab1:
z->c = c1;
if (out_grouping_U(z, g_v, 97, 369, 0)) return 0; /* non v, line 53 */
{ /* gopast */ /* grouping v, line 53 */
if (out_grouping_U(z, g_v, 97, 369, 0)) return 0;
{
int ret = out_grouping_U(z, g_v, 97, 369, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 53 */
z->I[0] = z->c;
}
lab0:
return 1;
}
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 58 */
static int r_R1(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_v_ending(struct SN_env * z) { /* backwardmode */
static int r_v_ending(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 61 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0; /* substring, line 61 */
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
among_var = find_among_b(z, a_1, 2);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 61 */
{ int ret = r_R1(z); /* call R1, line 61 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 61 */
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 62 */
{ int ret = slice_from_s(z, 1, s_0);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 63 */
{ int ret = slice_from_s(z, 1, s_1);
if (ret < 0) return ret;
}
break;
@ -539,86 +539,86 @@ static int r_v_ending(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_double(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 68 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 68 */
static int r_double(struct SN_env * z) {
{ int m_test1 = z->l - z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_2, 23))) return 0;
z->c = z->l - m_test1;
}
return 1;
}
static int r_undouble(struct SN_env * z) { /* backwardmode */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
if (ret < 0) return 0;
z->c = ret; /* next, line 73 */
}
z->ket = z->c; /* [, line 73 */
{ int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 1); /* hop, line 73 */
static int r_undouble(struct SN_env * z) {
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
if (ret < 0) return 0;
z->c = ret;
}
z->bra = z->c; /* ], line 73 */
{ int ret = slice_del(z); /* delete, line 73 */
z->ket = z->c;
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
if (ret < 0) return 0;
z->c = ret;
}
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_instrum(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 77 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 77 */
static int r_instrum(struct SN_env * z) {
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
if (!(find_among_b(z, a_3, 2))) return 0;
z->bra = z->c; /* ], line 77 */
{ int ret = r_R1(z); /* call R1, line 77 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = r_double(z); /* call double, line 78 */
{ int ret = r_double(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 81 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int ret = r_undouble(z); /* call undouble, line 82 */
{ int ret = r_undouble(z);
if (ret <= 0) return ret;
}
return 1;
}
static int r_case(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 87 */
if (!(find_among_b(z, a_4, 44))) return 0; /* substring, line 87 */
z->bra = z->c; /* ], line 87 */
{ int ret = r_R1(z); /* call R1, line 87 */
static int r_case(struct SN_env * z) {
z->ket = z->c;
if (!(find_among_b(z, a_4, 44))) return 0;
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 111 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int ret = r_v_ending(z); /* call v_ending, line 112 */
{ int ret = r_v_ending(z);
if (ret <= 0) return ret;
}
return 1;
}
static int r_case_special(struct SN_env * z) { /* backwardmode */
static int r_case_special(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 116 */
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0; /* substring, line 116 */
z->ket = z->c;
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0;
among_var = find_among_b(z, a_5, 3);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 116 */
{ int ret = r_R1(z); /* call R1, line 116 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 116 */
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 117 */
{ int ret = slice_from_s(z, 1, s_2);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 118 */
{ int ret = slice_from_s(z, 1, s_3);
if (ret < 0) return ret;
}
break;
@ -626,29 +626,29 @@ static int r_case_special(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_case_other(struct SN_env * z) { /* backwardmode */
static int r_case_other(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 124 */
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 124 */
z->ket = z->c;
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0;
among_var = find_among_b(z, a_6, 6);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 124 */
{ int ret = r_R1(z); /* call R1, line 124 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 124 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 125 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 127 */
{ int ret = slice_from_s(z, 1, s_4);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 128 */
{ int ret = slice_from_s(z, 1, s_5);
if (ret < 0) return ret;
}
break;
@ -656,49 +656,49 @@ static int r_case_other(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_factive(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 133 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0; /* substring, line 133 */
static int r_factive(struct SN_env * z) {
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
if (!(find_among_b(z, a_7, 2))) return 0;
z->bra = z->c; /* ], line 133 */
{ int ret = r_R1(z); /* call R1, line 133 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = r_double(z); /* call double, line 134 */
{ int ret = r_double(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 137 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int ret = r_undouble(z); /* call undouble, line 138 */
{ int ret = r_undouble(z);
if (ret <= 0) return ret;
}
return 1;
}
static int r_plural(struct SN_env * z) { /* backwardmode */
static int r_plural(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 142 */
if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0; /* substring, line 142 */
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0;
among_var = find_among_b(z, a_8, 7);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 142 */
{ int ret = r_R1(z); /* call R1, line 142 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 142 */
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 143 */
{ int ret = slice_from_s(z, 1, s_6);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 144 */
{ int ret = slice_from_s(z, 1, s_7);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 145 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -706,29 +706,29 @@ static int r_plural(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_owned(struct SN_env * z) { /* backwardmode */
static int r_owned(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 154 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 169)) return 0; /* substring, line 154 */
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 169)) return 0;
among_var = find_among_b(z, a_9, 12);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 154 */
{ int ret = r_R1(z); /* call R1, line 154 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 154 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 155 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 156 */
{ int ret = slice_from_s(z, 1, s_8);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 157 */
{ int ret = slice_from_s(z, 1, s_9);
if (ret < 0) return ret;
}
break;
@ -736,28 +736,28 @@ static int r_owned(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_sing_owner(struct SN_env * z) { /* backwardmode */
static int r_sing_owner(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 168 */
among_var = find_among_b(z, a_10, 31); /* substring, line 168 */
z->ket = z->c;
among_var = find_among_b(z, a_10, 31);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 168 */
{ int ret = r_R1(z); /* call R1, line 168 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 168 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 169 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 170 */
{ int ret = slice_from_s(z, 1, s_10);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_11); /* <-, line 171 */
{ int ret = slice_from_s(z, 1, s_11);
if (ret < 0) return ret;
}
break;
@ -765,29 +765,29 @@ static int r_sing_owner(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_plur_owner(struct SN_env * z) { /* backwardmode */
static int r_plur_owner(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 193 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 193 */
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_11, 42);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 193 */
{ int ret = r_R1(z); /* call R1, line 193 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 193 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 194 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_12); /* <-, line 195 */
{ int ret = slice_from_s(z, 1, s_12);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_13); /* <-, line 196 */
{ int ret = slice_from_s(z, 1, s_13);
if (ret < 0) return ret;
}
break;
@ -795,65 +795,65 @@ static int r_plur_owner(struct SN_env * z) { /* backwardmode */
return 1;
}
extern int hungarian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 229 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 229 */
extern int hungarian_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 230 */
z->lb = z->c; z->c = z->l;
{ int m2 = z->l - z->c; (void)m2; /* do, line 231 */
{ int ret = r_instrum(z); /* call instrum, line 231 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_instrum(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 232 */
{ int ret = r_case(z); /* call case, line 232 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_case(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 233 */
{ int ret = r_case_special(z); /* call case_special, line 233 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_case_special(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 234 */
{ int ret = r_case_other(z); /* call case_other, line 234 */
{ int m5 = z->l - z->c; (void)m5;
{ int ret = r_case_other(z);
if (ret < 0) return ret;
}
z->c = z->l - m5;
}
{ int m6 = z->l - z->c; (void)m6; /* do, line 235 */
{ int ret = r_factive(z); /* call factive, line 235 */
{ int m6 = z->l - z->c; (void)m6;
{ int ret = r_factive(z);
if (ret < 0) return ret;
}
z->c = z->l - m6;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 236 */
{ int ret = r_owned(z); /* call owned, line 236 */
{ int m7 = z->l - z->c; (void)m7;
{ int ret = r_owned(z);
if (ret < 0) return ret;
}
z->c = z->l - m7;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 237 */
{ int ret = r_sing_owner(z); /* call sing_owner, line 237 */
{ int m8 = z->l - z->c; (void)m8;
{ int ret = r_sing_owner(z);
if (ret < 0) return ret;
}
z->c = z->l - m8;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 238 */
{ int ret = r_plur_owner(z); /* call plur_owner, line 238 */
{ int m9 = z->l - z->c; (void)m9;
{ int ret = r_plur_owner(z);
if (ret < 0) return ret;
}
z->c = z->l - m9;
}
{ int m10 = z->l - z->c; (void)m10; /* do, line 239 */
{ int ret = r_plural(z); /* call plural, line 239 */
{ int m10 = z->l - z->c; (void)m10;
{ int ret = r_plural(z);
if (ret < 0) return ret;
}
z->c = z->l - m10;
@ -862,7 +862,7 @@ extern int hungarian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * hungarian_UTF_8_create_env(void) { return SN_create_env(0, 1, 0); }
extern struct SN_env * hungarian_UTF_8_create_env(void) { return SN_create_env(0, 1); }
extern void hungarian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -37,9 +37,9 @@ static const symbol s_0_2[3] = { 'p', 'u', 'n' };
static const struct among a_0[3] =
{
/* 0 */ { 3, s_0_0, -1, 1, 0},
/* 1 */ { 3, s_0_1, -1, 1, 0},
/* 2 */ { 3, s_0_2, -1, 1, 0}
{ 3, s_0_0, -1, 1, 0},
{ 3, s_0_1, -1, 1, 0},
{ 3, s_0_2, -1, 1, 0}
};
static const symbol s_1_0[3] = { 'n', 'y', 'a' };
@ -48,9 +48,9 @@ static const symbol s_1_2[2] = { 'm', 'u' };
static const struct among a_1[3] =
{
/* 0 */ { 3, s_1_0, -1, 1, 0},
/* 1 */ { 2, s_1_1, -1, 1, 0},
/* 2 */ { 2, s_1_2, -1, 1, 0}
{ 3, s_1_0, -1, 1, 0},
{ 2, s_1_1, -1, 1, 0},
{ 2, s_1_2, -1, 1, 0}
};
static const symbol s_2_0[1] = { 'i' };
@ -59,9 +59,9 @@ static const symbol s_2_2[3] = { 'k', 'a', 'n' };
static const struct among a_2[3] =
{
/* 0 */ { 1, s_2_0, -1, 1, r_SUFFIX_I_OK},
/* 1 */ { 2, s_2_1, -1, 1, r_SUFFIX_AN_OK},
/* 2 */ { 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK}
{ 1, s_2_0, -1, 1, r_SUFFIX_I_OK},
{ 2, s_2_1, -1, 1, r_SUFFIX_AN_OK},
{ 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK}
};
static const symbol s_3_0[2] = { 'd', 'i' };
@ -79,18 +79,18 @@ static const symbol s_3_11[3] = { 't', 'e', 'r' };
static const struct among a_3[12] =
{
/* 0 */ { 2, s_3_0, -1, 1, 0},
/* 1 */ { 2, s_3_1, -1, 2, 0},
/* 2 */ { 2, s_3_2, -1, 1, 0},
/* 3 */ { 3, s_3_3, 2, 5, 0},
/* 4 */ { 3, s_3_4, 2, 1, 0},
/* 5 */ { 4, s_3_5, 4, 1, 0},
/* 6 */ { 4, s_3_6, 4, 3, r_VOWEL},
/* 7 */ { 3, s_3_7, -1, 6, 0},
/* 8 */ { 3, s_3_8, -1, 2, 0},
/* 9 */ { 4, s_3_9, 8, 2, 0},
/* 10 */ { 4, s_3_10, 8, 4, r_VOWEL},
/* 11 */ { 3, s_3_11, -1, 1, 0}
{ 2, s_3_0, -1, 1, 0},
{ 2, s_3_1, -1, 2, 0},
{ 2, s_3_2, -1, 1, 0},
{ 3, s_3_3, 2, 5, 0},
{ 3, s_3_4, 2, 1, 0},
{ 4, s_3_5, 4, 1, 0},
{ 4, s_3_6, 4, 3, r_VOWEL},
{ 3, s_3_7, -1, 6, 0},
{ 3, s_3_8, -1, 2, 0},
{ 4, s_3_9, 8, 2, 0},
{ 4, s_3_10, 8, 4, r_VOWEL},
{ 3, s_3_11, -1, 1, 0}
};
static const symbol s_4_0[2] = { 'b', 'e' };
@ -102,12 +102,12 @@ static const symbol s_4_5[3] = { 'p', 'e', 'r' };
static const struct among a_4[6] =
{
/* 0 */ { 2, s_4_0, -1, 3, r_KER},
/* 1 */ { 7, s_4_1, 0, 4, 0},
/* 2 */ { 3, s_4_2, 0, 3, 0},
/* 3 */ { 2, s_4_3, -1, 1, 0},
/* 4 */ { 7, s_4_4, 3, 2, 0},
/* 5 */ { 3, s_4_5, 3, 1, 0}
{ 2, s_4_0, -1, 3, r_KER},
{ 7, s_4_1, 0, 4, 0},
{ 3, s_4_2, 0, 3, 0},
{ 2, s_4_3, -1, 1, 0},
{ 7, s_4_4, 3, 2, 0},
{ 3, s_4_5, 3, 1, 0}
};
static const unsigned char g_vowel[] = { 17, 65, 16 };
@ -120,46 +120,46 @@ static const symbol s_4[] = { 'p' };
static const symbol s_5[] = { 'a', 'j', 'a', 'r' };
static const symbol s_6[] = { 'a', 'j', 'a', 'r' };
static int r_remove_particle(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 51 */
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0; /* substring, line 51 */
static int r_remove_particle(struct SN_env * z) {
z->ket = z->c;
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0;
if (!(find_among_b(z, a_0, 3))) return 0;
z->bra = z->c; /* ], line 51 */
{ int ret = slice_del(z); /* delete, line 52 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[0] -= 1; /* $measure -= <integer expression>, line 52 */
z->I[1] -= 1;
return 1;
}
static int r_remove_possessive_pronoun(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 57 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0; /* substring, line 57 */
static int r_remove_possessive_pronoun(struct SN_env * z) {
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0;
if (!(find_among_b(z, a_1, 3))) return 0;
z->bra = z->c; /* ], line 57 */
{ int ret = slice_del(z); /* delete, line 58 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[0] -= 1; /* $measure -= <integer expression>, line 58 */
z->I[1] -= 1;
return 1;
}
static int r_SUFFIX_KAN_OK(struct SN_env * z) { /* backwardmode */
/* and, line 85 */
if (!(z->I[1] != 3)) return 0; /* $(<integer expression> != <integer expression>), line 85 */
if (!(z->I[1] != 2)) return 0; /* $(<integer expression> != <integer expression>), line 85 */
static int r_SUFFIX_KAN_OK(struct SN_env * z) {
if (!(z->I[0] != 3)) return 0;
if (!(z->I[0] != 2)) return 0;
return 1;
}
static int r_SUFFIX_AN_OK(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] != 1)) return 0; /* $(<integer expression> != <integer expression>), line 89 */
static int r_SUFFIX_AN_OK(struct SN_env * z) {
if (!(z->I[0] != 1)) return 0;
return 1;
}
static int r_SUFFIX_I_OK(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= 2)) return 0; /* $(<integer expression> <= <integer expression>), line 93 */
{ int m1 = z->l - z->c; (void)m1; /* not, line 128 */
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0; /* literal, line 128 */
static int r_SUFFIX_I_OK(struct SN_env * z) {
if (!(z->I[0] <= 2)) return 0;
{ int m1 = z->l - z->c; (void)m1;
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0;
z->c--;
return 0;
lab0:
@ -168,100 +168,100 @@ static int r_SUFFIX_I_OK(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_remove_suffix(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 132 */
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0; /* substring, line 132 */
static int r_remove_suffix(struct SN_env * z) {
z->ket = z->c;
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0;
if (!(find_among_b(z, a_2, 3))) return 0;
z->bra = z->c; /* ], line 132 */
{ int ret = slice_del(z); /* delete, line 134 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[0] -= 1; /* $measure -= <integer expression>, line 134 */
z->I[1] -= 1;
return 1;
}
static int r_VOWEL(struct SN_env * z) { /* forwardmode */
if (in_grouping_U(z, g_vowel, 97, 117, 0)) return 0; /* grouping vowel, line 141 */
static int r_VOWEL(struct SN_env * z) {
if (in_grouping_U(z, g_vowel, 97, 117, 0)) return 0;
return 1;
}
static int r_KER(struct SN_env * z) { /* forwardmode */
if (out_grouping_U(z, g_vowel, 97, 117, 0)) return 0; /* non vowel, line 143 */
if (!(eq_s(z, 2, s_0))) return 0; /* literal, line 143 */
static int r_KER(struct SN_env * z) {
if (out_grouping_U(z, g_vowel, 97, 117, 0)) return 0;
if (!(eq_s(z, 2, s_0))) return 0;
return 1;
}
static int r_remove_first_order_prefix(struct SN_env * z) { /* forwardmode */
static int r_remove_first_order_prefix(struct SN_env * z) {
int among_var;
z->bra = z->c; /* [, line 146 */
if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0; /* substring, line 146 */
z->bra = z->c;
if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0;
among_var = find_among(z, a_3, 12);
if (!(among_var)) return 0;
z->ket = z->c; /* ], line 146 */
switch (among_var) { /* among, line 146 */
z->ket = z->c;
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 147 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[1] = 1; /* $prefix = <integer expression>, line 147 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 147 */
z->I[0] = 1;
z->I[1] -= 1;
break;
case 2:
{ int ret = slice_del(z); /* delete, line 148 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[1] = 3; /* $prefix = <integer expression>, line 148 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 148 */
z->I[0] = 3;
z->I[1] -= 1;
break;
case 3:
z->I[1] = 1; /* $prefix = <integer expression>, line 149 */
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 149 */
z->I[0] = 1;
{ int ret = slice_from_s(z, 1, s_1);
if (ret < 0) return ret;
}
z->I[0] -= 1; /* $measure -= <integer expression>, line 149 */
z->I[1] -= 1;
break;
case 4:
z->I[1] = 3; /* $prefix = <integer expression>, line 150 */
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 150 */
z->I[0] = 3;
{ int ret = slice_from_s(z, 1, s_2);
if (ret < 0) return ret;
}
z->I[0] -= 1; /* $measure -= <integer expression>, line 150 */
z->I[1] -= 1;
break;
case 5:
z->I[1] = 1; /* $prefix = <integer expression>, line 151 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 151 */
{ int c1 = z->c; /* or, line 151 */
{ int c2 = z->c; /* and, line 151 */
if (in_grouping_U(z, g_vowel, 97, 117, 0)) goto lab1; /* grouping vowel, line 151 */
z->I[0] = 1;
z->I[1] -= 1;
{ int c1 = z->c;
{ int c2 = z->c;
if (in_grouping_U(z, g_vowel, 97, 117, 0)) goto lab1;
z->c = c2;
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 151 */
{ int ret = slice_from_s(z, 1, s_3);
if (ret < 0) return ret;
}
}
goto lab0;
lab1:
z->c = c1;
{ int ret = slice_del(z); /* delete, line 151 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
}
lab0:
break;
case 6:
z->I[1] = 3; /* $prefix = <integer expression>, line 152 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 152 */
{ int c3 = z->c; /* or, line 152 */
{ int c4 = z->c; /* and, line 152 */
if (in_grouping_U(z, g_vowel, 97, 117, 0)) goto lab3; /* grouping vowel, line 152 */
z->I[0] = 3;
z->I[1] -= 1;
{ int c3 = z->c;
{ int c4 = z->c;
if (in_grouping_U(z, g_vowel, 97, 117, 0)) goto lab3;
z->c = c4;
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 152 */
{ int ret = slice_from_s(z, 1, s_4);
if (ret < 0) return ret;
}
}
goto lab2;
lab3:
z->c = c3;
{ int ret = slice_del(z); /* delete, line 152 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
}
@ -271,57 +271,56 @@ static int r_remove_first_order_prefix(struct SN_env * z) { /* forwardmode */
return 1;
}
static int r_remove_second_order_prefix(struct SN_env * z) { /* forwardmode */
static int r_remove_second_order_prefix(struct SN_env * z) {
int among_var;
z->bra = z->c; /* [, line 162 */
if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0; /* substring, line 162 */
z->bra = z->c;
if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0;
among_var = find_among(z, a_4, 6);
if (!(among_var)) return 0;
z->ket = z->c; /* ], line 162 */
switch (among_var) { /* among, line 162 */
z->ket = z->c;
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 163 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[1] = 2; /* $prefix = <integer expression>, line 163 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 163 */
z->I[0] = 2;
z->I[1] -= 1;
break;
case 2:
{ int ret = slice_from_s(z, 4, s_5); /* <-, line 164 */
{ int ret = slice_from_s(z, 4, s_5);
if (ret < 0) return ret;
}
z->I[0] -= 1; /* $measure -= <integer expression>, line 164 */
z->I[1] -= 1;
break;
case 3:
{ int ret = slice_del(z); /* delete, line 165 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->I[1] = 4; /* $prefix = <integer expression>, line 165 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 165 */
z->I[0] = 4;
z->I[1] -= 1;
break;
case 4:
{ int ret = slice_from_s(z, 4, s_6); /* <-, line 166 */
{ int ret = slice_from_s(z, 4, s_6);
if (ret < 0) return ret;
}
z->I[1] = 4; /* $prefix = <integer expression>, line 166 */
z->I[0] -= 1; /* $measure -= <integer expression>, line 166 */
z->I[0] = 4;
z->I[1] -= 1;
break;
}
return 1;
}
extern int indonesian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
z->I[0] = 0; /* $measure = <integer expression>, line 172 */
{ int c1 = z->c; /* do, line 173 */
/* repeat, line 173 */
while(1) { int c2 = z->c;
{ /* gopast */ /* grouping vowel, line 173 */
extern int indonesian_UTF_8_stem(struct SN_env * z) {
z->I[1] = 0;
{ int c1 = z->c;
while(1) {
int c2 = z->c;
{
int ret = out_grouping_U(z, g_vowel, 97, 117, 1);
if (ret < 0) goto lab1;
z->c += ret;
}
z->I[0] += 1; /* $measure += <integer expression>, line 173 */
z->I[1] += 1;
continue;
lab1:
z->c = c2;
@ -329,45 +328,45 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
}
z->c = c1;
}
if (!(z->I[0] > 2)) return 0; /* $(<integer expression> > <integer expression>), line 174 */
z->I[1] = 0; /* $prefix = <integer expression>, line 175 */
z->lb = z->c; z->c = z->l; /* backwards, line 176 */
if (!(z->I[1] > 2)) return 0;
z->I[0] = 0;
z->lb = z->c; z->c = z->l;
{ int m3 = z->l - z->c; (void)m3; /* do, line 177 */
{ int ret = r_remove_particle(z); /* call remove_particle, line 177 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_remove_particle(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
if (!(z->I[0] > 2)) return 0; /* $(<integer expression> > <integer expression>), line 178 */
{ int m4 = z->l - z->c; (void)m4; /* do, line 179 */
{ int ret = r_remove_possessive_pronoun(z); /* call remove_possessive_pronoun, line 179 */
if (!(z->I[1] > 2)) return 0;
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_remove_possessive_pronoun(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
}
z->c = z->lb;
if (!(z->I[0] > 2)) return 0; /* $(<integer expression> > <integer expression>), line 181 */
{ int c5 = z->c; /* or, line 188 */
{ int c_test6 = z->c; /* test, line 182 */
{ int ret = r_remove_first_order_prefix(z); /* call remove_first_order_prefix, line 183 */
if (!(z->I[1] > 2)) return 0;
{ int c5 = z->c;
{ int c_test6 = z->c;
{ int ret = r_remove_first_order_prefix(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
{ int c7 = z->c; /* do, line 184 */
{ int c_test8 = z->c; /* test, line 185 */
if (!(z->I[0] > 2)) goto lab4; /* $(<integer expression> > <integer expression>), line 185 */
z->lb = z->c; z->c = z->l; /* backwards, line 185 */
{ int c7 = z->c;
{ int c_test8 = z->c;
if (!(z->I[1] > 2)) goto lab4;
z->lb = z->c; z->c = z->l;
{ int ret = r_remove_suffix(z); /* call remove_suffix, line 185 */
{ int ret = r_remove_suffix(z);
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
z->c = z->lb;
z->c = c_test8;
}
if (!(z->I[0] > 2)) goto lab4; /* $(<integer expression> > <integer expression>), line 186 */
{ int ret = r_remove_second_order_prefix(z); /* call remove_second_order_prefix, line 186 */
if (!(z->I[1] > 2)) goto lab4;
{ int ret = r_remove_second_order_prefix(z);
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
@ -379,17 +378,17 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
goto lab2;
lab3:
z->c = c5;
{ int c9 = z->c; /* do, line 189 */
{ int ret = r_remove_second_order_prefix(z); /* call remove_second_order_prefix, line 189 */
{ int c9 = z->c;
{ int ret = r_remove_second_order_prefix(z);
if (ret < 0) return ret;
}
z->c = c9;
}
{ int c10 = z->c; /* do, line 190 */
if (!(z->I[0] > 2)) goto lab5; /* $(<integer expression> > <integer expression>), line 190 */
z->lb = z->c; z->c = z->l; /* backwards, line 190 */
{ int c10 = z->c;
if (!(z->I[1] > 2)) goto lab5;
z->lb = z->c; z->c = z->l;
{ int ret = r_remove_suffix(z); /* call remove_suffix, line 190 */
{ int ret = r_remove_suffix(z);
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
@ -402,7 +401,7 @@ lab2:
return 1;
}
extern struct SN_env * indonesian_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); }
extern struct SN_env * indonesian_UTF_8_create_env(void) { return SN_create_env(0, 2); }
extern void indonesian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -56,30 +56,30 @@ static const symbol s_0_23[2] = { 't', 's' };
static const struct among a_0[24] =
{
/* 0 */ { 2, s_0_0, -1, 1, 0},
/* 1 */ { 2, s_0_1, -1, 4, 0},
/* 2 */ { 3, s_0_2, 1, 2, 0},
/* 3 */ { 2, s_0_3, -1, 8, 0},
/* 4 */ { 2, s_0_4, -1, 5, 0},
/* 5 */ { 2, s_0_5, -1, 1, 0},
/* 6 */ { 4, s_0_6, 5, 2, 0},
/* 7 */ { 2, s_0_7, -1, 6, 0},
/* 8 */ { 2, s_0_8, -1, 9, 0},
/* 9 */ { 2, s_0_9, -1, 2, 0},
/* 10 */ { 2, s_0_10, -1, 5, 0},
/* 11 */ { 2, s_0_11, -1, 7, 0},
/* 12 */ { 2, s_0_12, -1, 1, 0},
/* 13 */ { 2, s_0_13, -1, 1, 0},
/* 14 */ { 2, s_0_14, -1, 4, 0},
/* 15 */ { 2, s_0_15, -1, 10, 0},
/* 16 */ { 2, s_0_16, -1, 1, 0},
/* 17 */ { 2, s_0_17, -1, 6, 0},
/* 18 */ { 2, s_0_18, -1, 7, 0},
/* 19 */ { 2, s_0_19, -1, 8, 0},
/* 20 */ { 2, s_0_20, -1, 3, 0},
/* 21 */ { 2, s_0_21, -1, 1, 0},
/* 22 */ { 2, s_0_22, -1, 9, 0},
/* 23 */ { 2, s_0_23, -1, 3, 0}
{ 2, s_0_0, -1, 1, 0},
{ 2, s_0_1, -1, 4, 0},
{ 3, s_0_2, 1, 2, 0},
{ 2, s_0_3, -1, 8, 0},
{ 2, s_0_4, -1, 5, 0},
{ 2, s_0_5, -1, 1, 0},
{ 4, s_0_6, 5, 2, 0},
{ 2, s_0_7, -1, 6, 0},
{ 2, s_0_8, -1, 9, 0},
{ 2, s_0_9, -1, 2, 0},
{ 2, s_0_10, -1, 5, 0},
{ 2, s_0_11, -1, 7, 0},
{ 2, s_0_12, -1, 1, 0},
{ 2, s_0_13, -1, 1, 0},
{ 2, s_0_14, -1, 4, 0},
{ 2, s_0_15, -1, 10, 0},
{ 2, s_0_16, -1, 1, 0},
{ 2, s_0_17, -1, 6, 0},
{ 2, s_0_18, -1, 7, 0},
{ 2, s_0_19, -1, 8, 0},
{ 2, s_0_20, -1, 3, 0},
{ 2, s_0_21, -1, 1, 0},
{ 2, s_0_22, -1, 9, 0},
{ 2, s_0_23, -1, 3, 0}
};
static const symbol s_1_0[7] = { 0xC3, 0xAD, 'o', 'c', 'h', 't', 'a' };
@ -101,22 +101,22 @@ static const symbol s_1_15[5] = { 'a', 'i', 'r', 0xC3, 0xAD };
static const struct among a_1[16] =
{
/* 0 */ { 7, s_1_0, -1, 1, 0},
/* 1 */ { 8, 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 */ { 6, s_1_12, -1, 1, 0},
/* 13 */ { 7, s_1_13, 12, 1, 0},
/* 14 */ { 4, s_1_14, -1, 2, 0},
/* 15 */ { 5, s_1_15, 14, 2, 0}
{ 7, s_1_0, -1, 1, 0},
{ 8, s_1_1, 0, 1, 0},
{ 3, s_1_2, -1, 2, 0},
{ 4, s_1_3, 2, 2, 0},
{ 3, s_1_4, -1, 1, 0},
{ 4, s_1_5, 4, 1, 0},
{ 3, s_1_6, -1, 1, 0},
{ 4, s_1_7, 6, 1, 0},
{ 3, s_1_8, -1, 1, 0},
{ 4, s_1_9, 8, 1, 0},
{ 3, s_1_10, -1, 1, 0},
{ 4, s_1_11, 10, 1, 0},
{ 6, s_1_12, -1, 1, 0},
{ 7, s_1_13, 12, 1, 0},
{ 4, s_1_14, -1, 2, 0},
{ 5, s_1_15, 14, 2, 0}
};
static const symbol s_2_0[9] = { 0xC3, 0xB3, 'i', 'd', 'e', 'a', 'c', 'h', 'a' };
@ -147,31 +147,31 @@ static const symbol s_2_24[14] = { 'g', 'r', 'a', 'f', 'a', 0xC3, 0xAD, 'o', 'c'
static const struct among a_2[25] =
{
/* 0 */ { 9, 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 */ { 12, 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 */ { 8, s_2_9, 8, 6, 0},
/* 10 */ { 7, s_2_10, 8, 3, 0},
/* 11 */ { 6, s_2_11, 7, 5, 0},
/* 12 */ { 10, s_2_12, -1, 4, 0},
/* 13 */ { 7, s_2_13, -1, 5, 0},
/* 14 */ { 7, s_2_14, -1, 6, 0},
/* 15 */ { 8, s_2_15, -1, 1, 0},
/* 16 */ { 9, 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 */ { 11, s_2_22, -1, 4, 0},
/* 23 */ { 10, s_2_23, -1, 2, 0},
/* 24 */ { 14, s_2_24, -1, 4, 0}
{ 9, s_2_0, -1, 6, 0},
{ 7, s_2_1, -1, 5, 0},
{ 5, s_2_2, -1, 1, 0},
{ 8, s_2_3, 2, 2, 0},
{ 6, s_2_4, 2, 1, 0},
{ 12, s_2_5, -1, 4, 0},
{ 5, s_2_6, -1, 5, 0},
{ 3, s_2_7, -1, 1, 0},
{ 4, s_2_8, 7, 1, 0},
{ 8, s_2_9, 8, 6, 0},
{ 7, s_2_10, 8, 3, 0},
{ 6, s_2_11, 7, 5, 0},
{ 10, s_2_12, -1, 4, 0},
{ 7, s_2_13, -1, 5, 0},
{ 7, s_2_14, -1, 6, 0},
{ 8, s_2_15, -1, 1, 0},
{ 9, s_2_16, 15, 1, 0},
{ 6, s_2_17, -1, 3, 0},
{ 5, s_2_18, -1, 3, 0},
{ 4, s_2_19, -1, 1, 0},
{ 7, s_2_20, 19, 2, 0},
{ 5, s_2_21, 19, 1, 0},
{ 11, s_2_22, -1, 4, 0},
{ 10, s_2_23, -1, 2, 0},
{ 14, s_2_24, -1, 4, 0}
};
static const symbol s_3_0[4] = { 'i', 'm', 'i', 'd' };
@ -189,18 +189,18 @@ static const symbol s_3_11[3] = { 't', 'a', 'r' };
static const struct among a_3[12] =
{
/* 0 */ { 4, s_3_0, -1, 1, 0},
/* 1 */ { 5, s_3_1, 0, 1, 0},
/* 2 */ { 5, s_3_2, -1, 1, 0},
/* 3 */ { 6, 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 */ { 4, s_3_8, -1, 2, 0},
/* 9 */ { 3, s_3_9, -1, 2, 0},
/* 10 */ { 4, s_3_10, -1, 2, 0},
/* 11 */ { 3, s_3_11, -1, 2, 0}
{ 4, s_3_0, -1, 1, 0},
{ 5, s_3_1, 0, 1, 0},
{ 5, s_3_2, -1, 1, 0},
{ 6, s_3_3, 2, 1, 0},
{ 3, s_3_4, -1, 2, 0},
{ 4, s_3_5, 4, 2, 0},
{ 5, s_3_6, -1, 1, 0},
{ 4, s_3_7, -1, 1, 0},
{ 4, s_3_8, -1, 2, 0},
{ 3, s_3_9, -1, 2, 0},
{ 4, s_3_10, -1, 2, 0},
{ 3, s_3_11, -1, 2, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 2 };
@ -220,103 +220,103 @@ static const symbol s_11[] = { 'g', 'r', 'a', 'f' };
static const symbol s_12[] = { 'p', 'a', 'i', 't', 'e' };
static const symbol s_13[] = { 0xC3, 0xB3, 'i', 'd' };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 30 */
z->I[1] = z->l; /* $p1 = <integer expression>, line 31 */
z->I[2] = z->l; /* $p2 = <integer expression>, line 32 */
{ int c1 = z->c; /* do, line 34 */
{ /* gopast */ /* grouping v, line 35 */
static int r_mark_regions(struct SN_env * z) {
z->I[2] = z->l;
z->I[1] = z->l;
z->I[0] = z->l;
{ int c1 = z->c;
{
int ret = out_grouping_U(z, g_v, 97, 250, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
z->I[0] = z->c; /* setmark pV, line 35 */
z->I[2] = z->c;
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 37 */
{ /* gopast */ /* grouping v, line 38 */
{ int c2 = z->c;
{
int ret = out_grouping_U(z, g_v, 97, 250, 1);
if (ret < 0) goto lab1;
z->c += ret;
}
{ /* gopast */ /* non v, line 38 */
{
int ret = in_grouping_U(z, g_v, 97, 250, 1);
if (ret < 0) goto lab1;
z->c += ret;
}
z->I[1] = z->c; /* setmark p1, line 38 */
{ /* gopast */ /* grouping v, line 39 */
z->I[1] = z->c;
{
int ret = out_grouping_U(z, g_v, 97, 250, 1);
if (ret < 0) goto lab1;
z->c += ret;
}
{ /* gopast */ /* non v, line 39 */
{
int ret = in_grouping_U(z, g_v, 97, 250, 1);
if (ret < 0) goto lab1;
z->c += ret;
}
z->I[2] = z->c; /* setmark p2, line 39 */
z->I[0] = z->c;
lab1:
z->c = c2;
}
return 1;
}
static int r_initial_morph(struct SN_env * z) { /* forwardmode */
static int r_initial_morph(struct SN_env * z) {
int among_var;
z->bra = z->c; /* [, line 44 */
among_var = find_among(z, a_0, 24); /* substring, line 44 */
z->bra = z->c;
among_var = find_among(z, a_0, 24);
if (!(among_var)) return 0;
z->ket = z->c; /* ], line 44 */
switch (among_var) { /* among, line 44 */
z->ket = z->c;
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 46 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 52 */
{ int ret = slice_from_s(z, 1, s_0);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 58 */
{ int ret = slice_from_s(z, 1, s_1);
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 61 */
{ int ret = slice_from_s(z, 1, s_2);
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 63 */
{ int ret = slice_from_s(z, 1, s_3);
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 65 */
{ int ret = slice_from_s(z, 1, s_4);
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 69 */
{ int ret = slice_from_s(z, 1, s_5);
if (ret < 0) return ret;
}
break;
case 8:
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 71 */
{ int ret = slice_from_s(z, 1, s_6);
if (ret < 0) return ret;
}
break;
case 9:
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 75 */
{ int ret = slice_from_s(z, 1, s_7);
if (ret < 0) return ret;
}
break;
case 10:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 89 */
{ int ret = slice_from_s(z, 1, s_8);
if (ret < 0) return ret;
}
break;
@ -324,41 +324,41 @@ static int r_initial_morph(struct SN_env * z) { /* forwardmode */
return 1;
}
static int r_RV(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 99 */
static int r_RV(struct SN_env * z) {
if (!(z->I[2] <= z->c)) return 0;
return 1;
}
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 100 */
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 101 */
static int r_R2(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_noun_sfx(struct SN_env * z) { /* backwardmode */
static int r_noun_sfx(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 104 */
among_var = find_among_b(z, a_1, 16); /* substring, line 104 */
z->ket = z->c;
among_var = find_among_b(z, a_1, 16);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 104 */
switch (among_var) { /* among, line 104 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = r_R1(z); /* call R1, line 108 */
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 108 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R2(z); /* call R2, line 110 */
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 110 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -366,43 +366,43 @@ static int r_noun_sfx(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_deriv(struct SN_env * z) { /* backwardmode */
static int r_deriv(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 114 */
among_var = find_among_b(z, a_2, 25); /* substring, line 114 */
z->ket = z->c;
among_var = find_among_b(z, a_2, 25);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 114 */
switch (among_var) { /* among, line 114 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = r_R2(z); /* call R2, line 116 */
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 116 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 3, s_9); /* <-, line 118 */
{ int ret = slice_from_s(z, 3, s_9);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 3, s_10); /* <-, line 120 */
{ int ret = slice_from_s(z, 3, s_10);
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 4, s_11); /* <-, line 122 */
{ int ret = slice_from_s(z, 4, s_11);
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 5, s_12); /* <-, line 124 */
{ int ret = slice_from_s(z, 5, s_12);
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 4, s_13); /* <-, line 126 */
{ int ret = slice_from_s(z, 4, s_13);
if (ret < 0) return ret;
}
break;
@ -410,27 +410,27 @@ static int r_deriv(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_verb_sfx(struct SN_env * z) { /* backwardmode */
static int r_verb_sfx(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 130 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 130 */
z->ket = z->c;
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_3, 12);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 130 */
switch (among_var) { /* among, line 130 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = r_RV(z); /* call RV, line 133 */
{ int ret = r_RV(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 133 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R1(z); /* call R1, line 138 */
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 138 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -438,33 +438,33 @@ static int r_verb_sfx(struct SN_env * z) { /* backwardmode */
return 1;
}
extern int irish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 144 */
{ int ret = r_initial_morph(z); /* call initial_morph, line 144 */
extern int irish_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_initial_morph(z);
if (ret < 0) return ret;
}
z->c = c1;
}
/* do, line 145 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 145 */
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->lb = z->c; z->c = z->l; /* backwards, line 146 */
z->lb = z->c; z->c = z->l;
{ int m2 = z->l - z->c; (void)m2; /* do, line 147 */
{ int ret = r_noun_sfx(z); /* call noun_sfx, line 147 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_noun_sfx(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 148 */
{ int ret = r_deriv(z); /* call deriv, line 148 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_deriv(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 149 */
{ int ret = r_verb_sfx(z); /* call verb_sfx, line 149 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_verb_sfx(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
@ -473,7 +473,7 @@ extern int irish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * irish_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
extern struct SN_env * irish_UTF_8_create_env(void) { return SN_create_env(0, 3); }
extern void irish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -234,210 +234,210 @@ static const symbol s_0_203[4] = { 'e', 'r', 0xC5, 0xB3 };
static const struct among a_0[204] =
{
/* 0 */ { 1, s_0_0, -1, -1, 0},
/* 1 */ { 2, s_0_1, 0, -1, 0},
/* 2 */ { 4, s_0_2, 1, -1, 0},
/* 3 */ { 4, s_0_3, 0, -1, 0},
/* 4 */ { 5, s_0_4, 3, -1, 0},
/* 5 */ { 5, s_0_5, 3, -1, 0},
/* 6 */ { 6, s_0_6, 5, -1, 0},
/* 7 */ { 4, s_0_7, 0, -1, 0},
/* 8 */ { 5, s_0_8, 0, -1, 0},
/* 9 */ { 1, s_0_9, -1, -1, 0},
/* 10 */ { 2, s_0_10, 9, -1, 0},
/* 11 */ { 4, s_0_11, 10, -1, 0},
/* 12 */ { 4, s_0_12, 10, -1, 0},
/* 13 */ { 3, s_0_13, 9, -1, 0},
/* 14 */ { 4, s_0_14, 13, -1, 0},
/* 15 */ { 3, s_0_15, 9, -1, 0},
/* 16 */ { 4, s_0_16, 15, -1, 0},
/* 17 */ { 3, s_0_17, 9, -1, 0},
/* 18 */ { 5, s_0_18, 17, -1, 0},
/* 19 */ { 5, s_0_19, 17, -1, 0},
/* 20 */ { 4, s_0_20, 9, -1, 0},
/* 21 */ { 3, s_0_21, 9, -1, 0},
/* 22 */ { 4, s_0_22, 21, -1, 0},
/* 23 */ { 4, s_0_23, 9, -1, 0},
/* 24 */ { 3, s_0_24, 9, -1, 0},
/* 25 */ { 4, s_0_25, 9, -1, 0},
/* 26 */ { 7, s_0_26, 25, -1, 0},
/* 27 */ { 3, s_0_27, 9, -1, 0},
/* 28 */ { 4, s_0_28, 27, -1, 0},
/* 29 */ { 4, s_0_29, 27, -1, 0},
/* 30 */ { 5, s_0_30, 29, -1, 0},
/* 31 */ { 3, s_0_31, 9, -1, 0},
/* 32 */ { 5, s_0_32, 31, -1, 0},
/* 33 */ { 5, s_0_33, 31, -1, 0},
/* 34 */ { 4, s_0_34, 9, -1, 0},
/* 35 */ { 3, s_0_35, 9, -1, 0},
/* 36 */ { 4, s_0_36, 35, -1, 0},
/* 37 */ { 3, s_0_37, 9, -1, 0},
/* 38 */ { 4, s_0_38, 37, -1, 0},
/* 39 */ { 4, s_0_39, 37, -1, 0},
/* 40 */ { 3, s_0_40, 9, -1, 0},
/* 41 */ { 4, s_0_41, 9, -1, 0},
/* 42 */ { 4, s_0_42, 9, -1, 0},
/* 43 */ { 7, s_0_43, 42, -1, 0},
/* 44 */ { 1, s_0_44, -1, -1, 0},
/* 45 */ { 2, s_0_45, 44, -1, 0},
/* 46 */ { 3, s_0_46, 45, -1, 0},
/* 47 */ { 5, s_0_47, 46, -1, 0},
/* 48 */ { 2, s_0_48, 44, -1, 0},
/* 49 */ { 5, s_0_49, 48, -1, 0},
/* 50 */ { 2, s_0_50, 44, -1, 0},
/* 51 */ { 3, s_0_51, 44, -1, 0},
/* 52 */ { 5, s_0_52, 51, -1, 0},
/* 53 */ { 3, s_0_53, 44, -1, 0},
/* 54 */ { 4, s_0_54, 53, -1, 0},
/* 55 */ { 2, s_0_55, 44, -1, 0},
/* 56 */ { 3, s_0_56, 55, -1, 0},
/* 57 */ { 4, s_0_57, 56, -1, 0},
/* 58 */ { 3, s_0_58, 55, -1, 0},
/* 59 */ { 4, s_0_59, 58, -1, 0},
/* 60 */ { 5, s_0_60, 59, -1, 0},
/* 61 */ { 3, s_0_61, 55, -1, 0},
/* 62 */ { 4, s_0_62, 61, -1, 0},
/* 63 */ { 4, s_0_63, 61, -1, 0},
/* 64 */ { 7, s_0_64, 63, -1, 0},
/* 65 */ { 4, s_0_65, 61, -1, 0},
/* 66 */ { 3, s_0_66, 55, -1, 0},
/* 67 */ { 6, s_0_67, 66, -1, 0},
/* 68 */ { 4, s_0_68, 66, -1, 0},
/* 69 */ { 5, s_0_69, 68, -1, 0},
/* 70 */ { 6, s_0_70, 69, -1, 0},
/* 71 */ { 3, s_0_71, 55, -1, 0},
/* 72 */ { 4, s_0_72, 71, -1, 0},
/* 73 */ { 7, s_0_73, 72, -1, 0},
/* 74 */ { 4, s_0_74, 55, -1, 0},
/* 75 */ { 4, s_0_75, 55, -1, 0},
/* 76 */ { 4, s_0_76, 55, -1, 0},
/* 77 */ { 5, s_0_77, 76, -1, 0},
/* 78 */ { 2, s_0_78, 44, -1, 0},
/* 79 */ { 4, s_0_79, 78, -1, 0},
/* 80 */ { 4, s_0_80, 78, -1, 0},
/* 81 */ { 3, s_0_81, 78, -1, 0},
/* 82 */ { 4, s_0_82, 81, -1, 0},
/* 83 */ { 4, s_0_83, 81, -1, 0},
/* 84 */ { 5, s_0_84, 83, -1, 0},
/* 85 */ { 4, s_0_85, 78, -1, 0},
/* 86 */ { 5, s_0_86, 85, -1, 0},
/* 87 */ { 3, s_0_87, 78, -1, 0},
/* 88 */ { 4, s_0_88, 78, -1, 0},
/* 89 */ { 7, s_0_89, 88, -1, 0},
/* 90 */ { 6, s_0_90, 88, -1, 0},
/* 91 */ { 7, s_0_91, 88, -1, 0},
/* 92 */ { 2, s_0_92, 44, -1, 0},
/* 93 */ { 3, s_0_93, 92, -1, 0},
/* 94 */ { 5, s_0_94, 93, -1, 0},
/* 95 */ { 2, s_0_95, -1, -1, 0},
/* 96 */ { 3, s_0_96, -1, -1, 0},
/* 97 */ { 1, s_0_97, -1, -1, 0},
/* 98 */ { 2, s_0_98, -1, -1, 0},
/* 99 */ { 3, s_0_99, 98, -1, 0},
/*100 */ { 3, s_0_100, -1, -1, 0},
/*101 */ { 2, s_0_101, -1, -1, 0},
/*102 */ { 3, s_0_102, 101, -1, 0},
/*103 */ { 2, s_0_103, -1, -1, 0},
/*104 */ { 3, s_0_104, -1, -1, 0},
/*105 */ { 3, s_0_105, -1, -1, 0},
/*106 */ { 6, s_0_106, 105, -1, 0},
/*107 */ { 2, s_0_107, -1, -1, 0},
/*108 */ { 2, s_0_108, -1, -1, 0},
/*109 */ { 3, s_0_109, 108, -1, 0},
/*110 */ { 2, s_0_110, -1, -1, 0},
/*111 */ { 3, s_0_111, 110, -1, 0},
/*112 */ { 3, s_0_112, -1, -1, 0},
/*113 */ { 1, s_0_113, -1, -1, 0},
/*114 */ { 2, s_0_114, 113, -1, 0},
/*115 */ { 4, s_0_115, 114, -1, 0},
/*116 */ { 4, s_0_116, 113, -1, 0},
/*117 */ { 2, s_0_117, 113, -1, 0},
/*118 */ { 1, s_0_118, -1, -1, 0},
/*119 */ { 2, s_0_119, 118, -1, 0},
/*120 */ { 3, s_0_120, 119, -1, 0},
/*121 */ { 2, s_0_121, 118, -1, 0},
/*122 */ { 3, s_0_122, 121, -1, 0},
/*123 */ { 2, s_0_123, 118, -1, 0},
/*124 */ { 3, s_0_124, 123, -1, 0},
/*125 */ { 4, s_0_125, 124, -1, 0},
/*126 */ { 6, s_0_126, 123, -1, 0},
/*127 */ { 4, s_0_127, 123, -1, 0},
/*128 */ { 6, s_0_128, 127, -1, 0},
/*129 */ { 4, s_0_129, 123, -1, 0},
/*130 */ { 5, s_0_130, 129, -1, 0},
/*131 */ { 4, s_0_131, 123, -1, 0},
/*132 */ { 5, s_0_132, 123, -1, 0},
/*133 */ { 4, s_0_133, 123, -1, 0},
/*134 */ { 4, s_0_134, 123, -1, 0},
/*135 */ { 4, s_0_135, 123, -1, 0},
/*136 */ { 3, s_0_136, 118, -1, 0},
/*137 */ { 4, s_0_137, 136, -1, 0},
/*138 */ { 4, s_0_138, 118, -1, 0},
/*139 */ { 3, s_0_139, 118, -1, 0},
/*140 */ { 5, s_0_140, 139, -1, 0},
/*141 */ { 5, s_0_141, 139, -1, 0},
/*142 */ { 3, s_0_142, 118, -1, 0},
/*143 */ { 4, s_0_143, 142, -1, 0},
/*144 */ { 3, s_0_144, 118, -1, 0},
/*145 */ { 4, s_0_145, 118, -1, 0},
/*146 */ { 3, s_0_146, 118, -1, 0},
/*147 */ { 2, s_0_147, 118, -1, 0},
/*148 */ { 3, s_0_148, 147, -1, 0},
/*149 */ { 3, s_0_149, 147, -1, 0},
/*150 */ { 4, s_0_150, 149, -1, 0},
/*151 */ { 3, s_0_151, 118, -1, 0},
/*152 */ { 2, s_0_152, 118, -1, 0},
/*153 */ { 3, s_0_153, 152, -1, 0},
/*154 */ { 4, s_0_154, 153, -1, 0},
/*155 */ { 3, s_0_155, 152, -1, 0},
/*156 */ { 2, s_0_156, 118, -1, 0},
/*157 */ { 4, s_0_157, 156, -1, 0},
/*158 */ { 4, s_0_158, 156, -1, 0},
/*159 */ { 3, s_0_159, 118, -1, 0},
/*160 */ { 4, s_0_160, 159, -1, 0},
/*161 */ { 3, s_0_161, 118, -1, 0},
/*162 */ { 5, s_0_162, 161, -1, 0},
/*163 */ { 6, s_0_163, 162, -1, 0},
/*164 */ { 5, s_0_164, 161, -1, 0},
/*165 */ { 6, s_0_165, 164, -1, 0},
/*166 */ { 6, s_0_166, 164, -1, 0},
/*167 */ { 5, s_0_167, 161, -1, 0},
/*168 */ { 6, s_0_168, 161, -1, 0},
/*169 */ { 9, s_0_169, 168, -1, 0},
/*170 */ { 5, s_0_170, 161, -1, 0},
/*171 */ { 6, s_0_171, 170, -1, 0},
/*172 */ { 6, s_0_172, 161, -1, 0},
/*173 */ { 5, s_0_173, 161, -1, 0},
/*174 */ { 6, s_0_174, 161, -1, 0},
/*175 */ { 9, s_0_175, 174, -1, 0},
/*176 */ { 3, s_0_176, 118, -1, 0},
/*177 */ { 3, s_0_177, 118, -1, 0},
/*178 */ { 4, s_0_178, 118, -1, 0},
/*179 */ { 2, s_0_179, -1, -1, 0},
/*180 */ { 3, s_0_180, 179, -1, 0},
/*181 */ { 2, s_0_181, -1, -1, 0},
/*182 */ { 3, s_0_182, 181, -1, 0},
/*183 */ { 2, s_0_183, -1, -1, 0},
/*184 */ { 3, s_0_184, -1, -1, 0},
/*185 */ { 6, s_0_185, 184, -1, 0},
/*186 */ { 1, s_0_186, -1, -1, 0},
/*187 */ { 2, s_0_187, 186, -1, 0},
/*188 */ { 3, s_0_188, 187, -1, 0},
/*189 */ { 5, s_0_189, 188, -1, 0},
/*190 */ { 2, s_0_190, 186, -1, 0},
/*191 */ { 4, s_0_191, 190, -1, 0},
/*192 */ { 3, s_0_192, 190, -1, 0},
/*193 */ { 1, s_0_193, -1, -1, 0},
/*194 */ { 2, s_0_194, -1, -1, 0},
/*195 */ { 3, s_0_195, 194, -1, 0},
/*196 */ { 2, s_0_196, -1, -1, 0},
/*197 */ { 2, s_0_197, -1, -1, 0},
/*198 */ { 2, s_0_198, -1, -1, 0},
/*199 */ { 4, s_0_199, 198, -1, 0},
/*200 */ { 4, s_0_200, 198, -1, 0},
/*201 */ { 2, s_0_201, -1, -1, 0},
/*202 */ { 3, s_0_202, 201, -1, 0},
/*203 */ { 4, s_0_203, 201, -1, 0}
{ 1, s_0_0, -1, -1, 0},
{ 2, s_0_1, 0, -1, 0},
{ 4, s_0_2, 1, -1, 0},
{ 4, s_0_3, 0, -1, 0},
{ 5, s_0_4, 3, -1, 0},
{ 5, s_0_5, 3, -1, 0},
{ 6, s_0_6, 5, -1, 0},
{ 4, s_0_7, 0, -1, 0},
{ 5, s_0_8, 0, -1, 0},
{ 1, s_0_9, -1, -1, 0},
{ 2, s_0_10, 9, -1, 0},
{ 4, s_0_11, 10, -1, 0},
{ 4, s_0_12, 10, -1, 0},
{ 3, s_0_13, 9, -1, 0},
{ 4, s_0_14, 13, -1, 0},
{ 3, s_0_15, 9, -1, 0},
{ 4, s_0_16, 15, -1, 0},
{ 3, s_0_17, 9, -1, 0},
{ 5, s_0_18, 17, -1, 0},
{ 5, s_0_19, 17, -1, 0},
{ 4, s_0_20, 9, -1, 0},
{ 3, s_0_21, 9, -1, 0},
{ 4, s_0_22, 21, -1, 0},
{ 4, s_0_23, 9, -1, 0},
{ 3, s_0_24, 9, -1, 0},
{ 4, s_0_25, 9, -1, 0},
{ 7, s_0_26, 25, -1, 0},
{ 3, s_0_27, 9, -1, 0},
{ 4, s_0_28, 27, -1, 0},
{ 4, s_0_29, 27, -1, 0},
{ 5, s_0_30, 29, -1, 0},
{ 3, s_0_31, 9, -1, 0},
{ 5, s_0_32, 31, -1, 0},
{ 5, s_0_33, 31, -1, 0},
{ 4, s_0_34, 9, -1, 0},
{ 3, s_0_35, 9, -1, 0},
{ 4, s_0_36, 35, -1, 0},
{ 3, s_0_37, 9, -1, 0},
{ 4, s_0_38, 37, -1, 0},
{ 4, s_0_39, 37, -1, 0},
{ 3, s_0_40, 9, -1, 0},
{ 4, s_0_41, 9, -1, 0},
{ 4, s_0_42, 9, -1, 0},
{ 7, s_0_43, 42, -1, 0},
{ 1, s_0_44, -1, -1, 0},
{ 2, s_0_45, 44, -1, 0},
{ 3, s_0_46, 45, -1, 0},
{ 5, s_0_47, 46, -1, 0},
{ 2, s_0_48, 44, -1, 0},
{ 5, s_0_49, 48, -1, 0},
{ 2, s_0_50, 44, -1, 0},
{ 3, s_0_51, 44, -1, 0},
{ 5, s_0_52, 51, -1, 0},
{ 3, s_0_53, 44, -1, 0},
{ 4, s_0_54, 53, -1, 0},
{ 2, s_0_55, 44, -1, 0},
{ 3, s_0_56, 55, -1, 0},
{ 4, s_0_57, 56, -1, 0},
{ 3, s_0_58, 55, -1, 0},
{ 4, s_0_59, 58, -1, 0},
{ 5, s_0_60, 59, -1, 0},
{ 3, s_0_61, 55, -1, 0},
{ 4, s_0_62, 61, -1, 0},
{ 4, s_0_63, 61, -1, 0},
{ 7, s_0_64, 63, -1, 0},
{ 4, s_0_65, 61, -1, 0},
{ 3, s_0_66, 55, -1, 0},
{ 6, s_0_67, 66, -1, 0},
{ 4, s_0_68, 66, -1, 0},
{ 5, s_0_69, 68, -1, 0},
{ 6, s_0_70, 69, -1, 0},
{ 3, s_0_71, 55, -1, 0},
{ 4, s_0_72, 71, -1, 0},
{ 7, s_0_73, 72, -1, 0},
{ 4, s_0_74, 55, -1, 0},
{ 4, s_0_75, 55, -1, 0},
{ 4, s_0_76, 55, -1, 0},
{ 5, s_0_77, 76, -1, 0},
{ 2, s_0_78, 44, -1, 0},
{ 4, s_0_79, 78, -1, 0},
{ 4, s_0_80, 78, -1, 0},
{ 3, s_0_81, 78, -1, 0},
{ 4, s_0_82, 81, -1, 0},
{ 4, s_0_83, 81, -1, 0},
{ 5, s_0_84, 83, -1, 0},
{ 4, s_0_85, 78, -1, 0},
{ 5, s_0_86, 85, -1, 0},
{ 3, s_0_87, 78, -1, 0},
{ 4, s_0_88, 78, -1, 0},
{ 7, s_0_89, 88, -1, 0},
{ 6, s_0_90, 88, -1, 0},
{ 7, s_0_91, 88, -1, 0},
{ 2, s_0_92, 44, -1, 0},
{ 3, s_0_93, 92, -1, 0},
{ 5, s_0_94, 93, -1, 0},
{ 2, s_0_95, -1, -1, 0},
{ 3, s_0_96, -1, -1, 0},
{ 1, s_0_97, -1, -1, 0},
{ 2, s_0_98, -1, -1, 0},
{ 3, s_0_99, 98, -1, 0},
{ 3, s_0_100, -1, -1, 0},
{ 2, s_0_101, -1, -1, 0},
{ 3, s_0_102, 101, -1, 0},
{ 2, s_0_103, -1, -1, 0},
{ 3, s_0_104, -1, -1, 0},
{ 3, s_0_105, -1, -1, 0},
{ 6, s_0_106, 105, -1, 0},
{ 2, s_0_107, -1, -1, 0},
{ 2, s_0_108, -1, -1, 0},
{ 3, s_0_109, 108, -1, 0},
{ 2, s_0_110, -1, -1, 0},
{ 3, s_0_111, 110, -1, 0},
{ 3, s_0_112, -1, -1, 0},
{ 1, s_0_113, -1, -1, 0},
{ 2, s_0_114, 113, -1, 0},
{ 4, s_0_115, 114, -1, 0},
{ 4, s_0_116, 113, -1, 0},
{ 2, s_0_117, 113, -1, 0},
{ 1, s_0_118, -1, -1, 0},
{ 2, s_0_119, 118, -1, 0},
{ 3, s_0_120, 119, -1, 0},
{ 2, s_0_121, 118, -1, 0},
{ 3, s_0_122, 121, -1, 0},
{ 2, s_0_123, 118, -1, 0},
{ 3, s_0_124, 123, -1, 0},
{ 4, s_0_125, 124, -1, 0},
{ 6, s_0_126, 123, -1, 0},
{ 4, s_0_127, 123, -1, 0},
{ 6, s_0_128, 127, -1, 0},
{ 4, s_0_129, 123, -1, 0},
{ 5, s_0_130, 129, -1, 0},
{ 4, s_0_131, 123, -1, 0},
{ 5, s_0_132, 123, -1, 0},
{ 4, s_0_133, 123, -1, 0},
{ 4, s_0_134, 123, -1, 0},
{ 4, s_0_135, 123, -1, 0},
{ 3, s_0_136, 118, -1, 0},
{ 4, s_0_137, 136, -1, 0},
{ 4, s_0_138, 118, -1, 0},
{ 3, s_0_139, 118, -1, 0},
{ 5, s_0_140, 139, -1, 0},
{ 5, s_0_141, 139, -1, 0},
{ 3, s_0_142, 118, -1, 0},
{ 4, s_0_143, 142, -1, 0},
{ 3, s_0_144, 118, -1, 0},
{ 4, s_0_145, 118, -1, 0},
{ 3, s_0_146, 118, -1, 0},
{ 2, s_0_147, 118, -1, 0},
{ 3, s_0_148, 147, -1, 0},
{ 3, s_0_149, 147, -1, 0},
{ 4, s_0_150, 149, -1, 0},
{ 3, s_0_151, 118, -1, 0},
{ 2, s_0_152, 118, -1, 0},
{ 3, s_0_153, 152, -1, 0},
{ 4, s_0_154, 153, -1, 0},
{ 3, s_0_155, 152, -1, 0},
{ 2, s_0_156, 118, -1, 0},
{ 4, s_0_157, 156, -1, 0},
{ 4, s_0_158, 156, -1, 0},
{ 3, s_0_159, 118, -1, 0},
{ 4, s_0_160, 159, -1, 0},
{ 3, s_0_161, 118, -1, 0},
{ 5, s_0_162, 161, -1, 0},
{ 6, s_0_163, 162, -1, 0},
{ 5, s_0_164, 161, -1, 0},
{ 6, s_0_165, 164, -1, 0},
{ 6, s_0_166, 164, -1, 0},
{ 5, s_0_167, 161, -1, 0},
{ 6, s_0_168, 161, -1, 0},
{ 9, s_0_169, 168, -1, 0},
{ 5, s_0_170, 161, -1, 0},
{ 6, s_0_171, 170, -1, 0},
{ 6, s_0_172, 161, -1, 0},
{ 5, s_0_173, 161, -1, 0},
{ 6, s_0_174, 161, -1, 0},
{ 9, s_0_175, 174, -1, 0},
{ 3, s_0_176, 118, -1, 0},
{ 3, s_0_177, 118, -1, 0},
{ 4, s_0_178, 118, -1, 0},
{ 2, s_0_179, -1, -1, 0},
{ 3, s_0_180, 179, -1, 0},
{ 2, s_0_181, -1, -1, 0},
{ 3, s_0_182, 181, -1, 0},
{ 2, s_0_183, -1, -1, 0},
{ 3, s_0_184, -1, -1, 0},
{ 6, s_0_185, 184, -1, 0},
{ 1, s_0_186, -1, -1, 0},
{ 2, s_0_187, 186, -1, 0},
{ 3, s_0_188, 187, -1, 0},
{ 5, s_0_189, 188, -1, 0},
{ 2, s_0_190, 186, -1, 0},
{ 4, s_0_191, 190, -1, 0},
{ 3, s_0_192, 190, -1, 0},
{ 1, s_0_193, -1, -1, 0},
{ 2, s_0_194, -1, -1, 0},
{ 3, s_0_195, 194, -1, 0},
{ 2, s_0_196, -1, -1, 0},
{ 2, s_0_197, -1, -1, 0},
{ 2, s_0_198, -1, -1, 0},
{ 4, s_0_199, 198, -1, 0},
{ 4, s_0_200, 198, -1, 0},
{ 2, s_0_201, -1, -1, 0},
{ 3, s_0_202, 201, -1, 0},
{ 4, s_0_203, 201, -1, 0}
};
static const symbol s_1_0[3] = { 'i', 'n', 'g' };
@ -505,68 +505,68 @@ static const symbol s_1_61[5] = { 0xC4, 0x97, 'j', 0xC4, 0x99 };
static const struct among a_1[62] =
{
/* 0 */ { 3, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
/* 2 */ { 3, s_1_2, 1, -1, 0},
/* 3 */ { 3, s_1_3, -1, -1, 0},
/* 4 */ { 2, s_1_4, -1, -1, 0},
/* 5 */ { 3, s_1_5, 4, -1, 0},
/* 6 */ { 3, s_1_6, 4, -1, 0},
/* 7 */ { 4, s_1_7, 6, -1, 0},
/* 8 */ { 3, s_1_8, -1, -1, 0},
/* 9 */ { 3, s_1_9, -1, -1, 0},
/* 10 */ { 4, s_1_10, 9, -1, 0},
/* 11 */ { 3, s_1_11, -1, -1, 0},
/* 12 */ { 3, s_1_12, -1, -1, 0},
/* 13 */ { 4, s_1_13, 12, -1, 0},
/* 14 */ { 2, s_1_14, -1, -1, 0},
/* 15 */ { 3, s_1_15, 14, -1, 0},
/* 16 */ { 3, s_1_16, -1, -1, 0},
/* 17 */ { 5, s_1_17, 16, -1, 0},
/* 18 */ { 6, s_1_18, 16, -1, 0},
/* 19 */ { 4, s_1_19, -1, -1, 0},
/* 20 */ { 3, s_1_20, -1, -1, 0},
/* 21 */ { 2, s_1_21, -1, -1, 0},
/* 22 */ { 3, s_1_22, -1, -1, 0},
/* 23 */ { 2, s_1_23, -1, -1, 0},
/* 24 */ { 3, s_1_24, 23, -1, 0},
/* 25 */ { 3, s_1_25, 23, -1, 0},
/* 26 */ { 4, s_1_26, -1, -1, 0},
/* 27 */ { 3, s_1_27, -1, -1, 0},
/* 28 */ { 3, s_1_28, -1, -1, 0},
/* 29 */ { 2, s_1_29, -1, -1, 0},
/* 30 */ { 3, s_1_30, 29, -1, 0},
/* 31 */ { 3, s_1_31, -1, -1, 0},
/* 32 */ { 3, s_1_32, -1, -1, 0},
/* 33 */ { 3, s_1_33, -1, -1, 0},
/* 34 */ { 4, s_1_34, 33, -1, 0},
/* 35 */ { 2, s_1_35, -1, -1, 0},
/* 36 */ { 3, s_1_36, 35, -1, 0},
/* 37 */ { 3, s_1_37, 35, -1, 0},
/* 38 */ { 4, s_1_38, 37, -1, 0},
/* 39 */ { 3, s_1_39, -1, -1, 0},
/* 40 */ { 4, s_1_40, 39, -1, 0},
/* 41 */ { 3, s_1_41, -1, -1, 0},
/* 42 */ { 4, s_1_42, 41, -1, 0},
/* 43 */ { 3, s_1_43, -1, -1, 0},
/* 44 */ { 7, s_1_44, -1, -1, 0},
/* 45 */ { 3, s_1_45, -1, -1, 0},
/* 46 */ { 4, s_1_46, 45, -1, 0},
/* 47 */ { 5, s_1_47, 46, -1, 0},
/* 48 */ { 3, s_1_48, -1, -1, 0},
/* 49 */ { 2, s_1_49, -1, -1, 0},
/* 50 */ { 3, s_1_50, 49, -1, 0},
/* 51 */ { 4, s_1_51, 50, -1, 0},
/* 52 */ { 2, s_1_52, -1, -1, 0},
/* 53 */ { 3, s_1_53, -1, -1, 0},
/* 54 */ { 5, s_1_54, -1, -1, 0},
/* 55 */ { 3, s_1_55, -1, -1, 0},
/* 56 */ { 3, s_1_56, -1, -1, 0},
/* 57 */ { 2, s_1_57, -1, -1, 0},
/* 58 */ { 3, s_1_58, -1, -1, 0},
/* 59 */ { 6, s_1_59, -1, -1, 0},
/* 60 */ { 2, s_1_60, -1, -1, 0},
/* 61 */ { 5, s_1_61, 60, -1, 0}
{ 3, s_1_0, -1, -1, 0},
{ 2, s_1_1, -1, -1, 0},
{ 3, s_1_2, 1, -1, 0},
{ 3, s_1_3, -1, -1, 0},
{ 2, s_1_4, -1, -1, 0},
{ 3, s_1_5, 4, -1, 0},
{ 3, s_1_6, 4, -1, 0},
{ 4, s_1_7, 6, -1, 0},
{ 3, s_1_8, -1, -1, 0},
{ 3, s_1_9, -1, -1, 0},
{ 4, s_1_10, 9, -1, 0},
{ 3, s_1_11, -1, -1, 0},
{ 3, s_1_12, -1, -1, 0},
{ 4, s_1_13, 12, -1, 0},
{ 2, s_1_14, -1, -1, 0},
{ 3, s_1_15, 14, -1, 0},
{ 3, s_1_16, -1, -1, 0},
{ 5, s_1_17, 16, -1, 0},
{ 6, s_1_18, 16, -1, 0},
{ 4, s_1_19, -1, -1, 0},
{ 3, s_1_20, -1, -1, 0},
{ 2, s_1_21, -1, -1, 0},
{ 3, s_1_22, -1, -1, 0},
{ 2, s_1_23, -1, -1, 0},
{ 3, s_1_24, 23, -1, 0},
{ 3, s_1_25, 23, -1, 0},
{ 4, s_1_26, -1, -1, 0},
{ 3, s_1_27, -1, -1, 0},
{ 3, s_1_28, -1, -1, 0},
{ 2, s_1_29, -1, -1, 0},
{ 3, s_1_30, 29, -1, 0},
{ 3, s_1_31, -1, -1, 0},
{ 3, s_1_32, -1, -1, 0},
{ 3, s_1_33, -1, -1, 0},
{ 4, s_1_34, 33, -1, 0},
{ 2, s_1_35, -1, -1, 0},
{ 3, s_1_36, 35, -1, 0},
{ 3, s_1_37, 35, -1, 0},
{ 4, s_1_38, 37, -1, 0},
{ 3, s_1_39, -1, -1, 0},
{ 4, s_1_40, 39, -1, 0},
{ 3, s_1_41, -1, -1, 0},
{ 4, s_1_42, 41, -1, 0},
{ 3, s_1_43, -1, -1, 0},
{ 7, s_1_44, -1, -1, 0},
{ 3, s_1_45, -1, -1, 0},
{ 4, s_1_46, 45, -1, 0},
{ 5, s_1_47, 46, -1, 0},
{ 3, s_1_48, -1, -1, 0},
{ 2, s_1_49, -1, -1, 0},
{ 3, s_1_50, 49, -1, 0},
{ 4, s_1_51, 50, -1, 0},
{ 2, s_1_52, -1, -1, 0},
{ 3, s_1_53, -1, -1, 0},
{ 5, s_1_54, -1, -1, 0},
{ 3, s_1_55, -1, -1, 0},
{ 3, s_1_56, -1, -1, 0},
{ 2, s_1_57, -1, -1, 0},
{ 3, s_1_58, -1, -1, 0},
{ 6, s_1_59, -1, -1, 0},
{ 2, s_1_60, -1, -1, 0},
{ 5, s_1_61, 60, -1, 0}
};
static const symbol s_2_0[5] = { 'o', 'j', 'i', 'm', 'e' };
@ -583,17 +583,17 @@ static const symbol s_2_10[4] = { 'e', 's', 'i', 'u' };
static const struct among a_2[11] =
{
/* 0 */ { 5, s_2_0, -1, 7, 0},
/* 1 */ { 6, s_2_1, -1, 3, 0},
/* 2 */ { 5, s_2_2, -1, 6, 0},
/* 3 */ { 5, s_2_3, -1, 8, 0},
/* 4 */ { 4, s_2_4, -1, 1, 0},
/* 5 */ { 4, s_2_5, -1, 2, 0},
/* 6 */ { 5, s_2_6, -1, 5, 0},
/* 7 */ { 7, s_2_7, -1, 8, 0},
/* 8 */ { 6, s_2_8, -1, 1, 0},
/* 9 */ { 6, s_2_9, -1, 2, 0},
/* 10 */ { 4, s_2_10, -1, 4, 0}
{ 5, s_2_0, -1, 7, 0},
{ 6, s_2_1, -1, 3, 0},
{ 5, s_2_2, -1, 6, 0},
{ 5, s_2_3, -1, 8, 0},
{ 4, s_2_4, -1, 1, 0},
{ 4, s_2_5, -1, 2, 0},
{ 5, s_2_6, -1, 5, 0},
{ 7, s_2_7, -1, 8, 0},
{ 6, s_2_8, -1, 1, 0},
{ 6, s_2_9, -1, 2, 0},
{ 4, s_2_10, -1, 4, 0}
};
static const symbol s_3_0[2] = { 0xC4, 0x8D };
@ -601,15 +601,15 @@ static const symbol s_3_1[3] = { 'd', 0xC5, 0xBE };
static const struct among a_3[2] =
{
/* 0 */ { 2, s_3_0, -1, 1, 0},
/* 1 */ { 3, s_3_1, -1, 2, 0}
{ 2, s_3_0, -1, 1, 0},
{ 3, s_3_1, -1, 2, 0}
};
static const symbol s_4_0[2] = { 'g', 'd' };
static const struct among a_4[1] =
{
/* 0 */ { 2, s_4_0, -1, 1, 0}
{ 2, s_4_0, -1, 1, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 64, 1, 0, 64, 0, 0, 0, 0, 0, 0, 0, 4, 4 };
@ -626,44 +626,43 @@ static const symbol s_8[] = { 't' };
static const symbol s_9[] = { 'd' };
static const symbol s_10[] = { 'g' };
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 43 */
static int r_R1(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_step1(struct SN_env * z) { /* backwardmode */
static int r_step1(struct SN_env * z) {
{ int mlimit1; /* setlimit, line 45 */
{ int mlimit1;
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 45 */
if (!(find_among_b(z, a_0, 204))) { z->lb = mlimit1; return 0; } /* substring, line 45 */
z->bra = z->c; /* ], line 45 */
z->ket = z->c;
if (!(find_among_b(z, a_0, 204))) { z->lb = mlimit1; return 0; }
z->bra = z->c;
z->lb = mlimit1;
}
{ int ret = r_R1(z); /* call R1, line 45 */
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 229 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_step2(struct SN_env * z) { /* backwardmode */
/* repeat, line 232 */
static int r_step2(struct SN_env * z) {
while(1) {
int m1 = z->l - z->c; (void)m1;
while(1) { int m1 = z->l - z->c; (void)m1;
{ int mlimit2; /* setlimit, line 233 */
{ int mlimit2;
if (z->c < z->I[0]) goto lab0;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 233 */
if (!(find_among_b(z, a_1, 62))) { z->lb = mlimit2; goto lab0; } /* substring, line 233 */
z->bra = z->c; /* ], line 233 */
z->ket = z->c;
if (!(find_among_b(z, a_1, 62))) { z->lb = mlimit2; goto lab0; }
z->bra = z->c;
z->lb = mlimit2;
}
{ int ret = slice_del(z); /* delete, line 303 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
continue;
@ -674,51 +673,51 @@ static int r_step2(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_fix_conflicts(struct SN_env * z) { /* backwardmode */
static int r_fix_conflicts(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 307 */
if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2621472 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 307 */
z->ket = z->c;
if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2621472 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_2, 11);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 307 */
switch (among_var) { /* among, line 307 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 5, s_0); /* <-, line 309 */
{ int ret = slice_from_s(z, 5, s_0);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 5, s_1); /* <-, line 314 */
{ int ret = slice_from_s(z, 5, s_1);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 7, s_2); /* <-, line 319 */
{ int ret = slice_from_s(z, 7, s_2);
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 4, s_3); /* <-, line 322 */
{ int ret = slice_from_s(z, 4, s_3);
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 4, s_4); /* <-, line 324 */
{ int ret = slice_from_s(z, 4, s_4);
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 6, s_5); /* <-, line 327 */
{ int ret = slice_from_s(z, 6, s_5);
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 6, s_6); /* <-, line 328 */
{ int ret = slice_from_s(z, 6, s_6);
if (ret < 0) return ret;
}
break;
case 8:
{ int ret = slice_from_s(z, 6, s_7); /* <-, line 331 */
{ int ret = slice_from_s(z, 6, s_7);
if (ret < 0) return ret;
}
break;
@ -726,21 +725,21 @@ static int r_fix_conflicts(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_fix_chdz(struct SN_env * z) { /* backwardmode */
static int r_fix_chdz(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 338 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 190)) return 0; /* substring, line 338 */
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 190)) return 0;
among_var = find_among_b(z, a_3, 2);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 338 */
switch (among_var) { /* among, line 338 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 339 */
{ int ret = slice_from_s(z, 1, s_8);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 340 */
{ int ret = slice_from_s(z, 1, s_9);
if (ret < 0) return ret;
}
break;
@ -748,82 +747,82 @@ static int r_fix_chdz(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_fix_gd(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 345 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 100) return 0; /* substring, line 345 */
static int r_fix_gd(struct SN_env * z) {
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 100) return 0;
if (!(find_among_b(z, a_4, 1))) return 0;
z->bra = z->c; /* ], line 345 */
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 346 */
z->bra = z->c;
{ int ret = slice_from_s(z, 1, s_10);
if (ret < 0) return ret;
}
return 1;
}
extern int lithuanian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 355 */
{ int c1 = z->c; /* do, line 357 */
{ int c2 = z->c; /* try, line 359 */
{ int c_test3 = z->c; /* test, line 359 */
if (z->c == z->l || z->p[z->c] != 'a') { z->c = c2; goto lab1; } /* literal, line 359 */
extern int lithuanian_UTF_8_stem(struct SN_env * z) {
z->I[0] = z->l;
{ int c1 = z->c;
{ int c2 = z->c;
{ int c_test3 = z->c;
if (z->c == z->l || z->p[z->c] != 'a') { z->c = c2; goto lab1; }
z->c++;
z->c = c_test3;
}
if (!(len_utf8(z->p) > 6)) { z->c = c2; goto lab1; } /* $(<integer expression> > <integer expression>), line 359 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 1); /* hop, line 359 */
if (!(len_utf8(z->p) > 6)) { z->c = c2; goto lab1; }
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
if (ret < 0) { z->c = c2; goto lab1; }
z->c = ret;
}
lab1:
;
}
{ /* gopast */ /* grouping v, line 361 */
{
int ret = out_grouping_U(z, g_v, 97, 371, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
{ /* gopast */ /* non v, line 361 */
{
int ret = in_grouping_U(z, g_v, 97, 371, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 361 */
z->I[0] = z->c;
lab0:
z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 364 */
z->lb = z->c; z->c = z->l;
{ int m4 = z->l - z->c; (void)m4; /* do, line 365 */
{ int ret = r_fix_conflicts(z); /* call fix_conflicts, line 365 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_fix_conflicts(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 366 */
{ int ret = r_step1(z); /* call step1, line 366 */
{ int m5 = z->l - z->c; (void)m5;
{ int ret = r_step1(z);
if (ret < 0) return ret;
}
z->c = z->l - m5;
}
{ int m6 = z->l - z->c; (void)m6; /* do, line 367 */
{ int ret = r_fix_chdz(z); /* call fix_chdz, line 367 */
{ int m6 = z->l - z->c; (void)m6;
{ int ret = r_fix_chdz(z);
if (ret < 0) return ret;
}
z->c = z->l - m6;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 368 */
{ int ret = r_step2(z); /* call step2, line 368 */
{ int m7 = z->l - z->c; (void)m7;
{ int ret = r_step2(z);
if (ret < 0) return ret;
}
z->c = z->l - m7;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 369 */
{ int ret = r_fix_chdz(z); /* call fix_chdz, line 369 */
{ int m8 = z->l - z->c; (void)m8;
{ int ret = r_fix_chdz(z);
if (ret < 0) return ret;
}
z->c = z->l - m8;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 370 */
{ int ret = r_fix_gd(z); /* call fix_gd, line 370 */
{ int m9 = z->l - z->c; (void)m9;
{ int ret = r_fix_gd(z);
if (ret < 0) return ret;
}
z->c = z->l - m9;
@ -832,7 +831,7 @@ extern int lithuanian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * lithuanian_UTF_8_create_env(void) { return SN_create_env(0, 1, 0); }
extern struct SN_env * lithuanian_UTF_8_create_env(void) { return SN_create_env(0, 1); }
extern void lithuanian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -45,23 +45,23 @@ static const symbol s_0_16[9] = { 0xE0, 0xA4, 0xAA, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4
static const struct among a_0[17] =
{
/* 0 */ { 6, s_0_0, -1, 2, 0},
/* 1 */ { 9, s_0_1, -1, 1, 0},
/* 2 */ { 6, s_0_2, -1, 1, 0},
/* 3 */ { 9, s_0_3, -1, 1, 0},
/* 4 */ { 6, s_0_4, -1, 2, 0},
/* 5 */ { 12, s_0_5, -1, 1, 0},
/* 6 */ { 6, s_0_6, -1, 1, 0},
/* 7 */ { 6, s_0_7, -1, 2, 0},
/* 8 */ { 9, s_0_8, -1, 1, 0},
/* 9 */ { 9, s_0_9, -1, 1, 0},
/* 10 */ { 18, s_0_10, -1, 1, 0},
/* 11 */ { 6, s_0_11, -1, 1, 0},
/* 12 */ { 6, s_0_12, -1, 2, 0},
/* 13 */ { 6, s_0_13, -1, 1, 0},
/* 14 */ { 18, s_0_14, -1, 1, 0},
/* 15 */ { 6, s_0_15, -1, 2, 0},
/* 16 */ { 9, s_0_16, -1, 1, 0}
{ 6, s_0_0, -1, 2, 0},
{ 9, s_0_1, -1, 1, 0},
{ 6, s_0_2, -1, 1, 0},
{ 9, s_0_3, -1, 1, 0},
{ 6, s_0_4, -1, 2, 0},
{ 12, s_0_5, -1, 1, 0},
{ 6, s_0_6, -1, 1, 0},
{ 6, s_0_7, -1, 2, 0},
{ 9, s_0_8, -1, 1, 0},
{ 9, s_0_9, -1, 1, 0},
{ 18, s_0_10, -1, 1, 0},
{ 6, s_0_11, -1, 1, 0},
{ 6, s_0_12, -1, 2, 0},
{ 6, s_0_13, -1, 1, 0},
{ 18, s_0_14, -1, 1, 0},
{ 6, s_0_15, -1, 2, 0},
{ 9, s_0_16, -1, 1, 0}
};
static const symbol s_1_0[3] = { 0xE0, 0xA4, 0x81 };
@ -70,9 +70,9 @@ static const symbol s_1_2[3] = { 0xE0, 0xA5, 0x88 };
static const struct among a_1[3] =
{
/* 0 */ { 3, s_1_0, -1, -1, 0},
/* 1 */ { 3, s_1_1, -1, -1, 0},
/* 2 */ { 3, s_1_2, -1, -1, 0}
{ 3, s_1_0, -1, -1, 0},
{ 3, s_1_1, -1, -1, 0},
{ 3, s_1_2, -1, -1, 0}
};
static const symbol s_2_0[3] = { 0xE0, 0xA4, 0x81 };
@ -81,9 +81,9 @@ static const symbol s_2_2[3] = { 0xE0, 0xA5, 0x88 };
static const struct among a_2[3] =
{
/* 0 */ { 3, s_2_0, -1, 1, 0},
/* 1 */ { 3, s_2_1, -1, 1, 0},
/* 2 */ { 3, s_2_2, -1, 2, 0}
{ 3, s_2_0, -1, 1, 0},
{ 3, s_2_1, -1, 1, 0},
{ 3, s_2_2, -1, 2, 0}
};
static const symbol s_3_0[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x80 };
@ -180,97 +180,97 @@ static const symbol s_3_90[12] = { 0xE0, 0xA4, 0xAE, 0xE0, 0xA4, 0xBE, 0xE0, 0xA
static const struct among a_3[91] =
{
/* 0 */ { 9, s_3_0, -1, 1, 0},
/* 1 */ { 9, s_3_1, -1, 1, 0},
/* 2 */ { 12, s_3_2, 1, 1, 0},
/* 3 */ { 12, s_3_3, 1, 1, 0},
/* 4 */ { 12, s_3_4, -1, 1, 0},
/* 5 */ { 6, s_3_5, -1, 1, 0},
/* 6 */ { 6, s_3_6, -1, 1, 0},
/* 7 */ { 6, s_3_7, -1, 1, 0},
/* 8 */ { 9, s_3_8, 7, 1, 0},
/* 9 */ { 12, s_3_9, 8, 1, 0},
/* 10 */ { 9, s_3_10, 7, 1, 0},
/* 11 */ { 6, s_3_11, -1, 1, 0},
/* 12 */ { 9, s_3_12, -1, 1, 0},
/* 13 */ { 9, s_3_13, -1, 1, 0},
/* 14 */ { 6, s_3_14, -1, 1, 0},
/* 15 */ { 6, s_3_15, -1, 1, 0},
/* 16 */ { 6, s_3_16, -1, 1, 0},
/* 17 */ { 9, s_3_17, -1, 1, 0},
/* 18 */ { 12, s_3_18, 17, 1, 0},
/* 19 */ { 9, s_3_19, -1, 1, 0},
/* 20 */ { 6, s_3_20, -1, 1, 0},
/* 21 */ { 9, s_3_21, 20, 1, 0},
/* 22 */ { 9, s_3_22, 20, 1, 0},
/* 23 */ { 9, s_3_23, -1, 1, 0},
/* 24 */ { 12, s_3_24, 23, 1, 0},
/* 25 */ { 9, s_3_25, -1, 1, 0},
/* 26 */ { 12, s_3_26, 25, 1, 0},
/* 27 */ { 12, s_3_27, 25, 1, 0},
/* 28 */ { 6, s_3_28, -1, 1, 0},
/* 29 */ { 9, s_3_29, 28, 1, 0},
/* 30 */ { 9, s_3_30, 28, 1, 0},
/* 31 */ { 6, s_3_31, -1, 1, 0},
/* 32 */ { 9, s_3_32, 31, 1, 0},
/* 33 */ { 12, s_3_33, 31, 1, 0},
/* 34 */ { 9, s_3_34, 31, 1, 0},
/* 35 */ { 9, s_3_35, 31, 1, 0},
/* 36 */ { 12, s_3_36, 35, 1, 0},
/* 37 */ { 12, s_3_37, 35, 1, 0},
/* 38 */ { 6, s_3_38, -1, 1, 0},
/* 39 */ { 9, s_3_39, 38, 1, 0},
/* 40 */ { 9, s_3_40, 38, 1, 0},
/* 41 */ { 12, s_3_41, 40, 1, 0},
/* 42 */ { 9, s_3_42, 38, 1, 0},
/* 43 */ { 9, s_3_43, 38, 1, 0},
/* 44 */ { 6, s_3_44, -1, 1, 0},
/* 45 */ { 12, s_3_45, 44, 1, 0},
/* 46 */ { 12, s_3_46, 44, 1, 0},
/* 47 */ { 12, s_3_47, 44, 1, 0},
/* 48 */ { 9, s_3_48, -1, 1, 0},
/* 49 */ { 12, s_3_49, 48, 1, 0},
/* 50 */ { 12, s_3_50, 48, 1, 0},
/* 51 */ { 15, s_3_51, 50, 1, 0},
/* 52 */ { 12, s_3_52, 48, 1, 0},
/* 53 */ { 12, s_3_53, 48, 1, 0},
/* 54 */ { 12, s_3_54, -1, 1, 0},
/* 55 */ { 12, s_3_55, -1, 1, 0},
/* 56 */ { 12, s_3_56, -1, 1, 0},
/* 57 */ { 9, s_3_57, -1, 1, 0},
/* 58 */ { 9, s_3_58, -1, 1, 0},
/* 59 */ { 15, s_3_59, 58, 1, 0},
/* 60 */ { 12, s_3_60, -1, 1, 0},
/* 61 */ { 12, s_3_61, -1, 1, 0},
/* 62 */ { 9, s_3_62, -1, 1, 0},
/* 63 */ { 12, s_3_63, 62, 1, 0},
/* 64 */ { 12, s_3_64, 62, 1, 0},
/* 65 */ { 15, s_3_65, 64, 1, 0},
/* 66 */ { 12, s_3_66, 62, 1, 0},
/* 67 */ { 12, s_3_67, 62, 1, 0},
/* 68 */ { 9, s_3_68, -1, 1, 0},
/* 69 */ { 12, s_3_69, 68, 1, 0},
/* 70 */ { 9, s_3_70, -1, 1, 0},
/* 71 */ { 3, s_3_71, -1, 1, 0},
/* 72 */ { 6, s_3_72, 71, 1, 0},
/* 73 */ { 6, s_3_73, 71, 1, 0},
/* 74 */ { 9, s_3_74, 73, 1, 0},
/* 75 */ { 15, s_3_75, 74, 1, 0},
/* 76 */ { 15, s_3_76, 71, 1, 0},
/* 77 */ { 12, s_3_77, 71, 1, 0},
/* 78 */ { 12, s_3_78, 71, 1, 0},
/* 79 */ { 6, s_3_79, 71, 1, 0},
/* 80 */ { 6, s_3_80, 71, 1, 0},
/* 81 */ { 9, s_3_81, -1, 1, 0},
/* 82 */ { 12, s_3_82, 81, 1, 0},
/* 83 */ { 9, s_3_83, -1, 1, 0},
/* 84 */ { 12, s_3_84, 83, 1, 0},
/* 85 */ { 12, s_3_85, 83, 1, 0},
/* 86 */ { 6, s_3_86, -1, 1, 0},
/* 87 */ { 9, s_3_87, 86, 1, 0},
/* 88 */ { 9, s_3_88, 86, 1, 0},
/* 89 */ { 12, s_3_89, -1, 1, 0},
/* 90 */ { 12, s_3_90, -1, 1, 0}
{ 9, s_3_0, -1, 1, 0},
{ 9, s_3_1, -1, 1, 0},
{ 12, s_3_2, 1, 1, 0},
{ 12, s_3_3, 1, 1, 0},
{ 12, s_3_4, -1, 1, 0},
{ 6, s_3_5, -1, 1, 0},
{ 6, s_3_6, -1, 1, 0},
{ 6, s_3_7, -1, 1, 0},
{ 9, s_3_8, 7, 1, 0},
{ 12, s_3_9, 8, 1, 0},
{ 9, s_3_10, 7, 1, 0},
{ 6, s_3_11, -1, 1, 0},
{ 9, s_3_12, -1, 1, 0},
{ 9, s_3_13, -1, 1, 0},
{ 6, s_3_14, -1, 1, 0},
{ 6, s_3_15, -1, 1, 0},
{ 6, s_3_16, -1, 1, 0},
{ 9, s_3_17, -1, 1, 0},
{ 12, s_3_18, 17, 1, 0},
{ 9, s_3_19, -1, 1, 0},
{ 6, s_3_20, -1, 1, 0},
{ 9, s_3_21, 20, 1, 0},
{ 9, s_3_22, 20, 1, 0},
{ 9, s_3_23, -1, 1, 0},
{ 12, s_3_24, 23, 1, 0},
{ 9, s_3_25, -1, 1, 0},
{ 12, s_3_26, 25, 1, 0},
{ 12, s_3_27, 25, 1, 0},
{ 6, s_3_28, -1, 1, 0},
{ 9, s_3_29, 28, 1, 0},
{ 9, s_3_30, 28, 1, 0},
{ 6, s_3_31, -1, 1, 0},
{ 9, s_3_32, 31, 1, 0},
{ 12, s_3_33, 31, 1, 0},
{ 9, s_3_34, 31, 1, 0},
{ 9, s_3_35, 31, 1, 0},
{ 12, s_3_36, 35, 1, 0},
{ 12, s_3_37, 35, 1, 0},
{ 6, s_3_38, -1, 1, 0},
{ 9, s_3_39, 38, 1, 0},
{ 9, s_3_40, 38, 1, 0},
{ 12, s_3_41, 40, 1, 0},
{ 9, s_3_42, 38, 1, 0},
{ 9, s_3_43, 38, 1, 0},
{ 6, s_3_44, -1, 1, 0},
{ 12, s_3_45, 44, 1, 0},
{ 12, s_3_46, 44, 1, 0},
{ 12, s_3_47, 44, 1, 0},
{ 9, s_3_48, -1, 1, 0},
{ 12, s_3_49, 48, 1, 0},
{ 12, s_3_50, 48, 1, 0},
{ 15, s_3_51, 50, 1, 0},
{ 12, s_3_52, 48, 1, 0},
{ 12, s_3_53, 48, 1, 0},
{ 12, s_3_54, -1, 1, 0},
{ 12, s_3_55, -1, 1, 0},
{ 12, s_3_56, -1, 1, 0},
{ 9, s_3_57, -1, 1, 0},
{ 9, s_3_58, -1, 1, 0},
{ 15, s_3_59, 58, 1, 0},
{ 12, s_3_60, -1, 1, 0},
{ 12, s_3_61, -1, 1, 0},
{ 9, s_3_62, -1, 1, 0},
{ 12, s_3_63, 62, 1, 0},
{ 12, s_3_64, 62, 1, 0},
{ 15, s_3_65, 64, 1, 0},
{ 12, s_3_66, 62, 1, 0},
{ 12, s_3_67, 62, 1, 0},
{ 9, s_3_68, -1, 1, 0},
{ 12, s_3_69, 68, 1, 0},
{ 9, s_3_70, -1, 1, 0},
{ 3, s_3_71, -1, 1, 0},
{ 6, s_3_72, 71, 1, 0},
{ 6, s_3_73, 71, 1, 0},
{ 9, s_3_74, 73, 1, 0},
{ 15, s_3_75, 74, 1, 0},
{ 15, s_3_76, 71, 1, 0},
{ 12, s_3_77, 71, 1, 0},
{ 12, s_3_78, 71, 1, 0},
{ 6, s_3_79, 71, 1, 0},
{ 6, s_3_80, 71, 1, 0},
{ 9, s_3_81, -1, 1, 0},
{ 12, s_3_82, 81, 1, 0},
{ 9, s_3_83, -1, 1, 0},
{ 12, s_3_84, 83, 1, 0},
{ 12, s_3_85, 83, 1, 0},
{ 6, s_3_86, -1, 1, 0},
{ 9, s_3_87, 86, 1, 0},
{ 9, s_3_88, 86, 1, 0},
{ 12, s_3_89, -1, 1, 0},
{ 12, s_3_90, -1, 1, 0}
};
static const symbol s_0[] = { 0xE0, 0xA4, 0x8F };
@ -281,32 +281,32 @@ static const symbol s_4[] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8C };
static const symbol s_5[] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA5, 0x87 };
static const symbol s_6[] = { 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xB0 };
static int r_remove_category_1(struct SN_env * z) { /* backwardmode */
static int r_remove_category_1(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 54 */
among_var = find_among_b(z, a_0, 17); /* substring, line 54 */
z->ket = z->c;
among_var = find_among_b(z, a_0, 17);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 54 */
switch (among_var) { /* among, line 54 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 58 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int m1 = z->l - z->c; (void)m1; /* or, line 59 */
{ int m2 = z->l - z->c; (void)m2; /* or, line 59 */
if (!(eq_s_b(z, 3, s_0))) goto lab3; /* literal, line 59 */
{ int m1 = z->l - z->c; (void)m1;
{ int m2 = z->l - z->c; (void)m2;
if (!(eq_s_b(z, 3, s_0))) goto lab3;
goto lab2;
lab3:
z->c = z->l - m2;
if (!(eq_s_b(z, 3, s_1))) goto lab1; /* literal, line 59 */
if (!(eq_s_b(z, 3, s_1))) goto lab1;
}
lab2:
goto lab0;
lab1:
z->c = z->l - m1;
{ int ret = slice_del(z); /* delete, line 59 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
}
@ -316,46 +316,46 @@ static int r_remove_category_1(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_check_category_2(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 64 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 64 */
static int r_check_category_2(struct SN_env * z) {
z->ket = z->c;
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_1, 3))) return 0;
z->bra = z->c; /* ], line 64 */
z->bra = z->c;
return 1;
}
static int r_remove_category_2(struct SN_env * z) { /* backwardmode */
static int r_remove_category_2(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 70 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 70 */
z->ket = z->c;
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_2, 3);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 70 */
switch (among_var) { /* among, line 70 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 71 */
if (!(eq_s_b(z, 6, s_2))) goto lab1; /* literal, line 71 */
{ int m1 = z->l - z->c; (void)m1;
if (!(eq_s_b(z, 6, s_2))) goto lab1;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 6, s_3))) goto lab2; /* literal, line 71 */
if (!(eq_s_b(z, 6, s_3))) goto lab2;
goto lab0;
lab2:
z->c = z->l - m1;
if (!(eq_s_b(z, 6, s_4))) goto lab3; /* literal, line 71 */
if (!(eq_s_b(z, 6, s_4))) goto lab3;
goto lab0;
lab3:
z->c = z->l - m1;
if (!(eq_s_b(z, 6, s_5))) return 0; /* literal, line 71 */
if (!(eq_s_b(z, 6, s_5))) return 0;
}
lab0:
{ int ret = slice_del(z); /* delete, line 71 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
if (!(eq_s_b(z, 9, s_6))) return 0; /* literal, line 72 */
{ int ret = slice_del(z); /* delete, line 72 */
if (!(eq_s_b(z, 9, s_6))) return 0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -363,37 +363,36 @@ static int r_remove_category_2(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_remove_category_3(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 77 */
if (!(find_among_b(z, a_3, 91))) return 0; /* substring, line 77 */
z->bra = z->c; /* ], line 77 */
{ int ret = slice_del(z); /* delete, line 79 */
static int r_remove_category_3(struct SN_env * z) {
z->ket = z->c;
if (!(find_among_b(z, a_3, 91))) return 0;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
extern int nepali_UTF_8_stem(struct SN_env * z) { /* forwardmode */
z->lb = z->c; z->c = z->l; /* backwards, line 86 */
extern int nepali_UTF_8_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l;
{ int m1 = z->l - z->c; (void)m1; /* do, line 87 */
{ int ret = r_remove_category_1(z); /* call remove_category_1, line 87 */
{ int m1 = z->l - z->c; (void)m1;
{ int ret = r_remove_category_1(z);
if (ret < 0) return ret;
}
z->c = z->l - m1;
}
{ int m2 = z->l - z->c; (void)m2; /* do, line 88 */
/* repeat, line 89 */
while(1) { int m3 = z->l - z->c; (void)m3;
{ int m4 = z->l - z->c; (void)m4; /* do, line 89 */
{ int m5 = z->l - z->c; (void)m5; /* and, line 89 */
{ int ret = r_check_category_2(z); /* call check_category_2, line 89 */
{ int m2 = z->l - z->c; (void)m2;
while(1) {
int m3 = z->l - z->c; (void)m3;
{ int m4 = z->l - z->c; (void)m4;
{ int m5 = z->l - z->c; (void)m5;
{ int ret = r_check_category_2(z);
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
z->c = z->l - m5;
{ int ret = r_remove_category_2(z); /* call remove_category_2, line 89 */
{ int ret = r_remove_category_2(z);
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
@ -401,7 +400,7 @@ extern int nepali_UTF_8_stem(struct SN_env * z) { /* forwardmode */
lab2:
z->c = z->l - m4;
}
{ int ret = r_remove_category_3(z); /* call remove_category_3, line 89 */
{ int ret = r_remove_category_3(z);
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
@ -416,7 +415,7 @@ extern int nepali_UTF_8_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * nepali_UTF_8_create_env(void) { return SN_create_env(0, 0, 0); }
extern struct SN_env * nepali_UTF_8_create_env(void) { return SN_create_env(0, 0); }
extern void nepali_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -57,35 +57,35 @@ static const symbol s_0_28[3] = { 'a', 's', 't' };
static const struct among a_0[29] =
{
/* 0 */ { 1, s_0_0, -1, 1, 0},
/* 1 */ { 1, s_0_1, -1, 1, 0},
/* 2 */ { 3, s_0_2, 1, 1, 0},
/* 3 */ { 4, s_0_3, 1, 1, 0},
/* 4 */ { 4, s_0_4, 1, 1, 0},
/* 5 */ { 3, s_0_5, 1, 1, 0},
/* 6 */ { 3, s_0_6, 1, 1, 0},
/* 7 */ { 6, s_0_7, 6, 1, 0},
/* 8 */ { 4, s_0_8, 1, 3, 0},
/* 9 */ { 2, s_0_9, -1, 1, 0},
/* 10 */ { 5, s_0_10, 9, 1, 0},
/* 11 */ { 2, s_0_11, -1, 1, 0},
/* 12 */ { 2, s_0_12, -1, 1, 0},
/* 13 */ { 5, s_0_13, 12, 1, 0},
/* 14 */ { 1, s_0_14, -1, 2, 0},
/* 15 */ { 2, s_0_15, 14, 1, 0},
/* 16 */ { 2, s_0_16, 14, 1, 0},
/* 17 */ { 4, s_0_17, 16, 1, 0},
/* 18 */ { 5, s_0_18, 16, 1, 0},
/* 19 */ { 4, s_0_19, 16, 1, 0},
/* 20 */ { 7, s_0_20, 19, 1, 0},
/* 21 */ { 3, s_0_21, 14, 1, 0},
/* 22 */ { 6, s_0_22, 21, 1, 0},
/* 23 */ { 3, s_0_23, 14, 1, 0},
/* 24 */ { 3, s_0_24, 14, 1, 0},
/* 25 */ { 2, s_0_25, -1, 1, 0},
/* 26 */ { 3, s_0_26, 25, 1, 0},
/* 27 */ { 3, s_0_27, -1, 3, 0},
/* 28 */ { 3, s_0_28, -1, 1, 0}
{ 1, s_0_0, -1, 1, 0},
{ 1, s_0_1, -1, 1, 0},
{ 3, s_0_2, 1, 1, 0},
{ 4, s_0_3, 1, 1, 0},
{ 4, s_0_4, 1, 1, 0},
{ 3, s_0_5, 1, 1, 0},
{ 3, s_0_6, 1, 1, 0},
{ 6, s_0_7, 6, 1, 0},
{ 4, s_0_8, 1, 3, 0},
{ 2, s_0_9, -1, 1, 0},
{ 5, s_0_10, 9, 1, 0},
{ 2, s_0_11, -1, 1, 0},
{ 2, s_0_12, -1, 1, 0},
{ 5, s_0_13, 12, 1, 0},
{ 1, s_0_14, -1, 2, 0},
{ 2, s_0_15, 14, 1, 0},
{ 2, s_0_16, 14, 1, 0},
{ 4, s_0_17, 16, 1, 0},
{ 5, s_0_18, 16, 1, 0},
{ 4, s_0_19, 16, 1, 0},
{ 7, s_0_20, 19, 1, 0},
{ 3, s_0_21, 14, 1, 0},
{ 6, s_0_22, 21, 1, 0},
{ 3, s_0_23, 14, 1, 0},
{ 3, s_0_24, 14, 1, 0},
{ 2, s_0_25, -1, 1, 0},
{ 3, s_0_26, 25, 1, 0},
{ 3, s_0_27, -1, 3, 0},
{ 3, s_0_28, -1, 1, 0}
};
static const symbol s_1_0[2] = { 'd', 't' };
@ -93,8 +93,8 @@ static const symbol s_1_1[2] = { 'v', 't' };
static const struct among a_1[2] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0}
{ 2, s_1_0, -1, -1, 0},
{ 2, s_1_1, -1, -1, 0}
};
static const symbol s_2_0[3] = { 'l', 'e', 'g' };
@ -111,17 +111,17 @@ static const symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' };
static const struct among a_2[11] =
{
/* 0 */ { 3, s_2_0, -1, 1, 0},
/* 1 */ { 4, s_2_1, 0, 1, 0},
/* 2 */ { 2, s_2_2, -1, 1, 0},
/* 3 */ { 3, s_2_3, 2, 1, 0},
/* 4 */ { 3, s_2_4, 2, 1, 0},
/* 5 */ { 4, s_2_5, 4, 1, 0},
/* 6 */ { 3, s_2_6, -1, 1, 0},
/* 7 */ { 3, s_2_7, -1, 1, 0},
/* 8 */ { 4, s_2_8, 7, 1, 0},
/* 9 */ { 4, s_2_9, 7, 1, 0},
/* 10 */ { 7, s_2_10, 9, 1, 0}
{ 3, s_2_0, -1, 1, 0},
{ 4, s_2_1, 0, 1, 0},
{ 2, s_2_2, -1, 1, 0},
{ 3, s_2_3, 2, 1, 0},
{ 3, s_2_4, 2, 1, 0},
{ 4, s_2_5, 4, 1, 0},
{ 3, s_2_6, -1, 1, 0},
{ 3, s_2_7, -1, 1, 0},
{ 4, s_2_8, 7, 1, 0},
{ 4, s_2_9, 7, 1, 0},
{ 7, s_2_10, 9, 1, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 };
@ -130,66 +130,66 @@ static const unsigned char g_s_ending[] = { 119, 125, 149, 1 };
static const symbol s_0[] = { 'e', 'r' };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */
{ int c_test1 = z->c; /* test, line 30 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 30 */
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
{ int c_test1 = z->c;
{ int ret = skip_utf8(z->p, z->c, z->l, 3);
if (ret < 0) return 0;
z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 30 */
z->I[0] = z->c;
z->c = c_test1;
}
if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 31 */
{ /* gopast */ /* non v, line 31 */
if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0;
{
int ret = in_grouping_U(z, g_v, 97, 248, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 31 */
/* try, line 32 */
if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 32 */
z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 32 */
z->I[1] = z->c;
if (!(z->I[1] < z->I[0])) goto lab0;
z->I[1] = z->I[0];
lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) { /* backwardmode */
static int r_main_suffix(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 38 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 38 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 38 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
among_var = find_among_b(z, a_0, 29);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 38 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 39 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 44 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int m2 = z->l - z->c; (void)m2; /* or, line 46 */
if (in_grouping_b_U(z, g_s_ending, 98, 122, 0)) goto lab1; /* grouping s_ending, line 46 */
{ int m2 = z->l - z->c; (void)m2;
if (in_grouping_b_U(z, g_s_ending, 98, 122, 0)) goto lab1;
goto lab0;
lab1:
z->c = z->l - m2;
if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0; /* literal, line 46 */
if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0;
z->c--;
if (out_grouping_b_U(z, g_v, 97, 248, 0)) return 0; /* non v, line 46 */
if (out_grouping_b_U(z, g_v, 97, 248, 0)) return 0;
}
lab0:
{ int ret = slice_del(z); /* delete, line 46 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 48 */
{ int ret = slice_from_s(z, 2, s_0);
if (ret < 0) return ret;
}
break;
@ -197,71 +197,71 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 53 */
static int r_consonant_pair(struct SN_env * z) {
{ int m_test1 = z->l - z->c;
{ int mlimit2; /* setlimit, line 54 */
if (z->c < z->I[0]) return 0;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 54 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; } /* substring, line 54 */
{ int mlimit2;
if (z->c < z->I[1]) return 0;
mlimit2 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; }
if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 54 */
z->bra = z->c;
z->lb = mlimit2;
}
z->c = z->l - m_test1;
}
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
if (ret < 0) return 0;
z->c = ret; /* next, line 59 */
z->c = ret;
}
z->bra = z->c; /* ], line 59 */
{ int ret = slice_del(z); /* delete, line 59 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_other_suffix(struct SN_env * z) { /* backwardmode */
static int r_other_suffix(struct SN_env * z) {
{ int mlimit1; /* setlimit, line 63 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 63 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 63 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 63 */
z->bra = z->c;
z->lb = mlimit1;
}
{ int ret = slice_del(z); /* delete, line 67 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
extern int norwegian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 74 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 74 */
extern int norwegian_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 75 */
z->lb = z->c; z->c = z->l;
{ int m2 = z->l - z->c; (void)m2; /* do, line 76 */
{ int ret = r_main_suffix(z); /* call main_suffix, line 76 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_main_suffix(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 77 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 77 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_consonant_pair(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 78 */
{ int ret = r_other_suffix(z); /* call other_suffix, line 78 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_other_suffix(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
@ -270,7 +270,7 @@ extern int norwegian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * norwegian_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); }
extern struct SN_env * norwegian_UTF_8_create_env(void) { return SN_create_env(0, 2); }
extern void norwegian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -39,10 +39,10 @@ static const symbol s_0_3[2] = { 's', 's' };
static const struct among a_0[4] =
{
/* 0 */ { 1, s_0_0, -1, 3, 0},
/* 1 */ { 3, s_0_1, 0, 2, 0},
/* 2 */ { 4, s_0_2, 0, 1, 0},
/* 3 */ { 2, s_0_3, 0, -1, 0}
{ 1, s_0_0, -1, 3, 0},
{ 3, s_0_1, 0, 2, 0},
{ 4, s_0_2, 0, 1, 0},
{ 2, s_0_3, 0, -1, 0}
};
static const symbol s_1_1[2] = { 'b', 'b' };
@ -60,19 +60,19 @@ static const symbol s_1_12[2] = { 'i', 'z' };
static const struct among a_1[13] =
{
/* 0 */ { 0, 0, -1, 3, 0},
/* 1 */ { 2, s_1_1, 0, 2, 0},
/* 2 */ { 2, s_1_2, 0, 2, 0},
/* 3 */ { 2, s_1_3, 0, 2, 0},
/* 4 */ { 2, s_1_4, 0, 2, 0},
/* 5 */ { 2, s_1_5, 0, 1, 0},
/* 6 */ { 2, s_1_6, 0, 2, 0},
/* 7 */ { 2, s_1_7, 0, 2, 0},
/* 8 */ { 2, s_1_8, 0, 2, 0},
/* 9 */ { 2, s_1_9, 0, 2, 0},
/* 10 */ { 2, s_1_10, 0, 1, 0},
/* 11 */ { 2, s_1_11, 0, 2, 0},
/* 12 */ { 2, s_1_12, 0, 1, 0}
{ 0, 0, -1, 3, 0},
{ 2, s_1_1, 0, 2, 0},
{ 2, s_1_2, 0, 2, 0},
{ 2, s_1_3, 0, 2, 0},
{ 2, s_1_4, 0, 2, 0},
{ 2, s_1_5, 0, 1, 0},
{ 2, s_1_6, 0, 2, 0},
{ 2, s_1_7, 0, 2, 0},
{ 2, s_1_8, 0, 2, 0},
{ 2, s_1_9, 0, 2, 0},
{ 2, s_1_10, 0, 1, 0},
{ 2, s_1_11, 0, 2, 0},
{ 2, s_1_12, 0, 1, 0}
};
static const symbol s_2_0[2] = { 'e', 'd' };
@ -81,9 +81,9 @@ static const symbol s_2_2[3] = { 'i', 'n', 'g' };
static const struct among a_2[3] =
{
/* 0 */ { 2, s_2_0, -1, 2, 0},
/* 1 */ { 3, s_2_1, 0, 1, 0},
/* 2 */ { 3, s_2_2, -1, 2, 0}
{ 2, s_2_0, -1, 2, 0},
{ 3, s_2_1, 0, 1, 0},
{ 3, s_2_2, -1, 2, 0}
};
static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' };
@ -109,26 +109,26 @@ static const symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
static const struct among a_3[20] =
{
/* 0 */ { 4, s_3_0, -1, 3, 0},
/* 1 */ { 4, s_3_1, -1, 2, 0},
/* 2 */ { 4, s_3_2, -1, 4, 0},
/* 3 */ { 3, s_3_3, -1, 6, 0},
/* 4 */ { 4, s_3_4, -1, 9, 0},
/* 5 */ { 5, s_3_5, -1, 11, 0},
/* 6 */ { 5, s_3_6, -1, 5, 0},
/* 7 */ { 5, s_3_7, -1, 9, 0},
/* 8 */ { 6, s_3_8, -1, 13, 0},
/* 9 */ { 5, s_3_9, -1, 12, 0},
/* 10 */ { 6, s_3_10, -1, 1, 0},
/* 11 */ { 7, s_3_11, 10, 8, 0},
/* 12 */ { 5, s_3_12, -1, 9, 0},
/* 13 */ { 5, s_3_13, -1, 8, 0},
/* 14 */ { 7, s_3_14, 13, 7, 0},
/* 15 */ { 4, s_3_15, -1, 7, 0},
/* 16 */ { 4, s_3_16, -1, 8, 0},
/* 17 */ { 7, s_3_17, -1, 12, 0},
/* 18 */ { 7, s_3_18, -1, 10, 0},
/* 19 */ { 7, s_3_19, -1, 11, 0}
{ 4, s_3_0, -1, 3, 0},
{ 4, s_3_1, -1, 2, 0},
{ 4, s_3_2, -1, 4, 0},
{ 3, s_3_3, -1, 6, 0},
{ 4, s_3_4, -1, 9, 0},
{ 5, s_3_5, -1, 11, 0},
{ 5, s_3_6, -1, 5, 0},
{ 5, s_3_7, -1, 9, 0},
{ 6, s_3_8, -1, 13, 0},
{ 5, s_3_9, -1, 12, 0},
{ 6, s_3_10, -1, 1, 0},
{ 7, s_3_11, 10, 8, 0},
{ 5, s_3_12, -1, 9, 0},
{ 5, s_3_13, -1, 8, 0},
{ 7, s_3_14, 13, 7, 0},
{ 4, s_3_15, -1, 7, 0},
{ 4, s_3_16, -1, 8, 0},
{ 7, s_3_17, -1, 12, 0},
{ 7, s_3_18, -1, 10, 0},
{ 7, s_3_19, -1, 11, 0}
};
static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
@ -141,13 +141,13 @@ static const symbol s_4_6[4] = { 'n', 'e', 's', 's' };
static const struct among a_4[7] =
{
/* 0 */ { 5, s_4_0, -1, 2, 0},
/* 1 */ { 5, s_4_1, -1, 3, 0},
/* 2 */ { 5, s_4_2, -1, 1, 0},
/* 3 */ { 5, s_4_3, -1, 2, 0},
/* 4 */ { 4, s_4_4, -1, 2, 0},
/* 5 */ { 3, s_4_5, -1, 3, 0},
/* 6 */ { 4, s_4_6, -1, 3, 0}
{ 5, s_4_0, -1, 2, 0},
{ 5, s_4_1, -1, 3, 0},
{ 5, s_4_2, -1, 1, 0},
{ 5, s_4_3, -1, 2, 0},
{ 4, s_4_4, -1, 2, 0},
{ 3, s_4_5, -1, 3, 0},
{ 4, s_4_6, -1, 3, 0}
};
static const symbol s_5_0[2] = { 'i', 'c' };
@ -172,25 +172,25 @@ static const symbol s_5_18[2] = { 'o', 'u' };
static const struct among a_5[19] =
{
/* 0 */ { 2, s_5_0, -1, 1, 0},
/* 1 */ { 4, s_5_1, -1, 1, 0},
/* 2 */ { 4, s_5_2, -1, 1, 0},
/* 3 */ { 4, s_5_3, -1, 1, 0},
/* 4 */ { 4, s_5_4, -1, 1, 0},
/* 5 */ { 3, s_5_5, -1, 1, 0},
/* 6 */ { 3, s_5_6, -1, 1, 0},
/* 7 */ { 3, s_5_7, -1, 1, 0},
/* 8 */ { 3, s_5_8, -1, 1, 0},
/* 9 */ { 2, s_5_9, -1, 1, 0},
/* 10 */ { 3, s_5_10, -1, 1, 0},
/* 11 */ { 3, s_5_11, -1, 2, 0},
/* 12 */ { 2, s_5_12, -1, 1, 0},
/* 13 */ { 3, s_5_13, -1, 1, 0},
/* 14 */ { 3, s_5_14, -1, 1, 0},
/* 15 */ { 3, s_5_15, -1, 1, 0},
/* 16 */ { 4, s_5_16, 15, 1, 0},
/* 17 */ { 5, s_5_17, 16, 1, 0},
/* 18 */ { 2, s_5_18, -1, 1, 0}
{ 2, s_5_0, -1, 1, 0},
{ 4, s_5_1, -1, 1, 0},
{ 4, s_5_2, -1, 1, 0},
{ 4, s_5_3, -1, 1, 0},
{ 4, s_5_4, -1, 1, 0},
{ 3, s_5_5, -1, 1, 0},
{ 3, s_5_6, -1, 1, 0},
{ 3, s_5_7, -1, 1, 0},
{ 3, s_5_8, -1, 1, 0},
{ 2, s_5_9, -1, 1, 0},
{ 3, s_5_10, -1, 1, 0},
{ 3, s_5_11, -1, 2, 0},
{ 2, s_5_12, -1, 1, 0},
{ 3, s_5_13, -1, 1, 0},
{ 3, s_5_14, -1, 1, 0},
{ 3, s_5_15, -1, 1, 0},
{ 4, s_5_16, 15, 1, 0},
{ 5, s_5_17, 16, 1, 0},
{ 2, s_5_18, -1, 1, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 1 };
@ -222,43 +222,43 @@ static const symbol s_21[] = { 'Y' };
static const symbol s_22[] = { 'Y' };
static const symbol s_23[] = { 'y' };
static int r_shortv(struct SN_env * z) { /* backwardmode */
if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) return 0; /* non v_WXY, line 19 */
if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 19 */
if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* non v, line 19 */
static int r_shortv(struct SN_env * z) {
if (out_grouping_b_U(z, g_v_WXY, 89, 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;
return 1;
}
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 21 */
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 22 */
static int r_R2(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_Step_1a(struct SN_env * z) { /* backwardmode */
static int r_Step_1a(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 25 */
if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0; /* substring, line 25 */
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
among_var = find_among_b(z, a_0, 4);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 25 */
switch (among_var) { /* among, line 25 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */
{ int ret = slice_from_s(z, 2, s_0);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 27 */
{ int ret = slice_from_s(z, 1, s_1);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 29 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -266,72 +266,72 @@ static int r_Step_1a(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_Step_1b(struct SN_env * z) { /* backwardmode */
static int r_Step_1b(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 34 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 34 */
z->ket = z->c;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
among_var = find_among_b(z, a_2, 3);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 34 */
switch (among_var) { /* among, line 34 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = r_R1(z); /* call R1, line 35 */
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 2, s_2); /* <-, line 35 */
{ int ret = slice_from_s(z, 2, s_2);
if (ret < 0) return ret;
}
break;
case 2:
{ int m_test1 = z->l - z->c; /* test, line 38 */
{ /* gopast */ /* grouping v, line 38 */
{ int m_test1 = z->l - z->c;
{
int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
if (ret < 0) return 0;
z->c -= ret;
}
z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 38 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
{ int m_test2 = z->l - z->c; /* test, line 39 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 39 */
{ int m_test2 = z->l - z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
among_var = find_among_b(z, a_1, 13);
if (!(among_var)) return 0;
z->c = z->l - m_test2;
}
switch (among_var) { /* among, line 39 */
switch (among_var) {
case 1:
{ int ret;
{ int saved_c = z->c;
ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
ret = insert_s(z, z->c, z->c, 1, s_3);
z->c = saved_c;
}
if (ret < 0) return ret;
}
break;
case 2:
z->ket = z->c; /* [, line 44 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
z->ket = z->c;
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
if (ret < 0) return 0;
z->c = ret; /* next, line 44 */
z->c = ret;
}
z->bra = z->c; /* ], line 44 */
{ int ret = slice_del(z); /* delete, line 44 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 3:
if (z->c != z->I[0]) return 0; /* atmark, line 45 */
{ int m_test3 = z->l - z->c; /* test, line 45 */
{ int ret = r_shortv(z); /* call shortv, line 45 */
if (z->c != z->I[1]) return 0;
{ int m_test3 = z->l - z->c;
{ int ret = r_shortv(z);
if (ret <= 0) return ret;
}
z->c = z->l - m_test3;
}
{ int ret;
{ int saved_c = z->c;
ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
ret = insert_s(z, z->c, z->c, 1, s_4);
z->c = saved_c;
}
if (ret < 0) return ret;
@ -343,103 +343,103 @@ static int r_Step_1b(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_Step_1c(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 52 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 52 */
if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 52 */
static int r_Step_1c(struct SN_env * z) {
z->ket = z->c;
{ int m1 = z->l - z->c; (void)m1;
if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 52 */
if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0;
z->c--;
}
lab0:
z->bra = z->c; /* ], line 52 */
{ /* gopast */ /* grouping v, line 53 */
z->bra = z->c;
{
int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
if (ret < 0) return 0;
z->c -= ret;
}
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 54 */
{ int ret = slice_from_s(z, 1, s_5);
if (ret < 0) return ret;
}
return 1;
}
static int r_Step_2(struct SN_env * z) { /* backwardmode */
static int r_Step_2(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 58 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 58 */
z->ket = z->c;
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_3, 20);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 58 */
{ int ret = r_R1(z); /* call R1, line 58 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 58 */
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 4, s_6); /* <-, line 59 */
{ int ret = slice_from_s(z, 4, s_6);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 4, s_7); /* <-, line 60 */
{ int ret = slice_from_s(z, 4, s_7);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 4, s_8); /* <-, line 61 */
{ int ret = slice_from_s(z, 4, s_8);
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 4, s_9); /* <-, line 62 */
{ int ret = slice_from_s(z, 4, s_9);
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 3, s_10); /* <-, line 63 */
{ int ret = slice_from_s(z, 3, s_10);
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 1, s_11); /* <-, line 64 */
{ int ret = slice_from_s(z, 1, s_11);
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 3, s_12); /* <-, line 66 */
{ int ret = slice_from_s(z, 3, s_12);
if (ret < 0) return ret;
}
break;
case 8:
{ int ret = slice_from_s(z, 3, s_13); /* <-, line 68 */
{ int ret = slice_from_s(z, 3, s_13);
if (ret < 0) return ret;
}
break;
case 9:
{ int ret = slice_from_s(z, 2, s_14); /* <-, line 69 */
{ int ret = slice_from_s(z, 2, s_14);
if (ret < 0) return ret;
}
break;
case 10:
{ int ret = slice_from_s(z, 3, s_15); /* <-, line 72 */
{ int ret = slice_from_s(z, 3, s_15);
if (ret < 0) return ret;
}
break;
case 11:
{ int ret = slice_from_s(z, 3, s_16); /* <-, line 74 */
{ int ret = slice_from_s(z, 3, s_16);
if (ret < 0) return ret;
}
break;
case 12:
{ int ret = slice_from_s(z, 3, s_17); /* <-, line 76 */
{ int ret = slice_from_s(z, 3, s_17);
if (ret < 0) return ret;
}
break;
case 13:
{ int ret = slice_from_s(z, 3, s_18); /* <-, line 77 */
{ int ret = slice_from_s(z, 3, s_18);
if (ret < 0) return ret;
}
break;
@ -447,29 +447,29 @@ static int r_Step_2(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_Step_3(struct SN_env * z) { /* backwardmode */
static int r_Step_3(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 82 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 82 */
z->ket = z->c;
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_4, 7);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 82 */
{ int ret = r_R1(z); /* call R1, line 82 */
z->bra = z->c;
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 82 */
switch (among_var) {
case 1:
{ int ret = slice_from_s(z, 2, s_19); /* <-, line 83 */
{ int ret = slice_from_s(z, 2, s_19);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 2, s_20); /* <-, line 85 */
{ int ret = slice_from_s(z, 2, s_20);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 87 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -477,34 +477,34 @@ static int r_Step_3(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_Step_4(struct SN_env * z) { /* backwardmode */
static int r_Step_4(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 92 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 92 */
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_5, 19);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 92 */
{ int ret = r_R2(z); /* call R2, line 92 */
z->bra = z->c;
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
switch (among_var) { /* among, line 92 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 95 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int m1 = z->l - z->c; (void)m1; /* or, line 96 */
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 96 */
{ int m1 = z->l - z->c; (void)m1;
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 96 */
if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0;
z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 96 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -512,24 +512,24 @@ static int r_Step_4(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_Step_5a(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 101 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 101 */
static int r_Step_5a(struct SN_env * z) {
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
z->c--;
z->bra = z->c; /* ], line 101 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 102 */
{ int ret = r_R2(z); /* call R2, line 102 */
z->bra = z->c;
{ int m1 = z->l - z->c; (void)m1;
{ int ret = r_R2(z);
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = z->l - m1;
{ int ret = r_R1(z); /* call R1, line 102 */
{ int ret = r_R1(z);
if (ret <= 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* not, line 102 */
{ int ret = r_shortv(z); /* call shortv, line 102 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_shortv(z);
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
@ -539,66 +539,65 @@ static int r_Step_5a(struct SN_env * z) { /* backwardmode */
}
}
lab0:
{ int ret = slice_del(z); /* delete, line 103 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_Step_5b(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 107 */
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 107 */
static int r_Step_5b(struct SN_env * z) {
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
z->c--;
z->bra = z->c; /* ], line 107 */
{ int ret = r_R2(z); /* call R2, line 108 */
z->bra = z->c;
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 108 */
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
z->c--;
{ int ret = slice_del(z); /* delete, line 109 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
extern int porter_UTF_8_stem(struct SN_env * z) { /* forwardmode */
z->B[0] = 0; /* unset Y_found, line 115 */
{ int c1 = z->c; /* do, line 116 */
z->bra = z->c; /* [, line 116 */
if (z->c == z->l || z->p[z->c] != 'y') goto lab0; /* literal, line 116 */
extern int porter_UTF_8_stem(struct SN_env * z) {
z->I[2] = 0;
{ int c1 = z->c;
z->bra = z->c;
if (z->c == z->l || z->p[z->c] != 'y') goto lab0;
z->c++;
z->ket = z->c; /* ], line 116 */
{ int ret = slice_from_s(z, 1, s_21); /* <-, line 116 */
z->ket = z->c;
{ int ret = slice_from_s(z, 1, s_21);
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 116 */
z->I[2] = 1;
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 117 */
/* repeat, line 117 */
while(1) { int c3 = z->c;
while(1) { /* goto, line 117 */
{ int c2 = z->c;
while(1) {
int c3 = z->c;
while(1) {
int c4 = z->c;
if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab3; /* grouping v, line 117 */
z->bra = z->c; /* [, line 117 */
if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 117 */
if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab3;
z->bra = z->c;
if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
z->c++;
z->ket = z->c; /* ], line 117 */
z->ket = z->c;
z->c = c4;
break;
lab3:
z->c = c4;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
if (ret < 0) goto lab2;
z->c = ret; /* goto, line 117 */
z->c = ret;
}
}
{ int ret = slice_from_s(z, 1, s_22); /* <-, line 117 */
{ int ret = slice_from_s(z, 1, s_22);
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 117 */
z->I[2] = 1;
continue;
lab2:
z->c = c3;
@ -606,106 +605,105 @@ extern int porter_UTF_8_stem(struct SN_env * z) { /* forwardmode */
}
z->c = c2;
}
z->I[0] = z->l; /* $p1 = <integer expression>, line 119 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 120 */
{ int c5 = z->c; /* do, line 121 */
{ /* gopast */ /* grouping v, line 122 */
z->I[1] = z->l;
z->I[0] = z->l;
{ int c5 = z->c;
{
int ret = out_grouping_U(z, g_v, 97, 121, 1);
if (ret < 0) goto lab4;
z->c += ret;
}
{ /* gopast */ /* non v, line 122 */
{
int ret = in_grouping_U(z, g_v, 97, 121, 1);
if (ret < 0) goto lab4;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 122 */
{ /* gopast */ /* grouping v, line 123 */
z->I[1] = z->c;
{
int ret = out_grouping_U(z, g_v, 97, 121, 1);
if (ret < 0) goto lab4;
z->c += ret;
}
{ /* gopast */ /* non v, line 123 */
{
int ret = in_grouping_U(z, g_v, 97, 121, 1);
if (ret < 0) goto lab4;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 123 */
z->I[0] = z->c;
lab4:
z->c = c5;
}
z->lb = z->c; z->c = z->l; /* backwards, line 126 */
z->lb = z->c; z->c = z->l;
{ int m6 = z->l - z->c; (void)m6; /* do, line 127 */
{ int ret = r_Step_1a(z); /* call Step_1a, line 127 */
{ int m6 = z->l - z->c; (void)m6;
{ int ret = r_Step_1a(z);
if (ret < 0) return ret;
}
z->c = z->l - m6;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 128 */
{ int ret = r_Step_1b(z); /* call Step_1b, line 128 */
{ int m7 = z->l - z->c; (void)m7;
{ int ret = r_Step_1b(z);
if (ret < 0) return ret;
}
z->c = z->l - m7;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 129 */
{ int ret = r_Step_1c(z); /* call Step_1c, line 129 */
{ int m8 = z->l - z->c; (void)m8;
{ int ret = r_Step_1c(z);
if (ret < 0) return ret;
}
z->c = z->l - m8;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 130 */
{ int ret = r_Step_2(z); /* call Step_2, line 130 */
{ int m9 = z->l - z->c; (void)m9;
{ int ret = r_Step_2(z);
if (ret < 0) return ret;
}
z->c = z->l - m9;
}
{ int m10 = z->l - z->c; (void)m10; /* do, line 131 */
{ int ret = r_Step_3(z); /* call Step_3, line 131 */
{ int m10 = z->l - z->c; (void)m10;
{ int ret = r_Step_3(z);
if (ret < 0) return ret;
}
z->c = z->l - m10;
}
{ int m11 = z->l - z->c; (void)m11; /* do, line 132 */
{ int ret = r_Step_4(z); /* call Step_4, line 132 */
{ int m11 = z->l - z->c; (void)m11;
{ int ret = r_Step_4(z);
if (ret < 0) return ret;
}
z->c = z->l - m11;
}
{ int m12 = z->l - z->c; (void)m12; /* do, line 133 */
{ int ret = r_Step_5a(z); /* call Step_5a, line 133 */
{ int m12 = z->l - z->c; (void)m12;
{ int ret = r_Step_5a(z);
if (ret < 0) return ret;
}
z->c = z->l - m12;
}
{ int m13 = z->l - z->c; (void)m13; /* do, line 134 */
{ int ret = r_Step_5b(z); /* call Step_5b, line 134 */
{ int m13 = z->l - z->c; (void)m13;
{ int ret = r_Step_5b(z);
if (ret < 0) return ret;
}
z->c = z->l - m13;
}
z->c = z->lb;
{ int c14 = z->c; /* do, line 137 */
if (!(z->B[0])) goto lab5; /* Boolean test Y_found, line 137 */
/* repeat, line 137 */
while(1) { int c15 = z->c;
while(1) { /* goto, line 137 */
{ int c14 = z->c;
if (!(z->I[2])) goto lab5;
while(1) {
int c15 = z->c;
while(1) {
int c16 = z->c;
z->bra = z->c; /* [, line 137 */
if (z->c == z->l || z->p[z->c] != 'Y') goto lab7; /* literal, line 137 */
z->bra = z->c;
if (z->c == z->l || z->p[z->c] != 'Y') goto lab7;
z->c++;
z->ket = z->c; /* ], line 137 */
z->ket = z->c;
z->c = c16;
break;
lab7:
z->c = c16;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
if (ret < 0) goto lab6;
z->c = ret; /* goto, line 137 */
z->c = ret;
}
}
{ int ret = slice_from_s(z, 1, s_23); /* <-, line 137 */
{ int ret = slice_from_s(z, 1, s_23);
if (ret < 0) return ret;
}
continue;
@ -719,7 +717,7 @@ extern int porter_UTF_8_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * porter_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); }
extern struct SN_env * porter_UTF_8_create_env(void) { return SN_create_env(0, 3); }
extern void porter_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -43,15 +43,15 @@ static const symbol s_0_8[8] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8
static const struct among a_0[9] =
{
/* 0 */ { 10, s_0_0, -1, 1, 0},
/* 1 */ { 12, s_0_1, 0, 2, 0},
/* 2 */ { 12, s_0_2, 0, 2, 0},
/* 3 */ { 2, s_0_3, -1, 1, 0},
/* 4 */ { 4, s_0_4, 3, 2, 0},
/* 5 */ { 4, s_0_5, 3, 2, 0},
/* 6 */ { 6, s_0_6, -1, 1, 0},
/* 7 */ { 8, s_0_7, 6, 2, 0},
/* 8 */ { 8, s_0_8, 6, 2, 0}
{ 10, s_0_0, -1, 1, 0},
{ 12, s_0_1, 0, 2, 0},
{ 12, s_0_2, 0, 2, 0},
{ 2, s_0_3, -1, 1, 0},
{ 4, s_0_4, 3, 2, 0},
{ 4, s_0_5, 3, 2, 0},
{ 6, s_0_6, -1, 1, 0},
{ 8, s_0_7, 6, 2, 0},
{ 8, s_0_8, 6, 2, 0}
};
static const symbol s_1_0[6] = { 0xD0, 0xB5, 0xD0, 0xBC, 0xD1, 0x83 };
@ -83,32 +83,32 @@ static const symbol s_1_25[6] = { 0xD0, 0xBE, 0xD0, 0xB3, 0xD0, 0xBE };
static const struct among a_1[26] =
{
/* 0 */ { 6, s_1_0, -1, 1, 0},
/* 1 */ { 6, s_1_1, -1, 1, 0},
/* 2 */ { 4, s_1_2, -1, 1, 0},
/* 3 */ { 4, s_1_3, -1, 1, 0},
/* 4 */ { 4, s_1_4, -1, 1, 0},
/* 5 */ { 4, s_1_5, -1, 1, 0},
/* 6 */ { 4, s_1_6, -1, 1, 0},
/* 7 */ { 4, s_1_7, -1, 1, 0},
/* 8 */ { 4, s_1_8, -1, 1, 0},
/* 9 */ { 4, s_1_9, -1, 1, 0},
/* 10 */ { 4, s_1_10, -1, 1, 0},
/* 11 */ { 4, s_1_11, -1, 1, 0},
/* 12 */ { 4, s_1_12, -1, 1, 0},
/* 13 */ { 4, s_1_13, -1, 1, 0},
/* 14 */ { 6, s_1_14, -1, 1, 0},
/* 15 */ { 6, s_1_15, -1, 1, 0},
/* 16 */ { 4, s_1_16, -1, 1, 0},
/* 17 */ { 4, s_1_17, -1, 1, 0},
/* 18 */ { 4, s_1_18, -1, 1, 0},
/* 19 */ { 4, s_1_19, -1, 1, 0},
/* 20 */ { 4, s_1_20, -1, 1, 0},
/* 21 */ { 4, s_1_21, -1, 1, 0},
/* 22 */ { 4, s_1_22, -1, 1, 0},
/* 23 */ { 4, s_1_23, -1, 1, 0},
/* 24 */ { 6, s_1_24, -1, 1, 0},
/* 25 */ { 6, s_1_25, -1, 1, 0}
{ 6, s_1_0, -1, 1, 0},
{ 6, s_1_1, -1, 1, 0},
{ 4, s_1_2, -1, 1, 0},
{ 4, s_1_3, -1, 1, 0},
{ 4, s_1_4, -1, 1, 0},
{ 4, s_1_5, -1, 1, 0},
{ 4, s_1_6, -1, 1, 0},
{ 4, s_1_7, -1, 1, 0},
{ 4, s_1_8, -1, 1, 0},
{ 4, s_1_9, -1, 1, 0},
{ 4, s_1_10, -1, 1, 0},
{ 4, s_1_11, -1, 1, 0},
{ 4, s_1_12, -1, 1, 0},
{ 4, s_1_13, -1, 1, 0},
{ 6, s_1_14, -1, 1, 0},
{ 6, s_1_15, -1, 1, 0},
{ 4, s_1_16, -1, 1, 0},
{ 4, s_1_17, -1, 1, 0},
{ 4, s_1_18, -1, 1, 0},
{ 4, s_1_19, -1, 1, 0},
{ 4, s_1_20, -1, 1, 0},
{ 4, s_1_21, -1, 1, 0},
{ 4, s_1_22, -1, 1, 0},
{ 4, s_1_23, -1, 1, 0},
{ 6, s_1_24, -1, 1, 0},
{ 6, s_1_25, -1, 1, 0}
};
static const symbol s_2_0[4] = { 0xD0, 0xB2, 0xD1, 0x88 };
@ -122,14 +122,14 @@ static const symbol s_2_7[4] = { 0xD0, 0xBD, 0xD0, 0xBD };
static const struct among a_2[8] =
{
/* 0 */ { 4, s_2_0, -1, 1, 0},
/* 1 */ { 6, s_2_1, 0, 2, 0},
/* 2 */ { 6, s_2_2, 0, 2, 0},
/* 3 */ { 2, s_2_3, -1, 1, 0},
/* 4 */ { 4, s_2_4, 3, 1, 0},
/* 5 */ { 6, s_2_5, 4, 2, 0},
/* 6 */ { 4, s_2_6, -1, 1, 0},
/* 7 */ { 4, s_2_7, -1, 1, 0}
{ 4, s_2_0, -1, 1, 0},
{ 6, s_2_1, 0, 2, 0},
{ 6, s_2_2, 0, 2, 0},
{ 2, s_2_3, -1, 1, 0},
{ 4, s_2_4, 3, 1, 0},
{ 6, s_2_5, 4, 2, 0},
{ 4, s_2_6, -1, 1, 0},
{ 4, s_2_7, -1, 1, 0}
};
static const symbol s_3_0[4] = { 0xD1, 0x81, 0xD1, 0x8C };
@ -137,8 +137,8 @@ static const symbol s_3_1[4] = { 0xD1, 0x81, 0xD1, 0x8F };
static const struct among a_3[2] =
{
/* 0 */ { 4, s_3_0, -1, 1, 0},
/* 1 */ { 4, s_3_1, -1, 1, 0}
{ 4, s_3_0, -1, 1, 0},
{ 4, s_3_1, -1, 1, 0}
};
static const symbol s_4_0[4] = { 0xD1, 0x8B, 0xD1, 0x82 };
@ -190,52 +190,52 @@ static const symbol s_4_45[6] = { 0xD0, 0xBD, 0xD0, 0xBD, 0xD0, 0xBE };
static const struct among a_4[46] =
{
/* 0 */ { 4, s_4_0, -1, 2, 0},
/* 1 */ { 4, s_4_1, -1, 1, 0},
/* 2 */ { 6, s_4_2, 1, 2, 0},
/* 3 */ { 4, s_4_3, -1, 2, 0},
/* 4 */ { 4, s_4_4, -1, 1, 0},
/* 5 */ { 6, s_4_5, 4, 2, 0},
/* 6 */ { 4, s_4_6, -1, 2, 0},
/* 7 */ { 4, s_4_7, -1, 1, 0},
/* 8 */ { 6, s_4_8, 7, 2, 0},
/* 9 */ { 4, s_4_9, -1, 1, 0},
/* 10 */ { 6, s_4_10, 9, 2, 0},
/* 11 */ { 6, s_4_11, 9, 2, 0},
/* 12 */ { 6, s_4_12, -1, 1, 0},
/* 13 */ { 6, s_4_13, -1, 2, 0},
/* 14 */ { 2, s_4_14, -1, 2, 0},
/* 15 */ { 4, s_4_15, 14, 2, 0},
/* 16 */ { 4, s_4_16, -1, 1, 0},
/* 17 */ { 6, s_4_17, 16, 2, 0},
/* 18 */ { 6, s_4_18, 16, 2, 0},
/* 19 */ { 4, s_4_19, -1, 1, 0},
/* 20 */ { 6, s_4_20, 19, 2, 0},
/* 21 */ { 6, s_4_21, -1, 1, 0},
/* 22 */ { 6, s_4_22, -1, 2, 0},
/* 23 */ { 6, s_4_23, -1, 1, 0},
/* 24 */ { 8, s_4_24, 23, 2, 0},
/* 25 */ { 8, s_4_25, 23, 2, 0},
/* 26 */ { 4, s_4_26, -1, 1, 0},
/* 27 */ { 6, s_4_27, 26, 2, 0},
/* 28 */ { 6, s_4_28, 26, 2, 0},
/* 29 */ { 2, s_4_29, -1, 1, 0},
/* 30 */ { 4, s_4_30, 29, 2, 0},
/* 31 */ { 4, s_4_31, 29, 2, 0},
/* 32 */ { 2, s_4_32, -1, 1, 0},
/* 33 */ { 4, s_4_33, 32, 2, 0},
/* 34 */ { 4, s_4_34, 32, 2, 0},
/* 35 */ { 4, s_4_35, -1, 2, 0},
/* 36 */ { 4, s_4_36, -1, 1, 0},
/* 37 */ { 4, s_4_37, -1, 2, 0},
/* 38 */ { 2, s_4_38, -1, 1, 0},
/* 39 */ { 4, s_4_39, 38, 2, 0},
/* 40 */ { 4, s_4_40, -1, 1, 0},
/* 41 */ { 6, s_4_41, 40, 2, 0},
/* 42 */ { 6, s_4_42, 40, 2, 0},
/* 43 */ { 4, s_4_43, -1, 1, 0},
/* 44 */ { 6, s_4_44, 43, 2, 0},
/* 45 */ { 6, s_4_45, 43, 1, 0}
{ 4, s_4_0, -1, 2, 0},
{ 4, s_4_1, -1, 1, 0},
{ 6, s_4_2, 1, 2, 0},
{ 4, s_4_3, -1, 2, 0},
{ 4, s_4_4, -1, 1, 0},
{ 6, s_4_5, 4, 2, 0},
{ 4, s_4_6, -1, 2, 0},
{ 4, s_4_7, -1, 1, 0},
{ 6, s_4_8, 7, 2, 0},
{ 4, s_4_9, -1, 1, 0},
{ 6, s_4_10, 9, 2, 0},
{ 6, s_4_11, 9, 2, 0},
{ 6, s_4_12, -1, 1, 0},
{ 6, s_4_13, -1, 2, 0},
{ 2, s_4_14, -1, 2, 0},
{ 4, s_4_15, 14, 2, 0},
{ 4, s_4_16, -1, 1, 0},
{ 6, s_4_17, 16, 2, 0},
{ 6, s_4_18, 16, 2, 0},
{ 4, s_4_19, -1, 1, 0},
{ 6, s_4_20, 19, 2, 0},
{ 6, s_4_21, -1, 1, 0},
{ 6, s_4_22, -1, 2, 0},
{ 6, s_4_23, -1, 1, 0},
{ 8, s_4_24, 23, 2, 0},
{ 8, s_4_25, 23, 2, 0},
{ 4, s_4_26, -1, 1, 0},
{ 6, s_4_27, 26, 2, 0},
{ 6, s_4_28, 26, 2, 0},
{ 2, s_4_29, -1, 1, 0},
{ 4, s_4_30, 29, 2, 0},
{ 4, s_4_31, 29, 2, 0},
{ 2, s_4_32, -1, 1, 0},
{ 4, s_4_33, 32, 2, 0},
{ 4, s_4_34, 32, 2, 0},
{ 4, s_4_35, -1, 2, 0},
{ 4, s_4_36, -1, 1, 0},
{ 4, s_4_37, -1, 2, 0},
{ 2, s_4_38, -1, 1, 0},
{ 4, s_4_39, 38, 2, 0},
{ 4, s_4_40, -1, 1, 0},
{ 6, s_4_41, 40, 2, 0},
{ 6, s_4_42, 40, 2, 0},
{ 4, s_4_43, -1, 1, 0},
{ 6, s_4_44, 43, 2, 0},
{ 6, s_4_45, 43, 1, 0}
};
static const symbol s_5_0[2] = { 0xD1, 0x83 };
@ -277,42 +277,42 @@ static const symbol s_5_35[2] = { 0xD0, 0xBE };
static const struct among a_5[36] =
{
/* 0 */ { 2, s_5_0, -1, 1, 0},
/* 1 */ { 4, s_5_1, -1, 1, 0},
/* 2 */ { 6, s_5_2, 1, 1, 0},
/* 3 */ { 4, s_5_3, -1, 1, 0},
/* 4 */ { 2, s_5_4, -1, 1, 0},
/* 5 */ { 2, s_5_5, -1, 1, 0},
/* 6 */ { 2, s_5_6, -1, 1, 0},
/* 7 */ { 4, s_5_7, 6, 1, 0},
/* 8 */ { 4, s_5_8, 6, 1, 0},
/* 9 */ { 2, s_5_9, -1, 1, 0},
/* 10 */ { 4, s_5_10, 9, 1, 0},
/* 11 */ { 4, s_5_11, 9, 1, 0},
/* 12 */ { 2, s_5_12, -1, 1, 0},
/* 13 */ { 4, s_5_13, -1, 1, 0},
/* 14 */ { 4, s_5_14, -1, 1, 0},
/* 15 */ { 2, s_5_15, -1, 1, 0},
/* 16 */ { 4, s_5_16, 15, 1, 0},
/* 17 */ { 4, s_5_17, 15, 1, 0},
/* 18 */ { 2, s_5_18, -1, 1, 0},
/* 19 */ { 4, s_5_19, 18, 1, 0},
/* 20 */ { 4, s_5_20, 18, 1, 0},
/* 21 */ { 6, s_5_21, 18, 1, 0},
/* 22 */ { 8, s_5_22, 21, 1, 0},
/* 23 */ { 6, s_5_23, 18, 1, 0},
/* 24 */ { 2, s_5_24, -1, 1, 0},
/* 25 */ { 4, s_5_25, 24, 1, 0},
/* 26 */ { 6, s_5_26, 25, 1, 0},
/* 27 */ { 4, s_5_27, 24, 1, 0},
/* 28 */ { 4, s_5_28, 24, 1, 0},
/* 29 */ { 4, s_5_29, -1, 1, 0},
/* 30 */ { 6, s_5_30, 29, 1, 0},
/* 31 */ { 4, s_5_31, -1, 1, 0},
/* 32 */ { 4, s_5_32, -1, 1, 0},
/* 33 */ { 6, s_5_33, 32, 1, 0},
/* 34 */ { 4, s_5_34, -1, 1, 0},
/* 35 */ { 2, s_5_35, -1, 1, 0}
{ 2, s_5_0, -1, 1, 0},
{ 4, s_5_1, -1, 1, 0},
{ 6, s_5_2, 1, 1, 0},
{ 4, s_5_3, -1, 1, 0},
{ 2, s_5_4, -1, 1, 0},
{ 2, s_5_5, -1, 1, 0},
{ 2, s_5_6, -1, 1, 0},
{ 4, s_5_7, 6, 1, 0},
{ 4, s_5_8, 6, 1, 0},
{ 2, s_5_9, -1, 1, 0},
{ 4, s_5_10, 9, 1, 0},
{ 4, s_5_11, 9, 1, 0},
{ 2, s_5_12, -1, 1, 0},
{ 4, s_5_13, -1, 1, 0},
{ 4, s_5_14, -1, 1, 0},
{ 2, s_5_15, -1, 1, 0},
{ 4, s_5_16, 15, 1, 0},
{ 4, s_5_17, 15, 1, 0},
{ 2, s_5_18, -1, 1, 0},
{ 4, s_5_19, 18, 1, 0},
{ 4, s_5_20, 18, 1, 0},
{ 6, s_5_21, 18, 1, 0},
{ 8, s_5_22, 21, 1, 0},
{ 6, s_5_23, 18, 1, 0},
{ 2, s_5_24, -1, 1, 0},
{ 4, s_5_25, 24, 1, 0},
{ 6, s_5_26, 25, 1, 0},
{ 4, s_5_27, 24, 1, 0},
{ 4, s_5_28, 24, 1, 0},
{ 4, s_5_29, -1, 1, 0},
{ 6, s_5_30, 29, 1, 0},
{ 4, s_5_31, -1, 1, 0},
{ 4, s_5_32, -1, 1, 0},
{ 6, s_5_33, 32, 1, 0},
{ 4, s_5_34, -1, 1, 0},
{ 2, s_5_35, -1, 1, 0}
};
static const symbol s_6_0[6] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82 };
@ -320,8 +320,8 @@ static const symbol s_6_1[8] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82, 0xD1, 0x8C
static const struct among a_6[2] =
{
/* 0 */ { 6, s_6_0, -1, 1, 0},
/* 1 */ { 8, s_6_1, -1, 1, 0}
{ 6, s_6_0, -1, 1, 0},
{ 8, s_6_1, -1, 1, 0}
};
static const symbol s_7_0[6] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88 };
@ -331,10 +331,10 @@ static const symbol s_7_3[2] = { 0xD0, 0xBD };
static const struct among a_7[4] =
{
/* 0 */ { 6, s_7_0, -1, 1, 0},
/* 1 */ { 2, s_7_1, -1, 3, 0},
/* 2 */ { 8, s_7_2, -1, 1, 0},
/* 3 */ { 2, s_7_3, -1, 2, 0}
{ 6, s_7_0, -1, 1, 0},
{ 2, s_7_1, -1, 3, 0},
{ 8, s_7_2, -1, 1, 0},
{ 2, s_7_3, -1, 2, 0}
};
static const unsigned char g_v[] = { 33, 65, 8, 232 };
@ -352,65 +352,65 @@ static const symbol s_9[] = { 0xD1, 0x91 };
static const symbol s_10[] = { 0xD0, 0xB5 };
static const symbol s_11[] = { 0xD0, 0xB8 };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 61 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 62 */
{ int c1 = z->c; /* do, line 63 */
{ /* gopast */ /* grouping v, line 64 */
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
z->I[0] = z->l;
{ int c1 = z->c;
{
int ret = out_grouping_U(z, g_v, 1072, 1103, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
z->I[0] = z->c; /* setmark pV, line 64 */
{ /* gopast */ /* non v, line 64 */
z->I[1] = z->c;
{
int ret = in_grouping_U(z, g_v, 1072, 1103, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
{ /* gopast */ /* grouping v, line 65 */
{
int ret = out_grouping_U(z, g_v, 1072, 1103, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
{ /* gopast */ /* non v, line 65 */
{
int ret = in_grouping_U(z, g_v, 1072, 1103, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 65 */
z->I[0] = z->c;
lab0:
z->c = c1;
}
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 71 */
static int r_R2(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
return 1;
}
static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */
static int r_perfective_gerund(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 74 */
among_var = find_among_b(z, a_0, 9); /* substring, line 74 */
z->ket = z->c;
among_var = find_among_b(z, a_0, 9);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 74 */
switch (among_var) { /* among, line 74 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 78 */
if (!(eq_s_b(z, 2, s_0))) goto lab1; /* literal, line 78 */
{ int m1 = z->l - z->c; (void)m1;
if (!(eq_s_b(z, 2, s_0))) goto lab1;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 2, s_1))) return 0; /* literal, line 78 */
if (!(eq_s_b(z, 2, s_1))) return 0;
}
lab0:
{ int ret = slice_del(z); /* delete, line 78 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 85 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -418,42 +418,42 @@ static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_adjective(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 90 */
if (!(find_among_b(z, a_1, 26))) return 0; /* substring, line 90 */
z->bra = z->c; /* ], line 90 */
{ int ret = slice_del(z); /* delete, line 99 */
static int r_adjective(struct SN_env * z) {
z->ket = z->c;
if (!(find_among_b(z, a_1, 26))) return 0;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_adjectival(struct SN_env * z) { /* backwardmode */
static int r_adjectival(struct SN_env * z) {
int among_var;
{ int ret = r_adjective(z); /* call adjective, line 104 */
{ int ret = r_adjective(z);
if (ret <= 0) return ret;
}
{ int m1 = z->l - z->c; (void)m1; /* try, line 111 */
z->ket = z->c; /* [, line 112 */
among_var = find_among_b(z, a_2, 8); /* substring, line 112 */
{ int m1 = z->l - z->c; (void)m1;
z->ket = z->c;
among_var = find_among_b(z, a_2, 8);
if (!(among_var)) { z->c = z->l - m1; goto lab0; }
z->bra = z->c; /* ], line 112 */
switch (among_var) { /* among, line 112 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int m2 = z->l - z->c; (void)m2; /* or, line 117 */
if (!(eq_s_b(z, 2, s_2))) goto lab2; /* literal, line 117 */
{ int m2 = z->l - z->c; (void)m2;
if (!(eq_s_b(z, 2, s_2))) goto lab2;
goto lab1;
lab2:
z->c = z->l - m2;
if (!(eq_s_b(z, 2, s_3))) { z->c = z->l - m1; goto lab0; } /* literal, line 117 */
if (!(eq_s_b(z, 2, s_3))) { z->c = z->l - m1; goto lab0; }
}
lab1:
{ int ret = slice_del(z); /* delete, line 117 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 124 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -464,39 +464,39 @@ static int r_adjectival(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_reflexive(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 131 */
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 140 && z->p[z->c - 1] != 143)) return 0; /* substring, line 131 */
static int r_reflexive(struct SN_env * z) {
z->ket = z->c;
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 140 && z->p[z->c - 1] != 143)) return 0;
if (!(find_among_b(z, a_3, 2))) return 0;
z->bra = z->c; /* ], line 131 */
{ int ret = slice_del(z); /* delete, line 134 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_verb(struct SN_env * z) { /* backwardmode */
static int r_verb(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 139 */
among_var = find_among_b(z, a_4, 46); /* substring, line 139 */
z->ket = z->c;
among_var = find_among_b(z, a_4, 46);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 139 */
switch (among_var) { /* among, line 139 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 145 */
if (!(eq_s_b(z, 2, s_4))) goto lab1; /* literal, line 145 */
{ int m1 = z->l - z->c; (void)m1;
if (!(eq_s_b(z, 2, s_4))) goto lab1;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 2, s_5))) return 0; /* literal, line 145 */
if (!(eq_s_b(z, 2, s_5))) return 0;
}
lab0:
{ int ret = slice_del(z); /* delete, line 145 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 153 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -504,57 +504,57 @@ static int r_verb(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_noun(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 162 */
if (!(find_among_b(z, a_5, 36))) return 0; /* substring, line 162 */
z->bra = z->c; /* ], line 162 */
{ int ret = slice_del(z); /* delete, line 169 */
static int r_noun(struct SN_env * z) {
z->ket = z->c;
if (!(find_among_b(z, a_5, 36))) return 0;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_derivational(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 178 */
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 130 && z->p[z->c - 1] != 140)) return 0; /* substring, line 178 */
static int r_derivational(struct SN_env * z) {
z->ket = z->c;
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 130 && z->p[z->c - 1] != 140)) return 0;
if (!(find_among_b(z, a_6, 2))) return 0;
z->bra = z->c; /* ], line 178 */
{ int ret = r_R2(z); /* call R2, line 178 */
z->bra = z->c;
{ int ret = r_R2(z);
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 181 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
return 1;
}
static int r_tidy_up(struct SN_env * z) { /* backwardmode */
static int r_tidy_up(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 186 */
among_var = find_among_b(z, a_7, 4); /* substring, line 186 */
z->ket = z->c;
among_var = find_among_b(z, a_7, 4);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 186 */
switch (among_var) { /* among, line 186 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 190 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 191 */
if (!(eq_s_b(z, 2, s_6))) return 0; /* literal, line 191 */
z->bra = z->c; /* ], line 191 */
if (!(eq_s_b(z, 2, s_7))) return 0; /* literal, line 191 */
{ int ret = slice_del(z); /* delete, line 191 */
z->ket = z->c;
if (!(eq_s_b(z, 2, s_6))) return 0;
z->bra = z->c;
if (!(eq_s_b(z, 2, s_7))) return 0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
if (!(eq_s_b(z, 2, s_8))) return 0; /* literal, line 194 */
{ int ret = slice_del(z); /* delete, line 194 */
if (!(eq_s_b(z, 2, s_8))) return 0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 196 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -562,26 +562,25 @@ static int r_tidy_up(struct SN_env * z) { /* backwardmode */
return 1;
}
extern int russian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 205 */
/* repeat, line 205 */
while(1) { int c2 = z->c;
while(1) { /* goto, line 205 */
extern int russian_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c;
while(1) {
int c2 = z->c;
while(1) {
int c3 = z->c;
z->bra = z->c; /* [, line 205 */
if (!(eq_s(z, 2, s_9))) goto lab2; /* literal, line 205 */
z->ket = z->c; /* ], line 205 */
z->bra = z->c;
if (!(eq_s(z, 2, s_9))) goto lab2;
z->ket = z->c;
z->c = c3;
break;
lab2:
z->c = c3;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
if (ret < 0) goto lab1;
z->c = ret; /* goto, line 205 */
z->c = ret;
}
}
{ int ret = slice_from_s(z, 2, s_10); /* <-, line 205 */
{ int ret = slice_from_s(z, 2, s_10);
if (ret < 0) return ret;
}
continue;
@ -591,49 +590,49 @@ extern int russian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
}
z->c = c1;
}
/* do, line 207 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 207 */
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->lb = z->c; z->c = z->l; /* backwards, line 208 */
z->lb = z->c; z->c = z->l;
{ int mlimit4; /* setlimit, line 208 */
if (z->c < z->I[0]) return 0;
mlimit4 = z->lb; z->lb = z->I[0];
{ int m5 = z->l - z->c; (void)m5; /* do, line 209 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 210 */
{ int ret = r_perfective_gerund(z); /* call perfective_gerund, line 210 */
{ int mlimit4;
if (z->c < z->I[1]) return 0;
mlimit4 = z->lb; z->lb = z->I[1];
{ int m5 = z->l - z->c; (void)m5;
{ int m6 = z->l - z->c; (void)m6;
{ int ret = r_perfective_gerund(z);
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
goto lab4;
lab5:
z->c = z->l - m6;
{ int m7 = z->l - z->c; (void)m7; /* try, line 211 */
{ int ret = r_reflexive(z); /* call reflexive, line 211 */
{ int m7 = z->l - z->c; (void)m7;
{ int ret = r_reflexive(z);
if (ret == 0) { z->c = z->l - m7; goto lab6; }
if (ret < 0) return ret;
}
lab6:
;
}
{ int m8 = z->l - z->c; (void)m8; /* or, line 212 */
{ int ret = r_adjectival(z); /* call adjectival, line 212 */
{ int m8 = z->l - z->c; (void)m8;
{ int ret = r_adjectival(z);
if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
goto lab7;
lab8:
z->c = z->l - m8;
{ int ret = r_verb(z); /* call verb, line 212 */
{ int ret = r_verb(z);
if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
goto lab7;
lab9:
z->c = z->l - m8;
{ int ret = r_noun(z); /* call noun, line 212 */
{ int ret = r_noun(z);
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
@ -645,24 +644,24 @@ extern int russian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
lab3:
z->c = z->l - m5;
}
{ int m9 = z->l - z->c; (void)m9; /* try, line 215 */
z->ket = z->c; /* [, line 215 */
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m9; goto lab10; } /* literal, line 215 */
z->bra = z->c; /* ], line 215 */
{ int ret = slice_del(z); /* delete, line 215 */
{ int m9 = z->l - z->c; (void)m9;
z->ket = z->c;
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m9; goto lab10; }
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
lab10:
;
}
{ int m10 = z->l - z->c; (void)m10; /* do, line 218 */
{ int ret = r_derivational(z); /* call derivational, line 218 */
{ int m10 = z->l - z->c; (void)m10;
{ int ret = r_derivational(z);
if (ret < 0) return ret;
}
z->c = z->l - m10;
}
{ int m11 = z->l - z->c; (void)m11; /* do, line 219 */
{ int ret = r_tidy_up(z); /* call tidy_up, line 219 */
{ int m11 = z->l - z->c; (void)m11;
{ int ret = r_tidy_up(z);
if (ret < 0) return ret;
}
z->c = z->l - m11;
@ -673,7 +672,7 @@ extern int russian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * russian_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); }
extern struct SN_env * russian_UTF_8_create_env(void) { return SN_create_env(0, 2); }
extern void russian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#include "header.h"
@ -65,43 +65,43 @@ static const symbol s_0_36[3] = { 'a', 's', 't' };
static const struct among a_0[37] =
{
/* 0 */ { 1, s_0_0, -1, 1, 0},
/* 1 */ { 4, s_0_1, 0, 1, 0},
/* 2 */ { 4, s_0_2, 0, 1, 0},
/* 3 */ { 7, s_0_3, 2, 1, 0},
/* 4 */ { 4, s_0_4, 0, 1, 0},
/* 5 */ { 2, s_0_5, -1, 1, 0},
/* 6 */ { 1, s_0_6, -1, 1, 0},
/* 7 */ { 3, s_0_7, 6, 1, 0},
/* 8 */ { 4, s_0_8, 6, 1, 0},
/* 9 */ { 4, s_0_9, 6, 1, 0},
/* 10 */ { 3, s_0_10, 6, 1, 0},
/* 11 */ { 4, s_0_11, 6, 1, 0},
/* 12 */ { 2, s_0_12, -1, 1, 0},
/* 13 */ { 5, s_0_13, 12, 1, 0},
/* 14 */ { 4, s_0_14, 12, 1, 0},
/* 15 */ { 5, s_0_15, 12, 1, 0},
/* 16 */ { 3, s_0_16, -1, 1, 0},
/* 17 */ { 2, s_0_17, -1, 1, 0},
/* 18 */ { 2, s_0_18, -1, 1, 0},
/* 19 */ { 5, s_0_19, 18, 1, 0},
/* 20 */ { 2, s_0_20, -1, 1, 0},
/* 21 */ { 1, s_0_21, -1, 2, 0},
/* 22 */ { 2, s_0_22, 21, 1, 0},
/* 23 */ { 5, s_0_23, 22, 1, 0},
/* 24 */ { 5, s_0_24, 22, 1, 0},
/* 25 */ { 5, s_0_25, 22, 1, 0},
/* 26 */ { 2, s_0_26, 21, 1, 0},
/* 27 */ { 4, s_0_27, 26, 1, 0},
/* 28 */ { 5, s_0_28, 26, 1, 0},
/* 29 */ { 3, s_0_29, 21, 1, 0},
/* 30 */ { 5, s_0_30, 29, 1, 0},
/* 31 */ { 6, s_0_31, 29, 1, 0},
/* 32 */ { 4, s_0_32, 21, 1, 0},
/* 33 */ { 2, s_0_33, -1, 1, 0},
/* 34 */ { 5, s_0_34, -1, 1, 0},
/* 35 */ { 3, s_0_35, -1, 1, 0},
/* 36 */ { 3, s_0_36, -1, 1, 0}
{ 1, s_0_0, -1, 1, 0},
{ 4, s_0_1, 0, 1, 0},
{ 4, s_0_2, 0, 1, 0},
{ 7, s_0_3, 2, 1, 0},
{ 4, s_0_4, 0, 1, 0},
{ 2, s_0_5, -1, 1, 0},
{ 1, s_0_6, -1, 1, 0},
{ 3, s_0_7, 6, 1, 0},
{ 4, s_0_8, 6, 1, 0},
{ 4, s_0_9, 6, 1, 0},
{ 3, s_0_10, 6, 1, 0},
{ 4, s_0_11, 6, 1, 0},
{ 2, s_0_12, -1, 1, 0},
{ 5, s_0_13, 12, 1, 0},
{ 4, s_0_14, 12, 1, 0},
{ 5, s_0_15, 12, 1, 0},
{ 3, s_0_16, -1, 1, 0},
{ 2, s_0_17, -1, 1, 0},
{ 2, s_0_18, -1, 1, 0},
{ 5, s_0_19, 18, 1, 0},
{ 2, s_0_20, -1, 1, 0},
{ 1, s_0_21, -1, 2, 0},
{ 2, s_0_22, 21, 1, 0},
{ 5, s_0_23, 22, 1, 0},
{ 5, s_0_24, 22, 1, 0},
{ 5, s_0_25, 22, 1, 0},
{ 2, s_0_26, 21, 1, 0},
{ 4, s_0_27, 26, 1, 0},
{ 5, s_0_28, 26, 1, 0},
{ 3, s_0_29, 21, 1, 0},
{ 5, s_0_30, 29, 1, 0},
{ 6, s_0_31, 29, 1, 0},
{ 4, s_0_32, 21, 1, 0},
{ 2, s_0_33, -1, 1, 0},
{ 5, s_0_34, -1, 1, 0},
{ 3, s_0_35, -1, 1, 0},
{ 3, s_0_36, -1, 1, 0}
};
static const symbol s_1_0[2] = { 'd', 'd' };
@ -114,13 +114,13 @@ static const symbol s_1_6[2] = { 't', 't' };
static const struct among a_1[7] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
/* 2 */ { 2, s_1_2, -1, -1, 0},
/* 3 */ { 2, s_1_3, -1, -1, 0},
/* 4 */ { 2, s_1_4, -1, -1, 0},
/* 5 */ { 2, s_1_5, -1, -1, 0},
/* 6 */ { 2, s_1_6, -1, -1, 0}
{ 2, s_1_0, -1, -1, 0},
{ 2, s_1_1, -1, -1, 0},
{ 2, s_1_2, -1, -1, 0},
{ 2, s_1_3, -1, -1, 0},
{ 2, s_1_4, -1, -1, 0},
{ 2, s_1_5, -1, -1, 0},
{ 2, s_1_6, -1, -1, 0}
};
static const symbol s_2_0[2] = { 'i', 'g' };
@ -131,11 +131,11 @@ static const symbol s_2_4[5] = { 'l', 0xC3, 0xB6, 's', 't' };
static const struct among a_2[5] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 3, s_2_1, 0, 1, 0},
/* 2 */ { 3, s_2_2, -1, 1, 0},
/* 3 */ { 5, s_2_3, -1, 3, 0},
/* 4 */ { 5, s_2_4, -1, 2, 0}
{ 2, s_2_0, -1, 1, 0},
{ 3, s_2_1, 0, 1, 0},
{ 3, s_2_2, -1, 1, 0},
{ 5, s_2_3, -1, 3, 0},
{ 5, s_2_4, -1, 2, 0}
};
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
@ -145,52 +145,52 @@ static const unsigned char g_s_ending[] = { 119, 127, 149 };
static const symbol s_0[] = { 'l', 0xC3, 0xB6, 's' };
static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */
{ int c_test1 = z->c; /* test, line 29 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 29 */
static int r_mark_regions(struct SN_env * z) {
z->I[1] = z->l;
{ int c_test1 = z->c;
{ int ret = skip_utf8(z->p, z->c, z->l, 3);
if (ret < 0) return 0;
z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 29 */
z->I[0] = z->c;
z->c = c_test1;
}
if (out_grouping_U(z, g_v, 97, 246, 1) < 0) return 0; /* goto */ /* grouping v, line 30 */
{ /* gopast */ /* non v, line 30 */
if (out_grouping_U(z, g_v, 97, 246, 1) < 0) return 0;
{
int ret = in_grouping_U(z, g_v, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 30 */
/* try, line 31 */
if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 31 */
z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 31 */
z->I[1] = z->c;
if (!(z->I[1] < z->I[0])) goto lab0;
z->I[1] = z->I[0];
lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) { /* backwardmode */
static int r_main_suffix(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 37 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 37 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 37 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
among_var = find_among_b(z, a_0, 37);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 37 */
z->bra = z->c;
z->lb = mlimit1;
}
switch (among_var) { /* among, line 38 */
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 44 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b_U(z, g_s_ending, 98, 121, 0)) return 0; /* grouping s_ending, line 46 */
{ int ret = slice_del(z); /* delete, line 46 */
if (in_grouping_b_U(z, g_s_ending, 98, 121, 0)) return 0;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
@ -198,22 +198,22 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
static int r_consonant_pair(struct SN_env * z) {
{ int mlimit1; /* setlimit, line 50 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
{ int m2 = z->l - z->c; (void)m2; /* and, line 52 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* among, line 51 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
{ int m2 = z->l - z->c; (void)m2;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; }
z->c = z->l - m2;
z->ket = z->c; /* [, line 52 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
z->ket = z->c;
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
if (ret < 0) { z->lb = mlimit1; return 0; }
z->c = ret; /* next, line 52 */
z->c = ret;
}
z->bra = z->c; /* ], line 52 */
{ int ret = slice_del(z); /* delete, line 52 */
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
}
@ -222,30 +222,30 @@ static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
return 1;
}
static int r_other_suffix(struct SN_env * z) { /* backwardmode */
static int r_other_suffix(struct SN_env * z) {
int among_var;
{ int mlimit1; /* setlimit, line 55 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 56 */
{ int mlimit1;
if (z->c < z->I[1]) return 0;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
among_var = find_among_b(z, a_2, 5);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 56 */
switch (among_var) { /* among, line 56 */
z->bra = z->c;
switch (among_var) {
case 1:
{ int ret = slice_del(z); /* delete, line 57 */
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 4, s_0); /* <-, line 58 */
{ int ret = slice_from_s(z, 4, s_0);
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 4, s_1); /* <-, line 59 */
{ int ret = slice_from_s(z, 4, s_1);
if (ret < 0) return ret;
}
break;
@ -255,29 +255,29 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */
return 1;
}
extern int swedish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 66 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 66 */
extern int swedish_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c;
{ int ret = r_mark_regions(z);
if (ret < 0) return ret;
}
z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 67 */
z->lb = z->c; z->c = z->l;
{ int m2 = z->l - z->c; (void)m2; /* do, line 68 */
{ int ret = r_main_suffix(z); /* call main_suffix, line 68 */
{ int m2 = z->l - z->c; (void)m2;
{ int ret = r_main_suffix(z);
if (ret < 0) return ret;
}
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 69 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 69 */
{ int m3 = z->l - z->c; (void)m3;
{ int ret = r_consonant_pair(z);
if (ret < 0) return ret;
}
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 70 */
{ int ret = r_other_suffix(z); /* call other_suffix, line 70 */
{ int m4 = z->l - z->c; (void)m4;
{ int ret = r_other_suffix(z);
if (ret < 0) return ret;
}
z->c = z->l - m4;
@ -286,7 +286,7 @@ extern int swedish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
return 1;
}
extern struct SN_env * swedish_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); }
extern struct SN_env * swedish_UTF_8_create_env(void) { return SN_create_env(0, 2); }
extern void swedish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -18,38 +18,48 @@ extern void lose_s(symbol * p) {
}
/*
new_p = skip_utf8(p, c, lb, l, n); skips n characters forwards from p + c
if n +ve, or n characters backwards from p + c - 1 if n -ve. new_p is the new
position, or -1 on failure.
new_p = skip_utf8(p, c, l, n); skips n characters forwards from p + c.
new_p is the new position, or -1 on failure.
-- used to implement hop and next in the utf8 case.
*/
extern int skip_utf8(const symbol * p, int c, int lb, int l, int n) {
extern int skip_utf8(const symbol * p, int c, int limit, int n) {
int b;
if (n >= 0) {
for (; n > 0; n--) {
if (c >= l) return -1;
b = p[c++];
if (b >= 0xC0) { /* 1100 0000 */
while (c < l) {
b = p[c];
if (b >= 0xC0 || b < 0x80) break;
/* break unless b is 10------ */
c++;
}
if (n < 0) return -1;
for (; n > 0; n--) {
if (c >= limit) return -1;
b = p[c++];
if (b >= 0xC0) { /* 1100 0000 */
while (c < limit) {
b = p[c];
if (b >= 0xC0 || b < 0x80) break;
/* break unless b is 10------ */
c++;
}
}
} else {
for (; n < 0; n++) {
if (c <= lb) return -1;
b = p[--c];
if (b >= 0x80) { /* 1000 0000 */
while (c > lb) {
b = p[c];
if (b >= 0xC0) break; /* 1100 0000 */
c--;
}
}
return c;
}
/*
new_p = skip_b_utf8(p, c, lb, n); skips n characters backwards from p + c - 1
new_p is the new position, or -1 on failure.
-- used to implement hop and next in the utf8 case.
*/
extern int skip_b_utf8(const symbol * p, int c, int limit, int n) {
int b;
if (n < 0) return -1;
for (; n > 0; n--) {
if (c <= limit) return -1;
b = p[--c];
if (b >= 0x80) { /* 1000 0000 */
while (c > limit) {
b = p[c];
if (b >= 0xC0) break; /* 1100 0000 */
c--;
}
}
}
@ -76,7 +86,7 @@ static int get_utf8(const symbol * p, int c, int l, int * slot) {
*slot = (b0 & 0xF) << 12 | b1 << 6 | b2;
return 3;
}
*slot = (b0 & 0xE) << 18 | b1 << 12 | b2 << 6 | (p[c] & 0x3F);
*slot = (b0 & 0x7) << 18 | b1 << 12 | b2 << 6 | (p[c] & 0x3F);
return 4;
}
@ -100,7 +110,7 @@ static int get_b_utf8(const symbol * p, int c, int lb, int * slot) {
*slot = (b & 0xF) << 12 | a;
return 3;
}
*slot = (p[--c] & 0xE) << 18 | (b & 0x3F) << 12 | a;
*slot = (p[--c] & 0x7) << 18 | (b & 0x3F) << 12 | a;
return 4;
}
@ -226,7 +236,7 @@ extern int find_among(struct SN_env * z, const struct among * v, int v_size) {
int j = v_size;
int c = z->c; int l = z->l;
symbol * q = z->p + c;
const symbol * q = z->p + c;
const struct among * w;
@ -291,7 +301,7 @@ extern int find_among_b(struct SN_env * z, const struct among * v, int v_size) {
int j = v_size;
int c = z->c; int lb = z->lb;
symbol * q = z->p + c - 1;
const symbol * q = z->p + c - 1;
const struct among * w;

View File

@ -656,6 +656,8 @@ static const struct tsearch_config_match tsearch_config_languages[] =
{
{"arabic", "ar"},
{"arabic", "Arabic"},
{"armenian", "hy"},
{"armenian", "Armenian"},
{"basque", "eu"},
{"basque", "Basque"},
{"catalan", "ca"},
@ -697,6 +699,8 @@ static const struct tsearch_config_match tsearch_config_languages[] =
{"romanian", "ro"},
{"russian", "ru"},
{"russian", "Russian"},
{"serbian", "sr"},
{"serbian", "Serbian"},
{"spanish", "es"},
{"spanish", "Spanish"},
{"swedish", "sv"},
@ -705,6 +709,8 @@ static const struct tsearch_config_match tsearch_config_languages[] =
{"tamil", "Tamil"},
{"turkish", "tr"},
{"turkish", "Turkish"},
{"yiddish", "yi"},
{"yiddish", "Yiddish"},
{NULL, NULL} /* end marker */
};

View File

@ -53,6 +53,6 @@
*/
/* yyyymmddN */
#define CATALOG_VERSION_NO 202102171
#define CATALOG_VERSION_NO 202102191
#endif

View File

@ -16,14 +16,13 @@ struct SN_env {
int c; int l; int lb; int bra; int ket;
symbol * * S;
int * I;
unsigned char * B;
};
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size);
extern struct SN_env * SN_create_env(int S_size, int I_size);
extern void SN_close_env(struct SN_env * z, int S_size);
extern int SN_set_current(struct SN_env * z, int size, const symbol * s);

View File

@ -23,7 +23,9 @@ struct among
extern symbol * create_s(void);
extern void lose_s(symbol * p);
extern int skip_utf8(const symbol * p, int c, int lb, int l, int n);
extern int skip_utf8(const symbol * p, int c, int limit, int n);
extern int skip_b_utf8(const symbol * p, int c, int limit, int n);
extern int in_grouping_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat);
extern int in_grouping_b_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat);

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -0,0 +1,15 @@
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * armenian_UTF_8_create_env(void);
extern void armenian_UTF_8_close_env(struct SN_env * z);
extern int armenian_UTF_8_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,4 +1,4 @@
/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */
/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

Some files were not shown because too many files have changed in this diff Show More