mirror of
https://github.com/postgres/postgres.git
synced 2026-04-23 07:07:22 -04:00
Update to latest Snowball sources.
It's been some time since we did this, partly because the upstream snowball project hasn't formally tagged a new release since 2021. The main motivation for doing it now is to absorb a bug fix (their commit e322673a841d9abd69994ae8cd20e191090b6ef4), which prevents a null pointer dereference crash if SN_create_env() gets a malloc failure at just the wrong point. We'll patch the back branches with only that change, but we might as well do the full sync dance on HEAD. Aside from a bunch of mostly-minor tweaks to existing stemmers, this update adds a new stemmer for Estonian. It also removes the existing stemmer for Romanian using ISO-8859-2 encoding. Upstream apparently concluded that ISO-8859-2 doesn't provide an adequate representation of some Romanian characters, and the UTF-8 implementation should be used instead. While at it, update the README's instructions for doing a sync, which have not been adjusted during the addition of meson tooling. Thanks to Maksim Korotkov for discovering the null-pointer bug and submitting the fix to upstream snowball. Reported-by: Maksim Korotkov <m.korotkov@postgrespro.ru> Discussion: https://postgr.es/m/1d1a46-67ab1000-21-80c451@83151435
This commit is contained in:
parent
71d02dc478
commit
b464e51ab3
61 changed files with 5052 additions and 4660 deletions
|
|
@ -3852,6 +3852,7 @@ Parser: "pg_catalog.default"
|
|||
pg_catalog | danish_stem | snowball stemmer for danish language
|
||||
pg_catalog | dutch_stem | snowball stemmer for dutch language
|
||||
pg_catalog | english_stem | snowball stemmer for english language
|
||||
pg_catalog | estonian_stem | snowball stemmer for estonian language
|
||||
pg_catalog | finnish_stem | snowball stemmer for finnish language
|
||||
pg_catalog | french_stem | snowball stemmer for french language
|
||||
pg_catalog | german_stem | snowball stemmer for german language
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@ OBJS += \
|
|||
stem_ISO_8859_1_spanish.o \
|
||||
stem_ISO_8859_1_swedish.o \
|
||||
stem_ISO_8859_2_hungarian.o \
|
||||
stem_ISO_8859_2_romanian.o \
|
||||
stem_KOI8_R_russian.o \
|
||||
stem_UTF_8_arabic.o \
|
||||
stem_UTF_8_armenian.o \
|
||||
|
|
@ -49,6 +48,7 @@ OBJS += \
|
|||
stem_UTF_8_danish.o \
|
||||
stem_UTF_8_dutch.o \
|
||||
stem_UTF_8_english.o \
|
||||
stem_UTF_8_estonian.o \
|
||||
stem_UTF_8_finnish.o \
|
||||
stem_UTF_8_french.o \
|
||||
stem_UTF_8_german.o \
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ We choose to include the derived files in the PostgreSQL distribution
|
|||
because most installations will not have the Snowball compiler available.
|
||||
|
||||
We are currently synced with the Snowball git commit
|
||||
48a67a2831005f49c48ec29a5837640e23e54e6b (tag v2.2.0)
|
||||
of 2021-11-10.
|
||||
d19326ac6c1b9a417fc872f7c2f845265a5e9ece
|
||||
of 2025-02-19.
|
||||
|
||||
To update the PostgreSQL sources from a new Snowball version:
|
||||
|
||||
|
|
@ -44,8 +44,8 @@ do
|
|||
sed 's|\.\./runtime/header\.h|header.h|' $f >libstemmer/`basename $f`
|
||||
done
|
||||
|
||||
Do not copy stemmers that are listed in libstemmer/modules.txt as
|
||||
nonstandard, such as "german2" or "lovins".
|
||||
Do not copy stemmers that are listed in their libstemmer/modules.txt as
|
||||
nonstandard, such as "kraaij_pohlmann" or "lovins".
|
||||
|
||||
2. Copy the *.c files in snowball/runtime/ to
|
||||
src/backend/snowball/libstemmer, and edit them to remove direct inclusions
|
||||
|
|
@ -55,14 +55,18 @@ is sensitive to largefile compilation options.)
|
|||
|
||||
3. Copy the *.h files in snowball/src_c/ and snowball/runtime/
|
||||
to src/include/snowball/libstemmer. At this writing the header files
|
||||
do not require any changes.
|
||||
do not require any changes. Again, omit the *.h files for nonstandard
|
||||
stemmers.
|
||||
|
||||
4. Check whether any stemmer modules have been added or removed. If so, edit
|
||||
the OBJS list in Makefile, the list of #include's in dict_snowball.c, and the
|
||||
stemmer_modules[] table in dict_snowball.c, as well as the list in the
|
||||
documentation in textsearch.sgml. You might also need to change
|
||||
the LANGUAGES list in Makefile and tsearch_config_languages in initdb.c.
|
||||
the OBJS list in Makefile, the dict_snowball_sources list in meson.build,
|
||||
the list of #include's and the stemmer_modules[] table in dict_snowball.c,
|
||||
and the sample \dFd output in the documentation in textsearch.sgml.
|
||||
You might also need to change the @languages array in snowball_create.pl
|
||||
and the tsearch_config_languages[] table in initdb.c.
|
||||
|
||||
5. The various stopword files in stopwords/ must be downloaded
|
||||
individually from pages on the snowballstem.org website.
|
||||
Be careful that these files must be stored in UTF-8 encoding.
|
||||
Update the stop_files list in Makefile if any are added or removed
|
||||
(the meson tooling does not require adjustment for that, though).
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@
|
|||
#include "snowball/libstemmer/stem_ISO_8859_1_spanish.h"
|
||||
#include "snowball/libstemmer/stem_ISO_8859_1_swedish.h"
|
||||
#include "snowball/libstemmer/stem_ISO_8859_2_hungarian.h"
|
||||
#include "snowball/libstemmer/stem_ISO_8859_2_romanian.h"
|
||||
#include "snowball/libstemmer/stem_KOI8_R_russian.h"
|
||||
#include "snowball/libstemmer/stem_UTF_8_arabic.h"
|
||||
#include "snowball/libstemmer/stem_UTF_8_armenian.h"
|
||||
|
|
@ -54,6 +53,7 @@
|
|||
#include "snowball/libstemmer/stem_UTF_8_danish.h"
|
||||
#include "snowball/libstemmer/stem_UTF_8_dutch.h"
|
||||
#include "snowball/libstemmer/stem_UTF_8_english.h"
|
||||
#include "snowball/libstemmer/stem_UTF_8_estonian.h"
|
||||
#include "snowball/libstemmer/stem_UTF_8_finnish.h"
|
||||
#include "snowball/libstemmer/stem_UTF_8_french.h"
|
||||
#include "snowball/libstemmer/stem_UTF_8_german.h"
|
||||
|
|
@ -119,7 +119,6 @@ static const stemmer_module stemmer_modules[] =
|
|||
STEMMER_MODULE(spanish, PG_LATIN1, ISO_8859_1),
|
||||
STEMMER_MODULE(swedish, PG_LATIN1, ISO_8859_1),
|
||||
STEMMER_MODULE(hungarian, PG_LATIN2, ISO_8859_2),
|
||||
STEMMER_MODULE(romanian, PG_LATIN2, ISO_8859_2),
|
||||
STEMMER_MODULE(russian, PG_KOI8R, KOI8_R),
|
||||
STEMMER_MODULE(arabic, PG_UTF8, UTF_8),
|
||||
STEMMER_MODULE(armenian, PG_UTF8, UTF_8),
|
||||
|
|
@ -128,6 +127,7 @@ static const stemmer_module stemmer_modules[] =
|
|||
STEMMER_MODULE(danish, PG_UTF8, UTF_8),
|
||||
STEMMER_MODULE(dutch, PG_UTF8, UTF_8),
|
||||
STEMMER_MODULE(english, PG_UTF8, UTF_8),
|
||||
STEMMER_MODULE(estonian, PG_UTF8, UTF_8),
|
||||
STEMMER_MODULE(finnish, PG_UTF8, UTF_8),
|
||||
STEMMER_MODULE(french, PG_UTF8, UTF_8),
|
||||
STEMMER_MODULE(german, PG_UTF8, UTF_8),
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ error:
|
|||
extern void SN_close_env(struct SN_env * z, int S_size)
|
||||
{
|
||||
if (z == NULL) return;
|
||||
if (S_size)
|
||||
if (z->S)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < S_size; i++)
|
||||
|
|
|
|||
|
|
@ -912,7 +912,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (in_grouping(z, g_v, 97, 117, 0)) goto lab2;
|
||||
{ int c3 = z->c;
|
||||
if (out_grouping(z, g_v, 97, 117, 0)) goto lab4;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
|
|
@ -921,7 +922,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
lab4:
|
||||
z->c = c3;
|
||||
if (in_grouping(z, g_v, 97, 117, 0)) goto lab2;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab2;
|
||||
z->c += ret;
|
||||
|
|
@ -934,7 +936,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (out_grouping(z, g_v, 97, 117, 0)) goto lab0;
|
||||
{ int c4 = z->c;
|
||||
if (out_grouping(z, g_v, 97, 117, 0)) goto lab6;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab6;
|
||||
z->c += ret;
|
||||
|
|
@ -955,23 +958,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->c = c1;
|
||||
}
|
||||
{ int c5 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
|
|
@ -984,18 +991,15 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_aditzak(struct SN_env * z) {
|
||||
|
|
@ -1003,7 +1007,7 @@ static int r_aditzak(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((70566434 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_0, 109);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1046,7 +1050,7 @@ static int r_izenak(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((71162402 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_1, 295);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1117,7 +1121,7 @@ static int r_adjetiboak(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((35362 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_2, 19);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1138,7 +1142,7 @@ static int r_adjetiboak(struct SN_env * z) {
|
|||
}
|
||||
|
||||
extern int basque_ISO_8859_1_stem(struct SN_env * z) {
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1184,23 +1184,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
{ int c1 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -1218,7 +1222,6 @@ static int r_cleaning(struct SN_env * z) {
|
|||
int c1 = z->c;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_0, 13);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1265,19 +1268,17 @@ static int r_cleaning(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_attached_pronoun(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1634850 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_1, 39))) return 0;
|
||||
if (!find_among_b(z, a_1, 39)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -1292,7 +1293,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_2, 200);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1343,7 +1344,7 @@ static int r_verb_suffix(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_3, 283);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1370,7 +1371,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_4, 22);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1394,7 +1395,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
}
|
||||
|
||||
extern int catalan_ISO_8859_1_stem(struct SN_env * z) {
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -141,15 +141,17 @@ z->c = z->c + 3;
|
|||
z->I[0] = z->c;
|
||||
z->c = c_test1;
|
||||
}
|
||||
|
||||
if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 248, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
|
||||
if (!(z->I[1] < z->I[0])) goto lab0;
|
||||
|
||||
if (z->I[1] >= z->I[0]) goto lab0;
|
||||
z->I[1] = z->I[0];
|
||||
lab0:
|
||||
return 1;
|
||||
|
|
@ -164,7 +166,7 @@ static int r_main_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
among_var = find_among_b(z, a_0, 32);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -192,7 +194,7 @@ static int r_consonant_pair(struct SN_env * z) {
|
|||
mlimit2 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; }
|
||||
if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
|
||||
if (!find_among_b(z, a_1, 4)) { z->lb = mlimit2; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit2;
|
||||
}
|
||||
|
|
@ -227,7 +229,7 @@ static int r_other_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; }
|
||||
among_var = find_among_b(z, a_2, 5);
|
||||
if (!(among_var)) { z->lb = mlimit2; return 0; }
|
||||
if (!among_var) { z->lb = mlimit2; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit2;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -152,7 +152,6 @@ static int r_prelude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else
|
||||
among_var = find_among(z, a_0, 11);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -244,34 +243,44 @@ static int r_prelude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_mark_regions(struct SN_env * z) {
|
||||
z->I[2] = z->l;
|
||||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
{
|
||||
{ int c_test1 = z->c;
|
||||
z->c = z->c + 3;
|
||||
if (z->c > z->l) return 0;
|
||||
z->I[0] = z->c;
|
||||
z->c = c_test1;
|
||||
}
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 232, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 232, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[2] = z->c;
|
||||
|
||||
if (z->I[2] >= z->I[0]) goto lab0;
|
||||
z->I[2] = z->I[0];
|
||||
lab0:
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 232, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 232, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
|
||||
if (!(z->I[1] < 3)) goto lab0;
|
||||
z->I[1] = 3;
|
||||
lab0:
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 232, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 232, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[0] = z->c;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -282,7 +291,6 @@ static int r_postlude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
|
||||
among_var = find_among(z, a_1, 3);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -309,19 +317,17 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_undouble(struct SN_env * z) {
|
||||
{ int m_test1 = z->l - z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_2, 3))) return 0;
|
||||
if (!find_among_b(z, a_2, 3)) return 0;
|
||||
z->c = z->l - m_test1;
|
||||
}
|
||||
z->ket = z->c;
|
||||
|
|
@ -335,7 +341,7 @@ static int r_undouble(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_e_ending(struct SN_env * z) {
|
||||
z->I[2] = 0;
|
||||
z->I[3] = 0;
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
|
||||
z->c--;
|
||||
|
|
@ -350,7 +356,7 @@ static int r_e_ending(struct SN_env * z) {
|
|||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->I[2] = 1;
|
||||
z->I[3] = 1;
|
||||
{ int ret = r_undouble(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -386,7 +392,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
|
||||
among_var = find_among_b(z, a_3, 5);
|
||||
if (!(among_var)) goto lab0;
|
||||
if (!among_var) goto lab0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -456,7 +462,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
|
||||
among_var = find_among_b(z, a_4, 6);
|
||||
if (!(among_var)) goto lab3;
|
||||
if (!among_var) goto lab3;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -538,7 +544,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
if (ret == 0) goto lab3;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
if (!(z->I[2])) goto lab3;
|
||||
if (!(z->I[3])) goto lab3;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -551,7 +557,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab8;
|
||||
{ int m_test10 = z->l - z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8;
|
||||
if (!(find_among_b(z, a_5, 4))) goto lab8;
|
||||
if (!find_among_b(z, a_5, 4)) goto lab8;
|
||||
if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab8;
|
||||
z->c = z->l - m_test10;
|
||||
}
|
||||
|
|
@ -583,7 +589,7 @@ extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
|
|||
}
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
|
||||
|
||||
{ int ret = r_standard_suffix(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -597,7 +603,7 @@ extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
|
||||
extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 4); }
|
||||
|
||||
extern void dutch_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
|
||||
|
||||
|
|
|
|||
|
|
@ -310,6 +310,8 @@ static const struct among a_10[18] =
|
|||
{ 4, s_10_17, -1, 8, 0}
|
||||
};
|
||||
|
||||
static const unsigned char g_aeo[] = { 17, 64 };
|
||||
|
||||
static const unsigned char g_v[] = { 17, 65, 16, 1 };
|
||||
|
||||
static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
|
||||
|
|
@ -418,16 +420,18 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
{ int c1 = z->c;
|
||||
{ int c2 = z->c;
|
||||
if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2;
|
||||
if (!(find_among(z, a_0, 3))) goto lab2;
|
||||
if (!find_among(z, a_0, 3)) goto lab2;
|
||||
goto lab1;
|
||||
lab2:
|
||||
z->c = c2;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -435,12 +439,14 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
}
|
||||
lab1:
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -469,13 +475,11 @@ lab0:
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_Step_1a(struct SN_env * z) {
|
||||
|
|
@ -483,7 +487,7 @@ static int r_Step_1a(struct SN_env * z) {
|
|||
{ int m1 = z->l - z->c; (void)m1;
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; }
|
||||
if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; }
|
||||
if (!find_among_b(z, a_1, 3)) { z->c = z->l - m1; goto lab0; }
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -494,7 +498,7 @@ static int r_Step_1a(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0;
|
||||
among_var = find_among_b(z, a_2, 6);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -521,7 +525,8 @@ z->c = z->c - 2;
|
|||
case 3:
|
||||
if (z->c <= z->lb) return 0;
|
||||
z->c--;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_b(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c -= ret;
|
||||
|
|
@ -539,7 +544,7 @@ static int r_Step_1b(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_4, 6);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -552,7 +557,8 @@ static int r_Step_1b(struct SN_env * z) {
|
|||
break;
|
||||
case 2:
|
||||
{ int m_test1 = z->l - z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_b(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c -= ret;
|
||||
|
|
@ -562,47 +568,49 @@ static int r_Step_1b(struct SN_env * z) {
|
|||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->ket = z->c;
|
||||
z->bra = z->c;
|
||||
{ int m_test2 = z->l - z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
|
||||
among_var = find_among_b(z, a_3, 13);
|
||||
if (!(among_var)) return 0;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_from_s(z, 1, s_6);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 0;
|
||||
break;
|
||||
case 2:
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
if (in_grouping_b(z, g_aeo, 97, 111, 0)) goto lab0;
|
||||
if (z->c > z->lb) goto lab0;
|
||||
return 0;
|
||||
lab0:
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (z->c != z->I[1]) return 0;
|
||||
{ int m_test4 = z->l - z->c;
|
||||
{ int ret = r_shortv(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
z->c = z->l - m_test4;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 1, s_7);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
z->c = z->l - m_test2;
|
||||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret;
|
||||
{ int saved_c = z->c;
|
||||
ret = insert_s(z, z->c, z->c, 1, s_6);
|
||||
z->c = saved_c;
|
||||
}
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb) return 0;
|
||||
z->c--;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (z->c != z->I[1]) return 0;
|
||||
{ int m_test3 = z->l - z->c;
|
||||
{ int ret = r_shortv(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
z->c = z->l - m_test3;
|
||||
}
|
||||
{ int ret;
|
||||
{ int saved_c = z->c;
|
||||
ret = insert_s(z, z->c, z->c, 1, s_7);
|
||||
z->c = saved_c;
|
||||
}
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb) return 0;
|
||||
z->c--;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -623,7 +631,7 @@ static int r_Step_1c(struct SN_env * z) {
|
|||
lab0:
|
||||
z->bra = z->c;
|
||||
if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
|
||||
|
||||
|
||||
if (z->c > z->lb) goto lab2;
|
||||
return 0;
|
||||
lab2:
|
||||
|
|
@ -638,7 +646,7 @@ static int r_Step_2(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_5, 24);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -731,7 +739,7 @@ static int r_Step_3(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_6, 9);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -779,7 +787,7 @@ static int r_Step_4(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_7, 18);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -814,30 +822,28 @@ static int r_Step_5(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0;
|
||||
among_var = find_among_b(z, a_8, 2);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) goto lab1;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab0;
|
||||
lab1:
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int m1 = z->l - z->c; (void)m1;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) goto lab1;
|
||||
{ int ret = r_shortv(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab0;
|
||||
lab1:
|
||||
return 0;
|
||||
lab2:
|
||||
z->c = z->l - m1;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
{ int ret = r_shortv(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 0;
|
||||
lab2:
|
||||
z->c = z->l - m2;
|
||||
}
|
||||
}
|
||||
lab0:
|
||||
{ int ret = slice_del(z);
|
||||
|
|
@ -861,7 +867,7 @@ static int r_Step_5(struct SN_env * z) {
|
|||
static int r_exception2(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
|
||||
if (!(find_among_b(z, a_9, 8))) return 0;
|
||||
if (!find_among_b(z, a_9, 8)) return 0;
|
||||
z->bra = z->c;
|
||||
if (z->c > z->lb) return 0;
|
||||
return 1;
|
||||
|
|
@ -872,7 +878,7 @@ static int r_exception1(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among(z, a_10, 18);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
if (z->c < z->l) return 0;
|
||||
switch (among_var) {
|
||||
|
|
@ -982,11 +988,11 @@ z->c = z->c + 3;
|
|||
goto lab0;
|
||||
lab2:
|
||||
z->c = c1;
|
||||
|
||||
|
||||
{ int ret = r_prelude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -277,15 +277,19 @@ static const symbol s_4[] = { 'p', 'o' };
|
|||
static int r_mark_regions(struct SN_env * z) {
|
||||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
|
||||
if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_V1, 97, 246, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
|
||||
if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_V1, 97, 246, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
|
|
@ -295,8 +299,7 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_particle_etc(struct SN_env * z) {
|
||||
|
|
@ -307,7 +310,7 @@ static int r_particle_etc(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_0, 10);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -335,7 +338,7 @@ static int r_possessive(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_4, 9);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -370,21 +373,21 @@ static int r_possessive(struct SN_env * z) {
|
|||
break;
|
||||
case 4:
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
|
||||
if (!(find_among_b(z, a_1, 6))) return 0;
|
||||
if (!find_among_b(z, a_1, 6)) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0;
|
||||
if (!(find_among_b(z, a_2, 6))) return 0;
|
||||
if (!find_among_b(z, a_2, 6)) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
|
||||
if (!(find_among_b(z, a_3, 2))) return 0;
|
||||
if (!find_among_b(z, a_3, 2)) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -394,7 +397,7 @@ static int r_possessive(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_LONG(struct SN_env * z) {
|
||||
if (!(find_among_b(z, a_5, 7))) return 0;
|
||||
if (!find_among_b(z, a_5, 7)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -413,7 +416,7 @@ static int r_case_ending(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_6, 30);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -485,7 +488,7 @@ static int r_other_endings(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[0];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_7, 14);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -512,7 +515,7 @@ static int r_i_plural(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; }
|
||||
if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_8, 2)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -548,7 +551,7 @@ static int r_t_plural(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; }
|
||||
among_var = find_among_b(z, a_9, 2);
|
||||
if (!(among_var)) { z->lb = mlimit3; return 0; }
|
||||
if (!among_var) { z->lb = mlimit3; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit3;
|
||||
}
|
||||
|
|
@ -638,6 +641,7 @@ static int r_tidy(struct SN_env * z) {
|
|||
}
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
||||
if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0;
|
||||
z->ket = z->c;
|
||||
if (in_grouping_b(z, g_C, 98, 122, 0)) return 0;
|
||||
|
|
@ -685,7 +689,7 @@ extern int finnish_ISO_8859_1_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = z->l - m5;
|
||||
}
|
||||
|
||||
|
||||
if (!(z->I[2])) goto lab1;
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
{ int ret = r_i_plural(z);
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ static int r_RV(struct SN_env * z);
|
|||
static int r_mark_regions(struct SN_env * z);
|
||||
static int r_postlude(struct SN_env * z);
|
||||
static int r_prelude(struct SN_env * z);
|
||||
static int r_elisions(struct SN_env * z);
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
|
@ -371,43 +372,69 @@ static const struct among a_8[5] =
|
|||
|
||||
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
|
||||
|
||||
static const unsigned char g_elision_char[] = { 131, 14, 3 };
|
||||
|
||||
static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
|
||||
|
||||
static const symbol s_0[] = { 'U' };
|
||||
static const symbol s_1[] = { 'I' };
|
||||
static const symbol s_2[] = { 'Y' };
|
||||
static const symbol s_3[] = { 'H', 'e' };
|
||||
static const symbol s_4[] = { 'H', 'i' };
|
||||
static const symbol s_5[] = { 'Y' };
|
||||
static const symbol s_6[] = { 'U' };
|
||||
static const symbol s_7[] = { 'i' };
|
||||
static const symbol s_8[] = { 'u' };
|
||||
static const symbol s_9[] = { 'y' };
|
||||
static const symbol s_10[] = { 0xEB };
|
||||
static const symbol s_11[] = { 0xEF };
|
||||
static const symbol s_12[] = { 'i', 'c' };
|
||||
static const symbol s_13[] = { 'i', 'q', 'U' };
|
||||
static const symbol s_14[] = { 'l', 'o', 'g' };
|
||||
static const symbol s_15[] = { 'u' };
|
||||
static const symbol s_16[] = { 'e', 'n', 't' };
|
||||
static const symbol s_17[] = { 'a', 't' };
|
||||
static const symbol s_18[] = { 'e', 'u', 'x' };
|
||||
static const symbol s_19[] = { 'i' };
|
||||
static const symbol s_20[] = { 'a', 'b', 'l' };
|
||||
static const symbol s_21[] = { 'i', 'q', 'U' };
|
||||
static const symbol s_22[] = { 'a', 't' };
|
||||
static const symbol s_23[] = { 'i', 'c' };
|
||||
static const symbol s_24[] = { 'i', 'q', 'U' };
|
||||
static const symbol s_25[] = { 'e', 'a', 'u' };
|
||||
static const symbol s_26[] = { 'a', 'l' };
|
||||
static const symbol s_27[] = { 'e', 'u', 'x' };
|
||||
static const symbol s_28[] = { 'a', 'n', 't' };
|
||||
static const symbol s_29[] = { 'e', 'n', 't' };
|
||||
static const symbol s_30[] = { 'H', 'i' };
|
||||
static const symbol s_31[] = { 'i' };
|
||||
static const symbol s_32[] = { 'e' };
|
||||
static const symbol s_33[] = { 'i' };
|
||||
static const symbol s_34[] = { 'c' };
|
||||
static const symbol s_0[] = { 'q', 'u' };
|
||||
static const symbol s_1[] = { 'U' };
|
||||
static const symbol s_2[] = { 'I' };
|
||||
static const symbol s_3[] = { 'Y' };
|
||||
static const symbol s_4[] = { 'H', 'e' };
|
||||
static const symbol s_5[] = { 'H', 'i' };
|
||||
static const symbol s_6[] = { 'Y' };
|
||||
static const symbol s_7[] = { 'U' };
|
||||
static const symbol s_8[] = { 'i' };
|
||||
static const symbol s_9[] = { 'u' };
|
||||
static const symbol s_10[] = { 'y' };
|
||||
static const symbol s_11[] = { 0xEB };
|
||||
static const symbol s_12[] = { 0xEF };
|
||||
static const symbol s_13[] = { 'i', 'c' };
|
||||
static const symbol s_14[] = { 'i', 'q', 'U' };
|
||||
static const symbol s_15[] = { 'l', 'o', 'g' };
|
||||
static const symbol s_16[] = { 'u' };
|
||||
static const symbol s_17[] = { 'e', 'n', 't' };
|
||||
static const symbol s_18[] = { 'a', 't' };
|
||||
static const symbol s_19[] = { 'e', 'u', 'x' };
|
||||
static const symbol s_20[] = { 'i' };
|
||||
static const symbol s_21[] = { 'a', 'b', 'l' };
|
||||
static const symbol s_22[] = { 'i', 'q', 'U' };
|
||||
static const symbol s_23[] = { 'a', 't' };
|
||||
static const symbol s_24[] = { 'i', 'c' };
|
||||
static const symbol s_25[] = { 'i', 'q', 'U' };
|
||||
static const symbol s_26[] = { 'e', 'a', 'u' };
|
||||
static const symbol s_27[] = { 'a', 'l' };
|
||||
static const symbol s_28[] = { 'e', 'u', 'x' };
|
||||
static const symbol s_29[] = { 'a', 'n', 't' };
|
||||
static const symbol s_30[] = { 'e', 'n', 't' };
|
||||
static const symbol s_31[] = { 'H', 'i' };
|
||||
static const symbol s_32[] = { 'i' };
|
||||
static const symbol s_33[] = { 'e' };
|
||||
static const symbol s_34[] = { 'i' };
|
||||
static const symbol s_35[] = { 'c' };
|
||||
|
||||
static int r_elisions(struct SN_env * z) {
|
||||
z->bra = z->c;
|
||||
{ int c1 = z->c;
|
||||
if (in_grouping(z, g_elision_char, 99, 116, 0)) goto lab1;
|
||||
goto lab0;
|
||||
lab1:
|
||||
z->c = c1;
|
||||
if (!(eq_s(z, 2, s_0))) return 0;
|
||||
}
|
||||
lab0:
|
||||
if (z->c == z->l || z->p[z->c] != '\'') return 0;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
|
||||
if (z->c < z->l) goto lab2;
|
||||
return 0;
|
||||
lab2:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_prelude(struct SN_env * z) {
|
||||
while(1) {
|
||||
|
|
@ -422,7 +449,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping(z, g_v, 97, 251, 0)) goto lab5;
|
||||
{ int ret = slice_from_s(z, 1, s_0);
|
||||
{ int ret = slice_from_s(z, 1, s_1);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab4;
|
||||
|
|
@ -432,7 +459,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping(z, g_v, 97, 251, 0)) goto lab6;
|
||||
{ int ret = slice_from_s(z, 1, s_1);
|
||||
{ int ret = slice_from_s(z, 1, s_2);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab4;
|
||||
|
|
@ -441,7 +468,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 1, s_2);
|
||||
{ int ret = slice_from_s(z, 1, s_3);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -453,7 +480,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
if (z->c == z->l || z->p[z->c] != 0xEB) goto lab7;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 2, s_3);
|
||||
{ int ret = slice_from_s(z, 2, s_4);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab2;
|
||||
|
|
@ -463,7 +490,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
if (z->c == z->l || z->p[z->c] != 0xEF) goto lab8;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 2, s_4);
|
||||
{ int ret = slice_from_s(z, 2, s_5);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab2;
|
||||
|
|
@ -474,7 +501,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping(z, g_v, 97, 251, 0)) goto lab9;
|
||||
{ int ret = slice_from_s(z, 1, s_5);
|
||||
{ int ret = slice_from_s(z, 1, s_6);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab2;
|
||||
|
|
@ -486,7 +513,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
if (z->c == z->l || z->p[z->c] != 'u') goto lab1;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 1, s_6);
|
||||
{ int ret = slice_from_s(z, 1, s_7);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -520,13 +547,14 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
lab2:
|
||||
z->c = c2;
|
||||
if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3;
|
||||
if (!(find_among(z, a_0, 3))) goto lab3;
|
||||
if (!find_among(z, a_0, 3)) goto lab3;
|
||||
goto lab1;
|
||||
lab3:
|
||||
z->c = c2;
|
||||
if (z->c >= z->l) goto lab0;
|
||||
z->c++;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 251, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -538,23 +566,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->c = c1;
|
||||
}
|
||||
{ int c3 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 251, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 251, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 251, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 251, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
|
|
@ -573,34 +605,33 @@ static int r_postlude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else
|
||||
among_var = find_among(z, a_1, 7);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_from_s(z, 1, s_7);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 1, s_8);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 1, s_9);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 1, s_10);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
case 4:
|
||||
{ int ret = slice_from_s(z, 1, s_11);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
{ int ret = slice_from_s(z, 1, s_12);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -620,25 +651,22 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_standard_suffix(struct SN_env * z) {
|
||||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_4, 43);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -658,7 +686,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
}
|
||||
{ int m1 = z->l - z->c; (void)m1;
|
||||
z->ket = z->c;
|
||||
if (!(eq_s_b(z, 2, s_12))) { z->c = z->l - m1; goto lab0; }
|
||||
if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m1; goto lab0; }
|
||||
z->bra = z->c;
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
{ int ret = r_R2(z);
|
||||
|
|
@ -671,7 +699,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
goto lab1;
|
||||
lab2:
|
||||
z->c = z->l - m2;
|
||||
{ int ret = slice_from_s(z, 3, s_13);
|
||||
{ int ret = slice_from_s(z, 3, s_14);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -684,7 +712,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 3, s_14);
|
||||
{ int ret = slice_from_s(z, 3, s_15);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -692,7 +720,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 1, s_15);
|
||||
{ int ret = slice_from_s(z, 1, s_16);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -700,7 +728,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 3, s_16);
|
||||
{ int ret = slice_from_s(z, 3, s_17);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -714,7 +742,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m3 = z->l - z->c; (void)m3;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_2, 6);
|
||||
if (!(among_var)) { z->c = z->l - m3; goto lab3; }
|
||||
if (!among_var) { z->c = z->l - m3; goto lab3; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -726,7 +754,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
if (ret < 0) return ret;
|
||||
}
|
||||
z->ket = z->c;
|
||||
if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m3; goto lab3; }
|
||||
if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m3; goto lab3; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m3; goto lab3; }
|
||||
|
|
@ -752,7 +780,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
if (ret == 0) { z->c = z->l - m3; goto lab3; }
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 3, s_18);
|
||||
{ int ret = slice_from_s(z, 3, s_19);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -772,7 +800,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
if (ret == 0) { z->c = z->l - m3; goto lab3; }
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 1, s_19);
|
||||
{ int ret = slice_from_s(z, 1, s_20);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -792,7 +820,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; }
|
||||
among_var = find_among_b(z, a_3, 3);
|
||||
if (!(among_var)) { z->c = z->l - m5; goto lab6; }
|
||||
if (!among_var) { z->c = z->l - m5; goto lab6; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -807,7 +835,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
goto lab7;
|
||||
lab8:
|
||||
z->c = z->l - m6;
|
||||
{ int ret = slice_from_s(z, 3, s_20);
|
||||
{ int ret = slice_from_s(z, 3, s_21);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -825,7 +853,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
goto lab9;
|
||||
lab10:
|
||||
z->c = z->l - m7;
|
||||
{ int ret = slice_from_s(z, 3, s_21);
|
||||
{ int ret = slice_from_s(z, 3, s_22);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -854,7 +882,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
}
|
||||
{ int m8 = z->l - z->c; (void)m8;
|
||||
z->ket = z->c;
|
||||
if (!(eq_s_b(z, 2, s_22))) { z->c = z->l - m8; goto lab11; }
|
||||
if (!(eq_s_b(z, 2, s_23))) { z->c = z->l - m8; goto lab11; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m8; goto lab11; }
|
||||
|
|
@ -864,7 +892,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
if (ret < 0) return ret;
|
||||
}
|
||||
z->ket = z->c;
|
||||
if (!(eq_s_b(z, 2, s_23))) { z->c = z->l - m8; goto lab11; }
|
||||
if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m8; goto lab11; }
|
||||
z->bra = z->c;
|
||||
{ int m9 = z->l - z->c; (void)m9;
|
||||
{ int ret = r_R2(z);
|
||||
|
|
@ -877,7 +905,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
goto lab12;
|
||||
lab13:
|
||||
z->c = z->l - m9;
|
||||
{ int ret = slice_from_s(z, 3, s_24);
|
||||
{ int ret = slice_from_s(z, 3, s_25);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -887,7 +915,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
}
|
||||
break;
|
||||
case 9:
|
||||
{ int ret = slice_from_s(z, 3, s_25);
|
||||
{ int ret = slice_from_s(z, 3, s_26);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -895,7 +923,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 2, s_26);
|
||||
{ int ret = slice_from_s(z, 2, s_27);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -914,7 +942,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 3, s_27);
|
||||
{ int ret = slice_from_s(z, 3, s_28);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -933,7 +961,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_RV(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 3, s_28);
|
||||
{ int ret = slice_from_s(z, 3, s_29);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -942,7 +970,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_RV(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 3, s_29);
|
||||
{ int ret = slice_from_s(z, 3, s_30);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -971,7 +999,7 @@ static int r_i_verb_suffix(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_5, 35)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0;
|
||||
|
|
@ -997,7 +1025,7 @@ static int r_verb_suffix(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_6, 38);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1045,7 +1073,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
{ int m_test2 = z->l - z->c;
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
if (!(eq_s_b(z, 2, s_30))) goto lab2;
|
||||
if (!(eq_s_b(z, 2, s_31))) goto lab2;
|
||||
goto lab1;
|
||||
lab2:
|
||||
z->c = z->l - m3;
|
||||
|
|
@ -1067,7 +1095,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; }
|
||||
among_var = find_among_b(z, a_7, 6);
|
||||
if (!(among_var)) { z->lb = mlimit4; return 0; }
|
||||
if (!among_var) { z->lb = mlimit4; return 0; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1090,7 +1118,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 1, s_31);
|
||||
{ int ret = slice_from_s(z, 1, s_32);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -1108,7 +1136,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
static int r_un_double(struct SN_env * z) {
|
||||
{ int m_test1 = z->l - z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_8, 5))) return 0;
|
||||
if (!find_among_b(z, a_8, 5)) return 0;
|
||||
z->c = z->l - m_test1;
|
||||
}
|
||||
z->ket = z->c;
|
||||
|
|
@ -1144,7 +1172,7 @@ static int r_un_accent(struct SN_env * z) {
|
|||
}
|
||||
lab1:
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_from_s(z, 1, s_32);
|
||||
{ int ret = slice_from_s(z, 1, s_33);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 1;
|
||||
|
|
@ -1152,58 +1180,64 @@ lab1:
|
|||
|
||||
extern int french_ISO_8859_1_stem(struct SN_env * z) {
|
||||
{ int c1 = z->c;
|
||||
{ int ret = r_prelude(z);
|
||||
{ int ret = r_elisions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c1;
|
||||
}
|
||||
|
||||
{ int c2 = z->c;
|
||||
{ int ret = r_prelude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c2;
|
||||
}
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
{ int ret = r_standard_suffix(z);
|
||||
if (ret == 0) goto lab4;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab3;
|
||||
lab4:
|
||||
z->c = z->l - m5;
|
||||
z->c = z->l - m6;
|
||||
{ int ret = r_i_verb_suffix(z);
|
||||
if (ret == 0) goto lab5;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab3;
|
||||
lab5:
|
||||
z->c = z->l - m5;
|
||||
z->c = z->l - m6;
|
||||
{ int ret = r_verb_suffix(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
lab3:
|
||||
z->c = z->l - m4;
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
z->c = z->l - m5;
|
||||
{ int m7 = z->l - z->c; (void)m7;
|
||||
z->ket = z->c;
|
||||
{ int m7 = z->l - z->c; (void)m7;
|
||||
{ int m8 = z->l - z->c; (void)m8;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8;
|
||||
z->c--;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_from_s(z, 1, s_33);
|
||||
{ int ret = slice_from_s(z, 1, s_34);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab7;
|
||||
lab8:
|
||||
z->c = z->l - m7;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m6; goto lab6; }
|
||||
z->c = z->l - m8;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m7; goto lab6; }
|
||||
z->c--;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_from_s(z, 1, s_34);
|
||||
{ int ret = slice_from_s(z, 1, s_35);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -1214,7 +1248,7 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) {
|
|||
}
|
||||
goto lab1;
|
||||
lab2:
|
||||
z->c = z->l - m3;
|
||||
z->c = z->l - m4;
|
||||
{ int ret = r_residual_suffix(z);
|
||||
if (ret == 0) goto lab0;
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -1222,26 +1256,26 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) {
|
|||
}
|
||||
lab1:
|
||||
lab0:
|
||||
z->c = z->l - m2;
|
||||
}
|
||||
{ int m8 = z->l - z->c; (void)m8;
|
||||
{ int ret = r_un_double(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m8;
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
{ int m9 = z->l - z->c; (void)m9;
|
||||
{ int ret = r_un_accent(z);
|
||||
{ int ret = r_un_double(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m9;
|
||||
}
|
||||
{ int m10 = z->l - z->c; (void)m10;
|
||||
{ int ret = r_un_accent(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m10;
|
||||
}
|
||||
z->c = z->lb;
|
||||
{ int c10 = z->c;
|
||||
{ int c11 = z->c;
|
||||
{ int ret = r_postlude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c10;
|
||||
z->c = c11;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,82 +27,106 @@ extern void german_ISO_8859_1_close_env(struct SN_env * z);
|
|||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
static const symbol s_0_1[1] = { 'U' };
|
||||
static const symbol s_0_2[1] = { 'Y' };
|
||||
static const symbol s_0_3[1] = { 0xE4 };
|
||||
static const symbol s_0_4[1] = { 0xF6 };
|
||||
static const symbol s_0_5[1] = { 0xFC };
|
||||
static const symbol s_0_1[2] = { 'a', 'e' };
|
||||
static const symbol s_0_2[2] = { 'o', 'e' };
|
||||
static const symbol s_0_3[2] = { 'q', 'u' };
|
||||
static const symbol s_0_4[2] = { 'u', 'e' };
|
||||
static const symbol s_0_5[1] = { 0xDF };
|
||||
|
||||
static const struct among a_0[6] =
|
||||
{
|
||||
{ 0, 0, -1, 5, 0},
|
||||
{ 1, s_0_1, 0, 2, 0},
|
||||
{ 1, s_0_2, 0, 1, 0},
|
||||
{ 1, s_0_3, 0, 3, 0},
|
||||
{ 1, s_0_4, 0, 4, 0},
|
||||
{ 1, s_0_5, 0, 2, 0}
|
||||
{ 2, s_0_1, 0, 2, 0},
|
||||
{ 2, s_0_2, 0, 3, 0},
|
||||
{ 2, s_0_3, 0, -1, 0},
|
||||
{ 2, s_0_4, 0, 4, 0},
|
||||
{ 1, s_0_5, 0, 1, 0}
|
||||
};
|
||||
|
||||
static const symbol s_1_0[1] = { 'e' };
|
||||
static const symbol s_1_1[2] = { 'e', 'm' };
|
||||
static const symbol s_1_2[2] = { 'e', 'n' };
|
||||
static const symbol s_1_3[3] = { 'e', 'r', 'n' };
|
||||
static const symbol s_1_4[2] = { 'e', 'r' };
|
||||
static const symbol s_1_5[1] = { 's' };
|
||||
static const symbol s_1_6[2] = { 'e', 's' };
|
||||
static const symbol s_1_1[1] = { 'U' };
|
||||
static const symbol s_1_2[1] = { 'Y' };
|
||||
static const symbol s_1_3[1] = { 0xE4 };
|
||||
static const symbol s_1_4[1] = { 0xF6 };
|
||||
static const symbol s_1_5[1] = { 0xFC };
|
||||
|
||||
static const struct among a_1[7] =
|
||||
static const struct among a_1[6] =
|
||||
{
|
||||
{ 1, s_1_0, -1, 2, 0},
|
||||
{ 2, s_1_1, -1, 1, 0},
|
||||
{ 2, s_1_2, -1, 2, 0},
|
||||
{ 3, s_1_3, -1, 1, 0},
|
||||
{ 2, s_1_4, -1, 1, 0},
|
||||
{ 1, s_1_5, -1, 3, 0},
|
||||
{ 2, s_1_6, 5, 2, 0}
|
||||
{ 0, 0, -1, 5, 0},
|
||||
{ 1, s_1_1, 0, 2, 0},
|
||||
{ 1, s_1_2, 0, 1, 0},
|
||||
{ 1, s_1_3, 0, 3, 0},
|
||||
{ 1, s_1_4, 0, 4, 0},
|
||||
{ 1, s_1_5, 0, 2, 0}
|
||||
};
|
||||
|
||||
static const symbol s_2_0[2] = { 'e', 'n' };
|
||||
static const symbol s_2_1[2] = { 'e', 'r' };
|
||||
static const symbol s_2_2[2] = { 's', 't' };
|
||||
static const symbol s_2_3[3] = { 'e', 's', 't' };
|
||||
static const symbol s_2_0[1] = { 'e' };
|
||||
static const symbol s_2_1[2] = { 'e', 'm' };
|
||||
static const symbol s_2_2[2] = { 'e', 'n' };
|
||||
static const symbol s_2_3[7] = { 'e', 'r', 'i', 'n', 'n', 'e', 'n' };
|
||||
static const symbol s_2_4[4] = { 'e', 'r', 'i', 'n' };
|
||||
static const symbol s_2_5[2] = { 'l', 'n' };
|
||||
static const symbol s_2_6[3] = { 'e', 'r', 'n' };
|
||||
static const symbol s_2_7[2] = { 'e', 'r' };
|
||||
static const symbol s_2_8[1] = { 's' };
|
||||
static const symbol s_2_9[2] = { 'e', 's' };
|
||||
static const symbol s_2_10[3] = { 'l', 'n', 's' };
|
||||
|
||||
static const struct among a_2[4] =
|
||||
static const struct among a_2[11] =
|
||||
{
|
||||
{ 2, s_2_0, -1, 1, 0},
|
||||
{ 1, s_2_0, -1, 3, 0},
|
||||
{ 2, s_2_1, -1, 1, 0},
|
||||
{ 2, s_2_2, -1, 2, 0},
|
||||
{ 3, s_2_3, 2, 1, 0}
|
||||
{ 2, s_2_2, -1, 3, 0},
|
||||
{ 7, s_2_3, 2, 2, 0},
|
||||
{ 4, s_2_4, -1, 2, 0},
|
||||
{ 2, s_2_5, -1, 5, 0},
|
||||
{ 3, s_2_6, -1, 2, 0},
|
||||
{ 2, s_2_7, -1, 2, 0},
|
||||
{ 1, s_2_8, -1, 4, 0},
|
||||
{ 2, s_2_9, 8, 3, 0},
|
||||
{ 3, s_2_10, 8, 5, 0}
|
||||
};
|
||||
|
||||
static const symbol s_3_0[2] = { 'i', 'g' };
|
||||
static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
|
||||
static const symbol s_3_0[2] = { 'e', 'n' };
|
||||
static const symbol s_3_1[2] = { 'e', 'r' };
|
||||
static const symbol s_3_2[2] = { 's', 't' };
|
||||
static const symbol s_3_3[3] = { 'e', 's', 't' };
|
||||
|
||||
static const struct among a_3[2] =
|
||||
static const struct among a_3[4] =
|
||||
{
|
||||
{ 2, s_3_0, -1, 1, 0},
|
||||
{ 4, s_3_1, -1, 1, 0}
|
||||
{ 2, s_3_1, -1, 1, 0},
|
||||
{ 2, s_3_2, -1, 2, 0},
|
||||
{ 3, s_3_3, 2, 1, 0}
|
||||
};
|
||||
|
||||
static const symbol s_4_0[3] = { 'e', 'n', 'd' };
|
||||
static const symbol s_4_1[2] = { 'i', 'g' };
|
||||
static const symbol s_4_2[3] = { 'u', 'n', 'g' };
|
||||
static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
|
||||
static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
|
||||
static const symbol s_4_5[2] = { 'i', 'k' };
|
||||
static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
|
||||
static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
|
||||
static const symbol s_4_0[2] = { 'i', 'g' };
|
||||
static const symbol s_4_1[4] = { 'l', 'i', 'c', 'h' };
|
||||
|
||||
static const struct among a_4[8] =
|
||||
static const struct among a_4[2] =
|
||||
{
|
||||
{ 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}
|
||||
{ 2, s_4_0, -1, 1, 0},
|
||||
{ 4, s_4_1, -1, 1, 0}
|
||||
};
|
||||
|
||||
static const symbol s_5_0[3] = { 'e', 'n', 'd' };
|
||||
static const symbol s_5_1[2] = { 'i', 'g' };
|
||||
static const symbol s_5_2[3] = { 'u', 'n', 'g' };
|
||||
static const symbol s_5_3[4] = { 'l', 'i', 'c', 'h' };
|
||||
static const symbol s_5_4[4] = { 'i', 's', 'c', 'h' };
|
||||
static const symbol s_5_5[2] = { 'i', 'k' };
|
||||
static const symbol s_5_6[4] = { 'h', 'e', 'i', 't' };
|
||||
static const symbol s_5_7[4] = { 'k', 'e', 'i', 't' };
|
||||
|
||||
static const struct among a_5[8] =
|
||||
{
|
||||
{ 3, s_5_0, -1, 1, 0},
|
||||
{ 2, s_5_1, -1, 2, 0},
|
||||
{ 3, s_5_2, -1, 1, 0},
|
||||
{ 4, s_5_3, -1, 3, 0},
|
||||
{ 4, s_5_4, -1, 2, 0},
|
||||
{ 2, s_5_5, -1, 2, 0},
|
||||
{ 4, s_5_6, -1, 3, 0},
|
||||
{ 4, s_5_7, -1, 4, 0}
|
||||
};
|
||||
|
||||
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
|
||||
|
|
@ -111,37 +135,59 @@ static const unsigned char g_s_ending[] = { 117, 30, 5 };
|
|||
|
||||
static const unsigned char g_st_ending[] = { 117, 30, 4 };
|
||||
|
||||
static const symbol s_0[] = { 's', 's' };
|
||||
static const symbol s_1[] = { 'U' };
|
||||
static const symbol s_2[] = { 'Y' };
|
||||
static const symbol s_3[] = { 'y' };
|
||||
static const symbol s_4[] = { 'u' };
|
||||
static const symbol s_5[] = { 'a' };
|
||||
static const symbol s_6[] = { 'o' };
|
||||
static const symbol s_7[] = { 'n', 'i', 's' };
|
||||
static const symbol s_8[] = { 'i', 'g' };
|
||||
static const symbol s_9[] = { 'e', 'r' };
|
||||
static const symbol s_10[] = { 'e', 'n' };
|
||||
static const symbol s_0[] = { 'U' };
|
||||
static const symbol s_1[] = { 'Y' };
|
||||
static const symbol s_2[] = { 's', 's' };
|
||||
static const symbol s_3[] = { 0xE4 };
|
||||
static const symbol s_4[] = { 0xF6 };
|
||||
static const symbol s_5[] = { 0xFC };
|
||||
static const symbol s_6[] = { 'y' };
|
||||
static const symbol s_7[] = { 'u' };
|
||||
static const symbol s_8[] = { 'a' };
|
||||
static const symbol s_9[] = { 'o' };
|
||||
static const symbol s_10[] = { 's', 'y', 's', 't' };
|
||||
static const symbol s_11[] = { 'n', 'i', 's' };
|
||||
static const symbol s_12[] = { 'l' };
|
||||
static const symbol s_13[] = { 'i', 'g' };
|
||||
static const symbol s_14[] = { 'e', 'r' };
|
||||
static const symbol s_15[] = { 'e', 'n' };
|
||||
|
||||
static int r_prelude(struct SN_env * z) {
|
||||
int among_var;
|
||||
{ int c_test1 = z->c;
|
||||
while(1) {
|
||||
int c2 = z->c;
|
||||
{ int c3 = z->c;
|
||||
while(1) {
|
||||
int c3 = z->c;
|
||||
if (in_grouping(z, g_v, 97, 252, 0)) goto lab1;
|
||||
z->bra = z->c;
|
||||
if (z->c == z->l || z->p[z->c] != 0xDF) goto lab2;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 2, s_0);
|
||||
if (ret < 0) return ret;
|
||||
{ int c4 = z->c;
|
||||
if (z->c == z->l || z->p[z->c] != 'u') goto lab3;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping(z, g_v, 97, 252, 0)) goto lab3;
|
||||
{ int ret = slice_from_s(z, 1, s_0);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab2;
|
||||
lab3:
|
||||
z->c = c4;
|
||||
if (z->c == z->l || z->p[z->c] != 'y') goto lab1;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping(z, g_v, 97, 252, 0)) goto lab1;
|
||||
{ int ret = slice_from_s(z, 1, s_1);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
goto lab1;
|
||||
lab2:
|
||||
z->c = c3;
|
||||
break;
|
||||
lab1:
|
||||
z->c = c3;
|
||||
if (z->c >= z->l) goto lab0;
|
||||
z->c++;
|
||||
}
|
||||
lab1:
|
||||
continue;
|
||||
lab0:
|
||||
z->c = c2;
|
||||
|
|
@ -150,41 +196,39 @@ static int r_prelude(struct SN_env * z) {
|
|||
z->c = c_test1;
|
||||
}
|
||||
while(1) {
|
||||
int c4 = z->c;
|
||||
while(1) {
|
||||
int c5 = z->c;
|
||||
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
|
||||
z->bra = z->c;
|
||||
{ int c6 = z->c;
|
||||
if (z->c == z->l || z->p[z->c] != 'u') goto lab6;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping(z, g_v, 97, 252, 0)) goto lab6;
|
||||
{ int ret = slice_from_s(z, 1, s_1);
|
||||
int c5 = z->c;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_0, 6);
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_from_s(z, 2, s_2);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab5;
|
||||
lab6:
|
||||
z->c = c6;
|
||||
if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
|
||||
{ int ret = slice_from_s(z, 1, s_2);
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 1, s_3);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
lab5:
|
||||
z->c = c5;
|
||||
break;
|
||||
lab4:
|
||||
z->c = c5;
|
||||
if (z->c >= z->l) goto lab3;
|
||||
z->c++;
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 1, s_4);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{ int ret = slice_from_s(z, 1, s_5);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (z->c >= z->l) goto lab4;
|
||||
z->c++;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
lab3:
|
||||
z->c = c4;
|
||||
lab4:
|
||||
z->c = c5;
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
|
|
@ -199,27 +243,31 @@ z->c = z->c + 3;
|
|||
z->I[0] = z->c;
|
||||
z->c = c_test1;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[2] = z->c;
|
||||
|
||||
if (!(z->I[2] < z->I[0])) goto lab0;
|
||||
|
||||
if (z->I[2] >= z->I[0]) goto lab0;
|
||||
z->I[2] = z->I[0];
|
||||
lab0:
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
|
|
@ -233,27 +281,26 @@ static int r_postlude(struct SN_env * z) {
|
|||
while(1) {
|
||||
int c1 = z->c;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_0, 6);
|
||||
if (!(among_var)) goto lab0;
|
||||
among_var = find_among(z, a_1, 6);
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_from_s(z, 1, s_3);
|
||||
{ int ret = slice_from_s(z, 1, s_6);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 1, s_4);
|
||||
{ int ret = slice_from_s(z, 1, s_7);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 1, s_5);
|
||||
{ int ret = slice_from_s(z, 1, s_8);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{ int ret = slice_from_s(z, 1, s_6);
|
||||
{ int ret = slice_from_s(z, 1, s_9);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -271,13 +318,11 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_standard_suffix(struct SN_env * z) {
|
||||
|
|
@ -285,8 +330,8 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m1 = z->l - z->c; (void)m1;
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
|
||||
among_var = find_among_b(z, a_1, 7);
|
||||
if (!(among_var)) goto lab0;
|
||||
among_var = find_among_b(z, a_2, 11);
|
||||
if (!among_var) goto lab0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret == 0) goto lab0;
|
||||
|
|
@ -294,6 +339,12 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
if (!(eq_s_b(z, 4, s_10))) goto lab1;
|
||||
goto lab0;
|
||||
lab1:
|
||||
z->c = z->l - m2;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -302,64 +353,46 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; }
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m3; goto lab2; }
|
||||
z->c--;
|
||||
z->bra = z->c;
|
||||
if (!(eq_s_b(z, 3, s_7))) { z->c = z->l - m2; goto lab1; }
|
||||
if (!(eq_s_b(z, 3, s_11))) { z->c = z->l - m3; goto lab2; }
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
lab1:
|
||||
lab2:
|
||||
;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
{ int ret = slice_from_s(z, 1, s_12);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
lab0:
|
||||
z->c = z->l - m1;
|
||||
}
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
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;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ 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;
|
||||
z->c = z->c - 3;
|
||||
if (z->c < z->lb) goto lab2;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
lab2:
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
|
||||
among_var = find_among_b(z, a_4, 8);
|
||||
if (!(among_var)) goto lab3;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
|
||||
among_var = find_among_b(z, a_3, 4);
|
||||
if (!among_var) goto lab3;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
{ int ret = r_R1(z);
|
||||
if (ret == 0) goto lab3;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -368,35 +401,63 @@ z->c = z->c - 3;
|
|||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
break;
|
||||
case 2:
|
||||
if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab3;
|
||||
z->c = z->c - 3;
|
||||
if (z->c < z->lb) goto lab3;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
lab3:
|
||||
z->c = z->l - m4;
|
||||
}
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab4;
|
||||
among_var = find_among_b(z, a_5, 8);
|
||||
if (!among_var) goto lab4;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) goto lab4;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
z->ket = z->c;
|
||||
if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m5; goto lab4; }
|
||||
if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m6; goto lab5; }
|
||||
z->bra = z->c;
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5;
|
||||
{ int m7 = z->l - z->c; (void)m7;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
|
||||
z->c--;
|
||||
{ z->c = z->l - m5; goto lab4; }
|
||||
lab5:
|
||||
z->c = z->l - m6;
|
||||
{ z->c = z->l - m6; goto lab5; }
|
||||
lab6:
|
||||
z->c = z->l - m7;
|
||||
}
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m5; goto lab4; }
|
||||
if (ret == 0) { z->c = z->l - m6; goto lab5; }
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
lab4:
|
||||
lab5:
|
||||
;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int m7 = z->l - z->c; (void)m7;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
|
||||
{ int m8 = z->l - z->c; (void)m8;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7;
|
||||
z->c--;
|
||||
goto lab3;
|
||||
lab6:
|
||||
z->c = z->l - m7;
|
||||
goto lab4;
|
||||
lab7:
|
||||
z->c = z->l - m8;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -406,25 +467,25 @@ z->c = z->c - 3;
|
|||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int m8 = z->l - z->c; (void)m8;
|
||||
{ int m9 = z->l - z->c; (void)m9;
|
||||
z->ket = z->c;
|
||||
{ int m9 = z->l - z->c; (void)m9;
|
||||
if (!(eq_s_b(z, 2, s_9))) goto lab9;
|
||||
goto lab8;
|
||||
lab9:
|
||||
z->c = z->l - m9;
|
||||
if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m8; goto lab7; }
|
||||
{ int m10 = z->l - z->c; (void)m10;
|
||||
if (!(eq_s_b(z, 2, s_14))) goto lab10;
|
||||
goto lab9;
|
||||
lab10:
|
||||
z->c = z->l - m10;
|
||||
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m9; goto lab8; }
|
||||
}
|
||||
lab8:
|
||||
lab9:
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret == 0) { z->c = z->l - m8; goto lab7; }
|
||||
if (ret == 0) { z->c = z->l - m9; goto lab8; }
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
lab7:
|
||||
lab8:
|
||||
;
|
||||
}
|
||||
break;
|
||||
|
|
@ -432,25 +493,25 @@ z->c = z->c - 3;
|
|||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int m10 = z->l - z->c; (void)m10;
|
||||
{ int m11 = z->l - z->c; (void)m11;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; }
|
||||
if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; }
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m11; goto lab11; }
|
||||
if (!find_among_b(z, a_4, 2)) { z->c = z->l - m11; goto lab11; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m10; goto lab10; }
|
||||
if (ret == 0) { z->c = z->l - m11; goto lab11; }
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
lab10:
|
||||
lab11:
|
||||
;
|
||||
}
|
||||
break;
|
||||
}
|
||||
lab3:
|
||||
z->c = z->l - m4;
|
||||
lab4:
|
||||
z->c = z->l - m5;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -470,7 +531,7 @@ extern int german_ISO_8859_1_stem(struct SN_env * z) {
|
|||
}
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
|
||||
|
||||
{ int ret = r_standard_suffix(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ static const symbol s_6[] = { 'a', 'j', 'a', 'r' };
|
|||
static int r_remove_particle(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0;
|
||||
if (!(find_among_b(z, a_0, 3))) return 0;
|
||||
if (!find_among_b(z, a_0, 3)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -135,7 +135,7 @@ static int r_remove_particle(struct SN_env * z) {
|
|||
static int r_remove_possessive_pronoun(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0;
|
||||
if (!(find_among_b(z, a_1, 3))) return 0;
|
||||
if (!find_among_b(z, a_1, 3)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -145,19 +145,18 @@ static int r_remove_possessive_pronoun(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_SUFFIX_KAN_OK(struct SN_env * z) {
|
||||
|
||||
if (!(z->I[0] != 3)) return 0;
|
||||
if (!(z->I[0] != 2)) return 0;
|
||||
|
||||
if (z->I[0] == 3) return 0;
|
||||
if (z->I[0] == 2) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_SUFFIX_AN_OK(struct SN_env * z) {
|
||||
if (!(z->I[0] != 1)) return 0;
|
||||
return 1;
|
||||
return z->I[0] != 1;
|
||||
}
|
||||
|
||||
static int r_SUFFIX_I_OK(struct SN_env * z) {
|
||||
if (!(z->I[0] <= 2)) return 0;
|
||||
if (z->I[0] > 2) return 0;
|
||||
{ int m1 = z->l - z->c; (void)m1;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0;
|
||||
z->c--;
|
||||
|
|
@ -171,7 +170,7 @@ static int r_SUFFIX_I_OK(struct SN_env * z) {
|
|||
static int r_remove_suffix(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0;
|
||||
if (!(find_among_b(z, a_2, 3))) return 0;
|
||||
if (!find_among_b(z, a_2, 3)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -196,7 +195,7 @@ static int r_remove_first_order_prefix(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0;
|
||||
among_var = find_among(z, a_3, 12);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -276,7 +275,7 @@ static int r_remove_second_order_prefix(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0;
|
||||
among_var = find_among(z, a_4, 6);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -315,7 +314,8 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
|
|||
{ int c1 = z->c;
|
||||
while(1) {
|
||||
int c2 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_vowel, 97, 117, 1);
|
||||
if (ret < 0) goto lab1;
|
||||
z->c += ret;
|
||||
|
|
@ -328,7 +328,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = c1;
|
||||
}
|
||||
if (!(z->I[1] > 2)) return 0;
|
||||
if (z->I[1] <= 2) return 0;
|
||||
z->I[0] = 0;
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
|
|
@ -338,7 +338,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
if (!(z->I[1] > 2)) return 0;
|
||||
if (z->I[1] <= 2) return 0;
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
{ int ret = r_remove_possessive_pronoun(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -346,7 +346,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
|
|||
z->c = z->l - m4;
|
||||
}
|
||||
z->c = z->lb;
|
||||
if (!(z->I[1] > 2)) return 0;
|
||||
if (z->I[1] <= 2) return 0;
|
||||
{ int c5 = z->c;
|
||||
{ int c_test6 = z->c;
|
||||
{ int ret = r_remove_first_order_prefix(z);
|
||||
|
|
@ -355,7 +355,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
|
|||
}
|
||||
{ int c7 = z->c;
|
||||
{ int c_test8 = z->c;
|
||||
if (!(z->I[1] > 2)) goto lab4;
|
||||
if (z->I[1] <= 2) goto lab4;
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
{ int ret = r_remove_suffix(z);
|
||||
|
|
@ -365,7 +365,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
|
|||
z->c = z->lb;
|
||||
z->c = c_test8;
|
||||
}
|
||||
if (!(z->I[1] > 2)) goto lab4;
|
||||
if (z->I[1] <= 2) goto lab4;
|
||||
{ int ret = r_remove_second_order_prefix(z);
|
||||
if (ret == 0) goto lab4;
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -385,7 +385,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
|
|||
z->c = c9;
|
||||
}
|
||||
{ int c10 = z->c;
|
||||
if (!(z->I[1] > 2)) goto lab5;
|
||||
if (z->I[1] <= 2) goto lab5;
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
{ int ret = r_remove_suffix(z);
|
||||
|
|
|
|||
|
|
@ -225,24 +225,28 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
{ int c1 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[2] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -258,7 +262,7 @@ static int r_initial_morph(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_0, 24);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -316,25 +320,22 @@ static int r_initial_morph(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_noun_sfx(struct SN_env * z) {
|
||||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_1, 16);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -361,7 +362,7 @@ static int r_deriv(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_2, 25);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -406,7 +407,7 @@ static int r_verb_sfx(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_3, 12);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -436,7 +437,7 @@ extern int irish_ISO_8859_1_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = c1;
|
||||
}
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ static int r_RV(struct SN_env * z);
|
|||
static int r_mark_regions(struct SN_env * z);
|
||||
static int r_postlude(struct SN_env * z);
|
||||
static int r_prelude(struct SN_env * z);
|
||||
static int r_exceptions(struct SN_env * z);
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
|
@ -487,6 +488,8 @@ static const symbol s_14[] = { 'e', 'n', 't', 'e' };
|
|||
static const symbol s_15[] = { 'a', 't' };
|
||||
static const symbol s_16[] = { 'a', 't' };
|
||||
static const symbol s_17[] = { 'i', 'c' };
|
||||
static const symbol s_18[] = { 'd', 'i', 'v', 'a', 'n', 'o' };
|
||||
static const symbol s_19[] = { 'd', 'i', 'v', 'a', 'n' };
|
||||
|
||||
static int r_prelude(struct SN_env * z) {
|
||||
int among_var;
|
||||
|
|
@ -495,7 +498,6 @@ static int r_prelude(struct SN_env * z) {
|
|||
int c2 = z->c;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_0, 7);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -590,7 +592,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
|
||||
{ int c3 = z->c;
|
||||
if (out_grouping(z, g_v, 97, 249, 0)) goto lab4;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
|
|
@ -599,7 +602,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
lab4:
|
||||
z->c = c3;
|
||||
if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab2;
|
||||
z->c += ret;
|
||||
|
|
@ -612,7 +616,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (out_grouping(z, g_v, 97, 249, 0)) goto lab0;
|
||||
{ int c4 = z->c;
|
||||
if (out_grouping(z, g_v, 97, 249, 0)) goto lab6;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab6;
|
||||
z->c += ret;
|
||||
|
|
@ -633,23 +638,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->c = c1;
|
||||
}
|
||||
{ int c5 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
|
|
@ -668,7 +677,6 @@ static int r_postlude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
|
||||
among_var = find_among(z, a_1, 3);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -695,29 +703,26 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_attached_pronoun(struct SN_env * z) {
|
||||
int among_var;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_2, 37))) return 0;
|
||||
if (!find_among_b(z, a_2, 37)) return 0;
|
||||
z->bra = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
|
||||
among_var = find_among_b(z, a_3, 5);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
{ int ret = r_RV(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -740,7 +745,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_6, 51);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -816,7 +821,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; }
|
||||
among_var = find_among_b(z, a_4, 4);
|
||||
if (!(among_var)) { z->c = z->l - m2; goto lab1; }
|
||||
if (!among_var) { z->c = z->l - m2; goto lab1; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m2; goto lab1; }
|
||||
|
|
@ -853,7 +858,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m3 = z->l - z->c; (void)m3;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; }
|
||||
if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m3; goto lab2; }
|
||||
if (!find_among_b(z, a_5, 3)) { z->c = z->l - m3; goto lab2; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m3; goto lab2; }
|
||||
|
|
@ -908,7 +913,7 @@ static int r_verb_suffix(struct SN_env * z) {
|
|||
if (z->c < z->I[2]) return 0;
|
||||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_7, 87)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -963,56 +968,77 @@ static int r_vowel_suffix(struct SN_env * z) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
extern int italian_ISO_8859_1_stem(struct SN_env * z) {
|
||||
{ int c1 = z->c;
|
||||
{ int ret = r_prelude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c1;
|
||||
}
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
static int r_exceptions(struct SN_env * z) {
|
||||
z->bra = z->c;
|
||||
if (!(eq_s(z, 6, s_18))) return 0;
|
||||
if (z->c < z->l) return 0;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 5, s_19);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->lb = z->c; z->c = z->l;
|
||||
return 1;
|
||||
}
|
||||
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
{ int ret = r_attached_pronoun(z);
|
||||
extern int italian_ISO_8859_1_stem(struct SN_env * z) {
|
||||
{ int c1 = z->c;
|
||||
{ int ret = r_exceptions(z);
|
||||
if (ret == 0) goto lab1;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m2;
|
||||
}
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
{ int ret = r_standard_suffix(z);
|
||||
if (ret == 0) goto lab2;
|
||||
goto lab0;
|
||||
lab1:
|
||||
z->c = c1;
|
||||
{ int c2 = z->c;
|
||||
{ int ret = r_prelude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab1;
|
||||
z->c = c2;
|
||||
}
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
{ int ret = r_attached_pronoun(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
{ int ret = r_standard_suffix(z);
|
||||
if (ret == 0) goto lab4;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab3;
|
||||
lab4:
|
||||
z->c = z->l - m5;
|
||||
{ int ret = r_verb_suffix(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
lab3:
|
||||
lab2:
|
||||
z->c = z->l - m4;
|
||||
{ int ret = r_verb_suffix(z);
|
||||
if (ret == 0) goto lab0;
|
||||
}
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
{ int ret = r_vowel_suffix(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m6;
|
||||
}
|
||||
lab1:
|
||||
lab0:
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
{ int ret = r_vowel_suffix(z);
|
||||
if (ret < 0) return ret;
|
||||
z->c = z->lb;
|
||||
{ int c7 = z->c;
|
||||
{ int ret = r_postlude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c7;
|
||||
}
|
||||
z->c = z->l - m5;
|
||||
}
|
||||
z->c = z->lb;
|
||||
{ int c6 = z->c;
|
||||
{ int ret = r_postlude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c6;
|
||||
}
|
||||
lab0:
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -138,15 +138,17 @@ z->c = z->c + 3;
|
|||
z->I[0] = z->c;
|
||||
z->c = c_test1;
|
||||
}
|
||||
|
||||
if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 248, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
|
||||
if (!(z->I[1] < z->I[0])) goto lab0;
|
||||
|
||||
if (z->I[1] >= z->I[0]) goto lab0;
|
||||
z->I[1] = z->I[0];
|
||||
lab0:
|
||||
return 1;
|
||||
|
|
@ -161,7 +163,7 @@ static int r_main_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
among_var = find_among_b(z, a_0, 29);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -203,7 +205,7 @@ static int r_consonant_pair(struct SN_env * z) {
|
|||
mlimit2 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; }
|
||||
if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; }
|
||||
if (!find_among_b(z, a_1, 2)) { z->lb = mlimit2; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit2;
|
||||
}
|
||||
|
|
@ -225,7 +227,7 @@ static int r_other_suffix(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_2, 11)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -230,13 +230,11 @@ static int r_shortv(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_Step_1a(struct SN_env * z) {
|
||||
|
|
@ -244,7 +242,7 @@ static int r_Step_1a(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
|
||||
among_var = find_among_b(z, a_0, 4);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -271,7 +269,7 @@ static int r_Step_1b(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
|
||||
among_var = find_among_b(z, a_2, 3);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -284,7 +282,8 @@ static int r_Step_1b(struct SN_env * z) {
|
|||
break;
|
||||
case 2:
|
||||
{ int m_test1 = z->l - z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_b(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c -= ret;
|
||||
|
|
@ -297,7 +296,6 @@ static int r_Step_1b(struct SN_env * z) {
|
|||
{ int m_test2 = z->l - z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
|
||||
among_var = find_among_b(z, a_1, 13);
|
||||
if (!(among_var)) return 0;
|
||||
z->c = z->l - m_test2;
|
||||
}
|
||||
switch (among_var) {
|
||||
|
|
@ -354,7 +352,8 @@ static int r_Step_1c(struct SN_env * z) {
|
|||
}
|
||||
lab0:
|
||||
z->bra = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_b(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c -= ret;
|
||||
|
|
@ -370,7 +369,7 @@ static int r_Step_2(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_3, 20);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -450,7 +449,7 @@ static int r_Step_3(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_4, 7);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -480,7 +479,7 @@ static int r_Step_4(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_5, 19);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -515,26 +514,24 @@ static int r_Step_5a(struct SN_env * z) {
|
|||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
|
||||
z->c--;
|
||||
z->bra = z->c;
|
||||
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) goto lab1;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab0;
|
||||
lab1:
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int m1 = z->l - z->c; (void)m1;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) goto lab1;
|
||||
{ int ret = r_shortv(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab0;
|
||||
lab1:
|
||||
return 0;
|
||||
lab2:
|
||||
z->c = z->l - m1;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
{ int ret = r_shortv(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 0;
|
||||
lab2:
|
||||
z->c = z->l - m2;
|
||||
}
|
||||
}
|
||||
lab0:
|
||||
{ int ret = slice_del(z);
|
||||
|
|
@ -604,23 +601,27 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
|
|||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
{ int c5 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
|
|
|
|||
|
|
@ -479,7 +479,6 @@ static int r_prelude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c >= z->l || (z->p[z->c + 0] != 227 && z->p[z->c + 0] != 245)) among_var = 3; else
|
||||
among_var = find_among(z, a_0, 3);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -514,7 +513,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
|
||||
{ int c3 = z->c;
|
||||
if (out_grouping(z, g_v, 97, 250, 0)) goto lab4;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
|
|
@ -523,7 +523,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
lab4:
|
||||
z->c = c3;
|
||||
if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab2;
|
||||
z->c += ret;
|
||||
|
|
@ -536,7 +537,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (out_grouping(z, g_v, 97, 250, 0)) goto lab0;
|
||||
{ int c4 = z->c;
|
||||
if (out_grouping(z, g_v, 97, 250, 0)) goto lab6;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab6;
|
||||
z->c += ret;
|
||||
|
|
@ -557,23 +559,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->c = c1;
|
||||
}
|
||||
{ int c5 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
|
|
@ -592,7 +598,6 @@ static int r_postlude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else
|
||||
among_var = find_among(z, a_1, 3);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -619,18 +624,15 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_standard_suffix(struct SN_env * z) {
|
||||
|
|
@ -638,7 +640,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_5, 45);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -684,7 +686,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; }
|
||||
among_var = find_among_b(z, a_2, 4);
|
||||
if (!(among_var)) { z->c = z->l - m1; goto lab0; }
|
||||
if (!among_var) { z->c = z->l - m1; goto lab0; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m1; goto lab0; }
|
||||
|
|
@ -721,7 +723,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m2 = z->l - z->c; (void)m2;
|
||||
z->ket = z->c;
|
||||
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; }
|
||||
if (!(find_among_b(z, a_3, 3))) { z->c = z->l - m2; goto lab1; }
|
||||
if (!find_among_b(z, a_3, 3)) { z->c = z->l - m2; goto lab1; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m2; goto lab1; }
|
||||
|
|
@ -744,7 +746,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m3 = z->l - z->c; (void)m3;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; }
|
||||
if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
|
||||
if (!find_among_b(z, a_4, 3)) { z->c = z->l - m3; goto lab2; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m3; goto lab2; }
|
||||
|
|
@ -799,7 +801,7 @@ static int r_verb_suffix(struct SN_env * z) {
|
|||
if (z->c < z->I[2]) return 0;
|
||||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_6, 120)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -811,7 +813,7 @@ static int r_verb_suffix(struct SN_env * z) {
|
|||
|
||||
static int r_residual_suffix(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_7, 7))) return 0;
|
||||
if (!find_among_b(z, a_7, 7)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_RV(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -826,7 +828,7 @@ static int r_residual_form(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_8, 4);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -882,7 +884,7 @@ extern int portuguese_ISO_8859_1_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = c1;
|
||||
}
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -512,7 +512,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (in_grouping(z, g_v, 97, 252, 0)) goto lab2;
|
||||
{ int c3 = z->c;
|
||||
if (out_grouping(z, g_v, 97, 252, 0)) goto lab4;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
|
|
@ -521,7 +522,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
lab4:
|
||||
z->c = c3;
|
||||
if (in_grouping(z, g_v, 97, 252, 0)) goto lab2;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab2;
|
||||
z->c += ret;
|
||||
|
|
@ -534,7 +536,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (out_grouping(z, g_v, 97, 252, 0)) goto lab0;
|
||||
{ int c4 = z->c;
|
||||
if (out_grouping(z, g_v, 97, 252, 0)) goto lab6;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab6;
|
||||
z->c += ret;
|
||||
|
|
@ -555,23 +558,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->c = c1;
|
||||
}
|
||||
{ int c5 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
|
|
@ -590,7 +597,6 @@ static int r_postlude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((67641858 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else
|
||||
among_var = find_among(z, a_0, 6);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -632,29 +638,26 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_attached_pronoun(struct SN_env * z) {
|
||||
int among_var;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_1, 13))) return 0;
|
||||
if (!find_among_b(z, a_1, 13)) return 0;
|
||||
z->bra = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
|
||||
among_var = find_among_b(z, a_2, 11);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
{ int ret = r_RV(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -710,7 +713,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_6, 46);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -778,7 +781,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; }
|
||||
among_var = find_among_b(z, a_3, 4);
|
||||
if (!(among_var)) { z->c = z->l - m2; goto lab1; }
|
||||
if (!among_var) { z->c = z->l - m2; goto lab1; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m2; goto lab1; }
|
||||
|
|
@ -815,7 +818,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m3 = z->l - z->c; (void)m3;
|
||||
z->ket = z->c;
|
||||
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; }
|
||||
if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
|
||||
if (!find_among_b(z, a_4, 3)) { z->c = z->l - m3; goto lab2; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m3; goto lab2; }
|
||||
|
|
@ -838,7 +841,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m4 = z->l - z->c; (void)m4;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m4; goto lab3; }
|
||||
if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m4; goto lab3; }
|
||||
if (!find_among_b(z, a_5, 3)) { z->c = z->l - m4; goto lab3; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m4; goto lab3; }
|
||||
|
|
@ -883,7 +886,7 @@ static int r_y_verb_suffix(struct SN_env * z) {
|
|||
if (z->c < z->I[2]) return 0;
|
||||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_7, 12)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -903,7 +906,7 @@ static int r_verb_suffix(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_8, 96);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -938,7 +941,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_9, 8);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -982,7 +985,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
}
|
||||
|
||||
extern int spanish_ISO_8859_1_stem(struct SN_env * z) {
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ static const symbol s_2_0[2] = { 'i', 'g' };
|
|||
static const symbol s_2_1[3] = { 'l', 'i', 'g' };
|
||||
static const symbol s_2_2[3] = { 'e', 'l', 's' };
|
||||
static const symbol s_2_3[5] = { 'f', 'u', 'l', 'l', 't' };
|
||||
static const symbol s_2_4[4] = { 'l', 0xF6, 's', 't' };
|
||||
static const symbol s_2_4[3] = { 0xF6, 's', 't' };
|
||||
|
||||
static const struct among a_2[5] =
|
||||
{
|
||||
|
|
@ -135,14 +135,16 @@ static const struct among a_2[5] =
|
|||
{ 3, s_2_1, 0, 1, 0},
|
||||
{ 3, s_2_2, -1, 1, 0},
|
||||
{ 5, s_2_3, -1, 3, 0},
|
||||
{ 4, s_2_4, -1, 2, 0}
|
||||
{ 3, s_2_4, -1, 2, 0}
|
||||
};
|
||||
|
||||
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
|
||||
|
||||
static const unsigned char g_s_ending[] = { 119, 127, 149 };
|
||||
|
||||
static const symbol s_0[] = { 'l', 0xF6, 's' };
|
||||
static const unsigned char g_ost_ending[] = { 173, 58 };
|
||||
|
||||
static const symbol s_0[] = { 0xF6, 's' };
|
||||
static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
|
||||
|
||||
static int r_mark_regions(struct SN_env * z) {
|
||||
|
|
@ -153,15 +155,17 @@ z->c = z->c + 3;
|
|||
z->I[0] = z->c;
|
||||
z->c = c_test1;
|
||||
}
|
||||
|
||||
if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 246, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
|
||||
if (!(z->I[1] < z->I[0])) goto lab0;
|
||||
|
||||
if (z->I[1] >= z->I[0]) goto lab0;
|
||||
z->I[1] = z->I[0];
|
||||
lab0:
|
||||
return 1;
|
||||
|
|
@ -176,7 +180,7 @@ static int r_main_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
among_var = find_among_b(z, a_0, 37);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -203,7 +207,7 @@ static int r_consonant_pair(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[1];
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_1, 7)) { z->lb = mlimit1; return 0; }
|
||||
z->c = z->l - m2;
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb) { z->lb = mlimit1; return 0; }
|
||||
|
|
@ -227,27 +231,28 @@ static int r_other_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
among_var = find_among_b(z, a_2, 5);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 3, s_0);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 4, s_1);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (in_grouping_b(z, g_ost_ending, 105, 118, 0)) return 0;
|
||||
{ int ret = slice_from_s(z, 2, s_0);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 4, s_1);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -480,10 +480,11 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[0] = z->l;
|
||||
{ int c1 = z->c;
|
||||
if (in_grouping(z, g_v, 97, 252, 0)) goto lab1;
|
||||
|
||||
if (in_grouping(z, g_v, 97, 252, 1) < 0) goto lab1;
|
||||
{ int c2 = z->c;
|
||||
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3;
|
||||
if (!(find_among(z, a_0, 8))) goto lab3;
|
||||
if (!find_among(z, a_0, 8)) goto lab3;
|
||||
goto lab2;
|
||||
lab3:
|
||||
z->c = c2;
|
||||
|
|
@ -496,7 +497,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
lab1:
|
||||
z->c = c1;
|
||||
if (out_grouping(z, g_v, 97, 252, 0)) return 0;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
|
|
@ -508,8 +510,7 @@ lab0:
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_v_ending(struct SN_env * z) {
|
||||
|
|
@ -517,7 +518,7 @@ static int r_v_ending(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0;
|
||||
among_var = find_among_b(z, a_1, 2);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -540,7 +541,7 @@ static int r_v_ending(struct SN_env * z) {
|
|||
static int r_double(struct SN_env * z) {
|
||||
{ int m_test1 = z->l - z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_2, 23))) return 0;
|
||||
if (!find_among_b(z, a_2, 23)) return 0;
|
||||
z->c = z->l - m_test1;
|
||||
}
|
||||
return 1;
|
||||
|
|
@ -562,7 +563,7 @@ z->c = z->c - 1;
|
|||
static int r_instrum(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
|
||||
if (!(find_among_b(z, a_3, 2))) return 0;
|
||||
if (!find_among_b(z, a_3, 2)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -581,7 +582,7 @@ static int r_instrum(struct SN_env * z) {
|
|||
|
||||
static int r_case(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_4, 44))) return 0;
|
||||
if (!find_among_b(z, a_4, 44)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -600,7 +601,7 @@ static int r_case_special(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0;
|
||||
among_var = find_among_b(z, a_5, 3);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -625,7 +626,7 @@ static int r_case_other(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0;
|
||||
among_var = find_among_b(z, a_6, 6);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -653,7 +654,7 @@ static int r_case_other(struct SN_env * z) {
|
|||
static int r_factive(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0;
|
||||
if (!(find_among_b(z, a_7, 2))) return 0;
|
||||
if (!find_among_b(z, a_7, 2)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -675,7 +676,7 @@ static int r_plural(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0;
|
||||
among_var = find_among_b(z, a_8, 7);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -705,7 +706,7 @@ static int r_owned(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 233)) return 0;
|
||||
among_var = find_among_b(z, a_9, 12);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -734,7 +735,7 @@ static int r_sing_owner(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_10, 31);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -764,7 +765,7 @@ static int r_plur_owner(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_11, 42);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
|
|||
|
|
@ -1,965 +0,0 @@
|
|||
/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
|
||||
|
||||
#include "header.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
extern int romanian_ISO_8859_2_stem(struct SN_env * z);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
static int r_vowel_suffix(struct SN_env * z);
|
||||
static int r_verb_suffix(struct SN_env * z);
|
||||
static int r_combo_suffix(struct SN_env * z);
|
||||
static int r_standard_suffix(struct SN_env * z);
|
||||
static int r_step_0(struct SN_env * z);
|
||||
static int r_R2(struct SN_env * z);
|
||||
static int r_R1(struct SN_env * z);
|
||||
static int r_RV(struct SN_env * z);
|
||||
static int r_mark_regions(struct SN_env * z);
|
||||
static int r_postlude(struct SN_env * z);
|
||||
static int r_prelude(struct SN_env * z);
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
extern struct SN_env * romanian_ISO_8859_2_create_env(void);
|
||||
extern void romanian_ISO_8859_2_close_env(struct SN_env * z);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
static const symbol s_0_1[1] = { 'I' };
|
||||
static const symbol s_0_2[1] = { 'U' };
|
||||
|
||||
static const struct among a_0[3] =
|
||||
{
|
||||
{ 0, 0, -1, 3, 0},
|
||||
{ 1, s_0_1, 0, 1, 0},
|
||||
{ 1, s_0_2, 0, 2, 0}
|
||||
};
|
||||
|
||||
static const symbol s_1_0[2] = { 'e', 'a' };
|
||||
static const symbol s_1_1[4] = { 'a', 0xFE, 'i', 'a' };
|
||||
static const symbol s_1_2[3] = { 'a', 'u', 'a' };
|
||||
static const symbol s_1_3[3] = { 'i', 'u', 'a' };
|
||||
static const symbol s_1_4[4] = { 'a', 0xFE, 'i', 'e' };
|
||||
static const symbol s_1_5[3] = { 'e', 'l', 'e' };
|
||||
static const symbol s_1_6[3] = { 'i', 'l', 'e' };
|
||||
static const symbol s_1_7[4] = { 'i', 'i', 'l', 'e' };
|
||||
static const symbol s_1_8[3] = { 'i', 'e', 'i' };
|
||||
static const symbol s_1_9[4] = { 'a', 't', 'e', 'i' };
|
||||
static const symbol s_1_10[2] = { 'i', 'i' };
|
||||
static const symbol s_1_11[4] = { 'u', 'l', 'u', 'i' };
|
||||
static const symbol s_1_12[2] = { 'u', 'l' };
|
||||
static const symbol s_1_13[4] = { 'e', 'l', 'o', 'r' };
|
||||
static const symbol s_1_14[4] = { 'i', 'l', 'o', 'r' };
|
||||
static const symbol s_1_15[5] = { 'i', 'i', 'l', 'o', 'r' };
|
||||
|
||||
static const struct among a_1[16] =
|
||||
{
|
||||
{ 2, s_1_0, -1, 3, 0},
|
||||
{ 4, s_1_1, -1, 7, 0},
|
||||
{ 3, s_1_2, -1, 2, 0},
|
||||
{ 3, s_1_3, -1, 4, 0},
|
||||
{ 4, s_1_4, -1, 7, 0},
|
||||
{ 3, s_1_5, -1, 3, 0},
|
||||
{ 3, s_1_6, -1, 5, 0},
|
||||
{ 4, s_1_7, 6, 4, 0},
|
||||
{ 3, s_1_8, -1, 4, 0},
|
||||
{ 4, s_1_9, -1, 6, 0},
|
||||
{ 2, s_1_10, -1, 4, 0},
|
||||
{ 4, s_1_11, -1, 1, 0},
|
||||
{ 2, s_1_12, -1, 1, 0},
|
||||
{ 4, s_1_13, -1, 3, 0},
|
||||
{ 4, s_1_14, -1, 4, 0},
|
||||
{ 5, s_1_15, 14, 4, 0}
|
||||
};
|
||||
|
||||
static const symbol s_2_0[5] = { 'i', 'c', 'a', 'l', 'a' };
|
||||
static const symbol s_2_1[5] = { 'i', 'c', 'i', 'v', 'a' };
|
||||
static const symbol s_2_2[5] = { 'a', 't', 'i', 'v', 'a' };
|
||||
static const symbol s_2_3[5] = { 'i', 't', 'i', 'v', 'a' };
|
||||
static const symbol s_2_4[5] = { 'i', 'c', 'a', 'l', 'e' };
|
||||
static const symbol s_2_5[6] = { 'a', 0xFE, 'i', 'u', 'n', 'e' };
|
||||
static const symbol s_2_6[6] = { 'i', 0xFE, 'i', 'u', 'n', 'e' };
|
||||
static const symbol s_2_7[6] = { 'a', 't', 'o', 'a', 'r', 'e' };
|
||||
static const symbol s_2_8[6] = { 'i', 't', 'o', 'a', 'r', 'e' };
|
||||
static const symbol s_2_9[6] = { 0xE3, 't', 'o', 'a', 'r', 'e' };
|
||||
static const symbol s_2_10[7] = { 'i', 'c', 'i', 't', 'a', 't', 'e' };
|
||||
static const symbol s_2_11[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
|
||||
static const symbol s_2_12[9] = { 'i', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
|
||||
static const symbol s_2_13[7] = { 'i', 'v', 'i', 't', 'a', 't', 'e' };
|
||||
static const symbol s_2_14[5] = { 'i', 'c', 'i', 'v', 'e' };
|
||||
static const symbol s_2_15[5] = { 'a', 't', 'i', 'v', 'e' };
|
||||
static const symbol s_2_16[5] = { 'i', 't', 'i', 'v', 'e' };
|
||||
static const symbol s_2_17[5] = { 'i', 'c', 'a', 'l', 'i' };
|
||||
static const symbol s_2_18[5] = { 'a', 't', 'o', 'r', 'i' };
|
||||
static const symbol s_2_19[7] = { 'i', 'c', 'a', 't', 'o', 'r', 'i' };
|
||||
static const symbol s_2_20[5] = { 'i', 't', 'o', 'r', 'i' };
|
||||
static const symbol s_2_21[5] = { 0xE3, 't', 'o', 'r', 'i' };
|
||||
static const symbol s_2_22[7] = { 'i', 'c', 'i', 't', 'a', 't', 'i' };
|
||||
static const symbol s_2_23[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'i' };
|
||||
static const symbol s_2_24[7] = { 'i', 'v', 'i', 't', 'a', 't', 'i' };
|
||||
static const symbol s_2_25[5] = { 'i', 'c', 'i', 'v', 'i' };
|
||||
static const symbol s_2_26[5] = { 'a', 't', 'i', 'v', 'i' };
|
||||
static const symbol s_2_27[5] = { 'i', 't', 'i', 'v', 'i' };
|
||||
static const symbol s_2_28[6] = { 'i', 'c', 'i', 't', 0xE3, 'i' };
|
||||
static const symbol s_2_29[8] = { 'a', 'b', 'i', 'l', 'i', 't', 0xE3, 'i' };
|
||||
static const symbol s_2_30[6] = { 'i', 'v', 'i', 't', 0xE3, 'i' };
|
||||
static const symbol s_2_31[7] = { 'i', 'c', 'i', 't', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_2_32[9] = { 'a', 'b', 'i', 'l', 'i', 't', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_2_33[7] = { 'i', 'v', 'i', 't', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_2_34[4] = { 'i', 'c', 'a', 'l' };
|
||||
static const symbol s_2_35[4] = { 'a', 't', 'o', 'r' };
|
||||
static const symbol s_2_36[6] = { 'i', 'c', 'a', 't', 'o', 'r' };
|
||||
static const symbol s_2_37[4] = { 'i', 't', 'o', 'r' };
|
||||
static const symbol s_2_38[4] = { 0xE3, 't', 'o', 'r' };
|
||||
static const symbol s_2_39[4] = { 'i', 'c', 'i', 'v' };
|
||||
static const symbol s_2_40[4] = { 'a', 't', 'i', 'v' };
|
||||
static const symbol s_2_41[4] = { 'i', 't', 'i', 'v' };
|
||||
static const symbol s_2_42[5] = { 'i', 'c', 'a', 'l', 0xE3 };
|
||||
static const symbol s_2_43[5] = { 'i', 'c', 'i', 'v', 0xE3 };
|
||||
static const symbol s_2_44[5] = { 'a', 't', 'i', 'v', 0xE3 };
|
||||
static const symbol s_2_45[5] = { 'i', 't', 'i', 'v', 0xE3 };
|
||||
|
||||
static const struct among a_2[46] =
|
||||
{
|
||||
{ 5, s_2_0, -1, 4, 0},
|
||||
{ 5, s_2_1, -1, 4, 0},
|
||||
{ 5, s_2_2, -1, 5, 0},
|
||||
{ 5, s_2_3, -1, 6, 0},
|
||||
{ 5, s_2_4, -1, 4, 0},
|
||||
{ 6, s_2_5, -1, 5, 0},
|
||||
{ 6, s_2_6, -1, 6, 0},
|
||||
{ 6, s_2_7, -1, 5, 0},
|
||||
{ 6, s_2_8, -1, 6, 0},
|
||||
{ 6, s_2_9, -1, 5, 0},
|
||||
{ 7, s_2_10, -1, 4, 0},
|
||||
{ 9, s_2_11, -1, 1, 0},
|
||||
{ 9, s_2_12, -1, 2, 0},
|
||||
{ 7, s_2_13, -1, 3, 0},
|
||||
{ 5, s_2_14, -1, 4, 0},
|
||||
{ 5, s_2_15, -1, 5, 0},
|
||||
{ 5, s_2_16, -1, 6, 0},
|
||||
{ 5, s_2_17, -1, 4, 0},
|
||||
{ 5, s_2_18, -1, 5, 0},
|
||||
{ 7, s_2_19, 18, 4, 0},
|
||||
{ 5, s_2_20, -1, 6, 0},
|
||||
{ 5, s_2_21, -1, 5, 0},
|
||||
{ 7, s_2_22, -1, 4, 0},
|
||||
{ 9, s_2_23, -1, 1, 0},
|
||||
{ 7, s_2_24, -1, 3, 0},
|
||||
{ 5, s_2_25, -1, 4, 0},
|
||||
{ 5, s_2_26, -1, 5, 0},
|
||||
{ 5, s_2_27, -1, 6, 0},
|
||||
{ 6, s_2_28, -1, 4, 0},
|
||||
{ 8, s_2_29, -1, 1, 0},
|
||||
{ 6, s_2_30, -1, 3, 0},
|
||||
{ 7, s_2_31, -1, 4, 0},
|
||||
{ 9, s_2_32, -1, 1, 0},
|
||||
{ 7, s_2_33, -1, 3, 0},
|
||||
{ 4, s_2_34, -1, 4, 0},
|
||||
{ 4, s_2_35, -1, 5, 0},
|
||||
{ 6, s_2_36, 35, 4, 0},
|
||||
{ 4, s_2_37, -1, 6, 0},
|
||||
{ 4, s_2_38, -1, 5, 0},
|
||||
{ 4, s_2_39, -1, 4, 0},
|
||||
{ 4, s_2_40, -1, 5, 0},
|
||||
{ 4, s_2_41, -1, 6, 0},
|
||||
{ 5, s_2_42, -1, 4, 0},
|
||||
{ 5, s_2_43, -1, 4, 0},
|
||||
{ 5, s_2_44, -1, 5, 0},
|
||||
{ 5, s_2_45, -1, 6, 0}
|
||||
};
|
||||
|
||||
static const symbol s_3_0[3] = { 'i', 'c', 'a' };
|
||||
static const symbol s_3_1[5] = { 'a', 'b', 'i', 'l', 'a' };
|
||||
static const symbol s_3_2[5] = { 'i', 'b', 'i', 'l', 'a' };
|
||||
static const symbol s_3_3[4] = { 'o', 'a', 's', 'a' };
|
||||
static const symbol s_3_4[3] = { 'a', 't', 'a' };
|
||||
static const symbol s_3_5[3] = { 'i', 't', 'a' };
|
||||
static const symbol s_3_6[4] = { 'a', 'n', 't', 'a' };
|
||||
static const symbol s_3_7[4] = { 'i', 's', 't', 'a' };
|
||||
static const symbol s_3_8[3] = { 'u', 't', 'a' };
|
||||
static const symbol s_3_9[3] = { 'i', 'v', 'a' };
|
||||
static const symbol s_3_10[2] = { 'i', 'c' };
|
||||
static const symbol s_3_11[3] = { 'i', 'c', 'e' };
|
||||
static const symbol s_3_12[5] = { 'a', 'b', 'i', 'l', 'e' };
|
||||
static const symbol s_3_13[5] = { 'i', 'b', 'i', 'l', 'e' };
|
||||
static const symbol s_3_14[4] = { 'i', 's', 'm', 'e' };
|
||||
static const symbol s_3_15[4] = { 'i', 'u', 'n', 'e' };
|
||||
static const symbol s_3_16[4] = { 'o', 'a', 's', 'e' };
|
||||
static const symbol s_3_17[3] = { 'a', 't', 'e' };
|
||||
static const symbol s_3_18[5] = { 'i', 't', 'a', 't', 'e' };
|
||||
static const symbol s_3_19[3] = { 'i', 't', 'e' };
|
||||
static const symbol s_3_20[4] = { 'a', 'n', 't', 'e' };
|
||||
static const symbol s_3_21[4] = { 'i', 's', 't', 'e' };
|
||||
static const symbol s_3_22[3] = { 'u', 't', 'e' };
|
||||
static const symbol s_3_23[3] = { 'i', 'v', 'e' };
|
||||
static const symbol s_3_24[3] = { 'i', 'c', 'i' };
|
||||
static const symbol s_3_25[5] = { 'a', 'b', 'i', 'l', 'i' };
|
||||
static const symbol s_3_26[5] = { 'i', 'b', 'i', 'l', 'i' };
|
||||
static const symbol s_3_27[4] = { 'i', 'u', 'n', 'i' };
|
||||
static const symbol s_3_28[5] = { 'a', 't', 'o', 'r', 'i' };
|
||||
static const symbol s_3_29[3] = { 'o', 's', 'i' };
|
||||
static const symbol s_3_30[3] = { 'a', 't', 'i' };
|
||||
static const symbol s_3_31[5] = { 'i', 't', 'a', 't', 'i' };
|
||||
static const symbol s_3_32[3] = { 'i', 't', 'i' };
|
||||
static const symbol s_3_33[4] = { 'a', 'n', 't', 'i' };
|
||||
static const symbol s_3_34[4] = { 'i', 's', 't', 'i' };
|
||||
static const symbol s_3_35[3] = { 'u', 't', 'i' };
|
||||
static const symbol s_3_36[4] = { 'i', 0xBA, 't', 'i' };
|
||||
static const symbol s_3_37[3] = { 'i', 'v', 'i' };
|
||||
static const symbol s_3_38[3] = { 'o', 0xBA, 'i' };
|
||||
static const symbol s_3_39[4] = { 'i', 't', 0xE3, 'i' };
|
||||
static const symbol s_3_40[5] = { 'i', 't', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_3_41[4] = { 'a', 'b', 'i', 'l' };
|
||||
static const symbol s_3_42[4] = { 'i', 'b', 'i', 'l' };
|
||||
static const symbol s_3_43[3] = { 'i', 's', 'm' };
|
||||
static const symbol s_3_44[4] = { 'a', 't', 'o', 'r' };
|
||||
static const symbol s_3_45[2] = { 'o', 's' };
|
||||
static const symbol s_3_46[2] = { 'a', 't' };
|
||||
static const symbol s_3_47[2] = { 'i', 't' };
|
||||
static const symbol s_3_48[3] = { 'a', 'n', 't' };
|
||||
static const symbol s_3_49[3] = { 'i', 's', 't' };
|
||||
static const symbol s_3_50[2] = { 'u', 't' };
|
||||
static const symbol s_3_51[2] = { 'i', 'v' };
|
||||
static const symbol s_3_52[3] = { 'i', 'c', 0xE3 };
|
||||
static const symbol s_3_53[5] = { 'a', 'b', 'i', 'l', 0xE3 };
|
||||
static const symbol s_3_54[5] = { 'i', 'b', 'i', 'l', 0xE3 };
|
||||
static const symbol s_3_55[4] = { 'o', 'a', 's', 0xE3 };
|
||||
static const symbol s_3_56[3] = { 'a', 't', 0xE3 };
|
||||
static const symbol s_3_57[3] = { 'i', 't', 0xE3 };
|
||||
static const symbol s_3_58[4] = { 'a', 'n', 't', 0xE3 };
|
||||
static const symbol s_3_59[4] = { 'i', 's', 't', 0xE3 };
|
||||
static const symbol s_3_60[3] = { 'u', 't', 0xE3 };
|
||||
static const symbol s_3_61[3] = { 'i', 'v', 0xE3 };
|
||||
|
||||
static const struct among a_3[62] =
|
||||
{
|
||||
{ 3, s_3_0, -1, 1, 0},
|
||||
{ 5, s_3_1, -1, 1, 0},
|
||||
{ 5, s_3_2, -1, 1, 0},
|
||||
{ 4, s_3_3, -1, 1, 0},
|
||||
{ 3, s_3_4, -1, 1, 0},
|
||||
{ 3, s_3_5, -1, 1, 0},
|
||||
{ 4, s_3_6, -1, 1, 0},
|
||||
{ 4, s_3_7, -1, 3, 0},
|
||||
{ 3, s_3_8, -1, 1, 0},
|
||||
{ 3, s_3_9, -1, 1, 0},
|
||||
{ 2, s_3_10, -1, 1, 0},
|
||||
{ 3, s_3_11, -1, 1, 0},
|
||||
{ 5, s_3_12, -1, 1, 0},
|
||||
{ 5, s_3_13, -1, 1, 0},
|
||||
{ 4, s_3_14, -1, 3, 0},
|
||||
{ 4, s_3_15, -1, 2, 0},
|
||||
{ 4, s_3_16, -1, 1, 0},
|
||||
{ 3, s_3_17, -1, 1, 0},
|
||||
{ 5, s_3_18, 17, 1, 0},
|
||||
{ 3, s_3_19, -1, 1, 0},
|
||||
{ 4, s_3_20, -1, 1, 0},
|
||||
{ 4, s_3_21, -1, 3, 0},
|
||||
{ 3, s_3_22, -1, 1, 0},
|
||||
{ 3, s_3_23, -1, 1, 0},
|
||||
{ 3, s_3_24, -1, 1, 0},
|
||||
{ 5, s_3_25, -1, 1, 0},
|
||||
{ 5, s_3_26, -1, 1, 0},
|
||||
{ 4, s_3_27, -1, 2, 0},
|
||||
{ 5, s_3_28, -1, 1, 0},
|
||||
{ 3, s_3_29, -1, 1, 0},
|
||||
{ 3, s_3_30, -1, 1, 0},
|
||||
{ 5, s_3_31, 30, 1, 0},
|
||||
{ 3, s_3_32, -1, 1, 0},
|
||||
{ 4, s_3_33, -1, 1, 0},
|
||||
{ 4, s_3_34, -1, 3, 0},
|
||||
{ 3, s_3_35, -1, 1, 0},
|
||||
{ 4, s_3_36, -1, 3, 0},
|
||||
{ 3, s_3_37, -1, 1, 0},
|
||||
{ 3, s_3_38, -1, 1, 0},
|
||||
{ 4, s_3_39, -1, 1, 0},
|
||||
{ 5, s_3_40, -1, 1, 0},
|
||||
{ 4, s_3_41, -1, 1, 0},
|
||||
{ 4, s_3_42, -1, 1, 0},
|
||||
{ 3, s_3_43, -1, 3, 0},
|
||||
{ 4, s_3_44, -1, 1, 0},
|
||||
{ 2, s_3_45, -1, 1, 0},
|
||||
{ 2, s_3_46, -1, 1, 0},
|
||||
{ 2, s_3_47, -1, 1, 0},
|
||||
{ 3, s_3_48, -1, 1, 0},
|
||||
{ 3, s_3_49, -1, 3, 0},
|
||||
{ 2, s_3_50, -1, 1, 0},
|
||||
{ 2, s_3_51, -1, 1, 0},
|
||||
{ 3, s_3_52, -1, 1, 0},
|
||||
{ 5, s_3_53, -1, 1, 0},
|
||||
{ 5, s_3_54, -1, 1, 0},
|
||||
{ 4, s_3_55, -1, 1, 0},
|
||||
{ 3, s_3_56, -1, 1, 0},
|
||||
{ 3, s_3_57, -1, 1, 0},
|
||||
{ 4, s_3_58, -1, 1, 0},
|
||||
{ 4, s_3_59, -1, 3, 0},
|
||||
{ 3, s_3_60, -1, 1, 0},
|
||||
{ 3, s_3_61, -1, 1, 0}
|
||||
};
|
||||
|
||||
static const symbol s_4_0[2] = { 'e', 'a' };
|
||||
static const symbol s_4_1[2] = { 'i', 'a' };
|
||||
static const symbol s_4_2[3] = { 'e', 's', 'c' };
|
||||
static const symbol s_4_3[3] = { 0xE3, 's', 'c' };
|
||||
static const symbol s_4_4[3] = { 'i', 'n', 'd' };
|
||||
static const symbol s_4_5[3] = { 0xE2, 'n', 'd' };
|
||||
static const symbol s_4_6[3] = { 'a', 'r', 'e' };
|
||||
static const symbol s_4_7[3] = { 'e', 'r', 'e' };
|
||||
static const symbol s_4_8[3] = { 'i', 'r', 'e' };
|
||||
static const symbol s_4_9[3] = { 0xE2, 'r', 'e' };
|
||||
static const symbol s_4_10[2] = { 's', 'e' };
|
||||
static const symbol s_4_11[3] = { 'a', 's', 'e' };
|
||||
static const symbol s_4_12[4] = { 's', 'e', 's', 'e' };
|
||||
static const symbol s_4_13[3] = { 'i', 's', 'e' };
|
||||
static const symbol s_4_14[3] = { 'u', 's', 'e' };
|
||||
static const symbol s_4_15[3] = { 0xE2, 's', 'e' };
|
||||
static const symbol s_4_16[4] = { 'e', 0xBA, 't', 'e' };
|
||||
static const symbol s_4_17[4] = { 0xE3, 0xBA, 't', 'e' };
|
||||
static const symbol s_4_18[3] = { 'e', 'z', 'e' };
|
||||
static const symbol s_4_19[2] = { 'a', 'i' };
|
||||
static const symbol s_4_20[3] = { 'e', 'a', 'i' };
|
||||
static const symbol s_4_21[3] = { 'i', 'a', 'i' };
|
||||
static const symbol s_4_22[3] = { 's', 'e', 'i' };
|
||||
static const symbol s_4_23[4] = { 'e', 0xBA, 't', 'i' };
|
||||
static const symbol s_4_24[4] = { 0xE3, 0xBA, 't', 'i' };
|
||||
static const symbol s_4_25[2] = { 'u', 'i' };
|
||||
static const symbol s_4_26[3] = { 'e', 'z', 'i' };
|
||||
static const symbol s_4_27[3] = { 'a', 0xBA, 'i' };
|
||||
static const symbol s_4_28[4] = { 's', 'e', 0xBA, 'i' };
|
||||
static const symbol s_4_29[5] = { 'a', 's', 'e', 0xBA, 'i' };
|
||||
static const symbol s_4_30[6] = { 's', 'e', 's', 'e', 0xBA, 'i' };
|
||||
static const symbol s_4_31[5] = { 'i', 's', 'e', 0xBA, 'i' };
|
||||
static const symbol s_4_32[5] = { 'u', 's', 'e', 0xBA, 'i' };
|
||||
static const symbol s_4_33[5] = { 0xE2, 's', 'e', 0xBA, 'i' };
|
||||
static const symbol s_4_34[3] = { 'i', 0xBA, 'i' };
|
||||
static const symbol s_4_35[3] = { 'u', 0xBA, 'i' };
|
||||
static const symbol s_4_36[3] = { 0xE2, 0xBA, 'i' };
|
||||
static const symbol s_4_37[2] = { 0xE2, 'i' };
|
||||
static const symbol s_4_38[3] = { 'a', 0xFE, 'i' };
|
||||
static const symbol s_4_39[4] = { 'e', 'a', 0xFE, 'i' };
|
||||
static const symbol s_4_40[4] = { 'i', 'a', 0xFE, 'i' };
|
||||
static const symbol s_4_41[3] = { 'e', 0xFE, 'i' };
|
||||
static const symbol s_4_42[3] = { 'i', 0xFE, 'i' };
|
||||
static const symbol s_4_43[3] = { 0xE2, 0xFE, 'i' };
|
||||
static const symbol s_4_44[5] = { 'a', 'r', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_4_45[6] = { 's', 'e', 'r', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_4_46[7] = { 'a', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_4_47[8] = { 's', 'e', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_4_48[7] = { 'i', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_4_49[7] = { 'u', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_4_50[7] = { 0xE2, 's', 'e', 'r', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_4_51[5] = { 'i', 'r', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_4_52[5] = { 'u', 'r', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_4_53[5] = { 0xE2, 'r', 0xE3, 0xFE, 'i' };
|
||||
static const symbol s_4_54[2] = { 'a', 'm' };
|
||||
static const symbol s_4_55[3] = { 'e', 'a', 'm' };
|
||||
static const symbol s_4_56[3] = { 'i', 'a', 'm' };
|
||||
static const symbol s_4_57[2] = { 'e', 'm' };
|
||||
static const symbol s_4_58[4] = { 'a', 's', 'e', 'm' };
|
||||
static const symbol s_4_59[5] = { 's', 'e', 's', 'e', 'm' };
|
||||
static const symbol s_4_60[4] = { 'i', 's', 'e', 'm' };
|
||||
static const symbol s_4_61[4] = { 'u', 's', 'e', 'm' };
|
||||
static const symbol s_4_62[4] = { 0xE2, 's', 'e', 'm' };
|
||||
static const symbol s_4_63[2] = { 'i', 'm' };
|
||||
static const symbol s_4_64[2] = { 0xE2, 'm' };
|
||||
static const symbol s_4_65[2] = { 0xE3, 'm' };
|
||||
static const symbol s_4_66[4] = { 'a', 'r', 0xE3, 'm' };
|
||||
static const symbol s_4_67[5] = { 's', 'e', 'r', 0xE3, 'm' };
|
||||
static const symbol s_4_68[6] = { 'a', 's', 'e', 'r', 0xE3, 'm' };
|
||||
static const symbol s_4_69[7] = { 's', 'e', 's', 'e', 'r', 0xE3, 'm' };
|
||||
static const symbol s_4_70[6] = { 'i', 's', 'e', 'r', 0xE3, 'm' };
|
||||
static const symbol s_4_71[6] = { 'u', 's', 'e', 'r', 0xE3, 'm' };
|
||||
static const symbol s_4_72[6] = { 0xE2, 's', 'e', 'r', 0xE3, 'm' };
|
||||
static const symbol s_4_73[4] = { 'i', 'r', 0xE3, 'm' };
|
||||
static const symbol s_4_74[4] = { 'u', 'r', 0xE3, 'm' };
|
||||
static const symbol s_4_75[4] = { 0xE2, 'r', 0xE3, 'm' };
|
||||
static const symbol s_4_76[2] = { 'a', 'u' };
|
||||
static const symbol s_4_77[3] = { 'e', 'a', 'u' };
|
||||
static const symbol s_4_78[3] = { 'i', 'a', 'u' };
|
||||
static const symbol s_4_79[4] = { 'i', 'n', 'd', 'u' };
|
||||
static const symbol s_4_80[4] = { 0xE2, 'n', 'd', 'u' };
|
||||
static const symbol s_4_81[2] = { 'e', 'z' };
|
||||
static const symbol s_4_82[5] = { 'e', 'a', 's', 'c', 0xE3 };
|
||||
static const symbol s_4_83[3] = { 'a', 'r', 0xE3 };
|
||||
static const symbol s_4_84[4] = { 's', 'e', 'r', 0xE3 };
|
||||
static const symbol s_4_85[5] = { 'a', 's', 'e', 'r', 0xE3 };
|
||||
static const symbol s_4_86[6] = { 's', 'e', 's', 'e', 'r', 0xE3 };
|
||||
static const symbol s_4_87[5] = { 'i', 's', 'e', 'r', 0xE3 };
|
||||
static const symbol s_4_88[5] = { 'u', 's', 'e', 'r', 0xE3 };
|
||||
static const symbol s_4_89[5] = { 0xE2, 's', 'e', 'r', 0xE3 };
|
||||
static const symbol s_4_90[3] = { 'i', 'r', 0xE3 };
|
||||
static const symbol s_4_91[3] = { 'u', 'r', 0xE3 };
|
||||
static const symbol s_4_92[3] = { 0xE2, 'r', 0xE3 };
|
||||
static const symbol s_4_93[4] = { 'e', 'a', 'z', 0xE3 };
|
||||
|
||||
static const struct among a_4[94] =
|
||||
{
|
||||
{ 2, s_4_0, -1, 1, 0},
|
||||
{ 2, s_4_1, -1, 1, 0},
|
||||
{ 3, s_4_2, -1, 1, 0},
|
||||
{ 3, s_4_3, -1, 1, 0},
|
||||
{ 3, s_4_4, -1, 1, 0},
|
||||
{ 3, s_4_5, -1, 1, 0},
|
||||
{ 3, s_4_6, -1, 1, 0},
|
||||
{ 3, s_4_7, -1, 1, 0},
|
||||
{ 3, s_4_8, -1, 1, 0},
|
||||
{ 3, s_4_9, -1, 1, 0},
|
||||
{ 2, s_4_10, -1, 2, 0},
|
||||
{ 3, s_4_11, 10, 1, 0},
|
||||
{ 4, s_4_12, 10, 2, 0},
|
||||
{ 3, s_4_13, 10, 1, 0},
|
||||
{ 3, s_4_14, 10, 1, 0},
|
||||
{ 3, s_4_15, 10, 1, 0},
|
||||
{ 4, s_4_16, -1, 1, 0},
|
||||
{ 4, s_4_17, -1, 1, 0},
|
||||
{ 3, s_4_18, -1, 1, 0},
|
||||
{ 2, s_4_19, -1, 1, 0},
|
||||
{ 3, s_4_20, 19, 1, 0},
|
||||
{ 3, s_4_21, 19, 1, 0},
|
||||
{ 3, s_4_22, -1, 2, 0},
|
||||
{ 4, s_4_23, -1, 1, 0},
|
||||
{ 4, s_4_24, -1, 1, 0},
|
||||
{ 2, s_4_25, -1, 1, 0},
|
||||
{ 3, s_4_26, -1, 1, 0},
|
||||
{ 3, s_4_27, -1, 1, 0},
|
||||
{ 4, s_4_28, -1, 2, 0},
|
||||
{ 5, s_4_29, 28, 1, 0},
|
||||
{ 6, s_4_30, 28, 2, 0},
|
||||
{ 5, s_4_31, 28, 1, 0},
|
||||
{ 5, s_4_32, 28, 1, 0},
|
||||
{ 5, s_4_33, 28, 1, 0},
|
||||
{ 3, s_4_34, -1, 1, 0},
|
||||
{ 3, s_4_35, -1, 1, 0},
|
||||
{ 3, s_4_36, -1, 1, 0},
|
||||
{ 2, s_4_37, -1, 1, 0},
|
||||
{ 3, s_4_38, -1, 2, 0},
|
||||
{ 4, s_4_39, 38, 1, 0},
|
||||
{ 4, s_4_40, 38, 1, 0},
|
||||
{ 3, s_4_41, -1, 2, 0},
|
||||
{ 3, s_4_42, -1, 2, 0},
|
||||
{ 3, s_4_43, -1, 2, 0},
|
||||
{ 5, s_4_44, -1, 1, 0},
|
||||
{ 6, s_4_45, -1, 2, 0},
|
||||
{ 7, s_4_46, 45, 1, 0},
|
||||
{ 8, s_4_47, 45, 2, 0},
|
||||
{ 7, s_4_48, 45, 1, 0},
|
||||
{ 7, s_4_49, 45, 1, 0},
|
||||
{ 7, s_4_50, 45, 1, 0},
|
||||
{ 5, s_4_51, -1, 1, 0},
|
||||
{ 5, s_4_52, -1, 1, 0},
|
||||
{ 5, s_4_53, -1, 1, 0},
|
||||
{ 2, s_4_54, -1, 1, 0},
|
||||
{ 3, s_4_55, 54, 1, 0},
|
||||
{ 3, s_4_56, 54, 1, 0},
|
||||
{ 2, s_4_57, -1, 2, 0},
|
||||
{ 4, s_4_58, 57, 1, 0},
|
||||
{ 5, s_4_59, 57, 2, 0},
|
||||
{ 4, s_4_60, 57, 1, 0},
|
||||
{ 4, s_4_61, 57, 1, 0},
|
||||
{ 4, s_4_62, 57, 1, 0},
|
||||
{ 2, s_4_63, -1, 2, 0},
|
||||
{ 2, s_4_64, -1, 2, 0},
|
||||
{ 2, s_4_65, -1, 2, 0},
|
||||
{ 4, s_4_66, 65, 1, 0},
|
||||
{ 5, s_4_67, 65, 2, 0},
|
||||
{ 6, s_4_68, 67, 1, 0},
|
||||
{ 7, s_4_69, 67, 2, 0},
|
||||
{ 6, s_4_70, 67, 1, 0},
|
||||
{ 6, s_4_71, 67, 1, 0},
|
||||
{ 6, s_4_72, 67, 1, 0},
|
||||
{ 4, s_4_73, 65, 1, 0},
|
||||
{ 4, s_4_74, 65, 1, 0},
|
||||
{ 4, s_4_75, 65, 1, 0},
|
||||
{ 2, s_4_76, -1, 1, 0},
|
||||
{ 3, s_4_77, 76, 1, 0},
|
||||
{ 3, s_4_78, 76, 1, 0},
|
||||
{ 4, s_4_79, -1, 1, 0},
|
||||
{ 4, s_4_80, -1, 1, 0},
|
||||
{ 2, s_4_81, -1, 1, 0},
|
||||
{ 5, s_4_82, -1, 1, 0},
|
||||
{ 3, s_4_83, -1, 1, 0},
|
||||
{ 4, s_4_84, -1, 2, 0},
|
||||
{ 5, s_4_85, 84, 1, 0},
|
||||
{ 6, s_4_86, 84, 2, 0},
|
||||
{ 5, s_4_87, 84, 1, 0},
|
||||
{ 5, s_4_88, 84, 1, 0},
|
||||
{ 5, s_4_89, 84, 1, 0},
|
||||
{ 3, s_4_90, -1, 1, 0},
|
||||
{ 3, s_4_91, -1, 1, 0},
|
||||
{ 3, s_4_92, -1, 1, 0},
|
||||
{ 4, s_4_93, -1, 1, 0}
|
||||
};
|
||||
|
||||
static const symbol s_5_0[1] = { 'a' };
|
||||
static const symbol s_5_1[1] = { 'e' };
|
||||
static const symbol s_5_2[2] = { 'i', 'e' };
|
||||
static const symbol s_5_3[1] = { 'i' };
|
||||
static const symbol s_5_4[1] = { 0xE3 };
|
||||
|
||||
static const struct among a_5[5] =
|
||||
{
|
||||
{ 1, s_5_0, -1, 1, 0},
|
||||
{ 1, s_5_1, -1, 1, 0},
|
||||
{ 2, s_5_2, 1, 1, 0},
|
||||
{ 1, s_5_3, -1, 1, 0},
|
||||
{ 1, s_5_4, -1, 1, 0}
|
||||
};
|
||||
|
||||
static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 32 };
|
||||
|
||||
static const symbol s_0[] = { 'U' };
|
||||
static const symbol s_1[] = { 'I' };
|
||||
static const symbol s_2[] = { 'i' };
|
||||
static const symbol s_3[] = { 'u' };
|
||||
static const symbol s_4[] = { 'a' };
|
||||
static const symbol s_5[] = { 'e' };
|
||||
static const symbol s_6[] = { 'i' };
|
||||
static const symbol s_7[] = { 'a', 'b' };
|
||||
static const symbol s_8[] = { 'i' };
|
||||
static const symbol s_9[] = { 'a', 't' };
|
||||
static const symbol s_10[] = { 'a', 0xFE, 'i' };
|
||||
static const symbol s_11[] = { 'a', 'b', 'i', 'l' };
|
||||
static const symbol s_12[] = { 'i', 'b', 'i', 'l' };
|
||||
static const symbol s_13[] = { 'i', 'v' };
|
||||
static const symbol s_14[] = { 'i', 'c' };
|
||||
static const symbol s_15[] = { 'a', 't' };
|
||||
static const symbol s_16[] = { 'i', 't' };
|
||||
static const symbol s_17[] = { 't' };
|
||||
static const symbol s_18[] = { 'i', 's', 't' };
|
||||
|
||||
static int r_prelude(struct SN_env * z) {
|
||||
while(1) {
|
||||
int c1 = z->c;
|
||||
while(1) {
|
||||
int c2 = z->c;
|
||||
if (in_grouping(z, g_v, 97, 238, 0)) goto lab1;
|
||||
z->bra = z->c;
|
||||
{ int c3 = z->c;
|
||||
if (z->c == z->l || z->p[z->c] != 'u') goto lab3;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping(z, g_v, 97, 238, 0)) goto lab3;
|
||||
{ int ret = slice_from_s(z, 1, s_0);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab2;
|
||||
lab3:
|
||||
z->c = c3;
|
||||
if (z->c == z->l || z->p[z->c] != 'i') goto lab1;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping(z, g_v, 97, 238, 0)) goto lab1;
|
||||
{ int ret = slice_from_s(z, 1, s_1);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
lab2:
|
||||
z->c = c2;
|
||||
break;
|
||||
lab1:
|
||||
z->c = c2;
|
||||
if (z->c >= z->l) goto lab0;
|
||||
z->c++;
|
||||
}
|
||||
continue;
|
||||
lab0:
|
||||
z->c = c1;
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_mark_regions(struct SN_env * z) {
|
||||
z->I[2] = z->l;
|
||||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
{ int c1 = z->c;
|
||||
{ int c2 = z->c;
|
||||
if (in_grouping(z, g_v, 97, 238, 0)) goto lab2;
|
||||
{ int c3 = z->c;
|
||||
if (out_grouping(z, g_v, 97, 238, 0)) goto lab4;
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 238, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
goto lab3;
|
||||
lab4:
|
||||
z->c = c3;
|
||||
if (in_grouping(z, g_v, 97, 238, 0)) goto lab2;
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 238, 1);
|
||||
if (ret < 0) goto lab2;
|
||||
z->c += ret;
|
||||
}
|
||||
}
|
||||
lab3:
|
||||
goto lab1;
|
||||
lab2:
|
||||
z->c = c2;
|
||||
if (out_grouping(z, g_v, 97, 238, 0)) goto lab0;
|
||||
{ int c4 = z->c;
|
||||
if (out_grouping(z, g_v, 97, 238, 0)) goto lab6;
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 238, 1);
|
||||
if (ret < 0) goto lab6;
|
||||
z->c += ret;
|
||||
}
|
||||
goto lab5;
|
||||
lab6:
|
||||
z->c = c4;
|
||||
if (in_grouping(z, g_v, 97, 238, 0)) goto lab0;
|
||||
if (z->c >= z->l) goto lab0;
|
||||
z->c++;
|
||||
}
|
||||
lab5:
|
||||
;
|
||||
}
|
||||
lab1:
|
||||
z->I[2] = z->c;
|
||||
lab0:
|
||||
z->c = c1;
|
||||
}
|
||||
{ int c5 = z->c;
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 238, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 238, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 97, 238, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 97, 238, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[0] = z->c;
|
||||
lab7:
|
||||
z->c = c5;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_postlude(struct SN_env * z) {
|
||||
int among_var;
|
||||
while(1) {
|
||||
int c1 = z->c;
|
||||
z->bra = z->c;
|
||||
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
|
||||
among_var = find_among(z, a_0, 3);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_from_s(z, 1, s_2);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 1, s_3);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (z->c >= z->l) goto lab0;
|
||||
z->c++;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
lab0:
|
||||
z->c = c1;
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_step_0(struct SN_env * z) {
|
||||
int among_var;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_1, 16);
|
||||
if (!(among_var)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 1, s_4);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 1, s_5);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{ int ret = slice_from_s(z, 1, s_6);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
{ int m1 = z->l - z->c; (void)m1;
|
||||
if (!(eq_s_b(z, 2, s_7))) goto lab0;
|
||||
return 0;
|
||||
lab0:
|
||||
z->c = z->l - m1;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 1, s_8);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
{ int ret = slice_from_s(z, 2, s_9);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
{ int ret = slice_from_s(z, 3, s_10);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_combo_suffix(struct SN_env * z) {
|
||||
int among_var;
|
||||
{ int m_test1 = z->l - z->c;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_2, 46);
|
||||
if (!(among_var)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_from_s(z, 4, s_11);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 4, s_12);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 2, s_13);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{ int ret = slice_from_s(z, 2, s_14);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
{ int ret = slice_from_s(z, 2, s_15);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
{ int ret = slice_from_s(z, 2, s_16);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
z->I[3] = 1;
|
||||
z->c = z->l - m_test1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_standard_suffix(struct SN_env * z) {
|
||||
int among_var;
|
||||
z->I[3] = 0;
|
||||
while(1) {
|
||||
int m1 = z->l - z->c; (void)m1;
|
||||
{ int ret = r_combo_suffix(z);
|
||||
if (ret == 0) goto lab0;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
continue;
|
||||
lab0:
|
||||
z->c = z->l - m1;
|
||||
break;
|
||||
}
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_3, 62);
|
||||
if (!(among_var)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 0xFE) return 0;
|
||||
z->c--;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_from_s(z, 1, s_17);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 3, s_18);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
z->I[3] = 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_verb_suffix(struct SN_env * z) {
|
||||
int among_var;
|
||||
|
||||
{ int mlimit1;
|
||||
if (z->c < z->I[2]) return 0;
|
||||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_4, 94);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
if (out_grouping_b(z, g_v, 97, 238, 0)) goto lab1;
|
||||
goto lab0;
|
||||
lab1:
|
||||
z->c = z->l - m2;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->lb = mlimit1; return 0; }
|
||||
z->c--;
|
||||
}
|
||||
lab0:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_vowel_suffix(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_5, 5))) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_RV(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
extern int romanian_ISO_8859_2_stem(struct SN_env * z) {
|
||||
{ int c1 = z->c;
|
||||
{ int ret = r_prelude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c1;
|
||||
}
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
{ int ret = r_step_0(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m2;
|
||||
}
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
{ int ret = r_standard_suffix(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
if (!(z->I[3])) goto lab2;
|
||||
goto lab1;
|
||||
lab2:
|
||||
z->c = z->l - m5;
|
||||
{ int ret = r_verb_suffix(z);
|
||||
if (ret == 0) goto lab0;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
lab1:
|
||||
lab0:
|
||||
z->c = z->l - m4;
|
||||
}
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
{ int ret = r_vowel_suffix(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m6;
|
||||
}
|
||||
z->c = z->lb;
|
||||
{ int c7 = z->c;
|
||||
{ int ret = r_postlude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c7;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
extern struct SN_env * romanian_ISO_8859_2_create_env(void) { return SN_create_env(0, 4); }
|
||||
|
||||
extern void romanian_ISO_8859_2_close_env(struct SN_env * z) { SN_close_env(z, 0); }
|
||||
|
||||
|
|
@ -345,23 +345,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
{ int c1 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 192, 220, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 192, 220, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping(z, g_v, 192, 220, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping(z, g_v, 192, 220, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -374,8 +378,7 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_perfective_gerund(struct SN_env * z) {
|
||||
|
|
@ -383,7 +386,7 @@ static int r_perfective_gerund(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_0, 9);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -413,7 +416,7 @@ static int r_perfective_gerund(struct SN_env * z) {
|
|||
static int r_adjective(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_1, 26))) return 0;
|
||||
if (!find_among_b(z, a_1, 26)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -430,7 +433,7 @@ static int r_adjectival(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; }
|
||||
among_var = find_among_b(z, a_2, 8);
|
||||
if (!(among_var)) { z->c = z->l - m1; goto lab0; }
|
||||
if (!among_var) { z->c = z->l - m1; goto lab0; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -463,7 +466,7 @@ static int r_adjectival(struct SN_env * z) {
|
|||
static int r_reflexive(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0;
|
||||
if (!(find_among_b(z, a_3, 2))) return 0;
|
||||
if (!find_among_b(z, a_3, 2)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -476,7 +479,7 @@ static int r_verb(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_4, 46);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -506,7 +509,7 @@ static int r_verb(struct SN_env * z) {
|
|||
static int r_noun(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_5, 36))) return 0;
|
||||
if (!find_among_b(z, a_5, 36)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -517,7 +520,7 @@ static int r_noun(struct SN_env * z) {
|
|||
static int r_derivational(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0;
|
||||
if (!(find_among_b(z, a_6, 2))) return 0;
|
||||
if (!find_among_b(z, a_6, 2)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -533,7 +536,7 @@ static int r_tidy_up(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_7, 4);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -593,7 +596,7 @@ extern int russian_KOI8_R_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = c1;
|
||||
}
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -680,7 +680,7 @@ static int r_Normalize_pre(struct SN_env * z) {
|
|||
{ int c3 = z->c;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_0, 144);
|
||||
if (!(among_var)) goto lab3;
|
||||
if (!among_var) goto lab3;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -965,7 +965,7 @@ static int r_Normalize_post(struct SN_env * z) {
|
|||
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((124 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
|
||||
if (!(find_among_b(z, a_1, 5))) goto lab0;
|
||||
if (!find_among_b(z, a_1, 5)) goto lab0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_from_s(z, 2, s_50);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -981,7 +981,7 @@ static int r_Normalize_post(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((124 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab4;
|
||||
among_var = find_among(z, a_2, 5);
|
||||
if (!(among_var)) goto lab4;
|
||||
if (!among_var) goto lab4;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1024,17 +1024,17 @@ static int r_Checks1(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0;
|
||||
among_var = find_among(z, a_3, 4);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
if (!(len_utf8(z->p) > 4)) return 0;
|
||||
if (len_utf8(z->p) <= 4) return 0;
|
||||
z->I[2] = 1;
|
||||
z->I[1] = 0;
|
||||
z->I[0] = 1;
|
||||
break;
|
||||
case 2:
|
||||
if (!(len_utf8(z->p) > 3)) return 0;
|
||||
if (len_utf8(z->p) <= 3) return 0;
|
||||
z->I[2] = 1;
|
||||
z->I[1] = 0;
|
||||
z->I[0] = 1;
|
||||
|
|
@ -1048,29 +1048,29 @@ static int r_Prefix_Step1(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 3 >= z->l || z->p[z->c + 3] >> 5 != 5 || !((188 >> (z->p[z->c + 3] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among(z, a_4, 5);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
if (!(len_utf8(z->p) > 3)) return 0;
|
||||
if (len_utf8(z->p) <= 3) return 0;
|
||||
{ int ret = slice_from_s(z, 2, s_54);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!(len_utf8(z->p) > 3)) return 0;
|
||||
if (len_utf8(z->p) <= 3) return 0;
|
||||
{ int ret = slice_from_s(z, 2, s_55);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!(len_utf8(z->p) > 3)) return 0;
|
||||
if (len_utf8(z->p) <= 3) return 0;
|
||||
{ int ret = slice_from_s(z, 2, s_56);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (!(len_utf8(z->p) > 3)) return 0;
|
||||
if (len_utf8(z->p) <= 3) return 0;
|
||||
{ int ret = slice_from_s(z, 2, s_57);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1082,9 +1082,9 @@ static int r_Prefix_Step1(struct SN_env * z) {
|
|||
static int r_Prefix_Step2(struct SN_env * z) {
|
||||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || (z->p[z->c + 1] != 129 && z->p[z->c + 1] != 136)) return 0;
|
||||
if (!(find_among(z, a_5, 2))) return 0;
|
||||
if (!find_among(z, a_5, 2)) return 0;
|
||||
z->ket = z->c;
|
||||
if (!(len_utf8(z->p) > 3)) return 0;
|
||||
if (len_utf8(z->p) <= 3) return 0;
|
||||
{ int c1 = z->c;
|
||||
if (!(eq_s(z, 2, s_58))) goto lab0;
|
||||
return 0;
|
||||
|
|
@ -1102,17 +1102,17 @@ static int r_Prefix_Step3a_Noun(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0;
|
||||
among_var = find_among(z, a_6, 4);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
if (!(len_utf8(z->p) > 5)) return 0;
|
||||
if (len_utf8(z->p) <= 5) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!(len_utf8(z->p) > 4)) return 0;
|
||||
if (len_utf8(z->p) <= 4) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1126,23 +1126,23 @@ static int r_Prefix_Step3b_Noun(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || (z->p[z->c + 1] != 168 && z->p[z->c + 1] != 131)) return 0;
|
||||
among_var = find_among(z, a_7, 4);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
if (!(len_utf8(z->p) > 3)) return 0;
|
||||
if (len_utf8(z->p) <= 3) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!(len_utf8(z->p) > 3)) return 0;
|
||||
if (len_utf8(z->p) <= 3) return 0;
|
||||
{ int ret = slice_from_s(z, 2, s_59);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!(len_utf8(z->p) > 3)) return 0;
|
||||
if (len_utf8(z->p) <= 3) return 0;
|
||||
{ int ret = slice_from_s(z, 2, s_60);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1155,29 +1155,29 @@ static int r_Prefix_Step3_Verb(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_8, 4);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
if (!(len_utf8(z->p) > 4)) return 0;
|
||||
if (len_utf8(z->p) <= 4) return 0;
|
||||
{ int ret = slice_from_s(z, 2, s_61);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!(len_utf8(z->p) > 4)) return 0;
|
||||
if (len_utf8(z->p) <= 4) return 0;
|
||||
{ int ret = slice_from_s(z, 2, s_62);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!(len_utf8(z->p) > 4)) return 0;
|
||||
if (len_utf8(z->p) <= 4) return 0;
|
||||
{ int ret = slice_from_s(z, 2, s_63);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (!(len_utf8(z->p) > 4)) return 0;
|
||||
if (len_utf8(z->p) <= 4) return 0;
|
||||
{ int ret = slice_from_s(z, 2, s_64);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1189,9 +1189,9 @@ static int r_Prefix_Step3_Verb(struct SN_env * z) {
|
|||
static int r_Prefix_Step4_Verb(struct SN_env * z) {
|
||||
z->bra = z->c;
|
||||
if (z->c + 5 >= z->l || z->p[z->c + 5] != 170) return 0;
|
||||
if (!(find_among(z, a_9, 3))) return 0;
|
||||
if (!find_among(z, a_9, 3)) return 0;
|
||||
z->ket = z->c;
|
||||
if (!(len_utf8(z->p) > 4)) return 0;
|
||||
if (len_utf8(z->p) <= 4) return 0;
|
||||
z->I[1] = 1;
|
||||
z->I[2] = 0;
|
||||
{ int ret = slice_from_s(z, 6, s_65);
|
||||
|
|
@ -1204,23 +1204,23 @@ static int r_Suffix_Noun_Step1a(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_10, 10);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
if (!(len_utf8(z->p) >= 4)) return 0;
|
||||
if (len_utf8(z->p) < 4) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!(len_utf8(z->p) >= 5)) return 0;
|
||||
if (len_utf8(z->p) < 5) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!(len_utf8(z->p) >= 6)) return 0;
|
||||
if (len_utf8(z->p) < 6) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1232,9 +1232,9 @@ static int r_Suffix_Noun_Step1a(struct SN_env * z) {
|
|||
static int r_Suffix_Noun_Step1b(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 134) return 0;
|
||||
if (!(find_among_b(z, a_11, 1))) return 0;
|
||||
if (!find_among_b(z, a_11, 1)) return 0;
|
||||
z->bra = z->c;
|
||||
if (!(len_utf8(z->p) > 5)) return 0;
|
||||
if (len_utf8(z->p) <= 5) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1243,9 +1243,9 @@ static int r_Suffix_Noun_Step1b(struct SN_env * z) {
|
|||
|
||||
static int r_Suffix_Noun_Step2a(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_12, 3))) return 0;
|
||||
if (!find_among_b(z, a_12, 3)) return 0;
|
||||
z->bra = z->c;
|
||||
if (!(len_utf8(z->p) > 4)) return 0;
|
||||
if (len_utf8(z->p) <= 4) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1255,9 +1255,9 @@ static int r_Suffix_Noun_Step2a(struct SN_env * z) {
|
|||
static int r_Suffix_Noun_Step2b(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 170) return 0;
|
||||
if (!(find_among_b(z, a_13, 1))) return 0;
|
||||
if (!find_among_b(z, a_13, 1)) return 0;
|
||||
z->bra = z->c;
|
||||
if (!(len_utf8(z->p) >= 5)) return 0;
|
||||
if (len_utf8(z->p) < 5) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1267,9 +1267,9 @@ static int r_Suffix_Noun_Step2b(struct SN_env * z) {
|
|||
static int r_Suffix_Noun_Step2c1(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 170) return 0;
|
||||
if (!(find_among_b(z, a_14, 1))) return 0;
|
||||
if (!find_among_b(z, a_14, 1)) return 0;
|
||||
z->bra = z->c;
|
||||
if (!(len_utf8(z->p) >= 4)) return 0;
|
||||
if (len_utf8(z->p) < 4) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1279,9 +1279,9 @@ static int r_Suffix_Noun_Step2c1(struct SN_env * z) {
|
|||
static int r_Suffix_Noun_Step2c2(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 169) return 0;
|
||||
if (!(find_among_b(z, a_15, 1))) return 0;
|
||||
if (!find_among_b(z, a_15, 1)) return 0;
|
||||
z->bra = z->c;
|
||||
if (!(len_utf8(z->p) >= 4)) return 0;
|
||||
if (len_utf8(z->p) < 4) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1291,9 +1291,9 @@ static int r_Suffix_Noun_Step2c2(struct SN_env * z) {
|
|||
static int r_Suffix_Noun_Step3(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 138) return 0;
|
||||
if (!(find_among_b(z, a_16, 1))) return 0;
|
||||
if (!find_among_b(z, a_16, 1)) return 0;
|
||||
z->bra = z->c;
|
||||
if (!(len_utf8(z->p) >= 3)) return 0;
|
||||
if (len_utf8(z->p) < 3) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1304,23 +1304,23 @@ static int r_Suffix_Verb_Step1(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_17, 12);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
if (!(len_utf8(z->p) >= 4)) return 0;
|
||||
if (len_utf8(z->p) < 4) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!(len_utf8(z->p) >= 5)) return 0;
|
||||
if (len_utf8(z->p) < 5) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!(len_utf8(z->p) >= 6)) return 0;
|
||||
if (len_utf8(z->p) < 6) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1333,29 +1333,29 @@ static int r_Suffix_Verb_Step2a(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_18, 11);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
if (!(len_utf8(z->p) >= 4)) return 0;
|
||||
if (len_utf8(z->p) < 4) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!(len_utf8(z->p) >= 5)) return 0;
|
||||
if (len_utf8(z->p) < 5) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!(len_utf8(z->p) > 5)) return 0;
|
||||
if (len_utf8(z->p) <= 5) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (!(len_utf8(z->p) >= 6)) return 0;
|
||||
if (len_utf8(z->p) < 6) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1367,9 +1367,9 @@ static int r_Suffix_Verb_Step2a(struct SN_env * z) {
|
|||
static int r_Suffix_Verb_Step2b(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 133 && z->p[z->c - 1] != 167)) return 0;
|
||||
if (!(find_among_b(z, a_19, 2))) return 0;
|
||||
if (!find_among_b(z, a_19, 2)) return 0;
|
||||
z->bra = z->c;
|
||||
if (!(len_utf8(z->p) >= 5)) return 0;
|
||||
if (len_utf8(z->p) < 5) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1381,17 +1381,17 @@ static int r_Suffix_Verb_Step2c(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 136) return 0;
|
||||
among_var = find_among_b(z, a_20, 2);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
if (!(len_utf8(z->p) >= 4)) return 0;
|
||||
if (len_utf8(z->p) < 4) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!(len_utf8(z->p) >= 6)) return 0;
|
||||
if (len_utf8(z->p) < 6) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1403,7 +1403,7 @@ static int r_Suffix_Verb_Step2c(struct SN_env * z) {
|
|||
static int r_Suffix_All_alef_maqsura(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 137) return 0;
|
||||
if (!(find_among_b(z, a_21, 1))) return 0;
|
||||
if (!find_among_b(z, a_21, 1)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_from_s(z, 2, s_66);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -1421,7 +1421,7 @@ extern int arabic_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = c1;
|
||||
}
|
||||
|
||||
|
||||
{ int ret = r_Normalize_pre(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1496,7 +1496,7 @@ extern int arabic_UTF_8_stem(struct SN_env * z) {
|
|||
goto lab12;
|
||||
lab13:
|
||||
z->c = z->l - m8;
|
||||
|
||||
|
||||
if (!(z->I[0])) goto lab15;
|
||||
goto lab14;
|
||||
lab15:
|
||||
|
|
@ -1563,7 +1563,7 @@ extern int arabic_UTF_8_stem(struct SN_env * z) {
|
|||
goto lab12;
|
||||
lab20:
|
||||
z->c = z->l - m8;
|
||||
|
||||
|
||||
if (!(z->I[0])) goto lab25;
|
||||
goto lab24;
|
||||
lab25:
|
||||
|
|
@ -1651,7 +1651,7 @@ extern int arabic_UTF_8_stem(struct SN_env * z) {
|
|||
lab26:
|
||||
z->c = c11;
|
||||
}
|
||||
|
||||
|
||||
{ int ret = r_Normalize_post(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -436,23 +436,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
{ int c1 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 1377, 1413, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 1377, 1413, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 1377, 1413, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 1377, 1413, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -465,13 +469,12 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_adjective(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_0, 23))) return 0;
|
||||
if (!find_among_b(z, a_0, 23)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -481,7 +484,7 @@ static int r_adjective(struct SN_env * z) {
|
|||
|
||||
static int r_verb(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_1, 71))) return 0;
|
||||
if (!find_among_b(z, a_1, 71)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -491,7 +494,7 @@ static int r_verb(struct SN_env * z) {
|
|||
|
||||
static int r_noun(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_2, 40))) return 0;
|
||||
if (!find_among_b(z, a_2, 40)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -501,7 +504,7 @@ static int r_noun(struct SN_env * z) {
|
|||
|
||||
static int r_ending(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_3, 57))) return 0;
|
||||
if (!find_among_b(z, a_3, 57)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -513,7 +516,7 @@ static int r_ending(struct SN_env * z) {
|
|||
}
|
||||
|
||||
extern int armenian_UTF_8_stem(struct SN_env * z) {
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -912,7 +912,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab2;
|
||||
{ int c3 = z->c;
|
||||
if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab4;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
|
|
@ -921,7 +922,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
lab4:
|
||||
z->c = c3;
|
||||
if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab2;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab2;
|
||||
z->c += ret;
|
||||
|
|
@ -934,7 +936,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab0;
|
||||
{ int c4 = z->c;
|
||||
if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab6;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab6;
|
||||
z->c += ret;
|
||||
|
|
@ -957,23 +960,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->c = c1;
|
||||
}
|
||||
{ int c5 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
|
|
@ -986,18 +993,15 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_aditzak(struct SN_env * z) {
|
||||
|
|
@ -1005,7 +1009,7 @@ static int r_aditzak(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((70566434 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_0, 109);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1048,7 +1052,7 @@ static int r_izenak(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((71162402 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_1, 295);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1119,7 +1123,7 @@ static int r_adjetiboak(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((35362 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_2, 19);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1140,7 +1144,7 @@ static int r_adjetiboak(struct SN_env * z) {
|
|||
}
|
||||
|
||||
extern int basque_UTF_8_stem(struct SN_env * z) {
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1184,23 +1184,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
{ int c1 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -1219,7 +1223,6 @@ static int r_cleaning(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((344765187 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 7; else
|
||||
among_var = find_among(z, a_0, 13);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1268,19 +1271,17 @@ static int r_cleaning(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_attached_pronoun(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1634850 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_1, 39))) return 0;
|
||||
if (!find_among_b(z, a_1, 39)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -1295,7 +1296,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_2, 200);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1346,7 +1347,7 @@ static int r_verb_suffix(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_3, 283);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1373,7 +1374,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_4, 22);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1397,7 +1398,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
}
|
||||
|
||||
extern int catalan_UTF_8_stem(struct SN_env * z) {
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -143,15 +143,17 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[0] = z->c;
|
||||
z->c = c_test1;
|
||||
}
|
||||
|
||||
if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 248, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
|
||||
if (!(z->I[1] < z->I[0])) goto lab0;
|
||||
|
||||
if (z->I[1] >= z->I[0]) goto lab0;
|
||||
z->I[1] = z->I[0];
|
||||
lab0:
|
||||
return 1;
|
||||
|
|
@ -166,7 +168,7 @@ static int r_main_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
among_var = find_among_b(z, a_0, 32);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -194,7 +196,7 @@ static int r_consonant_pair(struct SN_env * z) {
|
|||
mlimit2 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; }
|
||||
if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
|
||||
if (!find_among_b(z, a_1, 4)) { z->lb = mlimit2; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit2;
|
||||
}
|
||||
|
|
@ -231,7 +233,7 @@ static int r_other_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; }
|
||||
among_var = find_among_b(z, a_2, 5);
|
||||
if (!(among_var)) { z->lb = mlimit2; return 0; }
|
||||
if (!among_var) { z->lb = mlimit2; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit2;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -152,7 +152,6 @@ static int r_prelude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((340306450 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else
|
||||
among_var = find_among(z, a_0, 11);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -248,34 +247,46 @@ static int r_prelude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_mark_regions(struct SN_env * z) {
|
||||
z->I[2] = z->l;
|
||||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
{
|
||||
{ int c_test1 = z->c;
|
||||
{ int ret = skip_utf8(z->p, z->c, z->l, 3);
|
||||
if (ret < 0) return 0;
|
||||
z->c = ret;
|
||||
}
|
||||
z->I[0] = z->c;
|
||||
z->c = c_test1;
|
||||
}
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 232, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 232, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[2] = z->c;
|
||||
|
||||
if (z->I[2] >= z->I[0]) goto lab0;
|
||||
z->I[2] = z->I[0];
|
||||
lab0:
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 232, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 232, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
|
||||
if (!(z->I[1] < 3)) goto lab0;
|
||||
z->I[1] = 3;
|
||||
lab0:
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 232, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 232, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[0] = z->c;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -286,7 +297,6 @@ static int r_postlude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
|
||||
among_var = find_among(z, a_1, 3);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -315,19 +325,17 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_undouble(struct SN_env * z) {
|
||||
{ int m_test1 = z->l - z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_2, 3))) return 0;
|
||||
if (!find_among_b(z, a_2, 3)) return 0;
|
||||
z->c = z->l - m_test1;
|
||||
}
|
||||
z->ket = z->c;
|
||||
|
|
@ -343,7 +351,7 @@ static int r_undouble(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_e_ending(struct SN_env * z) {
|
||||
z->I[2] = 0;
|
||||
z->I[3] = 0;
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
|
||||
z->c--;
|
||||
|
|
@ -358,7 +366,7 @@ static int r_e_ending(struct SN_env * z) {
|
|||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->I[2] = 1;
|
||||
z->I[3] = 1;
|
||||
{ int ret = r_undouble(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -394,7 +402,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
|
||||
among_var = find_among_b(z, a_3, 5);
|
||||
if (!(among_var)) goto lab0;
|
||||
if (!among_var) goto lab0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -464,7 +472,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
|
||||
among_var = find_among_b(z, a_4, 6);
|
||||
if (!(among_var)) goto lab3;
|
||||
if (!among_var) goto lab3;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -546,7 +554,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
if (ret == 0) goto lab3;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
if (!(z->I[2])) goto lab3;
|
||||
if (!(z->I[3])) goto lab3;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -559,7 +567,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab8;
|
||||
{ int m_test10 = z->l - z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8;
|
||||
if (!(find_among_b(z, a_5, 4))) goto lab8;
|
||||
if (!find_among_b(z, a_5, 4)) goto lab8;
|
||||
if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab8;
|
||||
z->c = z->l - m_test10;
|
||||
}
|
||||
|
|
@ -593,7 +601,7 @@ extern int dutch_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
|
||||
|
||||
{ int ret = r_standard_suffix(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -607,7 +615,7 @@ extern int dutch_UTF_8_stem(struct SN_env * z) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 3); }
|
||||
extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 4); }
|
||||
|
||||
extern void dutch_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
|
||||
|
||||
|
|
|
|||
|
|
@ -310,6 +310,8 @@ static const struct among a_10[18] =
|
|||
{ 4, s_10_17, -1, 8, 0}
|
||||
};
|
||||
|
||||
static const unsigned char g_aeo[] = { 17, 64 };
|
||||
|
||||
static const unsigned char g_v[] = { 17, 65, 16, 1 };
|
||||
|
||||
static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
|
||||
|
|
@ -420,16 +422,18 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
{ int c1 = z->c;
|
||||
{ int c2 = z->c;
|
||||
if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2;
|
||||
if (!(find_among(z, a_0, 3))) goto lab2;
|
||||
if (!find_among(z, a_0, 3)) goto lab2;
|
||||
goto lab1;
|
||||
lab2:
|
||||
z->c = c2;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -437,12 +441,14 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
}
|
||||
lab1:
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -471,13 +477,11 @@ lab0:
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_Step_1a(struct SN_env * z) {
|
||||
|
|
@ -485,7 +489,7 @@ static int r_Step_1a(struct SN_env * z) {
|
|||
{ int m1 = z->l - z->c; (void)m1;
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; }
|
||||
if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; }
|
||||
if (!find_among_b(z, a_1, 3)) { z->c = z->l - m1; goto lab0; }
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -496,7 +500,7 @@ static int r_Step_1a(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0;
|
||||
among_var = find_among_b(z, a_2, 6);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -527,7 +531,8 @@ static int r_Step_1a(struct SN_env * z) {
|
|||
if (ret < 0) return 0;
|
||||
z->c = ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c -= ret;
|
||||
|
|
@ -545,7 +550,7 @@ static int r_Step_1b(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_4, 6);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -558,7 +563,8 @@ static int r_Step_1b(struct SN_env * z) {
|
|||
break;
|
||||
case 2:
|
||||
{ int m_test1 = z->l - z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c -= ret;
|
||||
|
|
@ -568,49 +574,51 @@ static int r_Step_1b(struct SN_env * z) {
|
|||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->ket = z->c;
|
||||
z->bra = z->c;
|
||||
{ int m_test2 = z->l - z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
|
||||
among_var = find_among_b(z, a_3, 13);
|
||||
if (!(among_var)) return 0;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_from_s(z, 1, s_6);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 0;
|
||||
break;
|
||||
case 2:
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
if (in_grouping_b_U(z, g_aeo, 97, 111, 0)) goto lab0;
|
||||
if (z->c > z->lb) goto lab0;
|
||||
return 0;
|
||||
lab0:
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (z->c != z->I[1]) return 0;
|
||||
{ int m_test4 = z->l - z->c;
|
||||
{ int ret = r_shortv(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
z->c = z->l - m_test4;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 1, s_7);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
z->c = z->l - m_test2;
|
||||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret;
|
||||
{ int saved_c = z->c;
|
||||
ret = insert_s(z, z->c, z->c, 1, s_6);
|
||||
z->c = saved_c;
|
||||
}
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
z->ket = z->c;
|
||||
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c = ret;
|
||||
}
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (z->c != z->I[1]) return 0;
|
||||
{ int m_test3 = z->l - z->c;
|
||||
{ int ret = r_shortv(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
z->c = z->l - m_test3;
|
||||
}
|
||||
{ int ret;
|
||||
{ int saved_c = z->c;
|
||||
ret = insert_s(z, z->c, z->c, 1, s_7);
|
||||
z->c = saved_c;
|
||||
}
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
z->ket = z->c;
|
||||
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c = ret;
|
||||
}
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -631,7 +639,7 @@ static int r_Step_1c(struct SN_env * z) {
|
|||
lab0:
|
||||
z->bra = z->c;
|
||||
if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
|
||||
|
||||
|
||||
if (z->c > z->lb) goto lab2;
|
||||
return 0;
|
||||
lab2:
|
||||
|
|
@ -646,7 +654,7 @@ static int r_Step_2(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_5, 24);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -739,7 +747,7 @@ static int r_Step_3(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_6, 9);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -787,7 +795,7 @@ static int r_Step_4(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_7, 18);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -822,30 +830,28 @@ static int r_Step_5(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0;
|
||||
among_var = find_among_b(z, a_8, 2);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) goto lab1;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab0;
|
||||
lab1:
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int m1 = z->l - z->c; (void)m1;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) goto lab1;
|
||||
{ int ret = r_shortv(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab0;
|
||||
lab1:
|
||||
return 0;
|
||||
lab2:
|
||||
z->c = z->l - m1;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
{ int ret = r_shortv(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 0;
|
||||
lab2:
|
||||
z->c = z->l - m2;
|
||||
}
|
||||
}
|
||||
lab0:
|
||||
{ int ret = slice_del(z);
|
||||
|
|
@ -869,7 +875,7 @@ static int r_Step_5(struct SN_env * z) {
|
|||
static int r_exception2(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
|
||||
if (!(find_among_b(z, a_9, 8))) return 0;
|
||||
if (!find_among_b(z, a_9, 8)) return 0;
|
||||
z->bra = z->c;
|
||||
if (z->c > z->lb) return 0;
|
||||
return 1;
|
||||
|
|
@ -880,7 +886,7 @@ static int r_exception1(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among(z, a_10, 18);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
if (z->c < z->l) return 0;
|
||||
switch (among_var) {
|
||||
|
|
@ -994,11 +1000,11 @@ extern int english_UTF_8_stem(struct SN_env * z) {
|
|||
goto lab0;
|
||||
lab2:
|
||||
z->c = c1;
|
||||
|
||||
|
||||
{ int ret = r_prelude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
1416
src/backend/snowball/libstemmer/stem_UTF_8_estonian.c
Normal file
1416
src/backend/snowball/libstemmer/stem_UTF_8_estonian.c
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -279,15 +279,19 @@ static const symbol s_6[] = { 'p', 'o' };
|
|||
static int r_mark_regions(struct SN_env * z) {
|
||||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
|
||||
if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_V1, 97, 246, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
|
||||
if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_V1, 97, 246, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
|
|
@ -297,8 +301,7 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_particle_etc(struct SN_env * z) {
|
||||
|
|
@ -309,7 +312,7 @@ static int r_particle_etc(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_0, 10);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -337,7 +340,7 @@ static int r_possessive(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_4, 9);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -372,21 +375,21 @@ static int r_possessive(struct SN_env * z) {
|
|||
break;
|
||||
case 4:
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
|
||||
if (!(find_among_b(z, a_1, 6))) return 0;
|
||||
if (!find_among_b(z, a_1, 6)) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0;
|
||||
if (!(find_among_b(z, a_2, 6))) return 0;
|
||||
if (!find_among_b(z, a_2, 6)) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
|
||||
if (!(find_among_b(z, a_3, 2))) return 0;
|
||||
if (!find_among_b(z, a_3, 2)) return 0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -396,7 +399,7 @@ static int r_possessive(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_LONG(struct SN_env * z) {
|
||||
if (!(find_among_b(z, a_5, 7))) return 0;
|
||||
if (!find_among_b(z, a_5, 7)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -415,7 +418,7 @@ static int r_case_ending(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_6, 30);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -487,7 +490,7 @@ static int r_other_endings(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[0];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_7, 14);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -514,7 +517,7 @@ static int r_i_plural(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; }
|
||||
if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_8, 2)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -550,7 +553,7 @@ static int r_t_plural(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; }
|
||||
among_var = find_among_b(z, a_9, 2);
|
||||
if (!(among_var)) { z->lb = mlimit3; return 0; }
|
||||
if (!among_var) { z->lb = mlimit3; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit3;
|
||||
}
|
||||
|
|
@ -642,6 +645,7 @@ static int r_tidy(struct SN_env * z) {
|
|||
}
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
||||
if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0;
|
||||
z->ket = z->c;
|
||||
if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0;
|
||||
|
|
@ -689,7 +693,7 @@ extern int finnish_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = z->l - m5;
|
||||
}
|
||||
|
||||
|
||||
if (!(z->I[2])) goto lab1;
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
{ int ret = r_i_plural(z);
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ static int r_RV(struct SN_env * z);
|
|||
static int r_mark_regions(struct SN_env * z);
|
||||
static int r_postlude(struct SN_env * z);
|
||||
static int r_prelude(struct SN_env * z);
|
||||
static int r_elisions(struct SN_env * z);
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
|
@ -371,48 +372,74 @@ static const struct among a_8[5] =
|
|||
|
||||
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
|
||||
|
||||
static const unsigned char g_elision_char[] = { 131, 14, 3 };
|
||||
|
||||
static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
|
||||
|
||||
static const symbol s_0[] = { 'U' };
|
||||
static const symbol s_1[] = { 'I' };
|
||||
static const symbol s_2[] = { 'Y' };
|
||||
static const symbol s_3[] = { 0xC3, 0xAB };
|
||||
static const symbol s_4[] = { 'H', 'e' };
|
||||
static const symbol s_5[] = { 0xC3, 0xAF };
|
||||
static const symbol s_6[] = { 'H', 'i' };
|
||||
static const symbol s_7[] = { 'Y' };
|
||||
static const symbol s_8[] = { 'U' };
|
||||
static const symbol s_9[] = { 'i' };
|
||||
static const symbol s_10[] = { 'u' };
|
||||
static const symbol s_11[] = { 'y' };
|
||||
static const symbol s_12[] = { 0xC3, 0xAB };
|
||||
static const symbol s_13[] = { 0xC3, 0xAF };
|
||||
static const symbol s_14[] = { 'i', 'c' };
|
||||
static const symbol s_15[] = { 'i', 'q', 'U' };
|
||||
static const symbol s_16[] = { 'l', 'o', 'g' };
|
||||
static const symbol s_17[] = { 'u' };
|
||||
static const symbol s_18[] = { 'e', 'n', 't' };
|
||||
static const symbol s_19[] = { 'a', 't' };
|
||||
static const symbol s_20[] = { 'e', 'u', 'x' };
|
||||
static const symbol s_21[] = { 'i' };
|
||||
static const symbol s_22[] = { 'a', 'b', 'l' };
|
||||
static const symbol s_23[] = { 'i', 'q', 'U' };
|
||||
static const symbol s_24[] = { 'a', 't' };
|
||||
static const symbol s_25[] = { 'i', 'c' };
|
||||
static const symbol s_26[] = { 'i', 'q', 'U' };
|
||||
static const symbol s_27[] = { 'e', 'a', 'u' };
|
||||
static const symbol s_28[] = { 'a', 'l' };
|
||||
static const symbol s_29[] = { 'e', 'u', 'x' };
|
||||
static const symbol s_30[] = { 'a', 'n', 't' };
|
||||
static const symbol s_31[] = { 'e', 'n', 't' };
|
||||
static const symbol s_32[] = { 'H', 'i' };
|
||||
static const symbol s_33[] = { 'i' };
|
||||
static const symbol s_34[] = { 0xC3, 0xA9 };
|
||||
static const symbol s_35[] = { 0xC3, 0xA8 };
|
||||
static const symbol s_36[] = { 'e' };
|
||||
static const symbol s_37[] = { 'i' };
|
||||
static const symbol s_38[] = { 0xC3, 0xA7 };
|
||||
static const symbol s_39[] = { 'c' };
|
||||
static const symbol s_0[] = { 'q', 'u' };
|
||||
static const symbol s_1[] = { 'U' };
|
||||
static const symbol s_2[] = { 'I' };
|
||||
static const symbol s_3[] = { 'Y' };
|
||||
static const symbol s_4[] = { 0xC3, 0xAB };
|
||||
static const symbol s_5[] = { 'H', 'e' };
|
||||
static const symbol s_6[] = { 0xC3, 0xAF };
|
||||
static const symbol s_7[] = { 'H', 'i' };
|
||||
static const symbol s_8[] = { 'Y' };
|
||||
static const symbol s_9[] = { 'U' };
|
||||
static const symbol s_10[] = { 'i' };
|
||||
static const symbol s_11[] = { 'u' };
|
||||
static const symbol s_12[] = { 'y' };
|
||||
static const symbol s_13[] = { 0xC3, 0xAB };
|
||||
static const symbol s_14[] = { 0xC3, 0xAF };
|
||||
static const symbol s_15[] = { 'i', 'c' };
|
||||
static const symbol s_16[] = { 'i', 'q', 'U' };
|
||||
static const symbol s_17[] = { 'l', 'o', 'g' };
|
||||
static const symbol s_18[] = { 'u' };
|
||||
static const symbol s_19[] = { 'e', 'n', 't' };
|
||||
static const symbol s_20[] = { 'a', 't' };
|
||||
static const symbol s_21[] = { 'e', 'u', 'x' };
|
||||
static const symbol s_22[] = { 'i' };
|
||||
static const symbol s_23[] = { 'a', 'b', 'l' };
|
||||
static const symbol s_24[] = { 'i', 'q', 'U' };
|
||||
static const symbol s_25[] = { 'a', 't' };
|
||||
static const symbol s_26[] = { 'i', 'c' };
|
||||
static const symbol s_27[] = { 'i', 'q', 'U' };
|
||||
static const symbol s_28[] = { 'e', 'a', 'u' };
|
||||
static const symbol s_29[] = { 'a', 'l' };
|
||||
static const symbol s_30[] = { 'e', 'u', 'x' };
|
||||
static const symbol s_31[] = { 'a', 'n', 't' };
|
||||
static const symbol s_32[] = { 'e', 'n', 't' };
|
||||
static const symbol s_33[] = { 'H', 'i' };
|
||||
static const symbol s_34[] = { 'i' };
|
||||
static const symbol s_35[] = { 0xC3, 0xA9 };
|
||||
static const symbol s_36[] = { 0xC3, 0xA8 };
|
||||
static const symbol s_37[] = { 'e' };
|
||||
static const symbol s_38[] = { 'i' };
|
||||
static const symbol s_39[] = { 0xC3, 0xA7 };
|
||||
static const symbol s_40[] = { 'c' };
|
||||
|
||||
static int r_elisions(struct SN_env * z) {
|
||||
z->bra = z->c;
|
||||
{ int c1 = z->c;
|
||||
if (in_grouping_U(z, g_elision_char, 99, 116, 0)) goto lab1;
|
||||
goto lab0;
|
||||
lab1:
|
||||
z->c = c1;
|
||||
if (!(eq_s(z, 2, s_0))) return 0;
|
||||
}
|
||||
lab0:
|
||||
if (z->c == z->l || z->p[z->c] != '\'') return 0;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
|
||||
if (z->c < z->l) goto lab2;
|
||||
return 0;
|
||||
lab2:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_prelude(struct SN_env * z) {
|
||||
while(1) {
|
||||
|
|
@ -427,7 +454,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab5;
|
||||
{ int ret = slice_from_s(z, 1, s_0);
|
||||
{ int ret = slice_from_s(z, 1, s_1);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab4;
|
||||
|
|
@ -437,7 +464,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab6;
|
||||
{ int ret = slice_from_s(z, 1, s_1);
|
||||
{ int ret = slice_from_s(z, 1, s_2);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab4;
|
||||
|
|
@ -446,7 +473,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 1, s_2);
|
||||
{ int ret = slice_from_s(z, 1, s_3);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -455,18 +482,18 @@ static int r_prelude(struct SN_env * z) {
|
|||
lab3:
|
||||
z->c = c3;
|
||||
z->bra = z->c;
|
||||
if (!(eq_s(z, 2, s_3))) goto lab7;
|
||||
if (!(eq_s(z, 2, s_4))) goto lab7;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 2, s_4);
|
||||
{ int ret = slice_from_s(z, 2, s_5);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab2;
|
||||
lab7:
|
||||
z->c = c3;
|
||||
z->bra = z->c;
|
||||
if (!(eq_s(z, 2, s_5))) goto lab8;
|
||||
if (!(eq_s(z, 2, s_6))) goto lab8;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 2, s_6);
|
||||
{ int ret = slice_from_s(z, 2, s_7);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab2;
|
||||
|
|
@ -477,7 +504,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab9;
|
||||
{ int ret = slice_from_s(z, 1, s_7);
|
||||
{ int ret = slice_from_s(z, 1, s_8);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab2;
|
||||
|
|
@ -489,7 +516,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
if (z->c == z->l || z->p[z->c] != 'u') goto lab1;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 1, s_8);
|
||||
{ int ret = slice_from_s(z, 1, s_9);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -527,7 +554,7 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
lab2:
|
||||
z->c = c2;
|
||||
if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3;
|
||||
if (!(find_among(z, a_0, 3))) goto lab3;
|
||||
if (!find_among(z, a_0, 3)) goto lab3;
|
||||
goto lab1;
|
||||
lab3:
|
||||
z->c = c2;
|
||||
|
|
@ -535,7 +562,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (ret < 0) goto lab0;
|
||||
z->c = ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 251, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -547,23 +575,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->c = c1;
|
||||
}
|
||||
{ int c3 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 251, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 251, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 251, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 251, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
|
|
@ -582,31 +614,30 @@ static int r_postlude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else
|
||||
among_var = find_among(z, a_1, 7);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_from_s(z, 1, s_9);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 1, s_10);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 1, s_11);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 1, s_12);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{ int ret = slice_from_s(z, 2, s_12);
|
||||
{ int ret = slice_from_s(z, 2, s_13);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
{ int ret = slice_from_s(z, 2, s_13);
|
||||
{ int ret = slice_from_s(z, 2, s_14);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -631,25 +662,22 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_standard_suffix(struct SN_env * z) {
|
||||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_4, 43);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -669,7 +697,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
}
|
||||
{ int m1 = z->l - z->c; (void)m1;
|
||||
z->ket = z->c;
|
||||
if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m1; goto lab0; }
|
||||
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m1; goto lab0; }
|
||||
z->bra = z->c;
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
{ int ret = r_R2(z);
|
||||
|
|
@ -682,7 +710,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
goto lab1;
|
||||
lab2:
|
||||
z->c = z->l - m2;
|
||||
{ int ret = slice_from_s(z, 3, s_15);
|
||||
{ int ret = slice_from_s(z, 3, s_16);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -695,7 +723,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 3, s_16);
|
||||
{ int ret = slice_from_s(z, 3, s_17);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -703,7 +731,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 1, s_17);
|
||||
{ int ret = slice_from_s(z, 1, s_18);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -711,7 +739,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 3, s_18);
|
||||
{ int ret = slice_from_s(z, 3, s_19);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -725,7 +753,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m3 = z->l - z->c; (void)m3;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_2, 6);
|
||||
if (!(among_var)) { z->c = z->l - m3; goto lab3; }
|
||||
if (!among_var) { z->c = z->l - m3; goto lab3; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -737,7 +765,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
if (ret < 0) return ret;
|
||||
}
|
||||
z->ket = z->c;
|
||||
if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m3; goto lab3; }
|
||||
if (!(eq_s_b(z, 2, s_20))) { z->c = z->l - m3; goto lab3; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m3; goto lab3; }
|
||||
|
|
@ -763,7 +791,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
if (ret == 0) { z->c = z->l - m3; goto lab3; }
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 3, s_20);
|
||||
{ int ret = slice_from_s(z, 3, s_21);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -783,7 +811,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
if (ret == 0) { z->c = z->l - m3; goto lab3; }
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 1, s_21);
|
||||
{ int ret = slice_from_s(z, 1, s_22);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -803,7 +831,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; }
|
||||
among_var = find_among_b(z, a_3, 3);
|
||||
if (!(among_var)) { z->c = z->l - m5; goto lab6; }
|
||||
if (!among_var) { z->c = z->l - m5; goto lab6; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -818,7 +846,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
goto lab7;
|
||||
lab8:
|
||||
z->c = z->l - m6;
|
||||
{ int ret = slice_from_s(z, 3, s_22);
|
||||
{ int ret = slice_from_s(z, 3, s_23);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -836,7 +864,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
goto lab9;
|
||||
lab10:
|
||||
z->c = z->l - m7;
|
||||
{ int ret = slice_from_s(z, 3, s_23);
|
||||
{ int ret = slice_from_s(z, 3, s_24);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -865,7 +893,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
}
|
||||
{ int m8 = z->l - z->c; (void)m8;
|
||||
z->ket = z->c;
|
||||
if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m8; goto lab11; }
|
||||
if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m8; goto lab11; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m8; goto lab11; }
|
||||
|
|
@ -875,7 +903,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
if (ret < 0) return ret;
|
||||
}
|
||||
z->ket = z->c;
|
||||
if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m8; goto lab11; }
|
||||
if (!(eq_s_b(z, 2, s_26))) { z->c = z->l - m8; goto lab11; }
|
||||
z->bra = z->c;
|
||||
{ int m9 = z->l - z->c; (void)m9;
|
||||
{ int ret = r_R2(z);
|
||||
|
|
@ -888,7 +916,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
goto lab12;
|
||||
lab13:
|
||||
z->c = z->l - m9;
|
||||
{ int ret = slice_from_s(z, 3, s_26);
|
||||
{ int ret = slice_from_s(z, 3, s_27);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -898,7 +926,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
}
|
||||
break;
|
||||
case 9:
|
||||
{ int ret = slice_from_s(z, 3, s_27);
|
||||
{ int ret = slice_from_s(z, 3, s_28);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -906,7 +934,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 2, s_28);
|
||||
{ int ret = slice_from_s(z, 2, s_29);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -925,7 +953,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 3, s_29);
|
||||
{ int ret = slice_from_s(z, 3, s_30);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -944,7 +972,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_RV(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 3, s_30);
|
||||
{ int ret = slice_from_s(z, 3, s_31);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -953,7 +981,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = r_RV(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_from_s(z, 3, s_31);
|
||||
{ int ret = slice_from_s(z, 3, s_32);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -982,7 +1010,7 @@ static int r_i_verb_suffix(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_5, 35)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0;
|
||||
|
|
@ -1008,7 +1036,7 @@ static int r_verb_suffix(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_6, 38);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1056,7 +1084,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
{ int m_test2 = z->l - z->c;
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
if (!(eq_s_b(z, 2, s_32))) goto lab2;
|
||||
if (!(eq_s_b(z, 2, s_33))) goto lab2;
|
||||
goto lab1;
|
||||
lab2:
|
||||
z->c = z->l - m3;
|
||||
|
|
@ -1078,7 +1106,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; }
|
||||
among_var = find_among_b(z, a_7, 6);
|
||||
if (!(among_var)) { z->lb = mlimit4; return 0; }
|
||||
if (!among_var) { z->lb = mlimit4; return 0; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1101,7 +1129,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 1, s_33);
|
||||
{ int ret = slice_from_s(z, 1, s_34);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
|
|
@ -1119,7 +1147,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
static int r_un_double(struct SN_env * z) {
|
||||
{ int m_test1 = z->l - z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_8, 5))) return 0;
|
||||
if (!find_among_b(z, a_8, 5)) return 0;
|
||||
z->c = z->l - m_test1;
|
||||
}
|
||||
z->ket = z->c;
|
||||
|
|
@ -1147,15 +1175,15 @@ static int r_un_accent(struct SN_env * z) {
|
|||
}
|
||||
z->ket = z->c;
|
||||
{ int m1 = z->l - z->c; (void)m1;
|
||||
if (!(eq_s_b(z, 2, s_34))) goto lab2;
|
||||
if (!(eq_s_b(z, 2, s_35))) goto lab2;
|
||||
goto lab1;
|
||||
lab2:
|
||||
z->c = z->l - m1;
|
||||
if (!(eq_s_b(z, 2, s_35))) return 0;
|
||||
if (!(eq_s_b(z, 2, s_36))) return 0;
|
||||
}
|
||||
lab1:
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_from_s(z, 1, s_36);
|
||||
{ int ret = slice_from_s(z, 1, s_37);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 1;
|
||||
|
|
@ -1163,57 +1191,63 @@ lab1:
|
|||
|
||||
extern int french_UTF_8_stem(struct SN_env * z) {
|
||||
{ int c1 = z->c;
|
||||
{ int ret = r_prelude(z);
|
||||
{ int ret = r_elisions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c1;
|
||||
}
|
||||
|
||||
{ int c2 = z->c;
|
||||
{ int ret = r_prelude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c2;
|
||||
}
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
{ int ret = r_standard_suffix(z);
|
||||
if (ret == 0) goto lab4;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab3;
|
||||
lab4:
|
||||
z->c = z->l - m5;
|
||||
z->c = z->l - m6;
|
||||
{ int ret = r_i_verb_suffix(z);
|
||||
if (ret == 0) goto lab5;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab3;
|
||||
lab5:
|
||||
z->c = z->l - m5;
|
||||
z->c = z->l - m6;
|
||||
{ int ret = r_verb_suffix(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
lab3:
|
||||
z->c = z->l - m4;
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
z->c = z->l - m5;
|
||||
{ int m7 = z->l - z->c; (void)m7;
|
||||
z->ket = z->c;
|
||||
{ int m7 = z->l - z->c; (void)m7;
|
||||
{ int m8 = z->l - z->c; (void)m8;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8;
|
||||
z->c--;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_from_s(z, 1, s_37);
|
||||
{ int ret = slice_from_s(z, 1, s_38);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab7;
|
||||
lab8:
|
||||
z->c = z->l - m7;
|
||||
if (!(eq_s_b(z, 2, s_38))) { z->c = z->l - m6; goto lab6; }
|
||||
z->c = z->l - m8;
|
||||
if (!(eq_s_b(z, 2, s_39))) { z->c = z->l - m7; goto lab6; }
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_from_s(z, 1, s_39);
|
||||
{ int ret = slice_from_s(z, 1, s_40);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -1224,7 +1258,7 @@ extern int french_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
goto lab1;
|
||||
lab2:
|
||||
z->c = z->l - m3;
|
||||
z->c = z->l - m4;
|
||||
{ int ret = r_residual_suffix(z);
|
||||
if (ret == 0) goto lab0;
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -1232,26 +1266,26 @@ extern int french_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
lab1:
|
||||
lab0:
|
||||
z->c = z->l - m2;
|
||||
}
|
||||
{ int m8 = z->l - z->c; (void)m8;
|
||||
{ int ret = r_un_double(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m8;
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
{ int m9 = z->l - z->c; (void)m9;
|
||||
{ int ret = r_un_accent(z);
|
||||
{ int ret = r_un_double(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m9;
|
||||
}
|
||||
{ int m10 = z->l - z->c; (void)m10;
|
||||
{ int ret = r_un_accent(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m10;
|
||||
}
|
||||
z->c = z->lb;
|
||||
{ int c10 = z->c;
|
||||
{ int c11 = z->c;
|
||||
{ int ret = r_postlude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c10;
|
||||
z->c = c11;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,82 +27,106 @@ extern void german_UTF_8_close_env(struct SN_env * z);
|
|||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
static const symbol s_0_1[1] = { 'U' };
|
||||
static const symbol s_0_2[1] = { 'Y' };
|
||||
static const symbol s_0_3[2] = { 0xC3, 0xA4 };
|
||||
static const symbol s_0_4[2] = { 0xC3, 0xB6 };
|
||||
static const symbol s_0_5[2] = { 0xC3, 0xBC };
|
||||
static const symbol s_0_1[2] = { 'a', 'e' };
|
||||
static const symbol s_0_2[2] = { 'o', 'e' };
|
||||
static const symbol s_0_3[2] = { 'q', 'u' };
|
||||
static const symbol s_0_4[2] = { 'u', 'e' };
|
||||
static const symbol s_0_5[2] = { 0xC3, 0x9F };
|
||||
|
||||
static const struct among a_0[6] =
|
||||
{
|
||||
{ 0, 0, -1, 5, 0},
|
||||
{ 1, s_0_1, 0, 2, 0},
|
||||
{ 1, s_0_2, 0, 1, 0},
|
||||
{ 2, s_0_3, 0, 3, 0},
|
||||
{ 2, s_0_1, 0, 2, 0},
|
||||
{ 2, s_0_2, 0, 3, 0},
|
||||
{ 2, s_0_3, 0, -1, 0},
|
||||
{ 2, s_0_4, 0, 4, 0},
|
||||
{ 2, s_0_5, 0, 2, 0}
|
||||
{ 2, s_0_5, 0, 1, 0}
|
||||
};
|
||||
|
||||
static const symbol s_1_0[1] = { 'e' };
|
||||
static const symbol s_1_1[2] = { 'e', 'm' };
|
||||
static const symbol s_1_2[2] = { 'e', 'n' };
|
||||
static const symbol s_1_3[3] = { 'e', 'r', 'n' };
|
||||
static const symbol s_1_4[2] = { 'e', 'r' };
|
||||
static const symbol s_1_5[1] = { 's' };
|
||||
static const symbol s_1_6[2] = { 'e', 's' };
|
||||
static const symbol s_1_1[1] = { 'U' };
|
||||
static const symbol s_1_2[1] = { 'Y' };
|
||||
static const symbol s_1_3[2] = { 0xC3, 0xA4 };
|
||||
static const symbol s_1_4[2] = { 0xC3, 0xB6 };
|
||||
static const symbol s_1_5[2] = { 0xC3, 0xBC };
|
||||
|
||||
static const struct among a_1[7] =
|
||||
static const struct among a_1[6] =
|
||||
{
|
||||
{ 1, s_1_0, -1, 2, 0},
|
||||
{ 2, s_1_1, -1, 1, 0},
|
||||
{ 2, s_1_2, -1, 2, 0},
|
||||
{ 3, s_1_3, -1, 1, 0},
|
||||
{ 2, s_1_4, -1, 1, 0},
|
||||
{ 1, s_1_5, -1, 3, 0},
|
||||
{ 2, s_1_6, 5, 2, 0}
|
||||
{ 0, 0, -1, 5, 0},
|
||||
{ 1, s_1_1, 0, 2, 0},
|
||||
{ 1, s_1_2, 0, 1, 0},
|
||||
{ 2, s_1_3, 0, 3, 0},
|
||||
{ 2, s_1_4, 0, 4, 0},
|
||||
{ 2, s_1_5, 0, 2, 0}
|
||||
};
|
||||
|
||||
static const symbol s_2_0[2] = { 'e', 'n' };
|
||||
static const symbol s_2_1[2] = { 'e', 'r' };
|
||||
static const symbol s_2_2[2] = { 's', 't' };
|
||||
static const symbol s_2_3[3] = { 'e', 's', 't' };
|
||||
static const symbol s_2_0[1] = { 'e' };
|
||||
static const symbol s_2_1[2] = { 'e', 'm' };
|
||||
static const symbol s_2_2[2] = { 'e', 'n' };
|
||||
static const symbol s_2_3[7] = { 'e', 'r', 'i', 'n', 'n', 'e', 'n' };
|
||||
static const symbol s_2_4[4] = { 'e', 'r', 'i', 'n' };
|
||||
static const symbol s_2_5[2] = { 'l', 'n' };
|
||||
static const symbol s_2_6[3] = { 'e', 'r', 'n' };
|
||||
static const symbol s_2_7[2] = { 'e', 'r' };
|
||||
static const symbol s_2_8[1] = { 's' };
|
||||
static const symbol s_2_9[2] = { 'e', 's' };
|
||||
static const symbol s_2_10[3] = { 'l', 'n', 's' };
|
||||
|
||||
static const struct among a_2[4] =
|
||||
static const struct among a_2[11] =
|
||||
{
|
||||
{ 2, s_2_0, -1, 1, 0},
|
||||
{ 1, s_2_0, -1, 3, 0},
|
||||
{ 2, s_2_1, -1, 1, 0},
|
||||
{ 2, s_2_2, -1, 2, 0},
|
||||
{ 3, s_2_3, 2, 1, 0}
|
||||
{ 2, s_2_2, -1, 3, 0},
|
||||
{ 7, s_2_3, 2, 2, 0},
|
||||
{ 4, s_2_4, -1, 2, 0},
|
||||
{ 2, s_2_5, -1, 5, 0},
|
||||
{ 3, s_2_6, -1, 2, 0},
|
||||
{ 2, s_2_7, -1, 2, 0},
|
||||
{ 1, s_2_8, -1, 4, 0},
|
||||
{ 2, s_2_9, 8, 3, 0},
|
||||
{ 3, s_2_10, 8, 5, 0}
|
||||
};
|
||||
|
||||
static const symbol s_3_0[2] = { 'i', 'g' };
|
||||
static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
|
||||
static const symbol s_3_0[2] = { 'e', 'n' };
|
||||
static const symbol s_3_1[2] = { 'e', 'r' };
|
||||
static const symbol s_3_2[2] = { 's', 't' };
|
||||
static const symbol s_3_3[3] = { 'e', 's', 't' };
|
||||
|
||||
static const struct among a_3[2] =
|
||||
static const struct among a_3[4] =
|
||||
{
|
||||
{ 2, s_3_0, -1, 1, 0},
|
||||
{ 4, s_3_1, -1, 1, 0}
|
||||
{ 2, s_3_1, -1, 1, 0},
|
||||
{ 2, s_3_2, -1, 2, 0},
|
||||
{ 3, s_3_3, 2, 1, 0}
|
||||
};
|
||||
|
||||
static const symbol s_4_0[3] = { 'e', 'n', 'd' };
|
||||
static const symbol s_4_1[2] = { 'i', 'g' };
|
||||
static const symbol s_4_2[3] = { 'u', 'n', 'g' };
|
||||
static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
|
||||
static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
|
||||
static const symbol s_4_5[2] = { 'i', 'k' };
|
||||
static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
|
||||
static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
|
||||
static const symbol s_4_0[2] = { 'i', 'g' };
|
||||
static const symbol s_4_1[4] = { 'l', 'i', 'c', 'h' };
|
||||
|
||||
static const struct among a_4[8] =
|
||||
static const struct among a_4[2] =
|
||||
{
|
||||
{ 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}
|
||||
{ 2, s_4_0, -1, 1, 0},
|
||||
{ 4, s_4_1, -1, 1, 0}
|
||||
};
|
||||
|
||||
static const symbol s_5_0[3] = { 'e', 'n', 'd' };
|
||||
static const symbol s_5_1[2] = { 'i', 'g' };
|
||||
static const symbol s_5_2[3] = { 'u', 'n', 'g' };
|
||||
static const symbol s_5_3[4] = { 'l', 'i', 'c', 'h' };
|
||||
static const symbol s_5_4[4] = { 'i', 's', 'c', 'h' };
|
||||
static const symbol s_5_5[2] = { 'i', 'k' };
|
||||
static const symbol s_5_6[4] = { 'h', 'e', 'i', 't' };
|
||||
static const symbol s_5_7[4] = { 'k', 'e', 'i', 't' };
|
||||
|
||||
static const struct among a_5[8] =
|
||||
{
|
||||
{ 3, s_5_0, -1, 1, 0},
|
||||
{ 2, s_5_1, -1, 2, 0},
|
||||
{ 3, s_5_2, -1, 1, 0},
|
||||
{ 4, s_5_3, -1, 3, 0},
|
||||
{ 4, s_5_4, -1, 2, 0},
|
||||
{ 2, s_5_5, -1, 2, 0},
|
||||
{ 4, s_5_6, -1, 3, 0},
|
||||
{ 4, s_5_7, -1, 4, 0}
|
||||
};
|
||||
|
||||
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
|
||||
|
|
@ -111,39 +135,61 @@ static const unsigned char g_s_ending[] = { 117, 30, 5 };
|
|||
|
||||
static const unsigned char g_st_ending[] = { 117, 30, 4 };
|
||||
|
||||
static const symbol s_0[] = { 0xC3, 0x9F };
|
||||
static const symbol s_1[] = { 's', 's' };
|
||||
static const symbol s_2[] = { 'U' };
|
||||
static const symbol s_3[] = { 'Y' };
|
||||
static const symbol s_4[] = { 'y' };
|
||||
static const symbol s_5[] = { 'u' };
|
||||
static const symbol s_6[] = { 'a' };
|
||||
static const symbol s_7[] = { 'o' };
|
||||
static const symbol s_8[] = { 'n', 'i', 's' };
|
||||
static const symbol s_9[] = { 'i', 'g' };
|
||||
static const symbol s_10[] = { 'e', 'r' };
|
||||
static const symbol s_11[] = { 'e', 'n' };
|
||||
static const symbol s_0[] = { 'U' };
|
||||
static const symbol s_1[] = { 'Y' };
|
||||
static const symbol s_2[] = { 's', 's' };
|
||||
static const symbol s_3[] = { 0xC3, 0xA4 };
|
||||
static const symbol s_4[] = { 0xC3, 0xB6 };
|
||||
static const symbol s_5[] = { 0xC3, 0xBC };
|
||||
static const symbol s_6[] = { 'y' };
|
||||
static const symbol s_7[] = { 'u' };
|
||||
static const symbol s_8[] = { 'a' };
|
||||
static const symbol s_9[] = { 'o' };
|
||||
static const symbol s_10[] = { 's', 'y', 's', 't' };
|
||||
static const symbol s_11[] = { 'n', 'i', 's' };
|
||||
static const symbol s_12[] = { 'l' };
|
||||
static const symbol s_13[] = { 'i', 'g' };
|
||||
static const symbol s_14[] = { 'e', 'r' };
|
||||
static const symbol s_15[] = { 'e', 'n' };
|
||||
|
||||
static int r_prelude(struct SN_env * z) {
|
||||
int among_var;
|
||||
{ int c_test1 = z->c;
|
||||
while(1) {
|
||||
int c2 = z->c;
|
||||
{ int c3 = z->c;
|
||||
while(1) {
|
||||
int c3 = z->c;
|
||||
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab1;
|
||||
z->bra = z->c;
|
||||
if (!(eq_s(z, 2, s_0))) goto lab2;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 2, s_1);
|
||||
if (ret < 0) return ret;
|
||||
{ int c4 = z->c;
|
||||
if (z->c == z->l || z->p[z->c] != 'u') goto lab3;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab3;
|
||||
{ int ret = slice_from_s(z, 1, s_0);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab2;
|
||||
lab3:
|
||||
z->c = c4;
|
||||
if (z->c == z->l || z->p[z->c] != 'y') goto lab1;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab1;
|
||||
{ int ret = slice_from_s(z, 1, s_1);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
goto lab1;
|
||||
lab2:
|
||||
z->c = c3;
|
||||
break;
|
||||
lab1:
|
||||
z->c = c3;
|
||||
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c = ret;
|
||||
}
|
||||
}
|
||||
lab1:
|
||||
continue;
|
||||
lab0:
|
||||
z->c = c2;
|
||||
|
|
@ -152,43 +198,41 @@ static int r_prelude(struct SN_env * z) {
|
|||
z->c = c_test1;
|
||||
}
|
||||
while(1) {
|
||||
int c4 = z->c;
|
||||
while(1) {
|
||||
int c5 = z->c;
|
||||
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
|
||||
z->bra = z->c;
|
||||
{ int c6 = z->c;
|
||||
if (z->c == z->l || z->p[z->c] != 'u') goto lab6;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
|
||||
{ int ret = slice_from_s(z, 1, s_2);
|
||||
int c5 = z->c;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_0, 6);
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_from_s(z, 2, s_2);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab5;
|
||||
lab6:
|
||||
z->c = c6;
|
||||
if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
|
||||
z->c++;
|
||||
z->ket = z->c;
|
||||
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
|
||||
{ int ret = slice_from_s(z, 1, s_3);
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 2, s_3);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
lab5:
|
||||
z->c = c5;
|
||||
break;
|
||||
lab4:
|
||||
z->c = c5;
|
||||
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
|
||||
if (ret < 0) goto lab3;
|
||||
z->c = ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 2, s_4);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{ int ret = slice_from_s(z, 2, s_5);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c = ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
lab3:
|
||||
z->c = c4;
|
||||
lab4:
|
||||
z->c = c5;
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
|
|
@ -205,27 +249,31 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[0] = z->c;
|
||||
z->c = c_test1;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[2] = z->c;
|
||||
|
||||
if (!(z->I[2] < z->I[0])) goto lab0;
|
||||
|
||||
if (z->I[2] >= z->I[0]) goto lab0;
|
||||
z->I[2] = z->I[0];
|
||||
lab0:
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
|
|
@ -239,30 +287,29 @@ static int r_postlude(struct SN_env * z) {
|
|||
while(1) {
|
||||
int c1 = z->c;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_0, 6);
|
||||
if (!(among_var)) goto lab0;
|
||||
among_var = find_among(z, a_1, 6);
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_from_s(z, 1, s_4);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{ 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);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 1, s_7);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 1, s_8);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{ int ret = slice_from_s(z, 1, s_9);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
|
|
@ -279,13 +326,11 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_standard_suffix(struct SN_env * z) {
|
||||
|
|
@ -293,8 +338,8 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m1 = z->l - z->c; (void)m1;
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
|
||||
among_var = find_among_b(z, a_1, 7);
|
||||
if (!(among_var)) goto lab0;
|
||||
among_var = find_among_b(z, a_2, 11);
|
||||
if (!among_var) goto lab0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret == 0) goto lab0;
|
||||
|
|
@ -302,6 +347,12 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
if (!(eq_s_b(z, 4, s_10))) goto lab1;
|
||||
goto lab0;
|
||||
lab1:
|
||||
z->c = z->l - m2;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -310,66 +361,46 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; }
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m3; goto lab2; }
|
||||
z->c--;
|
||||
z->bra = z->c;
|
||||
if (!(eq_s_b(z, 3, s_8))) { z->c = z->l - m2; goto lab1; }
|
||||
if (!(eq_s_b(z, 3, s_11))) { z->c = z->l - m3; goto lab2; }
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
lab1:
|
||||
lab2:
|
||||
;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab0;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
{ int ret = slice_from_s(z, 1, s_12);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
lab0:
|
||||
z->c = z->l - m1;
|
||||
}
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
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;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (in_grouping_b_U(z, g_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);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
lab2:
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
|
||||
among_var = find_among_b(z, a_4, 8);
|
||||
if (!(among_var)) goto lab3;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
|
||||
among_var = find_among_b(z, a_3, 4);
|
||||
if (!among_var) goto lab3;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
{ int ret = r_R1(z);
|
||||
if (ret == 0) goto lab3;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -378,35 +409,65 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
break;
|
||||
case 2:
|
||||
if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab3;
|
||||
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 3);
|
||||
if (ret < 0) goto lab3;
|
||||
z->c = ret;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
lab3:
|
||||
z->c = z->l - m4;
|
||||
}
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab4;
|
||||
among_var = find_among_b(z, a_5, 8);
|
||||
if (!among_var) goto lab4;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) goto lab4;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
z->ket = z->c;
|
||||
if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - m5; goto lab4; }
|
||||
if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m6; goto lab5; }
|
||||
z->bra = z->c;
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5;
|
||||
{ int m7 = z->l - z->c; (void)m7;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
|
||||
z->c--;
|
||||
{ z->c = z->l - m5; goto lab4; }
|
||||
lab5:
|
||||
z->c = z->l - m6;
|
||||
{ z->c = z->l - m6; goto lab5; }
|
||||
lab6:
|
||||
z->c = z->l - m7;
|
||||
}
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m5; goto lab4; }
|
||||
if (ret == 0) { z->c = z->l - m6; goto lab5; }
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
lab4:
|
||||
lab5:
|
||||
;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int m7 = z->l - z->c; (void)m7;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
|
||||
{ int m8 = z->l - z->c; (void)m8;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7;
|
||||
z->c--;
|
||||
goto lab3;
|
||||
lab6:
|
||||
z->c = z->l - m7;
|
||||
goto lab4;
|
||||
lab7:
|
||||
z->c = z->l - m8;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -416,25 +477,25 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int m8 = z->l - z->c; (void)m8;
|
||||
{ int m9 = z->l - z->c; (void)m9;
|
||||
z->ket = z->c;
|
||||
{ int m9 = z->l - z->c; (void)m9;
|
||||
if (!(eq_s_b(z, 2, s_10))) goto lab9;
|
||||
goto lab8;
|
||||
lab9:
|
||||
z->c = z->l - m9;
|
||||
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m8; goto lab7; }
|
||||
{ int m10 = z->l - z->c; (void)m10;
|
||||
if (!(eq_s_b(z, 2, s_14))) goto lab10;
|
||||
goto lab9;
|
||||
lab10:
|
||||
z->c = z->l - m10;
|
||||
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m9; goto lab8; }
|
||||
}
|
||||
lab8:
|
||||
lab9:
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret == 0) { z->c = z->l - m8; goto lab7; }
|
||||
if (ret == 0) { z->c = z->l - m9; goto lab8; }
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
lab7:
|
||||
lab8:
|
||||
;
|
||||
}
|
||||
break;
|
||||
|
|
@ -442,25 +503,25 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int m10 = z->l - z->c; (void)m10;
|
||||
{ int m11 = z->l - z->c; (void)m11;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; }
|
||||
if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; }
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m11; goto lab11; }
|
||||
if (!find_among_b(z, a_4, 2)) { z->c = z->l - m11; goto lab11; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m10; goto lab10; }
|
||||
if (ret == 0) { z->c = z->l - m11; goto lab11; }
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
lab10:
|
||||
lab11:
|
||||
;
|
||||
}
|
||||
break;
|
||||
}
|
||||
lab3:
|
||||
z->c = z->l - m4;
|
||||
lab4:
|
||||
z->c = z->l - m5;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -480,7 +541,7 @@ extern int german_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
|
||||
|
||||
{ int ret = r_standard_suffix(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -307,7 +307,7 @@ extern int hindi_UTF_8_stem(struct SN_env * z) {
|
|||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_0, 132))) return 0;
|
||||
if (!find_among_b(z, a_0, 132)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
|
|||
|
|
@ -480,10 +480,11 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[0] = z->l;
|
||||
{ int c1 = z->c;
|
||||
if (in_grouping_U(z, g_v, 97, 369, 0)) goto lab1;
|
||||
|
||||
if (in_grouping_U(z, g_v, 97, 369, 1) < 0) goto lab1;
|
||||
{ int c2 = z->c;
|
||||
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3;
|
||||
if (!(find_among(z, a_0, 8))) goto lab3;
|
||||
if (!find_among(z, a_0, 8)) goto lab3;
|
||||
goto lab2;
|
||||
lab3:
|
||||
z->c = c2;
|
||||
|
|
@ -498,7 +499,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
lab1:
|
||||
z->c = c1;
|
||||
if (out_grouping_U(z, g_v, 97, 369, 0)) return 0;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 369, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
|
|
@ -510,8 +512,7 @@ lab0:
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_v_ending(struct SN_env * z) {
|
||||
|
|
@ -519,7 +520,7 @@ static int r_v_ending(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
|
||||
among_var = find_among_b(z, a_1, 2);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -542,7 +543,7 @@ static int r_v_ending(struct SN_env * z) {
|
|||
static int r_double(struct SN_env * z) {
|
||||
{ int m_test1 = z->l - z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_2, 23))) return 0;
|
||||
if (!find_among_b(z, a_2, 23)) return 0;
|
||||
z->c = z->l - m_test1;
|
||||
}
|
||||
return 1;
|
||||
|
|
@ -568,7 +569,7 @@ static int r_undouble(struct SN_env * z) {
|
|||
static int r_instrum(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
|
||||
if (!(find_among_b(z, a_3, 2))) return 0;
|
||||
if (!find_among_b(z, a_3, 2)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -587,7 +588,7 @@ static int r_instrum(struct SN_env * z) {
|
|||
|
||||
static int r_case(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_4, 44))) return 0;
|
||||
if (!find_among_b(z, a_4, 44)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -606,7 +607,7 @@ static int r_case_special(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0;
|
||||
among_var = find_among_b(z, a_5, 3);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -631,7 +632,7 @@ static int r_case_other(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0;
|
||||
among_var = find_among_b(z, a_6, 6);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -659,7 +660,7 @@ static int r_case_other(struct SN_env * z) {
|
|||
static int r_factive(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
|
||||
if (!(find_among_b(z, a_7, 2))) return 0;
|
||||
if (!find_among_b(z, a_7, 2)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -681,7 +682,7 @@ static int r_plural(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0;
|
||||
among_var = find_among_b(z, a_8, 7);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -711,7 +712,7 @@ static int r_owned(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 169)) return 0;
|
||||
among_var = find_among_b(z, a_9, 12);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -740,7 +741,7 @@ static int r_sing_owner(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_10, 31);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -770,7 +771,7 @@ static int r_plur_owner(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_11, 42);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ static const symbol s_6[] = { 'a', 'j', 'a', 'r' };
|
|||
static int r_remove_particle(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0;
|
||||
if (!(find_among_b(z, a_0, 3))) return 0;
|
||||
if (!find_among_b(z, a_0, 3)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -135,7 +135,7 @@ static int r_remove_particle(struct SN_env * z) {
|
|||
static int r_remove_possessive_pronoun(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0;
|
||||
if (!(find_among_b(z, a_1, 3))) return 0;
|
||||
if (!find_among_b(z, a_1, 3)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -145,19 +145,18 @@ static int r_remove_possessive_pronoun(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_SUFFIX_KAN_OK(struct SN_env * z) {
|
||||
|
||||
if (!(z->I[0] != 3)) return 0;
|
||||
if (!(z->I[0] != 2)) return 0;
|
||||
|
||||
if (z->I[0] == 3) return 0;
|
||||
if (z->I[0] == 2) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_SUFFIX_AN_OK(struct SN_env * z) {
|
||||
if (!(z->I[0] != 1)) return 0;
|
||||
return 1;
|
||||
return z->I[0] != 1;
|
||||
}
|
||||
|
||||
static int r_SUFFIX_I_OK(struct SN_env * z) {
|
||||
if (!(z->I[0] <= 2)) return 0;
|
||||
if (z->I[0] > 2) return 0;
|
||||
{ int m1 = z->l - z->c; (void)m1;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0;
|
||||
z->c--;
|
||||
|
|
@ -171,7 +170,7 @@ static int r_SUFFIX_I_OK(struct SN_env * z) {
|
|||
static int r_remove_suffix(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0;
|
||||
if (!(find_among_b(z, a_2, 3))) return 0;
|
||||
if (!find_among_b(z, a_2, 3)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -196,7 +195,7 @@ static int r_remove_first_order_prefix(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0;
|
||||
among_var = find_among(z, a_3, 12);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -276,7 +275,7 @@ static int r_remove_second_order_prefix(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0;
|
||||
among_var = find_among(z, a_4, 6);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -315,7 +314,8 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
|
|||
{ int c1 = z->c;
|
||||
while(1) {
|
||||
int c2 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_vowel, 97, 117, 1);
|
||||
if (ret < 0) goto lab1;
|
||||
z->c += ret;
|
||||
|
|
@ -328,7 +328,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = c1;
|
||||
}
|
||||
if (!(z->I[1] > 2)) return 0;
|
||||
if (z->I[1] <= 2) return 0;
|
||||
z->I[0] = 0;
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
|
|
@ -338,7 +338,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
if (!(z->I[1] > 2)) return 0;
|
||||
if (z->I[1] <= 2) return 0;
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
{ int ret = r_remove_possessive_pronoun(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -346,7 +346,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
|
|||
z->c = z->l - m4;
|
||||
}
|
||||
z->c = z->lb;
|
||||
if (!(z->I[1] > 2)) return 0;
|
||||
if (z->I[1] <= 2) return 0;
|
||||
{ int c5 = z->c;
|
||||
{ int c_test6 = z->c;
|
||||
{ int ret = r_remove_first_order_prefix(z);
|
||||
|
|
@ -355,7 +355,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
{ int c7 = z->c;
|
||||
{ int c_test8 = z->c;
|
||||
if (!(z->I[1] > 2)) goto lab4;
|
||||
if (z->I[1] <= 2) goto lab4;
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
{ int ret = r_remove_suffix(z);
|
||||
|
|
@ -365,7 +365,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
|
|||
z->c = z->lb;
|
||||
z->c = c_test8;
|
||||
}
|
||||
if (!(z->I[1] > 2)) goto lab4;
|
||||
if (z->I[1] <= 2) goto lab4;
|
||||
{ int ret = r_remove_second_order_prefix(z);
|
||||
if (ret == 0) goto lab4;
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -385,7 +385,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) {
|
|||
z->c = c9;
|
||||
}
|
||||
{ int c10 = z->c;
|
||||
if (!(z->I[1] > 2)) goto lab5;
|
||||
if (z->I[1] <= 2) goto lab5;
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
{ int ret = r_remove_suffix(z);
|
||||
|
|
|
|||
|
|
@ -225,24 +225,28 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
{ int c1 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[2] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -258,7 +262,7 @@ static int r_initial_morph(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_0, 24);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -316,25 +320,22 @@ static int r_initial_morph(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_noun_sfx(struct SN_env * z) {
|
||||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_1, 16);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -361,7 +362,7 @@ static int r_deriv(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_2, 25);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -406,7 +407,7 @@ static int r_verb_sfx(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_3, 12);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -436,7 +437,7 @@ extern int irish_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = c1;
|
||||
}
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ static int r_RV(struct SN_env * z);
|
|||
static int r_mark_regions(struct SN_env * z);
|
||||
static int r_postlude(struct SN_env * z);
|
||||
static int r_prelude(struct SN_env * z);
|
||||
static int r_exceptions(struct SN_env * z);
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
|
@ -487,6 +488,8 @@ static const symbol s_14[] = { 'e', 'n', 't', 'e' };
|
|||
static const symbol s_15[] = { 'a', 't' };
|
||||
static const symbol s_16[] = { 'a', 't' };
|
||||
static const symbol s_17[] = { 'i', 'c' };
|
||||
static const symbol s_18[] = { 'd', 'i', 'v', 'a', 'n', 'o' };
|
||||
static const symbol s_19[] = { 'd', 'i', 'v', 'a', 'n' };
|
||||
|
||||
static int r_prelude(struct SN_env * z) {
|
||||
int among_var;
|
||||
|
|
@ -495,7 +498,6 @@ static int r_prelude(struct SN_env * z) {
|
|||
int c2 = z->c;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_0, 7);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -594,7 +596,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
|
||||
{ int c3 = z->c;
|
||||
if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab4;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
|
|
@ -603,7 +606,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
lab4:
|
||||
z->c = c3;
|
||||
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab2;
|
||||
z->c += ret;
|
||||
|
|
@ -616,7 +620,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab0;
|
||||
{ int c4 = z->c;
|
||||
if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab6;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab6;
|
||||
z->c += ret;
|
||||
|
|
@ -639,23 +644,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->c = c1;
|
||||
}
|
||||
{ int c5 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 249, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
|
|
@ -674,7 +683,6 @@ static int r_postlude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
|
||||
among_var = find_among(z, a_1, 3);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -703,29 +711,26 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_attached_pronoun(struct SN_env * z) {
|
||||
int among_var;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_2, 37))) return 0;
|
||||
if (!find_among_b(z, a_2, 37)) return 0;
|
||||
z->bra = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
|
||||
among_var = find_among_b(z, a_3, 5);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
{ int ret = r_RV(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -748,7 +753,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_6, 51);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -824,7 +829,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; }
|
||||
among_var = find_among_b(z, a_4, 4);
|
||||
if (!(among_var)) { z->c = z->l - m2; goto lab1; }
|
||||
if (!among_var) { z->c = z->l - m2; goto lab1; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m2; goto lab1; }
|
||||
|
|
@ -861,7 +866,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m3 = z->l - z->c; (void)m3;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; }
|
||||
if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m3; goto lab2; }
|
||||
if (!find_among_b(z, a_5, 3)) { z->c = z->l - m3; goto lab2; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m3; goto lab2; }
|
||||
|
|
@ -916,7 +921,7 @@ static int r_verb_suffix(struct SN_env * z) {
|
|||
if (z->c < z->I[2]) return 0;
|
||||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_7, 87)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -971,56 +976,77 @@ static int r_vowel_suffix(struct SN_env * z) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
extern int italian_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 ret = r_mark_regions(z);
|
||||
static int r_exceptions(struct SN_env * z) {
|
||||
z->bra = z->c;
|
||||
if (!(eq_s(z, 6, s_18))) return 0;
|
||||
if (z->c < z->l) return 0;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 5, s_19);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->lb = z->c; z->c = z->l;
|
||||
return 1;
|
||||
}
|
||||
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
{ int ret = r_attached_pronoun(z);
|
||||
extern int italian_UTF_8_stem(struct SN_env * z) {
|
||||
{ int c1 = z->c;
|
||||
{ int ret = r_exceptions(z);
|
||||
if (ret == 0) goto lab1;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m2;
|
||||
}
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
{ int ret = r_standard_suffix(z);
|
||||
if (ret == 0) goto lab2;
|
||||
goto lab0;
|
||||
lab1:
|
||||
z->c = c1;
|
||||
{ int c2 = z->c;
|
||||
{ int ret = r_prelude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab1;
|
||||
z->c = c2;
|
||||
}
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
{ int ret = r_attached_pronoun(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
{ int ret = r_standard_suffix(z);
|
||||
if (ret == 0) goto lab4;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab3;
|
||||
lab4:
|
||||
z->c = z->l - m5;
|
||||
{ int ret = r_verb_suffix(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
lab3:
|
||||
lab2:
|
||||
z->c = z->l - m4;
|
||||
{ int ret = r_verb_suffix(z);
|
||||
if (ret == 0) goto lab0;
|
||||
}
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
{ int ret = r_vowel_suffix(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = z->l - m6;
|
||||
}
|
||||
lab1:
|
||||
lab0:
|
||||
z->c = z->l - m3;
|
||||
}
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
{ int ret = r_vowel_suffix(z);
|
||||
if (ret < 0) return ret;
|
||||
z->c = z->lb;
|
||||
{ int c7 = z->c;
|
||||
{ int ret = r_postlude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c7;
|
||||
}
|
||||
z->c = z->l - m5;
|
||||
}
|
||||
z->c = z->lb;
|
||||
{ int c6 = z->c;
|
||||
{ int ret = r_postlude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
z->c = c6;
|
||||
}
|
||||
lab0:
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ static int r_fix_conflicts(struct SN_env * z);
|
|||
static int r_fix_gd(struct SN_env * z);
|
||||
static int r_fix_chdz(struct SN_env * z);
|
||||
static int r_step1(struct SN_env * z);
|
||||
static int r_R1(struct SN_env * z);
|
||||
static int r_step2(struct SN_env * z);
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
|
@ -626,24 +625,16 @@ static const symbol s_8[] = { 't' };
|
|||
static const symbol s_9[] = { 'd' };
|
||||
static const symbol s_10[] = { 'g' };
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_step1(struct SN_env * z) {
|
||||
|
||||
{ int mlimit1;
|
||||
if (z->c < z->I[0]) return 0;
|
||||
mlimit1 = z->lb; z->lb = z->I[0];
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_0, 204))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_0, 204)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -658,7 +649,7 @@ static int r_step2(struct SN_env * z) {
|
|||
if (z->c < z->I[0]) goto lab0;
|
||||
mlimit2 = z->lb; z->lb = z->I[0];
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_1, 62))) { z->lb = mlimit2; goto lab0; }
|
||||
if (!find_among_b(z, a_1, 62)) { z->lb = mlimit2; goto lab0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit2;
|
||||
}
|
||||
|
|
@ -678,7 +669,7 @@ static int r_fix_conflicts(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2621472 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_2, 11);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -730,7 +721,7 @@ static int r_fix_chdz(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 190)) return 0;
|
||||
among_var = find_among_b(z, a_3, 2);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -750,7 +741,7 @@ static int r_fix_chdz(struct SN_env * z) {
|
|||
static int r_fix_gd(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 100) return 0;
|
||||
if (!(find_among_b(z, a_4, 1))) return 0;
|
||||
if (!find_among_b(z, a_4, 1)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_from_s(z, 1, s_10);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -767,7 +758,7 @@ extern int lithuanian_UTF_8_stem(struct SN_env * z) {
|
|||
z->c++;
|
||||
z->c = c_test3;
|
||||
}
|
||||
if (!(len_utf8(z->p) > 6)) { z->c = c2; goto lab1; }
|
||||
if (len_utf8(z->p) <= 6) { z->c = c2; goto lab1; }
|
||||
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
|
||||
if (ret < 0) { z->c = c2; goto lab1; }
|
||||
z->c = ret;
|
||||
|
|
@ -775,12 +766,14 @@ extern int lithuanian_UTF_8_stem(struct SN_env * z) {
|
|||
lab1:
|
||||
;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 371, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 371, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@ static int r_remove_category_1(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_0, 17);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -319,7 +319,7 @@ static int r_remove_category_1(struct SN_env * z) {
|
|||
static int r_check_category_2(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_1, 3))) return 0;
|
||||
if (!find_among_b(z, a_1, 3)) return 0;
|
||||
z->bra = z->c;
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -329,7 +329,7 @@ static int r_remove_category_2(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_2, 3);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -365,7 +365,7 @@ static int r_remove_category_2(struct SN_env * z) {
|
|||
|
||||
static int r_remove_category_3(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_3, 91))) return 0;
|
||||
if (!find_among_b(z, a_3, 91)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
|
|||
|
|
@ -140,15 +140,17 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[0] = z->c;
|
||||
z->c = c_test1;
|
||||
}
|
||||
|
||||
if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 248, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
|
||||
if (!(z->I[1] < z->I[0])) goto lab0;
|
||||
|
||||
if (z->I[1] >= z->I[0]) goto lab0;
|
||||
z->I[1] = z->I[0];
|
||||
lab0:
|
||||
return 1;
|
||||
|
|
@ -163,7 +165,7 @@ static int r_main_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
among_var = find_among_b(z, a_0, 29);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -205,7 +207,7 @@ static int r_consonant_pair(struct SN_env * z) {
|
|||
mlimit2 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; }
|
||||
if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; }
|
||||
if (!find_among_b(z, a_1, 2)) { z->lb = mlimit2; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit2;
|
||||
}
|
||||
|
|
@ -229,7 +231,7 @@ static int r_other_suffix(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[1];
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_2, 11)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -230,13 +230,11 @@ static int r_shortv(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_Step_1a(struct SN_env * z) {
|
||||
|
|
@ -244,7 +242,7 @@ static int r_Step_1a(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
|
||||
among_var = find_among_b(z, a_0, 4);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -271,7 +269,7 @@ static int r_Step_1b(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
|
||||
among_var = find_among_b(z, a_2, 3);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -284,7 +282,8 @@ static int r_Step_1b(struct SN_env * z) {
|
|||
break;
|
||||
case 2:
|
||||
{ int m_test1 = z->l - z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c -= ret;
|
||||
|
|
@ -297,7 +296,6 @@ static int r_Step_1b(struct SN_env * z) {
|
|||
{ int m_test2 = z->l - z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
|
||||
among_var = find_among_b(z, a_1, 13);
|
||||
if (!(among_var)) return 0;
|
||||
z->c = z->l - m_test2;
|
||||
}
|
||||
switch (among_var) {
|
||||
|
|
@ -356,7 +354,8 @@ static int r_Step_1c(struct SN_env * z) {
|
|||
}
|
||||
lab0:
|
||||
z->bra = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c -= ret;
|
||||
|
|
@ -372,7 +371,7 @@ static int r_Step_2(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_3, 20);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -452,7 +451,7 @@ static int r_Step_3(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_4, 7);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -482,7 +481,7 @@ static int r_Step_4(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_5, 19);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -517,26 +516,24 @@ static int r_Step_5a(struct SN_env * z) {
|
|||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
|
||||
z->c--;
|
||||
z->bra = z->c;
|
||||
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) goto lab1;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab0;
|
||||
lab1:
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int m1 = z->l - z->c; (void)m1;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) goto lab1;
|
||||
{ int ret = r_shortv(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab0;
|
||||
lab1:
|
||||
return 0;
|
||||
lab2:
|
||||
z->c = z->l - m1;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
{ int ret = r_shortv(z);
|
||||
if (ret == 0) goto lab2;
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
return 0;
|
||||
lab2:
|
||||
z->c = z->l - m2;
|
||||
}
|
||||
}
|
||||
lab0:
|
||||
{ int ret = slice_del(z);
|
||||
|
|
@ -608,23 +605,27 @@ extern int porter_UTF_8_stem(struct SN_env * z) {
|
|||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
{ int c5 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 121, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
|
|
|
|||
|
|
@ -479,7 +479,6 @@ static int r_prelude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || (z->p[z->c + 1] != 163 && z->p[z->c + 1] != 181)) among_var = 3; else
|
||||
among_var = find_among(z, a_0, 3);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -516,7 +515,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2;
|
||||
{ int c3 = z->c;
|
||||
if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab4;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
|
|
@ -525,7 +525,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
lab4:
|
||||
z->c = c3;
|
||||
if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab2;
|
||||
z->c += ret;
|
||||
|
|
@ -538,7 +539,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab0;
|
||||
{ int c4 = z->c;
|
||||
if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab6;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab6;
|
||||
z->c += ret;
|
||||
|
|
@ -561,23 +563,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->c = c1;
|
||||
}
|
||||
{ int c5 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 250, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
|
|
@ -596,7 +602,6 @@ static int r_postlude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else
|
||||
among_var = find_among(z, a_1, 3);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -625,18 +630,15 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_standard_suffix(struct SN_env * z) {
|
||||
|
|
@ -644,7 +646,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_5, 45);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -690,7 +692,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; }
|
||||
among_var = find_among_b(z, a_2, 4);
|
||||
if (!(among_var)) { z->c = z->l - m1; goto lab0; }
|
||||
if (!among_var) { z->c = z->l - m1; goto lab0; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m1; goto lab0; }
|
||||
|
|
@ -727,7 +729,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m2 = z->l - z->c; (void)m2;
|
||||
z->ket = z->c;
|
||||
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; }
|
||||
if (!(find_among_b(z, a_3, 3))) { z->c = z->l - m2; goto lab1; }
|
||||
if (!find_among_b(z, a_3, 3)) { z->c = z->l - m2; goto lab1; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m2; goto lab1; }
|
||||
|
|
@ -750,7 +752,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m3 = z->l - z->c; (void)m3;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; }
|
||||
if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
|
||||
if (!find_among_b(z, a_4, 3)) { z->c = z->l - m3; goto lab2; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m3; goto lab2; }
|
||||
|
|
@ -805,7 +807,7 @@ static int r_verb_suffix(struct SN_env * z) {
|
|||
if (z->c < z->I[2]) return 0;
|
||||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_6, 120)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -817,7 +819,7 @@ static int r_verb_suffix(struct SN_env * z) {
|
|||
|
||||
static int r_residual_suffix(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_7, 7))) return 0;
|
||||
if (!find_among_b(z, a_7, 7)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_RV(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -832,7 +834,7 @@ static int r_residual_form(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_8, 4);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -888,7 +890,7 @@ extern int portuguese_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = c1;
|
||||
}
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -356,23 +356,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[1] = z->l;
|
||||
z->I[0] = z->l;
|
||||
{ int c1 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 1072, 1103, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 1072, 1103, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 1072, 1103, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 1072, 1103, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -385,15 +389,14 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_perfective_gerund(struct SN_env * z) {
|
||||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_0, 9);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -420,7 +423,7 @@ static int r_perfective_gerund(struct SN_env * z) {
|
|||
|
||||
static int r_adjective(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_1, 26))) return 0;
|
||||
if (!find_among_b(z, a_1, 26)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -436,7 +439,7 @@ static int r_adjectival(struct SN_env * z) {
|
|||
{ int m1 = z->l - z->c; (void)m1;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_2, 8);
|
||||
if (!(among_var)) { z->c = z->l - m1; goto lab0; }
|
||||
if (!among_var) { z->c = z->l - m1; goto lab0; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -467,7 +470,7 @@ static int r_adjectival(struct SN_env * z) {
|
|||
static int r_reflexive(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 140 && z->p[z->c - 1] != 143)) return 0;
|
||||
if (!(find_among_b(z, a_3, 2))) return 0;
|
||||
if (!find_among_b(z, a_3, 2)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -479,7 +482,7 @@ static int r_verb(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_4, 46);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -506,7 +509,7 @@ static int r_verb(struct SN_env * z) {
|
|||
|
||||
static int r_noun(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_5, 36))) return 0;
|
||||
if (!find_among_b(z, a_5, 36)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
|
|
@ -517,7 +520,7 @@ static int r_noun(struct SN_env * z) {
|
|||
static int r_derivational(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 130 && z->p[z->c - 1] != 140)) return 0;
|
||||
if (!(find_among_b(z, a_6, 2))) return 0;
|
||||
if (!find_among_b(z, a_6, 2)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -532,7 +535,7 @@ static int r_tidy_up(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_7, 4);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -590,7 +593,7 @@ extern int russian_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
z->c = c1;
|
||||
}
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4799,7 +4799,7 @@ static int r_cyr_to_lat(struct SN_env * z) {
|
|||
int c3 = z->c;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_0, 30);
|
||||
if (!(among_var)) goto lab2;
|
||||
if (!among_var) goto lab2;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -5064,7 +5064,8 @@ static int r_prelude(struct SN_env * z) {
|
|||
static int r_mark_regions(struct SN_env * z) {
|
||||
z->I[1] = 1;
|
||||
{ int c1 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_sa, 263, 382, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c += ret;
|
||||
|
|
@ -5075,14 +5076,16 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
}
|
||||
z->I[0] = z->l;
|
||||
{ int c2 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab1;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[0] = z->c;
|
||||
if (!(z->I[0] < 2)) goto lab1;
|
||||
{
|
||||
if (z->I[0] >= 2) goto lab1;
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 117, 1);
|
||||
if (ret < 0) goto lab1;
|
||||
z->c += ret;
|
||||
|
|
@ -5103,18 +5106,19 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
}
|
||||
}
|
||||
{ int c4 = z->c;
|
||||
if (!(z->c >= 2)) goto lab5;
|
||||
if (z->c < 2) goto lab5;
|
||||
goto lab4;
|
||||
lab5:
|
||||
z->c = c4;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_rg, 114, 114, 1);
|
||||
if (ret < 0) goto lab2;
|
||||
z->c += ret;
|
||||
}
|
||||
}
|
||||
lab4:
|
||||
if (!((z->I[0] - z->c) > 1)) goto lab2;
|
||||
if ((z->I[0] - z->c) <= 1) goto lab2;
|
||||
z->I[0] = z->c;
|
||||
lab2:
|
||||
z->c = c3;
|
||||
|
|
@ -5123,8 +5127,7 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_Step_1(struct SN_env * z) {
|
||||
|
|
@ -5132,7 +5135,7 @@ static int r_Step_1(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3435050 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_1, 130);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -5606,7 +5609,7 @@ static int r_Step_2(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_2, 2035);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -6483,7 +6486,7 @@ static int r_Step_2(struct SN_env * z) {
|
|||
static int r_Step_3(struct SN_env * z) {
|
||||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3188642 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_3, 26))) return 0;
|
||||
if (!find_among_b(z, a_3, 26)) return 0;
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R1(z);
|
||||
if (ret <= 0) return ret;
|
||||
|
|
@ -6495,15 +6498,15 @@ static int r_Step_3(struct SN_env * z) {
|
|||
}
|
||||
|
||||
extern int serbian_UTF_8_stem(struct SN_env * z) {
|
||||
|
||||
|
||||
{ int ret = r_cyr_to_lat(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
||||
|
||||
{ int ret = r_prelude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -512,7 +512,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
|
||||
{ int c3 = z->c;
|
||||
if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab4;
|
||||
z->c += ret;
|
||||
|
|
@ -521,7 +522,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
lab4:
|
||||
z->c = c3;
|
||||
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab2;
|
||||
z->c += ret;
|
||||
|
|
@ -534,7 +536,8 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
|
||||
{ int c4 = z->c;
|
||||
if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab6;
|
||||
z->c += ret;
|
||||
|
|
@ -557,23 +560,27 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->c = c1;
|
||||
}
|
||||
{ int c5 = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = out_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
}
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 252, 1);
|
||||
if (ret < 0) goto lab7;
|
||||
z->c += ret;
|
||||
|
|
@ -592,7 +599,6 @@ static int r_postlude(struct SN_env * z) {
|
|||
z->bra = z->c;
|
||||
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((67641858 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else
|
||||
among_var = find_among(z, a_0, 6);
|
||||
if (!(among_var)) goto lab0;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -636,29 +642,26 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_RV(struct SN_env * z) {
|
||||
if (!(z->I[2] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[2] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R2(struct SN_env * z) {
|
||||
if (!(z->I[0] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[0] <= z->c;
|
||||
}
|
||||
|
||||
static int r_attached_pronoun(struct SN_env * z) {
|
||||
int among_var;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_1, 13))) return 0;
|
||||
if (!find_among_b(z, a_1, 13)) return 0;
|
||||
z->bra = z->c;
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
|
||||
among_var = find_among_b(z, a_2, 11);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
{ int ret = r_RV(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -714,7 +717,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
among_var = find_among_b(z, a_6, 46);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -782,7 +785,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; }
|
||||
among_var = find_among_b(z, a_3, 4);
|
||||
if (!(among_var)) { z->c = z->l - m2; goto lab1; }
|
||||
if (!among_var) { z->c = z->l - m2; goto lab1; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m2; goto lab1; }
|
||||
|
|
@ -819,7 +822,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m3 = z->l - z->c; (void)m3;
|
||||
z->ket = z->c;
|
||||
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; }
|
||||
if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
|
||||
if (!find_among_b(z, a_4, 3)) { z->c = z->l - m3; goto lab2; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m3; goto lab2; }
|
||||
|
|
@ -842,7 +845,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m4 = z->l - z->c; (void)m4;
|
||||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m4; goto lab3; }
|
||||
if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m4; goto lab3; }
|
||||
if (!find_among_b(z, a_5, 3)) { z->c = z->l - m4; goto lab3; }
|
||||
z->bra = z->c;
|
||||
{ int ret = r_R2(z);
|
||||
if (ret == 0) { z->c = z->l - m4; goto lab3; }
|
||||
|
|
@ -887,7 +890,7 @@ static int r_y_verb_suffix(struct SN_env * z) {
|
|||
if (z->c < z->I[2]) return 0;
|
||||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_7, 12)) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -907,7 +910,7 @@ static int r_verb_suffix(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[2];
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_8, 96);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -942,7 +945,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_9, 8);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -986,7 +989,7 @@ static int r_residual_suffix(struct SN_env * z) {
|
|||
}
|
||||
|
||||
extern int spanish_UTF_8_stem(struct SN_env * z) {
|
||||
|
||||
|
||||
{ int ret = r_mark_regions(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ static const symbol s_2_0[2] = { 'i', 'g' };
|
|||
static const symbol s_2_1[3] = { 'l', 'i', 'g' };
|
||||
static const symbol s_2_2[3] = { 'e', 'l', 's' };
|
||||
static const symbol s_2_3[5] = { 'f', 'u', 'l', 'l', 't' };
|
||||
static const symbol s_2_4[5] = { 'l', 0xC3, 0xB6, 's', 't' };
|
||||
static const symbol s_2_4[4] = { 0xC3, 0xB6, 's', 't' };
|
||||
|
||||
static const struct among a_2[5] =
|
||||
{
|
||||
|
|
@ -135,14 +135,16 @@ static const struct among a_2[5] =
|
|||
{ 3, s_2_1, 0, 1, 0},
|
||||
{ 3, s_2_2, -1, 1, 0},
|
||||
{ 5, s_2_3, -1, 3, 0},
|
||||
{ 5, s_2_4, -1, 2, 0}
|
||||
{ 4, s_2_4, -1, 2, 0}
|
||||
};
|
||||
|
||||
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
|
||||
|
||||
static const unsigned char g_s_ending[] = { 119, 127, 149 };
|
||||
|
||||
static const symbol s_0[] = { 'l', 0xC3, 0xB6, 's' };
|
||||
static const unsigned char g_ost_ending[] = { 173, 58 };
|
||||
|
||||
static const symbol s_0[] = { 0xC3, 0xB6, 's' };
|
||||
static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
|
||||
|
||||
static int r_mark_regions(struct SN_env * z) {
|
||||
|
|
@ -155,15 +157,17 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->I[0] = z->c;
|
||||
z->c = c_test1;
|
||||
}
|
||||
|
||||
if (out_grouping_U(z, g_v, 97, 246, 1) < 0) return 0;
|
||||
{
|
||||
|
||||
{
|
||||
int ret = in_grouping_U(z, g_v, 97, 246, 1);
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
|
||||
if (!(z->I[1] < z->I[0])) goto lab0;
|
||||
|
||||
if (z->I[1] >= z->I[0]) goto lab0;
|
||||
z->I[1] = z->I[0];
|
||||
lab0:
|
||||
return 1;
|
||||
|
|
@ -178,7 +182,7 @@ static int r_main_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
among_var = find_among_b(z, a_0, 37);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
|
|
@ -205,7 +209,7 @@ static int r_consonant_pair(struct SN_env * z) {
|
|||
mlimit1 = z->lb; z->lb = z->I[1];
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; }
|
||||
if (!find_among_b(z, a_1, 7)) { z->lb = mlimit1; return 0; }
|
||||
z->c = z->l - m2;
|
||||
z->ket = z->c;
|
||||
{ int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
|
||||
|
|
@ -231,27 +235,28 @@ static int r_other_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
|
||||
among_var = find_among_b(z, a_2, 5);
|
||||
if (!(among_var)) { z->lb = mlimit1; return 0; }
|
||||
if (!among_var) { z->lb = mlimit1; return 0; }
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{ int ret = slice_from_s(z, 4, s_0);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 4, s_1);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
z->lb = mlimit1;
|
||||
}
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (in_grouping_b_U(z, g_ost_ending, 105, 118, 0)) return 0;
|
||||
{ int ret = slice_from_s(z, 3, s_0);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{ int ret = slice_from_s(z, 4, s_1);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -12,6 +12,7 @@ extern int turkish_UTF_8_stem(struct SN_env * z);
|
|||
static int r_stem_suffix_chain_before_ki(struct SN_env * z);
|
||||
static int r_stem_noun_suffixes(struct SN_env * z);
|
||||
static int r_stem_nominal_verb_suffixes(struct SN_env * z);
|
||||
static int r_remove_proper_noun_suffix(struct SN_env * z);
|
||||
static int r_postlude(struct SN_env * z);
|
||||
static int r_post_process_last_consonants(struct SN_env * z);
|
||||
static int r_more_than_one_syllable_word(struct SN_env * z);
|
||||
|
|
@ -458,49 +459,58 @@ static const symbol s_17[] = { 's', 'o', 'y' };
|
|||
|
||||
static int r_check_vowel_harmony(struct SN_env * z) {
|
||||
{ int m_test1 = z->l - z->c;
|
||||
|
||||
if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab1;
|
||||
z->c--;
|
||||
|
||||
if (out_grouping_b_U(z, g_vowel1, 97, 305, 1) < 0) goto lab1;
|
||||
goto lab0;
|
||||
lab1:
|
||||
z->c = z->l - m2;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab2;
|
||||
z->c--;
|
||||
|
||||
if (out_grouping_b_U(z, g_vowel2, 101, 252, 1) < 0) goto lab2;
|
||||
goto lab0;
|
||||
lab2:
|
||||
z->c = z->l - m2;
|
||||
if (!(eq_s_b(z, 2, s_0))) goto lab3;
|
||||
|
||||
if (out_grouping_b_U(z, g_vowel3, 97, 305, 1) < 0) goto lab3;
|
||||
goto lab0;
|
||||
lab3:
|
||||
z->c = z->l - m2;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab4;
|
||||
z->c--;
|
||||
|
||||
if (out_grouping_b_U(z, g_vowel4, 101, 105, 1) < 0) goto lab4;
|
||||
goto lab0;
|
||||
lab4:
|
||||
z->c = z->l - m2;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5;
|
||||
z->c--;
|
||||
|
||||
if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab5;
|
||||
goto lab0;
|
||||
lab5:
|
||||
z->c = z->l - m2;
|
||||
if (!(eq_s_b(z, 2, s_1))) goto lab6;
|
||||
|
||||
if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) goto lab6;
|
||||
goto lab0;
|
||||
lab6:
|
||||
z->c = z->l - m2;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab7;
|
||||
z->c--;
|
||||
|
||||
if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab7;
|
||||
goto lab0;
|
||||
lab7:
|
||||
z->c = z->l - m2;
|
||||
if (!(eq_s_b(z, 2, s_2))) return 0;
|
||||
|
||||
if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) return 0;
|
||||
}
|
||||
lab0:
|
||||
|
|
@ -645,7 +655,7 @@ lab0:
|
|||
|
||||
static int r_mark_possessives(struct SN_env * z) {
|
||||
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((67133440 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_0, 10))) return 0;
|
||||
if (!find_among_b(z, a_0, 10)) return 0;
|
||||
{ int ret = r_mark_suffix_with_optional_U_vowel(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -665,7 +675,7 @@ static int r_mark_sU(struct SN_env * z) {
|
|||
|
||||
static int r_mark_lArI(struct SN_env * z) {
|
||||
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 177)) return 0;
|
||||
if (!(find_among_b(z, a_1, 2))) return 0;
|
||||
if (!find_among_b(z, a_1, 2)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -684,7 +694,7 @@ static int r_mark_nU(struct SN_env * z) {
|
|||
{ int ret = r_check_vowel_harmony(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (!(find_among_b(z, a_2, 4))) return 0;
|
||||
if (!find_among_b(z, a_2, 4)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -693,7 +703,7 @@ static int r_mark_nUn(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 110) return 0;
|
||||
if (!(find_among_b(z, a_3, 4))) return 0;
|
||||
if (!find_among_b(z, a_3, 4)) return 0;
|
||||
{ int ret = r_mark_suffix_with_optional_n_consonant(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -705,7 +715,7 @@ static int r_mark_yA(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
|
||||
if (!(find_among_b(z, a_4, 2))) return 0;
|
||||
if (!find_among_b(z, a_4, 2)) return 0;
|
||||
{ int ret = r_mark_suffix_with_optional_y_consonant(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -717,7 +727,7 @@ static int r_mark_nA(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
|
||||
if (!(find_among_b(z, a_5, 2))) return 0;
|
||||
if (!find_among_b(z, a_5, 2)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -726,7 +736,7 @@ static int r_mark_DA(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
|
||||
if (!(find_among_b(z, a_6, 4))) return 0;
|
||||
if (!find_among_b(z, a_6, 4)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -735,7 +745,7 @@ static int r_mark_ndA(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
|
||||
if (!(find_among_b(z, a_7, 2))) return 0;
|
||||
if (!find_among_b(z, a_7, 2)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -744,7 +754,7 @@ static int r_mark_DAn(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
|
||||
if (!(find_among_b(z, a_8, 4))) return 0;
|
||||
if (!find_among_b(z, a_8, 4)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -753,7 +763,7 @@ static int r_mark_ndAn(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 110) return 0;
|
||||
if (!(find_among_b(z, a_9, 2))) return 0;
|
||||
if (!find_among_b(z, a_9, 2)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -762,7 +772,7 @@ static int r_mark_ylA(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
|
||||
if (!(find_among_b(z, a_10, 2))) return 0;
|
||||
if (!find_among_b(z, a_10, 2)) return 0;
|
||||
{ int ret = r_mark_suffix_with_optional_y_consonant(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -779,7 +789,7 @@ static int r_mark_ncA(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
|
||||
if (!(find_among_b(z, a_11, 2))) return 0;
|
||||
if (!find_among_b(z, a_11, 2)) return 0;
|
||||
{ int ret = r_mark_suffix_with_optional_n_consonant(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -791,7 +801,7 @@ static int r_mark_yUm(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 109) return 0;
|
||||
if (!(find_among_b(z, a_12, 4))) return 0;
|
||||
if (!find_among_b(z, a_12, 4)) return 0;
|
||||
{ int ret = r_mark_suffix_with_optional_y_consonant(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -803,7 +813,7 @@ static int r_mark_sUn(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
|
||||
if (!(find_among_b(z, a_13, 4))) return 0;
|
||||
if (!find_among_b(z, a_13, 4)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -812,7 +822,7 @@ static int r_mark_yUz(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 122) return 0;
|
||||
if (!(find_among_b(z, a_14, 4))) return 0;
|
||||
if (!find_among_b(z, a_14, 4)) return 0;
|
||||
{ int ret = r_mark_suffix_with_optional_y_consonant(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -821,7 +831,7 @@ static int r_mark_yUz(struct SN_env * z) {
|
|||
|
||||
static int r_mark_sUnUz(struct SN_env * z) {
|
||||
if (z->c - 4 <= z->lb || z->p[z->c - 1] != 122) return 0;
|
||||
if (!(find_among_b(z, a_15, 4))) return 0;
|
||||
if (!find_among_b(z, a_15, 4)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -830,7 +840,7 @@ static int r_mark_lAr(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
|
||||
if (!(find_among_b(z, a_16, 2))) return 0;
|
||||
if (!find_among_b(z, a_16, 2)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -839,7 +849,7 @@ static int r_mark_nUz(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 122) return 0;
|
||||
if (!(find_among_b(z, a_17, 4))) return 0;
|
||||
if (!find_among_b(z, a_17, 4)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -848,13 +858,13 @@ static int r_mark_DUr(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
|
||||
if (!(find_among_b(z, a_18, 8))) return 0;
|
||||
if (!find_among_b(z, a_18, 8)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_mark_cAsInA(struct SN_env * z) {
|
||||
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
|
||||
if (!(find_among_b(z, a_19, 2))) return 0;
|
||||
if (!find_among_b(z, a_19, 2)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -862,7 +872,7 @@ static int r_mark_yDU(struct SN_env * z) {
|
|||
{ int ret = r_check_vowel_harmony(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (!(find_among_b(z, a_20, 32))) return 0;
|
||||
if (!find_among_b(z, a_20, 32)) return 0;
|
||||
{ int ret = r_mark_suffix_with_optional_y_consonant(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -871,7 +881,7 @@ static int r_mark_yDU(struct SN_env * z) {
|
|||
|
||||
static int r_mark_ysA(struct SN_env * z) {
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((26658 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
|
||||
if (!(find_among_b(z, a_21, 8))) return 0;
|
||||
if (!find_among_b(z, a_21, 8)) return 0;
|
||||
{ int ret = r_mark_suffix_with_optional_y_consonant(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -883,7 +893,7 @@ static int r_mark_ymUs_(struct SN_env * z) {
|
|||
if (ret <= 0) return ret;
|
||||
}
|
||||
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 159) return 0;
|
||||
if (!(find_among_b(z, a_22, 4))) return 0;
|
||||
if (!find_among_b(z, a_22, 4)) return 0;
|
||||
{ int ret = r_mark_suffix_with_optional_y_consonant(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
@ -1865,7 +1875,7 @@ static int r_post_process_last_consonants(struct SN_env * z) {
|
|||
int among_var;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_23, 4);
|
||||
if (!(among_var)) return 0;
|
||||
if (!among_var) return 0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1893,108 +1903,77 @@ static int r_post_process_last_consonants(struct SN_env * z) {
|
|||
}
|
||||
|
||||
static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) {
|
||||
{ int m_test1 = z->l - z->c;
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab1;
|
||||
z->c--;
|
||||
goto lab0;
|
||||
lab1:
|
||||
z->c = z->l - m2;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'g') return 0;
|
||||
z->c--;
|
||||
}
|
||||
lab0:
|
||||
z->c = z->l - m_test1;
|
||||
z->ket = z->c;
|
||||
z->bra = z->c;
|
||||
{ int m1 = z->l - z->c; (void)m1;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab1;
|
||||
z->c--;
|
||||
goto lab0;
|
||||
lab1:
|
||||
z->c = z->l - m1;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'g') return 0;
|
||||
z->c--;
|
||||
}
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
{ int m_test4 = z->l - z->c;
|
||||
if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab3;
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab5;
|
||||
z->c--;
|
||||
goto lab4;
|
||||
lab5:
|
||||
z->c = z->l - m5;
|
||||
if (!(eq_s_b(z, 2, s_9))) goto lab3;
|
||||
}
|
||||
lab4:
|
||||
z->c = z->l - m_test4;
|
||||
lab0:
|
||||
|
||||
if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
|
||||
{ int m2 = z->l - z->c; (void)m2;
|
||||
{ int m3 = z->l - z->c; (void)m3;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab5;
|
||||
z->c--;
|
||||
goto lab4;
|
||||
lab5:
|
||||
z->c = z->l - m3;
|
||||
if (!(eq_s_b(z, 2, s_9))) goto lab3;
|
||||
}
|
||||
{ int ret;
|
||||
{ int saved_c = z->c;
|
||||
ret = insert_s(z, z->c, z->c, 2, s_10);
|
||||
z->c = saved_c;
|
||||
}
|
||||
lab4:
|
||||
{ int ret = slice_from_s(z, 2, s_10);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab2;
|
||||
lab3:
|
||||
z->c = z->l - m3;
|
||||
{ int m_test6 = z->l - z->c;
|
||||
if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab6;
|
||||
{ int m7 = z->l - z->c; (void)m7;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8;
|
||||
z->c--;
|
||||
goto lab7;
|
||||
lab8:
|
||||
z->c = z->l - m7;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab6;
|
||||
z->c--;
|
||||
}
|
||||
lab7:
|
||||
z->c = z->l - m_test6;
|
||||
z->c = z->l - m2;
|
||||
{ int m4 = z->l - z->c; (void)m4;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8;
|
||||
z->c--;
|
||||
goto lab7;
|
||||
lab8:
|
||||
z->c = z->l - m4;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab6;
|
||||
z->c--;
|
||||
}
|
||||
{ int ret;
|
||||
{ int saved_c = z->c;
|
||||
ret = insert_s(z, z->c, z->c, 1, s_11);
|
||||
z->c = saved_c;
|
||||
}
|
||||
lab7:
|
||||
{ int ret = slice_from_s(z, 1, s_11);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab2;
|
||||
lab6:
|
||||
z->c = z->l - m3;
|
||||
{ int m_test8 = z->l - z->c;
|
||||
if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab9;
|
||||
{ int m9 = z->l - z->c; (void)m9;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab11;
|
||||
z->c--;
|
||||
goto lab10;
|
||||
lab11:
|
||||
z->c = z->l - m9;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab9;
|
||||
z->c--;
|
||||
}
|
||||
lab10:
|
||||
z->c = z->l - m_test8;
|
||||
z->c = z->l - m2;
|
||||
{ int m5 = z->l - z->c; (void)m5;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab11;
|
||||
z->c--;
|
||||
goto lab10;
|
||||
lab11:
|
||||
z->c = z->l - m5;
|
||||
if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab9;
|
||||
z->c--;
|
||||
}
|
||||
{ int ret;
|
||||
{ int saved_c = z->c;
|
||||
ret = insert_s(z, z->c, z->c, 1, s_12);
|
||||
z->c = saved_c;
|
||||
}
|
||||
lab10:
|
||||
{ int ret = slice_from_s(z, 1, s_12);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab2;
|
||||
lab9:
|
||||
z->c = z->l - m3;
|
||||
{ int m_test10 = z->l - z->c;
|
||||
if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
|
||||
{ int m11 = z->l - z->c; (void)m11;
|
||||
if (!(eq_s_b(z, 2, s_13))) goto lab13;
|
||||
goto lab12;
|
||||
lab13:
|
||||
z->c = z->l - m11;
|
||||
if (!(eq_s_b(z, 2, s_14))) return 0;
|
||||
}
|
||||
lab12:
|
||||
z->c = z->l - m_test10;
|
||||
z->c = z->l - m2;
|
||||
{ int m6 = z->l - z->c; (void)m6;
|
||||
if (!(eq_s_b(z, 2, s_13))) goto lab13;
|
||||
goto lab12;
|
||||
lab13:
|
||||
z->c = z->l - m6;
|
||||
if (!(eq_s_b(z, 2, s_14))) return 0;
|
||||
}
|
||||
{ int ret;
|
||||
{ int saved_c = z->c;
|
||||
ret = insert_s(z, z->c, z->c, 2, s_15);
|
||||
z->c = saved_c;
|
||||
}
|
||||
lab12:
|
||||
{ int ret = slice_from_s(z, 2, s_15);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -2013,23 +1992,43 @@ static int r_is_reserved_word(struct SN_env * z) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int r_remove_proper_noun_suffix(struct SN_env * z) {
|
||||
{ int c1 = z->c;
|
||||
while(1) {
|
||||
int c2 = z->c;
|
||||
if (z->c == z->l || z->p[z->c] != '\'') goto lab1;
|
||||
z->c++;
|
||||
z->c = c2;
|
||||
break;
|
||||
lab1:
|
||||
z->c = c2;
|
||||
{ int ret = skip_utf8(z->p, z->c, z->l, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
z->c = ret;
|
||||
}
|
||||
}
|
||||
z->bra = z->c;
|
||||
z->c = z->l;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_del(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
lab0:
|
||||
z->c = c1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_more_than_one_syllable_word(struct SN_env * z) {
|
||||
{ int c_test1 = z->c;
|
||||
{ int i = 2;
|
||||
while(1) {
|
||||
int c2 = z->c;
|
||||
{
|
||||
{ int i; for (i = 2; i > 0; i--)
|
||||
{
|
||||
{
|
||||
int ret = out_grouping_U(z, g_vowel, 97, 305, 1);
|
||||
if (ret < 0) goto lab0;
|
||||
if (ret < 0) return 0;
|
||||
z->c += ret;
|
||||
}
|
||||
i--;
|
||||
continue;
|
||||
lab0:
|
||||
z->c = c2;
|
||||
break;
|
||||
}
|
||||
if (i > 0) return 0;
|
||||
}
|
||||
z->c = c_test1;
|
||||
}
|
||||
|
|
@ -2065,6 +2064,10 @@ static int r_postlude(struct SN_env * z) {
|
|||
}
|
||||
|
||||
extern int turkish_UTF_8_stem(struct SN_env * z) {
|
||||
|
||||
{ int ret = r_remove_proper_noun_suffix(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
{ int ret = r_more_than_one_syllable_word(z);
|
||||
if (ret <= 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -508,7 +508,7 @@ static int r_prelude(struct SN_env * z) {
|
|||
int c3 = z->c;
|
||||
z->bra = z->c;
|
||||
among_var = find_among(z, a_0, 8);
|
||||
if (!(among_var)) goto lab2;
|
||||
if (!among_var) goto lab2;
|
||||
z->ket = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -628,7 +628,11 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
goto lab2;
|
||||
lab3:
|
||||
z->c = c3;
|
||||
if (!(eq_s(z, 4, s_13))) goto lab1;
|
||||
if (!(eq_s(z, 4, s_13))) goto lab4;
|
||||
goto lab2;
|
||||
lab4:
|
||||
z->c = c3;
|
||||
if (z->c < z->l) goto lab1;
|
||||
}
|
||||
lab2:
|
||||
{ z->c = c1; goto lab0; }
|
||||
|
|
@ -642,52 +646,52 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
;
|
||||
}
|
||||
{ int c4 = z->c;
|
||||
if (!(find_among(z, a_1, 40))) { z->c = c4; goto lab4; }
|
||||
if (!find_among(z, a_1, 40)) { z->c = c4; goto lab5; }
|
||||
{ int c5 = z->c;
|
||||
{ int c_test6 = z->c;
|
||||
{ int c7 = z->c;
|
||||
if (!(eq_s(z, 8, s_15))) goto lab8;
|
||||
goto lab7;
|
||||
lab8:
|
||||
z->c = c7;
|
||||
if (!(eq_s(z, 8, s_16))) goto lab9;
|
||||
goto lab7;
|
||||
if (!(eq_s(z, 8, s_15))) goto lab9;
|
||||
goto lab8;
|
||||
lab9:
|
||||
z->c = c7;
|
||||
if (!(eq_s(z, 8, s_17))) goto lab6;
|
||||
if (!(eq_s(z, 8, s_16))) goto lab10;
|
||||
goto lab8;
|
||||
lab10:
|
||||
z->c = c7;
|
||||
if (!(eq_s(z, 8, s_17))) goto lab7;
|
||||
}
|
||||
lab7:
|
||||
if (z->c < z->l) goto lab6;
|
||||
lab8:
|
||||
if (z->c < z->l) goto lab7;
|
||||
z->c = c_test6;
|
||||
}
|
||||
goto lab5;
|
||||
lab6:
|
||||
goto lab6;
|
||||
lab7:
|
||||
z->c = c5;
|
||||
{ int c_test8 = z->c;
|
||||
if (!(eq_s(z, 8, s_18))) goto lab10;
|
||||
if (!(eq_s(z, 8, s_18))) goto lab11;
|
||||
z->c = c_test8;
|
||||
}
|
||||
goto lab5;
|
||||
lab10:
|
||||
goto lab6;
|
||||
lab11:
|
||||
z->c = c5;
|
||||
z->bra = z->c;
|
||||
if (!(eq_s(z, 4, s_19))) goto lab11;
|
||||
if (!(eq_s(z, 4, s_19))) goto lab12;
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 2, s_20);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
goto lab5;
|
||||
lab11:
|
||||
goto lab6;
|
||||
lab12:
|
||||
z->c = c5;
|
||||
z->bra = z->c;
|
||||
if (!(eq_s(z, 4, s_21))) { z->c = c4; goto lab4; }
|
||||
if (!(eq_s(z, 4, s_21))) { z->c = c4; goto lab5; }
|
||||
z->ket = z->c;
|
||||
{ int ret = slice_from_s(z, 3, s_22);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
}
|
||||
lab6:
|
||||
lab5:
|
||||
lab4:
|
||||
;
|
||||
}
|
||||
{ int c_test9 = z->c;
|
||||
|
|
@ -699,43 +703,42 @@ static int r_mark_regions(struct SN_env * z) {
|
|||
z->c = c_test9;
|
||||
}
|
||||
{ int c10 = z->c;
|
||||
if (z->c + 5 >= z->l || (z->p[z->c + 5] != 169 && z->p[z->c + 5] != 168)) { z->c = c10; goto lab12; }
|
||||
if (!(find_among(z, a_2, 4))) { z->c = c10; goto lab12; }
|
||||
lab12:
|
||||
if (z->c + 5 >= z->l || (z->p[z->c + 5] != 169 && z->p[z->c + 5] != 168)) { z->c = c10; goto lab13; }
|
||||
if (!find_among(z, a_2, 4)) { z->c = c10; goto lab13; }
|
||||
lab13:
|
||||
;
|
||||
}
|
||||
{ int c11 = z->c;
|
||||
if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab13;
|
||||
if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab13;
|
||||
if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab13;
|
||||
if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab14;
|
||||
if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab14;
|
||||
if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab14;
|
||||
z->I[1] = z->c;
|
||||
return 0;
|
||||
lab13:
|
||||
lab14:
|
||||
z->c = c11;
|
||||
}
|
||||
|
||||
if (out_grouping_U(z, g_vowel, 1488, 1522, 1) < 0) return 0;
|
||||
while(1) {
|
||||
if (in_grouping_U(z, g_vowel, 1488, 1522, 0)) goto lab14;
|
||||
if (in_grouping_U(z, g_vowel, 1488, 1522, 0)) goto lab15;
|
||||
continue;
|
||||
lab14:
|
||||
lab15:
|
||||
break;
|
||||
}
|
||||
z->I[1] = z->c;
|
||||
|
||||
if (!(z->I[1] < z->I[0])) goto lab15;
|
||||
|
||||
if (z->I[1] >= z->I[0]) goto lab16;
|
||||
z->I[1] = z->I[0];
|
||||
lab15:
|
||||
lab16:
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int r_R1(struct SN_env * z) {
|
||||
if (!(z->I[1] <= z->c)) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= z->c;
|
||||
}
|
||||
|
||||
static int r_R1plus3(struct SN_env * z) {
|
||||
if (!(z->I[1] <= (z->c + 6))) return 0;
|
||||
return 1;
|
||||
return z->I[1] <= (z->c + 6);
|
||||
}
|
||||
|
||||
static int r_standard_suffix(struct SN_env * z) {
|
||||
|
|
@ -743,7 +746,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m1 = z->l - z->c; (void)m1;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_4, 79);
|
||||
if (!(among_var)) goto lab0;
|
||||
if (!among_var) goto lab0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -774,7 +777,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
}
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_3, 26);
|
||||
if (!(among_var)) goto lab0;
|
||||
if (!among_var) goto lab0;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1124,7 +1127,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
z->ket = z->c;
|
||||
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((285474816 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab9;
|
||||
among_var = find_among_b(z, a_5, 6);
|
||||
if (!(among_var)) goto lab9;
|
||||
if (!among_var) goto lab9;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1153,7 +1156,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
{ int m8 = z->l - z->c; (void)m8;
|
||||
z->ket = z->c;
|
||||
among_var = find_among_b(z, a_6, 9);
|
||||
if (!(among_var)) goto lab10;
|
||||
if (!among_var) goto lab10;
|
||||
z->bra = z->c;
|
||||
switch (among_var) {
|
||||
case 1:
|
||||
|
|
@ -1207,7 +1210,7 @@ static int r_standard_suffix(struct SN_env * z) {
|
|||
}
|
||||
|
||||
extern int yiddish_UTF_8_stem(struct SN_env * z) {
|
||||
|
||||
|
||||
{ int ret = r_prelude(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
@ -1219,7 +1222,7 @@ extern int yiddish_UTF_8_stem(struct SN_env * z) {
|
|||
}
|
||||
z->lb = z->c; z->c = z->l;
|
||||
|
||||
|
||||
|
||||
{ int ret = r_standard_suffix(z);
|
||||
if (ret < 0) return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -281,7 +281,7 @@ extern int find_among(struct SN_env * z, const struct among * v, int v_size) {
|
|||
w = v + i;
|
||||
if (common_i >= w->s_size) {
|
||||
z->c = c + w->s_size;
|
||||
if (w->function == 0) return w->result;
|
||||
if (w->function == NULL) return w->result;
|
||||
{
|
||||
int res = w->function(z);
|
||||
z->c = c + w->s_size;
|
||||
|
|
@ -336,7 +336,7 @@ extern int find_among_b(struct SN_env * z, const struct among * v, int v_size) {
|
|||
w = v + i;
|
||||
if (common_i >= w->s_size) {
|
||||
z->c = c - w->s_size;
|
||||
if (w->function == 0) return w->result;
|
||||
if (w->function == NULL) return w->result;
|
||||
{
|
||||
int res = w->function(z);
|
||||
z->c = c - w->s_size;
|
||||
|
|
@ -429,7 +429,7 @@ extern int slice_from_v(struct SN_env * z, const symbol * p) {
|
|||
}
|
||||
|
||||
extern int slice_del(struct SN_env * z) {
|
||||
return slice_from_s(z, 0, 0);
|
||||
return slice_from_s(z, 0, NULL);
|
||||
}
|
||||
|
||||
extern int insert_s(struct SN_env * z, int bra, int ket, int s_size, const symbol * s) {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ dict_snowball_sources += files(
|
|||
'libstemmer/stem_ISO_8859_1_spanish.c',
|
||||
'libstemmer/stem_ISO_8859_1_swedish.c',
|
||||
'libstemmer/stem_ISO_8859_2_hungarian.c',
|
||||
'libstemmer/stem_ISO_8859_2_romanian.c',
|
||||
'libstemmer/stem_KOI8_R_russian.c',
|
||||
'libstemmer/stem_UTF_8_arabic.c',
|
||||
'libstemmer/stem_UTF_8_armenian.c',
|
||||
|
|
@ -33,6 +32,7 @@ dict_snowball_sources += files(
|
|||
'libstemmer/stem_UTF_8_danish.c',
|
||||
'libstemmer/stem_UTF_8_dutch.c',
|
||||
'libstemmer/stem_UTF_8_english.c',
|
||||
'libstemmer/stem_UTF_8_estonian.c',
|
||||
'libstemmer/stem_UTF_8_finnish.c',
|
||||
'libstemmer/stem_UTF_8_french.c',
|
||||
'libstemmer/stem_UTF_8_german.c',
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ our @languages = qw(
|
|||
danish
|
||||
dutch
|
||||
english
|
||||
estonian
|
||||
finnish
|
||||
french
|
||||
german
|
||||
|
|
|
|||
|
|
@ -883,6 +883,8 @@ static const struct tsearch_config_match tsearch_config_languages[] =
|
|||
{"english", "POSIX"},
|
||||
{"english", "en"},
|
||||
{"english", "English"},
|
||||
{"estonian", "et"},
|
||||
{"estonian", "Estonian"},
|
||||
{"finnish", "fi"},
|
||||
{"finnish", "Finnish"},
|
||||
{"french", "fr"},
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ extern int eq_v_b(struct SN_env * z, const symbol * p);
|
|||
extern int find_among(struct SN_env * z, const struct among * v, int v_size);
|
||||
extern int find_among_b(struct SN_env * z, const struct among * v, int v_size);
|
||||
|
||||
extern int replace_s(struct SN_env * z, int c_bra, int c_ket, int s_size, const symbol * s, int * adjptr);
|
||||
extern int replace_s(struct SN_env * z, int c_bra, int c_ket, int s_size, const symbol * s, int * adjustment);
|
||||
extern int slice_from_s(struct SN_env * z, int s_size, const symbol * s);
|
||||
extern int slice_from_v(struct SN_env * z, const symbol * p);
|
||||
extern int slice_del(struct SN_env * z);
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern struct SN_env * romanian_ISO_8859_2_create_env(void);
|
||||
extern void romanian_ISO_8859_2_close_env(struct SN_env * z);
|
||||
|
||||
extern int romanian_ISO_8859_2_stem(struct SN_env * z);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
15
src/include/snowball/libstemmer/stem_UTF_8_estonian.h
Normal file
15
src/include/snowball/libstemmer/stem_UTF_8_estonian.h
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern struct SN_env * estonian_UTF_8_create_env(void);
|
||||
extern void estonian_UTF_8_close_env(struct SN_env * z);
|
||||
|
||||
extern int estonian_UTF_8_stem(struct SN_env * z);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
Loading…
Reference in a new issue