1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-29 13:56:47 +03:00

Sync our Snowball stemmer dictionaries with current upstream.

We haven't touched these since text search functionality landed in core
in 2007 :-(.  While the upstream project isn't a beehive of activity,
they do make additions and bug fixes from time to time.  Update our
copies of these files.

Also update our documentation about how to keep things in sync, since
they're not making distribution tarballs these days.  Fortunately,
their source code turns out to be a breeze to build.

Notable changes:

* The non-UTF8 version of the hungarian stemmer now works in LATIN2
not LATIN1.

* New stemmers have appeared for arabic, indonesian, irish, lithuanian,
nepali, and tamil.  These all work in UTF8, and the indonesian and
irish ones also work in LATIN1.

(There are some new stemmers that I did not incorporate, mainly because
their names don't match the underlying languages, suggesting that they're
not to be considered mainstream.)

Worth noting: the upstream Nepali dictionary was contributed by
Arthur Zakirov.

initdb forced because the contents of snowball_create.sql have
changed.

Still TODO: see about updating the stopword lists.

Arthur Zakirov, minor mods and doc work by me

Discussion: https://postgr.es/m/20180626122025.GA12647@zakirov.localdomain
Discussion: https://postgr.es/m/20180219140849.GA9050@zakirov.localdomain
This commit is contained in:
Tom Lane 2018-09-24 17:29:08 -04:00
parent b076eb7669
commit fd582317e1
88 changed files with 13198 additions and 7408 deletions

View File

@ -3792,9 +3792,10 @@ Parser: "pg_catalog.default"
List text search dictionaries (add <literal>+</literal> for more detail).
<screen>
=&gt; \dFd
List of text search dictionaries
Schema | Name | Description
List of text search dictionaries
Schema | Name | Description
------------+-----------------+-----------------------------------------------------------
pg_catalog | arabic_stem | snowball stemmer for arabic language
pg_catalog | danish_stem | snowball stemmer for danish language
pg_catalog | dutch_stem | snowball stemmer for dutch language
pg_catalog | english_stem | snowball stemmer for english language
@ -3802,7 +3803,11 @@ Parser: "pg_catalog.default"
pg_catalog | french_stem | snowball stemmer for french language
pg_catalog | german_stem | snowball stemmer for german language
pg_catalog | hungarian_stem | snowball stemmer for hungarian language
pg_catalog | indonesian_stem | snowball stemmer for indonesian language
pg_catalog | irish_stem | snowball stemmer for irish language
pg_catalog | italian_stem | snowball stemmer for italian language
pg_catalog | lithuanian_stem | snowball stemmer for lithuanian language
pg_catalog | nepali_stem | snowball stemmer for nepali language
pg_catalog | norwegian_stem | snowball stemmer for norwegian language
pg_catalog | portuguese_stem | snowball stemmer for portuguese language
pg_catalog | romanian_stem | snowball stemmer for romanian language
@ -3810,6 +3815,7 @@ Parser: "pg_catalog.default"
pg_catalog | simple | simple dictionary: just lower case and check for stopword
pg_catalog | spanish_stem | snowball stemmer for spanish language
pg_catalog | swedish_stem | snowball stemmer for swedish language
pg_catalog | tamil_stem | snowball stemmer for tamil language
pg_catalog | turkish_stem | snowball stemmer for turkish language
</screen>
</para>

View File

@ -23,15 +23,18 @@ OBJS= $(WIN32RES) dict_snowball.o api.o utilities.o \
stem_ISO_8859_1_finnish.o \
stem_ISO_8859_1_french.o \
stem_ISO_8859_1_german.o \
stem_ISO_8859_1_hungarian.o \
stem_ISO_8859_1_indonesian.o \
stem_ISO_8859_1_irish.o \
stem_ISO_8859_1_italian.o \
stem_ISO_8859_1_norwegian.o \
stem_ISO_8859_1_porter.o \
stem_ISO_8859_1_portuguese.o \
stem_ISO_8859_1_spanish.o \
stem_ISO_8859_1_swedish.o \
stem_ISO_8859_2_hungarian.o \
stem_ISO_8859_2_romanian.o \
stem_KOI8_R_russian.o \
stem_UTF_8_arabic.o \
stem_UTF_8_danish.o \
stem_UTF_8_dutch.o \
stem_UTF_8_english.o \
@ -39,7 +42,11 @@ OBJS= $(WIN32RES) dict_snowball.o api.o utilities.o \
stem_UTF_8_french.o \
stem_UTF_8_german.o \
stem_UTF_8_hungarian.o \
stem_UTF_8_indonesian.o \
stem_UTF_8_irish.o \
stem_UTF_8_italian.o \
stem_UTF_8_lithuanian.o \
stem_UTF_8_nepali.o \
stem_UTF_8_norwegian.o \
stem_UTF_8_porter.o \
stem_UTF_8_portuguese.o \
@ -47,6 +54,7 @@ OBJS= $(WIN32RES) dict_snowball.o api.o utilities.o \
stem_UTF_8_russian.o \
stem_UTF_8_spanish.o \
stem_UTF_8_swedish.o \
stem_UTF_8_tamil.o \
stem_UTF_8_turkish.o
# first column is language name and also name of dictionary for not-all-ASCII
@ -54,6 +62,7 @@ OBJS= $(WIN32RES) dict_snowball.o api.o utilities.o \
# Note order dependency: use of some other language as ASCII dictionary
# must come after creation of that language
LANGUAGES= \
arabic arabic \
danish danish \
dutch dutch \
english english \
@ -61,13 +70,18 @@ LANGUAGES= \
french french \
german german \
hungarian hungarian \
indonesian indonesian \
irish irish \
italian italian \
lithuanian lithuanian \
nepali nepali \
norwegian norwegian \
portuguese portuguese \
romanian romanian \
russian english \
spanish spanish \
swedish swedish \
tamil tamil \
turkish turkish

View File

@ -4,46 +4,61 @@ Snowball-Based Stemming
=======================
This module uses the word stemming code developed by the Snowball project,
http://snowball.tartarus.org/
http://snowballstem.org (formerly http://snowball.tartarus.org)
which is released by them under a BSD-style license.
The files under src/backend/snowball/libstemmer/ and
src/include/snowball/libstemmer/ are taken directly from their libstemmer_c
distribution, with only some minor adjustments of file inclusions. Note
The Snowball project is not currently making formal releases; it's best
to pull from their git repository
git clone https://github.com/snowballstem/snowball.git
and then building the derived files is as simple as
cd snowball
make
At least on Linux, no platform-specific adjustment is needed.
Postgres' files under src/backend/snowball/libstemmer/ and
src/include/snowball/libstemmer/ are taken directly from the Snowball
files, with only some minor adjustments of file inclusions. Note
that most of these files are in fact derived files, not master source.
The master sources are in the Snowball language, and are available along
with the Snowball-to-C compiler from the Snowball project. We choose to
include the derived files in the PostgreSQL distribution because most
installations will not have the Snowball compiler available.
The master sources are in the Snowball language, and are built using
the Snowball-to-C compiler that is also part of the Snowball project.
We choose to include the derived files in the PostgreSQL distribution
because most installations will not have the Snowball compiler available.
To update the PostgreSQL sources from a new Snowball libstemmer_c
distribution:
We are currently synced with the Snowball git commit
1964ce688cbeca505263c8f77e16ed923296ce7a
of 2018-06-29.
1. Copy the *.c files in libstemmer_c/src_c/ to src/backend/snowball/libstemmer
To update the PostgreSQL sources from a new Snowball version:
0. If you didn't do it already, "make -C snowball".
1. Copy the *.c files in snowball/src_c/ to src/backend/snowball/libstemmer
with replacement of "../runtime/header.h" by "header.h", for example
for f in libstemmer_c/src_c/*.c
for f in .../snowball/src_c/*.c
do
sed 's|\.\./runtime/header\.h|header.h|' $f >libstemmer/`basename $f`
done
(Alternatively, if you rebuild the stemmer files from the master Snowball
sources, just omit "-r ../runtime" from the Snowball compiler switches.)
2. Copy the *.c files in libstemmer_c/runtime/ to
2. Copy the *.c files in snowball/runtime/ to
src/backend/snowball/libstemmer, and edit them to remove direct inclusions
of system headers such as <stdio.h> --- they should only include "header.h".
(This removal avoids portability problems on some platforms where <stdio.h>
is sensitive to largefile compilation options.)
3. Copy the *.h files in libstemmer_c/src_c/ and libstemmer_c/runtime/
3. Copy the *.h files in snowball/src_c/ and snowball/runtime/
to src/include/snowball/libstemmer. At this writing the header files
do not require any changes.
4. Check whether any stemmer modules have been added or removed. If so, edit
the OBJS list in Makefile, the list of #include's in dict_snowball.c, and the
stemmer_modules[] table in dict_snowball.c.
stemmer_modules[] table in dict_snowball.c. You might also need to change
the LANGUAGES list in Makefile.
5. The various stopword files in stopwords/ must be downloaded
individually from pages on the snowball.tartarus.org website.
individually from pages on the snowballstem.org website.
Be careful that these files must be stored in UTF-8 encoding.

View File

@ -32,15 +32,18 @@
#include "snowball/libstemmer/stem_ISO_8859_1_finnish.h"
#include "snowball/libstemmer/stem_ISO_8859_1_french.h"
#include "snowball/libstemmer/stem_ISO_8859_1_german.h"
#include "snowball/libstemmer/stem_ISO_8859_1_hungarian.h"
#include "snowball/libstemmer/stem_ISO_8859_1_indonesian.h"
#include "snowball/libstemmer/stem_ISO_8859_1_irish.h"
#include "snowball/libstemmer/stem_ISO_8859_1_italian.h"
#include "snowball/libstemmer/stem_ISO_8859_1_norwegian.h"
#include "snowball/libstemmer/stem_ISO_8859_1_porter.h"
#include "snowball/libstemmer/stem_ISO_8859_1_portuguese.h"
#include "snowball/libstemmer/stem_ISO_8859_1_spanish.h"
#include "snowball/libstemmer/stem_ISO_8859_1_swedish.h"
#include "snowball/libstemmer/stem_ISO_8859_2_hungarian.h"
#include "snowball/libstemmer/stem_ISO_8859_2_romanian.h"
#include "snowball/libstemmer/stem_KOI8_R_russian.h"
#include "snowball/libstemmer/stem_UTF_8_arabic.h"
#include "snowball/libstemmer/stem_UTF_8_danish.h"
#include "snowball/libstemmer/stem_UTF_8_dutch.h"
#include "snowball/libstemmer/stem_UTF_8_english.h"
@ -48,7 +51,11 @@
#include "snowball/libstemmer/stem_UTF_8_french.h"
#include "snowball/libstemmer/stem_UTF_8_german.h"
#include "snowball/libstemmer/stem_UTF_8_hungarian.h"
#include "snowball/libstemmer/stem_UTF_8_indonesian.h"
#include "snowball/libstemmer/stem_UTF_8_irish.h"
#include "snowball/libstemmer/stem_UTF_8_italian.h"
#include "snowball/libstemmer/stem_UTF_8_lithuanian.h"
#include "snowball/libstemmer/stem_UTF_8_nepali.h"
#include "snowball/libstemmer/stem_UTF_8_norwegian.h"
#include "snowball/libstemmer/stem_UTF_8_porter.h"
#include "snowball/libstemmer/stem_UTF_8_portuguese.h"
@ -56,6 +63,7 @@
#include "snowball/libstemmer/stem_UTF_8_russian.h"
#include "snowball/libstemmer/stem_UTF_8_spanish.h"
#include "snowball/libstemmer/stem_UTF_8_swedish.h"
#include "snowball/libstemmer/stem_UTF_8_tamil.h"
#include "snowball/libstemmer/stem_UTF_8_turkish.h"
PG_MODULE_MAGIC;
@ -74,48 +82,60 @@ typedef struct stemmer_module
int (*stem) (struct SN_env *);
} stemmer_module;
/* Args: stemmer name, PG code for encoding, Snowball's name for encoding */
#define STEMMER_MODULE(name,enc,senc) \
{#name, enc, name##_##senc##_create_env, name##_##senc##_close_env, name##_##senc##_stem}
static const stemmer_module stemmer_modules[] =
{
/*
* Stemmers list from Snowball distribution
*/
{"danish", PG_LATIN1, danish_ISO_8859_1_create_env, danish_ISO_8859_1_close_env, danish_ISO_8859_1_stem},
{"dutch", PG_LATIN1, dutch_ISO_8859_1_create_env, dutch_ISO_8859_1_close_env, dutch_ISO_8859_1_stem},
{"english", PG_LATIN1, english_ISO_8859_1_create_env, english_ISO_8859_1_close_env, english_ISO_8859_1_stem},
{"finnish", PG_LATIN1, finnish_ISO_8859_1_create_env, finnish_ISO_8859_1_close_env, finnish_ISO_8859_1_stem},
{"french", PG_LATIN1, french_ISO_8859_1_create_env, french_ISO_8859_1_close_env, french_ISO_8859_1_stem},
{"german", PG_LATIN1, german_ISO_8859_1_create_env, german_ISO_8859_1_close_env, german_ISO_8859_1_stem},
{"hungarian", PG_LATIN1, hungarian_ISO_8859_1_create_env, hungarian_ISO_8859_1_close_env, hungarian_ISO_8859_1_stem},
{"italian", PG_LATIN1, italian_ISO_8859_1_create_env, italian_ISO_8859_1_close_env, italian_ISO_8859_1_stem},
{"norwegian", PG_LATIN1, norwegian_ISO_8859_1_create_env, norwegian_ISO_8859_1_close_env, norwegian_ISO_8859_1_stem},
{"porter", PG_LATIN1, porter_ISO_8859_1_create_env, porter_ISO_8859_1_close_env, porter_ISO_8859_1_stem},
{"portuguese", PG_LATIN1, portuguese_ISO_8859_1_create_env, portuguese_ISO_8859_1_close_env, portuguese_ISO_8859_1_stem},
{"spanish", PG_LATIN1, spanish_ISO_8859_1_create_env, spanish_ISO_8859_1_close_env, spanish_ISO_8859_1_stem},
{"swedish", PG_LATIN1, swedish_ISO_8859_1_create_env, swedish_ISO_8859_1_close_env, swedish_ISO_8859_1_stem},
{"romanian", PG_LATIN2, romanian_ISO_8859_2_create_env, romanian_ISO_8859_2_close_env, romanian_ISO_8859_2_stem},
{"russian", PG_KOI8R, russian_KOI8_R_create_env, russian_KOI8_R_close_env, russian_KOI8_R_stem},
{"danish", PG_UTF8, danish_UTF_8_create_env, danish_UTF_8_close_env, danish_UTF_8_stem},
{"dutch", PG_UTF8, dutch_UTF_8_create_env, dutch_UTF_8_close_env, dutch_UTF_8_stem},
{"english", PG_UTF8, english_UTF_8_create_env, english_UTF_8_close_env, english_UTF_8_stem},
{"finnish", PG_UTF8, finnish_UTF_8_create_env, finnish_UTF_8_close_env, finnish_UTF_8_stem},
{"french", PG_UTF8, french_UTF_8_create_env, french_UTF_8_close_env, french_UTF_8_stem},
{"german", PG_UTF8, german_UTF_8_create_env, german_UTF_8_close_env, german_UTF_8_stem},
{"hungarian", PG_UTF8, hungarian_UTF_8_create_env, hungarian_UTF_8_close_env, hungarian_UTF_8_stem},
{"italian", PG_UTF8, italian_UTF_8_create_env, italian_UTF_8_close_env, italian_UTF_8_stem},
{"norwegian", PG_UTF8, norwegian_UTF_8_create_env, norwegian_UTF_8_close_env, norwegian_UTF_8_stem},
{"porter", PG_UTF8, porter_UTF_8_create_env, porter_UTF_8_close_env, porter_UTF_8_stem},
{"portuguese", PG_UTF8, portuguese_UTF_8_create_env, portuguese_UTF_8_close_env, portuguese_UTF_8_stem},
{"romanian", PG_UTF8, romanian_UTF_8_create_env, romanian_UTF_8_close_env, romanian_UTF_8_stem},
{"russian", PG_UTF8, russian_UTF_8_create_env, russian_UTF_8_close_env, russian_UTF_8_stem},
{"spanish", PG_UTF8, spanish_UTF_8_create_env, spanish_UTF_8_close_env, spanish_UTF_8_stem},
{"swedish", PG_UTF8, swedish_UTF_8_create_env, swedish_UTF_8_close_env, swedish_UTF_8_stem},
{"turkish", PG_UTF8, turkish_UTF_8_create_env, turkish_UTF_8_close_env, turkish_UTF_8_stem},
STEMMER_MODULE(danish, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(dutch, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(english, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(finnish, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(french, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(german, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(indonesian, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(irish, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(italian, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(norwegian, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(porter, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(portuguese, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(spanish, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(swedish, PG_LATIN1, ISO_8859_1),
STEMMER_MODULE(hungarian, PG_LATIN2, ISO_8859_2),
STEMMER_MODULE(romanian, PG_LATIN2, ISO_8859_2),
STEMMER_MODULE(russian, PG_KOI8R, KOI8_R),
STEMMER_MODULE(arabic, PG_UTF8, UTF_8),
STEMMER_MODULE(danish, PG_UTF8, UTF_8),
STEMMER_MODULE(dutch, PG_UTF8, UTF_8),
STEMMER_MODULE(english, PG_UTF8, UTF_8),
STEMMER_MODULE(finnish, PG_UTF8, UTF_8),
STEMMER_MODULE(french, PG_UTF8, UTF_8),
STEMMER_MODULE(german, PG_UTF8, UTF_8),
STEMMER_MODULE(hungarian, PG_UTF8, UTF_8),
STEMMER_MODULE(indonesian, PG_UTF8, UTF_8),
STEMMER_MODULE(irish, PG_UTF8, UTF_8),
STEMMER_MODULE(italian, PG_UTF8, UTF_8),
STEMMER_MODULE(lithuanian, PG_UTF8, UTF_8),
STEMMER_MODULE(nepali, PG_UTF8, UTF_8),
STEMMER_MODULE(norwegian, PG_UTF8, UTF_8),
STEMMER_MODULE(porter, PG_UTF8, UTF_8),
STEMMER_MODULE(portuguese, PG_UTF8, UTF_8),
STEMMER_MODULE(romanian, PG_UTF8, UTF_8),
STEMMER_MODULE(russian, PG_UTF8, UTF_8),
STEMMER_MODULE(spanish, PG_UTF8, UTF_8),
STEMMER_MODULE(swedish, PG_UTF8, UTF_8),
STEMMER_MODULE(tamil, PG_UTF8, UTF_8),
STEMMER_MODULE(turkish, PG_UTF8, UTF_8),
/*
* Stemmer with PG_SQL_ASCII encoding should be valid for any server
* encoding
*/
{"english", PG_SQL_ASCII, english_ISO_8859_1_create_env, english_ISO_8859_1_close_env, english_ISO_8859_1_stem},
STEMMER_MODULE(english, PG_SQL_ASCII, ISO_8859_1),
{NULL, 0, NULL, NULL, NULL} /* list end marker */
};

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -132,15 +132,15 @@ static const symbol s_0[] = { 's', 't' };
static const symbol s_1[] = { 'i', 'g' };
static const symbol s_2[] = { 'l', 0xF8, 's' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
{ int c_test = z->c; /* test, line 33 */
{ int ret = z->c + 3;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 31 */
{ int c_test1 = z->c; /* test, line 33 */
{ int ret = z->c + 3; /* hop, line 33 */
if (0 > ret || ret > z->l) return 0;
z->c = ret; /* hop, line 33 */
z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 33 */
z->c = c_test;
z->c = c_test1;
}
if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 34 */
{ /* gopast */ /* non v, line 34 */
@ -149,37 +149,34 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 34 */
/* try, line 35 */
if (!(z->I[0] < z->I[1])) goto lab0;
z->I[0] = z->I[1];
/* try, line 35 */
if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 35 */
z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 35 */
lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) {
static int r_main_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 41 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 41 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 41 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 41 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_0, 32); /* substring, line 41 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 41 */
among_var = find_among_b(z, a_0, 32);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 41 */
z->lb = mlimit;
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 42 */
case 1:
{ int ret = slice_del(z); /* delete, line 48 */
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0;
if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 50 */
{ int ret = slice_del(z); /* delete, line 50 */
if (ret < 0) return ret;
}
@ -188,21 +185,19 @@ static int r_main_suffix(struct SN_env * z) {
return 1;
}
static int r_consonant_pair(struct SN_env * z) {
{ int m_test = z->l - z->c; /* test, line 55 */
{ int mlimit; /* setlimit, line 56 */
int m1 = z->l - z->c; (void)m1;
static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 55 */
{ int mlimit2; /* setlimit, line 56 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 56 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit; return 0; } /* substring, line 56 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 56 */
if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 56 */
z->lb = mlimit;
z->lb = mlimit2;
}
z->c = z->l - m_test;
z->c = z->l - m_test1;
}
if (z->c <= z->lb) return 0;
z->c--; /* next, line 62 */
@ -213,41 +208,38 @@ static int r_consonant_pair(struct SN_env * z) {
return 1;
}
static int r_other_suffix(struct SN_env * z) {
static int r_other_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 66 */
z->ket = z->c; /* [, line 66 */
if (!(eq_s_b(z, 2, s_0))) goto lab0;
if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 66 */
z->bra = z->c; /* ], line 66 */
if (!(eq_s_b(z, 2, s_1))) goto lab0;
if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 66 */
{ int ret = slice_del(z); /* delete, line 66 */
if (ret < 0) return ret;
}
lab0:
z->c = z->l - m1;
}
{ int mlimit; /* setlimit, line 67 */
int m2 = z->l - z->c; (void)m2;
{ int mlimit2; /* setlimit, line 67 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 67 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m2;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 67 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_2, 5); /* substring, line 67 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } /* substring, line 67 */
among_var = find_among_b(z, a_2, 5);
if (!(among_var)) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 67 */
z->lb = mlimit;
z->lb = mlimit2;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 68 */
case 1:
{ int ret = slice_del(z); /* delete, line 70 */
if (ret < 0) return ret;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 70 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab1; /* call consonant_pair, line 70 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 70 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
@ -263,19 +255,17 @@ static int r_other_suffix(struct SN_env * z) {
return 1;
}
static int r_undouble(struct SN_env * z) {
{ int mlimit; /* setlimit, line 76 */
int m1 = z->l - z->c; (void)m1;
static int r_undouble(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 76 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 76 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 76 */
if (out_grouping_b(z, g_v, 97, 248, 0)) { z->lb = mlimit; return 0; }
if (out_grouping_b(z, g_v, 97, 248, 0)) { z->lb = mlimit1; return 0; } /* non v, line 76 */
z->bra = z->c; /* ], line 76 */
z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 76 */
if (z->S[0] == 0) return -1; /* -> ch, line 76 */
z->lb = mlimit;
z->lb = mlimit1;
}
if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 77 */
{ int ret = slice_del(z); /* delete, line 78 */
@ -284,10 +274,10 @@ static int r_undouble(struct SN_env * z) {
return 1;
}
extern int danish_ISO_8859_1_stem(struct SN_env * z) {
extern int danish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 84 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 84 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 84 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
@ -296,32 +286,32 @@ extern int danish_ISO_8859_1_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 85 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 86 */
{ int ret = r_main_suffix(z);
if (ret == 0) goto lab1; /* call main_suffix, line 86 */
{ int ret = r_main_suffix(z); /* call main_suffix, line 86 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 87 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab2; /* call consonant_pair, line 87 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 87 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 88 */
{ int ret = r_other_suffix(z);
if (ret == 0) goto lab3; /* call other_suffix, line 88 */
{ int ret = r_other_suffix(z); /* call other_suffix, line 88 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 89 */
{ int ret = r_undouble(z);
if (ret == 0) goto lab4; /* call undouble, line 89 */
{ int ret = r_undouble(z); /* call undouble, line 89 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
lab4:

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -134,36 +134,28 @@ static const symbol s_1[] = { 'e' };
static const symbol s_2[] = { 'i' };
static const symbol s_3[] = { 'o' };
static const symbol s_4[] = { 'u' };
static const symbol s_5[] = { 'y' };
static const symbol s_6[] = { 'Y' };
static const symbol s_7[] = { 'i' };
static const symbol s_8[] = { 'I' };
static const symbol s_9[] = { 'y' };
static const symbol s_10[] = { 'Y' };
static const symbol s_11[] = { 'y' };
static const symbol s_12[] = { 'i' };
static const symbol s_13[] = { 'e' };
static const symbol s_14[] = { 'g', 'e', 'm' };
static const symbol s_15[] = { 'h', 'e', 'i', 'd' };
static const symbol s_16[] = { 'h', 'e', 'i', 'd' };
static const symbol s_17[] = { 'c' };
static const symbol s_18[] = { 'e', 'n' };
static const symbol s_19[] = { 'i', 'g' };
static const symbol s_20[] = { 'e' };
static const symbol s_21[] = { 'e' };
static const symbol s_5[] = { 'Y' };
static const symbol s_6[] = { 'I' };
static const symbol s_7[] = { 'Y' };
static const symbol s_8[] = { 'y' };
static const symbol s_9[] = { 'i' };
static const symbol s_10[] = { 'g', 'e', 'm' };
static const symbol s_11[] = { 'h', 'e', 'i', 'd' };
static const symbol s_12[] = { 'h', 'e', 'i', 'd' };
static const symbol s_13[] = { 'e', 'n' };
static const symbol s_14[] = { 'i', 'g' };
static int r_prelude(struct SN_env * z) {
static int r_prelude(struct SN_env * z) { /* forwardmode */
int among_var;
{ int c_test = z->c; /* test, line 42 */
{ int c_test1 = z->c; /* test, line 42 */
while(1) { /* repeat, line 42 */
int c1 = z->c;
int c2 = z->c;
z->bra = z->c; /* [, line 43 */
if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else
among_var = find_among(z, a_0, 11); /* substring, line 43 */
if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else /* substring, line 43 */
among_var = find_among(z, a_0, 11);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 43 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 43 */
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
if (ret < 0) return ret;
@ -196,62 +188,65 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab0:
z->c = c1;
z->c = c2;
break;
}
z->c = c_test;
z->c = c_test1;
}
{ int c_keep = z->c; /* try, line 57 */
{ int c3 = z->c; /* try, line 57 */
z->bra = z->c; /* [, line 57 */
if (!(eq_s(z, 1, s_5))) { z->c = c_keep; goto lab1; }
if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } /* literal, line 57 */
z->c++;
z->ket = z->c; /* ], line 57 */
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 57 */
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 57 */
if (ret < 0) return ret;
}
lab1:
;
}
while(1) { /* repeat, line 58 */
int c2 = z->c;
int c4 = z->c;
while(1) { /* goto, line 58 */
int c3 = z->c;
if (in_grouping(z, g_v, 97, 232, 0)) goto lab3;
int c5 = z->c;
if (in_grouping(z, g_v, 97, 232, 0)) goto lab3; /* grouping v, line 59 */
z->bra = z->c; /* [, line 59 */
{ int c4 = z->c; /* or, line 59 */
if (!(eq_s(z, 1, s_7))) goto lab5;
{ int c6 = z->c; /* or, line 59 */
if (z->c == z->l || z->p[z->c] != 'i') goto lab5; /* literal, line 59 */
z->c++;
z->ket = z->c; /* ], line 59 */
if (in_grouping(z, g_v, 97, 232, 0)) goto lab5;
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 59 */
if (in_grouping(z, g_v, 97, 232, 0)) goto lab5; /* grouping v, line 59 */
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 59 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
z->c = c4;
if (!(eq_s(z, 1, s_9))) goto lab3;
z->c = c6;
if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 60 */
z->c++;
z->ket = z->c; /* ], line 60 */
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 60 */
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 60 */
if (ret < 0) return ret;
}
}
lab4:
z->c = c3;
z->c = c5;
break;
lab3:
z->c = c3;
z->c = c5;
if (z->c >= z->l) goto lab2;
z->c++; /* goto, line 58 */
}
continue;
lab2:
z->c = c2;
z->c = c4;
break;
}
return 1;
}
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 66 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 67 */
{ /* gopast */ /* grouping v, line 69 */
int ret = out_grouping(z, g_v, 97, 232, 1);
if (ret < 0) return 0;
@ -263,9 +258,9 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 69 */
/* try, line 70 */
if (!(z->I[0] < 3)) goto lab0;
z->I[0] = 3;
/* try, line 70 */
if (!(z->I[0] < 3)) goto lab0; /* $(<integer expression> < <integer expression>), line 70 */
z->I[0] = 3; /* $p1 = <integer expression>, line 70 */
lab0:
{ /* gopast */ /* grouping v, line 71 */
int ret = out_grouping(z, g_v, 97, 232, 1);
@ -281,24 +276,23 @@ lab0:
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 75 */
int c1 = z->c;
z->bra = z->c; /* [, line 77 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
among_var = find_among(z, a_1, 3); /* substring, line 77 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else /* substring, line 77 */
among_var = find_among(z, a_1, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 77 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 77 */
case 1:
{ int ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 78 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
@ -315,21 +309,21 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 87 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 88 */
return 1;
}
static int r_undouble(struct SN_env * z) {
{ int m_test = z->l - z->c; /* test, line 91 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_2, 3))) return 0; /* among, line 91 */
z->c = z->l - m_test;
static int r_undouble(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 91 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 91 */
if (!(find_among_b(z, a_2, 3))) return 0;
z->c = z->l - m_test1;
}
z->ket = z->c; /* [, line 91 */
if (z->c <= z->lb) return 0;
@ -341,40 +335,38 @@ static int r_undouble(struct SN_env * z) {
return 1;
}
static int r_e_ending(struct SN_env * z) {
static int r_e_ending(struct SN_env * z) { /* backwardmode */
z->B[0] = 0; /* unset e_found, line 95 */
z->ket = z->c; /* [, line 96 */
if (!(eq_s_b(z, 1, s_13))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 96 */
z->c--;
z->bra = z->c; /* ], line 96 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 96 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 96 */
if (ret <= 0) return ret;
}
{ int m_test = z->l - z->c; /* test, line 96 */
if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
z->c = z->l - m_test;
{ int m_test1 = z->l - z->c; /* test, line 96 */
if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; /* non v, line 96 */
z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set e_found, line 97 */
{ int ret = r_undouble(z);
if (ret == 0) return 0; /* call undouble, line 98 */
if (ret < 0) return ret;
{ int ret = r_undouble(z); /* call undouble, line 98 */
if (ret <= 0) return ret;
}
return 1;
}
static int r_en_ending(struct SN_env * z) {
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 102 */
if (ret < 0) return ret;
static int r_en_ending(struct SN_env * z) { /* backwardmode */
{ int ret = r_R1(z); /* call R1, line 102 */
if (ret <= 0) return ret;
}
{ int m1 = z->l - z->c; (void)m1; /* and, line 102 */
if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; /* non v, line 102 */
z->c = z->l - m1;
{ int m2 = z->l - z->c; (void)m2; /* not, line 102 */
if (!(eq_s_b(z, 3, s_14))) goto lab0;
if (!(eq_s_b(z, 3, s_10))) goto lab0; /* literal, line 102 */
return 0;
lab0:
z->c = z->l - m2;
@ -383,44 +375,42 @@ static int r_en_ending(struct SN_env * z) {
{ int ret = slice_del(z); /* delete, line 102 */
if (ret < 0) return ret;
}
{ int ret = r_undouble(z);
if (ret == 0) return 0; /* call undouble, line 103 */
if (ret < 0) return ret;
{ int ret = r_undouble(z); /* call undouble, line 103 */
if (ret <= 0) return ret;
}
return 1;
}
static int r_standard_suffix(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 107 */
z->ket = z->c; /* [, line 108 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
among_var = find_among_b(z, a_3, 5); /* substring, line 108 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 108 */
among_var = find_among_b(z, a_3, 5);
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 108 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 108 */
case 1:
{ int ret = r_R1(z);
if (ret == 0) goto lab0; /* call R1, line 110 */
{ int ret = r_R1(z); /* call R1, line 110 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
{ int ret = slice_from_s(z, 4, s_15); /* <-, line 110 */
{ int ret = slice_from_s(z, 4, s_11); /* <-, line 110 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_en_ending(z);
if (ret == 0) goto lab0; /* call en_ending, line 113 */
{ int ret = r_en_ending(z); /* call en_ending, line 113 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = r_R1(z);
if (ret == 0) goto lab0; /* call R1, line 116 */
{ int ret = r_R1(z); /* call R1, line 116 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0;
if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0; /* non v_j, line 116 */
{ int ret = slice_del(z); /* delete, line 116 */
if (ret < 0) return ret;
}
@ -430,8 +420,8 @@ static int r_standard_suffix(struct SN_env * z) {
z->c = z->l - m1;
}
{ int m2 = z->l - z->c; (void)m2; /* do, line 120 */
{ int ret = r_e_ending(z);
if (ret == 0) goto lab1; /* call e_ending, line 120 */
{ int ret = r_e_ending(z); /* call e_ending, line 120 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
@ -439,14 +429,15 @@ static int r_standard_suffix(struct SN_env * z) {
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 122 */
z->ket = z->c; /* [, line 122 */
if (!(eq_s_b(z, 4, s_16))) goto lab2;
if (!(eq_s_b(z, 4, s_12))) goto lab2; /* literal, line 122 */
z->bra = z->c; /* ], line 122 */
{ int ret = r_R2(z);
if (ret == 0) goto lab2; /* call R2, line 122 */
{ int ret = r_R2(z); /* call R2, line 122 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
{ int m4 = z->l - z->c; (void)m4; /* not, line 122 */
if (!(eq_s_b(z, 1, s_17))) goto lab3;
if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab3; /* literal, line 122 */
z->c--;
goto lab2;
lab3:
z->c = z->l - m4;
@ -455,10 +446,10 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 123 */
if (!(eq_s_b(z, 2, s_18))) goto lab2;
if (!(eq_s_b(z, 2, s_13))) goto lab2; /* literal, line 123 */
z->bra = z->c; /* ], line 123 */
{ int ret = r_en_ending(z);
if (ret == 0) goto lab2; /* call en_ending, line 123 */
{ int ret = r_en_ending(z); /* call en_ending, line 123 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
@ -466,15 +457,14 @@ static int r_standard_suffix(struct SN_env * z) {
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 126 */
z->ket = z->c; /* [, line 127 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab4;
among_var = find_among_b(z, a_4, 6); /* substring, line 127 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab4; /* substring, line 127 */
among_var = find_among_b(z, a_4, 6);
if (!(among_var)) goto lab4;
z->bra = z->c; /* ], line 127 */
switch(among_var) {
case 0: goto lab4;
switch (among_var) { /* among, line 127 */
case 1:
{ int ret = r_R2(z);
if (ret == 0) goto lab4; /* call R2, line 129 */
{ int ret = r_R2(z); /* call R2, line 129 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 129 */
@ -482,14 +472,15 @@ static int r_standard_suffix(struct SN_env * z) {
}
{ int m6 = z->l - z->c; (void)m6; /* or, line 130 */
z->ket = z->c; /* [, line 130 */
if (!(eq_s_b(z, 2, s_19))) goto lab6;
if (!(eq_s_b(z, 2, s_14))) goto lab6; /* literal, line 130 */
z->bra = z->c; /* ], line 130 */
{ int ret = r_R2(z);
if (ret == 0) goto lab6; /* call R2, line 130 */
{ int ret = r_R2(z); /* call R2, line 130 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
{ int m7 = z->l - z->c; (void)m7; /* not, line 130 */
if (!(eq_s_b(z, 1, s_20))) goto lab7;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7; /* literal, line 130 */
z->c--;
goto lab6;
lab7:
z->c = z->l - m7;
@ -500,20 +491,21 @@ static int r_standard_suffix(struct SN_env * z) {
goto lab5;
lab6:
z->c = z->l - m6;
{ int ret = r_undouble(z);
if (ret == 0) goto lab4; /* call undouble, line 130 */
{ int ret = r_undouble(z); /* call undouble, line 130 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
break;
case 2:
{ int ret = r_R2(z);
if (ret == 0) goto lab4; /* call R2, line 133 */
{ int ret = r_R2(z); /* call R2, line 133 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int m8 = z->l - z->c; (void)m8; /* not, line 133 */
if (!(eq_s_b(z, 1, s_21))) goto lab8;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8; /* literal, line 133 */
z->c--;
goto lab4;
lab8:
z->c = z->l - m8;
@ -523,21 +515,21 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 3:
{ int ret = r_R2(z);
if (ret == 0) goto lab4; /* call R2, line 136 */
{ int ret = r_R2(z); /* call R2, line 136 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 136 */
if (ret < 0) return ret;
}
{ int ret = r_e_ending(z);
if (ret == 0) goto lab4; /* call e_ending, line 136 */
{ int ret = r_e_ending(z); /* call e_ending, line 136 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_R2(z);
if (ret == 0) goto lab4; /* call R2, line 139 */
{ int ret = r_R2(z); /* call R2, line 139 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 139 */
@ -545,8 +537,8 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 5:
{ int ret = r_R2(z);
if (ret == 0) goto lab4; /* call R2, line 142 */
{ int ret = r_R2(z); /* call R2, line 142 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
if (!(z->B[0])) goto lab4; /* Boolean test e_found, line 142 */
@ -559,12 +551,12 @@ static int r_standard_suffix(struct SN_env * z) {
z->c = z->l - m5;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 146 */
if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab9;
{ int m_test = z->l - z->c; /* test, line 148 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab9;
if (!(find_among_b(z, a_5, 4))) goto lab9; /* among, line 149 */
if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab9;
z->c = z->l - m_test;
if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab9; /* non v_I, line 147 */
{ int m_test10 = z->l - z->c; /* test, line 148 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab9; /* among, line 149 */
if (!(find_among_b(z, a_5, 4))) goto lab9;
if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab9; /* non v, line 150 */
z->c = z->l - m_test10;
}
z->ket = z->c; /* [, line 152 */
if (z->c <= z->lb) goto lab9;
@ -579,18 +571,18 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
extern int dutch_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 159 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 159 */
{ int ret = r_prelude(z); /* call prelude, line 159 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 160 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 160 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 160 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
@ -598,22 +590,20 @@ extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
}
z->lb = z->c; z->c = z->l; /* backwards, line 161 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 162 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab2; /* call standard_suffix, line 162 */
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
/* do, line 162 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 162 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->lb;
{ int c4 = z->c; /* do, line 163 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab3; /* call postlude, line 163 */
{ int c3 = z->c; /* do, line 163 */
{ int ret = r_postlude(z); /* call postlude, line 163 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = c4;
z->c = c3;
}
return 1;
}

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -153,12 +153,12 @@ static const struct among a_5[24] =
/* 0 */ { 4, s_5_0, -1, 3, 0},
/* 1 */ { 4, s_5_1, -1, 2, 0},
/* 2 */ { 3, s_5_2, -1, 13, 0},
/* 3 */ { 2, s_5_3, -1, 16, 0},
/* 3 */ { 2, s_5_3, -1, 15, 0},
/* 4 */ { 3, s_5_4, 3, 12, 0},
/* 5 */ { 4, s_5_5, 4, 4, 0},
/* 6 */ { 4, s_5_6, 3, 8, 0},
/* 7 */ { 5, s_5_7, 3, 14, 0},
/* 8 */ { 6, s_5_8, 3, 15, 0},
/* 7 */ { 5, s_5_7, 3, 9, 0},
/* 8 */ { 6, s_5_8, 3, 14, 0},
/* 9 */ { 5, s_5_9, 3, 10, 0},
/* 10 */ { 5, s_5_10, 3, 5, 0},
/* 11 */ { 5, s_5_11, -1, 8, 0},
@ -317,62 +317,52 @@ static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
static const unsigned char g_valid_LI[] = { 55, 141, 2 };
static const symbol s_0[] = { '\'' };
static const symbol s_1[] = { 'y' };
static const symbol s_2[] = { 'Y' };
static const symbol s_3[] = { 'y' };
static const symbol s_4[] = { 'Y' };
static const symbol s_5[] = { 's', 's' };
static const symbol s_6[] = { 'i' };
static const symbol s_7[] = { 'i', 'e' };
static const symbol s_8[] = { 'e', 'e' };
static const symbol s_9[] = { 'e' };
static const symbol s_10[] = { 'e' };
static const symbol s_11[] = { 'y' };
static const symbol s_12[] = { 'Y' };
static const symbol s_13[] = { 'i' };
static const symbol s_14[] = { 't', 'i', 'o', 'n' };
static const symbol s_15[] = { 'e', 'n', 'c', 'e' };
static const symbol s_16[] = { 'a', 'n', 'c', 'e' };
static const symbol s_17[] = { 'a', 'b', 'l', 'e' };
static const symbol s_18[] = { 'e', 'n', 't' };
static const symbol s_19[] = { 'i', 'z', 'e' };
static const symbol s_20[] = { 'a', 't', 'e' };
static const symbol s_21[] = { 'a', 'l' };
static const symbol s_22[] = { 'f', 'u', 'l' };
static const symbol s_23[] = { 'o', 'u', 's' };
static const symbol s_24[] = { 'i', 'v', 'e' };
static const symbol s_25[] = { 'b', 'l', 'e' };
static const symbol s_26[] = { 'l' };
static const symbol s_27[] = { 'o', 'g' };
static const symbol s_28[] = { 'f', 'u', 'l' };
static const symbol s_29[] = { 'l', 'e', 's', 's' };
static const symbol s_30[] = { 't', 'i', 'o', 'n' };
static const symbol s_31[] = { 'a', 't', 'e' };
static const symbol s_32[] = { 'a', 'l' };
static const symbol s_33[] = { 'i', 'c' };
static const symbol s_34[] = { 's' };
static const symbol s_35[] = { 't' };
static const symbol s_36[] = { 'l' };
static const symbol s_37[] = { 's', 'k', 'i' };
static const symbol s_38[] = { 's', 'k', 'y' };
static const symbol s_39[] = { 'd', 'i', 'e' };
static const symbol s_40[] = { 'l', 'i', 'e' };
static const symbol s_41[] = { 't', 'i', 'e' };
static const symbol s_42[] = { 'i', 'd', 'l' };
static const symbol s_43[] = { 'g', 'e', 'n', 't', 'l' };
static const symbol s_44[] = { 'u', 'g', 'l', 'i' };
static const symbol s_45[] = { 'e', 'a', 'r', 'l', 'i' };
static const symbol s_46[] = { 'o', 'n', 'l', 'i' };
static const symbol s_47[] = { 's', 'i', 'n', 'g', 'l' };
static const symbol s_48[] = { 'Y' };
static const symbol s_49[] = { 'y' };
static const symbol s_0[] = { 'Y' };
static const symbol s_1[] = { 'Y' };
static const symbol s_2[] = { 's', 's' };
static const symbol s_3[] = { 'i' };
static const symbol s_4[] = { 'i', 'e' };
static const symbol s_5[] = { 'e', 'e' };
static const symbol s_6[] = { 'e' };
static const symbol s_7[] = { 'e' };
static const symbol s_8[] = { 'i' };
static const symbol s_9[] = { 't', 'i', 'o', 'n' };
static const symbol s_10[] = { 'e', 'n', 'c', 'e' };
static const symbol s_11[] = { 'a', 'n', 'c', 'e' };
static const symbol s_12[] = { 'a', 'b', 'l', 'e' };
static const symbol s_13[] = { 'e', 'n', 't' };
static const symbol s_14[] = { 'i', 'z', 'e' };
static const symbol s_15[] = { 'a', 't', 'e' };
static const symbol s_16[] = { 'a', 'l' };
static const symbol s_17[] = { 'f', 'u', 'l' };
static const symbol s_18[] = { 'o', 'u', 's' };
static const symbol s_19[] = { 'i', 'v', 'e' };
static const symbol s_20[] = { 'b', 'l', 'e' };
static const symbol s_21[] = { 'o', 'g' };
static const symbol s_22[] = { 'l', 'e', 's', 's' };
static const symbol s_23[] = { 't', 'i', 'o', 'n' };
static const symbol s_24[] = { 'a', 't', 'e' };
static const symbol s_25[] = { 'a', 'l' };
static const symbol s_26[] = { 'i', 'c' };
static const symbol s_27[] = { 's', 'k', 'i' };
static const symbol s_28[] = { 's', 'k', 'y' };
static const symbol s_29[] = { 'd', 'i', 'e' };
static const symbol s_30[] = { 'l', 'i', 'e' };
static const symbol s_31[] = { 't', 'i', 'e' };
static const symbol s_32[] = { 'i', 'd', 'l' };
static const symbol s_33[] = { 'g', 'e', 'n', 't', 'l' };
static const symbol s_34[] = { 'u', 'g', 'l', 'i' };
static const symbol s_35[] = { 'e', 'a', 'r', 'l', 'i' };
static const symbol s_36[] = { 'o', 'n', 'l', 'i' };
static const symbol s_37[] = { 's', 'i', 'n', 'g', 'l' };
static const symbol s_38[] = { 'y' };
static int r_prelude(struct SN_env * z) {
static int r_prelude(struct SN_env * z) { /* forwardmode */
z->B[0] = 0; /* unset Y_found, line 26 */
{ int c1 = z->c; /* do, line 27 */
z->bra = z->c; /* [, line 27 */
if (!(eq_s(z, 1, s_0))) goto lab0;
if (z->c == z->l || z->p[z->c] != '\'') goto lab0; /* literal, line 27 */
z->c++;
z->ket = z->c; /* ], line 27 */
{ int ret = slice_del(z); /* delete, line 27 */
if (ret < 0) return ret;
@ -382,9 +372,10 @@ static int r_prelude(struct SN_env * z) {
}
{ int c2 = z->c; /* do, line 28 */
z->bra = z->c; /* [, line 28 */
if (!(eq_s(z, 1, s_1))) goto lab1;
if (z->c == z->l || z->p[z->c] != 'y') goto lab1; /* literal, line 28 */
z->c++;
z->ket = z->c; /* ], line 28 */
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 28 */
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 28 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 28 */
@ -396,9 +387,10 @@ static int r_prelude(struct SN_env * z) {
int c4 = z->c;
while(1) { /* goto, line 29 */
int c5 = z->c;
if (in_grouping(z, g_v, 97, 121, 0)) goto lab4;
if (in_grouping(z, g_v, 97, 121, 0)) goto lab4; /* grouping v, line 29 */
z->bra = z->c; /* [, line 29 */
if (!(eq_s(z, 1, s_3))) goto lab4;
if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 29 */
z->c++;
z->ket = z->c; /* ], line 29 */
z->c = c5;
break;
@ -407,7 +399,7 @@ static int r_prelude(struct SN_env * z) {
if (z->c >= z->l) goto lab3;
z->c++; /* goto, line 29 */
}
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 29 */
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 29 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 29 */
@ -421,13 +413,13 @@ static int r_prelude(struct SN_env * z) {
return 1;
}
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 33 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 34 */
{ int c1 = z->c; /* do, line 35 */
{ int c2 = z->c; /* or, line 41 */
if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2;
if (!(find_among(z, a_0, 3))) goto lab2; /* among, line 36 */
if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2; /* among, line 36 */
if (!(find_among(z, a_0, 3))) goto lab2;
goto lab1;
lab2:
z->c = c2;
@ -461,76 +453,69 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
static int r_shortv(struct SN_env * z) {
static int r_shortv(struct SN_env * z) { /* backwardmode */
{ int m1 = z->l - z->c; (void)m1; /* or, line 51 */
if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) goto lab1;
if (in_grouping_b(z, g_v, 97, 121, 0)) goto lab1;
if (out_grouping_b(z, g_v, 97, 121, 0)) goto lab1;
if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) goto lab1; /* non v_WXY, line 50 */
if (in_grouping_b(z, g_v, 97, 121, 0)) goto lab1; /* grouping v, line 50 */
if (out_grouping_b(z, g_v, 97, 121, 0)) goto lab1; /* non v, line 50 */
goto lab0;
lab1:
z->c = z->l - m1;
if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
if (in_grouping_b(z, g_v, 97, 121, 0)) return 0;
if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 52 */
if (in_grouping_b(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 52 */
if (z->c > z->lb) return 0; /* atlimit, line 52 */
}
lab0:
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 55 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 56 */
return 1;
}
static int r_Step_1a(struct SN_env * z) {
static int r_Step_1a(struct SN_env * z) { /* backwardmode */
int among_var;
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 59 */
{ int m1 = z->l - z->c; (void)m1; /* try, line 59 */
z->ket = z->c; /* [, line 60 */
if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m_keep; goto lab0; }
among_var = find_among_b(z, a_1, 3); /* substring, line 60 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; } /* substring, line 60 */
if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; }
z->bra = z->c; /* ], line 60 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab0; }
case 1:
{ int ret = slice_del(z); /* delete, line 62 */
if (ret < 0) return ret;
}
break;
{ int ret = slice_del(z); /* delete, line 62 */
if (ret < 0) return ret;
}
lab0:
;
}
z->ket = z->c; /* [, line 65 */
if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0;
among_var = find_among_b(z, a_2, 6); /* substring, line 65 */
if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0; /* substring, line 65 */
among_var = find_among_b(z, a_2, 6);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 65 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 65 */
case 1:
{ int ret = slice_from_s(z, 2, s_5); /* <-, line 66 */
{ int ret = slice_from_s(z, 2, s_2); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 2:
{ int m1 = z->l - z->c; (void)m1; /* or, line 68 */
{ int ret = z->c - 2;
{ int m2 = z->l - z->c; (void)m2; /* or, line 68 */
{ int ret = z->c - 2; /* hop, line 68 */
if (z->lb > ret || ret > z->l) goto lab2;
z->c = ret; /* hop, line 68 */
z->c = ret;
}
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 68 */
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 68 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
z->c = z->l - m1;
{ int ret = slice_from_s(z, 2, s_7); /* <-, line 68 */
z->c = z->l - m2;
{ int ret = slice_from_s(z, 2, s_4); /* <-, line 68 */
if (ret < 0) return ret;
}
}
@ -552,48 +537,47 @@ static int r_Step_1a(struct SN_env * z) {
return 1;
}
static int r_Step_1b(struct SN_env * z) {
static int r_Step_1b(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 75 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_4, 6); /* substring, line 75 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 75 */
among_var = find_among_b(z, a_4, 6);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 75 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 75 */
case 1:
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 77 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 77 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 2, s_8); /* <-, line 77 */
{ int ret = slice_from_s(z, 2, s_5); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
case 2:
{ int m_test = z->l - z->c; /* test, line 80 */
{ int m_test1 = z->l - z->c; /* test, line 80 */
{ /* gopast */ /* grouping v, line 80 */
int ret = out_grouping_b(z, g_v, 97, 121, 1);
if (ret < 0) return 0;
z->c -= ret;
}
z->c = z->l - m_test;
z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 80 */
if (ret < 0) return ret;
}
{ int m_test = z->l - z->c; /* test, line 81 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
among_var = find_among_b(z, a_3, 13); /* substring, line 81 */
{ int m_test2 = z->l - z->c; /* test, line 81 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 81 */
among_var = find_among_b(z, a_3, 13);
if (!(among_var)) return 0;
z->c = z->l - m_test;
z->c = z->l - m_test2;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 81 */
case 1:
{ int c_keep = z->c;
int ret = insert_s(z, z->c, z->c, 1, s_9); /* <+, line 83 */
z->c = c_keep;
{ int ret;
{ int saved_c = z->c;
ret = insert_s(z, z->c, z->c, 1, s_6); /* <+, line 83 */
z->c = saved_c;
}
if (ret < 0) return ret;
}
break;
@ -608,16 +592,17 @@ static int r_Step_1b(struct SN_env * z) {
break;
case 3:
if (z->c != z->I[0]) return 0; /* atmark, line 87 */
{ int m_test = z->l - z->c; /* test, line 87 */
{ int ret = r_shortv(z);
if (ret == 0) return 0; /* call shortv, line 87 */
if (ret < 0) return ret;
{ int m_test3 = z->l - z->c; /* test, line 87 */
{ int ret = r_shortv(z); /* call shortv, line 87 */
if (ret <= 0) return ret;
}
z->c = z->l - m_test;
z->c = z->l - m_test3;
}
{ int c_keep = z->c;
int ret = insert_s(z, z->c, z->c, 1, s_10); /* <+, line 87 */
z->c = c_keep;
{ int ret;
{ int saved_c = z->c;
ret = insert_s(z, z->c, z->c, 1, s_7); /* <+, line 87 */
z->c = saved_c;
}
if (ret < 0) return ret;
}
break;
@ -627,121 +612,115 @@ static int r_Step_1b(struct SN_env * z) {
return 1;
}
static int r_Step_1c(struct SN_env * z) {
static int r_Step_1c(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 94 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 94 */
if (!(eq_s_b(z, 1, s_11))) goto lab1;
if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 94 */
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_12))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 94 */
z->c--;
}
lab0:
z->bra = z->c; /* ], line 94 */
if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
{ int m2 = z->l - z->c; (void)m2; /* not, line 95 */
if (z->c > z->lb) goto lab2; /* atlimit, line 95 */
return 0;
lab2:
z->c = z->l - m2;
}
{ int ret = slice_from_s(z, 1, s_13); /* <-, line 96 */
if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 95 */
/* not, line 95 */
if (z->c > z->lb) goto lab2; /* atlimit, line 95 */
return 0;
lab2:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 96 */
if (ret < 0) return ret;
}
return 1;
}
static int r_Step_2(struct SN_env * z) {
static int r_Step_2(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 100 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_5, 24); /* substring, line 100 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 100 */
among_var = find_among_b(z, a_5, 24);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 100 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 100 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 100 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 100 */
case 1:
{ int ret = slice_from_s(z, 4, s_14); /* <-, line 101 */
{ int ret = slice_from_s(z, 4, s_9); /* <-, line 101 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 4, s_15); /* <-, line 102 */
{ int ret = slice_from_s(z, 4, s_10); /* <-, line 102 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 4, s_16); /* <-, line 103 */
{ int ret = slice_from_s(z, 4, s_11); /* <-, line 103 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 4, s_17); /* <-, line 104 */
{ int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 3, s_18); /* <-, line 105 */
{ int ret = slice_from_s(z, 3, s_13); /* <-, line 105 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 3, s_19); /* <-, line 107 */
{ int ret = slice_from_s(z, 3, s_14); /* <-, line 107 */
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 3, s_20); /* <-, line 109 */
{ int ret = slice_from_s(z, 3, s_15); /* <-, line 109 */
if (ret < 0) return ret;
}
break;
case 8:
{ int ret = slice_from_s(z, 2, s_21); /* <-, line 111 */
{ int ret = slice_from_s(z, 2, s_16); /* <-, line 111 */
if (ret < 0) return ret;
}
break;
case 9:
{ int ret = slice_from_s(z, 3, s_22); /* <-, line 112 */
{ int ret = slice_from_s(z, 3, s_17); /* <-, line 112 */
if (ret < 0) return ret;
}
break;
case 10:
{ int ret = slice_from_s(z, 3, s_23); /* <-, line 114 */
{ int ret = slice_from_s(z, 3, s_18); /* <-, line 114 */
if (ret < 0) return ret;
}
break;
case 11:
{ int ret = slice_from_s(z, 3, s_24); /* <-, line 116 */
{ int ret = slice_from_s(z, 3, s_19); /* <-, line 116 */
if (ret < 0) return ret;
}
break;
case 12:
{ int ret = slice_from_s(z, 3, s_25); /* <-, line 118 */
{ int ret = slice_from_s(z, 3, s_20); /* <-, line 118 */
if (ret < 0) return ret;
}
break;
case 13:
if (!(eq_s_b(z, 1, s_26))) return 0;
{ int ret = slice_from_s(z, 2, s_27); /* <-, line 119 */
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 119 */
z->c--;
{ int ret = slice_from_s(z, 2, s_21); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
case 14:
{ int ret = slice_from_s(z, 3, s_28); /* <-, line 120 */
{ int ret = slice_from_s(z, 4, s_22); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
case 15:
{ int ret = slice_from_s(z, 4, s_29); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
case 16:
if (in_grouping_b(z, g_valid_LI, 99, 116, 0)) return 0;
if (in_grouping_b(z, g_valid_LI, 99, 116, 0)) return 0; /* grouping valid_LI, line 122 */
{ int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
@ -750,36 +729,34 @@ static int r_Step_2(struct SN_env * z) {
return 1;
}
static int r_Step_3(struct SN_env * z) {
static int r_Step_3(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 127 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_6, 9); /* substring, line 127 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 127 */
among_var = find_among_b(z, a_6, 9);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 127 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 127 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 127 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 127 */
case 1:
{ int ret = slice_from_s(z, 4, s_30); /* <-, line 128 */
{ int ret = slice_from_s(z, 4, s_23); /* <-, line 128 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 3, s_31); /* <-, line 129 */
{ int ret = slice_from_s(z, 3, s_24); /* <-, line 129 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 2, s_32); /* <-, line 130 */
{ int ret = slice_from_s(z, 2, s_25); /* <-, line 130 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 2, s_33); /* <-, line 132 */
{ int ret = slice_from_s(z, 2, s_26); /* <-, line 132 */
if (ret < 0) return ret;
}
break;
@ -789,9 +766,8 @@ static int r_Step_3(struct SN_env * z) {
}
break;
case 6:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 136 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 136 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 136 */
if (ret < 0) return ret;
@ -801,19 +777,17 @@ static int r_Step_3(struct SN_env * z) {
return 1;
}
static int r_Step_4(struct SN_env * z) {
static int r_Step_4(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 141 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_7, 18); /* substring, line 141 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 141 */
among_var = find_among_b(z, a_7, 18);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 141 */
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 141 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 141 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 141 */
case 1:
{ int ret = slice_del(z); /* delete, line 144 */
if (ret < 0) return ret;
@ -821,11 +795,13 @@ static int r_Step_4(struct SN_env * z) {
break;
case 2:
{ int m1 = z->l - z->c; (void)m1; /* or, line 145 */
if (!(eq_s_b(z, 1, s_34))) goto lab1;
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 145 */
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_35))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 145 */
z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 145 */
@ -836,31 +812,29 @@ static int r_Step_4(struct SN_env * z) {
return 1;
}
static int r_Step_5(struct SN_env * z) {
static int r_Step_5(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 150 */
if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0;
among_var = find_among_b(z, a_8, 2); /* substring, line 150 */
if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0; /* substring, line 150 */
among_var = find_among_b(z, a_8, 2);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 150 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 150 */
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 151 */
{ int ret = r_R2(z);
if (ret == 0) goto lab1; /* call R2, line 151 */
{ int ret = r_R2(z); /* call R2, line 151 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = z->l - m1;
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 151 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 151 */
if (ret <= 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* not, line 151 */
{ int ret = r_shortv(z);
if (ret == 0) goto lab2; /* call shortv, line 151 */
{ int ret = r_shortv(z); /* call shortv, line 151 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
return 0;
@ -874,11 +848,11 @@ static int r_Step_5(struct SN_env * z) {
}
break;
case 2:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 152 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 152 */
if (ret <= 0) return ret;
}
if (!(eq_s_b(z, 1, s_36))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 152 */
z->c--;
{ int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
@ -887,77 +861,76 @@ static int r_Step_5(struct SN_env * z) {
return 1;
}
static int r_exception2(struct SN_env * z) {
static int r_exception2(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 158 */
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
if (!(find_among_b(z, a_9, 8))) return 0; /* substring, line 158 */
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 158 */
if (!(find_among_b(z, a_9, 8))) return 0;
z->bra = z->c; /* ], line 158 */
if (z->c > z->lb) return 0; /* atlimit, line 158 */
return 1;
}
static int r_exception1(struct SN_env * z) {
static int r_exception1(struct SN_env * z) { /* forwardmode */
int among_var;
z->bra = z->c; /* [, line 170 */
if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
among_var = find_among(z, a_10, 18); /* substring, line 170 */
if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0; /* substring, line 170 */
among_var = find_among(z, a_10, 18);
if (!(among_var)) return 0;
z->ket = z->c; /* ], line 170 */
if (z->c < z->l) return 0; /* atlimit, line 170 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 170 */
case 1:
{ int ret = slice_from_s(z, 3, s_37); /* <-, line 174 */
{ int ret = slice_from_s(z, 3, s_27); /* <-, line 174 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 3, s_38); /* <-, line 175 */
{ int ret = slice_from_s(z, 3, s_28); /* <-, line 175 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 3, s_39); /* <-, line 176 */
{ int ret = slice_from_s(z, 3, s_29); /* <-, line 176 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 3, s_40); /* <-, line 177 */
{ int ret = slice_from_s(z, 3, s_30); /* <-, line 177 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 3, s_41); /* <-, line 178 */
{ int ret = slice_from_s(z, 3, s_31); /* <-, line 178 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 3, s_42); /* <-, line 182 */
{ int ret = slice_from_s(z, 3, s_32); /* <-, line 182 */
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 5, s_43); /* <-, line 183 */
{ int ret = slice_from_s(z, 5, s_33); /* <-, line 183 */
if (ret < 0) return ret;
}
break;
case 8:
{ int ret = slice_from_s(z, 4, s_44); /* <-, line 184 */
{ int ret = slice_from_s(z, 4, s_34); /* <-, line 184 */
if (ret < 0) return ret;
}
break;
case 9:
{ int ret = slice_from_s(z, 5, s_45); /* <-, line 185 */
{ int ret = slice_from_s(z, 5, s_35); /* <-, line 185 */
if (ret < 0) return ret;
}
break;
case 10:
{ int ret = slice_from_s(z, 4, s_46); /* <-, line 186 */
{ int ret = slice_from_s(z, 4, s_36); /* <-, line 186 */
if (ret < 0) return ret;
}
break;
case 11:
{ int ret = slice_from_s(z, 5, s_47); /* <-, line 187 */
{ int ret = slice_from_s(z, 5, s_37); /* <-, line 187 */
if (ret < 0) return ret;
}
break;
@ -965,14 +938,15 @@ static int r_exception1(struct SN_env * z) {
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
if (!(z->B[0])) return 0; /* Boolean test Y_found, line 203 */
while(1) { /* repeat, line 203 */
int c1 = z->c;
while(1) { /* goto, line 203 */
int c2 = z->c;
z->bra = z->c; /* [, line 203 */
if (!(eq_s(z, 1, s_48))) goto lab1;
if (z->c == z->l || z->p[z->c] != 'Y') goto lab1; /* literal, line 203 */
z->c++;
z->ket = z->c; /* ], line 203 */
z->c = c2;
break;
@ -981,7 +955,7 @@ static int r_postlude(struct SN_env * z) {
if (z->c >= z->l) goto lab0;
z->c++; /* goto, line 203 */
}
{ int ret = slice_from_s(z, 1, s_49); /* <-, line 203 */
{ int ret = slice_from_s(z, 1, s_38); /* <-, line 203 */
if (ret < 0) return ret;
}
continue;
@ -992,19 +966,19 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
extern int english_ISO_8859_1_stem(struct SN_env * z) {
extern int english_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* or, line 207 */
{ int ret = r_exception1(z);
if (ret == 0) goto lab1; /* call exception1, line 207 */
{ int ret = r_exception1(z); /* call exception1, line 207 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = c1;
{ int c2 = z->c; /* not, line 208 */
{ int ret = z->c + 3;
{ int ret = z->c + 3; /* hop, line 208 */
if (0 > ret || ret > z->l) goto lab3;
z->c = ret; /* hop, line 208 */
z->c = ret;
}
goto lab2;
lab3:
@ -1013,98 +987,94 @@ extern int english_ISO_8859_1_stem(struct SN_env * z) {
goto lab0;
lab2:
z->c = c1;
{ int c3 = z->c; /* do, line 209 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab4; /* call prelude, line 209 */
if (ret < 0) return ret;
}
lab4:
z->c = c3;
/* do, line 209 */
{ int ret = r_prelude(z); /* call prelude, line 209 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int c4 = z->c; /* do, line 210 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab5; /* call mark_regions, line 210 */
if (ret < 0) return ret;
}
lab5:
z->c = c4;
lab4:
/* do, line 210 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 210 */
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
lab5:
z->lb = z->c; z->c = z->l; /* backwards, line 211 */
{ int m5 = z->l - z->c; (void)m5; /* do, line 213 */
{ int ret = r_Step_1a(z);
if (ret == 0) goto lab6; /* call Step_1a, line 213 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 213 */
{ int ret = r_Step_1a(z); /* call Step_1a, line 213 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
z->c = z->l - m5;
z->c = z->l - m3;
}
{ int m6 = z->l - z->c; (void)m6; /* or, line 215 */
{ int ret = r_exception2(z);
if (ret == 0) goto lab8; /* call exception2, line 215 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 215 */
{ int ret = r_exception2(z); /* call exception2, line 215 */
if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
goto lab7;
lab8:
z->c = z->l - m6;
{ int m7 = z->l - z->c; (void)m7; /* do, line 217 */
{ int ret = r_Step_1b(z);
if (ret == 0) goto lab9; /* call Step_1b, line 217 */
z->c = z->l - m4;
{ int m5 = z->l - z->c; (void)m5; /* do, line 217 */
{ int ret = r_Step_1b(z); /* call Step_1b, line 217 */
if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
z->c = z->l - m7;
z->c = z->l - m5;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 218 */
{ int ret = r_Step_1c(z);
if (ret == 0) goto lab10; /* call Step_1c, line 218 */
{ int m6 = z->l - z->c; (void)m6; /* do, line 218 */
{ int ret = r_Step_1c(z); /* call Step_1c, line 218 */
if (ret == 0) goto lab10;
if (ret < 0) return ret;
}
lab10:
z->c = z->l - m8;
z->c = z->l - m6;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 220 */
{ int ret = r_Step_2(z);
if (ret == 0) goto lab11; /* call Step_2, line 220 */
{ int m7 = z->l - z->c; (void)m7; /* do, line 220 */
{ int ret = r_Step_2(z); /* call Step_2, line 220 */
if (ret == 0) goto lab11;
if (ret < 0) return ret;
}
lab11:
z->c = z->l - m9;
z->c = z->l - m7;
}
{ int m10 = z->l - z->c; (void)m10; /* do, line 221 */
{ int ret = r_Step_3(z);
if (ret == 0) goto lab12; /* call Step_3, line 221 */
{ int m8 = z->l - z->c; (void)m8; /* do, line 221 */
{ int ret = r_Step_3(z); /* call Step_3, line 221 */
if (ret == 0) goto lab12;
if (ret < 0) return ret;
}
lab12:
z->c = z->l - m10;
z->c = z->l - m8;
}
{ int m11 = z->l - z->c; (void)m11; /* do, line 222 */
{ int ret = r_Step_4(z);
if (ret == 0) goto lab13; /* call Step_4, line 222 */
{ int m9 = z->l - z->c; (void)m9; /* do, line 222 */
{ int ret = r_Step_4(z); /* call Step_4, line 222 */
if (ret == 0) goto lab13;
if (ret < 0) return ret;
}
lab13:
z->c = z->l - m11;
z->c = z->l - m9;
}
{ int m12 = z->l - z->c; (void)m12; /* do, line 224 */
{ int ret = r_Step_5(z);
if (ret == 0) goto lab14; /* call Step_5, line 224 */
{ int m10 = z->l - z->c; (void)m10; /* do, line 224 */
{ int ret = r_Step_5(z); /* call Step_5, line 224 */
if (ret == 0) goto lab14;
if (ret < 0) return ret;
}
lab14:
z->c = z->l - m12;
z->c = z->l - m10;
}
}
lab7:
z->c = z->lb;
{ int c13 = z->c; /* do, line 227 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab15; /* call postlude, line 227 */
{ int c11 = z->c; /* do, line 227 */
{ int ret = r_postlude(z); /* call postlude, line 227 */
if (ret == 0) goto lab15;
if (ret < 0) return ret;
}
lab15:
z->c = c13;
z->c = c11;
}
}
lab0:

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -183,7 +183,7 @@ static const struct among a_6[30] =
/* 4 */ { 2, s_6_4, 0, -1, 0},
/* 5 */ { 3, s_6_5, 4, -1, 0},
/* 6 */ { 3, s_6_6, 4, -1, 0},
/* 7 */ { 3, s_6_7, 4, 9, 0},
/* 7 */ { 3, s_6_7, 4, 2, 0},
/* 8 */ { 3, s_6_8, -1, -1, 0},
/* 9 */ { 3, s_6_9, -1, -1, 0},
/* 10 */ { 3, s_6_10, -1, -1, 0},
@ -205,7 +205,7 @@ static const struct among a_6[30] =
/* 26 */ { 2, s_6_26, 22, -1, 0},
/* 27 */ { 3, s_6_27, 26, -1, 0},
/* 28 */ { 3, s_6_28, 26, -1, 0},
/* 29 */ { 3, s_6_29, 26, 9, 0}
/* 29 */ { 3, s_6_29, 26, 2, 0}
};
static const symbol s_7_0[3] = { 'e', 'j', 'a' };
@ -261,151 +261,132 @@ static const struct among a_9[2] =
static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
static const unsigned char g_C[] = { 119, 223, 119, 1 };
static const unsigned char g_V1[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
static const unsigned char g_V2[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
static const unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
static const symbol s_0[] = { 'k' };
static const symbol s_1[] = { 'k', 's', 'e' };
static const symbol s_2[] = { 'k', 's', 'i' };
static const symbol s_3[] = { 'i' };
static const symbol s_4[] = { 'a' };
static const symbol s_5[] = { 'e' };
static const symbol s_6[] = { 'i' };
static const symbol s_7[] = { 'o' };
static const symbol s_8[] = { 0xE4 };
static const symbol s_9[] = { 0xF6 };
static const symbol s_10[] = { 'i', 'e' };
static const symbol s_11[] = { 'e' };
static const symbol s_12[] = { 'p', 'o' };
static const symbol s_13[] = { 't' };
static const symbol s_14[] = { 'p', 'o' };
static const symbol s_15[] = { 'j' };
static const symbol s_16[] = { 'o' };
static const symbol s_17[] = { 'u' };
static const symbol s_18[] = { 'o' };
static const symbol s_19[] = { 'j' };
static const symbol s_0[] = { 'k', 's', 'e' };
static const symbol s_1[] = { 'k', 's', 'i' };
static const symbol s_2[] = { 'i', 'e' };
static const symbol s_3[] = { 'p', 'o' };
static const symbol s_4[] = { 'p', 'o' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 46 */
{ /* gopast */ /* non V1, line 46 */
int ret = in_grouping(z, g_V1, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 46 */
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 44 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 45 */
if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 47 */
{ /* gopast */ /* non V1, line 47 */
int ret = in_grouping(z, g_V1, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 47 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
return 1;
}
static int r_particle_etc(struct SN_env * z) {
int among_var;
{ int mlimit; /* setlimit, line 55 */
int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 55 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
z->ket = z->c; /* [, line 55 */
among_var = find_among_b(z, a_0, 10); /* substring, line 55 */
if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 55 */
z->lb = mlimit;
z->I[0] = z->c; /* setmark p1, line 47 */
if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 48 */
{ /* gopast */ /* non V1, line 48 */
int ret = in_grouping(z, g_V1, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
switch(among_var) {
case 0: return 0;
z->I[1] = z->c; /* setmark p2, line 48 */
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 53 */
return 1;
}
static int r_particle_etc(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit1; /* setlimit, line 56 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
among_var = find_among_b(z, a_0, 10); /* substring, line 56 */
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 56 */
z->lb = mlimit1;
}
switch (among_var) { /* among, line 57 */
case 1:
if (in_grouping_b(z, g_particle_end, 97, 246, 0)) return 0;
if (in_grouping_b(z, g_particle_end, 97, 246, 0)) return 0; /* grouping particle_end, line 63 */
break;
case 2:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 64 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 65 */
if (ret <= 0) return ret;
}
break;
}
{ int ret = slice_del(z); /* delete, line 66 */
{ int ret = slice_del(z); /* delete, line 67 */
if (ret < 0) return ret;
}
return 1;
}
static int r_possessive(struct SN_env * z) {
static int r_possessive(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 69 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 70 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 69 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
z->ket = z->c; /* [, line 69 */
among_var = find_among_b(z, a_4, 9); /* substring, line 69 */
if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 69 */
z->lb = mlimit;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 70 */
among_var = find_among_b(z, a_4, 9); /* substring, line 70 */
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 70 */
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 71 */
case 1:
{ int m2 = z->l - z->c; (void)m2; /* not, line 72 */
if (!(eq_s_b(z, 1, s_0))) goto lab0;
{ int m2 = z->l - z->c; (void)m2; /* not, line 73 */
if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0; /* literal, line 73 */
z->c--;
return 0;
lab0:
z->c = z->l - m2;
}
{ int ret = slice_del(z); /* delete, line 72 */
{ int ret = slice_del(z); /* delete, line 73 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 74 */
{ int ret = slice_del(z); /* delete, line 75 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 74 */
if (!(eq_s_b(z, 3, s_1))) return 0;
z->bra = z->c; /* ], line 74 */
{ int ret = slice_from_s(z, 3, s_2); /* <-, line 74 */
z->ket = z->c; /* [, line 75 */
if (!(eq_s_b(z, 3, s_0))) return 0; /* literal, line 75 */
z->bra = z->c; /* ], line 75 */
{ int ret = slice_from_s(z, 3, s_1); /* <-, line 75 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 78 */
{ int ret = slice_del(z); /* delete, line 79 */
if (ret < 0) return ret;
}
break;
case 4:
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
if (!(find_among_b(z, a_1, 6))) return 0; /* among, line 81 */
{ int ret = slice_del(z); /* delete, line 81 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0; /* among, line 82 */
if (!(find_among_b(z, a_1, 6))) return 0;
{ int ret = slice_del(z); /* delete, line 82 */
if (ret < 0) return ret;
}
break;
case 5:
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0;
if (!(find_among_b(z, a_2, 6))) return 0; /* among, line 83 */
{ int ret = slice_del(z); /* delete, line 84 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0; /* among, line 84 */
if (!(find_among_b(z, a_2, 6))) return 0;
{ int ret = slice_del(z); /* delete, line 85 */
if (ret < 0) return ret;
}
break;
case 6:
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
if (!(find_among_b(z, a_3, 2))) return 0; /* among, line 86 */
{ int ret = slice_del(z); /* delete, line 86 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0; /* among, line 87 */
if (!(find_among_b(z, a_3, 2))) return 0;
{ int ret = slice_del(z); /* delete, line 87 */
if (ret < 0) return ret;
}
break;
@ -413,344 +394,336 @@ static int r_possessive(struct SN_env * z) {
return 1;
}
static int r_LONG(struct SN_env * z) {
if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 91 */
static int r_LONG(struct SN_env * z) { /* backwardmode */
if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 92 */
return 1;
}
static int r_VI(struct SN_env * z) {
if (!(eq_s_b(z, 1, s_3))) return 0;
if (in_grouping_b(z, g_V2, 97, 246, 0)) return 0;
static int r_VI(struct SN_env * z) { /* backwardmode */
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 94 */
z->c--;
if (in_grouping_b(z, g_V2, 97, 246, 0)) return 0; /* grouping V2, line 94 */
return 1;
}
static int r_case_ending(struct SN_env * z) {
static int r_case_ending(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 96 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 97 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 96 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
z->ket = z->c; /* [, line 96 */
among_var = find_among_b(z, a_6, 30); /* substring, line 96 */
if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 96 */
z->lb = mlimit;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 97 */
among_var = find_among_b(z, a_6, 30); /* substring, line 97 */
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 97 */
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 98 */
case 1:
if (!(eq_s_b(z, 1, s_4))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; /* literal, line 99 */
z->c--;
break;
case 2:
if (!(eq_s_b(z, 1, s_5))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 100 */
z->c--;
break;
case 3:
if (!(eq_s_b(z, 1, s_6))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 101 */
z->c--;
break;
case 4:
if (!(eq_s_b(z, 1, s_7))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; /* literal, line 102 */
z->c--;
break;
case 5:
if (!(eq_s_b(z, 1, s_8))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 0xE4) return 0; /* literal, line 103 */
z->c--;
break;
case 6:
if (!(eq_s_b(z, 1, s_9))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 0xF6) return 0; /* literal, line 104 */
z->c--;
break;
case 7:
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
{ int m2 = z->l - z->c; (void)m2; /* and, line 113 */
{ int m3 = z->l - z->c; (void)m3; /* or, line 112 */
{ int ret = r_LONG(z);
if (ret == 0) goto lab2; /* call LONG, line 111 */
{ int m2 = z->l - z->c; (void)m2; /* try, line 112 */
{ int m3 = z->l - z->c; (void)m3; /* and, line 114 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 113 */
{ int ret = r_LONG(z); /* call LONG, line 112 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
goto lab1;
lab2:
z->c = z->l - m3;
if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m4;
if (!(eq_s_b(z, 2, s_2))) { z->c = z->l - m2; goto lab0; } /* literal, line 113 */
}
lab1:
z->c = z->l - m2;
if (z->c <= z->lb) { z->c = z->l - m_keep; goto lab0; }
z->c--; /* next, line 113 */
z->c = z->l - m3;
if (z->c <= z->lb) { z->c = z->l - m2; goto lab0; }
z->c--; /* next, line 114 */
}
z->bra = z->c; /* ], line 113 */
z->bra = z->c; /* ], line 114 */
lab0:
;
}
break;
case 8:
if (in_grouping_b(z, g_V1, 97, 246, 0)) return 0;
if (out_grouping_b(z, g_V1, 97, 246, 0)) return 0;
break;
case 9:
if (!(eq_s_b(z, 1, s_11))) return 0;
if (in_grouping_b(z, g_V1, 97, 246, 0)) return 0; /* grouping V1, line 120 */
if (in_grouping_b(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 120 */
break;
}
{ int ret = slice_del(z); /* delete, line 138 */
{ int ret = slice_del(z); /* delete, line 139 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set ending_removed, line 139 */
z->B[0] = 1; /* set ending_removed, line 140 */
return 1;
}
static int r_other_endings(struct SN_env * z) {
static int r_other_endings(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 142 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 143 */
if (z->c < z->I[1]) return 0;
z->c = z->I[1]; /* tomark, line 142 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
z->ket = z->c; /* [, line 142 */
among_var = find_among_b(z, a_7, 14); /* substring, line 142 */
if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 142 */
z->lb = mlimit;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c; /* [, line 143 */
among_var = find_among_b(z, a_7, 14); /* substring, line 143 */
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 143 */
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 144 */
case 1:
{ int m2 = z->l - z->c; (void)m2; /* not, line 146 */
if (!(eq_s_b(z, 2, s_12))) goto lab0;
{ int m2 = z->l - z->c; (void)m2; /* not, line 147 */
if (!(eq_s_b(z, 2, s_3))) goto lab0; /* literal, line 147 */
return 0;
lab0:
z->c = z->l - m2;
}
break;
}
{ int ret = slice_del(z); /* delete, line 151 */
{ int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
return 1;
}
static int r_i_plural(struct SN_env * z) {
{ int mlimit; /* setlimit, line 154 */
int m1 = z->l - z->c; (void)m1;
static int r_i_plural(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 155 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 154 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
z->ket = z->c; /* [, line 154 */
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit; return 0; } /* substring, line 154 */
z->bra = z->c; /* ], line 154 */
z->lb = mlimit;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 155 */
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; } /* substring, line 155 */
if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 155 */
z->lb = mlimit1;
}
{ int ret = slice_del(z); /* delete, line 158 */
{ int ret = slice_del(z); /* delete, line 159 */
if (ret < 0) return ret;
}
return 1;
}
static int r_t_plural(struct SN_env * z) {
static int r_t_plural(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 161 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 162 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 161 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
z->ket = z->c; /* [, line 162 */
if (!(eq_s_b(z, 1, s_13))) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 162 */
{ int m_test = z->l - z->c; /* test, line 162 */
if (in_grouping_b(z, g_V1, 97, 246, 0)) { z->lb = mlimit; return 0; }
z->c = z->l - m_test;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 163 */
if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } /* literal, line 163 */
z->c--;
z->bra = z->c; /* ], line 163 */
{ int m_test2 = z->l - z->c; /* test, line 163 */
if (in_grouping_b(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; } /* grouping V1, line 163 */
z->c = z->l - m_test2;
}
{ int ret = slice_del(z); /* delete, line 163 */
{ int ret = slice_del(z); /* delete, line 164 */
if (ret < 0) return ret;
}
z->lb = mlimit;
z->lb = mlimit1;
}
{ int mlimit; /* setlimit, line 165 */
int m2 = z->l - z->c; (void)m2;
{ int mlimit3; /* setlimit, line 166 */
if (z->c < z->I[1]) return 0;
z->c = z->I[1]; /* tomark, line 165 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m2;
z->ket = z->c; /* [, line 165 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_9, 2); /* substring, line 165 */
if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 165 */
z->lb = mlimit;
mlimit3 = z->lb; z->lb = z->I[1];
z->ket = z->c; /* [, line 166 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } /* substring, line 166 */
among_var = find_among_b(z, a_9, 2);
if (!(among_var)) { z->lb = mlimit3; return 0; }
z->bra = z->c; /* ], line 166 */
z->lb = mlimit3;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 167 */
case 1:
{ int m3 = z->l - z->c; (void)m3; /* not, line 167 */
if (!(eq_s_b(z, 2, s_14))) goto lab0;
{ int m4 = z->l - z->c; (void)m4; /* not, line 168 */
if (!(eq_s_b(z, 2, s_4))) goto lab0; /* literal, line 168 */
return 0;
lab0:
z->c = z->l - m3;
z->c = z->l - m4;
}
break;
}
{ int ret = slice_del(z); /* delete, line 170 */
{ int ret = slice_del(z); /* delete, line 171 */
if (ret < 0) return ret;
}
return 1;
}
static int r_tidy(struct SN_env * z) {
{ int mlimit; /* setlimit, line 173 */
int m1 = z->l - z->c; (void)m1;
static int r_tidy(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 174 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 173 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
{ int m2 = z->l - z->c; (void)m2; /* do, line 174 */
{ int m3 = z->l - z->c; (void)m3; /* and, line 174 */
{ int ret = r_LONG(z);
if (ret == 0) goto lab0; /* call LONG, line 174 */
mlimit1 = z->lb; z->lb = z->I[0];
{ int m2 = z->l - z->c; (void)m2; /* do, line 175 */
{ int m3 = z->l - z->c; (void)m3; /* and, line 175 */
{ int ret = r_LONG(z); /* call LONG, line 175 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
z->c = z->l - m3;
z->ket = z->c; /* [, line 174 */
z->ket = z->c; /* [, line 175 */
if (z->c <= z->lb) goto lab0;
z->c--; /* next, line 174 */
z->bra = z->c; /* ], line 174 */
{ int ret = slice_del(z); /* delete, line 174 */
z->c--; /* next, line 175 */
z->bra = z->c; /* ], line 175 */
{ int ret = slice_del(z); /* delete, line 175 */
if (ret < 0) return ret;
}
}
lab0:
z->c = z->l - m2;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 175 */
z->ket = z->c; /* [, line 175 */
if (in_grouping_b(z, g_AEI, 97, 228, 0)) goto lab1;
z->bra = z->c; /* ], line 175 */
if (out_grouping_b(z, g_V1, 97, 246, 0)) goto lab1;
{ int ret = slice_del(z); /* delete, line 175 */
{ int m4 = z->l - z->c; (void)m4; /* do, line 176 */
z->ket = z->c; /* [, line 176 */
if (in_grouping_b(z, g_AEI, 97, 228, 0)) goto lab1; /* grouping AEI, line 176 */
z->bra = z->c; /* ], line 176 */
if (in_grouping_b(z, g_C, 98, 122, 0)) goto lab1; /* grouping C, line 176 */
{ int ret = slice_del(z); /* delete, line 176 */
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 176 */
z->ket = z->c; /* [, line 176 */
if (!(eq_s_b(z, 1, s_15))) goto lab2;
z->bra = z->c; /* ], line 176 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 176 */
if (!(eq_s_b(z, 1, s_16))) goto lab4;
{ int m5 = z->l - z->c; (void)m5; /* do, line 177 */
z->ket = z->c; /* [, line 177 */
if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2; /* literal, line 177 */
z->c--;
z->bra = z->c; /* ], line 177 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 177 */
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4; /* literal, line 177 */
z->c--;
goto lab3;
lab4:
z->c = z->l - m6;
if (!(eq_s_b(z, 1, s_17))) goto lab2;
if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2; /* literal, line 177 */
z->c--;
}
lab3:
{ int ret = slice_del(z); /* delete, line 176 */
{ int ret = slice_del(z); /* delete, line 177 */
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m5;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 177 */
z->ket = z->c; /* [, line 177 */
if (!(eq_s_b(z, 1, s_18))) goto lab5;
z->bra = z->c; /* ], line 177 */
if (!(eq_s_b(z, 1, s_19))) goto lab5;
{ int ret = slice_del(z); /* delete, line 177 */
{ int m7 = z->l - z->c; (void)m7; /* do, line 178 */
z->ket = z->c; /* [, line 178 */
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 178 */
z->c--;
z->bra = z->c; /* ], line 178 */
if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5; /* literal, line 178 */
z->c--;
{ int ret = slice_del(z); /* delete, line 178 */
if (ret < 0) return ret;
}
lab5:
z->c = z->l - m7;
}
z->lb = mlimit;
z->lb = mlimit1;
}
if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 179 */
z->ket = z->c; /* [, line 179 */
if (z->c <= z->lb) return 0;
z->c--; /* next, line 179 */
z->bra = z->c; /* ], line 179 */
z->S[0] = slice_to(z, z->S[0]); /* -> x, line 179 */
if (z->S[0] == 0) return -1; /* -> x, line 179 */
if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 179 */
{ int ret = slice_del(z); /* delete, line 179 */
if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 180 */
z->ket = z->c; /* [, line 180 */
if (in_grouping_b(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 180 */
z->bra = z->c; /* ], line 180 */
z->S[0] = slice_to(z, z->S[0]); /* -> x, line 180 */
if (z->S[0] == 0) return -1; /* -> x, line 180 */
if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 180 */
{ int ret = slice_del(z); /* delete, line 180 */
if (ret < 0) return ret;
}
return 1;
}
extern int finnish_ISO_8859_1_stem(struct SN_env * z) {
{ int c1 = z->c; /* do, line 185 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 185 */
extern int finnish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 186 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 186 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
z->B[0] = 0; /* unset ending_removed, line 186 */
z->lb = z->c; z->c = z->l; /* backwards, line 187 */
z->B[0] = 0; /* unset ending_removed, line 187 */
z->lb = z->c; z->c = z->l; /* backwards, line 188 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 188 */
{ int ret = r_particle_etc(z);
if (ret == 0) goto lab1; /* call particle_etc, line 188 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 189 */
{ int ret = r_particle_etc(z); /* call particle_etc, line 189 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 189 */
{ int ret = r_possessive(z);
if (ret == 0) goto lab2; /* call possessive, line 189 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 190 */
{ int ret = r_possessive(z); /* call possessive, line 190 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 190 */
{ int ret = r_case_ending(z);
if (ret == 0) goto lab3; /* call case_ending, line 190 */
{ int m4 = z->l - z->c; (void)m4; /* do, line 191 */
{ int ret = r_case_ending(z); /* call case_ending, line 191 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 191 */
{ int ret = r_other_endings(z);
if (ret == 0) goto lab4; /* call other_endings, line 191 */
{ int m5 = z->l - z->c; (void)m5; /* do, line 192 */
{ int ret = r_other_endings(z); /* call other_endings, line 192 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
lab4:
z->c = z->l - m5;
}
{ int m6 = z->l - z->c; (void)m6; /* or, line 192 */
if (!(z->B[0])) goto lab6; /* Boolean test ending_removed, line 192 */
{ int m7 = z->l - z->c; (void)m7; /* do, line 192 */
{ int ret = r_i_plural(z);
if (ret == 0) goto lab7; /* call i_plural, line 192 */
if (ret < 0) return ret;
}
lab7:
z->c = z->l - m7;
/* or, line 193 */
if (!(z->B[0])) goto lab6; /* Boolean test ending_removed, line 193 */
{ int m6 = z->l - z->c; (void)m6; /* do, line 193 */
{ int ret = r_i_plural(z); /* call i_plural, line 193 */
if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
goto lab5;
lab6:
lab7:
z->c = z->l - m6;
{ int m8 = z->l - z->c; (void)m8; /* do, line 192 */
{ int ret = r_t_plural(z);
if (ret == 0) goto lab8; /* call t_plural, line 192 */
if (ret < 0) return ret;
}
lab8:
z->c = z->l - m8;
}
goto lab5;
lab6:
{ int m7 = z->l - z->c; (void)m7; /* do, line 193 */
{ int ret = r_t_plural(z); /* call t_plural, line 193 */
if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
lab8:
z->c = z->l - m7;
}
lab5:
{ int m9 = z->l - z->c; (void)m9; /* do, line 193 */
{ int ret = r_tidy(z);
if (ret == 0) goto lab9; /* call tidy, line 193 */
{ int m8 = z->l - z->c; (void)m8; /* do, line 194 */
{ int ret = r_tidy(z); /* call tidy, line 194 */
if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
z->c = z->l - m9;
z->c = z->l - m8;
}
z->c = z->lb;
return 1;

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -36,12 +36,12 @@ static const symbol s_0_5[1] = { 0xFC };
static const struct among a_0[6] =
{
/* 0 */ { 0, 0, -1, 6, 0},
/* 0 */ { 0, 0, -1, 5, 0},
/* 1 */ { 1, s_0_1, 0, 2, 0},
/* 2 */ { 1, s_0_2, 0, 1, 0},
/* 3 */ { 1, s_0_3, 0, 3, 0},
/* 4 */ { 1, s_0_4, 0, 4, 0},
/* 5 */ { 1, s_0_5, 0, 5, 0}
/* 5 */ { 1, s_0_5, 0, 2, 0}
};
static const symbol s_1_0[1] = { 'e' };
@ -54,13 +54,13 @@ static const symbol s_1_6[2] = { 'e', 's' };
static const struct among a_1[7] =
{
/* 0 */ { 1, s_1_0, -1, 1, 0},
/* 0 */ { 1, s_1_0, -1, 2, 0},
/* 1 */ { 2, s_1_1, -1, 1, 0},
/* 2 */ { 2, s_1_2, -1, 1, 0},
/* 2 */ { 2, s_1_2, -1, 2, 0},
/* 3 */ { 3, s_1_3, -1, 1, 0},
/* 4 */ { 2, s_1_4, -1, 1, 0},
/* 5 */ { 1, s_1_5, -1, 2, 0},
/* 6 */ { 2, s_1_6, 5, 1, 0}
/* 5 */ { 1, s_1_5, -1, 3, 0},
/* 6 */ { 2, s_1_6, 5, 2, 0}
};
static const symbol s_2_0[2] = { 'e', 'n' };
@ -112,165 +112,157 @@ static const unsigned char g_s_ending[] = { 117, 30, 5 };
static const unsigned char g_st_ending[] = { 117, 30, 4 };
static const symbol s_0[] = { 0xDF };
static const symbol s_1[] = { 's', 's' };
static const symbol s_2[] = { 'u' };
static const symbol s_3[] = { 'U' };
static const symbol s_4[] = { 'y' };
static const symbol s_5[] = { 'Y' };
static const symbol s_6[] = { 'y' };
static const symbol s_7[] = { 'u' };
static const symbol s_8[] = { 'a' };
static const symbol s_9[] = { 'o' };
static const symbol s_10[] = { 'u' };
static const symbol s_11[] = { 'i', 'g' };
static const symbol s_12[] = { 'e' };
static const symbol s_13[] = { 'e' };
static const symbol s_14[] = { 'e', 'r' };
static const symbol s_15[] = { 'e', 'n' };
static const symbol s_0[] = { 's', 's' };
static const symbol s_1[] = { 'U' };
static const symbol s_2[] = { 'Y' };
static const symbol s_3[] = { 'y' };
static const symbol s_4[] = { 'u' };
static const symbol s_5[] = { 'a' };
static const symbol s_6[] = { 'o' };
static const symbol s_7[] = { 'n', 'i', 's' };
static const symbol s_8[] = { 'i', 'g' };
static const symbol s_9[] = { 'e', 'r' };
static const symbol s_10[] = { 'e', 'n' };
static int r_prelude(struct SN_env * z) {
{ int c_test = z->c; /* test, line 30 */
while(1) { /* repeat, line 30 */
int c1 = z->c;
{ int c2 = z->c; /* or, line 33 */
z->bra = z->c; /* [, line 32 */
if (!(eq_s(z, 1, s_0))) goto lab2;
z->ket = z->c; /* ], line 32 */
{ int ret = slice_from_s(z, 2, s_1); /* <-, line 32 */
static int r_prelude(struct SN_env * z) { /* forwardmode */
{ int c_test1 = z->c; /* test, line 35 */
while(1) { /* repeat, line 35 */
int c2 = z->c;
{ int c3 = z->c; /* or, line 38 */
z->bra = z->c; /* [, line 37 */
if (z->c == z->l || z->p[z->c] != 0xDF) goto lab2; /* literal, line 37 */
z->c++;
z->ket = z->c; /* ], line 37 */
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 37 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
z->c = c2;
z->c = c3;
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 33 */
z->c++; /* next, line 38 */
}
lab1:
continue;
lab0:
z->c = c1;
z->c = c2;
break;
}
z->c = c_test;
z->c = c_test1;
}
while(1) { /* repeat, line 36 */
int c3 = z->c;
while(1) { /* goto, line 36 */
int c4 = z->c;
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
z->bra = z->c; /* [, line 37 */
{ int c5 = z->c; /* or, line 37 */
if (!(eq_s(z, 1, s_2))) goto lab6;
z->ket = z->c; /* ], line 37 */
if (in_grouping(z, g_v, 97, 252, 0)) goto lab6;
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 37 */
while(1) { /* repeat, line 41 */
int c4 = z->c;
while(1) { /* goto, line 41 */
int c5 = z->c;
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 42 */
z->bra = z->c; /* [, line 42 */
{ int c6 = z->c; /* or, line 42 */
if (z->c == z->l || z->p[z->c] != 'u') goto lab6; /* literal, line 42 */
z->c++;
z->ket = z->c; /* ], line 42 */
if (in_grouping(z, g_v, 97, 252, 0)) goto lab6; /* grouping v, line 42 */
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 42 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
z->c = c5;
if (!(eq_s(z, 1, s_4))) goto lab4;
z->ket = z->c; /* ], line 38 */
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 38 */
z->c = c6;
if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 43 */
z->c++;
z->ket = z->c; /* ], line 43 */
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 43 */
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 43 */
if (ret < 0) return ret;
}
}
lab5:
z->c = c4;
z->c = c5;
break;
lab4:
z->c = c4;
z->c = c5;
if (z->c >= z->l) goto lab3;
z->c++; /* goto, line 36 */
z->c++; /* goto, line 41 */
}
continue;
lab3:
z->c = c3;
z->c = c4;
break;
}
return 1;
}
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
{ int c_test = z->c; /* test, line 47 */
{ int ret = z->c + 3;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 49 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 50 */
{ int c_test1 = z->c; /* test, line 52 */
{ int ret = z->c + 3; /* hop, line 52 */
if (0 > ret || ret > z->l) return 0;
z->c = ret; /* hop, line 47 */
z->c = ret;
}
z->I[2] = z->c; /* setmark x, line 47 */
z->c = c_test;
z->I[2] = z->c; /* setmark x, line 52 */
z->c = c_test1;
}
{ /* gopast */ /* grouping v, line 49 */
{ /* gopast */ /* grouping v, line 54 */
int ret = out_grouping(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
{ /* gopast */ /* non v, line 49 */
{ /* gopast */ /* non v, line 54 */
int ret = in_grouping(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 49 */
/* try, line 50 */
if (!(z->I[0] < z->I[2])) goto lab0;
z->I[0] = z->I[2];
z->I[0] = z->c; /* setmark p1, line 54 */
/* try, line 55 */
if (!(z->I[0] < z->I[2])) goto lab0; /* $(<integer expression> < <integer expression>), line 55 */
z->I[0] = z->I[2]; /* $p1 = <integer expression>, line 55 */
lab0:
{ /* gopast */ /* grouping v, line 51 */
{ /* gopast */ /* grouping v, line 56 */
int ret = out_grouping(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
{ /* gopast */ /* non v, line 51 */
{ /* gopast */ /* non v, line 56 */
int ret = in_grouping(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 51 */
z->I[1] = z->c; /* setmark p2, line 56 */
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 55 */
while(1) { /* repeat, line 60 */
int c1 = z->c;
z->bra = z->c; /* [, line 57 */
among_var = find_among(z, a_0, 6); /* substring, line 57 */
z->bra = z->c; /* [, line 62 */
among_var = find_among(z, a_0, 6); /* substring, line 62 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 57 */
switch(among_var) {
case 0: goto lab0;
z->ket = z->c; /* ], line 62 */
switch (among_var) { /* among, line 62 */
case 1:
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 58 */
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 63 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 59 */
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 64 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 60 */
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 65 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 61 */
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 62 */
if (ret < 0) return ret;
}
break;
case 6:
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 63 */
z->c++; /* next, line 68 */
break;
}
continue;
@ -281,38 +273,54 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 75 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 76 */
return 1;
}
static int r_standard_suffix(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 74 */
z->ket = z->c; /* [, line 75 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
among_var = find_among_b(z, a_1, 7); /* substring, line 75 */
{ int m1 = z->l - z->c; (void)m1; /* do, line 79 */
z->ket = z->c; /* [, line 80 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 80 */
among_var = find_among_b(z, a_1, 7);
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 75 */
{ int ret = r_R1(z);
if (ret == 0) goto lab0; /* call R1, line 75 */
z->bra = z->c; /* ], line 80 */
{ int ret = r_R1(z); /* call R1, line 80 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 80 */
case 1:
{ int ret = slice_del(z); /* delete, line 77 */
{ int ret = slice_del(z); /* delete, line 82 */
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0;
{ int ret = slice_del(z); /* delete, line 80 */
{ int ret = slice_del(z); /* delete, line 85 */
if (ret < 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* try, line 86 */
z->ket = z->c; /* [, line 86 */
if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; } /* literal, line 86 */
z->c--;
z->bra = z->c; /* ], line 86 */
if (!(eq_s_b(z, 3, s_7))) { z->c = z->l - m2; goto lab1; } /* literal, line 86 */
{ int ret = slice_del(z); /* delete, line 86 */
if (ret < 0) return ret;
}
lab1:
;
}
break;
case 3:
if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0; /* grouping s_ending, line 89 */
{ int ret = slice_del(z); /* delete, line 89 */
if (ret < 0) return ret;
}
break;
@ -320,179 +328,171 @@ static int r_standard_suffix(struct SN_env * z) {
lab0:
z->c = z->l - m1;
}
{ int m2 = z->l - z->c; (void)m2; /* do, line 84 */
z->ket = z->c; /* [, line 85 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1;
among_var = find_among_b(z, a_2, 4); /* substring, line 85 */
if (!(among_var)) goto lab1;
z->bra = z->c; /* ], line 85 */
{ int ret = r_R1(z);
if (ret == 0) goto lab1; /* call R1, line 85 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: goto lab1;
case 1:
{ int ret = slice_del(z); /* delete, line 87 */
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab1;
{ int ret = z->c - 3;
if (z->lb > ret || ret > z->l) goto lab1;
z->c = ret; /* hop, line 90 */
}
{ int ret = slice_del(z); /* delete, line 90 */
if (ret < 0) return ret;
}
break;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 94 */
z->ket = z->c; /* [, line 95 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
among_var = find_among_b(z, a_4, 8); /* substring, line 95 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 93 */
z->ket = z->c; /* [, line 94 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 94 */
among_var = find_among_b(z, a_2, 4);
if (!(among_var)) goto lab2;
z->bra = z->c; /* ], line 95 */
{ int ret = r_R2(z);
if (ret == 0) goto lab2; /* call R2, line 95 */
z->bra = z->c; /* ], line 94 */
{ int ret = r_R1(z); /* call R1, line 94 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
switch(among_var) {
case 0: goto lab2;
switch (among_var) { /* among, line 94 */
case 1:
{ int ret = slice_del(z); /* delete, line 97 */
{ int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 98 */
z->ket = z->c; /* [, line 98 */
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab3; }
z->bra = z->c; /* ], line 98 */
{ int m4 = z->l - z->c; (void)m4; /* not, line 98 */
if (!(eq_s_b(z, 1, s_12))) goto lab4;
{ z->c = z->l - m_keep; goto lab3; }
lab4:
z->c = z->l - m4;
}
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 98 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 98 */
if (ret < 0) return ret;
}
lab3:
;
}
break;
case 2:
{ int m5 = z->l - z->c; (void)m5; /* not, line 101 */
if (!(eq_s_b(z, 1, s_13))) goto lab5;
goto lab2;
lab5:
z->c = z->l - m5;
if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab2; /* grouping st_ending, line 99 */
{ int ret = z->c - 3; /* hop, line 99 */
if (z->lb > ret || ret > z->l) goto lab2;
z->c = ret;
}
{ int ret = slice_del(z); /* delete, line 101 */
{ int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 104 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 105 */
z->ket = z->c; /* [, line 106 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 106 */
if (!(eq_s_b(z, 2, s_14))) goto lab8;
goto lab7;
lab8:
z->c = z->l - m6;
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab6; }
}
lab7:
z->bra = z->c; /* ], line 106 */
{ int ret = r_R1(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call R1, line 106 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 106 */
if (ret < 0) return ret;
}
lab6:
;
}
break;
case 4:
{ int ret = slice_del(z); /* delete, line 110 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
z->ket = z->c; /* [, line 112 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m_keep; goto lab9; }
among_var = find_among_b(z, a_3, 2); /* substring, line 112 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab9; }
z->bra = z->c; /* ], line 112 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab9; } /* call R2, line 112 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab9; }
case 1:
{ int ret = slice_del(z); /* delete, line 114 */
if (ret < 0) return ret;
}
break;
}
lab9:
;
}
break;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 103 */
z->ket = z->c; /* [, line 104 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 104 */
among_var = find_among_b(z, a_4, 8);
if (!(among_var)) goto lab3;
z->bra = z->c; /* ], line 104 */
{ int ret = r_R2(z); /* call R2, line 104 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
switch (among_var) { /* among, line 104 */
case 1:
{ int ret = slice_del(z); /* delete, line 106 */
if (ret < 0) return ret;
}
{ int m5 = z->l - z->c; (void)m5; /* try, line 107 */
z->ket = z->c; /* [, line 107 */
if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m5; goto lab4; } /* literal, line 107 */
z->bra = z->c; /* ], line 107 */
{ int m6 = z->l - z->c; (void)m6; /* not, line 107 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5; /* literal, line 107 */
z->c--;
{ z->c = z->l - m5; goto lab4; }
lab5:
z->c = z->l - m6;
}
{ int ret = r_R2(z); /* call R2, line 107 */
if (ret == 0) { z->c = z->l - m5; goto lab4; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 107 */
if (ret < 0) return ret;
}
lab4:
;
}
break;
case 2:
{ int m7 = z->l - z->c; (void)m7; /* not, line 110 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 110 */
z->c--;
goto lab3;
lab6:
z->c = z->l - m7;
}
{ int ret = slice_del(z); /* delete, line 110 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 113 */
if (ret < 0) return ret;
}
{ int m8 = z->l - z->c; (void)m8; /* try, line 114 */
z->ket = z->c; /* [, line 115 */
{ int m9 = z->l - z->c; (void)m9; /* or, line 115 */
if (!(eq_s_b(z, 2, s_9))) goto lab9; /* literal, line 115 */
goto lab8;
lab9:
z->c = z->l - m9;
if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m8; goto lab7; } /* literal, line 115 */
}
lab8:
z->bra = z->c; /* ], line 115 */
{ int ret = r_R1(z); /* call R1, line 115 */
if (ret == 0) { z->c = z->l - m8; goto lab7; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 115 */
if (ret < 0) return ret;
}
lab7:
;
}
break;
case 4:
{ int ret = slice_del(z); /* delete, line 119 */
if (ret < 0) return ret;
}
{ int m10 = z->l - z->c; (void)m10; /* try, line 120 */
z->ket = z->c; /* [, line 121 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; } /* substring, line 121 */
if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; }
z->bra = z->c; /* ], line 121 */
{ int ret = r_R2(z); /* call R2, line 121 */
if (ret == 0) { z->c = z->l - m10; goto lab10; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 123 */
if (ret < 0) return ret;
}
lab10:
;
}
break;
}
lab3:
z->c = z->l - m4;
}
return 1;
}
extern int german_ISO_8859_1_stem(struct SN_env * z) {
{ int c1 = z->c; /* do, line 125 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 125 */
extern int german_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 134 */
{ int ret = r_prelude(z); /* call prelude, line 134 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 126 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 126 */
{ int c2 = z->c; /* do, line 135 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 135 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 127 */
z->lb = z->c; z->c = z->l; /* backwards, line 136 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 128 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab2; /* call standard_suffix, line 128 */
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
/* do, line 137 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 137 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->lb;
{ int c4 = z->c; /* do, line 129 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab3; /* call postlude, line 129 */
{ int c3 = z->c; /* do, line 138 */
{ int ret = r_postlude(z); /* call postlude, line 138 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = c4;
z->c = c3;
}
return 1;
}

View File

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

View File

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

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -476,34 +476,29 @@ static const symbol s_2[] = { 0xEC };
static const symbol s_3[] = { 0xF2 };
static const symbol s_4[] = { 0xF9 };
static const symbol s_5[] = { 'q', 'U' };
static const symbol s_6[] = { 'u' };
static const symbol s_7[] = { 'U' };
static const symbol s_6[] = { 'U' };
static const symbol s_7[] = { 'I' };
static const symbol s_8[] = { 'i' };
static const symbol s_9[] = { 'I' };
static const symbol s_10[] = { 'i' };
static const symbol s_11[] = { 'u' };
static const symbol s_12[] = { 'e' };
static const symbol s_13[] = { 'i', 'c' };
static const symbol s_14[] = { 'l', 'o', 'g' };
static const symbol s_15[] = { 'u' };
static const symbol s_16[] = { 'e', 'n', 't', 'e' };
static const symbol s_17[] = { 'a', 't' };
static const symbol s_18[] = { 'a', 't' };
static const symbol s_19[] = { 'i', 'c' };
static const symbol s_20[] = { 'i' };
static const symbol s_21[] = { 'h' };
static const symbol s_9[] = { 'u' };
static const symbol s_10[] = { 'e' };
static const symbol s_11[] = { 'i', 'c' };
static const symbol s_12[] = { 'l', 'o', 'g' };
static const symbol s_13[] = { 'u' };
static const symbol s_14[] = { 'e', 'n', 't', 'e' };
static const symbol s_15[] = { 'a', 't' };
static const symbol s_16[] = { 'a', 't' };
static const symbol s_17[] = { 'i', 'c' };
static int r_prelude(struct SN_env * z) {
static int r_prelude(struct SN_env * z) { /* forwardmode */
int among_var;
{ int c_test = z->c; /* test, line 35 */
{ int c_test1 = z->c; /* test, line 35 */
while(1) { /* repeat, line 35 */
int c1 = z->c;
int c2 = z->c;
z->bra = z->c; /* [, line 36 */
among_var = find_among(z, a_0, 7); /* substring, line 36 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 36 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 36 */
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 37 */
if (ret < 0) return ret;
@ -541,59 +536,61 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab0:
z->c = c1;
z->c = c2;
break;
}
z->c = c_test;
z->c = c_test1;
}
while(1) { /* repeat, line 46 */
int c2 = z->c;
int c3 = z->c;
while(1) { /* goto, line 46 */
int c3 = z->c;
if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
int c4 = z->c;
if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 47 */
z->bra = z->c; /* [, line 47 */
{ int c4 = z->c; /* or, line 47 */
if (!(eq_s(z, 1, s_6))) goto lab4;
{ int c5 = z->c; /* or, line 47 */
if (z->c == z->l || z->p[z->c] != 'u') goto lab4; /* literal, line 47 */
z->c++;
z->ket = z->c; /* ], line 47 */
if (in_grouping(z, g_v, 97, 249, 0)) goto lab4;
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 47 */
if (in_grouping(z, g_v, 97, 249, 0)) goto lab4; /* grouping v, line 47 */
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 47 */
if (ret < 0) return ret;
}
goto lab3;
lab4:
z->c = c4;
if (!(eq_s(z, 1, s_8))) goto lab2;
z->c = c5;
if (z->c == z->l || z->p[z->c] != 'i') goto lab2; /* literal, line 48 */
z->c++;
z->ket = z->c; /* ], line 48 */
if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 48 */
if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 48 */
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 48 */
if (ret < 0) return ret;
}
}
lab3:
z->c = c3;
z->c = c4;
break;
lab2:
z->c = c3;
z->c = c4;
if (z->c >= z->l) goto lab1;
z->c++; /* goto, line 46 */
}
continue;
lab1:
z->c = c2;
z->c = c3;
break;
}
return 1;
}
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 54 */
z->I[1] = z->l; /* $p1 = <integer expression>, line 55 */
z->I[2] = z->l; /* $p2 = <integer expression>, line 56 */
{ int c1 = z->c; /* do, line 58 */
{ int c2 = z->c; /* or, line 60 */
if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 59 */
{ int c3 = z->c; /* or, line 59 */
if (out_grouping(z, g_v, 97, 249, 0)) goto lab4;
if (out_grouping(z, g_v, 97, 249, 0)) goto lab4; /* non v, line 59 */
{ /* gopast */ /* grouping v, line 59 */
int ret = out_grouping(z, g_v, 97, 249, 1);
if (ret < 0) goto lab4;
@ -602,7 +599,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab3;
lab4:
z->c = c3;
if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 59 */
{ /* gopast */ /* non v, line 59 */
int ret = in_grouping(z, g_v, 97, 249, 1);
if (ret < 0) goto lab2;
@ -613,9 +610,9 @@ static int r_mark_regions(struct SN_env * z) {
goto lab1;
lab2:
z->c = c2;
if (out_grouping(z, g_v, 97, 249, 0)) goto lab0;
if (out_grouping(z, g_v, 97, 249, 0)) goto lab0; /* non v, line 61 */
{ int c4 = z->c; /* or, line 61 */
if (out_grouping(z, g_v, 97, 249, 0)) goto lab6;
if (out_grouping(z, g_v, 97, 249, 0)) goto lab6; /* non v, line 61 */
{ /* gopast */ /* grouping v, line 61 */
int ret = out_grouping(z, g_v, 97, 249, 1);
if (ret < 0) goto lab6;
@ -624,7 +621,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab5;
lab6:
z->c = c4;
if (in_grouping(z, g_v, 97, 249, 0)) goto lab0;
if (in_grouping(z, g_v, 97, 249, 0)) goto lab0; /* grouping v, line 61 */
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 61 */
}
@ -665,24 +662,23 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 70 */
int c1 = z->c;
z->bra = z->c; /* [, line 72 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
among_var = find_among(z, a_1, 3); /* substring, line 72 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else /* substring, line 72 */
among_var = find_among(z, a_1, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 72 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 72 */
case 1:
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 73 */
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 73 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_11); /* <-, line 74 */
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
@ -699,43 +695,41 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
static int r_RV(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_RV(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 82 */
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 83 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[2] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 84 */
return 1;
}
static int r_attached_pronoun(struct SN_env * z) {
static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 87 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_2, 37))) return 0; /* substring, line 87 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 87 */
if (!(find_among_b(z, a_2, 37))) return 0;
z->bra = z->c; /* ], line 87 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
among_var = find_among_b(z, a_3, 5); /* among, line 97 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; /* among, line 97 */
among_var = find_among_b(z, a_3, 5);
if (!(among_var)) return 0;
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 97 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 97 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 97 */
case 1:
{ int ret = slice_del(z); /* delete, line 98 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_12); /* <-, line 99 */
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 99 */
if (ret < 0) return ret;
}
break;
@ -743,37 +737,34 @@ static int r_attached_pronoun(struct SN_env * z) {
return 1;
}
static int r_standard_suffix(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 104 */
among_var = find_among_b(z, a_6, 51); /* substring, line 104 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 104 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 104 */
case 1:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 111 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 111 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 111 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 113 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 113 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 113 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 114 */
{ int m1 = z->l - z->c; (void)m1; /* try, line 114 */
z->ket = z->c; /* [, line 114 */
if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m_keep; goto lab0; }
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m1; goto lab0; } /* literal, line 114 */
z->bra = z->c; /* ], line 114 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 114 */
{ int ret = r_R2(z); /* call R2, line 114 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 114 */
@ -784,70 +775,64 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 3:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 117 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 117 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 3, s_14); /* <-, line 117 */
{ int ret = slice_from_s(z, 3, s_12); /* <-, line 117 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 119 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 119 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 1, s_15); /* <-, line 119 */
{ int ret = slice_from_s(z, 1, s_13); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 121 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 121 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 4, s_16); /* <-, line 121 */
{ int ret = slice_from_s(z, 4, s_14); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 123 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 123 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 123 */
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 125 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 125 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 125 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 126 */
{ int m2 = z->l - z->c; (void)m2; /* try, line 126 */
z->ket = z->c; /* [, line 127 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab1; }
among_var = find_among_b(z, a_4, 4); /* substring, line 127 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } /* substring, line 127 */
among_var = find_among_b(z, a_4, 4);
if (!(among_var)) { z->c = z->l - m2; goto lab1; }
z->bra = z->c; /* ], line 127 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 127 */
{ int ret = r_R2(z); /* call R2, line 127 */
if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 127 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab1; }
switch (among_var) { /* among, line 127 */
case 1:
z->ket = z->c; /* [, line 128 */
if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m_keep; goto lab1; }
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m2; goto lab1; } /* literal, line 128 */
z->bra = z->c; /* ], line 128 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 128 */
{ int ret = r_R2(z); /* call R2, line 128 */
if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 128 */
@ -860,59 +845,51 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 8:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 134 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 134 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 135 */
{ int m3 = z->l - z->c; (void)m3; /* try, line 135 */
z->ket = z->c; /* [, line 136 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab2; }
among_var = find_among_b(z, a_5, 3); /* substring, line 136 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } /* substring, line 136 */
if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m3; goto lab2; }
z->bra = z->c; /* ], line 136 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab2; }
case 1:
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 137 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 137 */
if (ret < 0) return ret;
}
break;
{ int ret = r_R2(z); /* call R2, line 137 */
if (ret == 0) { z->c = z->l - m3; goto lab2; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 137 */
if (ret < 0) return ret;
}
lab2:
;
}
break;
case 9:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 142 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 142 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 142 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 143 */
{ int m4 = z->l - z->c; (void)m4; /* try, line 143 */
z->ket = z->c; /* [, line 143 */
if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m_keep; goto lab3; }
if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */
z->bra = z->c; /* ], line 143 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 143 */
{ int ret = r_R2(z); /* call R2, line 143 */
if (ret == 0) { z->c = z->l - m4; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 143 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 143 */
if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m_keep; goto lab3; }
if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */
z->bra = z->c; /* ], line 143 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 143 */
{ int ret = r_R2(z); /* call R2, line 143 */
if (ret == 0) { z->c = z->l - m4; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 143 */
@ -926,48 +903,40 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
static int r_verb_suffix(struct SN_env * z) {
int among_var;
{ int mlimit; /* setlimit, line 148 */
int m1 = z->l - z->c; (void)m1;
static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 148 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 148 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 149 */
among_var = find_among_b(z, a_7, 87); /* substring, line 149 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; } /* substring, line 149 */
z->bra = z->c; /* ], line 149 */
switch(among_var) {
case 0: { z->lb = mlimit; return 0; }
case 1:
{ int ret = slice_del(z); /* delete, line 163 */
if (ret < 0) return ret;
}
break;
{ int ret = slice_del(z); /* delete, line 163 */
if (ret < 0) return ret;
}
z->lb = mlimit;
z->lb = mlimit1;
}
return 1;
}
static int r_vowel_suffix(struct SN_env * z) {
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 171 */
static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */
{ int m1 = z->l - z->c; (void)m1; /* try, line 171 */
z->ket = z->c; /* [, line 172 */
if (in_grouping_b(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m_keep; goto lab0; }
if (in_grouping_b(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m1; goto lab0; } /* grouping AEIO, line 172 */
z->bra = z->c; /* ], line 172 */
{ int ret = r_RV(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 172 */
{ int ret = r_RV(z); /* call RV, line 172 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 172 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 173 */
if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m_keep; goto lab0; }
if (z->c <= z->lb || z->p[z->c - 1] != 'i') { z->c = z->l - m1; goto lab0; } /* literal, line 173 */
z->c--;
z->bra = z->c; /* ], line 173 */
{ int ret = r_RV(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 173 */
{ int ret = r_RV(z); /* call RV, line 173 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 173 */
@ -976,13 +945,14 @@ static int r_vowel_suffix(struct SN_env * z) {
lab0:
;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 175 */
{ int m2 = z->l - z->c; (void)m2; /* try, line 175 */
z->ket = z->c; /* [, line 176 */
if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m_keep; goto lab1; }
if (z->c <= z->lb || z->p[z->c - 1] != 'h') { z->c = z->l - m2; goto lab1; } /* literal, line 176 */
z->c--;
z->bra = z->c; /* ], line 176 */
if (in_grouping_b(z, g_CG, 99, 103, 0)) { z->c = z->l - m_keep; goto lab1; }
{ int ret = r_RV(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call RV, line 176 */
if (in_grouping_b(z, g_CG, 99, 103, 0)) { z->c = z->l - m2; goto lab1; } /* grouping CG, line 176 */
{ int ret = r_RV(z); /* call RV, line 176 */
if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 176 */
@ -994,67 +964,65 @@ static int r_vowel_suffix(struct SN_env * z) {
return 1;
}
extern int italian_ISO_8859_1_stem(struct SN_env * z) {
extern int italian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 182 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 182 */
{ int ret = r_prelude(z); /* call prelude, line 182 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 183 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 183 */
if (ret < 0) return ret;
}
lab1:
z->c = c2;
/* do, line 183 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 183 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->lb = z->c; z->c = z->l; /* backwards, line 184 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 185 */
{ int ret = r_attached_pronoun(z);
if (ret == 0) goto lab2; /* call attached_pronoun, line 185 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 185 */
{ int ret = r_attached_pronoun(z); /* call attached_pronoun, line 185 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
z->c = z->l - m2;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 186 */
{ int m5 = z->l - z->c; (void)m5; /* or, line 186 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab5; /* call standard_suffix, line 186 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 186 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 186 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 186 */
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
goto lab4;
lab5:
z->c = z->l - m5;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab3; /* call verb_suffix, line 186 */
z->c = z->l - m4;
{ int ret = r_verb_suffix(z); /* call verb_suffix, line 186 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
}
lab4:
lab3:
z->c = z->l - m4;
z->c = z->l - m3;
}
{ int m6 = z->l - z->c; (void)m6; /* do, line 187 */
{ int ret = r_vowel_suffix(z);
if (ret == 0) goto lab6; /* call vowel_suffix, line 187 */
{ int m5 = z->l - z->c; (void)m5; /* do, line 187 */
{ int ret = r_vowel_suffix(z); /* call vowel_suffix, line 187 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
z->c = z->l - m6;
z->c = z->l - m5;
}
z->c = z->lb;
{ int c7 = z->c; /* do, line 189 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab7; /* call postlude, line 189 */
{ int c6 = z->c; /* do, line 189 */
{ int ret = r_postlude(z); /* call postlude, line 189 */
if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
z->c = c7;
z->c = c6;
}
return 1;
}

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -129,18 +129,17 @@ static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
static const unsigned char g_s_ending[] = { 119, 125, 149, 1 };
static const symbol s_0[] = { 'k' };
static const symbol s_1[] = { 'e', 'r' };
static const symbol s_0[] = { 'e', 'r' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
{ int c_test = z->c; /* test, line 30 */
{ int ret = z->c + 3;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */
{ int c_test1 = z->c; /* test, line 30 */
{ int ret = z->c + 3; /* hop, line 30 */
if (0 > ret || ret > z->l) return 0;
z->c = ret; /* hop, line 30 */
z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 30 */
z->c = c_test;
z->c = c_test1;
}
if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 31 */
{ /* gopast */ /* non v, line 31 */
@ -149,30 +148,27 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 31 */
/* try, line 32 */
if (!(z->I[0] < z->I[1])) goto lab0;
z->I[0] = z->I[1];
/* try, line 32 */
if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 32 */
z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 32 */
lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) {
static int r_main_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 38 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 38 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 38 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 38 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_0, 29); /* substring, line 38 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 38 */
among_var = find_among_b(z, a_0, 29);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 38 */
z->lb = mlimit;
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 39 */
case 1:
{ int ret = slice_del(z); /* delete, line 44 */
if (ret < 0) return ret;
@ -180,12 +176,13 @@ static int r_main_suffix(struct SN_env * z) {
break;
case 2:
{ int m2 = z->l - z->c; (void)m2; /* or, line 46 */
if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1;
if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1; /* grouping s_ending, line 46 */
goto lab0;
lab1:
z->c = z->l - m2;
if (!(eq_s_b(z, 1, s_0))) return 0;
if (out_grouping_b(z, g_v, 97, 248, 0)) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0; /* literal, line 46 */
z->c--;
if (out_grouping_b(z, g_v, 97, 248, 0)) return 0; /* non v, line 46 */
}
lab0:
{ int ret = slice_del(z); /* delete, line 46 */
@ -193,7 +190,7 @@ static int r_main_suffix(struct SN_env * z) {
}
break;
case 3:
{ int ret = slice_from_s(z, 2, s_1); /* <-, line 48 */
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 48 */
if (ret < 0) return ret;
}
break;
@ -201,21 +198,19 @@ static int r_main_suffix(struct SN_env * z) {
return 1;
}
static int r_consonant_pair(struct SN_env * z) {
{ int m_test = z->l - z->c; /* test, line 53 */
{ int mlimit; /* setlimit, line 54 */
int m1 = z->l - z->c; (void)m1;
static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 53 */
{ int mlimit2; /* setlimit, line 54 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 54 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 54 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit; return 0; } /* substring, line 54 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; } /* substring, line 54 */
if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 54 */
z->lb = mlimit;
z->lb = mlimit2;
}
z->c = z->l - m_test;
z->c = z->l - m_test1;
}
if (z->c <= z->lb) return 0;
z->c--; /* next, line 59 */
@ -226,36 +221,27 @@ static int r_consonant_pair(struct SN_env * z) {
return 1;
}
static int r_other_suffix(struct SN_env * z) {
int among_var;
{ int mlimit; /* setlimit, line 63 */
int m1 = z->l - z->c; (void)m1;
static int r_other_suffix(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 63 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 63 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 63 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_2, 11); /* substring, line 63 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 63 */
if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 63 */
z->lb = mlimit;
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = slice_del(z); /* delete, line 67 */
if (ret < 0) return ret;
}
break;
{ int ret = slice_del(z); /* delete, line 67 */
if (ret < 0) return ret;
}
return 1;
}
extern int norwegian_ISO_8859_1_stem(struct SN_env * z) {
extern int norwegian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 74 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 74 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 74 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
@ -264,24 +250,24 @@ extern int norwegian_ISO_8859_1_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 75 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 76 */
{ int ret = r_main_suffix(z);
if (ret == 0) goto lab1; /* call main_suffix, line 76 */
{ int ret = r_main_suffix(z); /* call main_suffix, line 76 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 77 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab2; /* call consonant_pair, line 77 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 77 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 78 */
{ int ret = r_other_suffix(z);
if (ret == 0) goto lab3; /* call other_suffix, line 78 */
{ int ret = r_other_suffix(z); /* call other_suffix, line 78 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -115,21 +115,21 @@ static const struct among a_3[20] =
/* 2 */ { 4, s_3_2, -1, 4, 0},
/* 3 */ { 3, s_3_3, -1, 6, 0},
/* 4 */ { 4, s_3_4, -1, 9, 0},
/* 5 */ { 5, s_3_5, -1, 12, 0},
/* 5 */ { 5, s_3_5, -1, 11, 0},
/* 6 */ { 5, s_3_6, -1, 5, 0},
/* 7 */ { 5, s_3_7, -1, 10, 0},
/* 8 */ { 6, s_3_8, -1, 14, 0},
/* 9 */ { 5, s_3_9, -1, 13, 0},
/* 7 */ { 5, s_3_7, -1, 9, 0},
/* 8 */ { 6, s_3_8, -1, 13, 0},
/* 9 */ { 5, s_3_9, -1, 12, 0},
/* 10 */ { 6, s_3_10, -1, 1, 0},
/* 11 */ { 7, s_3_11, 10, 8, 0},
/* 12 */ { 5, s_3_12, -1, 10, 0},
/* 12 */ { 5, s_3_12, -1, 9, 0},
/* 13 */ { 5, s_3_13, -1, 8, 0},
/* 14 */ { 7, s_3_14, 13, 7, 0},
/* 15 */ { 4, s_3_15, -1, 7, 0},
/* 16 */ { 4, s_3_16, -1, 8, 0},
/* 17 */ { 7, s_3_17, -1, 13, 0},
/* 18 */ { 7, s_3_18, -1, 11, 0},
/* 19 */ { 7, s_3_19, -1, 12, 0}
/* 17 */ { 7, s_3_17, -1, 12, 0},
/* 18 */ { 7, s_3_18, -1, 10, 0},
/* 19 */ { 7, s_3_19, -1, 11, 0}
};
static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
@ -203,63 +203,51 @@ static const symbol s_1[] = { 'i' };
static const symbol s_2[] = { 'e', 'e' };
static const symbol s_3[] = { 'e' };
static const symbol s_4[] = { 'e' };
static const symbol s_5[] = { 'y' };
static const symbol s_6[] = { 'Y' };
static const symbol s_7[] = { 'i' };
static const symbol s_8[] = { 't', 'i', 'o', 'n' };
static const symbol s_9[] = { 'e', 'n', 'c', 'e' };
static const symbol s_10[] = { 'a', 'n', 'c', 'e' };
static const symbol s_11[] = { 'a', 'b', 'l', 'e' };
static const symbol s_12[] = { 'e', 'n', 't' };
static const symbol s_13[] = { 'e' };
static const symbol s_14[] = { 'i', 'z', 'e' };
static const symbol s_15[] = { 'a', 't', 'e' };
static const symbol s_16[] = { 'a', 'l' };
static const symbol s_17[] = { 'a', 'l' };
static const symbol s_18[] = { 'f', 'u', 'l' };
static const symbol s_19[] = { 'o', 'u', 's' };
static const symbol s_20[] = { 'i', 'v', 'e' };
static const symbol s_21[] = { 'b', 'l', 'e' };
static const symbol s_22[] = { 'a', 'l' };
static const symbol s_23[] = { 'i', 'c' };
static const symbol s_24[] = { 's' };
static const symbol s_25[] = { 't' };
static const symbol s_26[] = { 'e' };
static const symbol s_27[] = { 'l' };
static const symbol s_28[] = { 'l' };
static const symbol s_29[] = { 'y' };
static const symbol s_30[] = { 'Y' };
static const symbol s_31[] = { 'y' };
static const symbol s_32[] = { 'Y' };
static const symbol s_33[] = { 'Y' };
static const symbol s_34[] = { 'y' };
static const symbol s_5[] = { 'i' };
static const symbol s_6[] = { 't', 'i', 'o', 'n' };
static const symbol s_7[] = { 'e', 'n', 'c', 'e' };
static const symbol s_8[] = { 'a', 'n', 'c', 'e' };
static const symbol s_9[] = { 'a', 'b', 'l', 'e' };
static const symbol s_10[] = { 'e', 'n', 't' };
static const symbol s_11[] = { 'e' };
static const symbol s_12[] = { 'i', 'z', 'e' };
static const symbol s_13[] = { 'a', 't', 'e' };
static const symbol s_14[] = { 'a', 'l' };
static const symbol s_15[] = { 'f', 'u', 'l' };
static const symbol s_16[] = { 'o', 'u', 's' };
static const symbol s_17[] = { 'i', 'v', 'e' };
static const symbol s_18[] = { 'b', 'l', 'e' };
static const symbol s_19[] = { 'a', 'l' };
static const symbol s_20[] = { 'i', 'c' };
static const symbol s_21[] = { 'Y' };
static const symbol s_22[] = { 'Y' };
static const symbol s_23[] = { 'y' };
static int r_shortv(struct SN_env * z) {
if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) return 0;
if (in_grouping_b(z, g_v, 97, 121, 0)) return 0;
if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
static int r_shortv(struct SN_env * z) { /* backwardmode */
if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) return 0; /* non v_WXY, line 19 */
if (in_grouping_b(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 19 */
if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 19 */
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 21 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 22 */
return 1;
}
static int r_Step_1a(struct SN_env * z) {
static int r_Step_1a(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 25 */
if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
among_var = find_among_b(z, a_0, 4); /* substring, line 25 */
if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0; /* substring, line 25 */
among_var = find_among_b(z, a_0, 4);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 25 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 25 */
case 1:
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */
if (ret < 0) return ret;
@ -279,48 +267,47 @@ static int r_Step_1a(struct SN_env * z) {
return 1;
}
static int r_Step_1b(struct SN_env * z) {
static int r_Step_1b(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 34 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
among_var = find_among_b(z, a_2, 3); /* substring, line 34 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 34 */
among_var = find_among_b(z, a_2, 3);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 34 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 34 */
case 1:
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 35 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 35 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 2, s_2); /* <-, line 35 */
if (ret < 0) return ret;
}
break;
case 2:
{ int m_test = z->l - z->c; /* test, line 38 */
{ int m_test1 = z->l - z->c; /* test, line 38 */
{ /* gopast */ /* grouping v, line 38 */
int ret = out_grouping_b(z, g_v, 97, 121, 1);
if (ret < 0) return 0;
z->c -= ret;
}
z->c = z->l - m_test;
z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 38 */
if (ret < 0) return ret;
}
{ int m_test = z->l - z->c; /* test, line 39 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
among_var = find_among_b(z, a_1, 13); /* substring, line 39 */
{ int m_test2 = z->l - z->c; /* test, line 39 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 39 */
among_var = find_among_b(z, a_1, 13);
if (!(among_var)) return 0;
z->c = z->l - m_test;
z->c = z->l - m_test2;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 39 */
case 1:
{ int c_keep = z->c;
int ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
z->c = c_keep;
{ int ret;
{ int saved_c = z->c;
ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
z->c = saved_c;
}
if (ret < 0) return ret;
}
break;
@ -335,16 +322,17 @@ static int r_Step_1b(struct SN_env * z) {
break;
case 3:
if (z->c != z->I[0]) return 0; /* atmark, line 45 */
{ int m_test = z->l - z->c; /* test, line 45 */
{ int ret = r_shortv(z);
if (ret == 0) return 0; /* call shortv, line 45 */
if (ret < 0) return ret;
{ int m_test3 = z->l - z->c; /* test, line 45 */
{ int ret = r_shortv(z); /* call shortv, line 45 */
if (ret <= 0) return ret;
}
z->c = z->l - m_test;
z->c = z->l - m_test3;
}
{ int c_keep = z->c;
int ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
z->c = c_keep;
{ int ret;
{ int saved_c = z->c;
ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
z->c = saved_c;
}
if (ret < 0) return ret;
}
break;
@ -354,14 +342,16 @@ static int r_Step_1b(struct SN_env * z) {
return 1;
}
static int r_Step_1c(struct SN_env * z) {
static int r_Step_1c(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 52 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 52 */
if (!(eq_s_b(z, 1, s_5))) goto lab1;
if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 52 */
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_6))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 52 */
z->c--;
}
lab0:
z->bra = z->c; /* ], line 52 */
@ -370,92 +360,85 @@ lab0:
if (ret < 0) return 0;
z->c -= ret;
}
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 54 */
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 54 */
if (ret < 0) return ret;
}
return 1;
}
static int r_Step_2(struct SN_env * z) {
static int r_Step_2(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 58 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_3, 20); /* substring, line 58 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 58 */
among_var = find_among_b(z, a_3, 20);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 58 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 58 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 58 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 58 */
case 1:
{ int ret = slice_from_s(z, 4, s_8); /* <-, line 59 */
{ int ret = slice_from_s(z, 4, s_6); /* <-, line 59 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 4, s_9); /* <-, line 60 */
{ int ret = slice_from_s(z, 4, s_7); /* <-, line 60 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 4, s_10); /* <-, line 61 */
{ int ret = slice_from_s(z, 4, s_8); /* <-, line 61 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 4, s_11); /* <-, line 62 */
{ int ret = slice_from_s(z, 4, s_9); /* <-, line 62 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 3, s_12); /* <-, line 63 */
{ int ret = slice_from_s(z, 3, s_10); /* <-, line 63 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 1, s_13); /* <-, line 64 */
{ int ret = slice_from_s(z, 1, s_11); /* <-, line 64 */
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 3, s_14); /* <-, line 66 */
{ int ret = slice_from_s(z, 3, s_12); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 8:
{ int ret = slice_from_s(z, 3, s_15); /* <-, line 68 */
{ int ret = slice_from_s(z, 3, s_13); /* <-, line 68 */
if (ret < 0) return ret;
}
break;
case 9:
{ int ret = slice_from_s(z, 2, s_16); /* <-, line 69 */
{ int ret = slice_from_s(z, 2, s_14); /* <-, line 69 */
if (ret < 0) return ret;
}
break;
case 10:
{ int ret = slice_from_s(z, 2, s_17); /* <-, line 71 */
{ int ret = slice_from_s(z, 3, s_15); /* <-, line 72 */
if (ret < 0) return ret;
}
break;
case 11:
{ int ret = slice_from_s(z, 3, s_18); /* <-, line 72 */
{ int ret = slice_from_s(z, 3, s_16); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
case 12:
{ int ret = slice_from_s(z, 3, s_19); /* <-, line 74 */
{ int ret = slice_from_s(z, 3, s_17); /* <-, line 76 */
if (ret < 0) return ret;
}
break;
case 13:
{ int ret = slice_from_s(z, 3, s_20); /* <-, line 76 */
if (ret < 0) return ret;
}
break;
case 14:
{ int ret = slice_from_s(z, 3, s_21); /* <-, line 77 */
{ int ret = slice_from_s(z, 3, s_18); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
@ -463,26 +446,24 @@ static int r_Step_2(struct SN_env * z) {
return 1;
}
static int r_Step_3(struct SN_env * z) {
static int r_Step_3(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 82 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_4, 7); /* substring, line 82 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 82 */
among_var = find_among_b(z, a_4, 7);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 82 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 82 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 82 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 82 */
case 1:
{ int ret = slice_from_s(z, 2, s_22); /* <-, line 83 */
{ int ret = slice_from_s(z, 2, s_19); /* <-, line 83 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 2, s_23); /* <-, line 85 */
{ int ret = slice_from_s(z, 2, s_20); /* <-, line 85 */
if (ret < 0) return ret;
}
break;
@ -495,19 +476,17 @@ static int r_Step_3(struct SN_env * z) {
return 1;
}
static int r_Step_4(struct SN_env * z) {
static int r_Step_4(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 92 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_5, 19); /* substring, line 92 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 92 */
among_var = find_among_b(z, a_5, 19);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 92 */
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 92 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 92 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 92 */
case 1:
{ int ret = slice_del(z); /* delete, line 95 */
if (ret < 0) return ret;
@ -515,11 +494,13 @@ static int r_Step_4(struct SN_env * z) {
break;
case 2:
{ int m1 = z->l - z->c; (void)m1; /* or, line 96 */
if (!(eq_s_b(z, 1, s_24))) goto lab1;
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 96 */
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_25))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 96 */
z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 96 */
@ -530,25 +511,25 @@ static int r_Step_4(struct SN_env * z) {
return 1;
}
static int r_Step_5a(struct SN_env * z) {
static int r_Step_5a(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 101 */
if (!(eq_s_b(z, 1, s_26))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 101 */
z->c--;
z->bra = z->c; /* ], line 101 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 102 */
{ int ret = r_R2(z);
if (ret == 0) goto lab1; /* call R2, line 102 */
{ int ret = r_R2(z); /* call R2, line 102 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = z->l - m1;
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 102 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 102 */
if (ret <= 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* not, line 102 */
{ int ret = r_shortv(z);
if (ret == 0) goto lab2; /* call shortv, line 102 */
{ int ret = r_shortv(z); /* call shortv, line 102 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
return 0;
@ -563,28 +544,30 @@ lab0:
return 1;
}
static int r_Step_5b(struct SN_env * z) {
static int r_Step_5b(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 107 */
if (!(eq_s_b(z, 1, s_27))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 107 */
z->c--;
z->bra = z->c; /* ], line 107 */
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 108 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 108 */
if (ret <= 0) return ret;
}
if (!(eq_s_b(z, 1, s_28))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 108 */
z->c--;
{ int ret = slice_del(z); /* delete, line 109 */
if (ret < 0) return ret;
}
return 1;
}
extern int porter_ISO_8859_1_stem(struct SN_env * z) {
extern int porter_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
z->B[0] = 0; /* unset Y_found, line 115 */
{ int c1 = z->c; /* do, line 116 */
z->bra = z->c; /* [, line 116 */
if (!(eq_s(z, 1, s_29))) goto lab0;
if (z->c == z->l || z->p[z->c] != 'y') goto lab0; /* literal, line 116 */
z->c++;
z->ket = z->c; /* ], line 116 */
{ int ret = slice_from_s(z, 1, s_30); /* <-, line 116 */
{ int ret = slice_from_s(z, 1, s_21); /* <-, line 116 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 116 */
@ -596,9 +579,10 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
int c3 = z->c;
while(1) { /* goto, line 117 */
int c4 = z->c;
if (in_grouping(z, g_v, 97, 121, 0)) goto lab3;
if (in_grouping(z, g_v, 97, 121, 0)) goto lab3; /* grouping v, line 117 */
z->bra = z->c; /* [, line 117 */
if (!(eq_s(z, 1, s_31))) goto lab3;
if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 117 */
z->c++;
z->ket = z->c; /* ], line 117 */
z->c = c4;
break;
@ -607,7 +591,7 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
if (z->c >= z->l) goto lab2;
z->c++; /* goto, line 117 */
}
{ int ret = slice_from_s(z, 1, s_32); /* <-, line 117 */
{ int ret = slice_from_s(z, 1, s_22); /* <-, line 117 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 117 */
@ -618,8 +602,8 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
}
z->c = c2;
}
z->I[0] = z->l;
z->I[1] = z->l;
z->I[0] = z->l; /* $p1 = <integer expression>, line 119 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 120 */
{ int c5 = z->c; /* do, line 121 */
{ /* gopast */ /* grouping v, line 122 */
int ret = out_grouping(z, g_v, 97, 121, 1);
@ -649,64 +633,64 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 126 */
{ int m6 = z->l - z->c; (void)m6; /* do, line 127 */
{ int ret = r_Step_1a(z);
if (ret == 0) goto lab5; /* call Step_1a, line 127 */
{ int ret = r_Step_1a(z); /* call Step_1a, line 127 */
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
lab5:
z->c = z->l - m6;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 128 */
{ int ret = r_Step_1b(z);
if (ret == 0) goto lab6; /* call Step_1b, line 128 */
{ int ret = r_Step_1b(z); /* call Step_1b, line 128 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
z->c = z->l - m7;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 129 */
{ int ret = r_Step_1c(z);
if (ret == 0) goto lab7; /* call Step_1c, line 129 */
{ int ret = r_Step_1c(z); /* call Step_1c, line 129 */
if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
z->c = z->l - m8;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 130 */
{ int ret = r_Step_2(z);
if (ret == 0) goto lab8; /* call Step_2, line 130 */
{ int ret = r_Step_2(z); /* call Step_2, line 130 */
if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
lab8:
z->c = z->l - m9;
}
{ int m10 = z->l - z->c; (void)m10; /* do, line 131 */
{ int ret = r_Step_3(z);
if (ret == 0) goto lab9; /* call Step_3, line 131 */
{ int ret = r_Step_3(z); /* call Step_3, line 131 */
if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
z->c = z->l - m10;
}
{ int m11 = z->l - z->c; (void)m11; /* do, line 132 */
{ int ret = r_Step_4(z);
if (ret == 0) goto lab10; /* call Step_4, line 132 */
{ int ret = r_Step_4(z); /* call Step_4, line 132 */
if (ret == 0) goto lab10;
if (ret < 0) return ret;
}
lab10:
z->c = z->l - m11;
}
{ int m12 = z->l - z->c; (void)m12; /* do, line 133 */
{ int ret = r_Step_5a(z);
if (ret == 0) goto lab11; /* call Step_5a, line 133 */
{ int ret = r_Step_5a(z); /* call Step_5a, line 133 */
if (ret == 0) goto lab11;
if (ret < 0) return ret;
}
lab11:
z->c = z->l - m12;
}
{ int m13 = z->l - z->c; (void)m13; /* do, line 134 */
{ int ret = r_Step_5b(z);
if (ret == 0) goto lab12; /* call Step_5b, line 134 */
{ int ret = r_Step_5b(z); /* call Step_5b, line 134 */
if (ret == 0) goto lab12;
if (ret < 0) return ret;
}
lab12:
@ -720,7 +704,8 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
while(1) { /* goto, line 137 */
int c16 = z->c;
z->bra = z->c; /* [, line 137 */
if (!(eq_s(z, 1, s_33))) goto lab15;
if (z->c == z->l || z->p[z->c] != 'Y') goto lab15; /* literal, line 137 */
z->c++;
z->ket = z->c; /* ], line 137 */
z->c = c16;
break;
@ -729,7 +714,7 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) {
if (z->c >= z->l) goto lab14;
z->c++; /* goto, line 137 */
}
{ int ret = slice_from_s(z, 1, s_34); /* <-, line 137 */
{ int ret = slice_from_s(z, 1, s_23); /* <-, line 137 */
if (ret < 0) return ret;
}
continue;

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -90,42 +90,42 @@ static const struct among a_4[3] =
static const symbol s_5_0[3] = { 'i', 'c', 'a' };
static const symbol s_5_1[5] = { 0xE2, 'n', 'c', 'i', 'a' };
static const symbol s_5_2[5] = { 0xEA, 'n', 'c', 'i', 'a' };
static const symbol s_5_3[3] = { 'i', 'r', 'a' };
static const symbol s_5_4[5] = { 'a', 'd', 'o', 'r', 'a' };
static const symbol s_5_5[3] = { 'o', 's', 'a' };
static const symbol s_5_6[4] = { 'i', 's', 't', 'a' };
static const symbol s_5_7[3] = { 'i', 'v', 'a' };
static const symbol s_5_8[3] = { 'e', 'z', 'a' };
static const symbol s_5_9[5] = { 'l', 'o', 'g', 0xED, 'a' };
static const symbol s_5_3[5] = { 'l', 'o', 'g', 'i', 'a' };
static const symbol s_5_4[3] = { 'i', 'r', 'a' };
static const symbol s_5_5[5] = { 'a', 'd', 'o', 'r', 'a' };
static const symbol s_5_6[3] = { 'o', 's', 'a' };
static const symbol s_5_7[4] = { 'i', 's', 't', 'a' };
static const symbol s_5_8[3] = { 'i', 'v', 'a' };
static const symbol s_5_9[3] = { 'e', 'z', 'a' };
static const symbol s_5_10[5] = { 'i', 'd', 'a', 'd', 'e' };
static const symbol s_5_11[4] = { 'a', 'n', 't', 'e' };
static const symbol s_5_12[5] = { 'm', 'e', 'n', 't', 'e' };
static const symbol s_5_13[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
static const symbol s_5_14[4] = { 0xE1, 'v', 'e', 'l' };
static const symbol s_5_15[4] = { 0xED, 'v', 'e', 'l' };
static const symbol s_5_16[5] = { 'u', 'c', 'i', 0xF3, 'n' };
static const symbol s_5_17[3] = { 'i', 'c', 'o' };
static const symbol s_5_18[4] = { 'i', 's', 'm', 'o' };
static const symbol s_5_19[3] = { 'o', 's', 'o' };
static const symbol s_5_20[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
static const symbol s_5_21[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
static const symbol s_5_22[3] = { 'i', 'v', 'o' };
static const symbol s_5_23[5] = { 'a', 0xE7, 'a', '~', 'o' };
static const symbol s_5_16[3] = { 'i', 'c', 'o' };
static const symbol s_5_17[4] = { 'i', 's', 'm', 'o' };
static const symbol s_5_18[3] = { 'o', 's', 'o' };
static const symbol s_5_19[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
static const symbol s_5_20[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
static const symbol s_5_21[3] = { 'i', 'v', 'o' };
static const symbol s_5_22[5] = { 'a', 0xE7, 'a', '~', 'o' };
static const symbol s_5_23[5] = { 'u', 0xE7, 'a', '~', 'o' };
static const symbol s_5_24[4] = { 'a', 'd', 'o', 'r' };
static const symbol s_5_25[4] = { 'i', 'c', 'a', 's' };
static const symbol s_5_26[6] = { 0xEA, 'n', 'c', 'i', 'a', 's' };
static const symbol s_5_27[4] = { 'i', 'r', 'a', 's' };
static const symbol s_5_28[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
static const symbol s_5_29[4] = { 'o', 's', 'a', 's' };
static const symbol s_5_30[5] = { 'i', 's', 't', 'a', 's' };
static const symbol s_5_31[4] = { 'i', 'v', 'a', 's' };
static const symbol s_5_32[4] = { 'e', 'z', 'a', 's' };
static const symbol s_5_33[6] = { 'l', 'o', 'g', 0xED, 'a', 's' };
static const symbol s_5_27[6] = { 'l', 'o', 'g', 'i', 'a', 's' };
static const symbol s_5_28[4] = { 'i', 'r', 'a', 's' };
static const symbol s_5_29[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
static const symbol s_5_30[4] = { 'o', 's', 'a', 's' };
static const symbol s_5_31[5] = { 'i', 's', 't', 'a', 's' };
static const symbol s_5_32[4] = { 'i', 'v', 'a', 's' };
static const symbol s_5_33[4] = { 'e', 'z', 'a', 's' };
static const symbol s_5_34[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
static const symbol s_5_35[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
static const symbol s_5_36[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
static const symbol s_5_37[5] = { 'a', 'n', 't', 'e', 's' };
static const symbol s_5_38[6] = { 'a', 0xE7, 'o', '~', 'e', 's' };
static const symbol s_5_35[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
static const symbol s_5_36[5] = { 'a', 'n', 't', 'e', 's' };
static const symbol s_5_37[6] = { 'a', 0xE7, 'o', '~', 'e', 's' };
static const symbol s_5_38[6] = { 'u', 0xE7, 'o', '~', 'e', 's' };
static const symbol s_5_39[4] = { 'i', 'c', 'o', 's' };
static const symbol s_5_40[5] = { 'i', 's', 'm', 'o', 's' };
static const symbol s_5_41[4] = { 'o', 's', 'o', 's' };
@ -138,42 +138,42 @@ static const struct among a_5[45] =
/* 0 */ { 3, s_5_0, -1, 1, 0},
/* 1 */ { 5, s_5_1, -1, 1, 0},
/* 2 */ { 5, s_5_2, -1, 4, 0},
/* 3 */ { 3, s_5_3, -1, 9, 0},
/* 4 */ { 5, s_5_4, -1, 1, 0},
/* 5 */ { 3, s_5_5, -1, 1, 0},
/* 6 */ { 4, s_5_6, -1, 1, 0},
/* 7 */ { 3, s_5_7, -1, 8, 0},
/* 8 */ { 3, s_5_8, -1, 1, 0},
/* 9 */ { 5, s_5_9, -1, 2, 0},
/* 3 */ { 5, s_5_3, -1, 2, 0},
/* 4 */ { 3, s_5_4, -1, 9, 0},
/* 5 */ { 5, s_5_5, -1, 1, 0},
/* 6 */ { 3, s_5_6, -1, 1, 0},
/* 7 */ { 4, s_5_7, -1, 1, 0},
/* 8 */ { 3, s_5_8, -1, 8, 0},
/* 9 */ { 3, s_5_9, -1, 1, 0},
/* 10 */ { 5, s_5_10, -1, 7, 0},
/* 11 */ { 4, s_5_11, -1, 1, 0},
/* 12 */ { 5, s_5_12, -1, 6, 0},
/* 13 */ { 6, s_5_13, 12, 5, 0},
/* 14 */ { 4, s_5_14, -1, 1, 0},
/* 15 */ { 4, s_5_15, -1, 1, 0},
/* 16 */ { 5, s_5_16, -1, 3, 0},
/* 17 */ { 3, s_5_17, -1, 1, 0},
/* 18 */ { 4, s_5_18, -1, 1, 0},
/* 19 */ { 3, s_5_19, -1, 1, 0},
/* 16 */ { 3, s_5_16, -1, 1, 0},
/* 17 */ { 4, s_5_17, -1, 1, 0},
/* 18 */ { 3, s_5_18, -1, 1, 0},
/* 19 */ { 6, s_5_19, -1, 1, 0},
/* 20 */ { 6, s_5_20, -1, 1, 0},
/* 21 */ { 6, s_5_21, -1, 1, 0},
/* 22 */ { 3, s_5_22, -1, 8, 0},
/* 23 */ { 5, s_5_23, -1, 1, 0},
/* 21 */ { 3, s_5_21, -1, 8, 0},
/* 22 */ { 5, s_5_22, -1, 1, 0},
/* 23 */ { 5, s_5_23, -1, 3, 0},
/* 24 */ { 4, s_5_24, -1, 1, 0},
/* 25 */ { 4, s_5_25, -1, 1, 0},
/* 26 */ { 6, s_5_26, -1, 4, 0},
/* 27 */ { 4, s_5_27, -1, 9, 0},
/* 28 */ { 6, s_5_28, -1, 1, 0},
/* 29 */ { 4, s_5_29, -1, 1, 0},
/* 30 */ { 5, s_5_30, -1, 1, 0},
/* 31 */ { 4, s_5_31, -1, 8, 0},
/* 32 */ { 4, s_5_32, -1, 1, 0},
/* 33 */ { 6, s_5_33, -1, 2, 0},
/* 27 */ { 6, s_5_27, -1, 2, 0},
/* 28 */ { 4, s_5_28, -1, 9, 0},
/* 29 */ { 6, s_5_29, -1, 1, 0},
/* 30 */ { 4, s_5_30, -1, 1, 0},
/* 31 */ { 5, s_5_31, -1, 1, 0},
/* 32 */ { 4, s_5_32, -1, 8, 0},
/* 33 */ { 4, s_5_33, -1, 1, 0},
/* 34 */ { 6, s_5_34, -1, 7, 0},
/* 35 */ { 7, s_5_35, -1, 3, 0},
/* 36 */ { 6, s_5_36, -1, 1, 0},
/* 37 */ { 5, s_5_37, -1, 1, 0},
/* 38 */ { 6, s_5_38, -1, 1, 0},
/* 35 */ { 6, s_5_35, -1, 1, 0},
/* 36 */ { 5, s_5_36, -1, 1, 0},
/* 37 */ { 6, s_5_37, -1, 1, 0},
/* 38 */ { 6, s_5_38, -1, 3, 0},
/* 39 */ { 4, s_5_39, -1, 1, 0},
/* 40 */ { 5, s_5_40, -1, 1, 0},
/* 41 */ { 4, s_5_41, -1, 1, 0},
@ -470,27 +470,19 @@ static const symbol s_5[] = { 'u' };
static const symbol s_6[] = { 'e', 'n', 't', 'e' };
static const symbol s_7[] = { 'a', 't' };
static const symbol s_8[] = { 'a', 't' };
static const symbol s_9[] = { 'e' };
static const symbol s_10[] = { 'i', 'r' };
static const symbol s_11[] = { 'u' };
static const symbol s_12[] = { 'g' };
static const symbol s_13[] = { 'i' };
static const symbol s_14[] = { 'c' };
static const symbol s_15[] = { 'c' };
static const symbol s_16[] = { 'i' };
static const symbol s_17[] = { 'c' };
static const symbol s_9[] = { 'i', 'r' };
static const symbol s_10[] = { 'c' };
static int r_prelude(struct SN_env * z) {
static int r_prelude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 36 */
int c1 = z->c;
z->bra = z->c; /* [, line 37 */
if (z->c >= z->l || (z->p[z->c + 0] != 227 && z->p[z->c + 0] != 245)) among_var = 3; else
among_var = find_among(z, a_0, 3); /* substring, line 37 */
if (z->c >= z->l || (z->p[z->c + 0] != 227 && z->p[z->c + 0] != 245)) among_var = 3; else /* substring, line 37 */
among_var = find_among(z, a_0, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 37 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 37 */
case 1:
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 38 */
if (ret < 0) return ret;
@ -514,15 +506,15 @@ static int r_prelude(struct SN_env * z) {
return 1;
}
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 46 */
z->I[1] = z->l; /* $p1 = <integer expression>, line 47 */
z->I[2] = z->l; /* $p2 = <integer expression>, line 48 */
{ int c1 = z->c; /* do, line 50 */
{ int c2 = z->c; /* or, line 52 */
if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
if (in_grouping(z, g_v, 97, 250, 0)) goto lab2; /* grouping v, line 51 */
{ int c3 = z->c; /* or, line 51 */
if (out_grouping(z, g_v, 97, 250, 0)) goto lab4;
if (out_grouping(z, g_v, 97, 250, 0)) goto lab4; /* non v, line 51 */
{ /* gopast */ /* grouping v, line 51 */
int ret = out_grouping(z, g_v, 97, 250, 1);
if (ret < 0) goto lab4;
@ -531,7 +523,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab3;
lab4:
z->c = c3;
if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
if (in_grouping(z, g_v, 97, 250, 0)) goto lab2; /* grouping v, line 51 */
{ /* gopast */ /* non v, line 51 */
int ret = in_grouping(z, g_v, 97, 250, 1);
if (ret < 0) goto lab2;
@ -542,9 +534,9 @@ static int r_mark_regions(struct SN_env * z) {
goto lab1;
lab2:
z->c = c2;
if (out_grouping(z, g_v, 97, 250, 0)) goto lab0;
if (out_grouping(z, g_v, 97, 250, 0)) goto lab0; /* non v, line 53 */
{ int c4 = z->c; /* or, line 53 */
if (out_grouping(z, g_v, 97, 250, 0)) goto lab6;
if (out_grouping(z, g_v, 97, 250, 0)) goto lab6; /* non v, line 53 */
{ /* gopast */ /* grouping v, line 53 */
int ret = out_grouping(z, g_v, 97, 250, 1);
if (ret < 0) goto lab6;
@ -553,7 +545,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab5;
lab6:
z->c = c4;
if (in_grouping(z, g_v, 97, 250, 0)) goto lab0;
if (in_grouping(z, g_v, 97, 250, 0)) goto lab0; /* grouping v, line 53 */
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 53 */
}
@ -594,17 +586,16 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 62 */
int c1 = z->c;
z->bra = z->c; /* [, line 63 */
if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else
among_var = find_among(z, a_1, 3); /* substring, line 63 */
if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else /* substring, line 63 */
among_var = find_among(z, a_1, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 63 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 63 */
case 1:
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 64 */
if (ret < 0) return ret;
@ -628,95 +619,88 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
static int r_RV(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_RV(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 72 */
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 73 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[2] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 74 */
return 1;
}
static int r_standard_suffix(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 77 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((839714 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_5, 45); /* substring, line 77 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 77 */
among_var = find_among_b(z, a_5, 45);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 77 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 77 */
case 1:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 93 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 93 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 93 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 98 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 98 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 3, s_4); /* <-, line 98 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 102 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 102 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 102 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 106 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 106 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 4, s_6); /* <-, line 106 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 110 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 110 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 110 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
{ int m1 = z->l - z->c; (void)m1; /* try, line 111 */
z->ket = z->c; /* [, line 112 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab0; }
among_var = find_among_b(z, a_2, 4); /* substring, line 112 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; } /* substring, line 112 */
among_var = find_among_b(z, a_2, 4);
if (!(among_var)) { z->c = z->l - m1; goto lab0; }
z->bra = z->c; /* ], line 112 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 112 */
{ int ret = r_R2(z); /* call R2, line 112 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 112 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab0; }
switch (among_var) { /* among, line 112 */
case 1:
z->ket = z->c; /* [, line 113 */
if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m_keep; goto lab0; }
if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m1; goto lab0; } /* literal, line 113 */
z->bra = z->c; /* ], line 113 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 113 */
{ int ret = r_R2(z); /* call R2, line 113 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 113 */
@ -729,79 +713,64 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 6:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 122 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 122 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 123 */
{ int m2 = z->l - z->c; (void)m2; /* try, line 123 */
z->ket = z->c; /* [, line 124 */
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m_keep; goto lab1; }
among_var = find_among_b(z, a_3, 3); /* substring, line 124 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; } /* substring, line 124 */
if (!(find_among_b(z, a_3, 3))) { z->c = z->l - m2; goto lab1; }
z->bra = z->c; /* ], line 124 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab1; }
case 1:
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 127 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 127 */
if (ret < 0) return ret;
}
break;
{ int ret = r_R2(z); /* call R2, line 127 */
if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 127 */
if (ret < 0) return ret;
}
lab1:
;
}
break;
case 7:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 134 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 134 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 135 */
{ int m3 = z->l - z->c; (void)m3; /* try, line 135 */
z->ket = z->c; /* [, line 136 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab2; }
among_var = find_among_b(z, a_4, 3); /* substring, line 136 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } /* substring, line 136 */
if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
z->bra = z->c; /* ], line 136 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab2; }
case 1:
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 139 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 139 */
if (ret < 0) return ret;
}
break;
{ int ret = r_R2(z); /* call R2, line 139 */
if (ret == 0) { z->c = z->l - m3; goto lab2; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 139 */
if (ret < 0) return ret;
}
lab2:
;
}
break;
case 8:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 146 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 146 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 146 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 147 */
{ int m4 = z->l - z->c; (void)m4; /* try, line 147 */
z->ket = z->c; /* [, line 148 */
if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m_keep; goto lab3; }
if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m4; goto lab3; } /* literal, line 148 */
z->bra = z->c; /* ], line 148 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 148 */
{ int ret = r_R2(z); /* call R2, line 148 */
if (ret == 0) { z->c = z->l - m4; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 148 */
@ -812,12 +781,12 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 9:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 153 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 153 */
if (ret <= 0) return ret;
}
if (!(eq_s_b(z, 1, s_9))) return 0;
{ int ret = slice_from_s(z, 2, s_10); /* <-, line 154 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 153 */
z->c--;
{ int ret = slice_from_s(z, 2, s_9); /* <-, line 154 */
if (ret < 0) return ret;
}
break;
@ -825,97 +794,81 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
static int r_verb_suffix(struct SN_env * z) {
int among_var;
{ int mlimit; /* setlimit, line 159 */
int m1 = z->l - z->c; (void)m1;
static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 159 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 159 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 160 */
among_var = find_among_b(z, a_6, 120); /* substring, line 160 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; } /* substring, line 160 */
z->bra = z->c; /* ], line 160 */
switch(among_var) {
case 0: { z->lb = mlimit; return 0; }
case 1:
{ int ret = slice_del(z); /* delete, line 179 */
if (ret < 0) return ret;
}
break;
{ int ret = slice_del(z); /* delete, line 179 */
if (ret < 0) return ret;
}
z->lb = mlimit;
z->lb = mlimit1;
}
return 1;
}
static int r_residual_suffix(struct SN_env * z) {
int among_var;
static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 184 */
among_var = find_among_b(z, a_7, 7); /* substring, line 184 */
if (!(among_var)) return 0;
if (!(find_among_b(z, a_7, 7))) return 0; /* substring, line 184 */
z->bra = z->c; /* ], line 184 */
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 187 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 187 */
if (ret < 0) return ret;
}
break;
{ int ret = r_RV(z); /* call RV, line 187 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 187 */
if (ret < 0) return ret;
}
return 1;
}
static int r_residual_form(struct SN_env * z) {
static int r_residual_form(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 192 */
among_var = find_among_b(z, a_8, 4); /* substring, line 192 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 192 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 192 */
case 1:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 194 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 194 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 194 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 194 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 194 */
if (!(eq_s_b(z, 1, s_11))) goto lab1;
if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab1; /* literal, line 194 */
z->c--;
z->bra = z->c; /* ], line 194 */
{ int m_test = z->l - z->c; /* test, line 194 */
if (!(eq_s_b(z, 1, s_12))) goto lab1;
z->c = z->l - m_test;
{ int m_test2 = z->l - z->c; /* test, line 194 */
if (z->c <= z->lb || z->p[z->c - 1] != 'g') goto lab1; /* literal, line 194 */
z->c--;
z->c = z->l - m_test2;
}
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_13))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 195 */
z->c--;
z->bra = z->c; /* ], line 195 */
{ int m_test = z->l - z->c; /* test, line 195 */
if (!(eq_s_b(z, 1, s_14))) return 0;
z->c = z->l - m_test;
{ int m_test3 = z->l - z->c; /* test, line 195 */
if (z->c <= z->lb || z->p[z->c - 1] != 'c') return 0; /* literal, line 195 */
z->c--;
z->c = z->l - m_test3;
}
}
lab0:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 195 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 195 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 195 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_15); /* <-, line 196 */
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 196 */
if (ret < 0) return ret;
}
break;
@ -923,77 +876,77 @@ static int r_residual_form(struct SN_env * z) {
return 1;
}
extern int portuguese_ISO_8859_1_stem(struct SN_env * z) {
extern int portuguese_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 202 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 202 */
{ int ret = r_prelude(z); /* call prelude, line 202 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 203 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 203 */
if (ret < 0) return ret;
}
lab1:
z->c = c2;
/* do, line 203 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 203 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->lb = z->c; z->c = z->l; /* backwards, line 204 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 205 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 209 */
{ int m5 = z->l - z->c; (void)m5; /* and, line 207 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 206 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab6; /* call standard_suffix, line 206 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 205 */
{ int m3 = z->l - z->c; (void)m3; /* or, line 209 */
{ int m4 = z->l - z->c; (void)m4; /* and, line 207 */
{ int m5 = z->l - z->c; (void)m5; /* or, line 206 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 206 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
goto lab5;
lab6:
z->c = z->l - m6;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab4; /* call verb_suffix, line 206 */
z->c = z->l - m5;
{ int ret = r_verb_suffix(z); /* call verb_suffix, line 206 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
z->c = z->l - m5;
{ int m7 = z->l - z->c; (void)m7; /* do, line 207 */
z->c = z->l - m4;
{ int m6 = z->l - z->c; (void)m6; /* do, line 207 */
z->ket = z->c; /* [, line 207 */
if (!(eq_s_b(z, 1, s_16))) goto lab7;
if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab7; /* literal, line 207 */
z->c--;
z->bra = z->c; /* ], line 207 */
{ int m_test = z->l - z->c; /* test, line 207 */
if (!(eq_s_b(z, 1, s_17))) goto lab7;
z->c = z->l - m_test;
{ int m_test7 = z->l - z->c; /* test, line 207 */
if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab7; /* literal, line 207 */
z->c--;
z->c = z->l - m_test7;
}
{ int ret = r_RV(z);
if (ret == 0) goto lab7; /* call RV, line 207 */
{ int ret = r_RV(z); /* call RV, line 207 */
if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 207 */
if (ret < 0) return ret;
}
lab7:
z->c = z->l - m7;
z->c = z->l - m6;
}
}
goto lab3;
lab4:
z->c = z->l - m4;
{ int ret = r_residual_suffix(z);
if (ret == 0) goto lab2; /* call residual_suffix, line 209 */
z->c = z->l - m3;
{ int ret = r_residual_suffix(z); /* call residual_suffix, line 209 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
}
lab3:
lab2:
z->c = z->l - m3;
z->c = z->l - m2;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 211 */
{ int ret = r_residual_form(z);
if (ret == 0) goto lab8; /* call residual_form, line 211 */
{ int ret = r_residual_form(z); /* call residual_form, line 211 */
if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
lab8:
@ -1001,8 +954,8 @@ extern int portuguese_ISO_8859_1_stem(struct SN_env * z) {
}
z->c = z->lb;
{ int c9 = z->c; /* do, line 213 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab9; /* call postlude, line 213 */
{ int ret = r_postlude(z); /* call postlude, line 213 */
if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -497,28 +497,22 @@ static const symbol s_6[] = { 'a', 'n', 'd', 'o' };
static const symbol s_7[] = { 'a', 'r' };
static const symbol s_8[] = { 'e', 'r' };
static const symbol s_9[] = { 'i', 'r' };
static const symbol s_10[] = { 'u' };
static const symbol s_11[] = { 'i', 'c' };
static const symbol s_12[] = { 'l', 'o', 'g' };
static const symbol s_13[] = { 'u' };
static const symbol s_14[] = { 'e', 'n', 't', 'e' };
static const symbol s_10[] = { 'i', 'c' };
static const symbol s_11[] = { 'l', 'o', 'g' };
static const symbol s_12[] = { 'u' };
static const symbol s_13[] = { 'e', 'n', 't', 'e' };
static const symbol s_14[] = { 'a', 't' };
static const symbol s_15[] = { 'a', 't' };
static const symbol s_16[] = { 'a', 't' };
static const symbol s_17[] = { 'u' };
static const symbol s_18[] = { 'u' };
static const symbol s_19[] = { 'g' };
static const symbol s_20[] = { 'u' };
static const symbol s_21[] = { 'g' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 33 */
z->I[1] = z->l; /* $p1 = <integer expression>, line 34 */
z->I[2] = z->l; /* $p2 = <integer expression>, line 35 */
{ int c1 = z->c; /* do, line 37 */
{ int c2 = z->c; /* or, line 39 */
if (in_grouping(z, g_v, 97, 252, 0)) goto lab2;
if (in_grouping(z, g_v, 97, 252, 0)) goto lab2; /* grouping v, line 38 */
{ int c3 = z->c; /* or, line 38 */
if (out_grouping(z, g_v, 97, 252, 0)) goto lab4;
if (out_grouping(z, g_v, 97, 252, 0)) goto lab4; /* non v, line 38 */
{ /* gopast */ /* grouping v, line 38 */
int ret = out_grouping(z, g_v, 97, 252, 1);
if (ret < 0) goto lab4;
@ -527,7 +521,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab3;
lab4:
z->c = c3;
if (in_grouping(z, g_v, 97, 252, 0)) goto lab2;
if (in_grouping(z, g_v, 97, 252, 0)) goto lab2; /* grouping v, line 38 */
{ /* gopast */ /* non v, line 38 */
int ret = in_grouping(z, g_v, 97, 252, 1);
if (ret < 0) goto lab2;
@ -538,9 +532,9 @@ static int r_mark_regions(struct SN_env * z) {
goto lab1;
lab2:
z->c = c2;
if (out_grouping(z, g_v, 97, 252, 0)) goto lab0;
if (out_grouping(z, g_v, 97, 252, 0)) goto lab0; /* non v, line 40 */
{ int c4 = z->c; /* or, line 40 */
if (out_grouping(z, g_v, 97, 252, 0)) goto lab6;
if (out_grouping(z, g_v, 97, 252, 0)) goto lab6; /* non v, line 40 */
{ /* gopast */ /* grouping v, line 40 */
int ret = out_grouping(z, g_v, 97, 252, 1);
if (ret < 0) goto lab6;
@ -549,7 +543,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab5;
lab6:
z->c = c4;
if (in_grouping(z, g_v, 97, 252, 0)) goto lab0;
if (in_grouping(z, g_v, 97, 252, 0)) goto lab0; /* grouping v, line 40 */
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 40 */
}
@ -590,17 +584,16 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 49 */
int c1 = z->c;
z->bra = z->c; /* [, line 50 */
if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((67641858 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else
among_var = find_among(z, a_0, 6); /* substring, line 50 */
if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((67641858 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else /* substring, line 50 */
among_var = find_among(z, a_0, 6);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 50 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 50 */
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 51 */
if (ret < 0) return ret;
@ -639,36 +632,34 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
static int r_RV(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_RV(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 63 */
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 64 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[2] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 65 */
return 1;
}
static int r_attached_pronoun(struct SN_env * z) {
static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 68 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_1, 13))) return 0; /* substring, line 68 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 68 */
if (!(find_among_b(z, a_1, 13))) return 0;
z->bra = z->c; /* ], line 68 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
among_var = find_among_b(z, a_2, 11); /* substring, line 72 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; /* substring, line 72 */
among_var = find_among_b(z, a_2, 11);
if (!(among_var)) return 0;
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 72 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 72 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 72 */
case 1:
z->bra = z->c; /* ], line 73 */
{ int ret = slice_from_s(z, 5, s_5); /* <-, line 73 */
@ -705,7 +696,8 @@ static int r_attached_pronoun(struct SN_env * z) {
}
break;
case 7:
if (!(eq_s_b(z, 1, s_10))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; /* literal, line 82 */
z->c--;
{ int ret = slice_del(z); /* delete, line 82 */
if (ret < 0) return ret;
}
@ -714,38 +706,35 @@ static int r_attached_pronoun(struct SN_env * z) {
return 1;
}
static int r_standard_suffix(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 87 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_6, 46); /* substring, line 87 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 87 */
among_var = find_among_b(z, a_6, 46);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 87 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 87 */
case 1:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 99 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 99 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 105 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 105 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 105 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 106 */
{ int m1 = z->l - z->c; (void)m1; /* try, line 106 */
z->ket = z->c; /* [, line 106 */
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab0; }
if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m1; goto lab0; } /* literal, line 106 */
z->bra = z->c; /* ], line 106 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 106 */
{ int ret = r_R2(z); /* call R2, line 106 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 106 */
@ -756,61 +745,56 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 3:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 111 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 111 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 3, s_12); /* <-, line 111 */
{ int ret = slice_from_s(z, 3, s_11); /* <-, line 111 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 115 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 115 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 1, s_13); /* <-, line 115 */
{ int ret = slice_from_s(z, 1, s_12); /* <-, line 115 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 119 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 119 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 4, s_14); /* <-, line 119 */
{ int ret = slice_from_s(z, 4, s_13); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 123 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 123 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 123 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 124 */
{ int m2 = z->l - z->c; (void)m2; /* try, line 124 */
z->ket = z->c; /* [, line 125 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab1; }
among_var = find_among_b(z, a_3, 4); /* substring, line 125 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } /* substring, line 125 */
among_var = find_among_b(z, a_3, 4);
if (!(among_var)) { z->c = z->l - m2; goto lab1; }
z->bra = z->c; /* ], line 125 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 125 */
{ int ret = r_R2(z); /* call R2, line 125 */
if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 125 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab1; }
switch (among_var) { /* among, line 125 */
case 1:
z->ket = z->c; /* [, line 126 */
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab1; }
if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m2; goto lab1; } /* literal, line 126 */
z->bra = z->c; /* ], line 126 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 126 */
{ int ret = r_R2(z); /* call R2, line 126 */
if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 126 */
@ -823,79 +807,64 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 7:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 135 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 135 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 135 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 136 */
{ int m3 = z->l - z->c; (void)m3; /* try, line 136 */
z->ket = z->c; /* [, line 137 */
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m_keep; goto lab2; }
among_var = find_among_b(z, a_4, 3); /* substring, line 137 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; } /* substring, line 137 */
if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
z->bra = z->c; /* ], line 137 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab2; }
case 1:
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 140 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 140 */
if (ret < 0) return ret;
}
break;
{ int ret = r_R2(z); /* call R2, line 140 */
if (ret == 0) { z->c = z->l - m3; goto lab2; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 140 */
if (ret < 0) return ret;
}
lab2:
;
}
break;
case 8:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 147 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 147 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 147 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 148 */
{ int m4 = z->l - z->c; (void)m4; /* try, line 148 */
z->ket = z->c; /* [, line 149 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab3; }
among_var = find_among_b(z, a_5, 3); /* substring, line 149 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab3; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m4; goto lab3; } /* substring, line 149 */
if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m4; goto lab3; }
z->bra = z->c; /* ], line 149 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab3; }
case 1:
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 152 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
break;
{ int ret = r_R2(z); /* call R2, line 152 */
if (ret == 0) { z->c = z->l - m4; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
lab3:
;
}
break;
case 9:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 159 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 159 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 159 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 160 */
{ int m5 = z->l - z->c; (void)m5; /* try, line 160 */
z->ket = z->c; /* [, line 161 */
if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m_keep; goto lab4; }
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m5; goto lab4; } /* literal, line 161 */
z->bra = z->c; /* ], line 161 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call R2, line 161 */
{ int ret = r_R2(z); /* call R2, line 161 */
if (ret == 0) { z->c = z->l - m5; goto lab4; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 161 */
@ -909,54 +878,45 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
static int r_y_verb_suffix(struct SN_env * z) {
int among_var;
{ int mlimit; /* setlimit, line 168 */
int m1 = z->l - z->c; (void)m1;
static int r_y_verb_suffix(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 168 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 168 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 168 */
among_var = find_among_b(z, a_7, 12); /* substring, line 168 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; } /* substring, line 168 */
z->bra = z->c; /* ], line 168 */
z->lb = mlimit;
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
case 1:
if (!(eq_s_b(z, 1, s_17))) return 0;
{ int ret = slice_del(z); /* delete, line 171 */
if (ret < 0) return ret;
}
break;
if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; /* literal, line 171 */
z->c--;
{ int ret = slice_del(z); /* delete, line 171 */
if (ret < 0) return ret;
}
return 1;
}
static int r_verb_suffix(struct SN_env * z) {
static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 176 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 176 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 176 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 176 */
among_var = find_among_b(z, a_8, 96); /* substring, line 176 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 176 */
z->lb = mlimit;
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 176 */
case 1:
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 179 */
if (!(eq_s_b(z, 1, s_18))) { z->c = z->l - m_keep; goto lab0; }
{ int m_test = z->l - z->c; /* test, line 179 */
if (!(eq_s_b(z, 1, s_19))) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m_test;
{ int m2 = z->l - z->c; (void)m2; /* try, line 179 */
if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m2; goto lab0; } /* literal, line 179 */
z->c--;
{ int m_test3 = z->l - z->c; /* test, line 179 */
if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m2; goto lab0; } /* literal, line 179 */
z->c--;
z->c = z->l - m_test3;
}
lab0:
;
@ -975,41 +935,40 @@ static int r_verb_suffix(struct SN_env * z) {
return 1;
}
static int r_residual_suffix(struct SN_env * z) {
static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 205 */
among_var = find_among_b(z, a_9, 8); /* substring, line 205 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 205 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 205 */
case 1:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 208 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 208 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 208 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 210 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 210 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 210 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 210 */
{ int m1 = z->l - z->c; (void)m1; /* try, line 210 */
z->ket = z->c; /* [, line 210 */
if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m_keep; goto lab0; }
if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m1; goto lab0; } /* literal, line 210 */
z->c--;
z->bra = z->c; /* ], line 210 */
{ int m_test = z->l - z->c; /* test, line 210 */
if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m_test;
{ int m_test2 = z->l - z->c; /* test, line 210 */
if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m1; goto lab0; } /* literal, line 210 */
z->c--;
z->c = z->l - m_test2;
}
{ int ret = r_RV(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 210 */
{ int ret = r_RV(z); /* call RV, line 210 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 210 */
@ -1023,66 +982,64 @@ static int r_residual_suffix(struct SN_env * z) {
return 1;
}
extern int spanish_ISO_8859_1_stem(struct SN_env * z) {
{ int c1 = z->c; /* do, line 216 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 216 */
if (ret < 0) return ret;
}
lab0:
z->c = c1;
extern int spanish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
/* do, line 216 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 216 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->lb = z->c; z->c = z->l; /* backwards, line 217 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 218 */
{ int ret = r_attached_pronoun(z);
if (ret == 0) goto lab1; /* call attached_pronoun, line 218 */
{ int m1 = z->l - z->c; (void)m1; /* do, line 218 */
{ int ret = r_attached_pronoun(z); /* call attached_pronoun, line 218 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
z->c = z->l - m1;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 219 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 219 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab4; /* call standard_suffix, line 219 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 219 */
{ int m3 = z->l - z->c; (void)m3; /* or, line 219 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 219 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
goto lab3;
lab4:
z->c = z->l - m4;
{ int ret = r_y_verb_suffix(z);
if (ret == 0) goto lab5; /* call y_verb_suffix, line 220 */
z->c = z->l - m3;
{ int ret = r_y_verb_suffix(z); /* call y_verb_suffix, line 220 */
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
goto lab3;
lab5:
z->c = z->l - m4;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab2; /* call verb_suffix, line 221 */
z->c = z->l - m3;
{ int ret = r_verb_suffix(z); /* call verb_suffix, line 221 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
}
lab3:
lab2:
z->c = z->l - m3;
z->c = z->l - m2;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 223 */
{ int ret = r_residual_suffix(z);
if (ret == 0) goto lab6; /* call residual_suffix, line 223 */
{ int m4 = z->l - z->c; (void)m4; /* do, line 223 */
{ int ret = r_residual_suffix(z); /* call residual_suffix, line 223 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
z->c = z->l - m5;
z->c = z->l - m4;
}
z->c = z->lb;
{ int c6 = z->c; /* do, line 225 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab7; /* call postlude, line 225 */
{ int c5 = z->c; /* do, line 225 */
{ int ret = r_postlude(z); /* call postlude, line 225 */
if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
z->c = c6;
z->c = c5;
}
return 1;
}

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -146,15 +146,15 @@ static const unsigned char g_s_ending[] = { 119, 127, 149 };
static const symbol s_0[] = { 'l', 0xF6, 's' };
static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
{ int c_test = z->c; /* test, line 29 */
{ int ret = z->c + 3;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */
{ int c_test1 = z->c; /* test, line 29 */
{ int ret = z->c + 3; /* hop, line 29 */
if (0 > ret || ret > z->l) return 0;
z->c = ret; /* hop, line 29 */
z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 29 */
z->c = c_test;
z->c = c_test1;
}
if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0; /* goto */ /* grouping v, line 30 */
{ /* gopast */ /* non v, line 30 */
@ -163,37 +163,34 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 30 */
/* try, line 31 */
if (!(z->I[0] < z->I[1])) goto lab0;
z->I[0] = z->I[1];
/* try, line 31 */
if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 31 */
z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 31 */
lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) {
static int r_main_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 37 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 37 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 37 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 37 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_0, 37); /* substring, line 37 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 37 */
among_var = find_among_b(z, a_0, 37);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 37 */
z->lb = mlimit;
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 38 */
case 1:
{ int ret = slice_del(z); /* delete, line 44 */
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0;
if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0; /* grouping s_ending, line 46 */
{ int ret = slice_del(z); /* delete, line 46 */
if (ret < 0) return ret;
}
@ -202,45 +199,40 @@ static int r_main_suffix(struct SN_env * z) {
return 1;
}
static int r_consonant_pair(struct SN_env * z) {
{ int mlimit; /* setlimit, line 50 */
int m1 = z->l - z->c; (void)m1;
static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 50 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 50 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
{ int m2 = z->l - z->c; (void)m2; /* and, line 52 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit; return 0; } /* among, line 51 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* among, line 51 */
if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; }
z->c = z->l - m2;
z->ket = z->c; /* [, line 52 */
if (z->c <= z->lb) { z->lb = mlimit; return 0; }
if (z->c <= z->lb) { z->lb = mlimit1; return 0; }
z->c--; /* next, line 52 */
z->bra = z->c; /* ], line 52 */
{ int ret = slice_del(z); /* delete, line 52 */
if (ret < 0) return ret;
}
}
z->lb = mlimit;
z->lb = mlimit1;
}
return 1;
}
static int r_other_suffix(struct SN_env * z) {
static int r_other_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 55 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 55 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 55 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_2, 5); /* substring, line 56 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 56 */
among_var = find_among_b(z, a_2, 5);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 56 */
switch(among_var) {
case 0: { z->lb = mlimit; return 0; }
switch (among_var) { /* among, line 56 */
case 1:
{ int ret = slice_del(z); /* delete, line 57 */
if (ret < 0) return ret;
@ -257,15 +249,15 @@ static int r_other_suffix(struct SN_env * z) {
}
break;
}
z->lb = mlimit;
z->lb = mlimit1;
}
return 1;
}
extern int swedish_ISO_8859_1_stem(struct SN_env * z) {
extern int swedish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 66 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 66 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 66 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
@ -274,24 +266,24 @@ extern int swedish_ISO_8859_1_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 67 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 68 */
{ int ret = r_main_suffix(z);
if (ret == 0) goto lab1; /* call main_suffix, line 68 */
{ int ret = r_main_suffix(z); /* call main_suffix, line 68 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 69 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab2; /* call consonant_pair, line 69 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 69 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 70 */
{ int ret = r_other_suffix(z);
if (ret == 0) goto lab3; /* call other_suffix, line 70 */
{ int ret = r_other_suffix(z); /* call other_suffix, line 70 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -516,51 +516,49 @@ static const struct among a_5[5] =
static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 32 };
static const symbol s_0[] = { 'u' };
static const symbol s_1[] = { 'U' };
static const symbol s_0[] = { 'U' };
static const symbol s_1[] = { 'I' };
static const symbol s_2[] = { 'i' };
static const symbol s_3[] = { 'I' };
static const symbol s_4[] = { 'i' };
static const symbol s_5[] = { 'u' };
static const symbol s_6[] = { 'a' };
static const symbol s_7[] = { 'e' };
static const symbol s_3[] = { 'u' };
static const symbol s_4[] = { 'a' };
static const symbol s_5[] = { 'e' };
static const symbol s_6[] = { 'i' };
static const symbol s_7[] = { 'a', 'b' };
static const symbol s_8[] = { 'i' };
static const symbol s_9[] = { 'a', 'b' };
static const symbol s_10[] = { 'i' };
static const symbol s_11[] = { 'a', 't' };
static const symbol s_12[] = { 'a', 0xFE, 'i' };
static const symbol s_13[] = { 'a', 'b', 'i', 'l' };
static const symbol s_14[] = { 'i', 'b', 'i', 'l' };
static const symbol s_15[] = { 'i', 'v' };
static const symbol s_16[] = { 'i', 'c' };
static const symbol s_17[] = { 'a', 't' };
static const symbol s_18[] = { 'i', 't' };
static const symbol s_19[] = { 0xFE };
static const symbol s_20[] = { 't' };
static const symbol s_21[] = { 'i', 's', 't' };
static const symbol s_22[] = { 'u' };
static const symbol s_9[] = { 'a', 't' };
static const symbol s_10[] = { 'a', 0xFE, 'i' };
static const symbol s_11[] = { 'a', 'b', 'i', 'l' };
static const symbol s_12[] = { 'i', 'b', 'i', 'l' };
static const symbol s_13[] = { 'i', 'v' };
static const symbol s_14[] = { 'i', 'c' };
static const symbol s_15[] = { 'a', 't' };
static const symbol s_16[] = { 'i', 't' };
static const symbol s_17[] = { 't' };
static const symbol s_18[] = { 'i', 's', 't' };
static int r_prelude(struct SN_env * z) {
static int r_prelude(struct SN_env * z) { /* forwardmode */
while(1) { /* repeat, line 32 */
int c1 = z->c;
while(1) { /* goto, line 32 */
int c2 = z->c;
if (in_grouping(z, g_v, 97, 238, 0)) goto lab1;
if (in_grouping(z, g_v, 97, 238, 0)) goto lab1; /* grouping v, line 33 */
z->bra = z->c; /* [, line 33 */
{ int c3 = z->c; /* or, line 33 */
if (!(eq_s(z, 1, s_0))) goto lab3;
if (z->c == z->l || z->p[z->c] != 'u') goto lab3; /* literal, line 33 */
z->c++;
z->ket = z->c; /* ], line 33 */
if (in_grouping(z, g_v, 97, 238, 0)) goto lab3;
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 33 */
if (in_grouping(z, g_v, 97, 238, 0)) goto lab3; /* grouping v, line 33 */
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 33 */
if (ret < 0) return ret;
}
goto lab2;
lab3:
z->c = c3;
if (!(eq_s(z, 1, s_2))) goto lab1;
if (z->c == z->l || z->p[z->c] != 'i') goto lab1; /* literal, line 34 */
z->c++;
z->ket = z->c; /* ], line 34 */
if (in_grouping(z, g_v, 97, 238, 0)) goto lab1;
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 34 */
if (in_grouping(z, g_v, 97, 238, 0)) goto lab1; /* grouping v, line 34 */
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 34 */
if (ret < 0) return ret;
}
}
@ -580,15 +578,15 @@ static int r_prelude(struct SN_env * z) {
return 1;
}
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 40 */
z->I[1] = z->l; /* $p1 = <integer expression>, line 41 */
z->I[2] = z->l; /* $p2 = <integer expression>, line 42 */
{ int c1 = z->c; /* do, line 44 */
{ int c2 = z->c; /* or, line 46 */
if (in_grouping(z, g_v, 97, 238, 0)) goto lab2;
if (in_grouping(z, g_v, 97, 238, 0)) goto lab2; /* grouping v, line 45 */
{ int c3 = z->c; /* or, line 45 */
if (out_grouping(z, g_v, 97, 238, 0)) goto lab4;
if (out_grouping(z, g_v, 97, 238, 0)) goto lab4; /* non v, line 45 */
{ /* gopast */ /* grouping v, line 45 */
int ret = out_grouping(z, g_v, 97, 238, 1);
if (ret < 0) goto lab4;
@ -597,7 +595,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab3;
lab4:
z->c = c3;
if (in_grouping(z, g_v, 97, 238, 0)) goto lab2;
if (in_grouping(z, g_v, 97, 238, 0)) goto lab2; /* grouping v, line 45 */
{ /* gopast */ /* non v, line 45 */
int ret = in_grouping(z, g_v, 97, 238, 1);
if (ret < 0) goto lab2;
@ -608,9 +606,9 @@ static int r_mark_regions(struct SN_env * z) {
goto lab1;
lab2:
z->c = c2;
if (out_grouping(z, g_v, 97, 238, 0)) goto lab0;
if (out_grouping(z, g_v, 97, 238, 0)) goto lab0; /* non v, line 47 */
{ int c4 = z->c; /* or, line 47 */
if (out_grouping(z, g_v, 97, 238, 0)) goto lab6;
if (out_grouping(z, g_v, 97, 238, 0)) goto lab6; /* non v, line 47 */
{ /* gopast */ /* grouping v, line 47 */
int ret = out_grouping(z, g_v, 97, 238, 1);
if (ret < 0) goto lab6;
@ -619,7 +617,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab5;
lab6:
z->c = c4;
if (in_grouping(z, g_v, 97, 238, 0)) goto lab0;
if (in_grouping(z, g_v, 97, 238, 0)) goto lab0; /* grouping v, line 47 */
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 47 */
}
@ -660,24 +658,23 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 56 */
int c1 = z->c;
z->bra = z->c; /* [, line 58 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
among_var = find_among(z, a_0, 3); /* substring, line 58 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else /* substring, line 58 */
among_var = find_among(z, a_0, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 58 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 58 */
case 1:
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 59 */
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 59 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 60 */
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 60 */
if (ret < 0) return ret;
}
break;
@ -694,72 +691,70 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
static int r_RV(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_RV(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 68 */
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 69 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[2] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 70 */
return 1;
}
static int r_step_0(struct SN_env * z) {
static int r_step_0(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 73 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_1, 16); /* substring, line 73 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 73 */
among_var = find_among_b(z, a_1, 16);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 73 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 73 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 73 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 73 */
case 1:
{ int ret = slice_del(z); /* delete, line 75 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 77 */
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 79 */
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 81 */
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 81 */
if (ret < 0) return ret;
}
break;
case 5:
{ int m1 = z->l - z->c; (void)m1; /* not, line 83 */
if (!(eq_s_b(z, 2, s_9))) goto lab0;
if (!(eq_s_b(z, 2, s_7))) goto lab0; /* literal, line 83 */
return 0;
lab0:
z->c = z->l - m1;
}
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 83 */
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 83 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 2, s_11); /* <-, line 85 */
{ int ret = slice_from_s(z, 2, s_9); /* <-, line 85 */
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 3, s_12); /* <-, line 87 */
{ int ret = slice_from_s(z, 3, s_10); /* <-, line 87 */
if (ret < 0) return ret;
}
break;
@ -767,63 +762,61 @@ static int r_step_0(struct SN_env * z) {
return 1;
}
static int r_combo_suffix(struct SN_env * z) {
static int r_combo_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int m_test = z->l - z->c; /* test, line 91 */
{ int m_test1 = z->l - z->c; /* test, line 91 */
z->ket = z->c; /* [, line 92 */
among_var = find_among_b(z, a_2, 46); /* substring, line 92 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 92 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 92 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 92 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 93 */
case 1:
{ int ret = slice_from_s(z, 4, s_13); /* <-, line 101 */
{ int ret = slice_from_s(z, 4, s_11); /* <-, line 101 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 4, s_14); /* <-, line 104 */
{ int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 2, s_15); /* <-, line 107 */
{ int ret = slice_from_s(z, 2, s_13); /* <-, line 107 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 2, s_16); /* <-, line 113 */
{ int ret = slice_from_s(z, 2, s_14); /* <-, line 113 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 2, s_17); /* <-, line 118 */
{ int ret = slice_from_s(z, 2, s_15); /* <-, line 118 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 2, s_18); /* <-, line 122 */
{ int ret = slice_from_s(z, 2, s_16); /* <-, line 122 */
if (ret < 0) return ret;
}
break;
}
z->B[0] = 1; /* set standard_suffix_removed, line 125 */
z->c = z->l - m_test;
z->c = z->l - m_test1;
}
return 1;
}
static int r_standard_suffix(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->B[0] = 0; /* unset standard_suffix_removed, line 130 */
while(1) { /* repeat, line 131 */
int m1 = z->l - z->c; (void)m1;
{ int ret = r_combo_suffix(z);
if (ret == 0) goto lab0; /* call combo_suffix, line 131 */
{ int ret = r_combo_suffix(z); /* call combo_suffix, line 131 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
continue;
@ -835,26 +828,25 @@ static int r_standard_suffix(struct SN_env * z) {
among_var = find_among_b(z, a_3, 62); /* substring, line 132 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 132 */
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 132 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 132 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 133 */
case 1:
{ int ret = slice_del(z); /* delete, line 149 */
if (ret < 0) return ret;
}
break;
case 2:
if (!(eq_s_b(z, 1, s_19))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 0xFE) return 0; /* literal, line 152 */
z->c--;
z->bra = z->c; /* ], line 152 */
{ int ret = slice_from_s(z, 1, s_20); /* <-, line 152 */
{ int ret = slice_from_s(z, 1, s_17); /* <-, line 152 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 3, s_21); /* <-, line 156 */
{ int ret = slice_from_s(z, 3, s_18); /* <-, line 156 */
if (ret < 0) return ret;
}
break;
@ -863,27 +855,25 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
static int r_verb_suffix(struct SN_env * z) {
static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 164 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 164 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 164 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 165 */
among_var = find_among_b(z, a_4, 94); /* substring, line 165 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 165 */
switch(among_var) {
case 0: { z->lb = mlimit; return 0; }
switch (among_var) { /* among, line 165 */
case 1:
{ int m2 = z->l - z->c; (void)m2; /* or, line 200 */
if (out_grouping_b(z, g_v, 97, 238, 0)) goto lab1;
if (out_grouping_b(z, g_v, 97, 238, 0)) goto lab1; /* non v, line 200 */
goto lab0;
lab1:
z->c = z->l - m2;
if (!(eq_s_b(z, 1, s_22))) { z->lb = mlimit; return 0; }
if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->lb = mlimit1; return 0; } /* literal, line 200 */
z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 200 */
@ -896,98 +886,88 @@ static int r_verb_suffix(struct SN_env * z) {
}
break;
}
z->lb = mlimit;
z->lb = mlimit1;
}
return 1;
}
static int r_vowel_suffix(struct SN_env * z) {
int among_var;
static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 219 */
among_var = find_among_b(z, a_5, 5); /* substring, line 219 */
if (!(among_var)) return 0;
if (!(find_among_b(z, a_5, 5))) return 0; /* substring, line 219 */
z->bra = z->c; /* ], line 219 */
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 219 */
{ int ret = r_RV(z); /* call RV, line 219 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 220 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = slice_del(z); /* delete, line 220 */
if (ret < 0) return ret;
}
break;
}
return 1;
}
extern int romanian_ISO_8859_2_stem(struct SN_env * z) {
extern int romanian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 226 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 226 */
{ int ret = r_prelude(z); /* call prelude, line 226 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 227 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 227 */
if (ret < 0) return ret;
}
lab1:
z->c = c2;
/* do, line 227 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 227 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->lb = z->c; z->c = z->l; /* backwards, line 228 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 229 */
{ int ret = r_step_0(z);
if (ret == 0) goto lab2; /* call step_0, line 229 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 229 */
{ int ret = r_step_0(z); /* call step_0, line 229 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
z->c = z->l - m2;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 230 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab3; /* call standard_suffix, line 230 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 230 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 230 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = z->l - m4;
z->c = z->l - m3;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 231 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 231 */
{ int m4 = z->l - z->c; (void)m4; /* do, line 231 */
{ int m5 = z->l - z->c; (void)m5; /* or, line 231 */
if (!(z->B[0])) goto lab6; /* Boolean test standard_suffix_removed, line 231 */
goto lab5;
lab6:
z->c = z->l - m6;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab4; /* call verb_suffix, line 231 */
z->c = z->l - m5;
{ int ret = r_verb_suffix(z); /* call verb_suffix, line 231 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
lab4:
z->c = z->l - m5;
z->c = z->l - m4;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 232 */
{ int ret = r_vowel_suffix(z);
if (ret == 0) goto lab7; /* call vowel_suffix, line 232 */
{ int m6 = z->l - z->c; (void)m6; /* do, line 232 */
{ int ret = r_vowel_suffix(z); /* call vowel_suffix, line 232 */
if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
z->c = z->l - m7;
z->c = z->l - m6;
}
z->c = z->lb;
{ int c8 = z->c; /* do, line 234 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab8; /* call postlude, line 234 */
{ int c7 = z->c; /* do, line 234 */
{ int ret = r_postlude(z); /* call postlude, line 234 */
if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
lab8:
z->c = c8;
z->c = c7;
}
return 1;
}

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -340,20 +340,11 @@ static const struct among a_7[4] =
static const unsigned char g_v[] = { 35, 130, 34, 18 };
static const symbol s_0[] = { 0xC1 };
static const symbol s_1[] = { 0xD1 };
static const symbol s_2[] = { 0xC1 };
static const symbol s_3[] = { 0xD1 };
static const symbol s_4[] = { 0xC1 };
static const symbol s_5[] = { 0xD1 };
static const symbol s_6[] = { 0xCE };
static const symbol s_7[] = { 0xCE };
static const symbol s_8[] = { 0xCE };
static const symbol s_9[] = { 0xC9 };
static const symbol s_0[] = { 0xC5 };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 61 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 62 */
{ int c1 = z->c; /* do, line 63 */
{ /* gopast */ /* grouping v, line 64 */
int ret = out_grouping(z, g_v, 192, 220, 1);
@ -383,27 +374,28 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 71 */
return 1;
}
static int r_perfective_gerund(struct SN_env * z) {
static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 74 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_0, 9); /* substring, line 74 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 74 */
among_var = find_among_b(z, a_0, 9);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 74 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 74 */
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 78 */
if (!(eq_s_b(z, 1, s_0))) goto lab1;
if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; /* literal, line 78 */
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_1))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; /* literal, line 78 */
z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 78 */
@ -419,45 +411,38 @@ static int r_perfective_gerund(struct SN_env * z) {
return 1;
}
static int r_adjective(struct SN_env * z) {
int among_var;
static int r_adjective(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 90 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_1, 26); /* substring, line 90 */
if (!(among_var)) return 0;
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 90 */
if (!(find_among_b(z, a_1, 26))) return 0;
z->bra = z->c; /* ], line 90 */
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
break;
{ int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
return 1;
}
static int r_adjectival(struct SN_env * z) {
static int r_adjectival(struct SN_env * z) { /* backwardmode */
int among_var;
{ int ret = r_adjective(z);
if (ret == 0) return 0; /* call adjective, line 104 */
if (ret < 0) return ret;
{ int ret = r_adjective(z); /* call adjective, line 104 */
if (ret <= 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
{ int m1 = z->l - z->c; (void)m1; /* try, line 111 */
z->ket = z->c; /* [, line 112 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab0; }
among_var = find_among_b(z, a_2, 8); /* substring, line 112 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; } /* substring, line 112 */
among_var = find_among_b(z, a_2, 8);
if (!(among_var)) { z->c = z->l - m1; goto lab0; }
z->bra = z->c; /* ], line 112 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab0; }
switch (among_var) { /* among, line 112 */
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 117 */
if (!(eq_s_b(z, 1, s_2))) goto lab2;
{ int m2 = z->l - z->c; (void)m2; /* or, line 117 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab2; /* literal, line 117 */
z->c--;
goto lab1;
lab2:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_3))) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m2;
if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) { z->c = z->l - m1; goto lab0; } /* literal, line 117 */
z->c--;
}
lab1:
{ int ret = slice_del(z); /* delete, line 117 */
@ -476,40 +461,34 @@ static int r_adjectival(struct SN_env * z) {
return 1;
}
static int r_reflexive(struct SN_env * z) {
int among_var;
static int r_reflexive(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 131 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0;
among_var = find_among_b(z, a_3, 2); /* substring, line 131 */
if (!(among_var)) return 0;
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0; /* substring, line 131 */
if (!(find_among_b(z, a_3, 2))) return 0;
z->bra = z->c; /* ], line 131 */
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
break;
{ int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
return 1;
}
static int r_verb(struct SN_env * z) {
static int r_verb(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 139 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_4, 46); /* substring, line 139 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 139 */
among_var = find_among_b(z, a_4, 46);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 139 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 139 */
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 145 */
if (!(eq_s_b(z, 1, s_4))) goto lab1;
if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; /* literal, line 145 */
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_5))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; /* literal, line 145 */
z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 145 */
@ -525,69 +504,56 @@ static int r_verb(struct SN_env * z) {
return 1;
}
static int r_noun(struct SN_env * z) {
int among_var;
static int r_noun(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 162 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_5, 36); /* substring, line 162 */
if (!(among_var)) return 0;
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 162 */
if (!(find_among_b(z, a_5, 36))) return 0;
z->bra = z->c; /* ], line 162 */
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = slice_del(z); /* delete, line 169 */
if (ret < 0) return ret;
}
break;
}
return 1;
}
static int r_derivational(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 178 */
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0;
among_var = find_among_b(z, a_6, 2); /* substring, line 178 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 178 */
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 178 */
{ int ret = slice_del(z); /* delete, line 169 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = slice_del(z); /* delete, line 181 */
if (ret < 0) return ret;
}
break;
return 1;
}
static int r_derivational(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 178 */
if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0; /* substring, line 178 */
if (!(find_among_b(z, a_6, 2))) return 0;
z->bra = z->c; /* ], line 178 */
{ int ret = r_R2(z); /* call R2, line 178 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 181 */
if (ret < 0) return ret;
}
return 1;
}
static int r_tidy_up(struct SN_env * z) {
static int r_tidy_up(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 186 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_7, 4); /* substring, line 186 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 186 */
among_var = find_among_b(z, a_7, 4);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 186 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 186 */
case 1:
{ int ret = slice_del(z); /* delete, line 190 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 191 */
if (!(eq_s_b(z, 1, s_6))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 191 */
z->c--;
z->bra = z->c; /* ], line 191 */
if (!(eq_s_b(z, 1, s_7))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 191 */
z->c--;
{ int ret = slice_del(z); /* delete, line 191 */
if (ret < 0) return ret;
}
break;
case 2:
if (!(eq_s_b(z, 1, s_8))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 194 */
z->c--;
{ int ret = slice_del(z); /* delete, line 194 */
if (ret < 0) return ret;
}
@ -601,94 +567,117 @@ static int r_tidy_up(struct SN_env * z) {
return 1;
}
extern int russian_KOI8_R_stem(struct SN_env * z) {
{ int c1 = z->c; /* do, line 203 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 203 */
if (ret < 0) return ret;
extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 205 */
while(1) { /* repeat, line 205 */
int c2 = z->c;
while(1) { /* goto, line 205 */
int c3 = z->c;
z->bra = z->c; /* [, line 205 */
if (z->c == z->l || z->p[z->c] != 0xA3) goto lab2; /* literal, line 205 */
z->c++;
z->ket = z->c; /* ], line 205 */
z->c = c3;
break;
lab2:
z->c = c3;
if (z->c >= z->l) goto lab1;
z->c++; /* goto, line 205 */
}
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 205 */
if (ret < 0) return ret;
}
continue;
lab1:
z->c = c2;
break;
}
lab0:
z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 204 */
/* do, line 207 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 207 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->lb = z->c; z->c = z->l; /* backwards, line 208 */
{ int mlimit; /* setlimit, line 204 */
int m2 = z->l - z->c; (void)m2;
{ int mlimit4; /* setlimit, line 208 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 204 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m2;
{ int m3 = z->l - z->c; (void)m3; /* do, line 205 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 206 */
{ int ret = r_perfective_gerund(z);
if (ret == 0) goto lab3; /* call perfective_gerund, line 206 */
mlimit4 = z->lb; z->lb = z->I[0];
{ int m5 = z->l - z->c; (void)m5; /* do, line 209 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 210 */
{ int ret = r_perfective_gerund(z); /* call perfective_gerund, line 210 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
goto lab2;
lab3:
z->c = z->l - m4;
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 207 */
{ int ret = r_reflexive(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call reflexive, line 207 */
goto lab5;
lab6:
z->c = z->l - m6;
{ int m7 = z->l - z->c; (void)m7; /* try, line 211 */
{ int ret = r_reflexive(z); /* call reflexive, line 211 */
if (ret == 0) { z->c = z->l - m7; goto lab7; }
if (ret < 0) return ret;
}
lab4:
lab7:
;
}
{ int m5 = z->l - z->c; (void)m5; /* or, line 208 */
{ int ret = r_adjectival(z);
if (ret == 0) goto lab6; /* call adjectival, line 208 */
{ int m8 = z->l - z->c; (void)m8; /* or, line 212 */
{ int ret = r_adjectival(z); /* call adjectival, line 212 */
if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
goto lab5;
lab6:
z->c = z->l - m5;
{ int ret = r_verb(z);
if (ret == 0) goto lab7; /* call verb, line 208 */
goto lab8;
lab9:
z->c = z->l - m8;
{ int ret = r_verb(z); /* call verb, line 212 */
if (ret == 0) goto lab10;
if (ret < 0) return ret;
}
goto lab5;
lab7:
z->c = z->l - m5;
{ int ret = r_noun(z);
if (ret == 0) goto lab1; /* call noun, line 208 */
goto lab8;
lab10:
z->c = z->l - m8;
{ int ret = r_noun(z); /* call noun, line 212 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
lab8:
;
}
lab2:
lab1:
z->c = z->l - m3;
lab5:
lab4:
z->c = z->l - m5;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 211 */
z->ket = z->c; /* [, line 211 */
if (!(eq_s_b(z, 1, s_9))) { z->c = z->l - m_keep; goto lab8; }
z->bra = z->c; /* ], line 211 */
{ int ret = slice_del(z); /* delete, line 211 */
{ int m9 = z->l - z->c; (void)m9; /* try, line 215 */
z->ket = z->c; /* [, line 215 */
if (z->c <= z->lb || z->p[z->c - 1] != 0xC9) { z->c = z->l - m9; goto lab11; } /* literal, line 215 */
z->c--;
z->bra = z->c; /* ], line 215 */
{ int ret = slice_del(z); /* delete, line 215 */
if (ret < 0) return ret;
}
lab8:
lab11:
;
}
{ int m6 = z->l - z->c; (void)m6; /* do, line 214 */
{ int ret = r_derivational(z);
if (ret == 0) goto lab9; /* call derivational, line 214 */
{ int m10 = z->l - z->c; (void)m10; /* do, line 218 */
{ int ret = r_derivational(z); /* call derivational, line 218 */
if (ret == 0) goto lab12;
if (ret < 0) return ret;
}
lab9:
z->c = z->l - m6;
lab12:
z->c = z->l - m10;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 215 */
{ int ret = r_tidy_up(z);
if (ret == 0) goto lab10; /* call tidy_up, line 215 */
{ int m11 = z->l - z->c; (void)m11; /* do, line 219 */
{ int ret = r_tidy_up(z); /* call tidy_up, line 219 */
if (ret == 0) goto lab13;
if (ret < 0) return ret;
}
lab10:
z->c = z->l - m7;
lab13:
z->c = z->l - m11;
}
z->lb = mlimit;
z->lb = mlimit4;
}
z->c = z->lb;
return 1;

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -132,15 +132,15 @@ static const symbol s_0[] = { 's', 't' };
static const symbol s_1[] = { 'i', 'g' };
static const symbol s_2[] = { 'l', 0xC3, 0xB8, 's' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
{ int c_test = z->c; /* test, line 33 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3);
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 31 */
{ int c_test1 = z->c; /* test, line 33 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 33 */
if (ret < 0) return 0;
z->c = ret; /* hop, line 33 */
z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 33 */
z->c = c_test;
z->c = c_test1;
}
if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 34 */
{ /* gopast */ /* non v, line 34 */
@ -149,37 +149,34 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 34 */
/* try, line 35 */
if (!(z->I[0] < z->I[1])) goto lab0;
z->I[0] = z->I[1];
/* try, line 35 */
if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 35 */
z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 35 */
lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) {
static int r_main_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 41 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 41 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 41 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 41 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_0, 32); /* substring, line 41 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 41 */
among_var = find_among_b(z, a_0, 32);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 41 */
z->lb = mlimit;
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 42 */
case 1:
{ int ret = slice_del(z); /* delete, line 48 */
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0;
if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 50 */
{ int ret = slice_del(z); /* delete, line 50 */
if (ret < 0) return ret;
}
@ -188,21 +185,19 @@ static int r_main_suffix(struct SN_env * z) {
return 1;
}
static int r_consonant_pair(struct SN_env * z) {
{ int m_test = z->l - z->c; /* test, line 55 */
{ int mlimit; /* setlimit, line 56 */
int m1 = z->l - z->c; (void)m1;
static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 55 */
{ int mlimit2; /* setlimit, line 56 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 56 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit; return 0; } /* substring, line 56 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 56 */
if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 56 */
z->lb = mlimit;
z->lb = mlimit2;
}
z->c = z->l - m_test;
z->c = z->l - m_test1;
}
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
if (ret < 0) return 0;
@ -215,41 +210,38 @@ static int r_consonant_pair(struct SN_env * z) {
return 1;
}
static int r_other_suffix(struct SN_env * z) {
static int r_other_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 66 */
z->ket = z->c; /* [, line 66 */
if (!(eq_s_b(z, 2, s_0))) goto lab0;
if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 66 */
z->bra = z->c; /* ], line 66 */
if (!(eq_s_b(z, 2, s_1))) goto lab0;
if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 66 */
{ int ret = slice_del(z); /* delete, line 66 */
if (ret < 0) return ret;
}
lab0:
z->c = z->l - m1;
}
{ int mlimit; /* setlimit, line 67 */
int m2 = z->l - z->c; (void)m2;
{ int mlimit2; /* setlimit, line 67 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 67 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m2;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 67 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_2, 5); /* substring, line 67 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } /* substring, line 67 */
among_var = find_among_b(z, a_2, 5);
if (!(among_var)) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 67 */
z->lb = mlimit;
z->lb = mlimit2;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 68 */
case 1:
{ int ret = slice_del(z); /* delete, line 70 */
if (ret < 0) return ret;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 70 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab1; /* call consonant_pair, line 70 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 70 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
@ -265,19 +257,17 @@ static int r_other_suffix(struct SN_env * z) {
return 1;
}
static int r_undouble(struct SN_env * z) {
{ int mlimit; /* setlimit, line 76 */
int m1 = z->l - z->c; (void)m1;
static int r_undouble(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 76 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 76 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 76 */
if (out_grouping_b_U(z, g_v, 97, 248, 0)) { z->lb = mlimit; return 0; }
if (out_grouping_b_U(z, g_v, 97, 248, 0)) { z->lb = mlimit1; return 0; } /* non v, line 76 */
z->bra = z->c; /* ], line 76 */
z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 76 */
if (z->S[0] == 0) return -1; /* -> ch, line 76 */
z->lb = mlimit;
z->lb = mlimit1;
}
if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 77 */
{ int ret = slice_del(z); /* delete, line 78 */
@ -286,10 +276,10 @@ static int r_undouble(struct SN_env * z) {
return 1;
}
extern int danish_UTF_8_stem(struct SN_env * z) {
extern int danish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 84 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 84 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 84 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
@ -298,32 +288,32 @@ extern int danish_UTF_8_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 85 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 86 */
{ int ret = r_main_suffix(z);
if (ret == 0) goto lab1; /* call main_suffix, line 86 */
{ int ret = r_main_suffix(z); /* call main_suffix, line 86 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 87 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab2; /* call consonant_pair, line 87 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 87 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 88 */
{ int ret = r_other_suffix(z);
if (ret == 0) goto lab3; /* call other_suffix, line 88 */
{ int ret = r_other_suffix(z); /* call other_suffix, line 88 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 89 */
{ int ret = r_undouble(z);
if (ret == 0) goto lab4; /* call undouble, line 89 */
{ int ret = r_undouble(z); /* call undouble, line 89 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
lab4:

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -134,36 +134,28 @@ static const symbol s_1[] = { 'e' };
static const symbol s_2[] = { 'i' };
static const symbol s_3[] = { 'o' };
static const symbol s_4[] = { 'u' };
static const symbol s_5[] = { 'y' };
static const symbol s_6[] = { 'Y' };
static const symbol s_7[] = { 'i' };
static const symbol s_8[] = { 'I' };
static const symbol s_9[] = { 'y' };
static const symbol s_10[] = { 'Y' };
static const symbol s_11[] = { 'y' };
static const symbol s_12[] = { 'i' };
static const symbol s_13[] = { 'e' };
static const symbol s_14[] = { 'g', 'e', 'm' };
static const symbol s_15[] = { 'h', 'e', 'i', 'd' };
static const symbol s_16[] = { 'h', 'e', 'i', 'd' };
static const symbol s_17[] = { 'c' };
static const symbol s_18[] = { 'e', 'n' };
static const symbol s_19[] = { 'i', 'g' };
static const symbol s_20[] = { 'e' };
static const symbol s_21[] = { 'e' };
static const symbol s_5[] = { 'Y' };
static const symbol s_6[] = { 'I' };
static const symbol s_7[] = { 'Y' };
static const symbol s_8[] = { 'y' };
static const symbol s_9[] = { 'i' };
static const symbol s_10[] = { 'g', 'e', 'm' };
static const symbol s_11[] = { 'h', 'e', 'i', 'd' };
static const symbol s_12[] = { 'h', 'e', 'i', 'd' };
static const symbol s_13[] = { 'e', 'n' };
static const symbol s_14[] = { 'i', 'g' };
static int r_prelude(struct SN_env * z) {
static int r_prelude(struct SN_env * z) { /* forwardmode */
int among_var;
{ int c_test = z->c; /* test, line 42 */
{ int c_test1 = z->c; /* test, line 42 */
while(1) { /* repeat, line 42 */
int c1 = z->c;
int c2 = z->c;
z->bra = z->c; /* [, line 43 */
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((340306450 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else
among_var = find_among(z, a_0, 11); /* substring, line 43 */
if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((340306450 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else /* substring, line 43 */
among_var = find_among(z, a_0, 11);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 43 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 43 */
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
if (ret < 0) return ret;
@ -198,48 +190,51 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab0:
z->c = c1;
z->c = c2;
break;
}
z->c = c_test;
z->c = c_test1;
}
{ int c_keep = z->c; /* try, line 57 */
{ int c3 = z->c; /* try, line 57 */
z->bra = z->c; /* [, line 57 */
if (!(eq_s(z, 1, s_5))) { z->c = c_keep; goto lab1; }
if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } /* literal, line 57 */
z->c++;
z->ket = z->c; /* ], line 57 */
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 57 */
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 57 */
if (ret < 0) return ret;
}
lab1:
;
}
while(1) { /* repeat, line 58 */
int c2 = z->c;
int c4 = z->c;
while(1) { /* goto, line 58 */
int c3 = z->c;
if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3;
int c5 = z->c;
if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3; /* grouping v, line 59 */
z->bra = z->c; /* [, line 59 */
{ int c4 = z->c; /* or, line 59 */
if (!(eq_s(z, 1, s_7))) goto lab5;
{ int c6 = z->c; /* or, line 59 */
if (z->c == z->l || z->p[z->c] != 'i') goto lab5; /* literal, line 59 */
z->c++;
z->ket = z->c; /* ], line 59 */
if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5;
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 59 */
if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5; /* grouping v, line 59 */
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 59 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
z->c = c4;
if (!(eq_s(z, 1, s_9))) goto lab3;
z->c = c6;
if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 60 */
z->c++;
z->ket = z->c; /* ], line 60 */
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 60 */
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 60 */
if (ret < 0) return ret;
}
}
lab4:
z->c = c3;
z->c = c5;
break;
lab3:
z->c = c3;
z->c = c5;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
if (ret < 0) goto lab2;
z->c = ret; /* goto, line 58 */
@ -247,15 +242,15 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab2:
z->c = c2;
z->c = c4;
break;
}
return 1;
}
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 66 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 67 */
{ /* gopast */ /* grouping v, line 69 */
int ret = out_grouping_U(z, g_v, 97, 232, 1);
if (ret < 0) return 0;
@ -267,9 +262,9 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 69 */
/* try, line 70 */
if (!(z->I[0] < 3)) goto lab0;
z->I[0] = 3;
/* try, line 70 */
if (!(z->I[0] < 3)) goto lab0; /* $(<integer expression> < <integer expression>), line 70 */
z->I[0] = 3; /* $p1 = <integer expression>, line 70 */
lab0:
{ /* gopast */ /* grouping v, line 71 */
int ret = out_grouping_U(z, g_v, 97, 232, 1);
@ -285,24 +280,23 @@ lab0:
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 75 */
int c1 = z->c;
z->bra = z->c; /* [, line 77 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
among_var = find_among(z, a_1, 3); /* substring, line 77 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else /* substring, line 77 */
among_var = find_among(z, a_1, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 77 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 77 */
case 1:
{ int ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 78 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
@ -321,21 +315,21 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 87 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 88 */
return 1;
}
static int r_undouble(struct SN_env * z) {
{ int m_test = z->l - z->c; /* test, line 91 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_2, 3))) return 0; /* among, line 91 */
z->c = z->l - m_test;
static int r_undouble(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 91 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 91 */
if (!(find_among_b(z, a_2, 3))) return 0;
z->c = z->l - m_test1;
}
z->ket = z->c; /* [, line 91 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
@ -349,40 +343,38 @@ static int r_undouble(struct SN_env * z) {
return 1;
}
static int r_e_ending(struct SN_env * z) {
static int r_e_ending(struct SN_env * z) { /* backwardmode */
z->B[0] = 0; /* unset e_found, line 95 */
z->ket = z->c; /* [, line 96 */
if (!(eq_s_b(z, 1, s_13))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 96 */
z->c--;
z->bra = z->c; /* ], line 96 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 96 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 96 */
if (ret <= 0) return ret;
}
{ int m_test = z->l - z->c; /* test, line 96 */
if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0;
z->c = z->l - m_test;
{ int m_test1 = z->l - z->c; /* test, line 96 */
if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; /* non v, line 96 */
z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set e_found, line 97 */
{ int ret = r_undouble(z);
if (ret == 0) return 0; /* call undouble, line 98 */
if (ret < 0) return ret;
{ int ret = r_undouble(z); /* call undouble, line 98 */
if (ret <= 0) return ret;
}
return 1;
}
static int r_en_ending(struct SN_env * z) {
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 102 */
if (ret < 0) return ret;
static int r_en_ending(struct SN_env * z) { /* backwardmode */
{ int ret = r_R1(z); /* call R1, line 102 */
if (ret <= 0) return ret;
}
{ int m1 = z->l - z->c; (void)m1; /* and, line 102 */
if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0;
if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; /* non v, line 102 */
z->c = z->l - m1;
{ int m2 = z->l - z->c; (void)m2; /* not, line 102 */
if (!(eq_s_b(z, 3, s_14))) goto lab0;
if (!(eq_s_b(z, 3, s_10))) goto lab0; /* literal, line 102 */
return 0;
lab0:
z->c = z->l - m2;
@ -391,44 +383,42 @@ static int r_en_ending(struct SN_env * z) {
{ int ret = slice_del(z); /* delete, line 102 */
if (ret < 0) return ret;
}
{ int ret = r_undouble(z);
if (ret == 0) return 0; /* call undouble, line 103 */
if (ret < 0) return ret;
{ int ret = r_undouble(z); /* call undouble, line 103 */
if (ret <= 0) return ret;
}
return 1;
}
static int r_standard_suffix(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 107 */
z->ket = z->c; /* [, line 108 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
among_var = find_among_b(z, a_3, 5); /* substring, line 108 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 108 */
among_var = find_among_b(z, a_3, 5);
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 108 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 108 */
case 1:
{ int ret = r_R1(z);
if (ret == 0) goto lab0; /* call R1, line 110 */
{ int ret = r_R1(z); /* call R1, line 110 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
{ int ret = slice_from_s(z, 4, s_15); /* <-, line 110 */
{ int ret = slice_from_s(z, 4, s_11); /* <-, line 110 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_en_ending(z);
if (ret == 0) goto lab0; /* call en_ending, line 113 */
{ int ret = r_en_ending(z); /* call en_ending, line 113 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = r_R1(z);
if (ret == 0) goto lab0; /* call R1, line 116 */
{ int ret = r_R1(z); /* call R1, line 116 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
if (out_grouping_b_U(z, g_v_j, 97, 232, 0)) goto lab0;
if (out_grouping_b_U(z, g_v_j, 97, 232, 0)) goto lab0; /* non v_j, line 116 */
{ int ret = slice_del(z); /* delete, line 116 */
if (ret < 0) return ret;
}
@ -438,8 +428,8 @@ static int r_standard_suffix(struct SN_env * z) {
z->c = z->l - m1;
}
{ int m2 = z->l - z->c; (void)m2; /* do, line 120 */
{ int ret = r_e_ending(z);
if (ret == 0) goto lab1; /* call e_ending, line 120 */
{ int ret = r_e_ending(z); /* call e_ending, line 120 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
@ -447,14 +437,15 @@ static int r_standard_suffix(struct SN_env * z) {
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 122 */
z->ket = z->c; /* [, line 122 */
if (!(eq_s_b(z, 4, s_16))) goto lab2;
if (!(eq_s_b(z, 4, s_12))) goto lab2; /* literal, line 122 */
z->bra = z->c; /* ], line 122 */
{ int ret = r_R2(z);
if (ret == 0) goto lab2; /* call R2, line 122 */
{ int ret = r_R2(z); /* call R2, line 122 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
{ int m4 = z->l - z->c; (void)m4; /* not, line 122 */
if (!(eq_s_b(z, 1, s_17))) goto lab3;
if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab3; /* literal, line 122 */
z->c--;
goto lab2;
lab3:
z->c = z->l - m4;
@ -463,10 +454,10 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 123 */
if (!(eq_s_b(z, 2, s_18))) goto lab2;
if (!(eq_s_b(z, 2, s_13))) goto lab2; /* literal, line 123 */
z->bra = z->c; /* ], line 123 */
{ int ret = r_en_ending(z);
if (ret == 0) goto lab2; /* call en_ending, line 123 */
{ int ret = r_en_ending(z); /* call en_ending, line 123 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
@ -474,15 +465,14 @@ static int r_standard_suffix(struct SN_env * z) {
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 126 */
z->ket = z->c; /* [, line 127 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab4;
among_var = find_among_b(z, a_4, 6); /* substring, line 127 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab4; /* substring, line 127 */
among_var = find_among_b(z, a_4, 6);
if (!(among_var)) goto lab4;
z->bra = z->c; /* ], line 127 */
switch(among_var) {
case 0: goto lab4;
switch (among_var) { /* among, line 127 */
case 1:
{ int ret = r_R2(z);
if (ret == 0) goto lab4; /* call R2, line 129 */
{ int ret = r_R2(z); /* call R2, line 129 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 129 */
@ -490,14 +480,15 @@ static int r_standard_suffix(struct SN_env * z) {
}
{ int m6 = z->l - z->c; (void)m6; /* or, line 130 */
z->ket = z->c; /* [, line 130 */
if (!(eq_s_b(z, 2, s_19))) goto lab6;
if (!(eq_s_b(z, 2, s_14))) goto lab6; /* literal, line 130 */
z->bra = z->c; /* ], line 130 */
{ int ret = r_R2(z);
if (ret == 0) goto lab6; /* call R2, line 130 */
{ int ret = r_R2(z); /* call R2, line 130 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
{ int m7 = z->l - z->c; (void)m7; /* not, line 130 */
if (!(eq_s_b(z, 1, s_20))) goto lab7;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7; /* literal, line 130 */
z->c--;
goto lab6;
lab7:
z->c = z->l - m7;
@ -508,20 +499,21 @@ static int r_standard_suffix(struct SN_env * z) {
goto lab5;
lab6:
z->c = z->l - m6;
{ int ret = r_undouble(z);
if (ret == 0) goto lab4; /* call undouble, line 130 */
{ int ret = r_undouble(z); /* call undouble, line 130 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
break;
case 2:
{ int ret = r_R2(z);
if (ret == 0) goto lab4; /* call R2, line 133 */
{ int ret = r_R2(z); /* call R2, line 133 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int m8 = z->l - z->c; (void)m8; /* not, line 133 */
if (!(eq_s_b(z, 1, s_21))) goto lab8;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8; /* literal, line 133 */
z->c--;
goto lab4;
lab8:
z->c = z->l - m8;
@ -531,21 +523,21 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 3:
{ int ret = r_R2(z);
if (ret == 0) goto lab4; /* call R2, line 136 */
{ int ret = r_R2(z); /* call R2, line 136 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 136 */
if (ret < 0) return ret;
}
{ int ret = r_e_ending(z);
if (ret == 0) goto lab4; /* call e_ending, line 136 */
{ int ret = r_e_ending(z); /* call e_ending, line 136 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_R2(z);
if (ret == 0) goto lab4; /* call R2, line 139 */
{ int ret = r_R2(z); /* call R2, line 139 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 139 */
@ -553,8 +545,8 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 5:
{ int ret = r_R2(z);
if (ret == 0) goto lab4; /* call R2, line 142 */
{ int ret = r_R2(z); /* call R2, line 142 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
if (!(z->B[0])) goto lab4; /* Boolean test e_found, line 142 */
@ -567,12 +559,12 @@ static int r_standard_suffix(struct SN_env * z) {
z->c = z->l - m5;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 146 */
if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab9;
{ int m_test = z->l - z->c; /* test, line 148 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab9;
if (!(find_among_b(z, a_5, 4))) goto lab9; /* among, line 149 */
if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab9;
z->c = z->l - m_test;
if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab9; /* non v_I, line 147 */
{ int m_test10 = z->l - z->c; /* test, line 148 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab9; /* among, line 149 */
if (!(find_among_b(z, a_5, 4))) goto lab9;
if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab9; /* non v, line 150 */
z->c = z->l - m_test10;
}
z->ket = z->c; /* [, line 152 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
@ -589,18 +581,18 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
extern int dutch_UTF_8_stem(struct SN_env * z) {
extern int dutch_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 159 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 159 */
{ int ret = r_prelude(z); /* call prelude, line 159 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 160 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 160 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 160 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
@ -608,22 +600,20 @@ extern int dutch_UTF_8_stem(struct SN_env * z) {
}
z->lb = z->c; z->c = z->l; /* backwards, line 161 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 162 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab2; /* call standard_suffix, line 162 */
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
/* do, line 162 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 162 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->lb;
{ int c4 = z->c; /* do, line 163 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab3; /* call postlude, line 163 */
{ int c3 = z->c; /* do, line 163 */
{ int ret = r_postlude(z); /* call postlude, line 163 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = c4;
z->c = c3;
}
return 1;
}

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -153,12 +153,12 @@ static const struct among a_5[24] =
/* 0 */ { 4, s_5_0, -1, 3, 0},
/* 1 */ { 4, s_5_1, -1, 2, 0},
/* 2 */ { 3, s_5_2, -1, 13, 0},
/* 3 */ { 2, s_5_3, -1, 16, 0},
/* 3 */ { 2, s_5_3, -1, 15, 0},
/* 4 */ { 3, s_5_4, 3, 12, 0},
/* 5 */ { 4, s_5_5, 4, 4, 0},
/* 6 */ { 4, s_5_6, 3, 8, 0},
/* 7 */ { 5, s_5_7, 3, 14, 0},
/* 8 */ { 6, s_5_8, 3, 15, 0},
/* 7 */ { 5, s_5_7, 3, 9, 0},
/* 8 */ { 6, s_5_8, 3, 14, 0},
/* 9 */ { 5, s_5_9, 3, 10, 0},
/* 10 */ { 5, s_5_10, 3, 5, 0},
/* 11 */ { 5, s_5_11, -1, 8, 0},
@ -317,62 +317,52 @@ static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
static const unsigned char g_valid_LI[] = { 55, 141, 2 };
static const symbol s_0[] = { '\'' };
static const symbol s_1[] = { 'y' };
static const symbol s_2[] = { 'Y' };
static const symbol s_3[] = { 'y' };
static const symbol s_4[] = { 'Y' };
static const symbol s_5[] = { 's', 's' };
static const symbol s_6[] = { 'i' };
static const symbol s_7[] = { 'i', 'e' };
static const symbol s_8[] = { 'e', 'e' };
static const symbol s_9[] = { 'e' };
static const symbol s_10[] = { 'e' };
static const symbol s_11[] = { 'y' };
static const symbol s_12[] = { 'Y' };
static const symbol s_13[] = { 'i' };
static const symbol s_14[] = { 't', 'i', 'o', 'n' };
static const symbol s_15[] = { 'e', 'n', 'c', 'e' };
static const symbol s_16[] = { 'a', 'n', 'c', 'e' };
static const symbol s_17[] = { 'a', 'b', 'l', 'e' };
static const symbol s_18[] = { 'e', 'n', 't' };
static const symbol s_19[] = { 'i', 'z', 'e' };
static const symbol s_20[] = { 'a', 't', 'e' };
static const symbol s_21[] = { 'a', 'l' };
static const symbol s_22[] = { 'f', 'u', 'l' };
static const symbol s_23[] = { 'o', 'u', 's' };
static const symbol s_24[] = { 'i', 'v', 'e' };
static const symbol s_25[] = { 'b', 'l', 'e' };
static const symbol s_26[] = { 'l' };
static const symbol s_27[] = { 'o', 'g' };
static const symbol s_28[] = { 'f', 'u', 'l' };
static const symbol s_29[] = { 'l', 'e', 's', 's' };
static const symbol s_30[] = { 't', 'i', 'o', 'n' };
static const symbol s_31[] = { 'a', 't', 'e' };
static const symbol s_32[] = { 'a', 'l' };
static const symbol s_33[] = { 'i', 'c' };
static const symbol s_34[] = { 's' };
static const symbol s_35[] = { 't' };
static const symbol s_36[] = { 'l' };
static const symbol s_37[] = { 's', 'k', 'i' };
static const symbol s_38[] = { 's', 'k', 'y' };
static const symbol s_39[] = { 'd', 'i', 'e' };
static const symbol s_40[] = { 'l', 'i', 'e' };
static const symbol s_41[] = { 't', 'i', 'e' };
static const symbol s_42[] = { 'i', 'd', 'l' };
static const symbol s_43[] = { 'g', 'e', 'n', 't', 'l' };
static const symbol s_44[] = { 'u', 'g', 'l', 'i' };
static const symbol s_45[] = { 'e', 'a', 'r', 'l', 'i' };
static const symbol s_46[] = { 'o', 'n', 'l', 'i' };
static const symbol s_47[] = { 's', 'i', 'n', 'g', 'l' };
static const symbol s_48[] = { 'Y' };
static const symbol s_49[] = { 'y' };
static const symbol s_0[] = { 'Y' };
static const symbol s_1[] = { 'Y' };
static const symbol s_2[] = { 's', 's' };
static const symbol s_3[] = { 'i' };
static const symbol s_4[] = { 'i', 'e' };
static const symbol s_5[] = { 'e', 'e' };
static const symbol s_6[] = { 'e' };
static const symbol s_7[] = { 'e' };
static const symbol s_8[] = { 'i' };
static const symbol s_9[] = { 't', 'i', 'o', 'n' };
static const symbol s_10[] = { 'e', 'n', 'c', 'e' };
static const symbol s_11[] = { 'a', 'n', 'c', 'e' };
static const symbol s_12[] = { 'a', 'b', 'l', 'e' };
static const symbol s_13[] = { 'e', 'n', 't' };
static const symbol s_14[] = { 'i', 'z', 'e' };
static const symbol s_15[] = { 'a', 't', 'e' };
static const symbol s_16[] = { 'a', 'l' };
static const symbol s_17[] = { 'f', 'u', 'l' };
static const symbol s_18[] = { 'o', 'u', 's' };
static const symbol s_19[] = { 'i', 'v', 'e' };
static const symbol s_20[] = { 'b', 'l', 'e' };
static const symbol s_21[] = { 'o', 'g' };
static const symbol s_22[] = { 'l', 'e', 's', 's' };
static const symbol s_23[] = { 't', 'i', 'o', 'n' };
static const symbol s_24[] = { 'a', 't', 'e' };
static const symbol s_25[] = { 'a', 'l' };
static const symbol s_26[] = { 'i', 'c' };
static const symbol s_27[] = { 's', 'k', 'i' };
static const symbol s_28[] = { 's', 'k', 'y' };
static const symbol s_29[] = { 'd', 'i', 'e' };
static const symbol s_30[] = { 'l', 'i', 'e' };
static const symbol s_31[] = { 't', 'i', 'e' };
static const symbol s_32[] = { 'i', 'd', 'l' };
static const symbol s_33[] = { 'g', 'e', 'n', 't', 'l' };
static const symbol s_34[] = { 'u', 'g', 'l', 'i' };
static const symbol s_35[] = { 'e', 'a', 'r', 'l', 'i' };
static const symbol s_36[] = { 'o', 'n', 'l', 'i' };
static const symbol s_37[] = { 's', 'i', 'n', 'g', 'l' };
static const symbol s_38[] = { 'y' };
static int r_prelude(struct SN_env * z) {
static int r_prelude(struct SN_env * z) { /* forwardmode */
z->B[0] = 0; /* unset Y_found, line 26 */
{ int c1 = z->c; /* do, line 27 */
z->bra = z->c; /* [, line 27 */
if (!(eq_s(z, 1, s_0))) goto lab0;
if (z->c == z->l || z->p[z->c] != '\'') goto lab0; /* literal, line 27 */
z->c++;
z->ket = z->c; /* ], line 27 */
{ int ret = slice_del(z); /* delete, line 27 */
if (ret < 0) return ret;
@ -382,9 +372,10 @@ static int r_prelude(struct SN_env * z) {
}
{ int c2 = z->c; /* do, line 28 */
z->bra = z->c; /* [, line 28 */
if (!(eq_s(z, 1, s_1))) goto lab1;
if (z->c == z->l || z->p[z->c] != 'y') goto lab1; /* literal, line 28 */
z->c++;
z->ket = z->c; /* ], line 28 */
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 28 */
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 28 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 28 */
@ -396,9 +387,10 @@ static int r_prelude(struct SN_env * z) {
int c4 = z->c;
while(1) { /* goto, line 29 */
int c5 = z->c;
if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab4;
if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab4; /* grouping v, line 29 */
z->bra = z->c; /* [, line 29 */
if (!(eq_s(z, 1, s_3))) goto lab4;
if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 29 */
z->c++;
z->ket = z->c; /* ], line 29 */
z->c = c5;
break;
@ -409,7 +401,7 @@ static int r_prelude(struct SN_env * z) {
z->c = ret; /* goto, line 29 */
}
}
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 29 */
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 29 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 29 */
@ -423,13 +415,13 @@ static int r_prelude(struct SN_env * z) {
return 1;
}
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 33 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 34 */
{ int c1 = z->c; /* do, line 35 */
{ int c2 = z->c; /* or, line 41 */
if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2;
if (!(find_among(z, a_0, 3))) goto lab2; /* among, line 36 */
if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2; /* among, line 36 */
if (!(find_among(z, a_0, 3))) goto lab2;
goto lab1;
lab2:
z->c = c2;
@ -463,76 +455,69 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
static int r_shortv(struct SN_env * z) {
static int r_shortv(struct SN_env * z) { /* backwardmode */
{ int m1 = z->l - z->c; (void)m1; /* or, line 51 */
if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) goto lab1;
if (in_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1;
if (out_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1;
if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) goto lab1; /* non v_WXY, line 50 */
if (in_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1; /* grouping v, line 50 */
if (out_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1; /* non v, line 50 */
goto lab0;
lab1:
z->c = z->l - m1;
if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* non v, line 52 */
if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 52 */
if (z->c > z->lb) return 0; /* atlimit, line 52 */
}
lab0:
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 55 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 56 */
return 1;
}
static int r_Step_1a(struct SN_env * z) {
static int r_Step_1a(struct SN_env * z) { /* backwardmode */
int among_var;
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 59 */
{ int m1 = z->l - z->c; (void)m1; /* try, line 59 */
z->ket = z->c; /* [, line 60 */
if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m_keep; goto lab0; }
among_var = find_among_b(z, a_1, 3); /* substring, line 60 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; } /* substring, line 60 */
if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; }
z->bra = z->c; /* ], line 60 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab0; }
case 1:
{ int ret = slice_del(z); /* delete, line 62 */
if (ret < 0) return ret;
}
break;
{ int ret = slice_del(z); /* delete, line 62 */
if (ret < 0) return ret;
}
lab0:
;
}
z->ket = z->c; /* [, line 65 */
if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0;
among_var = find_among_b(z, a_2, 6); /* substring, line 65 */
if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0; /* substring, line 65 */
among_var = find_among_b(z, a_2, 6);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 65 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 65 */
case 1:
{ int ret = slice_from_s(z, 2, s_5); /* <-, line 66 */
{ int ret = slice_from_s(z, 2, s_2); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 2:
{ int m1 = z->l - z->c; (void)m1; /* or, line 68 */
{ int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 2);
{ int m2 = z->l - z->c; (void)m2; /* or, line 68 */
{ int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 2); /* hop, line 68 */
if (ret < 0) goto lab2;
z->c = ret; /* hop, line 68 */
z->c = ret;
}
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 68 */
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 68 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
z->c = z->l - m1;
{ int ret = slice_from_s(z, 2, s_7); /* <-, line 68 */
z->c = z->l - m2;
{ int ret = slice_from_s(z, 2, s_4); /* <-, line 68 */
if (ret < 0) return ret;
}
}
@ -556,48 +541,47 @@ static int r_Step_1a(struct SN_env * z) {
return 1;
}
static int r_Step_1b(struct SN_env * z) {
static int r_Step_1b(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 75 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_4, 6); /* substring, line 75 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 75 */
among_var = find_among_b(z, a_4, 6);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 75 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 75 */
case 1:
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 77 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 77 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 2, s_8); /* <-, line 77 */
{ int ret = slice_from_s(z, 2, s_5); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
case 2:
{ int m_test = z->l - z->c; /* test, line 80 */
{ int m_test1 = z->l - z->c; /* test, line 80 */
{ /* gopast */ /* grouping v, line 80 */
int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
if (ret < 0) return 0;
z->c -= ret;
}
z->c = z->l - m_test;
z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 80 */
if (ret < 0) return ret;
}
{ int m_test = z->l - z->c; /* test, line 81 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
among_var = find_among_b(z, a_3, 13); /* substring, line 81 */
{ int m_test2 = z->l - z->c; /* test, line 81 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 81 */
among_var = find_among_b(z, a_3, 13);
if (!(among_var)) return 0;
z->c = z->l - m_test;
z->c = z->l - m_test2;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 81 */
case 1:
{ int c_keep = z->c;
int ret = insert_s(z, z->c, z->c, 1, s_9); /* <+, line 83 */
z->c = c_keep;
{ int ret;
{ int saved_c = z->c;
ret = insert_s(z, z->c, z->c, 1, s_6); /* <+, line 83 */
z->c = saved_c;
}
if (ret < 0) return ret;
}
break;
@ -614,16 +598,17 @@ static int r_Step_1b(struct SN_env * z) {
break;
case 3:
if (z->c != z->I[0]) return 0; /* atmark, line 87 */
{ int m_test = z->l - z->c; /* test, line 87 */
{ int ret = r_shortv(z);
if (ret == 0) return 0; /* call shortv, line 87 */
if (ret < 0) return ret;
{ int m_test3 = z->l - z->c; /* test, line 87 */
{ int ret = r_shortv(z); /* call shortv, line 87 */
if (ret <= 0) return ret;
}
z->c = z->l - m_test;
z->c = z->l - m_test3;
}
{ int c_keep = z->c;
int ret = insert_s(z, z->c, z->c, 1, s_10); /* <+, line 87 */
z->c = c_keep;
{ int ret;
{ int saved_c = z->c;
ret = insert_s(z, z->c, z->c, 1, s_7); /* <+, line 87 */
z->c = saved_c;
}
if (ret < 0) return ret;
}
break;
@ -633,121 +618,115 @@ static int r_Step_1b(struct SN_env * z) {
return 1;
}
static int r_Step_1c(struct SN_env * z) {
static int r_Step_1c(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 94 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 94 */
if (!(eq_s_b(z, 1, s_11))) goto lab1;
if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 94 */
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_12))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 94 */
z->c--;
}
lab0:
z->bra = z->c; /* ], line 94 */
if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
{ int m2 = z->l - z->c; (void)m2; /* not, line 95 */
if (z->c > z->lb) goto lab2; /* atlimit, line 95 */
return 0;
lab2:
z->c = z->l - m2;
}
{ int ret = slice_from_s(z, 1, s_13); /* <-, line 96 */
if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* non v, line 95 */
/* not, line 95 */
if (z->c > z->lb) goto lab2; /* atlimit, line 95 */
return 0;
lab2:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 96 */
if (ret < 0) return ret;
}
return 1;
}
static int r_Step_2(struct SN_env * z) {
static int r_Step_2(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 100 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_5, 24); /* substring, line 100 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 100 */
among_var = find_among_b(z, a_5, 24);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 100 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 100 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 100 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 100 */
case 1:
{ int ret = slice_from_s(z, 4, s_14); /* <-, line 101 */
{ int ret = slice_from_s(z, 4, s_9); /* <-, line 101 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 4, s_15); /* <-, line 102 */
{ int ret = slice_from_s(z, 4, s_10); /* <-, line 102 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 4, s_16); /* <-, line 103 */
{ int ret = slice_from_s(z, 4, s_11); /* <-, line 103 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 4, s_17); /* <-, line 104 */
{ int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 3, s_18); /* <-, line 105 */
{ int ret = slice_from_s(z, 3, s_13); /* <-, line 105 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 3, s_19); /* <-, line 107 */
{ int ret = slice_from_s(z, 3, s_14); /* <-, line 107 */
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 3, s_20); /* <-, line 109 */
{ int ret = slice_from_s(z, 3, s_15); /* <-, line 109 */
if (ret < 0) return ret;
}
break;
case 8:
{ int ret = slice_from_s(z, 2, s_21); /* <-, line 111 */
{ int ret = slice_from_s(z, 2, s_16); /* <-, line 111 */
if (ret < 0) return ret;
}
break;
case 9:
{ int ret = slice_from_s(z, 3, s_22); /* <-, line 112 */
{ int ret = slice_from_s(z, 3, s_17); /* <-, line 112 */
if (ret < 0) return ret;
}
break;
case 10:
{ int ret = slice_from_s(z, 3, s_23); /* <-, line 114 */
{ int ret = slice_from_s(z, 3, s_18); /* <-, line 114 */
if (ret < 0) return ret;
}
break;
case 11:
{ int ret = slice_from_s(z, 3, s_24); /* <-, line 116 */
{ int ret = slice_from_s(z, 3, s_19); /* <-, line 116 */
if (ret < 0) return ret;
}
break;
case 12:
{ int ret = slice_from_s(z, 3, s_25); /* <-, line 118 */
{ int ret = slice_from_s(z, 3, s_20); /* <-, line 118 */
if (ret < 0) return ret;
}
break;
case 13:
if (!(eq_s_b(z, 1, s_26))) return 0;
{ int ret = slice_from_s(z, 2, s_27); /* <-, line 119 */
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 119 */
z->c--;
{ int ret = slice_from_s(z, 2, s_21); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
case 14:
{ int ret = slice_from_s(z, 3, s_28); /* <-, line 120 */
{ int ret = slice_from_s(z, 4, s_22); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
case 15:
{ int ret = slice_from_s(z, 4, s_29); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
case 16:
if (in_grouping_b_U(z, g_valid_LI, 99, 116, 0)) return 0;
if (in_grouping_b_U(z, g_valid_LI, 99, 116, 0)) return 0; /* grouping valid_LI, line 122 */
{ int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
@ -756,36 +735,34 @@ static int r_Step_2(struct SN_env * z) {
return 1;
}
static int r_Step_3(struct SN_env * z) {
static int r_Step_3(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 127 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_6, 9); /* substring, line 127 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 127 */
among_var = find_among_b(z, a_6, 9);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 127 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 127 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 127 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 127 */
case 1:
{ int ret = slice_from_s(z, 4, s_30); /* <-, line 128 */
{ int ret = slice_from_s(z, 4, s_23); /* <-, line 128 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 3, s_31); /* <-, line 129 */
{ int ret = slice_from_s(z, 3, s_24); /* <-, line 129 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 2, s_32); /* <-, line 130 */
{ int ret = slice_from_s(z, 2, s_25); /* <-, line 130 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 2, s_33); /* <-, line 132 */
{ int ret = slice_from_s(z, 2, s_26); /* <-, line 132 */
if (ret < 0) return ret;
}
break;
@ -795,9 +772,8 @@ static int r_Step_3(struct SN_env * z) {
}
break;
case 6:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 136 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 136 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 136 */
if (ret < 0) return ret;
@ -807,19 +783,17 @@ static int r_Step_3(struct SN_env * z) {
return 1;
}
static int r_Step_4(struct SN_env * z) {
static int r_Step_4(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 141 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_7, 18); /* substring, line 141 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 141 */
among_var = find_among_b(z, a_7, 18);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 141 */
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 141 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 141 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 141 */
case 1:
{ int ret = slice_del(z); /* delete, line 144 */
if (ret < 0) return ret;
@ -827,11 +801,13 @@ static int r_Step_4(struct SN_env * z) {
break;
case 2:
{ int m1 = z->l - z->c; (void)m1; /* or, line 145 */
if (!(eq_s_b(z, 1, s_34))) goto lab1;
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 145 */
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_35))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 145 */
z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 145 */
@ -842,31 +818,29 @@ static int r_Step_4(struct SN_env * z) {
return 1;
}
static int r_Step_5(struct SN_env * z) {
static int r_Step_5(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 150 */
if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0;
among_var = find_among_b(z, a_8, 2); /* substring, line 150 */
if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0; /* substring, line 150 */
among_var = find_among_b(z, a_8, 2);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 150 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 150 */
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 151 */
{ int ret = r_R2(z);
if (ret == 0) goto lab1; /* call R2, line 151 */
{ int ret = r_R2(z); /* call R2, line 151 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = z->l - m1;
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 151 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 151 */
if (ret <= 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* not, line 151 */
{ int ret = r_shortv(z);
if (ret == 0) goto lab2; /* call shortv, line 151 */
{ int ret = r_shortv(z); /* call shortv, line 151 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
return 0;
@ -880,11 +854,11 @@ static int r_Step_5(struct SN_env * z) {
}
break;
case 2:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 152 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 152 */
if (ret <= 0) return ret;
}
if (!(eq_s_b(z, 1, s_36))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 152 */
z->c--;
{ int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
@ -893,77 +867,76 @@ static int r_Step_5(struct SN_env * z) {
return 1;
}
static int r_exception2(struct SN_env * z) {
static int r_exception2(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 158 */
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
if (!(find_among_b(z, a_9, 8))) return 0; /* substring, line 158 */
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 158 */
if (!(find_among_b(z, a_9, 8))) return 0;
z->bra = z->c; /* ], line 158 */
if (z->c > z->lb) return 0; /* atlimit, line 158 */
return 1;
}
static int r_exception1(struct SN_env * z) {
static int r_exception1(struct SN_env * z) { /* forwardmode */
int among_var;
z->bra = z->c; /* [, line 170 */
if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
among_var = find_among(z, a_10, 18); /* substring, line 170 */
if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0; /* substring, line 170 */
among_var = find_among(z, a_10, 18);
if (!(among_var)) return 0;
z->ket = z->c; /* ], line 170 */
if (z->c < z->l) return 0; /* atlimit, line 170 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 170 */
case 1:
{ int ret = slice_from_s(z, 3, s_37); /* <-, line 174 */
{ int ret = slice_from_s(z, 3, s_27); /* <-, line 174 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 3, s_38); /* <-, line 175 */
{ int ret = slice_from_s(z, 3, s_28); /* <-, line 175 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 3, s_39); /* <-, line 176 */
{ int ret = slice_from_s(z, 3, s_29); /* <-, line 176 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 3, s_40); /* <-, line 177 */
{ int ret = slice_from_s(z, 3, s_30); /* <-, line 177 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 3, s_41); /* <-, line 178 */
{ int ret = slice_from_s(z, 3, s_31); /* <-, line 178 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 3, s_42); /* <-, line 182 */
{ int ret = slice_from_s(z, 3, s_32); /* <-, line 182 */
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 5, s_43); /* <-, line 183 */
{ int ret = slice_from_s(z, 5, s_33); /* <-, line 183 */
if (ret < 0) return ret;
}
break;
case 8:
{ int ret = slice_from_s(z, 4, s_44); /* <-, line 184 */
{ int ret = slice_from_s(z, 4, s_34); /* <-, line 184 */
if (ret < 0) return ret;
}
break;
case 9:
{ int ret = slice_from_s(z, 5, s_45); /* <-, line 185 */
{ int ret = slice_from_s(z, 5, s_35); /* <-, line 185 */
if (ret < 0) return ret;
}
break;
case 10:
{ int ret = slice_from_s(z, 4, s_46); /* <-, line 186 */
{ int ret = slice_from_s(z, 4, s_36); /* <-, line 186 */
if (ret < 0) return ret;
}
break;
case 11:
{ int ret = slice_from_s(z, 5, s_47); /* <-, line 187 */
{ int ret = slice_from_s(z, 5, s_37); /* <-, line 187 */
if (ret < 0) return ret;
}
break;
@ -971,14 +944,15 @@ static int r_exception1(struct SN_env * z) {
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
if (!(z->B[0])) return 0; /* Boolean test Y_found, line 203 */
while(1) { /* repeat, line 203 */
int c1 = z->c;
while(1) { /* goto, line 203 */
int c2 = z->c;
z->bra = z->c; /* [, line 203 */
if (!(eq_s(z, 1, s_48))) goto lab1;
if (z->c == z->l || z->p[z->c] != 'Y') goto lab1; /* literal, line 203 */
z->c++;
z->ket = z->c; /* ], line 203 */
z->c = c2;
break;
@ -989,7 +963,7 @@ static int r_postlude(struct SN_env * z) {
z->c = ret; /* goto, line 203 */
}
}
{ int ret = slice_from_s(z, 1, s_49); /* <-, line 203 */
{ int ret = slice_from_s(z, 1, s_38); /* <-, line 203 */
if (ret < 0) return ret;
}
continue;
@ -1000,19 +974,19 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
extern int english_UTF_8_stem(struct SN_env * z) {
extern int english_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* or, line 207 */
{ int ret = r_exception1(z);
if (ret == 0) goto lab1; /* call exception1, line 207 */
{ int ret = r_exception1(z); /* call exception1, line 207 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = c1;
{ int c2 = z->c; /* not, line 208 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3);
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 208 */
if (ret < 0) goto lab3;
z->c = ret; /* hop, line 208 */
z->c = ret;
}
goto lab2;
lab3:
@ -1021,98 +995,94 @@ extern int english_UTF_8_stem(struct SN_env * z) {
goto lab0;
lab2:
z->c = c1;
{ int c3 = z->c; /* do, line 209 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab4; /* call prelude, line 209 */
if (ret < 0) return ret;
}
lab4:
z->c = c3;
/* do, line 209 */
{ int ret = r_prelude(z); /* call prelude, line 209 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
{ int c4 = z->c; /* do, line 210 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab5; /* call mark_regions, line 210 */
if (ret < 0) return ret;
}
lab5:
z->c = c4;
lab4:
/* do, line 210 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 210 */
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
lab5:
z->lb = z->c; z->c = z->l; /* backwards, line 211 */
{ int m5 = z->l - z->c; (void)m5; /* do, line 213 */
{ int ret = r_Step_1a(z);
if (ret == 0) goto lab6; /* call Step_1a, line 213 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 213 */
{ int ret = r_Step_1a(z); /* call Step_1a, line 213 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
z->c = z->l - m5;
z->c = z->l - m3;
}
{ int m6 = z->l - z->c; (void)m6; /* or, line 215 */
{ int ret = r_exception2(z);
if (ret == 0) goto lab8; /* call exception2, line 215 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 215 */
{ int ret = r_exception2(z); /* call exception2, line 215 */
if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
goto lab7;
lab8:
z->c = z->l - m6;
{ int m7 = z->l - z->c; (void)m7; /* do, line 217 */
{ int ret = r_Step_1b(z);
if (ret == 0) goto lab9; /* call Step_1b, line 217 */
z->c = z->l - m4;
{ int m5 = z->l - z->c; (void)m5; /* do, line 217 */
{ int ret = r_Step_1b(z); /* call Step_1b, line 217 */
if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
z->c = z->l - m7;
z->c = z->l - m5;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 218 */
{ int ret = r_Step_1c(z);
if (ret == 0) goto lab10; /* call Step_1c, line 218 */
{ int m6 = z->l - z->c; (void)m6; /* do, line 218 */
{ int ret = r_Step_1c(z); /* call Step_1c, line 218 */
if (ret == 0) goto lab10;
if (ret < 0) return ret;
}
lab10:
z->c = z->l - m8;
z->c = z->l - m6;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 220 */
{ int ret = r_Step_2(z);
if (ret == 0) goto lab11; /* call Step_2, line 220 */
{ int m7 = z->l - z->c; (void)m7; /* do, line 220 */
{ int ret = r_Step_2(z); /* call Step_2, line 220 */
if (ret == 0) goto lab11;
if (ret < 0) return ret;
}
lab11:
z->c = z->l - m9;
z->c = z->l - m7;
}
{ int m10 = z->l - z->c; (void)m10; /* do, line 221 */
{ int ret = r_Step_3(z);
if (ret == 0) goto lab12; /* call Step_3, line 221 */
{ int m8 = z->l - z->c; (void)m8; /* do, line 221 */
{ int ret = r_Step_3(z); /* call Step_3, line 221 */
if (ret == 0) goto lab12;
if (ret < 0) return ret;
}
lab12:
z->c = z->l - m10;
z->c = z->l - m8;
}
{ int m11 = z->l - z->c; (void)m11; /* do, line 222 */
{ int ret = r_Step_4(z);
if (ret == 0) goto lab13; /* call Step_4, line 222 */
{ int m9 = z->l - z->c; (void)m9; /* do, line 222 */
{ int ret = r_Step_4(z); /* call Step_4, line 222 */
if (ret == 0) goto lab13;
if (ret < 0) return ret;
}
lab13:
z->c = z->l - m11;
z->c = z->l - m9;
}
{ int m12 = z->l - z->c; (void)m12; /* do, line 224 */
{ int ret = r_Step_5(z);
if (ret == 0) goto lab14; /* call Step_5, line 224 */
{ int m10 = z->l - z->c; (void)m10; /* do, line 224 */
{ int ret = r_Step_5(z); /* call Step_5, line 224 */
if (ret == 0) goto lab14;
if (ret < 0) return ret;
}
lab14:
z->c = z->l - m12;
z->c = z->l - m10;
}
}
lab7:
z->c = z->lb;
{ int c13 = z->c; /* do, line 227 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab15; /* call postlude, line 227 */
{ int c11 = z->c; /* do, line 227 */
{ int ret = r_postlude(z); /* call postlude, line 227 */
if (ret == 0) goto lab15;
if (ret < 0) return ret;
}
lab15:
z->c = c13;
z->c = c11;
}
}
lab0:

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -183,7 +183,7 @@ static const struct among a_6[30] =
/* 4 */ { 2, s_6_4, 0, -1, 0},
/* 5 */ { 3, s_6_5, 4, -1, 0},
/* 6 */ { 3, s_6_6, 4, -1, 0},
/* 7 */ { 3, s_6_7, 4, 9, 0},
/* 7 */ { 3, s_6_7, 4, 2, 0},
/* 8 */ { 3, s_6_8, -1, -1, 0},
/* 9 */ { 3, s_6_9, -1, -1, 0},
/* 10 */ { 3, s_6_10, -1, -1, 0},
@ -205,7 +205,7 @@ static const struct among a_6[30] =
/* 26 */ { 3, s_6_26, 22, -1, 0},
/* 27 */ { 4, s_6_27, 26, -1, 0},
/* 28 */ { 4, s_6_28, 26, -1, 0},
/* 29 */ { 4, s_6_29, 26, 9, 0}
/* 29 */ { 4, s_6_29, 26, 2, 0}
};
static const symbol s_7_0[3] = { 'e', 'j', 'a' };
@ -261,151 +261,134 @@ static const struct among a_9[2] =
static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
static const unsigned char g_C[] = { 119, 223, 119, 1 };
static const unsigned char g_V1[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
static const unsigned char g_V2[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
static const unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
static const symbol s_0[] = { 'k' };
static const symbol s_1[] = { 'k', 's', 'e' };
static const symbol s_2[] = { 'k', 's', 'i' };
static const symbol s_3[] = { 'i' };
static const symbol s_4[] = { 'a' };
static const symbol s_5[] = { 'e' };
static const symbol s_6[] = { 'i' };
static const symbol s_7[] = { 'o' };
static const symbol s_8[] = { 0xC3, 0xA4 };
static const symbol s_9[] = { 0xC3, 0xB6 };
static const symbol s_10[] = { 'i', 'e' };
static const symbol s_11[] = { 'e' };
static const symbol s_12[] = { 'p', 'o' };
static const symbol s_13[] = { 't' };
static const symbol s_14[] = { 'p', 'o' };
static const symbol s_15[] = { 'j' };
static const symbol s_16[] = { 'o' };
static const symbol s_17[] = { 'u' };
static const symbol s_18[] = { 'o' };
static const symbol s_19[] = { 'j' };
static const symbol s_0[] = { 'k', 's', 'e' };
static const symbol s_1[] = { 'k', 's', 'i' };
static const symbol s_2[] = { 0xC3, 0xA4 };
static const symbol s_3[] = { 0xC3, 0xB6 };
static const symbol s_4[] = { 'i', 'e' };
static const symbol s_5[] = { 'p', 'o' };
static const symbol s_6[] = { 'p', 'o' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 46 */
{ /* gopast */ /* non V1, line 46 */
int ret = in_grouping_U(z, g_V1, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 46 */
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 44 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 45 */
if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 47 */
{ /* gopast */ /* non V1, line 47 */
int ret = in_grouping_U(z, g_V1, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 47 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
return 1;
}
static int r_particle_etc(struct SN_env * z) {
int among_var;
{ int mlimit; /* setlimit, line 55 */
int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 55 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
z->ket = z->c; /* [, line 55 */
among_var = find_among_b(z, a_0, 10); /* substring, line 55 */
if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 55 */
z->lb = mlimit;
z->I[0] = z->c; /* setmark p1, line 47 */
if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 48 */
{ /* gopast */ /* non V1, line 48 */
int ret = in_grouping_U(z, g_V1, 97, 246, 1);
if (ret < 0) return 0;
z->c += ret;
}
switch(among_var) {
case 0: return 0;
z->I[1] = z->c; /* setmark p2, line 48 */
return 1;
}
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 53 */
return 1;
}
static int r_particle_etc(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit1; /* setlimit, line 56 */
if (z->c < z->I[0]) return 0;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
among_var = find_among_b(z, a_0, 10); /* substring, line 56 */
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 56 */
z->lb = mlimit1;
}
switch (among_var) { /* among, line 57 */
case 1:
if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) return 0;
if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) return 0; /* grouping particle_end, line 63 */
break;
case 2:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 64 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 65 */
if (ret <= 0) return ret;
}
break;
}
{ int ret = slice_del(z); /* delete, line 66 */
{ int ret = slice_del(z); /* delete, line 67 */
if (ret < 0) return ret;
}
return 1;
}
static int r_possessive(struct SN_env * z) {
static int r_possessive(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 69 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 70 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 69 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
z->ket = z->c; /* [, line 69 */
among_var = find_among_b(z, a_4, 9); /* substring, line 69 */
if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 69 */
z->lb = mlimit;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 70 */
among_var = find_among_b(z, a_4, 9); /* substring, line 70 */
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 70 */
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 71 */
case 1:
{ int m2 = z->l - z->c; (void)m2; /* not, line 72 */
if (!(eq_s_b(z, 1, s_0))) goto lab0;
{ int m2 = z->l - z->c; (void)m2; /* not, line 73 */
if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0; /* literal, line 73 */
z->c--;
return 0;
lab0:
z->c = z->l - m2;
}
{ int ret = slice_del(z); /* delete, line 72 */
{ int ret = slice_del(z); /* delete, line 73 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 74 */
{ int ret = slice_del(z); /* delete, line 75 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 74 */
if (!(eq_s_b(z, 3, s_1))) return 0;
z->bra = z->c; /* ], line 74 */
{ int ret = slice_from_s(z, 3, s_2); /* <-, line 74 */
z->ket = z->c; /* [, line 75 */
if (!(eq_s_b(z, 3, s_0))) return 0; /* literal, line 75 */
z->bra = z->c; /* ], line 75 */
{ int ret = slice_from_s(z, 3, s_1); /* <-, line 75 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 78 */
{ int ret = slice_del(z); /* delete, line 79 */
if (ret < 0) return ret;
}
break;
case 4:
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
if (!(find_among_b(z, a_1, 6))) return 0; /* among, line 81 */
{ int ret = slice_del(z); /* delete, line 81 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0; /* among, line 82 */
if (!(find_among_b(z, a_1, 6))) return 0;
{ int ret = slice_del(z); /* delete, line 82 */
if (ret < 0) return ret;
}
break;
case 5:
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0;
if (!(find_among_b(z, a_2, 6))) return 0; /* among, line 83 */
{ int ret = slice_del(z); /* delete, line 84 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0; /* among, line 84 */
if (!(find_among_b(z, a_2, 6))) return 0;
{ int ret = slice_del(z); /* delete, line 85 */
if (ret < 0) return ret;
}
break;
case 6:
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
if (!(find_among_b(z, a_3, 2))) return 0; /* among, line 86 */
{ int ret = slice_del(z); /* delete, line 86 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0; /* among, line 87 */
if (!(find_among_b(z, a_3, 2))) return 0;
{ int ret = slice_del(z); /* delete, line 87 */
if (ret < 0) return ret;
}
break;
@ -413,350 +396,338 @@ static int r_possessive(struct SN_env * z) {
return 1;
}
static int r_LONG(struct SN_env * z) {
if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 91 */
static int r_LONG(struct SN_env * z) { /* backwardmode */
if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 92 */
return 1;
}
static int r_VI(struct SN_env * z) {
if (!(eq_s_b(z, 1, s_3))) return 0;
if (in_grouping_b_U(z, g_V2, 97, 246, 0)) return 0;
static int r_VI(struct SN_env * z) { /* backwardmode */
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 94 */
z->c--;
if (in_grouping_b_U(z, g_V2, 97, 246, 0)) return 0; /* grouping V2, line 94 */
return 1;
}
static int r_case_ending(struct SN_env * z) {
static int r_case_ending(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 96 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 97 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 96 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
z->ket = z->c; /* [, line 96 */
among_var = find_among_b(z, a_6, 30); /* substring, line 96 */
if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 96 */
z->lb = mlimit;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 97 */
among_var = find_among_b(z, a_6, 30); /* substring, line 97 */
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 97 */
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 98 */
case 1:
if (!(eq_s_b(z, 1, s_4))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; /* literal, line 99 */
z->c--;
break;
case 2:
if (!(eq_s_b(z, 1, s_5))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 100 */
z->c--;
break;
case 3:
if (!(eq_s_b(z, 1, s_6))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 101 */
z->c--;
break;
case 4:
if (!(eq_s_b(z, 1, s_7))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; /* literal, line 102 */
z->c--;
break;
case 5:
if (!(eq_s_b(z, 2, s_8))) return 0;
if (!(eq_s_b(z, 2, s_2))) return 0; /* literal, line 103 */
break;
case 6:
if (!(eq_s_b(z, 2, s_9))) return 0;
if (!(eq_s_b(z, 2, s_3))) return 0; /* literal, line 104 */
break;
case 7:
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
{ int m2 = z->l - z->c; (void)m2; /* and, line 113 */
{ int m3 = z->l - z->c; (void)m3; /* or, line 112 */
{ int ret = r_LONG(z);
if (ret == 0) goto lab2; /* call LONG, line 111 */
{ int m2 = z->l - z->c; (void)m2; /* try, line 112 */
{ int m3 = z->l - z->c; (void)m3; /* and, line 114 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 113 */
{ int ret = r_LONG(z); /* call LONG, line 112 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
goto lab1;
lab2:
z->c = z->l - m3;
if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m4;
if (!(eq_s_b(z, 2, s_4))) { z->c = z->l - m2; goto lab0; } /* literal, line 113 */
}
lab1:
z->c = z->l - m2;
z->c = z->l - m3;
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
if (ret < 0) { z->c = z->l - m_keep; goto lab0; }
z->c = ret; /* next, line 113 */
if (ret < 0) { z->c = z->l - m2; goto lab0; }
z->c = ret; /* next, line 114 */
}
}
z->bra = z->c; /* ], line 113 */
z->bra = z->c; /* ], line 114 */
lab0:
;
}
break;
case 8:
if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0;
if (out_grouping_b_U(z, g_V1, 97, 246, 0)) return 0;
break;
case 9:
if (!(eq_s_b(z, 1, s_11))) return 0;
if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0; /* grouping V1, line 120 */
if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 120 */
break;
}
{ int ret = slice_del(z); /* delete, line 138 */
{ int ret = slice_del(z); /* delete, line 139 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set ending_removed, line 139 */
z->B[0] = 1; /* set ending_removed, line 140 */
return 1;
}
static int r_other_endings(struct SN_env * z) {
static int r_other_endings(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 142 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 143 */
if (z->c < z->I[1]) return 0;
z->c = z->I[1]; /* tomark, line 142 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
z->ket = z->c; /* [, line 142 */
among_var = find_among_b(z, a_7, 14); /* substring, line 142 */
if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 142 */
z->lb = mlimit;
mlimit1 = z->lb; z->lb = z->I[1];
z->ket = z->c; /* [, line 143 */
among_var = find_among_b(z, a_7, 14); /* substring, line 143 */
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 143 */
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 144 */
case 1:
{ int m2 = z->l - z->c; (void)m2; /* not, line 146 */
if (!(eq_s_b(z, 2, s_12))) goto lab0;
{ int m2 = z->l - z->c; (void)m2; /* not, line 147 */
if (!(eq_s_b(z, 2, s_5))) goto lab0; /* literal, line 147 */
return 0;
lab0:
z->c = z->l - m2;
}
break;
}
{ int ret = slice_del(z); /* delete, line 151 */
{ int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
return 1;
}
static int r_i_plural(struct SN_env * z) {
{ int mlimit; /* setlimit, line 154 */
int m1 = z->l - z->c; (void)m1;
static int r_i_plural(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 155 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 154 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
z->ket = z->c; /* [, line 154 */
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit; return 0; } /* substring, line 154 */
z->bra = z->c; /* ], line 154 */
z->lb = mlimit;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 155 */
if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; } /* substring, line 155 */
if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 155 */
z->lb = mlimit1;
}
{ int ret = slice_del(z); /* delete, line 158 */
{ int ret = slice_del(z); /* delete, line 159 */
if (ret < 0) return ret;
}
return 1;
}
static int r_t_plural(struct SN_env * z) {
static int r_t_plural(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 161 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 162 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 161 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
z->ket = z->c; /* [, line 162 */
if (!(eq_s_b(z, 1, s_13))) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 162 */
{ int m_test = z->l - z->c; /* test, line 162 */
if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit; return 0; }
z->c = z->l - m_test;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 163 */
if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } /* literal, line 163 */
z->c--;
z->bra = z->c; /* ], line 163 */
{ int m_test2 = z->l - z->c; /* test, line 163 */
if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; } /* grouping V1, line 163 */
z->c = z->l - m_test2;
}
{ int ret = slice_del(z); /* delete, line 163 */
{ int ret = slice_del(z); /* delete, line 164 */
if (ret < 0) return ret;
}
z->lb = mlimit;
z->lb = mlimit1;
}
{ int mlimit; /* setlimit, line 165 */
int m2 = z->l - z->c; (void)m2;
{ int mlimit3; /* setlimit, line 166 */
if (z->c < z->I[1]) return 0;
z->c = z->I[1]; /* tomark, line 165 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m2;
z->ket = z->c; /* [, line 165 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_9, 2); /* substring, line 165 */
if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 165 */
z->lb = mlimit;
mlimit3 = z->lb; z->lb = z->I[1];
z->ket = z->c; /* [, line 166 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } /* substring, line 166 */
among_var = find_among_b(z, a_9, 2);
if (!(among_var)) { z->lb = mlimit3; return 0; }
z->bra = z->c; /* ], line 166 */
z->lb = mlimit3;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 167 */
case 1:
{ int m3 = z->l - z->c; (void)m3; /* not, line 167 */
if (!(eq_s_b(z, 2, s_14))) goto lab0;
{ int m4 = z->l - z->c; (void)m4; /* not, line 168 */
if (!(eq_s_b(z, 2, s_6))) goto lab0; /* literal, line 168 */
return 0;
lab0:
z->c = z->l - m3;
z->c = z->l - m4;
}
break;
}
{ int ret = slice_del(z); /* delete, line 170 */
{ int ret = slice_del(z); /* delete, line 171 */
if (ret < 0) return ret;
}
return 1;
}
static int r_tidy(struct SN_env * z) {
{ int mlimit; /* setlimit, line 173 */
int m1 = z->l - z->c; (void)m1;
static int r_tidy(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 174 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 173 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
{ int m2 = z->l - z->c; (void)m2; /* do, line 174 */
{ int m3 = z->l - z->c; (void)m3; /* and, line 174 */
{ int ret = r_LONG(z);
if (ret == 0) goto lab0; /* call LONG, line 174 */
mlimit1 = z->lb; z->lb = z->I[0];
{ int m2 = z->l - z->c; (void)m2; /* do, line 175 */
{ int m3 = z->l - z->c; (void)m3; /* and, line 175 */
{ int ret = r_LONG(z); /* call LONG, line 175 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
z->c = z->l - m3;
z->ket = z->c; /* [, line 174 */
z->ket = z->c; /* [, line 175 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
if (ret < 0) goto lab0;
z->c = ret; /* next, line 174 */
z->c = ret; /* next, line 175 */
}
z->bra = z->c; /* ], line 174 */
{ int ret = slice_del(z); /* delete, line 174 */
z->bra = z->c; /* ], line 175 */
{ int ret = slice_del(z); /* delete, line 175 */
if (ret < 0) return ret;
}
}
lab0:
z->c = z->l - m2;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 175 */
z->ket = z->c; /* [, line 175 */
if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab1;
z->bra = z->c; /* ], line 175 */
if (out_grouping_b_U(z, g_V1, 97, 246, 0)) goto lab1;
{ int ret = slice_del(z); /* delete, line 175 */
{ int m4 = z->l - z->c; (void)m4; /* do, line 176 */
z->ket = z->c; /* [, line 176 */
if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab1; /* grouping AEI, line 176 */
z->bra = z->c; /* ], line 176 */
if (in_grouping_b_U(z, g_C, 98, 122, 0)) goto lab1; /* grouping C, line 176 */
{ int ret = slice_del(z); /* delete, line 176 */
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 176 */
z->ket = z->c; /* [, line 176 */
if (!(eq_s_b(z, 1, s_15))) goto lab2;
z->bra = z->c; /* ], line 176 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 176 */
if (!(eq_s_b(z, 1, s_16))) goto lab4;
{ int m5 = z->l - z->c; (void)m5; /* do, line 177 */
z->ket = z->c; /* [, line 177 */
if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2; /* literal, line 177 */
z->c--;
z->bra = z->c; /* ], line 177 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 177 */
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4; /* literal, line 177 */
z->c--;
goto lab3;
lab4:
z->c = z->l - m6;
if (!(eq_s_b(z, 1, s_17))) goto lab2;
if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2; /* literal, line 177 */
z->c--;
}
lab3:
{ int ret = slice_del(z); /* delete, line 176 */
{ int ret = slice_del(z); /* delete, line 177 */
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m5;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 177 */
z->ket = z->c; /* [, line 177 */
if (!(eq_s_b(z, 1, s_18))) goto lab5;
z->bra = z->c; /* ], line 177 */
if (!(eq_s_b(z, 1, s_19))) goto lab5;
{ int ret = slice_del(z); /* delete, line 177 */
{ int m7 = z->l - z->c; (void)m7; /* do, line 178 */
z->ket = z->c; /* [, line 178 */
if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 178 */
z->c--;
z->bra = z->c; /* ], line 178 */
if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5; /* literal, line 178 */
z->c--;
{ int ret = slice_del(z); /* delete, line 178 */
if (ret < 0) return ret;
}
lab5:
z->c = z->l - m7;
}
z->lb = mlimit;
z->lb = mlimit1;
}
if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 179 */
z->ket = z->c; /* [, line 179 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
if (ret < 0) return 0;
z->c = ret; /* next, line 179 */
}
z->bra = z->c; /* ], line 179 */
z->S[0] = slice_to(z, z->S[0]); /* -> x, line 179 */
if (z->S[0] == 0) return -1; /* -> x, line 179 */
if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 179 */
{ int ret = slice_del(z); /* delete, line 179 */
if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 180 */
z->ket = z->c; /* [, line 180 */
if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 180 */
z->bra = z->c; /* ], line 180 */
z->S[0] = slice_to(z, z->S[0]); /* -> x, line 180 */
if (z->S[0] == 0) return -1; /* -> x, line 180 */
if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 180 */
{ int ret = slice_del(z); /* delete, line 180 */
if (ret < 0) return ret;
}
return 1;
}
extern int finnish_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c; /* do, line 185 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 185 */
extern int finnish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 186 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 186 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
z->B[0] = 0; /* unset ending_removed, line 186 */
z->lb = z->c; z->c = z->l; /* backwards, line 187 */
z->B[0] = 0; /* unset ending_removed, line 187 */
z->lb = z->c; z->c = z->l; /* backwards, line 188 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 188 */
{ int ret = r_particle_etc(z);
if (ret == 0) goto lab1; /* call particle_etc, line 188 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 189 */
{ int ret = r_particle_etc(z); /* call particle_etc, line 189 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 189 */
{ int ret = r_possessive(z);
if (ret == 0) goto lab2; /* call possessive, line 189 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 190 */
{ int ret = r_possessive(z); /* call possessive, line 190 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 190 */
{ int ret = r_case_ending(z);
if (ret == 0) goto lab3; /* call case_ending, line 190 */
{ int m4 = z->l - z->c; (void)m4; /* do, line 191 */
{ int ret = r_case_ending(z); /* call case_ending, line 191 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = z->l - m4;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 191 */
{ int ret = r_other_endings(z);
if (ret == 0) goto lab4; /* call other_endings, line 191 */
{ int m5 = z->l - z->c; (void)m5; /* do, line 192 */
{ int ret = r_other_endings(z); /* call other_endings, line 192 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
lab4:
z->c = z->l - m5;
}
{ int m6 = z->l - z->c; (void)m6; /* or, line 192 */
if (!(z->B[0])) goto lab6; /* Boolean test ending_removed, line 192 */
{ int m7 = z->l - z->c; (void)m7; /* do, line 192 */
{ int ret = r_i_plural(z);
if (ret == 0) goto lab7; /* call i_plural, line 192 */
if (ret < 0) return ret;
}
lab7:
z->c = z->l - m7;
/* or, line 193 */
if (!(z->B[0])) goto lab6; /* Boolean test ending_removed, line 193 */
{ int m6 = z->l - z->c; (void)m6; /* do, line 193 */
{ int ret = r_i_plural(z); /* call i_plural, line 193 */
if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
goto lab5;
lab6:
lab7:
z->c = z->l - m6;
{ int m8 = z->l - z->c; (void)m8; /* do, line 192 */
{ int ret = r_t_plural(z);
if (ret == 0) goto lab8; /* call t_plural, line 192 */
if (ret < 0) return ret;
}
lab8:
z->c = z->l - m8;
}
goto lab5;
lab6:
{ int m7 = z->l - z->c; (void)m7; /* do, line 193 */
{ int ret = r_t_plural(z); /* call t_plural, line 193 */
if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
lab8:
z->c = z->l - m7;
}
lab5:
{ int m9 = z->l - z->c; (void)m9; /* do, line 193 */
{ int ret = r_tidy(z);
if (ret == 0) goto lab9; /* call tidy, line 193 */
{ int m8 = z->l - z->c; (void)m8; /* do, line 194 */
{ int ret = r_tidy(z); /* call tidy, line 194 */
if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
z->c = z->l - m9;
z->c = z->l - m8;
}
z->c = z->lb;
return 1;

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -36,12 +36,12 @@ static const symbol s_0_5[2] = { 0xC3, 0xBC };
static const struct among a_0[6] =
{
/* 0 */ { 0, 0, -1, 6, 0},
/* 0 */ { 0, 0, -1, 5, 0},
/* 1 */ { 1, s_0_1, 0, 2, 0},
/* 2 */ { 1, s_0_2, 0, 1, 0},
/* 3 */ { 2, s_0_3, 0, 3, 0},
/* 4 */ { 2, s_0_4, 0, 4, 0},
/* 5 */ { 2, s_0_5, 0, 5, 0}
/* 5 */ { 2, s_0_5, 0, 2, 0}
};
static const symbol s_1_0[1] = { 'e' };
@ -54,13 +54,13 @@ static const symbol s_1_6[2] = { 'e', 's' };
static const struct among a_1[7] =
{
/* 0 */ { 1, s_1_0, -1, 1, 0},
/* 0 */ { 1, s_1_0, -1, 2, 0},
/* 1 */ { 2, s_1_1, -1, 1, 0},
/* 2 */ { 2, s_1_2, -1, 1, 0},
/* 2 */ { 2, s_1_2, -1, 2, 0},
/* 3 */ { 3, s_1_3, -1, 1, 0},
/* 4 */ { 2, s_1_4, -1, 1, 0},
/* 5 */ { 1, s_1_5, -1, 2, 0},
/* 6 */ { 2, s_1_6, 5, 1, 0}
/* 5 */ { 1, s_1_5, -1, 3, 0},
/* 6 */ { 2, s_1_6, 5, 2, 0}
};
static const symbol s_2_0[2] = { 'e', 'n' };
@ -114,168 +114,160 @@ 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[] = { 'U' };
static const symbol s_2[] = { 'U' };
static const symbol s_3[] = { 'Y' };
static const symbol s_4[] = { 'y' };
static const symbol s_5[] = { 'Y' };
static const symbol s_6[] = { 'y' };
static const symbol s_7[] = { 'u' };
static const symbol s_8[] = { 'a' };
static const symbol s_9[] = { 'o' };
static const symbol s_10[] = { 'u' };
static const symbol s_11[] = { 'i', 'g' };
static const symbol s_12[] = { 'e' };
static const symbol s_13[] = { 'e' };
static const symbol s_14[] = { 'e', 'r' };
static const symbol s_15[] = { 'e', 'n' };
static const symbol s_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 int r_prelude(struct SN_env * z) {
{ int c_test = z->c; /* test, line 30 */
while(1) { /* repeat, line 30 */
int c1 = z->c;
{ int c2 = z->c; /* or, line 33 */
z->bra = z->c; /* [, line 32 */
if (!(eq_s(z, 2, s_0))) goto lab2;
z->ket = z->c; /* ], line 32 */
{ int ret = slice_from_s(z, 2, s_1); /* <-, line 32 */
static int r_prelude(struct SN_env * z) { /* forwardmode */
{ int c_test1 = z->c; /* test, line 35 */
while(1) { /* repeat, line 35 */
int c2 = z->c;
{ int c3 = z->c; /* or, line 38 */
z->bra = z->c; /* [, line 37 */
if (!(eq_s(z, 2, s_0))) goto lab2; /* literal, line 37 */
z->ket = z->c; /* ], line 37 */
{ int ret = slice_from_s(z, 2, s_1); /* <-, line 37 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
z->c = c2;
z->c = c3;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
if (ret < 0) goto lab0;
z->c = ret; /* next, line 33 */
z->c = ret; /* next, line 38 */
}
}
lab1:
continue;
lab0:
z->c = c1;
z->c = c2;
break;
}
z->c = c_test;
z->c = c_test1;
}
while(1) { /* repeat, line 36 */
int c3 = z->c;
while(1) { /* goto, line 36 */
int c4 = z->c;
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
z->bra = z->c; /* [, line 37 */
{ int c5 = z->c; /* or, line 37 */
if (!(eq_s(z, 1, s_2))) goto lab6;
z->ket = z->c; /* ], line 37 */
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 37 */
while(1) { /* repeat, line 41 */
int c4 = z->c;
while(1) { /* goto, line 41 */
int c5 = z->c;
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 42 */
z->bra = z->c; /* [, line 42 */
{ int c6 = z->c; /* or, line 42 */
if (z->c == z->l || z->p[z->c] != 'u') goto lab6; /* literal, line 42 */
z->c++;
z->ket = z->c; /* ], line 42 */
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab6; /* grouping v, line 42 */
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 42 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
z->c = c5;
if (!(eq_s(z, 1, s_4))) goto lab4;
z->ket = z->c; /* ], line 38 */
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 38 */
z->c = c6;
if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 43 */
z->c++;
z->ket = z->c; /* ], line 43 */
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 43 */
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 43 */
if (ret < 0) return ret;
}
}
lab5:
z->c = c4;
z->c = c5;
break;
lab4:
z->c = c4;
z->c = c5;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
if (ret < 0) goto lab3;
z->c = ret; /* goto, line 36 */
z->c = ret; /* goto, line 41 */
}
}
continue;
lab3:
z->c = c3;
z->c = c4;
break;
}
return 1;
}
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
{ int c_test = z->c; /* test, line 47 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3);
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 49 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 50 */
{ int c_test1 = z->c; /* test, line 52 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 52 */
if (ret < 0) return 0;
z->c = ret; /* hop, line 47 */
z->c = ret;
}
z->I[2] = z->c; /* setmark x, line 47 */
z->c = c_test;
z->I[2] = z->c; /* setmark x, line 52 */
z->c = c_test1;
}
{ /* gopast */ /* grouping v, line 49 */
{ /* gopast */ /* grouping v, line 54 */
int ret = out_grouping_U(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
{ /* gopast */ /* non v, line 49 */
{ /* gopast */ /* non v, line 54 */
int ret = in_grouping_U(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 49 */
/* try, line 50 */
if (!(z->I[0] < z->I[2])) goto lab0;
z->I[0] = z->I[2];
z->I[0] = z->c; /* setmark p1, line 54 */
/* try, line 55 */
if (!(z->I[0] < z->I[2])) goto lab0; /* $(<integer expression> < <integer expression>), line 55 */
z->I[0] = z->I[2]; /* $p1 = <integer expression>, line 55 */
lab0:
{ /* gopast */ /* grouping v, line 51 */
{ /* gopast */ /* grouping v, line 56 */
int ret = out_grouping_U(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
{ /* gopast */ /* non v, line 51 */
{ /* gopast */ /* non v, line 56 */
int ret = in_grouping_U(z, g_v, 97, 252, 1);
if (ret < 0) return 0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 51 */
z->I[1] = z->c; /* setmark p2, line 56 */
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 55 */
while(1) { /* repeat, line 60 */
int c1 = z->c;
z->bra = z->c; /* [, line 57 */
among_var = find_among(z, a_0, 6); /* substring, line 57 */
z->bra = z->c; /* [, line 62 */
among_var = find_among(z, a_0, 6); /* substring, line 62 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 57 */
switch(among_var) {
case 0: goto lab0;
z->ket = z->c; /* ], line 62 */
switch (among_var) { /* among, line 62 */
case 1:
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 58 */
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 63 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 59 */
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 64 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 60 */
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 65 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 61 */
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 62 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
if (ret < 0) goto lab0;
z->c = ret; /* next, line 63 */
z->c = ret; /* next, line 68 */
}
break;
}
@ -287,38 +279,54 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 75 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 76 */
return 1;
}
static int r_standard_suffix(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int m1 = z->l - z->c; (void)m1; /* do, line 74 */
z->ket = z->c; /* [, line 75 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
among_var = find_among_b(z, a_1, 7); /* substring, line 75 */
{ int m1 = z->l - z->c; (void)m1; /* do, line 79 */
z->ket = z->c; /* [, line 80 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 80 */
among_var = find_among_b(z, a_1, 7);
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 75 */
{ int ret = r_R1(z);
if (ret == 0) goto lab0; /* call R1, line 75 */
z->bra = z->c; /* ], line 80 */
{ int ret = r_R1(z); /* call R1, line 80 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 80 */
case 1:
{ int ret = slice_del(z); /* delete, line 77 */
{ int ret = slice_del(z); /* delete, line 82 */
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab0;
{ int ret = slice_del(z); /* delete, line 80 */
{ int ret = slice_del(z); /* delete, line 85 */
if (ret < 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* try, line 86 */
z->ket = z->c; /* [, line 86 */
if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; } /* literal, line 86 */
z->c--;
z->bra = z->c; /* ], line 86 */
if (!(eq_s_b(z, 3, s_8))) { z->c = z->l - m2; goto lab1; } /* literal, line 86 */
{ int ret = slice_del(z); /* delete, line 86 */
if (ret < 0) return ret;
}
lab1:
;
}
break;
case 3:
if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab0; /* grouping s_ending, line 89 */
{ int ret = slice_del(z); /* delete, line 89 */
if (ret < 0) return ret;
}
break;
@ -326,179 +334,171 @@ static int r_standard_suffix(struct SN_env * z) {
lab0:
z->c = z->l - m1;
}
{ int m2 = z->l - z->c; (void)m2; /* do, line 84 */
z->ket = z->c; /* [, line 85 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1;
among_var = find_among_b(z, a_2, 4); /* substring, line 85 */
if (!(among_var)) goto lab1;
z->bra = z->c; /* ], line 85 */
{ int ret = r_R1(z);
if (ret == 0) goto lab1; /* call R1, line 85 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: goto lab1;
case 1:
{ int ret = slice_del(z); /* delete, line 87 */
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab1;
{ int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 3);
if (ret < 0) goto lab1;
z->c = ret; /* hop, line 90 */
}
{ int ret = slice_del(z); /* delete, line 90 */
if (ret < 0) return ret;
}
break;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 94 */
z->ket = z->c; /* [, line 95 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
among_var = find_among_b(z, a_4, 8); /* substring, line 95 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 93 */
z->ket = z->c; /* [, line 94 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 94 */
among_var = find_among_b(z, a_2, 4);
if (!(among_var)) goto lab2;
z->bra = z->c; /* ], line 95 */
{ int ret = r_R2(z);
if (ret == 0) goto lab2; /* call R2, line 95 */
z->bra = z->c; /* ], line 94 */
{ int ret = r_R1(z); /* call R1, line 94 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
switch(among_var) {
case 0: goto lab2;
switch (among_var) { /* among, line 94 */
case 1:
{ int ret = slice_del(z); /* delete, line 97 */
{ int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 98 */
z->ket = z->c; /* [, line 98 */
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab3; }
z->bra = z->c; /* ], line 98 */
{ int m4 = z->l - z->c; (void)m4; /* not, line 98 */
if (!(eq_s_b(z, 1, s_12))) goto lab4;
{ z->c = z->l - m_keep; goto lab3; }
lab4:
z->c = z->l - m4;
}
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 98 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 98 */
if (ret < 0) return ret;
}
lab3:
;
}
break;
case 2:
{ int m5 = z->l - z->c; (void)m5; /* not, line 101 */
if (!(eq_s_b(z, 1, s_13))) goto lab5;
goto lab2;
lab5:
z->c = z->l - m5;
if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab2; /* grouping st_ending, line 99 */
{ int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 3); /* hop, line 99 */
if (ret < 0) goto lab2;
z->c = ret;
}
{ int ret = slice_del(z); /* delete, line 101 */
{ int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 104 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 105 */
z->ket = z->c; /* [, line 106 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 106 */
if (!(eq_s_b(z, 2, s_14))) goto lab8;
goto lab7;
lab8:
z->c = z->l - m6;
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab6; }
}
lab7:
z->bra = z->c; /* ], line 106 */
{ int ret = r_R1(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call R1, line 106 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 106 */
if (ret < 0) return ret;
}
lab6:
;
}
break;
case 4:
{ int ret = slice_del(z); /* delete, line 110 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
z->ket = z->c; /* [, line 112 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m_keep; goto lab9; }
among_var = find_among_b(z, a_3, 2); /* substring, line 112 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab9; }
z->bra = z->c; /* ], line 112 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab9; } /* call R2, line 112 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab9; }
case 1:
{ int ret = slice_del(z); /* delete, line 114 */
if (ret < 0) return ret;
}
break;
}
lab9:
;
}
break;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 103 */
z->ket = z->c; /* [, line 104 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 104 */
among_var = find_among_b(z, a_4, 8);
if (!(among_var)) goto lab3;
z->bra = z->c; /* ], line 104 */
{ int ret = r_R2(z); /* call R2, line 104 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
switch (among_var) { /* among, line 104 */
case 1:
{ int ret = slice_del(z); /* delete, line 106 */
if (ret < 0) return ret;
}
{ int m5 = z->l - z->c; (void)m5; /* try, line 107 */
z->ket = z->c; /* [, line 107 */
if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - m5; goto lab4; } /* literal, line 107 */
z->bra = z->c; /* ], line 107 */
{ int m6 = z->l - z->c; (void)m6; /* not, line 107 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5; /* literal, line 107 */
z->c--;
{ z->c = z->l - m5; goto lab4; }
lab5:
z->c = z->l - m6;
}
{ int ret = r_R2(z); /* call R2, line 107 */
if (ret == 0) { z->c = z->l - m5; goto lab4; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 107 */
if (ret < 0) return ret;
}
lab4:
;
}
break;
case 2:
{ int m7 = z->l - z->c; (void)m7; /* not, line 110 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 110 */
z->c--;
goto lab3;
lab6:
z->c = z->l - m7;
}
{ int ret = slice_del(z); /* delete, line 110 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 113 */
if (ret < 0) return ret;
}
{ int m8 = z->l - z->c; (void)m8; /* try, line 114 */
z->ket = z->c; /* [, line 115 */
{ int m9 = z->l - z->c; (void)m9; /* or, line 115 */
if (!(eq_s_b(z, 2, s_10))) goto lab9; /* literal, line 115 */
goto lab8;
lab9:
z->c = z->l - m9;
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m8; goto lab7; } /* literal, line 115 */
}
lab8:
z->bra = z->c; /* ], line 115 */
{ int ret = r_R1(z); /* call R1, line 115 */
if (ret == 0) { z->c = z->l - m8; goto lab7; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 115 */
if (ret < 0) return ret;
}
lab7:
;
}
break;
case 4:
{ int ret = slice_del(z); /* delete, line 119 */
if (ret < 0) return ret;
}
{ int m10 = z->l - z->c; (void)m10; /* try, line 120 */
z->ket = z->c; /* [, line 121 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; } /* substring, line 121 */
if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; }
z->bra = z->c; /* ], line 121 */
{ int ret = r_R2(z); /* call R2, line 121 */
if (ret == 0) { z->c = z->l - m10; goto lab10; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 123 */
if (ret < 0) return ret;
}
lab10:
;
}
break;
}
lab3:
z->c = z->l - m4;
}
return 1;
}
extern int german_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c; /* do, line 125 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 125 */
extern int german_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 134 */
{ int ret = r_prelude(z); /* call prelude, line 134 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 126 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 126 */
{ int c2 = z->c; /* do, line 135 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 135 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 127 */
z->lb = z->c; z->c = z->l; /* backwards, line 136 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 128 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab2; /* call standard_suffix, line 128 */
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
/* do, line 137 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 137 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->lb;
{ int c4 = z->c; /* do, line 129 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab3; /* call postlude, line 129 */
{ int c3 = z->c; /* do, line 138 */
{ int ret = r_postlude(z); /* call postlude, line 138 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = c4;
z->c = c3;
}
return 1;
}

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -476,34 +476,29 @@ static const symbol s_2[] = { 0xC3, 0xAC };
static const symbol s_3[] = { 0xC3, 0xB2 };
static const symbol s_4[] = { 0xC3, 0xB9 };
static const symbol s_5[] = { 'q', 'U' };
static const symbol s_6[] = { 'u' };
static const symbol s_7[] = { 'U' };
static const symbol s_6[] = { 'U' };
static const symbol s_7[] = { 'I' };
static const symbol s_8[] = { 'i' };
static const symbol s_9[] = { 'I' };
static const symbol s_10[] = { 'i' };
static const symbol s_11[] = { 'u' };
static const symbol s_12[] = { 'e' };
static const symbol s_13[] = { 'i', 'c' };
static const symbol s_14[] = { 'l', 'o', 'g' };
static const symbol s_15[] = { 'u' };
static const symbol s_16[] = { 'e', 'n', 't', 'e' };
static const symbol s_17[] = { 'a', 't' };
static const symbol s_18[] = { 'a', 't' };
static const symbol s_19[] = { 'i', 'c' };
static const symbol s_20[] = { 'i' };
static const symbol s_21[] = { 'h' };
static const symbol s_9[] = { 'u' };
static const symbol s_10[] = { 'e' };
static const symbol s_11[] = { 'i', 'c' };
static const symbol s_12[] = { 'l', 'o', 'g' };
static const symbol s_13[] = { 'u' };
static const symbol s_14[] = { 'e', 'n', 't', 'e' };
static const symbol s_15[] = { 'a', 't' };
static const symbol s_16[] = { 'a', 't' };
static const symbol s_17[] = { 'i', 'c' };
static int r_prelude(struct SN_env * z) {
static int r_prelude(struct SN_env * z) { /* forwardmode */
int among_var;
{ int c_test = z->c; /* test, line 35 */
{ int c_test1 = z->c; /* test, line 35 */
while(1) { /* repeat, line 35 */
int c1 = z->c;
int c2 = z->c;
z->bra = z->c; /* [, line 36 */
among_var = find_among(z, a_0, 7); /* substring, line 36 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 36 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 36 */
case 1:
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 37 */
if (ret < 0) return ret;
@ -543,39 +538,41 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab0:
z->c = c1;
z->c = c2;
break;
}
z->c = c_test;
z->c = c_test1;
}
while(1) { /* repeat, line 46 */
int c2 = z->c;
int c3 = z->c;
while(1) { /* goto, line 46 */
int c3 = z->c;
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
int c4 = z->c;
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 47 */
z->bra = z->c; /* [, line 47 */
{ int c4 = z->c; /* or, line 47 */
if (!(eq_s(z, 1, s_6))) goto lab4;
{ int c5 = z->c; /* or, line 47 */
if (z->c == z->l || z->p[z->c] != 'u') goto lab4; /* literal, line 47 */
z->c++;
z->ket = z->c; /* ], line 47 */
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab4;
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 47 */
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab4; /* grouping v, line 47 */
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 47 */
if (ret < 0) return ret;
}
goto lab3;
lab4:
z->c = c4;
if (!(eq_s(z, 1, s_8))) goto lab2;
z->c = c5;
if (z->c == z->l || z->p[z->c] != 'i') goto lab2; /* literal, line 48 */
z->c++;
z->ket = z->c; /* ], line 48 */
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 48 */
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 48 */
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 48 */
if (ret < 0) return ret;
}
}
lab3:
z->c = c3;
z->c = c4;
break;
lab2:
z->c = c3;
z->c = c4;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
if (ret < 0) goto lab1;
z->c = ret; /* goto, line 46 */
@ -583,21 +580,21 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab1:
z->c = c2;
z->c = c3;
break;
}
return 1;
}
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 54 */
z->I[1] = z->l; /* $p1 = <integer expression>, line 55 */
z->I[2] = z->l; /* $p2 = <integer expression>, line 56 */
{ int c1 = z->c; /* do, line 58 */
{ int c2 = z->c; /* or, line 60 */
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 59 */
{ int c3 = z->c; /* or, line 59 */
if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab4;
if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab4; /* non v, line 59 */
{ /* gopast */ /* grouping v, line 59 */
int ret = out_grouping_U(z, g_v, 97, 249, 1);
if (ret < 0) goto lab4;
@ -606,7 +603,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab3;
lab4:
z->c = c3;
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 59 */
{ /* gopast */ /* non v, line 59 */
int ret = in_grouping_U(z, g_v, 97, 249, 1);
if (ret < 0) goto lab2;
@ -617,9 +614,9 @@ static int r_mark_regions(struct SN_env * z) {
goto lab1;
lab2:
z->c = c2;
if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab0;
if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab0; /* non v, line 61 */
{ int c4 = z->c; /* or, line 61 */
if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab6;
if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab6; /* non v, line 61 */
{ /* gopast */ /* grouping v, line 61 */
int ret = out_grouping_U(z, g_v, 97, 249, 1);
if (ret < 0) goto lab6;
@ -628,7 +625,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab5;
lab6:
z->c = c4;
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab0;
if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab0; /* grouping v, line 61 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
if (ret < 0) goto lab0;
z->c = ret; /* next, line 61 */
@ -671,24 +668,23 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 70 */
int c1 = z->c;
z->bra = z->c; /* [, line 72 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
among_var = find_among(z, a_1, 3); /* substring, line 72 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else /* substring, line 72 */
among_var = find_among(z, a_1, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 72 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 72 */
case 1:
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 73 */
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 73 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_11); /* <-, line 74 */
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
@ -707,43 +703,41 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
static int r_RV(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_RV(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 82 */
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 83 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[2] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 84 */
return 1;
}
static int r_attached_pronoun(struct SN_env * z) {
static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 87 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_2, 37))) return 0; /* substring, line 87 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 87 */
if (!(find_among_b(z, a_2, 37))) return 0;
z->bra = z->c; /* ], line 87 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
among_var = find_among_b(z, a_3, 5); /* among, line 97 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; /* among, line 97 */
among_var = find_among_b(z, a_3, 5);
if (!(among_var)) return 0;
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 97 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 97 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 97 */
case 1:
{ int ret = slice_del(z); /* delete, line 98 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_12); /* <-, line 99 */
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 99 */
if (ret < 0) return ret;
}
break;
@ -751,37 +745,34 @@ static int r_attached_pronoun(struct SN_env * z) {
return 1;
}
static int r_standard_suffix(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 104 */
among_var = find_among_b(z, a_6, 51); /* substring, line 104 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 104 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 104 */
case 1:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 111 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 111 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 111 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 113 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 113 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 113 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 114 */
{ int m1 = z->l - z->c; (void)m1; /* try, line 114 */
z->ket = z->c; /* [, line 114 */
if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m_keep; goto lab0; }
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m1; goto lab0; } /* literal, line 114 */
z->bra = z->c; /* ], line 114 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 114 */
{ int ret = r_R2(z); /* call R2, line 114 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 114 */
@ -792,70 +783,64 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 3:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 117 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 117 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 3, s_14); /* <-, line 117 */
{ int ret = slice_from_s(z, 3, s_12); /* <-, line 117 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 119 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 119 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 1, s_15); /* <-, line 119 */
{ int ret = slice_from_s(z, 1, s_13); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 121 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 121 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 4, s_16); /* <-, line 121 */
{ int ret = slice_from_s(z, 4, s_14); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 123 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 123 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 123 */
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 125 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 125 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 125 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 126 */
{ int m2 = z->l - z->c; (void)m2; /* try, line 126 */
z->ket = z->c; /* [, line 127 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab1; }
among_var = find_among_b(z, a_4, 4); /* substring, line 127 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } /* substring, line 127 */
among_var = find_among_b(z, a_4, 4);
if (!(among_var)) { z->c = z->l - m2; goto lab1; }
z->bra = z->c; /* ], line 127 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 127 */
{ int ret = r_R2(z); /* call R2, line 127 */
if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 127 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab1; }
switch (among_var) { /* among, line 127 */
case 1:
z->ket = z->c; /* [, line 128 */
if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m_keep; goto lab1; }
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m2; goto lab1; } /* literal, line 128 */
z->bra = z->c; /* ], line 128 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 128 */
{ int ret = r_R2(z); /* call R2, line 128 */
if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 128 */
@ -868,59 +853,51 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 8:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 134 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 134 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 135 */
{ int m3 = z->l - z->c; (void)m3; /* try, line 135 */
z->ket = z->c; /* [, line 136 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab2; }
among_var = find_among_b(z, a_5, 3); /* substring, line 136 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } /* substring, line 136 */
if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m3; goto lab2; }
z->bra = z->c; /* ], line 136 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab2; }
case 1:
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 137 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 137 */
if (ret < 0) return ret;
}
break;
{ int ret = r_R2(z); /* call R2, line 137 */
if (ret == 0) { z->c = z->l - m3; goto lab2; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 137 */
if (ret < 0) return ret;
}
lab2:
;
}
break;
case 9:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 142 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 142 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 142 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 143 */
{ int m4 = z->l - z->c; (void)m4; /* try, line 143 */
z->ket = z->c; /* [, line 143 */
if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m_keep; goto lab3; }
if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */
z->bra = z->c; /* ], line 143 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 143 */
{ int ret = r_R2(z); /* call R2, line 143 */
if (ret == 0) { z->c = z->l - m4; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 143 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 143 */
if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m_keep; goto lab3; }
if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */
z->bra = z->c; /* ], line 143 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 143 */
{ int ret = r_R2(z); /* call R2, line 143 */
if (ret == 0) { z->c = z->l - m4; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 143 */
@ -934,48 +911,40 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
static int r_verb_suffix(struct SN_env * z) {
int among_var;
{ int mlimit; /* setlimit, line 148 */
int m1 = z->l - z->c; (void)m1;
static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 148 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 148 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 149 */
among_var = find_among_b(z, a_7, 87); /* substring, line 149 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; } /* substring, line 149 */
z->bra = z->c; /* ], line 149 */
switch(among_var) {
case 0: { z->lb = mlimit; return 0; }
case 1:
{ int ret = slice_del(z); /* delete, line 163 */
if (ret < 0) return ret;
}
break;
{ int ret = slice_del(z); /* delete, line 163 */
if (ret < 0) return ret;
}
z->lb = mlimit;
z->lb = mlimit1;
}
return 1;
}
static int r_vowel_suffix(struct SN_env * z) {
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 171 */
static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */
{ int m1 = z->l - z->c; (void)m1; /* try, line 171 */
z->ket = z->c; /* [, line 172 */
if (in_grouping_b_U(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m_keep; goto lab0; }
if (in_grouping_b_U(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m1; goto lab0; } /* grouping AEIO, line 172 */
z->bra = z->c; /* ], line 172 */
{ int ret = r_RV(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 172 */
{ int ret = r_RV(z); /* call RV, line 172 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 172 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 173 */
if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m_keep; goto lab0; }
if (z->c <= z->lb || z->p[z->c - 1] != 'i') { z->c = z->l - m1; goto lab0; } /* literal, line 173 */
z->c--;
z->bra = z->c; /* ], line 173 */
{ int ret = r_RV(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 173 */
{ int ret = r_RV(z); /* call RV, line 173 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 173 */
@ -984,13 +953,14 @@ static int r_vowel_suffix(struct SN_env * z) {
lab0:
;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 175 */
{ int m2 = z->l - z->c; (void)m2; /* try, line 175 */
z->ket = z->c; /* [, line 176 */
if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m_keep; goto lab1; }
if (z->c <= z->lb || z->p[z->c - 1] != 'h') { z->c = z->l - m2; goto lab1; } /* literal, line 176 */
z->c--;
z->bra = z->c; /* ], line 176 */
if (in_grouping_b_U(z, g_CG, 99, 103, 0)) { z->c = z->l - m_keep; goto lab1; }
{ int ret = r_RV(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call RV, line 176 */
if (in_grouping_b_U(z, g_CG, 99, 103, 0)) { z->c = z->l - m2; goto lab1; } /* grouping CG, line 176 */
{ int ret = r_RV(z); /* call RV, line 176 */
if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 176 */
@ -1002,67 +972,65 @@ static int r_vowel_suffix(struct SN_env * z) {
return 1;
}
extern int italian_UTF_8_stem(struct SN_env * z) {
extern int italian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 182 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 182 */
{ int ret = r_prelude(z); /* call prelude, line 182 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 183 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 183 */
if (ret < 0) return ret;
}
lab1:
z->c = c2;
/* do, line 183 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 183 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->lb = z->c; z->c = z->l; /* backwards, line 184 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 185 */
{ int ret = r_attached_pronoun(z);
if (ret == 0) goto lab2; /* call attached_pronoun, line 185 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 185 */
{ int ret = r_attached_pronoun(z); /* call attached_pronoun, line 185 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
z->c = z->l - m2;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 186 */
{ int m5 = z->l - z->c; (void)m5; /* or, line 186 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab5; /* call standard_suffix, line 186 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 186 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 186 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 186 */
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
goto lab4;
lab5:
z->c = z->l - m5;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab3; /* call verb_suffix, line 186 */
z->c = z->l - m4;
{ int ret = r_verb_suffix(z); /* call verb_suffix, line 186 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
}
lab4:
lab3:
z->c = z->l - m4;
z->c = z->l - m3;
}
{ int m6 = z->l - z->c; (void)m6; /* do, line 187 */
{ int ret = r_vowel_suffix(z);
if (ret == 0) goto lab6; /* call vowel_suffix, line 187 */
{ int m5 = z->l - z->c; (void)m5; /* do, line 187 */
{ int ret = r_vowel_suffix(z); /* call vowel_suffix, line 187 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
z->c = z->l - m6;
z->c = z->l - m5;
}
z->c = z->lb;
{ int c7 = z->c; /* do, line 189 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab7; /* call postlude, line 189 */
{ int c6 = z->c; /* do, line 189 */
{ int ret = r_postlude(z); /* call postlude, line 189 */
if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
z->c = c7;
z->c = c6;
}
return 1;
}

View File

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

View File

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

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -129,18 +129,17 @@ static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
static const unsigned char g_s_ending[] = { 119, 125, 149, 1 };
static const symbol s_0[] = { 'k' };
static const symbol s_1[] = { 'e', 'r' };
static const symbol s_0[] = { 'e', 'r' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
{ int c_test = z->c; /* test, line 30 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3);
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */
{ int c_test1 = z->c; /* test, line 30 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 30 */
if (ret < 0) return 0;
z->c = ret; /* hop, line 30 */
z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 30 */
z->c = c_test;
z->c = c_test1;
}
if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 31 */
{ /* gopast */ /* non v, line 31 */
@ -149,30 +148,27 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 31 */
/* try, line 32 */
if (!(z->I[0] < z->I[1])) goto lab0;
z->I[0] = z->I[1];
/* try, line 32 */
if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 32 */
z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 32 */
lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) {
static int r_main_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 38 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 38 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 38 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 38 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_0, 29); /* substring, line 38 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 38 */
among_var = find_among_b(z, a_0, 29);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 38 */
z->lb = mlimit;
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 39 */
case 1:
{ int ret = slice_del(z); /* delete, line 44 */
if (ret < 0) return ret;
@ -180,12 +176,13 @@ static int r_main_suffix(struct SN_env * z) {
break;
case 2:
{ int m2 = z->l - z->c; (void)m2; /* or, line 46 */
if (in_grouping_b_U(z, g_s_ending, 98, 122, 0)) goto lab1;
if (in_grouping_b_U(z, g_s_ending, 98, 122, 0)) goto lab1; /* grouping s_ending, line 46 */
goto lab0;
lab1:
z->c = z->l - m2;
if (!(eq_s_b(z, 1, s_0))) return 0;
if (out_grouping_b_U(z, g_v, 97, 248, 0)) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0; /* literal, line 46 */
z->c--;
if (out_grouping_b_U(z, g_v, 97, 248, 0)) return 0; /* non v, line 46 */
}
lab0:
{ int ret = slice_del(z); /* delete, line 46 */
@ -193,7 +190,7 @@ static int r_main_suffix(struct SN_env * z) {
}
break;
case 3:
{ int ret = slice_from_s(z, 2, s_1); /* <-, line 48 */
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 48 */
if (ret < 0) return ret;
}
break;
@ -201,21 +198,19 @@ static int r_main_suffix(struct SN_env * z) {
return 1;
}
static int r_consonant_pair(struct SN_env * z) {
{ int m_test = z->l - z->c; /* test, line 53 */
{ int mlimit; /* setlimit, line 54 */
int m1 = z->l - z->c; (void)m1;
static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
{ int m_test1 = z->l - z->c; /* test, line 53 */
{ int mlimit2; /* setlimit, line 54 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 54 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit2 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 54 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit; return 0; } /* substring, line 54 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; } /* substring, line 54 */
if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; }
z->bra = z->c; /* ], line 54 */
z->lb = mlimit;
z->lb = mlimit2;
}
z->c = z->l - m_test;
z->c = z->l - m_test1;
}
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
if (ret < 0) return 0;
@ -228,36 +223,27 @@ static int r_consonant_pair(struct SN_env * z) {
return 1;
}
static int r_other_suffix(struct SN_env * z) {
int among_var;
{ int mlimit; /* setlimit, line 63 */
int m1 = z->l - z->c; (void)m1;
static int r_other_suffix(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 63 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 63 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 63 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_2, 11); /* substring, line 63 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 63 */
if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 63 */
z->lb = mlimit;
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = slice_del(z); /* delete, line 67 */
if (ret < 0) return ret;
}
break;
{ int ret = slice_del(z); /* delete, line 67 */
if (ret < 0) return ret;
}
return 1;
}
extern int norwegian_UTF_8_stem(struct SN_env * z) {
extern int norwegian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 74 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 74 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 74 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
@ -266,24 +252,24 @@ extern int norwegian_UTF_8_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 75 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 76 */
{ int ret = r_main_suffix(z);
if (ret == 0) goto lab1; /* call main_suffix, line 76 */
{ int ret = r_main_suffix(z); /* call main_suffix, line 76 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 77 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab2; /* call consonant_pair, line 77 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 77 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 78 */
{ int ret = r_other_suffix(z);
if (ret == 0) goto lab3; /* call other_suffix, line 78 */
{ int ret = r_other_suffix(z); /* call other_suffix, line 78 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -115,21 +115,21 @@ static const struct among a_3[20] =
/* 2 */ { 4, s_3_2, -1, 4, 0},
/* 3 */ { 3, s_3_3, -1, 6, 0},
/* 4 */ { 4, s_3_4, -1, 9, 0},
/* 5 */ { 5, s_3_5, -1, 12, 0},
/* 5 */ { 5, s_3_5, -1, 11, 0},
/* 6 */ { 5, s_3_6, -1, 5, 0},
/* 7 */ { 5, s_3_7, -1, 10, 0},
/* 8 */ { 6, s_3_8, -1, 14, 0},
/* 9 */ { 5, s_3_9, -1, 13, 0},
/* 7 */ { 5, s_3_7, -1, 9, 0},
/* 8 */ { 6, s_3_8, -1, 13, 0},
/* 9 */ { 5, s_3_9, -1, 12, 0},
/* 10 */ { 6, s_3_10, -1, 1, 0},
/* 11 */ { 7, s_3_11, 10, 8, 0},
/* 12 */ { 5, s_3_12, -1, 10, 0},
/* 12 */ { 5, s_3_12, -1, 9, 0},
/* 13 */ { 5, s_3_13, -1, 8, 0},
/* 14 */ { 7, s_3_14, 13, 7, 0},
/* 15 */ { 4, s_3_15, -1, 7, 0},
/* 16 */ { 4, s_3_16, -1, 8, 0},
/* 17 */ { 7, s_3_17, -1, 13, 0},
/* 18 */ { 7, s_3_18, -1, 11, 0},
/* 19 */ { 7, s_3_19, -1, 12, 0}
/* 17 */ { 7, s_3_17, -1, 12, 0},
/* 18 */ { 7, s_3_18, -1, 10, 0},
/* 19 */ { 7, s_3_19, -1, 11, 0}
};
static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
@ -203,63 +203,51 @@ static const symbol s_1[] = { 'i' };
static const symbol s_2[] = { 'e', 'e' };
static const symbol s_3[] = { 'e' };
static const symbol s_4[] = { 'e' };
static const symbol s_5[] = { 'y' };
static const symbol s_6[] = { 'Y' };
static const symbol s_7[] = { 'i' };
static const symbol s_8[] = { 't', 'i', 'o', 'n' };
static const symbol s_9[] = { 'e', 'n', 'c', 'e' };
static const symbol s_10[] = { 'a', 'n', 'c', 'e' };
static const symbol s_11[] = { 'a', 'b', 'l', 'e' };
static const symbol s_12[] = { 'e', 'n', 't' };
static const symbol s_13[] = { 'e' };
static const symbol s_14[] = { 'i', 'z', 'e' };
static const symbol s_15[] = { 'a', 't', 'e' };
static const symbol s_16[] = { 'a', 'l' };
static const symbol s_17[] = { 'a', 'l' };
static const symbol s_18[] = { 'f', 'u', 'l' };
static const symbol s_19[] = { 'o', 'u', 's' };
static const symbol s_20[] = { 'i', 'v', 'e' };
static const symbol s_21[] = { 'b', 'l', 'e' };
static const symbol s_22[] = { 'a', 'l' };
static const symbol s_23[] = { 'i', 'c' };
static const symbol s_24[] = { 's' };
static const symbol s_25[] = { 't' };
static const symbol s_26[] = { 'e' };
static const symbol s_27[] = { 'l' };
static const symbol s_28[] = { 'l' };
static const symbol s_29[] = { 'y' };
static const symbol s_30[] = { 'Y' };
static const symbol s_31[] = { 'y' };
static const symbol s_32[] = { 'Y' };
static const symbol s_33[] = { 'Y' };
static const symbol s_34[] = { 'y' };
static const symbol s_5[] = { 'i' };
static const symbol s_6[] = { 't', 'i', 'o', 'n' };
static const symbol s_7[] = { 'e', 'n', 'c', 'e' };
static const symbol s_8[] = { 'a', 'n', 'c', 'e' };
static const symbol s_9[] = { 'a', 'b', 'l', 'e' };
static const symbol s_10[] = { 'e', 'n', 't' };
static const symbol s_11[] = { 'e' };
static const symbol s_12[] = { 'i', 'z', 'e' };
static const symbol s_13[] = { 'a', 't', 'e' };
static const symbol s_14[] = { 'a', 'l' };
static const symbol s_15[] = { 'f', 'u', 'l' };
static const symbol s_16[] = { 'o', 'u', 's' };
static const symbol s_17[] = { 'i', 'v', 'e' };
static const symbol s_18[] = { 'b', 'l', 'e' };
static const symbol s_19[] = { 'a', 'l' };
static const symbol s_20[] = { 'i', 'c' };
static const symbol s_21[] = { 'Y' };
static const symbol s_22[] = { 'Y' };
static const symbol s_23[] = { 'y' };
static int r_shortv(struct SN_env * z) {
if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) return 0;
if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
static int r_shortv(struct SN_env * z) { /* backwardmode */
if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) return 0; /* non v_WXY, line 19 */
if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 19 */
if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* non v, line 19 */
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 21 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 22 */
return 1;
}
static int r_Step_1a(struct SN_env * z) {
static int r_Step_1a(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 25 */
if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
among_var = find_among_b(z, a_0, 4); /* substring, line 25 */
if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0; /* substring, line 25 */
among_var = find_among_b(z, a_0, 4);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 25 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 25 */
case 1:
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */
if (ret < 0) return ret;
@ -279,48 +267,47 @@ static int r_Step_1a(struct SN_env * z) {
return 1;
}
static int r_Step_1b(struct SN_env * z) {
static int r_Step_1b(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 34 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
among_var = find_among_b(z, a_2, 3); /* substring, line 34 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 34 */
among_var = find_among_b(z, a_2, 3);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 34 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 34 */
case 1:
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 35 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 35 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 2, s_2); /* <-, line 35 */
if (ret < 0) return ret;
}
break;
case 2:
{ int m_test = z->l - z->c; /* test, line 38 */
{ int m_test1 = z->l - z->c; /* test, line 38 */
{ /* gopast */ /* grouping v, line 38 */
int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
if (ret < 0) return 0;
z->c -= ret;
}
z->c = z->l - m_test;
z->c = z->l - m_test1;
}
{ int ret = slice_del(z); /* delete, line 38 */
if (ret < 0) return ret;
}
{ int m_test = z->l - z->c; /* test, line 39 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
among_var = find_among_b(z, a_1, 13); /* substring, line 39 */
{ int m_test2 = z->l - z->c; /* test, line 39 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 39 */
among_var = find_among_b(z, a_1, 13);
if (!(among_var)) return 0;
z->c = z->l - m_test;
z->c = z->l - m_test2;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 39 */
case 1:
{ int c_keep = z->c;
int ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
z->c = c_keep;
{ int ret;
{ int saved_c = z->c;
ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
z->c = saved_c;
}
if (ret < 0) return ret;
}
break;
@ -337,16 +324,17 @@ static int r_Step_1b(struct SN_env * z) {
break;
case 3:
if (z->c != z->I[0]) return 0; /* atmark, line 45 */
{ int m_test = z->l - z->c; /* test, line 45 */
{ int ret = r_shortv(z);
if (ret == 0) return 0; /* call shortv, line 45 */
if (ret < 0) return ret;
{ int m_test3 = z->l - z->c; /* test, line 45 */
{ int ret = r_shortv(z); /* call shortv, line 45 */
if (ret <= 0) return ret;
}
z->c = z->l - m_test;
z->c = z->l - m_test3;
}
{ int c_keep = z->c;
int ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
z->c = c_keep;
{ int ret;
{ int saved_c = z->c;
ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
z->c = saved_c;
}
if (ret < 0) return ret;
}
break;
@ -356,14 +344,16 @@ static int r_Step_1b(struct SN_env * z) {
return 1;
}
static int r_Step_1c(struct SN_env * z) {
static int r_Step_1c(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 52 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 52 */
if (!(eq_s_b(z, 1, s_5))) goto lab1;
if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 52 */
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_6))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 52 */
z->c--;
}
lab0:
z->bra = z->c; /* ], line 52 */
@ -372,92 +362,85 @@ lab0:
if (ret < 0) return 0;
z->c -= ret;
}
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 54 */
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 54 */
if (ret < 0) return ret;
}
return 1;
}
static int r_Step_2(struct SN_env * z) {
static int r_Step_2(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 58 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_3, 20); /* substring, line 58 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 58 */
among_var = find_among_b(z, a_3, 20);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 58 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 58 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 58 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 58 */
case 1:
{ int ret = slice_from_s(z, 4, s_8); /* <-, line 59 */
{ int ret = slice_from_s(z, 4, s_6); /* <-, line 59 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 4, s_9); /* <-, line 60 */
{ int ret = slice_from_s(z, 4, s_7); /* <-, line 60 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 4, s_10); /* <-, line 61 */
{ int ret = slice_from_s(z, 4, s_8); /* <-, line 61 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 4, s_11); /* <-, line 62 */
{ int ret = slice_from_s(z, 4, s_9); /* <-, line 62 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 3, s_12); /* <-, line 63 */
{ int ret = slice_from_s(z, 3, s_10); /* <-, line 63 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 1, s_13); /* <-, line 64 */
{ int ret = slice_from_s(z, 1, s_11); /* <-, line 64 */
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 3, s_14); /* <-, line 66 */
{ int ret = slice_from_s(z, 3, s_12); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 8:
{ int ret = slice_from_s(z, 3, s_15); /* <-, line 68 */
{ int ret = slice_from_s(z, 3, s_13); /* <-, line 68 */
if (ret < 0) return ret;
}
break;
case 9:
{ int ret = slice_from_s(z, 2, s_16); /* <-, line 69 */
{ int ret = slice_from_s(z, 2, s_14); /* <-, line 69 */
if (ret < 0) return ret;
}
break;
case 10:
{ int ret = slice_from_s(z, 2, s_17); /* <-, line 71 */
{ int ret = slice_from_s(z, 3, s_15); /* <-, line 72 */
if (ret < 0) return ret;
}
break;
case 11:
{ int ret = slice_from_s(z, 3, s_18); /* <-, line 72 */
{ int ret = slice_from_s(z, 3, s_16); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
case 12:
{ int ret = slice_from_s(z, 3, s_19); /* <-, line 74 */
{ int ret = slice_from_s(z, 3, s_17); /* <-, line 76 */
if (ret < 0) return ret;
}
break;
case 13:
{ int ret = slice_from_s(z, 3, s_20); /* <-, line 76 */
if (ret < 0) return ret;
}
break;
case 14:
{ int ret = slice_from_s(z, 3, s_21); /* <-, line 77 */
{ int ret = slice_from_s(z, 3, s_18); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
@ -465,26 +448,24 @@ static int r_Step_2(struct SN_env * z) {
return 1;
}
static int r_Step_3(struct SN_env * z) {
static int r_Step_3(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 82 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_4, 7); /* substring, line 82 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 82 */
among_var = find_among_b(z, a_4, 7);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 82 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 82 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 82 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 82 */
case 1:
{ int ret = slice_from_s(z, 2, s_22); /* <-, line 83 */
{ int ret = slice_from_s(z, 2, s_19); /* <-, line 83 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 2, s_23); /* <-, line 85 */
{ int ret = slice_from_s(z, 2, s_20); /* <-, line 85 */
if (ret < 0) return ret;
}
break;
@ -497,19 +478,17 @@ static int r_Step_3(struct SN_env * z) {
return 1;
}
static int r_Step_4(struct SN_env * z) {
static int r_Step_4(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 92 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_5, 19); /* substring, line 92 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 92 */
among_var = find_among_b(z, a_5, 19);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 92 */
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 92 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 92 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 92 */
case 1:
{ int ret = slice_del(z); /* delete, line 95 */
if (ret < 0) return ret;
@ -517,11 +496,13 @@ static int r_Step_4(struct SN_env * z) {
break;
case 2:
{ int m1 = z->l - z->c; (void)m1; /* or, line 96 */
if (!(eq_s_b(z, 1, s_24))) goto lab1;
if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 96 */
z->c--;
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_25))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 96 */
z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 96 */
@ -532,25 +513,25 @@ static int r_Step_4(struct SN_env * z) {
return 1;
}
static int r_Step_5a(struct SN_env * z) {
static int r_Step_5a(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 101 */
if (!(eq_s_b(z, 1, s_26))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 101 */
z->c--;
z->bra = z->c; /* ], line 101 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 102 */
{ int ret = r_R2(z);
if (ret == 0) goto lab1; /* call R2, line 102 */
{ int ret = r_R2(z); /* call R2, line 102 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = z->l - m1;
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 102 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 102 */
if (ret <= 0) return ret;
}
{ int m2 = z->l - z->c; (void)m2; /* not, line 102 */
{ int ret = r_shortv(z);
if (ret == 0) goto lab2; /* call shortv, line 102 */
{ int ret = r_shortv(z); /* call shortv, line 102 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
return 0;
@ -565,28 +546,30 @@ lab0:
return 1;
}
static int r_Step_5b(struct SN_env * z) {
static int r_Step_5b(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 107 */
if (!(eq_s_b(z, 1, s_27))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 107 */
z->c--;
z->bra = z->c; /* ], line 107 */
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 108 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 108 */
if (ret <= 0) return ret;
}
if (!(eq_s_b(z, 1, s_28))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 108 */
z->c--;
{ int ret = slice_del(z); /* delete, line 109 */
if (ret < 0) return ret;
}
return 1;
}
extern int porter_UTF_8_stem(struct SN_env * z) {
extern int porter_UTF_8_stem(struct SN_env * z) { /* forwardmode */
z->B[0] = 0; /* unset Y_found, line 115 */
{ int c1 = z->c; /* do, line 116 */
z->bra = z->c; /* [, line 116 */
if (!(eq_s(z, 1, s_29))) goto lab0;
if (z->c == z->l || z->p[z->c] != 'y') goto lab0; /* literal, line 116 */
z->c++;
z->ket = z->c; /* ], line 116 */
{ int ret = slice_from_s(z, 1, s_30); /* <-, line 116 */
{ int ret = slice_from_s(z, 1, s_21); /* <-, line 116 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 116 */
@ -598,9 +581,10 @@ extern int porter_UTF_8_stem(struct SN_env * z) {
int c3 = z->c;
while(1) { /* goto, line 117 */
int c4 = z->c;
if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab3;
if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab3; /* grouping v, line 117 */
z->bra = z->c; /* [, line 117 */
if (!(eq_s(z, 1, s_31))) goto lab3;
if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 117 */
z->c++;
z->ket = z->c; /* ], line 117 */
z->c = c4;
break;
@ -611,7 +595,7 @@ extern int porter_UTF_8_stem(struct SN_env * z) {
z->c = ret; /* goto, line 117 */
}
}
{ int ret = slice_from_s(z, 1, s_32); /* <-, line 117 */
{ int ret = slice_from_s(z, 1, s_22); /* <-, line 117 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 117 */
@ -622,8 +606,8 @@ extern int porter_UTF_8_stem(struct SN_env * z) {
}
z->c = c2;
}
z->I[0] = z->l;
z->I[1] = z->l;
z->I[0] = z->l; /* $p1 = <integer expression>, line 119 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 120 */
{ int c5 = z->c; /* do, line 121 */
{ /* gopast */ /* grouping v, line 122 */
int ret = out_grouping_U(z, g_v, 97, 121, 1);
@ -653,64 +637,64 @@ extern int porter_UTF_8_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 126 */
{ int m6 = z->l - z->c; (void)m6; /* do, line 127 */
{ int ret = r_Step_1a(z);
if (ret == 0) goto lab5; /* call Step_1a, line 127 */
{ int ret = r_Step_1a(z); /* call Step_1a, line 127 */
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
lab5:
z->c = z->l - m6;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 128 */
{ int ret = r_Step_1b(z);
if (ret == 0) goto lab6; /* call Step_1b, line 128 */
{ int ret = r_Step_1b(z); /* call Step_1b, line 128 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
z->c = z->l - m7;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 129 */
{ int ret = r_Step_1c(z);
if (ret == 0) goto lab7; /* call Step_1c, line 129 */
{ int ret = r_Step_1c(z); /* call Step_1c, line 129 */
if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
z->c = z->l - m8;
}
{ int m9 = z->l - z->c; (void)m9; /* do, line 130 */
{ int ret = r_Step_2(z);
if (ret == 0) goto lab8; /* call Step_2, line 130 */
{ int ret = r_Step_2(z); /* call Step_2, line 130 */
if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
lab8:
z->c = z->l - m9;
}
{ int m10 = z->l - z->c; (void)m10; /* do, line 131 */
{ int ret = r_Step_3(z);
if (ret == 0) goto lab9; /* call Step_3, line 131 */
{ int ret = r_Step_3(z); /* call Step_3, line 131 */
if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:
z->c = z->l - m10;
}
{ int m11 = z->l - z->c; (void)m11; /* do, line 132 */
{ int ret = r_Step_4(z);
if (ret == 0) goto lab10; /* call Step_4, line 132 */
{ int ret = r_Step_4(z); /* call Step_4, line 132 */
if (ret == 0) goto lab10;
if (ret < 0) return ret;
}
lab10:
z->c = z->l - m11;
}
{ int m12 = z->l - z->c; (void)m12; /* do, line 133 */
{ int ret = r_Step_5a(z);
if (ret == 0) goto lab11; /* call Step_5a, line 133 */
{ int ret = r_Step_5a(z); /* call Step_5a, line 133 */
if (ret == 0) goto lab11;
if (ret < 0) return ret;
}
lab11:
z->c = z->l - m12;
}
{ int m13 = z->l - z->c; (void)m13; /* do, line 134 */
{ int ret = r_Step_5b(z);
if (ret == 0) goto lab12; /* call Step_5b, line 134 */
{ int ret = r_Step_5b(z); /* call Step_5b, line 134 */
if (ret == 0) goto lab12;
if (ret < 0) return ret;
}
lab12:
@ -724,7 +708,8 @@ extern int porter_UTF_8_stem(struct SN_env * z) {
while(1) { /* goto, line 137 */
int c16 = z->c;
z->bra = z->c; /* [, line 137 */
if (!(eq_s(z, 1, s_33))) goto lab15;
if (z->c == z->l || z->p[z->c] != 'Y') goto lab15; /* literal, line 137 */
z->c++;
z->ket = z->c; /* ], line 137 */
z->c = c16;
break;
@ -735,7 +720,7 @@ extern int porter_UTF_8_stem(struct SN_env * z) {
z->c = ret; /* goto, line 137 */
}
}
{ int ret = slice_from_s(z, 1, s_34); /* <-, line 137 */
{ int ret = slice_from_s(z, 1, s_23); /* <-, line 137 */
if (ret < 0) return ret;
}
continue;

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -90,42 +90,42 @@ static const struct among a_4[3] =
static const symbol s_5_0[3] = { 'i', 'c', 'a' };
static const symbol s_5_1[6] = { 0xC3, 0xA2, 'n', 'c', 'i', 'a' };
static const symbol s_5_2[6] = { 0xC3, 0xAA, 'n', 'c', 'i', 'a' };
static const symbol s_5_3[3] = { 'i', 'r', 'a' };
static const symbol s_5_4[5] = { 'a', 'd', 'o', 'r', 'a' };
static const symbol s_5_5[3] = { 'o', 's', 'a' };
static const symbol s_5_6[4] = { 'i', 's', 't', 'a' };
static const symbol s_5_7[3] = { 'i', 'v', 'a' };
static const symbol s_5_8[3] = { 'e', 'z', 'a' };
static const symbol s_5_9[6] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a' };
static const symbol s_5_3[5] = { 'l', 'o', 'g', 'i', 'a' };
static const symbol s_5_4[3] = { 'i', 'r', 'a' };
static const symbol s_5_5[5] = { 'a', 'd', 'o', 'r', 'a' };
static const symbol s_5_6[3] = { 'o', 's', 'a' };
static const symbol s_5_7[4] = { 'i', 's', 't', 'a' };
static const symbol s_5_8[3] = { 'i', 'v', 'a' };
static const symbol s_5_9[3] = { 'e', 'z', 'a' };
static const symbol s_5_10[5] = { 'i', 'd', 'a', 'd', 'e' };
static const symbol s_5_11[4] = { 'a', 'n', 't', 'e' };
static const symbol s_5_12[5] = { 'm', 'e', 'n', 't', 'e' };
static const symbol s_5_13[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
static const symbol s_5_14[5] = { 0xC3, 0xA1, 'v', 'e', 'l' };
static const symbol s_5_15[5] = { 0xC3, 0xAD, 'v', 'e', 'l' };
static const symbol s_5_16[6] = { 'u', 'c', 'i', 0xC3, 0xB3, 'n' };
static const symbol s_5_17[3] = { 'i', 'c', 'o' };
static const symbol s_5_18[4] = { 'i', 's', 'm', 'o' };
static const symbol s_5_19[3] = { 'o', 's', 'o' };
static const symbol s_5_20[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
static const symbol s_5_21[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
static const symbol s_5_22[3] = { 'i', 'v', 'o' };
static const symbol s_5_23[6] = { 'a', 0xC3, 0xA7, 'a', '~', 'o' };
static const symbol s_5_16[3] = { 'i', 'c', 'o' };
static const symbol s_5_17[4] = { 'i', 's', 'm', 'o' };
static const symbol s_5_18[3] = { 'o', 's', 'o' };
static const symbol s_5_19[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
static const symbol s_5_20[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
static const symbol s_5_21[3] = { 'i', 'v', 'o' };
static const symbol s_5_22[6] = { 'a', 0xC3, 0xA7, 'a', '~', 'o' };
static const symbol s_5_23[6] = { 'u', 0xC3, 0xA7, 'a', '~', 'o' };
static const symbol s_5_24[4] = { 'a', 'd', 'o', 'r' };
static const symbol s_5_25[4] = { 'i', 'c', 'a', 's' };
static const symbol s_5_26[7] = { 0xC3, 0xAA, 'n', 'c', 'i', 'a', 's' };
static const symbol s_5_27[4] = { 'i', 'r', 'a', 's' };
static const symbol s_5_28[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
static const symbol s_5_29[4] = { 'o', 's', 'a', 's' };
static const symbol s_5_30[5] = { 'i', 's', 't', 'a', 's' };
static const symbol s_5_31[4] = { 'i', 'v', 'a', 's' };
static const symbol s_5_32[4] = { 'e', 'z', 'a', 's' };
static const symbol s_5_33[7] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a', 's' };
static const symbol s_5_27[6] = { 'l', 'o', 'g', 'i', 'a', 's' };
static const symbol s_5_28[4] = { 'i', 'r', 'a', 's' };
static const symbol s_5_29[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
static const symbol s_5_30[4] = { 'o', 's', 'a', 's' };
static const symbol s_5_31[5] = { 'i', 's', 't', 'a', 's' };
static const symbol s_5_32[4] = { 'i', 'v', 'a', 's' };
static const symbol s_5_33[4] = { 'e', 'z', 'a', 's' };
static const symbol s_5_34[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
static const symbol s_5_35[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
static const symbol s_5_36[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
static const symbol s_5_37[5] = { 'a', 'n', 't', 'e', 's' };
static const symbol s_5_38[7] = { 'a', 0xC3, 0xA7, 'o', '~', 'e', 's' };
static const symbol s_5_35[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
static const symbol s_5_36[5] = { 'a', 'n', 't', 'e', 's' };
static const symbol s_5_37[7] = { 'a', 0xC3, 0xA7, 'o', '~', 'e', 's' };
static const symbol s_5_38[7] = { 'u', 0xC3, 0xA7, 'o', '~', 'e', 's' };
static const symbol s_5_39[4] = { 'i', 'c', 'o', 's' };
static const symbol s_5_40[5] = { 'i', 's', 'm', 'o', 's' };
static const symbol s_5_41[4] = { 'o', 's', 'o', 's' };
@ -138,42 +138,42 @@ static const struct among a_5[45] =
/* 0 */ { 3, s_5_0, -1, 1, 0},
/* 1 */ { 6, s_5_1, -1, 1, 0},
/* 2 */ { 6, s_5_2, -1, 4, 0},
/* 3 */ { 3, s_5_3, -1, 9, 0},
/* 4 */ { 5, s_5_4, -1, 1, 0},
/* 5 */ { 3, s_5_5, -1, 1, 0},
/* 6 */ { 4, s_5_6, -1, 1, 0},
/* 7 */ { 3, s_5_7, -1, 8, 0},
/* 8 */ { 3, s_5_8, -1, 1, 0},
/* 9 */ { 6, s_5_9, -1, 2, 0},
/* 3 */ { 5, s_5_3, -1, 2, 0},
/* 4 */ { 3, s_5_4, -1, 9, 0},
/* 5 */ { 5, s_5_5, -1, 1, 0},
/* 6 */ { 3, s_5_6, -1, 1, 0},
/* 7 */ { 4, s_5_7, -1, 1, 0},
/* 8 */ { 3, s_5_8, -1, 8, 0},
/* 9 */ { 3, s_5_9, -1, 1, 0},
/* 10 */ { 5, s_5_10, -1, 7, 0},
/* 11 */ { 4, s_5_11, -1, 1, 0},
/* 12 */ { 5, s_5_12, -1, 6, 0},
/* 13 */ { 6, s_5_13, 12, 5, 0},
/* 14 */ { 5, s_5_14, -1, 1, 0},
/* 15 */ { 5, s_5_15, -1, 1, 0},
/* 16 */ { 6, s_5_16, -1, 3, 0},
/* 17 */ { 3, s_5_17, -1, 1, 0},
/* 18 */ { 4, s_5_18, -1, 1, 0},
/* 19 */ { 3, s_5_19, -1, 1, 0},
/* 16 */ { 3, s_5_16, -1, 1, 0},
/* 17 */ { 4, s_5_17, -1, 1, 0},
/* 18 */ { 3, s_5_18, -1, 1, 0},
/* 19 */ { 6, s_5_19, -1, 1, 0},
/* 20 */ { 6, s_5_20, -1, 1, 0},
/* 21 */ { 6, s_5_21, -1, 1, 0},
/* 22 */ { 3, s_5_22, -1, 8, 0},
/* 23 */ { 6, s_5_23, -1, 1, 0},
/* 21 */ { 3, s_5_21, -1, 8, 0},
/* 22 */ { 6, s_5_22, -1, 1, 0},
/* 23 */ { 6, s_5_23, -1, 3, 0},
/* 24 */ { 4, s_5_24, -1, 1, 0},
/* 25 */ { 4, s_5_25, -1, 1, 0},
/* 26 */ { 7, s_5_26, -1, 4, 0},
/* 27 */ { 4, s_5_27, -1, 9, 0},
/* 28 */ { 6, s_5_28, -1, 1, 0},
/* 29 */ { 4, s_5_29, -1, 1, 0},
/* 30 */ { 5, s_5_30, -1, 1, 0},
/* 31 */ { 4, s_5_31, -1, 8, 0},
/* 32 */ { 4, s_5_32, -1, 1, 0},
/* 33 */ { 7, s_5_33, -1, 2, 0},
/* 27 */ { 6, s_5_27, -1, 2, 0},
/* 28 */ { 4, s_5_28, -1, 9, 0},
/* 29 */ { 6, s_5_29, -1, 1, 0},
/* 30 */ { 4, s_5_30, -1, 1, 0},
/* 31 */ { 5, s_5_31, -1, 1, 0},
/* 32 */ { 4, s_5_32, -1, 8, 0},
/* 33 */ { 4, s_5_33, -1, 1, 0},
/* 34 */ { 6, s_5_34, -1, 7, 0},
/* 35 */ { 7, s_5_35, -1, 3, 0},
/* 36 */ { 6, s_5_36, -1, 1, 0},
/* 37 */ { 5, s_5_37, -1, 1, 0},
/* 38 */ { 7, s_5_38, -1, 1, 0},
/* 35 */ { 6, s_5_35, -1, 1, 0},
/* 36 */ { 5, s_5_36, -1, 1, 0},
/* 37 */ { 7, s_5_37, -1, 1, 0},
/* 38 */ { 7, s_5_38, -1, 3, 0},
/* 39 */ { 4, s_5_39, -1, 1, 0},
/* 40 */ { 5, s_5_40, -1, 1, 0},
/* 41 */ { 4, s_5_41, -1, 1, 0},
@ -470,27 +470,19 @@ static const symbol s_5[] = { 'u' };
static const symbol s_6[] = { 'e', 'n', 't', 'e' };
static const symbol s_7[] = { 'a', 't' };
static const symbol s_8[] = { 'a', 't' };
static const symbol s_9[] = { 'e' };
static const symbol s_10[] = { 'i', 'r' };
static const symbol s_11[] = { 'u' };
static const symbol s_12[] = { 'g' };
static const symbol s_13[] = { 'i' };
static const symbol s_14[] = { 'c' };
static const symbol s_15[] = { 'c' };
static const symbol s_16[] = { 'i' };
static const symbol s_17[] = { 'c' };
static const symbol s_9[] = { 'i', 'r' };
static const symbol s_10[] = { 'c' };
static int r_prelude(struct SN_env * z) {
static int r_prelude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 36 */
int c1 = z->c;
z->bra = z->c; /* [, line 37 */
if (z->c + 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); /* substring, line 37 */
if (z->c + 1 >= z->l || (z->p[z->c + 1] != 163 && z->p[z->c + 1] != 181)) among_var = 3; else /* substring, line 37 */
among_var = find_among(z, a_0, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 37 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 37 */
case 1:
{ int ret = slice_from_s(z, 2, s_0); /* <-, line 38 */
if (ret < 0) return ret;
@ -516,15 +508,15 @@ static int r_prelude(struct SN_env * z) {
return 1;
}
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 46 */
z->I[1] = z->l; /* $p1 = <integer expression>, line 47 */
z->I[2] = z->l; /* $p2 = <integer expression>, line 48 */
{ int c1 = z->c; /* do, line 50 */
{ int c2 = z->c; /* or, line 52 */
if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2;
if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2; /* grouping v, line 51 */
{ int c3 = z->c; /* or, line 51 */
if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab4;
if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab4; /* non v, line 51 */
{ /* gopast */ /* grouping v, line 51 */
int ret = out_grouping_U(z, g_v, 97, 250, 1);
if (ret < 0) goto lab4;
@ -533,7 +525,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab3;
lab4:
z->c = c3;
if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2;
if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2; /* grouping v, line 51 */
{ /* gopast */ /* non v, line 51 */
int ret = in_grouping_U(z, g_v, 97, 250, 1);
if (ret < 0) goto lab2;
@ -544,9 +536,9 @@ static int r_mark_regions(struct SN_env * z) {
goto lab1;
lab2:
z->c = c2;
if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab0;
if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab0; /* non v, line 53 */
{ int c4 = z->c; /* or, line 53 */
if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab6;
if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab6; /* non v, line 53 */
{ /* gopast */ /* grouping v, line 53 */
int ret = out_grouping_U(z, g_v, 97, 250, 1);
if (ret < 0) goto lab6;
@ -555,7 +547,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab5;
lab6:
z->c = c4;
if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab0;
if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab0; /* grouping v, line 53 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
if (ret < 0) goto lab0;
z->c = ret; /* next, line 53 */
@ -598,17 +590,16 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 62 */
int c1 = z->c;
z->bra = z->c; /* [, line 63 */
if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else
among_var = find_among(z, a_1, 3); /* substring, line 63 */
if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else /* substring, line 63 */
among_var = find_among(z, a_1, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 63 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 63 */
case 1:
{ int ret = slice_from_s(z, 2, s_2); /* <-, line 64 */
if (ret < 0) return ret;
@ -634,95 +625,88 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
static int r_RV(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_RV(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 72 */
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 73 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[2] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 74 */
return 1;
}
static int r_standard_suffix(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 77 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((839714 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_5, 45); /* substring, line 77 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 77 */
among_var = find_among_b(z, a_5, 45);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 77 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 77 */
case 1:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 93 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 93 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 93 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 98 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 98 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 3, s_4); /* <-, line 98 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 102 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 102 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 102 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 106 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 106 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 4, s_6); /* <-, line 106 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 110 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 110 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 110 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
{ int m1 = z->l - z->c; (void)m1; /* try, line 111 */
z->ket = z->c; /* [, line 112 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab0; }
among_var = find_among_b(z, a_2, 4); /* substring, line 112 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; } /* substring, line 112 */
among_var = find_among_b(z, a_2, 4);
if (!(among_var)) { z->c = z->l - m1; goto lab0; }
z->bra = z->c; /* ], line 112 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 112 */
{ int ret = r_R2(z); /* call R2, line 112 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 112 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab0; }
switch (among_var) { /* among, line 112 */
case 1:
z->ket = z->c; /* [, line 113 */
if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m_keep; goto lab0; }
if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m1; goto lab0; } /* literal, line 113 */
z->bra = z->c; /* ], line 113 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 113 */
{ int ret = r_R2(z); /* call R2, line 113 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 113 */
@ -735,79 +719,64 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 6:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 122 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 122 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 123 */
{ int m2 = z->l - z->c; (void)m2; /* try, line 123 */
z->ket = z->c; /* [, line 124 */
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m_keep; goto lab1; }
among_var = find_among_b(z, a_3, 3); /* substring, line 124 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; } /* substring, line 124 */
if (!(find_among_b(z, a_3, 3))) { z->c = z->l - m2; goto lab1; }
z->bra = z->c; /* ], line 124 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab1; }
case 1:
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 127 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 127 */
if (ret < 0) return ret;
}
break;
{ int ret = r_R2(z); /* call R2, line 127 */
if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 127 */
if (ret < 0) return ret;
}
lab1:
;
}
break;
case 7:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 134 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 134 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 135 */
{ int m3 = z->l - z->c; (void)m3; /* try, line 135 */
z->ket = z->c; /* [, line 136 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab2; }
among_var = find_among_b(z, a_4, 3); /* substring, line 136 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } /* substring, line 136 */
if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
z->bra = z->c; /* ], line 136 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab2; }
case 1:
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 139 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 139 */
if (ret < 0) return ret;
}
break;
{ int ret = r_R2(z); /* call R2, line 139 */
if (ret == 0) { z->c = z->l - m3; goto lab2; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 139 */
if (ret < 0) return ret;
}
lab2:
;
}
break;
case 8:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 146 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 146 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 146 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 147 */
{ int m4 = z->l - z->c; (void)m4; /* try, line 147 */
z->ket = z->c; /* [, line 148 */
if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m_keep; goto lab3; }
if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m4; goto lab3; } /* literal, line 148 */
z->bra = z->c; /* ], line 148 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 148 */
{ int ret = r_R2(z); /* call R2, line 148 */
if (ret == 0) { z->c = z->l - m4; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 148 */
@ -818,12 +787,12 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 9:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 153 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 153 */
if (ret <= 0) return ret;
}
if (!(eq_s_b(z, 1, s_9))) return 0;
{ int ret = slice_from_s(z, 2, s_10); /* <-, line 154 */
if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 153 */
z->c--;
{ int ret = slice_from_s(z, 2, s_9); /* <-, line 154 */
if (ret < 0) return ret;
}
break;
@ -831,97 +800,81 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
static int r_verb_suffix(struct SN_env * z) {
int among_var;
{ int mlimit; /* setlimit, line 159 */
int m1 = z->l - z->c; (void)m1;
static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 159 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 159 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 160 */
among_var = find_among_b(z, a_6, 120); /* substring, line 160 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; } /* substring, line 160 */
z->bra = z->c; /* ], line 160 */
switch(among_var) {
case 0: { z->lb = mlimit; return 0; }
case 1:
{ int ret = slice_del(z); /* delete, line 179 */
if (ret < 0) return ret;
}
break;
{ int ret = slice_del(z); /* delete, line 179 */
if (ret < 0) return ret;
}
z->lb = mlimit;
z->lb = mlimit1;
}
return 1;
}
static int r_residual_suffix(struct SN_env * z) {
int among_var;
static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 184 */
among_var = find_among_b(z, a_7, 7); /* substring, line 184 */
if (!(among_var)) return 0;
if (!(find_among_b(z, a_7, 7))) return 0; /* substring, line 184 */
z->bra = z->c; /* ], line 184 */
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 187 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 187 */
if (ret < 0) return ret;
}
break;
{ int ret = r_RV(z); /* call RV, line 187 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 187 */
if (ret < 0) return ret;
}
return 1;
}
static int r_residual_form(struct SN_env * z) {
static int r_residual_form(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 192 */
among_var = find_among_b(z, a_8, 4); /* substring, line 192 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 192 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 192 */
case 1:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 194 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 194 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 194 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 194 */
{ int m1 = z->l - z->c; (void)m1; /* or, line 194 */
if (!(eq_s_b(z, 1, s_11))) goto lab1;
if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab1; /* literal, line 194 */
z->c--;
z->bra = z->c; /* ], line 194 */
{ int m_test = z->l - z->c; /* test, line 194 */
if (!(eq_s_b(z, 1, s_12))) goto lab1;
z->c = z->l - m_test;
{ int m_test2 = z->l - z->c; /* test, line 194 */
if (z->c <= z->lb || z->p[z->c - 1] != 'g') goto lab1; /* literal, line 194 */
z->c--;
z->c = z->l - m_test2;
}
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_13))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 195 */
z->c--;
z->bra = z->c; /* ], line 195 */
{ int m_test = z->l - z->c; /* test, line 195 */
if (!(eq_s_b(z, 1, s_14))) return 0;
z->c = z->l - m_test;
{ int m_test3 = z->l - z->c; /* test, line 195 */
if (z->c <= z->lb || z->p[z->c - 1] != 'c') return 0; /* literal, line 195 */
z->c--;
z->c = z->l - m_test3;
}
}
lab0:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 195 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 195 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 195 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_15); /* <-, line 196 */
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 196 */
if (ret < 0) return ret;
}
break;
@ -929,77 +882,77 @@ static int r_residual_form(struct SN_env * z) {
return 1;
}
extern int portuguese_UTF_8_stem(struct SN_env * z) {
extern int portuguese_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 202 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 202 */
{ int ret = r_prelude(z); /* call prelude, line 202 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 203 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 203 */
if (ret < 0) return ret;
}
lab1:
z->c = c2;
/* do, line 203 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 203 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->lb = z->c; z->c = z->l; /* backwards, line 204 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 205 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 209 */
{ int m5 = z->l - z->c; (void)m5; /* and, line 207 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 206 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab6; /* call standard_suffix, line 206 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 205 */
{ int m3 = z->l - z->c; (void)m3; /* or, line 209 */
{ int m4 = z->l - z->c; (void)m4; /* and, line 207 */
{ int m5 = z->l - z->c; (void)m5; /* or, line 206 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 206 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
goto lab5;
lab6:
z->c = z->l - m6;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab4; /* call verb_suffix, line 206 */
z->c = z->l - m5;
{ int ret = r_verb_suffix(z); /* call verb_suffix, line 206 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
z->c = z->l - m5;
{ int m7 = z->l - z->c; (void)m7; /* do, line 207 */
z->c = z->l - m4;
{ int m6 = z->l - z->c; (void)m6; /* do, line 207 */
z->ket = z->c; /* [, line 207 */
if (!(eq_s_b(z, 1, s_16))) goto lab7;
if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab7; /* literal, line 207 */
z->c--;
z->bra = z->c; /* ], line 207 */
{ int m_test = z->l - z->c; /* test, line 207 */
if (!(eq_s_b(z, 1, s_17))) goto lab7;
z->c = z->l - m_test;
{ int m_test7 = z->l - z->c; /* test, line 207 */
if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab7; /* literal, line 207 */
z->c--;
z->c = z->l - m_test7;
}
{ int ret = r_RV(z);
if (ret == 0) goto lab7; /* call RV, line 207 */
{ int ret = r_RV(z); /* call RV, line 207 */
if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 207 */
if (ret < 0) return ret;
}
lab7:
z->c = z->l - m7;
z->c = z->l - m6;
}
}
goto lab3;
lab4:
z->c = z->l - m4;
{ int ret = r_residual_suffix(z);
if (ret == 0) goto lab2; /* call residual_suffix, line 209 */
z->c = z->l - m3;
{ int ret = r_residual_suffix(z); /* call residual_suffix, line 209 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
}
lab3:
lab2:
z->c = z->l - m3;
z->c = z->l - m2;
}
{ int m8 = z->l - z->c; (void)m8; /* do, line 211 */
{ int ret = r_residual_form(z);
if (ret == 0) goto lab8; /* call residual_form, line 211 */
{ int ret = r_residual_form(z); /* call residual_form, line 211 */
if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
lab8:
@ -1007,8 +960,8 @@ extern int portuguese_UTF_8_stem(struct SN_env * z) {
}
z->c = z->lb;
{ int c9 = z->c; /* do, line 213 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab9; /* call postlude, line 213 */
{ int ret = r_postlude(z); /* call postlude, line 213 */
if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
lab9:

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -516,51 +516,50 @@ static const struct among a_5[5] =
static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4 };
static const symbol s_0[] = { 'u' };
static const symbol s_1[] = { 'U' };
static const symbol s_0[] = { 'U' };
static const symbol s_1[] = { 'I' };
static const symbol s_2[] = { 'i' };
static const symbol s_3[] = { 'I' };
static const symbol s_4[] = { 'i' };
static const symbol s_5[] = { 'u' };
static const symbol s_6[] = { 'a' };
static const symbol s_7[] = { 'e' };
static const symbol s_3[] = { 'u' };
static const symbol s_4[] = { 'a' };
static const symbol s_5[] = { 'e' };
static const symbol s_6[] = { 'i' };
static const symbol s_7[] = { 'a', 'b' };
static const symbol s_8[] = { 'i' };
static const symbol s_9[] = { 'a', 'b' };
static const symbol s_10[] = { 'i' };
static const symbol s_11[] = { 'a', 't' };
static const symbol s_12[] = { 'a', 0xC5, 0xA3, 'i' };
static const symbol s_13[] = { 'a', 'b', 'i', 'l' };
static const symbol s_14[] = { 'i', 'b', 'i', 'l' };
static const symbol s_15[] = { 'i', 'v' };
static const symbol s_16[] = { 'i', 'c' };
static const symbol s_17[] = { 'a', 't' };
static const symbol s_18[] = { 'i', 't' };
static const symbol s_19[] = { 0xC5, 0xA3 };
static const symbol s_20[] = { 't' };
static const symbol s_21[] = { 'i', 's', 't' };
static const symbol s_22[] = { 'u' };
static const symbol s_9[] = { 'a', 't' };
static const symbol s_10[] = { 'a', 0xC5, 0xA3, '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[] = { 0xC5, 0xA3 };
static const symbol s_18[] = { 't' };
static const symbol s_19[] = { 'i', 's', 't' };
static int r_prelude(struct SN_env * z) {
static int r_prelude(struct SN_env * z) { /* forwardmode */
while(1) { /* repeat, line 32 */
int c1 = z->c;
while(1) { /* goto, line 32 */
int c2 = z->c;
if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1;
if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1; /* grouping v, line 33 */
z->bra = z->c; /* [, line 33 */
{ int c3 = z->c; /* or, line 33 */
if (!(eq_s(z, 1, s_0))) goto lab3;
if (z->c == z->l || z->p[z->c] != 'u') goto lab3; /* literal, line 33 */
z->c++;
z->ket = z->c; /* ], line 33 */
if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab3;
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 33 */
if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab3; /* grouping v, line 33 */
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 33 */
if (ret < 0) return ret;
}
goto lab2;
lab3:
z->c = c3;
if (!(eq_s(z, 1, s_2))) goto lab1;
if (z->c == z->l || z->p[z->c] != 'i') goto lab1; /* literal, line 34 */
z->c++;
z->ket = z->c; /* ], line 34 */
if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1;
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 34 */
if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1; /* grouping v, line 34 */
{ int ret = slice_from_s(z, 1, s_1); /* <-, line 34 */
if (ret < 0) return ret;
}
}
@ -582,15 +581,15 @@ static int r_prelude(struct SN_env * z) {
return 1;
}
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 40 */
z->I[1] = z->l; /* $p1 = <integer expression>, line 41 */
z->I[2] = z->l; /* $p2 = <integer expression>, line 42 */
{ int c1 = z->c; /* do, line 44 */
{ int c2 = z->c; /* or, line 46 */
if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2;
if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2; /* grouping v, line 45 */
{ int c3 = z->c; /* or, line 45 */
if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab4;
if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab4; /* non v, line 45 */
{ /* gopast */ /* grouping v, line 45 */
int ret = out_grouping_U(z, g_v, 97, 259, 1);
if (ret < 0) goto lab4;
@ -599,7 +598,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab3;
lab4:
z->c = c3;
if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2;
if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2; /* grouping v, line 45 */
{ /* gopast */ /* non v, line 45 */
int ret = in_grouping_U(z, g_v, 97, 259, 1);
if (ret < 0) goto lab2;
@ -610,9 +609,9 @@ static int r_mark_regions(struct SN_env * z) {
goto lab1;
lab2:
z->c = c2;
if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab0;
if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab0; /* non v, line 47 */
{ int c4 = z->c; /* or, line 47 */
if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab6;
if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab6; /* non v, line 47 */
{ /* gopast */ /* grouping v, line 47 */
int ret = out_grouping_U(z, g_v, 97, 259, 1);
if (ret < 0) goto lab6;
@ -621,7 +620,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab5;
lab6:
z->c = c4;
if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab0;
if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab0; /* grouping v, line 47 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
if (ret < 0) goto lab0;
z->c = ret; /* next, line 47 */
@ -664,24 +663,23 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 56 */
int c1 = z->c;
z->bra = z->c; /* [, line 58 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
among_var = find_among(z, a_0, 3); /* substring, line 58 */
if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else /* substring, line 58 */
among_var = find_among(z, a_0, 3);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 58 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 58 */
case 1:
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 59 */
{ int ret = slice_from_s(z, 1, s_2); /* <-, line 59 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 60 */
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 60 */
if (ret < 0) return ret;
}
break;
@ -700,72 +698,70 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
static int r_RV(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_RV(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 68 */
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 69 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[2] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 70 */
return 1;
}
static int r_step_0(struct SN_env * z) {
static int r_step_0(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 73 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_1, 16); /* substring, line 73 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 73 */
among_var = find_among_b(z, a_1, 16);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 73 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 73 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 73 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 73 */
case 1:
{ int ret = slice_del(z); /* delete, line 75 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 77 */
{ int ret = slice_from_s(z, 1, s_4); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 79 */
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 81 */
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 81 */
if (ret < 0) return ret;
}
break;
case 5:
{ int m1 = z->l - z->c; (void)m1; /* not, line 83 */
if (!(eq_s_b(z, 2, s_9))) goto lab0;
if (!(eq_s_b(z, 2, s_7))) goto lab0; /* literal, line 83 */
return 0;
lab0:
z->c = z->l - m1;
}
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 83 */
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 83 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 2, s_11); /* <-, line 85 */
{ int ret = slice_from_s(z, 2, s_9); /* <-, line 85 */
if (ret < 0) return ret;
}
break;
case 7:
{ int ret = slice_from_s(z, 4, s_12); /* <-, line 87 */
{ int ret = slice_from_s(z, 4, s_10); /* <-, line 87 */
if (ret < 0) return ret;
}
break;
@ -773,63 +769,61 @@ static int r_step_0(struct SN_env * z) {
return 1;
}
static int r_combo_suffix(struct SN_env * z) {
static int r_combo_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int m_test = z->l - z->c; /* test, line 91 */
{ int m_test1 = z->l - z->c; /* test, line 91 */
z->ket = z->c; /* [, line 92 */
among_var = find_among_b(z, a_2, 46); /* substring, line 92 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 92 */
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 92 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 92 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 93 */
case 1:
{ int ret = slice_from_s(z, 4, s_13); /* <-, line 101 */
{ int ret = slice_from_s(z, 4, s_11); /* <-, line 101 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_from_s(z, 4, s_14); /* <-, line 104 */
{ int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 2, s_15); /* <-, line 107 */
{ int ret = slice_from_s(z, 2, s_13); /* <-, line 107 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = slice_from_s(z, 2, s_16); /* <-, line 113 */
{ int ret = slice_from_s(z, 2, s_14); /* <-, line 113 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = slice_from_s(z, 2, s_17); /* <-, line 118 */
{ int ret = slice_from_s(z, 2, s_15); /* <-, line 118 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = slice_from_s(z, 2, s_18); /* <-, line 122 */
{ int ret = slice_from_s(z, 2, s_16); /* <-, line 122 */
if (ret < 0) return ret;
}
break;
}
z->B[0] = 1; /* set standard_suffix_removed, line 125 */
z->c = z->l - m_test;
z->c = z->l - m_test1;
}
return 1;
}
static int r_standard_suffix(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->B[0] = 0; /* unset standard_suffix_removed, line 130 */
while(1) { /* repeat, line 131 */
int m1 = z->l - z->c; (void)m1;
{ int ret = r_combo_suffix(z);
if (ret == 0) goto lab0; /* call combo_suffix, line 131 */
{ int ret = r_combo_suffix(z); /* call combo_suffix, line 131 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
continue;
@ -841,26 +835,24 @@ static int r_standard_suffix(struct SN_env * z) {
among_var = find_among_b(z, a_3, 62); /* substring, line 132 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 132 */
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 132 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 132 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 133 */
case 1:
{ int ret = slice_del(z); /* delete, line 149 */
if (ret < 0) return ret;
}
break;
case 2:
if (!(eq_s_b(z, 2, s_19))) return 0;
if (!(eq_s_b(z, 2, s_17))) return 0; /* literal, line 152 */
z->bra = z->c; /* ], line 152 */
{ int ret = slice_from_s(z, 1, s_20); /* <-, line 152 */
{ int ret = slice_from_s(z, 1, s_18); /* <-, line 152 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_from_s(z, 3, s_21); /* <-, line 156 */
{ int ret = slice_from_s(z, 3, s_19); /* <-, line 156 */
if (ret < 0) return ret;
}
break;
@ -869,27 +861,25 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
static int r_verb_suffix(struct SN_env * z) {
static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 164 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 164 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 164 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 165 */
among_var = find_among_b(z, a_4, 94); /* substring, line 165 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 165 */
switch(among_var) {
case 0: { z->lb = mlimit; return 0; }
switch (among_var) { /* among, line 165 */
case 1:
{ int m2 = z->l - z->c; (void)m2; /* or, line 200 */
if (out_grouping_b_U(z, g_v, 97, 259, 0)) goto lab1;
if (out_grouping_b_U(z, g_v, 97, 259, 0)) goto lab1; /* non v, line 200 */
goto lab0;
lab1:
z->c = z->l - m2;
if (!(eq_s_b(z, 1, s_22))) { z->lb = mlimit; return 0; }
if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->lb = mlimit1; return 0; } /* literal, line 200 */
z->c--;
}
lab0:
{ int ret = slice_del(z); /* delete, line 200 */
@ -902,98 +892,88 @@ static int r_verb_suffix(struct SN_env * z) {
}
break;
}
z->lb = mlimit;
z->lb = mlimit1;
}
return 1;
}
static int r_vowel_suffix(struct SN_env * z) {
int among_var;
static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 219 */
among_var = find_among_b(z, a_5, 5); /* substring, line 219 */
if (!(among_var)) return 0;
if (!(find_among_b(z, a_5, 5))) return 0; /* substring, line 219 */
z->bra = z->c; /* ], line 219 */
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 219 */
{ int ret = r_RV(z); /* call RV, line 219 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 220 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = slice_del(z); /* delete, line 220 */
if (ret < 0) return ret;
}
break;
}
return 1;
}
extern int romanian_UTF_8_stem(struct SN_env * z) {
extern int romanian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 226 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 226 */
{ int ret = r_prelude(z); /* call prelude, line 226 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->c = c1;
}
{ int c2 = z->c; /* do, line 227 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 227 */
if (ret < 0) return ret;
}
lab1:
z->c = c2;
/* do, line 227 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 227 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->lb = z->c; z->c = z->l; /* backwards, line 228 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 229 */
{ int ret = r_step_0(z);
if (ret == 0) goto lab2; /* call step_0, line 229 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 229 */
{ int ret = r_step_0(z); /* call step_0, line 229 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
z->c = z->l - m2;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 230 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab3; /* call standard_suffix, line 230 */
{ int m3 = z->l - z->c; (void)m3; /* do, line 230 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 230 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->c = z->l - m4;
z->c = z->l - m3;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 231 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 231 */
{ int m4 = z->l - z->c; (void)m4; /* do, line 231 */
{ int m5 = z->l - z->c; (void)m5; /* or, line 231 */
if (!(z->B[0])) goto lab6; /* Boolean test standard_suffix_removed, line 231 */
goto lab5;
lab6:
z->c = z->l - m6;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab4; /* call verb_suffix, line 231 */
z->c = z->l - m5;
{ int ret = r_verb_suffix(z); /* call verb_suffix, line 231 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
lab4:
z->c = z->l - m5;
z->c = z->l - m4;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 232 */
{ int ret = r_vowel_suffix(z);
if (ret == 0) goto lab7; /* call vowel_suffix, line 232 */
{ int m6 = z->l - z->c; (void)m6; /* do, line 232 */
{ int ret = r_vowel_suffix(z); /* call vowel_suffix, line 232 */
if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
z->c = z->l - m7;
z->c = z->l - m6;
}
z->c = z->lb;
{ int c8 = z->c; /* do, line 234 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab8; /* call postlude, line 234 */
{ int c7 = z->c; /* do, line 234 */
{ int ret = r_postlude(z); /* call postlude, line 234 */
if (ret == 0) goto lab8;
if (ret < 0) return ret;
}
lab8:
z->c = c8;
z->c = c7;
}
return 1;
}

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -349,68 +349,69 @@ static const symbol s_5[] = { 0xD1, 0x8F };
static const symbol s_6[] = { 0xD0, 0xBD };
static const symbol s_7[] = { 0xD0, 0xBD };
static const symbol s_8[] = { 0xD0, 0xBD };
static const symbol s_9[] = { 0xD0, 0xB8 };
static const symbol s_9[] = { 0xD1, 0x91 };
static const symbol s_10[] = { 0xD0, 0xB5 };
static const symbol s_11[] = { 0xD0, 0xB8 };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
{ int c1 = z->c; /* do, line 61 */
{ /* gopast */ /* grouping v, line 62 */
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 61 */
z->I[1] = z->l; /* $p2 = <integer expression>, line 62 */
{ int c1 = z->c; /* do, line 63 */
{ /* gopast */ /* grouping v, line 64 */
int ret = out_grouping_U(z, g_v, 1072, 1103, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
z->I[0] = z->c; /* setmark pV, line 62 */
{ /* gopast */ /* non v, line 62 */
z->I[0] = z->c; /* setmark pV, line 64 */
{ /* gopast */ /* non v, line 64 */
int ret = in_grouping_U(z, g_v, 1072, 1103, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
{ /* gopast */ /* grouping v, line 63 */
{ /* gopast */ /* grouping v, line 65 */
int ret = out_grouping_U(z, g_v, 1072, 1103, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
{ /* gopast */ /* non v, line 63 */
{ /* gopast */ /* non v, line 65 */
int ret = in_grouping_U(z, g_v, 1072, 1103, 1);
if (ret < 0) goto lab0;
z->c += ret;
}
z->I[1] = z->c; /* setmark p2, line 63 */
z->I[1] = z->c; /* setmark p2, line 65 */
lab0:
z->c = c1;
}
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 71 */
return 1;
}
static int r_perfective_gerund(struct SN_env * z) {
static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 72 */
among_var = find_among_b(z, a_0, 9); /* substring, line 72 */
z->ket = z->c; /* [, line 74 */
among_var = find_among_b(z, a_0, 9); /* substring, line 74 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 72 */
switch(among_var) {
case 0: return 0;
z->bra = z->c; /* ], line 74 */
switch (among_var) { /* among, line 74 */
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 76 */
if (!(eq_s_b(z, 2, s_0))) goto lab1;
{ int m1 = z->l - z->c; (void)m1; /* or, line 78 */
if (!(eq_s_b(z, 2, s_0))) goto lab1; /* literal, line 78 */
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 2, s_1))) return 0;
if (!(eq_s_b(z, 2, s_1))) return 0; /* literal, line 78 */
}
lab0:
{ int ret = slice_del(z); /* delete, line 76 */
{ int ret = slice_del(z); /* delete, line 78 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 83 */
{ int ret = slice_del(z); /* delete, line 85 */
if (ret < 0) return ret;
}
break;
@ -418,51 +419,42 @@ static int r_perfective_gerund(struct SN_env * z) {
return 1;
}
static int r_adjective(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 88 */
among_var = find_among_b(z, a_1, 26); /* substring, line 88 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 88 */
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = slice_del(z); /* delete, line 97 */
if (ret < 0) return ret;
}
break;
}
return 1;
}
static int r_adjectival(struct SN_env * z) {
int among_var;
{ int ret = r_adjective(z);
if (ret == 0) return 0; /* call adjective, line 102 */
static int r_adjective(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 90 */
if (!(find_among_b(z, a_1, 26))) return 0; /* substring, line 90 */
z->bra = z->c; /* ], line 90 */
{ int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 109 */
z->ket = z->c; /* [, line 110 */
among_var = find_among_b(z, a_2, 8); /* substring, line 110 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 110 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab0; }
return 1;
}
static int r_adjectival(struct SN_env * z) { /* backwardmode */
int among_var;
{ int ret = r_adjective(z); /* call adjective, line 104 */
if (ret <= 0) return ret;
}
{ int m1 = z->l - z->c; (void)m1; /* try, line 111 */
z->ket = z->c; /* [, line 112 */
among_var = find_among_b(z, a_2, 8); /* substring, line 112 */
if (!(among_var)) { z->c = z->l - m1; goto lab0; }
z->bra = z->c; /* ], line 112 */
switch (among_var) { /* among, line 112 */
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 115 */
if (!(eq_s_b(z, 2, s_2))) goto lab2;
{ int m2 = z->l - z->c; (void)m2; /* or, line 117 */
if (!(eq_s_b(z, 2, s_2))) goto lab2; /* literal, line 117 */
goto lab1;
lab2:
z->c = z->l - m1;
if (!(eq_s_b(z, 2, s_3))) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m2;
if (!(eq_s_b(z, 2, s_3))) { z->c = z->l - m1; goto lab0; } /* literal, line 117 */
}
lab1:
{ int ret = slice_del(z); /* delete, line 115 */
{ int ret = slice_del(z); /* delete, line 117 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 122 */
{ int ret = slice_del(z); /* delete, line 124 */
if (ret < 0) return ret;
}
break;
@ -473,47 +465,39 @@ static int r_adjectival(struct SN_env * z) {
return 1;
}
static int r_reflexive(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 129 */
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 140 && z->p[z->c - 1] != 143)) return 0;
among_var = find_among_b(z, a_3, 2); /* substring, line 129 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 129 */
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = slice_del(z); /* delete, line 132 */
if (ret < 0) return ret;
}
break;
static int r_reflexive(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 131 */
if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 140 && z->p[z->c - 1] != 143)) return 0; /* substring, line 131 */
if (!(find_among_b(z, a_3, 2))) return 0;
z->bra = z->c; /* ], line 131 */
{ int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
return 1;
}
static int r_verb(struct SN_env * z) {
static int r_verb(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 137 */
among_var = find_among_b(z, a_4, 46); /* substring, line 137 */
z->ket = z->c; /* [, line 139 */
among_var = find_among_b(z, a_4, 46); /* substring, line 139 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 137 */
switch(among_var) {
case 0: return 0;
z->bra = z->c; /* ], line 139 */
switch (among_var) { /* among, line 139 */
case 1:
{ int m1 = z->l - z->c; (void)m1; /* or, line 143 */
if (!(eq_s_b(z, 2, s_4))) goto lab1;
{ int m1 = z->l - z->c; (void)m1; /* or, line 145 */
if (!(eq_s_b(z, 2, s_4))) goto lab1; /* literal, line 145 */
goto lab0;
lab1:
z->c = z->l - m1;
if (!(eq_s_b(z, 2, s_5))) return 0;
if (!(eq_s_b(z, 2, s_5))) return 0; /* literal, line 145 */
}
lab0:
{ int ret = slice_del(z); /* delete, line 143 */
{ int ret = slice_del(z); /* delete, line 145 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = slice_del(z); /* delete, line 151 */
{ int ret = slice_del(z); /* delete, line 153 */
if (ret < 0) return ret;
}
break;
@ -521,168 +505,175 @@ static int r_verb(struct SN_env * z) {
return 1;
}
static int r_noun(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 160 */
among_var = find_among_b(z, a_5, 36); /* substring, line 160 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 160 */
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = slice_del(z); /* delete, line 167 */
if (ret < 0) return ret;
}
break;
}
return 1;
}
static int r_derivational(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 176 */
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 130 && z->p[z->c - 1] != 140)) return 0;
among_var = find_among_b(z, a_6, 2); /* substring, line 176 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 176 */
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 176 */
static int r_noun(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 162 */
if (!(find_among_b(z, a_5, 36))) return 0; /* substring, line 162 */
z->bra = z->c; /* ], line 162 */
{ int ret = slice_del(z); /* delete, line 169 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = slice_del(z); /* delete, line 179 */
if (ret < 0) return ret;
}
break;
return 1;
}
static int r_derivational(struct SN_env * z) { /* backwardmode */
z->ket = z->c; /* [, line 178 */
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 130 && z->p[z->c - 1] != 140)) return 0; /* substring, line 178 */
if (!(find_among_b(z, a_6, 2))) return 0;
z->bra = z->c; /* ], line 178 */
{ int ret = r_R2(z); /* call R2, line 178 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 181 */
if (ret < 0) return ret;
}
return 1;
}
static int r_tidy_up(struct SN_env * z) {
static int r_tidy_up(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 184 */
among_var = find_among_b(z, a_7, 4); /* substring, line 184 */
z->ket = z->c; /* [, line 186 */
among_var = find_among_b(z, a_7, 4); /* substring, line 186 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 184 */
switch(among_var) {
case 0: return 0;
z->bra = z->c; /* ], line 186 */
switch (among_var) { /* among, line 186 */
case 1:
{ int ret = slice_del(z); /* delete, line 188 */
{ int ret = slice_del(z); /* delete, line 190 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 189 */
if (!(eq_s_b(z, 2, s_6))) return 0;
z->bra = z->c; /* ], line 189 */
if (!(eq_s_b(z, 2, s_7))) return 0;
{ int ret = slice_del(z); /* delete, line 189 */
z->ket = z->c; /* [, line 191 */
if (!(eq_s_b(z, 2, s_6))) return 0; /* literal, line 191 */
z->bra = z->c; /* ], line 191 */
if (!(eq_s_b(z, 2, s_7))) return 0; /* literal, line 191 */
{ int ret = slice_del(z); /* delete, line 191 */
if (ret < 0) return ret;
}
break;
case 2:
if (!(eq_s_b(z, 2, s_8))) return 0;
{ int ret = slice_del(z); /* delete, line 192 */
if (ret < 0) return ret;
}
break;
case 3:
if (!(eq_s_b(z, 2, s_8))) return 0; /* literal, line 194 */
{ int ret = slice_del(z); /* delete, line 194 */
if (ret < 0) return ret;
}
break;
case 3:
{ int ret = slice_del(z); /* delete, line 196 */
if (ret < 0) return ret;
}
break;
}
return 1;
}
extern int russian_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c; /* do, line 201 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 201 */
if (ret < 0) return ret;
extern int russian_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 205 */
while(1) { /* repeat, line 205 */
int c2 = z->c;
while(1) { /* goto, line 205 */
int c3 = z->c;
z->bra = z->c; /* [, line 205 */
if (!(eq_s(z, 2, s_9))) goto lab2; /* literal, line 205 */
z->ket = z->c; /* ], line 205 */
z->c = c3;
break;
lab2:
z->c = c3;
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
if (ret < 0) goto lab1;
z->c = ret; /* goto, line 205 */
}
}
{ int ret = slice_from_s(z, 2, s_10); /* <-, line 205 */
if (ret < 0) return ret;
}
continue;
lab1:
z->c = c2;
break;
}
lab0:
z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 202 */
/* do, line 207 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 207 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:
z->lb = z->c; z->c = z->l; /* backwards, line 208 */
{ int mlimit; /* setlimit, line 202 */
int m2 = z->l - z->c; (void)m2;
{ int mlimit4; /* setlimit, line 208 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 202 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m2;
{ int m3 = z->l - z->c; (void)m3; /* do, line 203 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 204 */
{ int ret = r_perfective_gerund(z);
if (ret == 0) goto lab3; /* call perfective_gerund, line 204 */
mlimit4 = z->lb; z->lb = z->I[0];
{ int m5 = z->l - z->c; (void)m5; /* do, line 209 */
{ int m6 = z->l - z->c; (void)m6; /* or, line 210 */
{ int ret = r_perfective_gerund(z); /* call perfective_gerund, line 210 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
goto lab2;
lab3:
z->c = z->l - m4;
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 205 */
{ int ret = r_reflexive(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call reflexive, line 205 */
goto lab5;
lab6:
z->c = z->l - m6;
{ int m7 = z->l - z->c; (void)m7; /* try, line 211 */
{ int ret = r_reflexive(z); /* call reflexive, line 211 */
if (ret == 0) { z->c = z->l - m7; goto lab7; }
if (ret < 0) return ret;
}
lab4:
lab7:
;
}
{ int m5 = z->l - z->c; (void)m5; /* or, line 206 */
{ int ret = r_adjectival(z);
if (ret == 0) goto lab6; /* call adjectival, line 206 */
{ int m8 = z->l - z->c; (void)m8; /* or, line 212 */
{ int ret = r_adjectival(z); /* call adjectival, line 212 */
if (ret == 0) goto lab9;
if (ret < 0) return ret;
}
goto lab5;
lab6:
z->c = z->l - m5;
{ int ret = r_verb(z);
if (ret == 0) goto lab7; /* call verb, line 206 */
goto lab8;
lab9:
z->c = z->l - m8;
{ int ret = r_verb(z); /* call verb, line 212 */
if (ret == 0) goto lab10;
if (ret < 0) return ret;
}
goto lab5;
lab7:
z->c = z->l - m5;
{ int ret = r_noun(z);
if (ret == 0) goto lab1; /* call noun, line 206 */
goto lab8;
lab10:
z->c = z->l - m8;
{ int ret = r_noun(z); /* call noun, line 212 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
}
lab5:
lab8:
;
}
lab2:
lab1:
z->c = z->l - m3;
lab5:
lab4:
z->c = z->l - m5;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 209 */
z->ket = z->c; /* [, line 209 */
if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - m_keep; goto lab8; }
z->bra = z->c; /* ], line 209 */
{ int ret = slice_del(z); /* delete, line 209 */
{ int m9 = z->l - z->c; (void)m9; /* try, line 215 */
z->ket = z->c; /* [, line 215 */
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m9; goto lab11; } /* literal, line 215 */
z->bra = z->c; /* ], line 215 */
{ int ret = slice_del(z); /* delete, line 215 */
if (ret < 0) return ret;
}
lab8:
lab11:
;
}
{ int m6 = z->l - z->c; (void)m6; /* do, line 212 */
{ int ret = r_derivational(z);
if (ret == 0) goto lab9; /* call derivational, line 212 */
{ int m10 = z->l - z->c; (void)m10; /* do, line 218 */
{ int ret = r_derivational(z); /* call derivational, line 218 */
if (ret == 0) goto lab12;
if (ret < 0) return ret;
}
lab9:
z->c = z->l - m6;
lab12:
z->c = z->l - m10;
}
{ int m7 = z->l - z->c; (void)m7; /* do, line 213 */
{ int ret = r_tidy_up(z);
if (ret == 0) goto lab10; /* call tidy_up, line 213 */
{ int m11 = z->l - z->c; (void)m11; /* do, line 219 */
{ int ret = r_tidy_up(z); /* call tidy_up, line 219 */
if (ret == 0) goto lab13;
if (ret < 0) return ret;
}
lab10:
z->c = z->l - m7;
lab13:
z->c = z->l - m11;
}
z->lb = mlimit;
z->lb = mlimit4;
}
z->c = z->lb;
return 1;

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -497,28 +497,22 @@ static const symbol s_6[] = { 'a', 'n', 'd', 'o' };
static const symbol s_7[] = { 'a', 'r' };
static const symbol s_8[] = { 'e', 'r' };
static const symbol s_9[] = { 'i', 'r' };
static const symbol s_10[] = { 'u' };
static const symbol s_11[] = { 'i', 'c' };
static const symbol s_12[] = { 'l', 'o', 'g' };
static const symbol s_13[] = { 'u' };
static const symbol s_14[] = { 'e', 'n', 't', 'e' };
static const symbol s_10[] = { 'i', 'c' };
static const symbol s_11[] = { 'l', 'o', 'g' };
static const symbol s_12[] = { 'u' };
static const symbol s_13[] = { 'e', 'n', 't', 'e' };
static const symbol s_14[] = { 'a', 't' };
static const symbol s_15[] = { 'a', 't' };
static const symbol s_16[] = { 'a', 't' };
static const symbol s_17[] = { 'u' };
static const symbol s_18[] = { 'u' };
static const symbol s_19[] = { 'g' };
static const symbol s_20[] = { 'u' };
static const symbol s_21[] = { 'g' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $pV = <integer expression>, line 33 */
z->I[1] = z->l; /* $p1 = <integer expression>, line 34 */
z->I[2] = z->l; /* $p2 = <integer expression>, line 35 */
{ int c1 = z->c; /* do, line 37 */
{ int c2 = z->c; /* or, line 39 */
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2; /* grouping v, line 38 */
{ int c3 = z->c; /* or, line 38 */
if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab4; /* non v, line 38 */
{ /* gopast */ /* grouping v, line 38 */
int ret = out_grouping_U(z, g_v, 97, 252, 1);
if (ret < 0) goto lab4;
@ -527,7 +521,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab3;
lab4:
z->c = c3;
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2; /* grouping v, line 38 */
{ /* gopast */ /* non v, line 38 */
int ret = in_grouping_U(z, g_v, 97, 252, 1);
if (ret < 0) goto lab2;
@ -538,9 +532,9 @@ static int r_mark_regions(struct SN_env * z) {
goto lab1;
lab2:
z->c = c2;
if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab0; /* non v, line 40 */
{ int c4 = z->c; /* or, line 40 */
if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab6; /* non v, line 40 */
{ /* gopast */ /* grouping v, line 40 */
int ret = out_grouping_U(z, g_v, 97, 252, 1);
if (ret < 0) goto lab6;
@ -549,7 +543,7 @@ static int r_mark_regions(struct SN_env * z) {
goto lab5;
lab6:
z->c = c4;
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab0; /* grouping v, line 40 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
if (ret < 0) goto lab0;
z->c = ret; /* next, line 40 */
@ -592,17 +586,16 @@ static int r_mark_regions(struct SN_env * z) {
return 1;
}
static int r_postlude(struct SN_env * z) {
static int r_postlude(struct SN_env * z) { /* forwardmode */
int among_var;
while(1) { /* repeat, line 49 */
int c1 = z->c;
z->bra = z->c; /* [, line 50 */
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); /* substring, line 50 */
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 /* substring, line 50 */
among_var = find_among(z, a_0, 6);
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 50 */
switch(among_var) {
case 0: goto lab0;
switch (among_var) { /* among, line 50 */
case 1:
{ int ret = slice_from_s(z, 1, s_0); /* <-, line 51 */
if (ret < 0) return ret;
@ -643,36 +636,34 @@ static int r_postlude(struct SN_env * z) {
return 1;
}
static int r_RV(struct SN_env * z) {
if (!(z->I[0] <= z->c)) return 0;
static int r_RV(struct SN_env * z) { /* backwardmode */
if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 63 */
return 1;
}
static int r_R1(struct SN_env * z) {
if (!(z->I[1] <= z->c)) return 0;
static int r_R1(struct SN_env * z) { /* backwardmode */
if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 64 */
return 1;
}
static int r_R2(struct SN_env * z) {
if (!(z->I[2] <= z->c)) return 0;
static int r_R2(struct SN_env * z) { /* backwardmode */
if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 65 */
return 1;
}
static int r_attached_pronoun(struct SN_env * z) {
static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 68 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
if (!(find_among_b(z, a_1, 13))) return 0; /* substring, line 68 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 68 */
if (!(find_among_b(z, a_1, 13))) return 0;
z->bra = z->c; /* ], line 68 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
among_var = find_among_b(z, a_2, 11); /* substring, line 72 */
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; /* substring, line 72 */
among_var = find_among_b(z, a_2, 11);
if (!(among_var)) return 0;
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 72 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 72 */
if (ret <= 0) return ret;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 72 */
case 1:
z->bra = z->c; /* ], line 73 */
{ int ret = slice_from_s(z, 5, s_5); /* <-, line 73 */
@ -709,7 +700,8 @@ static int r_attached_pronoun(struct SN_env * z) {
}
break;
case 7:
if (!(eq_s_b(z, 1, s_10))) return 0;
if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; /* literal, line 82 */
z->c--;
{ int ret = slice_del(z); /* delete, line 82 */
if (ret < 0) return ret;
}
@ -718,38 +710,35 @@ static int r_attached_pronoun(struct SN_env * z) {
return 1;
}
static int r_standard_suffix(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 87 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_6, 46); /* substring, line 87 */
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 87 */
among_var = find_among_b(z, a_6, 46);
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 87 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 87 */
case 1:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 99 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 99 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 105 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 105 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 105 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 106 */
{ int m1 = z->l - z->c; (void)m1; /* try, line 106 */
z->ket = z->c; /* [, line 106 */
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab0; }
if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m1; goto lab0; } /* literal, line 106 */
z->bra = z->c; /* ], line 106 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 106 */
{ int ret = r_R2(z); /* call R2, line 106 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 106 */
@ -760,61 +749,56 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 3:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 111 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 111 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 3, s_12); /* <-, line 111 */
{ int ret = slice_from_s(z, 3, s_11); /* <-, line 111 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 115 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 115 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 1, s_13); /* <-, line 115 */
{ int ret = slice_from_s(z, 1, s_12); /* <-, line 115 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 119 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 119 */
if (ret <= 0) return ret;
}
{ int ret = slice_from_s(z, 4, s_14); /* <-, line 119 */
{ int ret = slice_from_s(z, 4, s_13); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 123 */
if (ret < 0) return ret;
{ int ret = r_R1(z); /* call R1, line 123 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 123 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 124 */
{ int m2 = z->l - z->c; (void)m2; /* try, line 124 */
z->ket = z->c; /* [, line 125 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab1; }
among_var = find_among_b(z, a_3, 4); /* substring, line 125 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } /* substring, line 125 */
among_var = find_among_b(z, a_3, 4);
if (!(among_var)) { z->c = z->l - m2; goto lab1; }
z->bra = z->c; /* ], line 125 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 125 */
{ int ret = r_R2(z); /* call R2, line 125 */
if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 125 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab1; }
switch (among_var) { /* among, line 125 */
case 1:
z->ket = z->c; /* [, line 126 */
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab1; }
if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m2; goto lab1; } /* literal, line 126 */
z->bra = z->c; /* ], line 126 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 126 */
{ int ret = r_R2(z); /* call R2, line 126 */
if (ret == 0) { z->c = z->l - m2; goto lab1; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 126 */
@ -827,79 +811,64 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 7:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 135 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 135 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 135 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 136 */
{ int m3 = z->l - z->c; (void)m3; /* try, line 136 */
z->ket = z->c; /* [, line 137 */
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m_keep; goto lab2; }
among_var = find_among_b(z, a_4, 3); /* substring, line 137 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; } /* substring, line 137 */
if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
z->bra = z->c; /* ], line 137 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab2; }
case 1:
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 140 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 140 */
if (ret < 0) return ret;
}
break;
{ int ret = r_R2(z); /* call R2, line 140 */
if (ret == 0) { z->c = z->l - m3; goto lab2; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 140 */
if (ret < 0) return ret;
}
lab2:
;
}
break;
case 8:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 147 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 147 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 147 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 148 */
{ int m4 = z->l - z->c; (void)m4; /* try, line 148 */
z->ket = z->c; /* [, line 149 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab3; }
among_var = find_among_b(z, a_5, 3); /* substring, line 149 */
if (!(among_var)) { z->c = z->l - m_keep; goto lab3; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m4; goto lab3; } /* substring, line 149 */
if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m4; goto lab3; }
z->bra = z->c; /* ], line 149 */
switch(among_var) {
case 0: { z->c = z->l - m_keep; goto lab3; }
case 1:
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 152 */
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
break;
{ int ret = r_R2(z); /* call R2, line 152 */
if (ret == 0) { z->c = z->l - m4; goto lab3; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
lab3:
;
}
break;
case 9:
{ int ret = r_R2(z);
if (ret == 0) return 0; /* call R2, line 159 */
if (ret < 0) return ret;
{ int ret = r_R2(z); /* call R2, line 159 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 159 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 160 */
{ int m5 = z->l - z->c; (void)m5; /* try, line 160 */
z->ket = z->c; /* [, line 161 */
if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m_keep; goto lab4; }
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m5; goto lab4; } /* literal, line 161 */
z->bra = z->c; /* ], line 161 */
{ int ret = r_R2(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call R2, line 161 */
{ int ret = r_R2(z); /* call R2, line 161 */
if (ret == 0) { z->c = z->l - m5; goto lab4; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 161 */
@ -913,54 +882,45 @@ static int r_standard_suffix(struct SN_env * z) {
return 1;
}
static int r_y_verb_suffix(struct SN_env * z) {
int among_var;
{ int mlimit; /* setlimit, line 168 */
int m1 = z->l - z->c; (void)m1;
static int r_y_verb_suffix(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 168 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 168 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 168 */
among_var = find_among_b(z, a_7, 12); /* substring, line 168 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; } /* substring, line 168 */
z->bra = z->c; /* ], line 168 */
z->lb = mlimit;
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
case 1:
if (!(eq_s_b(z, 1, s_17))) return 0;
{ int ret = slice_del(z); /* delete, line 171 */
if (ret < 0) return ret;
}
break;
if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; /* literal, line 171 */
z->c--;
{ int ret = slice_del(z); /* delete, line 171 */
if (ret < 0) return ret;
}
return 1;
}
static int r_verb_suffix(struct SN_env * z) {
static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 176 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 176 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 176 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 176 */
among_var = find_among_b(z, a_8, 96); /* substring, line 176 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 176 */
z->lb = mlimit;
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 176 */
case 1:
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 179 */
if (!(eq_s_b(z, 1, s_18))) { z->c = z->l - m_keep; goto lab0; }
{ int m_test = z->l - z->c; /* test, line 179 */
if (!(eq_s_b(z, 1, s_19))) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m_test;
{ int m2 = z->l - z->c; (void)m2; /* try, line 179 */
if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m2; goto lab0; } /* literal, line 179 */
z->c--;
{ int m_test3 = z->l - z->c; /* test, line 179 */
if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m2; goto lab0; } /* literal, line 179 */
z->c--;
z->c = z->l - m_test3;
}
lab0:
;
@ -979,41 +939,40 @@ static int r_verb_suffix(struct SN_env * z) {
return 1;
}
static int r_residual_suffix(struct SN_env * z) {
static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
z->ket = z->c; /* [, line 205 */
among_var = find_among_b(z, a_9, 8); /* substring, line 205 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 205 */
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 205 */
case 1:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 208 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 208 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 208 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_RV(z);
if (ret == 0) return 0; /* call RV, line 210 */
if (ret < 0) return ret;
{ int ret = r_RV(z); /* call RV, line 210 */
if (ret <= 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 210 */
if (ret < 0) return ret;
}
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 210 */
{ int m1 = z->l - z->c; (void)m1; /* try, line 210 */
z->ket = z->c; /* [, line 210 */
if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m_keep; goto lab0; }
if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m1; goto lab0; } /* literal, line 210 */
z->c--;
z->bra = z->c; /* ], line 210 */
{ int m_test = z->l - z->c; /* test, line 210 */
if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m_test;
{ int m_test2 = z->l - z->c; /* test, line 210 */
if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m1; goto lab0; } /* literal, line 210 */
z->c--;
z->c = z->l - m_test2;
}
{ int ret = r_RV(z);
if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 210 */
{ int ret = r_RV(z); /* call RV, line 210 */
if (ret == 0) { z->c = z->l - m1; goto lab0; }
if (ret < 0) return ret;
}
{ int ret = slice_del(z); /* delete, line 210 */
@ -1027,66 +986,64 @@ static int r_residual_suffix(struct SN_env * z) {
return 1;
}
extern int spanish_UTF_8_stem(struct SN_env * z) {
{ int c1 = z->c; /* do, line 216 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 216 */
if (ret < 0) return ret;
}
lab0:
z->c = c1;
extern int spanish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
/* do, line 216 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 216 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
z->lb = z->c; z->c = z->l; /* backwards, line 217 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 218 */
{ int ret = r_attached_pronoun(z);
if (ret == 0) goto lab1; /* call attached_pronoun, line 218 */
{ int m1 = z->l - z->c; (void)m1; /* do, line 218 */
{ int ret = r_attached_pronoun(z); /* call attached_pronoun, line 218 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
z->c = z->l - m1;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 219 */
{ int m4 = z->l - z->c; (void)m4; /* or, line 219 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab4; /* call standard_suffix, line 219 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 219 */
{ int m3 = z->l - z->c; (void)m3; /* or, line 219 */
{ int ret = r_standard_suffix(z); /* call standard_suffix, line 219 */
if (ret == 0) goto lab4;
if (ret < 0) return ret;
}
goto lab3;
lab4:
z->c = z->l - m4;
{ int ret = r_y_verb_suffix(z);
if (ret == 0) goto lab5; /* call y_verb_suffix, line 220 */
z->c = z->l - m3;
{ int ret = r_y_verb_suffix(z); /* call y_verb_suffix, line 220 */
if (ret == 0) goto lab5;
if (ret < 0) return ret;
}
goto lab3;
lab5:
z->c = z->l - m4;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab2; /* call verb_suffix, line 221 */
z->c = z->l - m3;
{ int ret = r_verb_suffix(z); /* call verb_suffix, line 221 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
}
lab3:
lab2:
z->c = z->l - m3;
z->c = z->l - m2;
}
{ int m5 = z->l - z->c; (void)m5; /* do, line 223 */
{ int ret = r_residual_suffix(z);
if (ret == 0) goto lab6; /* call residual_suffix, line 223 */
{ int m4 = z->l - z->c; (void)m4; /* do, line 223 */
{ int ret = r_residual_suffix(z); /* call residual_suffix, line 223 */
if (ret == 0) goto lab6;
if (ret < 0) return ret;
}
lab6:
z->c = z->l - m5;
z->c = z->l - m4;
}
z->c = z->lb;
{ int c6 = z->c; /* do, line 225 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab7; /* call postlude, line 225 */
{ int c5 = z->c; /* do, line 225 */
{ int ret = r_postlude(z); /* call postlude, line 225 */
if (ret == 0) goto lab7;
if (ret < 0) return ret;
}
lab7:
z->c = c6;
z->c = c5;
}
return 1;
}

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#include "header.h"
@ -146,15 +146,15 @@ static const unsigned char g_s_ending[] = { 119, 127, 149 };
static const symbol s_0[] = { 'l', 0xC3, 0xB6, 's' };
static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
{ int c_test = z->c; /* test, line 29 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3);
static int r_mark_regions(struct SN_env * z) { /* forwardmode */
z->I[0] = z->l; /* $p1 = <integer expression>, line 28 */
{ int c_test1 = z->c; /* test, line 29 */
{ int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 29 */
if (ret < 0) return 0;
z->c = ret; /* hop, line 29 */
z->c = ret;
}
z->I[1] = z->c; /* setmark x, line 29 */
z->c = c_test;
z->c = c_test1;
}
if (out_grouping_U(z, g_v, 97, 246, 1) < 0) return 0; /* goto */ /* grouping v, line 30 */
{ /* gopast */ /* non v, line 30 */
@ -163,37 +163,34 @@ static int r_mark_regions(struct SN_env * z) {
z->c += ret;
}
z->I[0] = z->c; /* setmark p1, line 30 */
/* try, line 31 */
if (!(z->I[0] < z->I[1])) goto lab0;
z->I[0] = z->I[1];
/* try, line 31 */
if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 31 */
z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 31 */
lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) {
static int r_main_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 37 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 37 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 37 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 37 */
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_0, 37); /* substring, line 37 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 37 */
among_var = find_among_b(z, a_0, 37);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 37 */
z->lb = mlimit;
z->lb = mlimit1;
}
switch(among_var) {
case 0: return 0;
switch (among_var) { /* among, line 38 */
case 1:
{ int ret = slice_del(z); /* delete, line 44 */
if (ret < 0) return ret;
}
break;
case 2:
if (in_grouping_b_U(z, g_s_ending, 98, 121, 0)) return 0;
if (in_grouping_b_U(z, g_s_ending, 98, 121, 0)) return 0; /* grouping s_ending, line 46 */
{ int ret = slice_del(z); /* delete, line 46 */
if (ret < 0) return ret;
}
@ -202,20 +199,18 @@ static int r_main_suffix(struct SN_env * z) {
return 1;
}
static int r_consonant_pair(struct SN_env * z) {
{ int mlimit; /* setlimit, line 50 */
int m1 = z->l - z->c; (void)m1;
static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
{ int mlimit1; /* setlimit, line 50 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 50 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
{ int m2 = z->l - z->c; (void)m2; /* and, line 52 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit; return 0; } /* among, line 51 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* among, line 51 */
if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; }
z->c = z->l - m2;
z->ket = z->c; /* [, line 52 */
{ int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
if (ret < 0) { z->lb = mlimit; return 0; }
if (ret < 0) { z->lb = mlimit1; return 0; }
z->c = ret; /* next, line 52 */
}
z->bra = z->c; /* ], line 52 */
@ -223,26 +218,23 @@ static int r_consonant_pair(struct SN_env * z) {
if (ret < 0) return ret;
}
}
z->lb = mlimit;
z->lb = mlimit1;
}
return 1;
}
static int r_other_suffix(struct SN_env * z) {
static int r_other_suffix(struct SN_env * z) { /* backwardmode */
int among_var;
{ int mlimit; /* setlimit, line 55 */
int m1 = z->l - z->c; (void)m1;
{ int mlimit1; /* setlimit, line 55 */
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 55 */
mlimit = z->lb; z->lb = z->c;
z->c = z->l - m1;
mlimit1 = z->lb; z->lb = z->I[0];
z->ket = z->c; /* [, line 56 */
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_2, 5); /* substring, line 56 */
if (!(among_var)) { z->lb = mlimit; return 0; }
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 56 */
among_var = find_among_b(z, a_2, 5);
if (!(among_var)) { z->lb = mlimit1; return 0; }
z->bra = z->c; /* ], line 56 */
switch(among_var) {
case 0: { z->lb = mlimit; return 0; }
switch (among_var) { /* among, line 56 */
case 1:
{ int ret = slice_del(z); /* delete, line 57 */
if (ret < 0) return ret;
@ -259,15 +251,15 @@ static int r_other_suffix(struct SN_env * z) {
}
break;
}
z->lb = mlimit;
z->lb = mlimit1;
}
return 1;
}
extern int swedish_UTF_8_stem(struct SN_env * z) {
extern int swedish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
{ int c1 = z->c; /* do, line 66 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 66 */
{ int ret = r_mark_regions(z); /* call mark_regions, line 66 */
if (ret == 0) goto lab0;
if (ret < 0) return ret;
}
lab0:
@ -276,24 +268,24 @@ extern int swedish_UTF_8_stem(struct SN_env * z) {
z->lb = z->c; z->c = z->l; /* backwards, line 67 */
{ int m2 = z->l - z->c; (void)m2; /* do, line 68 */
{ int ret = r_main_suffix(z);
if (ret == 0) goto lab1; /* call main_suffix, line 68 */
{ int ret = r_main_suffix(z); /* call main_suffix, line 68 */
if (ret == 0) goto lab1;
if (ret < 0) return ret;
}
lab1:
z->c = z->l - m2;
}
{ int m3 = z->l - z->c; (void)m3; /* do, line 69 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab2; /* call consonant_pair, line 69 */
{ int ret = r_consonant_pair(z); /* call consonant_pair, line 69 */
if (ret == 0) goto lab2;
if (ret < 0) return ret;
}
lab2:
z->c = z->l - m3;
}
{ int m4 = z->l - z->c; (void)m4; /* do, line 70 */
{ int ret = r_other_suffix(z);
if (ret == 0) goto lab3; /* call other_suffix, line 70 */
{ int ret = r_other_suffix(z); /* call other_suffix, line 70 */
if (ret == 0) goto lab3;
if (ret < 0) return ret;
}
lab3:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,5 @@
#include "header.h"
#define unless(C) if(!(C))
#define CREATE_SIZE 1
extern symbol * create_s(void) {
@ -10,7 +8,7 @@ extern symbol * create_s(void) {
if (mem == NULL) return NULL;
p = (symbol *) (HEAD + (char *) mem);
CAPACITY(p) = CREATE_SIZE;
SET_SIZE(p, CREATE_SIZE);
SET_SIZE(p, 0);
return p;
}
@ -22,7 +20,7 @@ extern void lose_s(symbol * p) {
/*
new_p = skip_utf8(p, c, lb, l, n); skips n characters forwards from p + c
if n +ve, or n characters backwards from p + c - 1 if n -ve. new_p is the new
position, or 0 on failure.
position, or -1 on failure.
-- used to implement hop and next in the utf8 case.
*/
@ -85,14 +83,14 @@ static int get_b_utf8(const symbol * p, int c, int lb, int * slot) {
if (b1 >= 0xC0 || c == lb) { /* 1100 0000 */
* slot = (b1 & 0x1F) << 6 | (b0 & 0x3F); return 2;
}
* slot = (p[c] & 0xF) << 12 | (b1 & 0x3F) << 6 | (b0 & 0x3F); return 3;
* slot = (p[--c] & 0xF) << 12 | (b1 & 0x3F) << 6 | (b0 & 0x3F); return 3;
}
extern int in_grouping_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
do {
int ch;
int w = get_utf8(z->p, z->c, z->l, & ch);
unless (w) return -1;
if (!w) return -1;
if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
return w;
z->c += w;
@ -104,7 +102,7 @@ extern int in_grouping_b_U(struct SN_env * z, const unsigned char * s, int min,
do {
int ch;
int w = get_b_utf8(z->p, z->c, z->lb, & ch);
unless (w) return -1;
if (!w) return -1;
if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
return w;
z->c -= w;
@ -116,8 +114,8 @@ extern int out_grouping_U(struct SN_env * z, const unsigned char * s, int min, i
do {
int ch;
int w = get_utf8(z->p, z->c, z->l, & ch);
unless (w) return -1;
unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
if (!w) return -1;
if (!(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0))
return w;
z->c += w;
} while (repeat);
@ -128,8 +126,8 @@ extern int out_grouping_b_U(struct SN_env * z, const unsigned char * s, int min,
do {
int ch;
int w = get_b_utf8(z->p, z->c, z->lb, & ch);
unless (w) return -1;
unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
if (!w) return -1;
if (!(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0))
return w;
z->c -= w;
} while (repeat);
@ -167,7 +165,7 @@ extern int out_grouping(struct SN_env * z, const unsigned char * s, int min, int
int ch;
if (z->c >= z->l) return -1;
ch = z->p[z->c];
unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
if (!(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0))
return 1;
z->c++;
} while (repeat);
@ -179,7 +177,7 @@ extern int out_grouping_b(struct SN_env * z, const unsigned char * s, int min, i
int ch;
if (z->c <= z->lb) return -1;
ch = z->p[z->c - 1];
unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
if (!(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0))
return 1;
z->c--;
} while (repeat);
@ -366,7 +364,7 @@ extern int replace_s(struct SN_env * z, int c_bra, int c_ket, int s_size, const
if (z->c > c_bra)
z->c = c_bra;
}
unless (s_size == 0) memmove(z->p + c_bra, s, s_size * sizeof(symbol));
if (s_size) memmove(z->p + c_bra, s, s_size * sizeof(symbol));
if (adjptr != NULL)
*adjptr = adjustment;
return 0;
@ -412,12 +410,7 @@ extern int insert_s(struct SN_env * z, int bra, int ket, int s_size, const symbo
}
extern int insert_v(struct SN_env * z, int bra, int ket, const symbol * p) {
int adjustment;
if (replace_s(z, bra, ket, SIZE(p), p, &adjustment))
return -1;
if (bra <= z->bra) z->bra += adjustment;
if (bra <= z->ket) z->ket += adjustment;
return 0;
return insert_s(z, bra, ket, SIZE(p), p);
}
extern symbol * slice_to(struct SN_env * z, symbol * p) {
@ -450,6 +443,16 @@ extern symbol * assign_to(struct SN_env * z, symbol * p) {
return p;
}
extern int len_utf8(const symbol * p) {
int size = SIZE(p);
int len = 0;
while (size--) {
symbol b = *p++;
if (b >= 0xC0 || b < 0x80) ++len;
}
return len;
}
#if 0
extern void debug(struct SN_env * z, int number, int line_count) {
int i;

View File

@ -0,0 +1,304 @@
अक्सर
अगाडि
अगाडी
अझै
अनुसार
अन्तर्गत
अन्य
अन्यथा
अब
अरु
अरू
अर्का
अर्की
अर्को
अर्थात
अर्थात्
अर्ब
अलग
अलिकति
असार
आइतवार
आए
आज
आठ
आत्म
आदि
आफू
आफ्नै
आफ्नो
आयो
आश्विन
उदाहरण
उन
उप
उही
एउटै
एक
एकदम
एकै
ओठ
औं
कति
कतै
कत्रा
कत्री
कत्रो
करोड
कस
कसरी
कसै
कस्ता
कस्ती
कस्तो
कहिल्यै
कहीं
का
कार्तिक
कि
किन
किनभने
कुन
कुनै
कुरा
कृपया
के
केहि
केही
को
कोही
क्रमशः
खर्ब
गयौ
चाँडै
चार
चाले
चाहनुहुन्छ
चाहन्छु
चाहिए
चैत
चौथो
छन्
छु
छू
छैन
छौँ
छौं
जताततै
जति
जत्रा
जत्री
जत्रो
जब
जबकि
जस
जस्ता
जस्ती
जस्तो
जस्तोसुकै
जहाँ
जान
जाहिर
जुन
जे
जेठ
जो
जोसुकै
ठीक
तत्काल
तथा
तदनुसार
तपाई
तपाईं
तर
तल
तापनि
तापनी
तिन
तिनी
तिमी
तिर
ती
तीन
तुरुन्तै
तेस्कारण
तेस्रो
त्यसकारण
त्यसपछि
त्यसमा
त्यसैले
त्यहाँ
त्यो
त्सपछि
त्सैले
थिए
थिएन
थिएनन्
थियो
थोरै
दस
दिए
दिनुभएको
दिनुहुन्छ
दुई
देख
देखि
देखिन्छ
देखियो
देखे
देखेको
देखेर
देख्न
दोश्रो
दोस्रो
धेरै
नजिकै
नत्र
नयाँ
नि
निम्ति
निम्न
निम्नानुसार
निर्दिष्ट
नै
नौ
पक्का
पक्कै
पछि
पछिल्लो
पटक
पनि
पर्छ
पर्थ्यो
पर्याप्त
पर्सी
पहिले
पहिलो
पहिल्यै
पाँच
पाँचौं
पूर्व
पौष
प्रति
प्रतेक
प्रत्येक
प्रथम
प्लस
फागुन
फेरि
फेरी
बने
बन्द
बन्न
बरु
बाटो
बारे
बाहिर
बाहेक
बिरुद्ध
बिशेष
बिहिवार
बीच
बुधवार
भए
भदौ
भन्
भर
भित्र
भित्री
भोलि
भोली
मंसिर
मङ्गलवार
महिना
मा
माघ
मात्र
माथि
मुख्य
मेरो
यति
यत्ति
यत्रा
यत्री
यत्रो
यथोचित
यदि
यद्यपि
यस
यसरी
यसो
यस्ता
यस्ती
यस्तो
यहाँ
या
यिन
यिनी
यी
यो
रही
रहेका
रहेको
राखे
राख्छ
राम्रो
रूप
लगभग
लाई
लाख
लागि
ले
वरिपरि
वरीपरी
वर्ष
वास्तवमा
वाहेक
विरुद्ध
विशेष
वैशाख
शनिवार
शायद
शुक्रवार
सँग
सँगै
संग
संगै
सक्छ
सट्टा
सधै
सधैं
सबै
समय
सम्भव
सम्म
सय
सही
साँच्चै
साउन
सात
साथ
साथै
सायद
सारा
सुन्ना
सो
सोध्न
सोमवार
सोही
स्पष्ट
हजार
हप्ता
हरे
हरेक
हामी
हाम्रो
हिजो
हुन्छ
होला
होस्

View File

@ -718,6 +718,8 @@ struct tsearch_config_match
static const struct tsearch_config_match tsearch_config_languages[] =
{
{"arabic", "ar"},
{"arabic", "Arabic"},
{"danish", "da"},
{"danish", "Danish"},
{"dutch", "nl"},
@ -734,8 +736,16 @@ static const struct tsearch_config_match tsearch_config_languages[] =
{"german", "German"},
{"hungarian", "hu"},
{"hungarian", "Hungarian"},
{"indonesian", "id"},
{"indonesian", "Indonesian"},
{"irish", "ga"},
{"irish", "Irish"},
{"italian", "it"},
{"italian", "Italian"},
{"lithuanian", "lt"},
{"lithuanian", "Lithuanian"},
{"nepali", "ne"},
{"nepali", "Nepali"},
{"norwegian", "no"},
{"norwegian", "Norwegian"},
{"portuguese", "pt"},
@ -747,6 +757,8 @@ static const struct tsearch_config_match tsearch_config_languages[] =
{"spanish", "Spanish"},
{"swedish", "sv"},
{"swedish", "Swedish"},
{"tamil", "ta"},
{"tamil", "Tamil"},
{"turkish", "tr"},
{"turkish", "Turkish"},
{NULL, NULL} /* end marker */

View File

@ -53,6 +53,6 @@
*/
/* yyyymmddN */
#define CATALOG_VERSION_NO 201809191
#define CATALOG_VERSION_NO 201809241
#endif

View File

@ -54,5 +54,7 @@ extern int insert_v(struct SN_env * z, int bra, int ket, const symbol * p);
extern symbol * slice_to(struct SN_env * z, symbol * p);
extern symbol * assign_to(struct SN_env * z, symbol * p);
extern int len_utf8(const symbol * p);
extern void debug(struct SN_env * z, int number, int line_count);

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,16 +0,0 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * hungarian_ISO_8859_1_create_env(void);
extern void hungarian_ISO_8859_1_close_env(struct SN_env * z);
extern int hungarian_ISO_8859_1_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,16 @@
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * indonesian_ISO_8859_1_create_env(void);
extern void indonesian_ISO_8859_1_close_env(struct SN_env * z);
extern int indonesian_ISO_8859_1_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,16 @@
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * irish_ISO_8859_1_create_env(void);
extern void irish_ISO_8859_1_close_env(struct SN_env * z);
extern int irish_ISO_8859_1_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -0,0 +1,16 @@
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * hungarian_ISO_8859_2_create_env(void);
extern void hungarian_ISO_8859_2_close_env(struct SN_env * z);
extern int hungarian_ISO_8859_2_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -0,0 +1,16 @@
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * arabic_UTF_8_create_env(void);
extern void arabic_UTF_8_close_env(struct SN_env * z);
extern int arabic_UTF_8_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -0,0 +1,16 @@
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * indonesian_UTF_8_create_env(void);
extern void indonesian_UTF_8_close_env(struct SN_env * z);
extern int indonesian_UTF_8_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,16 @@
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * irish_UTF_8_create_env(void);
extern void irish_UTF_8_close_env(struct SN_env * z);
extern int irish_UTF_8_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -0,0 +1,16 @@
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * lithuanian_UTF_8_create_env(void);
extern void lithuanian_UTF_8_close_env(struct SN_env * z);
extern int lithuanian_UTF_8_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,16 @@
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * nepali_UTF_8_create_env(void);
extern void nepali_UTF_8_close_env(struct SN_env * z);
extern int nepali_UTF_8_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {

View File

@ -0,0 +1,16 @@
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {
#endif
extern struct SN_env * tamil_UTF_8_create_env(void);
extern void tamil_UTF_8_close_env(struct SN_env * z);
extern int tamil_UTF_8_stem(struct SN_env * z);
#ifdef __cplusplus
}
#endif

View File

@ -1,5 +1,5 @@
/* This file was generated automatically by the Snowball to ANSI C compiler */
/* This file was generated automatically by the Snowball to ISO C compiler */
/* http://snowballstem.org/ */
#ifdef __cplusplus
extern "C" {